pax_global_header00006660000000000000000000000064147672766760014546gustar00rootroot0000000000000052 comment=45e5bb672e7ef7e5e4a987a8f381f3ab33f630c3 input-pad-1.1.0/000077500000000000000000000000001476727667600134465ustar00rootroot00000000000000input-pad-1.1.0/AUTHORS000066400000000000000000000002041476727667600145120ustar00rootroot00000000000000General maintenance: Takao Fujiwara irc: fujiwarat eekboard: Daiki Ueno irc: dueno input-pad-1.1.0/COPYING000066400000000000000000000636421476727667600145140ustar00rootroot00000000000000 GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 Copyright (C) 1991, 1999 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things. To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run. GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. , 1 April 1990 Ty Coon, President of Vice That's all there is to it! input-pad-1.1.0/ChangeLog000066400000000000000000000000001476727667600152060ustar00rootroot00000000000000input-pad-1.1.0/Makefile.am000066400000000000000000000033041476727667600155020ustar00rootroot00000000000000# vim:set noet ts=4: # # input-pad - The input pad # # Copyright (c) 2010-2025 Takao Fujiwara # Copyright (c) 2010-2025 Red Hat, Inc. # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301 USA SUBDIRS = \ po \ data \ input-pad \ m4 \ $(NULL) ACLOCAL_AMFLAGS = -I m4 pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = input-pad.pc EXTRA_DIST = \ input-pad.spec.in \ $(NULL) noinst_DIST = \ $(NULL) dist-hook: if test -d .git ; then \ git log --name-status --date=iso > $(distdir)/ChangeLog ; \ fi rpm: dist @PACKAGE_NAME@.spec rpmbuild -bb \ --define "_sourcedir `pwd`" \ --define "_builddir `pwd`" \ --define "_srcrpmdir `pwd`" \ --define "_rpmdir `pwd`" \ --define "_specdir `pwd`" \ @PACKAGE_NAME@.spec srpm: dist @PACKAGE_NAME@.spec rpmbuild -bs \ --define "_sourcedir `pwd`" \ --define "_builddir `pwd`" \ --define "_srcrpmdir `pwd`" \ --define "_rpmdir `pwd`" \ --define "_specdir `pwd`" \ @PACKAGE_NAME@.spec clean-rpm: $(RM) -r "`uname -i`" clean-local: clean-rpm input-pad-1.1.0/NEWS000066400000000000000000000000001476727667600141330ustar00rootroot00000000000000input-pad-1.1.0/README000066400000000000000000000001261476727667600143250ustar00rootroot00000000000000input-pad It is an input pad. Home Page: https://github.com/fujiwarat/input-pad/wiki input-pad-1.1.0/TODO000066400000000000000000000001311476727667600141310ustar00rootroot00000000000000html tag group size scalable with font size zenhan with im icon printscrn qt mode_switch input-pad-1.1.0/autogen.sh000077500000000000000000000017721476727667600154560ustar00rootroot00000000000000#!/bin/sh # Run this to generate all the initial makefiles, etc. test -n "$srcdir" || srcdir=$(dirname "$0") test -n "$srcdir" || srcdir=. olddir=$(pwd) cd "$srcdir" (test -f configure.ac) || { echo "*** ERROR: Directory '$srcdir' does not look like the top-level project directory ***" exit 1 } # shellcheck disable=SC2016 PKG_NAME=$(autoconf --trace 'AC_INIT:$1' configure.ac) if [ "$#" = 0 -a "x$NOCONFIGURE" = "x" ]; then echo "*** WARNING: I am going to run 'configure' with no arguments." >&2 echo "*** If you wish to pass any to it, please specify them on the" >&2 echo "*** '$0' command line." >&2 echo "" >&2 fi autoreconf --verbose --force --install || exit 1 cd "$olddir" if [ "$NOCONFIGURE" = "" ]; then $srcdir/configure "$@" || exit 1 if [ "$1" = "--help" ]; then exit 0 else echo "Now type 'make' to compile $PKG_NAME" || exit 1 fi else echo "Skipping configure process." fi input-pad-1.1.0/configure.ac000066400000000000000000000145731476727667600157460ustar00rootroot00000000000000# vim:set et ts=4: # # input-pad - The input pad # # Copyright (c) 2010-2025 Takao Fujiwara # Copyright (c) 2010-2025 Red Hat, Inc. # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301 USA dnl - if not 1, append datestamp to the version number. m4_define([pad_released], [1]) m4_define([pad_major_version], [1]) m4_define([pad_minor_version], [1]) m4_define([pad_micro_version], [0]) m4_define([pad_abi_current], [1]) m4_define([pad_abi_revision], [m4_eval(100 * pad_minor_version + pad_micro_version)]) m4_define([pad_abi_age], [0]) m4_define(pad_maybe_datestamp, m4_esyscmd([if test x]pad_released[ != x1; then date +.%Y%m%d | tr -d '\n\r'; fi])) m4_define([pad_version], pad_major_version.pad_minor_version.pad_micro_version[]pad_maybe_datestamp) AC_INIT([input-pad], [pad_version], [http://code.google.com/p/input-pad/issues/entry],[input-pad]) AM_INIT_AUTOMAKE([1.10]) AC_GNU_SOURCE AC_CONFIG_HEADERS([config.h]) AC_CONFIG_MACRO_DIR([m4]) dnl - VERSION libinput_pad_VERSION="pad_major_version.pad_abi_current" AC_SUBST(libinput_pad_VERSION) AC_MSG_NOTICE([$PACKAGE sub version $libinput_pad_VERSION]) libinput_pad_API_VERSION="pad_major_version.0" AC_SUBST(libinput_pad_API_VERSION) dnl libtool versioning dnl dnl If LT_VERSION_INFO="lt_current:lt_revision:lt_age", libinputpad is dnl libinputpad-API_VERSION.so.(lt_current - lt_age).lt_age.lt_revision dnl If the abi is changed, but it is compatible with last version, dnl pad_abi_current++, pad_abi_age++; dnl If the abi is not compatible with last version, dnl pad_abi_current++, pad_abi_age = 0; m4_define([lt_current], [pad_abi_current]) m4_define([lt_revision], [pad_abi_revision]) m4_define([lt_age], [pad_abi_age]) LT_VERSION_INFO="lt_current:lt_revision:lt_age" AC_SUBST(LT_VERSION_INFO) AC_MSG_NOTICE([library version $LT_VERSION_INFO]) dnl - define PACKAGE_VERSION_* variables AM_SANITY_CHECK AM_MAINTAINER_MODE(enable) AC_DISABLE_STATIC AC_PROG_CC AM_PROG_CC_C_O AC_PROG_CXX AC_HEADER_STDC LT_INIT dnl - For dislpay Date m4_define(pad_datedisplay, m4_esyscmd(date '+%a %b %d %Y' | tr -d '\n\r')) DATE_DISPLAY="pad_datedisplay" AC_SUBST(DATE_DISPLAY) dnl - pkgconfig AM_PATH_GLIB_2_0(2.37.0) PKG_CHECK_MODULES(GLIB2, [ glib-2.0 >= 2.37 ]) PKG_CHECK_MODULES(GMODULE2, [gmodule-2.0], [], [AC_MSG_NOTICE([gmodule-2.0 is required by glib-2.0 >= 2.30])] ) PKG_CHECK_MODULES(GTK3, [ gtk+-3.0 >= 3.12 ]) GTK_API_VERSION=3.0 AC_SUBST(GTK_API_VERSION) PKG_CHECK_MODULES(LIBXML2, [ libxml-2.0 >= 2.0 ]) PKG_CHECK_MODULES(X11, [ x11 ]) PKG_CHECK_MODULES(XKB, [ xkbfile ]) PKG_CHECK_MODULES(LIBXKLAVIER, libxklavier >= 4.0, have_libxklavier=yes, have_libxklavier=no ) if test "x$have_libxklavier" = "xyes" ; then AC_DEFINE(HAVE_LIBXKLAVIER, [1], [Define if we have libxklavier]) fi dnl - check eek AC_MSG_CHECKING([whether you enable libeek]) AC_ARG_ENABLE(eek, AS_HELP_STRING([--enable-eek=no/yes], [Draw keyboard using libeek default=no]), [], enable_eek=no) AC_MSG_RESULT($enable_eek) if test x"$enable_eek" = xyes; then dnl - check eek is available PKG_CHECK_MODULES(EEK, [ eek-gtk-0.90 >= 1.0.6, eek-xkl-0.90 >= 1.0.6 ],, AC_MSG_ERROR([libeek not found])) AM_CONDITIONAL(HAVE_EEK, true) else AM_CONDITIONAL(HAVE_EEK, false) fi dnl - check file path of glib-genmarshal AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal) dnl - GObject introspection GOBJECT_INTROSPECTION_CHECK([0.6.8]) INPUT_PAD_GIR_SCANNERFLAGS= if test x"$found_introspection" = x"yes" ; then INPUT_PAD_GIR_SCANNERFLAGS="--identifier-prefix=InputPad --symbol-prefix=input_pad" PKG_CHECK_EXISTS([gobject-introspection-1.0 >= 0.9.6], [gir_symbol_prefix=yes], [gir_symbol_prefix=no]) if test x"$gir_symbol_prefix" = x"no" ; then INPUT_PAD_GIR_SCANNERFLAGS="--strip-prefix=InputPad" fi fi AC_SUBST(IBUS_GIR_SCANNERFLAGS) dnl - check XTest module AC_MSG_CHECKING([whether you enable xtest module]) AC_ARG_ENABLE(xtest, AS_HELP_STRING([--enable-xtest=no/yes], [Send keyboard event with xtest. default=yes]), [], enable_xtest=yes) AC_MSG_RESULT($enable_xtest) AM_CONDITIONAL(HAVE_XTEST, false) if test x"$enable_xtest" = xyes; then backup_LIBS=$LIBS if test "x$XTEST_LIBS" = "x" ; then XTEST_LIBS="-lXtst" fi LIBS="$LIBS $XTEST_LIBS" AC_CHECK_LIB(Xtst, XTestFakeKeyEvent, dnl - Do not put NULL string here so that LIBS is not overrided. [AC_MSG_NOTICE([use $XTEST_LIBS for XTEST module]) AM_CONDITIONAL(HAVE_XTEST, true)], [AC_MSG_NOTICE([if you want to enable X11 XTEST module, install libXtst-devel package])]) LIBS=$backup_LIBS fi AC_SUBST(XTEST_LIBS) dnl - define GETTEXT_* variables GETTEXT_PACKAGE=input-pad AC_SUBST(GETTEXT_PACKAGE) AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [Gettext package]) AM_GNU_GETTEXT_VERSION([0.19.8]) AM_GNU_GETTEXT([external]) DEFINE_IBUS_LOCALEDIR AC_DEFINE_UNQUOTED(LOCALEDIR, "$ibus_localedir", [Define the location where the catalogs will be installed]) dnl - OUTPUT files AC_CONFIG_FILES([ po/Makefile.in data/Makefile input-pad/Makefile m4/Makefile Makefile input-pad.pc input-pad.spec ]) AC_OUTPUT echo " input-pad version pad_version libinput_pad version: $libinput_pad_VERSION GTK+ version: $GTK_API_VERSION Have libxklavier: $have_libxklavier Enable EEK $enable_eek Enable PyGObject3 $found_introspection GIR scannerflags "$INPUT_PAD_GIR_SCANNERFLAGS" Enable XTEST $enable_xtest lt version info $LT_VERSION_INFO " input-pad-1.1.0/data/000077500000000000000000000000001476727667600143575ustar00rootroot00000000000000input-pad-1.1.0/data/Makefile.am000066400000000000000000000132401476727667600164130ustar00rootroot00000000000000# vim:set noet ts=4: # # input-pad - The input pad # # Copyright (c) 2010-2025 Takao Fujiwara # Copyright (c) 2010-2025 Red Hat, Inc. # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301 USA icon_DATA = input-pad.png icondir = $(datarootdir)/pixmaps paddir = $(pkgdatadir)/pad pad_in_files = \ base.xml.in \ latin.xml.in \ ipa-obsolete.xml.in \ ipa-unofficial.xml.in \ ipa.xml.in \ runr.xml.in \ goth.xml.in \ shaw.xml.in \ ja.xml.in \ zh.xml.in \ str.xml.in \ w3c.xml.in \ cmd.xml.in \ $(NULL) pad_in_in_files = \ alphabet.xml.in.in \ $(NULL) pad_no_sorted = $(pad_in_files:.xml.in=.xml) pad_no_sorted += $(pad_in_in_files:.xml.in.in=.xml.in) pad_no_sorted += $(pad_in_in_files:.xml.in.in=.xml) pad_DATA = \ group01-base.xml \ group02-alphabet.xml \ group02-ja.xml \ group02-zh.xml \ group50-str.xml \ group60-w3c.xml \ group70-cmd.xml \ $(NULL) group01-base.xml: base.xml @cp $< $@ group02-alphabet.xml: alphabet.xml @cp $< $@ group02-ja.xml: ja.xml @cp $< $@ group02-zh.xml: zh.xml @cp $< $@ group50-str.xml: str.xml @cp $< $@ group60-w3c.xml: w3c.xml @cp $< $@ group70-cmd.xml: cmd.xml @cp $< $@ alphabet.xml.in : alphabet.xml.in.in @sed -e "s/_name/name/g" \ -e "s/_comment/comment/g" \ -e "s/_label/label/g" \ $< > $@ ALPHABET_TABLE_FILES = \ latin.xml \ ipa-obsolete.xml \ ipa-unofficial.xml \ ipa.xml \ runr.xml \ goth.xml \ shaw.xml \ $(NULL) alphabet.xml : alphabet.xml.in $(ALPHABET_TABLE_FILES) @sed -e "/@latin@/r latin.xml" \ -e "/@ipa-obsolete@/r ipa-obsolete.xml" \ -e "/@ipa-unofficial@/r ipa-unofficial.xml" \ -e "/@ipa@/r ipa.xml" \ -e "/@runr@/r runr.xml" \ -e "/@goth@/r goth.xml" \ -e "/@shaw@/r shaw.xml" \ alphabet.xml.in > $@; \ sed -e "/@latin@/d" \ -e "/@ipa-obsolete@/d" \ -e "/@ipa-unofficial@/d" \ -e "/@ipa@/d" \ -e "/@runr@/d" \ -e "/@goth@/d" \ -e "/@shaw@/d" \ $@ > $@.$$$$; \ mv $@.$$$$ $@ # The tag is needed for intltoo-extract which is called by # intltool-update. # % intltool-extract --update --type=gettext/xml ../data/latin.xml.in # It seems intltool-extract expects the number of the parent tag is one. %.xml : %.xml.in @sed -e "s/_name/name/g" \ -e "s/_comment/comment/g" \ -e "s/_label/label/g" \ -e "//d" \ -e "/<\/dummy>/d" \ $< > $@ CLEANFILES= \ $(pad_DATA) \ $(pad_no_sorted) \ $(NULL) #desktopdir = $(datarootdir)/applications desktop_in_files = input-pad.desktop.in #desktop_DATA = $(desktop_in_files:.desktop.in=.desktop) #$(desktop_DATA): $(desktop_in_files) Makefile # $(AM_V_GEN)$(MSGFMT) --desktop --template $< -d $(top_srcdir)/po -o $@ EXTRA_DIST = \ $(desktop_in_files) \ $(icon_DATA) \ $(pad_in_in_files) \ $(pad_in_files) \ char2hexstr.py \ keyboard.xml.in \ w3ctostr.py \ $(NULL) input-pad-1.1.0/data/alphabet.xml.in.in000066400000000000000000000003611476727667600176730ustar00rootroot00000000000000 <_name>Alphabets @latin@ @ipa@ @ipa-obsolete@ @ipa-unofficial@ @runr@ @goth@ @shaw@ input-pad-1.1.0/data/base.xml.in000066400000000000000000000631541476727667600164310ustar00rootroot00000000000000 <_name>Symbols 10 <_name>Currency 0x0024 0x00A2 0x00A3 0x00A4 0x00A5 0x20A0 0x20A1 0x20A2 0x20A3 0x20A4 0x20A5 0x20A6 0x20A7 0x20A8 0x20A9 0x20AA 0x20AB 0x20AC 0x20AD 0x20AE 0x20AF 0x20B0 0x20B1 0x20B2 0x20B3 0x20B4 0x20B5 0x20B6 0x20B7 0x20B8 0x20B9 0x20BA 0x20BB 0x20BC 0x20BD 0x20BE 0x20BF 0xFF04 0xFFE0 0xFFE1 0xFFE5 0xFFE6
<_name>Letterlike 0x00A9 0x00AE 0x2100 0x2101 0x2102 0x2103 0x2104 0x2105 0x2106 0x2107 0x2108 0x2109 0x210A 0x210B 0x210C 0x210D 0x210E 0x210F 0x2110 0x2111 0x2112 0x2113 0x2114 0x2115 0x2116 0x2117 0x2118 0x2119 0x211A 0x211B 0x211C 0x211D 0x211E 0x211F 0x2120 0x2121 0x2122 0x2123 0x2124 0x2125 0x2126 0x2127 0x2128 0x2129 0x212A 0x212B 0x212C 0x212D 0x212E 0x212F 0x2130 0x2131 0x2132 0x2133 0x2134 0x2135 0x2136 0x2137 0x2138 0x2139 0x213A 0x213B 0x213D 0x213E 0x213F 0x2140 0x2141 0x2142 0x2143 0x2144 0x2145 0x2146 0x2147 0x2148 0x2149 0x214A 0x214B
<_name>Miscellaneous 0x2600 0x2601 0x2602 0x2603 0x2604 0x2605 0x2606 0x2607 0x2608 0x2609 0x260A 0x260B 0x260C 0x260D 0x260E 0x260F 0x2610 0x2611 0x2612 0x2613 0x2614 0x2615 0x2616 0x2617 0x2619 0x261A 0x261B 0x261C 0x261D 0x261E 0x261F 0x2620 0x2621 0x2622 0x2623 0x2624 0x2625 0x2626 0x2627 0x2628 0x2629 0x262A 0x262B 0x262C 0x262D 0x262E 0x262F 0x2630 0x2631 0x2632 0x2633 0x2634 0x2635 0x2636 0x2637 0x2638 0x2639 0x263A 0x263B 0x263C 0x263D 0x263E 0x263F 0x2640 0x2641 0x2642 0x2643 0x2644 0x2645 0x2646 0x2647 0x2648 0x2649 0x264A 0x264B 0x264C 0x264D 0x264E 0x264F 0x2650 0x2651 0x2652 0x2653 0x2654 0x2655 0x2656 0x2657 0x2658 0x2659 0x265A 0x265B 0x265C 0x265D 0x265E 0x265F 0x2660 0x2661 0x2662 0x2663 0x2664 0x2665 0x2666 0x2667 0x2668 0x2669 0x266A 0x266B 0x266C 0x266D 0x266E 0x266F 0x2670 0x2671 0x2672 0x2673 0x2674 0x2675 0x2676 0x2677 0x2678 0x2679 0x267A 0x267B 0x267C 0x267D 0x2680 0x2681 0x2682 0x2683 0x2684 0x2685 0x2686 0x2687 0x2688 0x2689 0x268A 0x268B 0x268C 0x268D 0x268E 0x268F 0x2690 0x2691 0x26A0
<_name>Dingbats 0x2701 0x2702 0x2703 0x2704 0x2706 0x2707 0x2708 0x2709 0x270C 0x270D 0x270E 0x270F 0x2710 0x2711 0x2712 0x2713 0x2714 0x2715 0x2716 0x2717 0x2718 0x2719 0x271A 0x271B 0x271C 0x271D 0x271E 0x271F 0x2720 0x2721 0x2722 0x2723 0x2724 0x2725 0x2726 0x2727 0x2729 0x272A 0x272B 0x272C 0x272D 0x272E 0x272F 0x2730 0x2731 0x2732 0x2733 0x2734 0x2735 0x2736 0x2737 0x2738 0x2739 0x273A 0x273B 0x273C 0x273D 0x273E 0x273F 0x2740 0x2741 0x2742 0x2743 0x2744 0x2745 0x2746 0x2747 0x2748 0x2749 0x274A 0x274B 0x274C 0x274D 0x274E 0x274F 0x2750 0x2751 0x2752 0x2756 0x2758 0x2759 0x275A 0x275B 0x275C 0x275D 0x275E 0x2761 0x2762 0x2763 0x2764 0x2765 0x2766 0x2767 0x2768 0x2769 0x276A 0x276B 0x276C 0x276D 0x276E 0x276F 0x2770 0x2771 0x2772 0x2773 0x2774 0x2775 0x2776 0x2777 0x2778 0x2779 0x277A 0x277B 0x277C 0x277D 0x277E 0x277F 0x2780 0x2781 0x2782 0x2783 0x2784 0x2785 0x2786 0x2787 0x2788 0x2789 0x278A 0x278B 0x278C 0x278D 0x278E 0x278F 0x2790 0x2791 0x2792 0x2793 0x2794 0x2798 0x2799 0x279A 0x279B 0x279C 0x279D 0x279E 0x279F 0x27A0 0x27A1 0x27A2 0x27A3 0x27A4 0x27A5 0x27A6 0x27A7 0x27A8 0x27A9 0x27AA 0x27AB 0x27AC 0x27AD 0x27AE 0x27AF 0x27B1 0x27B2 0x27B3 0x27B4 0x27B5 0x27B6 0x27B7 0x27B8 0x27B9 0x27BA 0x27BB 0x27BC 0x27BD 0x27BE
<_name>Super and Sub 0x2070 0x00b9 0x00b2 0x00b3 0x2074 0x2075 0x2076 0x2077 0x2078 0x2079 0x207A 0x207B 0x207C 0x207D 0x207E 0x207F 0x2071 0x2080 0x2081 0x2082 0x2083 0x2084 0x2085 0x2086 0x2087 0x2088 0x2089 0x208A 0x208B 0x208C 0x208D 0x208E
10 <_name>Bold 0x1d5d4 0x1d5d5 0x1d5d6 0x1d5d7 0x1d5d8 0x1d5d9 0x1d5da 0x1d5db 0x1d5dc 0x1d5dd 0x1d5de 0x1d5df 0x1d5e0 0x1d5e1 0x1d5e2 0x1d5e3 0x1d5e4 0x1d5e5 0x1d5e6 0x1d5e7 0x1d5e8 0x1d5e9 0x1d5ea 0x1d5eb 0x1d5ec 0x1d5ed 0x1d5ee 0x1d5ef 0x1d5f0 0x1d5f1 0x1d5f2 0x1d5f3 0x1d5f4 0x1d5f5 0x1d5f6 0x1d5f7 0x1d5f8 0x1d5f9 0x1d5fa 0x1d5fb 0x1d5fc 0x1d5fd 0x1d5fe 0x1d5ff 0x1d600 0x1d601 0x1d602 0x1d603 0x1d604 0x1d605 0x1d606 0x1d607 0x1d6a8 0x1d6a9 0x1d6aa 0x1d6ab 0x1d6ac 0x1d6ad 0x1d6ae 0x1d6af 0x1d6b0 0x1d6b1 0x1d6b2 0x1d6b3 0x1d6b4 0x1d6b5 0x1d6b6 0x1d6b7 0x1d6b8 0x1d6b9 0x1d6ba 0x1d6bb 0x1d6bc 0x1d6bd 0x1d6be 0x1d6bf 0x1d6c0 0x1d6c1 0x1d6c2 0x1d6c3 0x1d6c4 0x1d6c5 0x1d6c6 0x1d6c7 0x1d6c8 0x1d6c9 0x1d6ca 0x1d6cb 0x1d6cc 0x1d6cd 0x1d6ce 0x1d6cf 0x1d6d0 0x1d6d1 0x1d6d2 0x1d6d3 0x1d6d4 0x1d6d5 0x1d6d6 0x1d6d7 0x1d6d8 0x1d6d9 0x1d6da 0x1d6db 0x1d6dc 0x1d6dd 0x1d6de 0x1d6df 0x1d6e0 0x1d6e1
10 <_name>Italic 0x1d608 0x1d609 0x1d60a 0x1d60b 0x1d60c 0x1d60d 0x1d60e 0x1d60f 0x1d610 0x1d611 0x1d612 0x1d613 0x1d614 0x1d615 0x1d616 0x1d617 0x1d618 0x1d619 0x1d61a 0x1d61b 0x1d61c 0x1d61d 0x1d61e 0x1d61f 0x1d620 0x1d621 0x1d622 0x1d623 0x1d624 0x1d625 0x1d626 0x1d627 0x1d628 0x1d629 0x1d62a 0x1d62b 0x1d62c 0x1d62d 0x1d62e 0x1d62f 0x1d630 0x1d631 0x1d632 0x1d633 0x1d634 0x1d635 0x1d636 0x1d637 0x1d638 0x1d639 0x1d63a 0x1d63b 0x1d63c 0x1d63d 0x1d63e 0x1d63f 0x1d640 0x1d641 0x1d642 0x1d643 0x1d644 0x1d645 0x1d646 0x1d647 0x1d648 0x1d649 0x1d64a 0x1d64b 0x1d64c 0x1d64d 0x1d64e 0x1d64f 0x1d650 0x1d651 0x1d652 0x1d653 0x1d654 0x1d655 0x1d656 0x1d657 0x1d658 0x1d659 0x1d65a 0x1d65b 0x1d65c 0x1d65d 0x1d65e 0x1d65f 0x1d660 0x1d661 0x1d662 0x1d663 0x1d664 0x1d665 0x1d666 0x1d667 0x1d668 0x1d669 0x1d66a 0x1d66b 0x1d66c 0x1d66d 0x1d66e 0x1d66f 0x1d6e2 0x1d6e3 0x1d6e4 0x1d6e5 0x1d6e6 0x1d6e7 0x1d6e8 0x1d6e9 0x1d6ea 0x1d6eb 0x1d6ec 0x1d6ed 0x1d6ee 0x1d6ef 0x1d6f0 0x1d6f1 0x1d6f2 0x1d6f3 0x1d6f4 0x1d6f5 0x1d6f6 0x1d6f7 0x1d6f8 0x1d6f9 0x1d6fa 0x1d6fb 0x1d6fc 0x1d6fd 0x1d6fe 0x1d6ff 0x1d700 0x1d701 0x1d702 0x1d703 0x1d704 0x1d705 0x1d706 0x1d707 0x1d708 0x1d709 0x1d70a 0x1d70b 0x1d70c 0x1d70d 0x1d70e 0x1d70f 0x1d710 0x1d711 0x1d712 0x1d713 0x1d714 0x1d715 0x1d716 0x1d717 0x1d718 0x1d719 0x1d71a 0x1d71b 0x1d71c 0x1d71d 0x1d71e 0x1d71f 0x1d720 0x1d721 0x1d722 0x1d723 0x1d724 0x1d725 0x1d726 0x1d727 0x1d728 0x1d729 0x1d72a 0x1d72b 0x1d72c 0x1d72d 0x1d72e 0x1d72f 0x1d730 0x1d731 0x1d732 0x1d733 0x1d734 0x1d735 0x1d736 0x1d737 0x1d738 0x1d739 0x1d73a 0x1d73b 0x1d73c 0x1d73d 0x1d73e 0x1d73f 0x1d740 0x1d741 0x1d742 0x1d743 0x1d744 0x1d745 0x1d746 0x1d747 0x1d748 0x1d749 0x1d74a 0x1d74b 0x1d74c 0x1d74d 0x1d74e 0x1d74f 0x1d750 0x1d751 0x1d752 0x1d753 0x1d754 0x1d755
10 <_name>Script 0x1d49c 0x212c 0x1d49e 0x1d49f 0x2130 0x2131 0x1d4a2 0x210b 0x2110 0x1d4a5 0x1d4a6 0x2112 0x2133 0x1d4a9 0x1d4aa 0x1d4ab 0x1d4ac 0x211b 0x1d4ae 0x1d4af 0x1d4b0 0x1d4b1 0x1d4b2 0x1d4b3 0x1d4b4 0x1d4b5 0x1d4b6 0x1d4b7 0x1d4b8 0x1d4b9 0x212f 0x1d4bb 0x210a 0x1d4bd 0x1d4be 0x1d4bf 0x1d4c0 0x1d4c1 0x1d4c2 0x1d4c3 0x2134 0x1d4c5 0x1d4c6 0x1d4c7 0x1d4c8 0x1d4c9 0x1d4ca 0x1d4cb 0x1d4cc 0x1d4cd 0x1d4ce 0x1d4cf 0x1d4d0 0x1d4d1 0x1d4d2 0x1d4d3 0x1d4d4 0x1d4d5 0x1d4d6 0x1d4d7 0x1d4d8 0x1d4d9 0x1d4da 0x1d4db 0x1d4dc 0x1d4dd 0x1d4de 0x1d4df 0x1d4e0 0x1d4e1 0x1d4e2 0x1d4e3 0x1d4e4 0x1d4e5 0x1d4e6 0x1d4e7 0x1d4e8 0x1d4e9 0x1d4ea 0x1d4eb 0x1d4ec 0x1d4ed 0x1d4ee 0x1d4ef 0x1d4f0 0x1d4f1 0x1d4f2 0x1d4f3 0x1d4f4 0x1d4f5 0x1d4f6 0x1d4f7 0x1d4f8 0x1d4f9 0x1d4fa 0x1d4fb 0x1d4fc 0x1d4fd 0x1d4fe 0x1d4ff 0x1d500 0x1d501 0x1d502 0x1d503 0x1d504 0x1d505 0x1d507 0x1d508 0x1d509 0x1d50a 0x1d50d 0x1d50e 0x1d50f 0x1d510 0x1d511 0x1d512 0x1d513 0x1d514 0x1d516 0x1d517 0x1d518 0x1d519 0x1d51a 0x1d51b 0x1d51c 0x1d51e 0x1d51f 0x1d520 0x1d521 0x1d522 0x1d523 0x1d524 0x1d525 0x1d526 0x1d527 0x1d528 0x1d529 0x1d52a 0x1d52b 0x1d52c 0x1d52d 0x1d52e 0x1d52f 0x1d530 0x1d531 0x1d532 0x1d533 0x1d534 0x1d535 0x1d536 0x1d537 0x1d56c 0x1d56d 0x1d56e 0x1d56f 0x1d570 0x1d571 0x1d572 0x1d573 0x1d574 0x1d575 0x1d576 0x1d577 0x1d578 0x1d579 0x1d57a 0x1d57b 0x1d57a 0x1d57a 0x1d57a 0x1d57f 0x1d580 0x1d581 0x1d582 0x1d583 0x1d584 0x1d585 0x1d586 0x1d587 0x1d588 0x1d589 0x1d58a 0x1d58b 0x1d58c 0x1d58d 0x1d58a 0x1d58f 0x1d590 0x1d591 0x1d592 0x1d593 0x1d594 0x1d595 0x1d596 0x1d597 0x1d598 0x1d599 0x1d59a 0x1d59b 0x1d59c 0x1d59d 0x1d59e 0x1d59f
10 <_name>Double Struck 0x1d538 0x1d539 0x2102 0x1d53b 0x1d53c 0x1d53d 0x1d53e 0x210d 0x1d540 0x1d541 0x1d542 0x1d543 0x1d544 0x2115 0x1d546 0x2119 0x211a 0x211d 0x1d54a 0x1d54b 0x1d54c 0x1d54d 0x1d54e 0x1d54f 0x1d550 0x2124 0x1d552 0x1d553 0x1d554 0x1d555 0x1d556 0x1d557 0x1d558 0x1d559 0x1d55a 0x1d55b 0x1d55c 0x1d55d 0x1d55e 0x1d55f 0x1d560 0x1d561 0x1d562 0x1d563 0x1d564 0x1d565 0x1d566 0x1d567 0x1d568 0x1d569 0x1d56a 0x1d56b 0x213c 0x213d 0x213e 0x213f 0x2140
10 <_name>All 0xa1 0xa2 0xa3 0xa4 0xa5 0xa6 0xa7 0xa8 0xa9 0xaa 0xab 0xac 0xad 0xae 0xaf 0xb0 0xb1 0xb2 0xb3 0xb4 0xb5 0xb6 0xb8 0xb9 0xba 0xbb 0xbc 0xbd 0xbe 0xbf 0xd7 0xf7 0x2010 0x2014 0x2016 0x2018 0x2019 0x201a 0x201b 0x201c 0x201d 0x201e 0x201f 0x2020 0x2021 0x2022 0x2023 0x2024 0x2025 0x2026 0x2027 0x2030 0x2031 0x2032 0x2033 0x2034 0x2035 0x2036 0x2037 0x2038 0x2039 0x203a 0x203b 0x203c 0x203d 0x203e 0x203f 0x2040 0x2041 0x2042 0x2043 0x2044 0x2045 0x2046 0x2047 0x2048 0x2049 0x204a 0x204b 0x2103 0x2109 0x2112 0x2116 0x2120 0x2121 0x2122 0x213b 0x2160 0x2161 0x2162 0x2163 0x2164 0x2165 0x2166 0x2167 0x2168 0x2169 0x216a 0x216b 0x216c 0x216d 0x216e 0x216f 0x2170 0x2171 0x2172 0x2173 0x2174 0x2175 0x2176 0x2177 0x2178 0x2179 0x217a 0x217b 0x217c 0x217d 0x217e 0x217f 0x2190 0x2191 0x2192 0x2193 0x2194 0x2195 0x2196 0x2197 0x2198 0x2199 0x219a 0x219b 0x219c 0x219d 0x219e 0x219f 0x21a0 0x21a1 0x21a2 0x21a3 0x21a4 0x21a5 0x21a6 0x21a7 0x21a8 0x21a9 0x21aa 0x21ab 0x21ac 0x21ad 0x21ae 0x21af 0x21b0 0x21b1 0x21b2 0x21b3 0x21b4 0x21b5 0x21b6 0x21b7 0x21b8 0x21b9 0x21ba 0x21bb 0x21bc 0x21bd 0x21be 0x21bf 0x21c0 0x21c1 0x21c2 0x21c3 0x21c4 0x21c5 0x21c6 0x21c7 0x21c8 0x21c9 0x21ca 0x21cb 0x21cc 0x21cd 0x21ce 0x21cf 0x21d0 0x21d1 0x21d2 0x21d3 0x21d4 0x21d5 0x21d6 0x21d7 0x21d8 0x21d9 0x21da 0x21db 0x21dc 0x21dd 0x21de 0x21df 0x21e0 0x21e1 0x21e2 0x21e3 0x21e4 0x21e5 0x21e6 0x21e7 0x21e8 0x21e9 0x2200 0x2202 0x2203 0x2205 0x2206 0x2207 0x2208 0x220b 0x220e 0x2211 0x2212 0x2213 0x221a 0x221d 0x221e 0x2220 0x2227 0x2228 0x2229 0x222a 0x222b 0x222c 0x222d 0x222e 0x222f 0x2230 0x2231 0x2232 0x2233 0x2234 0x2235 0x223c 0x223d 0x2252 0x2260 0x2261 0x2262 0x2266 0x2267 0x2268 0x2269 0x226a 0x226b 0x2282 0x2283 0x2284 0x2285 0x2286 0x2287 0x2288 0x2289 0x228a 0x228b 0x22a5 0x22b2 0x22b3 0x22ee 0x22ef 0x2312 0x2460 0x2461 0x2462 0x2463 0x2464 0x2465 0x2466 0x2467 0x2468 0x2469 0x246a 0x246b 0x246c 0x246d 0x246e 0x246f 0x2470 0x2471 0x2472 0x2473 0x2474 0x2475 0x2476 0x2477 0x2478 0x2479 0x247a 0x247b 0x247c 0x247d 0x247e 0x247f 0x2480 0x2481 0x2482 0x2483 0x2484 0x2485 0x2486 0x2487 0x2488 0x2489 0x248a 0x248b 0x248c 0x248d 0x248e 0x248f 0x2490 0x2491 0x2492 0x2493 0x2494 0x2495 0x2496 0x2497 0x2498 0x2499 0x249a 0x249b 0x249c 0x249d 0x249e 0x249f 0x24a0 0x24a1 0x24a2 0x24a3 0x24a4 0x24a5 0x24a6 0x24a7 0x24a8 0x24a9 0x24aa 0x24ab 0x24ac 0x24ad 0x24ae 0x24af 0x24b0 0x24b1 0x24b2 0x24b3 0x24b4 0x24b5 0x24b6 0x24b7 0x24b8 0x24b9 0x24ba 0x24bb 0x24bc 0x24bd 0x24be 0x24bf 0x24c0 0x24c1 0x24c2 0x24c3 0x24c4 0x24c5 0x24c6 0x24c7 0x24c8 0x24c9 0x24ca 0x24cb 0x24cc 0x24cd 0x24ce 0x24cf 0x24d0 0x24d1 0x24d2 0x24d3 0x24d4 0x24d5 0x24d6 0x24d7 0x24d8 0x24d9 0x24da 0x24db 0x24dc 0x24dd 0x24de 0x24df 0x24e0 0x24e1 0x24e2 0x24e3 0x24e4 0x24e5 0x24e6 0x24e7 0x24e8 0x24e9 0x24ea 0x2500 0x2501 0x2502 0x2503 0x250c 0x250f 0x2510 0x2513 0x2514 0x2517 0x2518 0x251b 0x251c 0x2523 0x2524 0x252b 0x252c 0x2533 0x2534 0x253b 0x253c 0x254b 0x25a0 0x25a1 0x25b2 0x25b3 0x25b6 0x25b7 0x25bc 0x25bd 0x25c0 0x25c1 0x25c6 0x25c7 0x25cb 0x25ce 0x25cf 0x25ef 0x2600 0x2601 0x2602 0x2603 0x2604 0x2605 0x2606 0x260e 0x260f 0x2610 0x2611 0x2612 0x2614 0x2615 0x261c 0x261e 0x262f 0x2639 0x263a 0x263b 0x263c 0x263d 0x263e 0x263f 0x2640 0x2641 0x2642 0x2660 0x2661 0x2662 0x2663 0x2664 0x2665 0x2666 0x2667 0x2668 0x2669 0x266a 0x266b 0x266c 0x266d 0x266e 0x266f 0x3001 0x3002 0x3003 0x3005 0x3006 0x3007 0x3008 0x3009 0x300a 0x300b 0x300c 0x300d 0x300e 0x300f 0x3010 0x3011 0x3012 0x3013 0x3014 0x3015 0x3016 0x3017 0x3018 0x3019 0x301a 0x301b 0x301c 0x301d 0x301e 0x301f 0x3020 0x3036 0x3041 0x3043 0x3045 0x3047 0x3049 0x3063 0x3083 0x3085 0x3087 0x308e 0x3090 0x3091 0x3099 0x309a 0x309b 0x309c 0x309d 0x309e 0x309f 0x30a1 0x30a3 0x30a5 0x30a7 0x30a9 0x30c3 0x30e3 0x30e5 0x30e7 0x30ee 0x30f0 0x30f1 0x30f4 0x30f5 0x30f6 0x30f7 0x30f8 0x30f9 0x30fa 0x30fb 0x30fc 0x30fd 0x30fe 0x30ff 0x3318 0x3326 0x337b 0x337c 0x337d 0x337e 0x3386 0x3387 0x338d 0x338e 0x338f 0x3390 0x3391 0x3392 0x3393 0x3394 0x3395 0x3396 0x3397 0x3398 0x3399 0x339a 0x339b 0x339c 0x339d 0x339e 0x339f 0x33a0 0x33a1 0x33a2 0x33a3 0x33a4 0x33a5 0x33a6 0x33cd 0xfe30 0xfe31 0xfe33 0xfe35 0xfe36 0xfe37 0xfe38 0xfe39 0xfe3a 0xfe3b 0xfe3c 0xfe3d 0xfe3e 0xfe3f 0xfe40 0xfe41 0xfe42 0xfe43 0xfe44 0xff01 0xff02 0xff03 0xff04 0xff05 0xff06 0xff07 0xff08 0xff09 0xff0a 0xff0b 0xff0c 0xff0d 0xff0e 0xff0f 0xff1a 0xff1b 0xff1c 0xff1d 0xff1e 0xff1f 0xff20 0xff3b 0xff3c 0xff3d 0xff3e 0xff3f 0xff40 0xff5b 0xff5c 0xff5d 0xff5e 0xff5f 0xff60 0xff61 0xff62 0xff63 0xff64 0xff65 0xffe0 0xffe1 0xffe2 0xffe3 0xffe4 0xffe5 0xffe6
<_name>Numbers <_name>Roman 0x2160 0x2161 0x2162 0x2163 0x2164 0x2165 0x2166 0x2167 0x2168 0x2169 0x216A 0x216B 0x216C 0x216D 0x216E 0x216F 0x2170 0x2171 0x2172 0x2173 0x2174 0x2175 0x2176 0x2177 0x2178 0x2179 0x217A 0x217B 0x217C 0x217D 0x217E 0x217F 0x2180 0x2181 0x2182 0x2183
<_name>Enclosed 0x2460 0x2461 0x2462 0x2463 0x2464 0x2465 0x2466 0x2467 0x2468 0x2469 0x246A 0x246B 0x246C 0x246D 0x246E 0x246F 0x2470 0x2471 0x2472 0x2473 0x2474 0x2475 0x2476 0x2477 0x2478 0x2479 0x247A 0x247B 0x247C 0x247D 0x247E 0x247F 0x2480 0x2481 0x2482 0x2483 0x2484 0x2485 0x2486 0x2487 0x2488 0x2489 0x248A 0x248B 0x248C 0x248D 0x248E 0x248F 0x2490 0x2491 0x2492 0x2493 0x2494 0x2495 0x2496 0x2497 0x2498 0x2499 0x249A 0x249B
<_name>Fraction 0x00BC 0x00BD 0x00BE 0x2153 0x2154 0x2155 0x2156 0x2157 0x2158 0x2159 0x215A 0x215B 0x215C 0x215D 0x215E 0x215F
<_name>Technical <_name>Unit 0x2103 0x2109 0x3371 0x3372 0x3373 0x3374 0x3375 0x3376 0x3380 0x3381 0x3382 0x3383 0x3384 0x3385 0x3386 0x3387 0x3388 0x3389 0x338A 0x338B 0x338C 0x338D 0x338E 0x338F 0x3390 0x3391 0x3392 0x3393 0x3394 0x3395 0x3396 0x3397 0x3398 0x3399 0x339A 0x339B 0x339C 0x339D 0x339E 0x339F 0x33A0 0x33A1 0x33A2 0x33A3 0x33A4 0x33A5 0x33A6 0x33A7 0x33A8 0x33A9 0x33AA 0x33AB 0x33AC 0x33AD 0x33AE 0x33AF 0x33B0 0x33B1 0x33B2 0x33B3 0x33B4 0x33B5 0x33B6 0x33B7 0x33B8 0x33B9 0x33BA 0x33BB 0x33BC 0x33BD 0x33BE 0x33BF 0x33C0 0x33C1 0x33C2 0x33C3 0x33C4 0x33C5 0x33C6 0x33C8 0x33C9 0x33CA 0x33CB 0x33CC 0x33CE 0x33CF 0x33D0 0x33D1 0x33D2 0x33D3 0x33D4 0x33D5 0x33D6 0x33D7 0x33D8 0x33D9 0x33DB 0x33DC 0x33DD
10 <_name>Mathematical 0x2200 0x2201 0x2202 0x2203 0x2204 0x2205 0x2206 0x2207 0x2208 0x2209 0x220A 0x220B 0x220C 0x220D 0x220E 0x220F 0x2210 0x2211 0x2212 0x2213 0x2214 0x2215 0x2216 0x2217 0x2218 0x2219 0x221A 0x221B 0x221C 0x221D 0x221E 0x221F 0x2220 0x2221 0x2222 0x2223 0x2224 0x2225 0x2226 0x2227 0x2228 0x2229 0x222A 0x222B 0x222C 0x222D 0x222E 0x222F 0x2230 0x2231 0x2232 0x2233 0x2234 0x2235 0x2236 0x2237 0x2238 0x2239 0x223A 0x223B 0x223C 0x223D 0x223E 0x223F 0x2240 0x2241 0x2242 0x2243 0x2244 0x2245 0x2246 0x2247 0x2248 0x2249 0x224A 0x224B 0x224C 0x224D 0x224E 0x224F 0x2250 0x2251 0x2252 0x2253 0x2254 0x2255 0x2256 0x2257 0x2258 0x2259 0x225A 0x225B 0x225C 0x225D 0x225E 0x225F 0x2260 0x2261 0x2262 0x2263 0x2264 0x2265 0x2266 0x2267 0x2268 0x2269 0x226A 0x226B 0x226C 0x226D 0x226E 0x226F 0x2270 0x2271 0x2272 0x2273 0x2274 0x2275 0x2276 0x2277 0x2278 0x2279 0x227A 0x227B 0x227C 0x227D 0x227E 0x227F 0x2280 0x2281 0x2282 0x2283 0x2284 0x2285 0x2286 0x2287 0x2288 0x2289 0x228A 0x228B 0x228C 0x228D 0x228E 0x228F 0x2290 0x2291 0x2292 0x2293 0x2294 0x2295 0x2296 0x2297 0x2298 0x2299 0x229A 0x229B 0x229C 0x229D 0x229E 0x229F 0x22A0 0x22A1 0x22A2 0x22A3 0x22A4 0x22A5 0x22A6 0x22A7 0x22A8 0x22A9 0x22AA 0x22AB 0x22AC 0x22AD 0x22AE 0x22AF 0x22B0 0x22B1 0x22B2 0x22B3 0x22B4 0x22B5 0x22B6 0x22B7 0x22B8 0x22B9 0x22BA 0x22BB 0x22BC 0x22BD 0x22BE 0x22BF 0x22C0 0x22C1 0x22C2 0x22C3 0x22C4 0x22C5 0x22C6 0x22C7 0x22C8 0x22C9 0x22CA 0x22CB 0x22CC 0x22CD 0x22CE 0x22CF 0x22D0 0x22D1 0x22D2 0x22D3 0x22D4 0x22D5 0x22D6 0x22D7 0x22D8 0x22D9 0x22DA 0x22DB 0x22DC 0x22DD 0x22DE 0x22DF 0x22E0 0x22E1 0x22E2 0x22E3 0x22E4 0x22E5 0x22E6 0x22E7 0x22E8 0x22E9 0x22EA 0x22EB 0x22EC 0x22ED 0x22EE 0x22EF
10 <_name>Miscellaneous 0x2300 0x2301 0x2302 0x2303 0x2304 0x2305 0x2306 0x2307 0x2308 0x2309 0x230A 0x230B 0x230C 0x230D 0x230E 0x230F 0x2310 0x2311 0x2312 0x2313 0x2314 0x2315 0x2316 0x2317 0x2318 0x2319 0x231A 0x231B 0x231C 0x231D 0x231E 0x231F 0x2320 0x2321 0x2322 0x2323 0x2324 0x2325 0x2326 0x2327 0x2328 0x2329 0x232A 0x232B 0x232C 0x232D 0x232E 0x232F 0x2330 0x2331 0x2332 0x2333 0x2334 0x2335 0x2336 0x2337 0x2338 0x2339 0x233A 0x233B 0x233C 0x233D 0x233E 0x233F 0x2340 0x2341 0x2342 0x2343 0x2344 0x2345 0x2346 0x2347 0x2348 0x2349 0x234A 0x234B 0x234C 0x234D 0x234E 0x234F 0x2350 0x2351 0x2352 0x2353 0x2354 0x2355 0x2356 0x2357 0x2358 0x2359 0x235A 0x235B 0x235C 0x235D 0x235E 0x235F 0x2360 0x2361 0x2362 0x2363 0x2364 0x2365 0x2366 0x2367 0x2368 0x2369 0x236A 0x236B 0x236C 0x236D 0x236E 0x236F 0x2370 0x2371 0x2372 0x2373 0x2374 0x2375 0x2376 0x2377 0x2378 0x2379 0x237A 0x237B 0x237C 0x237D 0x237E 0x237F 0x2380 0x2381 0x2382 0x2383 0x2384 0x2385 0x2386 0x2387 0x2388 0x2389 0x238A 0x238B 0x238C 0x238D 0x238E 0x238F 0x2390 0x2391 0x2392 0x2393 0x2394 0x2395 0x2396 0x2397 0x2398 0x2399 0x239A 0x239B 0x239C 0x239D 0x239E 0x239F 0x23A0 0x23A1 0x23A2 0x23A3 0x23A4 0x23A5 0x23A6 0x23A7 0x23A8 0x23A9 0x23AA 0x23AB 0x23AC 0x23AD 0x23AE 0x23AF 0x23B0 0x23B1 0x23B2 0x23B3 0x23B4 0x23B5 0x23B6 0x23B7 0x23B8 0x23B9 0x23BA 0x23BB 0x23BC 0x23BD 0x23BE 0x23BF 0x23C0 0x23C1 0x23C2 0x23C3 0x23C4 0x23C5 0x23C6 0x23C7 0x23C8 0x23C9 0x23CA 0x23CB 0x23CC 0x23CD 0x23CE 0x23CF 0x23D0
<_name>Controls 0x2400 0x2401 0x2402 0x2403 0x2404 0x2405 0x2406 0x2407 0x2408 0x2409 0x240A 0x240B 0x240C 0x240D 0x240E 0x240F 0x2410 0x2411 0x2412 0x2413 0x2414 0x2415 0x2416 0x2417 0x2418 0x2419 0x241A 0x241B 0x241C 0x241D 0x241E 0x241F 0x2420 0x2421 0x2422 0x2423 0x2424 0x2425 0x2426
<_name>OCR 0x2440 0x2441 0x2442 0x2443 0x2444 0x2445 0x2446 0x2447 0x2448 0x2449 0x244A
<_name>Graphics 10 <_name>Arrow 0x2190 0x2191 0x2192 0x2193 0x2194 0x2195 0x2196 0x2197 0x2198 0x2199 0x219A 0x219B 0x219C 0x219D 0x219E 0x219F 0x21A0 0x21A1 0x21A2 0x21A3 0x21A4 0x21A5 0x21A6 0x21A7 0x21A8 0x21A9 0x21AA 0x21AB 0x21AC 0x21AD 0x21AE 0x21AF 0x21B0 0x21B1 0x21B2 0x21B3 0x21B4 0x21B5 0x21B6 0x21B7 0x21B8 0x21B9 0x21BA 0x21BB 0x21BC 0x21BD 0x21BE 0x21BF 0x21C0 0x21C1 0x21C2 0x21C3 0x21C4 0x21C5 0x21C6 0x21C7 0x21C8 0x21C9 0x21CA 0x21CB 0x21CC 0x21CD 0x21CE 0x21CF 0x21D0 0x21D1 0x21D2 0x21D3 0x21D4 0x21D5 0x21D6 0x21D7 0x21D8 0x21D9 0x21DA 0x21DB 0x21DC 0x21DD 0x21DE 0x21DF 0x21E0 0x21E1 0x21E2 0x21E3 0x21E4 0x21E5 0x21E6 0x21E7 0x21E8 0x21E9 0x21EA 0x21EB 0x21EC 0x21ED 0x21EE 0x21EF 0x21F0 0x21F1 0x21F2 0x21F3 0x21F4 0x21F5 0x21F6 0x21F7 0x21F8 0x21F9 0x21FA 0x21FB 0x21FC 0x21FD 0x21FE 0x21FF 0x27F0 0x27F1 0x27F2 0x27F3 0x27F4 0x27F5 0x27F6 0x27F7 0x27F8 0x27F9 0x27FA 0x27FB 0x27FC 0x27FD 0x27FE 0x27FF 0x2906 0x2907
<_name>Box Drawing 0x2500 0x2501 0x2502 0x2503 0x2504 0x2505 0x2506 0x2507 0x2508 0x2509 0x250A 0x250B 0x250C 0x250D 0x250E 0x250F 0x2510 0x2511 0x2512 0x2513 0x2514 0x2515 0x2516 0x2517 0x2518 0x2519 0x251A 0x251B 0x251C 0x251D 0x251E 0x251F 0x2520 0x2521 0x2522 0x2523 0x2524 0x2525 0x2526 0x2527 0x2528 0x2529 0x252A 0x252B 0x252C 0x252D 0x252E 0x252F 0x2530 0x2531 0x2532 0x2533 0x2534 0x2535 0x2536 0x2537 0x2538 0x2539 0x253A 0x253B 0x253C 0x253D 0x253E 0x253F 0x2540 0x2541 0x2542 0x2543 0x2544 0x2545 0x2546 0x2547 0x2548 0x2549 0x254A 0x254B 0x254C 0x254D 0x254E 0x254F 0x2550 0x2551 0x2552 0x2553 0x2554 0x2555 0x2556 0x2557 0x2558 0x2559 0x255A 0x255B 0x255C 0x255D 0x255E 0x255F 0x2560 0x2561 0x2562 0x2563 0x2564 0x2565 0x2566 0x2567 0x2568 0x2569 0x256A 0x256B 0x256C 0x256D 0x256E 0x256F 0x2570 0x2571 0x2572 0x2573 0x2574 0x2575 0x2576 0x2577 0x2578 0x2579 0x257A 0x257B 0x257C 0x257D 0x257E 0x257F
<_name>Block 0x2580 0x2581 0x2582 0x2583 0x2584 0x2585 0x2586 0x2587 0x2588 0x2589 0x258A 0x258B 0x258C 0x258D 0x258E 0x258F 0x2590 0x2591 0x2592 0x2593 0x2594 0x2595 0x2596 0x2597 0x2598 0x2599 0x259A 0x259B 0x259C 0x259D 0x259E 0x259F
<_name>Geometric 0x25A0 0x25A1 0x25A2 0x25A3 0x25A4 0x25A5 0x25A6 0x25A7 0x25A8 0x25A9 0x25AA 0x25AB 0x25AC 0x25AD 0x25AE 0x25AF 0x25B0 0x25B1 0x25B2 0x25B3 0x25B4 0x25B5 0x25B6 0x25B7 0x25B8 0x25B9 0x25BA 0x25BB 0x25BC 0x25BD 0x25BE 0x25BF 0x25C0 0x25C1 0x25C2 0x25C3 0x25C4 0x25C5 0x25C6 0x25C7 0x25C8 0x25C9 0x25CA 0x25CB 0x25CC 0x25CD 0x25CE 0x25CF 0x25D0 0x25D1 0x25D2 0x25D3 0x25D4 0x25D5 0x25D6 0x25D7 0x25D8 0x25D9 0x25DA 0x25DB 0x25DC 0x25DD 0x25DE 0x25DF 0x25E0 0x25E1 0x25E2 0x25E3 0x25E4 0x25E5 0x25E6 0x25E7 0x25E8 0x25E9 0x25EA 0x25EB 0x25EC 0x25ED 0x25EE 0x25EF 0x25F0 0x25F1 0x25F2 0x25F3 0x25F4 0x25F5 0x25F6 0x25F7 0x25F8 0x25F9 0x25FA 0x25FB 0x25FC 0x25FD 0x25FE 0x25FF
<_name>Braille 0x2800 0x2801 0x2802 0x2803 0x2804 0x2805 0x2806 0x2807 0x2808 0x2809 0x280A 0x280B 0x280C 0x280D 0x280E 0x280F 0x2810 0x2811 0x2812 0x2813 0x2814 0x2815 0x2816 0x2817 0x2818 0x2819 0x281A 0x281B 0x281C 0x281D 0x281E 0x281F 0x2820 0x2821 0x2822 0x2823 0x2824 0x2825 0x2826 0x2827 0x2828 0x2829 0x282A 0x282B 0x282C 0x282D 0x282E 0x282F 0x2830 0x2831 0x2832 0x2833 0x2834 0x2835 0x2836 0x2837 0x2838 0x2839 0x283A 0x283B 0x283C 0x283D 0x283E 0x283F 0x2840 0x2841 0x2842 0x2843 0x2844 0x2845 0x2846 0x2847 0x2848 0x2849 0x284A 0x284B 0x284C 0x284D 0x284E 0x284F 0x2850 0x2851 0x2852 0x2853 0x2854 0x2855 0x2856 0x2857 0x2858 0x2859 0x285A 0x285B 0x285C 0x285D 0x285E 0x285F 0x2860 0x2861 0x2862 0x2863 0x2864 0x2865 0x2866 0x2867 0x2868 0x2869 0x286A 0x286B 0x286C 0x286D 0x286E 0x286F 0x2870 0x2871 0x2872 0x2873 0x2874 0x2875 0x2876 0x2877 0x2878 0x2879 0x287A 0x287B 0x287C 0x287D 0x287E 0x287F 0x2880 0x2881 0x2882 0x2883 0x2884 0x2885 0x2886 0x2887 0x2888 0x2889 0x288A 0x288B 0x288C 0x288D 0x288E 0x288F 0x2890 0x2891 0x2892 0x2893 0x2894 0x2895 0x2896 0x2897 0x2898 0x2899 0x289A 0x289B 0x289C 0x289D 0x289E 0x289F 0x28A0 0x28A1 0x28A2 0x28A3 0x28A4 0x28A5 0x28A6 0x28A7 0x28A8 0x28A9 0x28AA 0x28AB 0x28AC 0x28AD 0x28AE 0x28AF 0x28B0 0x28B1 0x28B2 0x28B3 0x28B4 0x28B5 0x28B6 0x28B7 0x28B8 0x28B9 0x28BA 0x28BB 0x28BC 0x28BD 0x28BE 0x28BF 0x28C0 0x28C1 0x28C2 0x28C3 0x28C4 0x28C5 0x28C6 0x28C7 0x28C8 0x28C9 0x28CA 0x28CB 0x28CC 0x28CD 0x28CE 0x28CF 0x28D0 0x28D1 0x28D2 0x28D3 0x28D4 0x28D5 0x28D6 0x28D7 0x28D8 0x28D9 0x28DA 0x28DB 0x28DC 0x28DD 0x28DE 0x28DF 0x28E0 0x28E1 0x28E2 0x28E3 0x28E4 0x28E5 0x28E6 0x28E7 0x28E8 0x28E9 0x28EA 0x28EB 0x28EC 0x28ED 0x28EE 0x28EF
<_name>Punctuations 10 <_name>General 0x2010 0x2011 0x2012 0x0213 0x2014 0x2015 0x2016 0x2017 0x2018 0x2019 0x201A 0x201B 0x201C 0x201D 0x201E 0x201F 0x2020 0x2021 0x2022 0x2023 0x2024 0x2025 0x2026 0x2027 0x2030 0x2031 0x2032 0x2033 0x2034 0x2035 0x2036 0x2037 0x2038 0x2039 0x203A 0x203B 0x203C 0x203D 0x203E 0x203F 0x2040 0x2041 0x2042 0x2043 0x2044 0x2045 0x2046 0x2047 0x2048 0x2049 0x204A 0x204B 0x204C 0x204D 0x204E 0x204F 0x2050 0x2051 0x2052 0x2057
10 <_name>CJK 0x3001 0x3002 0x3003 0x3005 0x3006 0x3008 0x3009 0x300A 0x300B 0x300C 0x300D 0x300E 0x300F 0x3010 0x3011 0x3012 0x3013 0x3014 0x3015 0x3016 0x3017 0x3018 0x3019 0x301A 0x301B 0x301C 0x301D 0x301E 0x301F 0x3030
<_name>CJK Compatibility 0xFE30 0xFE31 0xFE32 0xFE33 0xFE34 0xFE35 0xFE36 0xFE37 0xFE38 0xFE39 0xFE3A 0xFE3B 0xFE3C 0xFE3D 0xFE3E 0xFE3F 0xFE40 0xFE41 0xFE42 0xFE43 0xFE44 0xFE45 0xFE46 0xFE47 0xFE48 0xFE49 0xFE4A 0xFE4B 0xFE4C 0xFE4D 0xFE4E 0xFE4F
<_name>Small Form 0xFE50 0xFE51 0xFE52 0xFE54 0xFE55 0xFE56 0xFE57 0xFE58 0xFE59 0xFE5A 0xFE5B 0xFE5C 0xFE5D 0xFE5E 0xFE5F 0xFE60 0xFE61 0xFE62 0xFE63 0xFE64 0xFE65 0xFE66 0xFE68 0xFE69 0xFE6A 0xFE6B
input-pad-1.1.0/data/char2hexstr.py000077500000000000000000000045551476727667600172020ustar00rootroot00000000000000#!/usr/bin/python # vim:set et sts=4 sw=4: # -*- coding: utf-8 -*- # # input-pad - The input pad # # Copyright (c) 2010-2012 Takao Fujiwara # Copyright (c) 2010-2012 Red Hat, Inc. # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301 USA import os, sys reverse = 0 stdread = 0 disable_orig_output = 0 def usage (): print "usage: " + os.path.basename(sys.argv[0]) + " FILENAME" print "FILENAME FILENAME includes UTF-8 chars" if len (sys.argv) > 1: if sys.argv[1] == '--disable-verbose' or sys.argv[1] == '-s': disable_orig_output = 1 del sys.argv[1] if len (sys.argv) > 1: if sys.argv[1] == '--stdin' or sys.argv[1] == '-i': stdread = 1 del sys.argv[1] if len (sys.argv) > 1: if sys.argv[1] == '--reverse' or sys.argv[1] == '-r': reverse = 1 del sys.argv[1] def to_hex_line (line): retval = "" for ch in unicode (line, "utf-8"): if ch == ' ': continue retval = retval + " " + hex (ord (ch)) return retval def to_char_line (line): retval = "" for v in line.split (): if not v.startswith ("0x") and not v.startswith ("0X"): continue retval = retval + " " + unichr (int (v, 16)) return retval def convert_line (line): line = line.rstrip () if disable_orig_output == 0: print line if reverse == 0: print to_hex_line (line) else: print to_char_line (line) if stdread != 0: for line in sys.stdin: convert_line (line) exit (0) if len(sys.argv) == 1: usage () exit (-1) for filename in sys.argv[1:]: print filename + " :" for line in file (filename): convert_line (line) input-pad-1.1.0/data/cmd.xml.in000066400000000000000000000044501476727667600162540ustar00rootroot00000000000000 <_name>Command 3 <_name>Date <_label>Normal Date date "+%x" <_label>Date and Time date <_label>ChangeLog date LANG=C date "+%a %b %e %Y $EMAIL_ADDRESS" <_label>USA English date LANG=C date "+%D" <_label>UK English date LANG=C date "+%d/%m/%y" <_label>ISO 8601 date date "+%F" <_label>Era date "+%EC%Ey" <_label>Century Year LANG=C date "+%Y" <_label>Normal Time date "+%X" <_label>English Time date "+%T" <_label>Month date "+%B" <_label>English Month LANG=C date "+%B" <_label>Short Month date "+%b" <_label>English Short Month LANG=C date "+%b" <_label>Weekday date "+%A" <_label>English Weekday LANG=C date "+%A" <_label>Short Weekday date "+%a" <_label>English Short Weekday LANG=C date "+%a"
input-pad-1.1.0/data/goth.xml.in000066400000000000000000000056201476727667600164520ustar00rootroot00000000000000 10 <_name>Gothic Aza/Ans/Asks/1 Bercna/2 Geuua/Giba/3 Daaz/Dags/4 Eyz/Aiƕs/Eivs/5 Quetra/Quairna/6 Ezec/7 Haal/8 Thyth/Þiuþ/Þaurnus/9 Iiz/10 Chozma/Konja/20 Laaz/30 Manna/40 Noicz/Nauþs/50 Gaar/Jer/60 Uraz/70 Pertra/80 90 Reda/100 Sugil/Sauïl/Sojil/200 Tyz/300 Uuine/Vinja/Vinna/400 Fe/Faihu/500 Enguz/600 Uuaer/700 Utal/800 900
input-pad-1.1.0/data/input-pad.desktop.in000066400000000000000000000001301476727667600202520ustar00rootroot00000000000000[Desktop Entry] Name=Input Pad Comment=Input Pad Icon=input-pad Exec=/usr/bin/input-pad input-pad-1.1.0/data/input-pad.png000066400000000000000000000057071476727667600167770ustar00rootroot00000000000000PNG  IHDR00WsRGBbKGD pHYs  tIME '@*]tEXtCommentCreated with GIMPW "IDAThY{e}3޽wwn@ UD PRB<4RDD&`xFAiaB(!hQ*(R-v޽{3scܝw&ٙ;;w|k4l`?7P=y`%Ek݌Kښ<3^D?{L z]zw2ܔE uJeD<]e!^MnKd1H((b {X7&[ @>E}k[L 쯧6"Tbƞ-L01"BU `B@L8c~T)L oTS rxSoccj( #LrR.yҠ)AER 8ʋ8D%@D8{Vo([V92⳥p}brR ȩy=K|G, CirK Rgԣ ?6!(r}h9FX*CD X `T 4`(>F,$b DÌ0\^Μ0A@B&7AʭUrd RJ*rM l)Recꍓt$daUs [ &P ;5$x, =*Nx-71!*m,b2ʨ+,Hc - ! 9s+a']-i]( z JzqCo"*͵FF@… /΀jX{@6$Ti i.+I<24 B. " Z0C^C1~D0$p +jI]m=@i.]}H{y[OLsI$Mt%Ғ9XΥ}7S7͝ٶ5]=#M-m'14`}E~q&tz n8Fמ`Dex'`cuf ՜<T(!}EraGLGҕ9#aZ x~NiC3xH8.[.! ) {X0~@K'r\M馂!- e5zD?)Ż2ƊlV` -\sm=lm_0p}_D K8 ڮ8<&*6L 0ΨcΨ5` 39'e1$H.._K%kϴ cI}+Ubs"bGgWٵ75 Ty5wylx(>!H[KlnmR(ND!C5V{P+R.[Y2I16;wLun~80%" ήwo9KhQFp]TkΣS[,SBI;ѯsDZ$bu?r8Ր=@* @};յ"@:;-oBD~{W 9k7evnd3L)C$ 4-:cJ4_⨥Ymy柍ƆOs/=/.뽤R D@ړ[h+L|wD2y^yO_sL3n*MB/Ri=HqRdbP @ X禧~۷3d7?뉑CLV}1S*&*<ݺ wӨSla5]v+?5k_ug,Yy$Dtܮ/O7wUn BW>T)Ȩ)Fԣ v` \oE:|?hhHH4ϣGBLBBbaТfȈz;RiFQYMYC6TbXRc&JT EFARurA0Ui }>RYc'e"&n4tDN$c"@bEFđav/4oS9'6l55cnyn=o%7 .~_{)9:MltMEIENDB`input-pad-1.1.0/data/input-pad.ui000066400000000000000000001137231476727667600166260ustar00rootroot00000000000000 FileMenu _File Close Close the program _Close PadMenu _Pad CodePoint _Code Point ShowPad _Show Pad ShowAllChars Show _All Characters ShowCustomChars Show _Custom Characters ShowAllChars True ShowNothing Show _Nothing ShowAllChars ShowLayout Show _Keyboard Layout True HelpMenu _Help Contents _Troubleshoot About gtk-about Code Point Dialog TopWindow False True 10 False 10 True Unicode You can choose encoding type False False True Current Encoding You can choose encoding type EncodingUnicodeButton False False 1 True Copy Buffer You can choose encoding type EncodingUnicodeButton False False 2 False False 0 True 10 True Base 16 Hex Set number case to hexadecimal False False True Base 10 Dec Set number case to decimal Base16Button False False 1 True Base 8 Oct Set number case to octal Base16Button False False 2 True Base 2 Bin Set number case to binary Base16Button False False 3 False False 1 True Code Point: 0.05 False False 2 True 10 True 10 False False True True 1 0 False GTK_UPDATE_ALWAYS False False adjustment1 False False 1 False False 3 True 10 True Character: 0.05 False False 0 True False False 1 False False 4 20 True _Send TRUE True gtk-close TRUE TRUE False False 5 Input Pad Troubleshoot TopWindow 10 True word-char True This application can be run either as a stand-alone program or under an input method application. If you wish to send multi-byte characters, this application needs to be run under an input method application. If you wish to send characters to X11 applications, those applications needs to allow send events. e.g. % xterm -xrm "XTerm*allowSendEvents: true" You also can copy pad files from /usr/share/input-pad/pad to $HOME/.config/pad to customize those in "Custom Character" pane. False False 20 True gtk-ok TRUE False False 1 Configure Keyboard Layouts TopWindow True False 0 10 True True 5 10 True False 0 10 True A_vailable layouts: True False GTK_JUSTIFY_LEFT False False 0 0.5 0 0 ConfigLayoutsAddTreeView 0 False False True True GTK_POLICY_AUTOMATIC GTK_POLICY_AUTOMATIC GTK_SHADOW_ETCHED_IN GTK_CORNER_TOP_LEFT 200 300 True True True True False True 1 0 False False True True gtk-add True GTK_RELIEF_NORMAL 2 0 False False 0 False False True False 0 10 True _Layouts shown in the list: True False GTK_JUSTIFY_LEFT False False 0 0.5 0 0 ConfigLayoutsRemoveTreeView 0 False False True True GTK_POLICY_AUTOMATIC GTK_POLICY_AUTOMATIC GTK_SHADOW_ETCHED_IN GTK_CORNER_TOP_LEFT 200 300 True True True True False True 1 0 False False True True gtk-remove True GTK_RELIEF_NORMAL 2 0 False False 1 0 False False 0 0 False False True 5 end True True _Options TRUE GTK_RELIEF_NORMAL 0 0 False False 1 0 False False 20 True gtk-close TRUE 0 False False 2 False False Configure Keyboard Options ConfigLayoutsDialog vertical True 10 12 True 12 12 True 0 none True 12 12 True vertical 6 True True 5 450 350 automatic automatic out True none True vertical 1 True <b>Keyboard Option</b> True False 0 True True end gtk-close True True False False 0 False False end 1 Input Pad Copyright (c) 2010-2012 Takao Fujiwara Copyright (c) 2010-2012 Red Hat, Inc. The input pad is a tool to send a character on button. LGPL http://code.google.com/p/input-pad/ Takao Fujiwara <takao.fujiwara1@gmail.com> Daiki Ueno <ueno@unixuser.org> translator_credits input-pad True TopWindow 0 1114111 0 1 GTK_WINDOW_TOPLEVEL Input Pad 400 440 False True True True The menubar False True 10 10 1 False False True 10 10 2 False False True 10 10 3 False False True False 4 input-pad-1.1.0/data/ipa-obsolete.xml.in000066400000000000000000000134121476727667600200720ustar00rootroot00000000000000 10 <_name>IPA (Obsolete) <_comment>Open back unrounded vowel <_comment>Palatalized voiced bilabial plosive <_comment>Voiceless palatal implosive <_comment>Alveolar click <_comment>Palatalized voiced alveolar plosive <_comment>Voiced alveolar affricate <_comment>Voiced alveopalatal affricate <_comment>Voiced palato-alveolar affricate <_comment>Palatalized voiceless labiodental fricative <_comment>Palatalized voiced velar plosive <_comment>Palatalized voiceless velar plosive <_comment>Voiceless velar implosive <_comment>Palatalized alveolar lateral approximant <_comment>Palatalized bilabial nasal <_comment>Palatalized alveolar nasal <_comment>Syllabic alveolar nasal <_comment>Palatalized voiceless bilabial plosive <_comment>Voiceless bilabial implosive <_comment>Palatalized alveolar trill <_comment>Voiced strident apico-alveolar trill <_comment>Palatalized voiceless alveolar fricative <_comment>Voiceless alveopalatal fricative <_comment>Voiceless alveopalatal fricative <_comment>Labialized voiceless palato-alveolar fricative <_comment>Voiceless alveopalatal affricate <_comment>Voiceless alveolar affricate <_comment>Voiceless palato-alveolar affricate <_comment>Palatalized voiceless alveolar plosive <_comment>Voiceless alveolar implosive <_comment>Dental click <_comment>Voiceless uvular implosive <_comment>Palatalized voiced labiodental fricative <_comment>Palatalized voiceless velar fricative <_comment>Palatalized voiced alveolar fricative <_comment>Labialized voiced palato-alveolar fricative <_comment>Voiced alveopalatal fricative <_comment>Near-close near-back vowel <_comment>Voiced alveolar affricate <_comment>Alveolar lateral click <_comment>Voiceless alveolar affricate <_comment>Labialized voiceless alveolar or dental fricative <_comment>Labialized voiced alveolar or dental fricative <_comment>Combining labialization mark <_comment>Combining palatalization mark
input-pad-1.1.0/data/ipa-unofficial.xml.in000066400000000000000000000067271476727667600204100ustar00rootroot00000000000000 10 <_name>IPA (Unofficial) <_comment>Voiced labiodental plosive <_comment>Voiceless palatal lateral affricate <_comment>Voiced retroflex implosive <_comment>Alveolar flap <_comment>Voiceless palatal lateral fricative <_comment>Retroflex flap <_comment>Voiceless retroflex lateral fricative <_comment>Voiceless retroflex lateral fricative (PUA) <_comment>Voiceless velar lateral affricate <_comment>Voiceless velar lateral fricative <_comment>Epiglottal trill <_comment>Voiceless labiodental plosive <_comment>Voiceless retroflex lateral affricate <_comment>Voiceless retroflex lateral affricate (PUA) <_comment>Combining stridency mark <_comment>Combining stridency mark (PUA)
input-pad-1.1.0/data/ipa.xml.in000066400000000000000000000733071476727667600162710ustar00rootroot00000000000000 10 <_name>IPA <_comment>Open front unrounded vowel <_comment>Open central unrounded vowel <_comment>Near-open central vowel <_comment>Open back unrounded vowel <_comment>Open back rounded vowel <_comment>Open-mid back unrounded vowel <_comment>Near-open front unrounded vowel <_comment>Voiced bilabial plosive <_comment>Voiced labiodental affricate <_comment>Voiced bilabial implosive <_comment>Bilabial trill <_comment>Voiced bilabial fricative <_comment>Voiceless palatal plosive <_comment>Voiceless palatal fricative <_comment>Voiceless palatal affricate <_comment>Voiceless palatal lateral affricate <_comment>Voiceless alveopalatal fricative <_comment>Voiced alveolar plosive <_comment>Voiced alveolar implosive <_comment>Voiced retroflex plosive <_comment>Voiced dental fricative <_comment>Voiced alveolar lateral affricate <_comment>Voiced alveolar affricate <_comment>Voiced palato-alveolar affricate <_comment>Voiced alveopalatal affricate <_comment>Voiced retroflex affricate <_comment>Close-mid front unrounded vowel <_comment>Close-mid central unrounded vowel <_comment>Mid-central vowel <_comment>Rhotacized mid-central vowel <_comment>Open-mid front unrounded vowel <_comment>Open-mid central rounded vowel <_comment>Open-mid central unrounded vowel <_comment>Rhotacized open-mid central unrounded vowel <_comment>Voiceless labiodental fricative <_comment>Velopharyngeal fricative <_comment>Voiced velar plosive <_comment>Voiced labial-velar plosive <_comment>Voiced velar implosive <_comment>Voiced uvular plosive <_comment>Voiced uvular implosive <_comment>Voiceless glottal fricative <_comment>Voiced glottal fricative <_comment>Voiceless pharyngeal fricative <_comment>Voiceless coarticulated velar and palato-alveolar fricative <_comment>Voiceless epiglottal fricative <_comment>Close front unrounded vowel <_comment>Near-close near-front unrounded vowel <_comment>Near-close central unrounded vowel <_comment>Close central unrounded vowel <_comment>Palatal approximant <_comment>Voiced palatal fricative <_comment>Voiced palatal plosive <_comment>Voiced palatal affricate <_comment>Voiced palatal implosive <_comment>Voiceless velar plosive <_comment>Voiceless velar lateral affricate <_comment>Voiceless labial-velar plosive <_comment>Voiceless velar affricate <_comment>Alveolar lateral approximant <_comment>Velarized alveolar lateral approximant <_comment>Voiceless alveolar lateral fricative <_comment>Retroflex lateral approximant <_comment>Voiced alveolar lateral fricative <_comment>Velar lateral approximant <_comment>Voiceless velar lateral fricative <_comment>Bilabial nasal <_comment>Labiodental nasal <_comment>Alveolar nasal <_comment>Velar nasal <_comment>Labial-velar nasal <_comment>Palatal nasal <_comment>Retroflex nasal <_comment>Uvular nasal <_comment>Close-mid back rounded vowel <_comment>Open-mid back unrounded vowel <_comment>Close-mid front rounded vowel <_comment>Close-mid central rounded vowel <_comment>Open-mid front rounded vowel <_comment>Open front rounded vowel <_comment>Voiceless bilabial plosive <_comment>Voiceless bilabial-labiodental affricate <_comment>Voiceless bilabial affricate <_comment>Voiceless labiodental affricate <_comment>Voiceless uvular plosive <_comment>Alveolar trill <_comment>Alveolar flap <_comment>Alveolar lateral flap <_comment>Uvular trill <_comment>Retroflex flap <_comment>Alveolar approximant <_comment>Retroflex approximant <_comment>Voiced uvular fricative <_comment>Voiceless alveolar fricative <_comment>Voiceless palato-alveolar fricative <_comment>Voiceless retroflex fricative <_comment>Voiceless alveolar plosive <_comment>Voiceless retroflex plosive <_comment>Voiceless alveolar lateral affricate <_comment>Voiceless alveolar affricate <_comment>Voiceless palato-alveolar affricate <_comment>Voiceless alveopalatal affricate <_comment>Voiceless retroflex affricate <_comment>Close back rounded vowel <_comment>Near-close near-back vowel <_comment>Near-close central vowel <_comment>Close central rounded vowel <_comment>Labial-palatal approximant <_comment>Close back unrounded vowel <_comment>Voiced labiodental fricative <_comment>Labiodental flap <_comment>Labiodental approximant <_comment>Voiced velar fricative <_comment>Close-mid back unrounded vowel <_comment>Voiced labiovelar approximant <_comment>Voiceless labiovelar approximant <_comment>Velar approximant <_comment>Bilabial percussive <_comment>Voiceless velar fricative <_comment>Voiceless uvular fricative <_comment>Close front rounded vowel <_comment>Near-close near-front rounded vowel <_comment>Palatal lateral approximant <_comment>Voiceless palatal lateral fricative <_comment>Voiced alveolar fricative <_comment>Voiced palato-alveolar fricative <_comment>Voiced alveopalatal fricative <_comment>Voiced retroflex fricative <_comment>Voiceless dental fricative <_comment>Voiceless bilabial fricative <_comment>Glottal stop <_comment>Epiglottal plosive <_comment>Voiced pharyngeal fricative <_comment>Voiced epiglottal fricative <_comment>Bilabial click <_comment>Dental click <_comment>Alveolar click <_comment>Palatal click <_comment>Alveolar lateral click <_comment>Bidental percussive <_comment>Aspiration mark <_comment>Non-aspiration mark <_comment>Breathy voice mark <_comment>Palatalization mark <_comment>Lateral release mark <_comment>Bilabial nasal release mark <_comment>Labiodental nasal release mark <_comment>Alveolar nasal release mark <_comment>Palatal nasal release mark <_comment>Retroflex nasal release mark <_comment>Uvular nasal release mark <_comment>Labio-palatalization mark <_comment>Labiodentalization mark <_comment>Labialization mark <_comment>Velarization mark <_comment>Glottalization mark <_comment>Pharyngealization mark <_comment>Combining velarization/pharyngealization mark <_comment>Combining laryngealization mark <_comment>Combining retroflexion mark <_comment>Ejection mark <_comment>Rhotacization mark <_comment>Combining dentalization mark <_comment>Combining dentolabialization mark <_comment>Combining alveolarization mark <_comment>Combining linguolabialization mark <_comment>Combining apicalization mark <_comment>Combining laminalization mark <_comment>Combining centralization mark <_comment>Combining mid-centralization mark <_comment>Combining nasalization mark <_comment>Combining nasalization mark below <_comment>Combining denasalization mark <_comment>Combining nasal friction mark <_comment>Combining velopharyngeal friction mark <_comment>Combining voiced mark <_comment>Combining voiceless mark <_comment>Combining voiceless mark above <_comment>Pre-voicing/post-voicing mark <_comment>Combining breathy voice mark <_comment>Combining unreleased stop mark <_comment>Combining more rounded mark <_comment>Combining less rounded mark <_comment>Combining labial spreading mark <_comment>Combining syllabic mark <_comment>Combining syllabic mark above <_comment>Combining non-syllabic mark <_comment>Combining non-syllabic mark above <_comment>Combining top tone mark <_comment>Combining high tone mark <_comment>Combining mid tone mark <_comment>Combining low tone mark <_comment>Combining bottom tone mark <_comment>Combining falling tone mark <_comment>Combining high falling tone mark <_comment>Combining low falling tone mark <_comment>Combining rising tone mark <_comment>Combining high rising tone mark <_comment>Combining low rising tone mark <_comment>Combining dipping tone mark <_comment>Combining peaking tone mark <_comment>Top tone letter <_comment>High tone letter <_comment>Mid tone letter <_comment>Low tone letter <_comment>Bottom tone letter <_comment>Falling tone digraph <_comment>High falling tone digraph <_comment>Rising tone digraph <_comment>High rising tone digraph <_comment>Low rising tone digraph <_comment>Dipping tone trigraph <_comment>Peaking tone trigraph <_comment>Upstep mark <_comment>Downstep mark <_comment>Minor break <_comment>Major break <_comment>Rising intonation mark <_comment>Falling intonation mark <_comment>Advanced articulation mark <_comment>Retracted articulation mark <_comment>Combining advanced articulation mark <_comment>Combining retracted articulation mark <_comment>Raised sound mark <_comment>Lowered sound mark <_comment>Combining raised sound mark <_comment>Combining lowered sound mark <_comment>Combining tongue root advancement mark <_comment>Combining tongue root retraction mark <_comment>Combining strong articulation mark <_comment>Combining weak articulation mark <_comment>Combining whistled articulation mark <_comment>Combining sliding articulation mark <_comment>Egression mark <_comment>Ingression mark <_comment>Combining ligature tie <_comment>Combining ligature undertie <_comment>Elongation mark <_comment>Weak elongation mark <_comment>Combining extra-short duration mark <_comment>Liaison mark <_comment>Stress mark <_comment>Weak stress mark <_comment>Syllable break <_comment>Opening orthographic bracket <_comment>Closing orthographic bracket
input-pad-1.1.0/data/ja.xml.in000066400000000000000000000123321476727667600161010ustar00rootroot00000000000000 <_name>Japanese 10 <_name>Hiragana 0x3042 0x3044 0x3046 0x3048 0x304a 0x304b 0x304d 0x304f 0x3051 0x3053 0x3055 0x3057 0x3059 0x305b 0x305d 0x305f 0x3061 0x3064 0x3066 0x3068 0x306a 0x306b 0x306c 0x306d 0x306e 0x306f 0x3072 0x3075 0x3078 0x307b 0x307e 0x307f 0x3080 0x3081 0x3082 0x3084 0x3086 0x3088 0x3089 0x308a 0x308b 0x308c 0x308d 0x308f 0x3090 0x3091 0x3092 0x3093 0x309b 0x309c 0x309d 0x309e 0x309f 0x3094 0x304c 0x304e 0x3050 0x3052 0x3054 0x3056 0x3058 0x305a 0x305c 0x305e 0x3060 0x3062 0x3065 0x3067 0x3069 0x3070 0x3073 0x3076 0x3079 0x307c 0x3071 0x3074 0x3077 0x307a 0x307d 0x3041 0x3043 0x3045 0x3047 0x3049 0x3095 0x3096 0x3083 0x3085 0x3087 0x3063 0x30a0 0x30fc
10 <_name>Katakana 0x30a2 0x30a4 0x30a6 0x30a8 0x30aa 0x30ab 0x30ad 0x30af 0x30b1 0x30b3 0x30b5 0x30b7 0x30b9 0x30bb 0x30bd 0x30bf 0x30c1 0x30c4 0x30c6 0x30c8 0x30ca 0x30cb 0x30cc 0x30cd 0x30ce 0x30cf 0x30d2 0x30d5 0x30d8 0x30db 0x30de 0x30df 0x30e0 0x30e1 0x30e2 0x30e4 0x30e6 0x30e8 0x30e9 0x30ea 0x30eb 0x30ec 0x30ed 0x30ef 0x30f0 0x30f1 0x30f2 0x30f3 0x309b 0x309c 0x30fd 0x30fe 0x30ff 0x30f4 0x30ac 0x30ae 0x30b0 0x30b2 0x30b4 0x30b6 0x30b8 0x30ba 0x30bc 0x30be 0x30c0 0x30c2 0x30c5 0x30c7 0x30c9 0x30d0 0x30d3 0x30d6 0x30d9 0x30dc 0x30f7 0x30f8 0x30f9 0x30fa 0x30d1 0x30d4 0x30d7 0x30da 0x30dd 0x30a1 0x30a3 0x30a5 0x30a7 0x30a9 0x31f0 0x31f1 0x31f2 0x31f3 0x31f4 0x31f5 0x31f6 0x31f7 0x31f8 0x31f9 0x31fa 0x31fb 0x31fc 0x31fd 0x31fe 0x31ff 0x30f5 0x30f6 0x30e3 0x30e5 0x30ee 0x30e7 0x30c3 0x30a0 0x30fb 0x30fc 0x32d0 0x32d1 0x32d2 0x32d3 0x32d4 0x32d5 0x32d6 0x32d7 0x32d8 0x32d9 0x32da 0x32db 0x32dc 0x32dd 0x32de 0x32df 0x32e0 0x32e1 0x32e2 0x32e3 0x32e4 0x32e5 0x32e6 0x32e7 0x32e8 0x32e9 0x32ea 0x32eb 0x32ec 0x32ed 0x32ee 0x32ef 0x32f0 0x32f1 0x32f2 0x32f3 0x32f4 0x32f5 0x32f6 0x32f7 0x32f8 0x32f9 0x32fa 0x32fb 0x32fc 0x32fd 0x32fe 0xff67 0xff68 0xff69 0xff6a 0xff6b 0xff6c 0xff6d 0xff6e 0xff6f 0xff70 0xff71 0xff72 0xff73 0xff74 0xff75 0xff76 0xff77 0xff78 0xff79 0xff7a 0xff7b 0xff7c 0xff7d 0xff7e 0xff7f 0xff80 0xff81 0xff82 0xff83 0xff84 0xff85 0xff86 0xff87 0xff88 0xff89 0xff8a 0xff8b 0xff8c 0xff8d 0xff8e 0xff8f 0xff90 0xff91 0xff92 0xff93 0xff94 0xff95 0xff95 0xff96 0xff97 0xff98 0xff99 0xff9a 0xff9b 0xff9c 0xff66 0xff9d 0x1b000
<_name>Radicals 0x4e00 0x4e28 0x4e36 0x4e3f 0x4e59 0x4e5a 0x4e85 0x4e8c 0x4ea0 0x4eba 0x4ebb 0x513f 0x5165 0x516b 0x5182 0x5196 0x51ab 0x51e0 0x51f5 0x5200 0x5202 0x529b 0x52f9 0x5315 0x531a 0x5338 0x5341 0x535c 0x5369 0x5382 0x53b6 0x53c8 0x53e3 0x56d7 0x571f 0x58eb 0x5902 0x590a 0x5915 0x5927 0x5973 0x5b50 0x5b80 0x5bf8 0x5c0f 0x5c22 0x5c38 0x5c6e 0x5c71 0x5ddb 0x5ddd 0x5de5 0x5df1 0x5df3 0x5dfe 0x5e72 0x5e7a 0x5e7f 0x5ef4 0x5efe 0x5f0b 0x5f13 0x5f50 0x5f51 0x5f61 0x5f73 0x5fc3 0x5fc4 0x6208 0x6236 0x6238 0x624b 0x624c 0x652f 0x6534 0x6535 0x6587 0x6597 0x65a4 0x65b9 0x65e0 0x65e1 0x65e5 0x66f0 0x6708 0x6728 0x6b20 0x6b62 0x6b79 0x6bb3 0x6bcb 0x6bcc 0x6bcd 0x6bd4 0x6bdb 0x6c0f 0x6c14 0x6c34 0x6c35 0x706b 0x706c 0x722a 0x722b 0x7236 0x723b 0x723f 0x7247 0x7259 0x725b 0x725c 0x72ac 0x72ad 0x7384 0x7389 0x74dc 0x74e6 0x7518 0x751f 0x7528 0x7530 0x758b 0x7592 0x7676 0x767d 0x76ae 0x76bf 0x76ee 0x77db 0x77e2 0x77f3 0x793a 0x793b 0x79b8 0x79be 0x7a74 0x7acb 0x7af9 0x7c73 0x7cf8 0x7cf9 0x7f36 0x7f51 0x7f52 0x7f8a 0x7fbd 0x8001 0x8002 0x800c 0x8012 0x8033 0x807f 0x8089 0x81e3 0x81ea 0x81f3 0x81fc 0x820c 0x821b 0x821f 0x826e 0x8272 0x8278 0x8279 0x864d 0x866b 0x8840 0x884c 0x8863 0x8864 0x897e 0x897f 0x898b 0x89d2 0x8a00 0x8a01 0x8c37 0x8c46 0x8c55 0x8c78 0x8c9d 0x8d64 0x8d70 0x8db3 0x8eab 0x8eca 0x8f9b 0x8fb0 0x8fb5 0x8fb6 0x9091 0x9149 0x91c6 0x91cc 0x91d1 0x91d2 0x9577 0x9578 0x9580 0x961c 0x961d 0x96b6 0x96b9 0x96e8 0x9751 0x9752 0x975e 0x9762 0x9769 0x97cb 0x97ed 0x97f3 0x9801 0x98a8 0x98db 0x98df 0x98e0 0x9996 0x9999 0x99ac 0x9aa8 0x9ad8 0x9adf 0x9b25 0x9b2f 0x9b32 0x9b3c 0x9b5a 0x9ce5 0x9e75 0x9e7f 0x9ea5 0x9ea6 0x9ebb 0x9ec3 0x9ec4 0x9ecd 0x9ed1 0x9ed2 0x9ef9 0x9efd 0x9f0e 0x9f13 0x9f20 0x9f3b 0x9f4a 0x6589 0x9f52 0x6b6f 0x9f8d 0x7adc 0x9f9c 0x4e80 0x9fa0
<_name>CJK Radicals Supplement 0x2E80 0x2E81 0x2E82 0x2E83 0x2E84 0x2E85 0x2E86 0x2E87 0x2E88 0x2E89 0x2E8A 0x2E8B 0x2E8C 0x2E8D 0x2E8E 0x2E8F 0x2E90 0x2E91 0x2E92 0x2E93 0x2E94 0x2E95 0x2E96 0x2E97 0x2E98 0x2E99 * 0x2E9B 0x2E9C 0x2E9D 0x2E9E 0x2E9F 0x2EA0 0x2EA1 0x2EA2 0x2EA3 0x2EA4 0x2EA5 0x2EA6 0x2EA7 0x2EA8 0x2EA9 0x2EAA 0x2EAB 0x2EAC 0x2EAD 0x2EAE 0x2EAF 0x2EB0 0x2EB1 0x2EB2 0x2EB3 0x2EB4 0x2EB5 0x2EB6 0x2EB7 0x2EB8 0x2EB9 0x2EBA 0x2EBB 0x2EBC 0x2EBD 0x2EBE 0x2EBF 0x2EC0 0x2EC1 0x2EC2 0x2EC3 0x2EC4 0x2EC5 0x2EC6 0x2EC7 0x2EC8 0x2EC9 0x2ECA 0x2ECB 0x2ECC 0x2ECD 0x2ECE 0x2ECF 0x2ED0 0x2ED1 0x2ED2 0x2ED3 0x2ED4 0x2ED5 0x2ED6 0x2ED7 0x2ED8 0x2ED9 0x2EDA 0x2EDB 0x2EDC 0x2EDD 0x2EDE 0x2EDF 0x2EE0 0x2EE1 0x2EE2 0x2EE3 0x2EE4 0x2EE5 0x2EE6 0x2EE7 0x2EE8 0x2EE9 0x2EEA 0x2EEB 0x2EEC 0x2EED 0x2EEE 0x2EEF 0x2EF0 0x2EF1 0x2EF2 0x2EF3
input-pad-1.1.0/data/keyboard.xml.in000066400000000000000000000024441476727667600173120ustar00rootroot00000000000000 <_name>Keyboard <_name>Function Key4 Return BackSpace Tab Escape Delete Pause Scroll_Lock Sys_Req Linefeed Clear F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 F31 F32 F33 F34 F35 Caps_Lock Meta_L Meta_R Super_L Super_R Home Begin End Left Right Up Down Prior Next Page_Up Page_Down Select Print Execute Insert Undo Redo Menu Find Cancel Help Break Mode_switch script_switch Num_Lock Multi_key Kanji Muhenkan Henkan_Mode Henkan Romaji Hiragana Katakana Hiragana_Katakana Zenkaku Hankaku Zenkaku_Hankaku Kana_Lock Eisu_toggle Touroku Massyo
<_name>Key Pad4 KP_0 KP_1 KP_2 KP_3 KP_4 KP_5 KP_6 KP_7 KP_8 KP_9 KP_Space KP_Tab KP_Enter KP_Home KP_Begin KP_End KP_Left KP_Right KP_Up KP_Down KP_Prior KP_Next KP_Page_Up KP_Page_Down KP_Insert KP_Delete KP_Equal KP_Multiply KP_Add KP_Separator KP_Subtract KP_Decimal KP_Divide KP_F1 KP_F2 KP_F3 KP_F3 KP_F4
input-pad-1.1.0/data/latin.xml.in000066400000000000000000000054751476727667600166300ustar00rootroot00000000000000 <_name>ASCII 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2a 0x2b 0x2c 0x2d 0x2e 0x2f 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3a 0x3b 0x3c 0x3d 0x3e 0x3f 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4a 0x4b 0x4c 0x4d 0x4e 0x4f 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5a 0x5b 0x5c 0x5d 0x5e 0x5f 0x60 0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68 0x69 0x6a 0x6b 0x6c 0x6d 0x6e 0x6f 0x70 0x71 0x72 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7a 0x7b 0x7c 0x7d 0x7e
<_name>Latin-1 Supplement 0x00AA 0x00BA 0x00C0 0x00C1 0x00C2 0x00C3 0x00C4 0x00C5 0x00C6 0x00C7 0x00C8 0x00C9 0x00CA 0x00CB 0x00CC 0x00CD 0x00CE 0x00CF 0x00D0 0x00D1 0x00D2 0x00D3 0x00D4 0x00D5 0x00D6 0x00D8 0x00D9 0x00DA 0x00DB 0x00DC 0x00DD 0x00DE 0x00DF 0x00E0 0x00E1 0x00E2 0x00E3 0x00E4 0x00E5 0x00E6 0x00E7 0x00E8 0x00E9 0x00EA 0x00EB 0x00EC 0x00ED 0x00EE 0x00EF 0x00F0 0x00F1 0x00F2 0x00F3 0x00F4 0x00F5 0x00F6 0x00F8 0x00F9 0x00FA 0x00FB 0x00FC 0x00FD 0x00FE 0x00FF
<_name>Latin Extended-A 0x0100 0x0101 0x0102 0x0102 0x0103 0x0104 0x0105 0x0106 0x0107 0x0108 0x0109 0x010A 0x010B 0x010C 0x010D 0x010E 0x010F 0x0110 0x0111 0x0112 0x0113 0x0114 0x0115 0x0116 0x0117 0x0118 0x0119 0x011A 0x011B 0x011C 0x011D 0x011E 0x011F 0x0120 0x0121 0x0122 0x0123 0x0124 0x0125 0x0126 0x0127 0x0128 0x0129 0x012A 0x012B 0x012C 0x012D 0x012E 0x012F 0x0130 0x0131 0x0132 0x0133 0x0134 0x0135 0x0136 0x0137 0x0138 0x0139 0x013A 0x013B 0x013C 0x013D 0x013E 0x013F 0x0140 0x0141 0x0142 0x0143 0x0144 0x0145 0x0146 0x0147 0x0148 0x0149 0x014A 0x014B 0x014C 0x014D 0x014E 0x014F 0x0150 0x0151 0x0152 0x0153 0x0154 0x0155 0x0156 0x0157 0x0158 0x0159 0x015A 0x015B 0x015C 0x015D 0x015E 0x015F 0x0160 0x0161 0x0162 0x0163 0x0164 0x0165 0x0166 0x0167 0x0168 0x0169 0x016A 0x016B 0x016C 0x016D 0x016E 0x016F 0x0170 0x0171 0x0172 0x0173 0x0174 0x0175 0x0176 0x0177 0x0178 0x0179 0x017A 0x017B 0x017C 0x017D 0x017E 0x017F
<_name>Old and Middle English 0x41 0x00C6 0x42 0x43 0x010A 0x44 0x00D0 0x45 0x46 0x47 0x0120 0x021C 0x48 0x49 0x4a 0x4b 0x4c 0x4d 0x4e 0x4f 0x0152 0x50 0x51 0x52 0x53 0x54 0x00DE 0x55 0x56 0x57 0x01F7 0x58 0x59 0x5a 0x61 0x00E6 0x62 0x63 0x010B 0x64 0x00F0 0x65 0x66 0x67 0x0121 0x021D 0x68 0x69 0x6a 0x6b 0x6c 0x6d 0x6e 0x6f 0x0153 0x70 0x71 0x72 0x017F 0x73 0x74 0x00FE 0x75 0x76 0x77 0x01BF 0x78 0x79 0x7a 0x0100 0x00C1 0x01E2 0x01FC 0x0112 0x00C9 0x0118 0x012A 0x00CD 0x014C 0x00D3 0x016A 0x00DA 0x0232 0x00DD 0x0101 0x00E1 0x01E3 0x01FD 0x0113 0x00E9 0x0119 0x012B 0x00ED 0x014D 0x00F3 0x016B 0x00FA 0x0233 0x00FD 0x26 0x204A 0xA764 0xA765 0x0304 0x0301
input-pad-1.1.0/data/runr.xml.in000066400000000000000000000431641476727667600165040ustar00rootroot00000000000000 10 <_name>Runes (Unicode Block) Runic Letter Fehu Feoh Fe F Runic Letter V Runic Letter Uruz Ur U Runic Letter Yr Runic Letter Y Runic Letter W Runic Letter Thurisaz Thurs Thorn Runic Letter Eth Runic Letter Ansuz A Runic Letter Os O Runic Letter Ac A Runic Letter Aesc Runic Letter Long-Branch-Oss O Runic Letter Short-Twig-Oss O Runic Letter O Runic Letter Oe Runic Letter On Runic Letter Raido Rad Reid R Runic Letter Kauna Runic Letter Cen Runic Letter Kaun K Runic Letter Kaun G Runic Letter Kaun Eng Runic Letter Kaun Gebo Gyfu G Runic Letter Gar Runic Letter Wunjo Wynn W Runic Letter Haglaz H Runic Letter Haegl H Runic Letter Long-Branch-Hagall H Runic Letter Short-Twig-Hagall H Runic Letter Naudiz Nyd Naud N Runic Letter Short-Twig-Naud N Runic Letter Dotted-N Runic Letter Isaz Is Iss I Runic Letter E Runic Letter Jeran J Runic Letter Ger Runic Letter Long-Branch-Ar Ae Runic Letter Short-Twig-Ar A Runic Letter Iwaz Eoh Runic Letter Pertho Peorth P Runic Letter Algiz Eolhx Runic Letter Sowilo S Runic Letter Sigel Long-Branch-Sol S Runic Letter Short-Twig-Sol S Runic Letter C Runic Letter Z Runic Letter Tiwaz Tir Tyr T Runic Letter Short-Twig-Tyr T Runic Letter D Runic Letter Berkanan Beorc Bjarkan B Runic Letter Short-Twig-Bjarkan B Runic Letter Dotted-P Runic Letter Open-P Runic Letter Ehwaz Eh E Runic Letter Mannaz Man M Runic Letter Long-Branch-Madr M Runic Letter Short-Twig-Madr M Runic Letter Laukaz Lagu Logr L Runic Letter Dotted-L Runic Letter Ingwaz Runic Letter Ing Runic Letter Dagaz Daeg D Runic Letter Othalan Ethel O Runic Letter Ear Runic Letter Ior Runic Letter Cweorth Runic Letter Calc Runic Letter Cealc Runic Letter Stan Runic Letter Long-Branch-Yr Runic Letter Short-Twig-Yr Runic Letter Icelandic-Yr Runic Letter Q Runic Letter X Runic Single Punctuation Runic Multiple Punctuation Runic Cross Punctuation Runic Letter Arlaug Symbol Runic Letter Tvimadur Symbol Runic Letter Belgthor Symbol
10 <_name>Runes (Elder Fuþark) Fehu Ūruz Þurisaz Ansuz Raidō Kaunan Gebō Wunjō Hagalaz Hagalaz Naudiz Īsaz Jēran Perþō Algiz Tīwaz Berkanan Ehwaz Mannaz Laguz Ingwaz Ingwaz Oþalan Dagaz
10 <_name>Runes (Younger Fuþark) Úr Þurs Óss Óss Reið Kaun Hagall Hagall Nauðr Nauðr Isa Ár Ár Sol Sol Týr Týr Bjarken Bjarken Maðr Maðr Lögr Yr Yr
10 <_name>Runes (Fuþorc) Feoh Ur Þorn Os Rad Cen Gyfu Ƿynn Hægl Nyd Is Ger Eoh Peorð Eolh Sigel Tiƿ Beorc Eh Mann Lagu Ing Eðel Dæg Ac Æsc Yr Ior Ear Cƿeorð Calc Calc Stan Gar
input-pad-1.1.0/data/shaw.xml.in000066400000000000000000000113361476727667600164540ustar00rootroot00000000000000 10 <_name>Shavian Peep Tot Kick Fee Thigh So Shure Church Yea Hung Bib Dead Gag Vow They Zoo Measure Judge Woe Ha-ha Loll Mime If Egg Ash Ado On Wool Out Ah Roar Nun Eat Age Ice Up Oak Ooze Oil Awe Are Or Air Err Array Ear Ian Yew
input-pad-1.1.0/data/str.xml.in000066400000000000000000002616711476727667600163330ustar00rootroot00000000000000 <_name>Chat 8 <_name>Emoji <_comment>Rain <_comment>Rain <_comment>Rain <_comment>Comet <_comment>Cross <_comment>Cross <_comment>Cross <_comment>Cross <_comment>Cross <_comment>Cross <_comment>Solar <_comment>Mercury <_comment>Venus <_comment>Earth <_comment>Mars <_comment>Jupiter <_comment>Saturn <_comment>Uranus <_comment>Neptune <_comment>Pluto <_comment>Aries <_comment>Taurus <_comment>Gemini <_comment>Cancer <_comment>Leo <_comment>Virgo <_comment>Libra <_comment>Scorpius <_comment>Sagittarius <_comment>Capricorn <_comment>Aquarius <_comment>Pisces <_comment>Dice 1 <_comment>Dice 2 <_comment>Dice 3 <_comment>Dice 4 <_comment>Dice 5 <_comment>Dice 6 <_comment>Anchor <_comment>Sword <_comment>Scales <_comment>Conversation <_comment>Conversation <_comment>Warning <_comment>Thunder <_comment>Coffin <_comment>Gender <_comment>Soccer <_comment>Baseball <_comment>Snowman <_comment>Snowman <_comment>Shogi <_comment>Shoji <_comment>Maintenance <_comment>Roadblock <_comment>No entry <_comment>Truck <_comment>Torii <_comment>Church <_comment>Castle <_comment>Historic site <_comment>Power station <_comment>Lighthouse <_comment>Mountain <_comment>Beach <_comment>Park <_comment>Ferry <_comment>Sailboat <_comment>Ice rink <_comment>Scissors <_comment>Scissors <_comment>Scissors <_comment>Scissors <_comment>Scissors <_comment>Airplane <_comment>Clenched Fist <_comment>Hand <_comment>V Sign <_comment>Writing <_comment>Pencil <_comment>Pencil <_comment>Pencil <_comment>Pen <_comment>Pen <_comment>Star <_comment>Star <_comment>Star <_comment>Star <_comment>Star <_comment>Star <_comment>Star <_comment>Star <_comment>Star <_comment>Star <_comment>Typhoon <_comment>Fog <_comment>Umbrella <_comment>Night sky <_comment>Sunrise <_comment>Sunrise <_comment>Sunset <_comment>Bridge <_comment>Wave <_comment>Earth <_comment>Earth <_comment>Earth <_comment>Earth <_comment>New Moon <_comment>New Moon <_comment>Crescent Moon <_comment>Quarter Moon <_comment>Quarter Moon <_comment>Gibbous Moon <_comment>Full Moon <_comment>Full Moon <_comment>Gibbous Moon <_comment>Quarter Moon <_comment>Quarter Moon <_comment>Crescent Moon <_comment>Crescent Moon <_comment>Crescent Moon <_comment>Crescent Moon <_comment>Moon <_comment>Moon <_comment>Moon <_comment>Moon <_comment>Moon <_comment>Star <_comment>Star <_comment>Star <_comment>Sun <_comment>Sun <_comment>Cloud <_comment>Cloud <_comment>Rain <_comment>Rain <_comment>Palm <_comment>Hot Pepper <_comment>Flower <_comment>Flower <_comment>Flower <_comment>Tulip <_comment>Cherry <_comment>Rose <_comment>Hibiscus <_comment>Sunflower <_comment>Blossom <_comment>Flower <_comment>Clover <_comment>Clover <_comment>Maple <_comment>Fallen Leaf <_comment>Leaf <_comment>Mushroom <_comment>Tomato <_comment>Eggplant <_comment>Grape <_comment>Melon <_comment>Watermelon <_comment>Tangerine <_comment>Lemon <_comment>Banana <_comment>Pineapple <_comment>Apple <_comment>Apple <_comment>Pear <_comment>Peach <_comment>Cherry <_comment>Strawberry <_comment>Hamburger <_comment>Pizza <_comment>Meat <_comment>Poultry <_comment>Rice Cracker <_comment>Rice Ball <_comment>Rice <_comment>Curry <_comment>Ramen <_comment>Spaghetti <_comment>Bread <_comment>Fried Potato <_comment>Roasted Sweet Potato <_comment>Dango <_comment>Oden <_comment>Sushi <_comment>Fried Shrimp <_comment>Fish Cake <_comment>Soft Ice Cream <_comment>Shaved Ice <_comment>Ice Cream <_comment>Doughnut <_comment>Cookie <_comment>Chocolate <_comment>Candy <_comment>Candy <_comment>Custard <_comment>Honey <_comment>Shortcake <_comment>Bento <_comment>Pot of Food <_comment>Cooking <_comment>Meal <_comment>Cup <_comment>Cup <_comment>Sake <_comment>Wine <_comment>Cocktail <_comment>Drink <_comment>Beer <_comment>Cheers <_comment>Baby Bottle <_comment>Ribbon <_comment>Present <_comment>Present <_comment>Cake <_comment>Hallowe'en <_comment>Christmas <_comment>Christmas <_comment>Piano <_comment>Piano <_comment>Microphone <_comment>Microphone <_comment>Headphone <_comment>Hat <_comment>Musical Note <_comment>Musical Note <_comment>Saxophone <_comment>Guitar <_comment>Trumpet <_comment>Violin <_comment>Musical Score <_comment>Tennis <_comment>Ski <_comment>Ski <_comment>Basketball <_comment>Flag <_comment>Flag <_comment>Flag <_comment>Flag <_comment>Show Board <_comment>Running <_comment>Surfer <_comment>Medal <_comment>Trophy <_comment>Horse Racing <_comment>American Football <_comment>Rugby <_comment>Swimmer <_comment>Weight Lifting <_comment>Golf <_comment>Golf <_comment>Motorcycle <_comment>Race <_comment>House <_comment>House <_comment>Office <_comment>Hospital <_comment>Hospital <_comment>Bank <_comment>Hotel <_comment>School <_comment>Factory <_comment>Factory <_comment>Rat <_comment>Mouse <_comment>Cow <_comment>Cow <_comment>Cow <_comment>Tiger <_comment>Leopard <_comment>Rabbit <_comment>Cat <_comment>Dragon <_comment>Crocodile <_comment>Whale <_comment>Snail <_comment>Snake <_comment>Horse <_comment>Sheep <_comment>Goat <_comment>Sheep <_comment>Monkey <_comment>Chicken <_comment>Chicken <_comment>Dog <_comment>Pig <_comment>Pig <_comment>Elephant <_comment>Octopus <_comment>Spiral Shell <_comment>Bug <_comment>Ant <_comment>Honey <_comment>Lady Beetle <_comment>Fish <_comment>Tropical Fish <_comment>Blowfish <_comment>Bird <_comment>Bird <_comment>Bird <_comment>Bird <_comment>Penguin <_comment>Koala <_comment>Poodle <_comment>Camel <_comment>Camel <_comment>Dolphin <_comment>Mouse <_comment>Cow <_comment>Tiger <_comment>Rabbit <_comment>Cat <_comment>Dragon <_comment>Whale <_comment>Horse <_comment>Monkey <_comment>Dog <_comment>Pig <_comment>Frog <_comment>Hamster <_comment>Wolf <_comment>Bear <_comment>Panda <_comment>Pig <_comment>Eye <_comment>Eye <_comment>Ear <_comment>Nose <_comment>Mouth <_comment>Tongue <_comment>Crown <_comment>Crown <_comment>Crown <_comment>Crown <_comment>Crown <_comment>Hat <_comment>Glasses <_comment>Necktie <_comment>T-Shirt <_comment>Jeans <_comment>Dress <_comment>Kimono <_comment>Bikini <_comment>Clothes <_comment>Purse <_comment>Handbag <_comment>Pouch <_comment>Shoe <_comment>Shoe <_comment>Shoe <_comment>Shoe <_comment>Shoe <_comment>Footprint <_comment>Bust in silhouette <_comment>Busts in silhouette <_comment>Boy <_comment>Girl <_comment>Man <_comment>Woman <_comment>Family <_comment>Man and woman holding hands <_comment>Men holding hands <_comment>Women holding hands <_comment>Men's room <_comment>Women's room <_comment>Restroom <_comment>Restroom <_comment>Princess <_comment>Japanese Ogre <_comment>Japanese Goblin <_comment>Ghost <_comment>Baby Angel <_comment>Extraterrestrial Alien <_comment>Alien Monster <_comment>Imp <_comment>Skull <_comment>Skull <_comment>Information Desk Person <_comment>Guardsman <_comment>Dancer <_comment>Lipstick <_comment>Nail polish <_comment>Face <_comment>Haircut <_comment>Haircut <_comment>Syringe <_comment>Pill <_comment>Kiss <_comment>Kiss <_comment>Love Letter <_comment>Ring <_comment>Gem Stone <_comment>Gem Stone <_comment>Wedding <_comment>Kiss <_comment>Heart <_comment>Heart <_comment>Heart <_comment>Heart <_comment>Heart <_comment>Heart <_comment>Heart <_comment>Heart <_comment>Heart <_comment>Heart <_comment>Heart <_comment>Heart <_comment>Heart <_comment>Heart <_comment>Heart <_comment>Heart <_comment>Heart <_comment>Heart <_comment>Heart <_comment>Heart <_comment>Heart <_comment>Idea <_comment>Anger <_comment>Bomb <_comment>Sleeping <_comment>Collision <_comment>Sweat <_comment>Droplet <_comment>Dash <_comment>Poo <_comment>Muscle <_comment>Dizzy <_comment>Speech <_comment>Thought <_comment>Thought <_comment>Perfect Score <_comment>Pushpin <_comment>Pushpin <_comment>Paperclip <_comment>Speaker with cancellation stroke <_comment>Speaker low volume <_comment>Speaker medium volume <_comment>Speaker high volume <_comment>Battery <_comment>Plug <_comment>Magnifying glass tilted left <_comment>Magnifying glass tilted right <_comment>Bookmark <_comment>Book <_comment>Book <_comment>Book <_comment>Book <_comment>Book <_comment>Book <_comment>Book <_comment>Book <_comment>Book <_comment>Book <_comment>Book <_comment>Memo <_comment>Mail <_comment>Mail <_comment>Incoming envelope <_comment>Postbox <_comment>Mobile Phone <_comment>Antenna with bars <_comment>Camera <_comment>Video <_comment>Television <_comment>Radio <_comment>Key <_comment>Key <_comment>Lock, locked <_comment>Lock, unlocked <_comment>Bookmark <_comment>Fire <_comment>Wrench <_comment>Hammer <_comment>Hammer <_comment>Hammer <_comment>Nut and bolt <_comment>Hocho <_comment>Pistol <_comment>Microscope <_comment>Telescope <_comment>Crystal <_comment>David Star <_comment>David Star <_comment>Beginner <_comment>Cross <_comment>Cross <_comment>Cross <_comment>Book <_comment>Candle <_comment>Hole <_comment>Laptop Computer <_comment>Desktop Computer <_comment>keyboard <_comment>keyboard <_comment>Mouse <_comment>Printer <_comment>Calculator <_comment>Minimize <_comment>Maximize <_comment>Refresh <_comment>Close <_comment>Close <_comment>World <_comment>Mt. Fuji <_comment>Tokyo Tower <_comment>Japan <_comment>Anguish <_comment>Smile <_comment>Smile <_comment>Smile <_comment>Smile <_comment>Smile <_comment>Smile <_comment>Smile <_comment>Smile <_comment>Smile <_comment>Smile <_comment>Smile <_comment>Smile <_comment>Smile <_comment>Smile <_comment>Smile <_comment>Smile <_comment>Smile <_comment>Smirk <_comment>Neutral <_comment>Expressionless <_comment>Unamused <_comment>Sweat <_comment>Pensive <_comment>Confused <_comment>Confounded <_comment>Kiss <_comment>Kiss <_comment>Kiss <_comment>Kiss <_comment>Tongue <_comment>Tongue <_comment>Tongue <_comment>Disappointed <_comment>Angry <_comment>Cry <_comment>Angry <_comment>Angry <_comment>Disappointed <_comment>Disappointed <_comment>Disappointed <_comment>Disappointed <_comment>Sleepy <_comment>Tired <_comment>Disappointed <_comment>Cry <_comment>Surprise <_comment>Neutral <_comment>Sweat <_comment>Scream <_comment>Surprise <_comment>Flushed <_comment>Sleeping <_comment>Dizzy <_comment>Neutral <_comment>Medical Mask <_comment>Smile <_comment>Smile <_comment>Smile <_comment>Smile <_comment>Smirk <_comment>Kiss <_comment>Angry <_comment>Cry <_comment>Disappointed <_comment>Disappointed <_comment>Smile <_comment>Anguish <_comment>OK <_comment>Bow <_comment>See-No-Evil <_comment>Hear-No-Evil <_comment>Speak-No-Evil <_comment>Smile <_comment>Banzai <_comment>Disappointed <_comment>Disappointed <_comment>Pleading <_comment>Smile
8 <_name>Smileys <_comment>Smile <_comment>Smile <_comment>Smile Big <_comment>Smile Big <_comment>Smile Big <_comment>Smile Big <_comment>Sad <_comment>Sad <_comment>Wink <_comment>Wink <_comment>Tongue <_comment>Tongue <_comment>Tongue <_comment>Tongue <_comment>Shock <_comment>Shock <_comment>Shock <_comment>Shock <_comment>Shock <_comment>Shock <_comment>Kiss | Secret <_comment>Glasses Cool | Eyeroll <_comment>Glasses Cool <_comment>Glasses Cool <_comment>Angry <_comment>Angry <_comment>Embarrassed <_comment>Confused <_comment>Confused <_comment>Confused <_comment>Confused <_comment>Confused <_comment>Crying <_comment>Neutral <_comment>Neutral <_comment>Thinking <_comment>Thinking <_comment>Thinking <_comment>Don't Know <_comment>Party <_comment>Yawn <_comment>Bunny <_comment>Sick <_comment>Devil <_comment>Angel <_comment>Angel <_comment>Angel <_comment>Angel <_comment>Love <_comment>Love <_comment>Love Over <_comment>Love Over <_comment>Cat <_comment>Dog <_comment>Moon <_comment>Star <_comment>Film <_comment>Musical Note <_comment>Mail <_comment>Mail <_comment>Clock <_comment>Clock <_comment>Kiss <_comment>Kiss <_comment>Present <_comment>Present <_comment>Cake <_comment>Coffee <_comment>Coffee <_comment>Phone <_comment>Phone <_comment>Hug Left <_comment>Hug Right <_comment>Beer <_comment>Beer <_comment>Drink <_comment>Drink <_comment>Boy <_comment>Boy <_comment>Girl <_comment>Girl <_comment>Yes <_comment>Yes <_comment>No <_comment>No <_comment>Shut Mouth <_comment>Money Mouth <_comment>Foot in Mouth <_comment>Shout <_comment>Shout <_comment>Monkey <_comment>Monkey <_comment>Monkey
5 <_name>Smileys (Japanese) <_comment>Smile <_comment>Smile <_comment>Smile <_comment>Smile <_comment>Smile <_comment>Shout <_comment>Shout <_comment>Crying <_comment>Crying <_comment>Crying <_comment>Crying <_comment>Confused <_comment>Shock <_comment>Tongue <_comment>Angry <_comment>Embarrassed <_comment>Smoking <_comment>Sorry <_comment>Hug <_comment>Cat <_comment>Cat <_comment>Cat <_comment>Cat <_comment>Dog <_comment>Shock <_comment>Shock <_comment>Shock <_comment>Shock
2 <_name>Smileys (Japanese 2ch) <_comment>Smile <_comment>Smile <_comment>Smile <_comment>Smile <_comment>Smile <_comment>Smile <_comment>Smile <_comment>Smile <_comment>Smile <_comment>Smile <_comment>No <_comment>Hey <_comment>Shout <_comment>Shout <_comment>Crying <_comment>Crying <_comment>Crying <_comment>Crying <_comment>Crying <_comment>Crying <_comment>Confused <_comment>Shock <_comment>Tongue <_comment>Angry <_comment>Angry <_comment>Angry <_comment>Angry <_comment>Embarrassed <_comment>Embarrassed <_comment>Embarrassed <_comment>Embarrassed <_comment>Embarrassed <_comment>Smoking <_comment>Sorry <_comment>Sorry <_comment>Sorry <_comment>Shock <_comment>Smile <_comment>Smile <_comment>Smile <_comment>Hug
4 <_name>Smileys (Chinese) <_comment>Smile <_comment>Crying <_comment>Embarrassed <_comment>Confused <_comment>Smile <_comment>Sad <_comment>Tongue <_comment>Shock <_comment>Party <_comment>Party <_comment>Party <_comment>Party <_comment>Party <_comment>Angel <_comment>Angel <_comment>Shock <_comment>Embarrassed <_comment>Angry <_comment>Angry <_comment>Crow <_comment>Bear
8 <_name>Acronym Away From Desk Away From Keyboard Action Item as known as Asia Pacific As Soon As Possible Be Back Later Bye For Now Be Right Back By The Way Close Of Business See You Later See You Again For Your Amusement For Your Information Hope This Helps In My Humble Opinion In My Opinion Looks Good To Me Laugh Out Loud Not Applicable Oh My God Rest In Peace rolling on the floor, laughing Sounds good to me Thanks Thanks In Advance Talk To You Later Thank You Without Thinking What You See Is What You Get
8 <_name>Acronym (Computer) Application Binary Interface American National Standards Institute Blind Carbon Copy Carbon Copy Drag-aNd-Drop Extended Cache Estimated Time of Arrival Giga Git Interface Converter GNU General Public License GRand Unified Bootloader Graphical User Interface Host Bus Adapter Human Inteface Guide HyperText Markup Language HyperText Transport Protocol Local Area Network Light-Emitting Diode GNU Lesser General Public License Logical Unit Logical UNit Power-On Self-Test Preboot eXecution Environment Redundant Array of Independent Disks Random-Access Memory Read Only Memory Source Codes Management
4 <_name>Acronym (Japanese) <_comment>Do not want to read between lines (Aete Kuuki Wo Yomanai) <_comment>Can't get together (Guda Guda) Go Home Quickly Good Job <_comment>Say whatever one feels (Iitaidake) <_comment>Excited (Kitakore) <_comment>Detail (Kuwashiku) <_comment>Cannot read between lines (Kuuki Ga Yomenai) <_comment>Omission (Shouryaku) Thank You <_comment>Excited (Waku Waku Teka Teka) <_comment>Laugh <_comment>Dude (Oi!) <_comment>Good job (Otsukare) <_comment>Want (Kure, E.g. pics クレメンス) <_comment>ASCII art of a hand (✊, E.g. つAttention) <_comment>In The Meantime (Toriaezu, Maa) <_comment>Self-confidence (Aniki, E.g. tennis ニキ) <_comment>Bye <_comment>Want (Hattekure, E.g. pics ハラデイ) <_comment>Exist as microparticles (Biryushi Level De Sonzaisuru) <_comment>False Start (Flying Get) <_comment>Fulfilling Life (Real life is Zyujitsu) <_comment>Laugh (Warau) <_comment>He (Yatsu <- Yashi)
input-pad-1.1.0/data/w3c.xml.in000066400000000000000000000654101476727667600162100ustar00rootroot00000000000000 HTML <_name>Char References &quot; &amp; &lt; &gt; &nbsp; &iexcl; &cent; &pound; &curren; &yen; &brvbar; &sect; &uml; &copy; &ordf; &laquo; &not; &shy; &reg; &macr; &deg; &plusmn; &sup2; &sup3; &acute; &micro; &para; &middot; &cedil; &sup1; &ordm; &raquo; &frac14; &frac12; &frac34; &iquest; &Agrave; &Aacute; &Acirc; &Atilde; &Auml; &Aring; &AElig; &Ccedil; &Egrave; &Eacute; &Ecirc; &Euml; &Igrave; &Iacute; &Icirc; &Iuml; &ETH; &Ntilde; &Ograve; &Oacute; &Ocirc; &Otilde; &Ouml; &times; &Oslash; &Ugrave; &Uacute; &Ucirc; &Uuml; &Yacute; &THORN; &szlig; &agrave; &aacute; &acirc; &atilde; &auml; &aring; &aelig; &ccedil; &egrave; &eacute; &ecirc; &euml; &igrave; &iacute; &icirc; &iuml; &eth; &ntilde; &ograve; &oacute; &ocirc; &otilde; &ouml; &divide; &oslash; &ugrave; &uacute; &ucirc; &uuml; &yacute; &thorn; &yuml; &OElig; &oelig; &Scaron; &scaron; &Yuml; &fnof; &circ; &tilde; &Alpha; &Beta; &Gamma; &Delta; &Epsilon; &Zeta; &Eta; &Theta; &Iota; &Kappa; &Lambda; &Mu; &Nu; &Xi; &Omicron; &Pi; &Rho; &Sigma; &Tau; &Upsilon; &Phi; &Chi; &Psi; &Omega; &alpha; &beta; &gamma; &delta; &epsilon; &zeta; &eta; &theta; &iota; &kappa; &lambda; &mu; &nu; &xi; &omicron; &pi; &rho; &sigmaf; &sigma; &tau; &upsilon; &phi; &chi; &psi; &omega; &thetasym; &upsih; &piv; &ensp; &emsp; &thinsp; &zwnj; &zwj; &lrm; &rlm; &ndash; &mdash; &lsquo; &rsquo; &sbquo; &ldquo; &rdquo; &bdquo; &dagger; &Dagger; &bull; &hellip; &permil; &prime; &Prime; &lsaquo; &rsaquo; &oline; &frasl; &euro; &image; &weierp; &real; &trade; &alefsym; &larr; &uarr; &rarr; &darr; &harr; &crarr; &lArr; &uArr; &rArr; &dArr; &hArr; &forall; &part; &exist; &empty; &nabla; &isin; &notin; &ni; &prod; &sum; &minus; &lowast; &radic; &prop; &infin; &ang; &and; &or; &cap; &cup; &int; &there4; &sim; &cong; &asymp; &ne; &equiv; &le; &ge; &sub; &sup; &nsub; &sube; &supe; &oplus; &otimes; &perp; &sdot; &lceil; &rceil; &lfloor; &rfloor; &lang; &rang; &loz; &spades; &clubs; &hearts; &diams;
input-pad-1.1.0/data/w3ctostr.py000077500000000000000000000043421476727667600165270ustar00rootroot00000000000000#!/usr/bin/python # vim:set et sts=4 sw=4: # -*- coding: utf-8 -*- # # input-pad - The input pad # # Copyright (c) 2010-2012 Takao Fujiwara # Copyright (c) 2010-2012 Red Hat, Inc. # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301 USA # the latest is http://www.w3.org/TR/REC-html40/sgml/entities.html import os, sys reverse = 0 stdread = 0 disable_orig_output = 0 def usage (): print "usage: " + os.path.basename(sys.argv[0]) + " entities.html" if len(sys.argv) == 1: usage () exit (-1) class PadHTMLLabelRawText: def __init__(self, line): line_array = line.split() self.__rawtext = line_array[1] label = line_array[3] label = label.split('"')[1] self.__label = label.replace('&', '&') def __cmp__(self, pad_b): code_a = int (self.__label[2:len(self.__label) - 1], 10) code_b = int (pad_b.__label[2:len(pad_b.__label) - 1], 10) return code_a - code_b def __str__(self): retval = \ " \n" retval = retval + \ " \n" % self.__label retval = retval + \ " &%s;\n" % self.__rawtext retval = retval + \ " " return retval pad_list = [] for filename in sys.argv[1:]: for line in file (filename): if not line.startswith("<!ENTITY"): continue pad = PadHTMLLabelRawText(line) pad_list.append(pad) pad_list.sort() for pad in pad_list: print str(pad) input-pad-1.1.0/data/zh.xml.in000066400000000000000000000022221476727667600161250ustar00rootroot00000000000000 <_name>Chinese <_name>Numbers 0x96f6 0x58f9 0x8d30 0x53c1 0x8086 0x4f0d 0x9646 0x67d2 0x634c 0x7396 0x62fe 0x4f70 0x4edf 0x3007 0x3220 0x3221 0x3222 0x3223 0x3224 0x3225 0x3226 0x3227 0x3228 0x3229 0x3021 0x3022 0x3023 0x3024 0x3025 0x3026 0x3027 0x3028 0x3029
<_name>Radicals 0x2e80 0x2e81 0x2e84 0x2e86 0x2e87 0x2e88 0x2e8a 0x2e8b 0x2e8c 0x2e8d 0x2e95 0x2e97 0x2e9c 0x2e9d 0x2ea5 0x2ea7 0x2eaa 0x2eac 0x2eae 0x2eb3 0x2eb6 0x2eb7 0x2ebb 0x2ebc 0x2ebe 0x2ec6 0x2eca 0x2ecc 0x2ecd 0x2ecf 0x2ed6 0x2ed7 0x2ede 0x2ee3 0x2f33
<_name>Bopomofo 0x3105 0x3106 0x3107 0x3108 0x3109 0x310A 0x310B 0x310C 0x310D 0x310E 0x310F 0x3110 0x3111 0x3112 0x3113 0x3114 0x3115 0x3116 0x3117 0x3118 0x3119 0x311A 0x311B 0x311C 0x311D 0x311E 0x311F 0x3120 0x3121 0x3122 0x3123 0x3124 0x3125 0x3126 0x3127 0x3128 0x3129 0x312A 0x312B 0x312C
input-pad-1.1.0/debian/000077500000000000000000000000001476727667600146705ustar00rootroot00000000000000input-pad-1.1.0/debian/README.source000066400000000000000000000003051476727667600170450ustar00rootroot00000000000000input-pad for Debian -------------------- input-pad-1.1.0/debian/README.source.eek-only000066400000000000000000000003111476727667600205640ustar00rootroot00000000000000input-pad-eek for Debian -------------------- input-pad-1.1.0/debian/changelog000066400000000000000000000013761476727667600165510ustar00rootroot00000000000000input-pad (1.0.0-1ppa1~maverick1) maverick; urgency=low * New upstream release. * debian/control: - bump standards version to 3.9.1. - replace libinput-pad0 with libinput-pad1. * debian/libinput-pad-dev.install: * debian/libinput-pad-xtest.install: * debian/libinput-pad-xtest.symbols: * debian/libinput-pad0.dirs: * debian/libinput-pad0.symbols: - bump installed directory to 1.0. * debian/libinput-pad1.dirs: * debian/libinput-pad1.install: * debian/libinput-pad1.symbols: - rename from libinput-pad0.*. -- Takao Fujiwara Thu, 16 Dec 2010 14:43:35 +0900 input-pad (0.1.1-1) lucid; urgency=low * Initial release -- Takao Fujiwara Fri, 09 Jul 2010 16:18:01 +0900 input-pad-1.1.0/debian/changelog.eek-only000066400000000000000000000017561476727667600202750ustar00rootroot00000000000000input-pad-eek (1.0.0-1ppa1~maverick1) maverick; urgency=low * New upstream release. * debian/control: - bump standards version to 3.9.1. - replace libinput-pad0 with libinput-pad1. * debian/libinput-pad-eek-dev.install: * debian/libinput-pad-eek.install: * debian/rule: - bump installed directory to 1.0. -- Takao Fujiwara Thu, 16 Dec 2010 14:43:35 +0900 input-pad-eek (0.1.1-1ppa3~lucid) lucid; urgency=low * Fixed dependency failures. - debian/control: Added libinput-pad-dev dependency -- Takao Fujiwara Wed, 14 Jul 2010 10:45:24 +0900 input-pad-eek (0.1.1-1ppa2~lucid) lucid; urgency=low * Fixed dependency failures. - debian/control: Added libeek-dev dependency -- Takao Fujiwara Tue, 13 Jul 2010 23:15:01 +0900 input-pad-eek (0.1.1-1ppa1~lucid) lucid; urgency=low * Initial release -- Takao Fujiwara Tue, 13 Jul 2010 12:30:08 +0900 input-pad-1.1.0/debian/compat000066400000000000000000000000021476727667600160660ustar00rootroot000000000000007 input-pad-1.1.0/debian/control000066400000000000000000000055571476727667600163070ustar00rootroot00000000000000Source: input-pad Section: utils Priority: optional Maintainer: Ubuntu Developers Uploaders: Takao Fujiwara Build-Depends: autoconf, automake, autotools-dev, intltool (>= 0.40.0), libgtk2.0-dev, libxkbfile-dev, libxklavier-dev (>= 4.0), libxml2-dev (>= 2.0), libxtst-dev, libtool, python-support (>= 0.6), python-dev, swig, debhelper (>= 7.0.50) Standards-Version: 3.9.1 Homepage: http://code.google.com/p/input-pad/ Package: input-pad Architecture: any Depends: ${misc:Depends}, ${shlibs:Depends}, libinput-pad1 (= ${binary:Version}) Description: On-screen Input Pad to Send Characters with Mouse The input pad is a tool to send a character on button to text applications. It provides the GTK+ based GUI and can send characteres on the GTK+ buttons. . This package contains a standalone application. Package: libinput-pad1 Section: libs Architecture: any Depends: ${misc:Depends}, ${shlibs:Depends}, libgtk2.0-0, libxkbfile1, libxklavier16, libxml2 Enhances: libinput-pad-xtest Description: On-screen Input Pad to Send Characters with Mouse - libs The input pad is a tool to send a character on button to text applications. It provides the GTK+ based GUI and can send characteres on the GTK+ buttons. . This package contains libraries for other applications. Package: libinput-pad-dev Section: libdevel Priority: extra Architecture: any Depends: ${misc:Depends}, libinput-pad1 (= ${binary:Version}), libglib2.0-dev, libgtk2.0-dev Description: On-screen Input Pad to Send Characters with Mouse - dev The input pad is a tool to send a character on button to text applications. It provides the GTK+ based GUI and can send characteres on the GTK+ buttons. . This package contains the header files. Package: python-input-pad Section: python Priority: extra Architecture: any Depends: ${misc:Depends}, ${python:Depends}, ${shlibs:Depends}, libinput-pad1 (= ${binary:Version}) Provides: ${python:Provides} XS-Python-Version: >= 2.6 XB-Python-Version: ${python:Versions} Description: On-screen Input Pad to Send Characters with Mouse - python The input pad is a tool to send a character on button to text applications. It provides the GTK+ based GUI and can send characteres on the GTK+ buttons. . This package contains the Python binding of input-pad. Package: libinput-pad-xtest Section: libs Priority: extra Architecture: any Depends: ${misc:Depends}, ${shlibs:Depends}, libinput-pad1 (= ${binary:Version}), libxtst6 Description: On-screen Input Pad to Send Characters with Mouse - xtest The input pad is a tool to send a character on button to text applications. It provides the GTK+ based GUI and can send characteres on the GTK+ buttons. . This package contains the XTEST module for input-pad. input-pad-1.1.0/debian/control.eek000066400000000000000000000065201476727667600170410ustar00rootroot00000000000000Source: input-pad Section: utils Priority: optional Maintainer: Ubuntu Developers Uploaders: Takao Fujiwara Build-Depends: autoconf, automake, autotools-dev, intltool (>= 0.40.0), libeek-dev, libgtk2.0-dev, libxkbfile-dev, libxklavier-dev (>= 4.0), libxml2-dev (>= 2.0), libxtst-dev, libtool, python-support (>= 0.6), python-dev, swig, debhelper (>= 7.0.50) Standards-Version: 3.8.4 Homepage: http://code.google.com/p/input-pad/ Package: input-pad Architecture: any Depends: ${misc:Depends}, ${shlibs:Depends}, libinput-pad0 (= ${binary:Version}) Description: On-screen Input Pad to Send Characters with Mouse The input pad is a tool to send a character on button to text applications. It provides the GTK+ based GUI and can send characteres on the GTK+ buttons. . This package contains a standalone application. Package: libinput-pad0 Section: libs Architecture: any Depends: ${misc:Depends}, ${shlibs:Depends}, libgtk2.0-0, libxkbfile1, libxklavier16, libxml2 Enhances: libinput-pad-xtest Description: On-screen Input Pad to Send Characters with Mouse - libs The input pad is a tool to send a character on button to text applications. It provides the GTK+ based GUI and can send characteres on the GTK+ buttons. . This package contains libraries for other applications. Package: libinput-pad-dev Section: libdevel Priority: extra Architecture: any Depends: ${misc:Depends}, libinput-pad0 (= ${binary:Version}), libglib2.0-dev, libgtk2.0-dev Description: On-screen Input Pad to Send Characters with Mouse - dev The input pad is a tool to send a character on button to text applications. It provides the GTK+ based GUI and can send characteres on the GTK+ buttons. . This package contains the header files. Package: python-input-pad Section: python Priority: extra Architecture: any Depends: ${misc:Depends}, ${python:Depends}, ${shlibs:Depends}, libinput-pad0 (= ${binary:Version}) Provides: ${python:Provides} XS-Python-Version: >= 2.6 XB-Python-Version: ${python:Versions} Description: On-screen Input Pad to Send Characters with Mouse - python The input pad is a tool to send a character on button to text applications. It provides the GTK+ based GUI and can send characteres on the GTK+ buttons. . This package contains the Python binding of input-pad. Package: libinput-pad-xtest Section: libs Priority: extra Architecture: any Depends: ${misc:Depends}, ${shlibs:Depends}, libinput-pad0 (= ${binary:Version}), libxtst6 Description: On-screen Input Pad to Send Characters with Mouse - xtest The input pad is a tool to send a character on button to text applications. It provides the GTK+ based GUI and can send characteres on the GTK+ buttons. . This package contains the XTEST module for input-pad. Package: libinput-pad-eek Section: libs Priority: extra Architecture: any Depends: ${misc:Depends}, ${shlibs:Depends}, libinput-pad0 (= ${binary:Version}), libeek0 Description: On-screen Input Pad to Send Characters with Mouse - eek The input pad is a tool to send a character on button to text applications. It provides the GTK+ based GUI and can send characteres on the GTK+ buttons. . This package contains the eekboard module for input-pad. input-pad-1.1.0/debian/control.eek-only000066400000000000000000000027021476727667600200160ustar00rootroot00000000000000Source: input-pad-eek Section: libs Priority: extra Maintainer: Ubuntu Developers Uploaders: Takao Fujiwara Build-Depends: autoconf, automake, autotools-dev, intltool (>= 0.40.0), libeek-dev, libgtk2.0-dev, libinput-pad-dev, libxkbfile-dev, libxklavier-dev (>= 4.0), libxml2-dev (>= 2.0), libxtst-dev, libtool, python-support (>= 0.6), python-dev, swig, debhelper (>= 7.0.50) Standards-Version: 3.9.1 Homepage: http://code.google.com/p/input-pad/ Package: libinput-pad-eek Architecture: any Depends: ${misc:Depends}, ${shlibs:Depends}, libinput-pad1 (>= 1.0.0), libeek0 Description: On-screen Input Pad to Send Characters with Mouse - eek The input pad is a tool to send a character on button to text applications. It provides the GTK+ based GUI and can send characteres on the GTK+ buttons. . This package contains the eekboard module for input-pad. Package: libinput-pad-eek-dev Section: libdevel Architecture: any Depends: ${misc:Depends}, libinput-pad1 (>= 1.0.0), libglib2.0-dev, libgtk2.0-dev Description: On-screen Input Pad to Send Characters with Mouse - eek-dev The input pad is a tool to send a character on button to text applications. It provides the GTK+ based GUI and can send characteres on the GTK+ buttons. . This package contains the header files for libinput-pad-eek. input-pad-1.1.0/debian/copyright000066400000000000000000000026171476727667600166310ustar00rootroot00000000000000This work was packaged for Debian by: Takao Fujiwara on Fri, 09 Jul 2010 16:18:01 +0900 It was downloaded from http://code.google.com/p/input-pad/downloads/ Upstream Author(s): Takao Fujiwara Copyright: Copyright (C) 2010 Takao Fujiwara License: This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA On Debian systems, the complete text of the GNU Lesser General Public License version 2.1 can be found in `/usr/share/common-licenses/LGPL-2.1'. The Debian packaging is: Copyright (C) 2010 Takao Fujiwara and is licensed under the GPL version 2, see `/usr/share/common-licenses/GPL-2'. input-pad-1.1.0/debian/docs000066400000000000000000000000241476727667600155370ustar00rootroot00000000000000AUTHORS NEWS README input-pad-1.1.0/debian/input-pad.1000066400000000000000000000010461476727667600166540ustar00rootroot00000000000000.\" This file is distributed under the same license as the input-pad .\" package. .\" Copyright (C) Takao Fujiwara , 2010-2011. .\" .TH "INPUT-PAD" 1 "2010-07-09" "" "" .SH NAME input-pad \- On-screen Input Pad to Send Characters with Mouse .SH "SYNOPSIS" .B input-pad .SH "DESCRIPTION" .PP input-pad is a tool to send a character on button to text applications. It provides the GTK+ based GUI and can send characteres on the GTK+ buttons. .PP Homepage: http://code.google.com/p/input-pad/ .SH "SEE ALSO" .BR ibus (1) input-pad-1.1.0/debian/input-pad.install000066400000000000000000000000121476727667600201520ustar00rootroot00000000000000usr/bin/* input-pad-1.1.0/debian/input-pad.manpages000066400000000000000000000000231476727667600203010ustar00rootroot00000000000000debian/input-pad.1 input-pad-1.1.0/debian/libinput-pad-dev.install000066400000000000000000000003331476727667600214230ustar00rootroot00000000000000usr/include/input-pad-1.0 usr/lib/input-pad-1.0/modules/xkeysend/*.a usr/lib/input-pad-1.0/modules/xkeysend/*.la usr/lib/libinput-pad-1.0.a usr/lib/libinput-pad-1.0.la usr/lib/libinput-pad-1.0.so usr/lib/pkgconfig/*.pc input-pad-1.1.0/debian/libinput-pad-dev.install.eek000066400000000000000000000004541476727667600221720ustar00rootroot00000000000000usr/include/input-pad-1.0 usr/lib/input-pad-1.0/modules/xkeysend/*.a usr/lib/input-pad-1.0/modules/xkeysend/*.la usr/lib/input-pad-1.0/modules/kbdui/*.a usr/lib/input-pad-1.0/modules/kbdui/*.la usr/lib/libinput-pad-1.0.a usr/lib/libinput-pad-1.0.la usr/lib/libinput-pad-1.0.so usr/lib/pkgconfig/*.pc input-pad-1.1.0/debian/libinput-pad-eek-dev.install.eek-only000066400000000000000000000001211476727667600237020ustar00rootroot00000000000000usr/lib/input-pad-1.0/modules/kbdui/*.a usr/lib/input-pad-1.0/modules/kbdui/*.la input-pad-1.1.0/debian/libinput-pad-eek.install.eek000066400000000000000000000000511476727667600221510ustar00rootroot00000000000000usr/lib/input-pad-1.0/modules/kbdui/*.so input-pad-1.1.0/debian/libinput-pad-eek.install.eek-only000066400000000000000000000000511476727667600231300ustar00rootroot00000000000000usr/lib/input-pad-1.0/modules/kbdui/*.so input-pad-1.1.0/debian/libinput-pad-xtest.install000066400000000000000000000000541476727667600220140ustar00rootroot00000000000000usr/lib/input-pad-1.0/modules/xkeysend/*.so input-pad-1.1.0/debian/libinput-pad-xtest.symbols000066400000000000000000000002251476727667600220360ustar00rootroot00000000000000libinput-pad-xtest-gdk.so libinput-pad-xtest #MINVER# g_module_check_init@Base 1.0 input_pad_module_init@Base 1.0 input_pad_module_setup@Base 1.0 input-pad-1.1.0/debian/libinput-pad1.dirs000066400000000000000000000001131476727667600202170ustar00rootroot00000000000000usr/lib/input-pad-1.0/modules/kbdui usr/lib/input-pad-1.0/modules/xkeysend input-pad-1.1.0/debian/libinput-pad1.install000066400000000000000000000001371476727667600207320ustar00rootroot00000000000000usr/lib/libinput-pad.so.* usr/share/input-pad usr/share/locale usr/share/pixmaps/input-pad.png input-pad-1.1.0/debian/libinput-pad1.symbols000066400000000000000000000061121476727667600207530ustar00rootroot00000000000000libinput-pad.so.1 libinput-pad1 #MINVER# INPUT_PAD_BOOLEAN__STRING_UINT_UINT_UINT_UINT@Base 1.0 INPUT_PAD_VOID__OBJECT_OBJECT@Base 1.0 INPUT_PAD_VOID__STRING_STRING@Base 1.0 _input_pad_gtk_window_new_with_gtype@Base 1.0 _input_pad_window_new_with_gtype@Base 1.0 command_table_get_label_array@Base 1.0 input_pad_gdk_xkb_destroy_keyboard_layouts@Base 1.0 input_pad_gdk_xkb_get_group_layouts@Base 1.0 input_pad_gdk_xkb_parse_config_registry@Base 1.0 input_pad_gdk_xkb_parse_keyboard_layouts@Base 1.0 input_pad_gdk_xkb_set_layout@Base 1.0 input_pad_gdk_xkb_signal_emit@Base 1.0 input_pad_get_version@Base 1.0 input_pad_group_append_from_file@Base 1.0 input_pad_group_destroy@Base 1.0 input_pad_group_parse_all_files@Base 1.0 input_pad_gtk_button_get_all_keysyms@Base 1.0 input_pad_gtk_button_get_keycode@Base 1.0 input_pad_gtk_button_get_keysym@Base 1.0 input_pad_gtk_button_get_keysym_group@Base 1.0 input_pad_gtk_button_get_rawtext@Base 1.0 input_pad_gtk_button_get_state@Base 1.0 input_pad_gtk_button_get_table_type@Base 1.0 input_pad_gtk_button_get_type@Base 1.0 input_pad_gtk_button_new_with_label@Base 1.0 input_pad_gtk_button_new_with_unicode@Base 1.0 input_pad_gtk_button_set_all_keysyms@Base 1.0 input_pad_gtk_button_set_keycode@Base 1.0 input_pad_gtk_button_set_keysym@Base 1.0 input_pad_gtk_button_set_keysym_group@Base 1.0 input_pad_gtk_button_set_rawtext@Base 1.0 input_pad_gtk_button_set_state@Base 1.0 input_pad_gtk_button_set_table_type@Base 1.0 input_pad_gtk_combo_box_get_base@Base 1.0 input_pad_gtk_combo_box_get_type@Base 1.0 input_pad_gtk_combo_box_new@Base 1.0 input_pad_gtk_combo_box_set_base@Base 1.0 input_pad_gtk_kbdui_context_destroy@Base 1.0 input_pad_gtk_kbdui_context_get_kbdui_name@Base 1.0 input_pad_gtk_kbdui_context_new@Base 1.0 input_pad_gtk_kbdui_context_set_kbdui_name@Base 1.0 input_pad_gtk_kbdui_get_type@Base 1.0 input_pad_gtk_window_append_padfile@Base 1.0 input_pad_gtk_window_get_kbdui_name_list@Base 1.0 input_pad_gtk_window_get_keyboard_state@Base 1.0 input_pad_gtk_window_get_type@Base 1.0 input_pad_gtk_window_new@Base 1.0 input_pad_gtk_window_reorder_button_pressed@Base 1.0 input_pad_gtk_window_set_char_button_sensitive@Base 1.0 input_pad_gtk_window_set_kbdui_name@Base 1.0 input_pad_gtk_window_set_keyboard_state@Base 1.0 input_pad_gtk_window_set_keyboard_state_with_keysym@Base 1.0 input_pad_gtk_window_set_paddir@Base 1.0 input_pad_gtk_window_set_show_layout@Base 1.0 input_pad_gtk_window_set_show_table@Base 1.0 input_pad_window_append_padfile@Base 1.0 input_pad_window_destroy@Base 1.0 input_pad_window_get_kbdui_name_list@Base 1.0 input_pad_window_get_visible@Base 1.0 input_pad_window_hide@Base 1.0 input_pad_window_init@Base 1.0 input_pad_window_main@Base 1.0 input_pad_window_new@Base 1.0 input_pad_window_reorder_button_pressed@Base 1.0 input_pad_window_set_char_button_sensitive@Base 1.0 input_pad_window_set_kbdui_name@Base 1.0 input_pad_window_set_paddir@Base 1.0 input_pad_window_set_show_layout@Base 1.0 input_pad_window_set_show_table@Base 1.0 input_pad_window_show@Base 1.0 string_table_get_label_array@Base 1.0 input-pad-1.1.0/debian/python-input-pad.install000066400000000000000000000000221476727667600214720ustar00rootroot00000000000000usr/lib/python*/* input-pad-1.1.0/debian/rules000077500000000000000000000010651476727667600157520ustar00rootroot00000000000000#!/usr/bin/make -f # -*- makefile -*- # # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 build: dh $@ --before auto_configure dh_auto_configure -- \ --enable-xtest \ --enable-static dh $@ --before auto_test cd po; make input-pad.pot # https://bugs.launchpad.net/ubuntu/+source/ibus/+bug/188690 dh $@ --after auto_test override_dh_auto_install: $(MAKE) install DESTDIR=$(CURDIR)/debian/tmp override_dh_install: dh_install --list-missing --sourcedir=debian/tmp override_dh_makeshlibs: dh_makeshlibs -Nlibinput-pad-xtest -s %: dh $@ input-pad-1.1.0/debian/rules.eek000077500000000000000000000011321476727667600165100ustar00rootroot00000000000000#!/usr/bin/make -f # -*- makefile -*- # # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 build: dh $@ --before auto_configure dh_auto_configure -- \ --enable-xtest \ --enable-eek \ --enable-static dh $@ --before auto_test cd po; make input-pad.pot # https://bugs.launchpad.net/ubuntu/+source/ibus/+bug/188690 dh $@ --after auto_test override_dh_auto_install: $(MAKE) install DESTDIR=$(CURDIR)/debian/tmp override_dh_install: dh_install --list-missing --sourcedir=debian/tmp override_dh_makeshlibs: dh_makeshlibs -Nlibinput-pad-xtest -Nlibinput-pad-eek -s %: dh $@ input-pad-1.1.0/debian/rules.eek-only000077500000000000000000000016131476727667600174730ustar00rootroot00000000000000#!/usr/bin/make -f # -*- makefile -*- # # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 build: dh $@ --before auto_configure dh_auto_configure -- \ --enable-xtest \ --enable-eek \ --enable-static dh $@ --before auto_test cd po; make input-pad.pot # https://bugs.launchpad.net/ubuntu/+source/ibus/+bug/188690 dh $@ --after auto_test override_dh_auto_install: $(MAKE) install DESTDIR=$(CURDIR)/debian/tmp override_dh_install: (cd debian/tmp; \ rm -rf usr/share; \ rm -rf usr/include; \ rm -rf usr/bin; \ rm -f usr/lib/libinput-pad-1.0.a ; \ rm -f usr/lib/libinput-pad-1.0.la ; \ rm -f usr/lib/libinput-pad-1.0.so* ; \ rm -rf usr/lib/pkgconfig ; \ rm -rf usr/lib/python2.6 ; \ rm -rf usr/lib/input-pad-1.0/modules/xkeysend ; \ ); dh_install --list-missing --sourcedir=debian/tmp override_dh_makeshlibs: dh_makeshlibs -Nlibinput-pad-eek -s %: dh $@ input-pad-1.1.0/debian/source/000077500000000000000000000000001476727667600161705ustar00rootroot00000000000000input-pad-1.1.0/debian/source/format000066400000000000000000000000041476727667600173750ustar00rootroot000000000000001.0 input-pad-1.1.0/debian/substvars000066400000000000000000000005331476727667600166500ustar00rootroot00000000000000shlibs:Depends=input-pad, libatk1.0-0 (>= 1.29.3), libc6 (>= 2.1.3), libc6 (>= 2.3.6-6~), libcairo2 (>= 1.2.4), libfontconfig1 (>= 2.8.0), libfreetype6 (>= 2.2.1), libglib2.0-0 (>= 2.16.0), libgtk2.0-0 (>= 2.18.0), libpango1.0-0 (>= 1.14.0), libx11-6 (>= 0), libxkbfile1, libxklavier16 (>= 5.0), libxml2 (>= 2.6.27), libxtst6, zlib1g (>= 1:1.1.4) input-pad-1.1.0/debian/watch000066400000000000000000000002011476727667600157120ustar00rootroot00000000000000version=3 http://code.google.com/p/input-pad/downloads/list \ http://input-pad.googlecode.com/files/input-pad-([0-9].*)\.tar\.gz input-pad-1.1.0/input-pad.pc.in000066400000000000000000000006711476727667600163040ustar00rootroot00000000000000prefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ includedir=@includedir@/input-pad-@libinput_pad_VERSION@ kbduidir=@libdir@/input-pad-@libinput_pad_VERSION@/modules/kbdui xkeysenddir=@libdir@/input-pad-@libinput_pad_VERSION@/modules/xkeysend Name: input-pad Description: Input Pad Version: @VERSION@ Requires: gio-2.0 glib-2.0 gtk+-@GTK_API_VERSION@ Cflags: -I${includedir} Libs: -L${libdir} -linput-pad-@libinput_pad_API_VERSION@ input-pad-1.1.0/input-pad.spec.in000066400000000000000000000102731476727667600166330ustar00rootroot00000000000000%{!?have_pygobject3_devel: %define have_pygobject3_devel %(rpm -q --quiet gobject-introspection-devel && echo 1 || echo 0)} %{!?have_xtest_devel: %define have_xtest_devel %(rpm -q --quiet libXtst-devel && echo 1 || echo 0)} %{!?have_eek_devel: %define have_eek_devel %(rpm -q --quiet eekboard-devel && echo 1 || echo 0)} %define sub_version @libinput_pad_VERSION@ %define libxklavier_version 4.0 %define libxml2_version 2.0 %define gtk3_version 3.10 %define libinput_paddir %{_libdir}/%{name}-%sub_version %define moduledir %{_libdir}/%{name}-%sub_version/modules %define kbduidir %{_libdir}/%{name}-%sub_version/modules/kbdui %define xkeysenddir %{_libdir}/%{name}-%sub_version/modules/xkeysend Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ Release: 1%{?dist} Summary: On-screen Input Pad to Send Characters with Mouse License: LGPLv2+ Group: System Environment/Libraries URL: http://code.google.com/p/input-pad/ Source0: http://input-pad.googlecode.com/files/%{name}-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: gettext-devel BuildRequires: gtk3-devel >= %gtk3_version BuildRequires: libtool BuildRequires: libxkbfile-devel BuildRequires: libxklavier-devel >= %libxklavier_version BuildRequires: libxml2-devel >= %libxml2_version BuildRequires: pkgconfig %if %have_xtest_devel BuildRequires: libXtst-devel %endif %if %have_pygobject3_devel BuildRequires: gobject-introspection-devel %endif %if %have_eek_devel BuildRequires: eekboard-devel %endif %if %have_pygobject3_devel Requires: gobject-introspection Requires: pygobject3 %endif %description The input pad is a tool to send a character on button to text applications. %package devel Summary: Development tools for input-pad Group: Development/Libraries Requires: %{name} = %{version}-%{release} %description devel The input-pad-devel package contains the header files. %if %have_xtest_devel %package xtest Summary: Input Pad with XTEST extension Group: System Environment/Libraries Requires: %{name} = %{version}-%{release} %description xtest The input-pad-xtest package contains XTEST extension module %endif %if %have_eek_devel %package eek Summary: Input Pad with eekboard extension Group: System Environment/Libraries Requires: %{name} = %{version}-%{release} %description eek The input-pad-eek package contains eekboard extension module %endif %prep %setup -q %build %configure \ %if %have_eek_devel --enable-eek \ %endif %if %have_xtest_devel --enable-xtest \ %endif --disable-static make %{?_smp_mflags} %install rm -rf $RPM_BUILD_ROOT make install DESTDIR=$RPM_BUILD_ROOT INSTALL='install -p' if [ ! -d $RPM_BUILD_ROOT%kbduidir ] ; then mkdir -p $RPM_BUILD_ROOT%kbduidir fi if [ ! -d $RPM_BUILD_ROOT%xkeysenddir ] ; then mkdir -p $RPM_BUILD_ROOT%xkeysenddir fi rm -f $RPM_BUILD_ROOT%{_libdir}/*.la rm -f $RPM_BUILD_ROOT%{_libdir}/*.a %if %have_xtest_devel rm -f $RPM_BUILD_ROOT%xkeysenddir/*.la rm -f $RPM_BUILD_ROOT%xkeysenddir/*.a %endif %if %have_eek_devel rm -f $RPM_BUILD_ROOT%kbduidir/*.la rm -f $RPM_BUILD_ROOT%kbduidir/*.a %endif %find_lang %{name} %clean rm -rf $RPM_BUILD_ROOT %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %files -f %{name}.lang %defattr(-,root,root,-) %doc AUTHORS COPYING README %{_bindir}/input-pad %dir %libinput_paddir %dir %moduledir %dir %xkeysenddir %dir %kbduidir %{_libdir}/libinput-pad-*.so.* %if %have_pygobject3_devel %{_libdir}/girepository-1.0/InputPad-%{sub_version}.typelib %endif %{_datadir}/%name %{_datadir}/pixmaps/input-pad.png %files devel %defattr(-,root,root,-) %{_includedir}/%{name}-%sub_version %{_libdir}/libinput-pad-*.so %{_libdir}/pkgconfig/*.pc %if %have_pygobject3_devel %{_datadir}/gir-1.0/InputPad-%{sub_version}.gir %endif %if %have_xtest_devel %files xtest %defattr(-,root,root,-) %xkeysenddir/libinput-pad-xtest-gdk.so %endif %if %have_eek_devel %files eek %defattr(-,root,root,-) %kbduidir/libinput-pad-eek-gtk.so %endif %changelog * @DATE_DISPLAY@ Takao Fujiwara - @PACKAGE_VERSION@-1 - Current version. input-pad-1.1.0/input-pad/000077500000000000000000000000001476727667600153475ustar00rootroot00000000000000input-pad-1.1.0/input-pad/Makefile.am000066400000000000000000000215351476727667600174110ustar00rootroot00000000000000# vim:set noet ts=4: # # input-pad - The input pad # # Copyright (c) 2010-2014 Takao Fujiwara # Copyright (c) 2010-2014 Red Hat, Inc. # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301 USA noinst_DIST = \ $(NULL) # gobject introspection -include $(INTROSPECTION_MAKEFILE) INTROSPECTION_SCANNER_ARGS = INTROSPECTION_COMPILER_ARGS = \ --includedir=$(srcdir) \ --includedir=. \ $(NULL) INTROSPECTION_GIRS = CLEANFILES = MODULE_DIR = $(libdir)/$(PACKAGE)-$(libinput_pad_VERSION)/modules MODULE_KBDUI_DIR = $(MODULE_DIR)/kbdui MODULE_XKEYSEND_DIR = $(MODULE_DIR)/xkeysend AM_CPPFLAGS = \ -I$(top_srcdir) \ -DINPUT_PAD_PAD_SYSTEM_DIR=\""$(pkgdatadir)/pad"\" \ -DINPUT_PAD_UI_GTK_DIR=\""$(pkgdatadir)/ui/gtk"\" \ -DMODULE_KBDUI_DIR=\""$(MODULE_KBDUI_DIR)"\" \ -DDATAROOTDIR=\""$(datarootdir)"\" \ $(NULL) BUILT_SOURCES = \ input-pad-marshal.c \ input-pad-marshal.h \ $(NULL) MAINTAINERCLEANFILES = resources.c libinput_pad_publicdir = $(includedir)/$(PACKAGE)-$(libinput_pad_VERSION) libinput_pad_public_HEADERS = \ input-pad-group.h \ input-pad-kbdui-gtk.h \ input-pad-window-gtk.h \ input-pad.h \ $(NULL) #libinput_pad_LTLIBRARIES = libinput-pad-$(libinput_pad_API_VERSION).la libinput_pad_LTLIBRARIES = libinput-pad-1.0.la libinput_paddir = $(libdir) libinput_pad_1_0_la_SOURCES = \ $(BUILT_SOURCES) \ $(libinput_pad_public_HEADERS) \ button-gtk.c \ button-gtk.h \ combobox-gtk.c \ combobox-gtk.h \ geometry-gdk.c \ geometry-gdk.h \ geometry-xkb.h \ i18n.h \ input-pad-private.h \ kbdui-gtk.c \ parse-pad.c \ resources.c \ unicode_block.h \ viewport-gtk.c \ viewport-gtk.h \ window-gtk.c \ $(NULL) libinput_pad_1_0_la_CFLAGS = \ $(GTK3_CFLAGS) \ $(GMODULE2_CFLAGS) \ $(LIBXML2_CFLAGS) \ $(X11_CFLAGS) \ $(XKB_CFLAGS) \ $(LIBXKLAVIER_CFLAGS) \ $(NULL) libinput_pad_1_0_la_LIBADD = \ $(GTK3_LIBS) \ $(GMODULE2_LIBS) \ $(LIBXML2_LIBS) \ $(X11_LIBS) \ $(XKB_LIBS) \ $(LIBXKLAVIER_LIBS) \ $(NULL) libinput_pad_1_0_la_LDFLAGS = \ -export-dynamic \ -version-info $(LT_VERSION_INFO) \ $(no_undefined) \ $(NULL) resources.c: input-pad.gresource.xml app-menu.ui dialog.ui window-gtk.ui $(GLIB_COMPILE_RESOURCES) $< --target=$@ --generate-source input-pad-marshal.h: input-pad-marshal.list @$(GLIB_GENMARSHAL) $< --prefix=INPUT_PAD --header > $@ \ $(NULL) input-pad-marshal.c: input-pad-marshal.list @echo "#include \"input-pad-marshal.h\"" > $@ && \ $(GLIB_GENMARSHAL) $< --prefix=INPUT_PAD --body >> $@ \ $(NULL) if HAVE_XTEST MODULE_XTEST_GDK_BASE = input-pad-xtest-gdk AM_CPPFLAGS += \ -DMODULE_XTEST_GDK_BASE=\""$(MODULE_XTEST_GDK_BASE)"\" \ -DMODULE_XTEST_GDK_DIR=\""$(MODULE_XKEYSEND_DIR)"\" \ $(NULL) libinput_pad_xtest_gdk_LTLIBRARIES = libinput-pad-xtest-gdk.la libinput_pad_xtest_gdkdir = $(MODULE_XKEYSEND_DIR) libinput_pad_xtest_gdk_la_SOURCES = \ xtest-gdk.c \ $(NULL) libinput_pad_xtest_gdk_la_CFLAGS = \ $(GTK3_CFLAGS) \ $(X11_CFLAGS) \ $(NULL) libinput_pad_xtest_gdk_la_LIBADD = \ $(builddir)/libinput-pad-$(libinput_pad_API_VERSION).la \ $(GTK3_LIBS) \ $(X11_LIBS) \ $(XTEST_LIBS) \ $(NULL) libinput_pad_xtest_gdk_la_LDFLAGS = \ -export-dynamic \ -avoid-version \ $(no_undefined) \ $(NULL) endif if HAVE_EEK MODULE_EEK_GTK_BASE = eek-gtk AM_CPPFLAGS += \ -DMODULE_EEK_GTK_BASE=\""$(MODULE_EEK_GTK_BASE)"\" \ $(NULL) libinput_pad_eek_gtk_LTLIBRARIES = libinput-pad-eek-gtk.la libinput_pad_eek_gtkdir = $(MODULE_KBDUI_DIR) libinput_pad_eek_gtk_la_SOURCES = \ eek-gtk.c \ eek-gtk.h \ $(NULL) libinput_pad_eek_gtk_la_CFLAGS = \ $(EEK_CFLAGS) \ $(NULL) libinput_pad_eek_gtk_la_LIBADD = \ $(builddir)/libinput-pad-$(libinput_pad_API_VERSION).la \ $(EEK_LIBS) \ $(NULL) libinput_pad_eek_gtk_la_LDFLAGS = \ -export-dynamic \ -avoid-version \ $(no_undefined) \ $(NULL) endif bin_PROGRAMS = \ input-pad \ $(NULL) input_pad_SOURCES = \ input-pad-main.c \ $(NULL) input_pad_CFLAGS = \ $(NULL) input_pad_LDADD = \ $(builddir)/libinput-pad-$(libinput_pad_API_VERSION).la \ $(NULL) if HAVE_INTROSPECTION introspection_files = \ $(libinput_pad_1_0_la_SOURCES) \ $(NULL) InputPad-$(libinput_pad_VERSION).gir: $(libinput_pad_LTLIBRARIES) Makefile InputPad_1_1_gir_SCANNERFLAGS = \ --pkg-export=input-pad \ --warn-all \ $(INPUT_PAD_GIR_SCANNERFLAGS) InputPad_1_1_gir_INCLUDES = GLib-2.0 GObject-2.0 Gio-2.0 Gtk-3.0 InputPad_1_1_gir_LIBS = $(libinput_pad_LTLIBRARIES) InputPad_1_1_gir_FILES = $(addprefix $(srcdir)/,$(introspection_files)) InputPad_1_1_gir_CFLAGS = -DIBUS_COMPILATION INTROSPECTION_GIRS += InputPad-$(libinput_pad_VERSION).gir girdir = $(datadir)/gir-1.0 dist_gir_DATA = $(INTROSPECTION_GIRS) typelibsdir = $(libdir)/girepository-1.0 typelibs_DATA = $(INTROSPECTION_GIRS:.gir=.typelib) CLEANFILES += $(dist_gir_DATA) $(typelibs_DATA) endif man_one_in_files = input-pad.1.in man_one_files = $(man_one_in_files:.1.in=.1) man_one_DATA =$(man_one_files:.1=.1.gz) man_onedir = $(mandir)/man1 %.1: %.1.in $(AM_V_GEN) sed \ -e 's|@VERSION[@]|$(VERSION)|g' $< > $@.tmp && \ mv $@.tmp $@ %.1.gz: %.1 $(AM_V_GEN) gzip -c $< > $@.tmp && mv $@.tmp $@ CLEANFILES += \ $(BUILT_SOURCES) \ $(man_one_files) \ $(man_one_DATA) \ $(NULL) EXTRA_DIST = \ $(man_one_in_files) \ app-menu.ui \ dialog.ui \ input-pad.gresource.xml \ input-pad-marshal.list \ unicode_block.sh \ window-gtk.ui \ $(NULL) input-pad-1.1.0/input-pad/app-menu.ui000066400000000000000000000045771476727667600174450ustar00rootroot00000000000000 _File
_Close Close the program app.Close
_Pad
_Code Point app.CodePoint _Show Pad
Show _All Characters app.ShowAllChars Show _Custom Characters app.ShowCustomChars app.ShowAllChars True Show _Nothing app.ShowNothing app.ShowAllChars
Show _Keyboard Layout app.ShowLayout True
_Help
_Troubleshoot app.Contents _About app.About
input-pad-1.1.0/input-pad/button-gtk.c000066400000000000000000000411671476727667600176220ustar00rootroot00000000000000/* vim:set et sts=4: */ /* input-pad - The input pad * Copyright (C) 2010-2014 Takao Fujiwara * Copyright (C) 2010-2014 Red Hat, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301 USA */ #ifdef HAVE_CONFIG_H #include #endif #include #include "input-pad-group.h" #include "button-gtk.h" #include "i18n.h" #define TIMEOUT_INITIAL 500 #define TIMEOUT_REPEAT 300 #define INPUT_PAD_GTK_BUTTON_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), INPUT_PAD_TYPE_GTK_BUTTON, InputPadGtkButtonPrivate)) enum { PRESSED_REPEAT, LAST_SIGNAL, }; struct _InputPadGtkButtonPrivate { guint keycode; guint keysym; guint **keysyms; int keysym_group; guint state; gchar *label; gchar *rawtext; InputPadTableType type; guint32 timer; guint32 unicode; }; static guint signals[LAST_SIGNAL] = { 0 }; static GtkBuildableIface *parent_buildable_iface; static void input_pad_gtk_button_buildable_interface_init (GtkBuildableIface *iface); #if GTK_CHECK_VERSION (2, 90, 0) static void input_pad_gtk_button_destroy_real (GtkWidget *widget); #else static void input_pad_gtk_button_destroy_real (GtkObject *widget); #endif static gint input_pad_gtk_button_press_real (GtkWidget *widget, GdkEventButton *event); static gint input_pad_gtk_button_release_real (GtkWidget *widget, GdkEventButton *event); G_DEFINE_TYPE_WITH_CODE (InputPadGtkButton, input_pad_gtk_button, GTK_TYPE_BUTTON, G_IMPLEMENT_INTERFACE (GTK_TYPE_BUILDABLE, input_pad_gtk_button_buildable_interface_init)) static void input_pad_gtk_button_init (InputPadGtkButton *button) { InputPadGtkButtonPrivate *priv = INPUT_PAD_GTK_BUTTON_GET_PRIVATE (button); button->priv = priv; } static void input_pad_gtk_button_buildable_interface_init (GtkBuildableIface *iface) { parent_buildable_iface = g_type_interface_peek_parent (iface); } static void input_pad_gtk_button_class_init (InputPadGtkButtonClass *klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); #if !GTK_CHECK_VERSION (2, 90, 0) GtkObjectClass *object_class = GTK_OBJECT_CLASS (klass); #endif GtkWidgetClass *widget_class = (GtkWidgetClass *) klass; #if GTK_CHECK_VERSION (2, 90, 0) widget_class->destroy = input_pad_gtk_button_destroy_real; #else object_class->destroy = input_pad_gtk_button_destroy_real; #endif widget_class->button_press_event = input_pad_gtk_button_press_real; widget_class->button_release_event = input_pad_gtk_button_release_real; g_type_class_add_private (klass, sizeof (InputPadGtkButtonPrivate)); signals[PRESSED_REPEAT] = g_signal_new (I_("pressed-repeat"), G_TYPE_FROM_CLASS (gobject_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (InputPadGtkButtonClass, pressed_repeat), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); } static gint button_timer_cb (InputPadGtkButton *button) { g_return_val_if_fail (button->priv != NULL, FALSE); if (button->priv->timer == 0) { return FALSE; } button->priv->timer = gdk_threads_add_timeout (TIMEOUT_REPEAT, (GSourceFunc) button_timer_cb, (gpointer) button); g_signal_emit ((gpointer) button, signals[PRESSED_REPEAT], 0); return TRUE; } static void start_timer (InputPadGtkButton *button) { g_return_if_fail (button->priv != NULL); if (button->priv->timer != 0) { return; } button->priv->timer = gdk_threads_add_timeout (TIMEOUT_INITIAL, (GSourceFunc) button_timer_cb, (gpointer) button); } static void end_timer (InputPadGtkButton *button) { g_return_if_fail (button->priv != NULL); if (button->priv->timer == 0) { return; } g_source_remove (button->priv->timer); button->priv->timer = 0; } static void #if GTK_CHECK_VERSION (2, 90, 0) input_pad_gtk_button_destroy_real (GtkWidget *widget) #else input_pad_gtk_button_destroy_real (GtkObject *widget) #endif { InputPadGtkButton *ibutton; if (INPUT_PAD_IS_GTK_BUTTON (widget)) { ibutton = INPUT_PAD_GTK_BUTTON (widget); if (ibutton->priv) { end_timer (ibutton); g_free (ibutton->priv->rawtext); ibutton->priv->rawtext = NULL; g_free (ibutton->priv->label); ibutton->priv->label = NULL; ibutton->priv = NULL; } } #if GTK_CHECK_VERSION (2, 90, 0) GTK_WIDGET_CLASS (input_pad_gtk_button_parent_class)->destroy (widget); #else GTK_OBJECT_CLASS (input_pad_gtk_button_parent_class)->destroy (widget); #endif } static gint input_pad_gtk_button_press_real (GtkWidget *widget, GdkEventButton *event) { if (INPUT_PAD_IS_GTK_BUTTON (widget)) { start_timer (INPUT_PAD_GTK_BUTTON (widget)); } return GTK_WIDGET_CLASS (input_pad_gtk_button_parent_class)->button_press_event (widget, event); } static gint input_pad_gtk_button_release_real (GtkWidget *widget, GdkEventButton *event) { if (INPUT_PAD_IS_GTK_BUTTON (widget)) { end_timer (INPUT_PAD_GTK_BUTTON (widget)); } return GTK_WIDGET_CLASS (input_pad_gtk_button_parent_class)->button_release_event (widget, event); } static int context_render_string (cairo_t *cr, const gchar *label, int width, int height) { PangoFontDescription *desc; PangoLayout *layout; int lwidth = 0; int lheight = 0; if (height > 14) desc = pango_font_description_from_string ("Monospace 10"); else desc = pango_font_description_from_string ("Monospace 8"); layout = pango_cairo_create_layout (cr); pango_layout_set_text (layout, label, -1); pango_layout_get_size (layout, &lwidth, &lheight); #if 0 g_print ("test %d %d %d %d\n", lwidth / PANGO_SCALE, lheight / PANGO_SCALE, width, height); #endif cairo_move_to (cr, (gdouble)(width - lwidth / PANGO_SCALE) / 2, (gdouble)(height - lheight / PANGO_SCALE) / 2); cairo_set_source_rgba (cr, 0., 0., 0., 1.); pango_cairo_show_layout (cr, layout); g_object_unref (layout); pango_font_description_free (desc); return lwidth / PANGO_SCALE; } static GdkPixbuf * create_pixbuf(const gchar *label, int icon_height) { cairo_surface_t *image; cairo_t *cr; int width, height, lwidth; GdkPixbuf *pixbuf = NULL; if (icon_height <= 0) icon_height = DEFAULT_ICON_SIZE; image = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, icon_height, icon_height); cr = cairo_create (image); width = cairo_image_surface_get_width (image); height = cairo_image_surface_get_width (image); cairo_set_source_rgba (cr, 0., 0., 0., 0.); cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE); cairo_paint (cr); cairo_set_operator (cr, CAIRO_OPERATOR_OVER); lwidth = context_render_string (cr, label, width, height); /* If label is more than two chars. */ if (lwidth > icon_height && lwidth < 1000) { cairo_destroy (cr); cairo_surface_destroy (image); image = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, lwidth, icon_height); cr = cairo_create (image); width = cairo_image_surface_get_width (image); height = cairo_image_surface_get_width (image); cairo_set_source_rgba (cr, 0., 0., 0., 0.); cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE); cairo_paint (cr); cairo_set_operator (cr, CAIRO_OPERATOR_OVER); width = context_render_string (cr, label, width, icon_height); } pixbuf = gdk_pixbuf_get_from_surface (image, 0, 0, width, icon_height); cairo_destroy (cr); cairo_surface_destroy (image); return pixbuf; } GtkWidget * input_pad_gtk_button_new_with_label (const gchar *label) { return input_pad_gtk_button_new_with_label_size (label, 0); } GtkWidget * input_pad_gtk_button_new_with_label_size (const gchar *label, int icon_size) { GdkPixbuf *pixbuf = create_pixbuf(label, icon_size); GtkWidget *image = gtk_image_new_from_pixbuf (pixbuf); GtkWidget *button; InputPadGtkButton *ibutton; g_object_unref (pixbuf); button = g_object_new (INPUT_PAD_TYPE_GTK_BUTTON, "image", image, NULL); ibutton = INPUT_PAD_GTK_BUTTON (button); ibutton->priv->label = g_strdup (label); return button; } GtkWidget * input_pad_gtk_button_new_with_unicode (guint code) { gchar buff[7]; gchar buff2[35]; /* 7 x 5 e.g. 'a' -> '0x61 ' */ gchar *tooltip; int i; GtkWidget *button; /* The displaying button is too long with '\t'. */ if (code == '\t') { buff[0] = ' '; buff[1] = '\0'; sprintf (buff2, "0x%02X ", (unsigned char) code); } else { buff[g_unichar_to_utf8 ((gunichar) code, buff)] = '\0'; for (i = 0; buff[i] && i < 7; i++) { sprintf (buff2 + i * 5, "0x%02X ", (unsigned char) buff[i]); } if (buff[0] == '\0') { buff2[0] = '0'; buff2[0] = 'x'; buff2[1] = '0'; buff2[2] = '0'; buff2[3] = '\0'; } } button = input_pad_gtk_button_new_with_label (buff); if (code == '\t') { input_pad_gtk_button_set_keysym (INPUT_PAD_GTK_BUTTON (button), code); } tooltip = g_strdup_printf ("U+%04X\nUTF-8 %s", code, buff2); gtk_widget_set_tooltip_text (GTK_WIDGET (button), tooltip); g_free (tooltip); input_pad_gtk_button_set_table_type (INPUT_PAD_GTK_BUTTON (button), INPUT_PAD_TABLE_TYPE_CHARS); INPUT_PAD_GTK_BUTTON (button)->priv->unicode = code; return button; } guint input_pad_gtk_button_get_unicode (InputPadGtkButton *button) { g_return_val_if_fail (button != NULL && INPUT_PAD_IS_GTK_BUTTON (button), 0x0); return button->priv->unicode; } void input_pad_gtk_button_set_unicode (InputPadGtkButton *button, guint code) { gchar buff[7]; gchar buff2[35]; gchar *tooltip; int i; if (code == '\t') { buff[0] = ' '; buff[1] = '\0'; sprintf (buff2, "0x%02X ", (unsigned char) code); } else { buff[g_unichar_to_utf8 ((gunichar) code, buff)] = '\0'; for (i = 0; buff[i] && i < 7; i++) { sprintf (buff2 + i * 5, "0x%02X ", (unsigned char) buff[i]); } if (buff[0] == '\0') { buff2[0] = '0'; buff2[0] = 'x'; buff2[1] = '0'; buff2[2] = '0'; buff2[3] = '\0'; } } input_pad_gtk_button_set_label (button, buff); if (code == '\t') { input_pad_gtk_button_set_keysym (button, code); } tooltip = g_strdup_printf ("U+%04X\nUTF-8 %s", code, buff2); gtk_widget_set_tooltip_text (GTK_WIDGET (button), tooltip); g_free (tooltip); input_pad_gtk_button_set_table_type (button, INPUT_PAD_TABLE_TYPE_CHARS); button->priv->unicode = code; } guint input_pad_gtk_button_get_keycode (InputPadGtkButton *button) { g_return_val_if_fail (button != NULL && INPUT_PAD_IS_GTK_BUTTON (button), 0x0); return button->priv->keycode; } void input_pad_gtk_button_set_keycode (InputPadGtkButton *button, guint keycode) { g_return_if_fail (button != NULL && INPUT_PAD_IS_GTK_BUTTON (button)); button->priv->keycode = keycode; } guint input_pad_gtk_button_get_keysym (InputPadGtkButton *button) { g_return_val_if_fail (button != NULL && INPUT_PAD_IS_GTK_BUTTON (button), 0x0); return button->priv->keysym; } void input_pad_gtk_button_set_keysym (InputPadGtkButton *button, guint keysym) { g_return_if_fail (button != NULL && INPUT_PAD_IS_GTK_BUTTON (button)); button->priv->keysym = keysym; } guint ** input_pad_gtk_button_get_all_keysyms (InputPadGtkButton *button) { g_return_val_if_fail (button != NULL && INPUT_PAD_IS_GTK_BUTTON (button), NULL); return button->priv->keysyms; } void input_pad_gtk_button_set_all_keysyms (InputPadGtkButton *button, guint **keysyms) { g_return_if_fail (button != NULL && INPUT_PAD_IS_GTK_BUTTON (button)); button->priv->keysyms = keysyms; } int input_pad_gtk_button_get_keysym_group (InputPadGtkButton *button) { g_return_val_if_fail (button != NULL && INPUT_PAD_IS_GTK_BUTTON (button), 0); return button->priv->keysym_group; } void input_pad_gtk_button_set_keysym_group (InputPadGtkButton *button, int group) { g_return_if_fail (button != NULL && INPUT_PAD_IS_GTK_BUTTON (button)); button->priv->keysym_group = group; } guint input_pad_gtk_button_get_state (InputPadGtkButton *button) { g_return_val_if_fail (button != NULL && INPUT_PAD_IS_GTK_BUTTON (button), 0x0); return button->priv->state; } void input_pad_gtk_button_set_state (InputPadGtkButton *button, guint state) { g_return_if_fail (button != NULL && INPUT_PAD_IS_GTK_BUTTON (button)); button->priv->state = state; } InputPadTableType input_pad_gtk_button_get_table_type (InputPadGtkButton *button) { g_return_val_if_fail (button != NULL && INPUT_PAD_IS_GTK_BUTTON (button), INPUT_PAD_TABLE_TYPE_NONE); return button->priv->type; } void input_pad_gtk_button_set_table_type (InputPadGtkButton *button, InputPadTableType type) { g_return_if_fail (button != NULL && INPUT_PAD_IS_GTK_BUTTON (button)); button->priv->type = type; } const gchar * input_pad_gtk_button_get_rawtext (InputPadGtkButton *button) { g_return_val_if_fail (button != NULL && INPUT_PAD_IS_GTK_BUTTON (button), NULL); return button->priv->rawtext; } void input_pad_gtk_button_set_rawtext (InputPadGtkButton *button, const gchar *rawtext) { g_return_if_fail (button != NULL && INPUT_PAD_IS_GTK_BUTTON (button)); g_free (button->priv->rawtext); button->priv->rawtext = NULL; if (rawtext == NULL) { return; } button->priv->rawtext = g_strdup (rawtext); } const gchar * input_pad_gtk_button_get_label (InputPadGtkButton *button) { g_return_val_if_fail (button != NULL && INPUT_PAD_IS_GTK_BUTTON (button), NULL); return button->priv->label; } void input_pad_gtk_button_set_label (InputPadGtkButton *button, const gchar *label) { input_pad_gtk_button_set_label_size (button, label, 0); } void input_pad_gtk_button_set_label_size (InputPadGtkButton *button, const gchar *label, int icon_size) { g_return_if_fail (button != NULL && INPUT_PAD_IS_GTK_BUTTON (button)); GdkPixbuf *pixbuf = create_pixbuf(label, icon_size); GtkWidget *image = gtk_image_new_from_pixbuf (pixbuf); g_object_unref (pixbuf); gtk_button_set_image (GTK_BUTTON (button), image); g_free (button->priv->label); button->priv->label = g_strdup (label); } input-pad-1.1.0/input-pad/button-gtk.h000066400000000000000000000137261476727667600176270ustar00rootroot00000000000000/* vim:set et sts=4: */ /* input-pad - The input pad * Copyright (C) 2010-2012 Takao Fujiwara * Copyright (C) 2010-2012 Red Hat, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301 USA */ #ifndef __INPUT_PAD_BUTTON_GTK_H__ #define __INPUT_PAD_BUTTON_GTK_H__ #include #include "input-pad-group.h" G_BEGIN_DECLS #define DEFAULT_ICON_SIZE 24 #define KEYBOARD_ICON_SIZE 14 #define INPUT_PAD_TYPE_GTK_BUTTON (input_pad_gtk_button_get_type ()) #define INPUT_PAD_GTK_BUTTON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), INPUT_PAD_TYPE_GTK_BUTTON, InputPadGtkButton)) #define INPUT_PAD_GTK_BUTTON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), INPUT_PAD_TYPE_GTK_BUTTON, InputPadGtkButtonClass)) #define INPUT_PAD_IS_GTK_BUTTON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), INPUT_PAD_TYPE_GTK_BUTTON)) #define INPUT_PAD_IS_GTK_BUTTON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), INPUT_PAD_TYPE_GTK_BUTTON)) #define INPUT_PAD_GTK_BUTTON_GET_CLASS(l) (G_TYPE_INSTANCE_GET_CLASS ((o), INPUT_PAD_TYPE_GTK_BUTTON, InputPadGtkButtonClass)) typedef struct _InputPadGtkButtonPrivate InputPadGtkButtonPrivate; typedef struct _InputPadGtkButton InputPadGtkButton; typedef struct _InputPadGtkButtonClass InputPadGtkButtonClass; struct _InputPadGtkButton { GtkButton parent; InputPadGtkButtonPrivate *priv; }; struct _InputPadGtkButtonClass { GtkButtonClass parent_class; void (* pressed_repeat) (InputPadGtkButton *window); /* Padding for future expansion */ void (*_button_reserved1) (void); void (*_button_reserved2) (void); void (*_button_reserved3) (void); void (*_button_reserved4) (void); }; GType input_pad_gtk_button_get_type (void); GtkWidget * input_pad_gtk_button_new_with_label (const gchar *label); GtkWidget * input_pad_gtk_button_new_with_label_size (const gchar *label, int icon_size); GtkWidget * input_pad_gtk_button_new_with_unicode (guint code); void input_pad_gtk_button_set_unicode (InputPadGtkButton *button, guint code); guint input_pad_gtk_button_get_unicode (InputPadGtkButton *button); guint input_pad_gtk_button_get_keycode (InputPadGtkButton *button); void input_pad_gtk_button_set_keycode (InputPadGtkButton *button, guint keycode); guint input_pad_gtk_button_get_keysym (InputPadGtkButton *button); void input_pad_gtk_button_set_keysym (InputPadGtkButton *button, guint keysym); guint ** input_pad_gtk_button_get_all_keysyms (InputPadGtkButton *button); void input_pad_gtk_button_set_all_keysyms (InputPadGtkButton *button, guint **keysyms); int input_pad_gtk_button_get_keysym_group (InputPadGtkButton *button); void input_pad_gtk_button_set_keysym_group (InputPadGtkButton *button, int group); guint input_pad_gtk_button_get_state (InputPadGtkButton *button); void input_pad_gtk_button_set_state (InputPadGtkButton *button, guint state); InputPadTableType input_pad_gtk_button_get_table_type (InputPadGtkButton *button); void input_pad_gtk_button_set_table_type (InputPadGtkButton *button, InputPadTableType type); const gchar * input_pad_gtk_button_get_rawtext (InputPadGtkButton *button); void input_pad_gtk_button_set_rawtext (InputPadGtkButton *button, const gchar *rawtext); const gchar * input_pad_gtk_button_get_label (InputPadGtkButton *button); void input_pad_gtk_button_set_label (InputPadGtkButton *button, const gchar *label); void input_pad_gtk_button_set_label_size (InputPadGtkButton *button, const gchar *label, int icon_size); G_END_DECLS #endif input-pad-1.1.0/input-pad/combobox-gtk.c000066400000000000000000000056521476727667600201160ustar00rootroot00000000000000/* vim:set et sts=4: */ /* input-pad - The input pad * Copyright (C) 2010-2012 Takao Fujiwara * Copyright (C) 2010-2012 Red Hat, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301 USA */ #ifdef HAVE_CONFIG_H #include #endif #include #include "combobox-gtk.h" #define INPUT_PAD_GTK_COMBO_BOX_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), INPUT_PAD_TYPE_GTK_COMBO_BOX, InputPadGtkComboBoxPrivate)) struct _InputPadGtkComboBoxPrivate { guint base; }; static GtkBuildableIface *parent_buildable_iface; static void input_pad_gtk_combo_box_buildable_interface_init (GtkBuildableIface *iface); G_DEFINE_TYPE_WITH_CODE (InputPadGtkComboBox, input_pad_gtk_combo_box, GTK_TYPE_COMBO_BOX, G_IMPLEMENT_INTERFACE (GTK_TYPE_BUILDABLE, input_pad_gtk_combo_box_buildable_interface_init)) static void input_pad_gtk_combo_box_init (InputPadGtkComboBox *combobox) { InputPadGtkComboBoxPrivate *priv = INPUT_PAD_GTK_COMBO_BOX_GET_PRIVATE (combobox); combobox->priv = priv; } static void input_pad_gtk_combo_box_buildable_interface_init (GtkBuildableIface *iface) { parent_buildable_iface = g_type_interface_peek_parent (iface); } static void input_pad_gtk_combo_box_class_init (InputPadGtkComboBoxClass *klass) { #if 0 GObjectClass *gobject_class = G_OBJECT_CLASS (klass); GtkObjectClass *object_class = (GtkObjectClass *) klass; GtkWidgetClass *widget_class = (GtkWidgetClass *) klass; #endif g_type_class_add_private (klass, sizeof (InputPadGtkComboBoxPrivate)); } GtkWidget * input_pad_gtk_combo_box_new (void) { return g_object_new (INPUT_PAD_TYPE_GTK_COMBO_BOX, NULL); } guint input_pad_gtk_combo_box_get_base (InputPadGtkComboBox *combobox) { g_return_val_if_fail (combobox != NULL && INPUT_PAD_IS_GTK_COMBO_BOX (combobox), 0x0); return combobox->priv->base; } void input_pad_gtk_combo_box_set_base (InputPadGtkComboBox *combobox, guint base) { g_return_if_fail (combobox != NULL && INPUT_PAD_IS_GTK_COMBO_BOX (combobox)); combobox->priv->base = base; } input-pad-1.1.0/input-pad/combobox-gtk.h000066400000000000000000000053521476727667600201200ustar00rootroot00000000000000/* vim:set et sts=4: */ /* input-pad - The input pad * Copyright (C) 2010-2012 Takao Fujiwara * Copyright (C) 2010-2012 Red Hat, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301 USA */ #ifndef __INPUT_PAD_COMBOBOX_GTK_H__ #define __INPUT_PAD_COMBOBOX_GTK_H__ #include G_BEGIN_DECLS #define INPUT_PAD_TYPE_GTK_COMBO_BOX (input_pad_gtk_combo_box_get_type ()) #define INPUT_PAD_GTK_COMBO_BOX(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), INPUT_PAD_TYPE_GTK_COMBO_BOX, InputPadGtkComboBox)) #define INPUT_PAD_GTK_COMBO_BOX_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), INPUT_PAD_TYPE_GTK_COMBO_BOX, InputPadGtkComboBoxClass)) #define INPUT_PAD_IS_GTK_COMBO_BOX(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), INPUT_PAD_TYPE_GTK_COMBO_BOX)) #define INPUT_PAD_IS_GTK_COMBO_BOX_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), INPUT_PAD_TYPE_GTK_COMBO_BOX)) #define INPUT_PAD_GTK_COMBO_BOX_GET_CLASS(l) (G_TYPE_INSTANCE_GET_CLASS ((o), INPUT_PAD_TYPE_GTK_COMBO_BOX, InputPadGtkComboBoxClass)) typedef struct _InputPadGtkComboBoxPrivate InputPadGtkComboBoxPrivate; typedef struct _InputPadGtkComboBox InputPadGtkComboBox; typedef struct _InputPadGtkComboBoxClass InputPadGtkComboBoxClass; struct _InputPadGtkComboBox { GtkComboBox parent; InputPadGtkComboBoxPrivate *priv; }; struct _InputPadGtkComboBoxClass { GtkComboBoxClass parent_class; /* Padding for future expansion */ void (*_combobox_reserved1) (void); void (*_combobox_reserved2) (void); void (*_combobox_reserved3) (void); void (*_combobox_reserved4) (void); }; GType input_pad_gtk_combo_box_get_type (void); GtkWidget * input_pad_gtk_combo_box_new (void); guint input_pad_gtk_combo_box_get_base (InputPadGtkComboBox *combobox); void input_pad_gtk_combo_box_set_base (InputPadGtkComboBox *combobox, guint base); G_END_DECLS #endif input-pad-1.1.0/input-pad/dialog.ui000066400000000000000000000742711476727667600171600ustar00rootroot00000000000000 Code Point Dialog False vertical True 10 horizontal False 10 True Unicode You can choose encoding type False False True Current Encoding You can choose encoding type EncodingUnicodeButton False False 1 True Copy Buffer You can choose encoding type EncodingUnicodeButton False False 2 False False 0 horizontal True 10 True Base 16 Hex Set number case to hexadecimal False False True Base 10 Dec Set number case to decimal Base16Button False False 1 True Base 8 Oct Set number case to octal Base16Button False False 2 True Base 2 Bin Set number case to binary Base16Button False False 3 False False 1 True Code Point: 0.05 False False 2 horizontal True 10 horizontal True 10 False False horizontal True 10 True False False True False False 1 False False 1 False False 3 horizontal True 10 True Character: 0.05 False False 0 True False False 1 False False 4 horizontal 20 True _Send TRUE True _Close TRUE False False 5 Input Pad Troubleshoot This application can be run either as a stand-alone program or under an input method application. If you wish to send multi-byte characters, this application needs to be run under an input method application. If you wish to send characters to X11 applications, those applications needs to allow send events. e.g. % xterm -xrm "XTerm*allowSendEvents: true" You also can copy pad files from /usr/share/input-pad/pad to $HOME/.config/pad to customize those in "Custom Character" pane. vertical 10 horizontal end True _OK TRUE False False 0 False False 1 Configure Keyboard Layouts vertical True False 0 10 horizontal True True 5 10 vertical True False 0 10 True A_vailable layouts: True False GTK_JUSTIFY_LEFT False False start ConfigLayoutsAddTreeView 0 False False True True GTK_POLICY_AUTOMATIC GTK_POLICY_AUTOMATIC GTK_SHADOW_ETCHED_IN GTK_CORNER_TOP_LEFT 200 300 True True True False True 1 0 False False True True _Add TRUE GTK_RELIEF_NORMAL 2 0 False False 0 False False vertical True False 0 10 True _Layouts shown in the list: True False GTK_JUSTIFY_LEFT False False start ConfigLayoutsRemoveTreeView 0 False False True True GTK_POLICY_AUTOMATIC GTK_POLICY_AUTOMATIC GTK_SHADOW_ETCHED_IN GTK_CORNER_TOP_LEFT 200 300 True True True False True 1 0 False False True True _Remove True GTK_RELIEF_NORMAL 2 0 False False 1 0 False False 0 0 False False horizontal True 5 end True True _Options TRUE GTK_RELIEF_NORMAL 0 0 False False 1 0 False False horizontal 20 True _Close True 0 False False 2 False False Configure Keyboard Options ConfigLayoutsDialog vertical True 10 12 True 0 none True vertical 6 12 12 True True 5 450 350 automatic automatic out True none True vertical 1 True <b>Keyboard Option</b> True False 0 horizontal True True end _Close True True False False 0 False False end 1 Input Pad Copyright (c) 2010-2014 Takao Fujiwara Copyright (c) 2010-2014 Red Hat, Inc. The input pad is a tool to send a character on button. LGPL http://code.google.com/p/input-pad/ Takao Fujiwara <takao.fujiwara1@gmail.com> Daiki Ueno <ueno@unixuser.org> translator_credits True input-pad-1.1.0/input-pad/eek-gtk.c000066400000000000000000000217101476727667600170430ustar00rootroot00000000000000/* vim:set et sts=4: */ /* input-pad - The input pad * Copyright (C) 2010-2012 Takao Fujiwara * Copyright (C) 2010 Daiki Ueno * Copyright (C) 2010-2012 Red Hat, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301 USA */ #ifdef HAVE_CONFIG_H #include #endif #include #include #include #include #include "eek-gtk.h" #include "geometry-xkb.h" #ifdef I_ /* eek-gtk.h calls eek-types.h */ #undef I_ #endif #include "i18n.h" #include "input-pad-group.h" #include "input-pad-kbdui-gtk.h" #include "input-pad-window-gtk.h" #include "input-pad.h" #define INPUT_PAD_GTK_KBDUI_EEK_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), INPUT_PAD_TYPE_GTK_KBDUI_EEK, InputPadGtkKbduiEekPrivate)) struct _InputPadGtkKbduiEekPrivate { EekKeyboard *eek_keyboard; }; static void create_keyboard_layout_ui_real_eek (InputPadGtkKbdui *kbdui, GtkWidget *vbox, InputPadGtkWindow *window); static void destroy_prev_keyboard_layout_eek (InputPadGtkKbdui *kbdui, GtkWidget *vbox, InputPadGtkWindow *window); G_DEFINE_TYPE (InputPadGtkKbduiEek, input_pad_gtk_kbdui_eek, INPUT_PAD_TYPE_GTK_KBDUI) static gboolean use_eek = FALSE; static GOptionEntry entries[] = { { "enable-eek", 'e', 0, G_OPTION_ARG_NONE, &use_eek, N_("Use libeek to draw keyboard"), NULL}, { NULL } }; static void on_window_keyboard_changed_eek (InputPadGtkWindow *window, gint group, gpointer data) { InputPadGtkKbduiEek *kbdui; g_return_if_fail (INPUT_PAD_IS_GTK_KBDUI_EEK (data)); kbdui = INPUT_PAD_GTK_KBDUI_EEK (data); eek_element_set_group (EEK_ELEMENT(kbdui->priv->eek_keyboard), group); } static void on_eek_keyboard_key_pressed (EekKeyboard *keyboard, EekKey *key, gpointer user_data) { InputPadGtkWindow *window; const gchar *str, *empty = ""; guint keycode; EekSymbol *symbol; EekSymbol *symbol0; guint keysym = EEK_INVALID_KEYSYM; guint keysym0 = EEK_INVALID_KEYSYM; gint group; guint state = 0; gboolean retval = FALSE; g_return_if_fail (user_data != NULL && INPUT_PAD_IS_GTK_WINDOW (user_data)); window = INPUT_PAD_GTK_WINDOW (user_data); keycode = eek_key_get_keycode (key); symbol = eek_key_get_symbol_with_fallback (key, 0, 0); if (EEK_IS_KEYSYM(symbol)) keysym = eek_keysym_get_xkeysym (EEK_KEYSYM(symbol)); str = eek_symbol_get_label (symbol); if (str == NULL) str = empty; group = eek_element_get_group (EEK_ELEMENT(keyboard)); symbol0 = eek_key_get_symbol_at_index (key, group, 0, 0, 0); if (EEK_IS_KEYSYM(symbol0)) keysym0 = eek_keysym_get_xkeysym (EEK_KEYSYM(symbol0)); if (keysym0 == EEK_INVALID_KEYSYM) { keysym0 = keysym; } state = input_pad_gtk_window_get_keyboard_state (window); if (keysym != EEK_INVALID_KEYSYM && keysym != keysym0) { state |= ShiftMask; } state = input_pad_xkb_build_core_state (state, group); g_signal_emit_by_name (window, "button-pressed", str, INPUT_PAD_TABLE_TYPE_KEYSYMS, keysym, keycode, state, &retval); if (keysym0 == XK_Num_Lock) { keysym0 = XK_Shift_L; } input_pad_gtk_window_set_keyboard_state_with_keysym (window, keysym0); if (keysym0 == XK_Shift_L || keysym0 == XK_Shift_R) { state = input_pad_gtk_window_get_keyboard_state (window); eek_element_set_level (EEK_ELEMENT(keyboard), state & ShiftMask ? 1 : 0); } } static void create_keyboard_layout_ui_real_eek (InputPadGtkKbdui *kbdui, GtkWidget *vbox, InputPadGtkWindow *window) { InputPadGtkKbduiEek *kbdui_eek; EekKeyboard *keyboard; EekLayout *layout; GtkWidget *widget; gdouble width, height; Display *xdisplay = GDK_WINDOW_XDISPLAY (gtk_widget_get_window (GTK_WIDGET (window))); GError *error = NULL; g_return_if_fail (INPUT_PAD_IS_GTK_KBDUI_EEK (kbdui)); kbdui_eek = INPUT_PAD_GTK_KBDUI_EEK (kbdui); layout = eek_xkl_layout_new (xdisplay, &error); if (layout == NULL) { g_warning ("Can't get XKL layout: %s", error->message); g_error_free (error); return; } keyboard = kbdui_eek->priv->eek_keyboard = eek_keyboard_new (layout, 640, 480); g_object_unref (layout); eek_keyboard_set_modifier_behavior (keyboard, EEK_MODIFIER_BEHAVIOR_LATCH); widget = eek_gtk_keyboard_new (keyboard); eek_keyboard_get_size (keyboard, &width, &height); gtk_box_pack_start (GTK_BOX (vbox), widget, FALSE, FALSE, 0); gtk_box_reorder_child (GTK_BOX (vbox), widget, 0); gtk_widget_show (widget); gtk_widget_set_size_request (widget, width, height); g_signal_connect (G_OBJECT (window), "keyboard-changed", G_CALLBACK (on_window_keyboard_changed_eek), (gpointer) kbdui); g_signal_connect (G_OBJECT (keyboard), "key-pressed", G_CALLBACK (on_eek_keyboard_key_pressed), (gpointer) window); } static void destroy_prev_keyboard_layout_eek (InputPadGtkKbdui *kbdui, GtkWidget *vbox, InputPadGtkWindow *window) { InputPadGtkKbduiEek *kbdui_eek; GList *children; GtkWidget *widget; g_return_if_fail (INPUT_PAD_IS_GTK_KBDUI_EEK (kbdui)); kbdui_eek = INPUT_PAD_GTK_KBDUI_EEK (kbdui); children = gtk_container_get_children (GTK_CONTAINER (vbox)); widget = GTK_WIDGET (children->data); gtk_widget_hide (widget); gtk_widget_destroy (widget); g_object_unref (kbdui_eek->priv->eek_keyboard); } static void input_pad_gtk_kbdui_eek_init (InputPadGtkKbduiEek *kbdui) { InputPadGtkKbduiEekPrivate *priv = INPUT_PAD_GTK_KBDUI_EEK_GET_PRIVATE (kbdui); kbdui->priv = priv; } static void input_pad_gtk_kbdui_eek_class_init (InputPadGtkKbduiEekClass *klass) { #if 0 GObjectClass *gobject_class = G_OBJECT_CLASS (klass); #endif InputPadGtkKbduiClass *kbdui_class = (InputPadGtkKbduiClass *) klass; g_type_class_add_private (klass, sizeof (InputPadGtkKbduiEekPrivate)); kbdui_class->create_keyboard_layout = create_keyboard_layout_ui_real_eek; kbdui_class->destroy_keyboard_layout = destroy_prev_keyboard_layout_eek; } InputPadGtkKbdui * input_pad_gtk_kbdui_eek_new (void) { return g_object_new (INPUT_PAD_TYPE_GTK_KBDUI_EEK, NULL); } InputPadWindowType input_pad_module_get_type (void) { return INPUT_PAD_WINDOW_TYPE_GTK; } const gchar * input_pad_module_get_description (void) { return _("eekboard layout"); } gboolean input_pad_module_arg_init (int *argc, char ***argv, InputPadGtkKbduiContext *context) { GOptionGroup *group; if (context == NULL || context->context == NULL) { return TRUE; } group = g_option_group_new ("eek", N_("eekboard Options"), N_("Show eekboard Options"), NULL, NULL); g_option_group_add_entries (group, entries); g_option_group_set_translation_domain (group, GETTEXT_PACKAGE); g_option_context_add_group (context->context, group); return TRUE; } gboolean input_pad_module_arg_init_post (int *argc, char ***argv, InputPadGtkKbduiContext *context) { if (use_eek) { input_pad_gtk_kbdui_context_set_kbdui_name (context, "eek-gtk"); } return TRUE; } gboolean input_pad_module_init (InputPadGtkWindow *window) { eek_init (); return TRUE; } InputPadGtkKbdui * input_pad_module_kbdui_new (InputPadGtkWindow *window) { return input_pad_gtk_kbdui_eek_new (); } const gchar* g_module_check_init (GModule *module) { return NULL; } input-pad-1.1.0/input-pad/eek-gtk.h000066400000000000000000000047571476727667600170640ustar00rootroot00000000000000/* vim:set et sts=4: */ /* input-pad - The input pad * Copyright (C) 2010-2012 Takao Fujiwara * Copyright (C) 2010-2012 Red Hat, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301 USA */ #ifndef __INPUT_PAD_EEK_GTK_H__ #define __INPUT_PAD_EEK_GTK_H__ #include #include "input-pad-kbdui-gtk.h" G_BEGIN_DECLS #define INPUT_PAD_TYPE_GTK_KBDUI_EEK (input_pad_gtk_kbdui_eek_get_type ()) #define INPUT_PAD_GTK_KBDUI_EEK(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), INPUT_PAD_TYPE_GTK_KBDUI_EEK, InputPadGtkKbduiEek)) #define INPUT_PAD_GTK_KBDUI_EEK_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), INPUT_PAD_TYPE_GTK_KBDUI_EEK, InputPadGtkKbduiEekClass)) #define INPUT_PAD_IS_GTK_KBDUI_EEK(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), INPUT_PAD_TYPE_GTK_KBDUI_EEK)) #define INPUT_PAD_IS_GTK_KBDUI_EEK_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), INPUT_PAD_TYPE_GTK_KBDUI_EEK)) #define INPUT_PAD_GTK_KBDUI_EEK_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), INPUT_PAD_TYPE_GTK_KBDUI_EEK, InputPadGtkKbduiEekClass)) typedef struct _InputPadGtkKbduiEekPrivate InputPadGtkKbduiEekPrivate; typedef struct _InputPadGtkKbduiEek InputPadGtkKbduiEek; typedef struct _InputPadGtkKbduiEekClass InputPadGtkKbduiEekClass; struct _InputPadGtkKbduiEek { InputPadGtkKbdui parent; InputPadGtkKbduiEekPrivate *priv; }; struct _InputPadGtkKbduiEekClass { InputPadGtkKbduiClass parent_class; /* Padding for future expansion */ void (*_kbdui_eek_reserved1) (void); void (*_kbdui_eek_reserved2) (void); void (*_kbdui_eek_reserved3) (void); void (*_kbdui_eek_reserved4) (void); }; G_MODULE_EXPORT GType input_pad_gtk_kbdui_eek_get_type (void); InputPadGtkKbdui * input_pad_gtk_kbdui_eek_new (void); G_END_DECLS #endif input-pad-1.1.0/input-pad/geometry-gdk.c000066400000000000000000001264001476727667600201140ustar00rootroot00000000000000/* vim:set et sts=4: */ /* input-pad - The input pad * Copyright (C) 2010-2013 Takao Fujiwara * Copyright (C) 2010-2013 Red Hat, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301 USA */ #ifdef HAVE_CONFIG_H #include #endif #include #include #include #include #include /* XA_STRING */ #include #include #include #include #include #include #include #ifdef HAVE_LIBXKLAVIER #include #else #include #endif #include /* strlen */ #include "input-pad-window-gtk.h" #include "geometry-gdk.h" #ifdef HAVE_LIBXKLAVIER #if 0 extern gboolean xkl_engine_find_toplevel_window(XklEngine * engine, Window win, Window * toplevel_win_out); extern void xkl_engine_save_toplevel_window_state(XklEngine * engine, Window toplevel_win, XklState * state); #endif #endif enum { XKB_GET_LAYOUTS_KEY, XKB_GET_VARIANTS_KEY, XKB_GET_OPTIONS_KEY }; #ifdef HAVE_LIBXKLAVIER typedef struct _XklSignalData XklSignalData; typedef struct _XklLayoutData XklLayoutData; static XklEngine *xklengine; static XklConfigRec *initial_xkl_rec; static int initial_group; struct _XklSignalData { GObject *object; guint signal_id; }; struct _XklLayoutData { const XklConfigItem *layout; InputPadXKBConfigReg **config_regp; }; #endif struct _InputPadXKBKeyListPrivate { XkbFileInfo *xkb_info; }; static gboolean input_pad_xkb_init (InputPadGtkWindow *window) { static gboolean retval = FALSE; Display *xdisplay = GDK_WINDOW_XDISPLAY (gtk_widget_get_window (GTK_WIDGET (window))); if (retval) { return retval; } if (!XkbQueryExtension (xdisplay, NULL, NULL, NULL, NULL, NULL)) { g_warning ("Could not init XKB"); return FALSE; } XkbInitAtoms (NULL); retval = TRUE; return TRUE; } static XkbFileInfo * input_pad_xkb_get_file_info (InputPadGtkWindow *window) { Display *xdisplay = GDK_WINDOW_XDISPLAY (gtk_widget_get_window (GTK_WIDGET (window))); XkbFileInfo *xkb_info; xkb_info = g_new0 (XkbFileInfo, 1); xkb_info->type = XkmKeymapFile; xkb_info->xkb = XkbGetMap (xdisplay, XkbAllMapComponentsMask, XkbUseCoreKbd); if (xkb_info->xkb == NULL) { g_warning ("Could not get XKB map"); } if (XkbGetNames (xdisplay, XkbAllNamesMask, xkb_info->xkb) !=Success) { g_warning ("Could not get XKB names"); } if (XkbGetGeometry (xdisplay, xkb_info->xkb) !=Success) { g_warning ("Could not get geometry"); return NULL; } if (XkbChangeKbdDisplay (xdisplay, xkb_info) !=Success) { g_warning ("Could not get display"); return NULL; } return xkb_info; } static void xkb_key_row_set_keycode (InputPadXKBKeyRow *xkb_key_row, int keycode, char *name) { char *formatted; g_return_if_fail (xkb_key_row != NULL && keycode != 0); xkb_key_row->keycode = keycode; if (name) { formatted = XkbKeyNameText (name, XkbMessage); if (strlen (formatted) > 2) { xkb_key_row->name = g_strndup (formatted + 1, strlen (formatted) - 2); } else { xkb_key_row->name = g_strdup (formatted); } } } static InputPadXKBKeyRow * xkb_key_row_append (InputPadXKBKeyRow *head, InputPadXKBKeyRow *new) { InputPadXKBKeyRow *list = head; if (list == NULL) { return new; } while (list->next != NULL) { list = list->next; } list->next = new; return head; } static InputPadXKBKeyList * xkb_key_list_append (InputPadXKBKeyList *head, InputPadXKBKeyList *new) { InputPadXKBKeyList *list = head; if (list == NULL) { return new; } while (list->next != NULL) { list = list->next; } list->next = new; return head; } static gboolean xkb_key_list_insert_row_with_name (InputPadXKBKeyList *head, InputPadXKBKeyRow *new_row, const gchar *find_name) { InputPadXKBKeyList *list = head; InputPadXKBKeyRow *row, *row_backup; gboolean found = FALSE; g_return_val_if_fail (head != NULL && new_row != NULL, FALSE); g_return_val_if_fail (find_name != NULL, FALSE); while (list != NULL) { row = list->row; while (row) { if (!g_strcmp0 (row->name, find_name)) { row_backup = row->next; row->next = new_row; new_row->next = row_backup; found = TRUE; goto end_insert_row; } row = row->next; } list = list->next; } end_insert_row: if (found) { return TRUE; } return FALSE; } static void get_xkb_section (InputPadXKBKeyList **xkb_key_listp, XkbDescPtr xkb, XkbSectionPtr section) { InputPadXKBKeyRow *xkb_key_row, *xkb_key_row_head; InputPadXKBKeyList *list; XkbDrawablePtr draw, draw_head; XkbRowPtr row; XkbKeyPtr key; #if 0 XkbShapePtr shape; #endif int i, j, k, l, keycode, n_keysyms, groups, n_group, bulk; KeySym *keysyms; if (section->doodads) { draw_head = XkbGetOrderedDrawables(NULL, section); for (draw = draw_head; draw; draw = draw->next) { if (draw->type == XkbDW_Section) { get_xkb_section (xkb_key_listp, xkb, draw->u.section); } } XkbFreeOrderedDrawables (draw_head); } row = section->rows; for (i = 0; i < section->num_rows; i++) { xkb_key_row_head = NULL; key = row->keys; for (j = 0; j < row->num_keys; j++) { #if 0 /* I don't remember why this is needed. */ shape = XkbKeyShape (xkb->geom, key); #endif if (key->name.name == NULL) { g_warning ("Invalid key name at (%d, %d).\n", i, j); goto next_key; } keycode = XkbFindKeycodeByName (xkb, key->name.name, True); if (keycode == 0) { g_warning ("%s is not defined in XKB.", XkbKeyNameText (key->name.name, XkbMessage)); goto next_key; } keysyms = XkbKeySymsPtr (xkb, keycode); n_keysyms = XkbKeyNumSyms (xkb, keycode); if (n_keysyms == 0) { g_debug ("%s is not included in your keyboard.", XkbKeyNameText (key->name.name, XkbMessage)); goto next_key; } xkb_key_row = g_new0 (InputPadXKBKeyRow, 1); xkb_key_row_head = xkb_key_row_append (xkb_key_row_head, xkb_key_row); xkb_key_row_set_keycode (xkb_key_row, keycode, key->name.name); groups = XkbKeyNumGroups (xkb, keycode); xkb_key_row->keysym = g_new0 (unsigned int *, groups + 1); bulk = 0; for (k = 0; k < groups; k++) { n_group = XkbKeyGroupWidth (xkb, keycode, k); xkb_key_row->keysym[k] = g_new0 (unsigned int, n_group + 1); for (l = 0; (l < n_group) && (bulk + l < n_keysyms); l++) { xkb_key_row->keysym[k][l] = (unsigned int) keysyms[bulk + l]; } bulk += n_group; while (groups > 1 && keysyms[bulk] == 0) { bulk++; } } next_key: key++; } if (xkb_key_row_head) { list = g_new0 (InputPadXKBKeyList, 1); list->row = xkb_key_row_head; (*xkb_key_listp) = xkb_key_list_append (*xkb_key_listp, list); } row++; } } static void add_xkb_key (InputPadXKBKeyList *xkb_key_list, XkbDescPtr xkb, const gchar *new_key_name, const gchar *prev_key_name) { XkbKeyRec key_buff; XkbKeyPtr key; int k, l, n_keysyms, groups, n_group, bulk; unsigned int keycode; KeySym *keysyms; InputPadXKBKeyRow *xkb_key_row; g_return_if_fail (new_key_name != NULL && prev_key_name != NULL); memset (&key_buff, 0, sizeof (XkbKeyRec)); strncpy (key_buff.name.name, new_key_name, XkbKeyNameLength); key_buff.gap = 0; key_buff.shape_ndx = 0; key_buff.color_ndx = 1; key = &key_buff; keycode = XkbFindKeycodeByName (xkb, key->name.name, True); if (keycode == 0) { g_debug ("%s is not defined in XKB.", XkbKeyNameText (key->name.name, XkbMessage)); return; } keysyms = XkbKeySymsPtr (xkb, keycode); n_keysyms = XkbKeyNumSyms (xkb, keycode); if (n_keysyms == 0) { g_debug ("%s is not included in your keyboard.", XkbKeyNameText (key->name.name, XkbMessage)); return; } xkb_key_row = g_new0 (InputPadXKBKeyRow, 1); xkb_key_list_insert_row_with_name (xkb_key_list, xkb_key_row, prev_key_name); xkb_key_row_set_keycode (xkb_key_row, keycode, key->name.name); groups = XkbKeyNumGroups (xkb, keycode); xkb_key_row->keysym = g_new0 (unsigned int *, groups + 1); bulk = 0; for (k = 0; k < groups; k++) { n_group = XkbKeyGroupWidth (xkb, keycode, k); xkb_key_row->keysym[k] = g_new0 (unsigned int, n_group + 1); for (l = 0; (l < n_group) && (bulk + l < n_keysyms); l++) { xkb_key_row->keysym[k][l] = (unsigned int) keysyms[bulk + l]; } bulk += n_group; while (groups > 1 && keysyms[bulk] == 0) { bulk++; } } } #ifdef HAVE_LIBXKLAVIER static XklEngine * init_xkl_engine (InputPadGtkWindow *window, XklConfigRec **initial_xkl_recp, int *initial_group) { Display *xdisplay = GDK_WINDOW_XDISPLAY (gtk_widget_get_window (GTK_WIDGET (window))); XklConfigRec *xklrec; if (xklengine) { return xklengine; } xklrec = xkl_config_rec_new (); xklengine = xkl_engine_get_instance (xdisplay); if (!xkl_config_rec_get_from_server (xklrec, xklengine)) { xkl_debug (150, "Could not load keyboard config from server: [%s]\n", xkl_get_last_error ()); } if (initial_xkl_recp) { *initial_xkl_recp = xklrec; } if (initial_group) { XklState *state; XklState win_state; if (xkl_engine_get_state (xklengine, xkl_engine_get_current_window (xklengine), &win_state)) { state = &win_state; } else { state = xkl_engine_get_current_state (xklengine); } *initial_group = state->group; } return xklengine; } static XklConfigRegistry * init_xkl_config_registry (InputPadGtkWindow *window) { static XklConfigRegistry *xklconfig_registry = NULL; g_return_val_if_fail (xklengine != NULL, NULL); if (xklconfig_registry) { return xklconfig_registry; } xklconfig_registry = xkl_config_registry_get_instance (xklengine); xkl_config_registry_load (xklconfig_registry, FALSE); return xklconfig_registry; } #endif #if 0 static void update_keysym_mapping (Display *xdisplay, InputPadXKBKeyList *xkb_key_list, int group) { int n; InputPadXKBKeyList *list = xkb_key_list; InputPadXKBKeyRow *row; KeySym keysyms[20]; int i, j, min_keycode, max_keycode; XDisplayKeycodes (xdisplay, &min_keycode, &max_keycode); for (i = min_keycode; i < max_keycode; i++) { KeySym *sym = XGetKeyboardMapping (xdisplay, i, 1, &n); } while (list) { row = list->row; while (row) { n = 0; while (row->keysym[n]) n++; if (n <= group) { row = row->next; continue; } for (n = 0; row->keysym[group][n] && (n < 20); n++) { keysyms[n] = (KeySym) row->keysym[group][n]; } XChangeKeyboardMapping (xdisplay, row->keycode, n, keysyms, 1); row = row->next; } list = list->next; } } #endif #ifdef HAVE_LIBXKLAVIER static GdkFilterReturn on_filter_x_evt (GdkXEvent * xev, GdkEvent * event, gpointer data) { XEvent *xevent = (XEvent *) xev; xkl_engine_filter_events (xklengine, xevent); return GDK_FILTER_CONTINUE; } static void on_state_changed (XklEngine * engine, XklEngineStateChange changeType, gint group, gboolean restore, gpointer data) { XklState *state; XklSignalData *signal_data = (XklSignalData *) data; #if 0 Window toplevel_win; #endif if (changeType != GROUP_CHANGED) { return; } state = xkl_engine_get_current_state (xklengine); g_return_if_fail (data != NULL); #if 0 if (!xkl_engine_find_toplevel_window (xklengine, GDK_WINDOW_XID (gtk_widget_get_window (GTK_WIDGET (signal_data->object))), &toplevel_win)) { g_warning ("Could not find toplevel window"); } xkl_engine_save_toplevel_window_state (xklengine, toplevel_win, state); #endif g_signal_emit (signal_data->object, signal_data->signal_id, 0, state->group); } static void xkl_setup_events (XklEngine *xklengine, InputPadGtkWindow *window, guint signal_id) { static XklSignalData signal_data; signal_data.object = G_OBJECT (window); signal_data.signal_id = signal_id; g_signal_connect (xklengine, "X-state-changed", G_CALLBACK (on_state_changed), (gpointer) &signal_data); gdk_window_add_filter (NULL, (GdkFilterFunc) on_filter_x_evt, NULL); gdk_window_add_filter (gdk_get_default_root_window (), (GdkFilterFunc) on_filter_x_evt, NULL); xkl_engine_start_listen (xklengine, XKLL_TRACK_KEYBOARD_STATE); } #endif static guint xkb_get_current_group (InputPadGtkWindow *window) { Display *xdisplay = GDK_WINDOW_XDISPLAY (gtk_widget_get_window (GTK_WIDGET (window))); XkbStateRec state; if (XkbGetState (xdisplay, XkbUseCoreKbd, &state) != Success) { g_warning ("Could not get state"); return 0; } return state.group; } static void xkb_setup_events (InputPadGtkWindow *window, guint signal_id) { guint group = 0; if (!input_pad_xkb_init (window)) { return; } group = xkb_get_current_group (window); g_signal_emit (G_OBJECT (window), signal_id, 0, group); #ifdef HAVE_LIBXKLAVIER xkl_setup_events (xklengine, window, signal_id); #endif } static void debug_print_key_list (InputPadXKBKeyList *xkb_key_list) { InputPadXKBKeyList *list = xkb_key_list; int i, j, k; GString *string; char *line; if (xkb_key_list == NULL) { return; } if (!g_getenv ("G_MESSAGES_PREFIXED")) { return; } for (i = 1; list; i++) { string = g_string_new ("\n"); InputPadXKBKeyRow *row = list->row; while (row) { g_string_append_printf (string, "%d %s keycode(%x) ", i, row->name, row->keycode); for (j = 0; row->keysym && row->keysym[j]; j++) { for (k = 0; row->keysym[j][k]; k++) { g_string_append_printf (string, "keysym%d(%s) ", j, XKeysymToString ((KeySym) row->keysym[j][k])); } } g_string_append_printf (string, "\n"); row = row->next; } line = g_string_free (string, FALSE); if (line) { g_debug ("%s", line); g_free (line); } list = list->next; } } #ifdef HAVE_LIBXKLAVIER static void debug_print_layout_list (InputPadXKBLayoutList *xkb_layout_list) { InputPadXKBLayoutList *list = xkb_layout_list; InputPadXKBVariantList *variants; int i, j; if (list == NULL) { return; } if (!g_getenv ("G_MESSAGES_PREFIXED")) { return; } for (i = 0; list; i++) { variants = list->variants; for (j = 0; variants; j++) { g_debug ("%d %s %s %d %s %s", i, list->layout, list->desc ? list->desc : "(null)", j, variants->variant, variants->desc ? variants->desc : "(null)"); variants = variants->next; } list = list->next; } } static void debug_print_option_group_list (InputPadXKBOptionGroupList *xkb_group_list) { InputPadXKBOptionGroupList *list = xkb_group_list; InputPadXKBOptionList *options; int i, j; if (list == NULL) { return; } if (!g_getenv ("G_MESSAGES_PREFIXED")) { return; } for (i = 0; list; i++) { options = list->options; for (j = 0; options; j++) { g_debug ("%d %s %s %d %s %s", i, list->option_group, list->desc ? list->desc : "(null)", j, options->option, options->desc ? options->desc : "(null)"); options = options->next; } list = list->next; } } #endif static void debug_print_group_layout_list (gchar **names) { int i; if (!g_getenv ("G_MESSAGES_PREFIXED")) { return; } g_return_if_fail (names != NULL); for (i = 0; names[i]; i++) { g_debug ("group%d: %s\n", i, names[i]); } } #ifdef HAVE_LIBXKLAVIER static void input_pad_xkb_layout_list_append_layout_variant (InputPadXKBLayoutList *xkb_layout_list, const XklConfigItem *layout, const XklConfigItem *variant) { InputPadXKBLayoutList *list = xkb_layout_list; InputPadXKBVariantList *variants; g_return_if_fail (xkb_layout_list != NULL); g_return_if_fail (layout != NULL && layout->name != NULL); g_return_if_fail (variant != NULL && variant->name != NULL); while (list) { if (list->layout == NULL) { list->layout = g_strdup (layout->name); list->desc = layout->description ? g_strdup (layout->description) : NULL; list->variants = g_new0 (InputPadXKBVariantList, 1); list->variants->variant = g_strdup (variant->name); list->variants->desc = variant->description ? g_strdup (variant->description) : NULL; goto end_append_layout_variant; } if (!g_strcmp0 (list->layout, layout->name)) { if (list->variants == NULL) { list->variants = g_new0 (InputPadXKBVariantList, 1); list->variants->variant = g_strdup (variant->name); list->variants->desc = variant->description ? g_strdup (variant->description) : NULL; goto end_append_layout_variant; } variants = list->variants; while (variants->next) { if (variants->variant == NULL) { variants->variant = g_strdup (variant->name); variants->desc = variant->description ? g_strdup (variant->description) : NULL; goto end_append_layout_variant; } if (!g_strcmp0 (variants->variant, variant->name)) { goto end_append_layout_variant; } variants = variants->next; } variants->next = g_new0 (InputPadXKBVariantList, 1); variants = variants->next; variants->variant = g_strdup (variant->name); variants->desc = variant->description ? g_strdup (variant->description) : NULL; goto end_append_layout_variant; } if (list->next == NULL) { break; } list = list->next; } list->next = g_new0 (InputPadXKBLayoutList, 1); list = list->next; list->layout = g_strdup (layout->name); list->desc = layout->description ? g_strdup (layout->description) : NULL; list->variants = g_new0 (InputPadXKBVariantList, 1); list->variants->variant = g_strdup (variant->name); list->variants->desc = variant->description ? g_strdup (variant->description) : NULL; end_append_layout_variant: ; } static void input_pad_xkb_option_group_list_append_group_option (InputPadXKBOptionGroupList *xkb_group_list, const XklConfigItem *group, const XklConfigItem *option) { InputPadXKBOptionGroupList *list = xkb_group_list; InputPadXKBOptionList *options; g_return_if_fail (xkb_group_list != NULL); g_return_if_fail (group != NULL && group->name != NULL); g_return_if_fail (option != NULL && option->name != NULL); while (list) { if (list->option_group == NULL) { list->option_group = g_strdup (group->name); list->desc = g_strdup (group->description); list->options = g_new0 (InputPadXKBOptionList, 1); list->options->option = g_strdup (option->name); list->options->desc = g_strdup (option->description); goto end_append_group_option; } if (!g_strcmp0 (list->option_group, group->name)) { if (list->options == NULL) { list->options = g_new0 (InputPadXKBOptionList, 1); list->options->option = g_strdup (option->name); list->options->desc = g_strdup (option->description); goto end_append_group_option; } options = list->options; while (options->next) { if (options->option == NULL) { options->option = g_strdup (option->name); options->desc = g_strdup (option->description); goto end_append_group_option; } if (!g_strcmp0 (options->option, option->name)) { goto end_append_group_option; } options = options->next; } options->next = g_new0 (InputPadXKBOptionList, 1); options = options->next; options->option = g_strdup (option->name); options->desc = g_strdup (option->description); goto end_append_group_option; } if (list->next == NULL) { break; } list = list->next; } list->next = g_new0 (InputPadXKBOptionGroupList, 1); list = list->next; list->option_group = g_strdup (group->name); list->desc = g_strdup (group->description); list->options = g_new0 (InputPadXKBOptionList, 1); list->options->option = g_strdup (option->name); list->options->desc = g_strdup (option->description); end_append_group_option: ; } static void add_variant (XklConfigRegistry *xklconfig_registry, const XklConfigItem *item, gpointer data) { XklLayoutData *layout_data = (XklLayoutData *) data; if (*layout_data->config_regp == NULL) { *layout_data->config_regp = g_new0 (InputPadXKBConfigReg, 1); } if ((*layout_data->config_regp)->layouts == NULL) { (*layout_data->config_regp)->layouts = g_new0 (InputPadXKBLayoutList, 1); } input_pad_xkb_layout_list_append_layout_variant ((*layout_data->config_regp)->layouts, layout_data->layout, item); } static void add_layout (XklConfigRegistry *xklconfig_registry, const XklConfigItem *item, gpointer data) { InputPadXKBConfigReg **config_regp = (InputPadXKBConfigReg **) data; XklLayoutData layout_data; layout_data.layout = item; layout_data.config_regp = config_regp; xkl_config_registry_foreach_layout_variant (xklconfig_registry, item->name, add_variant, &layout_data); layout_data.layout = NULL; layout_data.config_regp = NULL; } static void add_option (XklConfigRegistry *xklconfig_registry, const XklConfigItem *item, gpointer data) { XklLayoutData *layout_data = (XklLayoutData *) data; if (*layout_data->config_regp == NULL) { *layout_data->config_regp = g_new0 (InputPadXKBConfigReg, 1); } if ((*layout_data->config_regp)->option_groups == NULL) { (*layout_data->config_regp)->option_groups = g_new0 (InputPadXKBOptionGroupList, 1); } input_pad_xkb_option_group_list_append_group_option ((*layout_data->config_regp)->option_groups, layout_data->layout, item); } static void add_option_group (XklConfigRegistry *xklconfig_registry, const XklConfigItem *item, gpointer data) { InputPadXKBConfigReg **config_regp = (InputPadXKBConfigReg **) data; XklLayoutData layout_data; layout_data.layout = item; layout_data.config_regp = config_regp; xkl_config_registry_foreach_option (xklconfig_registry, item->name, add_option, &layout_data); layout_data.layout = NULL; layout_data.config_regp = NULL; } static gboolean get_reg_layout_with_xkl_config_registry (InputPadXKBConfigReg **config_regp, XklConfigRegistry *xklconfig_registry) { g_return_val_if_fail (config_regp != NULL, FALSE); g_return_val_if_fail (xklconfig_registry != NULL, FALSE); xkl_config_registry_foreach_layout (xklconfig_registry, add_layout, config_regp); return TRUE; } static gboolean get_reg_option_with_xkl_config_registry (InputPadXKBConfigReg **config_regp, XklConfigRegistry *xklconfig_registry) { g_return_val_if_fail (config_regp != NULL, FALSE); g_return_val_if_fail (xklconfig_registry != NULL, FALSE); xkl_config_registry_foreach_option_group (xklconfig_registry, add_option_group, config_regp); return TRUE; } static int find_layouts_index (gchar **all_layouts, const gchar *sub_layouts, gchar **all_variants, const gchar *sub_variants) { int i; int retval = -1; for (i = 0; i < g_strv_length (all_layouts); i++) { if (g_strcmp0 (all_layouts[i], sub_layouts) == 0 && (sub_variants != NULL ? g_strcmp0 (all_variants[i], sub_variants) == 0 : 1)) { retval = i; break; } } return retval; } #if 0 /* This is no longer needed? */ static int find_options_index (gchar **all_layouts, const gchar *sub_layouts) { gchar *line, *p, *head; int index = 0; g_return_val_if_fail (all_layouts != NULL && sub_layouts != NULL, -1); line = g_strjoinv (",", all_layouts); if ((head = g_strstr_len (line, -1, sub_layouts)) == NULL) { g_free (line); return -1; } for (p = line; p < head; p++) { if (*p == ',') { index++; } } g_free (line); return index; } #endif static gchar ** concat_layouts (gchar **all_layouts, const gchar *sub_layouts) { gchar **sub_array = NULL; gchar **retval; const int avoid_loop = 50; int groups, i, n_all, n_sub; g_return_val_if_fail (all_layouts != NULL && sub_layouts != NULL, NULL); groups = MAX (xkl_engine_get_max_num_groups (xklengine), 1); /* Maybe a bug in g_strsplit ? */ if (*sub_layouts == '\0') { sub_array = g_new0 (gchar *, 2); sub_array[0] = g_strdup (""); } else { sub_array = g_strsplit (sub_layouts, ",", -1); } for (n_all = 0; all_layouts[n_all]; n_all++) { if (n_all >= avoid_loop) { break; } } for (n_sub = 0; sub_array[n_sub]; n_sub++) { if (n_sub >= avoid_loop) { break; } } if (n_all + n_sub > groups) { n_all = groups - n_sub; } retval = g_new0 (char*, n_all + n_sub + 1); for (i = 0; i < n_all; i++) { retval[i] = g_strdup (all_layouts[i]); } for (i = 0; i < n_sub && n_all + i >= 0; i++) { retval[n_all + i] = g_strdup (sub_array[i]); } retval[n_all + n_sub] = NULL; g_strfreev (sub_array); return retval; } #else static Bool set_xkb_rules (Display *xdisplay, const char *rules_file, const char *model, const char *all_layouts, const char *all_variants, const char *all_options) { int len; char *pval; char *next; Atom rules_atom; Window root_window; len = (rules_file ? strlen (rules_file) : 0); len += (model ? strlen (model) : 0); len += (all_layouts ? strlen (all_layouts) : 0); len += (all_variants ? strlen (all_variants) : 0); len += (all_options ? strlen (all_options) : 0); if (len < 1) { return TRUE; } len += 5; /* trailing NULs */ rules_atom = XInternAtom(xdisplay, _XKB_RF_NAMES_PROP_ATOM, False); root_window = XDefaultRootWindow (xdisplay); pval = next = g_new0 (char, len + 1); if (!pval) { return TRUE; } if (rules_file) { strcpy(next, rules_file); next += strlen(rules_file); } *next++ = '\0'; if (model) { strcpy(next, model); next += strlen(model); } *next++ = '\0'; if (all_layouts) { strcpy(next, all_layouts); next += strlen(all_layouts); } *next++ = '\0'; if (all_variants) { strcpy(next, all_variants); next += strlen(all_variants); } *next++ = '\0'; if (all_options) { strcpy(next, all_options); next += strlen(all_options); } *next++ = '\0'; if ((next - pval) != len) { g_free(pval); return TRUE; } XChangeProperty (xdisplay, root_window, rules_atom, XA_STRING, 8, PropModeReplace, (unsigned char *) pval, len); XSync(xdisplay, False); return TRUE; } #endif static char ** xkb_get_group_layouts_from_key (InputPadGtkWindow *window, InputPadXKBKeyList *xkb_key_list, int get_key) { Display *xdisplay; char **names; Atom xkb_rules_name, type; int format; unsigned long l, nitems, bytes_after; unsigned char *orig_prop; unsigned char *prop = NULL; xdisplay = GDK_WINDOW_XDISPLAY (gtk_widget_get_window (GTK_WIDGET (window))); xkb_rules_name = XInternAtom (xdisplay, "_XKB_RULES_NAMES", TRUE); if (xkb_rules_name == None) { g_warning ("Could not get XKB rules atom"); return NULL; } if (XGetWindowProperty (xdisplay, XDefaultRootWindow (xdisplay), xkb_rules_name, 0, 1024, FALSE, XA_STRING, &type, &format, &nitems, &bytes_after, &prop) != Success) { g_warning ("Could not get X property"); return NULL; } orig_prop = prop; if (nitems < 3) { g_warning ("Could not get group layout from X property"); if (orig_prop != NULL) XFree (orig_prop); return NULL; } for (l = 0; l < 2; l++) { prop += strlen ((const char *) prop) + 1; } if (prop == NULL || *prop == '\0') { g_warning ("No layouts form X property"); if (orig_prop != NULL) XFree (orig_prop); return NULL; } if (get_key == XKB_GET_LAYOUTS_KEY) { names = g_strsplit ((gchar *) prop, ",", -1); debug_print_group_layout_list (names); XFree (orig_prop); return names; } prop += strlen ((const char *) prop) + 1; if (prop == NULL) { g_warning ("No variants form X property"); XFree (orig_prop); return NULL; } if (get_key == XKB_GET_VARIANTS_KEY) { names = g_strsplit ((gchar *) prop, ",", -1); debug_print_group_layout_list (names); XFree (orig_prop); return names; } prop += strlen ((const char *) prop) + 1; if (prop == NULL) { g_warning ("No options form X property"); XFree (orig_prop); return NULL; } if (get_key == XKB_GET_OPTIONS_KEY) { names = g_strsplit ((gchar *) prop, ",", -1); debug_print_group_layout_list (names); XFree (orig_prop); return names; } g_assert_not_reached (); XFree (orig_prop); return NULL; } void input_pad_gdk_xkb_destroy_keyboard_layouts (InputPadGtkWindow *window, InputPadXKBKeyList *xkb_key_list) { InputPadXKBKeyList *list = xkb_key_list; InputPadXKBKeyRow *row; int i, j; if (xkb_key_list == NULL) { return; } for (i = 1; list; i++) { row = list->row; while (row) { g_free (row->name); row->name = NULL; for (j = 0; row->keysym && row->keysym[j]; j++) { g_free (row->keysym[j]); row->keysym[j] = NULL; } g_free (row->keysym); row->keysym = NULL; row = row->next; } list = list->next; } list = xkb_key_list; for (i = 1; list; i++) { while (1) { row = list->row; if (row == NULL) { break; } while (row) { if (row && row->next && row->next->next == NULL) { break; } else if (row && row->next == NULL) { break; } row = row->next; } if (row && row->next) { g_free (row->next); row->next = NULL; } else if (row) { g_free (list->row); list->row = NULL; break; } } list = list->next; } while (1) { list = xkb_key_list; if (list == NULL) { break; } for (i = 1; list; i++) { if (list && list->next && list->next->next == NULL) { break; } else if (list && list->next == NULL) { break; } list = list->next; } if (list && list->next) { g_free (list->next); list->next = NULL; } else if (list) { g_free (xkb_key_list); xkb_key_list = NULL; break; } } } InputPadXKBKeyList * input_pad_gdk_xkb_parse_keyboard_layouts (InputPadGtkWindow *window) { XkbFileInfo *xkb_info; XkbDrawablePtr draw, draw_head; InputPadXKBKeyList *xkb_key_list = NULL; g_return_val_if_fail (window != NULL && INPUT_PAD_IS_GTK_WINDOW (window), NULL); if (!input_pad_xkb_init (window)) { return NULL; } if ((xkb_info = input_pad_xkb_get_file_info (window)) == NULL) { return NULL; } draw_head = XkbGetOrderedDrawables(xkb_info->xkb->geom, NULL); for (draw = draw_head; draw; draw = draw->next) { if (draw->type == XkbDW_Section) { get_xkb_section (&xkb_key_list, xkb_info->xkb, draw->u.section); } } XkbFreeOrderedDrawables (draw_head); /* Japanese extension */ add_xkb_key (xkb_key_list, xkb_info->xkb, "AE13", "AE12"); add_xkb_key (xkb_key_list, xkb_info->xkb, "AB11", "AB10"); debug_print_key_list (xkb_key_list); if (xkb_key_list) { xkb_key_list->priv = g_new0 (InputPadXKBKeyListPrivate, 1); xkb_key_list->priv->xkb_info = xkb_info; } #ifdef HAVE_LIBXKLAVIER if (xklengine == NULL) { xklengine = init_xkl_engine (window, &initial_xkl_rec, &initial_group); } #endif return xkb_key_list; } void input_pad_gdk_xkb_signal_emit (InputPadGtkWindow *window, guint signal_id) { g_return_if_fail (window != NULL && INPUT_PAD_IS_GTK_WINDOW (window)); xkb_setup_events (window, signal_id); } char ** input_pad_gdk_xkb_get_group_layouts (InputPadGtkWindow *window, InputPadXKBKeyList *xkb_key_list) { g_return_val_if_fail (window != NULL && INPUT_PAD_IS_GTK_WINDOW (window), NULL); return xkb_get_group_layouts_from_key (window, xkb_key_list, XKB_GET_LAYOUTS_KEY); } char ** input_pad_gdk_xkb_get_group_variants (InputPadGtkWindow *window, InputPadXKBKeyList *xkb_key_list) { g_return_val_if_fail (window != NULL && INPUT_PAD_IS_GTK_WINDOW (window), NULL); return xkb_get_group_layouts_from_key (window, xkb_key_list, XKB_GET_VARIANTS_KEY); } char ** input_pad_gdk_xkb_get_group_options (InputPadGtkWindow *window, InputPadXKBKeyList *xkb_key_list) { g_return_val_if_fail (window != NULL && INPUT_PAD_IS_GTK_WINDOW (window), NULL); return xkb_get_group_layouts_from_key (window, xkb_key_list, XKB_GET_OPTIONS_KEY); } InputPadXKBConfigReg * input_pad_gdk_xkb_parse_config_registry (InputPadGtkWindow *window, InputPadXKBKeyList *xkb_key_list) { #ifdef HAVE_LIBXKLAVIER InputPadXKBConfigReg *config_reg = NULL; XklConfigRegistry *xklconfig_registry; g_return_val_if_fail (window != NULL && INPUT_PAD_IS_GTK_WINDOW (window), NULL); if (xklengine == NULL) { xklengine = init_xkl_engine (window, &initial_xkl_rec, &initial_group); } xklconfig_registry = init_xkl_config_registry (window); get_reg_layout_with_xkl_config_registry (&config_reg, xklconfig_registry); get_reg_option_with_xkl_config_registry (&config_reg, xklconfig_registry); debug_print_layout_list (config_reg->layouts); debug_print_option_group_list (config_reg->option_groups); return config_reg; #else return NULL; #endif } Bool input_pad_gdk_xkb_set_layout (InputPadGtkWindow *window, InputPadXKBKeyList *xkb_key_list, const char *layouts, const char *variants, const char *options) { #ifdef HAVE_LIBXKLAVIER XklConfigRec *xkl_rec; XklState *state; int layout_index = -1; g_return_val_if_fail (initial_xkl_rec != NULL, FALSE); g_return_val_if_fail (xklengine != NULL, FALSE); if (layouts == NULL && variants == NULL && options == NULL) { xkl_config_rec_activate (initial_xkl_rec, xklengine); xkl_engine_lock_group (xklengine, initial_group); return TRUE; } xkl_rec = xkl_config_rec_new (); xkl_rec->model = initial_xkl_rec->model ? g_strdup (initial_xkl_rec->model) : g_strdup ("pc105"); if (initial_xkl_rec->layouts != NULL) { layout_index = find_layouts_index (initial_xkl_rec->layouts, layouts, initial_xkl_rec->variants, variants); if (layout_index >= 0) { XklState win_state; if (xkl_engine_get_state (xklengine, xkl_engine_get_current_window (xklengine), &win_state)) { state = &win_state; } else { state = xkl_engine_get_current_state (xklengine); } if (state->group == layout_index && options == NULL) { g_free (xkl_rec->model); xkl_rec->model = NULL; g_object_unref (xkl_rec); return TRUE; } xkl_rec->layouts = g_strdupv (initial_xkl_rec->layouts); if (initial_xkl_rec->variants) { xkl_rec->variants = g_strdupv (initial_xkl_rec->variants); } } else { xkl_rec->layouts = concat_layouts (initial_xkl_rec->layouts, layouts); if (initial_xkl_rec->variants) { xkl_rec->variants = concat_layouts (initial_xkl_rec->variants, variants ? variants : ""); } layout_index = find_layouts_index (xkl_rec->layouts, layouts, xkl_rec->variants, variants); } } else { xkl_rec->layouts = g_strsplit (layouts, ",", -1); if (variants) { xkl_rec->variants = g_strsplit (variants, ",", -1); } } if (options == NULL) { xkl_rec->options = g_strdupv (initial_xkl_rec->options); } else { xkl_rec->options = g_strsplit (options , ",", -1); } xkl_config_rec_activate (xkl_rec, xklengine); g_object_unref (xkl_rec); if (layout_index >= 0) { xkl_engine_lock_group (xklengine, layout_index); } else { xkl_engine_lock_group (xklengine, 0); } #else Display *xdisplay; guint group; gchar **group_layouts; g_return_val_if_fail (window != NULL && INPUT_PAD_IS_GTK_WINDOW (window), FALSE); g_return_val_if_fail (layouts != NULL, FALSE); xdisplay = GDK_WINDOW_XDISPLAY (gtk_widget_get_window (GTK_WIDGET(window))); group = xkb_get_current_group (window); group_layouts = input_pad_gdk_xkb_get_group_layouts (window, xkb_key_list); if (group_layouts != NULL) { if (!g_strcmp0 (group_layouts[group], layouts)) { g_strfreev (group_layouts); return TRUE; } g_strfreev (group_layouts); } set_xkb_rules (xdisplay, "evdev", "evdev", layouts, variants, options); #endif return TRUE; } input-pad-1.1.0/input-pad/geometry-gdk.h000066400000000000000000000055101476727667600201170ustar00rootroot00000000000000/* vim:set et sts=4: */ /* input-pad - The input pad * Copyright (C) 2010-2012 Takao Fujiwara * Copyright (C) 2010-2012 Red Hat, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301 USA */ #ifndef __INPUT_PAD_GEOMETRY_GDK_H__ #define __INPUT_PAD_GEOMETRY_GDK_H__ #include "input-pad-window-gtk.h" #include "geometry-xkb.h" void input_pad_gdk_xkb_destroy_keyboard_layouts (InputPadGtkWindow *window, InputPadXKBKeyList *xkb_key_list); InputPadXKBKeyList * input_pad_gdk_xkb_parse_keyboard_layouts (InputPadGtkWindow *window); void input_pad_gdk_xkb_signal_emit (InputPadGtkWindow *window, guint signal_id); char ** input_pad_gdk_xkb_get_group_layouts (InputPadGtkWindow *window, InputPadXKBKeyList *xkb_key_list); char ** input_pad_gdk_xkb_get_group_variants (InputPadGtkWindow *window, InputPadXKBKeyList *xkb_key_list); char ** input_pad_gdk_xkb_get_group_options (InputPadGtkWindow *window, InputPadXKBKeyList *xkb_key_list); InputPadXKBConfigReg * input_pad_gdk_xkb_parse_config_registry (InputPadGtkWindow *window, InputPadXKBKeyList *xkb_key_list); Bool input_pad_gdk_xkb_set_layout (InputPadGtkWindow *window, InputPadXKBKeyList *xkb_key_list, const char *layouts, const char *variants, const char *options); #endif input-pad-1.1.0/input-pad/geometry-xkb.h000066400000000000000000000071551476727667600201450ustar00rootroot00000000000000/* vim:set et sts=4: */ /* input-pad - The input pad * Copyright (C) 2010-2014 Takao Fujiwara * Copyright (C) 2010-2014 Red Hat, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301 USA */ #ifndef __INPUT_PAD_GEOMETRY_XKB_H__ #define __INPUT_PAD_GEOMETRY_XKB_H__ #include /* KeyCode */ #include /* Bool */ #include #include #define input_pad_xkb_build_core_state XkbBuildCoreState typedef struct _InputPadXKBKeyRow InputPadXKBKeyRow; typedef struct _InputPadXKBKeyRowPrivate InputPadXKBKeyRowPrivate; typedef struct _InputPadXKBKeyList InputPadXKBKeyList; typedef struct _InputPadXKBKeyListPrivate InputPadXKBKeyListPrivate; typedef struct _InputPadXKBConfigReg InputPadXKBConfigReg; typedef struct _InputPadXKBConfigRegPrivate InputPadXKBConfigRegPrivate; typedef struct _InputPadXKBLayoutList InputPadXKBLayoutList; typedef struct _InputPadXKBLayoutListPrivate InputPadXKBLayoutListPrivate; typedef struct _InputPadXKBVariantList InputPadXKBVariantList; typedef struct _InputPadXKBVariantListPrivate InputPadXKBVariantListPrivate; typedef struct _InputPadXKBOptionGroupList InputPadXKBOptionGroupList; typedef struct _InputPadXKBOptionGroupListPrivate InputPadXKBOptionGroupListPrivate; typedef struct _InputPadXKBOptionList InputPadXKBOptionList; typedef struct _InputPadXKBOptionListPrivate InputPadXKBOptionListPrivate; struct _InputPadXKBKeyRow { KeyCode keycode; char *name; unsigned int **keysym; InputPadXKBKeyRow *next; InputPadXKBKeyRowPrivate *priv; }; struct _InputPadXKBKeyList { InputPadXKBKeyRow *row; InputPadXKBKeyList *next; InputPadXKBKeyListPrivate *priv; }; struct _InputPadXKBConfigReg { InputPadXKBLayoutList *layouts; InputPadXKBOptionGroupList *option_groups; InputPadXKBConfigRegPrivate *priv; }; struct _InputPadXKBLayoutList { char *layout; char *desc; InputPadXKBVariantList *variants; InputPadXKBLayoutList *next; InputPadXKBLayoutListPrivate *priv; }; struct _InputPadXKBVariantList { char *variant; char *desc; InputPadXKBVariantList *next; InputPadXKBVariantListPrivate *priv; }; struct _InputPadXKBOptionGroupList { char *option_group; char *desc; InputPadXKBOptionList *options; InputPadXKBOptionGroupList *next; InputPadXKBOptionGroupListPrivate *priv; }; struct _InputPadXKBOptionList { char *option; char *desc; InputPadXKBOptionList *next; InputPadXKBOptionListPrivate *priv; }; #endif input-pad-1.1.0/input-pad/i18n.h000066400000000000000000000025731476727667600163060ustar00rootroot00000000000000/* vim:set et sts=4: */ /* input-pad - The input pad * Copyright (C) 2010-2012 Takao Fujiwara * Copyright (C) 2010-2012 Red Hat, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301 USA */ #ifndef __INPUT_PAD_I18N_H__ #define __INPUT_PAD_I18N_H__ #ifdef ENABLE_NLS #include #ifndef GETTEXT_PACKAGE #error Need to inlcude config.h #endif #define _(str) ((char *) g_dgettext (GETTEXT_PACKAGE, (str))) #define D_(domain, str) ((char *) g_dgettext ((domain), (str))) #define N_(str) (str) #else #define _(str) (str) #define D_(domain, str) (str) #define N_(str) (str) #endif #define I_(str) g_intern_static_string (str) #endif input-pad-1.1.0/input-pad/input-pad-group.h000066400000000000000000000062651476727667600205640ustar00rootroot00000000000000/* vim:set et sts=4: */ /* input-pad - The input pad * Copyright (C) 2010-2012 Takao Fujiwara * Copyright (C) 2010-2012 Red Hat, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301 USA */ #ifndef __INPUT_PAD_GROUP_H__ #define __INPUT_PAD_GROUP_H__ typedef struct _InputPadGroupPrivate InputPadGroupPrivate; typedef struct _InputPadGroup InputPadGroup; typedef struct _InputPadTablePrivate InputPadTablePrivate; typedef struct _InputPadTable InputPadTable; typedef struct _InputPadTableStr InputPadTableStr; typedef struct _InputPadTableCmd InputPadTableCmd; typedef struct _InputPadTableXXX InputPadTableXXX; typedef enum { INPUT_PAD_TABLE_TYPE_NONE = 0, INPUT_PAD_TABLE_TYPE_CHARS, INPUT_PAD_TABLE_TYPE_KEYSYMS, INPUT_PAD_TABLE_TYPE_STRINGS, INPUT_PAD_TABLE_TYPE_COMMANDS, } InputPadTableType; struct _InputPadGroup { char *name; InputPadTable *table; InputPadGroup *next; InputPadGroupPrivate *priv; }; struct _InputPadTable { char *name; int column; InputPadTableType type; union data { char *chars; char *keysyms; InputPadTableStr *strs; InputPadTableCmd *cmds; InputPadTableXXX *_future; } data; InputPadTable *next; InputPadTablePrivate *priv; }; struct _InputPadTableStr { char *label; char *comment; char *rawtext; }; struct _InputPadTableCmd { char *label; char *execl; }; struct _InputPadTableXXX { /* Padding for future expansion */ void *reserved1; void *reserved2; void *reserved3; void *reserved4; void *reserved5; }; InputPadGroup * input_pad_group_append_from_file (InputPadGroup *group_data, const char *file, const char *domain); InputPadGroup * input_pad_group_parse_all_files (const char *custom_dirname, const char *domain); void input_pad_group_destroy (InputPadGroup *group_data); #endif input-pad-1.1.0/input-pad/input-pad-kbdui-gtk.h000066400000000000000000000113731476727667600213050ustar00rootroot00000000000000/* vim:set et sts=4: */ /* input-pad - The input pad * Copyright (C) 2010-2012 Takao Fujiwara * Copyright (C) 2010-2012 Red Hat, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301 USA */ #ifndef __INPUT_PAD_KBDUI_H__ #define __INPUT_PAD_KBDUI_H__ #include #include #include "input-pad-window-gtk.h" #include "input-pad.h" G_BEGIN_DECLS #define INPUT_PAD_TYPE_GTK_KBDUI (input_pad_gtk_kbdui_get_type ()) #define INPUT_PAD_GTK_KBDUI(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), INPUT_PAD_TYPE_GTK_KBDUI, InputPadGtkKbdui)) #define INPUT_PAD_GTK_KBDUI_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), INPUT_PAD_TYPE_GTK_KBDUI, InputPadGtkKbduiClass)) #define INPUT_PAD_IS_GTK_KBDUI(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), INPUT_PAD_TYPE_GTK_KBDUI)) #define INPUT_PAD_IS_GTK_KBDUI_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), INPUT_PAD_TYPE_GTK_KBDUI)) #define INPUT_PAD_GTK_KBDUI_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), INPUT_PAD_TYPE_GTK_KBDUI, InputPadGtkKbduiClass)) typedef struct _InputPadGtkKbdui InputPadGtkKbdui; typedef struct _InputPadGtkKbduiPrivate InputPadGtkKbduiPrivate; typedef struct _InputPadGtkKbduiClass InputPadGtkKbduiClass; typedef struct _InputPadGtkKbduiContext InputPadGtkKbduiContext; typedef struct _InputPadGtkKbduiContextPrivate InputPadGtkKbduiContextPrivate; struct _InputPadGtkKbdui { GObject parent; GModule *module; InputPadGtkKbduiPrivate *priv; }; struct _InputPadGtkKbduiClass { GObjectClass parent_class; void (* create_keyboard_layout) (InputPadGtkKbdui *kbdui, GtkWidget *vbox, InputPadGtkWindow *window); void (* destroy_keyboard_layout) (InputPadGtkKbdui *kbdui, GtkWidget *vbox, InputPadGtkWindow *window); /* Padding for future expansion */ void (*_kbdui_reserved1) (void); void (*_kbdui_reserved2) (void); void (*_kbdui_reserved3) (void); void (*_kbdui_reserved4) (void); }; struct _InputPadGtkKbduiContext { InputPadGtkKbdui *kbdui; GOptionContext *context; InputPadGtkKbduiContextPrivate *priv; }; G_MODULE_EXPORT GType input_pad_gtk_kbdui_get_type (void); G_MODULE_EXPORT InputPadGtkKbduiContext * input_pad_gtk_kbdui_context_new (void); G_MODULE_EXPORT const gchar * input_pad_gtk_kbdui_context_get_kbdui_name (InputPadGtkKbduiContext *context); G_MODULE_EXPORT void input_pad_gtk_kbdui_context_set_kbdui_name (InputPadGtkKbduiContext *context, const gchar *name); G_MODULE_EXPORT void input_pad_gtk_kbdui_context_destroy (InputPadGtkKbduiContext *context); G_MODULE_EXPORT const gchar * input_pad_module_get_description (void); G_MODULE_EXPORT InputPadWindowType input_pad_module_get_type (void); G_MODULE_EXPORT gboolean input_pad_module_arg_init (int *argc, char ***argv, InputPadGtkKbduiContext *context); G_MODULE_EXPORT gboolean input_pad_module_arg_init_post (int *argc, char ***argv, InputPadGtkKbduiContext *context); G_MODULE_EXPORT gboolean input_pad_module_init (InputPadGtkWindow *window); G_MODULE_EXPORT InputPadGtkKbdui * input_pad_module_kbdui_new (InputPadGtkWindow *window); G_END_DECLS #endif input-pad-1.1.0/input-pad/input-pad-main.c000066400000000000000000000024261476727667600203420ustar00rootroot00000000000000/* vim:set et sts=4: */ /* input-pad - The input pad * Copyright (C) 2010-2014 Takao Fujiwara * Copyright (C) 2010-2014 Red Hat, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301 USA */ #ifdef HAVE_CONFIG_H #include #endif #include "input-pad.h" #include /* exit */ int main (int argc, char *argv[]) { void *data; int do_exit = 0; int retval; retval = input_pad_window_init (&argc, &argv, 0, &do_exit); if (do_exit) { exit (retval); } data = input_pad_window_new (); return input_pad_window_main (data); } input-pad-1.1.0/input-pad/input-pad-marshal.list000066400000000000000000000001061476727667600215670ustar00rootroot00000000000000BOOL:STRING,UINT,UINT,UINT,UINT VOID:STRING,STRING VOID:OBJECT,OBJECT input-pad-1.1.0/input-pad/input-pad-private.h000066400000000000000000000022231476727667600210700ustar00rootroot00000000000000/* vim:set et sts=4: */ /* input-pad - The input pad * Copyright (C) 2010-2012 Takao Fujiwara * Copyright (C) 2010-2012 Red Hat, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301 USA */ #ifndef __INPUT_PAD_PRIVATE_H__ #define __INPUT_PAD_PRIVATE_H__ struct _InputPadGroupPrivate { void *signal_window; }; struct _InputPadTablePrivate { guint inited : 1; void *signal_window; }; #endif input-pad-1.1.0/input-pad/input-pad-window-gtk.h000066400000000000000000000167531476727667600215250ustar00rootroot00000000000000/* vim:set et sts=4: */ /* input-pad - The input pad * Copyright (C) 2010-2014 Takao Fujiwara * Copyright (C) 2010-2014 Red Hat, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301 USA */ #ifndef __INPUT_PAD_WINDOW_GTK_H__ #define __INPUT_PAD_WINDOW_GTK_H__ #include #include "input-pad.h" G_BEGIN_DECLS #define INPUT_PAD_TYPE_GTK_APPLICATION (input_pad_gtk_application_get_type ()) #define INPUT_PAD_GTK_APPLICATION(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), INPUT_PAD_TYPE_GTK_APPLICATION, InputPadGtkApplication)) #define INPUT_PAD_IS_GTK_APPLICATION(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), INPUT_PAD_TYPE_GTK_APPLICATION)) #define INPUT_PAD_TYPE_GTK_WINDOW (input_pad_gtk_window_get_type ()) #define INPUT_PAD_GTK_WINDOW(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), INPUT_PAD_TYPE_GTK_WINDOW, InputPadGtkWindow)) #define INPUT_PAD_GTK_WINDOW_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), INPUT_PAD_TYPE_GTK_WINDOW, InputPadGtkWindowClass)) #define INPUT_PAD_IS_GTK_WINDOW(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), INPUT_PAD_TYPE_GTK_WINDOW)) #define INPUT_PAD_IS_GTK_WINDOW_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), INPUT_PAD_TYPE_GTK_WINDOW)) #define INPUT_PAD_GTK_WINDOW_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), INPUT_PAD_TYPE_GTK_WINDOW, InputPadGtkWindowClass)) typedef struct _InputPadGtkApplication InputPadGtkApplication; typedef struct _InputPadGtkApplicationClass InputPadGtkApplicationClass; typedef struct _InputPadGtkWindowPrivate InputPadGtkWindowPrivate; typedef struct _InputPadGtkWindow InputPadGtkWindow; typedef struct _InputPadGtkWindowClass InputPadGtkWindowClass; struct _InputPadGtkWindow { GtkApplicationWindow parent; guint child; InputPadGtkWindowPrivate *priv; }; struct _InputPadGtkWindowClass { GtkApplicationWindowClass parent_class; gboolean (* button_pressed) (InputPadGtkWindow *window, const gchar *str, guint type, guint keysym, guint keycode, guint state); void (* keyboard_changed) (InputPadGtkWindow *window, int group); void (* group_changed) (InputPadGtkWindow *window, const gchar *paddir, const gchar *domain); void (* group_appended) (InputPadGtkWindow *window, const gchar *padfile, const gchar *domain); void (* char_button_sensitive) (InputPadGtkWindow *window, gboolean sensitive); void (* reorder_button_pressed) (InputPadGtkWindow *window); /* Padding for future expansion */ void (*_window_reserved1) (void); void (*_window_reserved2) (void); void (*_window_reserved3) (void); void (*_window_reserved4) (void); }; G_MODULE_EXPORT GType input_pad_gtk_application_get_type (void); InputPadGtkApplication * input_pad_gtk_application_new (void); /** * input_pad_gtk_application_get_window: * @app: #InputPadGtkApplication * return value: (transfer none): #InputPadGtkWindow */ InputPadGtkWindow * input_pad_gtk_application_get_window (InputPadGtkApplication *app); GType input_pad_gtk_window_get_type (void); InputPadGtkWindow * input_pad_gtk_window_new (InputPadGtkApplication *app); InputPadGtkWindow * input_pad_gtk_window_new_with_child (InputPadGtkApplication *app, GtkWindowType type, unsigned int child); void input_pad_gtk_window_set_paddir (InputPadGtkWindow *window, const gchar *paddir, const gchar *domain); void input_pad_gtk_window_append_padfile (InputPadGtkWindow *window, const gchar *padfile, const gchar *domain); void input_pad_gtk_window_set_char_button_sensitive (InputPadGtkWindow *window, gboolean sensitive); void input_pad_gtk_window_reorder_button_pressed (InputPadGtkWindow *window); guint input_pad_gtk_window_get_keyboard_state (InputPadGtkWindow *window); void input_pad_gtk_window_set_keyboard_state (InputPadGtkWindow *window, guint keyboard_state); void input_pad_gtk_window_set_keyboard_state_with_keysym (InputPadGtkWindow *window, guint keysym); InputPadWindowKbduiName * input_pad_gtk_window_get_kbdui_name_list (void); int input_pad_gtk_window_get_kbdui_name_list_length (void); gchar * input_pad_gtk_window_get_kbdui_name_get_name_with_index (int index); gchar * input_pad_gtk_window_get_kbdui_name_get_description_with_index (int index); InputPadWindowType input_pad_gtk_window_get_kbdui_name_get_type_with_index (int index); void input_pad_gtk_window_set_kbdui_name (InputPadGtkWindow *window, const gchar *name); void input_pad_gtk_window_set_show_table (InputPadGtkWindow *window, InputPadWindowShowTableType type); void input_pad_gtk_window_set_show_layout (InputPadGtkWindow *window, InputPadWindowShowLayoutType type); G_END_DECLS #endif input-pad-1.1.0/input-pad/input-pad.1.in000066400000000000000000000012331476727667600177360ustar00rootroot00000000000000.\" This file is distributed under the same license as the input-pad .\" package. .\" Copyright (C) Takao Fujiwara , 2010-2013. .\" .TH "INPUT-PAD" 1 "July 2010" "@VERSION@" "User Commands" .SH NAME input-pad \- On-screen Input Pad to Send Characters with Mouse .SH "SYNOPSIS" .B input-pad .SH "DESCRIPTION" .PP input-pad is a tool to send a character on button to text applications. It provides the GTK+ based GUI and can send characteres on the GTK+ buttons. .PP Homepage: http://code.google.com/p/input-pad/ .SH BUGS If you find a bug, please report it at http://code.google.com/p/input-pad/issues/list .SH "SEE ALSO" .BR ibus (1) input-pad-1.1.0/input-pad/input-pad.gresource.xml000066400000000000000000000004661476727667600217750ustar00rootroot00000000000000 app-menu.ui dialog.ui window-gtk.ui input-pad-1.1.0/input-pad/input-pad.h000066400000000000000000000110441476727667600174210ustar00rootroot00000000000000/* vim:set et sts=4: */ /* input-pad - The input pad * Copyright (C) 2010-2014 Takao Fujiwara * Copyright (C) 2010-2014 Red Hat, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301 USA */ #ifndef __INPUT_PAD_H__ #define __INPUT_PAD_H__ typedef enum { INPUT_PAD_WINDOW_TYPE_GTK = 0, } InputPadWindowType; typedef enum { INPUT_PAD_WINDOW_SHOW_TABLE_TYPE_NOTHING = 0, INPUT_PAD_WINDOW_SHOW_TABLE_TYPE_CUSTOM, INPUT_PAD_WINDOW_SHOW_TABLE_TYPE_ALL, } InputPadWindowShowTableType; typedef enum { INPUT_PAD_WINDOW_SHOW_LAYOUT_TYPE_NOTHING = 0, INPUT_PAD_WINDOW_SHOW_LAYOUT_TYPE_DEFAULT, } InputPadWindowShowLayoutType; typedef struct _InputPadWindowKbduiName InputPadWindowKbduiName; struct _InputPadWindowKbduiName { char *name; char *description; InputPadWindowType type; }; const char * input_pad_get_version (void); /** * input_pad_window_init: * @argc: (inout): Address of the argc * @argv: (array length=argc) (inout) (allow-none): Address of the argv * @type: currently it's ignored. * @do_exit: (out): If this is %TRUE, can call exit. * * Returns: the exit value. */ int input_pad_window_init (int *argc, char ***argv, InputPadWindowType type, int *do_exit); void * input_pad_window_new (void); void input_pad_window_show (void *window_data); void input_pad_window_hide (void *window_data); unsigned int input_pad_window_get_visible (void *window_data); void input_pad_window_set_paddir (void *window_data, const char *paddir, const char *domain); void input_pad_window_append_padfile (void *window_data, const char *padfile, const char *domain); void input_pad_window_set_char_button_sensitive (void *window_data, unsigned int sensitive); void input_pad_window_reorder_button_pressed (void *window_data); InputPadWindowKbduiName * input_pad_window_get_kbdui_name_list (void); int input_pad_window_get_kbdui_name_list_length (void); char * input_pad_window_get_kbdui_name_get_name_with_index (int index); char * input_pad_window_get_kbdui_name_get_description_with_index (int index); InputPadWindowType input_pad_window_get_kbdui_name_get_type_with_index (int index); void input_pad_window_set_kbdui_name (void *window_data, const char *name); void input_pad_window_set_show_table (void *window_data, InputPadWindowShowTableType type); void input_pad_window_set_show_layout (void *window_data, InputPadWindowShowLayoutType type); void * input_pad_window_get_window (void *window_data); void input_pad_window_activate (void *window_data); int input_pad_window_main (void *window_data); void input_pad_window_destroy (void *window_data); #endif input-pad-1.1.0/input-pad/kbdui-gtk.c000066400000000000000000000071731476727667600174040ustar00rootroot00000000000000/* vim:set et sts=4: */ /* input-pad - The input pad * Copyright (C) 2010-2012 Takao Fujiwara * Copyright (C) 2010-2012 Red Hat, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301 USA */ #ifdef HAVE_CONFIG_H #include #endif #include #include "input-pad-window-gtk.h" #include "input-pad-kbdui-gtk.h" #include "input-pad-marshal.h" #include "i18n.h" enum { CREATE_KEYBOARD_LAYOUT, DESTROY_KEYBOARD_LAYOUT, LAST_SIGNAL }; static guint signals[LAST_SIGNAL] = { 0 }; struct _InputPadGtkKbduiContextPrivate { gchar *kbdui_name; }; G_DEFINE_ABSTRACT_TYPE (InputPadGtkKbdui, input_pad_gtk_kbdui, G_TYPE_OBJECT); static void input_pad_gtk_kbdui_init (InputPadGtkKbdui *kbdui) { } static void input_pad_gtk_kbdui_class_init (InputPadGtkKbduiClass *klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); signals[CREATE_KEYBOARD_LAYOUT] = g_signal_new (I_("create-keyboard-layout"), G_TYPE_FROM_CLASS (gobject_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (InputPadGtkKbduiClass, create_keyboard_layout), NULL, NULL, INPUT_PAD_VOID__OBJECT_OBJECT, G_TYPE_NONE, 2, GTK_TYPE_WIDGET, INPUT_PAD_TYPE_GTK_WINDOW); signals[DESTROY_KEYBOARD_LAYOUT] = g_signal_new (I_("destroy-keyboard-layout"), G_TYPE_FROM_CLASS (gobject_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (InputPadGtkKbduiClass, destroy_keyboard_layout), NULL, NULL, INPUT_PAD_VOID__OBJECT_OBJECT, G_TYPE_NONE, 2, GTK_TYPE_WIDGET, INPUT_PAD_TYPE_GTK_WINDOW); } G_MODULE_EXPORT InputPadGtkKbduiContext * input_pad_gtk_kbdui_context_new (void) { InputPadGtkKbduiContext *context; context = g_new0 (InputPadGtkKbduiContext, 1); context->priv = g_new0 (InputPadGtkKbduiContextPrivate, 1); return context; } G_MODULE_EXPORT const gchar * input_pad_gtk_kbdui_context_get_kbdui_name (InputPadGtkKbduiContext *context) { return context->priv->kbdui_name; } G_MODULE_EXPORT void input_pad_gtk_kbdui_context_set_kbdui_name (InputPadGtkKbduiContext *context, const gchar *name) { g_free (context->priv->kbdui_name); if (name) { context->priv->kbdui_name = g_strdup (name); } else { context->priv->kbdui_name = NULL; } } void input_pad_gtk_kbdui_context_destroy (InputPadGtkKbduiContext *context) { if (context) { if (context->priv) { g_free (context->priv->kbdui_name); context->priv->kbdui_name = NULL; g_free (context->priv); context->priv = NULL; } g_free (context); } } input-pad-1.1.0/input-pad/keysym-str2val.c000066400000000000000000000141701476727667600204320ustar00rootroot00000000000000/* vim:set et sts=4: */ /* input-pad - The input pad * Copyright (C) 2010-2012 Takao Fujiwara * Copyright (C) 2010-2012 Red Hat, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301 USA */ #ifdef HAVE_CONFIG_H #include #endif #include #define KEYSYM_PREFIX "XK_" #define ARRAY_START "" \ "#ifndef __INPUT_PAD_KEYSYM_STR2VAL_H__\n" \ "#define __INPUT_PAD_KEYSYM_STR2VAL_H__\n" \ "\n" \ "#include \n" \ "#include <%s>\n" \ "\n" \ "typedef struct _InputPadKeysymTable InputPadKeysymTable;\n" \ "\n" \ "struct _InputPadKeysymTable {\n" \ " const char *str;\n" \ " KeySym keysym;\n" \ "};\n" \ "\n" \ "static const InputPadKeysymTable input_pad_keysym_table[] = {\n" #define ARRAY_END "" \ " {NULL, 0x0},\n" \ "};\n" \ "#endif" static gchar *progname; static void usage (void) { g_print ("usage: %s FILENAME\n", progname ? progname : ""); g_print ("FILENAME file path of X11/keysymdef.h\n"); } gchar * get_include (const gchar *filename) { gchar *basename, *p, *f; g_return_val_if_fail (filename != NULL, NULL); basename = g_path_get_basename (filename); f = (gchar *) filename; p = g_strrstr (f, "/"); if (p == NULL || p - 1 <= f) { g_free (basename); return g_strdup (f); } f = g_strndup (filename, p - filename); p = g_strrstr (f, "/"); if (p == NULL) { p = g_strdup_printf ("%s/%s", p, basename); g_free (basename); g_free (f); return p; } p = g_strdup_printf ("%s/%s", p + 1, basename); g_free (basename); g_free (f); return p; } gchar * gen_array (const gchar *filename) { gchar *contents = NULL; gchar *include = NULL; gchar *p; gchar **words; gchar *keysym; gchar *array_line; GError *error = NULL; GString *line; GString *array; if (!filename || !g_file_test (filename, G_FILE_TEST_EXISTS)) { g_error ("ERROR: File Not Found: %s\n", filename ? filename : "(null)"); return NULL; } if (!g_file_get_contents (filename, &contents, NULL, &error)) { g_error ("ERROR: Failed to get contents: %s\n", error ? error->message ? error->message : "" : ""); g_error_free (error); return NULL; } include = get_include (filename); g_return_val_if_fail (include != NULL && *include != '\0', NULL); array_line = g_strdup_printf (ARRAY_START, include); array = g_string_new (array_line); g_free (array_line); line = g_string_new (""); for (p = contents; p && *p; p = g_utf8_find_next_char (p, NULL)) { gunichar ch; ch = g_utf8_get_char (p); if ((ch != '\n') && (ch != '\0')) { g_string_append_unichar (line, ch); continue; } if (g_str_has_prefix (line->str, "#ifdef") || g_str_has_prefix (line->str, "#ifndef") || g_str_has_prefix (line->str, "#endif")) { g_string_append (array, line->str); g_string_append_unichar (array, '\n'); goto next_line; } if (!g_str_has_prefix (line->str, "#define")) { goto next_line; } words = g_strsplit_set (line->str, " \t", -1); keysym = g_strdup (words[1]); g_strfreev (words); if (*keysym == '\0') { g_free (keysym); goto next_line; } if (!g_str_has_prefix (keysym, KEYSYM_PREFIX)) { g_free (keysym); g_string_append (array, line->str); g_string_append_unichar (array, '\n'); goto next_line; } array_line = g_strdup_printf (" {\"%s\", %s},\n", keysym + g_utf8_strlen (KEYSYM_PREFIX, -1), keysym); g_free (keysym); g_string_append (array, array_line); g_free (array_line); next_line: g_string_set_size (line, 0); } g_string_free (line, TRUE); g_free (contents); g_string_append (array, ARRAY_END); return g_string_free (array, FALSE); } int main (int argc, char *argv[]) { char *d; char *array; char *output_filename; GError *error = NULL; progname = g_path_get_basename (argv[0]); if (argc == 1) { usage (); g_free (progname); return -1; } array = gen_array (argv[1]); output_filename = g_strdup_printf ("%s.h", progname); if (!g_file_set_contents (output_filename, array, -1, &error)) { g_error ("ERROR: Failed to save %s: %s\n", output_filename, error ? error->message ? error->message : "" : ""); g_error_free (error); } g_free (array); g_free (progname); return 0; } input-pad-1.1.0/input-pad/keysym-str2val.h000066400000000000000000002162161476727667600204440ustar00rootroot00000000000000#ifndef __INPUT_PAD_KEYSYM_STR2VAL_H__ #define __INPUT_PAD_KEYSYM_STR2VAL_H__ #include #include typedef struct _InputPadKeysymTable InputPadKeysymTable; struct _InputPadKeysymTable { const char *str; KeySym keysym; }; static const InputPadKeysymTable input_pad_keysym_table[] = { {"VoidSymbol", XK_VoidSymbol}, #ifdef XK_MISCELLANY {"BackSpace", XK_BackSpace}, {"Tab", XK_Tab}, {"Linefeed", XK_Linefeed}, {"Clear", XK_Clear}, {"Return", XK_Return}, {"Pause", XK_Pause}, {"Scroll_Lock", XK_Scroll_Lock}, {"Sys_Req", XK_Sys_Req}, {"Escape", XK_Escape}, {"Delete", XK_Delete}, {"Multi_key", XK_Multi_key}, {"Codeinput", XK_Codeinput}, {"SingleCandidate", XK_SingleCandidate}, {"MultipleCandidate", XK_MultipleCandidate}, {"PreviousCandidate", XK_PreviousCandidate}, {"Kanji", XK_Kanji}, {"Muhenkan", XK_Muhenkan}, {"Henkan_Mode", XK_Henkan_Mode}, {"Henkan", XK_Henkan}, {"Romaji", XK_Romaji}, {"Hiragana", XK_Hiragana}, {"Katakana", XK_Katakana}, {"Hiragana_Katakana", XK_Hiragana_Katakana}, {"Zenkaku", XK_Zenkaku}, {"Hankaku", XK_Hankaku}, {"Zenkaku_Hankaku", XK_Zenkaku_Hankaku}, {"Touroku", XK_Touroku}, {"Massyo", XK_Massyo}, {"Kana_Lock", XK_Kana_Lock}, {"Kana_Shift", XK_Kana_Shift}, {"Eisu_Shift", XK_Eisu_Shift}, {"Eisu_toggle", XK_Eisu_toggle}, {"Kanji_Bangou", XK_Kanji_Bangou}, {"Zen_Koho", XK_Zen_Koho}, {"Mae_Koho", XK_Mae_Koho}, {"Home", XK_Home}, {"Left", XK_Left}, {"Up", XK_Up}, {"Right", XK_Right}, {"Down", XK_Down}, {"Prior", XK_Prior}, {"Page_Up", XK_Page_Up}, {"Next", XK_Next}, {"Page_Down", XK_Page_Down}, {"End", XK_End}, {"Begin", XK_Begin}, {"Select", XK_Select}, {"Print", XK_Print}, {"Execute", XK_Execute}, {"Insert", XK_Insert}, {"Undo", XK_Undo}, {"Redo", XK_Redo}, {"Menu", XK_Menu}, {"Find", XK_Find}, {"Cancel", XK_Cancel}, {"Help", XK_Help}, {"Break", XK_Break}, {"Mode_switch", XK_Mode_switch}, {"script_switch", XK_script_switch}, {"Num_Lock", XK_Num_Lock}, {"KP_Space", XK_KP_Space}, {"KP_Tab", XK_KP_Tab}, {"KP_Enter", XK_KP_Enter}, {"KP_F1", XK_KP_F1}, {"KP_F2", XK_KP_F2}, {"KP_F3", XK_KP_F3}, {"KP_F4", XK_KP_F4}, {"KP_Home", XK_KP_Home}, {"KP_Left", XK_KP_Left}, {"KP_Up", XK_KP_Up}, {"KP_Right", XK_KP_Right}, {"KP_Down", XK_KP_Down}, {"KP_Prior", XK_KP_Prior}, {"KP_Page_Up", XK_KP_Page_Up}, {"KP_Next", XK_KP_Next}, {"KP_Page_Down", XK_KP_Page_Down}, {"KP_End", XK_KP_End}, {"KP_Begin", XK_KP_Begin}, {"KP_Insert", XK_KP_Insert}, {"KP_Delete", XK_KP_Delete}, {"KP_Equal", XK_KP_Equal}, {"KP_Multiply", XK_KP_Multiply}, {"KP_Add", XK_KP_Add}, {"KP_Separator", XK_KP_Separator}, {"KP_Subtract", XK_KP_Subtract}, {"KP_Decimal", XK_KP_Decimal}, {"KP_Divide", XK_KP_Divide}, {"KP_0", XK_KP_0}, {"KP_1", XK_KP_1}, {"KP_2", XK_KP_2}, {"KP_3", XK_KP_3}, {"KP_4", XK_KP_4}, {"KP_5", XK_KP_5}, {"KP_6", XK_KP_6}, {"KP_7", XK_KP_7}, {"KP_8", XK_KP_8}, {"KP_9", XK_KP_9}, {"F1", XK_F1}, {"F2", XK_F2}, {"F3", XK_F3}, {"F4", XK_F4}, {"F5", XK_F5}, {"F6", XK_F6}, {"F7", XK_F7}, {"F8", XK_F8}, {"F9", XK_F9}, {"F10", XK_F10}, {"F11", XK_F11}, {"L1", XK_L1}, {"F12", XK_F12}, {"L2", XK_L2}, {"F13", XK_F13}, {"L3", XK_L3}, {"F14", XK_F14}, {"L4", XK_L4}, {"F15", XK_F15}, {"L5", XK_L5}, {"F16", XK_F16}, {"L6", XK_L6}, {"F17", XK_F17}, {"L7", XK_L7}, {"F18", XK_F18}, {"L8", XK_L8}, {"F19", XK_F19}, {"L9", XK_L9}, {"F20", XK_F20}, {"L10", XK_L10}, {"F21", XK_F21}, {"R1", XK_R1}, {"F22", XK_F22}, {"R2", XK_R2}, {"F23", XK_F23}, {"R3", XK_R3}, {"F24", XK_F24}, {"R4", XK_R4}, {"F25", XK_F25}, {"R5", XK_R5}, {"F26", XK_F26}, {"R6", XK_R6}, {"F27", XK_F27}, {"R7", XK_R7}, {"F28", XK_F28}, {"R8", XK_R8}, {"F29", XK_F29}, {"R9", XK_R9}, {"F30", XK_F30}, {"R10", XK_R10}, {"F31", XK_F31}, {"R11", XK_R11}, {"F32", XK_F32}, {"R12", XK_R12}, {"F33", XK_F33}, {"R13", XK_R13}, {"F34", XK_F34}, {"R14", XK_R14}, {"F35", XK_F35}, {"R15", XK_R15}, {"Shift_L", XK_Shift_L}, {"Shift_R", XK_Shift_R}, {"Control_L", XK_Control_L}, {"Control_R", XK_Control_R}, {"Caps_Lock", XK_Caps_Lock}, {"Shift_Lock", XK_Shift_Lock}, {"Meta_L", XK_Meta_L}, {"Meta_R", XK_Meta_R}, {"Alt_L", XK_Alt_L}, {"Alt_R", XK_Alt_R}, {"Super_L", XK_Super_L}, {"Super_R", XK_Super_R}, {"Hyper_L", XK_Hyper_L}, {"Hyper_R", XK_Hyper_R}, #endif /* XK_MISCELLANY */ #ifdef XK_XKB_KEYS {"ISO_Lock", XK_ISO_Lock}, {"ISO_Level2_Latch", XK_ISO_Level2_Latch}, {"ISO_Level3_Shift", XK_ISO_Level3_Shift}, {"ISO_Level3_Latch", XK_ISO_Level3_Latch}, {"ISO_Level3_Lock", XK_ISO_Level3_Lock}, {"ISO_Level5_Shift", XK_ISO_Level5_Shift}, {"ISO_Level5_Latch", XK_ISO_Level5_Latch}, {"ISO_Level5_Lock", XK_ISO_Level5_Lock}, {"ISO_Group_Shift", XK_ISO_Group_Shift}, {"ISO_Group_Latch", XK_ISO_Group_Latch}, {"ISO_Group_Lock", XK_ISO_Group_Lock}, {"ISO_Next_Group", XK_ISO_Next_Group}, {"ISO_Next_Group_Lock", XK_ISO_Next_Group_Lock}, {"ISO_Prev_Group", XK_ISO_Prev_Group}, {"ISO_Prev_Group_Lock", XK_ISO_Prev_Group_Lock}, {"ISO_First_Group", XK_ISO_First_Group}, {"ISO_First_Group_Lock", XK_ISO_First_Group_Lock}, {"ISO_Last_Group", XK_ISO_Last_Group}, {"ISO_Last_Group_Lock", XK_ISO_Last_Group_Lock}, {"ISO_Left_Tab", XK_ISO_Left_Tab}, {"ISO_Move_Line_Up", XK_ISO_Move_Line_Up}, {"ISO_Move_Line_Down", XK_ISO_Move_Line_Down}, {"ISO_Partial_Line_Up", XK_ISO_Partial_Line_Up}, {"ISO_Partial_Line_Down", XK_ISO_Partial_Line_Down}, {"ISO_Partial_Space_Left", XK_ISO_Partial_Space_Left}, {"ISO_Partial_Space_Right", XK_ISO_Partial_Space_Right}, {"ISO_Set_Margin_Left", XK_ISO_Set_Margin_Left}, {"ISO_Set_Margin_Right", XK_ISO_Set_Margin_Right}, {"ISO_Release_Margin_Left", XK_ISO_Release_Margin_Left}, {"ISO_Release_Margin_Right", XK_ISO_Release_Margin_Right}, {"ISO_Release_Both_Margins", XK_ISO_Release_Both_Margins}, {"ISO_Fast_Cursor_Left", XK_ISO_Fast_Cursor_Left}, {"ISO_Fast_Cursor_Right", XK_ISO_Fast_Cursor_Right}, {"ISO_Fast_Cursor_Up", XK_ISO_Fast_Cursor_Up}, {"ISO_Fast_Cursor_Down", XK_ISO_Fast_Cursor_Down}, {"ISO_Continuous_Underline", XK_ISO_Continuous_Underline}, {"ISO_Discontinuous_Underline", XK_ISO_Discontinuous_Underline}, {"ISO_Emphasize", XK_ISO_Emphasize}, {"ISO_Center_Object", XK_ISO_Center_Object}, {"ISO_Enter", XK_ISO_Enter}, {"dead_grave", XK_dead_grave}, {"dead_acute", XK_dead_acute}, {"dead_circumflex", XK_dead_circumflex}, {"dead_tilde", XK_dead_tilde}, {"dead_perispomeni", XK_dead_perispomeni}, {"dead_macron", XK_dead_macron}, {"dead_breve", XK_dead_breve}, {"dead_abovedot", XK_dead_abovedot}, {"dead_diaeresis", XK_dead_diaeresis}, {"dead_abovering", XK_dead_abovering}, {"dead_doubleacute", XK_dead_doubleacute}, {"dead_caron", XK_dead_caron}, {"dead_cedilla", XK_dead_cedilla}, {"dead_ogonek", XK_dead_ogonek}, {"dead_iota", XK_dead_iota}, {"dead_voiced_sound", XK_dead_voiced_sound}, {"dead_semivoiced_sound", XK_dead_semivoiced_sound}, {"dead_belowdot", XK_dead_belowdot}, {"dead_hook", XK_dead_hook}, {"dead_horn", XK_dead_horn}, {"dead_stroke", XK_dead_stroke}, {"dead_abovecomma", XK_dead_abovecomma}, {"dead_psili", XK_dead_psili}, {"dead_abovereversedcomma", XK_dead_abovereversedcomma}, {"dead_dasia", XK_dead_dasia}, {"dead_doublegrave", XK_dead_doublegrave}, {"dead_belowring", XK_dead_belowring}, {"dead_belowmacron", XK_dead_belowmacron}, {"dead_belowcircumflex", XK_dead_belowcircumflex}, {"dead_belowtilde", XK_dead_belowtilde}, {"dead_belowbreve", XK_dead_belowbreve}, {"dead_belowdiaeresis", XK_dead_belowdiaeresis}, {"dead_invertedbreve", XK_dead_invertedbreve}, {"dead_belowcomma", XK_dead_belowcomma}, {"dead_currency", XK_dead_currency}, {"dead_a", XK_dead_a}, {"dead_A", XK_dead_A}, {"dead_e", XK_dead_e}, {"dead_E", XK_dead_E}, {"dead_i", XK_dead_i}, {"dead_I", XK_dead_I}, {"dead_o", XK_dead_o}, {"dead_O", XK_dead_O}, {"dead_u", XK_dead_u}, {"dead_U", XK_dead_U}, {"dead_small_schwa", XK_dead_small_schwa}, {"dead_capital_schwa", XK_dead_capital_schwa}, {"First_Virtual_Screen", XK_First_Virtual_Screen}, {"Prev_Virtual_Screen", XK_Prev_Virtual_Screen}, {"Next_Virtual_Screen", XK_Next_Virtual_Screen}, {"Last_Virtual_Screen", XK_Last_Virtual_Screen}, {"Terminate_Server", XK_Terminate_Server}, {"AccessX_Enable", XK_AccessX_Enable}, {"AccessX_Feedback_Enable", XK_AccessX_Feedback_Enable}, {"RepeatKeys_Enable", XK_RepeatKeys_Enable}, {"SlowKeys_Enable", XK_SlowKeys_Enable}, {"BounceKeys_Enable", XK_BounceKeys_Enable}, {"StickyKeys_Enable", XK_StickyKeys_Enable}, {"MouseKeys_Enable", XK_MouseKeys_Enable}, {"MouseKeys_Accel_Enable", XK_MouseKeys_Accel_Enable}, {"Overlay1_Enable", XK_Overlay1_Enable}, {"Overlay2_Enable", XK_Overlay2_Enable}, {"AudibleBell_Enable", XK_AudibleBell_Enable}, {"Pointer_Left", XK_Pointer_Left}, {"Pointer_Right", XK_Pointer_Right}, {"Pointer_Up", XK_Pointer_Up}, {"Pointer_Down", XK_Pointer_Down}, {"Pointer_UpLeft", XK_Pointer_UpLeft}, {"Pointer_UpRight", XK_Pointer_UpRight}, {"Pointer_DownLeft", XK_Pointer_DownLeft}, {"Pointer_DownRight", XK_Pointer_DownRight}, {"Pointer_Button_Dflt", XK_Pointer_Button_Dflt}, {"Pointer_Button1", XK_Pointer_Button1}, {"Pointer_Button2", XK_Pointer_Button2}, {"Pointer_Button3", XK_Pointer_Button3}, {"Pointer_Button4", XK_Pointer_Button4}, {"Pointer_Button5", XK_Pointer_Button5}, {"Pointer_DblClick_Dflt", XK_Pointer_DblClick_Dflt}, {"Pointer_DblClick1", XK_Pointer_DblClick1}, {"Pointer_DblClick2", XK_Pointer_DblClick2}, {"Pointer_DblClick3", XK_Pointer_DblClick3}, {"Pointer_DblClick4", XK_Pointer_DblClick4}, {"Pointer_DblClick5", XK_Pointer_DblClick5}, {"Pointer_Drag_Dflt", XK_Pointer_Drag_Dflt}, {"Pointer_Drag1", XK_Pointer_Drag1}, {"Pointer_Drag2", XK_Pointer_Drag2}, {"Pointer_Drag3", XK_Pointer_Drag3}, {"Pointer_Drag4", XK_Pointer_Drag4}, {"Pointer_Drag5", XK_Pointer_Drag5}, {"Pointer_EnableKeys", XK_Pointer_EnableKeys}, {"Pointer_Accelerate", XK_Pointer_Accelerate}, {"Pointer_DfltBtnNext", XK_Pointer_DfltBtnNext}, {"Pointer_DfltBtnPrev", XK_Pointer_DfltBtnPrev}, #endif /* XK_XKB_KEYS */ #ifdef XK_3270 {"3270_Duplicate", XK_3270_Duplicate}, {"3270_FieldMark", XK_3270_FieldMark}, {"3270_Right2", XK_3270_Right2}, {"3270_Left2", XK_3270_Left2}, {"3270_BackTab", XK_3270_BackTab}, {"3270_EraseEOF", XK_3270_EraseEOF}, {"3270_EraseInput", XK_3270_EraseInput}, {"3270_Reset", XK_3270_Reset}, {"3270_Quit", XK_3270_Quit}, {"3270_PA1", XK_3270_PA1}, {"3270_PA2", XK_3270_PA2}, {"3270_PA3", XK_3270_PA3}, {"3270_Test", XK_3270_Test}, {"3270_Attn", XK_3270_Attn}, {"3270_CursorBlink", XK_3270_CursorBlink}, {"3270_AltCursor", XK_3270_AltCursor}, {"3270_KeyClick", XK_3270_KeyClick}, {"3270_Jump", XK_3270_Jump}, {"3270_Ident", XK_3270_Ident}, {"3270_Rule", XK_3270_Rule}, {"3270_Copy", XK_3270_Copy}, {"3270_Play", XK_3270_Play}, {"3270_Setup", XK_3270_Setup}, {"3270_Record", XK_3270_Record}, {"3270_ChangeScreen", XK_3270_ChangeScreen}, {"3270_DeleteWord", XK_3270_DeleteWord}, {"3270_ExSelect", XK_3270_ExSelect}, {"3270_CursorSelect", XK_3270_CursorSelect}, {"3270_PrintScreen", XK_3270_PrintScreen}, {"3270_Enter", XK_3270_Enter}, #endif /* XK_3270 */ #ifdef XK_LATIN1 {"space", XK_space}, {"exclam", XK_exclam}, {"quotedbl", XK_quotedbl}, {"numbersign", XK_numbersign}, {"dollar", XK_dollar}, {"percent", XK_percent}, {"ampersand", XK_ampersand}, {"apostrophe", XK_apostrophe}, {"quoteright", XK_quoteright}, {"parenleft", XK_parenleft}, {"parenright", XK_parenright}, {"asterisk", XK_asterisk}, {"plus", XK_plus}, {"comma", XK_comma}, {"minus", XK_minus}, {"period", XK_period}, {"slash", XK_slash}, {"0", XK_0}, {"1", XK_1}, {"2", XK_2}, {"3", XK_3}, {"4", XK_4}, {"5", XK_5}, {"6", XK_6}, {"7", XK_7}, {"8", XK_8}, {"9", XK_9}, {"colon", XK_colon}, {"semicolon", XK_semicolon}, {"less", XK_less}, {"equal", XK_equal}, {"greater", XK_greater}, {"question", XK_question}, {"at", XK_at}, {"A", XK_A}, {"B", XK_B}, {"C", XK_C}, {"D", XK_D}, {"E", XK_E}, {"F", XK_F}, {"G", XK_G}, {"H", XK_H}, {"I", XK_I}, {"J", XK_J}, {"K", XK_K}, {"L", XK_L}, {"M", XK_M}, {"N", XK_N}, {"O", XK_O}, {"P", XK_P}, {"Q", XK_Q}, {"R", XK_R}, {"S", XK_S}, {"T", XK_T}, {"U", XK_U}, {"V", XK_V}, {"W", XK_W}, {"X", XK_X}, {"Y", XK_Y}, {"Z", XK_Z}, {"bracketleft", XK_bracketleft}, {"backslash", XK_backslash}, {"bracketright", XK_bracketright}, {"asciicircum", XK_asciicircum}, {"underscore", XK_underscore}, {"grave", XK_grave}, {"quoteleft", XK_quoteleft}, {"a", XK_a}, {"b", XK_b}, {"c", XK_c}, {"d", XK_d}, {"e", XK_e}, {"f", XK_f}, {"g", XK_g}, {"h", XK_h}, {"i", XK_i}, {"j", XK_j}, {"k", XK_k}, {"l", XK_l}, {"m", XK_m}, {"n", XK_n}, {"o", XK_o}, {"p", XK_p}, {"q", XK_q}, {"r", XK_r}, {"s", XK_s}, {"t", XK_t}, {"u", XK_u}, {"v", XK_v}, {"w", XK_w}, {"x", XK_x}, {"y", XK_y}, {"z", XK_z}, {"braceleft", XK_braceleft}, {"bar", XK_bar}, {"braceright", XK_braceright}, {"asciitilde", XK_asciitilde}, {"nobreakspace", XK_nobreakspace}, {"exclamdown", XK_exclamdown}, {"cent", XK_cent}, {"sterling", XK_sterling}, {"currency", XK_currency}, {"yen", XK_yen}, {"brokenbar", XK_brokenbar}, {"section", XK_section}, {"diaeresis", XK_diaeresis}, {"copyright", XK_copyright}, {"ordfeminine", XK_ordfeminine}, {"guillemotleft", XK_guillemotleft}, {"notsign", XK_notsign}, {"hyphen", XK_hyphen}, {"registered", XK_registered}, {"macron", XK_macron}, {"degree", XK_degree}, {"plusminus", XK_plusminus}, {"twosuperior", XK_twosuperior}, {"threesuperior", XK_threesuperior}, {"acute", XK_acute}, {"mu", XK_mu}, {"paragraph", XK_paragraph}, {"periodcentered", XK_periodcentered}, {"cedilla", XK_cedilla}, {"onesuperior", XK_onesuperior}, {"masculine", XK_masculine}, {"guillemotright", XK_guillemotright}, {"onequarter", XK_onequarter}, {"onehalf", XK_onehalf}, {"threequarters", XK_threequarters}, {"questiondown", XK_questiondown}, {"Agrave", XK_Agrave}, {"Aacute", XK_Aacute}, {"Acircumflex", XK_Acircumflex}, {"Atilde", XK_Atilde}, {"Adiaeresis", XK_Adiaeresis}, {"Aring", XK_Aring}, {"AE", XK_AE}, {"Ccedilla", XK_Ccedilla}, {"Egrave", XK_Egrave}, {"Eacute", XK_Eacute}, {"Ecircumflex", XK_Ecircumflex}, {"Ediaeresis", XK_Ediaeresis}, {"Igrave", XK_Igrave}, {"Iacute", XK_Iacute}, {"Icircumflex", XK_Icircumflex}, {"Idiaeresis", XK_Idiaeresis}, {"ETH", XK_ETH}, {"Eth", XK_Eth}, {"Ntilde", XK_Ntilde}, {"Ograve", XK_Ograve}, {"Oacute", XK_Oacute}, {"Ocircumflex", XK_Ocircumflex}, {"Otilde", XK_Otilde}, {"Odiaeresis", XK_Odiaeresis}, {"multiply", XK_multiply}, {"Oslash", XK_Oslash}, {"Ooblique", XK_Ooblique}, {"Ugrave", XK_Ugrave}, {"Uacute", XK_Uacute}, {"Ucircumflex", XK_Ucircumflex}, {"Udiaeresis", XK_Udiaeresis}, {"Yacute", XK_Yacute}, {"THORN", XK_THORN}, {"Thorn", XK_Thorn}, {"ssharp", XK_ssharp}, {"agrave", XK_agrave}, {"aacute", XK_aacute}, {"acircumflex", XK_acircumflex}, {"atilde", XK_atilde}, {"adiaeresis", XK_adiaeresis}, {"aring", XK_aring}, {"ae", XK_ae}, {"ccedilla", XK_ccedilla}, {"egrave", XK_egrave}, {"eacute", XK_eacute}, {"ecircumflex", XK_ecircumflex}, {"ediaeresis", XK_ediaeresis}, {"igrave", XK_igrave}, {"iacute", XK_iacute}, {"icircumflex", XK_icircumflex}, {"idiaeresis", XK_idiaeresis}, {"eth", XK_eth}, {"ntilde", XK_ntilde}, {"ograve", XK_ograve}, {"oacute", XK_oacute}, {"ocircumflex", XK_ocircumflex}, {"otilde", XK_otilde}, {"odiaeresis", XK_odiaeresis}, {"division", XK_division}, {"oslash", XK_oslash}, {"ooblique", XK_ooblique}, {"ugrave", XK_ugrave}, {"uacute", XK_uacute}, {"ucircumflex", XK_ucircumflex}, {"udiaeresis", XK_udiaeresis}, {"yacute", XK_yacute}, {"thorn", XK_thorn}, {"ydiaeresis", XK_ydiaeresis}, #endif /* XK_LATIN1 */ #ifdef XK_LATIN2 {"Aogonek", XK_Aogonek}, {"breve", XK_breve}, {"Lstroke", XK_Lstroke}, {"Lcaron", XK_Lcaron}, {"Sacute", XK_Sacute}, {"Scaron", XK_Scaron}, {"Scedilla", XK_Scedilla}, {"Tcaron", XK_Tcaron}, {"Zacute", XK_Zacute}, {"Zcaron", XK_Zcaron}, {"Zabovedot", XK_Zabovedot}, {"aogonek", XK_aogonek}, {"ogonek", XK_ogonek}, {"lstroke", XK_lstroke}, {"lcaron", XK_lcaron}, {"sacute", XK_sacute}, {"caron", XK_caron}, {"scaron", XK_scaron}, {"scedilla", XK_scedilla}, {"tcaron", XK_tcaron}, {"zacute", XK_zacute}, {"doubleacute", XK_doubleacute}, {"zcaron", XK_zcaron}, {"zabovedot", XK_zabovedot}, {"Racute", XK_Racute}, {"Abreve", XK_Abreve}, {"Lacute", XK_Lacute}, {"Cacute", XK_Cacute}, {"Ccaron", XK_Ccaron}, {"Eogonek", XK_Eogonek}, {"Ecaron", XK_Ecaron}, {"Dcaron", XK_Dcaron}, {"Dstroke", XK_Dstroke}, {"Nacute", XK_Nacute}, {"Ncaron", XK_Ncaron}, {"Odoubleacute", XK_Odoubleacute}, {"Rcaron", XK_Rcaron}, {"Uring", XK_Uring}, {"Udoubleacute", XK_Udoubleacute}, {"Tcedilla", XK_Tcedilla}, {"racute", XK_racute}, {"abreve", XK_abreve}, {"lacute", XK_lacute}, {"cacute", XK_cacute}, {"ccaron", XK_ccaron}, {"eogonek", XK_eogonek}, {"ecaron", XK_ecaron}, {"dcaron", XK_dcaron}, {"dstroke", XK_dstroke}, {"nacute", XK_nacute}, {"ncaron", XK_ncaron}, {"odoubleacute", XK_odoubleacute}, {"udoubleacute", XK_udoubleacute}, {"rcaron", XK_rcaron}, {"uring", XK_uring}, {"tcedilla", XK_tcedilla}, {"abovedot", XK_abovedot}, #endif /* XK_LATIN2 */ #ifdef XK_LATIN3 {"Hstroke", XK_Hstroke}, {"Hcircumflex", XK_Hcircumflex}, {"Iabovedot", XK_Iabovedot}, {"Gbreve", XK_Gbreve}, {"Jcircumflex", XK_Jcircumflex}, {"hstroke", XK_hstroke}, {"hcircumflex", XK_hcircumflex}, {"idotless", XK_idotless}, {"gbreve", XK_gbreve}, {"jcircumflex", XK_jcircumflex}, {"Cabovedot", XK_Cabovedot}, {"Ccircumflex", XK_Ccircumflex}, {"Gabovedot", XK_Gabovedot}, {"Gcircumflex", XK_Gcircumflex}, {"Ubreve", XK_Ubreve}, {"Scircumflex", XK_Scircumflex}, {"cabovedot", XK_cabovedot}, {"ccircumflex", XK_ccircumflex}, {"gabovedot", XK_gabovedot}, {"gcircumflex", XK_gcircumflex}, {"ubreve", XK_ubreve}, {"scircumflex", XK_scircumflex}, #endif /* XK_LATIN3 */ #ifdef XK_LATIN4 {"kra", XK_kra}, {"kappa", XK_kappa}, {"Rcedilla", XK_Rcedilla}, {"Itilde", XK_Itilde}, {"Lcedilla", XK_Lcedilla}, {"Emacron", XK_Emacron}, {"Gcedilla", XK_Gcedilla}, {"Tslash", XK_Tslash}, {"rcedilla", XK_rcedilla}, {"itilde", XK_itilde}, {"lcedilla", XK_lcedilla}, {"emacron", XK_emacron}, {"gcedilla", XK_gcedilla}, {"tslash", XK_tslash}, {"ENG", XK_ENG}, {"eng", XK_eng}, {"Amacron", XK_Amacron}, {"Iogonek", XK_Iogonek}, {"Eabovedot", XK_Eabovedot}, {"Imacron", XK_Imacron}, {"Ncedilla", XK_Ncedilla}, {"Omacron", XK_Omacron}, {"Kcedilla", XK_Kcedilla}, {"Uogonek", XK_Uogonek}, {"Utilde", XK_Utilde}, {"Umacron", XK_Umacron}, {"amacron", XK_amacron}, {"iogonek", XK_iogonek}, {"eabovedot", XK_eabovedot}, {"imacron", XK_imacron}, {"ncedilla", XK_ncedilla}, {"omacron", XK_omacron}, {"kcedilla", XK_kcedilla}, {"uogonek", XK_uogonek}, {"utilde", XK_utilde}, {"umacron", XK_umacron}, #endif /* XK_LATIN4 */ #ifdef XK_LATIN8 {"Babovedot", XK_Babovedot}, {"babovedot", XK_babovedot}, {"Dabovedot", XK_Dabovedot}, {"Wgrave", XK_Wgrave}, {"Wacute", XK_Wacute}, {"dabovedot", XK_dabovedot}, {"Ygrave", XK_Ygrave}, {"Fabovedot", XK_Fabovedot}, {"fabovedot", XK_fabovedot}, {"Mabovedot", XK_Mabovedot}, {"mabovedot", XK_mabovedot}, {"Pabovedot", XK_Pabovedot}, {"wgrave", XK_wgrave}, {"pabovedot", XK_pabovedot}, {"wacute", XK_wacute}, {"Sabovedot", XK_Sabovedot}, {"ygrave", XK_ygrave}, {"Wdiaeresis", XK_Wdiaeresis}, {"wdiaeresis", XK_wdiaeresis}, {"sabovedot", XK_sabovedot}, {"Wcircumflex", XK_Wcircumflex}, {"Tabovedot", XK_Tabovedot}, {"Ycircumflex", XK_Ycircumflex}, {"wcircumflex", XK_wcircumflex}, {"tabovedot", XK_tabovedot}, {"ycircumflex", XK_ycircumflex}, #endif /* XK_LATIN8 */ #ifdef XK_LATIN9 {"OE", XK_OE}, {"oe", XK_oe}, {"Ydiaeresis", XK_Ydiaeresis}, #endif /* XK_LATIN9 */ #ifdef XK_KATAKANA {"overline", XK_overline}, {"kana_fullstop", XK_kana_fullstop}, {"kana_openingbracket", XK_kana_openingbracket}, {"kana_closingbracket", XK_kana_closingbracket}, {"kana_comma", XK_kana_comma}, {"kana_conjunctive", XK_kana_conjunctive}, {"kana_middledot", XK_kana_middledot}, {"kana_WO", XK_kana_WO}, {"kana_a", XK_kana_a}, {"kana_i", XK_kana_i}, {"kana_u", XK_kana_u}, {"kana_e", XK_kana_e}, {"kana_o", XK_kana_o}, {"kana_ya", XK_kana_ya}, {"kana_yu", XK_kana_yu}, {"kana_yo", XK_kana_yo}, {"kana_tsu", XK_kana_tsu}, {"kana_tu", XK_kana_tu}, {"prolongedsound", XK_prolongedsound}, {"kana_A", XK_kana_A}, {"kana_I", XK_kana_I}, {"kana_U", XK_kana_U}, {"kana_E", XK_kana_E}, {"kana_O", XK_kana_O}, {"kana_KA", XK_kana_KA}, {"kana_KI", XK_kana_KI}, {"kana_KU", XK_kana_KU}, {"kana_KE", XK_kana_KE}, {"kana_KO", XK_kana_KO}, {"kana_SA", XK_kana_SA}, {"kana_SHI", XK_kana_SHI}, {"kana_SU", XK_kana_SU}, {"kana_SE", XK_kana_SE}, {"kana_SO", XK_kana_SO}, {"kana_TA", XK_kana_TA}, {"kana_CHI", XK_kana_CHI}, {"kana_TI", XK_kana_TI}, {"kana_TSU", XK_kana_TSU}, {"kana_TU", XK_kana_TU}, {"kana_TE", XK_kana_TE}, {"kana_TO", XK_kana_TO}, {"kana_NA", XK_kana_NA}, {"kana_NI", XK_kana_NI}, {"kana_NU", XK_kana_NU}, {"kana_NE", XK_kana_NE}, {"kana_NO", XK_kana_NO}, {"kana_HA", XK_kana_HA}, {"kana_HI", XK_kana_HI}, {"kana_FU", XK_kana_FU}, {"kana_HU", XK_kana_HU}, {"kana_HE", XK_kana_HE}, {"kana_HO", XK_kana_HO}, {"kana_MA", XK_kana_MA}, {"kana_MI", XK_kana_MI}, {"kana_MU", XK_kana_MU}, {"kana_ME", XK_kana_ME}, {"kana_MO", XK_kana_MO}, {"kana_YA", XK_kana_YA}, {"kana_YU", XK_kana_YU}, {"kana_YO", XK_kana_YO}, {"kana_RA", XK_kana_RA}, {"kana_RI", XK_kana_RI}, {"kana_RU", XK_kana_RU}, {"kana_RE", XK_kana_RE}, {"kana_RO", XK_kana_RO}, {"kana_WA", XK_kana_WA}, {"kana_N", XK_kana_N}, {"voicedsound", XK_voicedsound}, {"semivoicedsound", XK_semivoicedsound}, {"kana_switch", XK_kana_switch}, #endif /* XK_KATAKANA */ #ifdef XK_ARABIC {"Farsi_0", XK_Farsi_0}, {"Farsi_1", XK_Farsi_1}, {"Farsi_2", XK_Farsi_2}, {"Farsi_3", XK_Farsi_3}, {"Farsi_4", XK_Farsi_4}, {"Farsi_5", XK_Farsi_5}, {"Farsi_6", XK_Farsi_6}, {"Farsi_7", XK_Farsi_7}, {"Farsi_8", XK_Farsi_8}, {"Farsi_9", XK_Farsi_9}, {"Arabic_percent", XK_Arabic_percent}, {"Arabic_superscript_alef", XK_Arabic_superscript_alef}, {"Arabic_tteh", XK_Arabic_tteh}, {"Arabic_peh", XK_Arabic_peh}, {"Arabic_tcheh", XK_Arabic_tcheh}, {"Arabic_ddal", XK_Arabic_ddal}, {"Arabic_rreh", XK_Arabic_rreh}, {"Arabic_comma", XK_Arabic_comma}, {"Arabic_fullstop", XK_Arabic_fullstop}, {"Arabic_0", XK_Arabic_0}, {"Arabic_1", XK_Arabic_1}, {"Arabic_2", XK_Arabic_2}, {"Arabic_3", XK_Arabic_3}, {"Arabic_4", XK_Arabic_4}, {"Arabic_5", XK_Arabic_5}, {"Arabic_6", XK_Arabic_6}, {"Arabic_7", XK_Arabic_7}, {"Arabic_8", XK_Arabic_8}, {"Arabic_9", XK_Arabic_9}, {"Arabic_semicolon", XK_Arabic_semicolon}, {"Arabic_question_mark", XK_Arabic_question_mark}, {"Arabic_hamza", XK_Arabic_hamza}, {"Arabic_maddaonalef", XK_Arabic_maddaonalef}, {"Arabic_hamzaonalef", XK_Arabic_hamzaonalef}, {"Arabic_hamzaonwaw", XK_Arabic_hamzaonwaw}, {"Arabic_hamzaunderalef", XK_Arabic_hamzaunderalef}, {"Arabic_hamzaonyeh", XK_Arabic_hamzaonyeh}, {"Arabic_alef", XK_Arabic_alef}, {"Arabic_beh", XK_Arabic_beh}, {"Arabic_tehmarbuta", XK_Arabic_tehmarbuta}, {"Arabic_teh", XK_Arabic_teh}, {"Arabic_theh", XK_Arabic_theh}, {"Arabic_jeem", XK_Arabic_jeem}, {"Arabic_hah", XK_Arabic_hah}, {"Arabic_khah", XK_Arabic_khah}, {"Arabic_dal", XK_Arabic_dal}, {"Arabic_thal", XK_Arabic_thal}, {"Arabic_ra", XK_Arabic_ra}, {"Arabic_zain", XK_Arabic_zain}, {"Arabic_seen", XK_Arabic_seen}, {"Arabic_sheen", XK_Arabic_sheen}, {"Arabic_sad", XK_Arabic_sad}, {"Arabic_dad", XK_Arabic_dad}, {"Arabic_tah", XK_Arabic_tah}, {"Arabic_zah", XK_Arabic_zah}, {"Arabic_ain", XK_Arabic_ain}, {"Arabic_ghain", XK_Arabic_ghain}, {"Arabic_tatweel", XK_Arabic_tatweel}, {"Arabic_feh", XK_Arabic_feh}, {"Arabic_qaf", XK_Arabic_qaf}, {"Arabic_kaf", XK_Arabic_kaf}, {"Arabic_lam", XK_Arabic_lam}, {"Arabic_meem", XK_Arabic_meem}, {"Arabic_noon", XK_Arabic_noon}, {"Arabic_ha", XK_Arabic_ha}, {"Arabic_heh", XK_Arabic_heh}, {"Arabic_waw", XK_Arabic_waw}, {"Arabic_alefmaksura", XK_Arabic_alefmaksura}, {"Arabic_yeh", XK_Arabic_yeh}, {"Arabic_fathatan", XK_Arabic_fathatan}, {"Arabic_dammatan", XK_Arabic_dammatan}, {"Arabic_kasratan", XK_Arabic_kasratan}, {"Arabic_fatha", XK_Arabic_fatha}, {"Arabic_damma", XK_Arabic_damma}, {"Arabic_kasra", XK_Arabic_kasra}, {"Arabic_shadda", XK_Arabic_shadda}, {"Arabic_sukun", XK_Arabic_sukun}, {"Arabic_madda_above", XK_Arabic_madda_above}, {"Arabic_hamza_above", XK_Arabic_hamza_above}, {"Arabic_hamza_below", XK_Arabic_hamza_below}, {"Arabic_jeh", XK_Arabic_jeh}, {"Arabic_veh", XK_Arabic_veh}, {"Arabic_keheh", XK_Arabic_keheh}, {"Arabic_gaf", XK_Arabic_gaf}, {"Arabic_noon_ghunna", XK_Arabic_noon_ghunna}, {"Arabic_heh_doachashmee", XK_Arabic_heh_doachashmee}, {"Farsi_yeh", XK_Farsi_yeh}, {"Arabic_farsi_yeh", XK_Arabic_farsi_yeh}, {"Arabic_yeh_baree", XK_Arabic_yeh_baree}, {"Arabic_heh_goal", XK_Arabic_heh_goal}, {"Arabic_switch", XK_Arabic_switch}, #endif /* XK_ARABIC */ #ifdef XK_CYRILLIC {"Cyrillic_GHE_bar", XK_Cyrillic_GHE_bar}, {"Cyrillic_ghe_bar", XK_Cyrillic_ghe_bar}, {"Cyrillic_ZHE_descender", XK_Cyrillic_ZHE_descender}, {"Cyrillic_zhe_descender", XK_Cyrillic_zhe_descender}, {"Cyrillic_KA_descender", XK_Cyrillic_KA_descender}, {"Cyrillic_ka_descender", XK_Cyrillic_ka_descender}, {"Cyrillic_KA_vertstroke", XK_Cyrillic_KA_vertstroke}, {"Cyrillic_ka_vertstroke", XK_Cyrillic_ka_vertstroke}, {"Cyrillic_EN_descender", XK_Cyrillic_EN_descender}, {"Cyrillic_en_descender", XK_Cyrillic_en_descender}, {"Cyrillic_U_straight", XK_Cyrillic_U_straight}, {"Cyrillic_u_straight", XK_Cyrillic_u_straight}, {"Cyrillic_U_straight_bar", XK_Cyrillic_U_straight_bar}, {"Cyrillic_u_straight_bar", XK_Cyrillic_u_straight_bar}, {"Cyrillic_HA_descender", XK_Cyrillic_HA_descender}, {"Cyrillic_ha_descender", XK_Cyrillic_ha_descender}, {"Cyrillic_CHE_descender", XK_Cyrillic_CHE_descender}, {"Cyrillic_che_descender", XK_Cyrillic_che_descender}, {"Cyrillic_CHE_vertstroke", XK_Cyrillic_CHE_vertstroke}, {"Cyrillic_che_vertstroke", XK_Cyrillic_che_vertstroke}, {"Cyrillic_SHHA", XK_Cyrillic_SHHA}, {"Cyrillic_shha", XK_Cyrillic_shha}, {"Cyrillic_SCHWA", XK_Cyrillic_SCHWA}, {"Cyrillic_schwa", XK_Cyrillic_schwa}, {"Cyrillic_I_macron", XK_Cyrillic_I_macron}, {"Cyrillic_i_macron", XK_Cyrillic_i_macron}, {"Cyrillic_O_bar", XK_Cyrillic_O_bar}, {"Cyrillic_o_bar", XK_Cyrillic_o_bar}, {"Cyrillic_U_macron", XK_Cyrillic_U_macron}, {"Cyrillic_u_macron", XK_Cyrillic_u_macron}, {"Serbian_dje", XK_Serbian_dje}, {"Macedonia_gje", XK_Macedonia_gje}, {"Cyrillic_io", XK_Cyrillic_io}, {"Ukrainian_ie", XK_Ukrainian_ie}, {"Ukranian_je", XK_Ukranian_je}, {"Macedonia_dse", XK_Macedonia_dse}, {"Ukrainian_i", XK_Ukrainian_i}, {"Ukranian_i", XK_Ukranian_i}, {"Ukrainian_yi", XK_Ukrainian_yi}, {"Ukranian_yi", XK_Ukranian_yi}, {"Cyrillic_je", XK_Cyrillic_je}, {"Serbian_je", XK_Serbian_je}, {"Cyrillic_lje", XK_Cyrillic_lje}, {"Serbian_lje", XK_Serbian_lje}, {"Cyrillic_nje", XK_Cyrillic_nje}, {"Serbian_nje", XK_Serbian_nje}, {"Serbian_tshe", XK_Serbian_tshe}, {"Macedonia_kje", XK_Macedonia_kje}, {"Ukrainian_ghe_with_upturn", XK_Ukrainian_ghe_with_upturn}, {"Byelorussian_shortu", XK_Byelorussian_shortu}, {"Cyrillic_dzhe", XK_Cyrillic_dzhe}, {"Serbian_dze", XK_Serbian_dze}, {"numerosign", XK_numerosign}, {"Serbian_DJE", XK_Serbian_DJE}, {"Macedonia_GJE", XK_Macedonia_GJE}, {"Cyrillic_IO", XK_Cyrillic_IO}, {"Ukrainian_IE", XK_Ukrainian_IE}, {"Ukranian_JE", XK_Ukranian_JE}, {"Macedonia_DSE", XK_Macedonia_DSE}, {"Ukrainian_I", XK_Ukrainian_I}, {"Ukranian_I", XK_Ukranian_I}, {"Ukrainian_YI", XK_Ukrainian_YI}, {"Ukranian_YI", XK_Ukranian_YI}, {"Cyrillic_JE", XK_Cyrillic_JE}, {"Serbian_JE", XK_Serbian_JE}, {"Cyrillic_LJE", XK_Cyrillic_LJE}, {"Serbian_LJE", XK_Serbian_LJE}, {"Cyrillic_NJE", XK_Cyrillic_NJE}, {"Serbian_NJE", XK_Serbian_NJE}, {"Serbian_TSHE", XK_Serbian_TSHE}, {"Macedonia_KJE", XK_Macedonia_KJE}, {"Ukrainian_GHE_WITH_UPTURN", XK_Ukrainian_GHE_WITH_UPTURN}, {"Byelorussian_SHORTU", XK_Byelorussian_SHORTU}, {"Cyrillic_DZHE", XK_Cyrillic_DZHE}, {"Serbian_DZE", XK_Serbian_DZE}, {"Cyrillic_yu", XK_Cyrillic_yu}, {"Cyrillic_a", XK_Cyrillic_a}, {"Cyrillic_be", XK_Cyrillic_be}, {"Cyrillic_tse", XK_Cyrillic_tse}, {"Cyrillic_de", XK_Cyrillic_de}, {"Cyrillic_ie", XK_Cyrillic_ie}, {"Cyrillic_ef", XK_Cyrillic_ef}, {"Cyrillic_ghe", XK_Cyrillic_ghe}, {"Cyrillic_ha", XK_Cyrillic_ha}, {"Cyrillic_i", XK_Cyrillic_i}, {"Cyrillic_shorti", XK_Cyrillic_shorti}, {"Cyrillic_ka", XK_Cyrillic_ka}, {"Cyrillic_el", XK_Cyrillic_el}, {"Cyrillic_em", XK_Cyrillic_em}, {"Cyrillic_en", XK_Cyrillic_en}, {"Cyrillic_o", XK_Cyrillic_o}, {"Cyrillic_pe", XK_Cyrillic_pe}, {"Cyrillic_ya", XK_Cyrillic_ya}, {"Cyrillic_er", XK_Cyrillic_er}, {"Cyrillic_es", XK_Cyrillic_es}, {"Cyrillic_te", XK_Cyrillic_te}, {"Cyrillic_u", XK_Cyrillic_u}, {"Cyrillic_zhe", XK_Cyrillic_zhe}, {"Cyrillic_ve", XK_Cyrillic_ve}, {"Cyrillic_softsign", XK_Cyrillic_softsign}, {"Cyrillic_yeru", XK_Cyrillic_yeru}, {"Cyrillic_ze", XK_Cyrillic_ze}, {"Cyrillic_sha", XK_Cyrillic_sha}, {"Cyrillic_e", XK_Cyrillic_e}, {"Cyrillic_shcha", XK_Cyrillic_shcha}, {"Cyrillic_che", XK_Cyrillic_che}, {"Cyrillic_hardsign", XK_Cyrillic_hardsign}, {"Cyrillic_YU", XK_Cyrillic_YU}, {"Cyrillic_A", XK_Cyrillic_A}, {"Cyrillic_BE", XK_Cyrillic_BE}, {"Cyrillic_TSE", XK_Cyrillic_TSE}, {"Cyrillic_DE", XK_Cyrillic_DE}, {"Cyrillic_IE", XK_Cyrillic_IE}, {"Cyrillic_EF", XK_Cyrillic_EF}, {"Cyrillic_GHE", XK_Cyrillic_GHE}, {"Cyrillic_HA", XK_Cyrillic_HA}, {"Cyrillic_I", XK_Cyrillic_I}, {"Cyrillic_SHORTI", XK_Cyrillic_SHORTI}, {"Cyrillic_KA", XK_Cyrillic_KA}, {"Cyrillic_EL", XK_Cyrillic_EL}, {"Cyrillic_EM", XK_Cyrillic_EM}, {"Cyrillic_EN", XK_Cyrillic_EN}, {"Cyrillic_O", XK_Cyrillic_O}, {"Cyrillic_PE", XK_Cyrillic_PE}, {"Cyrillic_YA", XK_Cyrillic_YA}, {"Cyrillic_ER", XK_Cyrillic_ER}, {"Cyrillic_ES", XK_Cyrillic_ES}, {"Cyrillic_TE", XK_Cyrillic_TE}, {"Cyrillic_U", XK_Cyrillic_U}, {"Cyrillic_ZHE", XK_Cyrillic_ZHE}, {"Cyrillic_VE", XK_Cyrillic_VE}, {"Cyrillic_SOFTSIGN", XK_Cyrillic_SOFTSIGN}, {"Cyrillic_YERU", XK_Cyrillic_YERU}, {"Cyrillic_ZE", XK_Cyrillic_ZE}, {"Cyrillic_SHA", XK_Cyrillic_SHA}, {"Cyrillic_E", XK_Cyrillic_E}, {"Cyrillic_SHCHA", XK_Cyrillic_SHCHA}, {"Cyrillic_CHE", XK_Cyrillic_CHE}, {"Cyrillic_HARDSIGN", XK_Cyrillic_HARDSIGN}, #endif /* XK_CYRILLIC */ #ifdef XK_GREEK {"Greek_ALPHAaccent", XK_Greek_ALPHAaccent}, {"Greek_EPSILONaccent", XK_Greek_EPSILONaccent}, {"Greek_ETAaccent", XK_Greek_ETAaccent}, {"Greek_IOTAaccent", XK_Greek_IOTAaccent}, {"Greek_IOTAdieresis", XK_Greek_IOTAdieresis}, {"Greek_IOTAdiaeresis", XK_Greek_IOTAdiaeresis}, {"Greek_OMICRONaccent", XK_Greek_OMICRONaccent}, {"Greek_UPSILONaccent", XK_Greek_UPSILONaccent}, {"Greek_UPSILONdieresis", XK_Greek_UPSILONdieresis}, {"Greek_OMEGAaccent", XK_Greek_OMEGAaccent}, {"Greek_accentdieresis", XK_Greek_accentdieresis}, {"Greek_horizbar", XK_Greek_horizbar}, {"Greek_alphaaccent", XK_Greek_alphaaccent}, {"Greek_epsilonaccent", XK_Greek_epsilonaccent}, {"Greek_etaaccent", XK_Greek_etaaccent}, {"Greek_iotaaccent", XK_Greek_iotaaccent}, {"Greek_iotadieresis", XK_Greek_iotadieresis}, {"Greek_iotaaccentdieresis", XK_Greek_iotaaccentdieresis}, {"Greek_omicronaccent", XK_Greek_omicronaccent}, {"Greek_upsilonaccent", XK_Greek_upsilonaccent}, {"Greek_upsilondieresis", XK_Greek_upsilondieresis}, {"Greek_upsilonaccentdieresis", XK_Greek_upsilonaccentdieresis}, {"Greek_omegaaccent", XK_Greek_omegaaccent}, {"Greek_ALPHA", XK_Greek_ALPHA}, {"Greek_BETA", XK_Greek_BETA}, {"Greek_GAMMA", XK_Greek_GAMMA}, {"Greek_DELTA", XK_Greek_DELTA}, {"Greek_EPSILON", XK_Greek_EPSILON}, {"Greek_ZETA", XK_Greek_ZETA}, {"Greek_ETA", XK_Greek_ETA}, {"Greek_THETA", XK_Greek_THETA}, {"Greek_IOTA", XK_Greek_IOTA}, {"Greek_KAPPA", XK_Greek_KAPPA}, {"Greek_LAMDA", XK_Greek_LAMDA}, {"Greek_LAMBDA", XK_Greek_LAMBDA}, {"Greek_MU", XK_Greek_MU}, {"Greek_NU", XK_Greek_NU}, {"Greek_XI", XK_Greek_XI}, {"Greek_OMICRON", XK_Greek_OMICRON}, {"Greek_PI", XK_Greek_PI}, {"Greek_RHO", XK_Greek_RHO}, {"Greek_SIGMA", XK_Greek_SIGMA}, {"Greek_TAU", XK_Greek_TAU}, {"Greek_UPSILON", XK_Greek_UPSILON}, {"Greek_PHI", XK_Greek_PHI}, {"Greek_CHI", XK_Greek_CHI}, {"Greek_PSI", XK_Greek_PSI}, {"Greek_OMEGA", XK_Greek_OMEGA}, {"Greek_alpha", XK_Greek_alpha}, {"Greek_beta", XK_Greek_beta}, {"Greek_gamma", XK_Greek_gamma}, {"Greek_delta", XK_Greek_delta}, {"Greek_epsilon", XK_Greek_epsilon}, {"Greek_zeta", XK_Greek_zeta}, {"Greek_eta", XK_Greek_eta}, {"Greek_theta", XK_Greek_theta}, {"Greek_iota", XK_Greek_iota}, {"Greek_kappa", XK_Greek_kappa}, {"Greek_lamda", XK_Greek_lamda}, {"Greek_lambda", XK_Greek_lambda}, {"Greek_mu", XK_Greek_mu}, {"Greek_nu", XK_Greek_nu}, {"Greek_xi", XK_Greek_xi}, {"Greek_omicron", XK_Greek_omicron}, {"Greek_pi", XK_Greek_pi}, {"Greek_rho", XK_Greek_rho}, {"Greek_sigma", XK_Greek_sigma}, {"Greek_finalsmallsigma", XK_Greek_finalsmallsigma}, {"Greek_tau", XK_Greek_tau}, {"Greek_upsilon", XK_Greek_upsilon}, {"Greek_phi", XK_Greek_phi}, {"Greek_chi", XK_Greek_chi}, {"Greek_psi", XK_Greek_psi}, {"Greek_omega", XK_Greek_omega}, {"Greek_switch", XK_Greek_switch}, #endif /* XK_GREEK */ #ifdef XK_TECHNICAL {"leftradical", XK_leftradical}, {"topleftradical", XK_topleftradical}, {"horizconnector", XK_horizconnector}, {"topintegral", XK_topintegral}, {"botintegral", XK_botintegral}, {"vertconnector", XK_vertconnector}, {"topleftsqbracket", XK_topleftsqbracket}, {"botleftsqbracket", XK_botleftsqbracket}, {"toprightsqbracket", XK_toprightsqbracket}, {"botrightsqbracket", XK_botrightsqbracket}, {"topleftparens", XK_topleftparens}, {"botleftparens", XK_botleftparens}, {"toprightparens", XK_toprightparens}, {"botrightparens", XK_botrightparens}, {"leftmiddlecurlybrace", XK_leftmiddlecurlybrace}, {"rightmiddlecurlybrace", XK_rightmiddlecurlybrace}, {"topleftsummation", XK_topleftsummation}, {"botleftsummation", XK_botleftsummation}, {"topvertsummationconnector", XK_topvertsummationconnector}, {"botvertsummationconnector", XK_botvertsummationconnector}, {"toprightsummation", XK_toprightsummation}, {"botrightsummation", XK_botrightsummation}, {"rightmiddlesummation", XK_rightmiddlesummation}, {"lessthanequal", XK_lessthanequal}, {"notequal", XK_notequal}, {"greaterthanequal", XK_greaterthanequal}, {"integral", XK_integral}, {"therefore", XK_therefore}, {"variation", XK_variation}, {"infinity", XK_infinity}, {"nabla", XK_nabla}, {"approximate", XK_approximate}, {"similarequal", XK_similarequal}, {"ifonlyif", XK_ifonlyif}, {"implies", XK_implies}, {"identical", XK_identical}, {"radical", XK_radical}, {"includedin", XK_includedin}, {"includes", XK_includes}, {"intersection", XK_intersection}, {"union", XK_union}, {"logicaland", XK_logicaland}, {"logicalor", XK_logicalor}, {"partialderivative", XK_partialderivative}, {"function", XK_function}, {"leftarrow", XK_leftarrow}, {"uparrow", XK_uparrow}, {"rightarrow", XK_rightarrow}, {"downarrow", XK_downarrow}, #endif /* XK_TECHNICAL */ #ifdef XK_SPECIAL {"blank", XK_blank}, {"soliddiamond", XK_soliddiamond}, {"checkerboard", XK_checkerboard}, {"ht", XK_ht}, {"ff", XK_ff}, {"cr", XK_cr}, {"lf", XK_lf}, {"nl", XK_nl}, {"vt", XK_vt}, {"lowrightcorner", XK_lowrightcorner}, {"uprightcorner", XK_uprightcorner}, {"upleftcorner", XK_upleftcorner}, {"lowleftcorner", XK_lowleftcorner}, {"crossinglines", XK_crossinglines}, {"horizlinescan1", XK_horizlinescan1}, {"horizlinescan3", XK_horizlinescan3}, {"horizlinescan5", XK_horizlinescan5}, {"horizlinescan7", XK_horizlinescan7}, {"horizlinescan9", XK_horizlinescan9}, {"leftt", XK_leftt}, {"rightt", XK_rightt}, {"bott", XK_bott}, {"topt", XK_topt}, {"vertbar", XK_vertbar}, #endif /* XK_SPECIAL */ #ifdef XK_PUBLISHING {"emspace", XK_emspace}, {"enspace", XK_enspace}, {"em3space", XK_em3space}, {"em4space", XK_em4space}, {"digitspace", XK_digitspace}, {"punctspace", XK_punctspace}, {"thinspace", XK_thinspace}, {"hairspace", XK_hairspace}, {"emdash", XK_emdash}, {"endash", XK_endash}, {"signifblank", XK_signifblank}, {"ellipsis", XK_ellipsis}, {"doubbaselinedot", XK_doubbaselinedot}, {"onethird", XK_onethird}, {"twothirds", XK_twothirds}, {"onefifth", XK_onefifth}, {"twofifths", XK_twofifths}, {"threefifths", XK_threefifths}, {"fourfifths", XK_fourfifths}, {"onesixth", XK_onesixth}, {"fivesixths", XK_fivesixths}, {"careof", XK_careof}, {"figdash", XK_figdash}, {"leftanglebracket", XK_leftanglebracket}, {"decimalpoint", XK_decimalpoint}, {"rightanglebracket", XK_rightanglebracket}, {"marker", XK_marker}, {"oneeighth", XK_oneeighth}, {"threeeighths", XK_threeeighths}, {"fiveeighths", XK_fiveeighths}, {"seveneighths", XK_seveneighths}, {"trademark", XK_trademark}, {"signaturemark", XK_signaturemark}, {"trademarkincircle", XK_trademarkincircle}, {"leftopentriangle", XK_leftopentriangle}, {"rightopentriangle", XK_rightopentriangle}, {"emopencircle", XK_emopencircle}, {"emopenrectangle", XK_emopenrectangle}, {"leftsinglequotemark", XK_leftsinglequotemark}, {"rightsinglequotemark", XK_rightsinglequotemark}, {"leftdoublequotemark", XK_leftdoublequotemark}, {"rightdoublequotemark", XK_rightdoublequotemark}, {"prescription", XK_prescription}, {"minutes", XK_minutes}, {"seconds", XK_seconds}, {"latincross", XK_latincross}, {"hexagram", XK_hexagram}, {"filledrectbullet", XK_filledrectbullet}, {"filledlefttribullet", XK_filledlefttribullet}, {"filledrighttribullet", XK_filledrighttribullet}, {"emfilledcircle", XK_emfilledcircle}, {"emfilledrect", XK_emfilledrect}, {"enopencircbullet", XK_enopencircbullet}, {"enopensquarebullet", XK_enopensquarebullet}, {"openrectbullet", XK_openrectbullet}, {"opentribulletup", XK_opentribulletup}, {"opentribulletdown", XK_opentribulletdown}, {"openstar", XK_openstar}, {"enfilledcircbullet", XK_enfilledcircbullet}, {"enfilledsqbullet", XK_enfilledsqbullet}, {"filledtribulletup", XK_filledtribulletup}, {"filledtribulletdown", XK_filledtribulletdown}, {"leftpointer", XK_leftpointer}, {"rightpointer", XK_rightpointer}, {"club", XK_club}, {"diamond", XK_diamond}, {"heart", XK_heart}, {"maltesecross", XK_maltesecross}, {"dagger", XK_dagger}, {"doubledagger", XK_doubledagger}, {"checkmark", XK_checkmark}, {"ballotcross", XK_ballotcross}, {"musicalsharp", XK_musicalsharp}, {"musicalflat", XK_musicalflat}, {"malesymbol", XK_malesymbol}, {"femalesymbol", XK_femalesymbol}, {"telephone", XK_telephone}, {"telephonerecorder", XK_telephonerecorder}, {"phonographcopyright", XK_phonographcopyright}, {"caret", XK_caret}, {"singlelowquotemark", XK_singlelowquotemark}, {"doublelowquotemark", XK_doublelowquotemark}, {"cursor", XK_cursor}, #endif /* XK_PUBLISHING */ #ifdef XK_APL {"leftcaret", XK_leftcaret}, {"rightcaret", XK_rightcaret}, {"downcaret", XK_downcaret}, {"upcaret", XK_upcaret}, {"overbar", XK_overbar}, {"downtack", XK_downtack}, {"upshoe", XK_upshoe}, {"downstile", XK_downstile}, {"underbar", XK_underbar}, {"jot", XK_jot}, {"quad", XK_quad}, {"uptack", XK_uptack}, {"circle", XK_circle}, {"upstile", XK_upstile}, {"downshoe", XK_downshoe}, {"rightshoe", XK_rightshoe}, {"leftshoe", XK_leftshoe}, {"lefttack", XK_lefttack}, {"righttack", XK_righttack}, #endif /* XK_APL */ #ifdef XK_HEBREW {"hebrew_doublelowline", XK_hebrew_doublelowline}, {"hebrew_aleph", XK_hebrew_aleph}, {"hebrew_bet", XK_hebrew_bet}, {"hebrew_beth", XK_hebrew_beth}, {"hebrew_gimel", XK_hebrew_gimel}, {"hebrew_gimmel", XK_hebrew_gimmel}, {"hebrew_dalet", XK_hebrew_dalet}, {"hebrew_daleth", XK_hebrew_daleth}, {"hebrew_he", XK_hebrew_he}, {"hebrew_waw", XK_hebrew_waw}, {"hebrew_zain", XK_hebrew_zain}, {"hebrew_zayin", XK_hebrew_zayin}, {"hebrew_chet", XK_hebrew_chet}, {"hebrew_het", XK_hebrew_het}, {"hebrew_tet", XK_hebrew_tet}, {"hebrew_teth", XK_hebrew_teth}, {"hebrew_yod", XK_hebrew_yod}, {"hebrew_finalkaph", XK_hebrew_finalkaph}, {"hebrew_kaph", XK_hebrew_kaph}, {"hebrew_lamed", XK_hebrew_lamed}, {"hebrew_finalmem", XK_hebrew_finalmem}, {"hebrew_mem", XK_hebrew_mem}, {"hebrew_finalnun", XK_hebrew_finalnun}, {"hebrew_nun", XK_hebrew_nun}, {"hebrew_samech", XK_hebrew_samech}, {"hebrew_samekh", XK_hebrew_samekh}, {"hebrew_ayin", XK_hebrew_ayin}, {"hebrew_finalpe", XK_hebrew_finalpe}, {"hebrew_pe", XK_hebrew_pe}, {"hebrew_finalzade", XK_hebrew_finalzade}, {"hebrew_finalzadi", XK_hebrew_finalzadi}, {"hebrew_zade", XK_hebrew_zade}, {"hebrew_zadi", XK_hebrew_zadi}, {"hebrew_qoph", XK_hebrew_qoph}, {"hebrew_kuf", XK_hebrew_kuf}, {"hebrew_resh", XK_hebrew_resh}, {"hebrew_shin", XK_hebrew_shin}, {"hebrew_taw", XK_hebrew_taw}, {"hebrew_taf", XK_hebrew_taf}, {"Hebrew_switch", XK_Hebrew_switch}, #endif /* XK_HEBREW */ #ifdef XK_THAI {"Thai_kokai", XK_Thai_kokai}, {"Thai_khokhai", XK_Thai_khokhai}, {"Thai_khokhuat", XK_Thai_khokhuat}, {"Thai_khokhwai", XK_Thai_khokhwai}, {"Thai_khokhon", XK_Thai_khokhon}, {"Thai_khorakhang", XK_Thai_khorakhang}, {"Thai_ngongu", XK_Thai_ngongu}, {"Thai_chochan", XK_Thai_chochan}, {"Thai_choching", XK_Thai_choching}, {"Thai_chochang", XK_Thai_chochang}, {"Thai_soso", XK_Thai_soso}, {"Thai_chochoe", XK_Thai_chochoe}, {"Thai_yoying", XK_Thai_yoying}, {"Thai_dochada", XK_Thai_dochada}, {"Thai_topatak", XK_Thai_topatak}, {"Thai_thothan", XK_Thai_thothan}, {"Thai_thonangmontho", XK_Thai_thonangmontho}, {"Thai_thophuthao", XK_Thai_thophuthao}, {"Thai_nonen", XK_Thai_nonen}, {"Thai_dodek", XK_Thai_dodek}, {"Thai_totao", XK_Thai_totao}, {"Thai_thothung", XK_Thai_thothung}, {"Thai_thothahan", XK_Thai_thothahan}, {"Thai_thothong", XK_Thai_thothong}, {"Thai_nonu", XK_Thai_nonu}, {"Thai_bobaimai", XK_Thai_bobaimai}, {"Thai_popla", XK_Thai_popla}, {"Thai_phophung", XK_Thai_phophung}, {"Thai_fofa", XK_Thai_fofa}, {"Thai_phophan", XK_Thai_phophan}, {"Thai_fofan", XK_Thai_fofan}, {"Thai_phosamphao", XK_Thai_phosamphao}, {"Thai_moma", XK_Thai_moma}, {"Thai_yoyak", XK_Thai_yoyak}, {"Thai_rorua", XK_Thai_rorua}, {"Thai_ru", XK_Thai_ru}, {"Thai_loling", XK_Thai_loling}, {"Thai_lu", XK_Thai_lu}, {"Thai_wowaen", XK_Thai_wowaen}, {"Thai_sosala", XK_Thai_sosala}, {"Thai_sorusi", XK_Thai_sorusi}, {"Thai_sosua", XK_Thai_sosua}, {"Thai_hohip", XK_Thai_hohip}, {"Thai_lochula", XK_Thai_lochula}, {"Thai_oang", XK_Thai_oang}, {"Thai_honokhuk", XK_Thai_honokhuk}, {"Thai_paiyannoi", XK_Thai_paiyannoi}, {"Thai_saraa", XK_Thai_saraa}, {"Thai_maihanakat", XK_Thai_maihanakat}, {"Thai_saraaa", XK_Thai_saraaa}, {"Thai_saraam", XK_Thai_saraam}, {"Thai_sarai", XK_Thai_sarai}, {"Thai_saraii", XK_Thai_saraii}, {"Thai_saraue", XK_Thai_saraue}, {"Thai_sarauee", XK_Thai_sarauee}, {"Thai_sarau", XK_Thai_sarau}, {"Thai_sarauu", XK_Thai_sarauu}, {"Thai_phinthu", XK_Thai_phinthu}, {"Thai_maihanakat_maitho", XK_Thai_maihanakat_maitho}, {"Thai_baht", XK_Thai_baht}, {"Thai_sarae", XK_Thai_sarae}, {"Thai_saraae", XK_Thai_saraae}, {"Thai_sarao", XK_Thai_sarao}, {"Thai_saraaimaimuan", XK_Thai_saraaimaimuan}, {"Thai_saraaimaimalai", XK_Thai_saraaimaimalai}, {"Thai_lakkhangyao", XK_Thai_lakkhangyao}, {"Thai_maiyamok", XK_Thai_maiyamok}, {"Thai_maitaikhu", XK_Thai_maitaikhu}, {"Thai_maiek", XK_Thai_maiek}, {"Thai_maitho", XK_Thai_maitho}, {"Thai_maitri", XK_Thai_maitri}, {"Thai_maichattawa", XK_Thai_maichattawa}, {"Thai_thanthakhat", XK_Thai_thanthakhat}, {"Thai_nikhahit", XK_Thai_nikhahit}, {"Thai_leksun", XK_Thai_leksun}, {"Thai_leknung", XK_Thai_leknung}, {"Thai_leksong", XK_Thai_leksong}, {"Thai_leksam", XK_Thai_leksam}, {"Thai_leksi", XK_Thai_leksi}, {"Thai_lekha", XK_Thai_lekha}, {"Thai_lekhok", XK_Thai_lekhok}, {"Thai_lekchet", XK_Thai_lekchet}, {"Thai_lekpaet", XK_Thai_lekpaet}, {"Thai_lekkao", XK_Thai_lekkao}, #endif /* XK_THAI */ #ifdef XK_KOREAN {"Hangul", XK_Hangul}, {"Hangul_Start", XK_Hangul_Start}, {"Hangul_End", XK_Hangul_End}, {"Hangul_Hanja", XK_Hangul_Hanja}, {"Hangul_Jamo", XK_Hangul_Jamo}, {"Hangul_Romaja", XK_Hangul_Romaja}, {"Hangul_Codeinput", XK_Hangul_Codeinput}, {"Hangul_Jeonja", XK_Hangul_Jeonja}, {"Hangul_Banja", XK_Hangul_Banja}, {"Hangul_PreHanja", XK_Hangul_PreHanja}, {"Hangul_PostHanja", XK_Hangul_PostHanja}, {"Hangul_SingleCandidate", XK_Hangul_SingleCandidate}, {"Hangul_MultipleCandidate", XK_Hangul_MultipleCandidate}, {"Hangul_PreviousCandidate", XK_Hangul_PreviousCandidate}, {"Hangul_Special", XK_Hangul_Special}, {"Hangul_switch", XK_Hangul_switch}, {"Hangul_Kiyeog", XK_Hangul_Kiyeog}, {"Hangul_SsangKiyeog", XK_Hangul_SsangKiyeog}, {"Hangul_KiyeogSios", XK_Hangul_KiyeogSios}, {"Hangul_Nieun", XK_Hangul_Nieun}, {"Hangul_NieunJieuj", XK_Hangul_NieunJieuj}, {"Hangul_NieunHieuh", XK_Hangul_NieunHieuh}, {"Hangul_Dikeud", XK_Hangul_Dikeud}, {"Hangul_SsangDikeud", XK_Hangul_SsangDikeud}, {"Hangul_Rieul", XK_Hangul_Rieul}, {"Hangul_RieulKiyeog", XK_Hangul_RieulKiyeog}, {"Hangul_RieulMieum", XK_Hangul_RieulMieum}, {"Hangul_RieulPieub", XK_Hangul_RieulPieub}, {"Hangul_RieulSios", XK_Hangul_RieulSios}, {"Hangul_RieulTieut", XK_Hangul_RieulTieut}, {"Hangul_RieulPhieuf", XK_Hangul_RieulPhieuf}, {"Hangul_RieulHieuh", XK_Hangul_RieulHieuh}, {"Hangul_Mieum", XK_Hangul_Mieum}, {"Hangul_Pieub", XK_Hangul_Pieub}, {"Hangul_SsangPieub", XK_Hangul_SsangPieub}, {"Hangul_PieubSios", XK_Hangul_PieubSios}, {"Hangul_Sios", XK_Hangul_Sios}, {"Hangul_SsangSios", XK_Hangul_SsangSios}, {"Hangul_Ieung", XK_Hangul_Ieung}, {"Hangul_Jieuj", XK_Hangul_Jieuj}, {"Hangul_SsangJieuj", XK_Hangul_SsangJieuj}, {"Hangul_Cieuc", XK_Hangul_Cieuc}, {"Hangul_Khieuq", XK_Hangul_Khieuq}, {"Hangul_Tieut", XK_Hangul_Tieut}, {"Hangul_Phieuf", XK_Hangul_Phieuf}, {"Hangul_Hieuh", XK_Hangul_Hieuh}, {"Hangul_A", XK_Hangul_A}, {"Hangul_AE", XK_Hangul_AE}, {"Hangul_YA", XK_Hangul_YA}, {"Hangul_YAE", XK_Hangul_YAE}, {"Hangul_EO", XK_Hangul_EO}, {"Hangul_E", XK_Hangul_E}, {"Hangul_YEO", XK_Hangul_YEO}, {"Hangul_YE", XK_Hangul_YE}, {"Hangul_O", XK_Hangul_O}, {"Hangul_WA", XK_Hangul_WA}, {"Hangul_WAE", XK_Hangul_WAE}, {"Hangul_OE", XK_Hangul_OE}, {"Hangul_YO", XK_Hangul_YO}, {"Hangul_U", XK_Hangul_U}, {"Hangul_WEO", XK_Hangul_WEO}, {"Hangul_WE", XK_Hangul_WE}, {"Hangul_WI", XK_Hangul_WI}, {"Hangul_YU", XK_Hangul_YU}, {"Hangul_EU", XK_Hangul_EU}, {"Hangul_YI", XK_Hangul_YI}, {"Hangul_I", XK_Hangul_I}, {"Hangul_J_Kiyeog", XK_Hangul_J_Kiyeog}, {"Hangul_J_SsangKiyeog", XK_Hangul_J_SsangKiyeog}, {"Hangul_J_KiyeogSios", XK_Hangul_J_KiyeogSios}, {"Hangul_J_Nieun", XK_Hangul_J_Nieun}, {"Hangul_J_NieunJieuj", XK_Hangul_J_NieunJieuj}, {"Hangul_J_NieunHieuh", XK_Hangul_J_NieunHieuh}, {"Hangul_J_Dikeud", XK_Hangul_J_Dikeud}, {"Hangul_J_Rieul", XK_Hangul_J_Rieul}, {"Hangul_J_RieulKiyeog", XK_Hangul_J_RieulKiyeog}, {"Hangul_J_RieulMieum", XK_Hangul_J_RieulMieum}, {"Hangul_J_RieulPieub", XK_Hangul_J_RieulPieub}, {"Hangul_J_RieulSios", XK_Hangul_J_RieulSios}, {"Hangul_J_RieulTieut", XK_Hangul_J_RieulTieut}, {"Hangul_J_RieulPhieuf", XK_Hangul_J_RieulPhieuf}, {"Hangul_J_RieulHieuh", XK_Hangul_J_RieulHieuh}, {"Hangul_J_Mieum", XK_Hangul_J_Mieum}, {"Hangul_J_Pieub", XK_Hangul_J_Pieub}, {"Hangul_J_PieubSios", XK_Hangul_J_PieubSios}, {"Hangul_J_Sios", XK_Hangul_J_Sios}, {"Hangul_J_SsangSios", XK_Hangul_J_SsangSios}, {"Hangul_J_Ieung", XK_Hangul_J_Ieung}, {"Hangul_J_Jieuj", XK_Hangul_J_Jieuj}, {"Hangul_J_Cieuc", XK_Hangul_J_Cieuc}, {"Hangul_J_Khieuq", XK_Hangul_J_Khieuq}, {"Hangul_J_Tieut", XK_Hangul_J_Tieut}, {"Hangul_J_Phieuf", XK_Hangul_J_Phieuf}, {"Hangul_J_Hieuh", XK_Hangul_J_Hieuh}, {"Hangul_RieulYeorinHieuh", XK_Hangul_RieulYeorinHieuh}, {"Hangul_SunkyeongeumMieum", XK_Hangul_SunkyeongeumMieum}, {"Hangul_SunkyeongeumPieub", XK_Hangul_SunkyeongeumPieub}, {"Hangul_PanSios", XK_Hangul_PanSios}, {"Hangul_KkogjiDalrinIeung", XK_Hangul_KkogjiDalrinIeung}, {"Hangul_SunkyeongeumPhieuf", XK_Hangul_SunkyeongeumPhieuf}, {"Hangul_YeorinHieuh", XK_Hangul_YeorinHieuh}, {"Hangul_AraeA", XK_Hangul_AraeA}, {"Hangul_AraeAE", XK_Hangul_AraeAE}, {"Hangul_J_PanSios", XK_Hangul_J_PanSios}, {"Hangul_J_KkogjiDalrinIeung", XK_Hangul_J_KkogjiDalrinIeung}, {"Hangul_J_YeorinHieuh", XK_Hangul_J_YeorinHieuh}, {"Korean_Won", XK_Korean_Won}, #endif /* XK_KOREAN */ #ifdef XK_ARMENIAN {"Armenian_ligature_ew", XK_Armenian_ligature_ew}, {"Armenian_full_stop", XK_Armenian_full_stop}, {"Armenian_verjaket", XK_Armenian_verjaket}, {"Armenian_separation_mark", XK_Armenian_separation_mark}, {"Armenian_but", XK_Armenian_but}, {"Armenian_hyphen", XK_Armenian_hyphen}, {"Armenian_yentamna", XK_Armenian_yentamna}, {"Armenian_exclam", XK_Armenian_exclam}, {"Armenian_amanak", XK_Armenian_amanak}, {"Armenian_accent", XK_Armenian_accent}, {"Armenian_shesht", XK_Armenian_shesht}, {"Armenian_question", XK_Armenian_question}, {"Armenian_paruyk", XK_Armenian_paruyk}, {"Armenian_AYB", XK_Armenian_AYB}, {"Armenian_ayb", XK_Armenian_ayb}, {"Armenian_BEN", XK_Armenian_BEN}, {"Armenian_ben", XK_Armenian_ben}, {"Armenian_GIM", XK_Armenian_GIM}, {"Armenian_gim", XK_Armenian_gim}, {"Armenian_DA", XK_Armenian_DA}, {"Armenian_da", XK_Armenian_da}, {"Armenian_YECH", XK_Armenian_YECH}, {"Armenian_yech", XK_Armenian_yech}, {"Armenian_ZA", XK_Armenian_ZA}, {"Armenian_za", XK_Armenian_za}, {"Armenian_E", XK_Armenian_E}, {"Armenian_e", XK_Armenian_e}, {"Armenian_AT", XK_Armenian_AT}, {"Armenian_at", XK_Armenian_at}, {"Armenian_TO", XK_Armenian_TO}, {"Armenian_to", XK_Armenian_to}, {"Armenian_ZHE", XK_Armenian_ZHE}, {"Armenian_zhe", XK_Armenian_zhe}, {"Armenian_INI", XK_Armenian_INI}, {"Armenian_ini", XK_Armenian_ini}, {"Armenian_LYUN", XK_Armenian_LYUN}, {"Armenian_lyun", XK_Armenian_lyun}, {"Armenian_KHE", XK_Armenian_KHE}, {"Armenian_khe", XK_Armenian_khe}, {"Armenian_TSA", XK_Armenian_TSA}, {"Armenian_tsa", XK_Armenian_tsa}, {"Armenian_KEN", XK_Armenian_KEN}, {"Armenian_ken", XK_Armenian_ken}, {"Armenian_HO", XK_Armenian_HO}, {"Armenian_ho", XK_Armenian_ho}, {"Armenian_DZA", XK_Armenian_DZA}, {"Armenian_dza", XK_Armenian_dza}, {"Armenian_GHAT", XK_Armenian_GHAT}, {"Armenian_ghat", XK_Armenian_ghat}, {"Armenian_TCHE", XK_Armenian_TCHE}, {"Armenian_tche", XK_Armenian_tche}, {"Armenian_MEN", XK_Armenian_MEN}, {"Armenian_men", XK_Armenian_men}, {"Armenian_HI", XK_Armenian_HI}, {"Armenian_hi", XK_Armenian_hi}, {"Armenian_NU", XK_Armenian_NU}, {"Armenian_nu", XK_Armenian_nu}, {"Armenian_SHA", XK_Armenian_SHA}, {"Armenian_sha", XK_Armenian_sha}, {"Armenian_VO", XK_Armenian_VO}, {"Armenian_vo", XK_Armenian_vo}, {"Armenian_CHA", XK_Armenian_CHA}, {"Armenian_cha", XK_Armenian_cha}, {"Armenian_PE", XK_Armenian_PE}, {"Armenian_pe", XK_Armenian_pe}, {"Armenian_JE", XK_Armenian_JE}, {"Armenian_je", XK_Armenian_je}, {"Armenian_RA", XK_Armenian_RA}, {"Armenian_ra", XK_Armenian_ra}, {"Armenian_SE", XK_Armenian_SE}, {"Armenian_se", XK_Armenian_se}, {"Armenian_VEV", XK_Armenian_VEV}, {"Armenian_vev", XK_Armenian_vev}, {"Armenian_TYUN", XK_Armenian_TYUN}, {"Armenian_tyun", XK_Armenian_tyun}, {"Armenian_RE", XK_Armenian_RE}, {"Armenian_re", XK_Armenian_re}, {"Armenian_TSO", XK_Armenian_TSO}, {"Armenian_tso", XK_Armenian_tso}, {"Armenian_VYUN", XK_Armenian_VYUN}, {"Armenian_vyun", XK_Armenian_vyun}, {"Armenian_PYUR", XK_Armenian_PYUR}, {"Armenian_pyur", XK_Armenian_pyur}, {"Armenian_KE", XK_Armenian_KE}, {"Armenian_ke", XK_Armenian_ke}, {"Armenian_O", XK_Armenian_O}, {"Armenian_o", XK_Armenian_o}, {"Armenian_FE", XK_Armenian_FE}, {"Armenian_fe", XK_Armenian_fe}, {"Armenian_apostrophe", XK_Armenian_apostrophe}, #endif /* XK_ARMENIAN */ #ifdef XK_GEORGIAN {"Georgian_an", XK_Georgian_an}, {"Georgian_ban", XK_Georgian_ban}, {"Georgian_gan", XK_Georgian_gan}, {"Georgian_don", XK_Georgian_don}, {"Georgian_en", XK_Georgian_en}, {"Georgian_vin", XK_Georgian_vin}, {"Georgian_zen", XK_Georgian_zen}, {"Georgian_tan", XK_Georgian_tan}, {"Georgian_in", XK_Georgian_in}, {"Georgian_kan", XK_Georgian_kan}, {"Georgian_las", XK_Georgian_las}, {"Georgian_man", XK_Georgian_man}, {"Georgian_nar", XK_Georgian_nar}, {"Georgian_on", XK_Georgian_on}, {"Georgian_par", XK_Georgian_par}, {"Georgian_zhar", XK_Georgian_zhar}, {"Georgian_rae", XK_Georgian_rae}, {"Georgian_san", XK_Georgian_san}, {"Georgian_tar", XK_Georgian_tar}, {"Georgian_un", XK_Georgian_un}, {"Georgian_phar", XK_Georgian_phar}, {"Georgian_khar", XK_Georgian_khar}, {"Georgian_ghan", XK_Georgian_ghan}, {"Georgian_qar", XK_Georgian_qar}, {"Georgian_shin", XK_Georgian_shin}, {"Georgian_chin", XK_Georgian_chin}, {"Georgian_can", XK_Georgian_can}, {"Georgian_jil", XK_Georgian_jil}, {"Georgian_cil", XK_Georgian_cil}, {"Georgian_char", XK_Georgian_char}, {"Georgian_xan", XK_Georgian_xan}, {"Georgian_jhan", XK_Georgian_jhan}, {"Georgian_hae", XK_Georgian_hae}, {"Georgian_he", XK_Georgian_he}, {"Georgian_hie", XK_Georgian_hie}, {"Georgian_we", XK_Georgian_we}, {"Georgian_har", XK_Georgian_har}, {"Georgian_hoe", XK_Georgian_hoe}, {"Georgian_fi", XK_Georgian_fi}, #endif /* XK_GEORGIAN */ #ifdef XK_CAUCASUS {"Xabovedot", XK_Xabovedot}, {"Ibreve", XK_Ibreve}, {"Zstroke", XK_Zstroke}, {"Gcaron", XK_Gcaron}, {"Ocaron", XK_Ocaron}, {"Obarred", XK_Obarred}, {"xabovedot", XK_xabovedot}, {"ibreve", XK_ibreve}, {"zstroke", XK_zstroke}, {"gcaron", XK_gcaron}, {"ocaron", XK_ocaron}, {"obarred", XK_obarred}, {"SCHWA", XK_SCHWA}, {"schwa", XK_schwa}, {"Lbelowdot", XK_Lbelowdot}, {"lbelowdot", XK_lbelowdot}, #endif /* XK_CAUCASUS */ #ifdef XK_VIETNAMESE {"Abelowdot", XK_Abelowdot}, {"abelowdot", XK_abelowdot}, {"Ahook", XK_Ahook}, {"ahook", XK_ahook}, {"Acircumflexacute", XK_Acircumflexacute}, {"acircumflexacute", XK_acircumflexacute}, {"Acircumflexgrave", XK_Acircumflexgrave}, {"acircumflexgrave", XK_acircumflexgrave}, {"Acircumflexhook", XK_Acircumflexhook}, {"acircumflexhook", XK_acircumflexhook}, {"Acircumflextilde", XK_Acircumflextilde}, {"acircumflextilde", XK_acircumflextilde}, {"Acircumflexbelowdot", XK_Acircumflexbelowdot}, {"acircumflexbelowdot", XK_acircumflexbelowdot}, {"Abreveacute", XK_Abreveacute}, {"abreveacute", XK_abreveacute}, {"Abrevegrave", XK_Abrevegrave}, {"abrevegrave", XK_abrevegrave}, {"Abrevehook", XK_Abrevehook}, {"abrevehook", XK_abrevehook}, {"Abrevetilde", XK_Abrevetilde}, {"abrevetilde", XK_abrevetilde}, {"Abrevebelowdot", XK_Abrevebelowdot}, {"abrevebelowdot", XK_abrevebelowdot}, {"Ebelowdot", XK_Ebelowdot}, {"ebelowdot", XK_ebelowdot}, {"Ehook", XK_Ehook}, {"ehook", XK_ehook}, {"Etilde", XK_Etilde}, {"etilde", XK_etilde}, {"Ecircumflexacute", XK_Ecircumflexacute}, {"ecircumflexacute", XK_ecircumflexacute}, {"Ecircumflexgrave", XK_Ecircumflexgrave}, {"ecircumflexgrave", XK_ecircumflexgrave}, {"Ecircumflexhook", XK_Ecircumflexhook}, {"ecircumflexhook", XK_ecircumflexhook}, {"Ecircumflextilde", XK_Ecircumflextilde}, {"ecircumflextilde", XK_ecircumflextilde}, {"Ecircumflexbelowdot", XK_Ecircumflexbelowdot}, {"ecircumflexbelowdot", XK_ecircumflexbelowdot}, {"Ihook", XK_Ihook}, {"ihook", XK_ihook}, {"Ibelowdot", XK_Ibelowdot}, {"ibelowdot", XK_ibelowdot}, {"Obelowdot", XK_Obelowdot}, {"obelowdot", XK_obelowdot}, {"Ohook", XK_Ohook}, {"ohook", XK_ohook}, {"Ocircumflexacute", XK_Ocircumflexacute}, {"ocircumflexacute", XK_ocircumflexacute}, {"Ocircumflexgrave", XK_Ocircumflexgrave}, {"ocircumflexgrave", XK_ocircumflexgrave}, {"Ocircumflexhook", XK_Ocircumflexhook}, {"ocircumflexhook", XK_ocircumflexhook}, {"Ocircumflextilde", XK_Ocircumflextilde}, {"ocircumflextilde", XK_ocircumflextilde}, {"Ocircumflexbelowdot", XK_Ocircumflexbelowdot}, {"ocircumflexbelowdot", XK_ocircumflexbelowdot}, {"Ohornacute", XK_Ohornacute}, {"ohornacute", XK_ohornacute}, {"Ohorngrave", XK_Ohorngrave}, {"ohorngrave", XK_ohorngrave}, {"Ohornhook", XK_Ohornhook}, {"ohornhook", XK_ohornhook}, {"Ohorntilde", XK_Ohorntilde}, {"ohorntilde", XK_ohorntilde}, {"Ohornbelowdot", XK_Ohornbelowdot}, {"ohornbelowdot", XK_ohornbelowdot}, {"Ubelowdot", XK_Ubelowdot}, {"ubelowdot", XK_ubelowdot}, {"Uhook", XK_Uhook}, {"uhook", XK_uhook}, {"Uhornacute", XK_Uhornacute}, {"uhornacute", XK_uhornacute}, {"Uhorngrave", XK_Uhorngrave}, {"uhorngrave", XK_uhorngrave}, {"Uhornhook", XK_Uhornhook}, {"uhornhook", XK_uhornhook}, {"Uhorntilde", XK_Uhorntilde}, {"uhorntilde", XK_uhorntilde}, {"Uhornbelowdot", XK_Uhornbelowdot}, {"uhornbelowdot", XK_uhornbelowdot}, {"Ybelowdot", XK_Ybelowdot}, {"ybelowdot", XK_ybelowdot}, {"Yhook", XK_Yhook}, {"yhook", XK_yhook}, {"Ytilde", XK_Ytilde}, {"ytilde", XK_ytilde}, {"Ohorn", XK_Ohorn}, {"ohorn", XK_ohorn}, {"Uhorn", XK_Uhorn}, {"uhorn", XK_uhorn}, #endif /* XK_VIETNAMESE */ #ifdef XK_CURRENCY {"EcuSign", XK_EcuSign}, {"ColonSign", XK_ColonSign}, {"CruzeiroSign", XK_CruzeiroSign}, {"FFrancSign", XK_FFrancSign}, {"LiraSign", XK_LiraSign}, {"MillSign", XK_MillSign}, {"NairaSign", XK_NairaSign}, {"PesetaSign", XK_PesetaSign}, {"RupeeSign", XK_RupeeSign}, {"WonSign", XK_WonSign}, {"NewSheqelSign", XK_NewSheqelSign}, {"DongSign", XK_DongSign}, {"EuroSign", XK_EuroSign}, #endif /* XK_CURRENCY */ #ifdef XK_MATHEMATICAL {"zerosuperior", XK_zerosuperior}, {"foursuperior", XK_foursuperior}, {"fivesuperior", XK_fivesuperior}, {"sixsuperior", XK_sixsuperior}, {"sevensuperior", XK_sevensuperior}, {"eightsuperior", XK_eightsuperior}, {"ninesuperior", XK_ninesuperior}, {"zerosubscript", XK_zerosubscript}, {"onesubscript", XK_onesubscript}, {"twosubscript", XK_twosubscript}, {"threesubscript", XK_threesubscript}, {"foursubscript", XK_foursubscript}, {"fivesubscript", XK_fivesubscript}, {"sixsubscript", XK_sixsubscript}, {"sevensubscript", XK_sevensubscript}, {"eightsubscript", XK_eightsubscript}, {"ninesubscript", XK_ninesubscript}, {"partdifferential", XK_partdifferential}, {"emptyset", XK_emptyset}, {"elementof", XK_elementof}, {"notelementof", XK_notelementof}, {"containsas", XK_containsas}, {"squareroot", XK_squareroot}, {"cuberoot", XK_cuberoot}, {"fourthroot", XK_fourthroot}, {"dintegral", XK_dintegral}, {"tintegral", XK_tintegral}, {"because", XK_because}, {"approxeq", XK_approxeq}, {"notapproxeq", XK_notapproxeq}, {"notidentical", XK_notidentical}, {"stricteq", XK_stricteq}, #endif /* XK_MATHEMATICAL */ #ifdef XK_BRAILLE {"braille_dot_1", XK_braille_dot_1}, {"braille_dot_2", XK_braille_dot_2}, {"braille_dot_3", XK_braille_dot_3}, {"braille_dot_4", XK_braille_dot_4}, {"braille_dot_5", XK_braille_dot_5}, {"braille_dot_6", XK_braille_dot_6}, {"braille_dot_7", XK_braille_dot_7}, {"braille_dot_8", XK_braille_dot_8}, {"braille_dot_9", XK_braille_dot_9}, {"braille_dot_10", XK_braille_dot_10}, {"braille_blank", XK_braille_blank}, {"braille_dots_1", XK_braille_dots_1}, {"braille_dots_2", XK_braille_dots_2}, {"braille_dots_12", XK_braille_dots_12}, {"braille_dots_3", XK_braille_dots_3}, {"braille_dots_13", XK_braille_dots_13}, {"braille_dots_23", XK_braille_dots_23}, {"braille_dots_123", XK_braille_dots_123}, {"braille_dots_4", XK_braille_dots_4}, {"braille_dots_14", XK_braille_dots_14}, {"braille_dots_24", XK_braille_dots_24}, {"braille_dots_124", XK_braille_dots_124}, {"braille_dots_34", XK_braille_dots_34}, {"braille_dots_134", XK_braille_dots_134}, {"braille_dots_234", XK_braille_dots_234}, {"braille_dots_1234", XK_braille_dots_1234}, {"braille_dots_5", XK_braille_dots_5}, {"braille_dots_15", XK_braille_dots_15}, {"braille_dots_25", XK_braille_dots_25}, {"braille_dots_125", XK_braille_dots_125}, {"braille_dots_35", XK_braille_dots_35}, {"braille_dots_135", XK_braille_dots_135}, {"braille_dots_235", XK_braille_dots_235}, {"braille_dots_1235", XK_braille_dots_1235}, {"braille_dots_45", XK_braille_dots_45}, {"braille_dots_145", XK_braille_dots_145}, {"braille_dots_245", XK_braille_dots_245}, {"braille_dots_1245", XK_braille_dots_1245}, {"braille_dots_345", XK_braille_dots_345}, {"braille_dots_1345", XK_braille_dots_1345}, {"braille_dots_2345", XK_braille_dots_2345}, {"braille_dots_12345", XK_braille_dots_12345}, {"braille_dots_6", XK_braille_dots_6}, {"braille_dots_16", XK_braille_dots_16}, {"braille_dots_26", XK_braille_dots_26}, {"braille_dots_126", XK_braille_dots_126}, {"braille_dots_36", XK_braille_dots_36}, {"braille_dots_136", XK_braille_dots_136}, {"braille_dots_236", XK_braille_dots_236}, {"braille_dots_1236", XK_braille_dots_1236}, {"braille_dots_46", XK_braille_dots_46}, {"braille_dots_146", XK_braille_dots_146}, {"braille_dots_246", XK_braille_dots_246}, {"braille_dots_1246", XK_braille_dots_1246}, {"braille_dots_346", XK_braille_dots_346}, {"braille_dots_1346", XK_braille_dots_1346}, {"braille_dots_2346", XK_braille_dots_2346}, {"braille_dots_12346", XK_braille_dots_12346}, {"braille_dots_56", XK_braille_dots_56}, {"braille_dots_156", XK_braille_dots_156}, {"braille_dots_256", XK_braille_dots_256}, {"braille_dots_1256", XK_braille_dots_1256}, {"braille_dots_356", XK_braille_dots_356}, {"braille_dots_1356", XK_braille_dots_1356}, {"braille_dots_2356", XK_braille_dots_2356}, {"braille_dots_12356", XK_braille_dots_12356}, {"braille_dots_456", XK_braille_dots_456}, {"braille_dots_1456", XK_braille_dots_1456}, {"braille_dots_2456", XK_braille_dots_2456}, {"braille_dots_12456", XK_braille_dots_12456}, {"braille_dots_3456", XK_braille_dots_3456}, {"braille_dots_13456", XK_braille_dots_13456}, {"braille_dots_23456", XK_braille_dots_23456}, {"braille_dots_123456", XK_braille_dots_123456}, {"braille_dots_7", XK_braille_dots_7}, {"braille_dots_17", XK_braille_dots_17}, {"braille_dots_27", XK_braille_dots_27}, {"braille_dots_127", XK_braille_dots_127}, {"braille_dots_37", XK_braille_dots_37}, {"braille_dots_137", XK_braille_dots_137}, {"braille_dots_237", XK_braille_dots_237}, {"braille_dots_1237", XK_braille_dots_1237}, {"braille_dots_47", XK_braille_dots_47}, {"braille_dots_147", XK_braille_dots_147}, {"braille_dots_247", XK_braille_dots_247}, {"braille_dots_1247", XK_braille_dots_1247}, {"braille_dots_347", XK_braille_dots_347}, {"braille_dots_1347", XK_braille_dots_1347}, {"braille_dots_2347", XK_braille_dots_2347}, {"braille_dots_12347", XK_braille_dots_12347}, {"braille_dots_57", XK_braille_dots_57}, {"braille_dots_157", XK_braille_dots_157}, {"braille_dots_257", XK_braille_dots_257}, {"braille_dots_1257", XK_braille_dots_1257}, {"braille_dots_357", XK_braille_dots_357}, {"braille_dots_1357", XK_braille_dots_1357}, {"braille_dots_2357", XK_braille_dots_2357}, {"braille_dots_12357", XK_braille_dots_12357}, {"braille_dots_457", XK_braille_dots_457}, {"braille_dots_1457", XK_braille_dots_1457}, {"braille_dots_2457", XK_braille_dots_2457}, {"braille_dots_12457", XK_braille_dots_12457}, {"braille_dots_3457", XK_braille_dots_3457}, {"braille_dots_13457", XK_braille_dots_13457}, {"braille_dots_23457", XK_braille_dots_23457}, {"braille_dots_123457", XK_braille_dots_123457}, {"braille_dots_67", XK_braille_dots_67}, {"braille_dots_167", XK_braille_dots_167}, {"braille_dots_267", XK_braille_dots_267}, {"braille_dots_1267", XK_braille_dots_1267}, {"braille_dots_367", XK_braille_dots_367}, {"braille_dots_1367", XK_braille_dots_1367}, {"braille_dots_2367", XK_braille_dots_2367}, {"braille_dots_12367", XK_braille_dots_12367}, {"braille_dots_467", XK_braille_dots_467}, {"braille_dots_1467", XK_braille_dots_1467}, {"braille_dots_2467", XK_braille_dots_2467}, {"braille_dots_12467", XK_braille_dots_12467}, {"braille_dots_3467", XK_braille_dots_3467}, {"braille_dots_13467", XK_braille_dots_13467}, {"braille_dots_23467", XK_braille_dots_23467}, {"braille_dots_123467", XK_braille_dots_123467}, {"braille_dots_567", XK_braille_dots_567}, {"braille_dots_1567", XK_braille_dots_1567}, {"braille_dots_2567", XK_braille_dots_2567}, {"braille_dots_12567", XK_braille_dots_12567}, {"braille_dots_3567", XK_braille_dots_3567}, {"braille_dots_13567", XK_braille_dots_13567}, {"braille_dots_23567", XK_braille_dots_23567}, {"braille_dots_123567", XK_braille_dots_123567}, {"braille_dots_4567", XK_braille_dots_4567}, {"braille_dots_14567", XK_braille_dots_14567}, {"braille_dots_24567", XK_braille_dots_24567}, {"braille_dots_124567", XK_braille_dots_124567}, {"braille_dots_34567", XK_braille_dots_34567}, {"braille_dots_134567", XK_braille_dots_134567}, {"braille_dots_234567", XK_braille_dots_234567}, {"braille_dots_1234567", XK_braille_dots_1234567}, {"braille_dots_8", XK_braille_dots_8}, {"braille_dots_18", XK_braille_dots_18}, {"braille_dots_28", XK_braille_dots_28}, {"braille_dots_128", XK_braille_dots_128}, {"braille_dots_38", XK_braille_dots_38}, {"braille_dots_138", XK_braille_dots_138}, {"braille_dots_238", XK_braille_dots_238}, {"braille_dots_1238", XK_braille_dots_1238}, {"braille_dots_48", XK_braille_dots_48}, {"braille_dots_148", XK_braille_dots_148}, {"braille_dots_248", XK_braille_dots_248}, {"braille_dots_1248", XK_braille_dots_1248}, {"braille_dots_348", XK_braille_dots_348}, {"braille_dots_1348", XK_braille_dots_1348}, {"braille_dots_2348", XK_braille_dots_2348}, {"braille_dots_12348", XK_braille_dots_12348}, {"braille_dots_58", XK_braille_dots_58}, {"braille_dots_158", XK_braille_dots_158}, {"braille_dots_258", XK_braille_dots_258}, {"braille_dots_1258", XK_braille_dots_1258}, {"braille_dots_358", XK_braille_dots_358}, {"braille_dots_1358", XK_braille_dots_1358}, {"braille_dots_2358", XK_braille_dots_2358}, {"braille_dots_12358", XK_braille_dots_12358}, {"braille_dots_458", XK_braille_dots_458}, {"braille_dots_1458", XK_braille_dots_1458}, {"braille_dots_2458", XK_braille_dots_2458}, {"braille_dots_12458", XK_braille_dots_12458}, {"braille_dots_3458", XK_braille_dots_3458}, {"braille_dots_13458", XK_braille_dots_13458}, {"braille_dots_23458", XK_braille_dots_23458}, {"braille_dots_123458", XK_braille_dots_123458}, {"braille_dots_68", XK_braille_dots_68}, {"braille_dots_168", XK_braille_dots_168}, {"braille_dots_268", XK_braille_dots_268}, {"braille_dots_1268", XK_braille_dots_1268}, {"braille_dots_368", XK_braille_dots_368}, {"braille_dots_1368", XK_braille_dots_1368}, {"braille_dots_2368", XK_braille_dots_2368}, {"braille_dots_12368", XK_braille_dots_12368}, {"braille_dots_468", XK_braille_dots_468}, {"braille_dots_1468", XK_braille_dots_1468}, {"braille_dots_2468", XK_braille_dots_2468}, {"braille_dots_12468", XK_braille_dots_12468}, {"braille_dots_3468", XK_braille_dots_3468}, {"braille_dots_13468", XK_braille_dots_13468}, {"braille_dots_23468", XK_braille_dots_23468}, {"braille_dots_123468", XK_braille_dots_123468}, {"braille_dots_568", XK_braille_dots_568}, {"braille_dots_1568", XK_braille_dots_1568}, {"braille_dots_2568", XK_braille_dots_2568}, {"braille_dots_12568", XK_braille_dots_12568}, {"braille_dots_3568", XK_braille_dots_3568}, {"braille_dots_13568", XK_braille_dots_13568}, {"braille_dots_23568", XK_braille_dots_23568}, {"braille_dots_123568", XK_braille_dots_123568}, {"braille_dots_4568", XK_braille_dots_4568}, {"braille_dots_14568", XK_braille_dots_14568}, {"braille_dots_24568", XK_braille_dots_24568}, {"braille_dots_124568", XK_braille_dots_124568}, {"braille_dots_34568", XK_braille_dots_34568}, {"braille_dots_134568", XK_braille_dots_134568}, {"braille_dots_234568", XK_braille_dots_234568}, {"braille_dots_1234568", XK_braille_dots_1234568}, {"braille_dots_78", XK_braille_dots_78}, {"braille_dots_178", XK_braille_dots_178}, {"braille_dots_278", XK_braille_dots_278}, {"braille_dots_1278", XK_braille_dots_1278}, {"braille_dots_378", XK_braille_dots_378}, {"braille_dots_1378", XK_braille_dots_1378}, {"braille_dots_2378", XK_braille_dots_2378}, {"braille_dots_12378", XK_braille_dots_12378}, {"braille_dots_478", XK_braille_dots_478}, {"braille_dots_1478", XK_braille_dots_1478}, {"braille_dots_2478", XK_braille_dots_2478}, {"braille_dots_12478", XK_braille_dots_12478}, {"braille_dots_3478", XK_braille_dots_3478}, {"braille_dots_13478", XK_braille_dots_13478}, {"braille_dots_23478", XK_braille_dots_23478}, {"braille_dots_123478", XK_braille_dots_123478}, {"braille_dots_578", XK_braille_dots_578}, {"braille_dots_1578", XK_braille_dots_1578}, {"braille_dots_2578", XK_braille_dots_2578}, {"braille_dots_12578", XK_braille_dots_12578}, {"braille_dots_3578", XK_braille_dots_3578}, {"braille_dots_13578", XK_braille_dots_13578}, {"braille_dots_23578", XK_braille_dots_23578}, {"braille_dots_123578", XK_braille_dots_123578}, {"braille_dots_4578", XK_braille_dots_4578}, {"braille_dots_14578", XK_braille_dots_14578}, {"braille_dots_24578", XK_braille_dots_24578}, {"braille_dots_124578", XK_braille_dots_124578}, {"braille_dots_34578", XK_braille_dots_34578}, {"braille_dots_134578", XK_braille_dots_134578}, {"braille_dots_234578", XK_braille_dots_234578}, {"braille_dots_1234578", XK_braille_dots_1234578}, {"braille_dots_678", XK_braille_dots_678}, {"braille_dots_1678", XK_braille_dots_1678}, {"braille_dots_2678", XK_braille_dots_2678}, {"braille_dots_12678", XK_braille_dots_12678}, {"braille_dots_3678", XK_braille_dots_3678}, {"braille_dots_13678", XK_braille_dots_13678}, {"braille_dots_23678", XK_braille_dots_23678}, {"braille_dots_123678", XK_braille_dots_123678}, {"braille_dots_4678", XK_braille_dots_4678}, {"braille_dots_14678", XK_braille_dots_14678}, {"braille_dots_24678", XK_braille_dots_24678}, {"braille_dots_124678", XK_braille_dots_124678}, {"braille_dots_34678", XK_braille_dots_34678}, {"braille_dots_134678", XK_braille_dots_134678}, {"braille_dots_234678", XK_braille_dots_234678}, {"braille_dots_1234678", XK_braille_dots_1234678}, {"braille_dots_5678", XK_braille_dots_5678}, {"braille_dots_15678", XK_braille_dots_15678}, {"braille_dots_25678", XK_braille_dots_25678}, {"braille_dots_125678", XK_braille_dots_125678}, {"braille_dots_35678", XK_braille_dots_35678}, {"braille_dots_135678", XK_braille_dots_135678}, {"braille_dots_235678", XK_braille_dots_235678}, {"braille_dots_1235678", XK_braille_dots_1235678}, {"braille_dots_45678", XK_braille_dots_45678}, {"braille_dots_145678", XK_braille_dots_145678}, {"braille_dots_245678", XK_braille_dots_245678}, {"braille_dots_1245678", XK_braille_dots_1245678}, {"braille_dots_345678", XK_braille_dots_345678}, {"braille_dots_1345678", XK_braille_dots_1345678}, {"braille_dots_2345678", XK_braille_dots_2345678}, {"braille_dots_12345678", XK_braille_dots_12345678}, #endif /* XK_BRAILLE */ {NULL, 0x0}, }; #endifinput-pad-1.1.0/input-pad/parse-pad.c000066400000000000000000000554411476727667600174000ustar00rootroot00000000000000/* vim:set et sts=4: */ /* input-pad - The input pad * Copyright (C) 2010-2012 Takao Fujiwara * Copyright (C) 2010-2012 Red Hat, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301 USA */ #ifdef HAVE_CONFIG_H #include #endif #include #include #include #include /* getuid */ #include /* getpwuid */ #include "i18n.h" #include "input-pad-group.h" #include "input-pad-private.h" static const gchar *xml_file; static const gchar *translation_domain; static int cmp_filepath (gconstpointer a, gconstpointer b) { const gchar *file1 = a; const gchar *file2 = b; gboolean file1_content; gboolean file2_content; file1_content = (file1 && *file1); file2_content = (file2 && *file2); if (file1_content && !file2_content) { return 1; } if (!file1_content && file2_content) { return -1; } if (g_str_has_prefix (file1, INPUT_PAD_PAD_SYSTEM_DIR) && !g_str_has_prefix (file2, INPUT_PAD_PAD_SYSTEM_DIR)) { return -1; } if (!g_str_has_prefix (file1, INPUT_PAD_PAD_SYSTEM_DIR) && g_str_has_prefix (file2, INPUT_PAD_PAD_SYSTEM_DIR)) { return 1; } return g_strcmp0 (file1, file2); } static void get_content (xmlNodePtr node, char **content, gboolean i18n) { xmlNodePtr current; gboolean has_content = FALSE; for (current = node; current; current = current->next) { if (current->type == XML_TEXT_NODE) { if (current->content) { if (i18n) { if (translation_domain) { *content = g_strdup (D_(translation_domain, (char *) current->content)); } else { *content = g_strdup (_((char *) current->content)); } } else { *content = g_strdup ((char *) current->content); } #ifdef DEBUG g_print ("content %s\n", (char *) *content); #endif has_content = TRUE; break; } else { g_error ("tag does not have content in the file %s", xml_file); } } } if (!has_content) { g_error ("tag does not have content in the file %s", xml_file); } } static void get_int (xmlNodePtr node, int *retval, int base) { xmlNodePtr current; gboolean has_content = FALSE; for (current = node; current; current = current->next) { if (current->type == XML_TEXT_NODE) { if (current->content) { *retval = (int) g_ascii_strtoll ((const gchar *) current->content, NULL, base); has_content = TRUE; break; } else { g_error ("tag does not have content in the file %s", xml_file); } } } if (!has_content) { g_error ("tag does not have content in the file %s", xml_file); } } static void parse_keys (xmlNodePtr node, InputPadTable **ptable) { xmlNodePtr current; gboolean has_keys = FALSE; for (current = node; current; current = current->next) { if (current->type == XML_ELEMENT_NODE) { if (!g_strcmp0 ((char *) current->name, "keysyms")) { (*ptable)->type = INPUT_PAD_TABLE_TYPE_KEYSYMS; if (current->children) { get_content (current->children, &(*ptable)->data.keysyms, FALSE); has_keys = TRUE; } else { g_error ("tag %s does not have child tags in the file %s", (char *) current->name, xml_file); } } } } if (!has_keys) { g_error ("tag %s does not find \"keysyms\" tag in file %s", node->parent ? node->parent->name ? (char *) node->parent->name : "(null)" : "(null)", xml_file); } } static void parse_string (xmlNodePtr node, InputPadTableStr *str) { xmlNodePtr current; gboolean has_label = FALSE; for (current = node; current; current = current->next) { if (current->type == XML_ELEMENT_NODE) { if (!g_strcmp0 ((char *) current->name, "label")) { if (current->children) { get_content (current->children, &str->label, FALSE); has_label = TRUE; } else { g_error ("tag %s does not have child tags in the file %s", (char *) current->name, xml_file); } } if (!g_strcmp0 ((char *) current->name, "comment")) { if (current->children) { get_content (current->children, &str->comment, TRUE); } else { g_error ("tag %s does not have child tags in the file %s", (char *) current->name, xml_file); } } if (!g_strcmp0 ((char *) current->name, "rawtext")) { if (current->children) { get_content (current->children, &str->rawtext, TRUE); } else { g_error ("tag %s does not have child tags in the file %s", (char *) current->name, xml_file); } } } } if (!has_label) { g_error ("tag %s does not find \"label\" tag in file %s", node->parent ? node->parent->name ? (char *) node->parent->name : "(null)" : "(null)", xml_file); } } static void parse_command (xmlNodePtr node, InputPadTableCmd *cmd) { xmlNodePtr current; gboolean has_execl = FALSE; for (current = node; current; current = current->next) { if (current->type == XML_ELEMENT_NODE) { if (!g_strcmp0 ((char *) current->name, "label")) { if (current->children) { get_content (current->children, &cmd->label, TRUE); } else { g_error ("tag %s does not have child tags in the file %s", (char *) current->name, xml_file); } } if (!g_strcmp0 ((char *) current->name, "execl")) { if (current->children) { get_content (current->children, &cmd->execl, FALSE); has_execl = TRUE; } else { g_error ("tag %s does not have child tags in the file %s", (char *) current->name, xml_file); } } } } if (!has_execl) { g_error ("tag %s does not find \"execl\" tag in file %s", node->parent ? node->parent->name ? (char *) node->parent->name : "(null)" : "(null)", xml_file); } } #define GET_TABLE_SUB_ARRAY_LEN(type_name, TypeName, label) \ static int \ get_##type_name##_array_len (InputPadTable##TypeName *instance) \ { \ int i = 0; \ \ if (instance == NULL) { \ return 0; \ } \ while (instance[i].label) { \ i++; \ } \ return i; \ } GET_TABLE_SUB_ARRAY_LEN (string, Str, label) GET_TABLE_SUB_ARRAY_LEN (command, Cmd, execl) #undef GET_TABLE_SUB_ARRAY_LEN static void free_string_array (InputPadTableStr *strs) { int i = 0; if (strs == NULL) { return; } for (i = 0; strs[i].label; i++) { g_free (strs[i].label); g_free (strs[i].comment); g_free (strs[i].rawtext); strs[i].label = NULL; strs[i].comment = NULL; strs[i].rawtext = NULL; } g_free (strs); } static void free_command_array (InputPadTableCmd *cmds) { int i = 0; if (cmds == NULL) { return; } for (i = 0; cmds[i].execl; i++) { g_free (cmds[i].execl); g_free (cmds[i].label); cmds[i].label = NULL; cmds[i].execl = NULL; } g_free (cmds); } static void parse_table_sub_string (xmlNodePtr node, InputPadTable **ptable) { int len; len = get_string_array_len ((*ptable)->data.strs); if (len == 0) { (*ptable)->data.strs = g_new0 (InputPadTableStr, 2); } else { (*ptable)->data.strs = g_renew (InputPadTableStr, (*ptable)->data.strs, len + 2); (*ptable)->data.strs[len + 1].label= NULL; (*ptable)->data.strs[len + 1].comment = NULL; (*ptable)->data.strs[len + 1].rawtext = NULL; } parse_string (node, &(*ptable)->data.strs[len]); } static void parse_table_sub_command (xmlNodePtr node, InputPadTable **ptable) { int len; len = get_command_array_len ((*ptable)->data.cmds); if (len == 0) { (*ptable)->data.cmds = g_new0 (InputPadTableCmd, 2); } else { (*ptable)->data.cmds = g_renew (InputPadTableCmd, (*ptable)->data.cmds, len + 2); (*ptable)->data.cmds[len + 1].label= NULL; (*ptable)->data.cmds[len + 1].execl = NULL; } parse_command (node, &(*ptable)->data.cmds[len]); } static void parse_table (xmlNodePtr node, InputPadTable **ptable) { xmlNodePtr current; gboolean has_name = FALSE; gboolean has_chars = FALSE; for (current = node; current; current = current->next) { if (current->type == XML_ELEMENT_NODE) { if (!g_strcmp0 ((char *) current->name, "name")) { if (current->children) { get_content (current->children, &(*ptable)->name, TRUE); has_name = TRUE; } else { g_error ("tag %s does not have child tags in the file %s", (char *) current->name, xml_file); } } if (!g_strcmp0 ((char *) current->name, "column")) { if (current->children) { get_int (current->children, &(*ptable)->column, 10); } else { g_error ("tag %s does not have child tags in the file %s", (char *) current->name, xml_file); } } if (!g_strcmp0 ((char *) current->name, "chars")) { (*ptable)->type = INPUT_PAD_TABLE_TYPE_CHARS; if (current->children) { get_content (current->children, &(*ptable)->data.chars, FALSE); has_chars = TRUE; } else { g_error ("tag %s does not have child tags in the file %s", (char *) current->name, xml_file); } } if (!g_strcmp0 ((char *) current->name, "keys")) { (*ptable)->type = INPUT_PAD_TABLE_TYPE_KEYSYMS; if (current->children) { parse_keys (current->children, ptable); has_chars = TRUE; } else { g_error ("tag %s does not have child tags in the file %s", (char *) current->name, xml_file); } } if (!g_strcmp0 ((char *) current->name, "string")) { (*ptable)->type = INPUT_PAD_TABLE_TYPE_STRINGS; if (current->children) { parse_table_sub_string (current->children, ptable); has_chars = TRUE; } else { g_error ("tag %s does not have child tags in the file %s", (char *) current->name, xml_file); } } if (!g_strcmp0 ((char *) current->name, "command")) { (*ptable)->type = INPUT_PAD_TABLE_TYPE_COMMANDS; if (current->children) { parse_table_sub_command(current->children, ptable); has_chars = TRUE; } else { g_error ("tag %s does not have child tags in the file %s", (char *) current->name, xml_file); } } } } if (!has_name || !has_chars) { g_error ("tag %s does not find \"name\" or \"chars\" tag in file %s", node->parent ? node->parent->name ? (char *) node->parent->name : "(null)" : "(null)", xml_file); } } static void parse_group (xmlNodePtr node, InputPadGroup **pgroup) { xmlNodePtr current; gboolean has_name = FALSE; gboolean has_table = FALSE; InputPadTable **ptable = &((*pgroup)->table); for (current = node; current; current = current->next) { if (current->type == XML_ELEMENT_NODE) { if (!g_strcmp0 ((char *) current->name, "name")) { if (current->children) { get_content (current->children, &(*pgroup)->name, TRUE); has_name = TRUE; } else { g_error ("tag %s does not have child tags in the file %s", (char *) current->name, xml_file); } } if (!g_strcmp0 ((char *) current->name, "table")) { if (current->children) { *ptable = g_new0 (InputPadTable, 1); (*ptable)->priv = g_new0 (InputPadTablePrivate, 1); (*ptable)->column = 15; parse_table (current->children, ptable); ptable = &((*ptable)->next); has_table = TRUE; } else { g_error ("tag %s does not have child tags in the file %s", (char *) current->name, xml_file); } } } } if (!has_name || !has_table ) { g_error ("tag %s does not find \"name\" or \"table\" tag in file %s", node->parent ? node->parent->name ? (char *) node->parent->name : "(null)" : "(null)", xml_file); } } static void parse_pad (xmlNodePtr node, InputPadGroup **pgroup) { xmlNodePtr current; gboolean has_pad = FALSE; for (current = node; current; current = current->next) { if (current->type == XML_ELEMENT_NODE && !g_strcmp0 ((char *) current->name, "group")) { if (current->children) { *pgroup = g_new0 (InputPadGroup, 1); (*pgroup)->priv = g_new0 (InputPadGroupPrivate, 1); parse_group (current->children, pgroup); has_pad = TRUE; pgroup = &((*pgroup)->next); } else { g_error ("tag %s does not have child tags in the file %s", (char *) current->name, xml_file); } } } if (!has_pad) { g_error ("tag %s does not find \"group\" tag in file %s", node->parent ? node->parent->name ? (char *) node->parent->name : "(null)" : "(null)", xml_file); } } static void parse_input_pad (xmlNodePtr node, InputPadGroup **pgroup) { xmlNodePtr current; gboolean has_pad_child = FALSE; for (current = node; current; current = current->next) { if (current->type == XML_ELEMENT_NODE && !g_strcmp0 ((char *) current->name, "pad")) { if (current->children) { parse_pad (current->children, pgroup); has_pad_child = TRUE; break; } else { g_error ("tag %s does not have child tags in the file %s", (char *) current->name, xml_file); } } } if (!has_pad_child) { g_error ("tag %s does not find \"pad\" tag in file %s", node->parent ? node->parent->name ? (char *) node->parent->name : "(null)" : "(null)", xml_file); } } static gchar * get_user_pad_dir (void) { gchar *home_dir = NULL; gchar *config_dir; struct passwd *pw; if (g_getenv ("HOME")) { home_dir = (gchar *) g_getenv ("HOME"); } else { pw = getpwuid (getuid ()); home_dir = pw->pw_dir; } if (home_dir == NULL) { home_dir = "/"; } config_dir = g_strdup_printf ("%s/.config/input-pad/pad", home_dir); return config_dir; } InputPadGroup * input_pad_group_append_from_file (InputPadGroup *group, const gchar *file, const gchar *domain) { InputPadGroup **pgroup = &group; xmlDocPtr doc; xmlNodePtr node; xmlInitParser (); xmlLoadExtDtdDefaultValue = XML_DETECT_IDS | XML_COMPLETE_ATTRS; xmlSubstituteEntitiesDefault (1); xml_file = file; translation_domain = domain; doc = xmlParseFile (xml_file); if (doc == NULL || xmlDocGetRootElement (doc) == NULL) { g_error ("Unable to parse file: %s", xml_file); } node = xmlDocGetRootElement (doc); if (node == NULL) { g_error ("Top node not found: %s", xml_file); } if (g_strcmp0 ((gchar *) node->name, "input-pad")) { g_error ("The first tag should be : %s", xml_file); } if (node->children == NULL) { g_error ("tag %s does not have child tags in the file %s", (char *) node->name, xml_file); } while (pgroup && *pgroup) { pgroup = &((*pgroup)->next); } parse_input_pad (node->children, pgroup); xmlFreeDoc (doc); xmlCleanupParser (); xml_file = NULL; translation_domain = NULL; return group; } InputPadGroup * input_pad_group_parse_all_files (const char *custom_dirname, const char *domain) { const gchar *dirname = INPUT_PAD_PAD_SYSTEM_DIR; const gchar *filename; gchar *filepath; gchar *config_dir; GDir *dir; GError *error = NULL; InputPadGroup *group = NULL; GSList *file_list = NULL; GSList *list; if (custom_dirname != NULL) { dirname = (const gchar *) custom_dirname; } if (!dirname || !g_file_test (dirname, G_FILE_TEST_IS_DIR)) { g_warning ("Directory Not Found: %s", dirname ? dirname : "(null)"); return NULL; } if ((dir = g_dir_open (dirname, 0, &error)) == NULL) { g_warning ("Cannot Open Directory: %s: %s", dirname, error ? error->message ? error->message : "" : ""); g_error_free (error); return NULL; } while ((filename = g_dir_read_name (dir)) != NULL) { if (!g_str_has_suffix (filename, ".xml")) { g_warning ("File extension is not xml: %s", filename); continue; } filepath = g_build_filename (dirname, filename, NULL); file_list = g_slist_append (file_list, (gpointer) filepath); } g_dir_close (dir); dir = NULL; config_dir = get_user_pad_dir (); if (config_dir && g_file_test (config_dir, G_FILE_TEST_IS_DIR)) { dir = g_dir_open (config_dir, 0, NULL); } while (dir && (filename = g_dir_read_name (dir)) != NULL) { if (!g_str_has_suffix (filename, ".xml")) { g_warning ("File extension is not xml: %s", filename); continue; } filepath = g_build_filename (config_dir, filename, NULL); file_list = g_slist_append (file_list, (gpointer) filepath); } g_free (config_dir); if (dir) { g_dir_close (dir); } if (!file_list) { return NULL; } list = file_list = g_slist_sort (file_list, cmp_filepath); while (list) { filepath = (gchar *) list->data; group = input_pad_group_append_from_file (group, filepath, domain); g_free (filepath); list = g_slist_next (list); } g_slist_free (file_list); return group; } void input_pad_group_destroy (InputPadGroup *group_data) { InputPadGroup *group, *prev_group; InputPadTable *table, *prev_table; group = group_data; while (group) { table = group->table; while (table) { g_free (table->name); table->name = NULL; if (table->type == INPUT_PAD_TABLE_TYPE_CHARS) { g_free (table->data.chars); table->data.chars = NULL; } else if (table->type == INPUT_PAD_TABLE_TYPE_KEYSYMS) { g_free (table->data.keysyms); table->data.keysyms = NULL; } else if (table->type == INPUT_PAD_TABLE_TYPE_STRINGS) { free_string_array (table->data.strs); table->data.strs = NULL; } else if (table->type == INPUT_PAD_TABLE_TYPE_COMMANDS) { free_command_array (table->data.cmds); table->data.cmds = NULL; } else { g_warning ("Free is not defined in type %d", table->type); } prev_table = table; table = table->next; prev_table->next = NULL; g_free (prev_table); } group->table = NULL; g_free (group->name); group->name = NULL; prev_group = group; group = group->next; prev_group->next = NULL; g_free (prev_group); } } input-pad-1.1.0/input-pad/unicode_block.h000066400000000000000000000244171476727667600203300ustar00rootroot00000000000000/* vim:set et sts=4: */ /* input-pad - The input pad * Copyright (C) 2010-2012 Takao Fujiwara * Copyright (C) 2010-2012 Red Hat, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301 USA */ /* This file is generated by unicode_block.sh */ #ifndef __INPUT_PAD_UNICODE_BLOCK_H__ #define __INPUT_PAD_UNICODE_BLOCK_H__ #include "i18n.h" typedef struct _InputPadUnicodeBlockTable InputPadUnicodeBlockTable; struct _InputPadUnicodeBlockTable { unsigned int start; unsigned int end; const char *label; }; static const InputPadUnicodeBlockTable input_pad_unicode_block_table[] = { {0x0000, 0x007F, N_("Basic Latin")}, {0x0080, 0x00FF, N_("Latin-1 Supplement")}, {0x0100, 0x017F, N_("Latin Extended-A")}, {0x0180, 0x024F, N_("Latin Extended-B")}, {0x0250, 0x02AF, N_("IPA Extensions")}, {0x02B0, 0x02FF, N_("Spacing Modifier Letters")}, {0x0300, 0x036F, N_("Combining Diacritical Marks")}, {0x0370, 0x03FF, N_("Greek and Coptic")}, {0x0400, 0x04FF, N_("Cyrillic")}, {0x0500, 0x052F, N_("Cyrillic Supplement")}, {0x0530, 0x058F, N_("Armenian")}, {0x0590, 0x05FF, N_("Hebrew")}, {0x0600, 0x06FF, N_("Arabic")}, {0x0700, 0x074F, N_("Syriac")}, {0x0750, 0x077F, N_("Arabic Supplement")}, {0x0780, 0x07BF, N_("Thaana")}, {0x07C0, 0x07FF, N_("NKo")}, {0x0800, 0x083F, N_("Samaritan")}, {0x0900, 0x097F, N_("Devanagari")}, {0x0980, 0x09FF, N_("Bengali")}, {0x0A00, 0x0A7F, N_("Gurmukhi")}, {0x0A80, 0x0AFF, N_("Gujarati")}, {0x0B00, 0x0B7F, N_("Oriya")}, {0x0B80, 0x0BFF, N_("Tamil")}, {0x0C00, 0x0C7F, N_("Telugu")}, {0x0C80, 0x0CFF, N_("Kannada")}, {0x0D00, 0x0D7F, N_("Malayalam")}, {0x0D80, 0x0DFF, N_("Sinhala")}, {0x0E00, 0x0E7F, N_("Thai")}, {0x0E80, 0x0EFF, N_("Lao")}, {0x0F00, 0x0FFF, N_("Tibetan")}, {0x1000, 0x109F, N_("Myanmar")}, {0x10A0, 0x10FF, N_("Georgian")}, {0x1100, 0x11FF, N_("Hangul Jamo")}, {0x1200, 0x137F, N_("Ethiopic")}, {0x1380, 0x139F, N_("Ethiopic Supplement")}, {0x13A0, 0x13FF, N_("Cherokee")}, {0x1400, 0x167F, N_("Unified Canadian Aboriginal Syllabics")}, {0x1680, 0x169F, N_("Ogham")}, {0x16A0, 0x16FF, N_("Runic")}, {0x1700, 0x171F, N_("Tagalog")}, {0x1720, 0x173F, N_("Hanunoo")}, {0x1740, 0x175F, N_("Buhid")}, {0x1760, 0x177F, N_("Tagbanwa")}, {0x1780, 0x17FF, N_("Khmer")}, {0x1800, 0x18AF, N_("Mongolian")}, {0x18B0, 0x18FF, N_("Unified Canadian Aboriginal Syllabics Extended")}, {0x1900, 0x194F, N_("Limbu")}, {0x1950, 0x197F, N_("Tai Le")}, {0x1980, 0x19DF, N_("New Tai Lue")}, {0x19E0, 0x19FF, N_("Khmer Symbols")}, {0x1A00, 0x1A1F, N_("Buginese")}, {0x1A20, 0x1AAF, N_("Tai Tham")}, {0x1B00, 0x1B7F, N_("Balinese")}, {0x1B80, 0x1BBF, N_("Sundanese")}, {0x1C00, 0x1C4F, N_("Lepcha")}, {0x1C50, 0x1C7F, N_("Ol Chiki")}, {0x1CD0, 0x1CFF, N_("Vedic Extensions")}, {0x1D00, 0x1D7F, N_("Phonetic Extensions")}, {0x1D80, 0x1DBF, N_("Phonetic Extensions Supplement")}, {0x1DC0, 0x1DFF, N_("Combining Diacritical Marks Supplement")}, {0x1E00, 0x1EFF, N_("Latin Extended Additional")}, {0x1F00, 0x1FFF, N_("Greek Extended")}, {0x2000, 0x206F, N_("General Punctuation")}, {0x2070, 0x209F, N_("Superscripts and Subscripts")}, {0x20A0, 0x20CF, N_("Currency Symbols")}, {0x20D0, 0x20FF, N_("Combining Diacritical Marks for Symbols")}, {0x2100, 0x214F, N_("Letterlike Symbols")}, {0x2150, 0x218F, N_("Number Forms")}, {0x2190, 0x21FF, N_("Arrows")}, {0x2200, 0x22FF, N_("Mathematical Operators")}, {0x2300, 0x23FF, N_("Miscellaneous Technical")}, {0x2400, 0x243F, N_("Control Pictures")}, {0x2440, 0x245F, N_("Optical Character Recognition")}, {0x2460, 0x24FF, N_("Enclosed Alphanumerics")}, {0x2500, 0x257F, N_("Box Drawing")}, {0x2580, 0x259F, N_("Block Elements")}, {0x25A0, 0x25FF, N_("Geometric Shapes")}, {0x2600, 0x26FF, N_("Miscellaneous Symbols")}, {0x2700, 0x27BF, N_("Dingbats")}, {0x27C0, 0x27EF, N_("Miscellaneous Mathematical Symbols-A")}, {0x27F0, 0x27FF, N_("Supplemental Arrows-A")}, {0x2800, 0x28FF, N_("Braille Patterns")}, {0x2900, 0x297F, N_("Supplemental Arrows-B")}, {0x2980, 0x29FF, N_("Miscellaneous Mathematical Symbols-B")}, {0x2A00, 0x2AFF, N_("Supplemental Mathematical Operators")}, {0x2B00, 0x2BFF, N_("Miscellaneous Symbols and Arrows")}, {0x2C00, 0x2C5F, N_("Glagolitic")}, {0x2C60, 0x2C7F, N_("Latin Extended-C")}, {0x2C80, 0x2CFF, N_("Coptic")}, {0x2D00, 0x2D2F, N_("Georgian Supplement")}, {0x2D30, 0x2D7F, N_("Tifinagh")}, {0x2D80, 0x2DDF, N_("Ethiopic Extended")}, {0x2DE0, 0x2DFF, N_("Cyrillic Extended-A")}, {0x2E00, 0x2E7F, N_("Supplemental Punctuation")}, {0x2E80, 0x2EFF, N_("CJK Radicals Supplement")}, {0x2F00, 0x2FDF, N_("Kangxi Radicals")}, {0x2FF0, 0x2FFF, N_("Ideographic Description Characters")}, {0x3000, 0x303F, N_("CJK Symbols and Punctuation")}, {0x3040, 0x309F, N_("Hiragana")}, {0x30A0, 0x30FF, N_("Katakana")}, {0x3100, 0x312F, N_("Bopomofo")}, {0x3130, 0x318F, N_("Hangul Compatibility Jamo")}, {0x3190, 0x319F, N_("Kanbun")}, {0x31A0, 0x31BF, N_("Bopomofo Extended")}, {0x31C0, 0x31EF, N_("CJK Strokes")}, {0x31F0, 0x31FF, N_("Katakana Phonetic Extensions")}, {0x3200, 0x32FF, N_("Enclosed CJK Letters and Months")}, {0x3300, 0x33FF, N_("CJK Compatibility")}, {0x3400, 0x4DBF, N_("CJK Unified Ideographs Extension A")}, {0x4DC0, 0x4DFF, N_("Yijing Hexagram Symbols")}, {0x4E00, 0x9FFF, N_("CJK Unified Ideographs")}, {0xA000, 0xA48F, N_("Yi Syllables")}, {0xA490, 0xA4CF, N_("Yi Radicals")}, {0xA4D0, 0xA4FF, N_("Lisu")}, {0xA500, 0xA63F, N_("Vai")}, {0xA640, 0xA69F, N_("Cyrillic Extended-B")}, {0xA6A0, 0xA6FF, N_("Bamum")}, {0xA700, 0xA71F, N_("Modifier Tone Letters")}, {0xA720, 0xA7FF, N_("Latin Extended-D")}, {0xA800, 0xA82F, N_("Syloti Nagri")}, {0xA830, 0xA83F, N_("Common Indic Number Forms")}, {0xA840, 0xA87F, N_("Phags-pa")}, {0xA880, 0xA8DF, N_("Saurashtra")}, {0xA8E0, 0xA8FF, N_("Devanagari Extended")}, {0xA900, 0xA92F, N_("Kayah Li")}, {0xA930, 0xA95F, N_("Rejang")}, {0xA960, 0xA97F, N_("Hangul Jamo Extended-A")}, {0xA980, 0xA9DF, N_("Javanese")}, {0xAA00, 0xAA5F, N_("Cham")}, {0xAA60, 0xAA7F, N_("Myanmar Extended-A")}, {0xAA80, 0xAADF, N_("Tai Viet")}, {0xABC0, 0xABFF, N_("Meetei Mayek")}, {0xAC00, 0xD7AF, N_("Hangul Syllables")}, {0xD7B0, 0xD7FF, N_("Hangul Jamo Extended-B")}, {0xD800, 0xDB7F, N_("High Surrogates")}, {0xDB80, 0xDBFF, N_("High Private Use Surrogates")}, {0xDC00, 0xDFFF, N_("Low Surrogates")}, {0xE000, 0xF8FF, N_("Private Use Area")}, {0xF900, 0xFAFF, N_("CJK Compatibility Ideographs")}, {0xFB00, 0xFB4F, N_("Alphabetic Presentation Forms")}, {0xFB50, 0xFDFF, N_("Arabic Presentation Forms-A")}, {0xFE00, 0xFE0F, N_("Variation Selectors")}, {0xFE10, 0xFE1F, N_("Vertical Forms")}, {0xFE20, 0xFE2F, N_("Combining Half Marks")}, {0xFE30, 0xFE4F, N_("CJK Compatibility Forms")}, {0xFE50, 0xFE6F, N_("Small Form Variants")}, {0xFE70, 0xFEFF, N_("Arabic Presentation Forms-B")}, {0xFF00, 0xFFEF, N_("Halfwidth and Fullwidth Forms")}, {0xFFF0, 0xFFFF, N_("Specials")}, {0x10000, 0x1007F, N_("Linear B Syllabary")}, {0x10080, 0x100FF, N_("Linear B Ideograms")}, {0x10100, 0x1013F, N_("Aegean Numbers")}, {0x10140, 0x1018F, N_("Ancient Greek Numbers")}, {0x10190, 0x101CF, N_("Ancient Symbols")}, {0x101D0, 0x101FF, N_("Phaistos Disc")}, {0x10280, 0x1029F, N_("Lycian")}, {0x102A0, 0x102DF, N_("Carian")}, {0x10300, 0x1032F, N_("Old Italic")}, {0x10330, 0x1034F, N_("Gothic")}, {0x10380, 0x1039F, N_("Ugaritic")}, {0x103A0, 0x103DF, N_("Old Persian")}, {0x10400, 0x1044F, N_("Deseret")}, {0x10450, 0x1047F, N_("Shavian")}, {0x10480, 0x104AF, N_("Osmanya")}, {0x10800, 0x1083F, N_("Cypriot Syllabary")}, {0x10840, 0x1085F, N_("Imperial Aramaic")}, {0x10900, 0x1091F, N_("Phoenician")}, {0x10920, 0x1093F, N_("Lydian")}, {0x10A00, 0x10A5F, N_("Kharoshthi")}, {0x10A60, 0x10A7F, N_("Old South Arabian")}, {0x10B00, 0x10B3F, N_("Avestan")}, {0x10B40, 0x10B5F, N_("Inscriptional Parthian")}, {0x10B60, 0x10B7F, N_("Inscriptional Pahlavi")}, {0x10C00, 0x10C4F, N_("Old Turkic")}, {0x10E60, 0x10E7F, N_("Rumi Numeral Symbols")}, {0x11080, 0x110CF, N_("Kaithi")}, {0x12000, 0x123FF, N_("Cuneiform")}, {0x12400, 0x1247F, N_("Cuneiform Numbers and Punctuation")}, {0x13000, 0x1342F, N_("Egyptian Hieroglyphs")}, {0x1D000, 0x1D0FF, N_("Byzantine Musical Symbols")}, {0x1D100, 0x1D1FF, N_("Musical Symbols")}, {0x1D200, 0x1D24F, N_("Ancient Greek Musical Notation")}, {0x1D300, 0x1D35F, N_("Tai Xuan Jing Symbols")}, {0x1D360, 0x1D37F, N_("Counting Rod Numerals")}, {0x1D400, 0x1D7FF, N_("Mathematical Alphanumeric Symbols")}, {0x1F000, 0x1F02F, N_("Mahjong Tiles")}, {0x1F030, 0x1F09F, N_("Domino Tiles")}, {0x1F100, 0x1F1FF, N_("Enclosed Alphanumeric Supplement")}, {0x1F200, 0x1F2FF, N_("Enclosed Ideographic Supplement")}, {0x20000, 0x2A6DF, N_("CJK Unified Ideographs Extension B")}, {0x2A700, 0x2B73F, N_("CJK Unified Ideographs Extension C")}, {0x2F800, 0x2FA1F, N_("CJK Compatibility Ideographs Supplement")}, {0xE0000, 0xE007F, N_("Tags")}, {0xE0100, 0xE01EF, N_("Variation Selectors Supplement")}, {0xF0000, 0xFFFFF, N_("Supplementary Private Use Area-A")}, {0x100000, 0x10FFFF, N_("Supplementary Private Use Area-B")}, { 0, 0, NULL} }; #endif input-pad-1.1.0/input-pad/unicode_block.sh000077500000000000000000000040101476727667600205010ustar00rootroot00000000000000#!/bin/sh # latest is http://www.unicode.org/Public/UNIDATA/Blocks.txt PROGNAME=`basename $0 .sh` HEADER='/* vim:set et sts=4: */ /* input-pad - The input pad * Copyright (C) 2010-2012 Takao Fujiwara * Copyright (C) 2010-2012 Red Hat, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301 USA */ /* This file is generated by unicode_block.sh */ #ifndef __INPUT_PAD_UNICODE_BLOCK_H__ #define __INPUT_PAD_UNICODE_BLOCK_H__ #include "i18n.h" typedef struct _InputPadUnicodeBlockTable InputPadUnicodeBlockTable; struct _InputPadUnicodeBlockTable { unsigned int start; unsigned int end; const char *label; }; static const InputPadUnicodeBlockTable input_pad_unicode_block_table[] = {' FOOTER=' { 0, 0, NULL} }; #endif ' usage () { printf "usage: %s Blocks.txt\n" $PROGNAME } if [ $# -lt 1 ] ; then usage exit -1 fi FILE=$1 printf "%s\n" "$HEADER" cat $FILE | grep -v "^#" | grep -v '^$' | while read line do BLOCK=`echo "$line" | awk -F';' '{print $1}'` LABEL=`echo "$line" | awk -F';' '{print $2}'` START=`echo "$BLOCK" | sed -e 's|\([^\.]*\)\.\.\([^\.]*\)|\1|'` END=`echo "$BLOCK" | sed -e 's|\([^\.]*\)\.\.\([^\.]*\)|\2|'` LABEL=`echo "$LABEL" | sed -e 's|^ ||'` printf "%s\n" " {0x$START, 0x$END, N_(\"$LABEL\")}," done printf "%s\n" "$FOOTER" input-pad-1.1.0/input-pad/viewport-gtk.c000066400000000000000000000304411476727667600201570ustar00rootroot00000000000000/* vim:set et sts=4: */ /* input-pad - The input pad * Copyright (C) 2014 Takao Fujiwara * Copyright (C) 2014 Red Hat, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301 USA */ #include #include "button-gtk.h" #include "viewport-gtk.h" #define INPUT_PAD_STEP_INCREMENT 20 #define INPUT_PAD_PAGE_INCREMENT 180 #define INPUT_PAD_PAGE_SIZE 200 enum { PROP_0, PROP_HADJUSTMENT, PROP_VADJUSTMENT, PROP_HSCROLL_POLICY, PROP_VSCROLL_POLICY, }; struct _InputPadGtkViewportPrivate { GtkAdjustment *hadjustment; GtkAdjustment *vadjustment; guint hscroll_policy : 1; guint vscroll_policy : 1; GtkWidget *table; unsigned int table_code_min; unsigned int table_code_max; /* Do not use gtk_adjustment_configure() directly. * When input_pad_gtk_viewport_new() is called, * input_pad_gtk_viewport_set_vadjustment() is called with set_property * internally. * But the adjustment will be overrid by * input_pad_gtk_viewport_set_vadjustment() again when * gtk_container_add() -> gtk_scrolled_window_add() is called. * the new adjustment is copied from GtkScrolledWindow to * InputPadGtkViewport so the adjustment values need to be saved here. */ double value; double lower; double upper; double step_increment; double page_increment; double page_size; }; static void input_pad_gtk_viewport_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec); static void input_pad_gtk_viewport_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec); G_DEFINE_TYPE_WITH_CODE (InputPadGtkViewport, input_pad_gtk_viewport, GTK_TYPE_BIN, G_ADD_PRIVATE (InputPadGtkViewport) G_IMPLEMENT_INTERFACE (GTK_TYPE_SCROLLABLE, NULL)) static void update_scrollbar_adjustment (InputPadGtkViewport *viewport) { InputPadGtkViewportPrivate *priv = viewport->priv; if (!priv->vadjustment) return; gtk_adjustment_configure (priv->vadjustment, priv->value, priv->lower, priv->upper, priv->step_increment, priv->page_increment, priv->page_size); } static void input_pad_gtk_viewport_hadjustment_value_changed_cb (GtkAdjustment *hadjustment, gpointer data) { } static void input_pad_gtk_viewport_vadjustment_value_changed_cb (GtkAdjustment *vadjustment, gpointer data) { InputPadGtkViewport *viewport = INPUT_PAD_GTK_VIEWPORT (data); InputPadGtkViewportPrivate *priv = viewport->priv; GtkWidget *table = priv->table; double value = gtk_adjustment_get_value (vadjustment); double step = gtk_adjustment_get_step_increment (vadjustment); #if 0 double page_incre = gtk_adjustment_get_page_increment (vadjustment); double page = gtk_adjustment_get_page_size (vadjustment); double upper = gtk_adjustment_get_upper (vadjustment); #endif unsigned int start; #if 0 unsigned int end; #endif unsigned int min = priv->table_code_min; unsigned int max = priv->table_code_max; unsigned int row; unsigned int num; GList *orig_list, *list; if (table == NULL) return; row = (int) (value / step); start = min + row * INPUT_PAD_MAX_COLUMN; #if 0 end = start + INPUT_PAD_MAX_COLUMN * INPUT_PAD_MAX_WINDOW_ROW - 1; #endif num = start; #if 0 g_warning ("test value-changed %lf %lf %lf %lf %lf\n", value, step, page_incre, page, upper); g_warning ("test value-changed %d %d %d %d\n", start, end, min, max); #endif list = gtk_container_get_children (GTK_CONTAINER (table)); list = g_list_reverse (list); orig_list = list; while (list != NULL) { InputPadGtkButton *button = list->data; if (num > max) input_pad_gtk_button_set_unicode (button, 0); else input_pad_gtk_button_set_unicode (button, num++); list = list->next; } g_list_free (orig_list); } static void input_pad_gtk_viewport_set_hadjustment (InputPadGtkViewport *viewport, GtkAdjustment *adjustment) { InputPadGtkViewportPrivate *priv = viewport->priv; if (adjustment) g_return_if_fail (GTK_IS_ADJUSTMENT (adjustment)); else adjustment = gtk_adjustment_new (0., 0., 0., 0., 0., 0.); if (priv->hadjustment) { g_signal_handlers_disconnect_by_func (priv->hadjustment, input_pad_gtk_viewport_hadjustment_value_changed_cb, viewport); g_object_unref (priv->hadjustment); priv->hadjustment = NULL; } priv->hadjustment = adjustment; g_object_ref_sink (priv->hadjustment); g_signal_connect (priv->hadjustment, "value-changed", G_CALLBACK (input_pad_gtk_viewport_hadjustment_value_changed_cb), viewport); } static void input_pad_gtk_viewport_set_vadjustment (InputPadGtkViewport *viewport, GtkAdjustment *adjustment) { InputPadGtkViewportPrivate *priv = viewport->priv; if (adjustment) g_return_if_fail (GTK_IS_ADJUSTMENT (adjustment)); else adjustment = gtk_adjustment_new (0., 0., 0., 0., 0., 0.); if (priv->vadjustment) { g_signal_handlers_disconnect_by_func (priv->vadjustment, input_pad_gtk_viewport_vadjustment_value_changed_cb, viewport); g_object_unref (priv->vadjustment); priv->vadjustment = NULL; } priv->vadjustment = adjustment; g_object_ref_sink (priv->vadjustment); g_signal_connect (priv->vadjustment, "value-changed", G_CALLBACK (input_pad_gtk_viewport_vadjustment_value_changed_cb), viewport); update_scrollbar_adjustment (viewport); } static void input_pad_gtk_viewport_class_init (InputPadGtkViewportClass *class) { GObjectClass *gobject_class = G_OBJECT_CLASS (class); gobject_class->get_property = input_pad_gtk_viewport_get_property; gobject_class->set_property = input_pad_gtk_viewport_set_property; g_object_class_override_property (gobject_class, PROP_HADJUSTMENT, "hadjustment"); g_object_class_override_property (gobject_class, PROP_VADJUSTMENT, "vadjustment"); g_object_class_override_property (gobject_class, PROP_HSCROLL_POLICY, "hscroll-policy"); g_object_class_override_property (gobject_class, PROP_VSCROLL_POLICY, "vscroll-policy"); } static void input_pad_gtk_viewport_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { InputPadGtkViewport *viewport = INPUT_PAD_GTK_VIEWPORT (object); InputPadGtkViewportPrivate *priv = viewport->priv; switch (prop_id) { case PROP_HADJUSTMENT: g_value_set_object (value, priv->hadjustment); break; case PROP_VADJUSTMENT: g_value_set_object (value, priv->vadjustment); break; case PROP_HSCROLL_POLICY: g_value_set_enum (value, priv->hscroll_policy); break; case PROP_VSCROLL_POLICY: g_value_set_enum (value, priv->vscroll_policy); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } } static void input_pad_gtk_viewport_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { InputPadGtkViewport *viewport; viewport = INPUT_PAD_GTK_VIEWPORT (object); switch (prop_id) { case PROP_HADJUSTMENT: input_pad_gtk_viewport_set_hadjustment (viewport, g_value_get_object (value)); break; case PROP_VADJUSTMENT: input_pad_gtk_viewport_set_vadjustment (viewport, g_value_get_object (value)); break; case PROP_HSCROLL_POLICY: if (viewport->priv->hscroll_policy != g_value_get_enum (value)) { viewport->priv->hscroll_policy = g_value_get_enum (value); //gtk_widget_queue_resize (GTK_WIDGET (viewport)); gtk_widget_queue_resize_no_redraw (GTK_WIDGET (viewport)); g_object_notify_by_pspec (object, pspec); } break; case PROP_VSCROLL_POLICY: if (viewport->priv->vscroll_policy != g_value_get_enum (value)) { viewport->priv->vscroll_policy = g_value_get_enum (value); //gtk_widget_queue_resize (GTK_WIDGET (viewport)); gtk_widget_queue_resize_no_redraw (GTK_WIDGET (viewport)); g_object_notify_by_pspec (object, pspec); } break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } } static void input_pad_gtk_viewport_init (InputPadGtkViewport *viewport) { InputPadGtkViewportPrivate *priv; viewport->priv = input_pad_gtk_viewport_get_instance_private (viewport); priv = viewport->priv; priv->step_increment = INPUT_PAD_STEP_INCREMENT; priv->page_increment = INPUT_PAD_PAGE_INCREMENT; priv->page_size = INPUT_PAD_PAGE_SIZE; } GtkWidget * input_pad_gtk_viewport_new (void) { return g_object_new (INPUT_PAD_TYPE_GTK_VIEWPORT, NULL); } void input_pad_gtk_viewport_table_configure (InputPadGtkViewport *viewport, GtkWidget *table, unsigned int min, unsigned int max) { InputPadGtkViewportPrivate *priv; unsigned int upper; g_return_if_fail (INPUT_PAD_IS_GTK_VIEWPORT (viewport)); g_return_if_fail (GTK_IS_GRID (table)); priv = viewport->priv; priv->table = table; priv->table_code_min = min; priv->table_code_max = max; upper = (priv->table_code_max - priv->table_code_min + 1) / INPUT_PAD_MAX_COLUMN; if ((priv->table_code_max - priv->table_code_min + 1) % INPUT_PAD_MAX_COLUMN > 0) upper++; upper = (upper - INPUT_PAD_MAX_WINDOW_ROW + 1) * INPUT_PAD_STEP_INCREMENT + INPUT_PAD_PAGE_INCREMENT; if (upper >= 0.) priv->upper = (double) upper; priv->step_increment = INPUT_PAD_STEP_INCREMENT; priv->page_increment = INPUT_PAD_PAGE_INCREMENT; priv->page_size = INPUT_PAD_PAGE_SIZE; update_scrollbar_adjustment (viewport); } input-pad-1.1.0/input-pad/viewport-gtk.h000066400000000000000000000052701476727667600201660ustar00rootroot00000000000000/* vim:set et sts=4: */ /* input-pad - The input pad * Copyright (C) 2014 Takao Fujiwara * Copyright (C) 2014 Red Hat, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301 USA */ #ifndef __INPUT_PAD_VIEWPORT_GTK_H__ #define __INPUT_PAD_VIEWPORT_GTK_H__ #include G_BEGIN_DECLS #define INPUT_PAD_MAX_COLUMN 15 #define INPUT_PAD_MAX_ROW 66 #define INPUT_PAD_MAX_WINDOW_ROW 8 #define INPUT_PAD_TYPE_GTK_VIEWPORT (input_pad_gtk_viewport_get_type ()) #define INPUT_PAD_GTK_VIEWPORT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), INPUT_PAD_TYPE_GTK_VIEWPORT, InputPadGtkViewport)) #define INPUT_PAD_GTK_VIEWPORT_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), INPUT_PAD_TYPE_GTK_VIEWPORT, InputPadGtkViewportClass)) #define INPUT_PAD_IS_GTK_VIEWPORT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), INPUT_PAD_TYPE_GTK_VIEWPORT)) typedef struct _InputPadGtkViewport InputPadGtkViewport; typedef struct _InputPadGtkViewportPrivate InputPadGtkViewportPrivate; typedef struct _InputPadGtkViewportClass InputPadGtkViewportClass; struct _InputPadGtkViewport { GtkBin bin; /*< private >*/ InputPadGtkViewportPrivate *priv; }; /** * InputPadGtkViewportClass: * @parent_class: The parent class. */ struct _InputPadGtkViewportClass { GtkBinClass parent_class; /*< private >*/ /* Padding for future expansion */ void (*_gtk_reserved1) (void); void (*_gtk_reserved2) (void); void (*_gtk_reserved3) (void); void (*_gtk_reserved4) (void); }; GType input_pad_gtk_viewport_get_type (void); GtkWidget * input_pad_gtk_viewport_new (void); void input_pad_gtk_viewport_table_configure (InputPadGtkViewport *viewport, GtkWidget *table, unsigned int min, unsigned int max); G_END_DECLS #endif input-pad-1.1.0/input-pad/window-gtk.c000066400000000000000000006107601476727667600176170ustar00rootroot00000000000000/* vim:set et sts=4: */ /* input-pad - The input pad * Copyright (C) 2010-2025 Takao Fujiwara * Copyright (C) 2010-2025 Red Hat, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301 USA */ #ifdef HAVE_CONFIG_H #include #endif #include #include #include #include #include #include /* strlen */ #ifdef ENABLE_NLS #include #endif #include "i18n.h" #include "button-gtk.h" #include "combobox-gtk.h" #include "geometry-gdk.h" #include "input-pad.h" #include "input-pad-group.h" #include "input-pad-kbdui-gtk.h" #include "input-pad-marshal.h" #include "input-pad-private.h" #include "input-pad-window-gtk.h" #include "unicode_block.h" #include "viewport-gtk.h" #define N_KEYBOARD_LAYOUT_PART 3 #define INPUT_PAD_UI_FILE INPUT_PAD_UI_GTK_DIR "/input-pad.ui" #define MAX_UCODE 0x10ffff #define MODULE_NAME_PREFIX "input-pad-" #define USE_GLOBAL_GMODULE 1 #if GTK_CHECK_VERSION (3, 19, 10) # define CSS_DATA_NARROW_BUTTON \ "button { padding-left: 1px;" \ " padding-right: 1px;" \ " padding-top: 1px;" \ " padding-bottom: 1px;" \ " border-top-width: 0px;" \ " border-left-width: 0px;" \ " border-bottom-width: 0px;" \ " border-right-width: 0px; " \ " min-width: 0px; }" # define CSS_DATA_GRAY_NARROW_BUTTON \ "button { padding-left: 1px;" \ " padding-right: 1px;" \ " padding-top: 1px;" \ " padding-bottom: 1px;" \ " border-top-width: 0px;" \ " border-left-width: 0px;" \ " border-bottom-width: 0px;" \ " border-right-width: 0px;" \ " background-color: LightGray; " \ " min-width: 0px; }" #else # define CSS_DATA_NARROW_BUTTON \ "GtkButton { padding-left: 1px;" \ " padding-right: 1px;" \ " padding-top: 1px;" \ " padding-bottom: 1px;" \ " border-top-width: 0px;" \ " border-left-width: 0px;" \ " border-bottom-width: 0px;" \ " border-right-width: 0px; }" # define CSS_DATA_GRAY_NARROW_BUTTON \ "GtkButton { padding-left: 1px;" \ " padding-right: 1px;" \ " padding-top: 1px;" \ " padding-bottom: 1px;" \ " border-top-width: 0px;" \ " border-left-width: 0px;" \ " border-bottom-width: 0px;" \ " border-right-width: 0px;" \ " background-color: LightGray; }" #endif #define INPUT_PAD_GTK_WINDOW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), INPUT_PAD_TYPE_GTK_WINDOW, InputPadGtkWindowPrivate)) typedef struct _CodePointData CodePointData; typedef struct _KeyboardLayoutPart KeyboardLayoutPart; typedef struct _CharTreeViewData CharTreeViewData; typedef struct _TableForEachData TableForEachData; typedef struct _InputPadGtkApplicationClass InputPadGtkApplicationClass; enum { BUTTON_PRESSED, KBD_CHANGED, GROUP_CHANGED, GROUP_APPENDED, CHAR_BUTTON_SENSITIVE, REORDER_BUTTON_PRESSED, LAST_SIGNAL }; enum { APP_ACTIVATED, APP_LAST_SIGNAL }; enum { DIGIT_TEXT_COL = 0, DIGIT_VISIBLE_COL, DIGIT_N_COLS, }; enum { LAYOUT_LAYOUT_NAME_COL = 0, LAYOUT_LAYOUT_DESC_COL, LAYOUT_VARIANT_NAME_COL, LAYOUT_VARIANT_DESC_COL, LAYOUT_VISIBLE_COL, LAYOUT_N_COLS, }; enum { CHAR_BLOCK_LABEL_COL = 0, CHAR_BLOCK_UNICODE_COL, CHAR_BLOCK_UTF8_COL, CHAR_BLOCK_START_COL, CHAR_BLOCK_END_COL, CHAR_BLOCK_VISIBLE_COL, CHAR_BLOCK_N_COLS, }; struct _InputPadGtkApplication { GtkApplication parent; GtkBuilder *builder; InputPadGtkWindow *window; gboolean show; }; struct _InputPadGtkApplicationClass { GtkApplicationClass parent_class; void (* activated) (InputPadGtkApplication *app); }; G_DEFINE_TYPE(InputPadGtkApplication, input_pad_gtk_application, GTK_TYPE_APPLICATION); struct _InputPadGtkWindowPrivate { InputPadGroup *group; guint show_all : 1; GModule *module_gdk_xtest; InputPadXKBKeyList *xkb_key_list; guint keyboard_state; InputPadXKBConfigReg *xkb_config_reg; gchar **group_layouts; gchar **group_variants; gchar **group_options; guint char_button_sensitive : 1; /* The kbdui_name is used for each window instance. */ gchar *kbdui_name; InputPadGtkKbdui *kbdui; GtkToggleAction *show_layout_action; GtkWidget *config_layouts_dialog; GtkWidget *config_layouts_add_treeview; GtkWidget *config_layouts_remove_treeview; GtkWidget *config_layouts_combobox; GtkWidget *config_options_dialog; GtkWidget *config_options_vbox; GtkWidget *top_custom_char_view_hbox; GtkWidget *top_char_view_hbox; GtkWidget *top_keyboard_layout_vbox; }; struct _CodePointData { GtkWidget *signal_window; GtkWidget *digit_hbox; GtkWidget *char_label; GtkWidget *down_button; GtkWidget *up_button; guint codepoint; }; struct _TableForEachData { GtkWidget *table; InputPadGtkWindow *window; }; struct _KeyboardLayoutPart { int key_row_id; int row; int col; GtkWidget *table; }; struct _CharTreeViewData { GtkWidget *scrolled; GtkWidget *window; GtkWidget *main_tv; GtkWidget *sub_tv; }; static guint signals[LAST_SIGNAL] = { 0 }; static guint app_signals[APP_LAST_SIGNAL] = { 0 }; #ifdef MODULE_XTEST_GDK_BASE static gboolean use_module_xtest = FALSE; #endif /* The kbdui_name is used for CLI only. */ static gchar *kbdui_name = NULL; static gboolean ask_version = FALSE; static guint set_show_table_type = 1; static guint set_show_layout_type = 0; #ifdef USE_GLOBAL_GMODULE /* module_table: global GModule hash table * G_DEFINE_TYPE() uses static volatile address in ##_get_type() so * if we close GModule and reopen it, the address will be changed and * g_type_register_static_simple() could not get the previous register. * The workaround is to have the global GModule table not to be closed * even thogh GtkWindow is destroyed. */ static GHashTable *module_table = NULL; #endif #if 0 static GtkBuildableIface *parent_buildable_iface; #endif static GOptionEntry entries[] = { { "version", 'v', 0, G_OPTION_ARG_NONE, &ask_version, N_("Display version"), NULL}, { "with-kbdui", 'k', 0, G_OPTION_ARG_STRING, &kbdui_name, /* Translators: the word 'KBDUI' is not translated. */ N_("Use KBDUI to draw keyboard"), "KBDUI"}, { "with-table-type", 't', 0, G_OPTION_ARG_INT, &set_show_table_type, /* Translators: the word 'TYPE' is not translated. */ N_("Use TYPE of char table. The available TYPE=0, 1, 2"), "TYPE"}, { "with-layout-type", 'l', 0, G_OPTION_ARG_INT, &set_show_layout_type, /* Translators: the word 'TYPE' is not translated. */ N_("Use TYPE of keyboard layout. The available TYPE=0, 1"), "TYPE"}, { NULL } }; #ifdef MODULE_XTEST_GDK_BASE static GOptionEntry enable_xtest_entry[] = { { "enable-module-xtest", 'x', 0, G_OPTION_ARG_NONE, &use_module_xtest, N_("Use XTEST module to send key events"), NULL}, }; static GOptionEntry disable_xtest_entry[] = { { "disable-module-xtest", 'x', 0, G_OPTION_ARG_NONE, &use_module_xtest, N_("Use XSendEvent to send key events"), NULL}, }; #endif static void xor_modifiers (InputPadGtkWindow *window, guint modifiers); static guint digit_hbox_get_code_point (GtkWidget *digit_hbox); static void digit_hbox_set_code_point (GtkWidget *digit_hbox, guint code); static void char_label_set_code_point (GtkWidget *char_label, guint code); static void set_code_point_base (CodePointData *cp_data, int n_encoding); static InputPadGroup * get_nth_pad_group (InputPadGroup *group, int nth); static InputPadTable * get_nth_pad_table (InputPadTable *table, int nth); static void run_command (const gchar *command, gchar **command_output); static void append_custom_char_view_table (GtkWidget *scrolled, InputPadTable *table_data); static void destroy_custom_char_view_table (GtkWidget *scrolled, InputPadGtkWindow *window); static char * get_keysym_display_name (guint keysym, GtkWidget *widget, gchar **tooltipp); static void create_keyboard_layout_ui_real_default (GtkWidget *vbox, InputPadGtkWindow *window); G_INLINE_FUNC void create_keyboard_layout_ui_real (GtkWidget *vbox, InputPadGtkWindow *window); static void destroy_prev_keyboard_layout_default (GtkWidget *vbox, InputPadGtkWindow *window); G_INLINE_FUNC void destroy_prev_keyboard_layout (GtkWidget *vbox, InputPadGtkWindow *window); static void config_layouts_combobox_remove_layout (GtkTreeStore *list, const gchar *layout_name, const gchar *layout_desc, const gchar *variant_name, const gchar *variant_desc); static void config_layouts_list_append_layout (GtkListStore *list, const gchar *layout_name, const gchar *layout_desc, const gchar *variant_name, const gchar *variant_desc); static void config_layouts_list_remove_iter (GtkListStore *list, GtkTreeIter *iter); static void create_keyboard_layout_list_ui_real (GtkWidget *vbox, InputPadGtkWindow *window); static GtkTreeModel * custom_char_table_model_new (InputPadGtkWindow *window, InputPadTable *table); static void create_custom_char_views (GtkWidget *hbox, InputPadGtkWindow *window); static void destroy_custom_char_views (GtkWidget *hbox, InputPadGtkWindow *window); static void append_all_char_view_table (GtkWidget *scrolled, unsigned int start, unsigned int end, GtkWidget *window); static void destroy_all_char_view_table (GtkWidget *scrolled, InputPadGtkWindow *window); static void input_pad_gtk_window_real_destroy (GtkWidget *widget); static void on_toggle_action (GSimpleAction *action, GVariant *parameter, gpointer app); static void on_check_action (GSimpleAction *action, GVariant *parameter, gpointer app); G_DEFINE_TYPE_WITH_PRIVATE (InputPadGtkWindow, input_pad_gtk_window, GTK_TYPE_APPLICATION_WINDOW); static void on_window_keyboard_changed (InputPadGtkWindow *window, gint group, gpointer data) { InputPadGtkButton *button; guint **keysyms; int i = 0; gchar *tooltip, *display_name; g_return_if_fail (window != NULL && INPUT_PAD_IS_GTK_WINDOW (window)); g_return_if_fail (data != NULL && INPUT_PAD_IS_GTK_BUTTON (data)); button = INPUT_PAD_GTK_BUTTON (data); keysyms = input_pad_gtk_button_get_all_keysyms (button); g_return_if_fail (keysyms != NULL); while (keysyms[i]) i++; if (group >= i) { return; } input_pad_gtk_button_set_keysym_group (button, group); input_pad_gtk_button_set_keysym (button, keysyms[group][0]); display_name = get_keysym_display_name (keysyms[group][0], GTK_WIDGET (window), &tooltip); input_pad_gtk_button_set_label_size (button, display_name, KEYBOARD_ICON_SIZE); gtk_widget_set_tooltip_text (GTK_WIDGET (button), tooltip); g_free (display_name); } static void on_window_keyboard_changed_combobox (InputPadGtkWindow *window, gint group, gpointer data) { GtkTreeModel *model; GtkTreeIter active_iter; GtkTreeIter iter; gchar **group_layouts; gchar *active_layout = NULL; gchar *layout; gchar *desc; g_return_if_fail (window != NULL && INPUT_PAD_IS_GTK_WINDOW (window)); if ((group_layouts = window->priv->group_layouts) == NULL) { return; } g_return_if_fail (data != NULL && GTK_IS_COMBO_BOX (data)); model = gtk_combo_box_get_model (GTK_COMBO_BOX (data)); if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (data), &active_iter)) { gtk_tree_model_get (model, &active_iter, LAYOUT_LAYOUT_NAME_COL, &active_layout, -1); } if (!gtk_tree_model_get_iter_first (model, &iter)) { g_warning ("Could not get the first iter in layout combo box"); g_free (active_layout); return; } do { gtk_tree_model_get (model, &iter, LAYOUT_LAYOUT_NAME_COL, &layout, LAYOUT_LAYOUT_DESC_COL, &desc, -1); if (!g_strcmp0 (group_layouts[group], layout) && (g_strcmp0 (active_layout, layout) != 0)) { gtk_combo_box_set_active_iter (GTK_COMBO_BOX (data), &iter); g_free (layout); g_free (desc); break; } g_free (layout); g_free (desc); } while (gtk_tree_model_iter_next (model, &iter)); g_free (active_layout); } static void on_window_group_changed_custom_char_views (InputPadGtkWindow *window, gchar *paddir, gchar *domain, gpointer data) { GtkWidget *hbox; InputPadGroup *custom_group = NULL; g_return_if_fail (INPUT_PAD_IS_GTK_WINDOW (window)); g_return_if_fail (GTK_IS_BOX (data)); g_return_if_fail (window->priv != NULL); g_return_if_fail (window->priv->group != NULL); hbox = GTK_WIDGET (data); destroy_custom_char_views (hbox, window); if (paddir != NULL) { custom_group = input_pad_group_parse_all_files (paddir, domain); } if (custom_group != NULL) { input_pad_group_destroy (window->priv->group); window->priv->group = custom_group; } create_custom_char_views (hbox, window); } static void on_window_group_appended_custom_char_views (InputPadGtkWindow *window, gchar *padfile, gchar *domain, gpointer data) { GtkWidget *hbox; InputPadGroup *custom_group = NULL; g_return_if_fail (INPUT_PAD_IS_GTK_WINDOW (window)); g_return_if_fail (GTK_IS_BOX (data)); g_return_if_fail (window->priv != NULL); g_return_if_fail (window->priv->group != NULL); hbox = GTK_WIDGET (data); destroy_custom_char_views (hbox, window); if (padfile != NULL) { custom_group = input_pad_group_append_from_file (window->priv->group, padfile, domain); } if (custom_group != NULL) { window->priv->group = custom_group; } create_custom_char_views (hbox, window); } static void on_window_char_button_sensitive (InputPadGtkWindow *window, gboolean sensitive, gpointer data) { GtkWidget *button; g_return_if_fail (INPUT_PAD_IS_GTK_WINDOW (window)); g_return_if_fail (GTK_IS_BUTTON (data)); button = GTK_WIDGET (data); gtk_widget_set_sensitive (button, sensitive); } static void on_button_encoding_clicked (GtkButton *button, gpointer data) { gboolean active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button)); const gchar *name; if (!active) return; name = gtk_buildable_get_name (GTK_BUILDABLE (button)); if (name == NULL) { name = (const gchar *) g_object_get_data (G_OBJECT (button), "gtk-builder-name"); } g_return_if_fail (name != NULL); g_return_if_fail (g_str_has_prefix (name, "Encoding")); g_debug ("test %s %d\n", name ? name : "(null)", active); } static void on_button_base_clicked (GtkButton *button, gpointer data) { CodePointData *cp_data; gboolean active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button)); const gchar *name; int base; if (!active) return; cp_data = (CodePointData *) data; name = gtk_buildable_get_name (GTK_BUILDABLE (button)); if (name == NULL) { name = (const gchar *) g_object_get_data (G_OBJECT (button), "gtk-builder-name"); } g_return_if_fail (name != NULL); g_return_if_fail (g_str_has_prefix (name, "Base")); base = (int) g_ascii_strtoll (name + strlen ("Base"), NULL, 10); set_code_point_base (cp_data, base); } static void on_button_shift_clicked (GtkButton *button, gpointer data) { InputPadGtkButton *gen_button; guint current_keysym; guint new_keysym = 0; int i, group; guint **keysyms; gchar *tooltip; gchar *display_name; g_return_if_fail (INPUT_PAD_IS_GTK_BUTTON (data)); gen_button = INPUT_PAD_GTK_BUTTON (data); current_keysym = input_pad_gtk_button_get_keysym (gen_button); group = input_pad_gtk_button_get_keysym_group (gen_button); keysyms = input_pad_gtk_button_get_all_keysyms (gen_button); if (keysyms == NULL || keysyms[group] == NULL) { return; } if (current_keysym == 0 || current_keysym == XK_Shift_L || current_keysym == XK_Shift_R) { return; } for (i = 0; keysyms[group][i] && (i < 20); i++) { if (keysyms[group][i] == current_keysym) { break; } } if (i == 0 && keysyms[group][i] && keysyms[group][i + 1]) { new_keysym = keysyms[group][i + 1]; } else { new_keysym = keysyms[group][0]; } if (new_keysym) { display_name = get_keysym_display_name (new_keysym, GTK_WIDGET (button), &tooltip); input_pad_gtk_button_set_keysym (gen_button, new_keysym); input_pad_gtk_button_set_label_size (gen_button, display_name, KEYBOARD_ICON_SIZE); g_free (display_name); gtk_widget_set_tooltip_text (GTK_WIDGET (gen_button), tooltip); } } static void on_button_ctrl_clicked (GtkButton *button, gpointer data) { InputPadGtkWindow *window; g_return_if_fail (INPUT_PAD_IS_GTK_WINDOW (data)); window = INPUT_PAD_GTK_WINDOW (data); xor_modifiers (window, ControlMask); } static void on_button_alt_clicked (GtkButton *button, gpointer data) { InputPadGtkWindow *window; g_return_if_fail (INPUT_PAD_IS_GTK_WINDOW (data)); window = INPUT_PAD_GTK_WINDOW (data); xor_modifiers (window, Mod1Mask); } static void on_button_ok_clicked (GtkButton *button, gpointer data) { GtkWidget *contents_dlg = GTK_WIDGET (data); gtk_widget_hide (contents_dlg); } static void on_button_down_pressed (GtkButton *button, gpointer data) { CodePointData *cp_data = (CodePointData*) data; guint code; if (cp_data->codepoint == 0) return; code = --cp_data->codepoint; digit_hbox_set_code_point (cp_data->digit_hbox, code); char_label_set_code_point (cp_data->char_label, code); } static void on_button_up_pressed (GtkButton *button, gpointer data) { CodePointData *cp_data = (CodePointData*) data; guint code; if (cp_data->codepoint >= MAX_UCODE) return; code = ++cp_data->codepoint; digit_hbox_set_code_point (cp_data->digit_hbox, code); char_label_set_code_point (cp_data->char_label, code); } static void on_combobox_layout_changed (GtkComboBox *combobox, gpointer data) { InputPadGtkWindow *window; GtkTreeIter iter; GtkTreeModel *model; gchar *layout = NULL; gchar *variant = NULL; gchar *option = NULL; GtkWidget *keyboard_vbox; g_return_if_fail (data != NULL && INPUT_PAD_IS_GTK_WINDOW (data)); window = INPUT_PAD_GTK_WINDOW (data); if (!gtk_combo_box_get_active_iter (combobox, &iter)) { return; } model = gtk_combo_box_get_model (combobox); gtk_tree_model_get (model, &iter, LAYOUT_LAYOUT_NAME_COL, &layout, LAYOUT_VARIANT_NAME_COL, &variant, -1); if (window->priv->group_options) { option = g_strjoinv (",", window->priv->group_options); } input_pad_gdk_xkb_set_layout (window, window->priv->xkb_key_list, layout, variant, option); g_free (layout); g_free (variant); g_free (option); if (window->priv->xkb_key_list) { input_pad_gdk_xkb_destroy_keyboard_layouts (window, window->priv->xkb_key_list); window->priv->xkb_key_list = NULL; } window->priv->xkb_key_list = input_pad_gdk_xkb_parse_keyboard_layouts (window); if (window->priv->kbdui_name && window->priv->xkb_key_list == NULL) { return; } keyboard_vbox = gtk_widget_get_parent (gtk_widget_get_parent (GTK_WIDGET (combobox))); destroy_prev_keyboard_layout (keyboard_vbox, window); create_keyboard_layout_ui_real (keyboard_vbox, window); if (window->priv->group_layouts) { g_strfreev (window->priv->group_layouts); window->priv->group_layouts = NULL; } if (window->priv->group_variants) { g_strfreev (window->priv->group_variants); window->priv->group_variants = NULL; } if (window->priv->group_options) { g_strfreev (window->priv->group_options); window->priv->group_options = NULL; } window->priv->group_layouts = input_pad_gdk_xkb_get_group_layouts (window, window->priv->xkb_key_list); window->priv->group_variants = input_pad_gdk_xkb_get_group_variants (window, window->priv->xkb_key_list); window->priv->group_options = input_pad_gdk_xkb_get_group_options (window, window->priv->xkb_key_list); input_pad_gdk_xkb_signal_emit (window, signals[KBD_CHANGED]); } static void xor_modifiers (InputPadGtkWindow *window, guint modifiers) { guint state = window->priv->keyboard_state; if (state & modifiers) { state ^= modifiers; } else { state |= modifiers; } window->priv->keyboard_state = state; } /* * % xterm -xrm "XTerm*allowSendEvents: true" */ static int send_key_event (GdkWindow *gdkwindow, guint keysym, guint keycode, guint state) { XEvent xevent; Window input_focus; int revert; XGetInputFocus (GDK_WINDOW_XDISPLAY (gdkwindow), &input_focus, &revert); if (input_focus == (Window) 0) { g_warning ("WARNING: Could not get a focused window."); return FALSE; } xevent.type = KeyPress; xevent.xkey.type = KeyPress; xevent.xkey.serial = 0L; xevent.xkey.send_event = True; xevent.xkey.display = GDK_WINDOW_XDISPLAY (gdkwindow); xevent.xkey.root = XDefaultRootWindow (xevent.xkey.display); xevent.xkey.window = input_focus; xevent.xkey.subwindow = xevent.xkey.window; xevent.xkey.time = CurrentTime; xevent.xkey.state = state; if (keycode) { xevent.xkey.keycode = keycode; } else { xevent.xkey.keycode = XKeysymToKeycode (xevent.xkey.display, (KeySym) keysym); } xevent.xkey.same_screen = True; XSendEvent (xevent.xkey.display, xevent.xkey.window, True, KeyPressMask, &xevent); XSync (xevent.xkey.display, False); xevent.type = KeyRelease; xevent.xkey.type = KeyRelease; XSendEvent (xevent.xkey.display, xevent.xkey.window, True, KeyReleaseMask, &xevent); XSync (xevent.xkey.display, False); return TRUE; } #if 0 /* deprecated */ static guint get_state (const char *str, guint keysym) { guint state = 0; if (!str || !*str || keysym > 0x7f) { return 0; } if (*str >= 'A' && *str <= 'Z') { return ShiftMask; } switch (*str) { case '!': case '\"': case '#': case '$': case '%': case '&': case '\'': case '(': case ')': case '~': case '=': case '|': case '{': case '}': case '`': case '+': case '*': case '?': case '_': state = ShiftMask; break; default:; } return state; } #endif static void on_button_send_clicked (GtkButton *button, gpointer data) { CodePointData *cp_data; const gchar *str; guint code; guint state = 0; gboolean retval = FALSE; InputPadTableType type; cp_data = (CodePointData *) data; g_return_if_fail (GTK_IS_LABEL (cp_data->char_label)); g_return_if_fail (GTK_IS_CONTAINER (cp_data->digit_hbox)); g_return_if_fail (GTK_IS_WIDGET (cp_data->signal_window)); str = gtk_label_get_label (GTK_LABEL (cp_data->char_label)); /* Decided input-pad always sends char but not keysym. * Now keyboard layout can be used instead. */ #if 0 code = digit_hbox_get_code_point (cp_data->digit_hbox); state = get_state (str, code); if (code < 0x7f) { type = INPUT_PAD_TABLE_TYPE_KEYSYMS; } else { type = INPUT_PAD_TABLE_TYPE_CHARS; code = 0; } #else type = INPUT_PAD_TABLE_TYPE_CHARS; code = 0; state = 0; #endif g_signal_emit (cp_data->signal_window, signals[BUTTON_PRESSED], 0, str, type, code, 0, state, &retval); } static void on_button_config_layouts_clicked (GtkButton *button, gpointer data) { GtkWidget *dlg = GTK_WIDGET (data); GtkWidget *top_window = gtk_widget_get_toplevel (GTK_WIDGET (button)); gtk_window_set_transient_for (GTK_WINDOW (dlg), GTK_WINDOW (top_window)); gtk_dialog_run (GTK_DIALOG (dlg)); gtk_widget_hide (dlg); } static void on_button_config_layouts_close_clicked (GtkButton *button, gpointer data) { GtkWidget *dlg = GTK_WIDGET (data); gtk_widget_hide (dlg); } static void on_button_config_layouts_add_clicked (GtkButton *button, gpointer data) { InputPadGtkWindow *window; GtkWidget *combobox; GtkWidget *add_treeview; GtkWidget *remove_treeview; GtkTreeModel *combo_model; GtkTreeModel *add_model; GtkTreeModel *remove_model; GtkTreeSelection *selection; GtkTreeIter iter; gchar *layout_name = NULL; gchar *layout_desc = NULL; gchar *variant_name = NULL; gchar *variant_desc = NULL; g_return_if_fail (data != NULL && INPUT_PAD_IS_GTK_WINDOW (data)); window = INPUT_PAD_GTK_WINDOW (data); combobox = window->priv->config_layouts_combobox; add_treeview = window->priv->config_layouts_add_treeview; combo_model = gtk_combo_box_get_model (GTK_COMBO_BOX (combobox)); remove_treeview = window->priv->config_layouts_remove_treeview; remove_model = gtk_tree_view_get_model (GTK_TREE_VIEW (remove_treeview)); selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (add_treeview)); if (!gtk_tree_selection_get_selected (selection, &add_model, &iter)) { return; } gtk_tree_model_get (add_model, &iter, LAYOUT_LAYOUT_NAME_COL, &layout_name, LAYOUT_LAYOUT_DESC_COL, &layout_desc, LAYOUT_VARIANT_NAME_COL, &variant_name, LAYOUT_VARIANT_DESC_COL, &variant_desc, -1); config_layouts_list_remove_iter (GTK_LIST_STORE (add_model), &iter); config_layouts_list_append_layout (GTK_LIST_STORE (remove_model), layout_name, layout_desc, variant_name, variant_desc); gtk_tree_store_append (GTK_TREE_STORE (combo_model), &iter, NULL); gtk_tree_store_set (GTK_TREE_STORE (combo_model), &iter, LAYOUT_LAYOUT_NAME_COL, g_strdup (layout_name), LAYOUT_LAYOUT_DESC_COL, variant_desc ? g_strdup (variant_desc) : g_strdup (layout_desc), LAYOUT_VARIANT_NAME_COL, g_strdup (variant_name), LAYOUT_VARIANT_DESC_COL, NULL, LAYOUT_VISIBLE_COL, TRUE, -1); g_free (layout_name); g_free (layout_desc); g_free (variant_name); g_free (variant_desc); } static void on_button_config_layouts_remove_clicked (GtkButton *button, gpointer data) { InputPadGtkWindow *window; gchar **group_layouts = NULL; gchar **group_variants = NULL; GtkWidget *combobox; GtkWidget *add_treeview; GtkWidget *remove_treeview; GtkTreeModel *combo_model; GtkTreeModel *add_model; GtkTreeModel *remove_model; GtkTreeSelection *selection; GtkTreeIter iter; gchar *layout_name = NULL; gchar *layout_desc = NULL; gchar *variant_name = NULL; gchar *variant_desc = NULL; int i; gboolean is_default_layout = FALSE; g_return_if_fail (data != NULL && INPUT_PAD_IS_GTK_WINDOW (data)); window = INPUT_PAD_GTK_WINDOW (data); group_layouts = window->priv->group_layouts; group_variants = window->priv->group_variants; combobox = window->priv->config_layouts_combobox; add_treeview = window->priv->config_layouts_add_treeview; remove_treeview = window->priv->config_layouts_remove_treeview; combo_model = gtk_combo_box_get_model (GTK_COMBO_BOX (combobox)); add_model = gtk_tree_view_get_model (GTK_TREE_VIEW (add_treeview)); selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (remove_treeview)); if (!gtk_tree_selection_get_selected (selection, &remove_model, &iter)) { return; } gtk_tree_model_get (remove_model, &iter, LAYOUT_LAYOUT_NAME_COL, &layout_name, LAYOUT_LAYOUT_DESC_COL, &layout_desc, LAYOUT_VARIANT_NAME_COL, &variant_name, LAYOUT_VARIANT_DESC_COL, &variant_desc, -1); for (i = 0; group_layouts[i]; i++) { if (!g_strcmp0 (group_layouts[i], layout_name)) { if (group_variants == NULL || i >= g_strv_length (group_variants) || group_variants[i] == NULL || *group_variants[i] == '\0') { if (variant_name == NULL) { is_default_layout = TRUE; break; } } else if (!g_strcmp0 (group_variants[i], variant_name)) { is_default_layout = TRUE; break; } } } if (!is_default_layout) { config_layouts_list_remove_iter (GTK_LIST_STORE (remove_model), &iter); config_layouts_list_append_layout (GTK_LIST_STORE (add_model), layout_name, layout_desc, variant_name, variant_desc); config_layouts_combobox_remove_layout (GTK_TREE_STORE (combo_model), layout_name, layout_desc, variant_name, variant_desc); } g_free (layout_name); g_free (layout_desc); g_free (variant_name); g_free (variant_desc); } static void on_button_config_options_close_clicked (GtkButton *button, gpointer data) { InputPadGtkWindow *window; GList *orig_list, *orig_list_button; GList *list = NULL; GList *list_button = NULL; GtkWidget *expander; GtkWidget *vbox; GtkWidget *checkbutton; GtkWidget *combobox; GtkTreeIter iter; GtkTreeModel *model; const gchar *text; gchar *layout = NULL; gchar *variant = NULL; gchar *option = NULL; g_return_if_fail (data != NULL && INPUT_PAD_IS_GTK_WINDOW (data)); window = INPUT_PAD_GTK_WINDOW (data); gtk_widget_hide (window->priv->config_options_dialog); list = gtk_container_get_children (GTK_CONTAINER (window->priv->config_options_vbox)); orig_list = list; while (list) { GList *tmp_list; expander = GTK_WIDGET (list->data); tmp_list = gtk_container_get_children (GTK_CONTAINER (expander)); vbox = GTK_WIDGET (tmp_list->data); g_list_free (tmp_list); list_button = gtk_container_get_children (GTK_CONTAINER (vbox)); orig_list_button = list_button; while (list_button) { checkbutton = GTK_WIDGET (list_button->data); text = (gchar *) g_object_get_data (G_OBJECT (checkbutton), "option"); if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (checkbutton))) { if (option == NULL) { option = g_strdup (text); } else { gchar *p = g_strdup_printf ("%s,%s", option, text); g_free (option); option = p; } } list_button = list_button->next; } g_list_free (orig_list_button); list = list->next; } g_list_free (orig_list); combobox = window->priv->config_layouts_combobox; if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (combobox), &iter)) { return; } model = gtk_combo_box_get_model (GTK_COMBO_BOX (combobox)); gtk_tree_model_get (model, &iter, LAYOUT_LAYOUT_NAME_COL, &layout, LAYOUT_VARIANT_NAME_COL, &variant, -1); if (option) { g_strfreev (window->priv->group_options); window->priv->group_options = g_strsplit (option, ",", -1); } if (layout) { input_pad_gdk_xkb_set_layout (window, window->priv->xkb_key_list, layout, variant, option); } g_free (layout); g_free (variant); g_free (option); } static void on_button_pressed (GtkButton *button, gpointer data) { InputPadGtkWindow *window; InputPadGtkButton *ibutton; InputPadTableType type; const char *str; const char *rawtext; char *command_output = NULL; guint keycode; guint keysym; guint **keysyms; guint group; guint state = 0; gboolean retval = FALSE; g_return_if_fail (INPUT_PAD_IS_GTK_BUTTON (button)); g_return_if_fail (data != NULL && INPUT_PAD_IS_GTK_WINDOW (data)); window = INPUT_PAD_GTK_WINDOW (data); ibutton = INPUT_PAD_GTK_BUTTON (button); str = input_pad_gtk_button_get_label (ibutton); rawtext = input_pad_gtk_button_get_rawtext (ibutton); type = input_pad_gtk_button_get_table_type (ibutton); keycode = input_pad_gtk_button_get_keycode (ibutton); keysym = input_pad_gtk_button_get_keysym (ibutton); keysyms = input_pad_gtk_button_get_all_keysyms (ibutton); group = input_pad_gtk_button_get_keysym_group (ibutton); state = window->priv->keyboard_state; if (!g_strcmp0 (str, " ") && keysym == (guint) '\t' && keycode == 0 && keysyms == NULL) { str = "\t"; keysym = 0; } else if (type == INPUT_PAD_TABLE_TYPE_COMMANDS) { run_command (rawtext, &command_output); if (command_output == NULL) { return; } str = command_output; } else if (rawtext) { str = rawtext; } if (keysyms && (keysym != keysyms[group][0])) { state |= ShiftMask; } state = input_pad_xkb_build_core_state (state, group); g_signal_emit (window, signals[BUTTON_PRESSED], 0, str, type, keysym, keycode, state, &retval); if (type == INPUT_PAD_TABLE_TYPE_COMMANDS) { g_free (command_output); } if (state & ShiftMask) { state ^= ShiftMask; } if ((state & ControlMask) && (keysym != XK_Control_L) && (keysym != XK_Control_R)) { state ^= ControlMask; } if ((state & Mod1Mask) && (keysym != XK_Alt_L) && (keysym != XK_Alt_R)) { state ^= Mod1Mask; } window->priv->keyboard_state = state; } static void on_button_pressed_repeat (InputPadGtkButton *button, gpointer data) { guint keysym; g_return_if_fail (INPUT_PAD_IS_GTK_BUTTON (button)); keysym = input_pad_gtk_button_get_keysym (button); if ((keysym == XK_Control_L) || (keysym == XK_Control_R) || (keysym == XK_Alt_L) || (keysym == XK_Alt_L) || (keysym == XK_Shift_L) || (keysym == XK_Shift_R) || (keysym == XK_Num_Lock) || FALSE) { return; } on_button_pressed (GTK_BUTTON (button), data); } static void on_button_layout_arrow_pressed (GtkButton *button, gpointer data) { KeyboardLayoutPart *table_data = (KeyboardLayoutPart *) data; int i; int reduced_width = 0; int width, height; const gchar *prev_label; gboolean extend = FALSE; GtkWidget *toplevel; prev_label = gtk_button_get_label (button); if (!g_strcmp0 (prev_label, "->")) { extend = TRUE; } else { extend = FALSE; } for (i = 1; i < N_KEYBOARD_LAYOUT_PART; i++) { if (extend) { gtk_widget_show (table_data[i].table); gtk_button_set_label (button, "<-"); gtk_widget_set_tooltip_text (GTK_WIDGET (button), _("Fold layout")); } else { gtk_widget_hide (table_data[i].table); gtk_button_set_label (button, "->"); gtk_widget_set_tooltip_text (GTK_WIDGET (button), _("Extend layout")); reduced_width += gtk_widget_get_allocated_width (table_data[i].table); } } if (!extend && reduced_width > 0) { toplevel = gtk_widget_get_toplevel (table_data[0].table); g_return_if_fail (GTK_IS_WINDOW (toplevel)); gtk_window_get_size (GTK_WINDOW (toplevel), &width, &height); if (width > reduced_width) { width -= reduced_width; gtk_window_resize (GTK_WINDOW (toplevel), width, height); gtk_widget_queue_resize (toplevel); } } } static void on_checkbutton_config_options_option_clicked (GtkButton *button, gpointer data) { GtkWidget *expander; GtkWidget *label; int checked; gchar *text; g_return_if_fail (GTK_IS_EXPANDER (data)); expander = GTK_WIDGET (data); label = gtk_expander_get_label_widget (GTK_EXPANDER (expander)); checked = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (expander), "checked")); if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button))) { text = g_strdup_printf ("%s", gtk_label_get_text (GTK_LABEL (label))); gtk_label_set_markup (GTK_LABEL (label), text); checked++; } else { checked--; if (checked <= 0) { text = g_strdup (gtk_label_get_text (GTK_LABEL (label))); gtk_label_set_text (GTK_LABEL (label), text); g_free (text); } } g_object_set_data (G_OBJECT (expander), "checked", GINT_TO_POINTER (checked)); } static void on_combobox_changed (GtkComboBox *combobox, gpointer data) { CodePointData *cp_data; guint code; g_return_if_fail (GTK_IS_COMBO_BOX (combobox)); g_return_if_fail (data != NULL); cp_data = (CodePointData *) data; g_return_if_fail (GTK_IS_CONTAINER (cp_data->digit_hbox)); g_return_if_fail (GTK_IS_LABEL (cp_data->char_label)); code = digit_hbox_get_code_point (cp_data->digit_hbox); cp_data->codepoint = code; char_label_set_code_point (cp_data->char_label, code); } static void on_tree_view_select_custom_char_group (GtkTreeSelection *selection, gpointer data) { CharTreeViewData *tv_data = (CharTreeViewData *) data; InputPadGtkWindow *window; InputPadGroup *group; GtkWidget *sub_tv; GtkTreeModel *model; GtkTreeModel *sub_model; GtkTreeIter iter; GtkTreeSelection *sub_selection; int n; g_return_if_fail (INPUT_PAD_IS_GTK_WINDOW (tv_data->window)); window = INPUT_PAD_GTK_WINDOW (tv_data->window); g_return_if_fail (window->priv != NULL && window->priv->group != NULL); g_return_if_fail (GTK_IS_TREE_VIEW (tv_data->sub_tv)); group = window->priv->group; sub_tv = GTK_WIDGET (tv_data->sub_tv); if (!gtk_tree_selection_get_selected (selection, &model, &iter)) { g_warning ("Main treeview is not selected."); return; } gtk_tree_model_get (model, &iter, CHAR_BLOCK_START_COL, &n, -1); group = get_nth_pad_group (group, n); g_return_if_fail (group != NULL); sub_model = custom_char_table_model_new (window, group->table); g_return_if_fail (sub_model != NULL); gtk_widget_hide (sub_tv); gtk_tree_view_set_model (GTK_TREE_VIEW (sub_tv), sub_model); if (gtk_tree_model_get_iter_first (sub_model, &iter)) { sub_selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (sub_tv)); gtk_tree_selection_select_iter (sub_selection, &iter); } gtk_widget_show (sub_tv); } static void on_tree_view_select_custom_char_table (GtkTreeSelection *selection, gpointer data) { CharTreeViewData *tv_data = (CharTreeViewData *) data; InputPadGtkWindow *window; InputPadGroup *group; InputPadTable *table; GtkWidget *main_tv; GtkWidget *scrolled; GtkTreeSelection *main_selection; GtkTreeModel *main_model; GtkTreeModel *sub_model; GtkTreeIter main_iter; GtkTreeIter sub_iter; int n; g_return_if_fail (INPUT_PAD_IS_GTK_WINDOW (tv_data->window)); window = INPUT_PAD_GTK_WINDOW (tv_data->window); g_return_if_fail (window->priv != NULL && window->priv->group != NULL); g_return_if_fail (GTK_IS_TREE_VIEW (tv_data->main_tv)); g_return_if_fail (GTK_IS_SCROLLED_WINDOW (tv_data->scrolled)); group = window->priv->group; main_tv = GTK_WIDGET (tv_data->main_tv); scrolled = GTK_WIDGET (tv_data->scrolled); main_selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (main_tv)); if (!gtk_tree_selection_get_selected (main_selection, &main_model, &main_iter)) { g_warning ("Main treeview is not selected."); return; } if (!gtk_tree_selection_get_selected (selection, &sub_model, &sub_iter)) { /* gtk_tree_view_set_model() in main model causes this. */ return; } gtk_tree_model_get (main_model, &main_iter, CHAR_BLOCK_START_COL, &n, -1); group = get_nth_pad_group (group, n); g_return_if_fail (group != NULL); gtk_tree_model_get (sub_model, &sub_iter, CHAR_BLOCK_START_COL, &n, -1); table = get_nth_pad_table (group->table, n); g_return_if_fail (table != NULL && table->priv != NULL); table->priv->signal_window = window; destroy_custom_char_view_table (scrolled, window); append_custom_char_view_table (scrolled, table); } static void on_tree_view_select_all_char (GtkTreeSelection *selection, gpointer data) { CharTreeViewData *tv_data = (CharTreeViewData*) data; GtkWidget *scrolled; GtkWidget *window; GtkTreeModel *model; GtkTreeIter iter; unsigned int start, end; g_return_if_fail (data != NULL); scrolled = GTK_WIDGET (tv_data->scrolled); window = GTK_WIDGET (tv_data->window); if (!gtk_tree_selection_get_selected (selection, &model, &iter)) { return; } gtk_tree_model_get (model, &iter, CHAR_BLOCK_START_COL, &start, CHAR_BLOCK_END_COL, &end, -1); destroy_all_char_view_table (scrolled, INPUT_PAD_GTK_WINDOW (window)); append_all_char_view_table (scrolled, start, end, window); } static void on_window_realize (GtkWidget *window, gpointer data) { GtkWidget *keyboard_vbox; InputPadGtkWindow *input_pad; g_return_if_fail (INPUT_PAD_IS_GTK_WINDOW (window)); g_return_if_fail (GTK_IS_WIDGET (data)); input_pad = INPUT_PAD_GTK_WINDOW (window); keyboard_vbox = GTK_WIDGET (data); input_pad->priv->xkb_key_list = input_pad_gdk_xkb_parse_keyboard_layouts (input_pad); if (input_pad->priv->kbdui_name && input_pad->priv->xkb_key_list == NULL) { return; } create_keyboard_layout_ui_real (keyboard_vbox, input_pad); input_pad->priv->group_layouts = input_pad_gdk_xkb_get_group_layouts (input_pad, input_pad->priv->xkb_key_list); input_pad->priv->group_variants = input_pad_gdk_xkb_get_group_variants (input_pad, input_pad->priv->xkb_key_list); input_pad->priv->group_options = input_pad_gdk_xkb_get_group_options (input_pad, input_pad->priv->xkb_key_list); input_pad->priv->xkb_config_reg = input_pad_gdk_xkb_parse_config_registry (input_pad, input_pad->priv->xkb_key_list); if (input_pad->priv->xkb_config_reg == NULL) { input_pad_gdk_xkb_signal_emit (input_pad, signals[KBD_CHANGED]); return; } create_keyboard_layout_list_ui_real (keyboard_vbox, input_pad); input_pad_gdk_xkb_signal_emit (input_pad, signals[KBD_CHANGED]); } static void resize_toplevel_window_with_hide_widget (GtkWidget *widget) { GtkWidget *toplevel; GtkAllocation allocation; int width, height; toplevel = gtk_widget_get_toplevel (widget); g_return_if_fail (GTK_IS_WINDOW (toplevel)); gtk_window_get_size (GTK_WINDOW (toplevel), &width, &height); gtk_widget_get_allocation (widget, &allocation); if (height > allocation.height && allocation.x >= 0) { height -= allocation.height; gtk_window_resize (GTK_WINDOW (toplevel), width, height); gtk_widget_queue_resize (toplevel); } } static InputPadGroup * get_nth_pad_group (InputPadGroup *group, int nth) { InputPadGroup *retval = group; int i; for (i = 0; i < nth; i++) { retval = retval->next; } return retval; } static InputPadTable * get_nth_pad_table (InputPadTable *table, int nth) { InputPadTable *retval = table; int i; for (i = 0; i < nth; i++) { retval = retval->next; } return retval; } static guint digit_hbox_get_code_point (GtkWidget *digit_hbox) { GList *orig_list; GList *list = NULL; GtkComboBox *combobox; GtkTreeModel *model; GtkTreeIter iter; GString *string = NULL; gchar *line = NULL; guint base = 0; guint code; orig_list = list = gtk_container_get_children (GTK_CONTAINER (digit_hbox)); string = g_string_new (NULL); while (list) { g_return_val_if_fail (GTK_IS_COMBO_BOX (list->data), 0); combobox = GTK_COMBO_BOX (list->data); if (!gtk_widget_get_visible (GTK_WIDGET (combobox))) { break; } base = input_pad_gtk_combo_box_get_base (INPUT_PAD_GTK_COMBO_BOX (combobox)); model = gtk_combo_box_get_model (combobox); if (!gtk_combo_box_get_active_iter (combobox, &iter)) { g_warning ("Could not find active iter"); line = g_strdup ("0"); } else { gtk_tree_model_get (model, &iter, DIGIT_TEXT_COL, &line, -1); } g_string_append (string, line); g_free (line); list = list->next; } g_list_free (orig_list); line = g_string_free (string, FALSE); g_return_val_if_fail (line != NULL && base > 0, 0); code = (guint) g_ascii_strtoll (line, NULL, base); g_free (line); return code; } static void digit_hbox_set_code_point (GtkWidget *digit_hbox, guint code) { GList *list, *orig_list; GtkComboBox *combobox; GtkTreeModel *model; GtkTreeIter iter; int i, j, line_digit, n_digit = 0; guint base = 0; gchar *line = NULL; gchar buff[2]; orig_list = list = gtk_container_get_children (GTK_CONTAINER (digit_hbox)); while (list) { g_return_if_fail (GTK_IS_COMBO_BOX (list->data)); combobox = GTK_COMBO_BOX (list->data); if (!gtk_widget_get_visible (GTK_WIDGET (combobox))) { break; } base = input_pad_gtk_combo_box_get_base (INPUT_PAD_GTK_COMBO_BOX (combobox)); n_digit++; list = list->next; } switch (base) { case 16: line = g_strdup_printf ("%0*x", n_digit, code); break; case 10: line = g_strdup_printf ("%0*u", n_digit, code); break; case 8: line = g_strdup_printf ("%0*o", n_digit, code); break; case 2: line = g_strdup_printf ("%0*x", n_digit, 0); for (i = 0; i < n_digit / 4; i++) { for (j = 0; j < 4; j++) { line[n_digit - 1 - (i * 4) - j] = ((code >> ((i * 4) + j)) & 0x1) + '0'; } } break; default: g_warning ("Base %d is not supported", base); return; } list = orig_list; for (i = 0; i < n_digit && list; i++) { combobox = GTK_COMBO_BOX (list->data); if (!gtk_widget_get_visible (GTK_WIDGET (combobox))) { break; } model = gtk_combo_box_get_model (combobox); if (!gtk_tree_model_get_iter_first (model, &iter)) { g_warning ("Could not find first iter"); goto end_set_code_point; } buff[0] = *(line + i); buff[1] = '\0'; line_digit = (int) g_ascii_strtoll (buff, NULL, 16); for (j = 0; j < line_digit; j++) { if (!gtk_tree_model_iter_next (model, &iter)) { g_warning ("Could not find %dth iter", j); goto end_set_code_point; } } gtk_combo_box_set_active_iter (combobox, &iter); list = list->next; } end_set_code_point: g_free (line); g_list_free (orig_list); } static void char_label_set_code_point (GtkWidget *char_label, guint code) { gunichar ch = (gunichar) code; gchar buff[7]; if (!g_unichar_validate (ch)) { g_warning ("Invalid code point %x\n", code); return; } buff[g_unichar_to_utf8 (ch, buff)] = '\0'; gtk_label_set_text (GTK_LABEL (char_label), buff); } static GtkTreeModel * digit_model_new (int base) { GtkTreeStore *store; GtkTreeIter iter; int i = 0; gchar *str = NULL; store = gtk_tree_store_new (DIGIT_N_COLS, G_TYPE_STRING, G_TYPE_BOOLEAN); for (i = 0; i < base; i ++) { str = g_strdup_printf ("%x", i); gtk_tree_store_append (store, &iter, NULL); gtk_tree_store_set (store, &iter, DIGIT_TEXT_COL, str, DIGIT_VISIBLE_COL, TRUE, -1); } return GTK_TREE_MODEL (store); } static GtkTreeModel * digit_model_renew (GtkTreeModel *model, int prev_base, int new_base) { GtkTreeStore *store; GtkTreeIter iter; int i = 0; gchar *str = NULL; g_return_val_if_fail (GTK_IS_TREE_MODEL (model), model); if (!gtk_tree_model_get_iter_first (model, &iter)) { g_warning ("Could not get the first iter"); return model; } if (prev_base > new_base) { for (i = 0; i < new_base; i++) { if (!gtk_tree_model_iter_next (model, &iter)) { g_warning ("Could not get the %dth iter", i); return model; } } for (i = new_base; i < prev_base; i++) { store = GTK_TREE_STORE (model); gtk_tree_store_remove (store, &iter); } } if (new_base >= prev_base) { for (i = prev_base; i < new_base; i++) { store = GTK_TREE_STORE (model); str = g_strdup_printf ("%x", i); gtk_tree_store_append (store, &iter, NULL); gtk_tree_store_set (store, &iter, DIGIT_TEXT_COL, str, DIGIT_VISIBLE_COL, TRUE, -1); } } return model; } static void init_spin_button (GtkWidget *down_button, GtkWidget *up_button, CodePointData *cp_data) { GtkWidget *image; cp_data->codepoint = 0; image = gtk_image_new_from_icon_name ("list-remove-symbolic", GTK_ICON_SIZE_MENU); g_object_set (G_OBJECT (down_button), "image", image, NULL); image = gtk_image_new_from_icon_name ("list-add-symbolic", GTK_ICON_SIZE_MENU); g_object_set (G_OBJECT (up_button), "image", image, NULL); g_signal_connect (G_OBJECT (down_button), "pressed", G_CALLBACK (on_button_down_pressed), cp_data); g_signal_connect (G_OBJECT (down_button), "pressed-repeat", G_CALLBACK (on_button_down_pressed), cp_data); g_signal_connect (G_OBJECT (up_button), "pressed", G_CALLBACK (on_button_up_pressed), cp_data); g_signal_connect (G_OBJECT (up_button), "pressed-repeat", G_CALLBACK (on_button_up_pressed), cp_data); } static int get_max_digits_from_base (int base) { char *formatted = NULL; int n_digit; switch (base) { case 16: formatted = g_strdup_printf ("%x", MAX_UCODE); n_digit = strlen (formatted); break; case 10: formatted = g_strdup_printf ("%u", MAX_UCODE); n_digit = strlen (formatted); break; case 8: formatted = g_strdup_printf ("%o", MAX_UCODE); n_digit = strlen (formatted); break; case 2: formatted = g_strdup_printf ("%x", MAX_UCODE); n_digit = strlen (formatted) * 4; break; default: g_warning ("Base %d is not supported", base); return 0; } g_free (formatted); return n_digit; } static void set_code_point_base (CodePointData *cp_data, int n_encoding) { int i, n_digit, created_num, prev_base; guint code = 0; gboolean do_resize = FALSE; GList *orig_list; GList *list = NULL; GtkWidget *digit_hbox; GtkWidget *char_label; GtkWidget *combobox; GtkWidget *toplevel; GtkTreeModel *model; GtkTreeIter iter; GtkCellRenderer *renderer; GtkAllocation combobox_allocation; GtkAllocation toplevel_allocation; g_return_if_fail (cp_data != NULL); g_return_if_fail (GTK_IS_CONTAINER (cp_data->digit_hbox)); digit_hbox = GTK_WIDGET (cp_data->digit_hbox); g_return_if_fail (GTK_IS_LABEL (cp_data->char_label)); char_label = GTK_WIDGET (cp_data->char_label); if ((n_digit = get_max_digits_from_base (n_encoding)) == 0) { return; } orig_list = list = gtk_container_get_children (GTK_CONTAINER (digit_hbox)); created_num = g_list_length (list); if (created_num > 0) { code = digit_hbox_get_code_point (digit_hbox); combobox = GTK_WIDGET (list->data); prev_base = input_pad_gtk_combo_box_get_base (INPUT_PAD_GTK_COMBO_BOX (combobox)); if (n_digit < get_max_digits_from_base (prev_base)) { do_resize = TRUE; } } if (created_num >= n_digit) { for (i = 0; i < n_digit; i++) { g_return_if_fail (INPUT_PAD_IS_GTK_COMBO_BOX (list->data)); combobox = GTK_WIDGET (list->data); prev_base = input_pad_gtk_combo_box_get_base (INPUT_PAD_GTK_COMBO_BOX (combobox)); model = gtk_combo_box_get_model (GTK_COMBO_BOX (combobox)); if (gtk_tree_model_get_iter_first (model, &iter)) { gtk_combo_box_set_active_iter (GTK_COMBO_BOX (combobox), &iter); } model = digit_model_renew (model, prev_base, n_encoding); gtk_combo_box_set_model (GTK_COMBO_BOX (combobox), model); input_pad_gtk_combo_box_set_base (INPUT_PAD_GTK_COMBO_BOX (combobox), n_encoding); gtk_widget_show (GTK_WIDGET (combobox)); list = list->next; } while (list) { gtk_widget_hide (GTK_WIDGET (list->data)); list = list->next; } goto end_configure_combobox; } for (i = 0; i < created_num; i++) { g_return_if_fail (INPUT_PAD_IS_GTK_COMBO_BOX (list->data)); combobox = GTK_WIDGET (list->data); prev_base = input_pad_gtk_combo_box_get_base (INPUT_PAD_GTK_COMBO_BOX (combobox)); model = gtk_combo_box_get_model (GTK_COMBO_BOX (combobox)); if (gtk_tree_model_get_iter_first (model, &iter)) { gtk_combo_box_set_active_iter (GTK_COMBO_BOX (combobox), &iter); } model = digit_model_renew (model, prev_base, n_encoding); gtk_combo_box_set_model (GTK_COMBO_BOX (combobox), model); input_pad_gtk_combo_box_set_base (INPUT_PAD_GTK_COMBO_BOX (combobox), n_encoding); gtk_widget_show (GTK_WIDGET (combobox)); list = list->next; } for (i = created_num; i < n_digit; i++) { combobox = input_pad_gtk_combo_box_new (); input_pad_gtk_combo_box_set_base (INPUT_PAD_GTK_COMBO_BOX (combobox), n_encoding); gtk_box_pack_start (GTK_BOX (digit_hbox), combobox, FALSE, FALSE, 0); model = digit_model_new (n_encoding); gtk_combo_box_set_model (GTK_COMBO_BOX (combobox), model); g_object_unref (G_OBJECT (model)); if (gtk_tree_model_get_iter_first (model, &iter)) { gtk_combo_box_set_active_iter (GTK_COMBO_BOX (combobox), &iter); } renderer = gtk_cell_renderer_text_new (); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combobox), renderer, FALSE); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combobox), renderer, "text", DIGIT_TEXT_COL, "visible", DIGIT_VISIBLE_COL, NULL); gtk_widget_show (combobox); g_signal_connect (G_OBJECT (combobox), "changed", G_CALLBACK (on_combobox_changed), cp_data); } end_configure_combobox: g_list_free (orig_list); orig_list = list = gtk_container_get_children (GTK_CONTAINER (digit_hbox)); combobox = GTK_WIDGET (g_list_nth (list, n_digit - 1)->data); toplevel = gtk_widget_get_toplevel (digit_hbox); gtk_widget_get_allocation (combobox, &combobox_allocation); gtk_widget_get_allocation (toplevel, &toplevel_allocation); if (do_resize && combobox_allocation.x >= 0 && combobox_allocation.width > 10) { toplevel_allocation.width = combobox_allocation.x + combobox_allocation.width + 10; gtk_widget_set_allocation (toplevel, &toplevel_allocation); gtk_widget_queue_resize (toplevel); } digit_hbox_set_code_point (digit_hbox, code); char_label_set_code_point (char_label, code); g_list_free (orig_list); } #if 0 static guint keysym_get_value_from_string (const gchar *str) { int i; guint retval = 0x0; for (i = 0; input_pad_keysym_table[i].str; i++) { if (!g_strcmp0 (input_pad_keysym_table[i].str, str)) { retval = input_pad_keysym_table[i].keysym; break; } } if (retval == 0x0) { g_warning ("keysym str %s does not have the value.", str); } return retval; } #endif #if 0 guint ** xkb_key_list_get_all_keysyms_from_keysym (InputPadXKBKeyList *xkb_key_list, guint keysym) { InputPadXKBKeyList *list = xkb_key_list; InputPadXKBKeyRow *key_row; int i, j; gboolean found = FALSE; g_return_val_if_fail (xkb_key_list != NULL, NULL); for (i = 0; i < 20; i++) { while (list) { key_row = list->row; while (key_row) { if (!key_row->keysym[i]) { goto out_all_keysyms_check; } for (j = 0; key_row->keysym[i][j]; j++) { if (keysym == key_row->keysym[i][j]) { found = TRUE; goto out_all_keysyms_check; } } key_row = key_row->next; } list = list->next; } } out_all_keysyms_check: if (found) { return key_row->keysym; } return NULL; } #endif char ** string_table_get_label_array (InputPadTableStr *strs) { int i = 0, len; char **retval = NULL; if (strs == NULL) { return NULL; } while (strs[i].label) { i++; } len = i; retval = g_new0 (char *, len + 1); for (i = 0; strs[i].label; i++) { retval[i] = g_strdup (strs[i].label); } return retval; } char ** command_table_get_label_array (InputPadTableCmd *cmds) { int i = 0, len; char **retval = NULL; if (cmds == NULL) { return NULL; } while (cmds[i].execl) { i++; } len = i; retval = g_new0 (char *, len + 1); for (i = 0; cmds[i].execl; i++) { if (cmds[i].label) { retval[i] = g_strdup (cmds[i].label); } else { retval[i] = g_strdup (cmds[i].execl); } } return retval; } static void run_command (const gchar *command, gchar **command_output) { GError *error; char **argv; char **envp = NULL; char *p; char *end; char *name; const char *value; char *extracted; char *new_arg; char *std_output = NULL; char *std_error = NULL; int i, n, exit_status; error = NULL; if (!g_shell_parse_argv (command, NULL, &argv, &error)) { g_warning ("Could not parse command: %s", error->message); g_error_free (error); return; } n = 0; for (i = 0; argv[i]; i++) { if (g_strstr_len (argv[i], -1, "=") != NULL) { n++; } else { break; } } if (n > 0) { envp = g_new0 (char *, n + 1); } for (i = 0; i < n; i++) { envp[i] = g_strdup (argv[i]); } for (i = n; argv[i]; i++) { if ((p = g_strstr_len (argv[i], -1, "$")) != NULL && *(p + 1) != '\0') { end = g_strstr_len (p + 1, -1, " "); if (end) { name = g_strndup (p, end - p); } else { name = g_strdup (p); } value = g_getenv (name + 1); g_free (name); if (value != NULL) { extracted = g_strdup (value); } else { extracted = g_strdup (""); } *p = '\0'; if (end) { new_arg = g_strconcat (argv[i], extracted, end, NULL); } else { new_arg = g_strconcat (argv[i], extracted, NULL); } g_free (argv[i]); argv[i] = new_arg; } } error = NULL; if (!g_spawn_sync (NULL, &argv[n], envp, G_SPAWN_SEARCH_PATH, NULL, NULL, &std_output, &std_error, &exit_status, &error)) { g_warning ("Could not run the script %s: %s: %s", command, error->message, std_error ? std_error : ""); g_error_free (error); g_strfreev (argv); return; } g_strfreev (argv); g_strfreev (envp); if (exit_status != 0) { g_warning ("Failed to run the script %s: %s", command, std_error ? std_error : ""); } if (std_output && strlen (std_output) > 2) { if (command_output) { *command_output = g_strdup (g_strchomp (std_output)); } } g_free (std_output); g_free (std_error); } static void append_unicode_table (GtkWidget *table, unsigned int min, unsigned int start, unsigned int end, InputPadGtkWindow *input_pad) { GtkCssProvider *css_provider; GtkStyleContext *style_context; GtkWidget *button; GError *error = NULL; unsigned int num; int row, col; css_provider = gtk_css_provider_new (); if (input_pad->child) { gtk_css_provider_load_from_data ( css_provider, CSS_DATA_NARROW_BUTTON, -1, &error); } else { /* FIXME: cannot change background in GTK3 button. */ gtk_css_provider_load_from_data ( css_provider, CSS_DATA_GRAY_NARROW_BUTTON, -1, &error); } for (num = start; num <= end; num++) { button = input_pad_gtk_button_new_with_unicode (num); row = (num - min) / INPUT_PAD_MAX_COLUMN; col = (num - min) % INPUT_PAD_MAX_COLUMN; style_context = gtk_widget_get_style_context (button); gtk_style_context_add_provider (style_context, GTK_STYLE_PROVIDER (css_provider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); gtk_grid_attach (GTK_GRID (table), button, col, row, 1, 1); gtk_widget_show (button); if (input_pad->child) gtk_widget_set_sensitive (button, input_pad->priv->char_button_sensitive); g_signal_connect (G_OBJECT (button), "pressed", G_CALLBACK (on_button_pressed), input_pad); g_signal_connect (G_OBJECT (button), "pressed-repeat", G_CALLBACK (on_button_pressed_repeat), input_pad); g_signal_connect (G_OBJECT (input_pad), "char-button-sensitive", G_CALLBACK (on_window_char_button_sensitive), (gpointer) button); } g_object_unref (css_provider); } static void table_element_remove (GtkWidget *button, gpointer data) { TableForEachData *foreach_data = (TableForEachData*) data; GtkWidget *table = foreach_data->table; InputPadGtkWindow *window = foreach_data->window; g_signal_handlers_disconnect_by_func (G_OBJECT (window), G_CALLBACK (on_window_char_button_sensitive), (gpointer) button); g_signal_handlers_disconnect_by_func (G_OBJECT (button), G_CALLBACK (on_button_pressed), (gpointer) window); g_signal_handlers_disconnect_by_func (G_OBJECT (button), G_CALLBACK (on_button_pressed_repeat), (gpointer) window); gtk_container_remove (GTK_CONTAINER (table), button); } static void destroy_char_view_table_common (GtkWidget *scrolled, InputPadGtkWindow *window) { GList *scrolled_list, *viewport_list; GtkWidget *viewport; GtkWidget *table; static TableForEachData foreach_data = { NULL, }; scrolled_list = gtk_container_get_children (GTK_CONTAINER (scrolled)); if (scrolled_list == NULL) { return; } viewport = scrolled_list->data; g_return_if_fail (GTK_IS_VIEWPORT (viewport) || INPUT_PAD_IS_GTK_VIEWPORT (viewport)); viewport_list = gtk_container_get_children (GTK_CONTAINER (viewport)); if (viewport_list == NULL) { return; } table = viewport_list->data; g_return_if_fail (GTK_IS_GRID (table)); foreach_data.table = table; foreach_data.window = window; gtk_container_foreach (GTK_CONTAINER (table), table_element_remove, &foreach_data); g_list_free (viewport_list); g_list_free (scrolled_list); gtk_container_remove (GTK_CONTAINER (viewport), table); gtk_container_remove (GTK_CONTAINER (scrolled), viewport); } static void append_custom_char_view_table (GtkWidget *scrolled, InputPadTable *table_data) { InputPadGtkWindow *input_pad; GtkCssProvider *css_provider; GtkStyleContext *style_context; GtkWidget *table; GtkWidget *button = NULL; GError *error = NULL; gchar **char_table; gchar *str; const int max_column = table_data->column; int i, num, row, col, len, code; guint keysym; #if 0 guint **keysyms; InputPadXKBKeyList *xkb_key_list = NULL; #endif g_return_if_fail (INPUT_PAD_IS_GTK_WINDOW (table_data->priv->signal_window)); input_pad = INPUT_PAD_GTK_WINDOW (table_data->priv->signal_window); if (table_data->type == INPUT_PAD_TABLE_TYPE_CHARS) { char_table = g_strsplit_set (table_data->data.chars, " \t\n", -1); } else if (table_data->type == INPUT_PAD_TABLE_TYPE_KEYSYMS) { char_table = g_strsplit_set (table_data->data.keysyms, " \t\n", -1); } else if (table_data->type == INPUT_PAD_TABLE_TYPE_STRINGS) { char_table = string_table_get_label_array (table_data->data.strs); } else if (table_data->type == INPUT_PAD_TABLE_TYPE_COMMANDS) { char_table = command_table_get_label_array (table_data->data.cmds); } else { g_warning ("Currently your table type is not supported."); table_data->priv->inited = 1; return; } for (i = 0, num = 0; char_table[i]; i++) { str = char_table[i]; len = strlen (str); if (len > 0) { num++; } } col = max_column; row = num / col; if (num % col) { row++; } #if 0 if (INPUT_PAD_IS_GTK_WINDOW (table_data->priv->signal_window)) { xkb_key_list = INPUT_PAD_GTK_WINDOW (table_data->priv->signal_window)->priv->xkb_key_list; } #endif css_provider = gtk_css_provider_new (); if (input_pad->child) { gtk_css_provider_load_from_data ( css_provider, CSS_DATA_NARROW_BUTTON, -1, &error); } else { /* FIXME: cannot change background in GTK3 button. */ gtk_css_provider_load_from_data ( css_provider, CSS_DATA_GRAY_NARROW_BUTTON, -1, &error); } table = gtk_grid_new (); /* gtk_table_attach_defaults assigns GTK_EXPAND and * the button is too big when max row is 1 . */ g_object_set (table, "halign", GTK_ALIGN_START, "valign", GTK_ALIGN_START, "margin", 0, "expand", FALSE, "row-spacing", 0, "column-spacing", 0, "row-homogeneous", TRUE, "column-homogeneous", TRUE, NULL); #if GTK_CHECK_VERSION (3, 8, 0) gtk_container_add (GTK_CONTAINER (scrolled), table); #else gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled), table); #endif gtk_widget_show (table); for (i = 0, num = 0; char_table[i]; i++) { str = char_table[i]; len = strlen (str); if (len > 0) { if (table_data->type == INPUT_PAD_TABLE_TYPE_CHARS) { if (str[0] == '0' && (str[1] == 'x' || str[1] == 'X')) { str += 2; len -= 2; } code = (int) g_ascii_strtoll (str, NULL, 16); button = input_pad_gtk_button_new_with_unicode (code); /* Decided input-pad always sends char but not keysym. * Now keyboard layout can be used instead. */ #if 0 if (code <= 0x7f) { input_pad_gtk_button_set_keysym (INPUT_PAD_GTK_BUTTON (button), code); keysyms = NULL; if (xkb_key_list) { keysyms = xkb_key_list_get_all_keysyms_from_keysym (xkb_key_list, code); } if (keysyms) { input_pad_gtk_button_set_all_keysyms (INPUT_PAD_GTK_BUTTON (button), keysyms); } } #endif } else if (table_data->type == INPUT_PAD_TABLE_TYPE_KEYSYMS) { button = input_pad_gtk_button_new_with_label (str); keysym = XStringToKeysym (str); if (keysym == NoSymbol) { g_warning ("keysym str %s does not have the value.", str); } input_pad_gtk_button_set_keysym (INPUT_PAD_GTK_BUTTON (button), keysym); } else if (table_data->type == INPUT_PAD_TABLE_TYPE_STRINGS) { button = input_pad_gtk_button_new_with_label (char_table[i]); if (table_data->data.strs[i].rawtext) { gtk_widget_set_tooltip_text (button, table_data->data.strs[i].rawtext); input_pad_gtk_button_set_rawtext (INPUT_PAD_GTK_BUTTON (button), table_data->data.strs[i].rawtext); } if (table_data->data.strs[i].comment) { gtk_widget_set_tooltip_text (button, table_data->data.strs[i].comment); } } else if (table_data->type == INPUT_PAD_TABLE_TYPE_COMMANDS) { button = input_pad_gtk_button_new_with_label (char_table[i]); gtk_widget_set_tooltip_text (button, table_data->data.cmds[i].execl); input_pad_gtk_button_set_rawtext (INPUT_PAD_GTK_BUTTON (button), table_data->data.cmds[i].execl); } input_pad_gtk_button_set_table_type (INPUT_PAD_GTK_BUTTON (button), table_data->type); row = num / max_column; col = num % max_column; style_context = gtk_widget_get_style_context (button); gtk_style_context_add_provider (style_context, GTK_STYLE_PROVIDER (css_provider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); gtk_grid_attach (GTK_GRID (table), button, col, row, 1, 1); gtk_widget_show (button); if (input_pad->child) gtk_widget_set_sensitive (button, input_pad->priv->char_button_sensitive); g_signal_connect (G_OBJECT (button), "pressed", G_CALLBACK (on_button_pressed), (gpointer) table_data->priv->signal_window); g_signal_connect (G_OBJECT (button), "pressed-repeat", G_CALLBACK (on_button_pressed_repeat), (gpointer) table_data->priv->signal_window); g_signal_connect (G_OBJECT (table_data->priv->signal_window), "char-button-sensitive", G_CALLBACK (on_window_char_button_sensitive), (gpointer) button); num++; } } g_object_unref (css_provider); g_strfreev (char_table); table_data->priv->inited = 1; } static void destroy_custom_char_view_table (GtkWidget *scrolled, InputPadGtkWindow *window) { /* Currently same contents. */ destroy_char_view_table_common (scrolled, window); } gchar * get_keysym_display_name (guint keysym, GtkWidget *widget, gchar **tooltipp) { char *tooltip; char *keysym_name; char *display_name; char buff[7]; gunichar ch; if ((tooltip = XKeysymToString (keysym)) == NULL) { keysym_name = tooltip = ""; } else if (g_str_has_prefix (tooltip, "KP_")) { keysym_name = tooltip + 3; } else { keysym_name = tooltip; } // or KeySymToUcs4 (keysym); if ((ch = gdk_keyval_to_unicode (keysym)) != 0 && g_unichar_validate (ch) && g_unichar_isprint (ch)) { buff[g_unichar_to_utf8 (ch, buff)] = '\0'; display_name = g_strdup (buff); } else if (g_str_has_prefix (keysym_name, "XF86_Switch_VT_")) { display_name = g_strdup_printf ("V%s", keysym_name + strlen ("XF86_Switch_VT_")); } else if (!g_ascii_strncasecmp (keysym_name, "Control_", strlen ("Control_"))) { display_name = g_strdup ("Ctl"); } else if (!g_strcmp0 (keysym_name, "Zenkaku_Hankaku") || !g_strcmp0 (keysym_name, "Henkan_Mode")) { display_name = g_strdup ("\xe5\x8d\x8a"); } else if (!g_strcmp0 (keysym_name, "Return") || !g_strcmp0 (keysym_name, "Enter")) { display_name = g_strdup ("\xe2\x86\xb5"); } else if (!g_strcmp0 (keysym_name, "BackSpace")) { display_name = g_strdup ("BS"); } else if (!g_strcmp0 (keysym_name, "Left")) { display_name = g_strdup ("\xe2\x86\x90"); } else if (!g_strcmp0 (keysym_name, "Up")) { display_name = g_strdup ("\xe2\x86\x91"); } else if (!g_strcmp0 (keysym_name, "Right")) { display_name = g_strdup ("\xe2\x86\x92"); } else if (!g_strcmp0 (keysym_name, "Down")) { display_name = g_strdup ("\xe2\x86\x93"); } else if (!g_strcmp0 (keysym_name, "Prior")) { display_name = g_strdup ("PU"); } else if (!g_strcmp0 (keysym_name, "Next")) { display_name = g_strdup ("PD"); } else if (!g_strcmp0 (keysym_name, "Begin")) { display_name = g_strdup ("\xc2\xb7"); } else if (strlen (keysym_name) > 3) { display_name = g_strndup (keysym_name, 3); } else { display_name = g_strdup (keysym_name); } if (tooltipp) { *tooltipp = tooltip; } return display_name; } static void create_keyboard_layout_ui_real_default (GtkWidget *vbox, InputPadGtkWindow *window) { InputPadXKBKeyList *xkb_key_list = window->priv->xkb_key_list; InputPadXKBKeyList *list; InputPadXKBKeyRow *key_row; static KeyboardLayoutPart table_data[N_KEYBOARD_LAYOUT_PART] = { {0, 0, 0, NULL}, {6, 0, 0, NULL}, {10, 0, 0, NULL}, }; int i, j, n, col, max_col, total_col, row, max_row; GtkCssProvider *css_provider; GtkStyleContext *style_context; GtkWidget *hbox; GtkWidget *table; GtkWidget *button; GtkWidget *button_shift_l = NULL; GtkWidget *button_shift_r = NULL; GtkWidget *button_num_lock = NULL; GError *error = NULL; GList *orig_children, *children = NULL; char *tooltip; char *display_name; g_return_if_fail (xkb_key_list != NULL); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); gtk_box_reorder_child (GTK_BOX (vbox), hbox, 0); gtk_widget_show (hbox); css_provider = gtk_css_provider_new (); gtk_css_provider_load_from_data (css_provider, CSS_DATA_NARROW_BUTTON, -1, &error); total_col = max_col = max_row = row = 0; list = xkb_key_list; for (i = 0; list; i++) { for (j = 0; j < N_KEYBOARD_LAYOUT_PART; j++) { if (table_data[j].key_row_id == i) { if (j > 0) { table_data[j - 1].row = row; table_data[j - 1].col = max_col; } total_col += max_col; if (row > max_row) { max_row = row; } max_col = 0; row = 0; break; } } col = 0; key_row = list->row; while (key_row) { col++; key_row = key_row->next; } if (col > max_col) { max_col = col; } row++; list = list->next; } table_data[N_KEYBOARD_LAYOUT_PART - 1].row = row; table_data[N_KEYBOARD_LAYOUT_PART - 1].col = max_col; total_col += max_col; if (row > max_row) { max_row = row; } for (i = 0; i < N_KEYBOARD_LAYOUT_PART; i++) { table = gtk_grid_new (); g_object_set (table, "halign", GTK_ALIGN_START, "valign", GTK_ALIGN_START, "margin", 0, "expand", FALSE, "row-spacing", 0, "column-spacing", 0, "row-homogeneous", TRUE, "column-homogeneous", TRUE, NULL); #if 1 if (i == 0) /* for arrow label */ gtk_widget_show (table); #endif gtk_box_pack_start (GTK_BOX (hbox), table, FALSE, FALSE, 0); table_data[i].table = table; } list = xkb_key_list; row = 0; col = max_col = row = 0; n = 0; for (i = 0; list; i++) { for (j = 0; j < N_KEYBOARD_LAYOUT_PART; j++) { if (table_data[j].key_row_id == i) { row = 0; max_col = 0; if (j > 0) { n++; } break; } } col = 0; key_row = list->row; while (key_row) { display_name = get_keysym_display_name (key_row->keysym[0][0], GTK_WIDGET (window), &tooltip); button = input_pad_gtk_button_new_with_label_size (display_name, KEYBOARD_ICON_SIZE); gtk_widget_set_tooltip_text (button, tooltip); g_free (display_name); input_pad_gtk_button_set_keycode (INPUT_PAD_GTK_BUTTON (button), (guint) key_row->keycode); input_pad_gtk_button_set_keysym (INPUT_PAD_GTK_BUTTON (button), key_row->keysym[0][0]); input_pad_gtk_button_set_all_keysyms (INPUT_PAD_GTK_BUTTON (button), key_row->keysym); input_pad_gtk_button_set_table_type (INPUT_PAD_GTK_BUTTON (button), INPUT_PAD_TABLE_TYPE_KEYSYMS); style_context = gtk_widget_get_style_context (button); gtk_style_context_add_provider (style_context, GTK_STYLE_PROVIDER (css_provider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); gtk_grid_attach (GTK_GRID (table_data[n].table), button, col, row, 1, 1); gtk_widget_show (button); gtk_button_set_focus_on_click (GTK_BUTTON (button), FALSE); g_signal_connect (G_OBJECT (button), "pressed", G_CALLBACK (on_button_pressed), (gpointer) window); g_signal_connect (G_OBJECT (button), "pressed-repeat", G_CALLBACK (on_button_pressed_repeat), (gpointer) window); g_signal_connect (G_OBJECT (window), "keyboard-changed", G_CALLBACK (on_window_keyboard_changed), (gpointer) button); if (key_row->keysym[0][0] == XK_Shift_L) { button_shift_l = button; } else if (key_row->keysym[0][0] == XK_Shift_R) { button_shift_r = button; } else if (key_row->keysym[0][0] == XK_Control_L || key_row->keysym[0][0] == XK_Control_R) { g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (on_button_ctrl_clicked), (gpointer) window); } else if (key_row->keysym[0][0] == XK_Alt_L || key_row->keysym[0][0] == XK_Alt_R) { g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (on_button_alt_clicked), (gpointer) window); } else if (key_row->keysym[0][0] == XK_Num_Lock) { button_num_lock = button; } col++; key_row = key_row->next; } if (col > max_col) { max_col = col; } row++; list = list->next; } children = gtk_container_get_children (GTK_CONTAINER (table_data[0].table)); orig_children = children; while (children) { if (!GTK_IS_BUTTON (children->data)) { children = children->next; continue; } if (button_shift_l) { g_signal_connect (G_OBJECT (button_shift_l), "clicked", G_CALLBACK (on_button_shift_clicked), (gpointer) children->data); } if (button_shift_r) { g_signal_connect (G_OBJECT (button_shift_r), "clicked", G_CALLBACK (on_button_shift_clicked), (gpointer) children->data); } children = children->next; } g_list_free (orig_children); children = gtk_container_get_children (GTK_CONTAINER (table_data[2].table)); orig_children = children; while (children) { if (!GTK_IS_BUTTON (children->data)) { children = children->next; continue; } if (button_num_lock) { g_signal_connect (G_OBJECT (button_num_lock), "clicked", G_CALLBACK (on_button_shift_clicked), (gpointer) children->data); } children = children->next; } g_list_free (orig_children); button = gtk_button_new_with_label ("->"); gtk_widget_set_tooltip_text (button, _("Extend layout")); style_context = gtk_widget_get_style_context (button); gtk_style_context_add_provider (style_context, GTK_STYLE_PROVIDER (css_provider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); gtk_grid_attach (GTK_GRID (table_data[0].table), button, table_data[0].col, max_row - 1, 1, 1); gtk_widget_show (button); g_signal_connect (G_OBJECT (button), "pressed", G_CALLBACK (on_button_layout_arrow_pressed), table_data); g_object_unref (css_provider); } G_INLINE_FUNC void create_keyboard_layout_ui_real (GtkWidget *vbox, InputPadGtkWindow *window) { if (window->priv->kbdui_name && window->priv->kbdui) { g_signal_emit_by_name (window->priv->kbdui, "create-keyboard-layout", vbox, window); return; } create_keyboard_layout_ui_real_default (vbox, window); } static void keyboard_element_remove (GtkWidget *button, gpointer data) { TableForEachData *foreach_data = (TableForEachData *) data; GtkWidget *table = foreach_data->table; InputPadGtkWindow *window = foreach_data->window; g_signal_handlers_disconnect_by_func (G_OBJECT (window), G_CALLBACK (on_window_keyboard_changed), (gpointer) button); gtk_container_remove (GTK_CONTAINER (table), button); } static void keyboard_box_remove (GtkWidget *table, gpointer data) { TableForEachData *parent_foreach_data = (TableForEachData *) data; static TableForEachData foreach_data = { NULL, }; GtkWidget *hbox = parent_foreach_data->table; InputPadGtkWindow *window = parent_foreach_data->window; foreach_data.table = table; foreach_data.window = window; gtk_container_foreach (GTK_CONTAINER (table), keyboard_element_remove, &foreach_data); gtk_container_remove (GTK_CONTAINER (hbox), table); } static void destroy_prev_keyboard_layout_default (GtkWidget *vbox, InputPadGtkWindow *window) { GList *children = NULL; GtkWidget *hbox; static TableForEachData foreach_data = { NULL, }; children = gtk_container_get_children (GTK_CONTAINER (vbox)); hbox = GTK_WIDGET (children->data); g_list_free (children); foreach_data.table = hbox; foreach_data.window = window; gtk_container_foreach (GTK_CONTAINER (hbox), keyboard_box_remove, &foreach_data); gtk_container_remove (GTK_CONTAINER (vbox), hbox); } G_INLINE_FUNC void destroy_prev_keyboard_layout (GtkWidget *vbox, InputPadGtkWindow *window) { if (window->priv->kbdui_name && window->priv->kbdui) { g_signal_emit_by_name (window->priv->kbdui, "destroy-keyboard-layout", vbox, window); return; } destroy_prev_keyboard_layout_default (vbox, window); } static int sort_layout_name (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer data) { gchar *layout_a = NULL; gchar *layout_b = NULL; const gchar *en_layout = "USA"; int retval; gtk_tree_model_get (model, a, LAYOUT_LAYOUT_DESC_COL, &layout_a, -1); gtk_tree_model_get (model, b, LAYOUT_LAYOUT_DESC_COL, &layout_b, -1); if (layout_a && !g_strcmp0 (layout_a, en_layout)) { g_free (layout_a); g_free (layout_b); return -1; } else if (layout_b && !g_strcmp0 (layout_b, en_layout)) { g_free (layout_a); g_free (layout_b); return 1; } retval = g_strcmp0 (layout_a, layout_b); g_free (layout_a); g_free (layout_b); return retval; } static void config_layouts_combobox_remove_layout (GtkTreeStore *list, const gchar *layout_name, const gchar *layout_desc, const gchar *variant_name, const gchar *variant_desc) { GtkTreeIter iter; gtk_tree_model_get_iter_first (GTK_TREE_MODEL (list), &iter); do { gchar *combo_layout_name = NULL; gchar *combo_layout_desc = NULL; gchar *combo_variant_name = NULL; gchar *combo_variant_desc = NULL; gtk_tree_model_get (GTK_TREE_MODEL (list), &iter, LAYOUT_LAYOUT_NAME_COL, &combo_layout_name, LAYOUT_LAYOUT_DESC_COL, &combo_layout_desc, LAYOUT_VARIANT_NAME_COL, &combo_variant_name, LAYOUT_VARIANT_DESC_COL, &combo_variant_desc, -1); if (!g_strcmp0 (combo_layout_name, layout_name) && !g_strcmp0 (combo_variant_name, variant_name)) { gtk_tree_store_remove (GTK_TREE_STORE (list), &iter); g_free (combo_layout_name); g_free (combo_layout_desc); g_free (combo_variant_name); g_free (combo_variant_desc); break; } g_free (combo_layout_name); g_free (combo_layout_desc); g_free (combo_variant_name); g_free (combo_variant_desc); } while (gtk_tree_model_iter_next (GTK_TREE_MODEL (list), &iter)); } static void config_layouts_list_append_layout (GtkListStore *list, const gchar *layout_name, const gchar *layout_desc, const gchar *variant_name, const gchar *variant_desc) { GtkTreeIter iter; gtk_list_store_append (list, &iter); gtk_list_store_set (list, &iter, LAYOUT_LAYOUT_NAME_COL, layout_name, LAYOUT_LAYOUT_DESC_COL, variant_desc ? variant_desc : layout_desc, LAYOUT_VARIANT_NAME_COL, variant_name, LAYOUT_VARIANT_DESC_COL, NULL, LAYOUT_VISIBLE_COL, TRUE, -1); } static void config_layouts_list_remove_iter (GtkListStore *list, GtkTreeIter *iter) { if (!gtk_list_store_remove (list, iter)) { /* FIXME: Should set iter at the end again? */ return; } if (!gtk_tree_model_iter_previous (GTK_TREE_MODEL (list), iter)) { gtk_tree_model_get_iter_first (GTK_TREE_MODEL (list), iter); } } static void config_layouts_treeview_set_list (GtkWidget *treeview, GtkListStore *list, gboolean is_sortable) { GtkCellRenderer *renderer; GtkTreeViewColumn *column; if (is_sortable) { gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (list), LAYOUT_LAYOUT_DESC_COL, sort_layout_name, NULL, NULL); gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (list), LAYOUT_LAYOUT_DESC_COL, GTK_SORT_ASCENDING); } gtk_tree_view_set_model (GTK_TREE_VIEW (treeview), GTK_TREE_MODEL (list)); g_object_unref (G_OBJECT (list)); renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes (_("Layout"), renderer, "text", LAYOUT_LAYOUT_DESC_COL, "visible", LAYOUT_VISIBLE_COL, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column); gtk_widget_show (treeview); } static void config_layouts_treeview_set (InputPadGtkWindow *input_pad, InputPadXKBLayoutList *xkb_layout_list) { InputPadXKBLayoutList *layouts = NULL; GtkTreeIter iter; GtkListStore *add_list; GtkListStore *remove_list; gchar **group_layouts = input_pad->priv->group_layouts; gchar **group_variants = input_pad->priv->group_variants; int i; add_list = gtk_list_store_new (LAYOUT_N_COLS, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN); remove_list = gtk_list_store_new (LAYOUT_N_COLS, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN); for (layouts = xkb_layout_list; layouts; layouts = layouts->next) { InputPadXKBVariantList *variants = layouts->variants; config_layouts_list_append_layout (add_list, layouts->layout, layouts->desc, NULL, NULL); while (variants) { config_layouts_list_append_layout (add_list, layouts->layout, layouts->desc, variants->variant, variants->desc); variants = variants->next; } } gtk_tree_model_get_iter_first (GTK_TREE_MODEL (add_list), &iter); do { gchar *layout_name = NULL; gchar *layout_desc = NULL; gchar *variant_name = NULL; gchar *variant_desc = NULL; gtk_tree_model_get (GTK_TREE_MODEL (add_list), &iter, LAYOUT_LAYOUT_NAME_COL, &layout_name, LAYOUT_LAYOUT_DESC_COL, &layout_desc, LAYOUT_VARIANT_NAME_COL, &variant_name, LAYOUT_VARIANT_DESC_COL, &variant_desc, -1); for (i = 0; group_layouts[i]; i++) { if (!g_strcmp0 (group_layouts[i], layout_name)) { if (group_variants == NULL || i >= g_strv_length (group_variants) || group_variants[i] == NULL || *group_variants[i] == '\0') { if (variant_name == NULL) { config_layouts_list_remove_iter (add_list, &iter); config_layouts_list_append_layout (remove_list, layout_name, layout_desc, variant_name, variant_desc); break; } } else { if (!g_strcmp0 (group_variants[i], variant_name)) { config_layouts_list_remove_iter (add_list, &iter); config_layouts_list_append_layout (remove_list, layout_name, layout_desc, variant_name, variant_desc); break; } } } } g_free (layout_name); g_free (layout_desc); g_free (variant_name); g_free (variant_desc); } while (gtk_tree_model_iter_next (GTK_TREE_MODEL (add_list), &iter)); config_layouts_treeview_set_list (input_pad->priv->config_layouts_add_treeview, add_list, TRUE); config_layouts_treeview_set_list (input_pad->priv->config_layouts_remove_treeview, remove_list, FALSE); } static void config_options_treeview_set (InputPadGtkWindow *input_pad, InputPadXKBOptionGroupList *xkb_group_list) { InputPadXKBOptionGroupList *groups = NULL; GtkWidget *expander; GtkWidget *vbox; GtkWidget *checkbutton; GtkWidget *label; gchar **group_options = input_pad->priv->group_options; int i; for (groups = xkb_group_list ; groups; groups = groups->next) { int checked = 0; expander = gtk_expander_new (groups->desc); gtk_box_pack_start (GTK_BOX (input_pad->priv->config_options_vbox), expander, TRUE, TRUE, 0); gtk_widget_show (expander); g_object_set_data (G_OBJECT (expander), "option_group", (gpointer) groups->option_group); g_object_set_data (G_OBJECT (expander), "checked", GINT_TO_POINTER (checked)); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_set_margin_start (vbox, 18); gtk_container_add (GTK_CONTAINER (expander), vbox); gtk_widget_show (vbox); InputPadXKBOptionList *options = groups->options; while (options) { gboolean has_option = FALSE; checkbutton = gtk_check_button_new_with_label (options->desc); g_object_set_data (G_OBJECT (checkbutton), "option", (gpointer) options->option); for (i = 0; group_options[i]; i++) { if (!g_strcmp0 (group_options[i], options->option)) { has_option = TRUE; break; } } if (has_option) { gchar *text = g_strdup_printf ("%s", groups->desc); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), TRUE); label = gtk_expander_get_label_widget (GTK_EXPANDER (expander)); gtk_label_set_markup (GTK_LABEL (label), text); g_free (text); g_object_set_data (G_OBJECT (expander), "checked", GINT_TO_POINTER (++checked)); } g_signal_connect (checkbutton, "toggled", G_CALLBACK (on_checkbutton_config_options_option_clicked), (gpointer) expander); gtk_box_pack_start (GTK_BOX (vbox), checkbutton, FALSE, TRUE, 0); gtk_widget_show (checkbutton); options = options->next; } } } static GtkTreeModel * layout_model_new (InputPadGtkWindow *input_pad, InputPadXKBLayoutList *xkb_layout_list) { InputPadXKBLayoutList *layouts = NULL; GtkTreeStore *store; GtkTreeIter iter; gchar **group_layouts = input_pad->priv->group_layouts; gchar **group_variants = input_pad->priv->group_variants; int i; store = gtk_tree_store_new (LAYOUT_N_COLS, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN); for (i = 0; group_layouts[i]; i++) { const gchar *layout_name = NULL; const gchar *layout_desc = NULL; const gchar *variant_name = NULL; const gchar *variant_desc = NULL; gboolean has_layout = FALSE; for (layouts = xkb_layout_list ;layouts; layouts = layouts->next) { InputPadXKBVariantList *variants = layouts->variants; if (!g_strcmp0 (group_layouts[i], layouts->layout)) { layout_name = layouts->layout; layout_desc = layouts->desc; if (group_variants == NULL || i >= g_strv_length (group_variants) || group_variants[i] == NULL || *group_variants[i] == '\0') { has_layout = TRUE; break; } while (variants) { if (!g_strcmp0 (group_variants[i], variants->variant)) { has_layout = TRUE; variant_name = variants->variant; variant_desc = variants->desc; break; } variants = variants->next; } } if (has_layout) { break; } } if (!has_layout) { continue; } gtk_tree_store_append (store, &iter, NULL); gtk_tree_store_set (store, &iter, LAYOUT_LAYOUT_NAME_COL, layout_name, LAYOUT_LAYOUT_DESC_COL, variant_desc ? variant_desc : layout_desc, LAYOUT_VARIANT_NAME_COL, variant_name, LAYOUT_VARIANT_DESC_COL, NULL, LAYOUT_VISIBLE_COL, TRUE, -1); } /* Appended layouts should be last. */ #if 0 gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (store), LAYOUT_LAYOUT_DESC_COL, sort_layout_name, NULL, NULL); gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (store), LAYOUT_LAYOUT_DESC_COL, GTK_SORT_ASCENDING); #endif return GTK_TREE_MODEL (store); } static void create_keyboard_layout_list_ui_real (GtkWidget *vbox, InputPadGtkWindow *window) { InputPadXKBConfigReg *xkb_config_reg = window->priv->xkb_config_reg; InputPadXKBLayoutList *layouts; GtkWidget *hbox; GtkWidget *label; GtkWidget *combobox; GtkWidget *button; GtkTreeModel *model; GtkTreeIter iter; GtkCellRenderer *renderer; g_return_if_fail (xkb_config_reg != NULL); layouts = xkb_config_reg->layouts; g_return_if_fail (layouts != NULL); g_return_if_fail (xkb_config_reg->option_groups != NULL); config_layouts_treeview_set (window, layouts); config_options_treeview_set (window, xkb_config_reg->option_groups); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); gtk_widget_show (hbox); label = gtk_label_new_with_mnemonic (_("_Layout:")); gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); gtk_widget_show (label); combobox = gtk_combo_box_new (); gtk_label_set_mnemonic_widget (GTK_LABEL (label), combobox); gtk_box_pack_start (GTK_BOX (hbox), combobox, FALSE, FALSE, 0); model = layout_model_new (window, layouts); gtk_combo_box_set_model (GTK_COMBO_BOX (combobox), model); g_object_unref (G_OBJECT (model)); if (gtk_tree_model_get_iter_first (model, &iter)) { gtk_combo_box_set_active_iter (GTK_COMBO_BOX (combobox), &iter); } renderer = gtk_cell_renderer_text_new (); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combobox), renderer, FALSE); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combobox), renderer, "text", LAYOUT_LAYOUT_DESC_COL, "visible", LAYOUT_VISIBLE_COL, NULL); gtk_widget_show (combobox); g_signal_connect (G_OBJECT (window), "keyboard-changed", G_CALLBACK (on_window_keyboard_changed_combobox), (gpointer) combobox); g_signal_connect (G_OBJECT (combobox), "changed", G_CALLBACK (on_combobox_layout_changed), (gpointer) window); window->priv->config_layouts_combobox = combobox; button = gtk_button_new_with_mnemonic (_("_Configure Layouts")); gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, FALSE, 0); gtk_widget_show (button); g_signal_connect (button, "clicked", G_CALLBACK (on_button_config_layouts_clicked), (gpointer) window->priv->config_layouts_dialog); } static void set_about (GtkWidget *widget) { GtkAboutDialog *about_dlg = GTK_ABOUT_DIALOG (widget); gchar *license = NULL; /* No longer used in gtk 2.20 gchar *license1, *license2, *license3; license1 = _("" "This library is free software; you can redistribute it and/or " "modify it under the terms of the GNU Lesser General Public " "License as published by the Free Software Foundation; either " "version 2 of the License, or (at your option) any later version."); license2 = _("" "This library is distributed in the hope that it will be useful, " "but WITHOUT ANY WARRANTY; without even the implied warranty of " "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU " "Lesser General Public License for more details."); license3 = _("" "You should have received a copy of the GNU Lesser General Public " "License along with this library; if not, write to the Free Software " "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, " "MA 02110-1301 USA"); license = g_strdup_printf ("%s\n\n%s\n\n%s", license1, license2, license3); */ /* This format has been used since gtk 2.20. */ license = g_strdup_printf (_("This program comes with ABSOLUTELY NO WARRANTY; for details, visit %s"), "http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html"); gtk_about_dialog_set_license (about_dlg, license); gtk_about_dialog_set_version (about_dlg, VERSION); g_free (license); } static GtkTreeModel * custom_char_group_model_new (InputPadGtkWindow *window) { InputPadGroup *group; GtkTreeStore *store; GtkTreeIter iter; int i; g_return_val_if_fail (INPUT_PAD_IS_GTK_WINDOW (window), NULL); g_return_val_if_fail (window->priv != NULL && window->priv->group != NULL, NULL); group = window->priv->group; store = gtk_tree_store_new (CHAR_BLOCK_N_COLS, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_BOOLEAN); for (i = 0; group; i++) { gtk_tree_store_append (store, &iter, NULL); gtk_tree_store_set (store, &iter, CHAR_BLOCK_LABEL_COL, group->name, CHAR_BLOCK_UNICODE_COL, NULL, CHAR_BLOCK_UTF8_COL, NULL, CHAR_BLOCK_START_COL, i, CHAR_BLOCK_END_COL, 0, CHAR_BLOCK_VISIBLE_COL, TRUE, -1); group = group->next; } return GTK_TREE_MODEL (store); } static GtkTreeModel * custom_char_table_model_new (InputPadGtkWindow *window, InputPadTable *table) { GtkTreeStore *store; GtkTreeIter iter; int i; g_return_val_if_fail (INPUT_PAD_IS_GTK_WINDOW (window), NULL); g_return_val_if_fail (table != NULL, NULL); store = gtk_tree_store_new (CHAR_BLOCK_N_COLS, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_BOOLEAN); for (i = 0; table; i++) { gtk_tree_store_append (store, &iter, NULL); gtk_tree_store_set (store, &iter, CHAR_BLOCK_LABEL_COL, table->name, CHAR_BLOCK_UNICODE_COL, NULL, CHAR_BLOCK_UTF8_COL, NULL, CHAR_BLOCK_START_COL, i, CHAR_BLOCK_END_COL, 0, CHAR_BLOCK_VISIBLE_COL, TRUE, -1); table = table->next; } return GTK_TREE_MODEL (store); } static int sort_char_block_start (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer data) { unsigned int start_a = 0; unsigned int start_b = 0; gtk_tree_model_get (model, a, CHAR_BLOCK_START_COL, &start_a, -1); gtk_tree_model_get (model, b, CHAR_BLOCK_START_COL, &start_b, -1); return (start_a - start_b); } static GtkTreeModel * all_char_table_model_new (void) { GtkTreeStore *store; GtkTreeIter iter; int i, j; unsigned int start, end; gchar *range; gchar *range2; gchar buff[7]; gchar buff2[35]; /* 7 x 5 e.g. 'a' -> '0x61 ' */ gchar buff3[35]; store = gtk_tree_store_new (CHAR_BLOCK_N_COLS, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_BOOLEAN); for (i = 0; input_pad_unicode_block_table[i].label; i++) { gtk_tree_store_append (store, &iter, NULL); start = input_pad_unicode_block_table[i].start; end = input_pad_unicode_block_table[i].end; range = g_strdup_printf ("U+%06X - U+%06X", start, end); buff[g_unichar_to_utf8 ((gunichar) start, buff)] = '\0'; buff2[0] = '\0'; for (j = 0; buff[j] && j < 7; j++) { sprintf (buff2 + j * 5, "0x%02X ", (unsigned char) buff[j]); } if (buff[0] == '\0') { buff2[0] = '0'; buff2[0] = 'x'; buff2[1] = '0'; buff2[2] = '0'; buff2[3] = '\0'; } buff[g_unichar_to_utf8 ((gunichar) end, buff)] = '\0'; buff3[0] = '\0'; for (j = 0; buff[j] && j < 7; j++) { sprintf (buff3 + j * 5, "0x%02X ", (unsigned char) buff[j]); } range2 = g_strdup_printf ("%s - %s", buff2, buff3); gtk_tree_store_set (store, &iter, CHAR_BLOCK_LABEL_COL, _(input_pad_unicode_block_table[i].label), CHAR_BLOCK_UNICODE_COL, range, CHAR_BLOCK_UTF8_COL, range2, CHAR_BLOCK_START_COL, start, CHAR_BLOCK_END_COL, end, CHAR_BLOCK_VISIBLE_COL, TRUE, -1); g_free (range); g_free (range2); } gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (store), CHAR_BLOCK_START_COL, sort_char_block_start, NULL, NULL); gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (store), CHAR_BLOCK_START_COL, GTK_SORT_ASCENDING); return GTK_TREE_MODEL (store); } static void create_about_dialog_ui (GtkBuilder *builder, GtkWidget *window) { GtkWidget *about_dlg; about_dlg = GTK_WIDGET (gtk_builder_get_object (builder, "AboutDialog")); set_about (about_dlg); } static void create_code_point_dialog_ui (GtkBuilder *builder, GtkWidget *window) { GtkWidget *cp_dlg; GtkWidget *digit_hbox; GtkWidget *char_label; GtkWidget *encoding_hbox; GtkWidget *base_hbox; GtkWidget *down_button; GtkWidget *up_button; GtkWidget *send_button; GtkWidget *close_button; GList *orig_list; GList *list = NULL; static CodePointData cp_data = {NULL, NULL}; cp_dlg = GTK_WIDGET (gtk_builder_get_object (builder, "CodePointDialog")); digit_hbox = GTK_WIDGET (gtk_builder_get_object (builder, "CodePointDigitHBox")); char_label = GTK_WIDGET (gtk_builder_get_object (builder, "CodePointCharLabel")); down_button = GTK_WIDGET (gtk_builder_get_object (builder, "CodePointDownButton")); up_button = GTK_WIDGET (gtk_builder_get_object (builder, "CodePointUpButton")); cp_data.signal_window = window; cp_data.digit_hbox = digit_hbox; cp_data.char_label = char_label; cp_data.down_button = down_button; cp_data.up_button = up_button; encoding_hbox = GTK_WIDGET (gtk_builder_get_object (builder, "EncodingHBox")); list = gtk_container_get_children (GTK_CONTAINER (encoding_hbox)); orig_list = list; while (list) { if (GTK_IS_RADIO_BUTTON (list->data)) { g_signal_connect (G_OBJECT (list->data), "clicked", G_CALLBACK (on_button_encoding_clicked), (gpointer) &cp_data); } list = list->next; } g_list_free (orig_list); base_hbox = GTK_WIDGET (gtk_builder_get_object (builder, "BaseHBox")); list = gtk_container_get_children (GTK_CONTAINER (base_hbox)); orig_list = list; while (list) { if (GTK_IS_RADIO_BUTTON (list->data)) { g_signal_connect (G_OBJECT (list->data), "clicked", G_CALLBACK (on_button_base_clicked), (gpointer) &cp_data); } list = list->next; } g_list_free (orig_list); init_spin_button (down_button, up_button, &cp_data); send_button = GTK_WIDGET (gtk_builder_get_object (builder, "CodePointSendButton")); close_button = GTK_WIDGET (gtk_builder_get_object (builder, "CodePointCloseButton")); g_signal_connect (G_OBJECT (send_button), "clicked", G_CALLBACK (on_button_send_clicked), (gpointer) &cp_data); g_signal_connect (G_OBJECT (close_button), "clicked", G_CALLBACK (on_button_ok_clicked), (gpointer) cp_dlg); set_code_point_base (&cp_data, 16); } static void create_contents_dialog_ui (GtkBuilder *builder, GtkWidget *window) { GtkWidget *contents_dlg; GtkWidget *contents_ok; contents_dlg = GTK_WIDGET (gtk_builder_get_object (builder, "ContentsDialog")); contents_ok = GTK_WIDGET (gtk_builder_get_object (builder, "ContentsOKButton")); g_signal_connect (G_OBJECT (contents_ok), "clicked", G_CALLBACK (on_button_ok_clicked), (gpointer) contents_dlg); } static void create_custom_char_views (GtkWidget *hbox, InputPadGtkWindow *window) { GtkWidget *scrolled; GtkWidget *main_tv; GtkWidget *sub_tv; GtkTreeModel *model; GtkCellRenderer *renderer; GtkTreeViewColumn *column; GtkTreeSelection *selection; GtkTreeIter iter; static CharTreeViewData tv_data; g_return_if_fail (INPUT_PAD_IS_GTK_WINDOW (window)); scrolled = gtk_scrolled_window_new (NULL, NULL); gtk_widget_set_size_request (scrolled, 100, 200); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); gtk_box_pack_start (GTK_BOX (hbox), scrolled, FALSE, FALSE, 0); gtk_widget_show (scrolled); /* GtkViewport is not used because the header of GtkTreeviewColumn * is hidden with GtkViewport. */ main_tv = gtk_tree_view_new (); gtk_container_add (GTK_CONTAINER (scrolled), main_tv); model = custom_char_group_model_new (INPUT_PAD_GTK_WINDOW (window)); gtk_tree_view_set_model (GTK_TREE_VIEW (main_tv), model); g_object_unref (G_OBJECT (model)); gtk_widget_show (main_tv); scrolled = gtk_scrolled_window_new (NULL, NULL); gtk_widget_set_size_request (scrolled, 100, 200); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); gtk_box_pack_start (GTK_BOX (hbox), scrolled, FALSE, FALSE, 0); gtk_widget_show (scrolled); /* GtkViewport is not used because the header of GtkTreeviewColumn * is hidden with GtkViewport. */ sub_tv = gtk_tree_view_new (); gtk_container_add (GTK_CONTAINER (scrolled), sub_tv); gtk_widget_show (sub_tv); renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes (_("Group"), renderer, "text", CHAR_BLOCK_LABEL_COL, "visible", CHAR_BLOCK_VISIBLE_COL, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (main_tv), column); gtk_tree_view_set_show_expanders (GTK_TREE_VIEW (main_tv), FALSE); renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes (_("Subgroup"), renderer, "text", CHAR_BLOCK_LABEL_COL, "visible", CHAR_BLOCK_VISIBLE_COL, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (sub_tv), column); gtk_tree_view_set_show_expanders (GTK_TREE_VIEW (sub_tv), FALSE); scrolled = gtk_scrolled_window_new (NULL, NULL); gtk_widget_set_size_request (scrolled, 350, 200); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); gtk_box_pack_start (GTK_BOX (hbox), scrolled, FALSE, FALSE, 0); gtk_widget_show (scrolled); selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (main_tv)); tv_data.window = GTK_WIDGET (window); tv_data.sub_tv = sub_tv; g_signal_connect (G_OBJECT (selection), "changed", G_CALLBACK (on_tree_view_select_custom_char_group), &tv_data); selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (sub_tv)); tv_data.scrolled = scrolled; tv_data.window = GTK_WIDGET (window); tv_data.main_tv = main_tv; g_signal_connect (G_OBJECT (selection), "changed", G_CALLBACK (on_tree_view_select_custom_char_table), &tv_data); /* Ubuntu does not select the first iter when invoke input-pad */ if (gtk_tree_model_get_iter_first (model, &iter)) { selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (main_tv)); gtk_tree_selection_select_iter (selection, &iter); } } static void destroy_custom_char_views (GtkWidget *hbox, InputPadGtkWindow *window) { GList *hbox_list = NULL; GList *scrolled_list; GList *viewport_list; GtkWidget *scrolled; GtkWidget *viewport; GtkWidget *tv; GtkTreeViewColumn *column; int i; g_return_if_fail (INPUT_PAD_IS_GTK_WINDOW (window)); for (i = 0; i < 2; i++) { hbox_list = gtk_container_get_children (GTK_CONTAINER (hbox)); g_return_if_fail (GTK_IS_SCROLLED_WINDOW (hbox_list->data)); scrolled = GTK_WIDGET (hbox_list->data); g_list_free (hbox_list); scrolled_list = gtk_container_get_children (GTK_CONTAINER (scrolled)); g_return_if_fail (GTK_IS_VIEWPORT (scrolled_list->data)); viewport = GTK_WIDGET (scrolled_list->data); g_list_free (scrolled_list); viewport_list = gtk_container_get_children (GTK_CONTAINER (viewport)); g_return_if_fail (GTK_IS_TREE_VIEW (viewport_list->data)); tv = GTK_WIDGET (viewport_list->data); g_list_free (viewport_list); column = gtk_tree_view_get_column (GTK_TREE_VIEW (tv), 0); gtk_tree_view_remove_column (GTK_TREE_VIEW (tv), column); gtk_container_remove (GTK_CONTAINER (viewport), tv); gtk_container_remove (GTK_CONTAINER (scrolled), viewport); gtk_container_remove (GTK_CONTAINER (hbox), scrolled); } hbox_list = gtk_container_get_children (GTK_CONTAINER (hbox)); g_return_if_fail (GTK_IS_SCROLLED_WINDOW (hbox_list->data)); scrolled = GTK_WIDGET (hbox_list->data); g_list_free (hbox_list); scrolled_list = gtk_container_get_children (GTK_CONTAINER (scrolled)); g_return_if_fail (GTK_IS_VIEWPORT (scrolled_list->data)); viewport = GTK_WIDGET (scrolled_list->data); g_list_free (scrolled_list); destroy_custom_char_view_table (scrolled, window); gtk_container_remove (GTK_CONTAINER (scrolled), viewport); gtk_container_remove (GTK_CONTAINER (hbox), scrolled); } static void create_custom_char_view_ui (GtkBuilder *builder, GtkWidget *window, GActionMap *map) { InputPadGtkWindowPrivate *priv; GtkWidget *hbox; GAction *action; g_return_if_fail (INPUT_PAD_IS_GTK_WINDOW (window)); priv = input_pad_gtk_window_get_instance_private (INPUT_PAD_GTK_WINDOW (window)); hbox = priv->top_custom_char_view_hbox; create_custom_char_views (hbox, INPUT_PAD_GTK_WINDOW (window)); /* Should not call g_variant_unref() for g_action_change_state() * and g_simple_action_set_state() since the variant is floating? */ action = g_action_map_lookup_action (map, "ShowCustomChars"); if (set_show_table_type == 1) { g_action_change_state (action, g_variant_new_boolean (TRUE)); gtk_widget_show (hbox); } else { g_action_change_state (action, g_variant_new_boolean (FALSE)); gtk_widget_hide (hbox); } g_signal_connect (G_OBJECT (window), "group-changed", G_CALLBACK (on_window_group_changed_custom_char_views), (gpointer) hbox); g_signal_connect (G_OBJECT (window), "group-appended", G_CALLBACK (on_window_group_appended_custom_char_views), (gpointer) hbox); } static void append_all_char_view_table (GtkWidget *scrolled, unsigned int start, unsigned int end, GtkWidget *window) { InputPadGtkWindow *input_pad; unsigned int table_code_min = start; unsigned int table_code_max = end; GtkWidget *table; g_return_if_fail (INPUT_PAD_IS_GTK_WINDOW (window)); input_pad = INPUT_PAD_GTK_WINDOW (window); if ((end - start + 1) > INPUT_PAD_MAX_COLUMN * INPUT_PAD_MAX_ROW) { #if 0 g_warning ("Too many chars %ud > %ud", end - start + 1, INPUT_PAD_MAX_COLUMN * INPUT_PAD_MAX_ROW); #endif end = start + INPUT_PAD_MAX_COLUMN * INPUT_PAD_MAX_WINDOW_ROW - 1; } table = gtk_grid_new (); g_object_set (table, "halign", GTK_ALIGN_START, "valign", GTK_ALIGN_START, "margin", 0, "expand", FALSE, "row-spacing", 0, "column-spacing", 0, "row-homogeneous", TRUE, "column-homogeneous", TRUE, NULL); append_unicode_table (table, start, start, end, input_pad); if (end < table_code_max) { GtkWidget *viewport = input_pad_gtk_viewport_new (); gtk_container_add (GTK_CONTAINER (scrolled), viewport); gtk_container_add (GTK_CONTAINER (viewport), table); input_pad_gtk_viewport_table_configure (INPUT_PAD_GTK_VIEWPORT (viewport), table, table_code_min, table_code_max); gtk_widget_show (viewport); } else { #if GTK_CHECK_VERSION (3, 8, 0) gtk_container_add (GTK_CONTAINER (scrolled), table); #else gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled), table); #endif } gtk_widget_show (table); } static void destroy_all_char_view_table (GtkWidget *scrolled, InputPadGtkWindow *window) { /* Currently same contents. */ destroy_char_view_table_common (scrolled, window); } static void create_all_char_view_ui (GtkBuilder *builder, GtkWidget *window, GActionMap *map) { InputPadGtkWindowPrivate *priv; GtkWidget *hbox; GtkWidget *scrolled; GtkWidget *scrollbar; GtkWidget *tv; GtkTreeModel *model; GtkCellRenderer *renderer; GtkTreeViewColumn *column; GtkTreeSelection *selection; GtkTreeIter iter; GtkCssProvider *css_provider; GtkStyleContext *style_context; static CharTreeViewData tv_data; GAction *action; GError *error = NULL; priv = input_pad_gtk_window_get_instance_private (INPUT_PAD_GTK_WINDOW (window)); hbox = priv->top_char_view_hbox; scrolled = gtk_scrolled_window_new (NULL, NULL); gtk_widget_set_size_request (scrolled, 200, 200); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); gtk_box_pack_start (GTK_BOX (hbox), scrolled, FALSE, FALSE, 0); gtk_widget_show (scrolled); /* GtkViewport is not used because the header of GtkTreeviewColumn * is hidden with GtkViewport. */ tv = gtk_tree_view_new (); gtk_container_add (GTK_CONTAINER (scrolled), tv); model = all_char_table_model_new (); gtk_tree_view_set_model (GTK_TREE_VIEW (tv), model); g_object_unref (G_OBJECT (model)); gtk_widget_show (tv); renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes (_("Block"), renderer, "text", CHAR_BLOCK_LABEL_COL, "visible", CHAR_BLOCK_VISIBLE_COL, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (tv), column); renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes ("Unicode", renderer, "text", CHAR_BLOCK_UNICODE_COL, "visible", CHAR_BLOCK_VISIBLE_COL, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (tv), column); renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes ("UTF-8", renderer, "text", CHAR_BLOCK_UTF8_COL, "visible", CHAR_BLOCK_VISIBLE_COL, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (tv), column); scrolled = gtk_scrolled_window_new (NULL, NULL); gtk_widget_set_size_request (scrolled, 470, 200); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); gtk_box_pack_start (GTK_BOX (hbox), scrolled, FALSE, FALSE, 0); /* Disable multiple updated GtkAdjustment with value-changed signal. */ g_object_set (gtk_widget_get_settings (scrolled), "gtk-enable-animations", FALSE, NULL); scrollbar = gtk_scrolled_window_get_vscrollbar (GTK_SCROLLED_WINDOW (scrolled)); css_provider = gtk_css_provider_new (); gtk_css_provider_load_from_data (css_provider, "GtkScrollbar { " \ " -GtkScrollbar-has-backward-stepper: true;" \ " -GtkScrollbar-has-forward-stepper: true;" \ " }", -1, &error); style_context = gtk_widget_get_style_context (scrollbar); gtk_style_context_add_provider (style_context, GTK_STYLE_PROVIDER (css_provider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); g_object_unref (css_provider); gtk_widget_show (scrolled); selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (tv)); tv_data.scrolled = scrolled; tv_data.window = window; g_signal_connect (G_OBJECT (selection), "changed", G_CALLBACK (on_tree_view_select_all_char), &tv_data); /* Ubuntu does not select the first iter when invoke input-pad */ if (gtk_tree_model_get_iter_first (model, &iter)) { gtk_tree_selection_select_iter (selection, &iter); } /* Should not call g_variant_unref() for g_action_change_state() * and g_simple_action_set_state() since the variant is floating? */ action = g_action_map_lookup_action (map, "ShowAllChars"); if (set_show_table_type == 2) { g_action_change_state (action, g_variant_new_boolean (TRUE)); gtk_widget_show (hbox); } else { g_action_change_state (action, g_variant_new_boolean (FALSE)); gtk_widget_hide (hbox); } action = g_action_map_lookup_action (map, "ShowNothing"); if (set_show_table_type == 0) { g_action_change_state (action, g_variant_new_boolean (TRUE)); } else { g_action_change_state (action, g_variant_new_boolean (FALSE)); } } static void create_keyboard_layout_ui (GtkBuilder *builder, GtkWidget *window, GActionMap *map) { InputPadGtkWindowPrivate *priv; GtkWidget *keyboard_vbox; GtkWidget *button_close; GtkWidget *button_add; GtkWidget *button_remove; GtkWidget *button_option; GtkWidget *button_option_close; GAction *action; InputPadGtkWindow *input_pad = INPUT_PAD_GTK_WINDOW (window); priv = input_pad_gtk_window_get_instance_private (INPUT_PAD_GTK_WINDOW (window)); keyboard_vbox = priv->top_keyboard_layout_vbox; button_close = GTK_WIDGET (gtk_builder_get_object (builder, "ConfigLayoutsCloseButton")); button_add = GTK_WIDGET (gtk_builder_get_object (builder, "ConfigLayoutsAddButton")); button_remove = GTK_WIDGET (gtk_builder_get_object (builder, "ConfigLayoutsRemoveButton")); button_option = GTK_WIDGET (gtk_builder_get_object (builder, "ConfigLayoutsOptionButton")); button_option_close = GTK_WIDGET (gtk_builder_get_object (builder, "ConfigOptionsCloseButton")); input_pad->priv->config_layouts_dialog = GTK_WIDGET (gtk_builder_get_object (builder, "ConfigLayoutsDialog")); input_pad->priv->config_layouts_add_treeview = GTK_WIDGET (gtk_builder_get_object (builder, "ConfigLayoutsAddTreeView")); input_pad->priv->config_layouts_remove_treeview = GTK_WIDGET (gtk_builder_get_object (builder, "ConfigLayoutsRemoveTreeView")); input_pad->priv->config_options_dialog = GTK_WIDGET (gtk_builder_get_object (builder, "ConfigOptionsDialog")); input_pad->priv->config_options_vbox = GTK_WIDGET (gtk_builder_get_object (builder, "ConfigOptionsVBox")); g_signal_connect_after (G_OBJECT (window), "realize", G_CALLBACK (on_window_realize), (gpointer) keyboard_vbox); g_signal_connect (G_OBJECT (button_close), "clicked", G_CALLBACK (on_button_config_layouts_close_clicked), (gpointer) input_pad->priv->config_layouts_dialog); g_signal_connect (G_OBJECT (button_add), "clicked", G_CALLBACK (on_button_config_layouts_add_clicked), (gpointer) window); g_signal_connect (G_OBJECT (button_remove), "clicked", G_CALLBACK (on_button_config_layouts_remove_clicked), (gpointer) window); g_signal_connect (G_OBJECT (button_option), "clicked", G_CALLBACK (on_button_config_layouts_clicked), (gpointer) input_pad->priv->config_options_dialog); g_signal_connect (G_OBJECT (button_option_close), "clicked", G_CALLBACK (on_button_config_options_close_clicked), (gpointer) input_pad); /* Should not call g_variant_unref() for g_action_change_state() * and g_simple_action_set_state() since the variant is floating? */ action = g_action_map_lookup_action (map, "ShowLayout"); if (set_show_layout_type == 1) { g_action_change_state (action, g_variant_new_boolean (TRUE)); gtk_widget_show (keyboard_vbox); } else { g_action_change_state (action, g_variant_new_boolean (FALSE)); gtk_widget_hide (keyboard_vbox); } } static InputPadGtkWindow * create_ui (InputPadGtkApplication *app, unsigned int child) { GError *error = NULL; InputPadGtkWindow *window = NULL; GtkBuilder *builder = NULL; GActionMap *map = G_ACTION_MAP (app); builder = app->builder; window = INPUT_PAD_GTK_WINDOW (g_object_new (INPUT_PAD_TYPE_GTK_WINDOW, "application", app, NULL)); window->child = child; gtk_window_set_icon_from_file (GTK_WINDOW (window), DATAROOTDIR "/pixmaps/input-pad.png", &error); error = NULL; gtk_window_set_default_icon_from_file (DATAROOTDIR "/pixmaps/input-pad.png", &error); create_code_point_dialog_ui (builder, GTK_WIDGET (window)); create_about_dialog_ui (builder, GTK_WIDGET (window)); create_contents_dialog_ui (builder, GTK_WIDGET (window)); create_custom_char_view_ui (builder, GTK_WIDGET (window), map); create_all_char_view_ui (builder, GTK_WIDGET (window), map); create_keyboard_layout_ui (builder, GTK_WIDGET (window), map); gtk_builder_connect_signals (builder, NULL); return window; } #ifdef MODULE_XTEST_GDK_BASE static GModule * open_xtest_gmodule (gboolean check) { gchar *filename; GModule *module = NULL; const gchar *error = NULL; g_return_val_if_fail (MODULE_XTEST_GDK_BASE != NULL, NULL); if (!g_module_supported ()) { error = g_module_error (); if (!check) { g_warning ("Module (%s) is not supported on your platform: %s", MODULE_XTEST_GDK_BASE, error ? error : ""); } return NULL; } filename = g_module_build_path (MODULE_XTEST_GDK_DIR, MODULE_XTEST_GDK_BASE); g_return_val_if_fail (filename != NULL, NULL); module = g_module_open (filename, G_MODULE_BIND_LAZY); if (module == NULL) { error = g_module_error (); if (!check) { g_warning ("Could not open %s: %s", filename, error ? error : ""); } g_free (filename); return NULL; } g_free (filename); return module; } static void input_pad_gtk_window_xtest_gdk_destroy (InputPadGtkWindow *window) { const gchar *error = NULL; g_return_if_fail (window != NULL && INPUT_PAD_IS_GTK_WINDOW (window)); g_return_if_fail (window->priv != NULL); g_return_if_fail (window->priv->module_gdk_xtest != NULL); if (!g_module_close (window->priv->module_gdk_xtest)) { error = g_module_error (); g_warning ("Cannot close %s: %s", MODULE_XTEST_GDK_BASE, error ? error : ""); window->priv->module_gdk_xtest = NULL; return; } window->priv->module_gdk_xtest = NULL; } static void input_pad_gtk_window_xtest_gdk_init (InputPadGtkWindow *window) { const gchar *error = NULL; const gchar *symbol_name; const gchar *module_name; GModule *module = NULL; gboolean (* init) (InputPadGtkWindow *window); g_return_if_fail (window != NULL && INPUT_PAD_IS_GTK_WINDOW (window)); g_return_if_fail (window->priv != NULL); if (window->priv->module_gdk_xtest) { return; } if ((module = open_xtest_gmodule (FALSE)) == NULL) { return; } window->priv->module_gdk_xtest = module; symbol_name = "input_pad_module_init"; module_name = g_module_name (module); if (!g_module_symbol (module, symbol_name, (gpointer *)&init)) { error = g_module_error (); g_warning ("Could not find '%s' in %s: %s", symbol_name, module_name ? module_name : "", error ? error : ""); input_pad_gtk_window_xtest_gdk_destroy (window); return; } if (init == NULL) { g_warning ("Function '%s' is NULL in %s", symbol_name, module_name ? module_name : ""); input_pad_gtk_window_xtest_gdk_destroy (window); return; } if (!init (window)) { g_warning ("Function '%s' failed to be run in %s", symbol_name, module_name ? module_name : ""); input_pad_gtk_window_xtest_gdk_destroy (window); return; } } static void input_pad_gtk_window_xtest_gdk_setup (InputPadGtkWindow *window) { const gchar *symbol_name = "input_pad_module_setup"; const gchar *module_name; const gchar *error = NULL; gboolean (* setup) (InputPadGtkWindow *window); g_return_if_fail (window != NULL && INPUT_PAD_IS_GTK_WINDOW (window)); g_return_if_fail (window->priv != NULL); g_return_if_fail (window->priv->module_gdk_xtest != NULL); module_name = g_module_name (window->priv->module_gdk_xtest); if (!g_module_symbol (window->priv->module_gdk_xtest, symbol_name, (gpointer *)&setup)) { error = g_module_error (); g_warning ("Could not find '%s' in %s: %s", symbol_name, module_name ? module_name : "", error ? error : ""); return; } if (setup == NULL) { g_warning ("Function '%s' is NULL in %s", symbol_name, module_name ? module_name : ""); return; } if (!setup (window)) { g_warning ("Function '%s' failed to be run in %s", symbol_name, module_name ? module_name : ""); return; } } #endif /* MODULE_XTEST_GDK_BASE */ static gboolean check_module_filename (const gchar *filename) { if (!g_str_has_prefix (filename, "lib") || !g_str_has_prefix (filename + 3, MODULE_NAME_PREFIX)) { g_warning ("File prefix is not input-pad library: %s", filename); return FALSE; } #ifdef G_MODULE_SUFFIX /* G_MODULE_SUFFIX is defined in glibconfig.h */ g_assert (G_MODULE_SUFFIX != NULL); if (!g_str_has_suffix (filename, "." G_MODULE_SUFFIX)) { /* filename is ignored due to no suffix G_MODULE_SUFFIX. */ return FALSE; } #else g_debug ("Recommend to have G_MODULE_SUFFIX to avoid '.la' file.\n"); #endif return TRUE; } static GModule * kbdui_module_open (const gchar *filepath) { #ifndef USE_GLOBAL_GMODULE return g_module_open (filepath, G_MODULE_BIND_LAZY); #else GModule *module = NULL; g_return_val_if_fail (filepath != NULL, NULL); if (module_table == NULL) { module_table = g_hash_table_new_full (g_str_hash, g_str_equal, (GDestroyNotify) g_free, NULL); g_return_val_if_fail (module_table != NULL, NULL); } module = (GModule *) g_hash_table_lookup (module_table, filepath); if (module == NULL) { module = g_module_open (filepath, G_MODULE_BIND_LAZY); if (module) { g_hash_table_insert (module_table, (gpointer) g_strdup (filepath), (gpointer) module); } } return module; #endif } static void kbdui_module_close (GModule *module) { #ifndef USE_GLOBAL_GMODULE const gchar *error = NULL; const gchar *module_name; if (!g_module_close (module)) { error = g_module_error (); module_name = g_module_name (module); g_warning ("Cannot close %s: %s", module_name ? module_name : "", error ? error : ""); } #endif } static void input_pad_gtk_window_kbdui_destroy (InputPadGtkWindow *window) { g_return_if_fail (window != NULL && INPUT_PAD_IS_GTK_WINDOW (window)); g_return_if_fail (window->priv != NULL); g_return_if_fail (window->priv->kbdui != NULL); if (window->priv->kbdui->module) { kbdui_module_close (window->priv->kbdui->module); window->priv->kbdui->module = NULL; } g_object_unref (window->priv->kbdui); window->priv->kbdui = NULL; } static gboolean input_pad_gtk_window_kbdui_module_get_desc (InputPadWindowKbduiName *list, GModule *module) { const gchar *error = NULL; const gchar *symbol_name; const gchar *module_name; const gchar *desc; const gchar * (* get_description) (void); InputPadWindowType (* get_type) (void); g_return_val_if_fail (module != NULL, FALSE); symbol_name = "input_pad_module_get_description"; module_name = g_module_name (module); if (!g_module_symbol (module, symbol_name, (gpointer *) &get_description)) { error = g_module_error (); g_warning ("Could not find '%s' in %s: %s", symbol_name, module_name ? module_name : "", error ? error : ""); return FALSE; } if (get_description == NULL) { g_warning ("Function '%s' is NULL in %s", symbol_name, module_name ? module_name : ""); return FALSE; } if ((desc = get_description ()) != NULL) { list->description = g_strdup (desc); } symbol_name = "input_pad_module_get_type"; module_name = g_module_name (module); if (!g_module_symbol (module, symbol_name, (gpointer *) &get_type)) { error = g_module_error (); g_warning ("Could not find '%s' in %s: %s", symbol_name, module_name ? module_name : "", error ? error : ""); return FALSE; } if (get_type == NULL) { g_warning ("Function '%s' is NULL in %s", symbol_name, module_name ? module_name : ""); return FALSE; } list->type = get_type (); return TRUE; } static gboolean input_pad_gtk_window_kbdui_module_arg_init (int *argc, char ***argv, GModule *module, InputPadGtkKbduiContext *kbdui_context) { const gchar *error = NULL; const gchar *symbol_name; const gchar *module_name; gboolean (* arg_init) (int *argc, char ***argv, InputPadGtkKbduiContext *kbdui_context); g_return_val_if_fail (kbdui_context != NULL, FALSE); g_return_val_if_fail (module != NULL, FALSE); symbol_name = "input_pad_module_arg_init"; module_name = g_module_name (module); if (!g_module_symbol (module, symbol_name, (gpointer *) &arg_init)) { error = g_module_error (); g_warning ("Could not find '%s' in %s: %s", symbol_name, module_name ? module_name : "", error ? error : ""); return FALSE; } if (arg_init == NULL) { g_warning ("Function '%s' is NULL in %s", symbol_name, module_name ? module_name : ""); return FALSE; } if (!arg_init (argc, argv, kbdui_context)) { g_warning ("Function '%s' failed to be run in %s", symbol_name, module_name ? module_name : ""); return FALSE; } return TRUE; } static gboolean input_pad_gtk_window_kbdui_module_arg_init_post (int *argc, char ***argv, GModule *module, InputPadGtkKbduiContext *kbdui_context) { const gchar *error = NULL; const gchar *symbol_name; const gchar *module_name; gboolean (* arg_init_post) (int *argc, char ***argv, InputPadGtkKbduiContext *kbdui_context); g_return_val_if_fail (kbdui_context != NULL, FALSE); g_return_val_if_fail (module != NULL, FALSE); symbol_name = "input_pad_module_arg_init_post"; module_name = g_module_name (module); if (!g_module_symbol (module, symbol_name, (gpointer *) &arg_init_post)) { error = g_module_error (); g_warning ("Could not find '%s' in %s: %s", symbol_name, module_name ? module_name : "", error ? error : ""); return FALSE; } if (arg_init_post == NULL) { g_warning ("Function '%s' is NULL in %s", symbol_name, module_name ? module_name : ""); return FALSE; } if (!arg_init_post (argc, argv, kbdui_context)) { g_warning ("Function '%s' failed to be run in %s", symbol_name, module_name ? module_name : ""); return FALSE; } return TRUE; } static GModule * input_pad_gtk_window_parse_kbdui_module_arg_init (int *argc, char ***argv, const gchar *kbdui_name, InputPadGtkKbduiContext *kbdui_context) { gchar *name; gchar *filepath; const gchar *error = NULL; GModule *module; g_return_val_if_fail (MODULE_KBDUI_DIR != NULL, NULL); g_return_val_if_fail (kbdui_name != NULL, NULL); if (!g_module_supported ()) { error = g_module_error (); g_warning ("Module is not supported on your platform: %s", error ? error : ""); return NULL; } name = g_strdup_printf ("%s%s", MODULE_NAME_PREFIX, kbdui_name); filepath = g_module_build_path (MODULE_KBDUI_DIR, name); g_free (name); g_return_val_if_fail (filepath != NULL, NULL); module = kbdui_module_open (filepath); if (module == NULL) { error = g_module_error (); g_warning ("Could not open %s: %s", filepath, error ? error : ""); g_free (filepath); return NULL; } g_free (filepath); if (!input_pad_gtk_window_kbdui_module_arg_init (argc, argv, module, kbdui_context)) { kbdui_module_close (module); return NULL; } return module; } static GList * input_pad_gtk_window_parse_kbdui_modules (int *argc, char ***argv, InputPadGtkKbduiContext *kbdui_context) { GList *list = NULL; GError *error = NULL; const gchar *err_message; const gchar *dirname = MODULE_KBDUI_DIR; const gchar *filename; gchar *filepath; GModule *module = NULL; GDir *dir; g_return_val_if_fail (MODULE_KBDUI_DIR != NULL, NULL); if (!g_module_supported ()) { err_message = g_module_error (); g_warning ("Module is not supported on your platform: %s", err_message ? err_message : ""); return NULL; } if (!g_file_test (dirname, G_FILE_TEST_IS_DIR)) { g_warning ("Directory Not Found: %s", dirname); return NULL; } if ((dir = g_dir_open (dirname, 0, &error)) == NULL) { g_warning ("Cannot Open Directory: %s: %s", dirname, error ? error->message ? error->message : "" : ""); g_error_free (error); return NULL; } while ((filename = g_dir_read_name (dir)) != NULL) { if (!check_module_filename (filename)) { continue; } filepath = g_build_filename (dirname, filename, NULL); module = kbdui_module_open (filepath); if (module == NULL) { err_message = g_module_error (); g_warning ("Could not open %s: %s", filename, err_message ? err_message : ""); g_free (filepath); continue; } g_free (filepath); if (input_pad_gtk_window_kbdui_module_arg_init (argc, argv, module, kbdui_context)) { list = g_list_append (list, module); } else { kbdui_module_close (module); } } g_dir_close (dir); return list; } static void input_pad_gtk_window_kbdui_arg_init_post_list (int *argc, char ***argv, InputPadGtkKbduiContext *kbdui_context, GList *list) { const gchar *error = NULL; GList *p = list; GModule *module; if (!g_module_supported ()) { error = g_module_error (); g_warning ("Module is not supported on your platform: %s", error ? error : ""); return; } while (p) { module = (GModule *) p->data; input_pad_gtk_window_kbdui_module_arg_init_post (argc, argv, module, kbdui_context); kbdui_module_close (module); p->data = NULL; p = p->next; } g_list_free (list); } static void input_pad_gtk_window_kbdui_init (InputPadGtkWindow *window) { gchar *name; gchar *filename; const gchar *error = NULL; const gchar *symbol_name; const gchar *module_name; GModule *module = NULL; gboolean (* init) (InputPadGtkWindow *window); InputPadGtkKbdui * (* kbdui_new) (InputPadGtkWindow *window); InputPadGtkKbdui *kbdui; g_return_if_fail (window != NULL && INPUT_PAD_IS_GTK_WINDOW (window)); g_return_if_fail (window->priv != NULL); g_return_if_fail (MODULE_KBDUI_DIR != NULL); if (window->priv->kbdui) { return; } g_return_if_fail (window->priv->kbdui_name != NULL); if (!g_module_supported ()) { error = g_module_error (); g_warning ("Module (%s) is not supported on your platform: %s", window->priv->kbdui_name, error ? error : ""); return; } name = g_strdup_printf ("%s%s", MODULE_NAME_PREFIX, window->priv->kbdui_name); filename = g_module_build_path (MODULE_KBDUI_DIR, name); g_free (name); g_return_if_fail (filename != NULL); module = kbdui_module_open (filename); if (module == NULL) { error = g_module_error (); g_warning ("Could not open %s: %s", filename, error ? error : ""); g_free (filename); return; } g_free (filename); symbol_name = "input_pad_module_init"; module_name = g_module_name (module); if (!g_module_symbol (module, symbol_name, (gpointer *)&init)) { error = g_module_error (); g_warning ("Could not find '%s' in %s: %s", symbol_name, module_name ? module_name : "", error ? error : ""); kbdui_module_close (module); return; } if (init == NULL) { g_warning ("Function '%s' is NULL in %s", symbol_name, module_name ? module_name : ""); kbdui_module_close (module); return; } if (!init (window)) { g_warning ("Function '%s' failed to be run in %s", symbol_name, module_name ? module_name : ""); kbdui_module_close (module); return; } symbol_name = "input_pad_module_kbdui_new"; module_name = g_module_name (module); if (!g_module_symbol (module, symbol_name, (gpointer *)&kbdui_new)) { error = g_module_error (); g_warning ("Could not find '%s' in %s: %s", symbol_name, module_name ? module_name : "", error ? error : ""); kbdui_module_close (module); return; } if (kbdui_new == NULL) { g_warning ("Function '%s' is NULL in %s", symbol_name, module_name ? module_name : ""); kbdui_module_close (module); return; } if ((kbdui = kbdui_new (window)) == NULL) { g_warning ("Function '%s' failed to be run in %s", symbol_name, module_name ? module_name : ""); kbdui_module_close (module); return; } kbdui->module = module; window->priv->kbdui = kbdui; } static void input_pad_gtk_window_set_priv (InputPadGtkWindow *window) { InputPadGtkWindowPrivate *priv = input_pad_gtk_window_get_instance_private (window); if (priv->group == NULL) { priv->group = input_pad_group_parse_all_files (NULL, NULL); } priv->char_button_sensitive = TRUE; if (kbdui_name) { priv->kbdui_name = g_strdup (kbdui_name); } window->priv = priv; } static void input_pad_gtk_window_init (InputPadGtkWindow *window) { gtk_widget_init_template (GTK_WIDGET (window)); input_pad_gtk_window_set_priv (window); #ifdef MODULE_XTEST_GDK_BASE if (use_module_xtest) { input_pad_gtk_window_xtest_gdk_init (window); } #endif if (window->priv->kbdui_name) { input_pad_gtk_window_kbdui_init (window); } } static void input_pad_gtk_window_real_destroy (GtkWidget *widget) { InputPadGtkWindow *window = INPUT_PAD_GTK_WINDOW (widget); if (window->priv) { if (window->priv->group) { input_pad_group_destroy (window->priv->group); window->priv->group = NULL; } #ifdef MODULE_XTEST_GDK_BASE if (use_module_xtest) { input_pad_gtk_window_xtest_gdk_destroy (window); } #endif if (window->priv->kbdui) { input_pad_gtk_window_kbdui_destroy (window); } g_free (window->priv->kbdui_name); window->priv->kbdui_name = NULL; window->priv = NULL; } GTK_WIDGET_CLASS (input_pad_gtk_window_parent_class)->destroy (widget); } static void input_pad_gtk_window_real_realize (GtkWidget *window) { #ifdef MODULE_XTEST_GDK_BASE InputPadGtkWindow *input_pad = INPUT_PAD_GTK_WINDOW (window); if (use_module_xtest) { input_pad_gtk_window_xtest_gdk_setup (input_pad); } #endif GTK_WIDGET_CLASS (input_pad_gtk_window_parent_class)->realize (window); } static gboolean input_pad_gtk_window_real_button_pressed (InputPadGtkWindow *window, const gchar *str, guint type, guint keysym, guint keycode, guint state) { if (type == INPUT_PAD_TABLE_TYPE_CHARS) { if (keysym > 0) { send_key_event (gtk_widget_get_window (GTK_WIDGET (window)), keysym, keycode, state); } else { g_print ("%s", str ? str : ""); } } else if (type == INPUT_PAD_TABLE_TYPE_KEYSYMS) { send_key_event (gtk_widget_get_window (GTK_WIDGET (window)), keysym, keycode, state); } else if (type == INPUT_PAD_TABLE_TYPE_STRINGS) { g_print ("%s", str ? str : ""); } else if (type == INPUT_PAD_TABLE_TYPE_COMMANDS) { g_print ("%s", str ? str : ""); } else { g_warning ("Currently your table type is not supported."); } return FALSE; } static void input_pad_gtk_window_class_init (InputPadGtkWindowClass *klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); GtkWidgetClass *widget_class = (GtkWidgetClass *) klass; widget_class->destroy = input_pad_gtk_window_real_destroy; widget_class->realize = input_pad_gtk_window_real_realize; klass->button_pressed = input_pad_gtk_window_real_button_pressed; gtk_widget_class_set_template_from_resource (widget_class, "/com/github/fujiwarat/input-pad/window-gtk.ui"); gtk_widget_class_bind_template_child_private (widget_class, InputPadGtkWindow, top_custom_char_view_hbox); gtk_widget_class_bind_template_child_private (widget_class, InputPadGtkWindow, top_char_view_hbox); gtk_widget_class_bind_template_child_private (widget_class, InputPadGtkWindow, top_keyboard_layout_vbox); signals[BUTTON_PRESSED] = g_signal_new (I_("button-pressed"), G_TYPE_FROM_CLASS (gobject_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (InputPadGtkWindowClass, button_pressed), g_signal_accumulator_true_handled, NULL, INPUT_PAD_BOOL__STRING_UINT_UINT_UINT_UINT, G_TYPE_BOOLEAN, 5, G_TYPE_STRING | G_SIGNAL_TYPE_STATIC_SCOPE, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT); signals[KBD_CHANGED] = g_signal_new (I_("keyboard-changed"), G_TYPE_FROM_CLASS (gobject_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (InputPadGtkWindowClass, keyboard_changed), NULL, NULL, g_cclosure_marshal_VOID__INT, G_TYPE_NONE, 1, G_TYPE_INT); signals[GROUP_CHANGED] = g_signal_new (I_("group-changed"), G_TYPE_FROM_CLASS (gobject_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (InputPadGtkWindowClass, group_changed), NULL, NULL, INPUT_PAD_VOID__STRING_STRING, G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING); signals[GROUP_APPENDED] = g_signal_new (I_("group-appended"), G_TYPE_FROM_CLASS (gobject_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (InputPadGtkWindowClass, group_appended), NULL, NULL, INPUT_PAD_VOID__STRING_STRING, G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING); signals[CHAR_BUTTON_SENSITIVE] = g_signal_new (I_("char-button-sensitive"), G_TYPE_FROM_CLASS (gobject_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (InputPadGtkWindowClass, char_button_sensitive), NULL, NULL, g_cclosure_marshal_VOID__BOOLEAN, G_TYPE_NONE, 1, G_TYPE_BOOLEAN); signals[REORDER_BUTTON_PRESSED] = g_signal_new (I_("reorder-button-pressed"), G_TYPE_FROM_CLASS (gobject_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (InputPadGtkWindowClass, reorder_button_pressed), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); } InputPadGtkWindow * _input_pad_gtk_window_new_with_gtype (InputPadGtkApplication *app, GtkWindowType type, unsigned int child, gboolean gtype) { InputPadGtkWindow *window; g_return_val_if_fail (type >= GTK_WINDOW_TOPLEVEL && type <= GTK_WINDOW_POPUP, NULL); /* FIXME: Add INPUT_PAD_TYPE_GTK_WINDOW for a workaround. * python + gtkbuilder outputs an error: * ** ERROR **: ERROR: Invalid object type `InputPadGtkWindow' * swig bug with gtkbuilder? Ignored -export-dynamic */ if (gtype) { INPUT_PAD_TYPE_GTK_WINDOW; } window = create_ui (app, child); /* setting GtkWindowType is no longer supported with gtkbuilder because * the constructor property is done here. */ return window; } InputPadGtkWindow * input_pad_gtk_window_new_with_child (InputPadGtkApplication *app, GtkWindowType type, unsigned int child) { return _input_pad_gtk_window_new_with_gtype (app, type, child, FALSE); } InputPadGtkWindow * input_pad_gtk_window_new (InputPadGtkApplication *app) { return _input_pad_gtk_window_new_with_gtype (app, GTK_WINDOW_TOPLEVEL, 0, FALSE); } const char* input_pad_get_version (void) { return VERSION; } void input_pad_gtk_window_set_paddir (InputPadGtkWindow *window, const gchar *paddir, const gchar *domain) { g_return_if_fail (INPUT_PAD_IS_GTK_WINDOW (window)); g_signal_emit (window, signals[GROUP_CHANGED], 0, paddir, domain); } void input_pad_gtk_window_append_padfile (InputPadGtkWindow *window, const gchar *padfile, const gchar *domain) { g_return_if_fail (INPUT_PAD_IS_GTK_WINDOW (window)); g_signal_emit (window, signals[GROUP_APPENDED], 0, padfile, domain); } void input_pad_gtk_window_set_char_button_sensitive (InputPadGtkWindow *window, gboolean sensitive) { g_return_if_fail (INPUT_PAD_IS_GTK_WINDOW (window)); if (window->priv->char_button_sensitive == sensitive) { return; } g_signal_emit (window, signals[CHAR_BUTTON_SENSITIVE], 0, sensitive); window->priv->char_button_sensitive = sensitive; } void input_pad_gtk_window_reorder_button_pressed (InputPadGtkWindow *window) { g_return_if_fail (INPUT_PAD_IS_GTK_WINDOW (window)); g_signal_emit (window, signals[REORDER_BUTTON_PRESSED], 0); } guint input_pad_gtk_window_get_keyboard_state (InputPadGtkWindow *window) { g_return_val_if_fail (INPUT_PAD_IS_GTK_WINDOW (window), 0); return window->priv->keyboard_state; } void input_pad_gtk_window_set_keyboard_state (InputPadGtkWindow *window, guint keyboard_state) { g_return_if_fail (INPUT_PAD_IS_GTK_WINDOW (window)); window->priv->keyboard_state = keyboard_state; } void input_pad_gtk_window_set_keyboard_state_with_keysym (InputPadGtkWindow *window, guint keysym) { g_return_if_fail (INPUT_PAD_IS_GTK_WINDOW (window)); switch (keysym) { case XK_Shift_L: case XK_Shift_R: xor_modifiers (window, ShiftMask); break; case XK_Control_L: case XK_Control_R: xor_modifiers (window, ControlMask); break; case XK_Alt_L: case XK_Alt_R: xor_modifiers (window, Mod1Mask); break; default: if (window->priv->keyboard_state & ControlMask) { window->priv->keyboard_state ^= ControlMask; } if (window->priv->keyboard_state & Mod1Mask) { window->priv->keyboard_state ^= Mod1Mask; } } } InputPadWindowKbduiName * input_pad_gtk_window_get_kbdui_name_list (void) { InputPadWindowKbduiName *list = NULL; GError *error = NULL; const gchar *err_message; const gchar *dirname = MODULE_KBDUI_DIR; const gchar *filename; gchar *filepath; GModule *module = NULL; GDir *dir; int len = 0; g_return_val_if_fail (MODULE_KBDUI_DIR != NULL, NULL); if (!g_module_supported ()) { err_message = g_module_error (); g_warning ("Module is not supported on your platform: %s", err_message ? err_message : ""); return NULL; } if (!g_file_test (dirname, G_FILE_TEST_IS_DIR)) { g_warning ("Directory Not Found: %s", dirname); return NULL; } if ((dir = g_dir_open (dirname, 0, &error)) == NULL) { g_warning ("Cannot Open Directory: %s: %s", dirname, error ? error->message ? error->message : "" : ""); g_error_free (error); return NULL; } while ((filename = g_dir_read_name (dir)) != NULL) { const gchar *subname = NULL; gchar *name = NULL; if (!check_module_filename (filename)) { continue; } filepath = g_build_filename (dirname, filename, NULL); module = g_module_open (filepath, G_MODULE_BIND_LAZY); if (module == NULL) { err_message = g_module_error (); g_warning ("Could not open %s: %s", filename, err_message ? err_message : ""); g_free (filepath); continue; } g_free (filepath); subname = filename + 3 + strlen (MODULE_NAME_PREFIX); if (subname == NULL || *subname == '\0') { g_warning ("Filename is invalid %s", filename); continue; } #ifdef G_MODULE_SUFFIX name = g_strndup (subname, strlen (subname) - strlen (G_MODULE_SUFFIX) - 1); #else name = g_strdup (subname); #endif if (name == NULL || *name == '\0') { g_warning ("Filename is invalid %s", filename); g_free (name); continue; } if (list == NULL) { len = 2; list = g_new0 (InputPadWindowKbduiName, len); } else { len++; list = g_renew (InputPadWindowKbduiName, list, len); } list[len - 1].name = list[len - 1].description = NULL; list[len - 1].type = INPUT_PAD_WINDOW_TYPE_GTK; list[len - 2].name = g_strdup (name); g_free (name); input_pad_gtk_window_kbdui_module_get_desc (&list[len -2], module); kbdui_module_close (module); } g_dir_close (dir); return list; } void input_pad_gtk_window_get_kbdui_name_list_free (InputPadWindowKbduiName *list) { int i; for (i = 0; list[i].name != NULL; i++) { g_free (list[i].name); g_free (list[i].description); list[i].name = NULL; list[i].description = NULL; } g_free (list); } int input_pad_gtk_window_get_kbdui_name_list_length (void) { InputPadWindowKbduiName *list; int length = 0; list = input_pad_gtk_window_get_kbdui_name_list (); if (list == NULL) { return 0; } for (length = 0; list[length].name != NULL; length++); input_pad_gtk_window_get_kbdui_name_list_free (list); return length; } gchar * input_pad_gtk_window_get_kbdui_name_get_name_with_index (int index) { InputPadWindowKbduiName *list; gchar *name = NULL; list = input_pad_gtk_window_get_kbdui_name_list (); if (list == NULL) { return NULL; } name = g_strdup (list[index].name); input_pad_gtk_window_get_kbdui_name_list_free (list); return name; } gchar * input_pad_gtk_window_get_kbdui_name_get_description_with_index (int index) { InputPadWindowKbduiName *list; gchar *description = NULL; list = input_pad_gtk_window_get_kbdui_name_list (); if (list == NULL) { return NULL; } description = g_strdup (list[index].description); input_pad_gtk_window_get_kbdui_name_list_free (list); return description; } InputPadWindowType input_pad_gtk_window_get_kbdui_name_get_type_with_index (int index) { InputPadWindowKbduiName *list; InputPadWindowType type; list = input_pad_gtk_window_get_kbdui_name_list (); if (list == NULL) { return INPUT_PAD_WINDOW_TYPE_GTK; } type = list[index].type; input_pad_gtk_window_get_kbdui_name_list_free (list); return type; } void input_pad_gtk_window_set_kbdui_name (InputPadGtkWindow *window, const gchar *name) { GModule *module; InputPadGtkKbduiContext *context; if (!g_strcmp0 (name, window->priv->kbdui_name)) { return; } if (window->priv->kbdui) { input_pad_gtk_window_kbdui_destroy (window); } g_free (window->priv->kbdui_name); window->priv->kbdui_name = NULL; if (name == NULL) { window->priv->kbdui_name = NULL; return; } if (g_strcmp0 (name, "default") == 0) { window->priv->kbdui_name = NULL; return; } window->priv->kbdui_name = g_strdup (name); if (window->priv->kbdui_name) { context = input_pad_gtk_kbdui_context_new (); module = input_pad_gtk_window_parse_kbdui_module_arg_init (NULL, NULL, window->priv->kbdui_name, context); if (!module) { input_pad_gtk_kbdui_context_destroy (context); return; } input_pad_gtk_window_kbdui_module_arg_init_post (NULL, NULL, module, context); kbdui_module_close (module); input_pad_gtk_kbdui_context_destroy (context); input_pad_gtk_window_kbdui_init (window); } } void input_pad_gtk_window_set_show_table (InputPadGtkWindow *window, InputPadWindowShowTableType type) { GActionMap *map = NULL; GAction *action; GVariant *state; g_return_if_fail (window && INPUT_PAD_IS_GTK_WINDOW (window)); g_return_if_fail (window->priv != NULL); g_object_get (window, "application", &map, NULL); switch (type) { case INPUT_PAD_WINDOW_SHOW_TABLE_TYPE_NOTHING: action = g_action_map_lookup_action (map, "ShowNothing"); //g_action_change_state (action, g_variant_new_boolean (TRUE)); state = g_action_get_state (G_ACTION (action)); on_toggle_action (G_SIMPLE_ACTION (action), state, map); g_variant_unref (state); break; case INPUT_PAD_WINDOW_SHOW_TABLE_TYPE_CUSTOM: action = g_action_map_lookup_action (map, "ShowCustomChars"); //g_action_change_state (action, g_variant_new_boolean (TRUE)); state = g_action_get_state (G_ACTION (action)); on_toggle_action (G_SIMPLE_ACTION (action), state, map); g_variant_unref (state); break; case INPUT_PAD_WINDOW_SHOW_TABLE_TYPE_ALL: action = g_action_map_lookup_action (map, "ShowAllChars"); //g_action_change_state (action, g_variant_new_boolean (TRUE)); state = g_action_get_state (G_ACTION (action)); on_toggle_action (G_SIMPLE_ACTION (action), state, map); g_variant_unref (state); break; default:; } } void input_pad_gtk_window_set_show_layout (InputPadGtkWindow *window, InputPadWindowShowLayoutType type) { GActionMap *map = NULL; GAction *action; g_return_if_fail (window && INPUT_PAD_IS_GTK_WINDOW (window)); g_return_if_fail (window->priv != NULL); g_object_get (window, "application", &map, NULL); /* Should not call g_variant_unref() for g_action_change_state() * and g_simple_action_set_state() since the variant is floating? */ switch (type) { case INPUT_PAD_WINDOW_SHOW_LAYOUT_TYPE_NOTHING: action = g_action_map_lookup_action (map, "ShowLayout"); g_action_change_state (action, g_variant_new_boolean (TRUE)); on_check_action (G_SIMPLE_ACTION (action), NULL, map); //gtk_widget_hide (priv->top_keyboard_layout_vbox); //resize_toplevel_window_with_hide_widget (priv->top_keyboard_layout_vbox); break; case INPUT_PAD_WINDOW_SHOW_LAYOUT_TYPE_DEFAULT: action = g_action_map_lookup_action (map, "ShowLayout"); g_action_change_state (action, g_variant_new_boolean (FALSE)); //gtk_widget_show (priv->top_keyboard_layout_vbox); on_check_action (G_SIMPLE_ACTION (action), NULL, map); break; default:; } } static void input_pad_gtk_application_init (InputPadGtkApplication *app) { app->show = TRUE; } int input_pad_window_init (int *argc, char ***argv, InputPadWindowType type, int *do_exit) { GOptionContext *context; #ifdef MODULE_XTEST_GDK_BASE GModule *module = NULL; gboolean has_xtest_module = FALSE; #endif InputPadGtkKbduiContext *kbdui_context; GError *error = NULL; GList *list = NULL; const gchar *name; if (do_exit) { *do_exit = FALSE; } #ifdef ENABLE_NLS bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); setlocale (LC_ALL, ""); #endif if (type != INPUT_PAD_WINDOW_TYPE_GTK) { g_warning ("Currently GTK type only is supported. Ignoring..."); } g_set_application_name (_("Input Pad")); context = g_option_context_new (N_("Input Pad")); g_option_context_set_translation_domain (context, GETTEXT_PACKAGE); g_option_context_add_main_entries (context, entries, GETTEXT_PACKAGE); #ifdef MODULE_XTEST_GDK_BASE if ((module = open_xtest_gmodule (TRUE)) != NULL) { g_module_close (module); has_xtest_module = TRUE; g_option_context_add_main_entries (context, disable_xtest_entry, GETTEXT_PACKAGE); } else { g_option_context_add_main_entries (context, enable_xtest_entry, GETTEXT_PACKAGE); } #endif g_option_context_add_group (context, gtk_get_option_group (TRUE)); kbdui_context = input_pad_gtk_kbdui_context_new (); kbdui_context->context = context; list = input_pad_gtk_window_parse_kbdui_modules (argc, argv, kbdui_context); gdk_set_allowed_backends ("x11"); g_option_context_parse (context, argc, argv, &error); g_option_context_free (context); kbdui_context->context = NULL; if (ask_version) { g_print ("%s %s version %s\n", g_get_prgname (), g_get_application_name (), input_pad_get_version ()); if (do_exit) { *do_exit = TRUE; } return 0; } #ifdef MODULE_XTEST_GDK_BASE if (has_xtest_module) { use_module_xtest = !use_module_xtest; } #endif gtk_init (argc, argv); input_pad_gtk_window_kbdui_arg_init_post_list (argc, argv, kbdui_context, list); name = input_pad_gtk_kbdui_context_get_kbdui_name (kbdui_context); if (name) { g_free (kbdui_name); if (g_strcmp0 (name, "default") == 0) { kbdui_name = NULL; } else { kbdui_name = g_strdup (name); } } input_pad_gtk_kbdui_context_destroy (kbdui_context); return 0; } static void on_close_activate (GSimpleAction *action, GVariant *parameter, gpointer data) { InputPadGtkApplication *app = INPUT_PAD_GTK_APPLICATION (data); gtk_widget_destroy (GTK_WIDGET (app->window)); } static void on_code_point_activate (GSimpleAction *action, GVariant *parameter, gpointer data) { InputPadGtkApplication *app = INPUT_PAD_GTK_APPLICATION (data); GtkBuilder *builder = app->builder; GtkWidget *dlg = GTK_WIDGET (gtk_builder_get_object (builder, "CodePointDialog")); gtk_window_set_transient_for (GTK_WINDOW (dlg), GTK_WINDOW (app->window)); gtk_dialog_run (GTK_DIALOG (dlg)); gtk_widget_hide (dlg); } static void on_toggle_action (GSimpleAction *action, GVariant *parameter, gpointer data) { InputPadGtkApplication *app = INPUT_PAD_GTK_APPLICATION (data); InputPadGtkWindow *window; InputPadGtkWindowPrivate *priv; GActionMap *map = G_ACTION_MAP (data); GVariant *state = g_action_get_state (G_ACTION (action)); static gchar *names[] = { "ShowAllChars", "ShowCustomChars", "ShowNothing", NULL }; static gchar *false_name = NULL; const gchar *true_name; int i; if (g_variant_get_boolean (state) == TRUE) return; /* Should not call g_variant_unref() for g_action_change_state() * and g_simple_action_set_state() since the variant is floating? */ for (i = 0; names[i]; i++) { GAction *false_action = g_action_map_lookup_action (map, names[i]); state = g_action_get_state (false_action); if (g_variant_get_boolean (state) == TRUE) { g_action_change_state (false_action, g_variant_new_boolean (FALSE)); false_name = names[i]; } } g_variant_unref (state); g_assert (false_name != NULL); g_action_change_state (G_ACTION (action), g_variant_new_boolean (TRUE)); if (app->window == NULL) return; window = app->window; priv = input_pad_gtk_window_get_instance_private (window); true_name = g_action_get_name (G_ACTION (action)); if (g_strcmp0 (true_name, "ShowAllChars") == 0) { gtk_widget_show (priv->top_char_view_hbox); gtk_widget_hide (priv->top_custom_char_view_hbox); } if (g_strcmp0 (true_name, "ShowCustomChars") == 0) { gtk_widget_hide (priv->top_char_view_hbox); gtk_widget_show (priv->top_custom_char_view_hbox); } if (g_strcmp0 (true_name, "ShowNothing") == 0) { GtkWidget *hide_widget = NULL; gtk_widget_hide (priv->top_char_view_hbox); gtk_widget_hide (priv->top_custom_char_view_hbox); if (g_strcmp0 (false_name, "ShowAllChars") == 0) hide_widget = priv->top_char_view_hbox; if (g_strcmp0 (false_name, "ShowCustomChars") == 0) hide_widget = priv->top_custom_char_view_hbox; if (hide_widget != NULL) resize_toplevel_window_with_hide_widget (hide_widget); } } static void on_check_action (GSimpleAction *action, GVariant *parameter, gpointer data) { InputPadGtkApplication *app = INPUT_PAD_GTK_APPLICATION (data); InputPadGtkWindow *window; InputPadGtkWindowPrivate *priv; GVariant *state = g_action_get_state (G_ACTION (action)); gboolean do_check = !g_variant_get_boolean (state); g_variant_unref (state); /* Should not call g_variant_unref() for g_action_change_state() * and g_simple_action_set_state() since the variant is floating? */ g_action_change_state (G_ACTION (action), g_variant_new_boolean (do_check)); if (app->window == NULL) return; window = app->window; priv = input_pad_gtk_window_get_instance_private (window); if (do_check) gtk_widget_show (priv->top_keyboard_layout_vbox); else { gtk_widget_hide (priv->top_keyboard_layout_vbox); resize_toplevel_window_with_hide_widget (priv->top_keyboard_layout_vbox); } } static void on_contents_activate (GSimpleAction *action, GVariant *parameter, gpointer data) { InputPadGtkApplication *app = INPUT_PAD_GTK_APPLICATION (data); GtkBuilder *builder = app->builder; GtkWidget *dlg = GTK_WIDGET (gtk_builder_get_object (builder, "ContentsDialog")); gtk_window_set_transient_for (GTK_WINDOW (dlg), GTK_WINDOW (app->window)); gtk_dialog_run (GTK_DIALOG (dlg)); gtk_widget_hide (dlg); } static void on_about_activate (GSimpleAction *action, GVariant *parameter, gpointer data) { InputPadGtkApplication *app = INPUT_PAD_GTK_APPLICATION (data); GtkBuilder *builder = app->builder; GtkWidget *dlg = GTK_WIDGET (gtk_builder_get_object (builder, "AboutDialog")); gtk_window_set_transient_for (GTK_WINDOW (dlg), GTK_WINDOW (app->window)); /* Do not use GtkBuilder because gtk_about_dialog_set_logo_icon_name() * sets the best_size as 0 for pixmaps dir. * Set NULL here so that the default icon is set. */ gtk_about_dialog_set_logo_icon_name (GTK_ABOUT_DIALOG (dlg), NULL); gtk_dialog_run (GTK_DIALOG (dlg)); gtk_widget_hide (dlg); } static void change_radio_state (GSimpleAction *action, GVariant *value, gpointer data) { g_simple_action_set_state (action, value); } static GActionEntry app_entries[] = { { "Close", on_close_activate, NULL, NULL, NULL }, { "CodePoint", on_code_point_activate, NULL, NULL, NULL }, { "ShowAllChars", on_toggle_action, NULL, "true", change_radio_state }, { "ShowCustomChars", on_toggle_action, NULL, "false", change_radio_state }, { "ShowNothing", on_toggle_action, NULL, "false", change_radio_state }, { "ShowLayout", on_check_action, NULL, "true", NULL }, { "Contents", on_contents_activate, NULL, NULL, NULL }, { "About", on_about_activate, NULL, NULL, NULL } }; static void input_pad_gtk_application_startup (GApplication *app) { GtkBuilder *builder; GMenuModel *menubar; G_APPLICATION_CLASS (input_pad_gtk_application_parent_class)->startup (app); g_action_map_add_action_entries (G_ACTION_MAP (app), app_entries, G_N_ELEMENTS (app_entries), app); builder = gtk_builder_new_from_resource ( "/com/github/fujiwarat/input-pad/app-menu.ui"); gtk_builder_set_translation_domain (builder, GETTEXT_PACKAGE); menubar = G_MENU_MODEL (gtk_builder_get_object (builder, "menubar")); gtk_application_set_menubar (GTK_APPLICATION (app), menubar); g_object_unref (builder); builder = gtk_builder_new_from_resource ( "/com/github/fujiwarat/input-pad/dialog.ui"); gtk_builder_set_translation_domain (builder, GETTEXT_PACKAGE); INPUT_PAD_GTK_APPLICATION (app)->builder = builder; } static void input_pad_gtk_application_activate (GApplication *app) { InputPadGtkWindow *win; win = input_pad_gtk_window_new (INPUT_PAD_GTK_APPLICATION (app)); if (INPUT_PAD_GTK_APPLICATION (app)->show) gtk_window_present (GTK_WINDOW (win)); INPUT_PAD_GTK_APPLICATION (app)->window = win; g_signal_emit (app, app_signals[APP_ACTIVATED], 0); } static void input_pad_gtk_application_class_init (InputPadGtkApplicationClass *class) { GApplicationClass *gclass = G_APPLICATION_CLASS (class); gclass->startup = input_pad_gtk_application_startup; gclass->activate = input_pad_gtk_application_activate; app_signals[APP_ACTIVATED] = g_signal_new (I_("activated"), G_TYPE_FROM_CLASS (gclass), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (InputPadGtkApplicationClass, activated), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); } void on_is_registered (GObject *object, gpointer data) { if (g_application_get_is_remote (G_APPLICATION (object))) { g_warning ("Another application executes input-pad."); } } InputPadGtkApplication * input_pad_gtk_application_new (void) { GObject *object = g_object_new (INPUT_PAD_TYPE_GTK_APPLICATION, "application-id", "com.github.fujiwarat.input-pad", "flags", G_APPLICATION_NON_UNIQUE, NULL); g_signal_connect (object, "notify::is-registered", G_CALLBACK (on_is_registered), NULL); return INPUT_PAD_GTK_APPLICATION (object); } InputPadGtkWindow * input_pad_gtk_application_get_window (InputPadGtkApplication *app) { g_return_val_if_fail (INPUT_PAD_IS_GTK_APPLICATION (app), NULL); return app->window; } void * input_pad_window_new (void) { return input_pad_gtk_application_new (); } void input_pad_window_show (void *window_data) { InputPadGtkApplication *app; InputPadGtkWindow *input_pad_window; GtkWidget *window; g_return_if_fail (window_data != NULL && INPUT_PAD_IS_GTK_APPLICATION (window_data)); app = INPUT_PAD_GTK_APPLICATION (window_data); g_return_if_fail (app->window != NULL); input_pad_window = app->window; window = GTK_WIDGET (input_pad_window); if (input_pad_window->priv && !input_pad_window->priv->show_all) { gtk_widget_show_all (window); input_pad_window->priv->show_all = TRUE; } else { gtk_widget_show (window); } } void input_pad_window_hide (void *window_data) { InputPadGtkApplication *app; g_return_if_fail (window_data != NULL && INPUT_PAD_IS_GTK_APPLICATION (window_data)); app = INPUT_PAD_GTK_APPLICATION (window_data); if (app->window == NULL) app->show = FALSE; else gtk_widget_hide (GTK_WIDGET (app->window)); } unsigned int input_pad_window_get_visible (void *window_data) { InputPadGtkApplication *app; g_return_val_if_fail (window_data != NULL && INPUT_PAD_IS_GTK_APPLICATION (window_data), 0); app = INPUT_PAD_GTK_APPLICATION (window_data); g_return_val_if_fail (app->window != NULL, 0); return gtk_widget_get_visible (GTK_WIDGET (app->window)); } void input_pad_window_set_paddir (void *window_data, const char *paddir, const char *domain) { InputPadGtkApplication *app; InputPadGtkWindow *window; g_return_if_fail (window_data != NULL && INPUT_PAD_IS_GTK_APPLICATION (window_data)); app = INPUT_PAD_GTK_APPLICATION (window_data); g_return_if_fail (app->window != NULL); window = app->window; input_pad_gtk_window_set_paddir (window, (const gchar *) paddir, (const gchar *) domain); } void input_pad_window_append_padfile (void *window_data, const char *padfile, const char *domain) { InputPadGtkApplication *app; InputPadGtkWindow *window; g_return_if_fail (window_data != NULL && INPUT_PAD_IS_GTK_APPLICATION (window_data)); app = INPUT_PAD_GTK_APPLICATION (window_data); g_return_if_fail (app->window != NULL); window = app->window; input_pad_gtk_window_append_padfile (window, (const gchar *) padfile, (const gchar *) domain); } void input_pad_window_set_char_button_sensitive (void *window_data, unsigned int sensitive) { InputPadGtkApplication *app; InputPadGtkWindow *window; g_return_if_fail (window_data != NULL && INPUT_PAD_IS_GTK_APPLICATION (window_data)); app = INPUT_PAD_GTK_APPLICATION (window_data); g_return_if_fail (app->window != NULL); window = app->window; input_pad_gtk_window_set_char_button_sensitive (window, sensitive); } void input_pad_window_reorder_button_pressed (void *window_data) { InputPadGtkApplication *app; InputPadGtkWindow *window; g_return_if_fail (window_data != NULL && INPUT_PAD_IS_GTK_APPLICATION (window_data)); app = INPUT_PAD_GTK_APPLICATION (window_data); g_return_if_fail (app->window != NULL); window = app->window; input_pad_gtk_window_reorder_button_pressed (window); } InputPadWindowKbduiName * input_pad_window_get_kbdui_name_list (void) { return input_pad_gtk_window_get_kbdui_name_list (); } int input_pad_window_get_kbdui_name_list_length (void) { return input_pad_gtk_window_get_kbdui_name_list_length (); } char * input_pad_window_get_kbdui_name_get_name_with_index (int index) { return input_pad_gtk_window_get_kbdui_name_get_name_with_index (index); } char * input_pad_window_get_kbdui_name_get_description_with_index (int index) { return input_pad_gtk_window_get_kbdui_name_get_description_with_index (index); } InputPadWindowType input_pad_window_get_kbdui_name_get_type_with_index (int index) { return input_pad_gtk_window_get_kbdui_name_get_type_with_index (index); } void input_pad_window_set_kbdui_name (void *window_data, const char *name) { InputPadGtkApplication *app; InputPadGtkWindow *window; g_return_if_fail (window_data != NULL && INPUT_PAD_IS_GTK_APPLICATION (window_data)); app = INPUT_PAD_GTK_APPLICATION (window_data); g_return_if_fail (app->window != NULL); window = app->window; input_pad_gtk_window_set_kbdui_name (window, (const gchar *) name); } void input_pad_window_set_show_table (void *window_data, InputPadWindowShowTableType type) { InputPadGtkApplication *app; InputPadGtkWindow *window; g_return_if_fail (window_data != NULL && INPUT_PAD_IS_GTK_APPLICATION (window_data)); app = INPUT_PAD_GTK_APPLICATION (window_data); g_return_if_fail (app->window != NULL); window = app->window; input_pad_gtk_window_set_show_table (window, type); } void input_pad_window_set_show_layout (void *window_data, InputPadWindowShowLayoutType type) { InputPadGtkApplication *app; InputPadGtkWindow *window; g_return_if_fail (window_data != NULL && INPUT_PAD_IS_GTK_APPLICATION (window_data)); app = INPUT_PAD_GTK_APPLICATION (window_data); g_return_if_fail (app->window != NULL); window = app->window; input_pad_gtk_window_set_show_layout (window, type); } void * input_pad_window_get_window (void *window_data) { InputPadGtkApplication *app; g_return_val_if_fail (window_data != NULL && INPUT_PAD_IS_GTK_APPLICATION (window_data), NULL); app = INPUT_PAD_GTK_APPLICATION (window_data); return input_pad_gtk_application_get_window (app); } void input_pad_window_activate (void *window_data) { InputPadGtkApplication *app; g_return_if_fail (window_data != NULL && INPUT_PAD_IS_GTK_APPLICATION (window_data)); app = INPUT_PAD_GTK_APPLICATION (window_data); g_application_activate (G_APPLICATION (app)); } int input_pad_window_main (void *window_data) { InputPadGtkApplication *app; g_return_val_if_fail (window_data != NULL && INPUT_PAD_IS_GTK_APPLICATION (window_data), -1); app = INPUT_PAD_GTK_APPLICATION (window_data); return g_application_run (G_APPLICATION (app), 0, NULL); } void input_pad_window_destroy (void *window_data) { InputPadGtkApplication *app; InputPadGtkWindow *window; g_return_if_fail (window_data != NULL && INPUT_PAD_IS_GTK_APPLICATION (window_data)); app = INPUT_PAD_GTK_APPLICATION (window_data); g_return_if_fail (app->window != NULL); window = app->window; gtk_widget_destroy (GTK_WIDGET (window)); } input-pad-1.1.0/input-pad/window-gtk.ui000066400000000000000000000053201476727667600200000ustar00rootroot00000000000000 input-pad-1.1.0/input-pad/xtest-gdk.c000066400000000000000000000141401476727667600174250ustar00rootroot00000000000000/* vim:set et sts=4: */ /* input-pad - The input pad * Copyright (C) 2010-2012 Takao Fujiwara * Copyright (C) 2010-2012 Red Hat, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301 USA */ #ifdef HAVE_CONFIG_H #include #endif #include #include #include #include #include #include #include G_MODULE_EXPORT gboolean input_pad_module_init (InputPadGtkWindow *window); G_MODULE_EXPORT gboolean input_pad_module_setup (InputPadGtkWindow *window); G_MODULE_EXPORT const gchar* g_module_check_init (GModule *module); static Display *saved_display = NULL; static int xsend_key_state (Display *display, guint state, Bool pressed) { KeyCode keycode_real; static struct { guint state; KeySym keysym; } state2keysym[] = { { ControlMask, XK_Control_L } , { Mod1Mask, XK_Alt_L }, { Mod4Mask, XK_Super_L }, { ShiftMask, XK_Shift_L }, { LockMask, XK_Caps_Lock }, { 0, 0L } }; int i; if (pressed) { saved_display = display; } else { saved_display = NULL; } for (i = 0; state2keysym[i].state != 0; i++) { if (state & state2keysym[i].state) { keycode_real = XKeysymToKeycode (display, state2keysym[i].keysym); XTestFakeKeyEvent (display, keycode_real, pressed, CurrentTime); XSync (display, False); } } return TRUE; } static void signal_exit_cb (int signal_id) { if (saved_display != NULL) { xsend_key_state (saved_display, ControlMask | Mod1Mask | Mod4Mask | ShiftMask | LockMask, FALSE); saved_display = NULL; } signal (signal_id, SIG_DFL); raise (signal_id); } static int send_key_event (GdkWindow *gdkwindow, guint keysym, guint keycode, guint state) { Display *display; KeyCode keycode_real; display = GDK_WINDOW_XDISPLAY (gdkwindow); if (state != 0) { xsend_key_state (display, state, True); } if (keycode != 0) { keycode_real = (KeyCode) keycode; } else { keycode_real = XKeysymToKeycode (display, (KeySym) keysym); } XTestFakeKeyEvent (display, keycode_real, True, CurrentTime); XSync (display, False); XTestFakeKeyEvent (display, keycode_real, False, CurrentTime); XSync (display, False); if (state != 0) { xsend_key_state (display, state, False); } return TRUE; } /* * Need to get GdkWindow after invoke gtk_widget_show() and gtk_main() */ static gboolean have_extension (InputPadGtkWindow *window) { int opcode = 0; int event = 0; int error = 0; g_return_val_if_fail (window != NULL && INPUT_PAD_IS_GTK_WINDOW (window), FALSE); if (!XQueryExtension (GDK_WINDOW_XDISPLAY (gtk_widget_get_window (GTK_WIDGET (window))), "XTEST", &opcode, &event, &error)) { g_warning ("Could not find XTEST module. Maybe you did not install " "libXtst library.\n" "%% xdpyinfo | grep XTEST"); return FALSE; } return TRUE; } static unsigned int on_window_button_pressed (InputPadGtkWindow *window, gchar *str, guint type, guint keysym, guint keycode, guint state, gpointer data) { if (!have_extension (window)) { return FALSE; } if (type == INPUT_PAD_TABLE_TYPE_CHARS) { if (keysym > 0) { send_key_event (gtk_widget_get_window (GTK_WIDGET (window)), keysym, keycode, state); return TRUE; } else { return FALSE; } } else if (type == INPUT_PAD_TABLE_TYPE_KEYSYMS) { send_key_event (gtk_widget_get_window (GTK_WIDGET (window)), keysym, keycode, state); return TRUE; } return FALSE; } static void on_window_reorder_button_pressed (InputPadGtkWindow *window, gpointer data) { g_signal_handlers_disconnect_by_func (G_OBJECT (window), G_CALLBACK (on_window_button_pressed), NULL); g_signal_connect (G_OBJECT (window), "button-pressed", G_CALLBACK (on_window_button_pressed), NULL); } gboolean input_pad_module_init (InputPadGtkWindow *window) { signal (SIGINT, signal_exit_cb); return TRUE; } gboolean input_pad_module_setup (InputPadGtkWindow *window) { g_return_val_if_fail (window != NULL && INPUT_PAD_IS_GTK_WINDOW (window), FALSE); g_signal_connect (G_OBJECT (window), "button-pressed", G_CALLBACK (on_window_button_pressed), NULL); g_signal_connect (G_OBJECT (window), "reorder-button-pressed", G_CALLBACK (on_window_reorder_button_pressed), NULL); return TRUE; } const gchar* g_module_check_init (GModule *module) { return NULL; } input-pad-1.1.0/m4/000077500000000000000000000000001476727667600137665ustar00rootroot00000000000000input-pad-1.1.0/m4/Makefile.am000066400000000000000000000017371476727667600160320ustar00rootroot00000000000000# vim:set noet ts=4: # # input-pad - The input pad # # Copyright (c) 2025 Takao Fujiwara # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301 USA EXTRA_DIST = \ input-pad.m4 \ $(NULL) GITIGNOREFILES = \ gtk-doc.m4 \ intltool.m4 \ libtool.m4 \ lt*.m4 \ $(NULL) input-pad-1.1.0/m4/input-pad.m4000066400000000000000000000011351476727667600161310ustar00rootroot00000000000000AC_DEFUN([DEFINE_INPUT_PAD_LOCALEDIR], [ input_pad_save_prefix="$prefix" input_pad_save_datarootdir="$datarootdir" input_pad_save_datadir="$datadir" input_pad_save_localedir="$localedir" test "x$prefix" = xNONE && prefix=$ac_default_prefix datarootdir=`eval echo "$datarootdir"` datadir=`eval echo "$datadir"` test "x$localedir" = xNONE && localedir="${datadir}/locale" input_pad_localedir=`eval echo "$localedir"` input_pad_datadir=`eval echo "$datadir"` localedir="$input_pad_save_localedir" datadir="$input_pad_save_datadir" datarootdir="$input_pad_save_datarootdir" prefix="$input_pad_save_prefix" ]) input-pad-1.1.0/po/000077500000000000000000000000001476727667600140645ustar00rootroot00000000000000input-pad-1.1.0/po/LINGUAS000066400000000000000000000001271476727667600151110ustar00rootroot00000000000000# please keep this list sorted alphabetically # ca eu fr hu ja ka pt_BR uk zh_TW zh_CN input-pad-1.1.0/po/Makevars000066400000000000000000000067701476727667600155720ustar00rootroot00000000000000# Makefile variables for PO directory in any package using GNU gettext. # Usually the message domain is the same as the package name. DOMAIN = $(PACKAGE) # These two variables depend on the location of this directory. subdir = po top_builddir = .. # These options get passed to xgettext. XGETTEXT_OPTIONS = --from-code=UTF-8 --keyword=_ --keyword=N_ --keyword=C_:1c,2 --keyword=NC_:1c,2 --keyword=g_dngettext:2,3 --add-comments --keyword=Name --keyword=Comment --keyword # This is the copyright holder that gets inserted into the header of the # $(DOMAIN).pot file. Set this to the copyright holder of the surrounding # package. (Note that the msgstr strings, extracted from the package's # sources, belong to the copyright holder of the package.) Translators are # expected to transfer the copyright for their translations to this person # or entity, or to disclaim their copyright. The empty string stands for # the public domain; in this case the translators are expected to disclaim # their copyright. COPYRIGHT_HOLDER = Takao Fujiwara # This tells whether or not to prepend "GNU " prefix to the package # name that gets inserted into the header of the $(DOMAIN).pot file. # Possible values are "yes", "no", or empty. If it is empty, try to # detect it automatically by scanning the files in $(top_srcdir) for # "GNU packagename" string. PACKAGE_GNU = no # This is the email address or URL to which the translators shall report # bugs in the untranslated strings: # - Strings which are not entire sentences, see the maintainer guidelines # in the GNU gettext documentation, section 'Preparing Strings'. # - Strings which use unclear terms or require additional context to be # understood. # - Strings which make invalid assumptions about notation of date, time or # money. # - Pluralisation problems. # - Incorrect English spelling. # - Incorrect formatting. # It can be your email address, or a mailing list address where translators # can write to without being subscribed, or the URL of a web page through # which the translators can contact you. MSGID_BUGS_ADDRESS = http://code.google.com/p/input-pad/issues/list # This is the list of locale categories, beyond LC_MESSAGES, for which the # message catalogs shall be used. It is usually empty. EXTRA_LOCALE_CATEGORIES = # This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt' # context. Possible values are "yes" and "no". Set this to yes if the # package uses functions taking also a message context, like pgettext(), or # if in $(XGETTEXT_OPTIONS) you define keywords with a context argument. USE_MSGCTXT = yes # These options get passed to msgmerge. # Useful options are in particular: # --previous to keep previous msgids of translated messages, # --quiet to reduce the verbosity. MSGMERGE_OPTIONS = # These options get passed to msginit. # If you want to disable line wrapping when writing PO files, add # --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and # MSGINIT_OPTIONS. MSGINIT_OPTIONS = # This tells whether or not to regenerate a PO file when $(DOMAIN).pot # has changed. Possible values are "yes" and "no". Set this to no if # the POT file is checked in the repository and the version control # program ignores timestamps. PO_DEPENDS_ON_POT = no # This tells whether or not to forcibly update $(DOMAIN).pot and # regenerate PO files on "make dist". Possible values are "yes" and # "no". Set this to no if the POT file and PO files are maintained # externally. DIST_DEPENDS_ON_UPDATE_PO = no input-pad-1.1.0/po/POTFILES.in000066400000000000000000000010651476727667600156430ustar00rootroot00000000000000# Files with translatable strings. # Please keep this file in alphabetical order. data/alphabet.xml.in.in data/base.xml.in data/cmd.xml.in data/goth.xml.in data/input-pad.desktop.in data/ipa-obsolete.xml.in data/ipa-unofficial.xml.in data/ipa.xml.in data/ja.xml.in data/keyboard.xml.in data/latin.xml.in data/runr.xml.in data/shaw.xml.in data/str.xml.in data/w3c.xml.in data/zh.xml.in input-pad/app-menu.ui input-pad/button-gtk.c input-pad/dialog.ui input-pad/eek-gtk.c input-pad/kbdui-gtk.c input-pad/unicode_block.h input-pad/window-gtk.c input-pad/window-gtk.ui input-pad-1.1.0/po/POTFILES.skip000066400000000000000000000003201476727667600161740ustar00rootroot00000000000000# Files with translatable strings. # Please keep this file in alphabetical order. # Files under ui/gtk2/ are not shipped in the distribution, but kept # in the git repository for reference. data/input-pad.ui input-pad-1.1.0/po/ca.po000066400000000000000000002463031476727667600150170ustar00rootroot00000000000000# Catalan translations for input-pad # Copyright (C) 2010-2016 Takao Fujiwara # This file is distributed under the same license as the input-pad package. # # Translators: # jordimash , 2013 # Robert Antoni Buj Gelonch , 2015. #zanata msgid "" msgstr "" "Project-Id-Version: input-pad HEAD\n" "Report-Msgid-Bugs-To: http://code.google.com/p/input-pad/issues/list\n" "POT-Creation-Date: 2016-03-02 18:45+0900\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2015-10-03 08:46-0400\n" "Last-Translator: Robert Antoni Buj Gelonch \n" "Language-Team: Catalan \n" "Language: ca\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 3.8.2\n" #: ../data/alphabet.xml.in.in.h:1 msgid "Alphabets" msgstr "Alfabets" #: ../data/base.xml.in.h:1 msgid "Symbols" msgstr "Símbols" #: ../data/base.xml.in.h:2 msgid "Currency" msgstr "Moneda" #: ../data/base.xml.in.h:3 msgid "Letterlike" msgstr "Similars a lletres" #: ../data/base.xml.in.h:4 msgid "Miscellaneous" msgstr "Miscel·lània" #: ../data/base.xml.in.h:5 ../input-pad/unicode_block.h:116 msgid "Dingbats" msgstr "Dibuixos" #. Translators: Superscripts and Subscripts #: ../data/base.xml.in.h:7 msgid "Super and Sub" msgstr "Super i sub" #: ../data/base.xml.in.h:8 msgid "Bold" msgstr "Negreta" #: ../data/base.xml.in.h:9 msgid "Italic" msgstr "Cursiva" #: ../data/base.xml.in.h:10 msgid "Script" msgstr "Cal·ligrafia" #: ../data/base.xml.in.h:11 msgid "Double Struck" msgstr "" #: ../data/base.xml.in.h:12 msgid "All" msgstr "Tot" #: ../data/base.xml.in.h:13 ../data/zh.xml.in.h:2 msgid "Numbers" msgstr "Números" #: ../data/base.xml.in.h:14 msgid "Roman" msgstr "Romans" #: ../data/base.xml.in.h:15 msgid "Enclosed" msgstr "Tancats" #: ../data/base.xml.in.h:16 msgid "Fraction" msgstr "Fraccions" #: ../data/base.xml.in.h:17 msgid "Technical" msgstr "Tècnic" #: ../data/base.xml.in.h:18 msgid "Unit" msgstr "Unitats" #: ../data/base.xml.in.h:19 msgid "Mathematical" msgstr "Matemàtic" #: ../data/base.xml.in.h:20 msgid "Controls" msgstr "Controls" #: ../data/base.xml.in.h:21 msgid "OCR" msgstr "OCR" #: ../data/base.xml.in.h:22 msgid "Graphics" msgstr "Gràfics" #: ../data/base.xml.in.h:23 msgid "Arrow" msgstr "Fletxa" #: ../data/base.xml.in.h:24 ../input-pad/unicode_block.h:112 msgid "Box Drawing" msgstr "Dibuix de caixes" #: ../data/base.xml.in.h:25 ../input-pad/window-gtk.c:3685 msgid "Block" msgstr "Bloc" #: ../data/base.xml.in.h:26 msgid "Geometric" msgstr "Geomètric" #: ../data/base.xml.in.h:27 msgid "Braille" msgstr "Braille" #: ../data/base.xml.in.h:28 msgid "Punctuations" msgstr "Puntuació" #: ../data/base.xml.in.h:29 msgid "General" msgstr "General" #: ../data/base.xml.in.h:30 msgid "CJK" msgstr "CJK" #: ../data/base.xml.in.h:31 ../input-pad/unicode_block.h:145 msgid "CJK Compatibility" msgstr "Compatibilitat CJK" #: ../data/base.xml.in.h:32 msgid "Small Form" msgstr "" #: ../data/cmd.xml.in.h:1 msgid "Command" msgstr "Ordre" #: ../data/cmd.xml.in.h:2 msgid "Date" msgstr "Data" #: ../data/cmd.xml.in.h:3 msgid "Normal Date" msgstr "Data comú" #: ../data/cmd.xml.in.h:4 msgid "Date and Time" msgstr "Data i hora" #: ../data/cmd.xml.in.h:5 msgid "ChangeLog date" msgstr "Data ChangeLog" #: ../data/cmd.xml.in.h:6 msgid "USA English date" msgstr "Data en anglès EUA" #: ../data/cmd.xml.in.h:7 msgid "UK English date" msgstr "Data en anglès RU" #: ../data/cmd.xml.in.h:8 msgid "ISO 8601 date" msgstr "Data ISO 8601" #: ../data/cmd.xml.in.h:9 msgid "Era" msgstr "Era" #: ../data/cmd.xml.in.h:10 msgid "Century Year" msgstr "Segle" #: ../data/cmd.xml.in.h:11 msgid "Normal Time" msgstr "Hora normal" #: ../data/cmd.xml.in.h:12 msgid "English Time" msgstr "Hora en anglès" #: ../data/cmd.xml.in.h:13 msgid "Month" msgstr "Mes" #: ../data/cmd.xml.in.h:14 msgid "English Month" msgstr "Mes en anglès" #: ../data/cmd.xml.in.h:15 msgid "Short Month" msgstr "Mes curt" #: ../data/cmd.xml.in.h:16 msgid "English Short Month" msgstr "Mes curt en anglès" #: ../data/cmd.xml.in.h:17 msgid "Weekday" msgstr "Dia de la setmana" #: ../data/cmd.xml.in.h:18 msgid "English Weekday" msgstr "Dia de la setmana en anglès" #: ../data/cmd.xml.in.h:19 msgid "Short Weekday" msgstr "Dia curt de la setmana" #: ../data/cmd.xml.in.h:20 msgid "English Short Weekday" msgstr "Dia curt de la setmana en anglès" #: ../data/goth.xml.in.h:1 ../input-pad/unicode_block.h:196 msgid "Gothic" msgstr "Gòtic" #: ../data/input-pad.desktop.in.h:1 ../input-pad/dialog.ui.h:42 #: ../input-pad/window-gtk.c:5084 ../input-pad/window-gtk.c:5085 #: ../input-pad/window-gtk.ui.h:1 msgid "Input Pad" msgstr "Coixinet d'entrada" #. "IPA" stands for "International Phonetic Alphabet" #: ../data/ipa-obsolete.xml.in.h:2 msgid "IPA (Obsolete)" msgstr "IPA (obsolet)" #: ../data/ipa-obsolete.xml.in.h:3 ../data/ipa.xml.in.h:6 msgid "Open back unrounded vowel" msgstr "Vocal oberta posterior no arrodonida" #: ../data/ipa-obsolete.xml.in.h:4 msgid "Palatalized voiced bilabial plosive" msgstr "Palatalització oclusiva bilabial sonora" #: ../data/ipa-obsolete.xml.in.h:5 msgid "Voiceless palatal implosive" msgstr "Implosiva bilabial sorda" #: ../data/ipa-obsolete.xml.in.h:6 ../data/ipa.xml.in.h:138 msgid "Alveolar click" msgstr "" #: ../data/ipa-obsolete.xml.in.h:7 msgid "Palatalized voiced alveolar plosive" msgstr "Palatalització oclusiva alveolar sonora" #: ../data/ipa-obsolete.xml.in.h:8 ../data/ipa.xml.in.h:25 msgid "Voiced alveolar affricate" msgstr "Africada alveolar sonora" #: ../data/ipa-obsolete.xml.in.h:9 ../data/ipa.xml.in.h:27 msgid "Voiced alveopalatal affricate" msgstr "Africada alveo-palatal sonora" #: ../data/ipa-obsolete.xml.in.h:10 ../data/ipa.xml.in.h:26 msgid "Voiced palato-alveolar affricate" msgstr "Africada postalveolar sonora" #: ../data/ipa-obsolete.xml.in.h:11 msgid "Palatalized voiceless labiodental fricative" msgstr "Palatalització fricativa labiodental sorda" #: ../data/ipa-obsolete.xml.in.h:12 msgid "Palatalized voiced velar plosive" msgstr "Palatalització oclusiva velar sonora" #: ../data/ipa-obsolete.xml.in.h:13 msgid "Palatalized voiceless velar plosive" msgstr "Palatalització oclusiva velar sorda" #: ../data/ipa-obsolete.xml.in.h:14 msgid "Voiceless velar implosive" msgstr "Implosiva velar sorda" #: ../data/ipa-obsolete.xml.in.h:15 msgid "Palatalized alveolar lateral approximant" msgstr "Palatalització lateral aproximant alveolar" #: ../data/ipa-obsolete.xml.in.h:16 msgid "Palatalized bilabial nasal" msgstr "Palatalització nasal bilabial" #: ../data/ipa-obsolete.xml.in.h:17 msgid "Palatalized alveolar nasal" msgstr "Palatalització nasal alveolar" #: ../data/ipa-obsolete.xml.in.h:18 msgid "Syllabic alveolar nasal" msgstr "" #: ../data/ipa-obsolete.xml.in.h:19 msgid "Palatalized voiceless bilabial plosive" msgstr "Palatalització oclusiva bilabial sorda" #: ../data/ipa-obsolete.xml.in.h:20 msgid "Voiceless bilabial implosive" msgstr "Implosiva bilabial sorda" #: ../data/ipa-obsolete.xml.in.h:21 msgid "Palatalized alveolar trill" msgstr "Palatalització vibrant alveolar" #: ../data/ipa-obsolete.xml.in.h:22 msgid "Voiced strident apico-alveolar trill" msgstr "" #: ../data/ipa-obsolete.xml.in.h:23 msgid "Palatalized voiceless alveolar fricative" msgstr "Palatalització fricativa alveolar sorda" #: ../data/ipa-obsolete.xml.in.h:24 ../data/ipa.xml.in.h:19 msgid "Voiceless alveopalatal fricative" msgstr "Fricativa alveo-palatal sorda" #: ../data/ipa-obsolete.xml.in.h:25 msgid "Labialized voiceless palato-alveolar fricative" msgstr "Labialització fricativa postalveolar sonora" #: ../data/ipa-obsolete.xml.in.h:26 ../data/ipa.xml.in.h:103 msgid "Voiceless alveopalatal affricate" msgstr "Africada alveo-palatal sorda" #: ../data/ipa-obsolete.xml.in.h:27 ../data/ipa.xml.in.h:101 msgid "Voiceless alveolar affricate" msgstr "Africada alveolar sorda" #: ../data/ipa-obsolete.xml.in.h:28 ../data/ipa.xml.in.h:102 msgid "Voiceless palato-alveolar affricate" msgstr "Africada postalveolar sorda" #: ../data/ipa-obsolete.xml.in.h:29 msgid "Palatalized voiceless alveolar plosive" msgstr "Palatalització oclusiva alveolar sorda" #: ../data/ipa-obsolete.xml.in.h:30 msgid "Voiceless alveolar implosive" msgstr "Implosiva alveolar sorda" #: ../data/ipa-obsolete.xml.in.h:31 ../data/ipa.xml.in.h:137 msgid "Dental click" msgstr "" #: ../data/ipa-obsolete.xml.in.h:32 msgid "Voiceless uvular implosive" msgstr "Implosiva uvular sorda" #: ../data/ipa-obsolete.xml.in.h:33 msgid "Palatalized voiced labiodental fricative" msgstr "Palatalització fricativa labiodental sonora" #: ../data/ipa-obsolete.xml.in.h:34 msgid "Palatalized voiceless velar fricative" msgstr "Palatalització fricativa velar sorda" #: ../data/ipa-obsolete.xml.in.h:35 msgid "Palatalized voiced alveolar fricative" msgstr "Palatalització fricativa alveolar sonora" #: ../data/ipa-obsolete.xml.in.h:36 msgid "Labialized voiced palato-alveolar fricative" msgstr "Labialització fricativa postalveolar sorda" #: ../data/ipa-obsolete.xml.in.h:37 ../data/ipa.xml.in.h:128 msgid "Voiced alveopalatal fricative" msgstr "Fricativa alveo-palatal sonora" #: ../data/ipa-obsolete.xml.in.h:38 ../data/ipa.xml.in.h:106 msgid "Near-close near-back vowel" msgstr "Vocal quasitancada quasianterior" #: ../data/ipa-obsolete.xml.in.h:39 ../data/ipa.xml.in.h:140 msgid "Alveolar lateral click" msgstr "" #: ../data/ipa-obsolete.xml.in.h:40 msgid "Labialized voiceless alveolar or dental fricative" msgstr "Labialització alveolar sorda o labialització fricativa dental sorda" #: ../data/ipa-obsolete.xml.in.h:41 msgid "Labialized voiced alveolar or dental fricative" msgstr "Labialització alveolar sonora o labialització fricativa dental sonora" #: ../data/ipa-obsolete.xml.in.h:42 msgid "Combining labialization mark" msgstr "" #: ../data/ipa-obsolete.xml.in.h:43 msgid "Combining palatalization mark" msgstr "" #. "IPA" stands for "International Phonetic Alphabet" #: ../data/ipa-unofficial.xml.in.h:2 msgid "IPA (Unofficial)" msgstr "IPA (no oficial)" #: ../data/ipa-unofficial.xml.in.h:3 msgid "Voiced labiodental plosive" msgstr "Oclusiva labiodental sonora" #: ../data/ipa-unofficial.xml.in.h:4 ../data/ipa.xml.in.h:18 msgid "Voiceless palatal lateral affricate" msgstr "Lateral africada palatal sorda" #: ../data/ipa-unofficial.xml.in.h:5 msgid "Voiced retroflex implosive" msgstr "Implosiva retroflexa sonora" #: ../data/ipa-unofficial.xml.in.h:6 ../data/ipa.xml.in.h:88 msgid "Alveolar flap" msgstr "Bategant alveolar" #: ../data/ipa-unofficial.xml.in.h:7 ../data/ipa.xml.in.h:125 msgid "Voiceless palatal lateral fricative" msgstr "Lateral fricativa palatal sorda" #: ../data/ipa-unofficial.xml.in.h:8 ../data/ipa.xml.in.h:91 msgid "Retroflex flap" msgstr "Bategant retroflexa" #: ../data/ipa-unofficial.xml.in.h:9 msgid "Voiceless retroflex lateral fricative" msgstr "Lateral fricativa retroflexa sorda" #. "PUA" stands for "Private Use Area" #: ../data/ipa-unofficial.xml.in.h:11 msgid "Voiceless retroflex lateral fricative (PUA)" msgstr "Lateral fricativa retroflexa sorda (PUA)" #: ../data/ipa-unofficial.xml.in.h:12 ../data/ipa.xml.in.h:59 msgid "Voiceless velar lateral affricate" msgstr "Lateral africada velar sorda" #: ../data/ipa-unofficial.xml.in.h:13 ../data/ipa.xml.in.h:68 msgid "Voiceless velar lateral fricative" msgstr "Lateral fricativa velar sorda" #: ../data/ipa-unofficial.xml.in.h:14 msgid "Epiglottal trill" msgstr "Vibrant epiglotal" #: ../data/ipa-unofficial.xml.in.h:15 msgid "Voiceless labiodental plosive" msgstr "Oclusiva labiodental sorda" #: ../data/ipa-unofficial.xml.in.h:16 msgid "Voiceless retroflex lateral affricate" msgstr "Lateral africada retroflexa sorda" #. "PUA" stands for "Private Use Area" #: ../data/ipa-unofficial.xml.in.h:18 msgid "Voiceless retroflex lateral affricate (PUA)" msgstr "Lateral africada retroflexa sorda (PUA)" #: ../data/ipa-unofficial.xml.in.h:19 msgid "Combining stridency mark" msgstr "" #. "PUA" stands for "Private Use Area" #: ../data/ipa-unofficial.xml.in.h:21 msgid "Combining stridency mark (PUA)" msgstr "" #. "IPA" stands for "International Phonetic Alphabet" #: ../data/ipa.xml.in.h:2 msgid "IPA" msgstr "IPA" #: ../data/ipa.xml.in.h:3 msgid "Open front unrounded vowel" msgstr "Vocal oberta anterior no arrodonida" #: ../data/ipa.xml.in.h:4 msgid "Open central unrounded vowel" msgstr "Vocal oberta central no arrodonida" #: ../data/ipa.xml.in.h:5 msgid "Near-open central vowel" msgstr "Vocal quasioberta central" #: ../data/ipa.xml.in.h:7 msgid "Open back rounded vowel" msgstr "Vocal oberta posterior arrodonida" #: ../data/ipa.xml.in.h:8 msgid "Open-mid back unrounded vowel" msgstr "Vocal semioberta posterior no arrodonida" #: ../data/ipa.xml.in.h:9 msgid "Near-open front unrounded vowel" msgstr "Vocal quasioberta anterior no arrodonida" #: ../data/ipa.xml.in.h:10 msgid "Voiced bilabial plosive" msgstr "Oclusiva bilabial sonora" #: ../data/ipa.xml.in.h:11 msgid "Voiced labiodental affricate" msgstr "Africada labiodental sonora" #: ../data/ipa.xml.in.h:12 msgid "Voiced bilabial implosive" msgstr "Implosiva bilabial sonora" #: ../data/ipa.xml.in.h:13 msgid "Bilabial trill" msgstr "Vibrant bilabial" #: ../data/ipa.xml.in.h:14 msgid "Voiced bilabial fricative" msgstr "Fricativa bilabial sonora" #: ../data/ipa.xml.in.h:15 msgid "Voiceless palatal plosive" msgstr "Oclusiva palatal sorda" #: ../data/ipa.xml.in.h:16 msgid "Voiceless palatal fricative" msgstr "Fricativa palatal sorda" #: ../data/ipa.xml.in.h:17 msgid "Voiceless palatal affricate" msgstr "Africada palatal sorda" #: ../data/ipa.xml.in.h:20 msgid "Voiced alveolar plosive" msgstr "Oclusiva alveolar sonora" #: ../data/ipa.xml.in.h:21 msgid "Voiced alveolar implosive" msgstr "Implosiva alveolar sonora" #: ../data/ipa.xml.in.h:22 msgid "Voiced retroflex plosive" msgstr "Oclusiva retroflexa sonora" #: ../data/ipa.xml.in.h:23 msgid "Voiced dental fricative" msgstr "Fricativa dental sonora" #: ../data/ipa.xml.in.h:24 msgid "Voiced alveolar lateral affricate" msgstr "Lateral africada alveolar sonora" #: ../data/ipa.xml.in.h:28 msgid "Voiced retroflex affricate" msgstr "Africada retroflexa sonora" #: ../data/ipa.xml.in.h:29 msgid "Close-mid front unrounded vowel" msgstr "Vocal semitancada anterior no arrodonida" #: ../data/ipa.xml.in.h:30 msgid "Close-mid central unrounded vowel" msgstr "Vocal semitancada cental no arrodonida" #: ../data/ipa.xml.in.h:31 msgid "Mid-central vowel" msgstr "Vocal neutra" #: ../data/ipa.xml.in.h:32 msgid "Rhotacized mid-central vowel" msgstr "Rotacisme vocal neutra" #: ../data/ipa.xml.in.h:33 msgid "Open-mid front unrounded vowel" msgstr "Vocal semioberta anterior no arrodonida" #: ../data/ipa.xml.in.h:34 msgid "Open-mid central rounded vowel" msgstr "Vocal semioberta central arrodonida" #: ../data/ipa.xml.in.h:35 msgid "Open-mid central unrounded vowel" msgstr "Vocal semioberta central no arrodonida" #: ../data/ipa.xml.in.h:36 msgid "Rhotacized open-mid central unrounded vowel" msgstr "Rotacisme rocal semioberta central no arrodonida" #: ../data/ipa.xml.in.h:37 msgid "Voiceless labiodental fricative" msgstr "Fricativa labiodental sorda" #: ../data/ipa.xml.in.h:38 msgid "Velopharyngeal fricative" msgstr "" #: ../data/ipa.xml.in.h:39 msgid "Voiced velar plosive" msgstr "Oclusiva velar sonora" #: ../data/ipa.xml.in.h:40 msgid "Voiced labial-velar plosive" msgstr "Oclusiva labiovelar sonora" #: ../data/ipa.xml.in.h:41 msgid "Voiced velar implosive" msgstr "Implosiva velar sonora" #: ../data/ipa.xml.in.h:42 msgid "Voiced uvular plosive" msgstr "Oclusiva uvular sonora" #: ../data/ipa.xml.in.h:43 msgid "Voiced uvular implosive" msgstr "Implosiva uvular sonora" #: ../data/ipa.xml.in.h:44 msgid "Voiceless glottal fricative" msgstr "Fricativa glotal sorda" #: ../data/ipa.xml.in.h:45 msgid "Voiced glottal fricative" msgstr "Fricativa glotal sonora" #: ../data/ipa.xml.in.h:46 msgid "Voiceless pharyngeal fricative" msgstr "Fricativa faríngia sorda" #: ../data/ipa.xml.in.h:47 msgid "Voiceless coarticulated velar and palato-alveolar fricative" msgstr "Coarticulació fricativa velar i postalveolar sorda" #: ../data/ipa.xml.in.h:48 msgid "Voiceless epiglottal fricative" msgstr "Fricativa epiglotal sorda" #: ../data/ipa.xml.in.h:49 msgid "Close front unrounded vowel" msgstr "Vocal tancada anterior no arrodonida" #: ../data/ipa.xml.in.h:50 msgid "Near-close near-front unrounded vowel" msgstr "Vocal quasitancada anterior no arrodonida" #: ../data/ipa.xml.in.h:51 msgid "Near-close central unrounded vowel" msgstr "Vocal quasitancada central no arrodonida" #: ../data/ipa.xml.in.h:52 msgid "Close central unrounded vowel" msgstr "Vocal tancada central no arrodonida" #: ../data/ipa.xml.in.h:53 msgid "Palatal approximant" msgstr "Aproximant palatal" #: ../data/ipa.xml.in.h:54 msgid "Voiced palatal fricative" msgstr "Fricativa palatal sonora" #: ../data/ipa.xml.in.h:55 msgid "Voiced palatal plosive" msgstr "Oclusiva palatal sonora" #: ../data/ipa.xml.in.h:56 msgid "Voiced palatal affricate" msgstr "Africada palatal sonora" #: ../data/ipa.xml.in.h:57 msgid "Voiced palatal implosive" msgstr "Implosiva palatal sonora" #: ../data/ipa.xml.in.h:58 msgid "Voiceless velar plosive" msgstr "Oclusiva velar sorda" #: ../data/ipa.xml.in.h:60 msgid "Voiceless labial-velar plosive" msgstr "Oclusiva labiovelar sorda" #: ../data/ipa.xml.in.h:61 msgid "Voiceless velar affricate" msgstr "Africada velar sorda" #: ../data/ipa.xml.in.h:62 msgid "Alveolar lateral approximant" msgstr "Lateral aproximant alveolar" #: ../data/ipa.xml.in.h:63 msgid "Velarized alveolar lateral approximant" msgstr "Lateral aproximant alveolar sonora" #: ../data/ipa.xml.in.h:64 msgid "Voiceless alveolar lateral fricative" msgstr "Lateral fricativa alveolar sorda" #: ../data/ipa.xml.in.h:65 msgid "Retroflex lateral approximant" msgstr "Lateral aproximant retroflexa" #: ../data/ipa.xml.in.h:66 msgid "Voiced alveolar lateral fricative" msgstr "Lateral fricativa alveolar sonora" #: ../data/ipa.xml.in.h:67 msgid "Velar lateral approximant" msgstr "Lateral aproximant velar" #: ../data/ipa.xml.in.h:69 msgid "Bilabial nasal" msgstr "Nasal bilabial" #: ../data/ipa.xml.in.h:70 msgid "Labiodental nasal" msgstr "Nasal labiodental" #: ../data/ipa.xml.in.h:71 msgid "Alveolar nasal" msgstr "Nasal alveolar" #: ../data/ipa.xml.in.h:72 msgid "Velar nasal" msgstr "Nasal velar" #: ../data/ipa.xml.in.h:73 msgid "Labial-velar nasal" msgstr "Nasal labiovelar" #: ../data/ipa.xml.in.h:74 msgid "Palatal nasal" msgstr "Nasal palatal" #: ../data/ipa.xml.in.h:75 msgid "Retroflex nasal" msgstr "Nasal retroflexa" #: ../data/ipa.xml.in.h:76 msgid "Uvular nasal" msgstr "Nasal uvular" #: ../data/ipa.xml.in.h:77 msgid "Close-mid back rounded vowel" msgstr "Vocal semitancada posterior arrodonida" #: ../data/ipa.xml.in.h:78 msgid "Close-mid front rounded vowel" msgstr "Vocal semitancada anterior arrodonida" #: ../data/ipa.xml.in.h:79 msgid "Close-mid central rounded vowel" msgstr "Vocal semitancada cental arrodonida" #: ../data/ipa.xml.in.h:80 msgid "Open-mid front rounded vowel" msgstr "Vocal semioberta anterior arrodonida" #: ../data/ipa.xml.in.h:81 msgid "Open front rounded vowel" msgstr "Vocal oberta anterior arrodonida" #: ../data/ipa.xml.in.h:82 msgid "Voiceless bilabial plosive" msgstr "" #: ../data/ipa.xml.in.h:83 msgid "Voiceless bilabial-labiodental affricate" msgstr "" #: ../data/ipa.xml.in.h:84 msgid "Voiceless bilabial affricate" msgstr "Africada bilabial sorda" #: ../data/ipa.xml.in.h:85 msgid "Voiceless labiodental affricate" msgstr "" #: ../data/ipa.xml.in.h:86 msgid "Voiceless uvular plosive" msgstr "" #: ../data/ipa.xml.in.h:87 msgid "Alveolar trill" msgstr "Vibrant alveolar" #: ../data/ipa.xml.in.h:89 msgid "Alveolar lateral flap" msgstr "Lateral bategant alveolar" #: ../data/ipa.xml.in.h:90 msgid "Uvular trill" msgstr "Vibrant uvular" #: ../data/ipa.xml.in.h:92 msgid "Alveolar approximant" msgstr "" #: ../data/ipa.xml.in.h:93 msgid "Retroflex approximant" msgstr "" #: ../data/ipa.xml.in.h:94 msgid "Voiced uvular fricative" msgstr "" #: ../data/ipa.xml.in.h:95 msgid "Voiceless alveolar fricative" msgstr "" #: ../data/ipa.xml.in.h:96 msgid "Voiceless palato-alveolar fricative" msgstr "Fricativa postalveolar sorda" #: ../data/ipa.xml.in.h:97 msgid "Voiceless retroflex fricative" msgstr "" #: ../data/ipa.xml.in.h:98 msgid "Voiceless alveolar plosive" msgstr "" #: ../data/ipa.xml.in.h:99 msgid "Voiceless retroflex plosive" msgstr "Oclusiva retroflexa sorda" #: ../data/ipa.xml.in.h:100 msgid "Voiceless alveolar lateral affricate" msgstr "Lateral africada alveolar sorda" #: ../data/ipa.xml.in.h:104 msgid "Voiceless retroflex affricate" msgstr "Africada retroflexa sorda" #: ../data/ipa.xml.in.h:105 msgid "Close back rounded vowel" msgstr "Vocal tancada posterior arrodonida" #: ../data/ipa.xml.in.h:107 msgid "Near-close central vowel" msgstr "Vocal quasitancada central" #: ../data/ipa.xml.in.h:108 msgid "Close central rounded vowel" msgstr "Vocal tancada central arrodonida" #: ../data/ipa.xml.in.h:109 msgid "Labial-palatal approximant" msgstr "" #: ../data/ipa.xml.in.h:110 msgid "Close back unrounded vowel" msgstr "Vocal tancada posterior no arrodonida" #: ../data/ipa.xml.in.h:111 msgid "Voiced labiodental fricative" msgstr "Fricativa labiodental sonora" #: ../data/ipa.xml.in.h:112 msgid "Labiodental flap" msgstr "Bategant labiodental" #: ../data/ipa.xml.in.h:113 msgid "Labiodental approximant" msgstr "Aproximant labiodental" #: ../data/ipa.xml.in.h:114 msgid "Voiced velar fricative" msgstr "Fricativa velar sonora" #: ../data/ipa.xml.in.h:115 msgid "Close-mid back unrounded vowel" msgstr "Vocal semitancada posterior no arrodonida" #: ../data/ipa.xml.in.h:116 msgid "Voiced labiovelar approximant" msgstr "Aproximant labiovelar sonora" #: ../data/ipa.xml.in.h:117 msgid "Voiceless labiovelar approximant" msgstr "Aproximant labiovelar sorda" #: ../data/ipa.xml.in.h:118 msgid "Velar approximant" msgstr "Aproximant velar" #: ../data/ipa.xml.in.h:119 msgid "Bilabial percussive" msgstr "" #: ../data/ipa.xml.in.h:120 msgid "Voiceless velar fricative" msgstr "Fricativa velar sorda" #: ../data/ipa.xml.in.h:121 msgid "Voiceless uvular fricative" msgstr "Fricativa uvular sorda" #: ../data/ipa.xml.in.h:122 msgid "Close front rounded vowel" msgstr "Vocal tancada anterior arrodonida" #: ../data/ipa.xml.in.h:123 msgid "Near-close near-front rounded vowel" msgstr "Vocal quasitancada quasianterior no arrodonida" #: ../data/ipa.xml.in.h:124 msgid "Palatal lateral approximant" msgstr "Lateral aproximant palatal" #: ../data/ipa.xml.in.h:126 msgid "Voiced alveolar fricative" msgstr "Fricativa alveolar sonora" #: ../data/ipa.xml.in.h:127 msgid "Voiced palato-alveolar fricative" msgstr "Fricativa postalveolar sonora" #: ../data/ipa.xml.in.h:129 msgid "Voiced retroflex fricative" msgstr "Fricativa retroflexa sonora" #: ../data/ipa.xml.in.h:130 msgid "Voiceless dental fricative" msgstr "Fricativa dental sorda" #: ../data/ipa.xml.in.h:131 msgid "Voiceless bilabial fricative" msgstr "Fricativa bilabial sorda" #: ../data/ipa.xml.in.h:132 msgid "Glottal stop" msgstr "" #: ../data/ipa.xml.in.h:133 msgid "Epiglottal plosive" msgstr "" #: ../data/ipa.xml.in.h:134 msgid "Voiced pharyngeal fricative" msgstr "" #: ../data/ipa.xml.in.h:135 msgid "Voiced epiglottal fricative" msgstr "" #: ../data/ipa.xml.in.h:136 msgid "Bilabial click" msgstr "" #: ../data/ipa.xml.in.h:139 msgid "Palatal click" msgstr "" #: ../data/ipa.xml.in.h:141 msgid "Bidental percussive" msgstr "" #: ../data/ipa.xml.in.h:142 msgid "Aspiration mark" msgstr "" #: ../data/ipa.xml.in.h:143 msgid "Non-aspiration mark" msgstr "" #: ../data/ipa.xml.in.h:144 msgid "Breathy voice mark" msgstr "" #: ../data/ipa.xml.in.h:145 msgid "Palatalization mark" msgstr "" #: ../data/ipa.xml.in.h:146 msgid "Lateral release mark" msgstr "" #: ../data/ipa.xml.in.h:147 msgid "Bilabial nasal release mark" msgstr "" #: ../data/ipa.xml.in.h:148 msgid "Labiodental nasal release mark" msgstr "" #: ../data/ipa.xml.in.h:149 msgid "Alveolar nasal release mark" msgstr "" #: ../data/ipa.xml.in.h:150 msgid "Palatal nasal release mark" msgstr "" #: ../data/ipa.xml.in.h:151 msgid "Retroflex nasal release mark" msgstr "" #: ../data/ipa.xml.in.h:152 msgid "Uvular nasal release mark" msgstr "" #: ../data/ipa.xml.in.h:153 msgid "Labio-palatalization mark" msgstr "" #: ../data/ipa.xml.in.h:154 msgid "Labiodentalization mark" msgstr "" #: ../data/ipa.xml.in.h:155 msgid "Labialization mark" msgstr "Marca de labialització" #: ../data/ipa.xml.in.h:156 msgid "Velarization mark" msgstr "" #: ../data/ipa.xml.in.h:157 msgid "Glottalization mark" msgstr "" #: ../data/ipa.xml.in.h:158 msgid "Pharyngealization mark" msgstr "" #: ../data/ipa.xml.in.h:159 msgid "Combining velarization/pharyngealization mark" msgstr "" #: ../data/ipa.xml.in.h:160 msgid "Combining laryngealization mark" msgstr "" #: ../data/ipa.xml.in.h:161 msgid "Combining retroflexion mark" msgstr "" #: ../data/ipa.xml.in.h:162 msgid "Ejection mark" msgstr "" #: ../data/ipa.xml.in.h:163 msgid "Rhotacization mark" msgstr "" #: ../data/ipa.xml.in.h:164 msgid "Combining dentalization mark" msgstr "" #: ../data/ipa.xml.in.h:165 msgid "Combining dentolabialization mark" msgstr "" #: ../data/ipa.xml.in.h:166 msgid "Combining alveolarization mark" msgstr "" #: ../data/ipa.xml.in.h:167 msgid "Combining linguolabialization mark" msgstr "" #: ../data/ipa.xml.in.h:168 msgid "Combining apicalization mark" msgstr "" #: ../data/ipa.xml.in.h:169 msgid "Combining laminalization mark" msgstr "" #: ../data/ipa.xml.in.h:170 msgid "Combining centralization mark" msgstr "" #: ../data/ipa.xml.in.h:171 msgid "Combining mid-centralization mark" msgstr "" #: ../data/ipa.xml.in.h:172 msgid "Combining nasalization mark" msgstr "" #: ../data/ipa.xml.in.h:173 msgid "Combining nasalization mark below" msgstr "" #: ../data/ipa.xml.in.h:174 msgid "Combining denasalization mark" msgstr "" #: ../data/ipa.xml.in.h:175 msgid "Combining nasal friction mark" msgstr "" #: ../data/ipa.xml.in.h:176 msgid "Combining velopharyngeal friction mark" msgstr "" #: ../data/ipa.xml.in.h:177 msgid "Combining voiced mark" msgstr "" #: ../data/ipa.xml.in.h:178 msgid "Combining voiceless mark" msgstr "" #: ../data/ipa.xml.in.h:179 msgid "Combining voiceless mark above" msgstr "" #: ../data/ipa.xml.in.h:180 msgid "Pre-voicing/post-voicing mark" msgstr "" #: ../data/ipa.xml.in.h:181 msgid "Combining breathy voice mark" msgstr "" #: ../data/ipa.xml.in.h:182 msgid "Combining unreleased stop mark" msgstr "" #: ../data/ipa.xml.in.h:183 msgid "Combining more rounded mark" msgstr "" #: ../data/ipa.xml.in.h:184 msgid "Combining less rounded mark" msgstr "" #: ../data/ipa.xml.in.h:185 msgid "Combining labial spreading mark" msgstr "" #: ../data/ipa.xml.in.h:186 msgid "Combining syllabic mark" msgstr "" #: ../data/ipa.xml.in.h:187 msgid "Combining syllabic mark above" msgstr "" #: ../data/ipa.xml.in.h:188 msgid "Combining non-syllabic mark" msgstr "" #: ../data/ipa.xml.in.h:189 msgid "Combining non-syllabic mark above" msgstr "" #: ../data/ipa.xml.in.h:190 msgid "Combining top tone mark" msgstr "" #: ../data/ipa.xml.in.h:191 msgid "Combining high tone mark" msgstr "" #: ../data/ipa.xml.in.h:192 msgid "Combining mid tone mark" msgstr "" #: ../data/ipa.xml.in.h:193 msgid "Combining low tone mark" msgstr "" #: ../data/ipa.xml.in.h:194 msgid "Combining bottom tone mark" msgstr "" #: ../data/ipa.xml.in.h:195 msgid "Combining falling tone mark" msgstr "" #: ../data/ipa.xml.in.h:196 msgid "Combining high falling tone mark" msgstr "" #: ../data/ipa.xml.in.h:197 msgid "Combining low falling tone mark" msgstr "" #: ../data/ipa.xml.in.h:198 msgid "Combining rising tone mark" msgstr "" #: ../data/ipa.xml.in.h:199 msgid "Combining high rising tone mark" msgstr "" #: ../data/ipa.xml.in.h:200 msgid "Combining low rising tone mark" msgstr "" #: ../data/ipa.xml.in.h:201 msgid "Combining dipping tone mark" msgstr "" #: ../data/ipa.xml.in.h:202 msgid "Combining peaking tone mark" msgstr "" #: ../data/ipa.xml.in.h:203 msgid "Top tone letter" msgstr "" #: ../data/ipa.xml.in.h:204 msgid "High tone letter" msgstr "" #: ../data/ipa.xml.in.h:205 msgid "Mid tone letter" msgstr "" #: ../data/ipa.xml.in.h:206 msgid "Low tone letter" msgstr "" #: ../data/ipa.xml.in.h:207 msgid "Bottom tone letter" msgstr "" #: ../data/ipa.xml.in.h:208 msgid "Falling tone digraph" msgstr "" #: ../data/ipa.xml.in.h:209 msgid "High falling tone digraph" msgstr "" #: ../data/ipa.xml.in.h:210 msgid "Rising tone digraph" msgstr "" #: ../data/ipa.xml.in.h:211 msgid "High rising tone digraph" msgstr "" #: ../data/ipa.xml.in.h:212 msgid "Low rising tone digraph" msgstr "" #: ../data/ipa.xml.in.h:213 msgid "Dipping tone trigraph" msgstr "" #: ../data/ipa.xml.in.h:214 msgid "Peaking tone trigraph" msgstr "" #: ../data/ipa.xml.in.h:215 msgid "Upstep mark" msgstr "" #: ../data/ipa.xml.in.h:216 msgid "Downstep mark" msgstr "" #: ../data/ipa.xml.in.h:217 msgid "Minor break" msgstr "" #: ../data/ipa.xml.in.h:218 msgid "Major break" msgstr "" #: ../data/ipa.xml.in.h:219 msgid "Rising intonation mark" msgstr "" #: ../data/ipa.xml.in.h:220 msgid "Falling intonation mark" msgstr "" #: ../data/ipa.xml.in.h:221 msgid "Advanced articulation mark" msgstr "" #: ../data/ipa.xml.in.h:222 msgid "Retracted articulation mark" msgstr "" #: ../data/ipa.xml.in.h:223 msgid "Combining advanced articulation mark" msgstr "" #: ../data/ipa.xml.in.h:224 msgid "Combining retracted articulation mark" msgstr "" #: ../data/ipa.xml.in.h:225 msgid "Raised sound mark" msgstr "" #: ../data/ipa.xml.in.h:226 msgid "Lowered sound mark" msgstr "" #: ../data/ipa.xml.in.h:227 msgid "Combining raised sound mark" msgstr "" #: ../data/ipa.xml.in.h:228 msgid "Combining lowered sound mark" msgstr "" #: ../data/ipa.xml.in.h:229 msgid "Combining tongue root advancement mark" msgstr "" #: ../data/ipa.xml.in.h:230 msgid "Combining tongue root retraction mark" msgstr "" #: ../data/ipa.xml.in.h:231 msgid "Combining strong articulation mark" msgstr "" #: ../data/ipa.xml.in.h:232 msgid "Combining weak articulation mark" msgstr "" #: ../data/ipa.xml.in.h:233 msgid "Combining whistled articulation mark" msgstr "" #: ../data/ipa.xml.in.h:234 msgid "Combining sliding articulation mark" msgstr "" #: ../data/ipa.xml.in.h:235 msgid "Egression mark" msgstr "" #: ../data/ipa.xml.in.h:236 msgid "Ingression mark" msgstr "" #: ../data/ipa.xml.in.h:237 msgid "Combining ligature tie" msgstr "" #: ../data/ipa.xml.in.h:238 msgid "Combining ligature undertie" msgstr "" #: ../data/ipa.xml.in.h:239 msgid "Elongation mark" msgstr "" #: ../data/ipa.xml.in.h:240 msgid "Weak elongation mark" msgstr "" #: ../data/ipa.xml.in.h:241 msgid "Combining extra-short duration mark" msgstr "" #: ../data/ipa.xml.in.h:242 msgid "Liaison mark" msgstr "" #: ../data/ipa.xml.in.h:243 msgid "Stress mark" msgstr "" #: ../data/ipa.xml.in.h:244 msgid "Weak stress mark" msgstr "" #: ../data/ipa.xml.in.h:245 msgid "Syllable break" msgstr "" #: ../data/ipa.xml.in.h:246 msgid "Opening orthographic bracket" msgstr "" #: ../data/ipa.xml.in.h:247 msgid "Closing orthographic bracket" msgstr "" #: ../data/ja.xml.in.h:1 msgid "Japanese" msgstr "Japonès" #: ../data/ja.xml.in.h:2 ../input-pad/unicode_block.h:136 msgid "Hiragana" msgstr "Hiragana" #: ../data/ja.xml.in.h:3 ../input-pad/unicode_block.h:137 msgid "Katakana" msgstr "Katakana" #: ../data/ja.xml.in.h:4 ../data/zh.xml.in.h:3 msgid "Radicals" msgstr "" #: ../data/ja.xml.in.h:5 ../input-pad/unicode_block.h:132 msgid "CJK Radicals Supplement" msgstr "Suplement de radicals CJK" #: ../data/keyboard.xml.in.h:1 msgid "Keyboard" msgstr "Teclat" #: ../data/keyboard.xml.in.h:2 msgid "Function Key" msgstr "" #: ../data/keyboard.xml.in.h:3 msgid "Key Pad" msgstr "" #: ../data/latin.xml.in.h:1 msgid "ASCII" msgstr "ASCII" #: ../data/latin.xml.in.h:2 ../input-pad/unicode_block.h:38 msgid "Latin-1 Supplement" msgstr "Suplement llatí-1" #: ../data/latin.xml.in.h:3 ../input-pad/unicode_block.h:39 msgid "Latin Extended-A" msgstr "Llatí ampliat-A" #: ../data/latin.xml.in.h:4 msgid "Old and Middle English" msgstr "" #: ../data/runr.xml.in.h:1 msgid "Runes (Unicode Block)" msgstr "" #: ../data/runr.xml.in.h:2 msgid "Runes (Elder Fuþark)" msgstr "" #: ../data/runr.xml.in.h:3 msgid "Runes (Younger Fuþark)" msgstr "" #: ../data/runr.xml.in.h:4 msgid "Runes (Fuþorc)" msgstr "" #: ../data/shaw.xml.in.h:1 ../input-pad/unicode_block.h:200 msgid "Shavian" msgstr "Shavian" #: ../data/str.xml.in.h:1 msgid "Chat" msgstr "Xat" #: ../data/str.xml.in.h:2 msgid "Emoji" msgstr "Emoji" #: ../data/str.xml.in.h:3 msgid "Rain" msgstr "" #: ../data/str.xml.in.h:4 msgid "Comet" msgstr "" #: ../data/str.xml.in.h:5 msgid "Cross" msgstr "" #: ../data/str.xml.in.h:6 msgid "Solar" msgstr "Solar" #: ../data/str.xml.in.h:7 msgid "Mercury" msgstr "Mercuri" #: ../data/str.xml.in.h:8 msgid "Venus" msgstr "Venus" #: ../data/str.xml.in.h:9 msgid "Earth" msgstr "Terra" #: ../data/str.xml.in.h:10 msgid "Mars" msgstr "Mart" #: ../data/str.xml.in.h:11 msgid "Jupiter" msgstr "Júpiter" #: ../data/str.xml.in.h:12 msgid "Saturn" msgstr "Saturn" #: ../data/str.xml.in.h:13 msgid "Uranus" msgstr "Urà" #: ../data/str.xml.in.h:14 msgid "Neptune" msgstr "Neptú" #: ../data/str.xml.in.h:15 msgid "Pluto" msgstr "" #: ../data/str.xml.in.h:16 msgid "Aries" msgstr "" #: ../data/str.xml.in.h:17 msgid "Taurus" msgstr "" #: ../data/str.xml.in.h:18 msgid "Gemini" msgstr "Gèminis (o Bessons)" #: ../data/str.xml.in.h:19 msgid "Cancer" msgstr "Càncer (o Cranc)" #: ../data/str.xml.in.h:20 msgid "Leo" msgstr "Lleó" #: ../data/str.xml.in.h:21 msgid "Virgo" msgstr "Verge" #: ../data/str.xml.in.h:22 msgid "Libra" msgstr "Balança" #: ../data/str.xml.in.h:23 msgid "Scorpius" msgstr "Escorpió (o Escorpí)" #: ../data/str.xml.in.h:24 msgid "Sagittarius" msgstr "Sagitari" #: ../data/str.xml.in.h:25 msgid "Capricorn" msgstr "Capricorn" #: ../data/str.xml.in.h:26 msgid "Aquarius" msgstr "Aquari" #: ../data/str.xml.in.h:27 msgid "Pisces" msgstr "Pisces (o Peixos)" #: ../data/str.xml.in.h:28 msgid "Dice 1" msgstr "Dau 1" #: ../data/str.xml.in.h:29 msgid "Dice 2" msgstr "Dau 2" #: ../data/str.xml.in.h:30 msgid "Dice 3" msgstr "Dau 3" #: ../data/str.xml.in.h:31 msgid "Dice 4" msgstr "Dau 4" #: ../data/str.xml.in.h:32 msgid "Dice 5" msgstr "Dau 5" #: ../data/str.xml.in.h:33 msgid "Dice 6" msgstr "Dau 6" #: ../data/str.xml.in.h:34 msgid "Anchor" msgstr "" #: ../data/str.xml.in.h:35 msgid "Sword" msgstr "" #: ../data/str.xml.in.h:36 msgid "Scales" msgstr "" #: ../data/str.xml.in.h:37 msgid "Conversation" msgstr "Conversació" #: ../data/str.xml.in.h:38 msgid "Warning" msgstr "Advertència" #: ../data/str.xml.in.h:39 msgid "Thunder" msgstr "Tro" #: ../data/str.xml.in.h:40 msgid "Coffin" msgstr "Taüt" #: ../data/str.xml.in.h:41 msgid "Gender" msgstr "" #: ../data/str.xml.in.h:42 msgid "Soccer" msgstr "Fútbol" #: ../data/str.xml.in.h:43 msgid "Baseball" msgstr "Beisbol" #: ../data/str.xml.in.h:44 msgid "Snowman" msgstr "Ninot de neu" #: ../data/str.xml.in.h:45 msgid "Shoji" msgstr "Shoji" #: ../data/str.xml.in.h:46 msgid "Maintenance" msgstr "Manteniment" #: ../data/str.xml.in.h:47 msgid "Roadblock" msgstr "Tanca" #: ../data/str.xml.in.h:48 msgid "No entry" msgstr "" #: ../data/str.xml.in.h:49 msgid "Truck" msgstr "" #: ../data/str.xml.in.h:50 msgid "Torii" msgstr "" #: ../data/str.xml.in.h:51 msgid "Church" msgstr "Església" #: ../data/str.xml.in.h:52 msgid "Castle" msgstr "Castell" #: ../data/str.xml.in.h:53 msgid "Historic site" msgstr "Lloc històric" #: ../data/str.xml.in.h:54 msgid "Power station" msgstr "Central elèctrica" #: ../data/str.xml.in.h:55 msgid "Lighthouse" msgstr "Far" #: ../data/str.xml.in.h:56 msgid "Mountain" msgstr "Muntanya" #: ../data/str.xml.in.h:57 msgid "Beach" msgstr "Platja" #: ../data/str.xml.in.h:58 msgid "Park" msgstr "Parc" #: ../data/str.xml.in.h:59 msgid "Ferry" msgstr "Transbordador" #: ../data/str.xml.in.h:60 msgid "Sailboat" msgstr "Veler" #: ../data/str.xml.in.h:61 msgid "Ice rink" msgstr "Pista de gel" #: ../data/str.xml.in.h:62 msgid "Scissors" msgstr "Estisores" #: ../data/str.xml.in.h:63 msgid "Airplane" msgstr "Avió" #: ../data/str.xml.in.h:64 msgid "Clenched Fist" msgstr "Punt tancat" #: ../data/str.xml.in.h:65 msgid "Hand" msgstr "Mà" #: ../data/str.xml.in.h:66 msgid "V Sign" msgstr "Signe de victòria" #: ../data/str.xml.in.h:67 msgid "Writing" msgstr "Escriptura" #: ../data/str.xml.in.h:68 msgid "Pencil" msgstr "Llapis" #: ../data/str.xml.in.h:69 msgid "Pen" msgstr "Ploma" #: ../data/str.xml.in.h:70 msgid "Star" msgstr "Estrella" #: ../data/str.xml.in.h:71 msgid "Typhoon" msgstr "Tifó" #: ../data/str.xml.in.h:72 msgid "Fog" msgstr "Boira" #: ../data/str.xml.in.h:73 msgid "Umbrella" msgstr "Paraigua" #: ../data/str.xml.in.h:74 msgid "Night sky" msgstr "Cel nocturn" #: ../data/str.xml.in.h:75 msgid "Sunrise" msgstr "Alba" #: ../data/str.xml.in.h:76 msgid "Sunset" msgstr "Ocàs" #: ../data/str.xml.in.h:77 msgid "Bridge" msgstr "Pont" #: ../data/str.xml.in.h:78 msgid "Wave" msgstr "Ona" #: ../data/str.xml.in.h:79 msgid "New Moon" msgstr "Lluna nova" #: ../data/str.xml.in.h:80 msgid "Crescent Moon" msgstr "Quart creixent" #: ../data/str.xml.in.h:81 msgid "Quarter Moon" msgstr "Quart minvant" #: ../data/str.xml.in.h:82 msgid "Gibbous Moon" msgstr "Lluna gibosa" #: ../data/str.xml.in.h:83 msgid "Full Moon" msgstr "Lluna plena" #: ../data/str.xml.in.h:84 msgid "Moon" msgstr "Lluna" #: ../data/str.xml.in.h:85 msgid "Sun" msgstr "Sol" #: ../data/str.xml.in.h:86 msgid "Cloud" msgstr "Núvol" #: ../data/str.xml.in.h:87 msgid "Palm" msgstr "Palma" #: ../data/str.xml.in.h:88 msgid "Hot Pepper" msgstr "Bitxo" #: ../data/str.xml.in.h:89 msgid "Flower" msgstr "Flor" #: ../data/str.xml.in.h:90 msgid "Tulip" msgstr "Tulipa" #: ../data/str.xml.in.h:91 msgid "Cherry" msgstr "Cirera" #: ../data/str.xml.in.h:92 msgid "Rose" msgstr "Rosa" #: ../data/str.xml.in.h:93 msgid "Hibiscus" msgstr "Hibiscus" #: ../data/str.xml.in.h:94 msgid "Sunflower" msgstr "Gira-sol" #: ../data/str.xml.in.h:95 msgid "Blossom" msgstr "Frescor" #: ../data/str.xml.in.h:96 msgid "Clover" msgstr "Trèvol" #: ../data/str.xml.in.h:97 msgid "Maple" msgstr "Auró" #: ../data/str.xml.in.h:98 msgid "Fallen Leaf" msgstr "Fulla caiguda" #: ../data/str.xml.in.h:99 msgid "Leaf" msgstr "Fulla" #: ../data/str.xml.in.h:100 msgid "Mushroom" msgstr "Bolet" #: ../data/str.xml.in.h:101 msgid "Tomato" msgstr "Tomàquet" #: ../data/str.xml.in.h:102 msgid "Eggplant" msgstr "Albergínia" #: ../data/str.xml.in.h:103 msgid "Grape" msgstr "Raïm" #: ../data/str.xml.in.h:104 msgid "Melon" msgstr "Meló" #: ../data/str.xml.in.h:105 msgid "Watermelon" msgstr "Síndria" #: ../data/str.xml.in.h:106 msgid "Tangerine" msgstr "Mandarina" #: ../data/str.xml.in.h:107 msgid "Lemon" msgstr "Llimó" #: ../data/str.xml.in.h:108 msgid "Banana" msgstr "Plàtan" #: ../data/str.xml.in.h:109 msgid "Pineapple" msgstr "Pinya" #: ../data/str.xml.in.h:110 msgid "Apple" msgstr "Poma" #: ../data/str.xml.in.h:111 msgid "Pear" msgstr "Pera" #: ../data/str.xml.in.h:112 msgid "Peach" msgstr "Préssec" #: ../data/str.xml.in.h:113 msgid "Strawberry" msgstr "Maduixa" #: ../data/str.xml.in.h:114 msgid "Hamburger" msgstr "Hamburguesa" #: ../data/str.xml.in.h:115 msgid "Pizza" msgstr "Pizza" #: ../data/str.xml.in.h:116 msgid "Meat" msgstr "Carn" #: ../data/str.xml.in.h:117 msgid "Poultry" msgstr "Aviram" #: ../data/str.xml.in.h:118 msgid "Rice Cracker" msgstr "Galeta d'arròs" #: ../data/str.xml.in.h:119 msgid "Rice Ball" msgstr "Bola d'arròs" #: ../data/str.xml.in.h:120 msgid "Rice" msgstr "Arròs" #: ../data/str.xml.in.h:121 msgid "Curry" msgstr "Curri" #: ../data/str.xml.in.h:122 msgid "Ramen" msgstr "Ramen" #: ../data/str.xml.in.h:123 msgid "Spaghetti" msgstr "Espaguetis" #: ../data/str.xml.in.h:124 msgid "Bread" msgstr "Pa" #: ../data/str.xml.in.h:125 msgid "Fried Potato" msgstr "Tomàquet fregit" #: ../data/str.xml.in.h:126 msgid "Roasted Sweet Potato" msgstr "Moniato rostit" #: ../data/str.xml.in.h:127 msgid "Dango" msgstr "Dango" #: ../data/str.xml.in.h:128 msgid "Oden" msgstr "Oden" #: ../data/str.xml.in.h:129 msgid "Sushi" msgstr "Sushi" #: ../data/str.xml.in.h:130 msgid "Fried Shrimp" msgstr "Gamba fregida" #: ../data/str.xml.in.h:131 msgid "Fish Cake" msgstr "Pastís de peix" #: ../data/str.xml.in.h:132 msgid "Soft Ice Cream" msgstr "Gelat suau" #: ../data/str.xml.in.h:133 msgid "Shaved Ice" msgstr "Gel picat" #: ../data/str.xml.in.h:134 msgid "Ice Cream" msgstr "Gelat" #: ../data/str.xml.in.h:135 msgid "Doughnut" msgstr "Rosquilla" #: ../data/str.xml.in.h:136 msgid "Cookie" msgstr "Galeta" #: ../data/str.xml.in.h:137 msgid "Chocolate" msgstr "Xocolata" #: ../data/str.xml.in.h:138 msgid "Candy" msgstr "Caramel" #: ../data/str.xml.in.h:139 msgid "Custard" msgstr "Natilles" #: ../data/str.xml.in.h:140 msgid "Honey" msgstr "Mel" #: ../data/str.xml.in.h:141 msgid "Shortcake" msgstr "Coca de fruites" #: ../data/str.xml.in.h:142 msgid "Bento" msgstr "Bento" #: ../data/str.xml.in.h:143 msgid "Pot of Food" msgstr "Pot d'aliments" #: ../data/str.xml.in.h:144 msgid "Cooking" msgstr "Cuina" #: ../data/str.xml.in.h:145 msgid "Meal" msgstr "Menjar" #: ../data/str.xml.in.h:146 msgid "Cup" msgstr "Tassa" #: ../data/str.xml.in.h:147 msgid "Sake" msgstr "Corder" #: ../data/str.xml.in.h:148 msgid "Wine" msgstr "Vi" #: ../data/str.xml.in.h:149 msgid "Cocktail" msgstr "Còctel" #: ../data/str.xml.in.h:150 msgid "Drink" msgstr "Beguda" #: ../data/str.xml.in.h:151 msgid "Beer" msgstr "Cervesa" #: ../data/str.xml.in.h:152 msgid "Cheers" msgstr "Brindis" #: ../data/str.xml.in.h:153 msgid "Baby Bottle" msgstr "Biberó" #: ../data/str.xml.in.h:154 msgid "Ribbon" msgstr "Cinta" #: ../data/str.xml.in.h:155 msgid "Present" msgstr "Present" #: ../data/str.xml.in.h:156 msgid "Cake" msgstr "Pastis" #: ../data/str.xml.in.h:157 msgid "Hallowe'en" msgstr "" #: ../data/str.xml.in.h:158 msgid "Christmas" msgstr "Felicitació de nadal" #: ../data/str.xml.in.h:159 msgid "Piano" msgstr "Piano" #: ../data/str.xml.in.h:160 msgid "Microphone" msgstr "Micròfon" #: ../data/str.xml.in.h:161 msgid "Headphone" msgstr "Auriculars" #: ../data/str.xml.in.h:162 msgid "Hat" msgstr "Barret" #: ../data/str.xml.in.h:163 msgid "Musical Note" msgstr "Nota musical" #: ../data/str.xml.in.h:164 msgid "Saxophone" msgstr "Saxòfon" #: ../data/str.xml.in.h:165 msgid "Guiter" msgstr "Guitarra" #: ../data/str.xml.in.h:166 msgid "Trumpet" msgstr "Trompeta" #: ../data/str.xml.in.h:167 msgid "Violin" msgstr "Violí" #: ../data/str.xml.in.h:168 msgid "Musical Score" msgstr "Puntuació musical" #: ../data/str.xml.in.h:169 msgid "Tennis" msgstr "Tenis" #: ../data/str.xml.in.h:170 msgid "Ski" msgstr "Esquí" #: ../data/str.xml.in.h:171 msgid "Basketball" msgstr "Bàsquet" #: ../data/str.xml.in.h:172 msgid "Flag" msgstr "Bandera" #: ../data/str.xml.in.h:173 msgid "Show Board" msgstr "" #: ../data/str.xml.in.h:174 msgid "Running" msgstr "" #: ../data/str.xml.in.h:175 msgid "Surfer" msgstr "Surfista" #: ../data/str.xml.in.h:176 msgid "Medal" msgstr "Medalla" #: ../data/str.xml.in.h:177 msgid "Trophy" msgstr "Trofeu" #: ../data/str.xml.in.h:178 msgid "Horse Racing" msgstr "Cursa de cavalls" #: ../data/str.xml.in.h:179 msgid "American Football" msgstr "Futbol americà" #: ../data/str.xml.in.h:180 msgid "Rugby" msgstr "Rugbi" #: ../data/str.xml.in.h:181 msgid "Swimmer" msgstr "Natació" #: ../data/str.xml.in.h:182 msgid "Weight Lifting" msgstr "" #: ../data/str.xml.in.h:183 msgid "Golf" msgstr "Golf" #: ../data/str.xml.in.h:184 msgid "Motorcycle" msgstr "Moto" #: ../data/str.xml.in.h:185 msgid "Race" msgstr "Cursa" #: ../data/str.xml.in.h:186 msgid "House" msgstr "Casa" #: ../data/str.xml.in.h:187 msgid "Office" msgstr "Oficina" #: ../data/str.xml.in.h:188 msgid "Hospital" msgstr "Hospital" #: ../data/str.xml.in.h:189 msgid "Bank" msgstr "Banc" #: ../data/str.xml.in.h:190 msgid "Hotel" msgstr "Hotel" #: ../data/str.xml.in.h:191 msgid "School" msgstr "Escola" #: ../data/str.xml.in.h:192 msgid "Factory" msgstr "Fàbrica" #: ../data/str.xml.in.h:193 msgid "Rat" msgstr "Rata" #: ../data/str.xml.in.h:194 msgid "Mouse" msgstr "Ratolí" #: ../data/str.xml.in.h:195 msgid "Cow" msgstr "Vaca" #: ../data/str.xml.in.h:196 msgid "Tiger" msgstr "Tigre" #: ../data/str.xml.in.h:197 msgid "Leopard" msgstr "Lleopard" #: ../data/str.xml.in.h:198 msgid "Rabbit" msgstr "Conill" #: ../data/str.xml.in.h:199 msgid "Cat" msgstr "Gat" #: ../data/str.xml.in.h:200 msgid "Dragon" msgstr "Drac" #: ../data/str.xml.in.h:201 msgid "Crocodile" msgstr "Cocodril" #: ../data/str.xml.in.h:202 msgid "Whale" msgstr "Balena" #: ../data/str.xml.in.h:203 msgid "Snail" msgstr "Caragol" #: ../data/str.xml.in.h:204 msgid "Snake" msgstr "Serp" #: ../data/str.xml.in.h:205 msgid "Horse" msgstr "Cavall" #: ../data/str.xml.in.h:206 msgid "Sheep" msgstr "Ovella" #: ../data/str.xml.in.h:207 msgid "Goat" msgstr "Cabra" #: ../data/str.xml.in.h:208 msgid "Monkey" msgstr "Mono" #: ../data/str.xml.in.h:209 msgid "Chicken" msgstr "Pollastre" #: ../data/str.xml.in.h:210 msgid "Dog" msgstr "Gos" #: ../data/str.xml.in.h:211 msgid "Pig" msgstr "Porc" #: ../data/str.xml.in.h:212 msgid "Elephant" msgstr "Elefant" #: ../data/str.xml.in.h:213 msgid "Octopus" msgstr "Pop" #: ../data/str.xml.in.h:214 msgid "Spiral Shell" msgstr "Closca espiral" #: ../data/str.xml.in.h:215 msgid "Bug" msgstr "Insecte" #: ../data/str.xml.in.h:216 msgid "Ant" msgstr "Formiga" #: ../data/str.xml.in.h:217 msgid "Lady Beetle" msgstr "Marieta" #: ../data/str.xml.in.h:218 msgid "Fish" msgstr "Peix" #: ../data/str.xml.in.h:219 msgid "Tropical Fish" msgstr "Peix tropical" #: ../data/str.xml.in.h:220 msgid "Blowfish" msgstr "Peix globus" #: ../data/str.xml.in.h:221 msgid "Bird" msgstr "Ocell" #: ../data/str.xml.in.h:222 msgid "Penguin" msgstr "Pingüí" #: ../data/str.xml.in.h:223 msgid "Koala" msgstr "Coala" #: ../data/str.xml.in.h:224 msgid "Poodle" msgstr "Canitx" #: ../data/str.xml.in.h:225 msgid "Camel" msgstr "Camell" #: ../data/str.xml.in.h:226 msgid "Dolphin" msgstr "Dofí" #: ../data/str.xml.in.h:227 msgid "Frog" msgstr "Granota" #: ../data/str.xml.in.h:228 msgid "Hamster" msgstr "Hàmster" #: ../data/str.xml.in.h:229 msgid "Wolf" msgstr "Llop" #: ../data/str.xml.in.h:230 msgid "Bear" msgstr "Ós" #: ../data/str.xml.in.h:231 msgid "Panda" msgstr "Panda" #: ../data/str.xml.in.h:232 msgid "Eye" msgstr "Ull" #: ../data/str.xml.in.h:233 msgid "Ear" msgstr "Orella" #: ../data/str.xml.in.h:234 msgid "Nose" msgstr "Nas" #: ../data/str.xml.in.h:235 msgid "Mouth" msgstr "Boca" #: ../data/str.xml.in.h:236 msgid "Tongue" msgstr "Llengua" #: ../data/str.xml.in.h:237 msgid "Crown" msgstr "Corona" #: ../data/str.xml.in.h:238 msgid "Glasses" msgstr "Ulleres" #: ../data/str.xml.in.h:239 msgid "Necktie" msgstr "Corbata" #: ../data/str.xml.in.h:240 msgid "T-Shirt" msgstr "" #: ../data/str.xml.in.h:241 msgid "Jeans" msgstr "" #: ../data/str.xml.in.h:242 msgid "Dress" msgstr "" #: ../data/str.xml.in.h:243 msgid "Kimono" msgstr "Quimono" #: ../data/str.xml.in.h:244 msgid "Bikini" msgstr "Biquini" #: ../data/str.xml.in.h:245 msgid "Clothes" msgstr "" #: ../data/str.xml.in.h:246 msgid "Purse" msgstr "" #: ../data/str.xml.in.h:247 msgid "Handbag" msgstr "" #: ../data/str.xml.in.h:248 msgid "Pouch" msgstr "" #: ../data/str.xml.in.h:249 msgid "Shoe" msgstr "" #: ../data/str.xml.in.h:250 msgid "Footprint" msgstr "" #: ../data/str.xml.in.h:251 msgid "Account" msgstr "" #: ../data/str.xml.in.h:252 msgid "Boy" msgstr "Noi" #: ../data/str.xml.in.h:253 msgid "Girl" msgstr "Noia" #: ../data/str.xml.in.h:254 msgid "Man" msgstr "Home" #: ../data/str.xml.in.h:255 msgid "Woman" msgstr "Dona" #: ../data/str.xml.in.h:256 msgid "Family" msgstr "Família" #: ../data/str.xml.in.h:257 msgid "Restroom" msgstr "Lavabos" #: ../data/str.xml.in.h:258 msgid "Men" msgstr "Homes" #: ../data/str.xml.in.h:259 msgid "Women" msgstr "Dones" #: ../data/str.xml.in.h:260 msgid "Princess" msgstr "" #: ../data/str.xml.in.h:261 msgid "Japanese Ogre" msgstr "" #: ../data/str.xml.in.h:262 msgid "Japanese Goblin" msgstr "" #: ../data/str.xml.in.h:263 msgid "Ghost" msgstr "" #: ../data/str.xml.in.h:264 msgid "Baby Angel" msgstr "" #: ../data/str.xml.in.h:265 msgid "Extraterrestrial Alien" msgstr "" #: ../data/str.xml.in.h:266 msgid "Alien Monster" msgstr "" #: ../data/str.xml.in.h:267 msgid "IMP" msgstr "" #: ../data/str.xml.in.h:268 msgid "Skull" msgstr "" #: ../data/str.xml.in.h:269 msgid "Information Desk Person" msgstr "" #: ../data/str.xml.in.h:270 msgid "Guardsman" msgstr "" #: ../data/str.xml.in.h:271 msgid "Dancer" msgstr "" #: ../data/str.xml.in.h:272 msgid "Lipstick" msgstr "Barra de llavis" #: ../data/str.xml.in.h:273 msgid "Nail" msgstr "Ungla" #: ../data/str.xml.in.h:274 msgid "Face" msgstr "Cara" #: ../data/str.xml.in.h:275 msgid "Haircut" msgstr "Pentinat" #: ../data/str.xml.in.h:276 msgid "Syringe" msgstr "Xeringa" #: ../data/str.xml.in.h:277 msgid "Medicine" msgstr "Medicina" #: ../data/str.xml.in.h:278 msgid "Kiss" msgstr "Petó" #: ../data/str.xml.in.h:279 msgid "Love Letter" msgstr "" #: ../data/str.xml.in.h:280 msgid "Ring" msgstr "Anell" #: ../data/str.xml.in.h:281 msgid "Gem Stone" msgstr "" #: ../data/str.xml.in.h:282 msgid "Wedding" msgstr "" #: ../data/str.xml.in.h:283 msgid "Heart" msgstr "Cor" #: ../data/str.xml.in.h:284 msgid "Idea" msgstr "Idea" #: ../data/str.xml.in.h:285 msgid "Anger" msgstr "" #: ../data/str.xml.in.h:286 msgid "Bomb" msgstr "Bomba" #: ../data/str.xml.in.h:287 msgid "Sleeping" msgstr "" #: ../data/str.xml.in.h:288 msgid "Collision" msgstr "" #: ../data/str.xml.in.h:289 msgid "Sweat" msgstr "" #: ../data/str.xml.in.h:290 msgid "Droplet" msgstr "" #: ../data/str.xml.in.h:291 msgid "Dash" msgstr "" #: ../data/str.xml.in.h:292 msgid "Poo" msgstr "" #: ../data/str.xml.in.h:293 msgid "Muscle" msgstr "" #: ../data/str.xml.in.h:294 msgid "Dizzy" msgstr "" #: ../data/str.xml.in.h:295 msgid "Speech" msgstr "" #: ../data/str.xml.in.h:296 msgid "Thought" msgstr "" #: ../data/str.xml.in.h:297 msgid "Perfect Score" msgstr "" #: ../data/str.xml.in.h:298 msgid "Pushpin" msgstr "" #: ../data/str.xml.in.h:299 msgid "Clip" msgstr "" #: ../data/str.xml.in.h:300 msgid "Speaker" msgstr "" #: ../data/str.xml.in.h:301 msgid "Battery" msgstr "" #: ../data/str.xml.in.h:302 msgid "Plug" msgstr "" #: ../data/str.xml.in.h:303 msgid "Search" msgstr "" #: ../data/str.xml.in.h:304 msgid "Bookmark" msgstr "Punt de llibre" #: ../data/str.xml.in.h:305 msgid "Book" msgstr "Llibre" #: ../data/str.xml.in.h:306 msgid "Memo" msgstr "" #: ../data/str.xml.in.h:307 msgid "Mail" msgstr "Correu" #: ../data/str.xml.in.h:308 msgid "Mobile Phone" msgstr "Telèfon mòbil" #: ../data/str.xml.in.h:309 msgid "Camera" msgstr "Càmera" #: ../data/str.xml.in.h:310 msgid "Video" msgstr "Vídeo" #: ../data/str.xml.in.h:311 msgid "Television" msgstr "Televisió" #: ../data/str.xml.in.h:312 msgid "Radio" msgstr "Ràdio" #: ../data/str.xml.in.h:313 msgid "Key" msgstr "Clau" #: ../data/str.xml.in.h:314 msgid "Lock" msgstr "" #: ../data/str.xml.in.h:315 msgid "Fire" msgstr "Foc" #: ../data/str.xml.in.h:316 msgid "Wrench" msgstr "" #: ../data/str.xml.in.h:317 msgid "Hammer" msgstr "" #: ../data/str.xml.in.h:318 msgid "Bolt" msgstr "" #: ../data/str.xml.in.h:319 msgid "Hocho" msgstr "" #: ../data/str.xml.in.h:320 msgid "Pistol" msgstr "" #: ../data/str.xml.in.h:321 msgid "Microscope" msgstr "Microscopi" #: ../data/str.xml.in.h:322 msgid "Telescope" msgstr "Telescopi" #: ../data/str.xml.in.h:323 msgid "Crystal" msgstr "" #: ../data/str.xml.in.h:324 msgid "David Star" msgstr "Estrella de David" #: ../data/str.xml.in.h:325 msgid "Beginner" msgstr "" #: ../data/str.xml.in.h:326 msgid "Candle" msgstr "Espelma" #: ../data/str.xml.in.h:327 msgid "Hole" msgstr "" #: ../data/str.xml.in.h:328 msgid "Personal Computer" msgstr "Ordinador personal" #: ../data/str.xml.in.h:329 msgid "keyboard" msgstr "Teclat" #: ../data/str.xml.in.h:330 msgid "Printer" msgstr "Impressora" #: ../data/str.xml.in.h:331 msgid "Calculator" msgstr "Calculadora" #: ../data/str.xml.in.h:332 msgid "Minimize" msgstr "Minimitza" #: ../data/str.xml.in.h:333 msgid "Maximize" msgstr "Maximitza" #: ../data/str.xml.in.h:334 msgid "Refresh" msgstr "Refresca" #: ../data/str.xml.in.h:335 msgid "Close" msgstr "Tanca" #: ../data/str.xml.in.h:336 msgid "World" msgstr "Món" #: ../data/str.xml.in.h:337 msgid "Mt. Fuji" msgstr "Mt. Fuji" #: ../data/str.xml.in.h:338 msgid "Tokyo Tower" msgstr "Torre de Tòquio" #: ../data/str.xml.in.h:339 msgid "Japan" msgstr "Japó" #: ../data/str.xml.in.h:340 msgid "Anguish" msgstr "Angoixa" #: ../data/str.xml.in.h:341 msgid "Smile" msgstr "Somriure" #: ../data/str.xml.in.h:342 msgid "Smirk" msgstr "Somriure torçat" #: ../data/str.xml.in.h:343 msgid "Neutral" msgstr "Neutral" #: ../data/str.xml.in.h:344 msgid "Expressionless" msgstr "" #: ../data/str.xml.in.h:345 msgid "Unamused" msgstr "" #: ../data/str.xml.in.h:346 msgid "Pensive" msgstr "Pensatiu" #: ../data/str.xml.in.h:347 msgid "Confused" msgstr "Confós" #: ../data/str.xml.in.h:348 msgid "Confounded" msgstr "" #: ../data/str.xml.in.h:349 msgid "Disappointed" msgstr "Desacord" #: ../data/str.xml.in.h:350 msgid "Angry" msgstr "Enfadat" #: ../data/str.xml.in.h:351 msgid "Cry" msgstr "Plorar" #: ../data/str.xml.in.h:352 msgid "Sleeply" msgstr "" #: ../data/str.xml.in.h:353 msgid "Tired" msgstr "Cansat" #: ../data/str.xml.in.h:354 msgid "Surprise" msgstr "Sorprès" #: ../data/str.xml.in.h:355 msgid "Scream" msgstr "Cridar" #: ../data/str.xml.in.h:356 msgid "Flushed" msgstr "" #: ../data/str.xml.in.h:357 msgid "Medical Mask" msgstr "Màscara mèdica" #: ../data/str.xml.in.h:358 msgid "OK" msgstr "D'acord" #: ../data/str.xml.in.h:359 msgid "Bow" msgstr "" #: ../data/str.xml.in.h:360 msgid "See-No-Evil" msgstr "" #: ../data/str.xml.in.h:361 msgid "Hear-No-Evil" msgstr "" #: ../data/str.xml.in.h:362 msgid "Speak-No-Evil" msgstr "" #: ../data/str.xml.in.h:363 msgid "Banzai" msgstr "" #: ../data/str.xml.in.h:364 msgid "Pleading" msgstr "" #: ../data/str.xml.in.h:365 msgid "Smileys" msgstr "Emoticones" #: ../data/str.xml.in.h:366 msgid "Smile Big" msgstr "" #: ../data/str.xml.in.h:367 msgid "Sad" msgstr "Trist" #: ../data/str.xml.in.h:368 msgid "Wink" msgstr "Fer l'ullet" #: ../data/str.xml.in.h:369 msgid "Shock" msgstr "" #: ../data/str.xml.in.h:370 msgid "Kiss | Secret" msgstr "" #: ../data/str.xml.in.h:371 msgid "Glasses Cool | Eyeroll" msgstr "" #: ../data/str.xml.in.h:372 msgid "Glasses Cool" msgstr "" #: ../data/str.xml.in.h:373 msgid "Embarrassed" msgstr "Avergonyit" #: ../data/str.xml.in.h:374 msgid "Crying" msgstr "Plorant" #: ../data/str.xml.in.h:375 msgid "Thinking" msgstr "Pensant" #: ../data/str.xml.in.h:376 msgid "Don't Know" msgstr "No ho sé" #: ../data/str.xml.in.h:377 msgid "Party" msgstr "Festa" #: ../data/str.xml.in.h:378 msgid "Yawn" msgstr "" #: ../data/str.xml.in.h:379 msgid "Bunny" msgstr "" #: ../data/str.xml.in.h:380 msgid "Sick" msgstr "" #: ../data/str.xml.in.h:381 msgid "Devil" msgstr "Dimoni" #: ../data/str.xml.in.h:382 msgid "Angel" msgstr "Àngel" #: ../data/str.xml.in.h:383 msgid "Love" msgstr "Amor" #: ../data/str.xml.in.h:384 msgid "Love Over" msgstr "" #: ../data/str.xml.in.h:385 msgid "Film" msgstr "Film" #: ../data/str.xml.in.h:386 msgid "Clock" msgstr "Rellotge" #: ../data/str.xml.in.h:387 msgid "Coffee" msgstr "Cafè" #: ../data/str.xml.in.h:388 msgid "Phone" msgstr "Telèfon" #: ../data/str.xml.in.h:389 msgid "Hug Left" msgstr "" #: ../data/str.xml.in.h:390 msgid "Hug Right" msgstr "" #: ../data/str.xml.in.h:391 msgid "Yes" msgstr "Sí" #: ../data/str.xml.in.h:392 msgid "No" msgstr "No" #: ../data/str.xml.in.h:393 msgid "Shut Mouth" msgstr "" #: ../data/str.xml.in.h:394 msgid "Money Mouth" msgstr "" #: ../data/str.xml.in.h:395 msgid "Foot in Mouth" msgstr "" #: ../data/str.xml.in.h:396 msgid "Shout" msgstr "" #. http://ja.wikipedia.org/wiki/%E9%A1%94%E6%96%87%E5%AD%97 #: ../data/str.xml.in.h:398 msgid "Smileys (Japanese)" msgstr "Emoticones (japonès)" #: ../data/str.xml.in.h:399 msgid "Smoking" msgstr "Fumar" #: ../data/str.xml.in.h:400 msgid "Sorry" msgstr "" #: ../data/str.xml.in.h:401 msgid "Hug" msgstr "" #. http://ja.wikipedia.org/wiki/%E9%A1%94%E6%96%87%E5%AD%97 #: ../data/str.xml.in.h:403 msgid "Smileys (Japanese 2ch)" msgstr "Emoticones (japonès 2c)" #: ../data/str.xml.in.h:404 msgid "Hey" msgstr "" #. http://ja.wikipedia.org/wiki/%E9%A1%94%E6%96%87%E5%AD%97 #: ../data/str.xml.in.h:406 msgid "Smileys (Chinese)" msgstr "Emoticones (xinès)" #: ../data/str.xml.in.h:407 msgid "Crow" msgstr "" #. http://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88%E3%82%B9%E3%83%A9%E3%83%B3%E3%82%B0 #: ../data/str.xml.in.h:409 msgid "Acronym" msgstr "Acrònim" #: ../data/str.xml.in.h:410 msgid "Acronym (Computer)" msgstr "Acrònim (informàtica)" #. http://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88%E3%82%B9%E3%83%A9%E3%83%B3%E3%82%B0 #: ../data/str.xml.in.h:412 msgid "Acronym (Japanese)" msgstr "Acrònim (japonès)" #: ../data/str.xml.in.h:413 msgid "Do not want to read between lines (Aete Kuuki Wo Yomanai)" msgstr "No vull llegir entre línies (Aete Kuuki Wo Yomanai)" #: ../data/str.xml.in.h:414 msgid "Can't get together (Guda Guda)" msgstr "" #: ../data/str.xml.in.h:415 msgid "Say whatever one feels (Iitaidake)" msgstr "" #: ../data/str.xml.in.h:416 msgid "Excited (Kitakore)" msgstr "" #: ../data/str.xml.in.h:417 msgid "Detail (Kuwashiku)" msgstr "" #: ../data/str.xml.in.h:418 msgid "Cannot read between lines (Kuuki Ga Yomenai)" msgstr "" #: ../data/str.xml.in.h:419 msgid "Omission (Shouryaku)" msgstr "" #: ../data/str.xml.in.h:420 msgid "Excited (Waku Waku Teka Teka)" msgstr "" #: ../data/str.xml.in.h:421 msgid "Laugh" msgstr "" #: ../data/str.xml.in.h:422 msgid "Dude (Oi!)" msgstr "" #: ../data/str.xml.in.h:423 msgid "Good job (Otsukare)" msgstr "" #: ../data/str.xml.in.h:424 msgid "Want (Kure, E.g. pics クレメンス)" msgstr "" #: ../data/str.xml.in.h:425 msgid "ASCII art of a hand (✊, E.g. つAttention)" msgstr "" #: ../data/str.xml.in.h:426 msgid "In The Meantime (Toriaezu, Maa)" msgstr "" #: ../data/str.xml.in.h:427 msgid "Self-confidence (Aniki, E.g. tennis ニキ)" msgstr "" #: ../data/str.xml.in.h:428 msgid "Bye" msgstr "Adéu" #: ../data/str.xml.in.h:429 msgid "Want (Hattekure, E.g. pics ハラデイ)" msgstr "" #: ../data/str.xml.in.h:430 msgid "Exist as microparticles (Biryushi Level De Sonzaisuru)" msgstr "" #: ../data/str.xml.in.h:431 msgid "False Start (Flying Get)" msgstr "" #: ../data/str.xml.in.h:432 msgid "Fulfilling Life (Real life is Zyujitsu)" msgstr "" #: ../data/str.xml.in.h:433 msgid "Laugh (Warau)" msgstr "" #: ../data/str.xml.in.h:434 msgid "He (Yatsu <- Yashi)" msgstr "" #: ../data/w3c.xml.in.h:1 msgid "Char References" msgstr "Referències de caràcters" #: ../data/zh.xml.in.h:1 msgid "Chinese" msgstr "Xinès" #: ../data/zh.xml.in.h:4 ../input-pad/unicode_block.h:138 msgid "Bopomofo" msgstr "Bopomofo" #: ../input-pad/app-menu.ui.h:1 msgid "_File" msgstr "_Fitxer" #: ../input-pad/app-menu.ui.h:2 ../input-pad/dialog.ui.h:21 msgid "_Close" msgstr "_Tanca" #: ../input-pad/app-menu.ui.h:3 msgid "Close the program" msgstr "Tanca el programa" #: ../input-pad/app-menu.ui.h:4 msgid "_Pad" msgstr "C_oixinet" #: ../input-pad/app-menu.ui.h:5 msgid "_Code Point" msgstr "Posició del _codi" #: ../input-pad/app-menu.ui.h:6 msgid "_Show Pad" msgstr "Mo_stra el coixinet" #: ../input-pad/app-menu.ui.h:7 msgid "Show _All Characters" msgstr "Mostra tots els c_aràcters" #: ../input-pad/app-menu.ui.h:8 msgid "Show _Custom Characters" msgstr "Mostra els _caràcters personalitzats" #: ../input-pad/app-menu.ui.h:9 msgid "Show _Nothing" msgstr "No mostris res" #: ../input-pad/app-menu.ui.h:10 msgid "Show _Keyboard Layout" msgstr "Mostra la disposició de _teclat" #: ../input-pad/app-menu.ui.h:11 msgid "_Help" msgstr "A_juda" #: ../input-pad/app-menu.ui.h:12 msgid "_Troubleshoot" msgstr "_Soluciona els problemes" #: ../input-pad/app-menu.ui.h:13 msgid "_About" msgstr "_Quant a" #: ../input-pad/dialog.ui.h:1 msgid "Code Point Dialog" msgstr "Diàleg de la posició del codi" #: ../input-pad/dialog.ui.h:2 msgid "Unicode" msgstr "Unicode" #: ../input-pad/dialog.ui.h:3 msgid "You can choose encoding type" msgstr "Podeu triar el tipus de codificació" #: ../input-pad/dialog.ui.h:4 msgid "Current Encoding" msgstr "Codificació actual" #: ../input-pad/dialog.ui.h:5 msgid "Copy Buffer" msgstr "Copis la memòria intermèdia" #: ../input-pad/dialog.ui.h:6 msgid "Base 16\n" "Hex" msgstr "Base 16\n" "Hex" #: ../input-pad/dialog.ui.h:8 msgid "Set number case to hexadecimal" msgstr "Estableix les caselles del número al sistema de numeració hexadecimal" #: ../input-pad/dialog.ui.h:9 msgid "Base 10\n" "Dec" msgstr "Base 10\n" "Dec" #: ../input-pad/dialog.ui.h:11 msgid "Set number case to decimal" msgstr "Estableix les caselles del número al sistema de numeració decimal" #: ../input-pad/dialog.ui.h:12 msgid "Base 8\n" "Oct" msgstr "Base 8\n" "Oct" #: ../input-pad/dialog.ui.h:14 msgid "Set number case to octal" msgstr "Estableix les caselles del número al sistema de numeració octal" #: ../input-pad/dialog.ui.h:15 msgid "Base 2\n" "Bin" msgstr "Base 2\n" "Bin" #: ../input-pad/dialog.ui.h:17 msgid "Set number case to binary" msgstr "Estableix les caselles del número al sistema de numeració binari" #: ../input-pad/dialog.ui.h:18 msgid "Code Point:" msgstr "Posició del codi:" #: ../input-pad/dialog.ui.h:19 msgid "Character:" msgstr "Caràcter:" #: ../input-pad/dialog.ui.h:20 msgid "_Send" msgstr "En_via" #: ../input-pad/dialog.ui.h:22 msgid "Input Pad Troubleshoot" msgstr "Soluciona problemes del coixinet d'entada" #: ../input-pad/dialog.ui.h:24 #, no-c-format msgid "" "\n" "This application can be run either as a stand-alone program or under an " "input method application.\n" "If you wish to send multi-byte characters, this application needs to be run " "under an input method application.\n" "If you wish to send characters to X11 applications, those applications needs " "to allow send events. e.g.\n" "% xterm -xrm \"XTerm*allowSendEvents: true\"\n" "\n" "You also can copy pad files from /usr/share/input-pad/pad to $HOME/.config/" "pad to customize those in \"Custom Character\" pane." msgstr "" "\n" "Aquesta aplicació es pot executar com un programa independent o sota una " "aplicació de mètode d'entrada.\n" "Si voleu enviar caràcters de diversos bytes, aquesta aplicació s'ha " "d'executar sota una aplicació de mètode d'entrada.\n" "Si voleu enviar caràcters a les aplicacions d'X11, aquestes aplicacions han " "de deixar que s'enviïn esdeveniments. p. ex.\n" "% xterm -xrm \"XTerm*allowSendEvents: true\"\n" "\n" "També podeu copiar els fitxers de coixinet de /usr/share/input-pad/pad a " "$HOME/.config/pad per personalitzar-los al panell \"Caràcter personalitzat\"." "" #: ../input-pad/dialog.ui.h:31 msgid "_OK" msgstr "D'ac_ord" #: ../input-pad/dialog.ui.h:32 msgid "Configure Keyboard Layouts" msgstr "Configura les disposicions de teclat" #: ../input-pad/dialog.ui.h:33 msgid "A_vailable layouts:" msgstr "Disposicions disponibles:" #: ../input-pad/dialog.ui.h:34 msgid "_Add" msgstr "_Afegeix" #: ../input-pad/dialog.ui.h:35 msgid "_Layouts shown in the list:" msgstr "Disposicions mostrades en la _llista:" #: ../input-pad/dialog.ui.h:36 msgid "_Remove" msgstr "Sup_rimeix" #: ../input-pad/dialog.ui.h:37 msgid "_Options" msgstr "_Opcions" #: ../input-pad/dialog.ui.h:38 msgid "Configure Keyboard Options" msgstr "Configura les opcions del teclat" #: ../input-pad/dialog.ui.h:39 msgid "_Use the default keyboard option" msgstr "_Utilitza l'opció de teclat per defecte" #: ../input-pad/dialog.ui.h:40 msgid "Use the defualt XKB option" msgstr "_Utilitza l'opció d'XKB per defecte" #: ../input-pad/dialog.ui.h:41 msgid "Keyboard Option" msgstr "Opcions del teclat" #: ../input-pad/dialog.ui.h:43 msgid "The input pad is a tool to send a character on button." msgstr "" "El coixinet d'entrada és una eina per enviar un caràcter amb un clic de botó." "" #: ../input-pad/dialog.ui.h:44 msgid "translator_credits" msgstr "" "Jordi Mas Hernàndez \n" "Robert Antoni Buj i Gelonch " #: ../input-pad/eek-gtk.c:65 msgid "Use libeek to draw keyboard" msgstr "Utilitza libeek per dibuixar el teclat" #: ../input-pad/eek-gtk.c:237 msgid "eekboard layout" msgstr "Disposició eekboard" #: ../input-pad/eek-gtk.c:249 msgid "eekboard Options" msgstr "Opcions de l'eekboard" #: ../input-pad/eek-gtk.c:249 msgid "Show eekboard Options" msgstr "Mostra les opcions de l'eekboard" #: ../input-pad/unicode_block.h:37 msgid "Basic Latin" msgstr "Llatí bàsic" #: ../input-pad/unicode_block.h:40 msgid "Latin Extended-B" msgstr "Llatí ampliat-B" #: ../input-pad/unicode_block.h:41 msgid "IPA Extensions" msgstr "Extensions IPA" #: ../input-pad/unicode_block.h:42 msgid "Spacing Modifier Letters" msgstr "Lletres modificadores dels espais" #: ../input-pad/unicode_block.h:43 msgid "Combining Diacritical Marks" msgstr "Combinació de marques diacrítiques" #: ../input-pad/unicode_block.h:44 msgid "Greek and Coptic" msgstr "Símbols grecs i coptes" #: ../input-pad/unicode_block.h:45 msgid "Cyrillic" msgstr "Ciríl·lic" #: ../input-pad/unicode_block.h:46 msgid "Cyrillic Supplement" msgstr "Suplement ciríl·lic" #: ../input-pad/unicode_block.h:47 msgid "Armenian" msgstr "Armeni" #: ../input-pad/unicode_block.h:48 msgid "Hebrew" msgstr "Hebreu" #: ../input-pad/unicode_block.h:49 msgid "Arabic" msgstr "Àrab" #: ../input-pad/unicode_block.h:50 msgid "Syriac" msgstr "Siríac" #: ../input-pad/unicode_block.h:51 msgid "Arabic Supplement" msgstr "Suplement àrab" #: ../input-pad/unicode_block.h:52 msgid "Thaana" msgstr "Thaana" #: ../input-pad/unicode_block.h:53 msgid "NKo" msgstr "NKo" #: ../input-pad/unicode_block.h:54 msgid "Samaritan" msgstr "Samarità" #: ../input-pad/unicode_block.h:55 msgid "Devanagari" msgstr "Devanagari" #: ../input-pad/unicode_block.h:56 msgid "Bengali" msgstr "Bengalí" #: ../input-pad/unicode_block.h:57 msgid "Gurmukhi" msgstr "Gurmukhi" #: ../input-pad/unicode_block.h:58 msgid "Gujarati" msgstr "Gujarati" #: ../input-pad/unicode_block.h:59 msgid "Oriya" msgstr "Oriya" #: ../input-pad/unicode_block.h:60 msgid "Tamil" msgstr "Tàmil" #: ../input-pad/unicode_block.h:61 msgid "Telugu" msgstr "Telugu" #: ../input-pad/unicode_block.h:62 msgid "Kannada" msgstr "Kanarès" #: ../input-pad/unicode_block.h:63 msgid "Malayalam" msgstr "Malaiàlam" #: ../input-pad/unicode_block.h:64 msgid "Sinhala" msgstr "Singalès" #: ../input-pad/unicode_block.h:65 msgid "Thai" msgstr "Tai" #: ../input-pad/unicode_block.h:66 msgid "Lao" msgstr "Laosià" #: ../input-pad/unicode_block.h:67 msgid "Tibetan" msgstr "Tibetà" #: ../input-pad/unicode_block.h:68 msgid "Myanmar" msgstr "Myanmar" #: ../input-pad/unicode_block.h:69 msgid "Georgian" msgstr "Georgià" #: ../input-pad/unicode_block.h:70 msgid "Hangul Jamo" msgstr "Hangul jamo" #: ../input-pad/unicode_block.h:71 msgid "Ethiopic" msgstr "Etiòpic" #: ../input-pad/unicode_block.h:72 msgid "Ethiopic Supplement" msgstr "Suplement etíop" #: ../input-pad/unicode_block.h:73 msgid "Cherokee" msgstr "Cherokee" #: ../input-pad/unicode_block.h:74 msgid "Unified Canadian Aboriginal Syllabics" msgstr "Sil·làbics d'aborígens canadencs unificat" #: ../input-pad/unicode_block.h:75 msgid "Ogham" msgstr "Ogàmic" #: ../input-pad/unicode_block.h:76 msgid "Runic" msgstr "Rúnic" #: ../input-pad/unicode_block.h:77 msgid "Tagalog" msgstr "Tagal" #: ../input-pad/unicode_block.h:78 msgid "Hanunoo" msgstr "Hanunoo" #: ../input-pad/unicode_block.h:79 msgid "Buhid" msgstr "Bugui" #: ../input-pad/unicode_block.h:80 msgid "Tagbanwa" msgstr "Tagbanwa" #: ../input-pad/unicode_block.h:81 msgid "Khmer" msgstr "Khmer" #: ../input-pad/unicode_block.h:82 msgid "Mongolian" msgstr "Mongol" #: ../input-pad/unicode_block.h:83 msgid "Unified Canadian Aboriginal Syllabics Extended" msgstr "Sil·làbics d'aborígens canadencs unificat ampliat" #: ../input-pad/unicode_block.h:84 msgid "Limbu" msgstr "Limbu" #: ../input-pad/unicode_block.h:85 msgid "Tai Le" msgstr "Tai Le" #: ../input-pad/unicode_block.h:86 msgid "New Tai Lue" msgstr "Tai Lue nou" #: ../input-pad/unicode_block.h:87 msgid "Khmer Symbols" msgstr "Símbols khmer" #: ../input-pad/unicode_block.h:88 msgid "Buginese" msgstr "Bugui" #: ../input-pad/unicode_block.h:89 msgid "Tai Tham" msgstr "Tai Tham" #: ../input-pad/unicode_block.h:90 msgid "Balinese" msgstr "Balinès" #: ../input-pad/unicode_block.h:91 msgid "Sundanese" msgstr "Sundanès" #: ../input-pad/unicode_block.h:92 msgid "Lepcha" msgstr "Lepcha" #: ../input-pad/unicode_block.h:93 msgid "Ol Chiki" msgstr "Ol Chiki" #: ../input-pad/unicode_block.h:94 msgid "Vedic Extensions" msgstr "Extensions vedes" #: ../input-pad/unicode_block.h:95 msgid "Phonetic Extensions" msgstr "Extensions fonètiques" #: ../input-pad/unicode_block.h:96 msgid "Phonetic Extensions Supplement" msgstr "Suplement d'extensions fonètiques" #: ../input-pad/unicode_block.h:97 msgid "Combining Diacritical Marks Supplement" msgstr "Suplement de combinació de marques diacrítiques" #: ../input-pad/unicode_block.h:98 msgid "Latin Extended Additional" msgstr "Llatí ampliat addicional" #: ../input-pad/unicode_block.h:99 msgid "Greek Extended" msgstr "Grec ampliat" #: ../input-pad/unicode_block.h:100 msgid "General Punctuation" msgstr "Puntuació general" #: ../input-pad/unicode_block.h:101 msgid "Superscripts and Subscripts" msgstr "Superíndexs i subíndexs" #: ../input-pad/unicode_block.h:102 msgid "Currency Symbols" msgstr "Símbols de moneda" #: ../input-pad/unicode_block.h:103 msgid "Combining Diacritical Marks for Symbols" msgstr "Combinació de marques diacrítiques per a símbols" #: ../input-pad/unicode_block.h:104 msgid "Letterlike Symbols" msgstr "Símbols semblants a lletres" #: ../input-pad/unicode_block.h:105 msgid "Number Forms" msgstr "Formes de nombres" #: ../input-pad/unicode_block.h:106 msgid "Arrows" msgstr "Fletxes" #: ../input-pad/unicode_block.h:107 msgid "Mathematical Operators" msgstr "Operadors matemàtics" #: ../input-pad/unicode_block.h:108 msgid "Miscellaneous Technical" msgstr "Tècnics miscel·lanis" #: ../input-pad/unicode_block.h:109 msgid "Control Pictures" msgstr "Imatges de control" #: ../input-pad/unicode_block.h:110 msgid "Optical Character Recognition" msgstr "Reconeixement òptic de caràcters" #: ../input-pad/unicode_block.h:111 msgid "Enclosed Alphanumerics" msgstr "Alfanumèrics tancats" #: ../input-pad/unicode_block.h:113 msgid "Block Elements" msgstr "Elements de bloc" #: ../input-pad/unicode_block.h:114 msgid "Geometric Shapes" msgstr "Formes geomètriques" #: ../input-pad/unicode_block.h:115 msgid "Miscellaneous Symbols" msgstr "Símbols miscel·lanis" #: ../input-pad/unicode_block.h:117 msgid "Miscellaneous Mathematical Symbols-A" msgstr "Símbols matemàtics miscel·lanis - A" #: ../input-pad/unicode_block.h:118 msgid "Supplemental Arrows-A" msgstr "Fletxes suplementàries - A" #: ../input-pad/unicode_block.h:119 msgid "Braille Patterns" msgstr "Patrons Braille" #: ../input-pad/unicode_block.h:120 msgid "Supplemental Arrows-B" msgstr "Fletxes suplementàries - B" #: ../input-pad/unicode_block.h:121 msgid "Miscellaneous Mathematical Symbols-B" msgstr "Símbols matemàtics miscel·lanis - B" #: ../input-pad/unicode_block.h:122 msgid "Supplemental Mathematical Operators" msgstr "Operadors matemàtics suplementaris" #: ../input-pad/unicode_block.h:123 msgid "Miscellaneous Symbols and Arrows" msgstr "Fletxes i símbols miscel·lanis" #: ../input-pad/unicode_block.h:124 msgid "Glagolitic" msgstr "Glagolític" #: ../input-pad/unicode_block.h:125 msgid "Latin Extended-C" msgstr "Llatí ampliat-C" #: ../input-pad/unicode_block.h:126 msgid "Coptic" msgstr "Copte" #: ../input-pad/unicode_block.h:127 msgid "Georgian Supplement" msgstr "Suplement georgià" #: ../input-pad/unicode_block.h:128 msgid "Tifinagh" msgstr "Tifinagh" #: ../input-pad/unicode_block.h:129 msgid "Ethiopic Extended" msgstr "Etíop ampliat" #: ../input-pad/unicode_block.h:130 msgid "Cyrillic Extended-A" msgstr "Ciríl·lic ampliat-A" #: ../input-pad/unicode_block.h:131 msgid "Supplemental Punctuation" msgstr "Puntuació suplementària" #: ../input-pad/unicode_block.h:133 msgid "Kangxi Radicals" msgstr "Radicals kangxi" #: ../input-pad/unicode_block.h:134 msgid "Ideographic Description Characters" msgstr "Caràcters de descripció basats en ideogrames" #: ../input-pad/unicode_block.h:135 msgid "CJK Symbols and Punctuation" msgstr "Símbols i puntuació CJK" #: ../input-pad/unicode_block.h:139 msgid "Hangul Compatibility Jamo" msgstr "Jamo amb compatibilitat hangul" #: ../input-pad/unicode_block.h:140 msgid "Kanbun" msgstr "Kanbun" #: ../input-pad/unicode_block.h:141 msgid "Bopomofo Extended" msgstr "Bopomofo ampliat" #: ../input-pad/unicode_block.h:142 msgid "CJK Strokes" msgstr "Traços CJK" #: ../input-pad/unicode_block.h:143 msgid "Katakana Phonetic Extensions" msgstr "Extensions fonètiques katakana" #: ../input-pad/unicode_block.h:144 msgid "Enclosed CJK Letters and Months" msgstr "Mesos i lletres CJK tancats" #: ../input-pad/unicode_block.h:146 msgid "CJK Unified Ideographs Extension A" msgstr "Extensió A d'ideogrames unificats CJK" #: ../input-pad/unicode_block.h:147 msgid "Yijing Hexagram Symbols" msgstr "Símbols hexagrames yijing" #: ../input-pad/unicode_block.h:148 msgid "CJK Unified Ideographs" msgstr "Ideogrames unificats CJK" #: ../input-pad/unicode_block.h:149 msgid "Yi Syllables" msgstr "Síl·labes yi" #: ../input-pad/unicode_block.h:150 msgid "Yi Radicals" msgstr "Radicals Yi" #: ../input-pad/unicode_block.h:151 msgid "Lisu" msgstr "Lisu" #: ../input-pad/unicode_block.h:152 msgid "Vai" msgstr "Vai" #: ../input-pad/unicode_block.h:153 msgid "Cyrillic Extended-B" msgstr "Ciríl·lic ampliat-B" #: ../input-pad/unicode_block.h:154 msgid "Bamum" msgstr "Bamum" #: ../input-pad/unicode_block.h:155 msgid "Modifier Tone Letters" msgstr "Lletres modificadores del to" #: ../input-pad/unicode_block.h:156 msgid "Latin Extended-D" msgstr "Llatí ampliat-D" #: ../input-pad/unicode_block.h:157 msgid "Syloti Nagri" msgstr "Syloti nagri" #: ../input-pad/unicode_block.h:158 msgid "Common Indic Number Forms" msgstr "Formes numèriques comunes índies" #: ../input-pad/unicode_block.h:159 msgid "Phags-pa" msgstr "Phags-pa" #: ../input-pad/unicode_block.h:160 msgid "Saurashtra" msgstr "Saurashtra" #: ../input-pad/unicode_block.h:161 msgid "Devanagari Extended" msgstr "Devanagari ampliat" #: ../input-pad/unicode_block.h:162 msgid "Kayah Li" msgstr "Kayah Li" #: ../input-pad/unicode_block.h:163 msgid "Rejang" msgstr "Rejang" #: ../input-pad/unicode_block.h:164 msgid "Hangul Jamo Extended-A" msgstr "Hangul jamo ampliat-A" #: ../input-pad/unicode_block.h:165 msgid "Javanese" msgstr "Javanès" #: ../input-pad/unicode_block.h:166 msgid "Cham" msgstr "Cham" #: ../input-pad/unicode_block.h:167 msgid "Myanmar Extended-A" msgstr "Myanmar ampliat-A" #: ../input-pad/unicode_block.h:168 msgid "Tai Viet" msgstr "Tai Viet" #: ../input-pad/unicode_block.h:169 msgid "Meetei Mayek" msgstr "Meetei Mayek" #: ../input-pad/unicode_block.h:170 msgid "Hangul Syllables" msgstr "Síl·labes hangul" #: ../input-pad/unicode_block.h:171 msgid "Hangul Jamo Extended-B" msgstr "Hangul jamo ampliat-B" #: ../input-pad/unicode_block.h:172 msgid "High Surrogates" msgstr "Succedanis alts" #: ../input-pad/unicode_block.h:173 msgid "High Private Use Surrogates" msgstr "Succedanis alts d'ús privat" #: ../input-pad/unicode_block.h:174 msgid "Low Surrogates" msgstr "Succedanis baixos" #: ../input-pad/unicode_block.h:175 msgid "Private Use Area" msgstr "Àrea d'ús privat" #: ../input-pad/unicode_block.h:176 msgid "CJK Compatibility Ideographs" msgstr "Ideogrames de compatibilitat CJK" #: ../input-pad/unicode_block.h:177 msgid "Alphabetic Presentation Forms" msgstr "Formes de presentació alfabètica" #: ../input-pad/unicode_block.h:178 msgid "Arabic Presentation Forms-A" msgstr "Formes de presentació àrab - A" #: ../input-pad/unicode_block.h:179 msgid "Variation Selectors" msgstr "Selectors de variació" #: ../input-pad/unicode_block.h:180 msgid "Vertical Forms" msgstr "Formes verticals" #: ../input-pad/unicode_block.h:181 msgid "Combining Half Marks" msgstr "Combinació de mitges marques" #: ../input-pad/unicode_block.h:182 msgid "CJK Compatibility Forms" msgstr "Formes de compatibilitat CJK" #: ../input-pad/unicode_block.h:183 msgid "Small Form Variants" msgstr "Variants de formes petites" #: ../input-pad/unicode_block.h:184 msgid "Arabic Presentation Forms-B" msgstr "Formes de presentació àrab - B" #: ../input-pad/unicode_block.h:185 msgid "Halfwidth and Fullwidth Forms" msgstr "Formes d'amplada mitjana i completa" #: ../input-pad/unicode_block.h:186 msgid "Specials" msgstr "Especials" #: ../input-pad/unicode_block.h:187 msgid "Linear B Syllabary" msgstr "Conjunt de síl·labes lineal B" #: ../input-pad/unicode_block.h:188 msgid "Linear B Ideograms" msgstr "Ideogrames B lineals" #: ../input-pad/unicode_block.h:189 msgid "Aegean Numbers" msgstr "Nombres egeus" #: ../input-pad/unicode_block.h:190 msgid "Ancient Greek Numbers" msgstr "Nombres grecs antics" #: ../input-pad/unicode_block.h:191 msgid "Ancient Symbols" msgstr "Símbols antics" #: ../input-pad/unicode_block.h:192 msgid "Phaistos Disc" msgstr "Disc de Phaistos" #: ../input-pad/unicode_block.h:193 msgid "Lycian" msgstr "Lici" #: ../input-pad/unicode_block.h:194 msgid "Carian" msgstr "Cari" #: ../input-pad/unicode_block.h:195 msgid "Old Italic" msgstr "Cursiva antiga" #: ../input-pad/unicode_block.h:197 msgid "Ugaritic" msgstr "Ugarític" #: ../input-pad/unicode_block.h:198 msgid "Old Persian" msgstr "Persa antic" #: ../input-pad/unicode_block.h:199 msgid "Deseret" msgstr "Deseret" #: ../input-pad/unicode_block.h:201 msgid "Osmanya" msgstr "Osmanya" #: ../input-pad/unicode_block.h:202 msgid "Cypriot Syllabary" msgstr "Conjunt de síl·labes xipriotes" #: ../input-pad/unicode_block.h:203 msgid "Imperial Aramaic" msgstr "Arameu imperial" #: ../input-pad/unicode_block.h:204 msgid "Phoenician" msgstr "Fenici" #: ../input-pad/unicode_block.h:205 msgid "Lydian" msgstr "Lidi" #: ../input-pad/unicode_block.h:206 msgid "Kharoshthi" msgstr "Kharoshthi" #: ../input-pad/unicode_block.h:207 msgid "Old South Arabian" msgstr "Àrab del sud antic" #: ../input-pad/unicode_block.h:208 msgid "Avestan" msgstr "Avèstic" #: ../input-pad/unicode_block.h:209 msgid "Inscriptional Parthian" msgstr "Inscripcions Parthian" #: ../input-pad/unicode_block.h:210 msgid "Inscriptional Pahlavi" msgstr "Inscripcions Pahlavi" #: ../input-pad/unicode_block.h:211 msgid "Old Turkic" msgstr "Turc antic" #: ../input-pad/unicode_block.h:212 msgid "Rumi Numeral Symbols" msgstr "Símbols numèrics rumi" #: ../input-pad/unicode_block.h:213 msgid "Kaithi" msgstr "Kaithi" #: ../input-pad/unicode_block.h:214 msgid "Cuneiform" msgstr "Cuneïforme" #: ../input-pad/unicode_block.h:215 msgid "Cuneiform Numbers and Punctuation" msgstr "Nombres i puntuació coniforme" #: ../input-pad/unicode_block.h:216 msgid "Egyptian Hieroglyphs" msgstr "Jeroglífics egipcis" #: ../input-pad/unicode_block.h:217 msgid "Byzantine Musical Symbols" msgstr "Símbols musicals bizantins" #: ../input-pad/unicode_block.h:218 msgid "Musical Symbols" msgstr "Símbols musicals" #: ../input-pad/unicode_block.h:219 msgid "Ancient Greek Musical Notation" msgstr "Notació musical grega antiga" #: ../input-pad/unicode_block.h:220 msgid "Tai Xuan Jing Symbols" msgstr "Símbols tai xuan jing" #: ../input-pad/unicode_block.h:221 msgid "Counting Rod Numerals" msgstr "Palets xinesos per comptar" #: ../input-pad/unicode_block.h:222 msgid "Mathematical Alphanumeric Symbols" msgstr "Símbols matemàtics alfanumèrics" #: ../input-pad/unicode_block.h:223 msgid "Mahjong Tiles" msgstr "Fitxes del Mahjong" #: ../input-pad/unicode_block.h:224 msgid "Domino Tiles" msgstr "Fitxes del dòmino" #: ../input-pad/unicode_block.h:225 msgid "Enclosed Alphanumeric Supplement" msgstr "Suplement alfanumèric tancat" #: ../input-pad/unicode_block.h:226 msgid "Enclosed Ideographic Supplement" msgstr "Suplement ideogràfic tancat" #: ../input-pad/unicode_block.h:227 msgid "CJK Unified Ideographs Extension B" msgstr "Extensió B dels ideogrames unificats CJK" #: ../input-pad/unicode_block.h:228 msgid "CJK Unified Ideographs Extension C" msgstr "Extensió C d'ideogrames unificats CJK" #: ../input-pad/unicode_block.h:229 msgid "CJK Compatibility Ideographs Supplement" msgstr "Suplement dels ideogrames de compatibilitat CJK" #: ../input-pad/unicode_block.h:230 msgid "Tags" msgstr "Etiquetes" #: ../input-pad/unicode_block.h:231 msgid "Variation Selectors Supplement" msgstr "Suplement de selectors de variació" #: ../input-pad/unicode_block.h:232 msgid "Supplementary Private Use Area-A" msgstr "Àrea A d'ús privat suplementari" #: ../input-pad/unicode_block.h:233 msgid "Supplementary Private Use Area-B" msgstr "Àrea B d'ús privat suplementari" #: ../input-pad/window-gtk.c:203 msgid "Display version" msgstr "Mostra la versió" #. Translators: the word 'KBDUI' is not translated. #: ../input-pad/window-gtk.c:206 msgid "Use KBDUI to draw keyboard" msgstr "Utilitza KBDUI per dibuixar el teclat" #. Translators: the word 'TYPE' is not translated. #: ../input-pad/window-gtk.c:209 msgid "Use TYPE of char table. The available TYPE=0, 1, 2" msgstr "" "Utilitza el TYPE de la taula de caràcters. Els valors disponibles són TYPE=" "0, 1, 2" #. Translators: the word 'TYPE' is not translated. #: ../input-pad/window-gtk.c:212 msgid "Use TYPE of keyboard layout. The available TYPE=0, 1" msgstr "" "Utilitza el TYPE de la disposició de teclat. Els valors disponibles són TYPE=" "0, 1" #: ../input-pad/window-gtk.c:219 msgid "Use XTEST module to send key events" msgstr "Utilitza el mòdul XTEST per enviar esdeveniments de tecla" #: ../input-pad/window-gtk.c:224 msgid "Use XSendEvent to send key events" msgstr "Utilitza XSendEvent per enviar esdeveniments de tecla" #: ../input-pad/window-gtk.c:1172 msgid "Fold layout" msgstr "Replega la disposició" #: ../input-pad/window-gtk.c:1177 ../input-pad/window-gtk.c:2610 msgid "Extend layout" msgstr "Desplega la disposició" #: ../input-pad/window-gtk.c:2824 msgid "Layout" msgstr "Disposició" #: ../input-pad/window-gtk.c:3095 msgid "_Layout:" msgstr "_Disposició:" #: ../input-pad/window-gtk.c:3125 msgid "_Configure Layouts" msgstr "_Configura les disposicions" #. No longer used in gtk 2.20 #. gchar *license1, *license2, *license3; #. license1 = _("" #. "This library is free software; you can redistribute it and/or " #. "modify it under the terms of the GNU Lesser General Public " #. "License as published by the Free Software Foundation; either " #. "version 2 of the License, or (at your option) any later version."); #. #. license2 = _("" #. "This library is distributed in the hope that it will be useful, " #. "but WITHOUT ANY WARRANTY; without even the implied warranty of " #. "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU " #. "Lesser General Public License for more details."); #. #. license3 = _("" #. "You should have received a copy of the GNU Lesser General Public " #. "License along with this library; if not, write to the Free Software " #. "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, " #. "MA 02110-1301 USA"); #. #. license = g_strdup_printf ("%s\n\n%s\n\n%s", #. license1, license2, license3); #. #. This format has been used since gtk 2.20. #: ../input-pad/window-gtk.c:3164 #, c-format msgid "This program comes with ABSOLUTELY NO WARRANTY; for details, visit %s" msgstr "" "Aquest programa SOBRETOT NO INCLOU CAP GARANTIA; per a més detalls, visiteu " "%s" #: ../input-pad/window-gtk.c:3446 msgid "Group" msgstr "Grup" #: ../input-pad/window-gtk.c:3454 msgid "Subgroup" msgstr "Subgroup" input-pad-1.1.0/po/eu.po000066400000000000000000002162141476727667600150430ustar00rootroot00000000000000# Basque translations for input-pad # Copyright (C) 2010-2016 Takao Fujiwara # This file is distributed under the same license as the input-pad package. # # Translators: # Asier Iturralde Sarasola , 2012. msgid "" msgstr "" "Project-Id-Version: input-pad HEAD\n" "Report-Msgid-Bugs-To: http://code.google.com/p/input-pad/issues/list\n" "POT-Creation-Date: 2016-03-02 18:45+0900\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2012-08-10 04:18-0400\n" "Last-Translator: Asier Iturralde Sarasola \n" "Language-Team: Basque (http://www.transifex.com/projects/p/fedora/language/" "eu/)\n" "Language: eu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Zanata 3.8.2\n" #: ../data/alphabet.xml.in.in.h:1 msgid "Alphabets" msgstr "Alfabetoak" #: ../data/base.xml.in.h:1 msgid "Symbols" msgstr "" #: ../data/base.xml.in.h:2 msgid "Currency" msgstr "" #: ../data/base.xml.in.h:3 msgid "Letterlike" msgstr "" #: ../data/base.xml.in.h:4 msgid "Miscellaneous" msgstr "" #: ../data/base.xml.in.h:5 ../input-pad/unicode_block.h:116 msgid "Dingbats" msgstr "" #. Translators: Superscripts and Subscripts #: ../data/base.xml.in.h:7 msgid "Super and Sub" msgstr "" #: ../data/base.xml.in.h:8 msgid "Bold" msgstr "Lodia" #: ../data/base.xml.in.h:9 msgid "Italic" msgstr "Etzana" #: ../data/base.xml.in.h:10 msgid "Script" msgstr "" #: ../data/base.xml.in.h:11 msgid "Double Struck" msgstr "" #: ../data/base.xml.in.h:12 msgid "All" msgstr "Guztia" #: ../data/base.xml.in.h:13 ../data/zh.xml.in.h:2 msgid "Numbers" msgstr "Zenbakiak" #: ../data/base.xml.in.h:14 msgid "Roman" msgstr "" #: ../data/base.xml.in.h:15 msgid "Enclosed" msgstr "" #: ../data/base.xml.in.h:16 msgid "Fraction" msgstr "" #: ../data/base.xml.in.h:17 msgid "Technical" msgstr "" #: ../data/base.xml.in.h:18 msgid "Unit" msgstr "" #: ../data/base.xml.in.h:19 msgid "Mathematical" msgstr "" #: ../data/base.xml.in.h:20 msgid "Controls" msgstr "" #: ../data/base.xml.in.h:21 msgid "OCR" msgstr "OCR" #: ../data/base.xml.in.h:22 msgid "Graphics" msgstr "Grafikoak" #: ../data/base.xml.in.h:23 msgid "Arrow" msgstr "Gezia" #: ../data/base.xml.in.h:24 ../input-pad/unicode_block.h:112 msgid "Box Drawing" msgstr "" #: ../data/base.xml.in.h:25 ../input-pad/window-gtk.c:3685 msgid "Block" msgstr "" #: ../data/base.xml.in.h:26 msgid "Geometric" msgstr "" #: ../data/base.xml.in.h:27 msgid "Braille" msgstr "" #: ../data/base.xml.in.h:28 msgid "Punctuations" msgstr "" #: ../data/base.xml.in.h:29 msgid "General" msgstr "Orokorra" #: ../data/base.xml.in.h:30 msgid "CJK" msgstr "" #: ../data/base.xml.in.h:31 ../input-pad/unicode_block.h:145 msgid "CJK Compatibility" msgstr "" #: ../data/base.xml.in.h:32 msgid "Small Form" msgstr "" #: ../data/cmd.xml.in.h:1 msgid "Command" msgstr "Komandoa" #: ../data/cmd.xml.in.h:2 msgid "Date" msgstr "Data" #: ../data/cmd.xml.in.h:3 msgid "Normal Date" msgstr "Data normala" #: ../data/cmd.xml.in.h:4 msgid "Date and Time" msgstr "Data eta ordua" #: ../data/cmd.xml.in.h:5 msgid "ChangeLog date" msgstr "" #: ../data/cmd.xml.in.h:6 msgid "USA English date" msgstr "" #: ../data/cmd.xml.in.h:7 msgid "UK English date" msgstr "" #: ../data/cmd.xml.in.h:8 msgid "ISO 8601 date" msgstr "ISO 8601 data" #: ../data/cmd.xml.in.h:9 msgid "Era" msgstr "" #: ../data/cmd.xml.in.h:10 msgid "Century Year" msgstr "" #: ../data/cmd.xml.in.h:11 msgid "Normal Time" msgstr "Ordu normala" #: ../data/cmd.xml.in.h:12 msgid "English Time" msgstr "Ordua ingelesez" #: ../data/cmd.xml.in.h:13 msgid "Month" msgstr "Hilabetea" #: ../data/cmd.xml.in.h:14 msgid "English Month" msgstr "Hilabetea ingelesez" #: ../data/cmd.xml.in.h:15 msgid "Short Month" msgstr "Hilabetearen laburdura" #: ../data/cmd.xml.in.h:16 msgid "English Short Month" msgstr "Hilabetearen laburdura ingelesez" #: ../data/cmd.xml.in.h:17 msgid "Weekday" msgstr "Asteguna" #: ../data/cmd.xml.in.h:18 msgid "English Weekday" msgstr "Asteguna ingelesez" #: ../data/cmd.xml.in.h:19 msgid "Short Weekday" msgstr "Astegunaren laburdura" #: ../data/cmd.xml.in.h:20 msgid "English Short Weekday" msgstr "Astegunaren laburdura ingelesez" #: ../data/goth.xml.in.h:1 ../input-pad/unicode_block.h:196 msgid "Gothic" msgstr "" #: ../data/input-pad.desktop.in.h:1 ../input-pad/dialog.ui.h:42 #: ../input-pad/window-gtk.c:5084 ../input-pad/window-gtk.c:5085 #: ../input-pad/window-gtk.ui.h:1 msgid "Input Pad" msgstr "" #. "IPA" stands for "International Phonetic Alphabet" #: ../data/ipa-obsolete.xml.in.h:2 msgid "IPA (Obsolete)" msgstr "IPA (Zaharkitua)" #: ../data/ipa-obsolete.xml.in.h:3 ../data/ipa.xml.in.h:6 msgid "Open back unrounded vowel" msgstr "" #: ../data/ipa-obsolete.xml.in.h:4 msgid "Palatalized voiced bilabial plosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:5 msgid "Voiceless palatal implosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:6 ../data/ipa.xml.in.h:138 msgid "Alveolar click" msgstr "" #: ../data/ipa-obsolete.xml.in.h:7 msgid "Palatalized voiced alveolar plosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:8 ../data/ipa.xml.in.h:25 msgid "Voiced alveolar affricate" msgstr "" #: ../data/ipa-obsolete.xml.in.h:9 ../data/ipa.xml.in.h:27 msgid "Voiced alveopalatal affricate" msgstr "" #: ../data/ipa-obsolete.xml.in.h:10 ../data/ipa.xml.in.h:26 msgid "Voiced palato-alveolar affricate" msgstr "" #: ../data/ipa-obsolete.xml.in.h:11 msgid "Palatalized voiceless labiodental fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:12 msgid "Palatalized voiced velar plosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:13 msgid "Palatalized voiceless velar plosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:14 msgid "Voiceless velar implosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:15 msgid "Palatalized alveolar lateral approximant" msgstr "" #: ../data/ipa-obsolete.xml.in.h:16 msgid "Palatalized bilabial nasal" msgstr "" #: ../data/ipa-obsolete.xml.in.h:17 msgid "Palatalized alveolar nasal" msgstr "" #: ../data/ipa-obsolete.xml.in.h:18 msgid "Syllabic alveolar nasal" msgstr "" #: ../data/ipa-obsolete.xml.in.h:19 msgid "Palatalized voiceless bilabial plosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:20 msgid "Voiceless bilabial implosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:21 msgid "Palatalized alveolar trill" msgstr "" #: ../data/ipa-obsolete.xml.in.h:22 msgid "Voiced strident apico-alveolar trill" msgstr "" #: ../data/ipa-obsolete.xml.in.h:23 msgid "Palatalized voiceless alveolar fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:24 ../data/ipa.xml.in.h:19 msgid "Voiceless alveopalatal fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:25 msgid "Labialized voiceless palato-alveolar fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:26 ../data/ipa.xml.in.h:103 msgid "Voiceless alveopalatal affricate" msgstr "" #: ../data/ipa-obsolete.xml.in.h:27 ../data/ipa.xml.in.h:101 msgid "Voiceless alveolar affricate" msgstr "" #: ../data/ipa-obsolete.xml.in.h:28 ../data/ipa.xml.in.h:102 msgid "Voiceless palato-alveolar affricate" msgstr "" #: ../data/ipa-obsolete.xml.in.h:29 msgid "Palatalized voiceless alveolar plosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:30 msgid "Voiceless alveolar implosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:31 ../data/ipa.xml.in.h:137 msgid "Dental click" msgstr "" #: ../data/ipa-obsolete.xml.in.h:32 msgid "Voiceless uvular implosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:33 msgid "Palatalized voiced labiodental fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:34 msgid "Palatalized voiceless velar fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:35 msgid "Palatalized voiced alveolar fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:36 msgid "Labialized voiced palato-alveolar fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:37 ../data/ipa.xml.in.h:128 msgid "Voiced alveopalatal fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:38 ../data/ipa.xml.in.h:106 msgid "Near-close near-back vowel" msgstr "" #: ../data/ipa-obsolete.xml.in.h:39 ../data/ipa.xml.in.h:140 msgid "Alveolar lateral click" msgstr "" #: ../data/ipa-obsolete.xml.in.h:40 msgid "Labialized voiceless alveolar or dental fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:41 msgid "Labialized voiced alveolar or dental fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:42 msgid "Combining labialization mark" msgstr "" #: ../data/ipa-obsolete.xml.in.h:43 msgid "Combining palatalization mark" msgstr "" #. "IPA" stands for "International Phonetic Alphabet" #: ../data/ipa-unofficial.xml.in.h:2 msgid "IPA (Unofficial)" msgstr "IPA (ez-ofiziala)" #: ../data/ipa-unofficial.xml.in.h:3 msgid "Voiced labiodental plosive" msgstr "" #: ../data/ipa-unofficial.xml.in.h:4 ../data/ipa.xml.in.h:18 msgid "Voiceless palatal lateral affricate" msgstr "" #: ../data/ipa-unofficial.xml.in.h:5 msgid "Voiced retroflex implosive" msgstr "" #: ../data/ipa-unofficial.xml.in.h:6 ../data/ipa.xml.in.h:88 msgid "Alveolar flap" msgstr "" #: ../data/ipa-unofficial.xml.in.h:7 ../data/ipa.xml.in.h:125 msgid "Voiceless palatal lateral fricative" msgstr "" #: ../data/ipa-unofficial.xml.in.h:8 ../data/ipa.xml.in.h:91 msgid "Retroflex flap" msgstr "" #: ../data/ipa-unofficial.xml.in.h:9 msgid "Voiceless retroflex lateral fricative" msgstr "" #. "PUA" stands for "Private Use Area" #: ../data/ipa-unofficial.xml.in.h:11 msgid "Voiceless retroflex lateral fricative (PUA)" msgstr "" #: ../data/ipa-unofficial.xml.in.h:12 ../data/ipa.xml.in.h:59 msgid "Voiceless velar lateral affricate" msgstr "" #: ../data/ipa-unofficial.xml.in.h:13 ../data/ipa.xml.in.h:68 msgid "Voiceless velar lateral fricative" msgstr "" #: ../data/ipa-unofficial.xml.in.h:14 msgid "Epiglottal trill" msgstr "" #: ../data/ipa-unofficial.xml.in.h:15 msgid "Voiceless labiodental plosive" msgstr "" #: ../data/ipa-unofficial.xml.in.h:16 msgid "Voiceless retroflex lateral affricate" msgstr "" #. "PUA" stands for "Private Use Area" #: ../data/ipa-unofficial.xml.in.h:18 msgid "Voiceless retroflex lateral affricate (PUA)" msgstr "" #: ../data/ipa-unofficial.xml.in.h:19 msgid "Combining stridency mark" msgstr "" #. "PUA" stands for "Private Use Area" #: ../data/ipa-unofficial.xml.in.h:21 msgid "Combining stridency mark (PUA)" msgstr "" #. "IPA" stands for "International Phonetic Alphabet" #: ../data/ipa.xml.in.h:2 msgid "IPA" msgstr "IPA" #: ../data/ipa.xml.in.h:3 msgid "Open front unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:4 msgid "Open central unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:5 msgid "Near-open central vowel" msgstr "" #: ../data/ipa.xml.in.h:7 msgid "Open back rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:8 msgid "Open-mid back unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:9 msgid "Near-open front unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:10 msgid "Voiced bilabial plosive" msgstr "" #: ../data/ipa.xml.in.h:11 msgid "Voiced labiodental affricate" msgstr "" #: ../data/ipa.xml.in.h:12 msgid "Voiced bilabial implosive" msgstr "" #: ../data/ipa.xml.in.h:13 msgid "Bilabial trill" msgstr "" #: ../data/ipa.xml.in.h:14 msgid "Voiced bilabial fricative" msgstr "" #: ../data/ipa.xml.in.h:15 msgid "Voiceless palatal plosive" msgstr "" #: ../data/ipa.xml.in.h:16 msgid "Voiceless palatal fricative" msgstr "" #: ../data/ipa.xml.in.h:17 msgid "Voiceless palatal affricate" msgstr "" #: ../data/ipa.xml.in.h:20 msgid "Voiced alveolar plosive" msgstr "" #: ../data/ipa.xml.in.h:21 msgid "Voiced alveolar implosive" msgstr "" #: ../data/ipa.xml.in.h:22 msgid "Voiced retroflex plosive" msgstr "" #: ../data/ipa.xml.in.h:23 msgid "Voiced dental fricative" msgstr "" #: ../data/ipa.xml.in.h:24 msgid "Voiced alveolar lateral affricate" msgstr "" #: ../data/ipa.xml.in.h:28 msgid "Voiced retroflex affricate" msgstr "" #: ../data/ipa.xml.in.h:29 msgid "Close-mid front unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:30 msgid "Close-mid central unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:31 msgid "Mid-central vowel" msgstr "" #: ../data/ipa.xml.in.h:32 msgid "Rhotacized mid-central vowel" msgstr "" #: ../data/ipa.xml.in.h:33 msgid "Open-mid front unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:34 msgid "Open-mid central rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:35 msgid "Open-mid central unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:36 msgid "Rhotacized open-mid central unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:37 msgid "Voiceless labiodental fricative" msgstr "" #: ../data/ipa.xml.in.h:38 msgid "Velopharyngeal fricative" msgstr "" #: ../data/ipa.xml.in.h:39 msgid "Voiced velar plosive" msgstr "" #: ../data/ipa.xml.in.h:40 msgid "Voiced labial-velar plosive" msgstr "" #: ../data/ipa.xml.in.h:41 msgid "Voiced velar implosive" msgstr "" #: ../data/ipa.xml.in.h:42 msgid "Voiced uvular plosive" msgstr "" #: ../data/ipa.xml.in.h:43 msgid "Voiced uvular implosive" msgstr "" #: ../data/ipa.xml.in.h:44 msgid "Voiceless glottal fricative" msgstr "" #: ../data/ipa.xml.in.h:45 msgid "Voiced glottal fricative" msgstr "" #: ../data/ipa.xml.in.h:46 msgid "Voiceless pharyngeal fricative" msgstr "" #: ../data/ipa.xml.in.h:47 msgid "Voiceless coarticulated velar and palato-alveolar fricative" msgstr "" #: ../data/ipa.xml.in.h:48 msgid "Voiceless epiglottal fricative" msgstr "" #: ../data/ipa.xml.in.h:49 msgid "Close front unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:50 msgid "Near-close near-front unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:51 msgid "Near-close central unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:52 msgid "Close central unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:53 msgid "Palatal approximant" msgstr "" #: ../data/ipa.xml.in.h:54 msgid "Voiced palatal fricative" msgstr "" #: ../data/ipa.xml.in.h:55 msgid "Voiced palatal plosive" msgstr "" #: ../data/ipa.xml.in.h:56 msgid "Voiced palatal affricate" msgstr "" #: ../data/ipa.xml.in.h:57 msgid "Voiced palatal implosive" msgstr "" #: ../data/ipa.xml.in.h:58 msgid "Voiceless velar plosive" msgstr "" #: ../data/ipa.xml.in.h:60 msgid "Voiceless labial-velar plosive" msgstr "" #: ../data/ipa.xml.in.h:61 msgid "Voiceless velar affricate" msgstr "" #: ../data/ipa.xml.in.h:62 msgid "Alveolar lateral approximant" msgstr "" #: ../data/ipa.xml.in.h:63 msgid "Velarized alveolar lateral approximant" msgstr "" #: ../data/ipa.xml.in.h:64 msgid "Voiceless alveolar lateral fricative" msgstr "" #: ../data/ipa.xml.in.h:65 msgid "Retroflex lateral approximant" msgstr "" #: ../data/ipa.xml.in.h:66 msgid "Voiced alveolar lateral fricative" msgstr "" #: ../data/ipa.xml.in.h:67 msgid "Velar lateral approximant" msgstr "" #: ../data/ipa.xml.in.h:69 msgid "Bilabial nasal" msgstr "" #: ../data/ipa.xml.in.h:70 msgid "Labiodental nasal" msgstr "" #: ../data/ipa.xml.in.h:71 msgid "Alveolar nasal" msgstr "" #: ../data/ipa.xml.in.h:72 msgid "Velar nasal" msgstr "" #: ../data/ipa.xml.in.h:73 msgid "Labial-velar nasal" msgstr "" #: ../data/ipa.xml.in.h:74 msgid "Palatal nasal" msgstr "" #: ../data/ipa.xml.in.h:75 msgid "Retroflex nasal" msgstr "" #: ../data/ipa.xml.in.h:76 msgid "Uvular nasal" msgstr "" #: ../data/ipa.xml.in.h:77 msgid "Close-mid back rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:78 msgid "Close-mid front rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:79 msgid "Close-mid central rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:80 msgid "Open-mid front rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:81 msgid "Open front rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:82 msgid "Voiceless bilabial plosive" msgstr "" #: ../data/ipa.xml.in.h:83 msgid "Voiceless bilabial-labiodental affricate" msgstr "" #: ../data/ipa.xml.in.h:84 msgid "Voiceless bilabial affricate" msgstr "" #: ../data/ipa.xml.in.h:85 msgid "Voiceless labiodental affricate" msgstr "" #: ../data/ipa.xml.in.h:86 msgid "Voiceless uvular plosive" msgstr "" #: ../data/ipa.xml.in.h:87 msgid "Alveolar trill" msgstr "" #: ../data/ipa.xml.in.h:89 msgid "Alveolar lateral flap" msgstr "" #: ../data/ipa.xml.in.h:90 msgid "Uvular trill" msgstr "" #: ../data/ipa.xml.in.h:92 msgid "Alveolar approximant" msgstr "" #: ../data/ipa.xml.in.h:93 msgid "Retroflex approximant" msgstr "" #: ../data/ipa.xml.in.h:94 msgid "Voiced uvular fricative" msgstr "" #: ../data/ipa.xml.in.h:95 msgid "Voiceless alveolar fricative" msgstr "" #: ../data/ipa.xml.in.h:96 msgid "Voiceless palato-alveolar fricative" msgstr "" #: ../data/ipa.xml.in.h:97 msgid "Voiceless retroflex fricative" msgstr "" #: ../data/ipa.xml.in.h:98 msgid "Voiceless alveolar plosive" msgstr "" #: ../data/ipa.xml.in.h:99 msgid "Voiceless retroflex plosive" msgstr "" #: ../data/ipa.xml.in.h:100 msgid "Voiceless alveolar lateral affricate" msgstr "" #: ../data/ipa.xml.in.h:104 msgid "Voiceless retroflex affricate" msgstr "" #: ../data/ipa.xml.in.h:105 msgid "Close back rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:107 msgid "Near-close central vowel" msgstr "" #: ../data/ipa.xml.in.h:108 msgid "Close central rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:109 msgid "Labial-palatal approximant" msgstr "" #: ../data/ipa.xml.in.h:110 msgid "Close back unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:111 msgid "Voiced labiodental fricative" msgstr "" #: ../data/ipa.xml.in.h:112 msgid "Labiodental flap" msgstr "" #: ../data/ipa.xml.in.h:113 msgid "Labiodental approximant" msgstr "" #: ../data/ipa.xml.in.h:114 msgid "Voiced velar fricative" msgstr "" #: ../data/ipa.xml.in.h:115 msgid "Close-mid back unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:116 msgid "Voiced labiovelar approximant" msgstr "" #: ../data/ipa.xml.in.h:117 msgid "Voiceless labiovelar approximant" msgstr "" #: ../data/ipa.xml.in.h:118 msgid "Velar approximant" msgstr "" #: ../data/ipa.xml.in.h:119 msgid "Bilabial percussive" msgstr "" #: ../data/ipa.xml.in.h:120 msgid "Voiceless velar fricative" msgstr "" #: ../data/ipa.xml.in.h:121 msgid "Voiceless uvular fricative" msgstr "" #: ../data/ipa.xml.in.h:122 msgid "Close front rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:123 msgid "Near-close near-front rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:124 msgid "Palatal lateral approximant" msgstr "" #: ../data/ipa.xml.in.h:126 msgid "Voiced alveolar fricative" msgstr "" #: ../data/ipa.xml.in.h:127 msgid "Voiced palato-alveolar fricative" msgstr "" #: ../data/ipa.xml.in.h:129 msgid "Voiced retroflex fricative" msgstr "" #: ../data/ipa.xml.in.h:130 msgid "Voiceless dental fricative" msgstr "" #: ../data/ipa.xml.in.h:131 msgid "Voiceless bilabial fricative" msgstr "" #: ../data/ipa.xml.in.h:132 msgid "Glottal stop" msgstr "" #: ../data/ipa.xml.in.h:133 msgid "Epiglottal plosive" msgstr "" #: ../data/ipa.xml.in.h:134 msgid "Voiced pharyngeal fricative" msgstr "" #: ../data/ipa.xml.in.h:135 msgid "Voiced epiglottal fricative" msgstr "" #: ../data/ipa.xml.in.h:136 msgid "Bilabial click" msgstr "" #: ../data/ipa.xml.in.h:139 msgid "Palatal click" msgstr "" #: ../data/ipa.xml.in.h:141 msgid "Bidental percussive" msgstr "" #: ../data/ipa.xml.in.h:142 msgid "Aspiration mark" msgstr "" #: ../data/ipa.xml.in.h:143 msgid "Non-aspiration mark" msgstr "" #: ../data/ipa.xml.in.h:144 msgid "Breathy voice mark" msgstr "" #: ../data/ipa.xml.in.h:145 msgid "Palatalization mark" msgstr "" #: ../data/ipa.xml.in.h:146 msgid "Lateral release mark" msgstr "" #: ../data/ipa.xml.in.h:147 msgid "Bilabial nasal release mark" msgstr "" #: ../data/ipa.xml.in.h:148 msgid "Labiodental nasal release mark" msgstr "" #: ../data/ipa.xml.in.h:149 msgid "Alveolar nasal release mark" msgstr "" #: ../data/ipa.xml.in.h:150 msgid "Palatal nasal release mark" msgstr "" #: ../data/ipa.xml.in.h:151 msgid "Retroflex nasal release mark" msgstr "" #: ../data/ipa.xml.in.h:152 msgid "Uvular nasal release mark" msgstr "" #: ../data/ipa.xml.in.h:153 msgid "Labio-palatalization mark" msgstr "" #: ../data/ipa.xml.in.h:154 msgid "Labiodentalization mark" msgstr "" #: ../data/ipa.xml.in.h:155 msgid "Labialization mark" msgstr "" #: ../data/ipa.xml.in.h:156 msgid "Velarization mark" msgstr "" #: ../data/ipa.xml.in.h:157 msgid "Glottalization mark" msgstr "" #: ../data/ipa.xml.in.h:158 msgid "Pharyngealization mark" msgstr "" #: ../data/ipa.xml.in.h:159 msgid "Combining velarization/pharyngealization mark" msgstr "" #: ../data/ipa.xml.in.h:160 msgid "Combining laryngealization mark" msgstr "" #: ../data/ipa.xml.in.h:161 msgid "Combining retroflexion mark" msgstr "" #: ../data/ipa.xml.in.h:162 msgid "Ejection mark" msgstr "" #: ../data/ipa.xml.in.h:163 msgid "Rhotacization mark" msgstr "" #: ../data/ipa.xml.in.h:164 msgid "Combining dentalization mark" msgstr "" #: ../data/ipa.xml.in.h:165 msgid "Combining dentolabialization mark" msgstr "" #: ../data/ipa.xml.in.h:166 msgid "Combining alveolarization mark" msgstr "" #: ../data/ipa.xml.in.h:167 msgid "Combining linguolabialization mark" msgstr "" #: ../data/ipa.xml.in.h:168 msgid "Combining apicalization mark" msgstr "" #: ../data/ipa.xml.in.h:169 msgid "Combining laminalization mark" msgstr "" #: ../data/ipa.xml.in.h:170 msgid "Combining centralization mark" msgstr "" #: ../data/ipa.xml.in.h:171 msgid "Combining mid-centralization mark" msgstr "" #: ../data/ipa.xml.in.h:172 msgid "Combining nasalization mark" msgstr "" #: ../data/ipa.xml.in.h:173 msgid "Combining nasalization mark below" msgstr "" #: ../data/ipa.xml.in.h:174 msgid "Combining denasalization mark" msgstr "" #: ../data/ipa.xml.in.h:175 msgid "Combining nasal friction mark" msgstr "" #: ../data/ipa.xml.in.h:176 msgid "Combining velopharyngeal friction mark" msgstr "" #: ../data/ipa.xml.in.h:177 msgid "Combining voiced mark" msgstr "" #: ../data/ipa.xml.in.h:178 msgid "Combining voiceless mark" msgstr "" #: ../data/ipa.xml.in.h:179 msgid "Combining voiceless mark above" msgstr "" #: ../data/ipa.xml.in.h:180 msgid "Pre-voicing/post-voicing mark" msgstr "" #: ../data/ipa.xml.in.h:181 msgid "Combining breathy voice mark" msgstr "" #: ../data/ipa.xml.in.h:182 msgid "Combining unreleased stop mark" msgstr "" #: ../data/ipa.xml.in.h:183 msgid "Combining more rounded mark" msgstr "" #: ../data/ipa.xml.in.h:184 msgid "Combining less rounded mark" msgstr "" #: ../data/ipa.xml.in.h:185 msgid "Combining labial spreading mark" msgstr "" #: ../data/ipa.xml.in.h:186 msgid "Combining syllabic mark" msgstr "" #: ../data/ipa.xml.in.h:187 msgid "Combining syllabic mark above" msgstr "" #: ../data/ipa.xml.in.h:188 msgid "Combining non-syllabic mark" msgstr "" #: ../data/ipa.xml.in.h:189 msgid "Combining non-syllabic mark above" msgstr "" #: ../data/ipa.xml.in.h:190 msgid "Combining top tone mark" msgstr "" #: ../data/ipa.xml.in.h:191 msgid "Combining high tone mark" msgstr "" #: ../data/ipa.xml.in.h:192 msgid "Combining mid tone mark" msgstr "" #: ../data/ipa.xml.in.h:193 msgid "Combining low tone mark" msgstr "" #: ../data/ipa.xml.in.h:194 msgid "Combining bottom tone mark" msgstr "" #: ../data/ipa.xml.in.h:195 msgid "Combining falling tone mark" msgstr "" #: ../data/ipa.xml.in.h:196 msgid "Combining high falling tone mark" msgstr "" #: ../data/ipa.xml.in.h:197 msgid "Combining low falling tone mark" msgstr "" #: ../data/ipa.xml.in.h:198 msgid "Combining rising tone mark" msgstr "" #: ../data/ipa.xml.in.h:199 msgid "Combining high rising tone mark" msgstr "" #: ../data/ipa.xml.in.h:200 msgid "Combining low rising tone mark" msgstr "" #: ../data/ipa.xml.in.h:201 msgid "Combining dipping tone mark" msgstr "" #: ../data/ipa.xml.in.h:202 msgid "Combining peaking tone mark" msgstr "" #: ../data/ipa.xml.in.h:203 msgid "Top tone letter" msgstr "" #: ../data/ipa.xml.in.h:204 msgid "High tone letter" msgstr "" #: ../data/ipa.xml.in.h:205 msgid "Mid tone letter" msgstr "" #: ../data/ipa.xml.in.h:206 msgid "Low tone letter" msgstr "" #: ../data/ipa.xml.in.h:207 msgid "Bottom tone letter" msgstr "" #: ../data/ipa.xml.in.h:208 msgid "Falling tone digraph" msgstr "" #: ../data/ipa.xml.in.h:209 msgid "High falling tone digraph" msgstr "" #: ../data/ipa.xml.in.h:210 msgid "Rising tone digraph" msgstr "" #: ../data/ipa.xml.in.h:211 msgid "High rising tone digraph" msgstr "" #: ../data/ipa.xml.in.h:212 msgid "Low rising tone digraph" msgstr "" #: ../data/ipa.xml.in.h:213 msgid "Dipping tone trigraph" msgstr "" #: ../data/ipa.xml.in.h:214 msgid "Peaking tone trigraph" msgstr "" #: ../data/ipa.xml.in.h:215 msgid "Upstep mark" msgstr "" #: ../data/ipa.xml.in.h:216 msgid "Downstep mark" msgstr "" #: ../data/ipa.xml.in.h:217 msgid "Minor break" msgstr "" #: ../data/ipa.xml.in.h:218 msgid "Major break" msgstr "" #: ../data/ipa.xml.in.h:219 msgid "Rising intonation mark" msgstr "" #: ../data/ipa.xml.in.h:220 msgid "Falling intonation mark" msgstr "" #: ../data/ipa.xml.in.h:221 msgid "Advanced articulation mark" msgstr "" #: ../data/ipa.xml.in.h:222 msgid "Retracted articulation mark" msgstr "" #: ../data/ipa.xml.in.h:223 msgid "Combining advanced articulation mark" msgstr "" #: ../data/ipa.xml.in.h:224 msgid "Combining retracted articulation mark" msgstr "" #: ../data/ipa.xml.in.h:225 msgid "Raised sound mark" msgstr "" #: ../data/ipa.xml.in.h:226 msgid "Lowered sound mark" msgstr "" #: ../data/ipa.xml.in.h:227 msgid "Combining raised sound mark" msgstr "" #: ../data/ipa.xml.in.h:228 msgid "Combining lowered sound mark" msgstr "" #: ../data/ipa.xml.in.h:229 msgid "Combining tongue root advancement mark" msgstr "" #: ../data/ipa.xml.in.h:230 msgid "Combining tongue root retraction mark" msgstr "" #: ../data/ipa.xml.in.h:231 msgid "Combining strong articulation mark" msgstr "" #: ../data/ipa.xml.in.h:232 msgid "Combining weak articulation mark" msgstr "" #: ../data/ipa.xml.in.h:233 msgid "Combining whistled articulation mark" msgstr "" #: ../data/ipa.xml.in.h:234 msgid "Combining sliding articulation mark" msgstr "" #: ../data/ipa.xml.in.h:235 msgid "Egression mark" msgstr "" #: ../data/ipa.xml.in.h:236 msgid "Ingression mark" msgstr "" #: ../data/ipa.xml.in.h:237 msgid "Combining ligature tie" msgstr "" #: ../data/ipa.xml.in.h:238 msgid "Combining ligature undertie" msgstr "" #: ../data/ipa.xml.in.h:239 msgid "Elongation mark" msgstr "" #: ../data/ipa.xml.in.h:240 msgid "Weak elongation mark" msgstr "" #: ../data/ipa.xml.in.h:241 msgid "Combining extra-short duration mark" msgstr "" #: ../data/ipa.xml.in.h:242 msgid "Liaison mark" msgstr "" #: ../data/ipa.xml.in.h:243 msgid "Stress mark" msgstr "" #: ../data/ipa.xml.in.h:244 msgid "Weak stress mark" msgstr "" #: ../data/ipa.xml.in.h:245 msgid "Syllable break" msgstr "" #: ../data/ipa.xml.in.h:246 msgid "Opening orthographic bracket" msgstr "" #: ../data/ipa.xml.in.h:247 msgid "Closing orthographic bracket" msgstr "" #: ../data/ja.xml.in.h:1 msgid "Japanese" msgstr "" #: ../data/ja.xml.in.h:2 ../input-pad/unicode_block.h:136 msgid "Hiragana" msgstr "" #: ../data/ja.xml.in.h:3 ../input-pad/unicode_block.h:137 msgid "Katakana" msgstr "" #: ../data/ja.xml.in.h:4 ../data/zh.xml.in.h:3 msgid "Radicals" msgstr "" #: ../data/ja.xml.in.h:5 ../input-pad/unicode_block.h:132 msgid "CJK Radicals Supplement" msgstr "" #: ../data/keyboard.xml.in.h:1 msgid "Keyboard" msgstr "" #: ../data/keyboard.xml.in.h:2 msgid "Function Key" msgstr "" #: ../data/keyboard.xml.in.h:3 msgid "Key Pad" msgstr "" #: ../data/latin.xml.in.h:1 msgid "ASCII" msgstr "ASCII" #: ../data/latin.xml.in.h:2 ../input-pad/unicode_block.h:38 msgid "Latin-1 Supplement" msgstr "" #: ../data/latin.xml.in.h:3 ../input-pad/unicode_block.h:39 msgid "Latin Extended-A" msgstr "" #: ../data/latin.xml.in.h:4 msgid "Old and Middle English" msgstr "" #: ../data/runr.xml.in.h:1 msgid "Runes (Unicode Block)" msgstr "" #: ../data/runr.xml.in.h:2 msgid "Runes (Elder Fuþark)" msgstr "" #: ../data/runr.xml.in.h:3 msgid "Runes (Younger Fuþark)" msgstr "" #: ../data/runr.xml.in.h:4 msgid "Runes (Fuþorc)" msgstr "" #: ../data/shaw.xml.in.h:1 ../input-pad/unicode_block.h:200 msgid "Shavian" msgstr "" #: ../data/str.xml.in.h:1 msgid "Chat" msgstr "Berriketa" #: ../data/str.xml.in.h:2 msgid "Emoji" msgstr "" #: ../data/str.xml.in.h:3 msgid "Rain" msgstr "" #: ../data/str.xml.in.h:4 msgid "Comet" msgstr "" #: ../data/str.xml.in.h:5 msgid "Cross" msgstr "" #: ../data/str.xml.in.h:6 msgid "Solar" msgstr "" #: ../data/str.xml.in.h:7 msgid "Mercury" msgstr "" #: ../data/str.xml.in.h:8 msgid "Venus" msgstr "" #: ../data/str.xml.in.h:9 msgid "Earth" msgstr "" #: ../data/str.xml.in.h:10 msgid "Mars" msgstr "" #: ../data/str.xml.in.h:11 msgid "Jupiter" msgstr "" #: ../data/str.xml.in.h:12 msgid "Saturn" msgstr "" #: ../data/str.xml.in.h:13 msgid "Uranus" msgstr "" #: ../data/str.xml.in.h:14 msgid "Neptune" msgstr "" #: ../data/str.xml.in.h:15 msgid "Pluto" msgstr "" #: ../data/str.xml.in.h:16 msgid "Aries" msgstr "" #: ../data/str.xml.in.h:17 msgid "Taurus" msgstr "" #: ../data/str.xml.in.h:18 msgid "Gemini" msgstr "" #: ../data/str.xml.in.h:19 msgid "Cancer" msgstr "" #: ../data/str.xml.in.h:20 msgid "Leo" msgstr "" #: ../data/str.xml.in.h:21 msgid "Virgo" msgstr "" #: ../data/str.xml.in.h:22 msgid "Libra" msgstr "" #: ../data/str.xml.in.h:23 msgid "Scorpius" msgstr "" #: ../data/str.xml.in.h:24 msgid "Sagittarius" msgstr "" #: ../data/str.xml.in.h:25 msgid "Capricorn" msgstr "" #: ../data/str.xml.in.h:26 msgid "Aquarius" msgstr "" #: ../data/str.xml.in.h:27 msgid "Pisces" msgstr "" #: ../data/str.xml.in.h:28 msgid "Dice 1" msgstr "" #: ../data/str.xml.in.h:29 msgid "Dice 2" msgstr "" #: ../data/str.xml.in.h:30 msgid "Dice 3" msgstr "" #: ../data/str.xml.in.h:31 msgid "Dice 4" msgstr "" #: ../data/str.xml.in.h:32 msgid "Dice 5" msgstr "" #: ../data/str.xml.in.h:33 msgid "Dice 6" msgstr "" #: ../data/str.xml.in.h:34 msgid "Anchor" msgstr "" #: ../data/str.xml.in.h:35 msgid "Sword" msgstr "" #: ../data/str.xml.in.h:36 msgid "Scales" msgstr "" #: ../data/str.xml.in.h:37 msgid "Conversation" msgstr "" #: ../data/str.xml.in.h:38 msgid "Warning" msgstr "" #: ../data/str.xml.in.h:39 msgid "Thunder" msgstr "" #: ../data/str.xml.in.h:40 msgid "Coffin" msgstr "" #: ../data/str.xml.in.h:41 msgid "Gender" msgstr "" #: ../data/str.xml.in.h:42 msgid "Soccer" msgstr "" #: ../data/str.xml.in.h:43 msgid "Baseball" msgstr "" #: ../data/str.xml.in.h:44 msgid "Snowman" msgstr "" #: ../data/str.xml.in.h:45 msgid "Shoji" msgstr "" #: ../data/str.xml.in.h:46 msgid "Maintenance" msgstr "" #: ../data/str.xml.in.h:47 msgid "Roadblock" msgstr "" #: ../data/str.xml.in.h:48 msgid "No entry" msgstr "" #: ../data/str.xml.in.h:49 msgid "Truck" msgstr "" #: ../data/str.xml.in.h:50 msgid "Torii" msgstr "" #: ../data/str.xml.in.h:51 msgid "Church" msgstr "" #: ../data/str.xml.in.h:52 msgid "Castle" msgstr "" #: ../data/str.xml.in.h:53 msgid "Historic site" msgstr "" #: ../data/str.xml.in.h:54 msgid "Power station" msgstr "" #: ../data/str.xml.in.h:55 msgid "Lighthouse" msgstr "" #: ../data/str.xml.in.h:56 msgid "Mountain" msgstr "" #: ../data/str.xml.in.h:57 msgid "Beach" msgstr "" #: ../data/str.xml.in.h:58 msgid "Park" msgstr "" #: ../data/str.xml.in.h:59 msgid "Ferry" msgstr "" #: ../data/str.xml.in.h:60 msgid "Sailboat" msgstr "" #: ../data/str.xml.in.h:61 msgid "Ice rink" msgstr "" #: ../data/str.xml.in.h:62 msgid "Scissors" msgstr "" #: ../data/str.xml.in.h:63 msgid "Airplane" msgstr "" #: ../data/str.xml.in.h:64 msgid "Clenched Fist" msgstr "" #: ../data/str.xml.in.h:65 msgid "Hand" msgstr "" #: ../data/str.xml.in.h:66 msgid "V Sign" msgstr "" #: ../data/str.xml.in.h:67 msgid "Writing" msgstr "" #: ../data/str.xml.in.h:68 msgid "Pencil" msgstr "" #: ../data/str.xml.in.h:69 msgid "Pen" msgstr "" #: ../data/str.xml.in.h:70 msgid "Star" msgstr "Izarra" #: ../data/str.xml.in.h:71 msgid "Typhoon" msgstr "" #: ../data/str.xml.in.h:72 msgid "Fog" msgstr "" #: ../data/str.xml.in.h:73 msgid "Umbrella" msgstr "" #: ../data/str.xml.in.h:74 msgid "Night sky" msgstr "" #: ../data/str.xml.in.h:75 msgid "Sunrise" msgstr "" #: ../data/str.xml.in.h:76 msgid "Sunset" msgstr "" #: ../data/str.xml.in.h:77 msgid "Bridge" msgstr "" #: ../data/str.xml.in.h:78 msgid "Wave" msgstr "" #: ../data/str.xml.in.h:79 msgid "New Moon" msgstr "" #: ../data/str.xml.in.h:80 msgid "Crescent Moon" msgstr "" #: ../data/str.xml.in.h:81 msgid "Quarter Moon" msgstr "" #: ../data/str.xml.in.h:82 msgid "Gibbous Moon" msgstr "" #: ../data/str.xml.in.h:83 msgid "Full Moon" msgstr "" #: ../data/str.xml.in.h:84 msgid "Moon" msgstr "" #: ../data/str.xml.in.h:85 msgid "Sun" msgstr "" #: ../data/str.xml.in.h:86 msgid "Cloud" msgstr "" #: ../data/str.xml.in.h:87 msgid "Palm" msgstr "" #: ../data/str.xml.in.h:88 msgid "Hot Pepper" msgstr "" #: ../data/str.xml.in.h:89 msgid "Flower" msgstr "" #: ../data/str.xml.in.h:90 msgid "Tulip" msgstr "" #: ../data/str.xml.in.h:91 msgid "Cherry" msgstr "" #: ../data/str.xml.in.h:92 msgid "Rose" msgstr "" #: ../data/str.xml.in.h:93 msgid "Hibiscus" msgstr "" #: ../data/str.xml.in.h:94 msgid "Sunflower" msgstr "" #: ../data/str.xml.in.h:95 msgid "Blossom" msgstr "" #: ../data/str.xml.in.h:96 msgid "Clover" msgstr "" #: ../data/str.xml.in.h:97 msgid "Maple" msgstr "" #: ../data/str.xml.in.h:98 msgid "Fallen Leaf" msgstr "" #: ../data/str.xml.in.h:99 msgid "Leaf" msgstr "" #: ../data/str.xml.in.h:100 msgid "Mushroom" msgstr "" #: ../data/str.xml.in.h:101 msgid "Tomato" msgstr "" #: ../data/str.xml.in.h:102 msgid "Eggplant" msgstr "" #: ../data/str.xml.in.h:103 msgid "Grape" msgstr "" #: ../data/str.xml.in.h:104 msgid "Melon" msgstr "" #: ../data/str.xml.in.h:105 msgid "Watermelon" msgstr "" #: ../data/str.xml.in.h:106 msgid "Tangerine" msgstr "" #: ../data/str.xml.in.h:107 msgid "Lemon" msgstr "" #: ../data/str.xml.in.h:108 msgid "Banana" msgstr "" #: ../data/str.xml.in.h:109 msgid "Pineapple" msgstr "" #: ../data/str.xml.in.h:110 msgid "Apple" msgstr "" #: ../data/str.xml.in.h:111 msgid "Pear" msgstr "" #: ../data/str.xml.in.h:112 msgid "Peach" msgstr "" #: ../data/str.xml.in.h:113 msgid "Strawberry" msgstr "" #: ../data/str.xml.in.h:114 msgid "Hamburger" msgstr "" #: ../data/str.xml.in.h:115 msgid "Pizza" msgstr "" #: ../data/str.xml.in.h:116 msgid "Meat" msgstr "" #: ../data/str.xml.in.h:117 msgid "Poultry" msgstr "" #: ../data/str.xml.in.h:118 msgid "Rice Cracker" msgstr "" #: ../data/str.xml.in.h:119 msgid "Rice Ball" msgstr "" #: ../data/str.xml.in.h:120 msgid "Rice" msgstr "" #: ../data/str.xml.in.h:121 msgid "Curry" msgstr "" #: ../data/str.xml.in.h:122 msgid "Ramen" msgstr "" #: ../data/str.xml.in.h:123 msgid "Spaghetti" msgstr "" #: ../data/str.xml.in.h:124 msgid "Bread" msgstr "" #: ../data/str.xml.in.h:125 msgid "Fried Potato" msgstr "" #: ../data/str.xml.in.h:126 msgid "Roasted Sweet Potato" msgstr "" #: ../data/str.xml.in.h:127 msgid "Dango" msgstr "" #: ../data/str.xml.in.h:128 msgid "Oden" msgstr "" #: ../data/str.xml.in.h:129 msgid "Sushi" msgstr "" #: ../data/str.xml.in.h:130 msgid "Fried Shrimp" msgstr "" #: ../data/str.xml.in.h:131 msgid "Fish Cake" msgstr "" #: ../data/str.xml.in.h:132 msgid "Soft Ice Cream" msgstr "" #: ../data/str.xml.in.h:133 msgid "Shaved Ice" msgstr "" #: ../data/str.xml.in.h:134 msgid "Ice Cream" msgstr "" #: ../data/str.xml.in.h:135 msgid "Doughnut" msgstr "" #: ../data/str.xml.in.h:136 msgid "Cookie" msgstr "" #: ../data/str.xml.in.h:137 msgid "Chocolate" msgstr "" #: ../data/str.xml.in.h:138 msgid "Candy" msgstr "" #: ../data/str.xml.in.h:139 msgid "Custard" msgstr "" #: ../data/str.xml.in.h:140 msgid "Honey" msgstr "" #: ../data/str.xml.in.h:141 msgid "Shortcake" msgstr "" #: ../data/str.xml.in.h:142 msgid "Bento" msgstr "" #: ../data/str.xml.in.h:143 msgid "Pot of Food" msgstr "" #: ../data/str.xml.in.h:144 msgid "Cooking" msgstr "" #: ../data/str.xml.in.h:145 msgid "Meal" msgstr "" #: ../data/str.xml.in.h:146 msgid "Cup" msgstr "" #: ../data/str.xml.in.h:147 msgid "Sake" msgstr "" #: ../data/str.xml.in.h:148 msgid "Wine" msgstr "" #: ../data/str.xml.in.h:149 msgid "Cocktail" msgstr "" #: ../data/str.xml.in.h:150 msgid "Drink" msgstr "Edan" #: ../data/str.xml.in.h:151 msgid "Beer" msgstr "Garagardoa" #: ../data/str.xml.in.h:152 msgid "Cheers" msgstr "" #: ../data/str.xml.in.h:153 msgid "Baby Bottle" msgstr "" #: ../data/str.xml.in.h:154 msgid "Ribbon" msgstr "" #: ../data/str.xml.in.h:155 msgid "Present" msgstr "" #: ../data/str.xml.in.h:156 msgid "Cake" msgstr "Opila" #: ../data/str.xml.in.h:157 msgid "Hallowe'en" msgstr "" #: ../data/str.xml.in.h:158 msgid "Christmas" msgstr "" #: ../data/str.xml.in.h:159 msgid "Piano" msgstr "" #: ../data/str.xml.in.h:160 msgid "Microphone" msgstr "" #: ../data/str.xml.in.h:161 msgid "Headphone" msgstr "" #: ../data/str.xml.in.h:162 msgid "Hat" msgstr "" #: ../data/str.xml.in.h:163 msgid "Musical Note" msgstr "" #: ../data/str.xml.in.h:164 msgid "Saxophone" msgstr "" #: ../data/str.xml.in.h:165 msgid "Guiter" msgstr "" #: ../data/str.xml.in.h:166 msgid "Trumpet" msgstr "" #: ../data/str.xml.in.h:167 msgid "Violin" msgstr "" #: ../data/str.xml.in.h:168 msgid "Musical Score" msgstr "" #: ../data/str.xml.in.h:169 msgid "Tennis" msgstr "" #: ../data/str.xml.in.h:170 msgid "Ski" msgstr "" #: ../data/str.xml.in.h:171 msgid "Basketball" msgstr "" #: ../data/str.xml.in.h:172 msgid "Flag" msgstr "" #: ../data/str.xml.in.h:173 msgid "Show Board" msgstr "" #: ../data/str.xml.in.h:174 msgid "Running" msgstr "" #: ../data/str.xml.in.h:175 msgid "Surfer" msgstr "" #: ../data/str.xml.in.h:176 msgid "Medal" msgstr "" #: ../data/str.xml.in.h:177 msgid "Trophy" msgstr "" #: ../data/str.xml.in.h:178 msgid "Horse Racing" msgstr "" #: ../data/str.xml.in.h:179 msgid "American Football" msgstr "" #: ../data/str.xml.in.h:180 msgid "Rugby" msgstr "" #: ../data/str.xml.in.h:181 msgid "Swimmer" msgstr "" #: ../data/str.xml.in.h:182 msgid "Weight Lifting" msgstr "" #: ../data/str.xml.in.h:183 msgid "Golf" msgstr "" #: ../data/str.xml.in.h:184 msgid "Motorcycle" msgstr "" #: ../data/str.xml.in.h:185 msgid "Race" msgstr "" #: ../data/str.xml.in.h:186 msgid "House" msgstr "" #: ../data/str.xml.in.h:187 msgid "Office" msgstr "" #: ../data/str.xml.in.h:188 msgid "Hospital" msgstr "" #: ../data/str.xml.in.h:189 msgid "Bank" msgstr "" #: ../data/str.xml.in.h:190 msgid "Hotel" msgstr "" #: ../data/str.xml.in.h:191 msgid "School" msgstr "" #: ../data/str.xml.in.h:192 msgid "Factory" msgstr "" #: ../data/str.xml.in.h:193 msgid "Rat" msgstr "" #: ../data/str.xml.in.h:194 msgid "Mouse" msgstr "" #: ../data/str.xml.in.h:195 msgid "Cow" msgstr "" #: ../data/str.xml.in.h:196 msgid "Tiger" msgstr "" #: ../data/str.xml.in.h:197 msgid "Leopard" msgstr "" #: ../data/str.xml.in.h:198 msgid "Rabbit" msgstr "" #: ../data/str.xml.in.h:199 msgid "Cat" msgstr "Katua" #: ../data/str.xml.in.h:200 msgid "Dragon" msgstr "" #: ../data/str.xml.in.h:201 msgid "Crocodile" msgstr "" #: ../data/str.xml.in.h:202 msgid "Whale" msgstr "" #: ../data/str.xml.in.h:203 msgid "Snail" msgstr "" #: ../data/str.xml.in.h:204 msgid "Snake" msgstr "" #: ../data/str.xml.in.h:205 msgid "Horse" msgstr "" #: ../data/str.xml.in.h:206 msgid "Sheep" msgstr "" #: ../data/str.xml.in.h:207 msgid "Goat" msgstr "" #: ../data/str.xml.in.h:208 msgid "Monkey" msgstr "" #: ../data/str.xml.in.h:209 msgid "Chicken" msgstr "" #: ../data/str.xml.in.h:210 msgid "Dog" msgstr "Zakurra" #: ../data/str.xml.in.h:211 msgid "Pig" msgstr "" #: ../data/str.xml.in.h:212 msgid "Elephant" msgstr "" #: ../data/str.xml.in.h:213 msgid "Octopus" msgstr "" #: ../data/str.xml.in.h:214 msgid "Spiral Shell" msgstr "" #: ../data/str.xml.in.h:215 msgid "Bug" msgstr "" #: ../data/str.xml.in.h:216 msgid "Ant" msgstr "" #: ../data/str.xml.in.h:217 msgid "Lady Beetle" msgstr "" #: ../data/str.xml.in.h:218 msgid "Fish" msgstr "" #: ../data/str.xml.in.h:219 msgid "Tropical Fish" msgstr "" #: ../data/str.xml.in.h:220 msgid "Blowfish" msgstr "" #: ../data/str.xml.in.h:221 msgid "Bird" msgstr "" #: ../data/str.xml.in.h:222 msgid "Penguin" msgstr "" #: ../data/str.xml.in.h:223 msgid "Koala" msgstr "" #: ../data/str.xml.in.h:224 msgid "Poodle" msgstr "" #: ../data/str.xml.in.h:225 msgid "Camel" msgstr "" #: ../data/str.xml.in.h:226 msgid "Dolphin" msgstr "" #: ../data/str.xml.in.h:227 msgid "Frog" msgstr "" #: ../data/str.xml.in.h:228 msgid "Hamster" msgstr "" #: ../data/str.xml.in.h:229 msgid "Wolf" msgstr "" #: ../data/str.xml.in.h:230 msgid "Bear" msgstr "Hartza" #: ../data/str.xml.in.h:231 msgid "Panda" msgstr "" #: ../data/str.xml.in.h:232 msgid "Eye" msgstr "" #: ../data/str.xml.in.h:233 msgid "Ear" msgstr "" #: ../data/str.xml.in.h:234 msgid "Nose" msgstr "" #: ../data/str.xml.in.h:235 msgid "Mouth" msgstr "" #: ../data/str.xml.in.h:236 msgid "Tongue" msgstr "Mihia" #: ../data/str.xml.in.h:237 msgid "Crown" msgstr "" #: ../data/str.xml.in.h:238 msgid "Glasses" msgstr "" #: ../data/str.xml.in.h:239 msgid "Necktie" msgstr "" #: ../data/str.xml.in.h:240 msgid "T-Shirt" msgstr "" #: ../data/str.xml.in.h:241 msgid "Jeans" msgstr "" #: ../data/str.xml.in.h:242 msgid "Dress" msgstr "" #: ../data/str.xml.in.h:243 msgid "Kimono" msgstr "" #: ../data/str.xml.in.h:244 msgid "Bikini" msgstr "" #: ../data/str.xml.in.h:245 msgid "Clothes" msgstr "" #: ../data/str.xml.in.h:246 msgid "Purse" msgstr "" #: ../data/str.xml.in.h:247 msgid "Handbag" msgstr "" #: ../data/str.xml.in.h:248 msgid "Pouch" msgstr "" #: ../data/str.xml.in.h:249 msgid "Shoe" msgstr "" #: ../data/str.xml.in.h:250 msgid "Footprint" msgstr "" #: ../data/str.xml.in.h:251 msgid "Account" msgstr "" #: ../data/str.xml.in.h:252 msgid "Boy" msgstr "Mutila" #: ../data/str.xml.in.h:253 msgid "Girl" msgstr "" #: ../data/str.xml.in.h:254 msgid "Man" msgstr "" #: ../data/str.xml.in.h:255 msgid "Woman" msgstr "" #: ../data/str.xml.in.h:256 msgid "Family" msgstr "" #: ../data/str.xml.in.h:257 msgid "Restroom" msgstr "" #: ../data/str.xml.in.h:258 msgid "Men" msgstr "" #: ../data/str.xml.in.h:259 msgid "Women" msgstr "" #: ../data/str.xml.in.h:260 msgid "Princess" msgstr "" #: ../data/str.xml.in.h:261 msgid "Japanese Ogre" msgstr "" #: ../data/str.xml.in.h:262 msgid "Japanese Goblin" msgstr "" #: ../data/str.xml.in.h:263 msgid "Ghost" msgstr "" #: ../data/str.xml.in.h:264 msgid "Baby Angel" msgstr "" #: ../data/str.xml.in.h:265 msgid "Extraterrestrial Alien" msgstr "" #: ../data/str.xml.in.h:266 msgid "Alien Monster" msgstr "" #: ../data/str.xml.in.h:267 msgid "IMP" msgstr "" #: ../data/str.xml.in.h:268 msgid "Skull" msgstr "" #: ../data/str.xml.in.h:269 msgid "Information Desk Person" msgstr "" #: ../data/str.xml.in.h:270 msgid "Guardsman" msgstr "" #: ../data/str.xml.in.h:271 msgid "Dancer" msgstr "" #: ../data/str.xml.in.h:272 msgid "Lipstick" msgstr "" #: ../data/str.xml.in.h:273 msgid "Nail" msgstr "" #: ../data/str.xml.in.h:274 msgid "Face" msgstr "" #: ../data/str.xml.in.h:275 msgid "Haircut" msgstr "" #: ../data/str.xml.in.h:276 msgid "Syringe" msgstr "" #: ../data/str.xml.in.h:277 msgid "Medicine" msgstr "" #: ../data/str.xml.in.h:278 msgid "Kiss" msgstr "" #: ../data/str.xml.in.h:279 msgid "Love Letter" msgstr "" #: ../data/str.xml.in.h:280 msgid "Ring" msgstr "" #: ../data/str.xml.in.h:281 msgid "Gem Stone" msgstr "" #: ../data/str.xml.in.h:282 msgid "Wedding" msgstr "" #: ../data/str.xml.in.h:283 msgid "Heart" msgstr "" #: ../data/str.xml.in.h:284 msgid "Idea" msgstr "" #: ../data/str.xml.in.h:285 msgid "Anger" msgstr "" #: ../data/str.xml.in.h:286 msgid "Bomb" msgstr "" #: ../data/str.xml.in.h:287 msgid "Sleeping" msgstr "" #: ../data/str.xml.in.h:288 msgid "Collision" msgstr "" #: ../data/str.xml.in.h:289 msgid "Sweat" msgstr "" #: ../data/str.xml.in.h:290 msgid "Droplet" msgstr "" #: ../data/str.xml.in.h:291 msgid "Dash" msgstr "" #: ../data/str.xml.in.h:292 msgid "Poo" msgstr "" #: ../data/str.xml.in.h:293 msgid "Muscle" msgstr "" #: ../data/str.xml.in.h:294 msgid "Dizzy" msgstr "" #: ../data/str.xml.in.h:295 msgid "Speech" msgstr "" #: ../data/str.xml.in.h:296 msgid "Thought" msgstr "" #: ../data/str.xml.in.h:297 msgid "Perfect Score" msgstr "" #: ../data/str.xml.in.h:298 msgid "Pushpin" msgstr "" #: ../data/str.xml.in.h:299 msgid "Clip" msgstr "" #: ../data/str.xml.in.h:300 msgid "Speaker" msgstr "" #: ../data/str.xml.in.h:301 msgid "Battery" msgstr "" #: ../data/str.xml.in.h:302 msgid "Plug" msgstr "" #: ../data/str.xml.in.h:303 msgid "Search" msgstr "" #: ../data/str.xml.in.h:304 msgid "Bookmark" msgstr "" #: ../data/str.xml.in.h:305 msgid "Book" msgstr "" #: ../data/str.xml.in.h:306 msgid "Memo" msgstr "" #: ../data/str.xml.in.h:307 msgid "Mail" msgstr "" #: ../data/str.xml.in.h:308 msgid "Mobile Phone" msgstr "" #: ../data/str.xml.in.h:309 msgid "Camera" msgstr "" #: ../data/str.xml.in.h:310 msgid "Video" msgstr "" #: ../data/str.xml.in.h:311 msgid "Television" msgstr "" #: ../data/str.xml.in.h:312 msgid "Radio" msgstr "" #: ../data/str.xml.in.h:313 msgid "Key" msgstr "" #: ../data/str.xml.in.h:314 msgid "Lock" msgstr "" #: ../data/str.xml.in.h:315 msgid "Fire" msgstr "" #: ../data/str.xml.in.h:316 msgid "Wrench" msgstr "" #: ../data/str.xml.in.h:317 msgid "Hammer" msgstr "" #: ../data/str.xml.in.h:318 msgid "Bolt" msgstr "" #: ../data/str.xml.in.h:319 msgid "Hocho" msgstr "" #: ../data/str.xml.in.h:320 msgid "Pistol" msgstr "" #: ../data/str.xml.in.h:321 msgid "Microscope" msgstr "" #: ../data/str.xml.in.h:322 msgid "Telescope" msgstr "" #: ../data/str.xml.in.h:323 msgid "Crystal" msgstr "" #: ../data/str.xml.in.h:324 msgid "David Star" msgstr "" #: ../data/str.xml.in.h:325 msgid "Beginner" msgstr "" #: ../data/str.xml.in.h:326 msgid "Candle" msgstr "" #: ../data/str.xml.in.h:327 msgid "Hole" msgstr "" #: ../data/str.xml.in.h:328 msgid "Personal Computer" msgstr "" #: ../data/str.xml.in.h:329 msgid "keyboard" msgstr "" #: ../data/str.xml.in.h:330 msgid "Printer" msgstr "" #: ../data/str.xml.in.h:331 msgid "Calculator" msgstr "" #: ../data/str.xml.in.h:332 msgid "Minimize" msgstr "" #: ../data/str.xml.in.h:333 msgid "Maximize" msgstr "" #: ../data/str.xml.in.h:334 msgid "Refresh" msgstr "" #: ../data/str.xml.in.h:335 msgid "Close" msgstr "" #: ../data/str.xml.in.h:336 msgid "World" msgstr "" #: ../data/str.xml.in.h:337 msgid "Mt. Fuji" msgstr "" #: ../data/str.xml.in.h:338 msgid "Tokyo Tower" msgstr "" #: ../data/str.xml.in.h:339 msgid "Japan" msgstr "" #: ../data/str.xml.in.h:340 msgid "Anguish" msgstr "" #: ../data/str.xml.in.h:341 msgid "Smile" msgstr "" #: ../data/str.xml.in.h:342 msgid "Smirk" msgstr "" #: ../data/str.xml.in.h:343 msgid "Neutral" msgstr "" #: ../data/str.xml.in.h:344 msgid "Expressionless" msgstr "" #: ../data/str.xml.in.h:345 msgid "Unamused" msgstr "" #: ../data/str.xml.in.h:346 msgid "Pensive" msgstr "" #: ../data/str.xml.in.h:347 msgid "Confused" msgstr "Nahastuta" #: ../data/str.xml.in.h:348 msgid "Confounded" msgstr "" #: ../data/str.xml.in.h:349 msgid "Disappointed" msgstr "" #: ../data/str.xml.in.h:350 msgid "Angry" msgstr "Haserre" #: ../data/str.xml.in.h:351 msgid "Cry" msgstr "" #: ../data/str.xml.in.h:352 msgid "Sleeply" msgstr "" #: ../data/str.xml.in.h:353 msgid "Tired" msgstr "" #: ../data/str.xml.in.h:354 msgid "Surprise" msgstr "" #: ../data/str.xml.in.h:355 msgid "Scream" msgstr "" #: ../data/str.xml.in.h:356 msgid "Flushed" msgstr "" #: ../data/str.xml.in.h:357 msgid "Medical Mask" msgstr "" #: ../data/str.xml.in.h:358 msgid "OK" msgstr "" #: ../data/str.xml.in.h:359 msgid "Bow" msgstr "" #: ../data/str.xml.in.h:360 msgid "See-No-Evil" msgstr "" #: ../data/str.xml.in.h:361 msgid "Hear-No-Evil" msgstr "" #: ../data/str.xml.in.h:362 msgid "Speak-No-Evil" msgstr "" #: ../data/str.xml.in.h:363 msgid "Banzai" msgstr "" #: ../data/str.xml.in.h:364 msgid "Pleading" msgstr "" #: ../data/str.xml.in.h:365 msgid "Smileys" msgstr "" #: ../data/str.xml.in.h:366 msgid "Smile Big" msgstr "" #: ../data/str.xml.in.h:367 msgid "Sad" msgstr "" #: ../data/str.xml.in.h:368 msgid "Wink" msgstr "" #: ../data/str.xml.in.h:369 msgid "Shock" msgstr "" #: ../data/str.xml.in.h:370 msgid "Kiss | Secret" msgstr "" #: ../data/str.xml.in.h:371 msgid "Glasses Cool | Eyeroll" msgstr "" #: ../data/str.xml.in.h:372 msgid "Glasses Cool" msgstr "" #: ../data/str.xml.in.h:373 msgid "Embarrassed" msgstr "" #: ../data/str.xml.in.h:374 msgid "Crying" msgstr "Negarrez" #: ../data/str.xml.in.h:375 msgid "Thinking" msgstr "Pentsatzen" #: ../data/str.xml.in.h:376 msgid "Don't Know" msgstr "Ez dakit" #: ../data/str.xml.in.h:377 msgid "Party" msgstr "" #: ../data/str.xml.in.h:378 msgid "Yawn" msgstr "" #: ../data/str.xml.in.h:379 msgid "Bunny" msgstr "Untxia" #: ../data/str.xml.in.h:380 msgid "Sick" msgstr "" #: ../data/str.xml.in.h:381 msgid "Devil" msgstr "Deabrua" #: ../data/str.xml.in.h:382 msgid "Angel" msgstr "Angelua" #: ../data/str.xml.in.h:383 msgid "Love" msgstr "" #: ../data/str.xml.in.h:384 msgid "Love Over" msgstr "" #: ../data/str.xml.in.h:385 msgid "Film" msgstr "" #: ../data/str.xml.in.h:386 msgid "Clock" msgstr "Ordularia" #: ../data/str.xml.in.h:387 msgid "Coffee" msgstr "Kafea" #: ../data/str.xml.in.h:388 msgid "Phone" msgstr "" #: ../data/str.xml.in.h:389 msgid "Hug Left" msgstr "" #: ../data/str.xml.in.h:390 msgid "Hug Right" msgstr "" #: ../data/str.xml.in.h:391 msgid "Yes" msgstr "Bai" #: ../data/str.xml.in.h:392 msgid "No" msgstr "" #: ../data/str.xml.in.h:393 msgid "Shut Mouth" msgstr "" #: ../data/str.xml.in.h:394 msgid "Money Mouth" msgstr "" #: ../data/str.xml.in.h:395 msgid "Foot in Mouth" msgstr "" #: ../data/str.xml.in.h:396 msgid "Shout" msgstr "" #. http://ja.wikipedia.org/wiki/%E9%A1%94%E6%96%87%E5%AD%97 #: ../data/str.xml.in.h:398 msgid "Smileys (Japanese)" msgstr "" #: ../data/str.xml.in.h:399 msgid "Smoking" msgstr "" #: ../data/str.xml.in.h:400 msgid "Sorry" msgstr "Barkatu" #: ../data/str.xml.in.h:401 msgid "Hug" msgstr "" #. http://ja.wikipedia.org/wiki/%E9%A1%94%E6%96%87%E5%AD%97 #: ../data/str.xml.in.h:403 msgid "Smileys (Japanese 2ch)" msgstr "" #: ../data/str.xml.in.h:404 msgid "Hey" msgstr "" #. http://ja.wikipedia.org/wiki/%E9%A1%94%E6%96%87%E5%AD%97 #: ../data/str.xml.in.h:406 msgid "Smileys (Chinese)" msgstr "" #: ../data/str.xml.in.h:407 msgid "Crow" msgstr "Belea" #. http://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88%E3%82%B9%E3%83%A9%E3%83%B3%E3%82%B0 #: ../data/str.xml.in.h:409 msgid "Acronym" msgstr "" #: ../data/str.xml.in.h:410 msgid "Acronym (Computer)" msgstr "" #. http://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88%E3%82%B9%E3%83%A9%E3%83%B3%E3%82%B0 #: ../data/str.xml.in.h:412 msgid "Acronym (Japanese)" msgstr "" #: ../data/str.xml.in.h:413 msgid "Do not want to read between lines (Aete Kuuki Wo Yomanai)" msgstr "" #: ../data/str.xml.in.h:414 msgid "Can't get together (Guda Guda)" msgstr "" #: ../data/str.xml.in.h:415 msgid "Say whatever one feels (Iitaidake)" msgstr "" #: ../data/str.xml.in.h:416 msgid "Excited (Kitakore)" msgstr "" #: ../data/str.xml.in.h:417 msgid "Detail (Kuwashiku)" msgstr "Xehetasuna (Kuwashiku)" #: ../data/str.xml.in.h:418 msgid "Cannot read between lines (Kuuki Ga Yomenai)" msgstr "" #: ../data/str.xml.in.h:419 msgid "Omission (Shouryaku)" msgstr "" #: ../data/str.xml.in.h:420 msgid "Excited (Waku Waku Teka Teka)" msgstr "" #: ../data/str.xml.in.h:421 msgid "Laugh" msgstr "" #: ../data/str.xml.in.h:422 msgid "Dude (Oi!)" msgstr "" #: ../data/str.xml.in.h:423 msgid "Good job (Otsukare)" msgstr "" #: ../data/str.xml.in.h:424 msgid "Want (Kure, E.g. pics クレメンス)" msgstr "" #: ../data/str.xml.in.h:425 msgid "ASCII art of a hand (✊, E.g. つAttention)" msgstr "" #: ../data/str.xml.in.h:426 msgid "In The Meantime (Toriaezu, Maa)" msgstr "" #: ../data/str.xml.in.h:427 msgid "Self-confidence (Aniki, E.g. tennis ニキ)" msgstr "" #: ../data/str.xml.in.h:428 msgid "Bye" msgstr "Agur" #: ../data/str.xml.in.h:429 msgid "Want (Hattekure, E.g. pics ハラデイ)" msgstr "" #: ../data/str.xml.in.h:430 msgid "Exist as microparticles (Biryushi Level De Sonzaisuru)" msgstr "" #: ../data/str.xml.in.h:431 msgid "False Start (Flying Get)" msgstr "" #: ../data/str.xml.in.h:432 msgid "Fulfilling Life (Real life is Zyujitsu)" msgstr "" #: ../data/str.xml.in.h:433 msgid "Laugh (Warau)" msgstr "" #: ../data/str.xml.in.h:434 msgid "He (Yatsu <- Yashi)" msgstr "" #: ../data/w3c.xml.in.h:1 msgid "Char References" msgstr "" #: ../data/zh.xml.in.h:1 msgid "Chinese" msgstr "Txinera" #: ../data/zh.xml.in.h:4 ../input-pad/unicode_block.h:138 msgid "Bopomofo" msgstr "" #: ../input-pad/app-menu.ui.h:1 msgid "_File" msgstr "_Fitxategia" #: ../input-pad/app-menu.ui.h:2 ../input-pad/dialog.ui.h:21 msgid "_Close" msgstr "_Itxi" #: ../input-pad/app-menu.ui.h:3 msgid "Close the program" msgstr "" #: ../input-pad/app-menu.ui.h:4 msgid "_Pad" msgstr "" #: ../input-pad/app-menu.ui.h:5 msgid "_Code Point" msgstr "" #: ../input-pad/app-menu.ui.h:6 msgid "_Show Pad" msgstr "" #: ../input-pad/app-menu.ui.h:7 msgid "Show _All Characters" msgstr "Erakutsi karaktere _guztiak" #: ../input-pad/app-menu.ui.h:8 msgid "Show _Custom Characters" msgstr "Erakutsi karaktere _pertsonalizatuak" #: ../input-pad/app-menu.ui.h:9 msgid "Show _Nothing" msgstr "Ez erakutsi ezer" #: ../input-pad/app-menu.ui.h:10 msgid "Show _Keyboard Layout" msgstr "Erakutsi _teklatu-diseinua" #: ../input-pad/app-menu.ui.h:11 msgid "_Help" msgstr "_Laguntza" #: ../input-pad/app-menu.ui.h:12 msgid "_Troubleshoot" msgstr "" #: ../input-pad/app-menu.ui.h:13 msgid "_About" msgstr "" #: ../input-pad/dialog.ui.h:1 msgid "Code Point Dialog" msgstr "" #: ../input-pad/dialog.ui.h:2 msgid "Unicode" msgstr "Unicode" #: ../input-pad/dialog.ui.h:3 msgid "You can choose encoding type" msgstr "Kodetze mota aukeratu dezakezu" #: ../input-pad/dialog.ui.h:4 msgid "Current Encoding" msgstr "" #: ../input-pad/dialog.ui.h:5 msgid "Copy Buffer" msgstr "" #: ../input-pad/dialog.ui.h:6 msgid "Base 16\n" "Hex" msgstr "" #: ../input-pad/dialog.ui.h:8 msgid "Set number case to hexadecimal" msgstr "" #: ../input-pad/dialog.ui.h:9 msgid "Base 10\n" "Dec" msgstr "" #: ../input-pad/dialog.ui.h:11 msgid "Set number case to decimal" msgstr "" #: ../input-pad/dialog.ui.h:12 msgid "Base 8\n" "Oct" msgstr "" #: ../input-pad/dialog.ui.h:14 msgid "Set number case to octal" msgstr "" #: ../input-pad/dialog.ui.h:15 msgid "Base 2\n" "Bin" msgstr "" #: ../input-pad/dialog.ui.h:17 msgid "Set number case to binary" msgstr "" #: ../input-pad/dialog.ui.h:18 msgid "Code Point:" msgstr "" #: ../input-pad/dialog.ui.h:19 msgid "Character:" msgstr "" #: ../input-pad/dialog.ui.h:20 msgid "_Send" msgstr "_Bidali" #: ../input-pad/dialog.ui.h:22 msgid "Input Pad Troubleshoot" msgstr "" #: ../input-pad/dialog.ui.h:24 #, no-c-format msgid "" "\n" "This application can be run either as a stand-alone program or under an " "input method application.\n" "If you wish to send multi-byte characters, this application needs to be run " "under an input method application.\n" "If you wish to send characters to X11 applications, those applications needs " "to allow send events. e.g.\n" "% xterm -xrm \"XTerm*allowSendEvents: true\"\n" "\n" "You also can copy pad files from /usr/share/input-pad/pad to $HOME/.config/" "pad to customize those in \"Custom Character\" pane." msgstr "" #: ../input-pad/dialog.ui.h:31 msgid "_OK" msgstr "" #: ../input-pad/dialog.ui.h:32 msgid "Configure Keyboard Layouts" msgstr "" #: ../input-pad/dialog.ui.h:33 msgid "A_vailable layouts:" msgstr "" #: ../input-pad/dialog.ui.h:34 msgid "_Add" msgstr "" #: ../input-pad/dialog.ui.h:35 msgid "_Layouts shown in the list:" msgstr "" #: ../input-pad/dialog.ui.h:36 msgid "_Remove" msgstr "" #: ../input-pad/dialog.ui.h:37 msgid "_Options" msgstr "_Aukerak" #: ../input-pad/dialog.ui.h:38 msgid "Configure Keyboard Options" msgstr "" #: ../input-pad/dialog.ui.h:39 msgid "_Use the default keyboard option" msgstr "" #: ../input-pad/dialog.ui.h:40 msgid "Use the defualt XKB option" msgstr "" #: ../input-pad/dialog.ui.h:41 msgid "Keyboard Option" msgstr "Teklatu aukera" #: ../input-pad/dialog.ui.h:43 msgid "The input pad is a tool to send a character on button." msgstr "" #: ../input-pad/dialog.ui.h:44 msgid "translator_credits" msgstr "Asier Iturralde Sarasola " #: ../input-pad/eek-gtk.c:65 msgid "Use libeek to draw keyboard" msgstr "" #: ../input-pad/eek-gtk.c:237 msgid "eekboard layout" msgstr "" #: ../input-pad/eek-gtk.c:249 msgid "eekboard Options" msgstr "" #: ../input-pad/eek-gtk.c:249 msgid "Show eekboard Options" msgstr "" #: ../input-pad/unicode_block.h:37 msgid "Basic Latin" msgstr "" #: ../input-pad/unicode_block.h:40 msgid "Latin Extended-B" msgstr "" #: ../input-pad/unicode_block.h:41 msgid "IPA Extensions" msgstr "" #: ../input-pad/unicode_block.h:42 msgid "Spacing Modifier Letters" msgstr "" #: ../input-pad/unicode_block.h:43 msgid "Combining Diacritical Marks" msgstr "" #: ../input-pad/unicode_block.h:44 msgid "Greek and Coptic" msgstr "" #: ../input-pad/unicode_block.h:45 msgid "Cyrillic" msgstr "" #: ../input-pad/unicode_block.h:46 msgid "Cyrillic Supplement" msgstr "" #: ../input-pad/unicode_block.h:47 msgid "Armenian" msgstr "" #: ../input-pad/unicode_block.h:48 msgid "Hebrew" msgstr "" #: ../input-pad/unicode_block.h:49 msgid "Arabic" msgstr "" #: ../input-pad/unicode_block.h:50 msgid "Syriac" msgstr "" #: ../input-pad/unicode_block.h:51 msgid "Arabic Supplement" msgstr "" #: ../input-pad/unicode_block.h:52 msgid "Thaana" msgstr "" #: ../input-pad/unicode_block.h:53 msgid "NKo" msgstr "" #: ../input-pad/unicode_block.h:54 msgid "Samaritan" msgstr "" #: ../input-pad/unicode_block.h:55 msgid "Devanagari" msgstr "" #: ../input-pad/unicode_block.h:56 msgid "Bengali" msgstr "" #: ../input-pad/unicode_block.h:57 msgid "Gurmukhi" msgstr "" #: ../input-pad/unicode_block.h:58 msgid "Gujarati" msgstr "" #: ../input-pad/unicode_block.h:59 msgid "Oriya" msgstr "" #: ../input-pad/unicode_block.h:60 msgid "Tamil" msgstr "" #: ../input-pad/unicode_block.h:61 msgid "Telugu" msgstr "" #: ../input-pad/unicode_block.h:62 msgid "Kannada" msgstr "" #: ../input-pad/unicode_block.h:63 msgid "Malayalam" msgstr "" #: ../input-pad/unicode_block.h:64 msgid "Sinhala" msgstr "" #: ../input-pad/unicode_block.h:65 msgid "Thai" msgstr "" #: ../input-pad/unicode_block.h:66 msgid "Lao" msgstr "" #: ../input-pad/unicode_block.h:67 msgid "Tibetan" msgstr "" #: ../input-pad/unicode_block.h:68 msgid "Myanmar" msgstr "" #: ../input-pad/unicode_block.h:69 msgid "Georgian" msgstr "" #: ../input-pad/unicode_block.h:70 msgid "Hangul Jamo" msgstr "" #: ../input-pad/unicode_block.h:71 msgid "Ethiopic" msgstr "" #: ../input-pad/unicode_block.h:72 msgid "Ethiopic Supplement" msgstr "" #: ../input-pad/unicode_block.h:73 msgid "Cherokee" msgstr "" #: ../input-pad/unicode_block.h:74 msgid "Unified Canadian Aboriginal Syllabics" msgstr "" #: ../input-pad/unicode_block.h:75 msgid "Ogham" msgstr "" #: ../input-pad/unicode_block.h:76 msgid "Runic" msgstr "" #: ../input-pad/unicode_block.h:77 msgid "Tagalog" msgstr "" #: ../input-pad/unicode_block.h:78 msgid "Hanunoo" msgstr "" #: ../input-pad/unicode_block.h:79 msgid "Buhid" msgstr "" #: ../input-pad/unicode_block.h:80 msgid "Tagbanwa" msgstr "" #: ../input-pad/unicode_block.h:81 msgid "Khmer" msgstr "" #: ../input-pad/unicode_block.h:82 msgid "Mongolian" msgstr "" #: ../input-pad/unicode_block.h:83 msgid "Unified Canadian Aboriginal Syllabics Extended" msgstr "" #: ../input-pad/unicode_block.h:84 msgid "Limbu" msgstr "" #: ../input-pad/unicode_block.h:85 msgid "Tai Le" msgstr "" #: ../input-pad/unicode_block.h:86 msgid "New Tai Lue" msgstr "" #: ../input-pad/unicode_block.h:87 msgid "Khmer Symbols" msgstr "" #: ../input-pad/unicode_block.h:88 msgid "Buginese" msgstr "" #: ../input-pad/unicode_block.h:89 msgid "Tai Tham" msgstr "" #: ../input-pad/unicode_block.h:90 msgid "Balinese" msgstr "" #: ../input-pad/unicode_block.h:91 msgid "Sundanese" msgstr "" #: ../input-pad/unicode_block.h:92 msgid "Lepcha" msgstr "" #: ../input-pad/unicode_block.h:93 msgid "Ol Chiki" msgstr "" #: ../input-pad/unicode_block.h:94 msgid "Vedic Extensions" msgstr "" #: ../input-pad/unicode_block.h:95 msgid "Phonetic Extensions" msgstr "" #: ../input-pad/unicode_block.h:96 msgid "Phonetic Extensions Supplement" msgstr "" #: ../input-pad/unicode_block.h:97 msgid "Combining Diacritical Marks Supplement" msgstr "" #: ../input-pad/unicode_block.h:98 msgid "Latin Extended Additional" msgstr "" #: ../input-pad/unicode_block.h:99 msgid "Greek Extended" msgstr "" #: ../input-pad/unicode_block.h:100 msgid "General Punctuation" msgstr "" #: ../input-pad/unicode_block.h:101 msgid "Superscripts and Subscripts" msgstr "" #: ../input-pad/unicode_block.h:102 msgid "Currency Symbols" msgstr "" #: ../input-pad/unicode_block.h:103 msgid "Combining Diacritical Marks for Symbols" msgstr "" #: ../input-pad/unicode_block.h:104 msgid "Letterlike Symbols" msgstr "" #: ../input-pad/unicode_block.h:105 msgid "Number Forms" msgstr "" #: ../input-pad/unicode_block.h:106 msgid "Arrows" msgstr "Geziak" #: ../input-pad/unicode_block.h:107 msgid "Mathematical Operators" msgstr "" #: ../input-pad/unicode_block.h:108 msgid "Miscellaneous Technical" msgstr "" #: ../input-pad/unicode_block.h:109 msgid "Control Pictures" msgstr "" #: ../input-pad/unicode_block.h:110 msgid "Optical Character Recognition" msgstr "" #: ../input-pad/unicode_block.h:111 msgid "Enclosed Alphanumerics" msgstr "" #: ../input-pad/unicode_block.h:113 msgid "Block Elements" msgstr "" #: ../input-pad/unicode_block.h:114 msgid "Geometric Shapes" msgstr "" #: ../input-pad/unicode_block.h:115 msgid "Miscellaneous Symbols" msgstr "" #: ../input-pad/unicode_block.h:117 msgid "Miscellaneous Mathematical Symbols-A" msgstr "" #: ../input-pad/unicode_block.h:118 msgid "Supplemental Arrows-A" msgstr "" #: ../input-pad/unicode_block.h:119 msgid "Braille Patterns" msgstr "" #: ../input-pad/unicode_block.h:120 msgid "Supplemental Arrows-B" msgstr "" #: ../input-pad/unicode_block.h:121 msgid "Miscellaneous Mathematical Symbols-B" msgstr "" #: ../input-pad/unicode_block.h:122 msgid "Supplemental Mathematical Operators" msgstr "" #: ../input-pad/unicode_block.h:123 msgid "Miscellaneous Symbols and Arrows" msgstr "" #: ../input-pad/unicode_block.h:124 msgid "Glagolitic" msgstr "" #: ../input-pad/unicode_block.h:125 msgid "Latin Extended-C" msgstr "" #: ../input-pad/unicode_block.h:126 msgid "Coptic" msgstr "" #: ../input-pad/unicode_block.h:127 msgid "Georgian Supplement" msgstr "" #: ../input-pad/unicode_block.h:128 msgid "Tifinagh" msgstr "" #: ../input-pad/unicode_block.h:129 msgid "Ethiopic Extended" msgstr "" #: ../input-pad/unicode_block.h:130 msgid "Cyrillic Extended-A" msgstr "" #: ../input-pad/unicode_block.h:131 msgid "Supplemental Punctuation" msgstr "" #: ../input-pad/unicode_block.h:133 msgid "Kangxi Radicals" msgstr "" #: ../input-pad/unicode_block.h:134 msgid "Ideographic Description Characters" msgstr "" #: ../input-pad/unicode_block.h:135 msgid "CJK Symbols and Punctuation" msgstr "" #: ../input-pad/unicode_block.h:139 msgid "Hangul Compatibility Jamo" msgstr "" #: ../input-pad/unicode_block.h:140 msgid "Kanbun" msgstr "" #: ../input-pad/unicode_block.h:141 msgid "Bopomofo Extended" msgstr "" #: ../input-pad/unicode_block.h:142 msgid "CJK Strokes" msgstr "" #: ../input-pad/unicode_block.h:143 msgid "Katakana Phonetic Extensions" msgstr "" #: ../input-pad/unicode_block.h:144 msgid "Enclosed CJK Letters and Months" msgstr "" #: ../input-pad/unicode_block.h:146 msgid "CJK Unified Ideographs Extension A" msgstr "" #: ../input-pad/unicode_block.h:147 msgid "Yijing Hexagram Symbols" msgstr "" #: ../input-pad/unicode_block.h:148 msgid "CJK Unified Ideographs" msgstr "" #: ../input-pad/unicode_block.h:149 msgid "Yi Syllables" msgstr "" #: ../input-pad/unicode_block.h:150 msgid "Yi Radicals" msgstr "" #: ../input-pad/unicode_block.h:151 msgid "Lisu" msgstr "" #: ../input-pad/unicode_block.h:152 msgid "Vai" msgstr "" #: ../input-pad/unicode_block.h:153 msgid "Cyrillic Extended-B" msgstr "" #: ../input-pad/unicode_block.h:154 msgid "Bamum" msgstr "" #: ../input-pad/unicode_block.h:155 msgid "Modifier Tone Letters" msgstr "" #: ../input-pad/unicode_block.h:156 msgid "Latin Extended-D" msgstr "" #: ../input-pad/unicode_block.h:157 msgid "Syloti Nagri" msgstr "" #: ../input-pad/unicode_block.h:158 msgid "Common Indic Number Forms" msgstr "" #: ../input-pad/unicode_block.h:159 msgid "Phags-pa" msgstr "" #: ../input-pad/unicode_block.h:160 msgid "Saurashtra" msgstr "" #: ../input-pad/unicode_block.h:161 msgid "Devanagari Extended" msgstr "" #: ../input-pad/unicode_block.h:162 msgid "Kayah Li" msgstr "" #: ../input-pad/unicode_block.h:163 msgid "Rejang" msgstr "" #: ../input-pad/unicode_block.h:164 msgid "Hangul Jamo Extended-A" msgstr "" #: ../input-pad/unicode_block.h:165 msgid "Javanese" msgstr "" #: ../input-pad/unicode_block.h:166 msgid "Cham" msgstr "" #: ../input-pad/unicode_block.h:167 msgid "Myanmar Extended-A" msgstr "" #: ../input-pad/unicode_block.h:168 msgid "Tai Viet" msgstr "" #: ../input-pad/unicode_block.h:169 msgid "Meetei Mayek" msgstr "" #: ../input-pad/unicode_block.h:170 msgid "Hangul Syllables" msgstr "" #: ../input-pad/unicode_block.h:171 msgid "Hangul Jamo Extended-B" msgstr "" #: ../input-pad/unicode_block.h:172 msgid "High Surrogates" msgstr "" #: ../input-pad/unicode_block.h:173 msgid "High Private Use Surrogates" msgstr "" #: ../input-pad/unicode_block.h:174 msgid "Low Surrogates" msgstr "" #: ../input-pad/unicode_block.h:175 msgid "Private Use Area" msgstr "" #: ../input-pad/unicode_block.h:176 msgid "CJK Compatibility Ideographs" msgstr "" #: ../input-pad/unicode_block.h:177 msgid "Alphabetic Presentation Forms" msgstr "" #: ../input-pad/unicode_block.h:178 msgid "Arabic Presentation Forms-A" msgstr "" #: ../input-pad/unicode_block.h:179 msgid "Variation Selectors" msgstr "" #: ../input-pad/unicode_block.h:180 msgid "Vertical Forms" msgstr "" #: ../input-pad/unicode_block.h:181 msgid "Combining Half Marks" msgstr "" #: ../input-pad/unicode_block.h:182 msgid "CJK Compatibility Forms" msgstr "" #: ../input-pad/unicode_block.h:183 msgid "Small Form Variants" msgstr "" #: ../input-pad/unicode_block.h:184 msgid "Arabic Presentation Forms-B" msgstr "" #: ../input-pad/unicode_block.h:185 msgid "Halfwidth and Fullwidth Forms" msgstr "" #: ../input-pad/unicode_block.h:186 msgid "Specials" msgstr "Bereziak" #: ../input-pad/unicode_block.h:187 msgid "Linear B Syllabary" msgstr "" #: ../input-pad/unicode_block.h:188 msgid "Linear B Ideograms" msgstr "" #: ../input-pad/unicode_block.h:189 msgid "Aegean Numbers" msgstr "" #: ../input-pad/unicode_block.h:190 msgid "Ancient Greek Numbers" msgstr "" #: ../input-pad/unicode_block.h:191 msgid "Ancient Symbols" msgstr "" #: ../input-pad/unicode_block.h:192 msgid "Phaistos Disc" msgstr "" #: ../input-pad/unicode_block.h:193 msgid "Lycian" msgstr "" #: ../input-pad/unicode_block.h:194 msgid "Carian" msgstr "" #: ../input-pad/unicode_block.h:195 msgid "Old Italic" msgstr "" #: ../input-pad/unicode_block.h:197 msgid "Ugaritic" msgstr "" #: ../input-pad/unicode_block.h:198 msgid "Old Persian" msgstr "" #: ../input-pad/unicode_block.h:199 msgid "Deseret" msgstr "" #: ../input-pad/unicode_block.h:201 msgid "Osmanya" msgstr "" #: ../input-pad/unicode_block.h:202 msgid "Cypriot Syllabary" msgstr "" #: ../input-pad/unicode_block.h:203 msgid "Imperial Aramaic" msgstr "" #: ../input-pad/unicode_block.h:204 msgid "Phoenician" msgstr "" #: ../input-pad/unicode_block.h:205 msgid "Lydian" msgstr "" #: ../input-pad/unicode_block.h:206 msgid "Kharoshthi" msgstr "" #: ../input-pad/unicode_block.h:207 msgid "Old South Arabian" msgstr "" #: ../input-pad/unicode_block.h:208 msgid "Avestan" msgstr "" #: ../input-pad/unicode_block.h:209 msgid "Inscriptional Parthian" msgstr "" #: ../input-pad/unicode_block.h:210 msgid "Inscriptional Pahlavi" msgstr "" #: ../input-pad/unicode_block.h:211 msgid "Old Turkic" msgstr "" #: ../input-pad/unicode_block.h:212 msgid "Rumi Numeral Symbols" msgstr "" #: ../input-pad/unicode_block.h:213 msgid "Kaithi" msgstr "" #: ../input-pad/unicode_block.h:214 msgid "Cuneiform" msgstr "" #: ../input-pad/unicode_block.h:215 msgid "Cuneiform Numbers and Punctuation" msgstr "" #: ../input-pad/unicode_block.h:216 msgid "Egyptian Hieroglyphs" msgstr "" #: ../input-pad/unicode_block.h:217 msgid "Byzantine Musical Symbols" msgstr "" #: ../input-pad/unicode_block.h:218 msgid "Musical Symbols" msgstr "" #: ../input-pad/unicode_block.h:219 msgid "Ancient Greek Musical Notation" msgstr "" #: ../input-pad/unicode_block.h:220 msgid "Tai Xuan Jing Symbols" msgstr "" #: ../input-pad/unicode_block.h:221 msgid "Counting Rod Numerals" msgstr "" #: ../input-pad/unicode_block.h:222 msgid "Mathematical Alphanumeric Symbols" msgstr "" #: ../input-pad/unicode_block.h:223 msgid "Mahjong Tiles" msgstr "" #: ../input-pad/unicode_block.h:224 msgid "Domino Tiles" msgstr "" #: ../input-pad/unicode_block.h:225 msgid "Enclosed Alphanumeric Supplement" msgstr "" #: ../input-pad/unicode_block.h:226 msgid "Enclosed Ideographic Supplement" msgstr "" #: ../input-pad/unicode_block.h:227 msgid "CJK Unified Ideographs Extension B" msgstr "" #: ../input-pad/unicode_block.h:228 msgid "CJK Unified Ideographs Extension C" msgstr "" #: ../input-pad/unicode_block.h:229 msgid "CJK Compatibility Ideographs Supplement" msgstr "" #: ../input-pad/unicode_block.h:230 msgid "Tags" msgstr "" #: ../input-pad/unicode_block.h:231 msgid "Variation Selectors Supplement" msgstr "" #: ../input-pad/unicode_block.h:232 msgid "Supplementary Private Use Area-A" msgstr "" #: ../input-pad/unicode_block.h:233 msgid "Supplementary Private Use Area-B" msgstr "" #: ../input-pad/window-gtk.c:203 msgid "Display version" msgstr "Bistaratu bertsioa" #. Translators: the word 'KBDUI' is not translated. #: ../input-pad/window-gtk.c:206 msgid "Use KBDUI to draw keyboard" msgstr "" #. Translators: the word 'TYPE' is not translated. #: ../input-pad/window-gtk.c:209 msgid "Use TYPE of char table. The available TYPE=0, 1, 2" msgstr "" #. Translators: the word 'TYPE' is not translated. #: ../input-pad/window-gtk.c:212 msgid "Use TYPE of keyboard layout. The available TYPE=0, 1" msgstr "" #: ../input-pad/window-gtk.c:219 msgid "Use XTEST module to send key events" msgstr "" #: ../input-pad/window-gtk.c:224 msgid "Use XSendEvent to send key events" msgstr "" #: ../input-pad/window-gtk.c:1172 msgid "Fold layout" msgstr "" #: ../input-pad/window-gtk.c:1177 ../input-pad/window-gtk.c:2610 msgid "Extend layout" msgstr "" #: ../input-pad/window-gtk.c:2824 msgid "Layout" msgstr "" #: ../input-pad/window-gtk.c:3095 msgid "_Layout:" msgstr "" #: ../input-pad/window-gtk.c:3125 msgid "_Configure Layouts" msgstr "" #. No longer used in gtk 2.20 #. gchar *license1, *license2, *license3; #. license1 = _("" #. "This library is free software; you can redistribute it and/or " #. "modify it under the terms of the GNU Lesser General Public " #. "License as published by the Free Software Foundation; either " #. "version 2 of the License, or (at your option) any later version."); #. #. license2 = _("" #. "This library is distributed in the hope that it will be useful, " #. "but WITHOUT ANY WARRANTY; without even the implied warranty of " #. "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU " #. "Lesser General Public License for more details."); #. #. license3 = _("" #. "You should have received a copy of the GNU Lesser General Public " #. "License along with this library; if not, write to the Free Software " #. "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, " #. "MA 02110-1301 USA"); #. #. license = g_strdup_printf ("%s\n\n%s\n\n%s", #. license1, license2, license3); #. #. This format has been used since gtk 2.20. #: ../input-pad/window-gtk.c:3164 #, c-format msgid "This program comes with ABSOLUTELY NO WARRANTY; for details, visit %s" msgstr "" #: ../input-pad/window-gtk.c:3446 msgid "Group" msgstr "Taldea" #: ../input-pad/window-gtk.c:3454 msgid "Subgroup" msgstr "Azpitaldea" input-pad-1.1.0/po/fr.po000066400000000000000000002376451476727667600150540ustar00rootroot00000000000000# French translations for input-pad # Copyright (C) 2010-2025 Takao Fujiwara # This file is distributed under the same license as the input-pad package. # # Translators: # Jérôme Fenal , 2012-2013 # Nobuharu Kojima , 2012 # , 2012 # Nobuharu Kojima , 2012 # Damien Pou , 2024. msgid "" msgstr "" "Project-Id-Version: input-pad HEAD\n" "Report-Msgid-Bugs-To: http://code.google.com/p/input-pad/issues/list\n" "POT-Creation-Date: 2016-03-02 18:45+0900\n" "PO-Revision-Date: 2024-01-17 12:37+0000\n" "Last-Translator: Damien Pou \n" "Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Generator: Weblate 5.3.1\n" #: ../data/alphabet.xml.in.in.h:1 msgid "Alphabets" msgstr "Alphabets" #: ../data/base.xml.in.h:1 msgid "Symbols" msgstr "Symboles" #: ../data/base.xml.in.h:2 msgid "Currency" msgstr "Monnaie" #: ../data/base.xml.in.h:3 msgid "Letterlike" msgstr "Letterlike" #: ../data/base.xml.in.h:4 msgid "Miscellaneous" msgstr "Divers" #: ../data/base.xml.in.h:5 ../input-pad/unicode_block.h:116 msgid "Dingbats" msgstr "Casseaux" #. Translators: Superscripts and Subscripts #: ../data/base.xml.in.h:7 msgid "Super and Sub" msgstr "Exposants et indices" #: ../data/base.xml.in.h:8 msgid "Bold" msgstr "Gras" #: ../data/base.xml.in.h:9 msgid "Italic" msgstr "Italique" #: ../data/base.xml.in.h:10 msgid "Script" msgstr "Script" #: ../data/base.xml.in.h:11 msgid "Double Struck" msgstr "Double barré" #: ../data/base.xml.in.h:12 msgid "All" msgstr "Tous" #: ../data/base.xml.in.h:13 ../data/zh.xml.in.h:2 msgid "Numbers" msgstr "Nombres" #: ../data/base.xml.in.h:14 msgid "Roman" msgstr "Romain" #: ../data/base.xml.in.h:15 msgid "Enclosed" msgstr "Cerclés" #: ../data/base.xml.in.h:16 msgid "Fraction" msgstr "Fraction" #: ../data/base.xml.in.h:17 msgid "Technical" msgstr "Technique" #: ../data/base.xml.in.h:18 msgid "Unit" msgstr "Unité" #: ../data/base.xml.in.h:19 msgid "Mathematical" msgstr "Mathématiques" #: ../data/base.xml.in.h:20 msgid "Controls" msgstr "Contrôles" #: ../data/base.xml.in.h:21 msgid "OCR" msgstr "OCR" #: ../data/base.xml.in.h:22 msgid "Graphics" msgstr "Graphiques" #: ../data/base.xml.in.h:23 msgid "Arrow" msgstr "Flèche" #: ../data/base.xml.in.h:24 ../input-pad/unicode_block.h:112 msgid "Box Drawing" msgstr "Dessiner des boîtes" #: ../data/base.xml.in.h:25 ../input-pad/window-gtk.c:3685 msgid "Block" msgstr "Bloc" #: ../data/base.xml.in.h:26 msgid "Geometric" msgstr "Géométriques" #: ../data/base.xml.in.h:27 msgid "Braille" msgstr "Braille" #: ../data/base.xml.in.h:28 msgid "Punctuations" msgstr "Ponctuations" #: ../data/base.xml.in.h:29 msgid "General" msgstr "Généraux" #: ../data/base.xml.in.h:30 msgid "CJK" msgstr "CJK" #: ../data/base.xml.in.h:31 ../input-pad/unicode_block.h:145 msgid "CJK Compatibility" msgstr "Compatibilité CJK " #: ../data/base.xml.in.h:32 msgid "Small Form" msgstr "Petite forme" #: ../data/cmd.xml.in.h:1 msgid "Command" msgstr "Commande" #: ../data/cmd.xml.in.h:2 msgid "Date" msgstr "Date" #: ../data/cmd.xml.in.h:3 msgid "Normal Date" msgstr "Date normale" #: ../data/cmd.xml.in.h:4 msgid "Date and Time" msgstr "Date et temps" #: ../data/cmd.xml.in.h:5 msgid "ChangeLog date" msgstr "Date du journal de modification" #: ../data/cmd.xml.in.h:6 msgid "USA English date" msgstr "Date anglaise USA" #: ../data/cmd.xml.in.h:7 msgid "UK English date" msgstr "Date anglaise UK" #: ../data/cmd.xml.in.h:8 msgid "ISO 8601 date" msgstr "Date ISO 8601" #: ../data/cmd.xml.in.h:9 msgid "Era" msgstr "Ère" #: ../data/cmd.xml.in.h:10 msgid "Century Year" msgstr "Émoticones" #: ../data/cmd.xml.in.h:11 msgid "Normal Time" msgstr "Temps normal" #: ../data/cmd.xml.in.h:12 msgid "English Time" msgstr "Temps anglais" #: ../data/cmd.xml.in.h:13 msgid "Month" msgstr "Mois" #: ../data/cmd.xml.in.h:14 msgid "English Month" msgstr "Mois anglais" #: ../data/cmd.xml.in.h:15 msgid "Short Month" msgstr "Mois court" #: ../data/cmd.xml.in.h:16 msgid "English Short Month" msgstr "Court mois anglais" #: ../data/cmd.xml.in.h:17 msgid "Weekday" msgstr "Jour de la semaine" #: ../data/cmd.xml.in.h:18 msgid "English Weekday" msgstr "Jour de la semaine anglais" #: ../data/cmd.xml.in.h:19 msgid "Short Weekday" msgstr "Jour de la semaine court" #: ../data/cmd.xml.in.h:20 msgid "English Short Weekday" msgstr "Court jour de la semaine anglais" #: ../data/goth.xml.in.h:1 ../input-pad/unicode_block.h:196 msgid "Gothic" msgstr "Gothique" #: ../data/input-pad.desktop.in.h:1 ../input-pad/dialog.ui.h:42 #: ../input-pad/window-gtk.c:5084 ../input-pad/window-gtk.c:5085 #: ../input-pad/window-gtk.ui.h:1 msgid "Input Pad" msgstr "Aire de saisie" #. "IPA" stands for "International Phonetic Alphabet" #: ../data/ipa-obsolete.xml.in.h:2 msgid "IPA (Obsolete)" msgstr "API (Obsolète)" #: ../data/ipa-obsolete.xml.in.h:3 ../data/ipa.xml.in.h:6 msgid "Open back unrounded vowel" msgstr "Voyelle ouverte postérieure non arrondie" #: ../data/ipa-obsolete.xml.in.h:4 msgid "Palatalized voiced bilabial plosive" msgstr "Plosive bilabiale voisée palatalisée" #: ../data/ipa-obsolete.xml.in.h:5 msgid "Voiceless palatal implosive" msgstr "Implosif palatal sans voix" #: ../data/ipa-obsolete.xml.in.h:6 ../data/ipa.xml.in.h:138 msgid "Alveolar click" msgstr "Clic alvéolaire" #: ../data/ipa-obsolete.xml.in.h:7 msgid "Palatalized voiced alveolar plosive" msgstr "Plosive alvéolaire voisée palatalisée" #: ../data/ipa-obsolete.xml.in.h:8 ../data/ipa.xml.in.h:25 msgid "Voiced alveolar affricate" msgstr "Consonne affriquée alvéolaire voisée" #: ../data/ipa-obsolete.xml.in.h:9 ../data/ipa.xml.in.h:27 msgid "Voiced alveopalatal affricate" msgstr "Consonne fricative alvéopalatalisée voisée" #: ../data/ipa-obsolete.xml.in.h:10 ../data/ipa.xml.in.h:26 msgid "Voiced palato-alveolar affricate" msgstr "Consonne affriquée palato-alvéolaire voisée" #: ../data/ipa-obsolete.xml.in.h:11 msgid "Palatalized voiceless labiodental fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:12 msgid "Palatalized voiced velar plosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:13 msgid "Palatalized voiceless velar plosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:14 msgid "Voiceless velar implosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:15 msgid "Palatalized alveolar lateral approximant" msgstr "" #: ../data/ipa-obsolete.xml.in.h:16 msgid "Palatalized bilabial nasal" msgstr "" #: ../data/ipa-obsolete.xml.in.h:17 msgid "Palatalized alveolar nasal" msgstr "" #: ../data/ipa-obsolete.xml.in.h:18 msgid "Syllabic alveolar nasal" msgstr "" #: ../data/ipa-obsolete.xml.in.h:19 msgid "Palatalized voiceless bilabial plosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:20 msgid "Voiceless bilabial implosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:21 msgid "Palatalized alveolar trill" msgstr "" #: ../data/ipa-obsolete.xml.in.h:22 msgid "Voiced strident apico-alveolar trill" msgstr "" #: ../data/ipa-obsolete.xml.in.h:23 msgid "Palatalized voiceless alveolar fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:24 ../data/ipa.xml.in.h:19 msgid "Voiceless alveopalatal fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:25 msgid "Labialized voiceless palato-alveolar fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:26 ../data/ipa.xml.in.h:103 msgid "Voiceless alveopalatal affricate" msgstr "" #: ../data/ipa-obsolete.xml.in.h:27 ../data/ipa.xml.in.h:101 msgid "Voiceless alveolar affricate" msgstr "" #: ../data/ipa-obsolete.xml.in.h:28 ../data/ipa.xml.in.h:102 msgid "Voiceless palato-alveolar affricate" msgstr "" #: ../data/ipa-obsolete.xml.in.h:29 msgid "Palatalized voiceless alveolar plosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:30 msgid "Voiceless alveolar implosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:31 ../data/ipa.xml.in.h:137 msgid "Dental click" msgstr "Cyrillique étendu-B" #: ../data/ipa-obsolete.xml.in.h:32 msgid "Voiceless uvular implosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:33 msgid "Palatalized voiced labiodental fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:34 msgid "Palatalized voiceless velar fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:35 msgid "Palatalized voiced alveolar fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:36 msgid "Labialized voiced palato-alveolar fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:37 ../data/ipa.xml.in.h:128 msgid "Voiced alveopalatal fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:38 ../data/ipa.xml.in.h:106 msgid "Near-close near-back vowel" msgstr "" #: ../data/ipa-obsolete.xml.in.h:39 ../data/ipa.xml.in.h:140 msgid "Alveolar lateral click" msgstr "" #: ../data/ipa-obsolete.xml.in.h:40 msgid "Labialized voiceless alveolar or dental fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:41 msgid "Labialized voiced alveolar or dental fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:42 msgid "Combining labialization mark" msgstr "" #: ../data/ipa-obsolete.xml.in.h:43 msgid "Combining palatalization mark" msgstr "" #. "IPA" stands for "International Phonetic Alphabet" #: ../data/ipa-unofficial.xml.in.h:2 msgid "IPA (Unofficial)" msgstr "API (non officiel)" #: ../data/ipa-unofficial.xml.in.h:3 msgid "Voiced labiodental plosive" msgstr "" #: ../data/ipa-unofficial.xml.in.h:4 ../data/ipa.xml.in.h:18 msgid "Voiceless palatal lateral affricate" msgstr "" #: ../data/ipa-unofficial.xml.in.h:5 msgid "Voiced retroflex implosive" msgstr "" #: ../data/ipa-unofficial.xml.in.h:6 ../data/ipa.xml.in.h:88 msgid "Alveolar flap" msgstr "Consonne battue alvéolaire voisée" #: ../data/ipa-unofficial.xml.in.h:7 ../data/ipa.xml.in.h:125 msgid "Voiceless palatal lateral fricative" msgstr "Consonne fricative latérale palatale sourde" #: ../data/ipa-unofficial.xml.in.h:8 ../data/ipa.xml.in.h:91 msgid "Retroflex flap" msgstr "" #: ../data/ipa-unofficial.xml.in.h:9 msgid "Voiceless retroflex lateral fricative" msgstr "" #. "PUA" stands for "Private Use Area" #: ../data/ipa-unofficial.xml.in.h:11 msgid "Voiceless retroflex lateral fricative (PUA)" msgstr "" #: ../data/ipa-unofficial.xml.in.h:12 ../data/ipa.xml.in.h:59 msgid "Voiceless velar lateral affricate" msgstr "" #: ../data/ipa-unofficial.xml.in.h:13 ../data/ipa.xml.in.h:68 msgid "Voiceless velar lateral fricative" msgstr "" #: ../data/ipa-unofficial.xml.in.h:14 msgid "Epiglottal trill" msgstr "" #: ../data/ipa-unofficial.xml.in.h:15 msgid "Voiceless labiodental plosive" msgstr "" #: ../data/ipa-unofficial.xml.in.h:16 msgid "Voiceless retroflex lateral affricate" msgstr "" #. "PUA" stands for "Private Use Area" #: ../data/ipa-unofficial.xml.in.h:18 msgid "Voiceless retroflex lateral affricate (PUA)" msgstr "" #: ../data/ipa-unofficial.xml.in.h:19 msgid "Combining stridency mark" msgstr "" #. "PUA" stands for "Private Use Area" #: ../data/ipa-unofficial.xml.in.h:21 msgid "Combining stridency mark (PUA)" msgstr "" #. "IPA" stands for "International Phonetic Alphabet" #: ../data/ipa.xml.in.h:2 msgid "IPA" msgstr "API" #: ../data/ipa.xml.in.h:3 msgid "Open front unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:4 msgid "Open central unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:5 msgid "Near-open central vowel" msgstr "" #: ../data/ipa.xml.in.h:7 msgid "Open back rounded vowel" msgstr "Voyelle ouverte postérieure arrondie" #: ../data/ipa.xml.in.h:8 msgid "Open-mid back unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:9 msgid "Near-open front unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:10 msgid "Voiced bilabial plosive" msgstr "" #: ../data/ipa.xml.in.h:11 msgid "Voiced labiodental affricate" msgstr "" #: ../data/ipa.xml.in.h:12 msgid "Voiced bilabial implosive" msgstr "" #: ../data/ipa.xml.in.h:13 msgid "Bilabial trill" msgstr "" #: ../data/ipa.xml.in.h:14 msgid "Voiced bilabial fricative" msgstr "" #: ../data/ipa.xml.in.h:15 msgid "Voiceless palatal plosive" msgstr "" #: ../data/ipa.xml.in.h:16 msgid "Voiceless palatal fricative" msgstr "" #: ../data/ipa.xml.in.h:17 msgid "Voiceless palatal affricate" msgstr "" #: ../data/ipa.xml.in.h:20 msgid "Voiced alveolar plosive" msgstr "" #: ../data/ipa.xml.in.h:21 msgid "Voiced alveolar implosive" msgstr "" #: ../data/ipa.xml.in.h:22 msgid "Voiced retroflex plosive" msgstr "" #: ../data/ipa.xml.in.h:23 msgid "Voiced dental fricative" msgstr "" #: ../data/ipa.xml.in.h:24 msgid "Voiced alveolar lateral affricate" msgstr "" #: ../data/ipa.xml.in.h:28 msgid "Voiced retroflex affricate" msgstr "" #: ../data/ipa.xml.in.h:29 msgid "Close-mid front unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:30 msgid "Close-mid central unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:31 msgid "Mid-central vowel" msgstr "Voyelle moyenne centrale" #: ../data/ipa.xml.in.h:32 msgid "Rhotacized mid-central vowel" msgstr "" #: ../data/ipa.xml.in.h:33 msgid "Open-mid front unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:34 msgid "Open-mid central rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:35 msgid "Open-mid central unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:36 msgid "Rhotacized open-mid central unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:37 msgid "Voiceless labiodental fricative" msgstr "" #: ../data/ipa.xml.in.h:38 msgid "Velopharyngeal fricative" msgstr "" #: ../data/ipa.xml.in.h:39 msgid "Voiced velar plosive" msgstr "" #: ../data/ipa.xml.in.h:40 msgid "Voiced labial-velar plosive" msgstr "" #: ../data/ipa.xml.in.h:41 msgid "Voiced velar implosive" msgstr "" #: ../data/ipa.xml.in.h:42 msgid "Voiced uvular plosive" msgstr "" #: ../data/ipa.xml.in.h:43 msgid "Voiced uvular implosive" msgstr "" #: ../data/ipa.xml.in.h:44 msgid "Voiceless glottal fricative" msgstr "" #: ../data/ipa.xml.in.h:45 msgid "Voiced glottal fricative" msgstr "" #: ../data/ipa.xml.in.h:46 msgid "Voiceless pharyngeal fricative" msgstr "Hangeul Jamo" #: ../data/ipa.xml.in.h:47 msgid "Voiceless coarticulated velar and palato-alveolar fricative" msgstr "" #: ../data/ipa.xml.in.h:48 msgid "Voiceless epiglottal fricative" msgstr "" #: ../data/ipa.xml.in.h:49 msgid "Close front unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:50 msgid "Near-close near-front unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:51 msgid "Near-close central unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:52 msgid "Close central unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:53 msgid "Palatal approximant" msgstr "" #: ../data/ipa.xml.in.h:54 msgid "Voiced palatal fricative" msgstr "" #: ../data/ipa.xml.in.h:55 msgid "Voiced palatal plosive" msgstr "" #: ../data/ipa.xml.in.h:56 msgid "Voiced palatal affricate" msgstr "" #: ../data/ipa.xml.in.h:57 msgid "Voiced palatal implosive" msgstr "" #: ../data/ipa.xml.in.h:58 msgid "Voiceless velar plosive" msgstr "Consonne occlusive vélaire sourde" #: ../data/ipa.xml.in.h:60 msgid "Voiceless labial-velar plosive" msgstr "" #: ../data/ipa.xml.in.h:61 msgid "Voiceless velar affricate" msgstr "" #: ../data/ipa.xml.in.h:62 msgid "Alveolar lateral approximant" msgstr "Consonne spirante latérale alvéolaire voisée" #: ../data/ipa.xml.in.h:63 msgid "Velarized alveolar lateral approximant" msgstr "" #: ../data/ipa.xml.in.h:64 msgid "Voiceless alveolar lateral fricative" msgstr "Formes de compatibilité CJC" #: ../data/ipa.xml.in.h:65 msgid "Retroflex lateral approximant" msgstr "" #: ../data/ipa.xml.in.h:66 msgid "Voiced alveolar lateral fricative" msgstr "Consonne fricative latérale alvéolaire voisée" #: ../data/ipa.xml.in.h:67 msgid "Velar lateral approximant" msgstr "" #: ../data/ipa.xml.in.h:69 msgid "Bilabial nasal" msgstr "" #: ../data/ipa.xml.in.h:70 msgid "Labiodental nasal" msgstr "" #: ../data/ipa.xml.in.h:71 msgid "Alveolar nasal" msgstr "" #: ../data/ipa.xml.in.h:72 msgid "Velar nasal" msgstr "" #: ../data/ipa.xml.in.h:73 msgid "Labial-velar nasal" msgstr "" #: ../data/ipa.xml.in.h:74 msgid "Palatal nasal" msgstr "" #: ../data/ipa.xml.in.h:75 msgid "Retroflex nasal" msgstr "" #: ../data/ipa.xml.in.h:76 msgid "Uvular nasal" msgstr "" #: ../data/ipa.xml.in.h:77 msgid "Close-mid back rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:78 msgid "Close-mid front rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:79 msgid "Close-mid central rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:80 msgid "Open-mid front rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:81 msgid "Open front rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:82 msgid "Voiceless bilabial plosive" msgstr "" #: ../data/ipa.xml.in.h:83 msgid "Voiceless bilabial-labiodental affricate" msgstr "" #: ../data/ipa.xml.in.h:84 msgid "Voiceless bilabial affricate" msgstr "" #: ../data/ipa.xml.in.h:85 msgid "Voiceless labiodental affricate" msgstr "" #: ../data/ipa.xml.in.h:86 msgid "Voiceless uvular plosive" msgstr "" #: ../data/ipa.xml.in.h:87 msgid "Alveolar trill" msgstr "" #: ../data/ipa.xml.in.h:89 msgid "Alveolar lateral flap" msgstr "Consonne battue latérale alvéolaire voisée" #: ../data/ipa.xml.in.h:90 msgid "Uvular trill" msgstr "" #: ../data/ipa.xml.in.h:92 msgid "Alveolar approximant" msgstr "Consonne spirante alvéolaire voisée" #: ../data/ipa.xml.in.h:93 msgid "Retroflex approximant" msgstr "" #: ../data/ipa.xml.in.h:94 msgid "Voiced uvular fricative" msgstr "" #: ../data/ipa.xml.in.h:95 msgid "Voiceless alveolar fricative" msgstr "" #: ../data/ipa.xml.in.h:96 msgid "Voiceless palato-alveolar fricative" msgstr "" #: ../data/ipa.xml.in.h:97 msgid "Voiceless retroflex fricative" msgstr "" #: ../data/ipa.xml.in.h:98 msgid "Voiceless alveolar plosive" msgstr "" #: ../data/ipa.xml.in.h:99 msgid "Voiceless retroflex plosive" msgstr "" #: ../data/ipa.xml.in.h:100 msgid "Voiceless alveolar lateral affricate" msgstr "" #: ../data/ipa.xml.in.h:104 msgid "Voiceless retroflex affricate" msgstr "" #: ../data/ipa.xml.in.h:105 msgid "Close back rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:107 msgid "Near-close central vowel" msgstr "" #: ../data/ipa.xml.in.h:108 msgid "Close central rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:109 msgid "Labial-palatal approximant" msgstr "" #: ../data/ipa.xml.in.h:110 msgid "Close back unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:111 msgid "Voiced labiodental fricative" msgstr "" #: ../data/ipa.xml.in.h:112 msgid "Labiodental flap" msgstr "" #: ../data/ipa.xml.in.h:113 msgid "Labiodental approximant" msgstr "" #: ../data/ipa.xml.in.h:114 msgid "Voiced velar fricative" msgstr "" #: ../data/ipa.xml.in.h:115 msgid "Close-mid back unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:116 msgid "Voiced labiovelar approximant" msgstr "" #: ../data/ipa.xml.in.h:117 msgid "Voiceless labiovelar approximant" msgstr "" #: ../data/ipa.xml.in.h:118 msgid "Velar approximant" msgstr "" #: ../data/ipa.xml.in.h:119 msgid "Bilabial percussive" msgstr "" #: ../data/ipa.xml.in.h:120 msgid "Voiceless velar fricative" msgstr "Consonne fricative vélaire sourde" #: ../data/ipa.xml.in.h:121 msgid "Voiceless uvular fricative" msgstr "" #: ../data/ipa.xml.in.h:122 msgid "Close front rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:123 msgid "Near-close near-front rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:124 msgid "Palatal lateral approximant" msgstr "" #: ../data/ipa.xml.in.h:126 msgid "Voiced alveolar fricative" msgstr "" #: ../data/ipa.xml.in.h:127 msgid "Voiced palato-alveolar fricative" msgstr "" #: ../data/ipa.xml.in.h:129 msgid "Voiced retroflex fricative" msgstr "" #: ../data/ipa.xml.in.h:130 msgid "Voiceless dental fricative" msgstr "" #: ../data/ipa.xml.in.h:131 msgid "Voiceless bilabial fricative" msgstr "" #: ../data/ipa.xml.in.h:132 msgid "Glottal stop" msgstr "" #: ../data/ipa.xml.in.h:133 msgid "Epiglottal plosive" msgstr "" #: ../data/ipa.xml.in.h:134 msgid "Voiced pharyngeal fricative" msgstr "" #: ../data/ipa.xml.in.h:135 msgid "Voiced epiglottal fricative" msgstr "" #: ../data/ipa.xml.in.h:136 msgid "Bilabial click" msgstr "" #: ../data/ipa.xml.in.h:139 msgid "Palatal click" msgstr "" #: ../data/ipa.xml.in.h:141 msgid "Bidental percussive" msgstr "" #: ../data/ipa.xml.in.h:142 msgid "Aspiration mark" msgstr "" #: ../data/ipa.xml.in.h:143 msgid "Non-aspiration mark" msgstr "" #: ../data/ipa.xml.in.h:144 msgid "Breathy voice mark" msgstr "" #: ../data/ipa.xml.in.h:145 msgid "Palatalization mark" msgstr "" #: ../data/ipa.xml.in.h:146 msgid "Lateral release mark" msgstr "" #: ../data/ipa.xml.in.h:147 msgid "Bilabial nasal release mark" msgstr "" #: ../data/ipa.xml.in.h:148 msgid "Labiodental nasal release mark" msgstr "" #: ../data/ipa.xml.in.h:149 msgid "Alveolar nasal release mark" msgstr "" #: ../data/ipa.xml.in.h:150 msgid "Palatal nasal release mark" msgstr "" #: ../data/ipa.xml.in.h:151 msgid "Retroflex nasal release mark" msgstr "" #: ../data/ipa.xml.in.h:152 msgid "Uvular nasal release mark" msgstr "" #: ../data/ipa.xml.in.h:153 msgid "Labio-palatalization mark" msgstr "" #: ../data/ipa.xml.in.h:154 msgid "Labiodentalization mark" msgstr "" #: ../data/ipa.xml.in.h:155 msgid "Labialization mark" msgstr "" #: ../data/ipa.xml.in.h:156 msgid "Velarization mark" msgstr "" #: ../data/ipa.xml.in.h:157 msgid "Glottalization mark" msgstr "" #: ../data/ipa.xml.in.h:158 msgid "Pharyngealization mark" msgstr "" #: ../data/ipa.xml.in.h:159 msgid "Combining velarization/pharyngealization mark" msgstr "" #: ../data/ipa.xml.in.h:160 msgid "Combining laryngealization mark" msgstr "" #: ../data/ipa.xml.in.h:161 msgid "Combining retroflexion mark" msgstr "" #: ../data/ipa.xml.in.h:162 msgid "Ejection mark" msgstr "" #: ../data/ipa.xml.in.h:163 msgid "Rhotacization mark" msgstr "" #: ../data/ipa.xml.in.h:164 msgid "Combining dentalization mark" msgstr "" #: ../data/ipa.xml.in.h:165 msgid "Combining dentolabialization mark" msgstr "" #: ../data/ipa.xml.in.h:166 msgid "Combining alveolarization mark" msgstr "" #: ../data/ipa.xml.in.h:167 msgid "Combining linguolabialization mark" msgstr "" #: ../data/ipa.xml.in.h:168 msgid "Combining apicalization mark" msgstr "" #: ../data/ipa.xml.in.h:169 msgid "Combining laminalization mark" msgstr "" #: ../data/ipa.xml.in.h:170 msgid "Combining centralization mark" msgstr "" #: ../data/ipa.xml.in.h:171 msgid "Combining mid-centralization mark" msgstr "" #: ../data/ipa.xml.in.h:172 msgid "Combining nasalization mark" msgstr "" #: ../data/ipa.xml.in.h:173 msgid "Combining nasalization mark below" msgstr "" #: ../data/ipa.xml.in.h:174 msgid "Combining denasalization mark" msgstr "" #: ../data/ipa.xml.in.h:175 msgid "Combining nasal friction mark" msgstr "" #: ../data/ipa.xml.in.h:176 msgid "Combining velopharyngeal friction mark" msgstr "" #: ../data/ipa.xml.in.h:177 msgid "Combining voiced mark" msgstr "" #: ../data/ipa.xml.in.h:178 msgid "Combining voiceless mark" msgstr "" #: ../data/ipa.xml.in.h:179 msgid "Combining voiceless mark above" msgstr "" #: ../data/ipa.xml.in.h:180 msgid "Pre-voicing/post-voicing mark" msgstr "" #: ../data/ipa.xml.in.h:181 msgid "Combining breathy voice mark" msgstr "" #: ../data/ipa.xml.in.h:182 msgid "Combining unreleased stop mark" msgstr "" #: ../data/ipa.xml.in.h:183 msgid "Combining more rounded mark" msgstr "" #: ../data/ipa.xml.in.h:184 msgid "Combining less rounded mark" msgstr "" #: ../data/ipa.xml.in.h:185 msgid "Combining labial spreading mark" msgstr "" #: ../data/ipa.xml.in.h:186 msgid "Combining syllabic mark" msgstr "" #: ../data/ipa.xml.in.h:187 msgid "Combining syllabic mark above" msgstr "" #: ../data/ipa.xml.in.h:188 msgid "Combining non-syllabic mark" msgstr "" #: ../data/ipa.xml.in.h:189 msgid "Combining non-syllabic mark above" msgstr "" #: ../data/ipa.xml.in.h:190 msgid "Combining top tone mark" msgstr "" #: ../data/ipa.xml.in.h:191 msgid "Combining high tone mark" msgstr "" #: ../data/ipa.xml.in.h:192 msgid "Combining mid tone mark" msgstr "" #: ../data/ipa.xml.in.h:193 msgid "Combining low tone mark" msgstr "" #: ../data/ipa.xml.in.h:194 msgid "Combining bottom tone mark" msgstr "" #: ../data/ipa.xml.in.h:195 msgid "Combining falling tone mark" msgstr "" #: ../data/ipa.xml.in.h:196 msgid "Combining high falling tone mark" msgstr "" #: ../data/ipa.xml.in.h:197 msgid "Combining low falling tone mark" msgstr "" #: ../data/ipa.xml.in.h:198 msgid "Combining rising tone mark" msgstr "" #: ../data/ipa.xml.in.h:199 msgid "Combining high rising tone mark" msgstr "" #: ../data/ipa.xml.in.h:200 msgid "Combining low rising tone mark" msgstr "" #: ../data/ipa.xml.in.h:201 msgid "Combining dipping tone mark" msgstr "" #: ../data/ipa.xml.in.h:202 msgid "Combining peaking tone mark" msgstr "" #: ../data/ipa.xml.in.h:203 msgid "Top tone letter" msgstr "" #: ../data/ipa.xml.in.h:204 msgid "High tone letter" msgstr "" #: ../data/ipa.xml.in.h:205 msgid "Mid tone letter" msgstr "" #: ../data/ipa.xml.in.h:206 msgid "Low tone letter" msgstr "" #: ../data/ipa.xml.in.h:207 msgid "Bottom tone letter" msgstr "" #: ../data/ipa.xml.in.h:208 msgid "Falling tone digraph" msgstr "" #: ../data/ipa.xml.in.h:209 msgid "High falling tone digraph" msgstr "" #: ../data/ipa.xml.in.h:210 msgid "Rising tone digraph" msgstr "" #: ../data/ipa.xml.in.h:211 msgid "High rising tone digraph" msgstr "" #: ../data/ipa.xml.in.h:212 msgid "Low rising tone digraph" msgstr "" #: ../data/ipa.xml.in.h:213 msgid "Dipping tone trigraph" msgstr "" #: ../data/ipa.xml.in.h:214 msgid "Peaking tone trigraph" msgstr "" #: ../data/ipa.xml.in.h:215 msgid "Upstep mark" msgstr "" #: ../data/ipa.xml.in.h:216 msgid "Downstep mark" msgstr "" #: ../data/ipa.xml.in.h:217 msgid "Minor break" msgstr "" #: ../data/ipa.xml.in.h:218 msgid "Major break" msgstr "" #: ../data/ipa.xml.in.h:219 msgid "Rising intonation mark" msgstr "" #: ../data/ipa.xml.in.h:220 msgid "Falling intonation mark" msgstr "" #: ../data/ipa.xml.in.h:221 msgid "Advanced articulation mark" msgstr "" #: ../data/ipa.xml.in.h:222 msgid "Retracted articulation mark" msgstr "" #: ../data/ipa.xml.in.h:223 msgid "Combining advanced articulation mark" msgstr "" #: ../data/ipa.xml.in.h:224 msgid "Combining retracted articulation mark" msgstr "" #: ../data/ipa.xml.in.h:225 msgid "Raised sound mark" msgstr "" #: ../data/ipa.xml.in.h:226 msgid "Lowered sound mark" msgstr "" #: ../data/ipa.xml.in.h:227 msgid "Combining raised sound mark" msgstr "" #: ../data/ipa.xml.in.h:228 msgid "Combining lowered sound mark" msgstr "" #: ../data/ipa.xml.in.h:229 msgid "Combining tongue root advancement mark" msgstr "" #: ../data/ipa.xml.in.h:230 msgid "Combining tongue root retraction mark" msgstr "" #: ../data/ipa.xml.in.h:231 msgid "Combining strong articulation mark" msgstr "" #: ../data/ipa.xml.in.h:232 msgid "Combining weak articulation mark" msgstr "" #: ../data/ipa.xml.in.h:233 msgid "Combining whistled articulation mark" msgstr "" #: ../data/ipa.xml.in.h:234 msgid "Combining sliding articulation mark" msgstr "" #: ../data/ipa.xml.in.h:235 msgid "Egression mark" msgstr "" #: ../data/ipa.xml.in.h:236 msgid "Ingression mark" msgstr "" #: ../data/ipa.xml.in.h:237 msgid "Combining ligature tie" msgstr "" #: ../data/ipa.xml.in.h:238 msgid "Combining ligature undertie" msgstr "" #: ../data/ipa.xml.in.h:239 msgid "Elongation mark" msgstr "" #: ../data/ipa.xml.in.h:240 msgid "Weak elongation mark" msgstr "" #: ../data/ipa.xml.in.h:241 msgid "Combining extra-short duration mark" msgstr "" #: ../data/ipa.xml.in.h:242 msgid "Liaison mark" msgstr "" #: ../data/ipa.xml.in.h:243 msgid "Stress mark" msgstr "" #: ../data/ipa.xml.in.h:244 msgid "Weak stress mark" msgstr "" #: ../data/ipa.xml.in.h:245 msgid "Syllable break" msgstr "" #: ../data/ipa.xml.in.h:246 msgid "Opening orthographic bracket" msgstr "" #: ../data/ipa.xml.in.h:247 msgid "Closing orthographic bracket" msgstr "" #: ../data/ja.xml.in.h:1 msgid "Japanese" msgstr "Japonais" #: ../data/ja.xml.in.h:2 ../input-pad/unicode_block.h:136 msgid "Hiragana" msgstr "Hiragana" #: ../data/ja.xml.in.h:3 ../input-pad/unicode_block.h:137 msgid "Katakana" msgstr "Katakana" #: ../data/ja.xml.in.h:4 ../data/zh.xml.in.h:3 msgid "Radicals" msgstr "Radicaux" #: ../data/ja.xml.in.h:5 ../input-pad/unicode_block.h:132 msgid "CJK Radicals Supplement" msgstr "Radicaux suppléments CJC" #: ../data/keyboard.xml.in.h:1 msgid "Keyboard" msgstr "Clavier" #: ../data/keyboard.xml.in.h:2 msgid "Function Key" msgstr "Touche de fonction" #: ../data/keyboard.xml.in.h:3 msgid "Key Pad" msgstr "Clavier numérique" #: ../data/latin.xml.in.h:1 msgid "ASCII" msgstr "ASCII" #: ../data/latin.xml.in.h:2 ../input-pad/unicode_block.h:38 msgid "Latin-1 Supplement" msgstr "Supplément Latin-1" #: ../data/latin.xml.in.h:3 ../input-pad/unicode_block.h:39 msgid "Latin Extended-A" msgstr "Latin étendu-A" #: ../data/latin.xml.in.h:4 msgid "Old and Middle English" msgstr "Ancien et moyen anglais" #: ../data/runr.xml.in.h:1 msgid "Runes (Unicode Block)" msgstr "Runes (bloc Unicode)" #: ../data/runr.xml.in.h:2 msgid "Runes (Elder Fuþark)" msgstr "" #: ../data/runr.xml.in.h:3 msgid "Runes (Younger Fuþark)" msgstr "" #: ../data/runr.xml.in.h:4 msgid "Runes (Fuþorc)" msgstr "" #: ../data/shaw.xml.in.h:1 ../input-pad/unicode_block.h:200 msgid "Shavian" msgstr "Shavien" #: ../data/str.xml.in.h:1 msgid "Chat" msgstr "Bavarder" #: ../data/str.xml.in.h:2 msgid "Emoji" msgstr "" #: ../data/str.xml.in.h:3 msgid "Rain" msgstr "" #: ../data/str.xml.in.h:4 msgid "Comet" msgstr "" #: ../data/str.xml.in.h:5 msgid "Cross" msgstr "" #: ../data/str.xml.in.h:6 msgid "Solar" msgstr "" #: ../data/str.xml.in.h:7 msgid "Mercury" msgstr "" #: ../data/str.xml.in.h:8 msgid "Venus" msgstr "" #: ../data/str.xml.in.h:9 msgid "Earth" msgstr "" #: ../data/str.xml.in.h:10 msgid "Mars" msgstr "" #: ../data/str.xml.in.h:11 msgid "Jupiter" msgstr "" #: ../data/str.xml.in.h:12 msgid "Saturn" msgstr "" #: ../data/str.xml.in.h:13 msgid "Uranus" msgstr "" #: ../data/str.xml.in.h:14 msgid "Neptune" msgstr "" #: ../data/str.xml.in.h:15 msgid "Pluto" msgstr "" #: ../data/str.xml.in.h:16 msgid "Aries" msgstr "" #: ../data/str.xml.in.h:17 msgid "Taurus" msgstr "" #: ../data/str.xml.in.h:18 msgid "Gemini" msgstr "" #: ../data/str.xml.in.h:19 msgid "Cancer" msgstr "" #: ../data/str.xml.in.h:20 msgid "Leo" msgstr "" #: ../data/str.xml.in.h:21 msgid "Virgo" msgstr "" #: ../data/str.xml.in.h:22 msgid "Libra" msgstr "" #: ../data/str.xml.in.h:23 msgid "Scorpius" msgstr "" #: ../data/str.xml.in.h:24 msgid "Sagittarius" msgstr "" #: ../data/str.xml.in.h:25 msgid "Capricorn" msgstr "" #: ../data/str.xml.in.h:26 msgid "Aquarius" msgstr "" #: ../data/str.xml.in.h:27 msgid "Pisces" msgstr "" #: ../data/str.xml.in.h:28 msgid "Dice 1" msgstr "" #: ../data/str.xml.in.h:29 msgid "Dice 2" msgstr "" #: ../data/str.xml.in.h:30 msgid "Dice 3" msgstr "" #: ../data/str.xml.in.h:31 msgid "Dice 4" msgstr "" #: ../data/str.xml.in.h:32 msgid "Dice 5" msgstr "" #: ../data/str.xml.in.h:33 msgid "Dice 6" msgstr "" #: ../data/str.xml.in.h:34 msgid "Anchor" msgstr "" #: ../data/str.xml.in.h:35 msgid "Sword" msgstr "" #: ../data/str.xml.in.h:36 msgid "Scales" msgstr "" #: ../data/str.xml.in.h:37 msgid "Conversation" msgstr "" #: ../data/str.xml.in.h:38 msgid "Warning" msgstr "" #: ../data/str.xml.in.h:39 msgid "Thunder" msgstr "" #: ../data/str.xml.in.h:40 msgid "Coffin" msgstr "" #: ../data/str.xml.in.h:41 msgid "Gender" msgstr "" #: ../data/str.xml.in.h:42 msgid "Soccer" msgstr "" #: ../data/str.xml.in.h:43 msgid "Baseball" msgstr "" #: ../data/str.xml.in.h:44 msgid "Snowman" msgstr "" #: ../data/str.xml.in.h:45 msgid "Shoji" msgstr "" #: ../data/str.xml.in.h:46 msgid "Maintenance" msgstr "" #: ../data/str.xml.in.h:47 msgid "Roadblock" msgstr "" #: ../data/str.xml.in.h:48 msgid "No entry" msgstr "" #: ../data/str.xml.in.h:49 msgid "Truck" msgstr "" #: ../data/str.xml.in.h:50 msgid "Torii" msgstr "" #: ../data/str.xml.in.h:51 msgid "Church" msgstr "" #: ../data/str.xml.in.h:52 msgid "Castle" msgstr "" #: ../data/str.xml.in.h:53 msgid "Historic site" msgstr "" #: ../data/str.xml.in.h:54 msgid "Power station" msgstr "" #: ../data/str.xml.in.h:55 msgid "Lighthouse" msgstr "" #: ../data/str.xml.in.h:56 msgid "Mountain" msgstr "Montagne" #: ../data/str.xml.in.h:57 msgid "Beach" msgstr "Plage" #: ../data/str.xml.in.h:58 msgid "Park" msgstr "Parking" #: ../data/str.xml.in.h:59 msgid "Ferry" msgstr "Ferry" #: ../data/str.xml.in.h:60 msgid "Sailboat" msgstr "Voilier" #: ../data/str.xml.in.h:61 msgid "Ice rink" msgstr "Patinoire" #: ../data/str.xml.in.h:62 msgid "Scissors" msgstr "Ciseaux" #: ../data/str.xml.in.h:63 msgid "Airplane" msgstr "Avion" #: ../data/str.xml.in.h:64 msgid "Clenched Fist" msgstr "Poing fermé" #: ../data/str.xml.in.h:65 msgid "Hand" msgstr "Main" #: ../data/str.xml.in.h:66 msgid "V Sign" msgstr "Signe V" #: ../data/str.xml.in.h:67 msgid "Writing" msgstr "écrire" #: ../data/str.xml.in.h:68 msgid "Pencil" msgstr "Stylo" #: ../data/str.xml.in.h:69 msgid "Pen" msgstr "Crayon" #: ../data/str.xml.in.h:70 msgid "Star" msgstr "Étoile" #: ../data/str.xml.in.h:71 msgid "Typhoon" msgstr "Typhon" #: ../data/str.xml.in.h:72 msgid "Fog" msgstr "Brouillard" #: ../data/str.xml.in.h:73 msgid "Umbrella" msgstr "Parapluie" #: ../data/str.xml.in.h:74 msgid "Night sky" msgstr "Nuit étoilée" #: ../data/str.xml.in.h:75 msgid "Sunrise" msgstr "Lever de soleil" #: ../data/str.xml.in.h:76 msgid "Sunset" msgstr "Coucher de soleil" #: ../data/str.xml.in.h:77 msgid "Bridge" msgstr "Pont" #: ../data/str.xml.in.h:78 msgid "Wave" msgstr "Vague" #: ../data/str.xml.in.h:79 msgid "New Moon" msgstr "Nouvelle lune" #: ../data/str.xml.in.h:80 msgid "Crescent Moon" msgstr "Croissant de lune" #: ../data/str.xml.in.h:81 msgid "Quarter Moon" msgstr "Quartier de lune" #: ../data/str.xml.in.h:82 msgid "Gibbous Moon" msgstr "Lune gibbeuse" #: ../data/str.xml.in.h:83 msgid "Full Moon" msgstr "Pleine lune" #: ../data/str.xml.in.h:84 msgid "Moon" msgstr "Lune" #: ../data/str.xml.in.h:85 msgid "Sun" msgstr "Soleil" #: ../data/str.xml.in.h:86 msgid "Cloud" msgstr "Nuage" #: ../data/str.xml.in.h:87 msgid "Palm" msgstr "Palmier" #: ../data/str.xml.in.h:88 msgid "Hot Pepper" msgstr "Piment" #: ../data/str.xml.in.h:89 msgid "Flower" msgstr "Fleur" #: ../data/str.xml.in.h:90 msgid "Tulip" msgstr "Tulipe" #: ../data/str.xml.in.h:91 msgid "Cherry" msgstr "Cerise" #: ../data/str.xml.in.h:92 msgid "Rose" msgstr "Rose" #: ../data/str.xml.in.h:93 msgid "Hibiscus" msgstr "Hibiscus" #: ../data/str.xml.in.h:94 msgid "Sunflower" msgstr "Tournesol" #: ../data/str.xml.in.h:95 msgid "Blossom" msgstr "Germer" #: ../data/str.xml.in.h:96 msgid "Clover" msgstr "Trèfle" #: ../data/str.xml.in.h:97 msgid "Maple" msgstr "érable" #: ../data/str.xml.in.h:98 msgid "Fallen Leaf" msgstr "Feuille tomber" #: ../data/str.xml.in.h:99 msgid "Leaf" msgstr "Feuille" #: ../data/str.xml.in.h:100 msgid "Mushroom" msgstr "Champignon" #: ../data/str.xml.in.h:101 msgid "Tomato" msgstr "Tomate" #: ../data/str.xml.in.h:102 msgid "Eggplant" msgstr "Aubergine" #: ../data/str.xml.in.h:103 msgid "Grape" msgstr "Grappe" #: ../data/str.xml.in.h:104 msgid "Melon" msgstr "Melon" #: ../data/str.xml.in.h:105 msgid "Watermelon" msgstr "Pastèque" #: ../data/str.xml.in.h:106 msgid "Tangerine" msgstr "Clémentine" #: ../data/str.xml.in.h:107 msgid "Lemon" msgstr "Citron" #: ../data/str.xml.in.h:108 msgid "Banana" msgstr "Banane" #: ../data/str.xml.in.h:109 msgid "Pineapple" msgstr "Ananas" #: ../data/str.xml.in.h:110 msgid "Apple" msgstr "Pomme" #: ../data/str.xml.in.h:111 msgid "Pear" msgstr "Poire" #: ../data/str.xml.in.h:112 msgid "Peach" msgstr "Pèche" #: ../data/str.xml.in.h:113 msgid "Strawberry" msgstr "Fraise" #: ../data/str.xml.in.h:114 msgid "Hamburger" msgstr "Hamburger" #: ../data/str.xml.in.h:115 msgid "Pizza" msgstr "Pizza" #: ../data/str.xml.in.h:116 msgid "Meat" msgstr "Viande" #: ../data/str.xml.in.h:117 msgid "Poultry" msgstr "Volaille" #: ../data/str.xml.in.h:118 msgid "Rice Cracker" msgstr "Gateau de riz" #: ../data/str.xml.in.h:119 msgid "Rice Ball" msgstr "Boulette de riz" #: ../data/str.xml.in.h:120 msgid "Rice" msgstr "Riz" #: ../data/str.xml.in.h:121 msgid "Curry" msgstr "Curry" #: ../data/str.xml.in.h:122 msgid "Ramen" msgstr "Ramen" #: ../data/str.xml.in.h:123 msgid "Spaghetti" msgstr "Spaghetti" #: ../data/str.xml.in.h:124 msgid "Bread" msgstr "Pain" #: ../data/str.xml.in.h:125 msgid "Fried Potato" msgstr "Pomme de terre fris" #: ../data/str.xml.in.h:126 msgid "Roasted Sweet Potato" msgstr "Pomme de terre douce fris" #: ../data/str.xml.in.h:127 msgid "Dango" msgstr "Dango" #: ../data/str.xml.in.h:128 msgid "Oden" msgstr "Oden" #: ../data/str.xml.in.h:129 msgid "Sushi" msgstr "Sushi" #: ../data/str.xml.in.h:130 msgid "Fried Shrimp" msgstr "Crevette fris" #: ../data/str.xml.in.h:131 msgid "Fish Cake" msgstr "Croquette de poisson" #: ../data/str.xml.in.h:132 msgid "Soft Ice Cream" msgstr "Glace à l'italienne" #: ../data/str.xml.in.h:133 msgid "Shaved Ice" msgstr "Shaved Ice" #: ../data/str.xml.in.h:134 msgid "Ice Cream" msgstr "Crème glacée" #: ../data/str.xml.in.h:135 #, fuzzy msgid "Doughnut" msgstr "Beignet glacé" #: ../data/str.xml.in.h:136 msgid "Cookie" msgstr "Cookie" #: ../data/str.xml.in.h:137 msgid "Chocolate" msgstr "Chocolat" #: ../data/str.xml.in.h:138 msgid "Candy" msgstr "Bonbon" #: ../data/str.xml.in.h:139 msgid "Custard" msgstr "Crème pâtissière" #: ../data/str.xml.in.h:140 msgid "Honey" msgstr "Miel" #: ../data/str.xml.in.h:141 msgid "Shortcake" msgstr "Gâteau court" #: ../data/str.xml.in.h:142 msgid "Bento" msgstr "Bento" #: ../data/str.xml.in.h:143 msgid "Pot of Food" msgstr "Pot de nourriture" #: ../data/str.xml.in.h:144 msgid "Cooking" msgstr "Cuisine" #: ../data/str.xml.in.h:145 msgid "Meal" msgstr "Repas" #: ../data/str.xml.in.h:146 msgid "Cup" msgstr "Tasse" #: ../data/str.xml.in.h:147 msgid "Sake" msgstr "Saké" #: ../data/str.xml.in.h:148 msgid "Wine" msgstr "Vin" #: ../data/str.xml.in.h:149 msgid "Cocktail" msgstr "Cocktail" #: ../data/str.xml.in.h:150 msgid "Drink" msgstr "Boisson" #: ../data/str.xml.in.h:151 msgid "Beer" msgstr "Bière" #: ../data/str.xml.in.h:152 msgid "Cheers" msgstr "Santé" #: ../data/str.xml.in.h:153 msgid "Baby Bottle" msgstr "Biberon" #: ../data/str.xml.in.h:154 msgid "Ribbon" msgstr "Ruban" #: ../data/str.xml.in.h:155 msgid "Present" msgstr "Cadeau" #: ../data/str.xml.in.h:156 msgid "Cake" msgstr "Gâteau" #: ../data/str.xml.in.h:157 msgid "Hallowe'en" msgstr "Hallowen" #: ../data/str.xml.in.h:158 msgid "Christmas" msgstr "Noël" #: ../data/str.xml.in.h:159 msgid "Piano" msgstr "Piano" #: ../data/str.xml.in.h:160 msgid "Microphone" msgstr "Microphone" #: ../data/str.xml.in.h:161 msgid "Headphone" msgstr "Casque audio" #: ../data/str.xml.in.h:162 msgid "Hat" msgstr "Chapeau" #: ../data/str.xml.in.h:163 msgid "Musical Note" msgstr "Note musicale" #: ../data/str.xml.in.h:164 msgid "Saxophone" msgstr "Saxophone" #: ../data/str.xml.in.h:165 msgid "Guiter" msgstr "Guitar" #: ../data/str.xml.in.h:166 msgid "Trumpet" msgstr "Trompette" #: ../data/str.xml.in.h:167 msgid "Violin" msgstr "Violon" #: ../data/str.xml.in.h:168 msgid "Musical Score" msgstr "Partition musicale" #: ../data/str.xml.in.h:169 msgid "Tennis" msgstr "Tennis" #: ../data/str.xml.in.h:170 msgid "Ski" msgstr "Ski" #: ../data/str.xml.in.h:171 msgid "Basketball" msgstr "BasketBall" #: ../data/str.xml.in.h:172 msgid "Flag" msgstr "Drapeau" #: ../data/str.xml.in.h:173 msgid "Show Board" msgstr "Tableau d'affichage" #: ../data/str.xml.in.h:174 msgid "Running" msgstr "Course à pied" #: ../data/str.xml.in.h:175 msgid "Surfer" msgstr "Surfeur" #: ../data/str.xml.in.h:176 msgid "Medal" msgstr "Médaille" #: ../data/str.xml.in.h:177 msgid "Trophy" msgstr "Trophée" #: ../data/str.xml.in.h:178 msgid "Horse Racing" msgstr "Course de chevaux" #: ../data/str.xml.in.h:179 msgid "American Football" msgstr "Football américain" #: ../data/str.xml.in.h:180 msgid "Rugby" msgstr "Rugby" #: ../data/str.xml.in.h:181 msgid "Swimmer" msgstr "Nageur" #: ../data/str.xml.in.h:182 msgid "Weight Lifting" msgstr "Levage de poids" #: ../data/str.xml.in.h:183 msgid "Golf" msgstr "Golf" #: ../data/str.xml.in.h:184 msgid "Motorcycle" msgstr "Moto" #: ../data/str.xml.in.h:185 msgid "Race" msgstr "Course" #: ../data/str.xml.in.h:186 msgid "House" msgstr "Maison" #: ../data/str.xml.in.h:187 msgid "Office" msgstr "Bureau" #: ../data/str.xml.in.h:188 msgid "Hospital" msgstr "Hôpital" #: ../data/str.xml.in.h:189 msgid "Bank" msgstr "Banque" #: ../data/str.xml.in.h:190 msgid "Hotel" msgstr "Hôtel" #: ../data/str.xml.in.h:191 msgid "School" msgstr "École" #: ../data/str.xml.in.h:192 msgid "Factory" msgstr "Usine" #: ../data/str.xml.in.h:193 msgid "Rat" msgstr "Rat" #: ../data/str.xml.in.h:194 msgid "Mouse" msgstr "Souris" #: ../data/str.xml.in.h:195 msgid "Cow" msgstr "Vache" #: ../data/str.xml.in.h:196 msgid "Tiger" msgstr "Tigre" #: ../data/str.xml.in.h:197 msgid "Leopard" msgstr "Léopard" #: ../data/str.xml.in.h:198 msgid "Rabbit" msgstr "Lapin" #: ../data/str.xml.in.h:199 msgid "Cat" msgstr "Chat" #: ../data/str.xml.in.h:200 msgid "Dragon" msgstr "Dragon" #: ../data/str.xml.in.h:201 msgid "Crocodile" msgstr "Crocodile" #: ../data/str.xml.in.h:202 msgid "Whale" msgstr "Baleine" #: ../data/str.xml.in.h:203 msgid "Snail" msgstr "Escargot" #: ../data/str.xml.in.h:204 msgid "Snake" msgstr "Serpent" #: ../data/str.xml.in.h:205 msgid "Horse" msgstr "Cheval" #: ../data/str.xml.in.h:206 msgid "Sheep" msgstr "Mouton" #: ../data/str.xml.in.h:207 msgid "Goat" msgstr "Chèvre" #: ../data/str.xml.in.h:208 msgid "Monkey" msgstr "Singe" #: ../data/str.xml.in.h:209 msgid "Chicken" msgstr "Poulet" #: ../data/str.xml.in.h:210 msgid "Dog" msgstr "Chien" #: ../data/str.xml.in.h:211 msgid "Pig" msgstr "Cochon" #: ../data/str.xml.in.h:212 msgid "Elephant" msgstr "Éléphant" #: ../data/str.xml.in.h:213 msgid "Octopus" msgstr "Pieuvre" #: ../data/str.xml.in.h:214 msgid "Spiral Shell" msgstr "Coquille spirale" #: ../data/str.xml.in.h:215 msgid "Bug" msgstr "Insecte" #: ../data/str.xml.in.h:216 msgid "Ant" msgstr "Fourmis" #: ../data/str.xml.in.h:217 msgid "Lady Beetle" msgstr "Coccinelle" #: ../data/str.xml.in.h:218 msgid "Fish" msgstr "Poisson" #: ../data/str.xml.in.h:219 msgid "Tropical Fish" msgstr "Poisson tropicale" #: ../data/str.xml.in.h:220 msgid "Blowfish" msgstr "Poisson-globe" #: ../data/str.xml.in.h:221 msgid "Bird" msgstr "Oiseau" #: ../data/str.xml.in.h:222 msgid "Penguin" msgstr "Pingouin" #: ../data/str.xml.in.h:223 msgid "Koala" msgstr "Koala" #: ../data/str.xml.in.h:224 msgid "Poodle" msgstr "Caniche" #: ../data/str.xml.in.h:225 msgid "Camel" msgstr "Chameau" #: ../data/str.xml.in.h:226 msgid "Dolphin" msgstr "Dauphin" #: ../data/str.xml.in.h:227 msgid "Frog" msgstr "Grenouille" #: ../data/str.xml.in.h:228 msgid "Hamster" msgstr "Hamster" #: ../data/str.xml.in.h:229 msgid "Wolf" msgstr "Loup" #: ../data/str.xml.in.h:230 msgid "Bear" msgstr "Ours" #: ../data/str.xml.in.h:231 msgid "Panda" msgstr "Panda" #: ../data/str.xml.in.h:232 msgid "Eye" msgstr "Œil" #: ../data/str.xml.in.h:233 msgid "Ear" msgstr "Oreille" #: ../data/str.xml.in.h:234 msgid "Nose" msgstr "Nez" #: ../data/str.xml.in.h:235 msgid "Mouth" msgstr "Menton" #: ../data/str.xml.in.h:236 msgid "Tongue" msgstr "Langue" #: ../data/str.xml.in.h:237 msgid "Crown" msgstr "Couronne" #: ../data/str.xml.in.h:238 msgid "Glasses" msgstr "Lunettes" #: ../data/str.xml.in.h:239 msgid "Necktie" msgstr "Cravate" #: ../data/str.xml.in.h:240 msgid "T-Shirt" msgstr "T-Shirt" #: ../data/str.xml.in.h:241 msgid "Jeans" msgstr "Jeans" #: ../data/str.xml.in.h:242 msgid "Dress" msgstr "Robe" #: ../data/str.xml.in.h:243 msgid "Kimono" msgstr "Kimono" #: ../data/str.xml.in.h:244 msgid "Bikini" msgstr "Bikini" #: ../data/str.xml.in.h:245 msgid "Clothes" msgstr "Vêtements" #: ../data/str.xml.in.h:246 msgid "Purse" msgstr "Porte-monnaie" #: ../data/str.xml.in.h:247 msgid "Handbag" msgstr "Sac à main" #: ../data/str.xml.in.h:248 msgid "Pouch" msgstr "Sac" #: ../data/str.xml.in.h:249 msgid "Shoe" msgstr "Chaussure" #: ../data/str.xml.in.h:250 msgid "Footprint" msgstr "Empreinte" #: ../data/str.xml.in.h:251 msgid "Account" msgstr "Compte" #: ../data/str.xml.in.h:252 msgid "Boy" msgstr "Garçon" #: ../data/str.xml.in.h:253 msgid "Girl" msgstr "Fille" #: ../data/str.xml.in.h:254 msgid "Man" msgstr "Homme" #: ../data/str.xml.in.h:255 msgid "Woman" msgstr "Femme" #: ../data/str.xml.in.h:256 msgid "Family" msgstr "Famille" #: ../data/str.xml.in.h:257 msgid "Restroom" msgstr "Toilettes" #: ../data/str.xml.in.h:258 msgid "Men" msgstr "Homme" #: ../data/str.xml.in.h:259 msgid "Women" msgstr "Femme" #: ../data/str.xml.in.h:260 msgid "Princess" msgstr "Princesse" #: ../data/str.xml.in.h:261 msgid "Japanese Ogre" msgstr "Ogre japonaise" #: ../data/str.xml.in.h:262 msgid "Japanese Goblin" msgstr "Gobelin japonais" #: ../data/str.xml.in.h:263 msgid "Ghost" msgstr "Fantôme" #: ../data/str.xml.in.h:264 msgid "Baby Angel" msgstr "Ange bébé" #: ../data/str.xml.in.h:265 msgid "Extraterrestrial Alien" msgstr "" #: ../data/str.xml.in.h:266 msgid "Alien Monster" msgstr "Monstre alien" #: ../data/str.xml.in.h:267 msgid "IMP" msgstr "IMP" #: ../data/str.xml.in.h:268 msgid "Skull" msgstr "Crâne" #: ../data/str.xml.in.h:269 msgid "Information Desk Person" msgstr "Personne du bureau d'information" #: ../data/str.xml.in.h:270 msgid "Guardsman" msgstr "Homme de garde" #: ../data/str.xml.in.h:271 msgid "Dancer" msgstr "Danseur" #: ../data/str.xml.in.h:272 msgid "Lipstick" msgstr "Rouge à lèvre." #: ../data/str.xml.in.h:273 msgid "Nail" msgstr "Ongle" #: ../data/str.xml.in.h:274 msgid "Face" msgstr "Visage" #: ../data/str.xml.in.h:275 msgid "Haircut" msgstr "Coupe de cheveux" #: ../data/str.xml.in.h:276 msgid "Syringe" msgstr "Seringue" #: ../data/str.xml.in.h:277 msgid "Medicine" msgstr "Médecin" #: ../data/str.xml.in.h:278 msgid "Kiss" msgstr "Embrasser" #: ../data/str.xml.in.h:279 msgid "Love Letter" msgstr "Lettre d'amour" #: ../data/str.xml.in.h:280 msgid "Ring" msgstr "Anneau" #: ../data/str.xml.in.h:281 msgid "Gem Stone" msgstr "Pierre précieuse" #: ../data/str.xml.in.h:282 msgid "Wedding" msgstr "Mariage" #: ../data/str.xml.in.h:283 msgid "Heart" msgstr "Cœur" #: ../data/str.xml.in.h:284 msgid "Idea" msgstr "Idée" #: ../data/str.xml.in.h:285 msgid "Anger" msgstr "Colère" #: ../data/str.xml.in.h:286 msgid "Bomb" msgstr "Bombe" #: ../data/str.xml.in.h:287 msgid "Sleeping" msgstr "endormis" #: ../data/str.xml.in.h:288 msgid "Collision" msgstr "Collision" #: ../data/str.xml.in.h:289 msgid "Sweat" msgstr "Sueur" #: ../data/str.xml.in.h:290 msgid "Droplet" msgstr "Gouttelettes" #: ../data/str.xml.in.h:291 msgid "Dash" msgstr "" #: ../data/str.xml.in.h:292 msgid "Poo" msgstr "Caca" #: ../data/str.xml.in.h:293 msgid "Muscle" msgstr "Muscle" #: ../data/str.xml.in.h:294 msgid "Dizzy" msgstr "Étourdi" #: ../data/str.xml.in.h:295 msgid "Speech" msgstr "Discours" #: ../data/str.xml.in.h:296 msgid "Thought" msgstr "Pensée" #: ../data/str.xml.in.h:297 msgid "Perfect Score" msgstr "Score parfait" #: ../data/str.xml.in.h:298 msgid "Pushpin" msgstr "Punaise" #: ../data/str.xml.in.h:299 msgid "Clip" msgstr "Pince" #: ../data/str.xml.in.h:300 msgid "Speaker" msgstr "Enceinte" #: ../data/str.xml.in.h:301 msgid "Battery" msgstr "Batterie" #: ../data/str.xml.in.h:302 msgid "Plug" msgstr "Prise" #: ../data/str.xml.in.h:303 msgid "Search" msgstr "Recherche" #: ../data/str.xml.in.h:304 msgid "Bookmark" msgstr "Marque-page" #: ../data/str.xml.in.h:305 msgid "Book" msgstr "Livre" #: ../data/str.xml.in.h:306 msgid "Memo" msgstr "Notes" #: ../data/str.xml.in.h:307 msgid "Mail" msgstr "Message" #: ../data/str.xml.in.h:308 msgid "Mobile Phone" msgstr "Appareil mobile" #: ../data/str.xml.in.h:309 msgid "Camera" msgstr "Camera" #: ../data/str.xml.in.h:310 msgid "Video" msgstr "Vidéo" #: ../data/str.xml.in.h:311 msgid "Television" msgstr "Téléviseur" #: ../data/str.xml.in.h:312 msgid "Radio" msgstr "Radio" #: ../data/str.xml.in.h:313 msgid "Key" msgstr "Clé" #: ../data/str.xml.in.h:314 msgid "Lock" msgstr "Serrure" #: ../data/str.xml.in.h:315 msgid "Fire" msgstr "Feu" #: ../data/str.xml.in.h:316 msgid "Wrench" msgstr "Clé à molette" #: ../data/str.xml.in.h:317 msgid "Hammer" msgstr "Marteau" #: ../data/str.xml.in.h:318 msgid "Bolt" msgstr "Boulon" #: ../data/str.xml.in.h:319 msgid "Hocho" msgstr "Hocho" #: ../data/str.xml.in.h:320 msgid "Pistol" msgstr "Pistolet" #: ../data/str.xml.in.h:321 msgid "Microscope" msgstr "Microscope" #: ../data/str.xml.in.h:322 msgid "Telescope" msgstr "Télescope" #: ../data/str.xml.in.h:323 msgid "Crystal" msgstr "Cristal" #: ../data/str.xml.in.h:324 msgid "David Star" msgstr "étoile de David" #: ../data/str.xml.in.h:325 msgid "Beginner" msgstr "Débutant" #: ../data/str.xml.in.h:326 msgid "Candle" msgstr "Bougie" #: ../data/str.xml.in.h:327 msgid "Hole" msgstr "Trou" #: ../data/str.xml.in.h:328 msgid "Personal Computer" msgstr "Ordinateur" #: ../data/str.xml.in.h:329 msgid "keyboard" msgstr "Clavier" #: ../data/str.xml.in.h:330 msgid "Printer" msgstr "Imprimante" #: ../data/str.xml.in.h:331 msgid "Calculator" msgstr "Calculatrice" #: ../data/str.xml.in.h:332 msgid "Minimize" msgstr "Minimisé" #: ../data/str.xml.in.h:333 msgid "Maximize" msgstr "Maximisé" #: ../data/str.xml.in.h:334 msgid "Refresh" msgstr "Rafraichir" #: ../data/str.xml.in.h:335 msgid "Close" msgstr "Fermer" #: ../data/str.xml.in.h:336 msgid "World" msgstr "Monde" #: ../data/str.xml.in.h:337 msgid "Mt. Fuji" msgstr "Mont Fuji" #: ../data/str.xml.in.h:338 msgid "Tokyo Tower" msgstr "Tour de Tokyo" #: ../data/str.xml.in.h:339 msgid "Japan" msgstr "Japon" #: ../data/str.xml.in.h:340 msgid "Anguish" msgstr "Angoisse" #: ../data/str.xml.in.h:341 msgid "Smile" msgstr "Sourire" #: ../data/str.xml.in.h:342 msgid "Smirk" msgstr "Insolent" #: ../data/str.xml.in.h:343 msgid "Neutral" msgstr "Neutres" #: ../data/str.xml.in.h:344 msgid "Expressionless" msgstr "Sans expression" #: ../data/str.xml.in.h:345 msgid "Unamused" msgstr "Sans amusement" #: ../data/str.xml.in.h:346 msgid "Pensive" msgstr "Pensif" #: ../data/str.xml.in.h:347 msgid "Confused" msgstr "Confus" #: ../data/str.xml.in.h:348 msgid "Confounded" msgstr "Confondu" #: ../data/str.xml.in.h:349 msgid "Disappointed" msgstr "Déçu" #: ../data/str.xml.in.h:350 msgid "Angry" msgstr "Fâché" #: ../data/str.xml.in.h:351 msgid "Cry" msgstr "Cris" #: ../data/str.xml.in.h:352 msgid "Sleeply" msgstr "Endormis" #: ../data/str.xml.in.h:353 msgid "Tired" msgstr "" #: ../data/str.xml.in.h:354 msgid "Surprise" msgstr "" #: ../data/str.xml.in.h:355 msgid "Scream" msgstr "" #: ../data/str.xml.in.h:356 msgid "Flushed" msgstr "" #: ../data/str.xml.in.h:357 msgid "Medical Mask" msgstr "" #: ../data/str.xml.in.h:358 msgid "OK" msgstr "" #: ../data/str.xml.in.h:359 msgid "Bow" msgstr "" #: ../data/str.xml.in.h:360 msgid "See-No-Evil" msgstr "" #: ../data/str.xml.in.h:361 msgid "Hear-No-Evil" msgstr "" #: ../data/str.xml.in.h:362 msgid "Speak-No-Evil" msgstr "" #: ../data/str.xml.in.h:363 msgid "Banzai" msgstr "" #: ../data/str.xml.in.h:364 msgid "Pleading" msgstr "" #: ../data/str.xml.in.h:365 msgid "Smileys" msgstr "Émoticones" #: ../data/str.xml.in.h:366 msgid "Smile Big" msgstr "Grand sourire" #: ../data/str.xml.in.h:367 msgid "Sad" msgstr "Triste" #: ../data/str.xml.in.h:368 msgid "Wink" msgstr "Cligner" #: ../data/str.xml.in.h:369 msgid "Shock" msgstr "Choc" #: ../data/str.xml.in.h:370 msgid "Kiss | Secret" msgstr "Embrasser | Secret" #: ../data/str.xml.in.h:371 msgid "Glasses Cool | Eyeroll" msgstr "" #: ../data/str.xml.in.h:372 msgid "Glasses Cool" msgstr "" #: ../data/str.xml.in.h:373 msgid "Embarrassed" msgstr "Embarrassé" #: ../data/str.xml.in.h:374 msgid "Crying" msgstr "Pleurs" #: ../data/str.xml.in.h:375 msgid "Thinking" msgstr "Réfléchir" #: ../data/str.xml.in.h:376 msgid "Don't Know" msgstr "Ne pas savoir" #: ../data/str.xml.in.h:377 msgid "Party" msgstr "Fête" #: ../data/str.xml.in.h:378 msgid "Yawn" msgstr "Bâiller" #: ../data/str.xml.in.h:379 msgid "Bunny" msgstr "Lapin" #: ../data/str.xml.in.h:380 msgid "Sick" msgstr "Malade" #: ../data/str.xml.in.h:381 msgid "Devil" msgstr "Diable" #: ../data/str.xml.in.h:382 msgid "Angel" msgstr "Ange" #: ../data/str.xml.in.h:383 msgid "Love" msgstr "Aimer" #: ../data/str.xml.in.h:384 msgid "Love Over" msgstr "" #: ../data/str.xml.in.h:385 msgid "Film" msgstr "Film" #: ../data/str.xml.in.h:386 msgid "Clock" msgstr "Montre" #: ../data/str.xml.in.h:387 msgid "Coffee" msgstr "Café" #: ../data/str.xml.in.h:388 msgid "Phone" msgstr "Téléphone" #: ../data/str.xml.in.h:389 msgid "Hug Left" msgstr "Câlin gauche" #: ../data/str.xml.in.h:390 msgid "Hug Right" msgstr "Câlin droit" #: ../data/str.xml.in.h:391 msgid "Yes" msgstr "Oui" #: ../data/str.xml.in.h:392 msgid "No" msgstr "Non" #: ../data/str.xml.in.h:393 msgid "Shut Mouth" msgstr "Fermer la bouche" #: ../data/str.xml.in.h:394 msgid "Money Mouth" msgstr "Bouche d'argent" #: ../data/str.xml.in.h:395 msgid "Foot in Mouth" msgstr "Pied dans la bouche" #: ../data/str.xml.in.h:396 msgid "Shout" msgstr "Crier" #. http://ja.wikipedia.org/wiki/%E9%A1%94%E6%96%87%E5%AD%97 #: ../data/str.xml.in.h:398 msgid "Smileys (Japanese)" msgstr "Émoticones (japonais)" #: ../data/str.xml.in.h:399 msgid "Smoking" msgstr "Fumer" #: ../data/str.xml.in.h:400 msgid "Sorry" msgstr "Désolé" #: ../data/str.xml.in.h:401 msgid "Hug" msgstr "Câlin" #. http://ja.wikipedia.org/wiki/%E9%A1%94%E6%96%87%E5%AD%97 #: ../data/str.xml.in.h:403 msgid "Smileys (Japanese 2ch)" msgstr "Émoticones (japonais 2ch)" #: ../data/str.xml.in.h:404 msgid "Hey" msgstr "Hé" #. http://ja.wikipedia.org/wiki/%E9%A1%94%E6%96%87%E5%AD%97 #: ../data/str.xml.in.h:406 msgid "Smileys (Chinese)" msgstr "Émoticones (chinois)" #: ../data/str.xml.in.h:407 msgid "Crow" msgstr "Corneille" #. http://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88%E3%82%B9%E3%83%A9%E3%83%B3%E3%82%B0 #: ../data/str.xml.in.h:409 msgid "Acronym" msgstr "Acronyme" #: ../data/str.xml.in.h:410 msgid "Acronym (Computer)" msgstr "Acronyme (ordinateur)" #. http://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88%E3%82%B9%E3%83%A9%E3%83%B3%E3%82%B0 #: ../data/str.xml.in.h:412 msgid "Acronym (Japanese)" msgstr "Acronyme (japonais)" #: ../data/str.xml.in.h:413 msgid "Do not want to read between lines (Aete Kuuki Wo Yomanai)" msgstr "Vous pas vouloir lire entre les lignes (Aete Kuuki Wo Yomanai)" #: ../data/str.xml.in.h:414 msgid "Can't get together (Guda Guda)" msgstr "Ne pas pouvoir se réunir (Guda Guda)" #: ../data/str.xml.in.h:415 msgid "Say whatever one feels (Iitaidake)" msgstr "Dire ce que l'on ressent (Iitaidake)" #: ../data/str.xml.in.h:416 msgid "Excited (Kitakore)" msgstr "Excité (Kitakore)" #: ../data/str.xml.in.h:417 msgid "Detail (Kuwashiku)" msgstr "Détail (Kuwashiku)" #: ../data/str.xml.in.h:418 msgid "Cannot read between lines (Kuuki Ga Yomenai)" msgstr "Impossible de lire entre les lignes (Kuuki Ga Yomenai)" #: ../data/str.xml.in.h:419 msgid "Omission (Shouryaku)" msgstr "" #: ../data/str.xml.in.h:420 msgid "Excited (Waku Waku Teka Teka)" msgstr "Excité (Waku Waku Teka Teka)" #: ../data/str.xml.in.h:421 msgid "Laugh" msgstr "Rire" #: ../data/str.xml.in.h:422 msgid "Dude (Oi!)" msgstr "" #: ../data/str.xml.in.h:423 msgid "Good job (Otsukare)" msgstr "" #: ../data/str.xml.in.h:424 msgid "Want (Kure, E.g. pics クレメンス)" msgstr "" #: ../data/str.xml.in.h:425 msgid "ASCII art of a hand (✊, E.g. つAttention)" msgstr "" #: ../data/str.xml.in.h:426 msgid "In The Meantime (Toriaezu, Maa)" msgstr "" #: ../data/str.xml.in.h:427 msgid "Self-confidence (Aniki, E.g. tennis ニキ)" msgstr "" #: ../data/str.xml.in.h:428 msgid "Bye" msgstr "Au revoir" #: ../data/str.xml.in.h:429 msgid "Want (Hattekure, E.g. pics ハラデイ)" msgstr "" #: ../data/str.xml.in.h:430 msgid "Exist as microparticles (Biryushi Level De Sonzaisuru)" msgstr "" #: ../data/str.xml.in.h:431 msgid "False Start (Flying Get)" msgstr "False Start (Flying Get)" #: ../data/str.xml.in.h:432 msgid "Fulfilling Life (Real life is Zyujitsu)" msgstr "" #: ../data/str.xml.in.h:433 msgid "Laugh (Warau)" msgstr "Rire (Warau)" #: ../data/str.xml.in.h:434 msgid "He (Yatsu <- Yashi)" msgstr "" #: ../data/w3c.xml.in.h:1 msgid "Char References" msgstr "Références Char" #: ../data/zh.xml.in.h:1 msgid "Chinese" msgstr "Chinois" #: ../data/zh.xml.in.h:4 ../input-pad/unicode_block.h:138 msgid "Bopomofo" msgstr "Bopomofo" #: ../input-pad/app-menu.ui.h:1 msgid "_File" msgstr "_Fichier" #: ../input-pad/app-menu.ui.h:2 ../input-pad/dialog.ui.h:21 msgid "_Close" msgstr "_Fermer" #: ../input-pad/app-menu.ui.h:3 msgid "Close the program" msgstr "Fermer le programme" #: ../input-pad/app-menu.ui.h:4 msgid "_Pad" msgstr "_Pad" #: ../input-pad/app-menu.ui.h:5 msgid "_Code Point" msgstr "Point de _code" #: ../input-pad/app-menu.ui.h:6 msgid "_Show Pad" msgstr "Afficher le _pad" #: ../input-pad/app-menu.ui.h:7 msgid "Show _All Characters" msgstr "_Afficher tous les caractères" #: ../input-pad/app-menu.ui.h:8 msgid "Show _Custom Characters" msgstr "Afficher des _caractères personnalisés" #: ../input-pad/app-menu.ui.h:9 msgid "Show _Nothing" msgstr "_Ne rien afficher" #: ../input-pad/app-menu.ui.h:10 msgid "Show _Keyboard Layout" msgstr "Afficher la disposition des touches du _clavier" #: ../input-pad/app-menu.ui.h:11 msgid "_Help" msgstr "_Aide" #: ../input-pad/app-menu.ui.h:12 msgid "_Troubleshoot" msgstr "_Résoudre les problèmes" #: ../input-pad/app-menu.ui.h:13 msgid "_About" msgstr "" #: ../input-pad/dialog.ui.h:1 msgid "Code Point Dialog" msgstr "Boîte de dialogue de point de code" #: ../input-pad/dialog.ui.h:2 msgid "Unicode" msgstr "Unicode" #: ../input-pad/dialog.ui.h:3 msgid "You can choose encoding type" msgstr "Vous pouvez choisir le type d'encodage" #: ../input-pad/dialog.ui.h:4 msgid "Current Encoding" msgstr "Encodage actuel" #: ../input-pad/dialog.ui.h:5 msgid "Copy Buffer" msgstr "Mémoire tampon de copie" #: ../input-pad/dialog.ui.h:6 msgid "Base 16\n" "Hex" msgstr "Base 16\n" "Hex" #: ../input-pad/dialog.ui.h:8 msgid "Set number case to hexadecimal" msgstr "Définir la base des nombres à hexadécimal" #: ../input-pad/dialog.ui.h:9 msgid "Base 10\n" "Dec" msgstr "Base 10\n" "Dec" #: ../input-pad/dialog.ui.h:11 msgid "Set number case to decimal" msgstr "Définir la base des nombres à décimal" #: ../input-pad/dialog.ui.h:12 msgid "Base 8\n" "Oct" msgstr "Base 8\n" "Oct" #: ../input-pad/dialog.ui.h:14 msgid "Set number case to octal" msgstr "Définir la base des nombres à octal" #: ../input-pad/dialog.ui.h:15 msgid "Base 2\n" "Bin" msgstr "Base 2\n" "Bin" #: ../input-pad/dialog.ui.h:17 msgid "Set number case to binary" msgstr "Définir la base des nombres à binaire" #: ../input-pad/dialog.ui.h:18 msgid "Code Point:" msgstr "Point de code :" #: ../input-pad/dialog.ui.h:19 msgid "Character:" msgstr "Caractère :" #: ../input-pad/dialog.ui.h:20 msgid "_Send" msgstr "_Envoyer" #: ../input-pad/dialog.ui.h:22 msgid "Input Pad Troubleshoot" msgstr "Dépannage de Input Pad" #: ../input-pad/dialog.ui.h:24 #, no-c-format msgid "" "\n" "This application can be run either as a stand-alone program or under an " "input method application.\n" "If you wish to send multi-byte characters, this application needs to be run " "under an input method application.\n" "If you wish to send characters to X11 applications, those applications needs " "to allow send events. e.g.\n" "% xterm -xrm \"XTerm*allowSendEvents: true\"\n" "\n" "You also can copy pad files from /usr/share/input-pad/pad to $HOME/.config/" "pad to customize those in \"Custom Character\" pane." msgstr "" "\n" "Cette application peut être exécutée en tant que programme autonome ou en " "application d'une demande de méthode de saisie.\n" "Si vous souhaitez envoyer des caractères multi-octets, cette application " "doit être exécutée en application d'une méthode de saisie.\n" "\n" "Si vous souhaitez envoyer des caractères à des applications X11, ces " "applications doivent permettre l'envoi d'événements. Par exemple :\n" "% xterm -xrm \"XTerm*allowSendEvents: true\"\n" "\n" "Vous pouvez également copier des fichiers tampons à partir de /usr/share/" "input-pad/pad à $HOME/.config/pad afin de les personnaliser dans le volet " "« Caractères personnalisés »." #: ../input-pad/dialog.ui.h:31 msgid "_OK" msgstr "" #: ../input-pad/dialog.ui.h:32 msgid "Configure Keyboard Layouts" msgstr "Configurer la disposition des touches du clavier" #: ../input-pad/dialog.ui.h:33 msgid "A_vailable layouts:" msgstr "Dispositions _disponibles:" #: ../input-pad/dialog.ui.h:34 msgid "_Add" msgstr "" #: ../input-pad/dialog.ui.h:35 msgid "_Layouts shown in the list:" msgstr "Dispositions figurant dans la _liste:" #: ../input-pad/dialog.ui.h:36 msgid "_Remove" msgstr "" #: ../input-pad/dialog.ui.h:37 msgid "_Options" msgstr "_Options" #: ../input-pad/dialog.ui.h:38 msgid "Configure Keyboard Options" msgstr "Configurer les options du clavier" #: ../input-pad/dialog.ui.h:39 msgid "_Use the default keyboard option" msgstr "_Utiliser l'option par défaut du clavier" #: ../input-pad/dialog.ui.h:40 msgid "Use the defualt XKB option" msgstr "Utiliser l'option XKB par défaut" #: ../input-pad/dialog.ui.h:41 msgid "Keyboard Option" msgstr "Options du clavier" #: ../input-pad/dialog.ui.h:43 msgid "The input pad is a tool to send a character on button." msgstr "" "Le pad de saisie est un outil pour envoyer un caractère sur un bouton." #: ../input-pad/dialog.ui.h:44 msgid "translator_credits" msgstr "Jérôme Fenal PythonSnake FIXME" #: ../input-pad/eek-gtk.c:65 msgid "Use libeek to draw keyboard" msgstr "Utilisez libeek de dessiner le clavier" #: ../input-pad/eek-gtk.c:237 msgid "eekboard layout" msgstr "Disposition eekboard" #: ../input-pad/eek-gtk.c:249 msgid "eekboard Options" msgstr "Options d'eekboard" #: ../input-pad/eek-gtk.c:249 msgid "Show eekboard Options" msgstr "Afficher les options d'eekboard" #: ../input-pad/unicode_block.h:37 msgid "Basic Latin" msgstr "Latin de base" #: ../input-pad/unicode_block.h:40 msgid "Latin Extended-B" msgstr "Latin étendu-B" #: ../input-pad/unicode_block.h:41 msgid "IPA Extensions" msgstr "Extensions à l'API" #: ../input-pad/unicode_block.h:42 msgid "Spacing Modifier Letters" msgstr "Diacritiques sans chasse combinés avec une espace" #: ../input-pad/unicode_block.h:43 msgid "Combining Diacritical Marks" msgstr "Marques diacritiques combinantes" #: ../input-pad/unicode_block.h:44 msgid "Greek and Coptic" msgstr "Grec et copte" #: ../input-pad/unicode_block.h:45 msgid "Cyrillic" msgstr "Cyrillique" #: ../input-pad/unicode_block.h:46 msgid "Cyrillic Supplement" msgstr "Supplément cyrillique" #: ../input-pad/unicode_block.h:47 msgid "Armenian" msgstr "Arménien" #: ../input-pad/unicode_block.h:48 msgid "Hebrew" msgstr "Hébreu" #: ../input-pad/unicode_block.h:49 msgid "Arabic" msgstr "Arabe" #: ../input-pad/unicode_block.h:50 msgid "Syriac" msgstr "Syriaque" #: ../input-pad/unicode_block.h:51 msgid "Arabic Supplement" msgstr "Supplément arabe" #: ../input-pad/unicode_block.h:52 msgid "Thaana" msgstr "Thaana" #: ../input-pad/unicode_block.h:53 msgid "NKo" msgstr "NKo" #: ../input-pad/unicode_block.h:54 msgid "Samaritan" msgstr "Samaritain" #: ../input-pad/unicode_block.h:55 msgid "Devanagari" msgstr "Devanagari" #: ../input-pad/unicode_block.h:56 msgid "Bengali" msgstr "Bengali" #: ../input-pad/unicode_block.h:57 msgid "Gurmukhi" msgstr "Gurmukhi" #: ../input-pad/unicode_block.h:58 msgid "Gujarati" msgstr "Gujarati" #: ../input-pad/unicode_block.h:59 msgid "Oriya" msgstr "Oriya" #: ../input-pad/unicode_block.h:60 msgid "Tamil" msgstr "Tamil" #: ../input-pad/unicode_block.h:61 msgid "Telugu" msgstr "Telugu" #: ../input-pad/unicode_block.h:62 msgid "Kannada" msgstr "_Ne rien afficher" #: ../input-pad/unicode_block.h:63 msgid "Malayalam" msgstr "Malayalam" #: ../input-pad/unicode_block.h:64 msgid "Sinhala" msgstr "Sinhala" #: ../input-pad/unicode_block.h:65 msgid "Thai" msgstr "Thaïlandais" #: ../input-pad/unicode_block.h:66 msgid "Lao" msgstr "Lao" #: ../input-pad/unicode_block.h:67 msgid "Tibetan" msgstr "Tibétain" #: ../input-pad/unicode_block.h:68 msgid "Myanmar" msgstr "Myanmar" #: ../input-pad/unicode_block.h:69 msgid "Georgian" msgstr "Géorgien" #: ../input-pad/unicode_block.h:70 msgid "Hangul Jamo" msgstr "Hangeul Jamo" #: ../input-pad/unicode_block.h:71 msgid "Ethiopic" msgstr "Éthiopien" #: ../input-pad/unicode_block.h:72 msgid "Ethiopic Supplement" msgstr "Supplément éthiopien" #: ../input-pad/unicode_block.h:73 msgid "Cherokee" msgstr "Cherokee" #: ../input-pad/unicode_block.h:74 msgid "Unified Canadian Aboriginal Syllabics" msgstr "Syllabaire autochtone canadien unifié" #: ../input-pad/unicode_block.h:75 msgid "Ogham" msgstr "Ogham" #: ../input-pad/unicode_block.h:76 msgid "Runic" msgstr "Runique" #: ../input-pad/unicode_block.h:77 msgid "Tagalog" msgstr "Tagalog" #: ../input-pad/unicode_block.h:78 msgid "Hanunoo" msgstr "Hanunoo" #: ../input-pad/unicode_block.h:79 msgid "Buhid" msgstr "Buhid" #: ../input-pad/unicode_block.h:80 msgid "Tagbanwa" msgstr "Tagbanwa" #: ../input-pad/unicode_block.h:81 msgid "Khmer" msgstr "Khmer" #: ../input-pad/unicode_block.h:82 msgid "Mongolian" msgstr "Anciens symboles " #: ../input-pad/unicode_block.h:83 msgid "Unified Canadian Aboriginal Syllabics Extended" msgstr "Syllabaires canadiens autochtones unifiés étendus" #: ../input-pad/unicode_block.h:84 msgid "Limbu" msgstr "Choc" #: ../input-pad/unicode_block.h:85 msgid "Tai Le" msgstr "Tai Le" #: ../input-pad/unicode_block.h:86 msgid "New Tai Lue" msgstr "Nouveau Tai Lue" #: ../input-pad/unicode_block.h:87 msgid "Khmer Symbols" msgstr "Symboles khmers" #: ../input-pad/unicode_block.h:88 msgid "Buginese" msgstr "Bugis" #: ../input-pad/unicode_block.h:89 msgid "Tai Tham" msgstr "Tai Tham" #: ../input-pad/unicode_block.h:90 msgid "Balinese" msgstr "Balinais" #: ../input-pad/unicode_block.h:91 msgid "Sundanese" msgstr "Sundanais" #: ../input-pad/unicode_block.h:92 msgid "Lepcha" msgstr "Lepcha" #: ../input-pad/unicode_block.h:93 msgid "Ol Chiki" msgstr "Ol Chiki" #: ../input-pad/unicode_block.h:94 msgid "Vedic Extensions" msgstr "Extensions védiques" #: ../input-pad/unicode_block.h:95 msgid "Phonetic Extensions" msgstr "Extensions phonétiques" #: ../input-pad/unicode_block.h:96 msgid "Phonetic Extensions Supplement" msgstr "Extensions phonétiques suppléments" #: ../input-pad/unicode_block.h:97 msgid "Combining Diacritical Marks Supplement" msgstr "Supplément marques diacritiques combinantes" #: ../input-pad/unicode_block.h:98 msgid "Latin Extended Additional" msgstr "Latin étendu additionnel" #: ../input-pad/unicode_block.h:99 msgid "Greek Extended" msgstr "Grec étendu" #: ../input-pad/unicode_block.h:100 msgid "General Punctuation" msgstr "Ponctuation générale" #: ../input-pad/unicode_block.h:101 msgid "Superscripts and Subscripts" msgstr "Exposants et indices" #: ../input-pad/unicode_block.h:102 msgid "Currency Symbols" msgstr "Symboles monétaires" #: ../input-pad/unicode_block.h:103 msgid "Combining Diacritical Marks for Symbols" msgstr "Marques diacritiques combinantes pour symboles" #: ../input-pad/unicode_block.h:104 msgid "Letterlike Symbols" msgstr "Symboles Letterlike" #: ../input-pad/unicode_block.h:105 msgid "Number Forms" msgstr "Formes numérales" #: ../input-pad/unicode_block.h:106 msgid "Arrows" msgstr "Flèches" #: ../input-pad/unicode_block.h:107 msgid "Mathematical Operators" msgstr "Opérateurs mathématiques" #: ../input-pad/unicode_block.h:108 msgid "Miscellaneous Technical" msgstr "Divers techniques" #: ../input-pad/unicode_block.h:109 msgid "Control Pictures" msgstr "Contrôler des photos" #: ../input-pad/unicode_block.h:110 msgid "Optical Character Recognition" msgstr "Reconnaissance optique de caractères" #: ../input-pad/unicode_block.h:111 msgid "Enclosed Alphanumerics" msgstr "Alphanumériques cerclés" #: ../input-pad/unicode_block.h:113 msgid "Block Elements" msgstr "Éléments blocs" #: ../input-pad/unicode_block.h:114 msgid "Geometric Shapes" msgstr "Formes géométriques" #: ../input-pad/unicode_block.h:115 msgid "Miscellaneous Symbols" msgstr "Symboles divers" #: ../input-pad/unicode_block.h:117 msgid "Miscellaneous Mathematical Symbols-A" msgstr "Divers symboles mathématiques-A" #: ../input-pad/unicode_block.h:118 msgid "Supplemental Arrows-A" msgstr "Flèches-A supplémentaires" #: ../input-pad/unicode_block.h:119 msgid "Braille Patterns" msgstr "Motifs en braille" #: ../input-pad/unicode_block.h:120 msgid "Supplemental Arrows-B" msgstr "Flèches-B supplémentaires" #: ../input-pad/unicode_block.h:121 msgid "Miscellaneous Mathematical Symbols-B" msgstr "Symboles mathématiques-B divers" #: ../input-pad/unicode_block.h:122 msgid "Supplemental Mathematical Operators" msgstr "Opérateurs mathématiques supplémentaires" #: ../input-pad/unicode_block.h:123 msgid "Miscellaneous Symbols and Arrows" msgstr "Symboles et flèches divers" #: ../input-pad/unicode_block.h:124 msgid "Glagolitic" msgstr "Glagolitique" #: ../input-pad/unicode_block.h:125 msgid "Latin Extended-C" msgstr "Latin étendu-C" #: ../input-pad/unicode_block.h:126 msgid "Coptic" msgstr "Copte" #: ../input-pad/unicode_block.h:127 msgid "Georgian Supplement" msgstr "Supplément géorgien" #: ../input-pad/unicode_block.h:128 msgid "Tifinagh" msgstr "Tifinagh" #: ../input-pad/unicode_block.h:129 msgid "Ethiopic Extended" msgstr "Éthiopien étendu" #: ../input-pad/unicode_block.h:130 msgid "Cyrillic Extended-A" msgstr "Cyrillique étendu-A" #: ../input-pad/unicode_block.h:131 msgid "Supplemental Punctuation" msgstr "Ponctuation complémentaire" #: ../input-pad/unicode_block.h:133 msgid "Kangxi Radicals" msgstr "Radicaux Kangxi" #: ../input-pad/unicode_block.h:134 msgid "Ideographic Description Characters" msgstr "Caractères de description idéographique" #: ../input-pad/unicode_block.h:135 msgid "CJK Symbols and Punctuation" msgstr "Symboles et ponctuation CJC" #: ../input-pad/unicode_block.h:139 msgid "Hangul Compatibility Jamo" msgstr "Compatibilité Hangeul Jamo" #: ../input-pad/unicode_block.h:140 msgid "Kanbun" msgstr "Kanbun" #: ../input-pad/unicode_block.h:141 msgid "Bopomofo Extended" msgstr "Bopomofo étendu" #: ../input-pad/unicode_block.h:142 msgid "CJK Strokes" msgstr "Traits CJC" #: ../input-pad/unicode_block.h:143 msgid "Katakana Phonetic Extensions" msgstr "Extensions Katakana phonétiques" #: ../input-pad/unicode_block.h:144 msgid "Enclosed CJK Letters and Months" msgstr "Lettres et mois CJC cerclés" #: ../input-pad/unicode_block.h:146 msgid "CJK Unified Ideographs Extension A" msgstr "Idéographes unifiés CJC Extension A" #: ../input-pad/unicode_block.h:147 msgid "Yijing Hexagram Symbols" msgstr "Symboles hexagrammes Yì Jīng" #: ../input-pad/unicode_block.h:148 msgid "CJK Unified Ideographs" msgstr "Idéographes unifiés CJC" #: ../input-pad/unicode_block.h:149 msgid "Yi Syllables" msgstr "Syllables Yi" #: ../input-pad/unicode_block.h:150 msgid "Yi Radicals" msgstr "Radicaux Yi" #: ../input-pad/unicode_block.h:151 msgid "Lisu" msgstr "Lisu" #: ../input-pad/unicode_block.h:152 msgid "Vai" msgstr "Vai" #: ../input-pad/unicode_block.h:153 msgid "Cyrillic Extended-B" msgstr "Cyrillique étendu-B" #: ../input-pad/unicode_block.h:154 msgid "Bamum" msgstr "Bamoun" #: ../input-pad/unicode_block.h:155 msgid "Modifier Tone Letters" msgstr "" #: ../input-pad/unicode_block.h:156 msgid "Latin Extended-D" msgstr "Latin étendu-D" #: ../input-pad/unicode_block.h:157 msgid "Syloti Nagri" msgstr "Afficher les options d'eekboard" #: ../input-pad/unicode_block.h:158 msgid "Common Indic Number Forms" msgstr "" #: ../input-pad/unicode_block.h:159 msgid "Phags-pa" msgstr "" #: ../input-pad/unicode_block.h:160 msgid "Saurashtra" msgstr "" #: ../input-pad/unicode_block.h:161 msgid "Devanagari Extended" msgstr "Devanagari étendu" #: ../input-pad/unicode_block.h:162 msgid "Kayah Li" msgstr "Kayah Li" #: ../input-pad/unicode_block.h:163 msgid "Rejang" msgstr "Rejang" #: ../input-pad/unicode_block.h:164 msgid "Hangul Jamo Extended-A" msgstr "Hangeul Jamo étendu-A" #: ../input-pad/unicode_block.h:165 msgid "Javanese" msgstr "Javanais" #: ../input-pad/unicode_block.h:166 msgid "Cham" msgstr "Cham" #: ../input-pad/unicode_block.h:167 msgid "Myanmar Extended-A" msgstr "Myanmar étendu-A" #: ../input-pad/unicode_block.h:168 msgid "Tai Viet" msgstr "Tai Viet" #: ../input-pad/unicode_block.h:169 msgid "Meetei Mayek" msgstr "Meetei Mayek" #: ../input-pad/unicode_block.h:170 msgid "Hangul Syllables" msgstr "Syllabes hangeul" #: ../input-pad/unicode_block.h:171 msgid "Hangul Jamo Extended-B" msgstr "Hangeul Jamo étendu-B" #: ../input-pad/unicode_block.h:172 msgid "High Surrogates" msgstr "Substituts hauts" #: ../input-pad/unicode_block.h:173 msgid "High Private Use Surrogates" msgstr "" #: ../input-pad/unicode_block.h:174 msgid "Low Surrogates" msgstr "Substituts bas" #: ../input-pad/unicode_block.h:175 msgid "Private Use Area" msgstr "Zone à usage privé" #: ../input-pad/unicode_block.h:176 msgid "CJK Compatibility Ideographs" msgstr "Idéographes de compatibilité CJC" #: ../input-pad/unicode_block.h:177 msgid "Alphabetic Presentation Forms" msgstr "" #: ../input-pad/unicode_block.h:178 msgid "Arabic Presentation Forms-A" msgstr "" #: ../input-pad/unicode_block.h:179 msgid "Variation Selectors" msgstr "" #: ../input-pad/unicode_block.h:180 msgid "Vertical Forms" msgstr "" #: ../input-pad/unicode_block.h:181 msgid "Combining Half Marks" msgstr "" #: ../input-pad/unicode_block.h:182 msgid "CJK Compatibility Forms" msgstr "Formes de compatibilité CJC" #: ../input-pad/unicode_block.h:183 msgid "Small Form Variants" msgstr "" #: ../input-pad/unicode_block.h:184 msgid "Arabic Presentation Forms-B" msgstr "" #: ../input-pad/unicode_block.h:185 msgid "Halfwidth and Fullwidth Forms" msgstr "" #: ../input-pad/unicode_block.h:186 msgid "Specials" msgstr "" #: ../input-pad/unicode_block.h:187 msgid "Linear B Syllabary" msgstr "" #: ../input-pad/unicode_block.h:188 msgid "Linear B Ideograms" msgstr "" #: ../input-pad/unicode_block.h:189 msgid "Aegean Numbers" msgstr "Gurmukhi" #: ../input-pad/unicode_block.h:190 msgid "Ancient Greek Numbers" msgstr "Nombres grecs anciens" #: ../input-pad/unicode_block.h:191 msgid "Ancient Symbols" msgstr "Anciens symboles " #: ../input-pad/unicode_block.h:192 msgid "Phaistos Disc" msgstr "" #: ../input-pad/unicode_block.h:193 msgid "Lycian" msgstr "Lycien" #: ../input-pad/unicode_block.h:194 msgid "Carian" msgstr "" #: ../input-pad/unicode_block.h:195 msgid "Old Italic" msgstr "Vieux italique" #: ../input-pad/unicode_block.h:197 msgid "Ugaritic" msgstr "Ugaritique" #: ../input-pad/unicode_block.h:198 msgid "Old Persian" msgstr "Vieux-perse" #: ../input-pad/unicode_block.h:199 msgid "Deseret" msgstr "Deseret" #: ../input-pad/unicode_block.h:201 msgid "Osmanya" msgstr "" #: ../input-pad/unicode_block.h:202 msgid "Cypriot Syllabary" msgstr "" #: ../input-pad/unicode_block.h:203 msgid "Imperial Aramaic" msgstr "" #: ../input-pad/unicode_block.h:204 msgid "Phoenician" msgstr "Chat" #: ../input-pad/unicode_block.h:205 msgid "Lydian" msgstr "" #: ../input-pad/unicode_block.h:206 msgid "Kharoshthi" msgstr "Extensions Katakana phonétiques" #: ../input-pad/unicode_block.h:207 msgid "Old South Arabian" msgstr "Vieux Arabe du Sud" #: ../input-pad/unicode_block.h:208 msgid "Avestan" msgstr "" #: ../input-pad/unicode_block.h:209 msgid "Inscriptional Parthian" msgstr "" #: ../input-pad/unicode_block.h:210 msgid "Inscriptional Pahlavi" msgstr "" #: ../input-pad/unicode_block.h:211 msgid "Old Turkic" msgstr "" #: ../input-pad/unicode_block.h:212 msgid "Rumi Numeral Symbols" msgstr "" #: ../input-pad/unicode_block.h:213 msgid "Kaithi" msgstr "Kaithi" #: ../input-pad/unicode_block.h:214 msgid "Cuneiform" msgstr "" #: ../input-pad/unicode_block.h:215 msgid "Cuneiform Numbers and Punctuation" msgstr "" #: ../input-pad/unicode_block.h:216 msgid "Egyptian Hieroglyphs" msgstr "" #: ../input-pad/unicode_block.h:217 msgid "Byzantine Musical Symbols" msgstr "Symboles musicaux byzantins" #: ../input-pad/unicode_block.h:218 msgid "Musical Symbols" msgstr "Symboles musicaux" #: ../input-pad/unicode_block.h:219 msgid "Ancient Greek Musical Notation" msgstr "Notation musicale grecque ancienne" #: ../input-pad/unicode_block.h:220 msgid "Tai Xuan Jing Symbols" msgstr "Symboles Tai Xuan Jing" #: ../input-pad/unicode_block.h:221 msgid "Counting Rod Numerals" msgstr "" #: ../input-pad/unicode_block.h:222 msgid "Mathematical Alphanumeric Symbols" msgstr "Symboles mathématiques alphanumériques" #: ../input-pad/unicode_block.h:223 msgid "Mahjong Tiles" msgstr "Tuiles de mahjong" #: ../input-pad/unicode_block.h:224 msgid "Domino Tiles" msgstr "Dominos" #: ../input-pad/unicode_block.h:225 msgid "Enclosed Alphanumeric Supplement" msgstr "Supplément alphanumérique cerclé" #: ../input-pad/unicode_block.h:226 msgid "Enclosed Ideographic Supplement" msgstr "Supplément idéographique cerclé" #: ../input-pad/unicode_block.h:227 msgid "CJK Unified Ideographs Extension B" msgstr "Idéographes unifiés CJC Extension B" #: ../input-pad/unicode_block.h:228 msgid "CJK Unified Ideographs Extension C" msgstr "Idéographes unifiés CJC Extension C" #: ../input-pad/unicode_block.h:229 msgid "CJK Compatibility Ideographs Supplement" msgstr "" #: ../input-pad/unicode_block.h:230 msgid "Tags" msgstr "Mots-clés" #: ../input-pad/unicode_block.h:231 msgid "Variation Selectors Supplement" msgstr "" #: ../input-pad/unicode_block.h:232 msgid "Supplementary Private Use Area-A" msgstr "" #: ../input-pad/unicode_block.h:233 msgid "Supplementary Private Use Area-B" msgstr "Area-B Zone à usage privé supplémentaire" #: ../input-pad/window-gtk.c:203 msgid "Display version" msgstr "Afficher la version" #. Translators: the word 'KBDUI' is not translated. #: ../input-pad/window-gtk.c:206 msgid "Use KBDUI to draw keyboard" msgstr "Utiliser KBDUI pour dessiner le clavier" #. Translators: the word 'TYPE' is not translated. #: ../input-pad/window-gtk.c:209 msgid "Use TYPE of char table. The available TYPE=0, 1, 2" msgstr "Utiliser TYPE de table de caractères. Disponibles TYPE=0, 1, 2" #. Translators: the word 'TYPE' is not translated. #: ../input-pad/window-gtk.c:212 msgid "Use TYPE of keyboard layout. The available TYPE=0, 1" msgstr "Utiliser TYPE de disposition clavier. Disponibles TYPE=0, 1" #: ../input-pad/window-gtk.c:219 msgid "Use XTEST module to send key events" msgstr "Utiliser le module XTEST pour envoyer les événements de touches" #: ../input-pad/window-gtk.c:224 msgid "Use XSendEvent to send key events" msgstr "Utiliser XSendEvent pour envoyer les événements de touches" #: ../input-pad/window-gtk.c:1172 msgid "Fold layout" msgstr "Plier la disposition" #: ../input-pad/window-gtk.c:1177 ../input-pad/window-gtk.c:2610 msgid "Extend layout" msgstr "Étendre la disposition" #: ../input-pad/window-gtk.c:2824 msgid "Layout" msgstr "Disposition" #: ../input-pad/window-gtk.c:3095 msgid "_Layout:" msgstr "_Disposition:" #: ../input-pad/window-gtk.c:3125 msgid "_Configure Layouts" msgstr "_Configurer les dispositions" #. No longer used in gtk 2.20 #. gchar *license1, *license2, *license3; #. license1 = _("" #. "This library is free software; you can redistribute it and/or " #. "modify it under the terms of the GNU Lesser General Public " #. "License as published by the Free Software Foundation; either " #. "version 2 of the License, or (at your option) any later version."); #. #. license2 = _("" #. "This library is distributed in the hope that it will be useful, " #. "but WITHOUT ANY WARRANTY; without even the implied warranty of " #. "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU " #. "Lesser General Public License for more details."); #. #. license3 = _("" #. "You should have received a copy of the GNU Lesser General Public " #. "License along with this library; if not, write to the Free Software " #. "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, " #. "MA 02110-1301 USA"); #. #. license = g_strdup_printf ("%s\n\n%s\n\n%s", #. license1, license2, license3); #. #. This format has been used since gtk 2.20. #: ../input-pad/window-gtk.c:3164 #, c-format msgid "This program comes with ABSOLUTELY NO WARRANTY; for details, visit %s" msgstr "" "Ce programme est livré avec ABSOLUMENT AUCUNE GARANTIE; pour plus de " "détails, visitez le site %s" #: ../input-pad/window-gtk.c:3446 msgid "Group" msgstr "Groupe" #: ../input-pad/window-gtk.c:3454 msgid "Subgroup" msgstr "Sous-groupe" input-pad-1.1.0/po/hu.po000066400000000000000000002162641476727667600150530ustar00rootroot00000000000000# Hungarian translations for input-pad # Copyright (C) 2010-2025 Takao Fujiwara # This file is distributed under the same license as the input-pad package. # # Translators: # Zoltan Hoppár , 2012-2013 # Hoppár Zoltán , 2023. msgid "" msgstr "" "Project-Id-Version: input-pad HEAD\n" "Report-Msgid-Bugs-To: http://code.google.com/p/input-pad/issues/list\n" "POT-Creation-Date: 2016-03-02 18:45+0900\n" "PO-Revision-Date: 2023-10-08 16:35+0000\n" "Last-Translator: Hoppár Zoltán \n" "Language-Team: Hungarian \n" "Language: hu\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: Weblate 5.0.2\n" #: ../data/alphabet.xml.in.in.h:1 msgid "Alphabets" msgstr "Abc-k" #: ../data/base.xml.in.h:1 msgid "Symbols" msgstr "Szimbólumok" #: ../data/base.xml.in.h:2 msgid "Currency" msgstr "Pénznem" #: ../data/base.xml.in.h:3 msgid "Letterlike" msgstr "Betűszerű" #: ../data/base.xml.in.h:4 msgid "Miscellaneous" msgstr "Egyéb" #: ../data/base.xml.in.h:5 ../input-pad/unicode_block.h:116 msgid "Dingbats" msgstr "Apróságok" #. Translators: Superscripts and Subscripts #: ../data/base.xml.in.h:7 msgid "Super and Sub" msgstr "Kitevő és alszám" #: ../data/base.xml.in.h:8 msgid "Bold" msgstr "Félkövér" #: ../data/base.xml.in.h:9 msgid "Italic" msgstr "Dőlt" #: ../data/base.xml.in.h:10 msgid "Script" msgstr "Kézírás" #: ../data/base.xml.in.h:11 msgid "Double Struck" msgstr "Kétszer áthúzott" #: ../data/base.xml.in.h:12 msgid "All" msgstr "Összes" #: ../data/base.xml.in.h:13 ../data/zh.xml.in.h:2 msgid "Numbers" msgstr "Számok" #: ../data/base.xml.in.h:14 msgid "Roman" msgstr "Román" #: ../data/base.xml.in.h:15 msgid "Enclosed" msgstr "Beépített" #: ../data/base.xml.in.h:16 msgid "Fraction" msgstr "Töredék" #: ../data/base.xml.in.h:17 msgid "Technical" msgstr "Technikai" #: ../data/base.xml.in.h:18 msgid "Unit" msgstr "Egység" #: ../data/base.xml.in.h:19 msgid "Mathematical" msgstr "Matematikai" #: ../data/base.xml.in.h:20 msgid "Controls" msgstr "Vezérlők" #: ../data/base.xml.in.h:21 msgid "OCR" msgstr "OCR" #: ../data/base.xml.in.h:22 msgid "Graphics" msgstr "Grafikai" #: ../data/base.xml.in.h:23 msgid "Arrow" msgstr "Nyíl" #: ../data/base.xml.in.h:24 ../input-pad/unicode_block.h:112 msgid "Box Drawing" msgstr "Négyzet rajz" #: ../data/base.xml.in.h:25 ../input-pad/window-gtk.c:3685 msgid "Block" msgstr "Blokk" #: ../data/base.xml.in.h:26 msgid "Geometric" msgstr "Geometriai" #: ../data/base.xml.in.h:27 msgid "Braille" msgstr "Braille" #: ../data/base.xml.in.h:28 msgid "Punctuations" msgstr "Beszúrások" #: ../data/base.xml.in.h:29 msgid "General" msgstr "Általános" #: ../data/base.xml.in.h:30 msgid "CJK" msgstr "CJK" #: ../data/base.xml.in.h:31 ../input-pad/unicode_block.h:145 msgid "CJK Compatibility" msgstr "CJK Kompatibilitás" #: ../data/base.xml.in.h:32 msgid "Small Form" msgstr "Kis formátumú" #: ../data/cmd.xml.in.h:1 msgid "Command" msgstr "Parancs" #: ../data/cmd.xml.in.h:2 msgid "Date" msgstr "Dátum" #: ../data/cmd.xml.in.h:3 msgid "Normal Date" msgstr "Normál Dátum" #: ../data/cmd.xml.in.h:4 msgid "Date and Time" msgstr "Dátum és Idő" #: ../data/cmd.xml.in.h:5 msgid "ChangeLog date" msgstr "Változásnapló dátuma" #: ../data/cmd.xml.in.h:6 msgid "USA English date" msgstr "USA angol dátum" #: ../data/cmd.xml.in.h:7 msgid "UK English date" msgstr "Brit angol dátum" #: ../data/cmd.xml.in.h:8 msgid "ISO 8601 date" msgstr "ISO 8601 dátum" #: ../data/cmd.xml.in.h:9 msgid "Era" msgstr "Era" #: ../data/cmd.xml.in.h:10 msgid "Century Year" msgstr "Évszázadok" #: ../data/cmd.xml.in.h:11 msgid "Normal Time" msgstr "Normál idő" #: ../data/cmd.xml.in.h:12 msgid "English Time" msgstr "Angol idő" #: ../data/cmd.xml.in.h:13 msgid "Month" msgstr "Hónap" #: ../data/cmd.xml.in.h:14 msgid "English Month" msgstr "Angol hónapok" #: ../data/cmd.xml.in.h:15 msgid "Short Month" msgstr "Röv. hónap" #: ../data/cmd.xml.in.h:16 msgid "English Short Month" msgstr "Angol röv. hónapok" #: ../data/cmd.xml.in.h:17 msgid "Weekday" msgstr "Hétköznap" #: ../data/cmd.xml.in.h:18 msgid "English Weekday" msgstr "Angol hétköznapok" #: ../data/cmd.xml.in.h:19 msgid "Short Weekday" msgstr "Röv. hétköznapok" #: ../data/cmd.xml.in.h:20 msgid "English Short Weekday" msgstr "Angol röv. hétköznapok" #: ../data/goth.xml.in.h:1 ../input-pad/unicode_block.h:196 msgid "Gothic" msgstr "Gót" #: ../data/input-pad.desktop.in.h:1 ../input-pad/dialog.ui.h:42 #: ../input-pad/window-gtk.c:5084 ../input-pad/window-gtk.c:5085 #: ../input-pad/window-gtk.ui.h:1 msgid "Input Pad" msgstr "Bemeneti tábla" #. "IPA" stands for "International Phonetic Alphabet" #: ../data/ipa-obsolete.xml.in.h:2 msgid "IPA (Obsolete)" msgstr "IPA (elavult)" #: ../data/ipa-obsolete.xml.in.h:3 ../data/ipa.xml.in.h:6 msgid "Open back unrounded vowel" msgstr "Nyitott hátsó ejtésű lekerekítetlen magánhangzó" #: ../data/ipa-obsolete.xml.in.h:4 msgid "Palatalized voiced bilabial plosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:5 msgid "Voiceless palatal implosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:6 ../data/ipa.xml.in.h:138 msgid "Alveolar click" msgstr "" #: ../data/ipa-obsolete.xml.in.h:7 msgid "Palatalized voiced alveolar plosive" msgstr "Palatalizált zöngés bilabiális plosive" #: ../data/ipa-obsolete.xml.in.h:8 ../data/ipa.xml.in.h:25 msgid "Voiced alveolar affricate" msgstr "" #: ../data/ipa-obsolete.xml.in.h:9 ../data/ipa.xml.in.h:27 msgid "Voiced alveopalatal affricate" msgstr "" #: ../data/ipa-obsolete.xml.in.h:10 ../data/ipa.xml.in.h:26 msgid "Voiced palato-alveolar affricate" msgstr "" #: ../data/ipa-obsolete.xml.in.h:11 msgid "Palatalized voiceless labiodental fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:12 msgid "Palatalized voiced velar plosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:13 msgid "Palatalized voiceless velar plosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:14 msgid "Voiceless velar implosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:15 msgid "Palatalized alveolar lateral approximant" msgstr "" #: ../data/ipa-obsolete.xml.in.h:16 msgid "Palatalized bilabial nasal" msgstr "" #: ../data/ipa-obsolete.xml.in.h:17 msgid "Palatalized alveolar nasal" msgstr "" #: ../data/ipa-obsolete.xml.in.h:18 msgid "Syllabic alveolar nasal" msgstr "" #: ../data/ipa-obsolete.xml.in.h:19 msgid "Palatalized voiceless bilabial plosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:20 msgid "Voiceless bilabial implosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:21 msgid "Palatalized alveolar trill" msgstr "" #: ../data/ipa-obsolete.xml.in.h:22 msgid "Voiced strident apico-alveolar trill" msgstr "" #: ../data/ipa-obsolete.xml.in.h:23 msgid "Palatalized voiceless alveolar fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:24 ../data/ipa.xml.in.h:19 msgid "Voiceless alveopalatal fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:25 msgid "Labialized voiceless palato-alveolar fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:26 ../data/ipa.xml.in.h:103 msgid "Voiceless alveopalatal affricate" msgstr "" #: ../data/ipa-obsolete.xml.in.h:27 ../data/ipa.xml.in.h:101 msgid "Voiceless alveolar affricate" msgstr "" #: ../data/ipa-obsolete.xml.in.h:28 ../data/ipa.xml.in.h:102 msgid "Voiceless palato-alveolar affricate" msgstr "" #: ../data/ipa-obsolete.xml.in.h:29 msgid "Palatalized voiceless alveolar plosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:30 msgid "Voiceless alveolar implosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:31 ../data/ipa.xml.in.h:137 msgid "Dental click" msgstr "" #: ../data/ipa-obsolete.xml.in.h:32 msgid "Voiceless uvular implosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:33 msgid "Palatalized voiced labiodental fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:34 msgid "Palatalized voiceless velar fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:35 msgid "Palatalized voiced alveolar fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:36 msgid "Labialized voiced palato-alveolar fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:37 ../data/ipa.xml.in.h:128 msgid "Voiced alveopalatal fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:38 ../data/ipa.xml.in.h:106 msgid "Near-close near-back vowel" msgstr "" #: ../data/ipa-obsolete.xml.in.h:39 ../data/ipa.xml.in.h:140 msgid "Alveolar lateral click" msgstr "" #: ../data/ipa-obsolete.xml.in.h:40 msgid "Labialized voiceless alveolar or dental fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:41 msgid "Labialized voiced alveolar or dental fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:42 msgid "Combining labialization mark" msgstr "" #: ../data/ipa-obsolete.xml.in.h:43 msgid "Combining palatalization mark" msgstr "" #. "IPA" stands for "International Phonetic Alphabet" #: ../data/ipa-unofficial.xml.in.h:2 msgid "IPA (Unofficial)" msgstr "" #: ../data/ipa-unofficial.xml.in.h:3 msgid "Voiced labiodental plosive" msgstr "" #: ../data/ipa-unofficial.xml.in.h:4 ../data/ipa.xml.in.h:18 msgid "Voiceless palatal lateral affricate" msgstr "" #: ../data/ipa-unofficial.xml.in.h:5 msgid "Voiced retroflex implosive" msgstr "" #: ../data/ipa-unofficial.xml.in.h:6 ../data/ipa.xml.in.h:88 msgid "Alveolar flap" msgstr "" #: ../data/ipa-unofficial.xml.in.h:7 ../data/ipa.xml.in.h:125 msgid "Voiceless palatal lateral fricative" msgstr "" #: ../data/ipa-unofficial.xml.in.h:8 ../data/ipa.xml.in.h:91 msgid "Retroflex flap" msgstr "" #: ../data/ipa-unofficial.xml.in.h:9 msgid "Voiceless retroflex lateral fricative" msgstr "" #. "PUA" stands for "Private Use Area" #: ../data/ipa-unofficial.xml.in.h:11 msgid "Voiceless retroflex lateral fricative (PUA)" msgstr "" #: ../data/ipa-unofficial.xml.in.h:12 ../data/ipa.xml.in.h:59 msgid "Voiceless velar lateral affricate" msgstr "" #: ../data/ipa-unofficial.xml.in.h:13 ../data/ipa.xml.in.h:68 msgid "Voiceless velar lateral fricative" msgstr "" #: ../data/ipa-unofficial.xml.in.h:14 msgid "Epiglottal trill" msgstr "" #: ../data/ipa-unofficial.xml.in.h:15 msgid "Voiceless labiodental plosive" msgstr "" #: ../data/ipa-unofficial.xml.in.h:16 msgid "Voiceless retroflex lateral affricate" msgstr "" #. "PUA" stands for "Private Use Area" #: ../data/ipa-unofficial.xml.in.h:18 msgid "Voiceless retroflex lateral affricate (PUA)" msgstr "" #: ../data/ipa-unofficial.xml.in.h:19 msgid "Combining stridency mark" msgstr "" #. "PUA" stands for "Private Use Area" #: ../data/ipa-unofficial.xml.in.h:21 msgid "Combining stridency mark (PUA)" msgstr "" #. "IPA" stands for "International Phonetic Alphabet" #: ../data/ipa.xml.in.h:2 msgid "IPA" msgstr "" #: ../data/ipa.xml.in.h:3 msgid "Open front unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:4 msgid "Open central unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:5 msgid "Near-open central vowel" msgstr "" #: ../data/ipa.xml.in.h:7 msgid "Open back rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:8 msgid "Open-mid back unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:9 msgid "Near-open front unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:10 msgid "Voiced bilabial plosive" msgstr "" #: ../data/ipa.xml.in.h:11 msgid "Voiced labiodental affricate" msgstr "" #: ../data/ipa.xml.in.h:12 msgid "Voiced bilabial implosive" msgstr "" #: ../data/ipa.xml.in.h:13 msgid "Bilabial trill" msgstr "" #: ../data/ipa.xml.in.h:14 msgid "Voiced bilabial fricative" msgstr "" #: ../data/ipa.xml.in.h:15 msgid "Voiceless palatal plosive" msgstr "" #: ../data/ipa.xml.in.h:16 msgid "Voiceless palatal fricative" msgstr "" #: ../data/ipa.xml.in.h:17 msgid "Voiceless palatal affricate" msgstr "" #: ../data/ipa.xml.in.h:20 msgid "Voiced alveolar plosive" msgstr "" #: ../data/ipa.xml.in.h:21 msgid "Voiced alveolar implosive" msgstr "" #: ../data/ipa.xml.in.h:22 msgid "Voiced retroflex plosive" msgstr "" #: ../data/ipa.xml.in.h:23 msgid "Voiced dental fricative" msgstr "" #: ../data/ipa.xml.in.h:24 msgid "Voiced alveolar lateral affricate" msgstr "" #: ../data/ipa.xml.in.h:28 msgid "Voiced retroflex affricate" msgstr "" #: ../data/ipa.xml.in.h:29 msgid "Close-mid front unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:30 msgid "Close-mid central unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:31 msgid "Mid-central vowel" msgstr "" #: ../data/ipa.xml.in.h:32 msgid "Rhotacized mid-central vowel" msgstr "" #: ../data/ipa.xml.in.h:33 msgid "Open-mid front unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:34 msgid "Open-mid central rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:35 msgid "Open-mid central unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:36 msgid "Rhotacized open-mid central unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:37 msgid "Voiceless labiodental fricative" msgstr "" #: ../data/ipa.xml.in.h:38 msgid "Velopharyngeal fricative" msgstr "" #: ../data/ipa.xml.in.h:39 msgid "Voiced velar plosive" msgstr "" #: ../data/ipa.xml.in.h:40 msgid "Voiced labial-velar plosive" msgstr "" #: ../data/ipa.xml.in.h:41 msgid "Voiced velar implosive" msgstr "" #: ../data/ipa.xml.in.h:42 msgid "Voiced uvular plosive" msgstr "" #: ../data/ipa.xml.in.h:43 msgid "Voiced uvular implosive" msgstr "" #: ../data/ipa.xml.in.h:44 msgid "Voiceless glottal fricative" msgstr "" #: ../data/ipa.xml.in.h:45 msgid "Voiced glottal fricative" msgstr "" #: ../data/ipa.xml.in.h:46 msgid "Voiceless pharyngeal fricative" msgstr "" #: ../data/ipa.xml.in.h:47 msgid "Voiceless coarticulated velar and palato-alveolar fricative" msgstr "" #: ../data/ipa.xml.in.h:48 msgid "Voiceless epiglottal fricative" msgstr "" #: ../data/ipa.xml.in.h:49 msgid "Close front unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:50 msgid "Near-close near-front unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:51 msgid "Near-close central unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:52 msgid "Close central unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:53 msgid "Palatal approximant" msgstr "" #: ../data/ipa.xml.in.h:54 msgid "Voiced palatal fricative" msgstr "" #: ../data/ipa.xml.in.h:55 msgid "Voiced palatal plosive" msgstr "" #: ../data/ipa.xml.in.h:56 msgid "Voiced palatal affricate" msgstr "" #: ../data/ipa.xml.in.h:57 msgid "Voiced palatal implosive" msgstr "" #: ../data/ipa.xml.in.h:58 msgid "Voiceless velar plosive" msgstr "" #: ../data/ipa.xml.in.h:60 msgid "Voiceless labial-velar plosive" msgstr "" #: ../data/ipa.xml.in.h:61 msgid "Voiceless velar affricate" msgstr "" #: ../data/ipa.xml.in.h:62 msgid "Alveolar lateral approximant" msgstr "" #: ../data/ipa.xml.in.h:63 msgid "Velarized alveolar lateral approximant" msgstr "" #: ../data/ipa.xml.in.h:64 msgid "Voiceless alveolar lateral fricative" msgstr "" #: ../data/ipa.xml.in.h:65 msgid "Retroflex lateral approximant" msgstr "" #: ../data/ipa.xml.in.h:66 msgid "Voiced alveolar lateral fricative" msgstr "" #: ../data/ipa.xml.in.h:67 msgid "Velar lateral approximant" msgstr "" #: ../data/ipa.xml.in.h:69 msgid "Bilabial nasal" msgstr "" #: ../data/ipa.xml.in.h:70 msgid "Labiodental nasal" msgstr "" #: ../data/ipa.xml.in.h:71 msgid "Alveolar nasal" msgstr "" #: ../data/ipa.xml.in.h:72 msgid "Velar nasal" msgstr "" #: ../data/ipa.xml.in.h:73 msgid "Labial-velar nasal" msgstr "" #: ../data/ipa.xml.in.h:74 msgid "Palatal nasal" msgstr "" #: ../data/ipa.xml.in.h:75 msgid "Retroflex nasal" msgstr "" #: ../data/ipa.xml.in.h:76 msgid "Uvular nasal" msgstr "" #: ../data/ipa.xml.in.h:77 msgid "Close-mid back rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:78 msgid "Close-mid front rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:79 msgid "Close-mid central rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:80 msgid "Open-mid front rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:81 msgid "Open front rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:82 msgid "Voiceless bilabial plosive" msgstr "" #: ../data/ipa.xml.in.h:83 msgid "Voiceless bilabial-labiodental affricate" msgstr "" #: ../data/ipa.xml.in.h:84 msgid "Voiceless bilabial affricate" msgstr "" #: ../data/ipa.xml.in.h:85 msgid "Voiceless labiodental affricate" msgstr "" #: ../data/ipa.xml.in.h:86 msgid "Voiceless uvular plosive" msgstr "" #: ../data/ipa.xml.in.h:87 msgid "Alveolar trill" msgstr "" #: ../data/ipa.xml.in.h:89 msgid "Alveolar lateral flap" msgstr "" #: ../data/ipa.xml.in.h:90 msgid "Uvular trill" msgstr "" #: ../data/ipa.xml.in.h:92 msgid "Alveolar approximant" msgstr "" #: ../data/ipa.xml.in.h:93 msgid "Retroflex approximant" msgstr "" #: ../data/ipa.xml.in.h:94 msgid "Voiced uvular fricative" msgstr "" #: ../data/ipa.xml.in.h:95 msgid "Voiceless alveolar fricative" msgstr "" #: ../data/ipa.xml.in.h:96 msgid "Voiceless palato-alveolar fricative" msgstr "" #: ../data/ipa.xml.in.h:97 msgid "Voiceless retroflex fricative" msgstr "" #: ../data/ipa.xml.in.h:98 msgid "Voiceless alveolar plosive" msgstr "" #: ../data/ipa.xml.in.h:99 msgid "Voiceless retroflex plosive" msgstr "" #: ../data/ipa.xml.in.h:100 msgid "Voiceless alveolar lateral affricate" msgstr "" #: ../data/ipa.xml.in.h:104 msgid "Voiceless retroflex affricate" msgstr "" #: ../data/ipa.xml.in.h:105 msgid "Close back rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:107 msgid "Near-close central vowel" msgstr "" #: ../data/ipa.xml.in.h:108 msgid "Close central rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:109 msgid "Labial-palatal approximant" msgstr "" #: ../data/ipa.xml.in.h:110 msgid "Close back unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:111 msgid "Voiced labiodental fricative" msgstr "" #: ../data/ipa.xml.in.h:112 msgid "Labiodental flap" msgstr "" #: ../data/ipa.xml.in.h:113 msgid "Labiodental approximant" msgstr "" #: ../data/ipa.xml.in.h:114 msgid "Voiced velar fricative" msgstr "" #: ../data/ipa.xml.in.h:115 msgid "Close-mid back unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:116 msgid "Voiced labiovelar approximant" msgstr "" #: ../data/ipa.xml.in.h:117 msgid "Voiceless labiovelar approximant" msgstr "" #: ../data/ipa.xml.in.h:118 msgid "Velar approximant" msgstr "" #: ../data/ipa.xml.in.h:119 msgid "Bilabial percussive" msgstr "" #: ../data/ipa.xml.in.h:120 msgid "Voiceless velar fricative" msgstr "" #: ../data/ipa.xml.in.h:121 msgid "Voiceless uvular fricative" msgstr "" #: ../data/ipa.xml.in.h:122 msgid "Close front rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:123 msgid "Near-close near-front rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:124 msgid "Palatal lateral approximant" msgstr "" #: ../data/ipa.xml.in.h:126 msgid "Voiced alveolar fricative" msgstr "" #: ../data/ipa.xml.in.h:127 msgid "Voiced palato-alveolar fricative" msgstr "" #: ../data/ipa.xml.in.h:129 msgid "Voiced retroflex fricative" msgstr "" #: ../data/ipa.xml.in.h:130 msgid "Voiceless dental fricative" msgstr "" #: ../data/ipa.xml.in.h:131 msgid "Voiceless bilabial fricative" msgstr "" #: ../data/ipa.xml.in.h:132 msgid "Glottal stop" msgstr "" #: ../data/ipa.xml.in.h:133 msgid "Epiglottal plosive" msgstr "" #: ../data/ipa.xml.in.h:134 msgid "Voiced pharyngeal fricative" msgstr "" #: ../data/ipa.xml.in.h:135 msgid "Voiced epiglottal fricative" msgstr "" #: ../data/ipa.xml.in.h:136 msgid "Bilabial click" msgstr "" #: ../data/ipa.xml.in.h:139 msgid "Palatal click" msgstr "" #: ../data/ipa.xml.in.h:141 msgid "Bidental percussive" msgstr "" #: ../data/ipa.xml.in.h:142 msgid "Aspiration mark" msgstr "" #: ../data/ipa.xml.in.h:143 msgid "Non-aspiration mark" msgstr "" #: ../data/ipa.xml.in.h:144 msgid "Breathy voice mark" msgstr "" #: ../data/ipa.xml.in.h:145 msgid "Palatalization mark" msgstr "" #: ../data/ipa.xml.in.h:146 msgid "Lateral release mark" msgstr "" #: ../data/ipa.xml.in.h:147 msgid "Bilabial nasal release mark" msgstr "" #: ../data/ipa.xml.in.h:148 msgid "Labiodental nasal release mark" msgstr "" #: ../data/ipa.xml.in.h:149 msgid "Alveolar nasal release mark" msgstr "" #: ../data/ipa.xml.in.h:150 msgid "Palatal nasal release mark" msgstr "" #: ../data/ipa.xml.in.h:151 msgid "Retroflex nasal release mark" msgstr "" #: ../data/ipa.xml.in.h:152 msgid "Uvular nasal release mark" msgstr "" #: ../data/ipa.xml.in.h:153 msgid "Labio-palatalization mark" msgstr "" #: ../data/ipa.xml.in.h:154 msgid "Labiodentalization mark" msgstr "" #: ../data/ipa.xml.in.h:155 msgid "Labialization mark" msgstr "" #: ../data/ipa.xml.in.h:156 msgid "Velarization mark" msgstr "" #: ../data/ipa.xml.in.h:157 msgid "Glottalization mark" msgstr "" #: ../data/ipa.xml.in.h:158 msgid "Pharyngealization mark" msgstr "" #: ../data/ipa.xml.in.h:159 msgid "Combining velarization/pharyngealization mark" msgstr "" #: ../data/ipa.xml.in.h:160 msgid "Combining laryngealization mark" msgstr "" #: ../data/ipa.xml.in.h:161 msgid "Combining retroflexion mark" msgstr "" #: ../data/ipa.xml.in.h:162 msgid "Ejection mark" msgstr "" #: ../data/ipa.xml.in.h:163 msgid "Rhotacization mark" msgstr "" #: ../data/ipa.xml.in.h:164 msgid "Combining dentalization mark" msgstr "" #: ../data/ipa.xml.in.h:165 msgid "Combining dentolabialization mark" msgstr "" #: ../data/ipa.xml.in.h:166 msgid "Combining alveolarization mark" msgstr "" #: ../data/ipa.xml.in.h:167 msgid "Combining linguolabialization mark" msgstr "" #: ../data/ipa.xml.in.h:168 msgid "Combining apicalization mark" msgstr "" #: ../data/ipa.xml.in.h:169 msgid "Combining laminalization mark" msgstr "" #: ../data/ipa.xml.in.h:170 msgid "Combining centralization mark" msgstr "" #: ../data/ipa.xml.in.h:171 msgid "Combining mid-centralization mark" msgstr "" #: ../data/ipa.xml.in.h:172 msgid "Combining nasalization mark" msgstr "" #: ../data/ipa.xml.in.h:173 msgid "Combining nasalization mark below" msgstr "" #: ../data/ipa.xml.in.h:174 msgid "Combining denasalization mark" msgstr "" #: ../data/ipa.xml.in.h:175 msgid "Combining nasal friction mark" msgstr "" #: ../data/ipa.xml.in.h:176 msgid "Combining velopharyngeal friction mark" msgstr "" #: ../data/ipa.xml.in.h:177 msgid "Combining voiced mark" msgstr "" #: ../data/ipa.xml.in.h:178 msgid "Combining voiceless mark" msgstr "" #: ../data/ipa.xml.in.h:179 msgid "Combining voiceless mark above" msgstr "" #: ../data/ipa.xml.in.h:180 msgid "Pre-voicing/post-voicing mark" msgstr "" #: ../data/ipa.xml.in.h:181 msgid "Combining breathy voice mark" msgstr "" #: ../data/ipa.xml.in.h:182 msgid "Combining unreleased stop mark" msgstr "" #: ../data/ipa.xml.in.h:183 msgid "Combining more rounded mark" msgstr "" #: ../data/ipa.xml.in.h:184 msgid "Combining less rounded mark" msgstr "" #: ../data/ipa.xml.in.h:185 msgid "Combining labial spreading mark" msgstr "" #: ../data/ipa.xml.in.h:186 msgid "Combining syllabic mark" msgstr "" #: ../data/ipa.xml.in.h:187 msgid "Combining syllabic mark above" msgstr "" #: ../data/ipa.xml.in.h:188 msgid "Combining non-syllabic mark" msgstr "" #: ../data/ipa.xml.in.h:189 msgid "Combining non-syllabic mark above" msgstr "" #: ../data/ipa.xml.in.h:190 msgid "Combining top tone mark" msgstr "" #: ../data/ipa.xml.in.h:191 msgid "Combining high tone mark" msgstr "" #: ../data/ipa.xml.in.h:192 msgid "Combining mid tone mark" msgstr "" #: ../data/ipa.xml.in.h:193 msgid "Combining low tone mark" msgstr "" #: ../data/ipa.xml.in.h:194 msgid "Combining bottom tone mark" msgstr "" #: ../data/ipa.xml.in.h:195 msgid "Combining falling tone mark" msgstr "" #: ../data/ipa.xml.in.h:196 msgid "Combining high falling tone mark" msgstr "" #: ../data/ipa.xml.in.h:197 msgid "Combining low falling tone mark" msgstr "" #: ../data/ipa.xml.in.h:198 msgid "Combining rising tone mark" msgstr "" #: ../data/ipa.xml.in.h:199 msgid "Combining high rising tone mark" msgstr "" #: ../data/ipa.xml.in.h:200 msgid "Combining low rising tone mark" msgstr "" #: ../data/ipa.xml.in.h:201 msgid "Combining dipping tone mark" msgstr "" #: ../data/ipa.xml.in.h:202 msgid "Combining peaking tone mark" msgstr "" #: ../data/ipa.xml.in.h:203 msgid "Top tone letter" msgstr "" #: ../data/ipa.xml.in.h:204 msgid "High tone letter" msgstr "" #: ../data/ipa.xml.in.h:205 msgid "Mid tone letter" msgstr "" #: ../data/ipa.xml.in.h:206 msgid "Low tone letter" msgstr "" #: ../data/ipa.xml.in.h:207 msgid "Bottom tone letter" msgstr "" #: ../data/ipa.xml.in.h:208 msgid "Falling tone digraph" msgstr "" #: ../data/ipa.xml.in.h:209 msgid "High falling tone digraph" msgstr "" #: ../data/ipa.xml.in.h:210 msgid "Rising tone digraph" msgstr "" #: ../data/ipa.xml.in.h:211 msgid "High rising tone digraph" msgstr "" #: ../data/ipa.xml.in.h:212 msgid "Low rising tone digraph" msgstr "" #: ../data/ipa.xml.in.h:213 msgid "Dipping tone trigraph" msgstr "" #: ../data/ipa.xml.in.h:214 msgid "Peaking tone trigraph" msgstr "" #: ../data/ipa.xml.in.h:215 msgid "Upstep mark" msgstr "" #: ../data/ipa.xml.in.h:216 msgid "Downstep mark" msgstr "" #: ../data/ipa.xml.in.h:217 msgid "Minor break" msgstr "" #: ../data/ipa.xml.in.h:218 msgid "Major break" msgstr "" #: ../data/ipa.xml.in.h:219 msgid "Rising intonation mark" msgstr "" #: ../data/ipa.xml.in.h:220 msgid "Falling intonation mark" msgstr "" #: ../data/ipa.xml.in.h:221 msgid "Advanced articulation mark" msgstr "" #: ../data/ipa.xml.in.h:222 msgid "Retracted articulation mark" msgstr "" #: ../data/ipa.xml.in.h:223 msgid "Combining advanced articulation mark" msgstr "" #: ../data/ipa.xml.in.h:224 msgid "Combining retracted articulation mark" msgstr "" #: ../data/ipa.xml.in.h:225 msgid "Raised sound mark" msgstr "" #: ../data/ipa.xml.in.h:226 msgid "Lowered sound mark" msgstr "" #: ../data/ipa.xml.in.h:227 msgid "Combining raised sound mark" msgstr "" #: ../data/ipa.xml.in.h:228 msgid "Combining lowered sound mark" msgstr "" #: ../data/ipa.xml.in.h:229 msgid "Combining tongue root advancement mark" msgstr "" #: ../data/ipa.xml.in.h:230 msgid "Combining tongue root retraction mark" msgstr "" #: ../data/ipa.xml.in.h:231 msgid "Combining strong articulation mark" msgstr "" #: ../data/ipa.xml.in.h:232 msgid "Combining weak articulation mark" msgstr "" #: ../data/ipa.xml.in.h:233 msgid "Combining whistled articulation mark" msgstr "" #: ../data/ipa.xml.in.h:234 msgid "Combining sliding articulation mark" msgstr "" #: ../data/ipa.xml.in.h:235 msgid "Egression mark" msgstr "" #: ../data/ipa.xml.in.h:236 msgid "Ingression mark" msgstr "" #: ../data/ipa.xml.in.h:237 msgid "Combining ligature tie" msgstr "" #: ../data/ipa.xml.in.h:238 msgid "Combining ligature undertie" msgstr "" #: ../data/ipa.xml.in.h:239 msgid "Elongation mark" msgstr "" #: ../data/ipa.xml.in.h:240 msgid "Weak elongation mark" msgstr "" #: ../data/ipa.xml.in.h:241 msgid "Combining extra-short duration mark" msgstr "" #: ../data/ipa.xml.in.h:242 msgid "Liaison mark" msgstr "" #: ../data/ipa.xml.in.h:243 msgid "Stress mark" msgstr "" #: ../data/ipa.xml.in.h:244 msgid "Weak stress mark" msgstr "" #: ../data/ipa.xml.in.h:245 msgid "Syllable break" msgstr "" #: ../data/ipa.xml.in.h:246 msgid "Opening orthographic bracket" msgstr "" #: ../data/ipa.xml.in.h:247 msgid "Closing orthographic bracket" msgstr "" #: ../data/ja.xml.in.h:1 msgid "Japanese" msgstr "Japán" #: ../data/ja.xml.in.h:2 ../input-pad/unicode_block.h:136 msgid "Hiragana" msgstr "Hiragana" #: ../data/ja.xml.in.h:3 ../input-pad/unicode_block.h:137 msgid "Katakana" msgstr "Katakana" #: ../data/ja.xml.in.h:4 ../data/zh.xml.in.h:3 msgid "Radicals" msgstr "" #: ../data/ja.xml.in.h:5 ../input-pad/unicode_block.h:132 msgid "CJK Radicals Supplement" msgstr "CJK Radikális kiegészítők" #: ../data/keyboard.xml.in.h:1 msgid "Keyboard" msgstr "" #: ../data/keyboard.xml.in.h:2 msgid "Function Key" msgstr "Funkció billentyű" #: ../data/keyboard.xml.in.h:3 msgid "Key Pad" msgstr "Billentyűzet" #: ../data/latin.xml.in.h:1 msgid "ASCII" msgstr "ASCII" #: ../data/latin.xml.in.h:2 ../input-pad/unicode_block.h:38 msgid "Latin-1 Supplement" msgstr "Latin-1 Kiegészítés" #: ../data/latin.xml.in.h:3 ../input-pad/unicode_block.h:39 msgid "Latin Extended-A" msgstr "Latin kiterjesztett-A" #: ../data/latin.xml.in.h:4 msgid "Old and Middle English" msgstr "" #: ../data/runr.xml.in.h:1 msgid "Runes (Unicode Block)" msgstr "" #: ../data/runr.xml.in.h:2 msgid "Runes (Elder Fuþark)" msgstr "" #: ../data/runr.xml.in.h:3 msgid "Runes (Younger Fuþark)" msgstr "" #: ../data/runr.xml.in.h:4 msgid "Runes (Fuþorc)" msgstr "" #: ../data/shaw.xml.in.h:1 ../input-pad/unicode_block.h:200 msgid "Shavian" msgstr "" #: ../data/str.xml.in.h:1 msgid "Chat" msgstr "" #: ../data/str.xml.in.h:2 msgid "Emoji" msgstr "" #: ../data/str.xml.in.h:3 msgid "Rain" msgstr "" #: ../data/str.xml.in.h:4 msgid "Comet" msgstr "" #: ../data/str.xml.in.h:5 msgid "Cross" msgstr "" #: ../data/str.xml.in.h:6 msgid "Solar" msgstr "" #: ../data/str.xml.in.h:7 msgid "Mercury" msgstr "" #: ../data/str.xml.in.h:8 msgid "Venus" msgstr "" #: ../data/str.xml.in.h:9 msgid "Earth" msgstr "" #: ../data/str.xml.in.h:10 msgid "Mars" msgstr "" #: ../data/str.xml.in.h:11 msgid "Jupiter" msgstr "" #: ../data/str.xml.in.h:12 msgid "Saturn" msgstr "" #: ../data/str.xml.in.h:13 msgid "Uranus" msgstr "" #: ../data/str.xml.in.h:14 msgid "Neptune" msgstr "" #: ../data/str.xml.in.h:15 msgid "Pluto" msgstr "" #: ../data/str.xml.in.h:16 msgid "Aries" msgstr "" #: ../data/str.xml.in.h:17 msgid "Taurus" msgstr "" #: ../data/str.xml.in.h:18 msgid "Gemini" msgstr "" #: ../data/str.xml.in.h:19 msgid "Cancer" msgstr "" #: ../data/str.xml.in.h:20 msgid "Leo" msgstr "" #: ../data/str.xml.in.h:21 msgid "Virgo" msgstr "" #: ../data/str.xml.in.h:22 msgid "Libra" msgstr "" #: ../data/str.xml.in.h:23 msgid "Scorpius" msgstr "" #: ../data/str.xml.in.h:24 msgid "Sagittarius" msgstr "" #: ../data/str.xml.in.h:25 msgid "Capricorn" msgstr "" #: ../data/str.xml.in.h:26 msgid "Aquarius" msgstr "" #: ../data/str.xml.in.h:27 msgid "Pisces" msgstr "" #: ../data/str.xml.in.h:28 msgid "Dice 1" msgstr "" #: ../data/str.xml.in.h:29 msgid "Dice 2" msgstr "" #: ../data/str.xml.in.h:30 msgid "Dice 3" msgstr "" #: ../data/str.xml.in.h:31 msgid "Dice 4" msgstr "" #: ../data/str.xml.in.h:32 msgid "Dice 5" msgstr "" #: ../data/str.xml.in.h:33 msgid "Dice 6" msgstr "" #: ../data/str.xml.in.h:34 msgid "Anchor" msgstr "" #: ../data/str.xml.in.h:35 msgid "Sword" msgstr "" #: ../data/str.xml.in.h:36 msgid "Scales" msgstr "" #: ../data/str.xml.in.h:37 msgid "Conversation" msgstr "" #: ../data/str.xml.in.h:38 msgid "Warning" msgstr "" #: ../data/str.xml.in.h:39 msgid "Thunder" msgstr "" #: ../data/str.xml.in.h:40 msgid "Coffin" msgstr "" #: ../data/str.xml.in.h:41 msgid "Gender" msgstr "" #: ../data/str.xml.in.h:42 msgid "Soccer" msgstr "" #: ../data/str.xml.in.h:43 msgid "Baseball" msgstr "" #: ../data/str.xml.in.h:44 msgid "Snowman" msgstr "" #: ../data/str.xml.in.h:45 msgid "Shoji" msgstr "" #: ../data/str.xml.in.h:46 msgid "Maintenance" msgstr "" #: ../data/str.xml.in.h:47 msgid "Roadblock" msgstr "" #: ../data/str.xml.in.h:48 msgid "No entry" msgstr "" #: ../data/str.xml.in.h:49 msgid "Truck" msgstr "" #: ../data/str.xml.in.h:50 msgid "Torii" msgstr "" #: ../data/str.xml.in.h:51 msgid "Church" msgstr "" #: ../data/str.xml.in.h:52 msgid "Castle" msgstr "" #: ../data/str.xml.in.h:53 msgid "Historic site" msgstr "" #: ../data/str.xml.in.h:54 msgid "Power station" msgstr "" #: ../data/str.xml.in.h:55 msgid "Lighthouse" msgstr "" #: ../data/str.xml.in.h:56 msgid "Mountain" msgstr "" #: ../data/str.xml.in.h:57 msgid "Beach" msgstr "" #: ../data/str.xml.in.h:58 msgid "Park" msgstr "" #: ../data/str.xml.in.h:59 msgid "Ferry" msgstr "" #: ../data/str.xml.in.h:60 msgid "Sailboat" msgstr "" #: ../data/str.xml.in.h:61 msgid "Ice rink" msgstr "" #: ../data/str.xml.in.h:62 msgid "Scissors" msgstr "" #: ../data/str.xml.in.h:63 msgid "Airplane" msgstr "" #: ../data/str.xml.in.h:64 msgid "Clenched Fist" msgstr "" #: ../data/str.xml.in.h:65 msgid "Hand" msgstr "" #: ../data/str.xml.in.h:66 msgid "V Sign" msgstr "" #: ../data/str.xml.in.h:67 msgid "Writing" msgstr "" #: ../data/str.xml.in.h:68 msgid "Pencil" msgstr "" #: ../data/str.xml.in.h:69 msgid "Pen" msgstr "" #: ../data/str.xml.in.h:70 msgid "Star" msgstr "" #: ../data/str.xml.in.h:71 msgid "Typhoon" msgstr "" #: ../data/str.xml.in.h:72 msgid "Fog" msgstr "" #: ../data/str.xml.in.h:73 msgid "Umbrella" msgstr "" #: ../data/str.xml.in.h:74 msgid "Night sky" msgstr "" #: ../data/str.xml.in.h:75 msgid "Sunrise" msgstr "" #: ../data/str.xml.in.h:76 msgid "Sunset" msgstr "" #: ../data/str.xml.in.h:77 msgid "Bridge" msgstr "" #: ../data/str.xml.in.h:78 msgid "Wave" msgstr "" #: ../data/str.xml.in.h:79 msgid "New Moon" msgstr "" #: ../data/str.xml.in.h:80 msgid "Crescent Moon" msgstr "" #: ../data/str.xml.in.h:81 msgid "Quarter Moon" msgstr "" #: ../data/str.xml.in.h:82 msgid "Gibbous Moon" msgstr "" #: ../data/str.xml.in.h:83 msgid "Full Moon" msgstr "" #: ../data/str.xml.in.h:84 msgid "Moon" msgstr "" #: ../data/str.xml.in.h:85 msgid "Sun" msgstr "" #: ../data/str.xml.in.h:86 msgid "Cloud" msgstr "" #: ../data/str.xml.in.h:87 msgid "Palm" msgstr "" #: ../data/str.xml.in.h:88 msgid "Hot Pepper" msgstr "" #: ../data/str.xml.in.h:89 msgid "Flower" msgstr "" #: ../data/str.xml.in.h:90 msgid "Tulip" msgstr "" #: ../data/str.xml.in.h:91 msgid "Cherry" msgstr "" #: ../data/str.xml.in.h:92 msgid "Rose" msgstr "" #: ../data/str.xml.in.h:93 msgid "Hibiscus" msgstr "" #: ../data/str.xml.in.h:94 msgid "Sunflower" msgstr "" #: ../data/str.xml.in.h:95 msgid "Blossom" msgstr "" #: ../data/str.xml.in.h:96 msgid "Clover" msgstr "" #: ../data/str.xml.in.h:97 msgid "Maple" msgstr "" #: ../data/str.xml.in.h:98 msgid "Fallen Leaf" msgstr "" #: ../data/str.xml.in.h:99 msgid "Leaf" msgstr "" #: ../data/str.xml.in.h:100 msgid "Mushroom" msgstr "" #: ../data/str.xml.in.h:101 msgid "Tomato" msgstr "" #: ../data/str.xml.in.h:102 msgid "Eggplant" msgstr "" #: ../data/str.xml.in.h:103 msgid "Grape" msgstr "" #: ../data/str.xml.in.h:104 msgid "Melon" msgstr "" #: ../data/str.xml.in.h:105 msgid "Watermelon" msgstr "" #: ../data/str.xml.in.h:106 msgid "Tangerine" msgstr "" #: ../data/str.xml.in.h:107 msgid "Lemon" msgstr "" #: ../data/str.xml.in.h:108 msgid "Banana" msgstr "" #: ../data/str.xml.in.h:109 msgid "Pineapple" msgstr "" #: ../data/str.xml.in.h:110 msgid "Apple" msgstr "" #: ../data/str.xml.in.h:111 msgid "Pear" msgstr "" #: ../data/str.xml.in.h:112 msgid "Peach" msgstr "" #: ../data/str.xml.in.h:113 msgid "Strawberry" msgstr "" #: ../data/str.xml.in.h:114 msgid "Hamburger" msgstr "" #: ../data/str.xml.in.h:115 msgid "Pizza" msgstr "" #: ../data/str.xml.in.h:116 msgid "Meat" msgstr "" #: ../data/str.xml.in.h:117 msgid "Poultry" msgstr "" #: ../data/str.xml.in.h:118 msgid "Rice Cracker" msgstr "" #: ../data/str.xml.in.h:119 msgid "Rice Ball" msgstr "" #: ../data/str.xml.in.h:120 msgid "Rice" msgstr "" #: ../data/str.xml.in.h:121 msgid "Curry" msgstr "" #: ../data/str.xml.in.h:122 msgid "Ramen" msgstr "" #: ../data/str.xml.in.h:123 msgid "Spaghetti" msgstr "" #: ../data/str.xml.in.h:124 msgid "Bread" msgstr "" #: ../data/str.xml.in.h:125 msgid "Fried Potato" msgstr "" #: ../data/str.xml.in.h:126 msgid "Roasted Sweet Potato" msgstr "" #: ../data/str.xml.in.h:127 msgid "Dango" msgstr "" #: ../data/str.xml.in.h:128 msgid "Oden" msgstr "" #: ../data/str.xml.in.h:129 msgid "Sushi" msgstr "" #: ../data/str.xml.in.h:130 msgid "Fried Shrimp" msgstr "" #: ../data/str.xml.in.h:131 msgid "Fish Cake" msgstr "" #: ../data/str.xml.in.h:132 msgid "Soft Ice Cream" msgstr "" #: ../data/str.xml.in.h:133 msgid "Shaved Ice" msgstr "" #: ../data/str.xml.in.h:134 msgid "Ice Cream" msgstr "" #: ../data/str.xml.in.h:135 msgid "Doughnut" msgstr "" #: ../data/str.xml.in.h:136 msgid "Cookie" msgstr "" #: ../data/str.xml.in.h:137 msgid "Chocolate" msgstr "" #: ../data/str.xml.in.h:138 msgid "Candy" msgstr "" #: ../data/str.xml.in.h:139 msgid "Custard" msgstr "" #: ../data/str.xml.in.h:140 msgid "Honey" msgstr "" #: ../data/str.xml.in.h:141 msgid "Shortcake" msgstr "" #: ../data/str.xml.in.h:142 msgid "Bento" msgstr "" #: ../data/str.xml.in.h:143 msgid "Pot of Food" msgstr "" #: ../data/str.xml.in.h:144 msgid "Cooking" msgstr "" #: ../data/str.xml.in.h:145 msgid "Meal" msgstr "" #: ../data/str.xml.in.h:146 msgid "Cup" msgstr "" #: ../data/str.xml.in.h:147 msgid "Sake" msgstr "" #: ../data/str.xml.in.h:148 msgid "Wine" msgstr "" #: ../data/str.xml.in.h:149 msgid "Cocktail" msgstr "" #: ../data/str.xml.in.h:150 msgid "Drink" msgstr "" #: ../data/str.xml.in.h:151 msgid "Beer" msgstr "" #: ../data/str.xml.in.h:152 msgid "Cheers" msgstr "" #: ../data/str.xml.in.h:153 msgid "Baby Bottle" msgstr "" #: ../data/str.xml.in.h:154 msgid "Ribbon" msgstr "" #: ../data/str.xml.in.h:155 msgid "Present" msgstr "" #: ../data/str.xml.in.h:156 msgid "Cake" msgstr "" #: ../data/str.xml.in.h:157 msgid "Hallowe'en" msgstr "" #: ../data/str.xml.in.h:158 msgid "Christmas" msgstr "" #: ../data/str.xml.in.h:159 msgid "Piano" msgstr "" #: ../data/str.xml.in.h:160 msgid "Microphone" msgstr "" #: ../data/str.xml.in.h:161 msgid "Headphone" msgstr "" #: ../data/str.xml.in.h:162 msgid "Hat" msgstr "" #: ../data/str.xml.in.h:163 msgid "Musical Note" msgstr "" #: ../data/str.xml.in.h:164 msgid "Saxophone" msgstr "" #: ../data/str.xml.in.h:165 msgid "Guiter" msgstr "" #: ../data/str.xml.in.h:166 msgid "Trumpet" msgstr "" #: ../data/str.xml.in.h:167 msgid "Violin" msgstr "" #: ../data/str.xml.in.h:168 msgid "Musical Score" msgstr "" #: ../data/str.xml.in.h:169 msgid "Tennis" msgstr "" #: ../data/str.xml.in.h:170 msgid "Ski" msgstr "" #: ../data/str.xml.in.h:171 msgid "Basketball" msgstr "" #: ../data/str.xml.in.h:172 msgid "Flag" msgstr "" #: ../data/str.xml.in.h:173 msgid "Show Board" msgstr "" #: ../data/str.xml.in.h:174 msgid "Running" msgstr "" #: ../data/str.xml.in.h:175 msgid "Surfer" msgstr "" #: ../data/str.xml.in.h:176 msgid "Medal" msgstr "" #: ../data/str.xml.in.h:177 msgid "Trophy" msgstr "" #: ../data/str.xml.in.h:178 msgid "Horse Racing" msgstr "" #: ../data/str.xml.in.h:179 msgid "American Football" msgstr "" #: ../data/str.xml.in.h:180 msgid "Rugby" msgstr "" #: ../data/str.xml.in.h:181 msgid "Swimmer" msgstr "" #: ../data/str.xml.in.h:182 msgid "Weight Lifting" msgstr "" #: ../data/str.xml.in.h:183 msgid "Golf" msgstr "" #: ../data/str.xml.in.h:184 msgid "Motorcycle" msgstr "" #: ../data/str.xml.in.h:185 msgid "Race" msgstr "" #: ../data/str.xml.in.h:186 msgid "House" msgstr "" #: ../data/str.xml.in.h:187 msgid "Office" msgstr "" #: ../data/str.xml.in.h:188 msgid "Hospital" msgstr "" #: ../data/str.xml.in.h:189 msgid "Bank" msgstr "" #: ../data/str.xml.in.h:190 msgid "Hotel" msgstr "" #: ../data/str.xml.in.h:191 msgid "School" msgstr "" #: ../data/str.xml.in.h:192 msgid "Factory" msgstr "" #: ../data/str.xml.in.h:193 msgid "Rat" msgstr "" #: ../data/str.xml.in.h:194 msgid "Mouse" msgstr "" #: ../data/str.xml.in.h:195 msgid "Cow" msgstr "" #: ../data/str.xml.in.h:196 msgid "Tiger" msgstr "" #: ../data/str.xml.in.h:197 msgid "Leopard" msgstr "" #: ../data/str.xml.in.h:198 msgid "Rabbit" msgstr "" #: ../data/str.xml.in.h:199 msgid "Cat" msgstr "" #: ../data/str.xml.in.h:200 msgid "Dragon" msgstr "" #: ../data/str.xml.in.h:201 msgid "Crocodile" msgstr "" #: ../data/str.xml.in.h:202 msgid "Whale" msgstr "" #: ../data/str.xml.in.h:203 msgid "Snail" msgstr "" #: ../data/str.xml.in.h:204 msgid "Snake" msgstr "" #: ../data/str.xml.in.h:205 msgid "Horse" msgstr "" #: ../data/str.xml.in.h:206 msgid "Sheep" msgstr "" #: ../data/str.xml.in.h:207 msgid "Goat" msgstr "" #: ../data/str.xml.in.h:208 msgid "Monkey" msgstr "" #: ../data/str.xml.in.h:209 msgid "Chicken" msgstr "" #: ../data/str.xml.in.h:210 msgid "Dog" msgstr "" #: ../data/str.xml.in.h:211 msgid "Pig" msgstr "" #: ../data/str.xml.in.h:212 msgid "Elephant" msgstr "" #: ../data/str.xml.in.h:213 msgid "Octopus" msgstr "" #: ../data/str.xml.in.h:214 msgid "Spiral Shell" msgstr "" #: ../data/str.xml.in.h:215 msgid "Bug" msgstr "" #: ../data/str.xml.in.h:216 msgid "Ant" msgstr "" #: ../data/str.xml.in.h:217 msgid "Lady Beetle" msgstr "" #: ../data/str.xml.in.h:218 msgid "Fish" msgstr "" #: ../data/str.xml.in.h:219 msgid "Tropical Fish" msgstr "" #: ../data/str.xml.in.h:220 msgid "Blowfish" msgstr "" #: ../data/str.xml.in.h:221 msgid "Bird" msgstr "" #: ../data/str.xml.in.h:222 msgid "Penguin" msgstr "" #: ../data/str.xml.in.h:223 msgid "Koala" msgstr "" #: ../data/str.xml.in.h:224 msgid "Poodle" msgstr "" #: ../data/str.xml.in.h:225 msgid "Camel" msgstr "" #: ../data/str.xml.in.h:226 msgid "Dolphin" msgstr "" #: ../data/str.xml.in.h:227 msgid "Frog" msgstr "" #: ../data/str.xml.in.h:228 msgid "Hamster" msgstr "" #: ../data/str.xml.in.h:229 msgid "Wolf" msgstr "" #: ../data/str.xml.in.h:230 msgid "Bear" msgstr "" #: ../data/str.xml.in.h:231 msgid "Panda" msgstr "" #: ../data/str.xml.in.h:232 msgid "Eye" msgstr "" #: ../data/str.xml.in.h:233 msgid "Ear" msgstr "" #: ../data/str.xml.in.h:234 msgid "Nose" msgstr "" #: ../data/str.xml.in.h:235 msgid "Mouth" msgstr "" #: ../data/str.xml.in.h:236 msgid "Tongue" msgstr "" #: ../data/str.xml.in.h:237 msgid "Crown" msgstr "" #: ../data/str.xml.in.h:238 msgid "Glasses" msgstr "" #: ../data/str.xml.in.h:239 msgid "Necktie" msgstr "" #: ../data/str.xml.in.h:240 msgid "T-Shirt" msgstr "" #: ../data/str.xml.in.h:241 msgid "Jeans" msgstr "" #: ../data/str.xml.in.h:242 msgid "Dress" msgstr "" #: ../data/str.xml.in.h:243 msgid "Kimono" msgstr "" #: ../data/str.xml.in.h:244 msgid "Bikini" msgstr "" #: ../data/str.xml.in.h:245 msgid "Clothes" msgstr "" #: ../data/str.xml.in.h:246 msgid "Purse" msgstr "" #: ../data/str.xml.in.h:247 msgid "Handbag" msgstr "" #: ../data/str.xml.in.h:248 msgid "Pouch" msgstr "" #: ../data/str.xml.in.h:249 msgid "Shoe" msgstr "" #: ../data/str.xml.in.h:250 msgid "Footprint" msgstr "" #: ../data/str.xml.in.h:251 msgid "Account" msgstr "" #: ../data/str.xml.in.h:252 msgid "Boy" msgstr "" #: ../data/str.xml.in.h:253 msgid "Girl" msgstr "" #: ../data/str.xml.in.h:254 msgid "Man" msgstr "" #: ../data/str.xml.in.h:255 msgid "Woman" msgstr "" #: ../data/str.xml.in.h:256 msgid "Family" msgstr "" #: ../data/str.xml.in.h:257 msgid "Restroom" msgstr "" #: ../data/str.xml.in.h:258 msgid "Men" msgstr "" #: ../data/str.xml.in.h:259 msgid "Women" msgstr "" #: ../data/str.xml.in.h:260 msgid "Princess" msgstr "" #: ../data/str.xml.in.h:261 msgid "Japanese Ogre" msgstr "" #: ../data/str.xml.in.h:262 msgid "Japanese Goblin" msgstr "" #: ../data/str.xml.in.h:263 msgid "Ghost" msgstr "" #: ../data/str.xml.in.h:264 msgid "Baby Angel" msgstr "" #: ../data/str.xml.in.h:265 msgid "Extraterrestrial Alien" msgstr "" #: ../data/str.xml.in.h:266 msgid "Alien Monster" msgstr "" #: ../data/str.xml.in.h:267 msgid "IMP" msgstr "" #: ../data/str.xml.in.h:268 msgid "Skull" msgstr "" #: ../data/str.xml.in.h:269 msgid "Information Desk Person" msgstr "" #: ../data/str.xml.in.h:270 msgid "Guardsman" msgstr "" #: ../data/str.xml.in.h:271 msgid "Dancer" msgstr "" #: ../data/str.xml.in.h:272 msgid "Lipstick" msgstr "" #: ../data/str.xml.in.h:273 msgid "Nail" msgstr "" #: ../data/str.xml.in.h:274 msgid "Face" msgstr "" #: ../data/str.xml.in.h:275 msgid "Haircut" msgstr "" #: ../data/str.xml.in.h:276 msgid "Syringe" msgstr "" #: ../data/str.xml.in.h:277 msgid "Medicine" msgstr "" #: ../data/str.xml.in.h:278 msgid "Kiss" msgstr "" #: ../data/str.xml.in.h:279 msgid "Love Letter" msgstr "" #: ../data/str.xml.in.h:280 msgid "Ring" msgstr "" #: ../data/str.xml.in.h:281 msgid "Gem Stone" msgstr "" #: ../data/str.xml.in.h:282 msgid "Wedding" msgstr "" #: ../data/str.xml.in.h:283 msgid "Heart" msgstr "" #: ../data/str.xml.in.h:284 msgid "Idea" msgstr "" #: ../data/str.xml.in.h:285 msgid "Anger" msgstr "" #: ../data/str.xml.in.h:286 msgid "Bomb" msgstr "" #: ../data/str.xml.in.h:287 msgid "Sleeping" msgstr "" #: ../data/str.xml.in.h:288 msgid "Collision" msgstr "" #: ../data/str.xml.in.h:289 msgid "Sweat" msgstr "" #: ../data/str.xml.in.h:290 msgid "Droplet" msgstr "" #: ../data/str.xml.in.h:291 msgid "Dash" msgstr "" #: ../data/str.xml.in.h:292 msgid "Poo" msgstr "" #: ../data/str.xml.in.h:293 msgid "Muscle" msgstr "" #: ../data/str.xml.in.h:294 msgid "Dizzy" msgstr "" #: ../data/str.xml.in.h:295 msgid "Speech" msgstr "" #: ../data/str.xml.in.h:296 msgid "Thought" msgstr "" #: ../data/str.xml.in.h:297 msgid "Perfect Score" msgstr "" #: ../data/str.xml.in.h:298 msgid "Pushpin" msgstr "" #: ../data/str.xml.in.h:299 msgid "Clip" msgstr "" #: ../data/str.xml.in.h:300 msgid "Speaker" msgstr "" #: ../data/str.xml.in.h:301 msgid "Battery" msgstr "" #: ../data/str.xml.in.h:302 msgid "Plug" msgstr "" #: ../data/str.xml.in.h:303 msgid "Search" msgstr "" #: ../data/str.xml.in.h:304 msgid "Bookmark" msgstr "" #: ../data/str.xml.in.h:305 msgid "Book" msgstr "" #: ../data/str.xml.in.h:306 msgid "Memo" msgstr "" #: ../data/str.xml.in.h:307 msgid "Mail" msgstr "" #: ../data/str.xml.in.h:308 msgid "Mobile Phone" msgstr "" #: ../data/str.xml.in.h:309 msgid "Camera" msgstr "" #: ../data/str.xml.in.h:310 msgid "Video" msgstr "" #: ../data/str.xml.in.h:311 msgid "Television" msgstr "" #: ../data/str.xml.in.h:312 msgid "Radio" msgstr "" #: ../data/str.xml.in.h:313 msgid "Key" msgstr "" #: ../data/str.xml.in.h:314 msgid "Lock" msgstr "" #: ../data/str.xml.in.h:315 msgid "Fire" msgstr "" #: ../data/str.xml.in.h:316 msgid "Wrench" msgstr "" #: ../data/str.xml.in.h:317 msgid "Hammer" msgstr "" #: ../data/str.xml.in.h:318 msgid "Bolt" msgstr "" #: ../data/str.xml.in.h:319 msgid "Hocho" msgstr "" #: ../data/str.xml.in.h:320 msgid "Pistol" msgstr "" #: ../data/str.xml.in.h:321 msgid "Microscope" msgstr "" #: ../data/str.xml.in.h:322 msgid "Telescope" msgstr "" #: ../data/str.xml.in.h:323 msgid "Crystal" msgstr "" #: ../data/str.xml.in.h:324 msgid "David Star" msgstr "" #: ../data/str.xml.in.h:325 msgid "Beginner" msgstr "" #: ../data/str.xml.in.h:326 msgid "Candle" msgstr "" #: ../data/str.xml.in.h:327 msgid "Hole" msgstr "" #: ../data/str.xml.in.h:328 msgid "Personal Computer" msgstr "" #: ../data/str.xml.in.h:329 msgid "keyboard" msgstr "" #: ../data/str.xml.in.h:330 msgid "Printer" msgstr "" #: ../data/str.xml.in.h:331 msgid "Calculator" msgstr "" #: ../data/str.xml.in.h:332 msgid "Minimize" msgstr "" #: ../data/str.xml.in.h:333 msgid "Maximize" msgstr "" #: ../data/str.xml.in.h:334 msgid "Refresh" msgstr "" #: ../data/str.xml.in.h:335 msgid "Close" msgstr "" #: ../data/str.xml.in.h:336 msgid "World" msgstr "" #: ../data/str.xml.in.h:337 msgid "Mt. Fuji" msgstr "" #: ../data/str.xml.in.h:338 msgid "Tokyo Tower" msgstr "" #: ../data/str.xml.in.h:339 msgid "Japan" msgstr "" #: ../data/str.xml.in.h:340 msgid "Anguish" msgstr "" #: ../data/str.xml.in.h:341 msgid "Smile" msgstr "" #: ../data/str.xml.in.h:342 msgid "Smirk" msgstr "" #: ../data/str.xml.in.h:343 msgid "Neutral" msgstr "" #: ../data/str.xml.in.h:344 msgid "Expressionless" msgstr "" #: ../data/str.xml.in.h:345 msgid "Unamused" msgstr "" #: ../data/str.xml.in.h:346 msgid "Pensive" msgstr "" #: ../data/str.xml.in.h:347 msgid "Confused" msgstr "" #: ../data/str.xml.in.h:348 msgid "Confounded" msgstr "" #: ../data/str.xml.in.h:349 msgid "Disappointed" msgstr "" #: ../data/str.xml.in.h:350 msgid "Angry" msgstr "" #: ../data/str.xml.in.h:351 msgid "Cry" msgstr "" #: ../data/str.xml.in.h:352 msgid "Sleeply" msgstr "" #: ../data/str.xml.in.h:353 msgid "Tired" msgstr "" #: ../data/str.xml.in.h:354 msgid "Surprise" msgstr "" #: ../data/str.xml.in.h:355 msgid "Scream" msgstr "" #: ../data/str.xml.in.h:356 msgid "Flushed" msgstr "" #: ../data/str.xml.in.h:357 msgid "Medical Mask" msgstr "" #: ../data/str.xml.in.h:358 msgid "OK" msgstr "" #: ../data/str.xml.in.h:359 msgid "Bow" msgstr "" #: ../data/str.xml.in.h:360 msgid "See-No-Evil" msgstr "" #: ../data/str.xml.in.h:361 msgid "Hear-No-Evil" msgstr "" #: ../data/str.xml.in.h:362 msgid "Speak-No-Evil" msgstr "" #: ../data/str.xml.in.h:363 msgid "Banzai" msgstr "" #: ../data/str.xml.in.h:364 msgid "Pleading" msgstr "" #: ../data/str.xml.in.h:365 msgid "Smileys" msgstr "" #: ../data/str.xml.in.h:366 msgid "Smile Big" msgstr "" #: ../data/str.xml.in.h:367 msgid "Sad" msgstr "" #: ../data/str.xml.in.h:368 msgid "Wink" msgstr "" #: ../data/str.xml.in.h:369 msgid "Shock" msgstr "" #: ../data/str.xml.in.h:370 msgid "Kiss | Secret" msgstr "" #: ../data/str.xml.in.h:371 msgid "Glasses Cool | Eyeroll" msgstr "" #: ../data/str.xml.in.h:372 msgid "Glasses Cool" msgstr "" #: ../data/str.xml.in.h:373 msgid "Embarrassed" msgstr "" #: ../data/str.xml.in.h:374 msgid "Crying" msgstr "" #: ../data/str.xml.in.h:375 msgid "Thinking" msgstr "" #: ../data/str.xml.in.h:376 msgid "Don't Know" msgstr "" #: ../data/str.xml.in.h:377 msgid "Party" msgstr "" #: ../data/str.xml.in.h:378 msgid "Yawn" msgstr "" #: ../data/str.xml.in.h:379 msgid "Bunny" msgstr "" #: ../data/str.xml.in.h:380 msgid "Sick" msgstr "" #: ../data/str.xml.in.h:381 msgid "Devil" msgstr "" #: ../data/str.xml.in.h:382 msgid "Angel" msgstr "" #: ../data/str.xml.in.h:383 msgid "Love" msgstr "" #: ../data/str.xml.in.h:384 msgid "Love Over" msgstr "" #: ../data/str.xml.in.h:385 msgid "Film" msgstr "" #: ../data/str.xml.in.h:386 msgid "Clock" msgstr "" #: ../data/str.xml.in.h:387 msgid "Coffee" msgstr "" #: ../data/str.xml.in.h:388 msgid "Phone" msgstr "" #: ../data/str.xml.in.h:389 msgid "Hug Left" msgstr "" #: ../data/str.xml.in.h:390 msgid "Hug Right" msgstr "" #: ../data/str.xml.in.h:391 msgid "Yes" msgstr "" #: ../data/str.xml.in.h:392 msgid "No" msgstr "" #: ../data/str.xml.in.h:393 msgid "Shut Mouth" msgstr "" #: ../data/str.xml.in.h:394 msgid "Money Mouth" msgstr "" #: ../data/str.xml.in.h:395 msgid "Foot in Mouth" msgstr "" #: ../data/str.xml.in.h:396 msgid "Shout" msgstr "" #. http://ja.wikipedia.org/wiki/%E9%A1%94%E6%96%87%E5%AD%97 #: ../data/str.xml.in.h:398 msgid "Smileys (Japanese)" msgstr "" #: ../data/str.xml.in.h:399 msgid "Smoking" msgstr "" #: ../data/str.xml.in.h:400 msgid "Sorry" msgstr "" #: ../data/str.xml.in.h:401 msgid "Hug" msgstr "" #. http://ja.wikipedia.org/wiki/%E9%A1%94%E6%96%87%E5%AD%97 #: ../data/str.xml.in.h:403 msgid "Smileys (Japanese 2ch)" msgstr "" #: ../data/str.xml.in.h:404 msgid "Hey" msgstr "" #. http://ja.wikipedia.org/wiki/%E9%A1%94%E6%96%87%E5%AD%97 #: ../data/str.xml.in.h:406 msgid "Smileys (Chinese)" msgstr "" #: ../data/str.xml.in.h:407 msgid "Crow" msgstr "" #. http://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88%E3%82%B9%E3%83%A9%E3%83%B3%E3%82%B0 #: ../data/str.xml.in.h:409 msgid "Acronym" msgstr "" #: ../data/str.xml.in.h:410 msgid "Acronym (Computer)" msgstr "" #. http://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88%E3%82%B9%E3%83%A9%E3%83%B3%E3%82%B0 #: ../data/str.xml.in.h:412 msgid "Acronym (Japanese)" msgstr "" #: ../data/str.xml.in.h:413 msgid "Do not want to read between lines (Aete Kuuki Wo Yomanai)" msgstr "" #: ../data/str.xml.in.h:414 msgid "Can't get together (Guda Guda)" msgstr "" #: ../data/str.xml.in.h:415 msgid "Say whatever one feels (Iitaidake)" msgstr "" #: ../data/str.xml.in.h:416 msgid "Excited (Kitakore)" msgstr "" #: ../data/str.xml.in.h:417 msgid "Detail (Kuwashiku)" msgstr "" #: ../data/str.xml.in.h:418 msgid "Cannot read between lines (Kuuki Ga Yomenai)" msgstr "" #: ../data/str.xml.in.h:419 msgid "Omission (Shouryaku)" msgstr "" #: ../data/str.xml.in.h:420 msgid "Excited (Waku Waku Teka Teka)" msgstr "" #: ../data/str.xml.in.h:421 msgid "Laugh" msgstr "" #: ../data/str.xml.in.h:422 msgid "Dude (Oi!)" msgstr "" #: ../data/str.xml.in.h:423 msgid "Good job (Otsukare)" msgstr "" #: ../data/str.xml.in.h:424 msgid "Want (Kure, E.g. pics クレメンス)" msgstr "" #: ../data/str.xml.in.h:425 msgid "ASCII art of a hand (✊, E.g. つAttention)" msgstr "" #: ../data/str.xml.in.h:426 msgid "In The Meantime (Toriaezu, Maa)" msgstr "" #: ../data/str.xml.in.h:427 msgid "Self-confidence (Aniki, E.g. tennis ニキ)" msgstr "" #: ../data/str.xml.in.h:428 msgid "Bye" msgstr "" #: ../data/str.xml.in.h:429 msgid "Want (Hattekure, E.g. pics ハラデイ)" msgstr "" #: ../data/str.xml.in.h:430 msgid "Exist as microparticles (Biryushi Level De Sonzaisuru)" msgstr "" #: ../data/str.xml.in.h:431 msgid "False Start (Flying Get)" msgstr "" #: ../data/str.xml.in.h:432 msgid "Fulfilling Life (Real life is Zyujitsu)" msgstr "" #: ../data/str.xml.in.h:433 msgid "Laugh (Warau)" msgstr "" #: ../data/str.xml.in.h:434 msgid "He (Yatsu <- Yashi)" msgstr "" #: ../data/w3c.xml.in.h:1 msgid "Char References" msgstr "" #: ../data/zh.xml.in.h:1 msgid "Chinese" msgstr "" #: ../data/zh.xml.in.h:4 ../input-pad/unicode_block.h:138 msgid "Bopomofo" msgstr "" #: ../input-pad/app-menu.ui.h:1 msgid "_File" msgstr "" #: ../input-pad/app-menu.ui.h:2 ../input-pad/dialog.ui.h:21 msgid "_Close" msgstr "" #: ../input-pad/app-menu.ui.h:3 msgid "Close the program" msgstr "" #: ../input-pad/app-menu.ui.h:4 msgid "_Pad" msgstr "" #: ../input-pad/app-menu.ui.h:5 msgid "_Code Point" msgstr "" #: ../input-pad/app-menu.ui.h:6 msgid "_Show Pad" msgstr "" #: ../input-pad/app-menu.ui.h:7 msgid "Show _All Characters" msgstr "" #: ../input-pad/app-menu.ui.h:8 msgid "Show _Custom Characters" msgstr "" #: ../input-pad/app-menu.ui.h:9 msgid "Show _Nothing" msgstr "" #: ../input-pad/app-menu.ui.h:10 msgid "Show _Keyboard Layout" msgstr "" #: ../input-pad/app-menu.ui.h:11 msgid "_Help" msgstr "" #: ../input-pad/app-menu.ui.h:12 msgid "_Troubleshoot" msgstr "" #: ../input-pad/app-menu.ui.h:13 msgid "_About" msgstr "" #: ../input-pad/dialog.ui.h:1 msgid "Code Point Dialog" msgstr "" #: ../input-pad/dialog.ui.h:2 msgid "Unicode" msgstr "" #: ../input-pad/dialog.ui.h:3 msgid "You can choose encoding type" msgstr "" #: ../input-pad/dialog.ui.h:4 msgid "Current Encoding" msgstr "" #: ../input-pad/dialog.ui.h:5 msgid "Copy Buffer" msgstr "" #: ../input-pad/dialog.ui.h:6 msgid "Base 16\n" "Hex" msgstr "" #: ../input-pad/dialog.ui.h:8 msgid "Set number case to hexadecimal" msgstr "" #: ../input-pad/dialog.ui.h:9 msgid "Base 10\n" "Dec" msgstr "" #: ../input-pad/dialog.ui.h:11 msgid "Set number case to decimal" msgstr "" #: ../input-pad/dialog.ui.h:12 msgid "Base 8\n" "Oct" msgstr "" #: ../input-pad/dialog.ui.h:14 msgid "Set number case to octal" msgstr "" #: ../input-pad/dialog.ui.h:15 msgid "Base 2\n" "Bin" msgstr "" #: ../input-pad/dialog.ui.h:17 msgid "Set number case to binary" msgstr "" #: ../input-pad/dialog.ui.h:18 msgid "Code Point:" msgstr "" #: ../input-pad/dialog.ui.h:19 msgid "Character:" msgstr "" #: ../input-pad/dialog.ui.h:20 msgid "_Send" msgstr "" #: ../input-pad/dialog.ui.h:22 msgid "Input Pad Troubleshoot" msgstr "" #: ../input-pad/dialog.ui.h:24 #, no-c-format msgid "" "\n" "This application can be run either as a stand-alone program or under an " "input method application.\n" "If you wish to send multi-byte characters, this application needs to be run " "under an input method application.\n" "If you wish to send characters to X11 applications, those applications needs " "to allow send events. e.g.\n" "% xterm -xrm \"XTerm*allowSendEvents: true\"\n" "\n" "You also can copy pad files from /usr/share/input-pad/pad to $HOME/.config/" "pad to customize those in \"Custom Character\" pane." msgstr "" #: ../input-pad/dialog.ui.h:31 msgid "_OK" msgstr "" #: ../input-pad/dialog.ui.h:32 msgid "Configure Keyboard Layouts" msgstr "" #: ../input-pad/dialog.ui.h:33 msgid "A_vailable layouts:" msgstr "" #: ../input-pad/dialog.ui.h:34 msgid "_Add" msgstr "" #: ../input-pad/dialog.ui.h:35 msgid "_Layouts shown in the list:" msgstr "" #: ../input-pad/dialog.ui.h:36 msgid "_Remove" msgstr "" #: ../input-pad/dialog.ui.h:37 msgid "_Options" msgstr "" #: ../input-pad/dialog.ui.h:38 msgid "Configure Keyboard Options" msgstr "" #: ../input-pad/dialog.ui.h:39 msgid "_Use the default keyboard option" msgstr "" #: ../input-pad/dialog.ui.h:40 msgid "Use the defualt XKB option" msgstr "" #: ../input-pad/dialog.ui.h:41 msgid "Keyboard Option" msgstr "" #: ../input-pad/dialog.ui.h:43 msgid "The input pad is a tool to send a character on button." msgstr "" #: ../input-pad/dialog.ui.h:44 msgid "translator_credits" msgstr "" #: ../input-pad/eek-gtk.c:65 msgid "Use libeek to draw keyboard" msgstr "" #: ../input-pad/eek-gtk.c:237 msgid "eekboard layout" msgstr "" #: ../input-pad/eek-gtk.c:249 msgid "eekboard Options" msgstr "" #: ../input-pad/eek-gtk.c:249 msgid "Show eekboard Options" msgstr "" #: ../input-pad/unicode_block.h:37 msgid "Basic Latin" msgstr "" #: ../input-pad/unicode_block.h:40 msgid "Latin Extended-B" msgstr "" #: ../input-pad/unicode_block.h:41 msgid "IPA Extensions" msgstr "" #: ../input-pad/unicode_block.h:42 msgid "Spacing Modifier Letters" msgstr "" #: ../input-pad/unicode_block.h:43 msgid "Combining Diacritical Marks" msgstr "" #: ../input-pad/unicode_block.h:44 msgid "Greek and Coptic" msgstr "" #: ../input-pad/unicode_block.h:45 msgid "Cyrillic" msgstr "" #: ../input-pad/unicode_block.h:46 msgid "Cyrillic Supplement" msgstr "" #: ../input-pad/unicode_block.h:47 msgid "Armenian" msgstr "" #: ../input-pad/unicode_block.h:48 msgid "Hebrew" msgstr "" #: ../input-pad/unicode_block.h:49 msgid "Arabic" msgstr "" #: ../input-pad/unicode_block.h:50 msgid "Syriac" msgstr "" #: ../input-pad/unicode_block.h:51 msgid "Arabic Supplement" msgstr "" #: ../input-pad/unicode_block.h:52 msgid "Thaana" msgstr "" #: ../input-pad/unicode_block.h:53 msgid "NKo" msgstr "" #: ../input-pad/unicode_block.h:54 msgid "Samaritan" msgstr "" #: ../input-pad/unicode_block.h:55 msgid "Devanagari" msgstr "" #: ../input-pad/unicode_block.h:56 msgid "Bengali" msgstr "" #: ../input-pad/unicode_block.h:57 msgid "Gurmukhi" msgstr "" #: ../input-pad/unicode_block.h:58 msgid "Gujarati" msgstr "" #: ../input-pad/unicode_block.h:59 msgid "Oriya" msgstr "" #: ../input-pad/unicode_block.h:60 msgid "Tamil" msgstr "" #: ../input-pad/unicode_block.h:61 msgid "Telugu" msgstr "" #: ../input-pad/unicode_block.h:62 msgid "Kannada" msgstr "" #: ../input-pad/unicode_block.h:63 msgid "Malayalam" msgstr "" #: ../input-pad/unicode_block.h:64 msgid "Sinhala" msgstr "" #: ../input-pad/unicode_block.h:65 msgid "Thai" msgstr "" #: ../input-pad/unicode_block.h:66 msgid "Lao" msgstr "" #: ../input-pad/unicode_block.h:67 msgid "Tibetan" msgstr "" #: ../input-pad/unicode_block.h:68 msgid "Myanmar" msgstr "" #: ../input-pad/unicode_block.h:69 msgid "Georgian" msgstr "" #: ../input-pad/unicode_block.h:70 msgid "Hangul Jamo" msgstr "" #: ../input-pad/unicode_block.h:71 msgid "Ethiopic" msgstr "" #: ../input-pad/unicode_block.h:72 msgid "Ethiopic Supplement" msgstr "" #: ../input-pad/unicode_block.h:73 msgid "Cherokee" msgstr "" #: ../input-pad/unicode_block.h:74 msgid "Unified Canadian Aboriginal Syllabics" msgstr "" #: ../input-pad/unicode_block.h:75 msgid "Ogham" msgstr "" #: ../input-pad/unicode_block.h:76 msgid "Runic" msgstr "" #: ../input-pad/unicode_block.h:77 msgid "Tagalog" msgstr "" #: ../input-pad/unicode_block.h:78 msgid "Hanunoo" msgstr "" #: ../input-pad/unicode_block.h:79 msgid "Buhid" msgstr "" #: ../input-pad/unicode_block.h:80 msgid "Tagbanwa" msgstr "" #: ../input-pad/unicode_block.h:81 msgid "Khmer" msgstr "" #: ../input-pad/unicode_block.h:82 msgid "Mongolian" msgstr "" #: ../input-pad/unicode_block.h:83 msgid "Unified Canadian Aboriginal Syllabics Extended" msgstr "" #: ../input-pad/unicode_block.h:84 msgid "Limbu" msgstr "" #: ../input-pad/unicode_block.h:85 msgid "Tai Le" msgstr "" #: ../input-pad/unicode_block.h:86 msgid "New Tai Lue" msgstr "" #: ../input-pad/unicode_block.h:87 msgid "Khmer Symbols" msgstr "" #: ../input-pad/unicode_block.h:88 msgid "Buginese" msgstr "" #: ../input-pad/unicode_block.h:89 msgid "Tai Tham" msgstr "" #: ../input-pad/unicode_block.h:90 msgid "Balinese" msgstr "" #: ../input-pad/unicode_block.h:91 msgid "Sundanese" msgstr "" #: ../input-pad/unicode_block.h:92 msgid "Lepcha" msgstr "" #: ../input-pad/unicode_block.h:93 msgid "Ol Chiki" msgstr "" #: ../input-pad/unicode_block.h:94 msgid "Vedic Extensions" msgstr "" #: ../input-pad/unicode_block.h:95 msgid "Phonetic Extensions" msgstr "" #: ../input-pad/unicode_block.h:96 msgid "Phonetic Extensions Supplement" msgstr "" #: ../input-pad/unicode_block.h:97 msgid "Combining Diacritical Marks Supplement" msgstr "" #: ../input-pad/unicode_block.h:98 msgid "Latin Extended Additional" msgstr "" #: ../input-pad/unicode_block.h:99 msgid "Greek Extended" msgstr "" #: ../input-pad/unicode_block.h:100 msgid "General Punctuation" msgstr "" #: ../input-pad/unicode_block.h:101 msgid "Superscripts and Subscripts" msgstr "" #: ../input-pad/unicode_block.h:102 msgid "Currency Symbols" msgstr "" #: ../input-pad/unicode_block.h:103 msgid "Combining Diacritical Marks for Symbols" msgstr "" #: ../input-pad/unicode_block.h:104 msgid "Letterlike Symbols" msgstr "" #: ../input-pad/unicode_block.h:105 msgid "Number Forms" msgstr "" #: ../input-pad/unicode_block.h:106 msgid "Arrows" msgstr "" #: ../input-pad/unicode_block.h:107 msgid "Mathematical Operators" msgstr "" #: ../input-pad/unicode_block.h:108 msgid "Miscellaneous Technical" msgstr "" #: ../input-pad/unicode_block.h:109 msgid "Control Pictures" msgstr "" #: ../input-pad/unicode_block.h:110 msgid "Optical Character Recognition" msgstr "" #: ../input-pad/unicode_block.h:111 msgid "Enclosed Alphanumerics" msgstr "" #: ../input-pad/unicode_block.h:113 msgid "Block Elements" msgstr "" #: ../input-pad/unicode_block.h:114 msgid "Geometric Shapes" msgstr "" #: ../input-pad/unicode_block.h:115 msgid "Miscellaneous Symbols" msgstr "" #: ../input-pad/unicode_block.h:117 msgid "Miscellaneous Mathematical Symbols-A" msgstr "" #: ../input-pad/unicode_block.h:118 msgid "Supplemental Arrows-A" msgstr "" #: ../input-pad/unicode_block.h:119 msgid "Braille Patterns" msgstr "" #: ../input-pad/unicode_block.h:120 msgid "Supplemental Arrows-B" msgstr "" #: ../input-pad/unicode_block.h:121 msgid "Miscellaneous Mathematical Symbols-B" msgstr "" #: ../input-pad/unicode_block.h:122 msgid "Supplemental Mathematical Operators" msgstr "" #: ../input-pad/unicode_block.h:123 msgid "Miscellaneous Symbols and Arrows" msgstr "" #: ../input-pad/unicode_block.h:124 msgid "Glagolitic" msgstr "" #: ../input-pad/unicode_block.h:125 msgid "Latin Extended-C" msgstr "" #: ../input-pad/unicode_block.h:126 msgid "Coptic" msgstr "" #: ../input-pad/unicode_block.h:127 msgid "Georgian Supplement" msgstr "" #: ../input-pad/unicode_block.h:128 msgid "Tifinagh" msgstr "" #: ../input-pad/unicode_block.h:129 msgid "Ethiopic Extended" msgstr "" #: ../input-pad/unicode_block.h:130 msgid "Cyrillic Extended-A" msgstr "" #: ../input-pad/unicode_block.h:131 msgid "Supplemental Punctuation" msgstr "" #: ../input-pad/unicode_block.h:133 msgid "Kangxi Radicals" msgstr "" #: ../input-pad/unicode_block.h:134 msgid "Ideographic Description Characters" msgstr "" #: ../input-pad/unicode_block.h:135 msgid "CJK Symbols and Punctuation" msgstr "" #: ../input-pad/unicode_block.h:139 msgid "Hangul Compatibility Jamo" msgstr "" #: ../input-pad/unicode_block.h:140 msgid "Kanbun" msgstr "" #: ../input-pad/unicode_block.h:141 msgid "Bopomofo Extended" msgstr "" #: ../input-pad/unicode_block.h:142 msgid "CJK Strokes" msgstr "" #: ../input-pad/unicode_block.h:143 msgid "Katakana Phonetic Extensions" msgstr "" #: ../input-pad/unicode_block.h:144 msgid "Enclosed CJK Letters and Months" msgstr "" #: ../input-pad/unicode_block.h:146 msgid "CJK Unified Ideographs Extension A" msgstr "" #: ../input-pad/unicode_block.h:147 msgid "Yijing Hexagram Symbols" msgstr "" #: ../input-pad/unicode_block.h:148 msgid "CJK Unified Ideographs" msgstr "" #: ../input-pad/unicode_block.h:149 msgid "Yi Syllables" msgstr "" #: ../input-pad/unicode_block.h:150 msgid "Yi Radicals" msgstr "" #: ../input-pad/unicode_block.h:151 msgid "Lisu" msgstr "" #: ../input-pad/unicode_block.h:152 msgid "Vai" msgstr "" #: ../input-pad/unicode_block.h:153 msgid "Cyrillic Extended-B" msgstr "" #: ../input-pad/unicode_block.h:154 msgid "Bamum" msgstr "" #: ../input-pad/unicode_block.h:155 msgid "Modifier Tone Letters" msgstr "" #: ../input-pad/unicode_block.h:156 msgid "Latin Extended-D" msgstr "" #: ../input-pad/unicode_block.h:157 msgid "Syloti Nagri" msgstr "" #: ../input-pad/unicode_block.h:158 msgid "Common Indic Number Forms" msgstr "" #: ../input-pad/unicode_block.h:159 msgid "Phags-pa" msgstr "" #: ../input-pad/unicode_block.h:160 msgid "Saurashtra" msgstr "" #: ../input-pad/unicode_block.h:161 msgid "Devanagari Extended" msgstr "" #: ../input-pad/unicode_block.h:162 msgid "Kayah Li" msgstr "" #: ../input-pad/unicode_block.h:163 msgid "Rejang" msgstr "" #: ../input-pad/unicode_block.h:164 msgid "Hangul Jamo Extended-A" msgstr "" #: ../input-pad/unicode_block.h:165 msgid "Javanese" msgstr "" #: ../input-pad/unicode_block.h:166 msgid "Cham" msgstr "" #: ../input-pad/unicode_block.h:167 msgid "Myanmar Extended-A" msgstr "" #: ../input-pad/unicode_block.h:168 msgid "Tai Viet" msgstr "" #: ../input-pad/unicode_block.h:169 msgid "Meetei Mayek" msgstr "" #: ../input-pad/unicode_block.h:170 msgid "Hangul Syllables" msgstr "" #: ../input-pad/unicode_block.h:171 msgid "Hangul Jamo Extended-B" msgstr "" #: ../input-pad/unicode_block.h:172 msgid "High Surrogates" msgstr "" #: ../input-pad/unicode_block.h:173 msgid "High Private Use Surrogates" msgstr "" #: ../input-pad/unicode_block.h:174 msgid "Low Surrogates" msgstr "" #: ../input-pad/unicode_block.h:175 msgid "Private Use Area" msgstr "" #: ../input-pad/unicode_block.h:176 msgid "CJK Compatibility Ideographs" msgstr "" #: ../input-pad/unicode_block.h:177 msgid "Alphabetic Presentation Forms" msgstr "" #: ../input-pad/unicode_block.h:178 msgid "Arabic Presentation Forms-A" msgstr "" #: ../input-pad/unicode_block.h:179 msgid "Variation Selectors" msgstr "" #: ../input-pad/unicode_block.h:180 msgid "Vertical Forms" msgstr "" #: ../input-pad/unicode_block.h:181 msgid "Combining Half Marks" msgstr "" #: ../input-pad/unicode_block.h:182 msgid "CJK Compatibility Forms" msgstr "" #: ../input-pad/unicode_block.h:183 msgid "Small Form Variants" msgstr "" #: ../input-pad/unicode_block.h:184 msgid "Arabic Presentation Forms-B" msgstr "" #: ../input-pad/unicode_block.h:185 msgid "Halfwidth and Fullwidth Forms" msgstr "" #: ../input-pad/unicode_block.h:186 msgid "Specials" msgstr "" #: ../input-pad/unicode_block.h:187 msgid "Linear B Syllabary" msgstr "" #: ../input-pad/unicode_block.h:188 msgid "Linear B Ideograms" msgstr "" #: ../input-pad/unicode_block.h:189 msgid "Aegean Numbers" msgstr "" #: ../input-pad/unicode_block.h:190 msgid "Ancient Greek Numbers" msgstr "" #: ../input-pad/unicode_block.h:191 msgid "Ancient Symbols" msgstr "" #: ../input-pad/unicode_block.h:192 msgid "Phaistos Disc" msgstr "" #: ../input-pad/unicode_block.h:193 msgid "Lycian" msgstr "" #: ../input-pad/unicode_block.h:194 msgid "Carian" msgstr "" #: ../input-pad/unicode_block.h:195 msgid "Old Italic" msgstr "" #: ../input-pad/unicode_block.h:197 msgid "Ugaritic" msgstr "" #: ../input-pad/unicode_block.h:198 msgid "Old Persian" msgstr "" #: ../input-pad/unicode_block.h:199 msgid "Deseret" msgstr "" #: ../input-pad/unicode_block.h:201 msgid "Osmanya" msgstr "" #: ../input-pad/unicode_block.h:202 msgid "Cypriot Syllabary" msgstr "" #: ../input-pad/unicode_block.h:203 msgid "Imperial Aramaic" msgstr "" #: ../input-pad/unicode_block.h:204 msgid "Phoenician" msgstr "" #: ../input-pad/unicode_block.h:205 msgid "Lydian" msgstr "" #: ../input-pad/unicode_block.h:206 msgid "Kharoshthi" msgstr "" #: ../input-pad/unicode_block.h:207 msgid "Old South Arabian" msgstr "" #: ../input-pad/unicode_block.h:208 msgid "Avestan" msgstr "" #: ../input-pad/unicode_block.h:209 msgid "Inscriptional Parthian" msgstr "" #: ../input-pad/unicode_block.h:210 msgid "Inscriptional Pahlavi" msgstr "" #: ../input-pad/unicode_block.h:211 msgid "Old Turkic" msgstr "" #: ../input-pad/unicode_block.h:212 msgid "Rumi Numeral Symbols" msgstr "" #: ../input-pad/unicode_block.h:213 msgid "Kaithi" msgstr "" #: ../input-pad/unicode_block.h:214 msgid "Cuneiform" msgstr "" #: ../input-pad/unicode_block.h:215 msgid "Cuneiform Numbers and Punctuation" msgstr "" #: ../input-pad/unicode_block.h:216 msgid "Egyptian Hieroglyphs" msgstr "" #: ../input-pad/unicode_block.h:217 msgid "Byzantine Musical Symbols" msgstr "" #: ../input-pad/unicode_block.h:218 msgid "Musical Symbols" msgstr "" #: ../input-pad/unicode_block.h:219 msgid "Ancient Greek Musical Notation" msgstr "" #: ../input-pad/unicode_block.h:220 msgid "Tai Xuan Jing Symbols" msgstr "" #: ../input-pad/unicode_block.h:221 msgid "Counting Rod Numerals" msgstr "" #: ../input-pad/unicode_block.h:222 msgid "Mathematical Alphanumeric Symbols" msgstr "" #: ../input-pad/unicode_block.h:223 msgid "Mahjong Tiles" msgstr "" #: ../input-pad/unicode_block.h:224 msgid "Domino Tiles" msgstr "" #: ../input-pad/unicode_block.h:225 msgid "Enclosed Alphanumeric Supplement" msgstr "" #: ../input-pad/unicode_block.h:226 msgid "Enclosed Ideographic Supplement" msgstr "" #: ../input-pad/unicode_block.h:227 msgid "CJK Unified Ideographs Extension B" msgstr "" #: ../input-pad/unicode_block.h:228 msgid "CJK Unified Ideographs Extension C" msgstr "" #: ../input-pad/unicode_block.h:229 msgid "CJK Compatibility Ideographs Supplement" msgstr "" #: ../input-pad/unicode_block.h:230 msgid "Tags" msgstr "" #: ../input-pad/unicode_block.h:231 msgid "Variation Selectors Supplement" msgstr "" #: ../input-pad/unicode_block.h:232 msgid "Supplementary Private Use Area-A" msgstr "" #: ../input-pad/unicode_block.h:233 msgid "Supplementary Private Use Area-B" msgstr "" #: ../input-pad/window-gtk.c:203 msgid "Display version" msgstr "" #. Translators: the word 'KBDUI' is not translated. #: ../input-pad/window-gtk.c:206 msgid "Use KBDUI to draw keyboard" msgstr "" #. Translators: the word 'TYPE' is not translated. #: ../input-pad/window-gtk.c:209 msgid "Use TYPE of char table. The available TYPE=0, 1, 2" msgstr "" #. Translators: the word 'TYPE' is not translated. #: ../input-pad/window-gtk.c:212 msgid "Use TYPE of keyboard layout. The available TYPE=0, 1" msgstr "" #: ../input-pad/window-gtk.c:219 msgid "Use XTEST module to send key events" msgstr "" #: ../input-pad/window-gtk.c:224 msgid "Use XSendEvent to send key events" msgstr "" #: ../input-pad/window-gtk.c:1172 msgid "Fold layout" msgstr "" #: ../input-pad/window-gtk.c:1177 ../input-pad/window-gtk.c:2610 msgid "Extend layout" msgstr "" #: ../input-pad/window-gtk.c:2824 msgid "Layout" msgstr "" #: ../input-pad/window-gtk.c:3095 msgid "_Layout:" msgstr "" #: ../input-pad/window-gtk.c:3125 msgid "_Configure Layouts" msgstr "" #. No longer used in gtk 2.20 #. gchar *license1, *license2, *license3; #. license1 = _("" #. "This library is free software; you can redistribute it and/or " #. "modify it under the terms of the GNU Lesser General Public " #. "License as published by the Free Software Foundation; either " #. "version 2 of the License, or (at your option) any later version."); #. #. license2 = _("" #. "This library is distributed in the hope that it will be useful, " #. "but WITHOUT ANY WARRANTY; without even the implied warranty of " #. "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU " #. "Lesser General Public License for more details."); #. #. license3 = _("" #. "You should have received a copy of the GNU Lesser General Public " #. "License along with this library; if not, write to the Free Software " #. "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, " #. "MA 02110-1301 USA"); #. #. license = g_strdup_printf ("%s\n\n%s\n\n%s", #. license1, license2, license3); #. #. This format has been used since gtk 2.20. #: ../input-pad/window-gtk.c:3164 #, c-format msgid "This program comes with ABSOLUTELY NO WARRANTY; for details, visit %s" msgstr "" #: ../input-pad/window-gtk.c:3446 msgid "Group" msgstr "" #: ../input-pad/window-gtk.c:3454 msgid "Subgroup" msgstr "" input-pad-1.1.0/po/input-pad.pot000066400000000000000000002130411476727667600165120ustar00rootroot00000000000000# Source translations for input-pad # Copyright (C) 2010-2025 Takao Fujiwara # This file is distributed under the same license as the input-pad package. # msgid "" msgstr "" "Project-Id-Version: input-pad HEAD\n" "Report-Msgid-Bugs-To: http://code.google.com/p/input-pad/issues/list\n" "POT-Creation-Date: 2025-03-21 13:08+0900\n" "PO-Revision-Date: 2025-03-20 17:50+0900\n" "Last-Translator: Takao Fujiwara \n" "Language-Team: Source\n" "Language: en\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../data/alphabet.xml.in.in:1 msgid "Alphabets" msgstr "" #: ../data/base.xml.in:1 msgid "Symbols" msgstr "" #: ../data/base.xml.in:2 msgid "Currency" msgstr "" #: ../data/base.xml.in:3 msgid "Letterlike" msgstr "" #: ../data/base.xml.in:4 msgid "Miscellaneous" msgstr "" #: ../data/base.xml.in:5 ../input-pad/unicode_block.h:116 msgid "Dingbats" msgstr "" #. Translators: Superscripts and Subscripts #: ../data/base.xml.in:7 msgid "Super and Sub" msgstr "" #: ../data/base.xml.in:8 msgid "Bold" msgstr "" #: ../data/base.xml.in:9 msgid "Italic" msgstr "" #: ../data/base.xml.in:10 msgid "Script" msgstr "" #: ../data/base.xml.in:11 msgid "Double Struck" msgstr "" #: ../data/base.xml.in:12 msgid "All" msgstr "" #: ../data/base.xml.in:13 ../data/zh.xml.in.h:2 msgid "Numbers" msgstr "" #: ../data/base.xml.in:14 msgid "Roman" msgstr "" #: ../data/base.xml.in:15 msgid "Enclosed" msgstr "" #: ../data/base.xml.in:16 msgid "Fraction" msgstr "" #: ../data/base.xml.in:17 msgid "Technical" msgstr "" #: ../data/base.xml.in:18 msgid "Unit" msgstr "" #: ../data/base.xml.in:19 msgid "Mathematical" msgstr "" #: ../data/base.xml.in:20 msgid "Controls" msgstr "" #: ../data/base.xml.in:21 msgid "OCR" msgstr "" #: ../data/base.xml.in:22 msgid "Graphics" msgstr "" #: ../data/base.xml.in:23 msgid "Arrow" msgstr "" #: ../data/base.xml.in:24 ../input-pad/unicode_block.h:112 msgid "Box Drawing" msgstr "" #: ../data/base.xml.in:25 ../input-pad/window-gtk.c:3694 msgid "Block" msgstr "" #: ../data/base.xml.in:26 msgid "Geometric" msgstr "" #: ../data/base.xml.in:27 msgid "Braille" msgstr "" #: ../data/base.xml.in:28 msgid "Punctuations" msgstr "" #: ../data/base.xml.in:29 msgid "General" msgstr "" #: ../data/base.xml.in:30 msgid "CJK" msgstr "" #: ../data/base.xml.in:31 ../input-pad/unicode_block.h:145 msgid "CJK Compatibility" msgstr "" #: ../data/base.xml.in:32 msgid "Small Form" msgstr "" #: ../data/cmd.xml.in:1 msgid "Command" msgstr "" #: ../data/cmd.xml.in:2 msgid "Date" msgstr "" #: ../data/cmd.xml.in:3 msgid "Normal Date" msgstr "" #: ../data/cmd.xml.in:4 msgid "Date and Time" msgstr "" #: ../data/cmd.xml.in:5 msgid "ChangeLog date" msgstr "" #: ../data/cmd.xml.in:6 msgid "USA English date" msgstr "" #: ../data/cmd.xml.in:7 msgid "UK English date" msgstr "" #: ../data/cmd.xml.in:8 msgid "ISO 8601 date" msgstr "" #: ../data/cmd.xml.in:9 msgid "Era" msgstr "" #: ../data/cmd.xml.in:10 msgid "Century Year" msgstr "" #: ../data/cmd.xml.in:11 msgid "Normal Time" msgstr "" #: ../data/cmd.xml.in:12 msgid "English Time" msgstr "" #: ../data/cmd.xml.in:13 msgid "Month" msgstr "" #: ../data/cmd.xml.in:14 msgid "English Month" msgstr "" #: ../data/cmd.xml.in:15 msgid "Short Month" msgstr "" #: ../data/cmd.xml.in:16 msgid "English Short Month" msgstr "" #: ../data/cmd.xml.in:17 msgid "Weekday" msgstr "" #: ../data/cmd.xml.in:18 msgid "English Weekday" msgstr "" #: ../data/cmd.xml.in:19 msgid "Short Weekday" msgstr "" #: ../data/cmd.xml.in:20 msgid "English Short Weekday" msgstr "" #: ../data/goth.xml.in:1 ../input-pad/unicode_block.h:196 msgid "Gothic" msgstr "" #: ../data/input-pad.desktop.in:1 ../input-pad/dialog.ui.h:42 #: ../input-pad/window-gtk.c:5093 ../input-pad/window-gtk.c:5094 #: ../input-pad/window-gtk.ui.h:1 msgid "Input Pad" msgstr "" #. "IPA" stands for "International Phonetic Alphabet" #: ../data/ipa-obsolete.xml.in:2 msgid "IPA (Obsolete)" msgstr "" #: ../data/ipa-obsolete.xml.in:3 ../data/ipa.xml.in.h:6 msgid "Open back unrounded vowel" msgstr "" #: ../data/ipa-obsolete.xml.in:4 msgid "Palatalized voiced bilabial plosive" msgstr "" #: ../data/ipa-obsolete.xml.in:5 msgid "Voiceless palatal implosive" msgstr "" #: ../data/ipa-obsolete.xml.in:6 ../data/ipa.xml.in.h:138 msgid "Alveolar click" msgstr "" #: ../data/ipa-obsolete.xml.in:7 msgid "Palatalized voiced alveolar plosive" msgstr "" #: ../data/ipa-obsolete.xml.in:8 ../data/ipa.xml.in.h:25 msgid "Voiced alveolar affricate" msgstr "" #: ../data/ipa-obsolete.xml.in:9 ../data/ipa.xml.in.h:27 msgid "Voiced alveopalatal affricate" msgstr "" #: ../data/ipa-obsolete.xml.in:10 ../data/ipa.xml.in.h:26 msgid "Voiced palato-alveolar affricate" msgstr "" #: ../data/ipa-obsolete.xml.in:11 msgid "Palatalized voiceless labiodental fricative" msgstr "" #: ../data/ipa-obsolete.xml.in:12 msgid "Palatalized voiced velar plosive" msgstr "" #: ../data/ipa-obsolete.xml.in:13 msgid "Palatalized voiceless velar plosive" msgstr "" #: ../data/ipa-obsolete.xml.in:14 msgid "Voiceless velar implosive" msgstr "" #: ../data/ipa-obsolete.xml.in:15 msgid "Palatalized alveolar lateral approximant" msgstr "" #: ../data/ipa-obsolete.xml.in:16 msgid "Palatalized bilabial nasal" msgstr "" #: ../data/ipa-obsolete.xml.in:17 msgid "Palatalized alveolar nasal" msgstr "" #: ../data/ipa-obsolete.xml.in:18 msgid "Syllabic alveolar nasal" msgstr "" #: ../data/ipa-obsolete.xml.in:19 msgid "Palatalized voiceless bilabial plosive" msgstr "" #: ../data/ipa-obsolete.xml.in:20 msgid "Voiceless bilabial implosive" msgstr "" #: ../data/ipa-obsolete.xml.in:21 msgid "Palatalized alveolar trill" msgstr "" #: ../data/ipa-obsolete.xml.in:22 msgid "Voiced strident apico-alveolar trill" msgstr "" #: ../data/ipa-obsolete.xml.in:23 msgid "Palatalized voiceless alveolar fricative" msgstr "" #: ../data/ipa-obsolete.xml.in:24 ../data/ipa.xml.in.h:19 msgid "Voiceless alveopalatal fricative" msgstr "" #: ../data/ipa-obsolete.xml.in:25 msgid "Labialized voiceless palato-alveolar fricative" msgstr "" #: ../data/ipa-obsolete.xml.in:26 ../data/ipa.xml.in.h:103 msgid "Voiceless alveopalatal affricate" msgstr "" #: ../data/ipa-obsolete.xml.in:27 ../data/ipa.xml.in.h:101 msgid "Voiceless alveolar affricate" msgstr "" #: ../data/ipa-obsolete.xml.in:28 ../data/ipa.xml.in.h:102 msgid "Voiceless palato-alveolar affricate" msgstr "" #: ../data/ipa-obsolete.xml.in:29 msgid "Palatalized voiceless alveolar plosive" msgstr "" #: ../data/ipa-obsolete.xml.in:30 msgid "Voiceless alveolar implosive" msgstr "" #: ../data/ipa-obsolete.xml.in:31 ../data/ipa.xml.in.h:137 msgid "Dental click" msgstr "" #: ../data/ipa-obsolete.xml.in:32 msgid "Voiceless uvular implosive" msgstr "" #: ../data/ipa-obsolete.xml.in:33 msgid "Palatalized voiced labiodental fricative" msgstr "" #: ../data/ipa-obsolete.xml.in:34 msgid "Palatalized voiceless velar fricative" msgstr "" #: ../data/ipa-obsolete.xml.in:35 msgid "Palatalized voiced alveolar fricative" msgstr "" #: ../data/ipa-obsolete.xml.in:36 msgid "Labialized voiced palato-alveolar fricative" msgstr "" #: ../data/ipa-obsolete.xml.in:37 ../data/ipa.xml.in.h:128 msgid "Voiced alveopalatal fricative" msgstr "" #: ../data/ipa-obsolete.xml.in:38 ../data/ipa.xml.in.h:106 msgid "Near-close near-back vowel" msgstr "" #: ../data/ipa-obsolete.xml.in:39 ../data/ipa.xml.in.h:140 msgid "Alveolar lateral click" msgstr "" #: ../data/ipa-obsolete.xml.in:40 msgid "Labialized voiceless alveolar or dental fricative" msgstr "" #: ../data/ipa-obsolete.xml.in:41 msgid "Labialized voiced alveolar or dental fricative" msgstr "" #: ../data/ipa-obsolete.xml.in:42 msgid "Combining labialization mark" msgstr "" #: ../data/ipa-obsolete.xml.in:43 msgid "Combining palatalization mark" msgstr "" #. "IPA" stands for "International Phonetic Alphabet" #: ../data/ipa-unofficial.xml.in:2 msgid "IPA (Unofficial)" msgstr "" #: ../data/ipa-unofficial.xml.in:3 msgid "Voiced labiodental plosive" msgstr "" #: ../data/ipa-unofficial.xml.in:4 ../data/ipa.xml.in.h:18 msgid "Voiceless palatal lateral affricate" msgstr "" #: ../data/ipa-unofficial.xml.in:5 msgid "Voiced retroflex implosive" msgstr "" #: ../data/ipa-unofficial.xml.in:6 ../data/ipa.xml.in.h:88 msgid "Alveolar flap" msgstr "" #: ../data/ipa-unofficial.xml.in:7 ../data/ipa.xml.in.h:125 msgid "Voiceless palatal lateral fricative" msgstr "" #: ../data/ipa-unofficial.xml.in:8 ../data/ipa.xml.in.h:91 msgid "Retroflex flap" msgstr "" #: ../data/ipa-unofficial.xml.in:9 msgid "Voiceless retroflex lateral fricative" msgstr "" #. "PUA" stands for "Private Use Area" #: ../data/ipa-unofficial.xml.in:11 msgid "Voiceless retroflex lateral fricative (PUA)" msgstr "" #: ../data/ipa-unofficial.xml.in:12 ../data/ipa.xml.in.h:59 msgid "Voiceless velar lateral affricate" msgstr "" #: ../data/ipa-unofficial.xml.in:13 ../data/ipa.xml.in.h:68 msgid "Voiceless velar lateral fricative" msgstr "" #: ../data/ipa-unofficial.xml.in:14 msgid "Epiglottal trill" msgstr "" #: ../data/ipa-unofficial.xml.in:15 msgid "Voiceless labiodental plosive" msgstr "" #: ../data/ipa-unofficial.xml.in:16 msgid "Voiceless retroflex lateral affricate" msgstr "" #. "PUA" stands for "Private Use Area" #: ../data/ipa-unofficial.xml.in:18 msgid "Voiceless retroflex lateral affricate (PUA)" msgstr "" #: ../data/ipa-unofficial.xml.in:19 msgid "Combining stridency mark" msgstr "" #. "PUA" stands for "Private Use Area" #: ../data/ipa-unofficial.xml.in:21 msgid "Combining stridency mark (PUA)" msgstr "" #. "IPA" stands for "International Phonetic Alphabet" #: ../data/ipa.xml.in:2 msgid "IPA" msgstr "" #: ../data/ipa.xml.in:3 msgid "Open front unrounded vowel" msgstr "" #: ../data/ipa.xml.in:4 msgid "Open central unrounded vowel" msgstr "" #: ../data/ipa.xml.in:5 msgid "Near-open central vowel" msgstr "" #: ../data/ipa.xml.in:7 msgid "Open back rounded vowel" msgstr "" #: ../data/ipa.xml.in:8 msgid "Open-mid back unrounded vowel" msgstr "" #: ../data/ipa.xml.in:9 msgid "Near-open front unrounded vowel" msgstr "" #: ../data/ipa.xml.in:10 msgid "Voiced bilabial plosive" msgstr "" #: ../data/ipa.xml.in:11 msgid "Voiced labiodental affricate" msgstr "" #: ../data/ipa.xml.in:12 msgid "Voiced bilabial implosive" msgstr "" #: ../data/ipa.xml.in:13 msgid "Bilabial trill" msgstr "" #: ../data/ipa.xml.in:14 msgid "Voiced bilabial fricative" msgstr "" #: ../data/ipa.xml.in:15 msgid "Voiceless palatal plosive" msgstr "" #: ../data/ipa.xml.in:16 msgid "Voiceless palatal fricative" msgstr "" #: ../data/ipa.xml.in:17 msgid "Voiceless palatal affricate" msgstr "" #: ../data/ipa.xml.in:20 msgid "Voiced alveolar plosive" msgstr "" #: ../data/ipa.xml.in:21 msgid "Voiced alveolar implosive" msgstr "" #: ../data/ipa.xml.in:22 msgid "Voiced retroflex plosive" msgstr "" #: ../data/ipa.xml.in:23 msgid "Voiced dental fricative" msgstr "" #: ../data/ipa.xml.in:24 msgid "Voiced alveolar lateral affricate" msgstr "" #: ../data/ipa.xml.in:28 msgid "Voiced retroflex affricate" msgstr "" #: ../data/ipa.xml.in:29 msgid "Close-mid front unrounded vowel" msgstr "" #: ../data/ipa.xml.in:30 msgid "Close-mid central unrounded vowel" msgstr "" #: ../data/ipa.xml.in:31 msgid "Mid-central vowel" msgstr "" #: ../data/ipa.xml.in:32 msgid "Rhotacized mid-central vowel" msgstr "" #: ../data/ipa.xml.in:33 msgid "Open-mid front unrounded vowel" msgstr "" #: ../data/ipa.xml.in:34 msgid "Open-mid central rounded vowel" msgstr "" #: ../data/ipa.xml.in:35 msgid "Open-mid central unrounded vowel" msgstr "" #: ../data/ipa.xml.in:36 msgid "Rhotacized open-mid central unrounded vowel" msgstr "" #: ../data/ipa.xml.in:37 msgid "Voiceless labiodental fricative" msgstr "" #: ../data/ipa.xml.in:38 msgid "Velopharyngeal fricative" msgstr "" #: ../data/ipa.xml.in:39 msgid "Voiced velar plosive" msgstr "" #: ../data/ipa.xml.in:40 msgid "Voiced labial-velar plosive" msgstr "" #: ../data/ipa.xml.in:41 msgid "Voiced velar implosive" msgstr "" #: ../data/ipa.xml.in:42 msgid "Voiced uvular plosive" msgstr "" #: ../data/ipa.xml.in:43 msgid "Voiced uvular implosive" msgstr "" #: ../data/ipa.xml.in:44 msgid "Voiceless glottal fricative" msgstr "" #: ../data/ipa.xml.in:45 msgid "Voiced glottal fricative" msgstr "" #: ../data/ipa.xml.in:46 msgid "Voiceless pharyngeal fricative" msgstr "" #: ../data/ipa.xml.in:47 msgid "Voiceless coarticulated velar and palato-alveolar fricative" msgstr "" #: ../data/ipa.xml.in:48 msgid "Voiceless epiglottal fricative" msgstr "" #: ../data/ipa.xml.in:49 msgid "Close front unrounded vowel" msgstr "" #: ../data/ipa.xml.in:50 msgid "Near-close near-front unrounded vowel" msgstr "" #: ../data/ipa.xml.in:51 msgid "Near-close central unrounded vowel" msgstr "" #: ../data/ipa.xml.in:52 msgid "Close central unrounded vowel" msgstr "" #: ../data/ipa.xml.in:53 msgid "Palatal approximant" msgstr "" #: ../data/ipa.xml.in:54 msgid "Voiced palatal fricative" msgstr "" #: ../data/ipa.xml.in:55 msgid "Voiced palatal plosive" msgstr "" #: ../data/ipa.xml.in:56 msgid "Voiced palatal affricate" msgstr "" #: ../data/ipa.xml.in:57 msgid "Voiced palatal implosive" msgstr "" #: ../data/ipa.xml.in:58 msgid "Voiceless velar plosive" msgstr "" #: ../data/ipa.xml.in:60 msgid "Voiceless labial-velar plosive" msgstr "" #: ../data/ipa.xml.in:61 msgid "Voiceless velar affricate" msgstr "" #: ../data/ipa.xml.in:62 msgid "Alveolar lateral approximant" msgstr "" #: ../data/ipa.xml.in:63 msgid "Velarized alveolar lateral approximant" msgstr "" #: ../data/ipa.xml.in:64 msgid "Voiceless alveolar lateral fricative" msgstr "" #: ../data/ipa.xml.in:65 msgid "Retroflex lateral approximant" msgstr "" #: ../data/ipa.xml.in:66 msgid "Voiced alveolar lateral fricative" msgstr "" #: ../data/ipa.xml.in:67 msgid "Velar lateral approximant" msgstr "" #: ../data/ipa.xml.in:69 msgid "Bilabial nasal" msgstr "" #: ../data/ipa.xml.in:70 msgid "Labiodental nasal" msgstr "" #: ../data/ipa.xml.in:71 msgid "Alveolar nasal" msgstr "" #: ../data/ipa.xml.in:72 msgid "Velar nasal" msgstr "" #: ../data/ipa.xml.in:73 msgid "Labial-velar nasal" msgstr "" #: ../data/ipa.xml.in:74 msgid "Palatal nasal" msgstr "" #: ../data/ipa.xml.in:75 msgid "Retroflex nasal" msgstr "" #: ../data/ipa.xml.in:76 msgid "Uvular nasal" msgstr "" #: ../data/ipa.xml.in:77 msgid "Close-mid back rounded vowel" msgstr "" #: ../data/ipa.xml.in:78 msgid "Close-mid front rounded vowel" msgstr "" #: ../data/ipa.xml.in:79 msgid "Close-mid central rounded vowel" msgstr "" #: ../data/ipa.xml.in:80 msgid "Open-mid front rounded vowel" msgstr "" #: ../data/ipa.xml.in:81 msgid "Open front rounded vowel" msgstr "" #: ../data/ipa.xml.in:82 msgid "Voiceless bilabial plosive" msgstr "" #: ../data/ipa.xml.in:83 msgid "Voiceless bilabial-labiodental affricate" msgstr "" #: ../data/ipa.xml.in:84 msgid "Voiceless bilabial affricate" msgstr "" #: ../data/ipa.xml.in:85 msgid "Voiceless labiodental affricate" msgstr "" #: ../data/ipa.xml.in:86 msgid "Voiceless uvular plosive" msgstr "" #: ../data/ipa.xml.in:87 msgid "Alveolar trill" msgstr "" #: ../data/ipa.xml.in:89 msgid "Alveolar lateral flap" msgstr "" #: ../data/ipa.xml.in:90 msgid "Uvular trill" msgstr "" #: ../data/ipa.xml.in:92 msgid "Alveolar approximant" msgstr "" #: ../data/ipa.xml.in:93 msgid "Retroflex approximant" msgstr "" #: ../data/ipa.xml.in:94 msgid "Voiced uvular fricative" msgstr "" #: ../data/ipa.xml.in:95 msgid "Voiceless alveolar fricative" msgstr "" #: ../data/ipa.xml.in:96 msgid "Voiceless palato-alveolar fricative" msgstr "" #: ../data/ipa.xml.in:97 msgid "Voiceless retroflex fricative" msgstr "" #: ../data/ipa.xml.in:98 msgid "Voiceless alveolar plosive" msgstr "" #: ../data/ipa.xml.in:99 msgid "Voiceless retroflex plosive" msgstr "" #: ../data/ipa.xml.in:100 msgid "Voiceless alveolar lateral affricate" msgstr "" #: ../data/ipa.xml.in:104 msgid "Voiceless retroflex affricate" msgstr "" #: ../data/ipa.xml.in:105 msgid "Close back rounded vowel" msgstr "" #: ../data/ipa.xml.in:107 msgid "Near-close central vowel" msgstr "" #: ../data/ipa.xml.in:108 msgid "Close central rounded vowel" msgstr "" #: ../data/ipa.xml.in:109 msgid "Labial-palatal approximant" msgstr "" #: ../data/ipa.xml.in:110 msgid "Close back unrounded vowel" msgstr "" #: ../data/ipa.xml.in:111 msgid "Voiced labiodental fricative" msgstr "" #: ../data/ipa.xml.in:112 msgid "Labiodental flap" msgstr "" #: ../data/ipa.xml.in:113 msgid "Labiodental approximant" msgstr "" #: ../data/ipa.xml.in:114 msgid "Voiced velar fricative" msgstr "" #: ../data/ipa.xml.in:115 msgid "Close-mid back unrounded vowel" msgstr "" #: ../data/ipa.xml.in:116 msgid "Voiced labiovelar approximant" msgstr "" #: ../data/ipa.xml.in:117 msgid "Voiceless labiovelar approximant" msgstr "" #: ../data/ipa.xml.in:118 msgid "Velar approximant" msgstr "" #: ../data/ipa.xml.in:119 msgid "Bilabial percussive" msgstr "" #: ../data/ipa.xml.in:120 msgid "Voiceless velar fricative" msgstr "" #: ../data/ipa.xml.in:121 msgid "Voiceless uvular fricative" msgstr "" #: ../data/ipa.xml.in:122 msgid "Close front rounded vowel" msgstr "" #: ../data/ipa.xml.in:123 msgid "Near-close near-front rounded vowel" msgstr "" #: ../data/ipa.xml.in:124 msgid "Palatal lateral approximant" msgstr "" #: ../data/ipa.xml.in:126 msgid "Voiced alveolar fricative" msgstr "" #: ../data/ipa.xml.in:127 msgid "Voiced palato-alveolar fricative" msgstr "" #: ../data/ipa.xml.in:129 msgid "Voiced retroflex fricative" msgstr "" #: ../data/ipa.xml.in:130 msgid "Voiceless dental fricative" msgstr "" #: ../data/ipa.xml.in:131 msgid "Voiceless bilabial fricative" msgstr "" #: ../data/ipa.xml.in:132 msgid "Glottal stop" msgstr "" #: ../data/ipa.xml.in:133 msgid "Epiglottal plosive" msgstr "" #: ../data/ipa.xml.in:134 msgid "Voiced pharyngeal fricative" msgstr "" #: ../data/ipa.xml.in:135 msgid "Voiced epiglottal fricative" msgstr "" #: ../data/ipa.xml.in:136 msgid "Bilabial click" msgstr "" #: ../data/ipa.xml.in:139 msgid "Palatal click" msgstr "" #: ../data/ipa.xml.in:141 msgid "Bidental percussive" msgstr "" #: ../data/ipa.xml.in:142 msgid "Aspiration mark" msgstr "" #: ../data/ipa.xml.in:143 msgid "Non-aspiration mark" msgstr "" #: ../data/ipa.xml.in:144 msgid "Breathy voice mark" msgstr "" #: ../data/ipa.xml.in:145 msgid "Palatalization mark" msgstr "" #: ../data/ipa.xml.in:146 msgid "Lateral release mark" msgstr "" #: ../data/ipa.xml.in:147 msgid "Bilabial nasal release mark" msgstr "" #: ../data/ipa.xml.in:148 msgid "Labiodental nasal release mark" msgstr "" #: ../data/ipa.xml.in:149 msgid "Alveolar nasal release mark" msgstr "" #: ../data/ipa.xml.in:150 msgid "Palatal nasal release mark" msgstr "" #: ../data/ipa.xml.in:151 msgid "Retroflex nasal release mark" msgstr "" #: ../data/ipa.xml.in:152 msgid "Uvular nasal release mark" msgstr "" #: ../data/ipa.xml.in:153 msgid "Labio-palatalization mark" msgstr "" #: ../data/ipa.xml.in:154 msgid "Labiodentalization mark" msgstr "" #: ../data/ipa.xml.in:155 msgid "Labialization mark" msgstr "" #: ../data/ipa.xml.in:156 msgid "Velarization mark" msgstr "" #: ../data/ipa.xml.in:157 msgid "Glottalization mark" msgstr "" #: ../data/ipa.xml.in:158 msgid "Pharyngealization mark" msgstr "" #: ../data/ipa.xml.in:159 msgid "Combining velarization/pharyngealization mark" msgstr "" #: ../data/ipa.xml.in:160 msgid "Combining laryngealization mark" msgstr "" #: ../data/ipa.xml.in:161 msgid "Combining retroflexion mark" msgstr "" #: ../data/ipa.xml.in:162 msgid "Ejection mark" msgstr "" #: ../data/ipa.xml.in:163 msgid "Rhotacization mark" msgstr "" #: ../data/ipa.xml.in:164 msgid "Combining dentalization mark" msgstr "" #: ../data/ipa.xml.in:165 msgid "Combining dentolabialization mark" msgstr "" #: ../data/ipa.xml.in:166 msgid "Combining alveolarization mark" msgstr "" #: ../data/ipa.xml.in:167 msgid "Combining linguolabialization mark" msgstr "" #: ../data/ipa.xml.in:168 msgid "Combining apicalization mark" msgstr "" #: ../data/ipa.xml.in:169 msgid "Combining laminalization mark" msgstr "" #: ../data/ipa.xml.in:170 msgid "Combining centralization mark" msgstr "" #: ../data/ipa.xml.in:171 msgid "Combining mid-centralization mark" msgstr "" #: ../data/ipa.xml.in:172 msgid "Combining nasalization mark" msgstr "" #: ../data/ipa.xml.in:173 msgid "Combining nasalization mark below" msgstr "" #: ../data/ipa.xml.in:174 msgid "Combining denasalization mark" msgstr "" #: ../data/ipa.xml.in:175 msgid "Combining nasal friction mark" msgstr "" #: ../data/ipa.xml.in:176 msgid "Combining velopharyngeal friction mark" msgstr "" #: ../data/ipa.xml.in:177 msgid "Combining voiced mark" msgstr "" #: ../data/ipa.xml.in:178 msgid "Combining voiceless mark" msgstr "" #: ../data/ipa.xml.in:179 msgid "Combining voiceless mark above" msgstr "" #: ../data/ipa.xml.in:180 msgid "Pre-voicing/post-voicing mark" msgstr "" #: ../data/ipa.xml.in:181 msgid "Combining breathy voice mark" msgstr "" #: ../data/ipa.xml.in:182 msgid "Combining unreleased stop mark" msgstr "" #: ../data/ipa.xml.in:183 msgid "Combining more rounded mark" msgstr "" #: ../data/ipa.xml.in:184 msgid "Combining less rounded mark" msgstr "" #: ../data/ipa.xml.in:185 msgid "Combining labial spreading mark" msgstr "" #: ../data/ipa.xml.in:186 msgid "Combining syllabic mark" msgstr "" #: ../data/ipa.xml.in:187 msgid "Combining syllabic mark above" msgstr "" #: ../data/ipa.xml.in:188 msgid "Combining non-syllabic mark" msgstr "" #: ../data/ipa.xml.in:189 msgid "Combining non-syllabic mark above" msgstr "" #: ../data/ipa.xml.in:190 msgid "Combining top tone mark" msgstr "" #: ../data/ipa.xml.in:191 msgid "Combining high tone mark" msgstr "" #: ../data/ipa.xml.in:192 msgid "Combining mid tone mark" msgstr "" #: ../data/ipa.xml.in:193 msgid "Combining low tone mark" msgstr "" #: ../data/ipa.xml.in:194 msgid "Combining bottom tone mark" msgstr "" #: ../data/ipa.xml.in:195 msgid "Combining falling tone mark" msgstr "" #: ../data/ipa.xml.in:196 msgid "Combining high falling tone mark" msgstr "" #: ../data/ipa.xml.in:197 msgid "Combining low falling tone mark" msgstr "" #: ../data/ipa.xml.in:198 msgid "Combining rising tone mark" msgstr "" #: ../data/ipa.xml.in:199 msgid "Combining high rising tone mark" msgstr "" #: ../data/ipa.xml.in:200 msgid "Combining low rising tone mark" msgstr "" #: ../data/ipa.xml.in:201 msgid "Combining dipping tone mark" msgstr "" #: ../data/ipa.xml.in:202 msgid "Combining peaking tone mark" msgstr "" #: ../data/ipa.xml.in:203 msgid "Top tone letter" msgstr "" #: ../data/ipa.xml.in:204 msgid "High tone letter" msgstr "" #: ../data/ipa.xml.in:205 msgid "Mid tone letter" msgstr "" #: ../data/ipa.xml.in:206 msgid "Low tone letter" msgstr "" #: ../data/ipa.xml.in:207 msgid "Bottom tone letter" msgstr "" #: ../data/ipa.xml.in:208 msgid "Falling tone digraph" msgstr "" #: ../data/ipa.xml.in:209 msgid "High falling tone digraph" msgstr "" #: ../data/ipa.xml.in:210 msgid "Rising tone digraph" msgstr "" #: ../data/ipa.xml.in:211 msgid "High rising tone digraph" msgstr "" #: ../data/ipa.xml.in:212 msgid "Low rising tone digraph" msgstr "" #: ../data/ipa.xml.in:213 msgid "Dipping tone trigraph" msgstr "" #: ../data/ipa.xml.in:214 msgid "Peaking tone trigraph" msgstr "" #: ../data/ipa.xml.in:215 msgid "Upstep mark" msgstr "" #: ../data/ipa.xml.in:216 msgid "Downstep mark" msgstr "" #: ../data/ipa.xml.in:217 msgid "Minor break" msgstr "" #: ../data/ipa.xml.in:218 msgid "Major break" msgstr "" #: ../data/ipa.xml.in:219 msgid "Rising intonation mark" msgstr "" #: ../data/ipa.xml.in:220 msgid "Falling intonation mark" msgstr "" #: ../data/ipa.xml.in:221 msgid "Advanced articulation mark" msgstr "" #: ../data/ipa.xml.in:222 msgid "Retracted articulation mark" msgstr "" #: ../data/ipa.xml.in:223 msgid "Combining advanced articulation mark" msgstr "" #: ../data/ipa.xml.in:224 msgid "Combining retracted articulation mark" msgstr "" #: ../data/ipa.xml.in:225 msgid "Raised sound mark" msgstr "" #: ../data/ipa.xml.in:226 msgid "Lowered sound mark" msgstr "" #: ../data/ipa.xml.in:227 msgid "Combining raised sound mark" msgstr "" #: ../data/ipa.xml.in:228 msgid "Combining lowered sound mark" msgstr "" #: ../data/ipa.xml.in:229 msgid "Combining tongue root advancement mark" msgstr "" #: ../data/ipa.xml.in:230 msgid "Combining tongue root retraction mark" msgstr "" #: ../data/ipa.xml.in:231 msgid "Combining strong articulation mark" msgstr "" #: ../data/ipa.xml.in:232 msgid "Combining weak articulation mark" msgstr "" #: ../data/ipa.xml.in:233 msgid "Combining whistled articulation mark" msgstr "" #: ../data/ipa.xml.in:234 msgid "Combining sliding articulation mark" msgstr "" #: ../data/ipa.xml.in:235 msgid "Egression mark" msgstr "" #: ../data/ipa.xml.in:236 msgid "Ingression mark" msgstr "" #: ../data/ipa.xml.in:237 msgid "Combining ligature tie" msgstr "" #: ../data/ipa.xml.in:238 msgid "Combining ligature undertie" msgstr "" #: ../data/ipa.xml.in:239 msgid "Elongation mark" msgstr "" #: ../data/ipa.xml.in:240 msgid "Weak elongation mark" msgstr "" #: ../data/ipa.xml.in:241 msgid "Combining extra-short duration mark" msgstr "" #: ../data/ipa.xml.in:242 msgid "Liaison mark" msgstr "" #: ../data/ipa.xml.in:243 msgid "Stress mark" msgstr "" #: ../data/ipa.xml.in:244 msgid "Weak stress mark" msgstr "" #: ../data/ipa.xml.in:245 msgid "Syllable break" msgstr "" #: ../data/ipa.xml.in:246 msgid "Opening orthographic bracket" msgstr "" #: ../data/ipa.xml.in:247 msgid "Closing orthographic bracket" msgstr "" #: ../data/ja.xml.in:1 msgid "Japanese" msgstr "" #: ../data/ja.xml.in:2 ../input-pad/unicode_block.h:136 msgid "Hiragana" msgstr "" #: ../data/ja.xml.in:3 ../input-pad/unicode_block.h:137 msgid "Katakana" msgstr "" #: ../data/ja.xml.in:4 ../data/zh.xml.in.h:3 msgid "Radicals" msgstr "" #: ../data/ja.xml.in:5 ../input-pad/unicode_block.h:132 msgid "CJK Radicals Supplement" msgstr "" #: ../data/keyboard.xml.in:1 msgid "Keyboard" msgstr "" #: ../data/keyboard.xml.in:2 msgid "Function Key" msgstr "" #: ../data/keyboard.xml.in:3 msgid "Key Pad" msgstr "" #: ../data/latin.xml.in:1 msgid "ASCII" msgstr "" #: ../data/latin.xml.in:2 ../input-pad/unicode_block.h:38 msgid "Latin-1 Supplement" msgstr "" #: ../data/latin.xml.in:3 ../input-pad/unicode_block.h:39 msgid "Latin Extended-A" msgstr "" #: ../data/latin.xml.in:4 msgid "Old and Middle English" msgstr "" #: ../data/runr.xml.in:1 msgid "Runes (Unicode Block)" msgstr "" #: ../data/runr.xml.in:2 msgid "Runes (Elder Fuþark)" msgstr "" #: ../data/runr.xml.in:3 msgid "Runes (Younger Fuþark)" msgstr "" #: ../data/runr.xml.in:4 msgid "Runes (Fuþorc)" msgstr "" #: ../data/shaw.xml.in:1 ../input-pad/unicode_block.h:200 msgid "Shavian" msgstr "" #: ../data/str.xml.in:1 msgid "Chat" msgstr "" #: ../data/str.xml.in:2 msgid "Emoji" msgstr "" #: ../data/str.xml.in:3 msgid "Rain" msgstr "" #: ../data/str.xml.in:4 msgid "Comet" msgstr "" #: ../data/str.xml.in:5 msgid "Cross" msgstr "" #: ../data/str.xml.in:6 msgid "Solar" msgstr "" #: ../data/str.xml.in:7 msgid "Mercury" msgstr "" #: ../data/str.xml.in:8 msgid "Venus" msgstr "" #: ../data/str.xml.in:9 msgid "Earth" msgstr "" #: ../data/str.xml.in:10 msgid "Mars" msgstr "" #: ../data/str.xml.in:11 msgid "Jupiter" msgstr "" #: ../data/str.xml.in:12 msgid "Saturn" msgstr "" #: ../data/str.xml.in:13 msgid "Uranus" msgstr "" #: ../data/str.xml.in:14 msgid "Neptune" msgstr "" #: ../data/str.xml.in:15 msgid "Pluto" msgstr "" #: ../data/str.xml.in:16 msgid "Aries" msgstr "" #: ../data/str.xml.in:17 msgid "Taurus" msgstr "" #: ../data/str.xml.in:18 msgid "Gemini" msgstr "" #: ../data/str.xml.in:19 msgid "Cancer" msgstr "" #: ../data/str.xml.in:20 msgid "Leo" msgstr "" #: ../data/str.xml.in:21 msgid "Virgo" msgstr "" #: ../data/str.xml.in:22 msgid "Libra" msgstr "" #: ../data/str.xml.in:23 msgid "Scorpius" msgstr "" #: ../data/str.xml.in:24 msgid "Sagittarius" msgstr "" #: ../data/str.xml.in:25 msgid "Capricorn" msgstr "" #: ../data/str.xml.in:26 msgid "Aquarius" msgstr "" #: ../data/str.xml.in:27 msgid "Pisces" msgstr "" #: ../data/str.xml.in:28 msgid "Dice 1" msgstr "" #: ../data/str.xml.in:29 msgid "Dice 2" msgstr "" #: ../data/str.xml.in:30 msgid "Dice 3" msgstr "" #: ../data/str.xml.in:31 msgid "Dice 4" msgstr "" #: ../data/str.xml.in:32 msgid "Dice 5" msgstr "" #: ../data/str.xml.in:33 msgid "Dice 6" msgstr "" #: ../data/str.xml.in:34 msgid "Anchor" msgstr "" #: ../data/str.xml.in:35 msgid "Sword" msgstr "" #: ../data/str.xml.in:36 msgid "Scales" msgstr "" #: ../data/str.xml.in:37 msgid "Conversation" msgstr "" #: ../data/str.xml.in:38 msgid "Warning" msgstr "" #: ../data/str.xml.in:39 msgid "Thunder" msgstr "" #: ../data/str.xml.in:40 msgid "Coffin" msgstr "" #: ../data/str.xml.in:41 msgid "Gender" msgstr "" #: ../data/str.xml.in:42 msgid "Soccer" msgstr "" #: ../data/str.xml.in:43 msgid "Baseball" msgstr "" #: ../data/str.xml.in:44 msgid "Snowman" msgstr "" #: ../data/str.xml.in:45 msgid "Shogi" msgstr "" #: ../data/str.xml.in:46 msgid "Shoji" msgstr "" #: ../data/str.xml.in:47 msgid "Maintenance" msgstr "" #: ../data/str.xml.in:48 msgid "Roadblock" msgstr "" #: ../data/str.xml.in:49 msgid "No entry" msgstr "" #: ../data/str.xml.in:50 msgid "Truck" msgstr "" #: ../data/str.xml.in:51 msgid "Torii" msgstr "" #: ../data/str.xml.in:52 msgid "Church" msgstr "" #: ../data/str.xml.in:53 msgid "Castle" msgstr "" #: ../data/str.xml.in:54 msgid "Historic site" msgstr "" #: ../data/str.xml.in:55 msgid "Power station" msgstr "" #: ../data/str.xml.in:56 msgid "Lighthouse" msgstr "" #: ../data/str.xml.in:57 msgid "Mountain" msgstr "" #: ../data/str.xml.in:58 msgid "Beach" msgstr "" #: ../data/str.xml.in:59 msgid "Park" msgstr "" #: ../data/str.xml.in:60 msgid "Ferry" msgstr "" #: ../data/str.xml.in:61 msgid "Sailboat" msgstr "" #: ../data/str.xml.in:62 msgid "Ice rink" msgstr "" #: ../data/str.xml.in:63 msgid "Scissors" msgstr "" #: ../data/str.xml.in:64 msgid "Airplane" msgstr "" #: ../data/str.xml.in:65 msgid "Clenched Fist" msgstr "" #: ../data/str.xml.in:66 msgid "Hand" msgstr "" #: ../data/str.xml.in:67 msgid "V Sign" msgstr "" #: ../data/str.xml.in:68 msgid "Writing" msgstr "" #: ../data/str.xml.in:69 msgid "Pencil" msgstr "" #: ../data/str.xml.in:70 msgid "Pen" msgstr "" #: ../data/str.xml.in:71 msgid "Star" msgstr "" #: ../data/str.xml.in:72 msgid "Typhoon" msgstr "" #: ../data/str.xml.in:73 msgid "Fog" msgstr "" #: ../data/str.xml.in:74 msgid "Umbrella" msgstr "" #: ../data/str.xml.in:75 msgid "Night sky" msgstr "" #: ../data/str.xml.in:76 msgid "Sunrise" msgstr "" #: ../data/str.xml.in:77 msgid "Sunset" msgstr "" #: ../data/str.xml.in:78 msgid "Bridge" msgstr "" #: ../data/str.xml.in:79 msgid "Wave" msgstr "" #: ../data/str.xml.in:80 msgid "New Moon" msgstr "" #: ../data/str.xml.in:81 msgid "Crescent Moon" msgstr "" #: ../data/str.xml.in:82 msgid "Quarter Moon" msgstr "" #: ../data/str.xml.in:83 msgid "Gibbous Moon" msgstr "" #: ../data/str.xml.in:84 msgid "Full Moon" msgstr "" #: ../data/str.xml.in:85 msgid "Moon" msgstr "" #: ../data/str.xml.in:86 msgid "Sun" msgstr "" #: ../data/str.xml.in:87 msgid "Cloud" msgstr "" #: ../data/str.xml.in:88 msgid "Palm" msgstr "" #: ../data/str.xml.in:89 msgid "Hot Pepper" msgstr "" #: ../data/str.xml.in:90 msgid "Flower" msgstr "" #: ../data/str.xml.in:91 msgid "Tulip" msgstr "" #: ../data/str.xml.in:92 msgid "Cherry" msgstr "" #: ../data/str.xml.in:93 msgid "Rose" msgstr "" #: ../data/str.xml.in:94 msgid "Hibiscus" msgstr "" #: ../data/str.xml.in:95 msgid "Sunflower" msgstr "" #: ../data/str.xml.in:96 msgid "Blossom" msgstr "" #: ../data/str.xml.in:97 msgid "Clover" msgstr "" #: ../data/str.xml.in:98 msgid "Maple" msgstr "" #: ../data/str.xml.in:99 msgid "Fallen Leaf" msgstr "" #: ../data/str.xml.in:100 msgid "Leaf" msgstr "" #: ../data/str.xml.in:101 msgid "Mushroom" msgstr "" #: ../data/str.xml.in:102 msgid "Tomato" msgstr "" #: ../data/str.xml.in:103 msgid "Eggplant" msgstr "" #: ../data/str.xml.in:104 msgid "Grape" msgstr "" #: ../data/str.xml.in:105 msgid "Melon" msgstr "" #: ../data/str.xml.in:106 msgid "Watermelon" msgstr "" #: ../data/str.xml.in:107 msgid "Tangerine" msgstr "" #: ../data/str.xml.in:108 msgid "Lemon" msgstr "" #: ../data/str.xml.in:109 msgid "Banana" msgstr "" #: ../data/str.xml.in:110 msgid "Pineapple" msgstr "" #: ../data/str.xml.in:111 msgid "Apple" msgstr "" #: ../data/str.xml.in:112 msgid "Pear" msgstr "" #: ../data/str.xml.in:113 msgid "Peach" msgstr "" #: ../data/str.xml.in:114 msgid "Strawberry" msgstr "" #: ../data/str.xml.in:115 msgid "Hamburger" msgstr "" #: ../data/str.xml.in:116 msgid "Pizza" msgstr "" #: ../data/str.xml.in:117 msgid "Meat" msgstr "" #: ../data/str.xml.in:118 msgid "Poultry" msgstr "" #: ../data/str.xml.in:119 msgid "Rice Cracker" msgstr "" #: ../data/str.xml.in:120 msgid "Rice Ball" msgstr "" #: ../data/str.xml.in:121 msgid "Rice" msgstr "" #: ../data/str.xml.in:122 msgid "Curry" msgstr "" #: ../data/str.xml.in:123 msgid "Ramen" msgstr "" #: ../data/str.xml.in:124 msgid "Spaghetti" msgstr "" #: ../data/str.xml.in:125 msgid "Bread" msgstr "" #: ../data/str.xml.in:126 msgid "Fried Potato" msgstr "" #: ../data/str.xml.in:127 msgid "Roasted Sweet Potato" msgstr "" #: ../data/str.xml.in:128 msgid "Dango" msgstr "" #: ../data/str.xml.in:129 msgid "Oden" msgstr "" #: ../data/str.xml.in:130 msgid "Sushi" msgstr "" #: ../data/str.xml.in:131 msgid "Fried Shrimp" msgstr "" #: ../data/str.xml.in:132 msgid "Fish Cake" msgstr "" #: ../data/str.xml.in:133 msgid "Soft Ice Cream" msgstr "" #: ../data/str.xml.in:134 msgid "Shaved Ice" msgstr "" #: ../data/str.xml.in:135 msgid "Ice Cream" msgstr "" #: ../data/str.xml.in:136 msgid "Doughnut" msgstr "" #: ../data/str.xml.in:137 msgid "Cookie" msgstr "" #: ../data/str.xml.in:138 msgid "Chocolate" msgstr "" #: ../data/str.xml.in:139 msgid "Candy" msgstr "" #: ../data/str.xml.in:140 msgid "Custard" msgstr "" #: ../data/str.xml.in:141 msgid "Honey" msgstr "" #: ../data/str.xml.in:142 msgid "Shortcake" msgstr "" #: ../data/str.xml.in:143 msgid "Bento" msgstr "" #: ../data/str.xml.in:144 msgid "Pot of Food" msgstr "" #: ../data/str.xml.in:145 msgid "Cooking" msgstr "" #: ../data/str.xml.in:146 msgid "Meal" msgstr "" #: ../data/str.xml.in:147 msgid "Cup" msgstr "" #: ../data/str.xml.in:148 msgid "Sake" msgstr "" #: ../data/str.xml.in:149 msgid "Wine" msgstr "" #: ../data/str.xml.in:150 msgid "Cocktail" msgstr "" #: ../data/str.xml.in:151 msgid "Drink" msgstr "" #: ../data/str.xml.in:152 msgid "Beer" msgstr "" #: ../data/str.xml.in:153 msgid "Cheers" msgstr "" #: ../data/str.xml.in:154 msgid "Baby Bottle" msgstr "" #: ../data/str.xml.in:155 msgid "Ribbon" msgstr "" #: ../data/str.xml.in:156 msgid "Present" msgstr "" #: ../data/str.xml.in:157 msgid "Cake" msgstr "" #: ../data/str.xml.in:158 msgid "Hallowe'en" msgstr "" #: ../data/str.xml.in:159 msgid "Christmas" msgstr "" #: ../data/str.xml.in:160 msgid "Piano" msgstr "" #: ../data/str.xml.in:161 msgid "Microphone" msgstr "" #: ../data/str.xml.in:162 msgid "Headphone" msgstr "" #: ../data/str.xml.in:163 msgid "Hat" msgstr "" #: ../data/str.xml.in:164 msgid "Musical Note" msgstr "" #: ../data/str.xml.in:165 msgid "Saxophone" msgstr "" #: ../data/str.xml.in:166 msgid "Guitar" msgstr "" #: ../data/str.xml.in:167 msgid "Trumpet" msgstr "" #: ../data/str.xml.in:168 msgid "Violin" msgstr "" #: ../data/str.xml.in:169 msgid "Musical Score" msgstr "" #: ../data/str.xml.in:170 msgid "Tennis" msgstr "" #: ../data/str.xml.in:171 msgid "Ski" msgstr "" #: ../data/str.xml.in:172 msgid "Basketball" msgstr "" #: ../data/str.xml.in:173 msgid "Flag" msgstr "" #: ../data/str.xml.in:174 msgid "Show Board" msgstr "" #: ../data/str.xml.in:175 msgid "Running" msgstr "" #: ../data/str.xml.in:176 msgid "Surfer" msgstr "" #: ../data/str.xml.in:177 msgid "Medal" msgstr "" #: ../data/str.xml.in:178 msgid "Trophy" msgstr "" #: ../data/str.xml.in:179 msgid "Horse Racing" msgstr "" #: ../data/str.xml.in:180 msgid "American Football" msgstr "" #: ../data/str.xml.in:181 msgid "Rugby" msgstr "" #: ../data/str.xml.in:182 msgid "Swimmer" msgstr "" #: ../data/str.xml.in:183 msgid "Weight Lifting" msgstr "" #: ../data/str.xml.in:184 msgid "Golf" msgstr "" #: ../data/str.xml.in:185 msgid "Motorcycle" msgstr "" #: ../data/str.xml.in:186 msgid "Race" msgstr "" #: ../data/str.xml.in:187 msgid "House" msgstr "" #: ../data/str.xml.in:188 msgid "Office" msgstr "" #: ../data/str.xml.in:189 msgid "Hospital" msgstr "" #: ../data/str.xml.in:190 msgid "Bank" msgstr "" #: ../data/str.xml.in:191 msgid "Hotel" msgstr "" #: ../data/str.xml.in:192 msgid "School" msgstr "" #: ../data/str.xml.in:193 msgid "Factory" msgstr "" #: ../data/str.xml.in:194 msgid "Rat" msgstr "" #: ../data/str.xml.in:195 msgid "Mouse" msgstr "" #: ../data/str.xml.in:196 msgid "Cow" msgstr "" #: ../data/str.xml.in:197 msgid "Tiger" msgstr "" #: ../data/str.xml.in:198 msgid "Leopard" msgstr "" #: ../data/str.xml.in:199 msgid "Rabbit" msgstr "" #: ../data/str.xml.in:200 msgid "Cat" msgstr "" #: ../data/str.xml.in:201 msgid "Dragon" msgstr "" #: ../data/str.xml.in:202 msgid "Crocodile" msgstr "" #: ../data/str.xml.in:203 msgid "Whale" msgstr "" #: ../data/str.xml.in:204 msgid "Snail" msgstr "" #: ../data/str.xml.in:205 msgid "Snake" msgstr "" #: ../data/str.xml.in:206 msgid "Horse" msgstr "" #: ../data/str.xml.in:207 msgid "Sheep" msgstr "" #: ../data/str.xml.in:208 msgid "Goat" msgstr "" #: ../data/str.xml.in:209 msgid "Monkey" msgstr "" #: ../data/str.xml.in:210 msgid "Chicken" msgstr "" #: ../data/str.xml.in:211 msgid "Dog" msgstr "" #: ../data/str.xml.in:212 msgid "Pig" msgstr "" #: ../data/str.xml.in:213 msgid "Elephant" msgstr "" #: ../data/str.xml.in:214 msgid "Octopus" msgstr "" #: ../data/str.xml.in:215 msgid "Spiral Shell" msgstr "" #: ../data/str.xml.in:216 msgid "Bug" msgstr "" #: ../data/str.xml.in:217 msgid "Ant" msgstr "" #: ../data/str.xml.in:218 msgid "Lady Beetle" msgstr "" #: ../data/str.xml.in:219 msgid "Fish" msgstr "" #: ../data/str.xml.in:220 msgid "Tropical Fish" msgstr "" #: ../data/str.xml.in:221 msgid "Blowfish" msgstr "" #: ../data/str.xml.in:222 msgid "Bird" msgstr "" #: ../data/str.xml.in:223 msgid "Penguin" msgstr "" #: ../data/str.xml.in:224 msgid "Koala" msgstr "" #: ../data/str.xml.in:225 msgid "Poodle" msgstr "" #: ../data/str.xml.in:226 msgid "Camel" msgstr "" #: ../data/str.xml.in:227 msgid "Dolphin" msgstr "" #: ../data/str.xml.in:228 msgid "Frog" msgstr "" #: ../data/str.xml.in:229 msgid "Hamster" msgstr "" #: ../data/str.xml.in:230 msgid "Wolf" msgstr "" #: ../data/str.xml.in:231 msgid "Bear" msgstr "" #: ../data/str.xml.in:232 msgid "Panda" msgstr "" #: ../data/str.xml.in:233 msgid "Eye" msgstr "" #: ../data/str.xml.in:234 msgid "Ear" msgstr "" #: ../data/str.xml.in:235 msgid "Nose" msgstr "" #: ../data/str.xml.in:236 msgid "Mouth" msgstr "" #: ../data/str.xml.in:237 msgid "Tongue" msgstr "" #: ../data/str.xml.in:238 msgid "Crown" msgstr "" #: ../data/str.xml.in:239 msgid "Glasses" msgstr "" #: ../data/str.xml.in:240 msgid "Necktie" msgstr "" #: ../data/str.xml.in:241 msgid "T-Shirt" msgstr "" #: ../data/str.xml.in:242 msgid "Jeans" msgstr "" #: ../data/str.xml.in:243 msgid "Dress" msgstr "" #: ../data/str.xml.in:244 msgid "Kimono" msgstr "" #: ../data/str.xml.in:245 msgid "Bikini" msgstr "" #: ../data/str.xml.in:246 msgid "Clothes" msgstr "" #: ../data/str.xml.in:247 msgid "Purse" msgstr "" #: ../data/str.xml.in:248 msgid "Handbag" msgstr "" #: ../data/str.xml.in:249 msgid "Pouch" msgstr "" #: ../data/str.xml.in:250 msgid "Shoe" msgstr "" #: ../data/str.xml.in:251 msgid "Footprint" msgstr "" #: ../data/str.xml.in:252 msgid "Bust in silhouette" msgstr "" #: ../data/str.xml.in:253 msgid "Busts in silhouette" msgstr "" #: ../data/str.xml.in:254 msgid "Boy" msgstr "" #: ../data/str.xml.in:255 msgid "Girl" msgstr "" #: ../data/str.xml.in:256 msgid "Man" msgstr "" #: ../data/str.xml.in:257 msgid "Woman" msgstr "" #: ../data/str.xml.in:258 msgid "Family" msgstr "" #: ../data/str.xml.in:259 msgid "Man and woman holding hands" msgstr "" #: ../data/str.xml.in:260 msgid "Men holding hands" msgstr "" #: ../data/str.xml.in:261 msgid "Women holding hands" msgstr "" #: ../data/str.xml.in:262 msgid "Men's room" msgstr "" #: ../data/str.xml.in:263 msgid "Women's room" msgstr "" #: ../data/str.xml.in:264 msgid "Restroom" msgstr "" #: ../data/str.xml.in:265 msgid "Princess" msgstr "" #: ../data/str.xml.in:266 msgid "Japanese Ogre" msgstr "" #: ../data/str.xml.in:267 msgid "Japanese Goblin" msgstr "" #: ../data/str.xml.in:268 msgid "Ghost" msgstr "" #: ../data/str.xml.in:269 msgid "Baby Angel" msgstr "" #: ../data/str.xml.in:270 msgid "Extraterrestrial Alien" msgstr "" #: ../data/str.xml.in:271 msgid "Alien Monster" msgstr "" #: ../data/str.xml.in:272 msgid "Imp" msgstr "" #: ../data/str.xml.in:273 msgid "Skull" msgstr "" #: ../data/str.xml.in:274 msgid "Information Desk Person" msgstr "" #: ../data/str.xml.in:275 msgid "Guardsman" msgstr "" #: ../data/str.xml.in:276 msgid "Dancer" msgstr "" #: ../data/str.xml.in:277 msgid "Lipstick" msgstr "" #: ../data/str.xml.in:278 msgid "Nail polish" msgstr "" #: ../data/str.xml.in:279 msgid "Face" msgstr "" #: ../data/str.xml.in:280 msgid "Haircut" msgstr "" #: ../data/str.xml.in:281 msgid "Syringe" msgstr "" #: ../data/str.xml.in:282 msgid "Pill" msgstr "" #: ../data/str.xml.in:283 msgid "Kiss" msgstr "" #: ../data/str.xml.in:284 msgid "Love Letter" msgstr "" #: ../data/str.xml.in:285 msgid "Ring" msgstr "" #: ../data/str.xml.in:286 msgid "Gem Stone" msgstr "" #: ../data/str.xml.in:287 msgid "Wedding" msgstr "" #: ../data/str.xml.in:288 msgid "Heart" msgstr "" #: ../data/str.xml.in:289 msgid "Idea" msgstr "" #: ../data/str.xml.in:290 msgid "Anger" msgstr "" #: ../data/str.xml.in:291 msgid "Bomb" msgstr "" #: ../data/str.xml.in:292 msgid "Sleeping" msgstr "" #: ../data/str.xml.in:293 msgid "Collision" msgstr "" #: ../data/str.xml.in:294 msgid "Sweat" msgstr "" #: ../data/str.xml.in:295 msgid "Droplet" msgstr "" #: ../data/str.xml.in:296 msgid "Dash" msgstr "" #: ../data/str.xml.in:297 msgid "Poo" msgstr "" #: ../data/str.xml.in:298 msgid "Muscle" msgstr "" #: ../data/str.xml.in:299 msgid "Dizzy" msgstr "" #: ../data/str.xml.in:300 msgid "Speech" msgstr "" #: ../data/str.xml.in:301 msgid "Thought" msgstr "" #: ../data/str.xml.in:302 msgid "Perfect Score" msgstr "" #: ../data/str.xml.in:303 msgid "Pushpin" msgstr "" #: ../data/str.xml.in:304 msgid "Paperclip" msgstr "" #: ../data/str.xml.in:305 msgid "Speaker with cancellation stroke" msgstr "" #: ../data/str.xml.in:306 msgid "Speaker low volume" msgstr "" #: ../data/str.xml.in:307 msgid "Speaker medium volume" msgstr "" #: ../data/str.xml.in:308 msgid "Speaker high volume" msgstr "" #: ../data/str.xml.in:309 msgid "Battery" msgstr "" #: ../data/str.xml.in:310 msgid "Plug" msgstr "" #: ../data/str.xml.in:311 msgid "Magnifying glass tilted left" msgstr "" #: ../data/str.xml.in:312 msgid "Magnifying glass tilted right" msgstr "" #: ../data/str.xml.in:313 msgid "Bookmark" msgstr "" #: ../data/str.xml.in:314 msgid "Book" msgstr "" #: ../data/str.xml.in:315 msgid "Memo" msgstr "" #: ../data/str.xml.in:316 msgid "Mail" msgstr "" #: ../data/str.xml.in:317 msgid "Incoming envelope" msgstr "" #: ../data/str.xml.in:318 msgid "Postbox" msgstr "" #: ../data/str.xml.in:319 msgid "Mobile Phone" msgstr "" #: ../data/str.xml.in:320 msgid "Antenna with bars" msgstr "" #: ../data/str.xml.in:321 msgid "Camera" msgstr "" #: ../data/str.xml.in:322 msgid "Video" msgstr "" #: ../data/str.xml.in:323 msgid "Television" msgstr "" #: ../data/str.xml.in:324 msgid "Radio" msgstr "" #: ../data/str.xml.in:325 msgid "Key" msgstr "" #: ../data/str.xml.in:326 msgid "Lock, locked" msgstr "" #: ../data/str.xml.in:327 msgid "Lock, unlocked" msgstr "" #: ../data/str.xml.in:328 msgid "Fire" msgstr "" #: ../data/str.xml.in:329 msgid "Wrench" msgstr "" #: ../data/str.xml.in:330 msgid "Hammer" msgstr "" #: ../data/str.xml.in:331 msgid "Nut and bolt" msgstr "" #: ../data/str.xml.in:332 msgid "Hocho" msgstr "" #: ../data/str.xml.in:333 msgid "Pistol" msgstr "" #: ../data/str.xml.in:334 msgid "Microscope" msgstr "" #: ../data/str.xml.in:335 msgid "Telescope" msgstr "" #: ../data/str.xml.in:336 msgid "Crystal" msgstr "" #: ../data/str.xml.in:337 msgid "David Star" msgstr "" #: ../data/str.xml.in:338 msgid "Beginner" msgstr "" #: ../data/str.xml.in:339 msgid "Candle" msgstr "" #: ../data/str.xml.in:340 msgid "Hole" msgstr "" #: ../data/str.xml.in:341 msgid "Laptop Computer" msgstr "" #: ../data/str.xml.in:342 msgid "Desktop Computer" msgstr "" #: ../data/str.xml.in:343 msgid "keyboard" msgstr "" #: ../data/str.xml.in:344 msgid "Printer" msgstr "" #: ../data/str.xml.in:345 msgid "Calculator" msgstr "" #: ../data/str.xml.in:346 msgid "Minimize" msgstr "" #: ../data/str.xml.in:347 msgid "Maximize" msgstr "" #: ../data/str.xml.in:348 msgid "Refresh" msgstr "" #: ../data/str.xml.in:349 msgid "Close" msgstr "" #: ../data/str.xml.in:350 msgid "World" msgstr "" #: ../data/str.xml.in:351 msgid "Mt. Fuji" msgstr "" #: ../data/str.xml.in:352 msgid "Tokyo Tower" msgstr "" #: ../data/str.xml.in:353 msgid "Japan" msgstr "" #: ../data/str.xml.in:354 msgid "Anguish" msgstr "" #: ../data/str.xml.in:355 msgid "Smile" msgstr "" #: ../data/str.xml.in:356 msgid "Smirk" msgstr "" #: ../data/str.xml.in:357 msgid "Neutral" msgstr "" #: ../data/str.xml.in:358 msgid "Expressionless" msgstr "" #: ../data/str.xml.in:359 msgid "Unamused" msgstr "" #: ../data/str.xml.in:360 msgid "Pensive" msgstr "" #: ../data/str.xml.in:361 msgid "Confused" msgstr "" #: ../data/str.xml.in:362 msgid "Confounded" msgstr "" #: ../data/str.xml.in:363 msgid "Disappointed" msgstr "" #: ../data/str.xml.in:364 msgid "Angry" msgstr "" #: ../data/str.xml.in:365 msgid "Cry" msgstr "" #: ../data/str.xml.in:366 msgid "Sleepy" msgstr "" #: ../data/str.xml.in:367 msgid "Tired" msgstr "" #: ../data/str.xml.in:368 msgid "Surprise" msgstr "" #: ../data/str.xml.in:369 msgid "Scream" msgstr "" #: ../data/str.xml.in:370 msgid "Flushed" msgstr "" #: ../data/str.xml.in:371 msgid "Medical Mask" msgstr "" #: ../data/str.xml.in:372 msgid "OK" msgstr "" #: ../data/str.xml.in:373 msgid "Bow" msgstr "" #: ../data/str.xml.in:374 msgid "See-No-Evil" msgstr "" #: ../data/str.xml.in:375 msgid "Hear-No-Evil" msgstr "" #: ../data/str.xml.in:376 msgid "Speak-No-Evil" msgstr "" #: ../data/str.xml.in:377 msgid "Banzai" msgstr "" #: ../data/str.xml.in:378 msgid "Pleading" msgstr "" #: ../data/str.xml.in:379 msgid "Smileys" msgstr "" #: ../data/str.xml.in:380 msgid "Smile Big" msgstr "" #: ../data/str.xml.in:381 msgid "Sad" msgstr "" #: ../data/str.xml.in:382 msgid "Wink" msgstr "" #: ../data/str.xml.in:383 msgid "Shock" msgstr "" #: ../data/str.xml.in:384 msgid "Kiss | Secret" msgstr "" #: ../data/str.xml.in:385 msgid "Glasses Cool | Eyeroll" msgstr "" #: ../data/str.xml.in:386 msgid "Glasses Cool" msgstr "" #: ../data/str.xml.in:387 msgid "Embarrassed" msgstr "" #: ../data/str.xml.in:388 msgid "Crying" msgstr "" #: ../data/str.xml.in:389 msgid "Thinking" msgstr "" #: ../data/str.xml.in:390 msgid "Don't Know" msgstr "" #: ../data/str.xml.in:391 msgid "Party" msgstr "" #: ../data/str.xml.in:392 msgid "Yawn" msgstr "" #: ../data/str.xml.in:393 msgid "Bunny" msgstr "" #: ../data/str.xml.in:394 msgid "Sick" msgstr "" #: ../data/str.xml.in:395 msgid "Devil" msgstr "" #: ../data/str.xml.in:396 msgid "Angel" msgstr "" #: ../data/str.xml.in:397 msgid "Love" msgstr "" #: ../data/str.xml.in:398 msgid "Love Over" msgstr "" #: ../data/str.xml.in:399 msgid "Film" msgstr "" #: ../data/str.xml.in:400 msgid "Clock" msgstr "" #: ../data/str.xml.in:401 msgid "Coffee" msgstr "" #: ../data/str.xml.in:402 msgid "Phone" msgstr "" #: ../data/str.xml.in:403 msgid "Hug Left" msgstr "" #: ../data/str.xml.in:404 msgid "Hug Right" msgstr "" #: ../data/str.xml.in:405 msgid "Yes" msgstr "" #: ../data/str.xml.in:406 msgid "No" msgstr "" #: ../data/str.xml.in:407 msgid "Shut Mouth" msgstr "" #: ../data/str.xml.in:408 msgid "Money Mouth" msgstr "" #: ../data/str.xml.in:409 msgid "Foot in Mouth" msgstr "" #: ../data/str.xml.in:410 msgid "Shout" msgstr "" #. http://ja.wikipedia.org/wiki/%E9%A1%94%E6%96%87%E5%AD%97 #: ../data/str.xml.in:412 msgid "Smileys (Japanese)" msgstr "" #: ../data/str.xml.in:413 msgid "Smoking" msgstr "" #: ../data/str.xml.in:414 msgid "Sorry" msgstr "" #: ../data/str.xml.in:415 msgid "Hug" msgstr "" #. http://ja.wikipedia.org/wiki/%E9%A1%94%E6%96%87%E5%AD%97 #: ../data/str.xml.in:417 msgid "Smileys (Japanese 2ch)" msgstr "" #: ../data/str.xml.in:418 msgid "Hey" msgstr "" #. http://ja.wikipedia.org/wiki/%E9%A1%94%E6%96%87%E5%AD%97 #: ../data/str.xml.in:420 msgid "Smileys (Chinese)" msgstr "" #: ../data/str.xml.in:421 msgid "Crow" msgstr "" #. http://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88%E3%82%B9%E3%83%A9%E3%83%B3%E3%82%B0 #: ../data/str.xml.in:423 msgid "Acronym" msgstr "" #: ../data/str.xml.in:424 msgid "Acronym (Computer)" msgstr "" #. http://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88%E3%82%B9%E3%83%A9%E3%83%B3%E3%82%B0 #: ../data/str.xml.in:426 msgid "Acronym (Japanese)" msgstr "" #: ../data/str.xml.in:427 msgid "Do not want to read between lines (Aete Kuuki Wo Yomanai)" msgstr "" #: ../data/str.xml.in:428 msgid "Can't get together (Guda Guda)" msgstr "" #: ../data/str.xml.in:429 msgid "Say whatever one feels (Iitaidake)" msgstr "" #: ../data/str.xml.in:430 msgid "Excited (Kitakore)" msgstr "" #: ../data/str.xml.in:431 msgid "Detail (Kuwashiku)" msgstr "" #: ../data/str.xml.in:432 msgid "Cannot read between lines (Kuuki Ga Yomenai)" msgstr "" #: ../data/str.xml.in:433 msgid "Omission (Shouryaku)" msgstr "" #: ../data/str.xml.in:434 msgid "Excited (Waku Waku Teka Teka)" msgstr "" #: ../data/str.xml.in:435 msgid "Laugh" msgstr "" #: ../data/str.xml.in:436 msgid "Dude (Oi!)" msgstr "" #: ../data/str.xml.in:437 msgid "Good job (Otsukare)" msgstr "" #: ../data/str.xml.in:438 msgid "Want (Kure, E.g. pics クレメンス)" msgstr "" #: ../data/str.xml.in:439 msgid "ASCII art of a hand (✊, E.g. つAttention)" msgstr "" #: ../data/str.xml.in:440 msgid "In The Meantime (Toriaezu, Maa)" msgstr "" #: ../data/str.xml.in:441 msgid "Self-confidence (Aniki, E.g. tennis ニキ)" msgstr "" #: ../data/str.xml.in:442 msgid "Bye" msgstr "" #: ../data/str.xml.in:443 msgid "Want (Hattekure, E.g. pics ハラデイ)" msgstr "" #: ../data/str.xml.in:444 msgid "Exist as microparticles (Biryushi Level De Sonzaisuru)" msgstr "" #: ../data/str.xml.in:445 msgid "False Start (Flying Get)" msgstr "" #: ../data/str.xml.in:446 msgid "Fulfilling Life (Real life is Zyujitsu)" msgstr "" #: ../data/str.xml.in:447 msgid "Laugh (Warau)" msgstr "" #: ../data/str.xml.in:448 msgid "He (Yatsu <- Yashi)" msgstr "" #: ../data/w3c.xml.in:1 msgid "Char References" msgstr "" #: ../data/zh.xml.in:1 msgid "Chinese" msgstr "" #: ../data/zh.xml.in:4 ../input-pad/unicode_block.h:138 msgid "Bopomofo" msgstr "" #: ../input-pad/app-menu.ui.h:1 msgid "_File" msgstr "" #: ../input-pad/app-menu.ui.h:2 ../input-pad/dialog.ui.h:21 msgid "_Close" msgstr "" #: ../input-pad/app-menu.ui.h:3 msgid "Close the program" msgstr "" #: ../input-pad/app-menu.ui.h:4 msgid "_Pad" msgstr "" #: ../input-pad/app-menu.ui.h:5 msgid "_Code Point" msgstr "" #: ../input-pad/app-menu.ui.h:6 msgid "_Show Pad" msgstr "" #: ../input-pad/app-menu.ui.h:7 msgid "Show _All Characters" msgstr "" #: ../input-pad/app-menu.ui.h:8 msgid "Show _Custom Characters" msgstr "" #: ../input-pad/app-menu.ui.h:9 msgid "Show _Nothing" msgstr "" #: ../input-pad/app-menu.ui.h:10 msgid "Show _Keyboard Layout" msgstr "" #: ../input-pad/app-menu.ui.h:11 msgid "_Help" msgstr "" #: ../input-pad/app-menu.ui.h:12 msgid "_Troubleshoot" msgstr "" #: ../input-pad/app-menu.ui.h:13 msgid "_About" msgstr "" #: ../input-pad/dialog.ui.h:1 msgid "Code Point Dialog" msgstr "" #: ../input-pad/dialog.ui.h:2 msgid "Unicode" msgstr "" #: ../input-pad/dialog.ui.h:3 msgid "You can choose encoding type" msgstr "" #: ../input-pad/dialog.ui.h:4 msgid "Current Encoding" msgstr "" #: ../input-pad/dialog.ui.h:5 msgid "Copy Buffer" msgstr "" #: ../input-pad/dialog.ui.h:6 msgid "" "Base 16\n" "Hex" msgstr "" #: ../input-pad/dialog.ui.h:8 msgid "Set number case to hexadecimal" msgstr "" #: ../input-pad/dialog.ui.h:9 msgid "" "Base 10\n" "Dec" msgstr "" #: ../input-pad/dialog.ui.h:11 msgid "Set number case to decimal" msgstr "" #: ../input-pad/dialog.ui.h:12 msgid "" "Base 8\n" "Oct" msgstr "" #: ../input-pad/dialog.ui.h:14 msgid "Set number case to octal" msgstr "" #: ../input-pad/dialog.ui.h:15 msgid "" "Base 2\n" "Bin" msgstr "" #: ../input-pad/dialog.ui.h:17 msgid "Set number case to binary" msgstr "" #: ../input-pad/dialog.ui.h:18 msgid "Code Point:" msgstr "" #: ../input-pad/dialog.ui.h:19 msgid "Character:" msgstr "" #: ../input-pad/dialog.ui.h:20 msgid "_Send" msgstr "" #: ../input-pad/dialog.ui.h:22 msgid "Input Pad Troubleshoot" msgstr "" #: ../input-pad/dialog.ui.h:24 #, no-c-format msgid "" "\n" "This application can be run either as a stand-alone program or under an " "input method application.\n" "If you wish to send multi-byte characters, this application needs to be run " "under an input method application.\n" "If you wish to send characters to X11 applications, those applications needs " "to allow send events. e.g.\n" "% xterm -xrm \"XTerm*allowSendEvents: true\"\n" "\n" "You also can copy pad files from /usr/share/input-pad/pad to $HOME/.config/" "pad to customize those in \"Custom Character\" pane." msgstr "" #: ../input-pad/dialog.ui.h:31 msgid "_OK" msgstr "" #: ../input-pad/dialog.ui.h:32 msgid "Configure Keyboard Layouts" msgstr "" #: ../input-pad/dialog.ui.h:33 msgid "A_vailable layouts:" msgstr "" #: ../input-pad/dialog.ui.h:34 msgid "_Add" msgstr "" #: ../input-pad/dialog.ui.h:35 msgid "_Layouts shown in the list:" msgstr "" #: ../input-pad/dialog.ui.h:36 msgid "_Remove" msgstr "" #: ../input-pad/dialog.ui.h:37 msgid "_Options" msgstr "" #: ../input-pad/dialog.ui.h:38 msgid "Configure Keyboard Options" msgstr "" #: ../input-pad/dialog.ui.h:39 msgid "_Use the default keyboard option" msgstr "" #: ../input-pad/dialog.ui.h:40 msgid "Use the defualt XKB option" msgstr "" #: ../input-pad/dialog.ui.h:41 msgid "Keyboard Option" msgstr "" #: ../input-pad/dialog.ui.h:43 msgid "The input pad is a tool to send a character on button." msgstr "" #: ../input-pad/dialog.ui.h:44 msgid "translator_credits" msgstr "" #: ../input-pad/eek-gtk.c:65 msgid "Use libeek to draw keyboard" msgstr "" #: ../input-pad/eek-gtk.c:237 msgid "eekboard layout" msgstr "" #: ../input-pad/eek-gtk.c:249 msgid "eekboard Options" msgstr "" #: ../input-pad/eek-gtk.c:249 msgid "Show eekboard Options" msgstr "" #: ../input-pad/unicode_block.h:37 msgid "Basic Latin" msgstr "" #: ../input-pad/unicode_block.h:40 msgid "Latin Extended-B" msgstr "" #: ../input-pad/unicode_block.h:41 msgid "IPA Extensions" msgstr "" #: ../input-pad/unicode_block.h:42 msgid "Spacing Modifier Letters" msgstr "" #: ../input-pad/unicode_block.h:43 msgid "Combining Diacritical Marks" msgstr "" #: ../input-pad/unicode_block.h:44 msgid "Greek and Coptic" msgstr "" #: ../input-pad/unicode_block.h:45 msgid "Cyrillic" msgstr "" #: ../input-pad/unicode_block.h:46 msgid "Cyrillic Supplement" msgstr "" #: ../input-pad/unicode_block.h:47 msgid "Armenian" msgstr "" #: ../input-pad/unicode_block.h:48 msgid "Hebrew" msgstr "" #: ../input-pad/unicode_block.h:49 msgid "Arabic" msgstr "" #: ../input-pad/unicode_block.h:50 msgid "Syriac" msgstr "" #: ../input-pad/unicode_block.h:51 msgid "Arabic Supplement" msgstr "" #: ../input-pad/unicode_block.h:52 msgid "Thaana" msgstr "" #: ../input-pad/unicode_block.h:53 msgid "NKo" msgstr "" #: ../input-pad/unicode_block.h:54 msgid "Samaritan" msgstr "" #: ../input-pad/unicode_block.h:55 msgid "Devanagari" msgstr "" #: ../input-pad/unicode_block.h:56 msgid "Bengali" msgstr "" #: ../input-pad/unicode_block.h:57 msgid "Gurmukhi" msgstr "" #: ../input-pad/unicode_block.h:58 msgid "Gujarati" msgstr "" #: ../input-pad/unicode_block.h:59 msgid "Oriya" msgstr "" #: ../input-pad/unicode_block.h:60 msgid "Tamil" msgstr "" #: ../input-pad/unicode_block.h:61 msgid "Telugu" msgstr "" #: ../input-pad/unicode_block.h:62 msgid "Kannada" msgstr "" #: ../input-pad/unicode_block.h:63 msgid "Malayalam" msgstr "" #: ../input-pad/unicode_block.h:64 msgid "Sinhala" msgstr "" #: ../input-pad/unicode_block.h:65 msgid "Thai" msgstr "" #: ../input-pad/unicode_block.h:66 msgid "Lao" msgstr "" #: ../input-pad/unicode_block.h:67 msgid "Tibetan" msgstr "" #: ../input-pad/unicode_block.h:68 msgid "Myanmar" msgstr "" #: ../input-pad/unicode_block.h:69 msgid "Georgian" msgstr "" #: ../input-pad/unicode_block.h:70 msgid "Hangul Jamo" msgstr "" #: ../input-pad/unicode_block.h:71 msgid "Ethiopic" msgstr "" #: ../input-pad/unicode_block.h:72 msgid "Ethiopic Supplement" msgstr "" #: ../input-pad/unicode_block.h:73 msgid "Cherokee" msgstr "" #: ../input-pad/unicode_block.h:74 msgid "Unified Canadian Aboriginal Syllabics" msgstr "" #: ../input-pad/unicode_block.h:75 msgid "Ogham" msgstr "" #: ../input-pad/unicode_block.h:76 msgid "Runic" msgstr "" #: ../input-pad/unicode_block.h:77 msgid "Tagalog" msgstr "" #: ../input-pad/unicode_block.h:78 msgid "Hanunoo" msgstr "" #: ../input-pad/unicode_block.h:79 msgid "Buhid" msgstr "" #: ../input-pad/unicode_block.h:80 msgid "Tagbanwa" msgstr "" #: ../input-pad/unicode_block.h:81 msgid "Khmer" msgstr "" #: ../input-pad/unicode_block.h:82 msgid "Mongolian" msgstr "" #: ../input-pad/unicode_block.h:83 msgid "Unified Canadian Aboriginal Syllabics Extended" msgstr "" #: ../input-pad/unicode_block.h:84 msgid "Limbu" msgstr "" #: ../input-pad/unicode_block.h:85 msgid "Tai Le" msgstr "" #: ../input-pad/unicode_block.h:86 msgid "New Tai Lue" msgstr "" #: ../input-pad/unicode_block.h:87 msgid "Khmer Symbols" msgstr "" #: ../input-pad/unicode_block.h:88 msgid "Buginese" msgstr "" #: ../input-pad/unicode_block.h:89 msgid "Tai Tham" msgstr "" #: ../input-pad/unicode_block.h:90 msgid "Balinese" msgstr "" #: ../input-pad/unicode_block.h:91 msgid "Sundanese" msgstr "" #: ../input-pad/unicode_block.h:92 msgid "Lepcha" msgstr "" #: ../input-pad/unicode_block.h:93 msgid "Ol Chiki" msgstr "" #: ../input-pad/unicode_block.h:94 msgid "Vedic Extensions" msgstr "" #: ../input-pad/unicode_block.h:95 msgid "Phonetic Extensions" msgstr "" #: ../input-pad/unicode_block.h:96 msgid "Phonetic Extensions Supplement" msgstr "" #: ../input-pad/unicode_block.h:97 msgid "Combining Diacritical Marks Supplement" msgstr "" #: ../input-pad/unicode_block.h:98 msgid "Latin Extended Additional" msgstr "" #: ../input-pad/unicode_block.h:99 msgid "Greek Extended" msgstr "" #: ../input-pad/unicode_block.h:100 msgid "General Punctuation" msgstr "" #: ../input-pad/unicode_block.h:101 msgid "Superscripts and Subscripts" msgstr "" #: ../input-pad/unicode_block.h:102 msgid "Currency Symbols" msgstr "" #: ../input-pad/unicode_block.h:103 msgid "Combining Diacritical Marks for Symbols" msgstr "" #: ../input-pad/unicode_block.h:104 msgid "Letterlike Symbols" msgstr "" #: ../input-pad/unicode_block.h:105 msgid "Number Forms" msgstr "" #: ../input-pad/unicode_block.h:106 msgid "Arrows" msgstr "" #: ../input-pad/unicode_block.h:107 msgid "Mathematical Operators" msgstr "" #: ../input-pad/unicode_block.h:108 msgid "Miscellaneous Technical" msgstr "" #: ../input-pad/unicode_block.h:109 msgid "Control Pictures" msgstr "" #: ../input-pad/unicode_block.h:110 msgid "Optical Character Recognition" msgstr "" #: ../input-pad/unicode_block.h:111 msgid "Enclosed Alphanumerics" msgstr "" #: ../input-pad/unicode_block.h:113 msgid "Block Elements" msgstr "" #: ../input-pad/unicode_block.h:114 msgid "Geometric Shapes" msgstr "" #: ../input-pad/unicode_block.h:115 msgid "Miscellaneous Symbols" msgstr "" #: ../input-pad/unicode_block.h:117 msgid "Miscellaneous Mathematical Symbols-A" msgstr "" #: ../input-pad/unicode_block.h:118 msgid "Supplemental Arrows-A" msgstr "" #: ../input-pad/unicode_block.h:119 msgid "Braille Patterns" msgstr "" #: ../input-pad/unicode_block.h:120 msgid "Supplemental Arrows-B" msgstr "" #: ../input-pad/unicode_block.h:121 msgid "Miscellaneous Mathematical Symbols-B" msgstr "" #: ../input-pad/unicode_block.h:122 msgid "Supplemental Mathematical Operators" msgstr "" #: ../input-pad/unicode_block.h:123 msgid "Miscellaneous Symbols and Arrows" msgstr "" #: ../input-pad/unicode_block.h:124 msgid "Glagolitic" msgstr "" #: ../input-pad/unicode_block.h:125 msgid "Latin Extended-C" msgstr "" #: ../input-pad/unicode_block.h:126 msgid "Coptic" msgstr "" #: ../input-pad/unicode_block.h:127 msgid "Georgian Supplement" msgstr "" #: ../input-pad/unicode_block.h:128 msgid "Tifinagh" msgstr "" #: ../input-pad/unicode_block.h:129 msgid "Ethiopic Extended" msgstr "" #: ../input-pad/unicode_block.h:130 msgid "Cyrillic Extended-A" msgstr "" #: ../input-pad/unicode_block.h:131 msgid "Supplemental Punctuation" msgstr "" #: ../input-pad/unicode_block.h:133 msgid "Kangxi Radicals" msgstr "" #: ../input-pad/unicode_block.h:134 msgid "Ideographic Description Characters" msgstr "" #: ../input-pad/unicode_block.h:135 msgid "CJK Symbols and Punctuation" msgstr "" #: ../input-pad/unicode_block.h:139 msgid "Hangul Compatibility Jamo" msgstr "" #: ../input-pad/unicode_block.h:140 msgid "Kanbun" msgstr "" #: ../input-pad/unicode_block.h:141 msgid "Bopomofo Extended" msgstr "" #: ../input-pad/unicode_block.h:142 msgid "CJK Strokes" msgstr "" #: ../input-pad/unicode_block.h:143 msgid "Katakana Phonetic Extensions" msgstr "" #: ../input-pad/unicode_block.h:144 msgid "Enclosed CJK Letters and Months" msgstr "" #: ../input-pad/unicode_block.h:146 msgid "CJK Unified Ideographs Extension A" msgstr "" #: ../input-pad/unicode_block.h:147 msgid "Yijing Hexagram Symbols" msgstr "" #: ../input-pad/unicode_block.h:148 msgid "CJK Unified Ideographs" msgstr "" #: ../input-pad/unicode_block.h:149 msgid "Yi Syllables" msgstr "" #: ../input-pad/unicode_block.h:150 msgid "Yi Radicals" msgstr "" #: ../input-pad/unicode_block.h:151 msgid "Lisu" msgstr "" #: ../input-pad/unicode_block.h:152 msgid "Vai" msgstr "" #: ../input-pad/unicode_block.h:153 msgid "Cyrillic Extended-B" msgstr "" #: ../input-pad/unicode_block.h:154 msgid "Bamum" msgstr "" #: ../input-pad/unicode_block.h:155 msgid "Modifier Tone Letters" msgstr "" #: ../input-pad/unicode_block.h:156 msgid "Latin Extended-D" msgstr "" #: ../input-pad/unicode_block.h:157 msgid "Syloti Nagri" msgstr "" #: ../input-pad/unicode_block.h:158 msgid "Common Indic Number Forms" msgstr "" #: ../input-pad/unicode_block.h:159 msgid "Phags-pa" msgstr "" #: ../input-pad/unicode_block.h:160 msgid "Saurashtra" msgstr "" #: ../input-pad/unicode_block.h:161 msgid "Devanagari Extended" msgstr "" #: ../input-pad/unicode_block.h:162 msgid "Kayah Li" msgstr "" #: ../input-pad/unicode_block.h:163 msgid "Rejang" msgstr "" #: ../input-pad/unicode_block.h:164 msgid "Hangul Jamo Extended-A" msgstr "" #: ../input-pad/unicode_block.h:165 msgid "Javanese" msgstr "" #: ../input-pad/unicode_block.h:166 msgid "Cham" msgstr "" #: ../input-pad/unicode_block.h:167 msgid "Myanmar Extended-A" msgstr "" #: ../input-pad/unicode_block.h:168 msgid "Tai Viet" msgstr "" #: ../input-pad/unicode_block.h:169 msgid "Meetei Mayek" msgstr "" #: ../input-pad/unicode_block.h:170 msgid "Hangul Syllables" msgstr "" #: ../input-pad/unicode_block.h:171 msgid "Hangul Jamo Extended-B" msgstr "" #: ../input-pad/unicode_block.h:172 msgid "High Surrogates" msgstr "" #: ../input-pad/unicode_block.h:173 msgid "High Private Use Surrogates" msgstr "" #: ../input-pad/unicode_block.h:174 msgid "Low Surrogates" msgstr "" #: ../input-pad/unicode_block.h:175 msgid "Private Use Area" msgstr "" #: ../input-pad/unicode_block.h:176 msgid "CJK Compatibility Ideographs" msgstr "" #: ../input-pad/unicode_block.h:177 msgid "Alphabetic Presentation Forms" msgstr "" #: ../input-pad/unicode_block.h:178 msgid "Arabic Presentation Forms-A" msgstr "" #: ../input-pad/unicode_block.h:179 msgid "Variation Selectors" msgstr "" #: ../input-pad/unicode_block.h:180 msgid "Vertical Forms" msgstr "" #: ../input-pad/unicode_block.h:181 msgid "Combining Half Marks" msgstr "" #: ../input-pad/unicode_block.h:182 msgid "CJK Compatibility Forms" msgstr "" #: ../input-pad/unicode_block.h:183 msgid "Small Form Variants" msgstr "" #: ../input-pad/unicode_block.h:184 msgid "Arabic Presentation Forms-B" msgstr "" #: ../input-pad/unicode_block.h:185 msgid "Halfwidth and Fullwidth Forms" msgstr "" #: ../input-pad/unicode_block.h:186 msgid "Specials" msgstr "" #: ../input-pad/unicode_block.h:187 msgid "Linear B Syllabary" msgstr "" #: ../input-pad/unicode_block.h:188 msgid "Linear B Ideograms" msgstr "" #: ../input-pad/unicode_block.h:189 msgid "Aegean Numbers" msgstr "" #: ../input-pad/unicode_block.h:190 msgid "Ancient Greek Numbers" msgstr "" #: ../input-pad/unicode_block.h:191 msgid "Ancient Symbols" msgstr "" #: ../input-pad/unicode_block.h:192 msgid "Phaistos Disc" msgstr "" #: ../input-pad/unicode_block.h:193 msgid "Lycian" msgstr "" #: ../input-pad/unicode_block.h:194 msgid "Carian" msgstr "" #: ../input-pad/unicode_block.h:195 msgid "Old Italic" msgstr "" #: ../input-pad/unicode_block.h:197 msgid "Ugaritic" msgstr "" #: ../input-pad/unicode_block.h:198 msgid "Old Persian" msgstr "" #: ../input-pad/unicode_block.h:199 msgid "Deseret" msgstr "" #: ../input-pad/unicode_block.h:201 msgid "Osmanya" msgstr "" #: ../input-pad/unicode_block.h:202 msgid "Cypriot Syllabary" msgstr "" #: ../input-pad/unicode_block.h:203 msgid "Imperial Aramaic" msgstr "" #: ../input-pad/unicode_block.h:204 msgid "Phoenician" msgstr "" #: ../input-pad/unicode_block.h:205 msgid "Lydian" msgstr "" #: ../input-pad/unicode_block.h:206 msgid "Kharoshthi" msgstr "" #: ../input-pad/unicode_block.h:207 msgid "Old South Arabian" msgstr "" #: ../input-pad/unicode_block.h:208 msgid "Avestan" msgstr "" #: ../input-pad/unicode_block.h:209 msgid "Inscriptional Parthian" msgstr "" #: ../input-pad/unicode_block.h:210 msgid "Inscriptional Pahlavi" msgstr "" #: ../input-pad/unicode_block.h:211 msgid "Old Turkic" msgstr "" #: ../input-pad/unicode_block.h:212 msgid "Rumi Numeral Symbols" msgstr "" #: ../input-pad/unicode_block.h:213 msgid "Kaithi" msgstr "" #: ../input-pad/unicode_block.h:214 msgid "Cuneiform" msgstr "" #: ../input-pad/unicode_block.h:215 msgid "Cuneiform Numbers and Punctuation" msgstr "" #: ../input-pad/unicode_block.h:216 msgid "Egyptian Hieroglyphs" msgstr "" #: ../input-pad/unicode_block.h:217 msgid "Byzantine Musical Symbols" msgstr "" #: ../input-pad/unicode_block.h:218 msgid "Musical Symbols" msgstr "" #: ../input-pad/unicode_block.h:219 msgid "Ancient Greek Musical Notation" msgstr "" #: ../input-pad/unicode_block.h:220 msgid "Tai Xuan Jing Symbols" msgstr "" #: ../input-pad/unicode_block.h:221 msgid "Counting Rod Numerals" msgstr "" #: ../input-pad/unicode_block.h:222 msgid "Mathematical Alphanumeric Symbols" msgstr "" #: ../input-pad/unicode_block.h:223 msgid "Mahjong Tiles" msgstr "" #: ../input-pad/unicode_block.h:224 msgid "Domino Tiles" msgstr "" #: ../input-pad/unicode_block.h:225 msgid "Enclosed Alphanumeric Supplement" msgstr "" #: ../input-pad/unicode_block.h:226 msgid "Enclosed Ideographic Supplement" msgstr "" #: ../input-pad/unicode_block.h:227 msgid "CJK Unified Ideographs Extension B" msgstr "" #: ../input-pad/unicode_block.h:228 msgid "CJK Unified Ideographs Extension C" msgstr "" #: ../input-pad/unicode_block.h:229 msgid "CJK Compatibility Ideographs Supplement" msgstr "" #: ../input-pad/unicode_block.h:230 msgid "Tags" msgstr "" #: ../input-pad/unicode_block.h:231 msgid "Variation Selectors Supplement" msgstr "" #: ../input-pad/unicode_block.h:232 msgid "Supplementary Private Use Area-A" msgstr "" #: ../input-pad/unicode_block.h:233 msgid "Supplementary Private Use Area-B" msgstr "" #: ../input-pad/window-gtk.c:247 msgid "Display version" msgstr "" #. Translators: the word 'KBDUI' is not translated. #: ../input-pad/window-gtk.c:250 msgid "Use KBDUI to draw keyboard" msgstr "" #. Translators: the word 'TYPE' is not translated. #: ../input-pad/window-gtk.c:253 msgid "Use TYPE of char table. The available TYPE=0, 1, 2" msgstr "" #. Translators: the word 'TYPE' is not translated. #: ../input-pad/window-gtk.c:256 msgid "Use TYPE of keyboard layout. The available TYPE=0, 1" msgstr "" #: ../input-pad/window-gtk.c:263 msgid "Use XTEST module to send key events" msgstr "" #: ../input-pad/window-gtk.c:268 msgid "Use XSendEvent to send key events" msgstr "" #: ../input-pad/window-gtk.c:1216 msgid "Fold layout" msgstr "" #: ../input-pad/window-gtk.c:1221 ../input-pad/window-gtk.c:2619 msgid "Extend layout" msgstr "" #: ../input-pad/window-gtk.c:2833 msgid "Layout" msgstr "" #: ../input-pad/window-gtk.c:3104 msgid "_Layout:" msgstr "" #: ../input-pad/window-gtk.c:3134 msgid "_Configure Layouts" msgstr "" #. No longer used in gtk 2.20 #. gchar *license1, *license2, *license3; #. license1 = _("" #. "This library is free software; you can redistribute it and/or " #. "modify it under the terms of the GNU Lesser General Public " #. "License as published by the Free Software Foundation; either " #. "version 2 of the License, or (at your option) any later version."); #. #. license2 = _("" #. "This library is distributed in the hope that it will be useful, " #. "but WITHOUT ANY WARRANTY; without even the implied warranty of " #. "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU " #. "Lesser General Public License for more details."); #. #. license3 = _("" #. "You should have received a copy of the GNU Lesser General Public " #. "License along with this library; if not, write to the Free Software " #. "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, " #. "MA 02110-1301 USA"); #. #. license = g_strdup_printf ("%s\n\n%s\n\n%s", #. license1, license2, license3); #. #. This format has been used since gtk 2.20. #: ../input-pad/window-gtk.c:3173 #, c-format msgid "This program comes with ABSOLUTELY NO WARRANTY; for details, visit %s" msgstr "" #: ../input-pad/window-gtk.c:3455 msgid "Group" msgstr "" #: ../input-pad/window-gtk.c:3463 msgid "Subgroup" msgstr "" input-pad-1.1.0/po/ja.po000066400000000000000000002357771476727667600150430ustar00rootroot00000000000000# Japanese translations for input-pad # Copyright (C) 2010-2016 Takao Fujiwara # This file is distributed under the same license as the input-pad package. # # Translators: # Takao Fujiwara , 2010-2016. msgid "" msgstr "" "Project-Id-Version: input-pad HEAD\n" "Report-Msgid-Bugs-To: http://code.google.com/p/input-pad/issues/list\n" "POT-Creation-Date: 2016-03-02 18:45+0900\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2014-09-15 09:26-0400\n" "Last-Translator: fujiwara \n" "Language-Team: Japanese \n" "Language: ja\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Zanata 3.8.2\n" #: ../data/alphabet.xml.in.in.h:1 msgid "Alphabets" msgstr "アルファベット" #: ../data/base.xml.in.h:1 msgid "Symbols" msgstr "記号" #: ../data/base.xml.in.h:2 msgid "Currency" msgstr "通貨" #: ../data/base.xml.in.h:3 msgid "Letterlike" msgstr "字様記号" #: ../data/base.xml.in.h:4 msgid "Miscellaneous" msgstr "その他" #: ../data/base.xml.in.h:5 ../input-pad/unicode_block.h:116 msgid "Dingbats" msgstr "装飾記号" #. Translators: Superscripts and Subscripts #: ../data/base.xml.in.h:7 msgid "Super and Sub" msgstr "上付き・下付き" #: ../data/base.xml.in.h:8 msgid "Bold" msgstr "ボールド" #: ../data/base.xml.in.h:9 msgid "Italic" msgstr "イタリック" #: ../data/base.xml.in.h:10 msgid "Script" msgstr "手書き" #: ../data/base.xml.in.h:11 msgid "Double Struck" msgstr "黒板文字" #: ../data/base.xml.in.h:12 msgid "All" msgstr "すべて" #: ../data/base.xml.in.h:13 ../data/zh.xml.in.h:2 msgid "Numbers" msgstr "数字" #: ../data/base.xml.in.h:14 msgid "Roman" msgstr "ローマ数字" #: ../data/base.xml.in.h:15 msgid "Enclosed" msgstr "囲み文字" #: ../data/base.xml.in.h:16 msgid "Fraction" msgstr "分数" #: ../data/base.xml.in.h:17 msgid "Technical" msgstr "技術用記号" #: ../data/base.xml.in.h:18 msgid "Unit" msgstr "単位" #: ../data/base.xml.in.h:19 msgid "Mathematical" msgstr "数学演算子" #: ../data/base.xml.in.h:20 msgid "Controls" msgstr "制御記号" #: ../data/base.xml.in.h:21 msgid "OCR" msgstr "OCR" #: ../data/base.xml.in.h:22 msgid "Graphics" msgstr "図形" #: ../data/base.xml.in.h:23 msgid "Arrow" msgstr "矢印" #: ../data/base.xml.in.h:24 ../input-pad/unicode_block.h:112 msgid "Box Drawing" msgstr "罫線素片" #: ../data/base.xml.in.h:25 ../input-pad/window-gtk.c:3685 msgid "Block" msgstr "ブロック" #: ../data/base.xml.in.h:26 msgid "Geometric" msgstr "幾何学模様" #: ../data/base.xml.in.h:27 msgid "Braille" msgstr "点字" #: ../data/base.xml.in.h:28 msgid "Punctuations" msgstr "句読点" #: ../data/base.xml.in.h:29 msgid "General" msgstr "一般" #: ../data/base.xml.in.h:30 msgid "CJK" msgstr "CJK" #: ../data/base.xml.in.h:31 ../input-pad/unicode_block.h:145 msgid "CJK Compatibility" msgstr "CJK 互換文字" #: ../data/base.xml.in.h:32 msgid "Small Form" msgstr "小字形" #: ../data/cmd.xml.in.h:1 msgid "Command" msgstr "コマンド" #: ../data/cmd.xml.in.h:2 msgid "Date" msgstr "日付" #: ../data/cmd.xml.in.h:3 msgid "Normal Date" msgstr "通常の日付" #: ../data/cmd.xml.in.h:4 msgid "Date and Time" msgstr "日付と時間" #: ../data/cmd.xml.in.h:5 msgid "ChangeLog date" msgstr "ChangeLog 日付" #: ../data/cmd.xml.in.h:6 msgid "USA English date" msgstr "USA 英語の日付" #: ../data/cmd.xml.in.h:7 msgid "UK English date" msgstr "UK 英語の日付" #: ../data/cmd.xml.in.h:8 msgid "ISO 8601 date" msgstr "ISO 8601 日付" #: ../data/cmd.xml.in.h:9 msgid "Era" msgstr "和暦" #: ../data/cmd.xml.in.h:10 msgid "Century Year" msgstr "西暦" #: ../data/cmd.xml.in.h:11 msgid "Normal Time" msgstr "通常の時間" #: ../data/cmd.xml.in.h:12 msgid "English Time" msgstr "英語の時間" #: ../data/cmd.xml.in.h:13 msgid "Month" msgstr "月" #: ../data/cmd.xml.in.h:14 msgid "English Month" msgstr "英語の月" #: ../data/cmd.xml.in.h:15 msgid "Short Month" msgstr "短い月" #: ../data/cmd.xml.in.h:16 msgid "English Short Month" msgstr "英語の短い月" #: ../data/cmd.xml.in.h:17 msgid "Weekday" msgstr "曜日" #: ../data/cmd.xml.in.h:18 msgid "English Weekday" msgstr "英語の曜日" #: ../data/cmd.xml.in.h:19 msgid "Short Weekday" msgstr "短い曜日" #: ../data/cmd.xml.in.h:20 msgid "English Short Weekday" msgstr "英語の短い曜日" #: ../data/goth.xml.in.h:1 ../input-pad/unicode_block.h:196 msgid "Gothic" msgstr "ゴート文字" #: ../data/input-pad.desktop.in.h:1 ../input-pad/dialog.ui.h:42 #: ../input-pad/window-gtk.c:5084 ../input-pad/window-gtk.c:5085 #: ../input-pad/window-gtk.ui.h:1 msgid "Input Pad" msgstr "インプットパッド" #. "IPA" stands for "International Phonetic Alphabet" #: ../data/ipa-obsolete.xml.in.h:2 msgid "IPA (Obsolete)" msgstr "" #: ../data/ipa-obsolete.xml.in.h:3 ../data/ipa.xml.in.h:6 msgid "Open back unrounded vowel" msgstr "" #: ../data/ipa-obsolete.xml.in.h:4 msgid "Palatalized voiced bilabial plosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:5 msgid "Voiceless palatal implosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:6 ../data/ipa.xml.in.h:138 msgid "Alveolar click" msgstr "" #: ../data/ipa-obsolete.xml.in.h:7 msgid "Palatalized voiced alveolar plosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:8 ../data/ipa.xml.in.h:25 msgid "Voiced alveolar affricate" msgstr "" #: ../data/ipa-obsolete.xml.in.h:9 ../data/ipa.xml.in.h:27 msgid "Voiced alveopalatal affricate" msgstr "" #: ../data/ipa-obsolete.xml.in.h:10 ../data/ipa.xml.in.h:26 msgid "Voiced palato-alveolar affricate" msgstr "" #: ../data/ipa-obsolete.xml.in.h:11 msgid "Palatalized voiceless labiodental fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:12 msgid "Palatalized voiced velar plosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:13 msgid "Palatalized voiceless velar plosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:14 msgid "Voiceless velar implosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:15 msgid "Palatalized alveolar lateral approximant" msgstr "" #: ../data/ipa-obsolete.xml.in.h:16 msgid "Palatalized bilabial nasal" msgstr "" #: ../data/ipa-obsolete.xml.in.h:17 msgid "Palatalized alveolar nasal" msgstr "" #: ../data/ipa-obsolete.xml.in.h:18 msgid "Syllabic alveolar nasal" msgstr "" #: ../data/ipa-obsolete.xml.in.h:19 msgid "Palatalized voiceless bilabial plosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:20 msgid "Voiceless bilabial implosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:21 msgid "Palatalized alveolar trill" msgstr "" #: ../data/ipa-obsolete.xml.in.h:22 msgid "Voiced strident apico-alveolar trill" msgstr "" #: ../data/ipa-obsolete.xml.in.h:23 msgid "Palatalized voiceless alveolar fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:24 ../data/ipa.xml.in.h:19 msgid "Voiceless alveopalatal fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:25 msgid "Labialized voiceless palato-alveolar fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:26 ../data/ipa.xml.in.h:103 msgid "Voiceless alveopalatal affricate" msgstr "" #: ../data/ipa-obsolete.xml.in.h:27 ../data/ipa.xml.in.h:101 msgid "Voiceless alveolar affricate" msgstr "" #: ../data/ipa-obsolete.xml.in.h:28 ../data/ipa.xml.in.h:102 msgid "Voiceless palato-alveolar affricate" msgstr "" #: ../data/ipa-obsolete.xml.in.h:29 msgid "Palatalized voiceless alveolar plosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:30 msgid "Voiceless alveolar implosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:31 ../data/ipa.xml.in.h:137 msgid "Dental click" msgstr "" #: ../data/ipa-obsolete.xml.in.h:32 msgid "Voiceless uvular implosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:33 msgid "Palatalized voiced labiodental fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:34 msgid "Palatalized voiceless velar fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:35 msgid "Palatalized voiced alveolar fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:36 msgid "Labialized voiced palato-alveolar fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:37 ../data/ipa.xml.in.h:128 msgid "Voiced alveopalatal fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:38 ../data/ipa.xml.in.h:106 msgid "Near-close near-back vowel" msgstr "" #: ../data/ipa-obsolete.xml.in.h:39 ../data/ipa.xml.in.h:140 msgid "Alveolar lateral click" msgstr "" #: ../data/ipa-obsolete.xml.in.h:40 msgid "Labialized voiceless alveolar or dental fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:41 msgid "Labialized voiced alveolar or dental fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:42 msgid "Combining labialization mark" msgstr "" #: ../data/ipa-obsolete.xml.in.h:43 msgid "Combining palatalization mark" msgstr "" #. "IPA" stands for "International Phonetic Alphabet" #: ../data/ipa-unofficial.xml.in.h:2 msgid "IPA (Unofficial)" msgstr "" #: ../data/ipa-unofficial.xml.in.h:3 msgid "Voiced labiodental plosive" msgstr "" #: ../data/ipa-unofficial.xml.in.h:4 ../data/ipa.xml.in.h:18 msgid "Voiceless palatal lateral affricate" msgstr "" #: ../data/ipa-unofficial.xml.in.h:5 msgid "Voiced retroflex implosive" msgstr "" #: ../data/ipa-unofficial.xml.in.h:6 ../data/ipa.xml.in.h:88 msgid "Alveolar flap" msgstr "" #: ../data/ipa-unofficial.xml.in.h:7 ../data/ipa.xml.in.h:125 msgid "Voiceless palatal lateral fricative" msgstr "" #: ../data/ipa-unofficial.xml.in.h:8 ../data/ipa.xml.in.h:91 msgid "Retroflex flap" msgstr "" #: ../data/ipa-unofficial.xml.in.h:9 msgid "Voiceless retroflex lateral fricative" msgstr "" #. "PUA" stands for "Private Use Area" #: ../data/ipa-unofficial.xml.in.h:11 msgid "Voiceless retroflex lateral fricative (PUA)" msgstr "" #: ../data/ipa-unofficial.xml.in.h:12 ../data/ipa.xml.in.h:59 msgid "Voiceless velar lateral affricate" msgstr "" #: ../data/ipa-unofficial.xml.in.h:13 ../data/ipa.xml.in.h:68 msgid "Voiceless velar lateral fricative" msgstr "" #: ../data/ipa-unofficial.xml.in.h:14 msgid "Epiglottal trill" msgstr "" #: ../data/ipa-unofficial.xml.in.h:15 msgid "Voiceless labiodental plosive" msgstr "" #: ../data/ipa-unofficial.xml.in.h:16 msgid "Voiceless retroflex lateral affricate" msgstr "" #. "PUA" stands for "Private Use Area" #: ../data/ipa-unofficial.xml.in.h:18 msgid "Voiceless retroflex lateral affricate (PUA)" msgstr "" #: ../data/ipa-unofficial.xml.in.h:19 msgid "Combining stridency mark" msgstr "" #. "PUA" stands for "Private Use Area" #: ../data/ipa-unofficial.xml.in.h:21 msgid "Combining stridency mark (PUA)" msgstr "" #. "IPA" stands for "International Phonetic Alphabet" #: ../data/ipa.xml.in.h:2 msgid "IPA" msgstr "" #: ../data/ipa.xml.in.h:3 msgid "Open front unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:4 msgid "Open central unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:5 msgid "Near-open central vowel" msgstr "" #: ../data/ipa.xml.in.h:7 msgid "Open back rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:8 msgid "Open-mid back unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:9 msgid "Near-open front unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:10 msgid "Voiced bilabial plosive" msgstr "" #: ../data/ipa.xml.in.h:11 msgid "Voiced labiodental affricate" msgstr "" #: ../data/ipa.xml.in.h:12 msgid "Voiced bilabial implosive" msgstr "" #: ../data/ipa.xml.in.h:13 msgid "Bilabial trill" msgstr "" #: ../data/ipa.xml.in.h:14 msgid "Voiced bilabial fricative" msgstr "" #: ../data/ipa.xml.in.h:15 msgid "Voiceless palatal plosive" msgstr "" #: ../data/ipa.xml.in.h:16 msgid "Voiceless palatal fricative" msgstr "" #: ../data/ipa.xml.in.h:17 msgid "Voiceless palatal affricate" msgstr "" #: ../data/ipa.xml.in.h:20 msgid "Voiced alveolar plosive" msgstr "" #: ../data/ipa.xml.in.h:21 msgid "Voiced alveolar implosive" msgstr "" #: ../data/ipa.xml.in.h:22 msgid "Voiced retroflex plosive" msgstr "" #: ../data/ipa.xml.in.h:23 msgid "Voiced dental fricative" msgstr "" #: ../data/ipa.xml.in.h:24 msgid "Voiced alveolar lateral affricate" msgstr "" #: ../data/ipa.xml.in.h:28 msgid "Voiced retroflex affricate" msgstr "" #: ../data/ipa.xml.in.h:29 msgid "Close-mid front unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:30 msgid "Close-mid central unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:31 msgid "Mid-central vowel" msgstr "" #: ../data/ipa.xml.in.h:32 msgid "Rhotacized mid-central vowel" msgstr "" #: ../data/ipa.xml.in.h:33 msgid "Open-mid front unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:34 msgid "Open-mid central rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:35 msgid "Open-mid central unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:36 msgid "Rhotacized open-mid central unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:37 msgid "Voiceless labiodental fricative" msgstr "" #: ../data/ipa.xml.in.h:38 msgid "Velopharyngeal fricative" msgstr "" #: ../data/ipa.xml.in.h:39 msgid "Voiced velar plosive" msgstr "" #: ../data/ipa.xml.in.h:40 msgid "Voiced labial-velar plosive" msgstr "" #: ../data/ipa.xml.in.h:41 msgid "Voiced velar implosive" msgstr "" #: ../data/ipa.xml.in.h:42 msgid "Voiced uvular plosive" msgstr "" #: ../data/ipa.xml.in.h:43 msgid "Voiced uvular implosive" msgstr "" #: ../data/ipa.xml.in.h:44 msgid "Voiceless glottal fricative" msgstr "" #: ../data/ipa.xml.in.h:45 msgid "Voiced glottal fricative" msgstr "" #: ../data/ipa.xml.in.h:46 msgid "Voiceless pharyngeal fricative" msgstr "" #: ../data/ipa.xml.in.h:47 msgid "Voiceless coarticulated velar and palato-alveolar fricative" msgstr "" #: ../data/ipa.xml.in.h:48 msgid "Voiceless epiglottal fricative" msgstr "" #: ../data/ipa.xml.in.h:49 msgid "Close front unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:50 msgid "Near-close near-front unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:51 msgid "Near-close central unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:52 msgid "Close central unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:53 msgid "Palatal approximant" msgstr "" #: ../data/ipa.xml.in.h:54 msgid "Voiced palatal fricative" msgstr "" #: ../data/ipa.xml.in.h:55 msgid "Voiced palatal plosive" msgstr "" #: ../data/ipa.xml.in.h:56 msgid "Voiced palatal affricate" msgstr "" #: ../data/ipa.xml.in.h:57 msgid "Voiced palatal implosive" msgstr "" #: ../data/ipa.xml.in.h:58 msgid "Voiceless velar plosive" msgstr "" #: ../data/ipa.xml.in.h:60 msgid "Voiceless labial-velar plosive" msgstr "" #: ../data/ipa.xml.in.h:61 msgid "Voiceless velar affricate" msgstr "" #: ../data/ipa.xml.in.h:62 msgid "Alveolar lateral approximant" msgstr "" #: ../data/ipa.xml.in.h:63 msgid "Velarized alveolar lateral approximant" msgstr "" #: ../data/ipa.xml.in.h:64 msgid "Voiceless alveolar lateral fricative" msgstr "" #: ../data/ipa.xml.in.h:65 msgid "Retroflex lateral approximant" msgstr "" #: ../data/ipa.xml.in.h:66 msgid "Voiced alveolar lateral fricative" msgstr "" #: ../data/ipa.xml.in.h:67 msgid "Velar lateral approximant" msgstr "" #: ../data/ipa.xml.in.h:69 msgid "Bilabial nasal" msgstr "" #: ../data/ipa.xml.in.h:70 msgid "Labiodental nasal" msgstr "" #: ../data/ipa.xml.in.h:71 msgid "Alveolar nasal" msgstr "" #: ../data/ipa.xml.in.h:72 msgid "Velar nasal" msgstr "" #: ../data/ipa.xml.in.h:73 msgid "Labial-velar nasal" msgstr "" #: ../data/ipa.xml.in.h:74 msgid "Palatal nasal" msgstr "" #: ../data/ipa.xml.in.h:75 msgid "Retroflex nasal" msgstr "" #: ../data/ipa.xml.in.h:76 msgid "Uvular nasal" msgstr "" #: ../data/ipa.xml.in.h:77 msgid "Close-mid back rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:78 msgid "Close-mid front rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:79 msgid "Close-mid central rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:80 msgid "Open-mid front rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:81 msgid "Open front rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:82 msgid "Voiceless bilabial plosive" msgstr "" #: ../data/ipa.xml.in.h:83 msgid "Voiceless bilabial-labiodental affricate" msgstr "" #: ../data/ipa.xml.in.h:84 msgid "Voiceless bilabial affricate" msgstr "" #: ../data/ipa.xml.in.h:85 msgid "Voiceless labiodental affricate" msgstr "" #: ../data/ipa.xml.in.h:86 msgid "Voiceless uvular plosive" msgstr "" #: ../data/ipa.xml.in.h:87 msgid "Alveolar trill" msgstr "" #: ../data/ipa.xml.in.h:89 msgid "Alveolar lateral flap" msgstr "" #: ../data/ipa.xml.in.h:90 msgid "Uvular trill" msgstr "" #: ../data/ipa.xml.in.h:92 msgid "Alveolar approximant" msgstr "" #: ../data/ipa.xml.in.h:93 msgid "Retroflex approximant" msgstr "" #: ../data/ipa.xml.in.h:94 msgid "Voiced uvular fricative" msgstr "" #: ../data/ipa.xml.in.h:95 msgid "Voiceless alveolar fricative" msgstr "" #: ../data/ipa.xml.in.h:96 msgid "Voiceless palato-alveolar fricative" msgstr "" #: ../data/ipa.xml.in.h:97 msgid "Voiceless retroflex fricative" msgstr "" #: ../data/ipa.xml.in.h:98 msgid "Voiceless alveolar plosive" msgstr "" #: ../data/ipa.xml.in.h:99 msgid "Voiceless retroflex plosive" msgstr "" #: ../data/ipa.xml.in.h:100 msgid "Voiceless alveolar lateral affricate" msgstr "" #: ../data/ipa.xml.in.h:104 msgid "Voiceless retroflex affricate" msgstr "" #: ../data/ipa.xml.in.h:105 msgid "Close back rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:107 msgid "Near-close central vowel" msgstr "" #: ../data/ipa.xml.in.h:108 msgid "Close central rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:109 msgid "Labial-palatal approximant" msgstr "" #: ../data/ipa.xml.in.h:110 msgid "Close back unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:111 msgid "Voiced labiodental fricative" msgstr "" #: ../data/ipa.xml.in.h:112 msgid "Labiodental flap" msgstr "" #: ../data/ipa.xml.in.h:113 msgid "Labiodental approximant" msgstr "" #: ../data/ipa.xml.in.h:114 msgid "Voiced velar fricative" msgstr "" #: ../data/ipa.xml.in.h:115 msgid "Close-mid back unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:116 msgid "Voiced labiovelar approximant" msgstr "" #: ../data/ipa.xml.in.h:117 msgid "Voiceless labiovelar approximant" msgstr "" #: ../data/ipa.xml.in.h:118 msgid "Velar approximant" msgstr "" #: ../data/ipa.xml.in.h:119 msgid "Bilabial percussive" msgstr "" #: ../data/ipa.xml.in.h:120 msgid "Voiceless velar fricative" msgstr "" #: ../data/ipa.xml.in.h:121 msgid "Voiceless uvular fricative" msgstr "" #: ../data/ipa.xml.in.h:122 msgid "Close front rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:123 msgid "Near-close near-front rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:124 msgid "Palatal lateral approximant" msgstr "" #: ../data/ipa.xml.in.h:126 msgid "Voiced alveolar fricative" msgstr "" #: ../data/ipa.xml.in.h:127 msgid "Voiced palato-alveolar fricative" msgstr "" #: ../data/ipa.xml.in.h:129 msgid "Voiced retroflex fricative" msgstr "" #: ../data/ipa.xml.in.h:130 msgid "Voiceless dental fricative" msgstr "" #: ../data/ipa.xml.in.h:131 msgid "Voiceless bilabial fricative" msgstr "" #: ../data/ipa.xml.in.h:132 msgid "Glottal stop" msgstr "" #: ../data/ipa.xml.in.h:133 msgid "Epiglottal plosive" msgstr "" #: ../data/ipa.xml.in.h:134 msgid "Voiced pharyngeal fricative" msgstr "" #: ../data/ipa.xml.in.h:135 msgid "Voiced epiglottal fricative" msgstr "" #: ../data/ipa.xml.in.h:136 msgid "Bilabial click" msgstr "" #: ../data/ipa.xml.in.h:139 msgid "Palatal click" msgstr "" #: ../data/ipa.xml.in.h:141 msgid "Bidental percussive" msgstr "" #: ../data/ipa.xml.in.h:142 msgid "Aspiration mark" msgstr "" #: ../data/ipa.xml.in.h:143 msgid "Non-aspiration mark" msgstr "" #: ../data/ipa.xml.in.h:144 msgid "Breathy voice mark" msgstr "" #: ../data/ipa.xml.in.h:145 msgid "Palatalization mark" msgstr "" #: ../data/ipa.xml.in.h:146 msgid "Lateral release mark" msgstr "" #: ../data/ipa.xml.in.h:147 msgid "Bilabial nasal release mark" msgstr "" #: ../data/ipa.xml.in.h:148 msgid "Labiodental nasal release mark" msgstr "" #: ../data/ipa.xml.in.h:149 msgid "Alveolar nasal release mark" msgstr "" #: ../data/ipa.xml.in.h:150 msgid "Palatal nasal release mark" msgstr "" #: ../data/ipa.xml.in.h:151 msgid "Retroflex nasal release mark" msgstr "" #: ../data/ipa.xml.in.h:152 msgid "Uvular nasal release mark" msgstr "" #: ../data/ipa.xml.in.h:153 msgid "Labio-palatalization mark" msgstr "" #: ../data/ipa.xml.in.h:154 msgid "Labiodentalization mark" msgstr "" #: ../data/ipa.xml.in.h:155 msgid "Labialization mark" msgstr "" #: ../data/ipa.xml.in.h:156 msgid "Velarization mark" msgstr "" #: ../data/ipa.xml.in.h:157 msgid "Glottalization mark" msgstr "" #: ../data/ipa.xml.in.h:158 msgid "Pharyngealization mark" msgstr "" #: ../data/ipa.xml.in.h:159 msgid "Combining velarization/pharyngealization mark" msgstr "" #: ../data/ipa.xml.in.h:160 msgid "Combining laryngealization mark" msgstr "" #: ../data/ipa.xml.in.h:161 msgid "Combining retroflexion mark" msgstr "" #: ../data/ipa.xml.in.h:162 msgid "Ejection mark" msgstr "" #: ../data/ipa.xml.in.h:163 msgid "Rhotacization mark" msgstr "" #: ../data/ipa.xml.in.h:164 msgid "Combining dentalization mark" msgstr "" #: ../data/ipa.xml.in.h:165 msgid "Combining dentolabialization mark" msgstr "" #: ../data/ipa.xml.in.h:166 msgid "Combining alveolarization mark" msgstr "" #: ../data/ipa.xml.in.h:167 msgid "Combining linguolabialization mark" msgstr "" #: ../data/ipa.xml.in.h:168 msgid "Combining apicalization mark" msgstr "" #: ../data/ipa.xml.in.h:169 msgid "Combining laminalization mark" msgstr "" #: ../data/ipa.xml.in.h:170 msgid "Combining centralization mark" msgstr "" #: ../data/ipa.xml.in.h:171 msgid "Combining mid-centralization mark" msgstr "" #: ../data/ipa.xml.in.h:172 msgid "Combining nasalization mark" msgstr "" #: ../data/ipa.xml.in.h:173 msgid "Combining nasalization mark below" msgstr "" #: ../data/ipa.xml.in.h:174 msgid "Combining denasalization mark" msgstr "" #: ../data/ipa.xml.in.h:175 msgid "Combining nasal friction mark" msgstr "" #: ../data/ipa.xml.in.h:176 msgid "Combining velopharyngeal friction mark" msgstr "" #: ../data/ipa.xml.in.h:177 msgid "Combining voiced mark" msgstr "" #: ../data/ipa.xml.in.h:178 msgid "Combining voiceless mark" msgstr "" #: ../data/ipa.xml.in.h:179 msgid "Combining voiceless mark above" msgstr "" #: ../data/ipa.xml.in.h:180 msgid "Pre-voicing/post-voicing mark" msgstr "" #: ../data/ipa.xml.in.h:181 msgid "Combining breathy voice mark" msgstr "" #: ../data/ipa.xml.in.h:182 msgid "Combining unreleased stop mark" msgstr "" #: ../data/ipa.xml.in.h:183 msgid "Combining more rounded mark" msgstr "" #: ../data/ipa.xml.in.h:184 msgid "Combining less rounded mark" msgstr "" #: ../data/ipa.xml.in.h:185 msgid "Combining labial spreading mark" msgstr "" #: ../data/ipa.xml.in.h:186 msgid "Combining syllabic mark" msgstr "" #: ../data/ipa.xml.in.h:187 msgid "Combining syllabic mark above" msgstr "" #: ../data/ipa.xml.in.h:188 msgid "Combining non-syllabic mark" msgstr "" #: ../data/ipa.xml.in.h:189 msgid "Combining non-syllabic mark above" msgstr "" #: ../data/ipa.xml.in.h:190 msgid "Combining top tone mark" msgstr "" #: ../data/ipa.xml.in.h:191 msgid "Combining high tone mark" msgstr "" #: ../data/ipa.xml.in.h:192 msgid "Combining mid tone mark" msgstr "" #: ../data/ipa.xml.in.h:193 msgid "Combining low tone mark" msgstr "" #: ../data/ipa.xml.in.h:194 msgid "Combining bottom tone mark" msgstr "" #: ../data/ipa.xml.in.h:195 msgid "Combining falling tone mark" msgstr "" #: ../data/ipa.xml.in.h:196 msgid "Combining high falling tone mark" msgstr "" #: ../data/ipa.xml.in.h:197 msgid "Combining low falling tone mark" msgstr "" #: ../data/ipa.xml.in.h:198 msgid "Combining rising tone mark" msgstr "" #: ../data/ipa.xml.in.h:199 msgid "Combining high rising tone mark" msgstr "" #: ../data/ipa.xml.in.h:200 msgid "Combining low rising tone mark" msgstr "" #: ../data/ipa.xml.in.h:201 msgid "Combining dipping tone mark" msgstr "" #: ../data/ipa.xml.in.h:202 msgid "Combining peaking tone mark" msgstr "" #: ../data/ipa.xml.in.h:203 msgid "Top tone letter" msgstr "" #: ../data/ipa.xml.in.h:204 msgid "High tone letter" msgstr "" #: ../data/ipa.xml.in.h:205 msgid "Mid tone letter" msgstr "" #: ../data/ipa.xml.in.h:206 msgid "Low tone letter" msgstr "" #: ../data/ipa.xml.in.h:207 msgid "Bottom tone letter" msgstr "" #: ../data/ipa.xml.in.h:208 msgid "Falling tone digraph" msgstr "" #: ../data/ipa.xml.in.h:209 msgid "High falling tone digraph" msgstr "" #: ../data/ipa.xml.in.h:210 msgid "Rising tone digraph" msgstr "" #: ../data/ipa.xml.in.h:211 msgid "High rising tone digraph" msgstr "" #: ../data/ipa.xml.in.h:212 msgid "Low rising tone digraph" msgstr "" #: ../data/ipa.xml.in.h:213 msgid "Dipping tone trigraph" msgstr "" #: ../data/ipa.xml.in.h:214 msgid "Peaking tone trigraph" msgstr "" #: ../data/ipa.xml.in.h:215 msgid "Upstep mark" msgstr "" #: ../data/ipa.xml.in.h:216 msgid "Downstep mark" msgstr "" #: ../data/ipa.xml.in.h:217 msgid "Minor break" msgstr "" #: ../data/ipa.xml.in.h:218 msgid "Major break" msgstr "" #: ../data/ipa.xml.in.h:219 msgid "Rising intonation mark" msgstr "" #: ../data/ipa.xml.in.h:220 msgid "Falling intonation mark" msgstr "" #: ../data/ipa.xml.in.h:221 msgid "Advanced articulation mark" msgstr "" #: ../data/ipa.xml.in.h:222 msgid "Retracted articulation mark" msgstr "" #: ../data/ipa.xml.in.h:223 msgid "Combining advanced articulation mark" msgstr "" #: ../data/ipa.xml.in.h:224 msgid "Combining retracted articulation mark" msgstr "" #: ../data/ipa.xml.in.h:225 msgid "Raised sound mark" msgstr "" #: ../data/ipa.xml.in.h:226 msgid "Lowered sound mark" msgstr "" #: ../data/ipa.xml.in.h:227 msgid "Combining raised sound mark" msgstr "" #: ../data/ipa.xml.in.h:228 msgid "Combining lowered sound mark" msgstr "" #: ../data/ipa.xml.in.h:229 msgid "Combining tongue root advancement mark" msgstr "" #: ../data/ipa.xml.in.h:230 msgid "Combining tongue root retraction mark" msgstr "" #: ../data/ipa.xml.in.h:231 msgid "Combining strong articulation mark" msgstr "" #: ../data/ipa.xml.in.h:232 msgid "Combining weak articulation mark" msgstr "" #: ../data/ipa.xml.in.h:233 msgid "Combining whistled articulation mark" msgstr "" #: ../data/ipa.xml.in.h:234 msgid "Combining sliding articulation mark" msgstr "" #: ../data/ipa.xml.in.h:235 msgid "Egression mark" msgstr "" #: ../data/ipa.xml.in.h:236 msgid "Ingression mark" msgstr "" #: ../data/ipa.xml.in.h:237 msgid "Combining ligature tie" msgstr "" #: ../data/ipa.xml.in.h:238 msgid "Combining ligature undertie" msgstr "" #: ../data/ipa.xml.in.h:239 msgid "Elongation mark" msgstr "" #: ../data/ipa.xml.in.h:240 msgid "Weak elongation mark" msgstr "" #: ../data/ipa.xml.in.h:241 msgid "Combining extra-short duration mark" msgstr "" #: ../data/ipa.xml.in.h:242 msgid "Liaison mark" msgstr "" #: ../data/ipa.xml.in.h:243 msgid "Stress mark" msgstr "" #: ../data/ipa.xml.in.h:244 msgid "Weak stress mark" msgstr "" #: ../data/ipa.xml.in.h:245 msgid "Syllable break" msgstr "" #: ../data/ipa.xml.in.h:246 msgid "Opening orthographic bracket" msgstr "" #: ../data/ipa.xml.in.h:247 msgid "Closing orthographic bracket" msgstr "" #: ../data/ja.xml.in.h:1 msgid "Japanese" msgstr "日本語" #: ../data/ja.xml.in.h:2 ../input-pad/unicode_block.h:136 msgid "Hiragana" msgstr "ひらがな" #: ../data/ja.xml.in.h:3 ../input-pad/unicode_block.h:137 msgid "Katakana" msgstr "カタカナ" #: ../data/ja.xml.in.h:4 ../data/zh.xml.in.h:3 msgid "Radicals" msgstr "部首" #: ../data/ja.xml.in.h:5 ../input-pad/unicode_block.h:132 msgid "CJK Radicals Supplement" msgstr "CJK 部首補足" #: ../data/keyboard.xml.in.h:1 msgid "Keyboard" msgstr "キーボード" #: ../data/keyboard.xml.in.h:2 msgid "Function Key" msgstr "機能キー" #: ../data/keyboard.xml.in.h:3 msgid "Key Pad" msgstr "キーパッド" #: ../data/latin.xml.in.h:1 msgid "ASCII" msgstr "ASCII" #: ../data/latin.xml.in.h:2 ../input-pad/unicode_block.h:38 msgid "Latin-1 Supplement" msgstr "ラテン文字-1 補足" #: ../data/latin.xml.in.h:3 ../input-pad/unicode_block.h:39 msgid "Latin Extended-A" msgstr "ラテン文字拡張-A" #: ../data/latin.xml.in.h:4 msgid "Old and Middle English" msgstr "古代と中期の英語" #: ../data/runr.xml.in.h:1 msgid "Runes (Unicode Block)" msgstr "ルーン文字 (Unicode ブロック)" #: ../data/runr.xml.in.h:2 msgid "Runes (Elder Fuþark)" msgstr "ルーン文字 (古代のフザルク)" #: ../data/runr.xml.in.h:3 msgid "Runes (Younger Fuþark)" msgstr "ルーン文字 (更新されたフザルク)" #: ../data/runr.xml.in.h:4 msgid "Runes (Fuþorc)" msgstr "ルーン文字 (フゾルク)" #: ../data/shaw.xml.in.h:1 ../input-pad/unicode_block.h:200 msgid "Shavian" msgstr "ショウ文字" #: ../data/str.xml.in.h:1 msgid "Chat" msgstr "チャット" #: ../data/str.xml.in.h:2 msgid "Emoji" msgstr "絵文字" #: ../data/str.xml.in.h:3 msgid "Rain" msgstr "" #: ../data/str.xml.in.h:4 msgid "Comet" msgstr "" #: ../data/str.xml.in.h:5 msgid "Cross" msgstr "" #: ../data/str.xml.in.h:6 msgid "Solar" msgstr "" #: ../data/str.xml.in.h:7 msgid "Mercury" msgstr "" #: ../data/str.xml.in.h:8 msgid "Venus" msgstr "" #: ../data/str.xml.in.h:9 msgid "Earth" msgstr "" #: ../data/str.xml.in.h:10 msgid "Mars" msgstr "" #: ../data/str.xml.in.h:11 msgid "Jupiter" msgstr "" #: ../data/str.xml.in.h:12 msgid "Saturn" msgstr "" #: ../data/str.xml.in.h:13 msgid "Uranus" msgstr "" #: ../data/str.xml.in.h:14 msgid "Neptune" msgstr "" #: ../data/str.xml.in.h:15 msgid "Pluto" msgstr "" #: ../data/str.xml.in.h:16 msgid "Aries" msgstr "" #: ../data/str.xml.in.h:17 msgid "Taurus" msgstr "" #: ../data/str.xml.in.h:18 msgid "Gemini" msgstr "" #: ../data/str.xml.in.h:19 msgid "Cancer" msgstr "" #: ../data/str.xml.in.h:20 msgid "Leo" msgstr "" #: ../data/str.xml.in.h:21 msgid "Virgo" msgstr "" #: ../data/str.xml.in.h:22 msgid "Libra" msgstr "" #: ../data/str.xml.in.h:23 msgid "Scorpius" msgstr "" #: ../data/str.xml.in.h:24 msgid "Sagittarius" msgstr "" #: ../data/str.xml.in.h:25 msgid "Capricorn" msgstr "" #: ../data/str.xml.in.h:26 msgid "Aquarius" msgstr "" #: ../data/str.xml.in.h:27 msgid "Pisces" msgstr "" #: ../data/str.xml.in.h:28 msgid "Dice 1" msgstr "" #: ../data/str.xml.in.h:29 msgid "Dice 2" msgstr "" #: ../data/str.xml.in.h:30 msgid "Dice 3" msgstr "" #: ../data/str.xml.in.h:31 msgid "Dice 4" msgstr "" #: ../data/str.xml.in.h:32 msgid "Dice 5" msgstr "" #: ../data/str.xml.in.h:33 msgid "Dice 6" msgstr "" #: ../data/str.xml.in.h:34 msgid "Anchor" msgstr "" #: ../data/str.xml.in.h:35 msgid "Sword" msgstr "" #: ../data/str.xml.in.h:36 msgid "Scales" msgstr "" #: ../data/str.xml.in.h:37 msgid "Conversation" msgstr "" #: ../data/str.xml.in.h:38 msgid "Warning" msgstr "" #: ../data/str.xml.in.h:39 msgid "Thunder" msgstr "" #: ../data/str.xml.in.h:40 msgid "Coffin" msgstr "" #: ../data/str.xml.in.h:41 msgid "Gender" msgstr "" #: ../data/str.xml.in.h:42 msgid "Soccer" msgstr "" #: ../data/str.xml.in.h:43 msgid "Baseball" msgstr "" #: ../data/str.xml.in.h:44 msgid "Snowman" msgstr "" #: ../data/str.xml.in.h:45 msgid "Shoji" msgstr "" #: ../data/str.xml.in.h:46 msgid "Maintenance" msgstr "" #: ../data/str.xml.in.h:47 msgid "Roadblock" msgstr "" #: ../data/str.xml.in.h:48 msgid "No entry" msgstr "" #: ../data/str.xml.in.h:49 msgid "Truck" msgstr "" #: ../data/str.xml.in.h:50 msgid "Torii" msgstr "" #: ../data/str.xml.in.h:51 msgid "Church" msgstr "" #: ../data/str.xml.in.h:52 msgid "Castle" msgstr "" #: ../data/str.xml.in.h:53 msgid "Historic site" msgstr "" #: ../data/str.xml.in.h:54 msgid "Power station" msgstr "" #: ../data/str.xml.in.h:55 msgid "Lighthouse" msgstr "" #: ../data/str.xml.in.h:56 msgid "Mountain" msgstr "" #: ../data/str.xml.in.h:57 msgid "Beach" msgstr "" #: ../data/str.xml.in.h:58 msgid "Park" msgstr "" #: ../data/str.xml.in.h:59 msgid "Ferry" msgstr "" #: ../data/str.xml.in.h:60 msgid "Sailboat" msgstr "" #: ../data/str.xml.in.h:61 msgid "Ice rink" msgstr "" #: ../data/str.xml.in.h:62 msgid "Scissors" msgstr "" #: ../data/str.xml.in.h:63 msgid "Airplane" msgstr "" #: ../data/str.xml.in.h:64 msgid "Clenched Fist" msgstr "" #: ../data/str.xml.in.h:65 msgid "Hand" msgstr "" #: ../data/str.xml.in.h:66 msgid "V Sign" msgstr "" #: ../data/str.xml.in.h:67 msgid "Writing" msgstr "" #: ../data/str.xml.in.h:68 msgid "Pencil" msgstr "" #: ../data/str.xml.in.h:69 msgid "Pen" msgstr "" #: ../data/str.xml.in.h:70 msgid "Star" msgstr "星" #: ../data/str.xml.in.h:71 msgid "Typhoon" msgstr "" #: ../data/str.xml.in.h:72 msgid "Fog" msgstr "" #: ../data/str.xml.in.h:73 msgid "Umbrella" msgstr "" #: ../data/str.xml.in.h:74 msgid "Night sky" msgstr "" #: ../data/str.xml.in.h:75 msgid "Sunrise" msgstr "" #: ../data/str.xml.in.h:76 msgid "Sunset" msgstr "" #: ../data/str.xml.in.h:77 msgid "Bridge" msgstr "" #: ../data/str.xml.in.h:78 msgid "Wave" msgstr "" #: ../data/str.xml.in.h:79 msgid "New Moon" msgstr "" #: ../data/str.xml.in.h:80 msgid "Crescent Moon" msgstr "" #: ../data/str.xml.in.h:81 msgid "Quarter Moon" msgstr "" #: ../data/str.xml.in.h:82 msgid "Gibbous Moon" msgstr "" #: ../data/str.xml.in.h:83 msgid "Full Moon" msgstr "" #: ../data/str.xml.in.h:84 msgid "Moon" msgstr "月" #: ../data/str.xml.in.h:85 msgid "Sun" msgstr "" #: ../data/str.xml.in.h:86 msgid "Cloud" msgstr "" #: ../data/str.xml.in.h:87 msgid "Palm" msgstr "" #: ../data/str.xml.in.h:88 msgid "Hot Pepper" msgstr "" #: ../data/str.xml.in.h:89 msgid "Flower" msgstr "" #: ../data/str.xml.in.h:90 msgid "Tulip" msgstr "" #: ../data/str.xml.in.h:91 msgid "Cherry" msgstr "" #: ../data/str.xml.in.h:92 msgid "Rose" msgstr "" #: ../data/str.xml.in.h:93 msgid "Hibiscus" msgstr "" #: ../data/str.xml.in.h:94 msgid "Sunflower" msgstr "" #: ../data/str.xml.in.h:95 msgid "Blossom" msgstr "" #: ../data/str.xml.in.h:96 msgid "Clover" msgstr "" #: ../data/str.xml.in.h:97 msgid "Maple" msgstr "" #: ../data/str.xml.in.h:98 msgid "Fallen Leaf" msgstr "" #: ../data/str.xml.in.h:99 msgid "Leaf" msgstr "" #: ../data/str.xml.in.h:100 msgid "Mushroom" msgstr "" #: ../data/str.xml.in.h:101 msgid "Tomato" msgstr "" #: ../data/str.xml.in.h:102 msgid "Eggplant" msgstr "" #: ../data/str.xml.in.h:103 msgid "Grape" msgstr "" #: ../data/str.xml.in.h:104 msgid "Melon" msgstr "" #: ../data/str.xml.in.h:105 msgid "Watermelon" msgstr "" #: ../data/str.xml.in.h:106 msgid "Tangerine" msgstr "" #: ../data/str.xml.in.h:107 msgid "Lemon" msgstr "" #: ../data/str.xml.in.h:108 msgid "Banana" msgstr "" #: ../data/str.xml.in.h:109 msgid "Pineapple" msgstr "" #: ../data/str.xml.in.h:110 msgid "Apple" msgstr "" #: ../data/str.xml.in.h:111 msgid "Pear" msgstr "" #: ../data/str.xml.in.h:112 msgid "Peach" msgstr "" #: ../data/str.xml.in.h:113 msgid "Strawberry" msgstr "" #: ../data/str.xml.in.h:114 msgid "Hamburger" msgstr "" #: ../data/str.xml.in.h:115 msgid "Pizza" msgstr "" #: ../data/str.xml.in.h:116 msgid "Meat" msgstr "" #: ../data/str.xml.in.h:117 msgid "Poultry" msgstr "" #: ../data/str.xml.in.h:118 msgid "Rice Cracker" msgstr "" #: ../data/str.xml.in.h:119 msgid "Rice Ball" msgstr "" #: ../data/str.xml.in.h:120 msgid "Rice" msgstr "" #: ../data/str.xml.in.h:121 msgid "Curry" msgstr "" #: ../data/str.xml.in.h:122 msgid "Ramen" msgstr "" #: ../data/str.xml.in.h:123 msgid "Spaghetti" msgstr "" #: ../data/str.xml.in.h:124 msgid "Bread" msgstr "" #: ../data/str.xml.in.h:125 msgid "Fried Potato" msgstr "" #: ../data/str.xml.in.h:126 msgid "Roasted Sweet Potato" msgstr "" #: ../data/str.xml.in.h:127 msgid "Dango" msgstr "" #: ../data/str.xml.in.h:128 msgid "Oden" msgstr "" #: ../data/str.xml.in.h:129 msgid "Sushi" msgstr "" #: ../data/str.xml.in.h:130 msgid "Fried Shrimp" msgstr "" #: ../data/str.xml.in.h:131 msgid "Fish Cake" msgstr "" #: ../data/str.xml.in.h:132 msgid "Soft Ice Cream" msgstr "" #: ../data/str.xml.in.h:133 msgid "Shaved Ice" msgstr "" #: ../data/str.xml.in.h:134 msgid "Ice Cream" msgstr "" #: ../data/str.xml.in.h:135 msgid "Doughnut" msgstr "" #: ../data/str.xml.in.h:136 msgid "Cookie" msgstr "" #: ../data/str.xml.in.h:137 msgid "Chocolate" msgstr "" #: ../data/str.xml.in.h:138 msgid "Candy" msgstr "" #: ../data/str.xml.in.h:139 msgid "Custard" msgstr "" #: ../data/str.xml.in.h:140 msgid "Honey" msgstr "" #: ../data/str.xml.in.h:141 msgid "Shortcake" msgstr "" #: ../data/str.xml.in.h:142 msgid "Bento" msgstr "" #: ../data/str.xml.in.h:143 msgid "Pot of Food" msgstr "" #: ../data/str.xml.in.h:144 msgid "Cooking" msgstr "" #: ../data/str.xml.in.h:145 msgid "Meal" msgstr "" #: ../data/str.xml.in.h:146 msgid "Cup" msgstr "" #: ../data/str.xml.in.h:147 msgid "Sake" msgstr "" #: ../data/str.xml.in.h:148 msgid "Wine" msgstr "" #: ../data/str.xml.in.h:149 msgid "Cocktail" msgstr "" #: ../data/str.xml.in.h:150 msgid "Drink" msgstr "飲む" #: ../data/str.xml.in.h:151 msgid "Beer" msgstr "ビール" #: ../data/str.xml.in.h:152 msgid "Cheers" msgstr "" #: ../data/str.xml.in.h:153 msgid "Baby Bottle" msgstr "" #: ../data/str.xml.in.h:154 msgid "Ribbon" msgstr "" #: ../data/str.xml.in.h:155 msgid "Present" msgstr "プレゼント" #: ../data/str.xml.in.h:156 msgid "Cake" msgstr "ケーキ" #: ../data/str.xml.in.h:157 msgid "Hallowe'en" msgstr "" #: ../data/str.xml.in.h:158 msgid "Christmas" msgstr "" #: ../data/str.xml.in.h:159 msgid "Piano" msgstr "" #: ../data/str.xml.in.h:160 msgid "Microphone" msgstr "" #: ../data/str.xml.in.h:161 msgid "Headphone" msgstr "" #: ../data/str.xml.in.h:162 msgid "Hat" msgstr "" #: ../data/str.xml.in.h:163 msgid "Musical Note" msgstr "音符" #: ../data/str.xml.in.h:164 msgid "Saxophone" msgstr "" #: ../data/str.xml.in.h:165 msgid "Guiter" msgstr "" #: ../data/str.xml.in.h:166 msgid "Trumpet" msgstr "" #: ../data/str.xml.in.h:167 msgid "Violin" msgstr "" #: ../data/str.xml.in.h:168 msgid "Musical Score" msgstr "" #: ../data/str.xml.in.h:169 msgid "Tennis" msgstr "" #: ../data/str.xml.in.h:170 msgid "Ski" msgstr "" #: ../data/str.xml.in.h:171 msgid "Basketball" msgstr "" #: ../data/str.xml.in.h:172 msgid "Flag" msgstr "" #: ../data/str.xml.in.h:173 msgid "Show Board" msgstr "" #: ../data/str.xml.in.h:174 msgid "Running" msgstr "" #: ../data/str.xml.in.h:175 msgid "Surfer" msgstr "" #: ../data/str.xml.in.h:176 msgid "Medal" msgstr "" #: ../data/str.xml.in.h:177 msgid "Trophy" msgstr "" #: ../data/str.xml.in.h:178 msgid "Horse Racing" msgstr "" #: ../data/str.xml.in.h:179 msgid "American Football" msgstr "" #: ../data/str.xml.in.h:180 msgid "Rugby" msgstr "" #: ../data/str.xml.in.h:181 msgid "Swimmer" msgstr "" #: ../data/str.xml.in.h:182 msgid "Weight Lifting" msgstr "" #: ../data/str.xml.in.h:183 msgid "Golf" msgstr "" #: ../data/str.xml.in.h:184 msgid "Motorcycle" msgstr "" #: ../data/str.xml.in.h:185 msgid "Race" msgstr "" #: ../data/str.xml.in.h:186 msgid "House" msgstr "" #: ../data/str.xml.in.h:187 msgid "Office" msgstr "" #: ../data/str.xml.in.h:188 msgid "Hospital" msgstr "" #: ../data/str.xml.in.h:189 msgid "Bank" msgstr "" #: ../data/str.xml.in.h:190 msgid "Hotel" msgstr "" #: ../data/str.xml.in.h:191 msgid "School" msgstr "" #: ../data/str.xml.in.h:192 msgid "Factory" msgstr "" #: ../data/str.xml.in.h:193 msgid "Rat" msgstr "" #: ../data/str.xml.in.h:194 msgid "Mouse" msgstr "" #: ../data/str.xml.in.h:195 msgid "Cow" msgstr "" #: ../data/str.xml.in.h:196 msgid "Tiger" msgstr "" #: ../data/str.xml.in.h:197 msgid "Leopard" msgstr "" #: ../data/str.xml.in.h:198 msgid "Rabbit" msgstr "" #: ../data/str.xml.in.h:199 msgid "Cat" msgstr "猫" #: ../data/str.xml.in.h:200 msgid "Dragon" msgstr "" #: ../data/str.xml.in.h:201 msgid "Crocodile" msgstr "" #: ../data/str.xml.in.h:202 msgid "Whale" msgstr "" #: ../data/str.xml.in.h:203 msgid "Snail" msgstr "" #: ../data/str.xml.in.h:204 msgid "Snake" msgstr "" #: ../data/str.xml.in.h:205 msgid "Horse" msgstr "" #: ../data/str.xml.in.h:206 msgid "Sheep" msgstr "" #: ../data/str.xml.in.h:207 msgid "Goat" msgstr "" #: ../data/str.xml.in.h:208 msgid "Monkey" msgstr "猿" #: ../data/str.xml.in.h:209 msgid "Chicken" msgstr "" #: ../data/str.xml.in.h:210 msgid "Dog" msgstr "犬" #: ../data/str.xml.in.h:211 msgid "Pig" msgstr "" #: ../data/str.xml.in.h:212 msgid "Elephant" msgstr "" #: ../data/str.xml.in.h:213 msgid "Octopus" msgstr "" #: ../data/str.xml.in.h:214 msgid "Spiral Shell" msgstr "" #: ../data/str.xml.in.h:215 msgid "Bug" msgstr "" #: ../data/str.xml.in.h:216 msgid "Ant" msgstr "" #: ../data/str.xml.in.h:217 msgid "Lady Beetle" msgstr "" #: ../data/str.xml.in.h:218 msgid "Fish" msgstr "" #: ../data/str.xml.in.h:219 msgid "Tropical Fish" msgstr "" #: ../data/str.xml.in.h:220 msgid "Blowfish" msgstr "" #: ../data/str.xml.in.h:221 msgid "Bird" msgstr "" #: ../data/str.xml.in.h:222 msgid "Penguin" msgstr "" #: ../data/str.xml.in.h:223 msgid "Koala" msgstr "" #: ../data/str.xml.in.h:224 msgid "Poodle" msgstr "" #: ../data/str.xml.in.h:225 msgid "Camel" msgstr "" #: ../data/str.xml.in.h:226 msgid "Dolphin" msgstr "" #: ../data/str.xml.in.h:227 msgid "Frog" msgstr "" #: ../data/str.xml.in.h:228 msgid "Hamster" msgstr "" #: ../data/str.xml.in.h:229 msgid "Wolf" msgstr "" #: ../data/str.xml.in.h:230 msgid "Bear" msgstr "熊" #: ../data/str.xml.in.h:231 msgid "Panda" msgstr "" #: ../data/str.xml.in.h:232 msgid "Eye" msgstr "" #: ../data/str.xml.in.h:233 msgid "Ear" msgstr "" #: ../data/str.xml.in.h:234 msgid "Nose" msgstr "" #: ../data/str.xml.in.h:235 msgid "Mouth" msgstr "" #: ../data/str.xml.in.h:236 msgid "Tongue" msgstr "舌" #: ../data/str.xml.in.h:237 msgid "Crown" msgstr "" #: ../data/str.xml.in.h:238 msgid "Glasses" msgstr "" #: ../data/str.xml.in.h:239 msgid "Necktie" msgstr "" #: ../data/str.xml.in.h:240 msgid "T-Shirt" msgstr "" #: ../data/str.xml.in.h:241 msgid "Jeans" msgstr "" #: ../data/str.xml.in.h:242 msgid "Dress" msgstr "" #: ../data/str.xml.in.h:243 msgid "Kimono" msgstr "" #: ../data/str.xml.in.h:244 msgid "Bikini" msgstr "" #: ../data/str.xml.in.h:245 msgid "Clothes" msgstr "" #: ../data/str.xml.in.h:246 msgid "Purse" msgstr "" #: ../data/str.xml.in.h:247 msgid "Handbag" msgstr "" #: ../data/str.xml.in.h:248 msgid "Pouch" msgstr "" #: ../data/str.xml.in.h:249 msgid "Shoe" msgstr "" #: ../data/str.xml.in.h:250 msgid "Footprint" msgstr "" #: ../data/str.xml.in.h:251 msgid "Account" msgstr "" #: ../data/str.xml.in.h:252 msgid "Boy" msgstr "少年" #: ../data/str.xml.in.h:253 msgid "Girl" msgstr "少女" #: ../data/str.xml.in.h:254 msgid "Man" msgstr "" #: ../data/str.xml.in.h:255 msgid "Woman" msgstr "" #: ../data/str.xml.in.h:256 msgid "Family" msgstr "" #: ../data/str.xml.in.h:257 msgid "Restroom" msgstr "" #: ../data/str.xml.in.h:258 msgid "Men" msgstr "" #: ../data/str.xml.in.h:259 msgid "Women" msgstr "" #: ../data/str.xml.in.h:260 msgid "Princess" msgstr "" #: ../data/str.xml.in.h:261 msgid "Japanese Ogre" msgstr "" #: ../data/str.xml.in.h:262 msgid "Japanese Goblin" msgstr "" #: ../data/str.xml.in.h:263 msgid "Ghost" msgstr "" #: ../data/str.xml.in.h:264 msgid "Baby Angel" msgstr "" #: ../data/str.xml.in.h:265 msgid "Extraterrestrial Alien" msgstr "" #: ../data/str.xml.in.h:266 msgid "Alien Monster" msgstr "" #: ../data/str.xml.in.h:267 msgid "IMP" msgstr "" #: ../data/str.xml.in.h:268 msgid "Skull" msgstr "" #: ../data/str.xml.in.h:269 msgid "Information Desk Person" msgstr "" #: ../data/str.xml.in.h:270 msgid "Guardsman" msgstr "" #: ../data/str.xml.in.h:271 msgid "Dancer" msgstr "" #: ../data/str.xml.in.h:272 msgid "Lipstick" msgstr "" #: ../data/str.xml.in.h:273 msgid "Nail" msgstr "" #: ../data/str.xml.in.h:274 msgid "Face" msgstr "" #: ../data/str.xml.in.h:275 msgid "Haircut" msgstr "" #: ../data/str.xml.in.h:276 msgid "Syringe" msgstr "" #: ../data/str.xml.in.h:277 msgid "Medicine" msgstr "" #: ../data/str.xml.in.h:278 msgid "Kiss" msgstr "キス" #: ../data/str.xml.in.h:279 msgid "Love Letter" msgstr "" #: ../data/str.xml.in.h:280 msgid "Ring" msgstr "" #: ../data/str.xml.in.h:281 msgid "Gem Stone" msgstr "" #: ../data/str.xml.in.h:282 msgid "Wedding" msgstr "" #: ../data/str.xml.in.h:283 msgid "Heart" msgstr "" #: ../data/str.xml.in.h:284 msgid "Idea" msgstr "" #: ../data/str.xml.in.h:285 msgid "Anger" msgstr "" #: ../data/str.xml.in.h:286 msgid "Bomb" msgstr "" #: ../data/str.xml.in.h:287 msgid "Sleeping" msgstr "" #: ../data/str.xml.in.h:288 msgid "Collision" msgstr "" #: ../data/str.xml.in.h:289 msgid "Sweat" msgstr "" #: ../data/str.xml.in.h:290 msgid "Droplet" msgstr "" #: ../data/str.xml.in.h:291 msgid "Dash" msgstr "" #: ../data/str.xml.in.h:292 msgid "Poo" msgstr "" #: ../data/str.xml.in.h:293 msgid "Muscle" msgstr "" #: ../data/str.xml.in.h:294 msgid "Dizzy" msgstr "" #: ../data/str.xml.in.h:295 msgid "Speech" msgstr "" #: ../data/str.xml.in.h:296 msgid "Thought" msgstr "" #: ../data/str.xml.in.h:297 msgid "Perfect Score" msgstr "" #: ../data/str.xml.in.h:298 msgid "Pushpin" msgstr "" #: ../data/str.xml.in.h:299 msgid "Clip" msgstr "" #: ../data/str.xml.in.h:300 msgid "Speaker" msgstr "" #: ../data/str.xml.in.h:301 msgid "Battery" msgstr "" #: ../data/str.xml.in.h:302 msgid "Plug" msgstr "" #: ../data/str.xml.in.h:303 msgid "Search" msgstr "" #: ../data/str.xml.in.h:304 msgid "Bookmark" msgstr "" #: ../data/str.xml.in.h:305 msgid "Book" msgstr "" #: ../data/str.xml.in.h:306 msgid "Memo" msgstr "" #: ../data/str.xml.in.h:307 msgid "Mail" msgstr "メール" #: ../data/str.xml.in.h:308 msgid "Mobile Phone" msgstr "" #: ../data/str.xml.in.h:309 msgid "Camera" msgstr "" #: ../data/str.xml.in.h:310 msgid "Video" msgstr "" #: ../data/str.xml.in.h:311 msgid "Television" msgstr "" #: ../data/str.xml.in.h:312 msgid "Radio" msgstr "" #: ../data/str.xml.in.h:313 msgid "Key" msgstr "" #: ../data/str.xml.in.h:314 msgid "Lock" msgstr "" #: ../data/str.xml.in.h:315 msgid "Fire" msgstr "" #: ../data/str.xml.in.h:316 msgid "Wrench" msgstr "" #: ../data/str.xml.in.h:317 msgid "Hammer" msgstr "" #: ../data/str.xml.in.h:318 msgid "Bolt" msgstr "" #: ../data/str.xml.in.h:319 msgid "Hocho" msgstr "" #: ../data/str.xml.in.h:320 msgid "Pistol" msgstr "" #: ../data/str.xml.in.h:321 msgid "Microscope" msgstr "" #: ../data/str.xml.in.h:322 msgid "Telescope" msgstr "" #: ../data/str.xml.in.h:323 msgid "Crystal" msgstr "" #: ../data/str.xml.in.h:324 msgid "David Star" msgstr "" #: ../data/str.xml.in.h:325 msgid "Beginner" msgstr "" #: ../data/str.xml.in.h:326 msgid "Candle" msgstr "" #: ../data/str.xml.in.h:327 msgid "Hole" msgstr "" #: ../data/str.xml.in.h:328 msgid "Personal Computer" msgstr "" #: ../data/str.xml.in.h:329 msgid "keyboard" msgstr "" #: ../data/str.xml.in.h:330 msgid "Printer" msgstr "" #: ../data/str.xml.in.h:331 msgid "Calculator" msgstr "" #: ../data/str.xml.in.h:332 msgid "Minimize" msgstr "" #: ../data/str.xml.in.h:333 msgid "Maximize" msgstr "" #: ../data/str.xml.in.h:334 msgid "Refresh" msgstr "" #: ../data/str.xml.in.h:335 msgid "Close" msgstr "" #: ../data/str.xml.in.h:336 msgid "World" msgstr "" #: ../data/str.xml.in.h:337 msgid "Mt. Fuji" msgstr "" #: ../data/str.xml.in.h:338 msgid "Tokyo Tower" msgstr "" #: ../data/str.xml.in.h:339 msgid "Japan" msgstr "" #: ../data/str.xml.in.h:340 msgid "Anguish" msgstr "" #: ../data/str.xml.in.h:341 msgid "Smile" msgstr "スマイル" #: ../data/str.xml.in.h:342 msgid "Smirk" msgstr "" #: ../data/str.xml.in.h:343 msgid "Neutral" msgstr "中立" #: ../data/str.xml.in.h:344 msgid "Expressionless" msgstr "" #: ../data/str.xml.in.h:345 msgid "Unamused" msgstr "" #: ../data/str.xml.in.h:346 msgid "Pensive" msgstr "" #: ../data/str.xml.in.h:347 msgid "Confused" msgstr "混乱する" #: ../data/str.xml.in.h:348 msgid "Confounded" msgstr "" #: ../data/str.xml.in.h:349 msgid "Disappointed" msgstr "" #: ../data/str.xml.in.h:350 msgid "Angry" msgstr "怒る" #: ../data/str.xml.in.h:351 msgid "Cry" msgstr "" #: ../data/str.xml.in.h:352 msgid "Sleeply" msgstr "" #: ../data/str.xml.in.h:353 msgid "Tired" msgstr "" #: ../data/str.xml.in.h:354 msgid "Surprise" msgstr "" #: ../data/str.xml.in.h:355 msgid "Scream" msgstr "" #: ../data/str.xml.in.h:356 msgid "Flushed" msgstr "" #: ../data/str.xml.in.h:357 msgid "Medical Mask" msgstr "" #: ../data/str.xml.in.h:358 msgid "OK" msgstr "" #: ../data/str.xml.in.h:359 msgid "Bow" msgstr "" #: ../data/str.xml.in.h:360 msgid "See-No-Evil" msgstr "" #: ../data/str.xml.in.h:361 msgid "Hear-No-Evil" msgstr "" #: ../data/str.xml.in.h:362 msgid "Speak-No-Evil" msgstr "" #: ../data/str.xml.in.h:363 msgid "Banzai" msgstr "" #: ../data/str.xml.in.h:364 msgid "Pleading" msgstr "" #: ../data/str.xml.in.h:365 msgid "Smileys" msgstr "顔文字" #: ../data/str.xml.in.h:366 msgid "Smile Big" msgstr "大きなスマイル" #: ../data/str.xml.in.h:367 msgid "Sad" msgstr "悲しい" #: ../data/str.xml.in.h:368 msgid "Wink" msgstr "ウインク" #: ../data/str.xml.in.h:369 msgid "Shock" msgstr "ショック" #: ../data/str.xml.in.h:370 msgid "Kiss | Secret" msgstr "キス | 秘密" #: ../data/str.xml.in.h:371 msgid "Glasses Cool | Eyeroll" msgstr "サングラス | 目をむく" #: ../data/str.xml.in.h:372 msgid "Glasses Cool" msgstr "サングラス" #: ../data/str.xml.in.h:373 msgid "Embarrassed" msgstr "あせる" #: ../data/str.xml.in.h:374 msgid "Crying" msgstr "泣き顔" #: ../data/str.xml.in.h:375 msgid "Thinking" msgstr "考え中" #: ../data/str.xml.in.h:376 msgid "Don't Know" msgstr "分かりません" #: ../data/str.xml.in.h:377 msgid "Party" msgstr "パーティ" #: ../data/str.xml.in.h:378 msgid "Yawn" msgstr "あくび" #: ../data/str.xml.in.h:379 msgid "Bunny" msgstr "うさぎ" #: ../data/str.xml.in.h:380 msgid "Sick" msgstr "病気" #: ../data/str.xml.in.h:381 msgid "Devil" msgstr "悪魔" #: ../data/str.xml.in.h:382 msgid "Angel" msgstr "天使" #: ../data/str.xml.in.h:383 msgid "Love" msgstr "ラブ" #: ../data/str.xml.in.h:384 msgid "Love Over" msgstr "ラブオーバー" #: ../data/str.xml.in.h:385 msgid "Film" msgstr "フィルム" #: ../data/str.xml.in.h:386 msgid "Clock" msgstr "時計" #: ../data/str.xml.in.h:387 msgid "Coffee" msgstr "コーヒー" #: ../data/str.xml.in.h:388 msgid "Phone" msgstr "電話" #: ../data/str.xml.in.h:389 msgid "Hug Left" msgstr "ハグ左" #: ../data/str.xml.in.h:390 msgid "Hug Right" msgstr "ハグ右" #: ../data/str.xml.in.h:391 msgid "Yes" msgstr "はい" #: ../data/str.xml.in.h:392 msgid "No" msgstr "いいえ" #: ../data/str.xml.in.h:393 msgid "Shut Mouth" msgstr "口をつぐむ" #: ../data/str.xml.in.h:394 msgid "Money Mouth" msgstr "金の口" #: ../data/str.xml.in.h:395 msgid "Foot in Mouth" msgstr "失言" #: ../data/str.xml.in.h:396 msgid "Shout" msgstr "叫ぶ" #. http://ja.wikipedia.org/wiki/%E9%A1%94%E6%96%87%E5%AD%97 #: ../data/str.xml.in.h:398 msgid "Smileys (Japanese)" msgstr "顔文字 (日本語)" #: ../data/str.xml.in.h:399 msgid "Smoking" msgstr "タバコを吸う" #: ../data/str.xml.in.h:400 msgid "Sorry" msgstr "ごめんなさい" #: ../data/str.xml.in.h:401 msgid "Hug" msgstr "ハグ" #. http://ja.wikipedia.org/wiki/%E9%A1%94%E6%96%87%E5%AD%97 #: ../data/str.xml.in.h:403 msgid "Smileys (Japanese 2ch)" msgstr "顔文字 (日本語 2ch)" #: ../data/str.xml.in.h:404 msgid "Hey" msgstr "おーい" #. http://ja.wikipedia.org/wiki/%E9%A1%94%E6%96%87%E5%AD%97 #: ../data/str.xml.in.h:406 msgid "Smileys (Chinese)" msgstr "顔文字 (中国語)" #: ../data/str.xml.in.h:407 msgid "Crow" msgstr "カラス" #. http://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88%E3%82%B9%E3%83%A9%E3%83%B3%E3%82%B0 #: ../data/str.xml.in.h:409 msgid "Acronym" msgstr "略語" #: ../data/str.xml.in.h:410 msgid "Acronym (Computer)" msgstr "略語 (コンピューター)" #. http://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88%E3%82%B9%E3%83%A9%E3%83%B3%E3%82%B0 #: ../data/str.xml.in.h:412 msgid "Acronym (Japanese)" msgstr "略語 (日本語)" #: ../data/str.xml.in.h:413 msgid "Do not want to read between lines (Aete Kuuki Wo Yomanai)" msgstr "敢えて空気を読まない" #: ../data/str.xml.in.h:414 msgid "Can't get together (Guda Guda)" msgstr "まとまらない (Guda Guda)" #: ../data/str.xml.in.h:415 msgid "Say whatever one feels (Iitaidake)" msgstr "言いたいだけ" #: ../data/str.xml.in.h:416 msgid "Excited (Kitakore)" msgstr "興奮する (Kitakore)" #: ../data/str.xml.in.h:417 msgid "Detail (Kuwashiku)" msgstr "詳しく" #: ../data/str.xml.in.h:418 msgid "Cannot read between lines (Kuuki Ga Yomenai)" msgstr "空気が読めない (Kuuki Ga Yomenai)" #: ../data/str.xml.in.h:419 msgid "Omission (Shouryaku)" msgstr "省略 (Shouryaku)" #: ../data/str.xml.in.h:420 msgid "Excited (Waku Waku Teka Teka)" msgstr "興奮する (Waku Waku Teka Teka)" #: ../data/str.xml.in.h:421 msgid "Laugh" msgstr "笑う" #: ../data/str.xml.in.h:422 msgid "Dude (Oi!)" msgstr "つっこみ (Oi!)" #: ../data/str.xml.in.h:423 msgid "Good job (Otsukare)" msgstr "お疲れ様 (Otsukare)" #: ../data/str.xml.in.h:424 msgid "Want (Kure, E.g. pics クレメンス)" msgstr "欲しがる (くれ、例: 画像クレメンス)" #: ../data/str.xml.in.h:425 msgid "ASCII art of a hand (✊, E.g. つAttention)" msgstr "手のアスキーアート (✊, 例: つ注目)" #: ../data/str.xml.in.h:426 msgid "In The Meantime (Toriaezu, Maa)" msgstr "さしあたって (とりあえず、まあ)" #: ../data/str.xml.in.h:427 msgid "Self-confidence (Aniki, E.g. tennis ニキ)" msgstr "自信 (アニキ、例: テニスニキ)" #: ../data/str.xml.in.h:428 msgid "Bye" msgstr "さよなら" #: ../data/str.xml.in.h:429 msgid "Want (Hattekure, E.g. pics ハラデイ)" msgstr "欲しがる (貼ってくれ、例: 画像ハラデイ)" #: ../data/str.xml.in.h:430 msgid "Exist as microparticles (Biryushi Level De Sonzaisuru)" msgstr "微粒子レベルで存在する" #: ../data/str.xml.in.h:431 msgid "False Start (Flying Get)" msgstr "フライングゲット (Flying Get)" #: ../data/str.xml.in.h:432 msgid "Fulfilling Life (Real life is Zyujitsu)" msgstr "充実した生活 (Real life is Zyujitsu)" #: ../data/str.xml.in.h:433 msgid "Laugh (Warau)" msgstr "笑う (Warau)" #: ../data/str.xml.in.h:434 msgid "He (Yatsu <- Yashi)" msgstr "彼 (Yatsu <- Yashi)" #: ../data/w3c.xml.in.h:1 msgid "Char References" msgstr "文字参照" #: ../data/zh.xml.in.h:1 msgid "Chinese" msgstr "中国語" #: ../data/zh.xml.in.h:4 ../input-pad/unicode_block.h:138 msgid "Bopomofo" msgstr "Bopomofo" #: ../input-pad/app-menu.ui.h:1 msgid "_File" msgstr "ファイル(_F)" #: ../input-pad/app-menu.ui.h:2 ../input-pad/dialog.ui.h:21 msgid "_Close" msgstr "閉じる(_C)" #: ../input-pad/app-menu.ui.h:3 msgid "Close the program" msgstr "プログラムを閉じる" #: ../input-pad/app-menu.ui.h:4 msgid "_Pad" msgstr "パッド(_P)" #: ../input-pad/app-menu.ui.h:5 msgid "_Code Point" msgstr "コードポイント(_C)" #: ../input-pad/app-menu.ui.h:6 msgid "_Show Pad" msgstr "パッドを表示する(_S)" #: ../input-pad/app-menu.ui.h:7 msgid "Show _All Characters" msgstr "すべての文字を表示する(_A)" #: ../input-pad/app-menu.ui.h:8 msgid "Show _Custom Characters" msgstr "カスタム文字を表示する(_C)" #: ../input-pad/app-menu.ui.h:9 msgid "Show _Nothing" msgstr "なにも表示しない(_N)" #: ../input-pad/app-menu.ui.h:10 msgid "Show _Keyboard Layout" msgstr "キーボードレイアウトを表示する(_K)" #: ../input-pad/app-menu.ui.h:11 msgid "_Help" msgstr "ヘルプ(_H)" #: ../input-pad/app-menu.ui.h:12 msgid "_Troubleshoot" msgstr "トラブルシュート(_T)" #: ../input-pad/app-menu.ui.h:13 msgid "_About" msgstr "情報(_A)" #: ../input-pad/dialog.ui.h:1 msgid "Code Point Dialog" msgstr "コードポイントダイアログ" #: ../input-pad/dialog.ui.h:2 msgid "Unicode" msgstr "Unicode" #: ../input-pad/dialog.ui.h:3 msgid "You can choose encoding type" msgstr "エンコーディングタイプを選択可能です" #: ../input-pad/dialog.ui.h:4 msgid "Current Encoding" msgstr "現在のエンコーディング" #: ../input-pad/dialog.ui.h:5 msgid "Copy Buffer" msgstr "バッファをコピー" #: ../input-pad/dialog.ui.h:6 msgid "Base 16\n" "Hex" msgstr "16 進数\n" "Hex" #: ../input-pad/dialog.ui.h:8 msgid "Set number case to hexadecimal" msgstr "16 進数に設定します" #: ../input-pad/dialog.ui.h:9 msgid "Base 10\n" "Dec" msgstr "10 進数\n" "Dec" #: ../input-pad/dialog.ui.h:11 msgid "Set number case to decimal" msgstr "10 進数に設定します" #: ../input-pad/dialog.ui.h:12 msgid "Base 8\n" "Oct" msgstr "8 進数\n" "Oct" #: ../input-pad/dialog.ui.h:14 msgid "Set number case to octal" msgstr "8 進数に設定します" #: ../input-pad/dialog.ui.h:15 msgid "Base 2\n" "Bin" msgstr "2 進数\n" "Bin" #: ../input-pad/dialog.ui.h:17 msgid "Set number case to binary" msgstr "2 進数に設定します" #: ../input-pad/dialog.ui.h:18 msgid "Code Point:" msgstr "コードポイント:" #: ../input-pad/dialog.ui.h:19 msgid "Character:" msgstr "文字:" #: ../input-pad/dialog.ui.h:20 msgid "_Send" msgstr "送信する(_S)" #: ../input-pad/dialog.ui.h:22 msgid "Input Pad Troubleshoot" msgstr "インプットパッドトラブルシュート" #: ../input-pad/dialog.ui.h:24 #, no-c-format msgid "" "\n" "This application can be run either as a stand-alone program or under an " "input method application.\n" "If you wish to send multi-byte characters, this application needs to be run " "under an input method application.\n" "If you wish to send characters to X11 applications, those applications needs " "to allow send events. e.g.\n" "% xterm -xrm \"XTerm*allowSendEvents: true\"\n" "\n" "You also can copy pad files from /usr/share/input-pad/pad to $HOME/.config/" "pad to customize those in \"Custom Character\" pane." msgstr "" "\n" "このアプリケーションは、スタンドアロンプログラムとして、もしくは IM アプリケーションの元で実行可能です。\n" "マルチバイト文字を送る場合、このアプリケーションを IM アプリケーションの元で実行する必要があります。\n" "X11 アプリケーションに文字を送る場合、送信イベントを許可する必要があります。例:\n" "% xterm -xrm \"XTerm*allowSendEvents: true\"\n" "\n" "\"カスタム文字\" ペインにおけるパッドファイルをカスタマイズするために /usr/share/input-pad/pad から $HOME/." "config/pad にパッドファイルをコピーすることが可能です。" #: ../input-pad/dialog.ui.h:31 msgid "_OK" msgstr "" #: ../input-pad/dialog.ui.h:32 msgid "Configure Keyboard Layouts" msgstr "キーボードレイアウトを構成する" #: ../input-pad/dialog.ui.h:33 msgid "A_vailable layouts:" msgstr "利用可能なレイアウト(_V):" #: ../input-pad/dialog.ui.h:34 msgid "_Add" msgstr "" #: ../input-pad/dialog.ui.h:35 msgid "_Layouts shown in the list:" msgstr "リストに表示されるレイアウト(_L):" #: ../input-pad/dialog.ui.h:36 msgid "_Remove" msgstr "" #: ../input-pad/dialog.ui.h:37 msgid "_Options" msgstr "オプション(_O)" #: ../input-pad/dialog.ui.h:38 msgid "Configure Keyboard Options" msgstr "キーボードオプションを構成する" #: ../input-pad/dialog.ui.h:39 msgid "_Use the default keyboard option" msgstr "デフォルトのキーボードオプションを使用する(_U)" #: ../input-pad/dialog.ui.h:40 msgid "Use the defualt XKB option" msgstr "デフォルトの XKB オプションを使用する" #: ../input-pad/dialog.ui.h:41 msgid "Keyboard Option" msgstr "キーボードオプション" #: ../input-pad/dialog.ui.h:43 msgid "The input pad is a tool to send a character on button." msgstr "インプットパッドはボタン上の文字を送るツールです。" #: ../input-pad/dialog.ui.h:44 msgid "translator_credits" msgstr "translator_credits" #: ../input-pad/eek-gtk.c:65 msgid "Use libeek to draw keyboard" msgstr "キーボードを描画するために libeek を使用する" #: ../input-pad/eek-gtk.c:237 msgid "eekboard layout" msgstr "eekboard レイアウト" #: ../input-pad/eek-gtk.c:249 msgid "eekboard Options" msgstr "eekboard オプション" #: ../input-pad/eek-gtk.c:249 msgid "Show eekboard Options" msgstr "eekboard オプションを表示する" #: ../input-pad/unicode_block.h:37 msgid "Basic Latin" msgstr "基本ラテン文字" #: ../input-pad/unicode_block.h:40 msgid "Latin Extended-B" msgstr "ラテン文字拡張-B" #: ../input-pad/unicode_block.h:41 msgid "IPA Extensions" msgstr "IPA 拡張文字" #: ../input-pad/unicode_block.h:42 msgid "Spacing Modifier Letters" msgstr "空白変更文字" #: ../input-pad/unicode_block.h:43 msgid "Combining Diacritical Marks" msgstr "区別発音符の組み合わせ" #: ../input-pad/unicode_block.h:44 msgid "Greek and Coptic" msgstr "ギリシア文字・コプト文字" #: ../input-pad/unicode_block.h:45 msgid "Cyrillic" msgstr "キリル文字" #: ../input-pad/unicode_block.h:46 msgid "Cyrillic Supplement" msgstr "キリル文字 追加" #: ../input-pad/unicode_block.h:47 msgid "Armenian" msgstr "アルメニア文字" #: ../input-pad/unicode_block.h:48 msgid "Hebrew" msgstr "ヘブライ文字" #: ../input-pad/unicode_block.h:49 msgid "Arabic" msgstr "アラビア文字" #: ../input-pad/unicode_block.h:50 msgid "Syriac" msgstr "シリア文字" #: ../input-pad/unicode_block.h:51 msgid "Arabic Supplement" msgstr "アラビア文字 追加" #: ../input-pad/unicode_block.h:52 msgid "Thaana" msgstr "ターナ文字" #: ../input-pad/unicode_block.h:53 msgid "NKo" msgstr "NKo" #: ../input-pad/unicode_block.h:54 msgid "Samaritan" msgstr "サマリア文字" #: ../input-pad/unicode_block.h:55 msgid "Devanagari" msgstr "デーヴァナーガリー文字" #: ../input-pad/unicode_block.h:56 msgid "Bengali" msgstr "ベンガル文字" #: ../input-pad/unicode_block.h:57 msgid "Gurmukhi" msgstr "グルムキー文字" #: ../input-pad/unicode_block.h:58 msgid "Gujarati" msgstr "グジャラト文字" #: ../input-pad/unicode_block.h:59 msgid "Oriya" msgstr "オリヤ文字" #: ../input-pad/unicode_block.h:60 msgid "Tamil" msgstr "タミル文字" #: ../input-pad/unicode_block.h:61 msgid "Telugu" msgstr "テルグ文字" #: ../input-pad/unicode_block.h:62 msgid "Kannada" msgstr "カンナダ文字" #: ../input-pad/unicode_block.h:63 msgid "Malayalam" msgstr "マラヤラム文字" #: ../input-pad/unicode_block.h:64 msgid "Sinhala" msgstr "シンハラ文字" #: ../input-pad/unicode_block.h:65 msgid "Thai" msgstr "タイ文字" #: ../input-pad/unicode_block.h:66 msgid "Lao" msgstr "ラオ文字" #: ../input-pad/unicode_block.h:67 msgid "Tibetan" msgstr "チベット文字" #: ../input-pad/unicode_block.h:68 msgid "Myanmar" msgstr "ミャンマー文字" #: ../input-pad/unicode_block.h:69 msgid "Georgian" msgstr "グルジア文字" #: ../input-pad/unicode_block.h:70 msgid "Hangul Jamo" msgstr "ハングル字母" #: ../input-pad/unicode_block.h:71 msgid "Ethiopic" msgstr "エチオピア文字" #: ../input-pad/unicode_block.h:72 msgid "Ethiopic Supplement" msgstr "エチオピア文字 追加" #: ../input-pad/unicode_block.h:73 msgid "Cherokee" msgstr "チェロキー文字" #: ../input-pad/unicode_block.h:74 msgid "Unified Canadian Aboriginal Syllabics" msgstr "統合カナダ先住民族音節文字" #: ../input-pad/unicode_block.h:75 msgid "Ogham" msgstr "オガム文字" #: ../input-pad/unicode_block.h:76 msgid "Runic" msgstr "ルーン文字" #: ../input-pad/unicode_block.h:77 msgid "Tagalog" msgstr "タガログ文字" #: ../input-pad/unicode_block.h:78 msgid "Hanunoo" msgstr "ハヌノ文字" #: ../input-pad/unicode_block.h:79 msgid "Buhid" msgstr "ブーヒッド文字" #: ../input-pad/unicode_block.h:80 msgid "Tagbanwa" msgstr "タグバンワ文字" #: ../input-pad/unicode_block.h:81 msgid "Khmer" msgstr "クメール文字" #: ../input-pad/unicode_block.h:82 msgid "Mongolian" msgstr "モンゴル文字" #: ../input-pad/unicode_block.h:83 msgid "Unified Canadian Aboriginal Syllabics Extended" msgstr "統合カナダ先住民音節拡張" #: ../input-pad/unicode_block.h:84 msgid "Limbu" msgstr "リンブ文字" #: ../input-pad/unicode_block.h:85 msgid "Tai Le" msgstr "タイ・ル文字" #: ../input-pad/unicode_block.h:86 msgid "New Tai Lue" msgstr "新タイ・ルー文字" #: ../input-pad/unicode_block.h:87 msgid "Khmer Symbols" msgstr "クメール文字 記号" #: ../input-pad/unicode_block.h:88 msgid "Buginese" msgstr "ブギ文字" #: ../input-pad/unicode_block.h:89 msgid "Tai Tham" msgstr "タイ・ラーンナー文字" #: ../input-pad/unicode_block.h:90 msgid "Balinese" msgstr "バリ文字" #: ../input-pad/unicode_block.h:91 msgid "Sundanese" msgstr "スンダ文字" #: ../input-pad/unicode_block.h:92 msgid "Lepcha" msgstr "レプチャ文字" #: ../input-pad/unicode_block.h:93 msgid "Ol Chiki" msgstr "サンターリー文字" #: ../input-pad/unicode_block.h:94 msgid "Vedic Extensions" msgstr "ヴェーダ文字拡張" #: ../input-pad/unicode_block.h:95 msgid "Phonetic Extensions" msgstr "表音文字拡張" #: ../input-pad/unicode_block.h:96 msgid "Phonetic Extensions Supplement" msgstr "表音文字拡張 追加" #: ../input-pad/unicode_block.h:97 msgid "Combining Diacritical Marks Supplement" msgstr "記号用区別発音符 追加" #: ../input-pad/unicode_block.h:98 msgid "Latin Extended Additional" msgstr "ラテン文字拡張 追加" #: ../input-pad/unicode_block.h:99 msgid "Greek Extended" msgstr "ギリシア文字拡張" #: ../input-pad/unicode_block.h:100 msgid "General Punctuation" msgstr "一般的な句読点" #: ../input-pad/unicode_block.h:101 msgid "Superscripts and Subscripts" msgstr "上付き文字・下付き文字" #: ../input-pad/unicode_block.h:102 msgid "Currency Symbols" msgstr "通貨記号" #: ../input-pad/unicode_block.h:103 msgid "Combining Diacritical Marks for Symbols" msgstr "記号用区別発音符の組み合わせ" #: ../input-pad/unicode_block.h:104 msgid "Letterlike Symbols" msgstr "字様記号" #: ../input-pad/unicode_block.h:105 msgid "Number Forms" msgstr "数字字形" #: ../input-pad/unicode_block.h:106 msgid "Arrows" msgstr "矢印" #: ../input-pad/unicode_block.h:107 msgid "Mathematical Operators" msgstr "数学演算子" #: ../input-pad/unicode_block.h:108 msgid "Miscellaneous Technical" msgstr "その他の技術用記号" #: ../input-pad/unicode_block.h:109 msgid "Control Pictures" msgstr "制御記号" #: ../input-pad/unicode_block.h:110 msgid "Optical Character Recognition" msgstr "光学式文字認識記号" #: ../input-pad/unicode_block.h:111 msgid "Enclosed Alphanumerics" msgstr "囲み英数字" #: ../input-pad/unicode_block.h:113 msgid "Block Elements" msgstr "ブロック要素" #: ../input-pad/unicode_block.h:114 msgid "Geometric Shapes" msgstr "幾何学模様" #: ../input-pad/unicode_block.h:115 msgid "Miscellaneous Symbols" msgstr "その他の記号" #: ../input-pad/unicode_block.h:117 msgid "Miscellaneous Mathematical Symbols-A" msgstr "その他の数学記号-A" #: ../input-pad/unicode_block.h:118 msgid "Supplemental Arrows-A" msgstr "矢印補足-A" #: ../input-pad/unicode_block.h:119 msgid "Braille Patterns" msgstr "ブライユ点字図形" #: ../input-pad/unicode_block.h:120 msgid "Supplemental Arrows-B" msgstr "矢印補足-B" #: ../input-pad/unicode_block.h:121 msgid "Miscellaneous Mathematical Symbols-B" msgstr "その他の数学記号-B" #: ../input-pad/unicode_block.h:122 msgid "Supplemental Mathematical Operators" msgstr "数学演算子補足" #: ../input-pad/unicode_block.h:123 msgid "Miscellaneous Symbols and Arrows" msgstr "その他の記号・矢印" #: ../input-pad/unicode_block.h:124 msgid "Glagolitic" msgstr "グラゴール文字" #: ../input-pad/unicode_block.h:125 msgid "Latin Extended-C" msgstr "ラテン文字拡張-C" #: ../input-pad/unicode_block.h:126 msgid "Coptic" msgstr "コプト文字" #: ../input-pad/unicode_block.h:127 msgid "Georgian Supplement" msgstr "グルジア文字 追加" #: ../input-pad/unicode_block.h:128 msgid "Tifinagh" msgstr "ティフナグ文字" #: ../input-pad/unicode_block.h:129 msgid "Ethiopic Extended" msgstr "エチオピア文字拡張" #: ../input-pad/unicode_block.h:130 msgid "Cyrillic Extended-A" msgstr "キリル文字拡張-A" #: ../input-pad/unicode_block.h:131 msgid "Supplemental Punctuation" msgstr "追加句読点" #: ../input-pad/unicode_block.h:133 msgid "Kangxi Radicals" msgstr "康熈部首" #: ../input-pad/unicode_block.h:134 msgid "Ideographic Description Characters" msgstr "表意記述文字" #: ../input-pad/unicode_block.h:135 msgid "CJK Symbols and Punctuation" msgstr "CJK 記号・句読点" #: ../input-pad/unicode_block.h:139 msgid "Hangul Compatibility Jamo" msgstr "ハングル互換字母" #: ../input-pad/unicode_block.h:140 msgid "Kanbun" msgstr "漢文" #: ../input-pad/unicode_block.h:141 msgid "Bopomofo Extended" msgstr "中音字母拡張" #: ../input-pad/unicode_block.h:142 msgid "CJK Strokes" msgstr "CJK 字画" #: ../input-pad/unicode_block.h:143 msgid "Katakana Phonetic Extensions" msgstr "カタカナ表音拡張" #: ../input-pad/unicode_block.h:144 msgid "Enclosed CJK Letters and Months" msgstr "囲み CJK 文字・月" #: ../input-pad/unicode_block.h:146 msgid "CJK Unified Ideographs Extension A" msgstr "CJK 表意文字拡張 A" #: ../input-pad/unicode_block.h:147 msgid "Yijing Hexagram Symbols" msgstr "易経八卦記号" #: ../input-pad/unicode_block.h:148 msgid "CJK Unified Ideographs" msgstr "CJK 統一表意文字" #: ../input-pad/unicode_block.h:149 msgid "Yi Syllables" msgstr "イ音節文字" #: ../input-pad/unicode_block.h:150 msgid "Yi Radicals" msgstr "イ文字部首" #: ../input-pad/unicode_block.h:151 msgid "Lisu" msgstr "リス文字" #: ../input-pad/unicode_block.h:152 msgid "Vai" msgstr "ヴァイ文字" #: ../input-pad/unicode_block.h:153 msgid "Cyrillic Extended-B" msgstr "キリル文字拡張-B" #: ../input-pad/unicode_block.h:154 msgid "Bamum" msgstr "バムン文字" #: ../input-pad/unicode_block.h:155 msgid "Modifier Tone Letters" msgstr "声調記号" #: ../input-pad/unicode_block.h:156 msgid "Latin Extended-D" msgstr "ラテン文字拡張-D" #: ../input-pad/unicode_block.h:157 msgid "Syloti Nagri" msgstr "シロティ・ナグリ文字" #: ../input-pad/unicode_block.h:158 msgid "Common Indic Number Forms" msgstr "共通インド数字形" #: ../input-pad/unicode_block.h:159 msgid "Phags-pa" msgstr "パスパ文字" #: ../input-pad/unicode_block.h:160 msgid "Saurashtra" msgstr "サウラーシュトラ文字" #: ../input-pad/unicode_block.h:161 msgid "Devanagari Extended" msgstr "デーヴァナーガリー文字拡張" #: ../input-pad/unicode_block.h:162 msgid "Kayah Li" msgstr "カヤー文字" #: ../input-pad/unicode_block.h:163 msgid "Rejang" msgstr "ルジャン文字" #: ../input-pad/unicode_block.h:164 msgid "Hangul Jamo Extended-A" msgstr "ハングル字母拡張-A" #: ../input-pad/unicode_block.h:165 msgid "Javanese" msgstr "ジャワ文字" #: ../input-pad/unicode_block.h:166 msgid "Cham" msgstr "チャム文字" #: ../input-pad/unicode_block.h:167 msgid "Myanmar Extended-A" msgstr "ミャンマー文字拡張-A" #: ../input-pad/unicode_block.h:168 msgid "Tai Viet" msgstr "タイ・ヴェト文字" #: ../input-pad/unicode_block.h:169 msgid "Meetei Mayek" msgstr "マニプリ文字" #: ../input-pad/unicode_block.h:170 msgid "Hangul Syllables" msgstr "ハングル音節文字" #: ../input-pad/unicode_block.h:171 msgid "Hangul Jamo Extended-B" msgstr "ハングル字母拡張-B" #: ../input-pad/unicode_block.h:172 msgid "High Surrogates" msgstr "上位サロゲート" #: ../input-pad/unicode_block.h:173 msgid "High Private Use Surrogates" msgstr "上位私用サロゲート" #: ../input-pad/unicode_block.h:174 msgid "Low Surrogates" msgstr "下位サロゲート" #: ../input-pad/unicode_block.h:175 msgid "Private Use Area" msgstr "私用領域" #: ../input-pad/unicode_block.h:176 msgid "CJK Compatibility Ideographs" msgstr "CJK 互換表意文字" #: ../input-pad/unicode_block.h:177 msgid "Alphabetic Presentation Forms" msgstr "アルファベット表記字形" #: ../input-pad/unicode_block.h:178 msgid "Arabic Presentation Forms-A" msgstr "アラビア文字表意字形-A" #: ../input-pad/unicode_block.h:179 msgid "Variation Selectors" msgstr "バリエーション・セレクタ" #: ../input-pad/unicode_block.h:180 msgid "Vertical Forms" msgstr "縦書用句読点" #: ../input-pad/unicode_block.h:181 msgid "Combining Half Marks" msgstr "半マークの組み合わせ" #: ../input-pad/unicode_block.h:182 msgid "CJK Compatibility Forms" msgstr "CJK 互換字形" #: ../input-pad/unicode_block.h:183 msgid "Small Form Variants" msgstr "小さい字形の変体" #: ../input-pad/unicode_block.h:184 msgid "Arabic Presentation Forms-B" msgstr "アラビア文字表意字形-B" #: ../input-pad/unicode_block.h:185 msgid "Halfwidth and Fullwidth Forms" msgstr "半角・全角字形" #: ../input-pad/unicode_block.h:186 msgid "Specials" msgstr "特殊記号" #: ../input-pad/unicode_block.h:187 msgid "Linear B Syllabary" msgstr "線文字 B 音節文字" #: ../input-pad/unicode_block.h:188 msgid "Linear B Ideograms" msgstr "線文字 B 表意文字" #: ../input-pad/unicode_block.h:189 msgid "Aegean Numbers" msgstr "エーゲ海文明数字" #: ../input-pad/unicode_block.h:190 msgid "Ancient Greek Numbers" msgstr "古代ギリシア数字" #: ../input-pad/unicode_block.h:191 msgid "Ancient Symbols" msgstr "古代記号" #: ../input-pad/unicode_block.h:192 msgid "Phaistos Disc" msgstr "ファイストスの円盤の文字" #: ../input-pad/unicode_block.h:193 msgid "Lycian" msgstr "リキア文字" #: ../input-pad/unicode_block.h:194 msgid "Carian" msgstr "カリア文字" #: ../input-pad/unicode_block.h:195 msgid "Old Italic" msgstr "オールド・イタリック" #: ../input-pad/unicode_block.h:197 msgid "Ugaritic" msgstr "ウガリト文字" #: ../input-pad/unicode_block.h:198 msgid "Old Persian" msgstr "楔形文字" #: ../input-pad/unicode_block.h:199 msgid "Deseret" msgstr "デゼレット文字" #: ../input-pad/unicode_block.h:201 msgid "Osmanya" msgstr "オスマンヤ文字" #: ../input-pad/unicode_block.h:202 msgid "Cypriot Syllabary" msgstr "キプロス音節文字" #: ../input-pad/unicode_block.h:203 msgid "Imperial Aramaic" msgstr "アラム文字" #: ../input-pad/unicode_block.h:204 msgid "Phoenician" msgstr "フェニキア文字" #: ../input-pad/unicode_block.h:205 msgid "Lydian" msgstr "リディア文字" #: ../input-pad/unicode_block.h:206 msgid "Kharoshthi" msgstr "カローシュティ文字" #: ../input-pad/unicode_block.h:207 msgid "Old South Arabian" msgstr "古典南アラビア文字" #: ../input-pad/unicode_block.h:208 msgid "Avestan" msgstr "アヴェスター文字" #: ../input-pad/unicode_block.h:209 msgid "Inscriptional Parthian" msgstr "碑文パルティア文字" #: ../input-pad/unicode_block.h:210 msgid "Inscriptional Pahlavi" msgstr "碑文パフラヴィー文字" #: ../input-pad/unicode_block.h:211 msgid "Old Turkic" msgstr "古テュルク文字" #: ../input-pad/unicode_block.h:212 msgid "Rumi Numeral Symbols" msgstr "ルーミー数字記号" #: ../input-pad/unicode_block.h:213 msgid "Kaithi" msgstr "カイティ文字" #: ../input-pad/unicode_block.h:214 msgid "Cuneiform" msgstr "くさび形文字" #: ../input-pad/unicode_block.h:215 msgid "Cuneiform Numbers and Punctuation" msgstr "くさび形数値と句読点" #: ../input-pad/unicode_block.h:216 msgid "Egyptian Hieroglyphs" msgstr "ヒエログリフ文字" #: ../input-pad/unicode_block.h:217 msgid "Byzantine Musical Symbols" msgstr "ビザンチン音楽記号" #: ../input-pad/unicode_block.h:218 msgid "Musical Symbols" msgstr "音楽記号" #: ../input-pad/unicode_block.h:219 msgid "Ancient Greek Musical Notation" msgstr "古代ギリシア音楽記号" #: ../input-pad/unicode_block.h:220 msgid "Tai Xuan Jing Symbols" msgstr "タイ・クァン・ジン記号" #: ../input-pad/unicode_block.h:221 msgid "Counting Rod Numerals" msgstr "算籌数字" #: ../input-pad/unicode_block.h:222 msgid "Mathematical Alphanumeric Symbols" msgstr "数学用英数字記号" #: ../input-pad/unicode_block.h:223 msgid "Mahjong Tiles" msgstr "麻雀牌" #: ../input-pad/unicode_block.h:224 msgid "Domino Tiles" msgstr "ドミノ牌" #: ../input-pad/unicode_block.h:225 msgid "Enclosed Alphanumeric Supplement" msgstr "囲み英数字補足" #: ../input-pad/unicode_block.h:226 msgid "Enclosed Ideographic Supplement" msgstr "囲みエチオピア文字補足" #: ../input-pad/unicode_block.h:227 msgid "CJK Unified Ideographs Extension B" msgstr "CJK 統一表意文字拡張 B" #: ../input-pad/unicode_block.h:228 msgid "CJK Unified Ideographs Extension C" msgstr "CJK 表意文字拡張 C" #: ../input-pad/unicode_block.h:229 msgid "CJK Compatibility Ideographs Supplement" msgstr "CJK 互換表意文字補足" #: ../input-pad/unicode_block.h:230 msgid "Tags" msgstr "タグ記号" #: ../input-pad/unicode_block.h:231 msgid "Variation Selectors Supplement" msgstr "バリエーション・セレクタ補足" #: ../input-pad/unicode_block.h:232 msgid "Supplementary Private Use Area-A" msgstr "補足私用領域-A" #: ../input-pad/unicode_block.h:233 msgid "Supplementary Private Use Area-B" msgstr "補足私用領域-B" #: ../input-pad/window-gtk.c:203 msgid "Display version" msgstr "バージョンを表示する" #. Translators: the word 'KBDUI' is not translated. #: ../input-pad/window-gtk.c:206 msgid "Use KBDUI to draw keyboard" msgstr "キーボードを描画するために KBDUI を使用する" #. Translators: the word 'TYPE' is not translated. #: ../input-pad/window-gtk.c:209 msgid "Use TYPE of char table. The available TYPE=0, 1, 2" msgstr "文字テーブルの TYPE を使用する。利用可能な TYPE=0, 1, 2" #. Translators: the word 'TYPE' is not translated. #: ../input-pad/window-gtk.c:212 msgid "Use TYPE of keyboard layout. The available TYPE=0, 1" msgstr "キーボードレイアウトの TYPE を使用する。利用可能な TYPE=0, 1" #: ../input-pad/window-gtk.c:219 msgid "Use XTEST module to send key events" msgstr "キーイベントを送るために XTEST モジュールを使用する" #: ../input-pad/window-gtk.c:224 msgid "Use XSendEvent to send key events" msgstr "キーイベントを送るために XSendEvent を使用する" #: ../input-pad/window-gtk.c:1172 msgid "Fold layout" msgstr "レイアウトを折りたたむ" #: ../input-pad/window-gtk.c:1177 ../input-pad/window-gtk.c:2610 msgid "Extend layout" msgstr "レイアウトを広げる" #: ../input-pad/window-gtk.c:2824 msgid "Layout" msgstr "レイアウト" #: ../input-pad/window-gtk.c:3095 msgid "_Layout:" msgstr "レイアウト(_L):" #: ../input-pad/window-gtk.c:3125 msgid "_Configure Layouts" msgstr "レイアウトを構成する(_C)" #. No longer used in gtk 2.20 #. gchar *license1, *license2, *license3; #. license1 = _("" #. "This library is free software; you can redistribute it and/or " #. "modify it under the terms of the GNU Lesser General Public " #. "License as published by the Free Software Foundation; either " #. "version 2 of the License, or (at your option) any later version."); #. #. license2 = _("" #. "This library is distributed in the hope that it will be useful, " #. "but WITHOUT ANY WARRANTY; without even the implied warranty of " #. "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU " #. "Lesser General Public License for more details."); #. #. license3 = _("" #. "You should have received a copy of the GNU Lesser General Public " #. "License along with this library; if not, write to the Free Software " #. "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, " #. "MA 02110-1301 USA"); #. #. license = g_strdup_printf ("%s\n\n%s\n\n%s", #. license1, license2, license3); #. #. This format has been used since gtk 2.20. #: ../input-pad/window-gtk.c:3164 #, c-format msgid "This program comes with ABSOLUTELY NO WARRANTY; for details, visit %s" msgstr "このプログラムは完全に無保証で提供しています。詳細は、%s を見てください。" #: ../input-pad/window-gtk.c:3446 msgid "Group" msgstr "グループ" #: ../input-pad/window-gtk.c:3454 msgid "Subgroup" msgstr "サブグループ" input-pad-1.1.0/po/ka.po000066400000000000000000002516561476727667600150360ustar00rootroot00000000000000# Georgian translations for input-pad # Copyright (C) 2010-2025 Takao Fujiwara # This file is distributed under the same license as the input-pad package. # # Temuri Doghonadze , 2024. # Weblate Translation Memory , 2024. msgid "" msgstr "" "Project-Id-Version: input-pad HEAD\n" "Report-Msgid-Bugs-To: http://code.google.com/p/input-pad/issues/list\n" "POT-Creation-Date: 2020-01-15 19:08+0900\n" "PO-Revision-Date: 2024-02-26 12:36+0000\n" "Last-Translator: Weblate Translation Memory \n" "Language-Team: Georgian \n" "Language: ka\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: Weblate 5.4\n" #: ../data/alphabet.xml.in.in:1 msgid "Alphabets" msgstr "ანბანები" #: ../data/base.xml.in:1 msgid "Symbols" msgstr "სიმბოლოები" #: ../data/base.xml.in:2 msgid "Currency" msgstr "ფული" #: ../data/base.xml.in:3 msgid "Letterlike" msgstr "" #: ../data/base.xml.in:4 msgid "Miscellaneous" msgstr "სხვადასხვა" #: ../data/base.xml.in:5 ../input-pad/unicode_block.h:116 msgid "Dingbats" msgstr "სისულელეები" #. Translators: Superscripts and Subscripts #: ../data/base.xml.in:7 msgid "Super and Sub" msgstr "" #: ../data/base.xml.in:8 msgid "Bold" msgstr "სქელი" #: ../data/base.xml.in:9 msgid "Italic" msgstr "დახრა" #: ../data/base.xml.in:10 msgid "Script" msgstr "სკრიპტი" #: ../data/base.xml.in:11 msgid "Double Struck" msgstr "" #: ../data/base.xml.in:12 msgid "All" msgstr "ყველა" #: ../data/base.xml.in:13 ../data/zh.xml.in.h:2 msgid "Numbers" msgstr "რიცხვები" #: ../data/base.xml.in:14 msgid "Roman" msgstr "რომანული" #: ../data/base.xml.in:15 msgid "Enclosed" msgstr "ჩასმული" #: ../data/base.xml.in:16 msgid "Fraction" msgstr "ნაწილი" #: ../data/base.xml.in:17 msgid "Technical" msgstr "ტექნიკური" #: ../data/base.xml.in:18 msgid "Unit" msgstr "ერთეული" #: ../data/base.xml.in:19 msgid "Mathematical" msgstr "მათემატიკური" #: ../data/base.xml.in:20 msgid "Controls" msgstr "მმართველები" #: ../data/base.xml.in:21 msgid "OCR" msgstr "OCR" #: ../data/base.xml.in:22 msgid "Graphics" msgstr "გრაფიკა" #: ../data/base.xml.in:23 msgid "Arrow" msgstr "ისარი" #: ../data/base.xml.in:24 ../input-pad/unicode_block.h:112 msgid "Box Drawing" msgstr "ყუთის ნახატი" #: ../data/base.xml.in:25 ../input-pad/window-gtk.c:3694 msgid "Block" msgstr "ბლოკი" #: ../data/base.xml.in:26 msgid "Geometric" msgstr "გეომეტრიული" #: ../data/base.xml.in:27 msgid "Braille" msgstr "ბრაილური" #: ../data/base.xml.in:28 msgid "Punctuations" msgstr "პუნქტუაცია" #: ../data/base.xml.in:29 msgid "General" msgstr "ზოგადი" #: ../data/base.xml.in:30 msgid "CJK" msgstr "CJK" #: ../data/base.xml.in:31 ../input-pad/unicode_block.h:145 msgid "CJK Compatibility" msgstr "CJK-სთან თავსებადობა" #: ../data/base.xml.in:32 msgid "Small Form" msgstr "პატარა ფორმა" #: ../data/cmd.xml.in:1 msgid "Command" msgstr "ბრძანება" #: ../data/cmd.xml.in:2 msgid "Date" msgstr "თარიღი" #: ../data/cmd.xml.in:3 msgid "Normal Date" msgstr "ნორმალური თარიღი" #: ../data/cmd.xml.in:4 msgid "Date and Time" msgstr "თარიღი და დრო" #: ../data/cmd.xml.in:5 msgid "ChangeLog date" msgstr "ცვლილებების ჟურნალის თარიღი" #: ../data/cmd.xml.in:6 msgid "USA English date" msgstr "" #: ../data/cmd.xml.in:7 msgid "UK English date" msgstr "" #: ../data/cmd.xml.in:8 msgid "ISO 8601 date" msgstr "ISO 8601 თარიღი" #: ../data/cmd.xml.in:9 msgid "Era" msgstr "ერა" #: ../data/cmd.xml.in:10 msgid "Century Year" msgstr "" #: ../data/cmd.xml.in:11 msgid "Normal Time" msgstr "" #: ../data/cmd.xml.in:12 msgid "English Time" msgstr "" #: ../data/cmd.xml.in:13 msgid "Month" msgstr "თვე" #: ../data/cmd.xml.in:14 msgid "English Month" msgstr "" #: ../data/cmd.xml.in:15 msgid "Short Month" msgstr "" #: ../data/cmd.xml.in:16 msgid "English Short Month" msgstr "" #: ../data/cmd.xml.in:17 msgid "Weekday" msgstr "კვირის დღე" #: ../data/cmd.xml.in:18 msgid "English Weekday" msgstr "" #: ../data/cmd.xml.in:19 msgid "Short Weekday" msgstr "" #: ../data/cmd.xml.in:20 msgid "English Short Weekday" msgstr "" #: ../data/goth.xml.in:1 ../input-pad/unicode_block.h:196 msgid "Gothic" msgstr "გოთური" #: ../data/input-pad.desktop.in:1 ../input-pad/dialog.ui.h:42 #: ../input-pad/window-gtk.c:5093 ../input-pad/window-gtk.c:5094 #: ../input-pad/window-gtk.ui.h:1 msgid "Input Pad" msgstr "" #. "IPA" stands for "International Phonetic Alphabet" #: ../data/ipa-obsolete.xml.in:2 msgid "IPA (Obsolete)" msgstr "" #: ../data/ipa-obsolete.xml.in:3 ../data/ipa.xml.in.h:6 msgid "Open back unrounded vowel" msgstr "" #: ../data/ipa-obsolete.xml.in:4 msgid "Palatalized voiced bilabial plosive" msgstr "" #: ../data/ipa-obsolete.xml.in:5 msgid "Voiceless palatal implosive" msgstr "" #: ../data/ipa-obsolete.xml.in:6 ../data/ipa.xml.in.h:138 msgid "Alveolar click" msgstr "" #: ../data/ipa-obsolete.xml.in:7 msgid "Palatalized voiced alveolar plosive" msgstr "" #: ../data/ipa-obsolete.xml.in:8 ../data/ipa.xml.in.h:25 msgid "Voiced alveolar affricate" msgstr "" #: ../data/ipa-obsolete.xml.in:9 ../data/ipa.xml.in.h:27 msgid "Voiced alveopalatal affricate" msgstr "" #: ../data/ipa-obsolete.xml.in:10 ../data/ipa.xml.in.h:26 msgid "Voiced palato-alveolar affricate" msgstr "" #: ../data/ipa-obsolete.xml.in:11 msgid "Palatalized voiceless labiodental fricative" msgstr "" #: ../data/ipa-obsolete.xml.in:12 msgid "Palatalized voiced velar plosive" msgstr "" #: ../data/ipa-obsolete.xml.in:13 msgid "Palatalized voiceless velar plosive" msgstr "" #: ../data/ipa-obsolete.xml.in:14 msgid "Voiceless velar implosive" msgstr "" #: ../data/ipa-obsolete.xml.in:15 msgid "Palatalized alveolar lateral approximant" msgstr "" #: ../data/ipa-obsolete.xml.in:16 msgid "Palatalized bilabial nasal" msgstr "" #: ../data/ipa-obsolete.xml.in:17 msgid "Palatalized alveolar nasal" msgstr "" #: ../data/ipa-obsolete.xml.in:18 msgid "Syllabic alveolar nasal" msgstr "" #: ../data/ipa-obsolete.xml.in:19 msgid "Palatalized voiceless bilabial plosive" msgstr "" #: ../data/ipa-obsolete.xml.in:20 msgid "Voiceless bilabial implosive" msgstr "" #: ../data/ipa-obsolete.xml.in:21 msgid "Palatalized alveolar trill" msgstr "" #: ../data/ipa-obsolete.xml.in:22 msgid "Voiced strident apico-alveolar trill" msgstr "" #: ../data/ipa-obsolete.xml.in:23 msgid "Palatalized voiceless alveolar fricative" msgstr "" #: ../data/ipa-obsolete.xml.in:24 ../data/ipa.xml.in.h:19 msgid "Voiceless alveopalatal fricative" msgstr "" #: ../data/ipa-obsolete.xml.in:25 msgid "Labialized voiceless palato-alveolar fricative" msgstr "" #: ../data/ipa-obsolete.xml.in:26 ../data/ipa.xml.in.h:103 msgid "Voiceless alveopalatal affricate" msgstr "" #: ../data/ipa-obsolete.xml.in:27 ../data/ipa.xml.in.h:101 msgid "Voiceless alveolar affricate" msgstr "" #: ../data/ipa-obsolete.xml.in:28 ../data/ipa.xml.in.h:102 msgid "Voiceless palato-alveolar affricate" msgstr "" #: ../data/ipa-obsolete.xml.in:29 msgid "Palatalized voiceless alveolar plosive" msgstr "" #: ../data/ipa-obsolete.xml.in:30 msgid "Voiceless alveolar implosive" msgstr "" #: ../data/ipa-obsolete.xml.in:31 ../data/ipa.xml.in.h:137 msgid "Dental click" msgstr "" #: ../data/ipa-obsolete.xml.in:32 msgid "Voiceless uvular implosive" msgstr "" #: ../data/ipa-obsolete.xml.in:33 msgid "Palatalized voiced labiodental fricative" msgstr "" #: ../data/ipa-obsolete.xml.in:34 msgid "Palatalized voiceless velar fricative" msgstr "" #: ../data/ipa-obsolete.xml.in:35 msgid "Palatalized voiced alveolar fricative" msgstr "" #: ../data/ipa-obsolete.xml.in:36 msgid "Labialized voiced palato-alveolar fricative" msgstr "" #: ../data/ipa-obsolete.xml.in:37 ../data/ipa.xml.in.h:128 msgid "Voiced alveopalatal fricative" msgstr "" #: ../data/ipa-obsolete.xml.in:38 ../data/ipa.xml.in.h:106 msgid "Near-close near-back vowel" msgstr "" #: ../data/ipa-obsolete.xml.in:39 ../data/ipa.xml.in.h:140 msgid "Alveolar lateral click" msgstr "" #: ../data/ipa-obsolete.xml.in:40 msgid "Labialized voiceless alveolar or dental fricative" msgstr "" #: ../data/ipa-obsolete.xml.in:41 msgid "Labialized voiced alveolar or dental fricative" msgstr "" #: ../data/ipa-obsolete.xml.in:42 msgid "Combining labialization mark" msgstr "" #: ../data/ipa-obsolete.xml.in:43 msgid "Combining palatalization mark" msgstr "" #. "IPA" stands for "International Phonetic Alphabet" #: ../data/ipa-unofficial.xml.in:2 msgid "IPA (Unofficial)" msgstr "" #: ../data/ipa-unofficial.xml.in:3 msgid "Voiced labiodental plosive" msgstr "" #: ../data/ipa-unofficial.xml.in:4 ../data/ipa.xml.in.h:18 msgid "Voiceless palatal lateral affricate" msgstr "" #: ../data/ipa-unofficial.xml.in:5 msgid "Voiced retroflex implosive" msgstr "" #: ../data/ipa-unofficial.xml.in:6 ../data/ipa.xml.in.h:88 msgid "Alveolar flap" msgstr "" #: ../data/ipa-unofficial.xml.in:7 ../data/ipa.xml.in.h:125 msgid "Voiceless palatal lateral fricative" msgstr "" #: ../data/ipa-unofficial.xml.in:8 ../data/ipa.xml.in.h:91 msgid "Retroflex flap" msgstr "" #: ../data/ipa-unofficial.xml.in:9 msgid "Voiceless retroflex lateral fricative" msgstr "" #. "PUA" stands for "Private Use Area" #: ../data/ipa-unofficial.xml.in:11 msgid "Voiceless retroflex lateral fricative (PUA)" msgstr "" #: ../data/ipa-unofficial.xml.in:12 ../data/ipa.xml.in.h:59 msgid "Voiceless velar lateral affricate" msgstr "" #: ../data/ipa-unofficial.xml.in:13 ../data/ipa.xml.in.h:68 msgid "Voiceless velar lateral fricative" msgstr "" #: ../data/ipa-unofficial.xml.in:14 msgid "Epiglottal trill" msgstr "" #: ../data/ipa-unofficial.xml.in:15 msgid "Voiceless labiodental plosive" msgstr "" #: ../data/ipa-unofficial.xml.in:16 msgid "Voiceless retroflex lateral affricate" msgstr "" #. "PUA" stands for "Private Use Area" #: ../data/ipa-unofficial.xml.in:18 msgid "Voiceless retroflex lateral affricate (PUA)" msgstr "" #: ../data/ipa-unofficial.xml.in:19 msgid "Combining stridency mark" msgstr "" #. "PUA" stands for "Private Use Area" #: ../data/ipa-unofficial.xml.in:21 msgid "Combining stridency mark (PUA)" msgstr "" #. "IPA" stands for "International Phonetic Alphabet" #: ../data/ipa.xml.in:2 msgid "IPA" msgstr "IPA" #: ../data/ipa.xml.in:3 msgid "Open front unrounded vowel" msgstr "" #: ../data/ipa.xml.in:4 msgid "Open central unrounded vowel" msgstr "" #: ../data/ipa.xml.in:5 msgid "Near-open central vowel" msgstr "" #: ../data/ipa.xml.in:7 msgid "Open back rounded vowel" msgstr "" #: ../data/ipa.xml.in:8 msgid "Open-mid back unrounded vowel" msgstr "" #: ../data/ipa.xml.in:9 msgid "Near-open front unrounded vowel" msgstr "" #: ../data/ipa.xml.in:10 msgid "Voiced bilabial plosive" msgstr "" #: ../data/ipa.xml.in:11 msgid "Voiced labiodental affricate" msgstr "" #: ../data/ipa.xml.in:12 msgid "Voiced bilabial implosive" msgstr "" #: ../data/ipa.xml.in:13 msgid "Bilabial trill" msgstr "" #: ../data/ipa.xml.in:14 msgid "Voiced bilabial fricative" msgstr "" #: ../data/ipa.xml.in:15 msgid "Voiceless palatal plosive" msgstr "" #: ../data/ipa.xml.in:16 msgid "Voiceless palatal fricative" msgstr "" #: ../data/ipa.xml.in:17 msgid "Voiceless palatal affricate" msgstr "" #: ../data/ipa.xml.in:20 msgid "Voiced alveolar plosive" msgstr "" #: ../data/ipa.xml.in:21 msgid "Voiced alveolar implosive" msgstr "" #: ../data/ipa.xml.in:22 msgid "Voiced retroflex plosive" msgstr "" #: ../data/ipa.xml.in:23 msgid "Voiced dental fricative" msgstr "" #: ../data/ipa.xml.in:24 msgid "Voiced alveolar lateral affricate" msgstr "" #: ../data/ipa.xml.in:28 msgid "Voiced retroflex affricate" msgstr "" #: ../data/ipa.xml.in:29 msgid "Close-mid front unrounded vowel" msgstr "" #: ../data/ipa.xml.in:30 msgid "Close-mid central unrounded vowel" msgstr "" #: ../data/ipa.xml.in:31 msgid "Mid-central vowel" msgstr "" #: ../data/ipa.xml.in:32 msgid "Rhotacized mid-central vowel" msgstr "" #: ../data/ipa.xml.in:33 msgid "Open-mid front unrounded vowel" msgstr "" #: ../data/ipa.xml.in:34 msgid "Open-mid central rounded vowel" msgstr "" #: ../data/ipa.xml.in:35 msgid "Open-mid central unrounded vowel" msgstr "" #: ../data/ipa.xml.in:36 msgid "Rhotacized open-mid central unrounded vowel" msgstr "" #: ../data/ipa.xml.in:37 msgid "Voiceless labiodental fricative" msgstr "" #: ../data/ipa.xml.in:38 msgid "Velopharyngeal fricative" msgstr "" #: ../data/ipa.xml.in:39 msgid "Voiced velar plosive" msgstr "" #: ../data/ipa.xml.in:40 msgid "Voiced labial-velar plosive" msgstr "" #: ../data/ipa.xml.in:41 msgid "Voiced velar implosive" msgstr "" #: ../data/ipa.xml.in:42 msgid "Voiced uvular plosive" msgstr "" #: ../data/ipa.xml.in:43 msgid "Voiced uvular implosive" msgstr "" #: ../data/ipa.xml.in:44 msgid "Voiceless glottal fricative" msgstr "" #: ../data/ipa.xml.in:45 msgid "Voiced glottal fricative" msgstr "" #: ../data/ipa.xml.in:46 msgid "Voiceless pharyngeal fricative" msgstr "" #: ../data/ipa.xml.in:47 msgid "Voiceless coarticulated velar and palato-alveolar fricative" msgstr "" #: ../data/ipa.xml.in:48 msgid "Voiceless epiglottal fricative" msgstr "" #: ../data/ipa.xml.in:49 msgid "Close front unrounded vowel" msgstr "" #: ../data/ipa.xml.in:50 msgid "Near-close near-front unrounded vowel" msgstr "" #: ../data/ipa.xml.in:51 msgid "Near-close central unrounded vowel" msgstr "" #: ../data/ipa.xml.in:52 msgid "Close central unrounded vowel" msgstr "" #: ../data/ipa.xml.in:53 msgid "Palatal approximant" msgstr "" #: ../data/ipa.xml.in:54 msgid "Voiced palatal fricative" msgstr "" #: ../data/ipa.xml.in:55 msgid "Voiced palatal plosive" msgstr "" #: ../data/ipa.xml.in:56 msgid "Voiced palatal affricate" msgstr "" #: ../data/ipa.xml.in:57 msgid "Voiced palatal implosive" msgstr "" #: ../data/ipa.xml.in:58 msgid "Voiceless velar plosive" msgstr "" #: ../data/ipa.xml.in:60 msgid "Voiceless labial-velar plosive" msgstr "" #: ../data/ipa.xml.in:61 msgid "Voiceless velar affricate" msgstr "" #: ../data/ipa.xml.in:62 msgid "Alveolar lateral approximant" msgstr "" #: ../data/ipa.xml.in:63 msgid "Velarized alveolar lateral approximant" msgstr "" #: ../data/ipa.xml.in:64 msgid "Voiceless alveolar lateral fricative" msgstr "" #: ../data/ipa.xml.in:65 msgid "Retroflex lateral approximant" msgstr "" #: ../data/ipa.xml.in:66 msgid "Voiced alveolar lateral fricative" msgstr "" #: ../data/ipa.xml.in:67 msgid "Velar lateral approximant" msgstr "" #: ../data/ipa.xml.in:69 msgid "Bilabial nasal" msgstr "" #: ../data/ipa.xml.in:70 msgid "Labiodental nasal" msgstr "" #: ../data/ipa.xml.in:71 msgid "Alveolar nasal" msgstr "" #: ../data/ipa.xml.in:72 msgid "Velar nasal" msgstr "" #: ../data/ipa.xml.in:73 msgid "Labial-velar nasal" msgstr "" #: ../data/ipa.xml.in:74 msgid "Palatal nasal" msgstr "" #: ../data/ipa.xml.in:75 msgid "Retroflex nasal" msgstr "" #: ../data/ipa.xml.in:76 msgid "Uvular nasal" msgstr "" #: ../data/ipa.xml.in:77 msgid "Close-mid back rounded vowel" msgstr "" #: ../data/ipa.xml.in:78 msgid "Close-mid front rounded vowel" msgstr "" #: ../data/ipa.xml.in:79 msgid "Close-mid central rounded vowel" msgstr "" #: ../data/ipa.xml.in:80 msgid "Open-mid front rounded vowel" msgstr "" #: ../data/ipa.xml.in:81 msgid "Open front rounded vowel" msgstr "" #: ../data/ipa.xml.in:82 msgid "Voiceless bilabial plosive" msgstr "" #: ../data/ipa.xml.in:83 msgid "Voiceless bilabial-labiodental affricate" msgstr "" #: ../data/ipa.xml.in:84 msgid "Voiceless bilabial affricate" msgstr "" #: ../data/ipa.xml.in:85 msgid "Voiceless labiodental affricate" msgstr "" #: ../data/ipa.xml.in:86 msgid "Voiceless uvular plosive" msgstr "" #: ../data/ipa.xml.in:87 msgid "Alveolar trill" msgstr "" #: ../data/ipa.xml.in:89 msgid "Alveolar lateral flap" msgstr "" #: ../data/ipa.xml.in:90 msgid "Uvular trill" msgstr "" #: ../data/ipa.xml.in:92 msgid "Alveolar approximant" msgstr "" #: ../data/ipa.xml.in:93 msgid "Retroflex approximant" msgstr "" #: ../data/ipa.xml.in:94 msgid "Voiced uvular fricative" msgstr "" #: ../data/ipa.xml.in:95 msgid "Voiceless alveolar fricative" msgstr "" #: ../data/ipa.xml.in:96 msgid "Voiceless palato-alveolar fricative" msgstr "" #: ../data/ipa.xml.in:97 msgid "Voiceless retroflex fricative" msgstr "" #: ../data/ipa.xml.in:98 msgid "Voiceless alveolar plosive" msgstr "" #: ../data/ipa.xml.in:99 msgid "Voiceless retroflex plosive" msgstr "" #: ../data/ipa.xml.in:100 msgid "Voiceless alveolar lateral affricate" msgstr "" #: ../data/ipa.xml.in:104 msgid "Voiceless retroflex affricate" msgstr "" #: ../data/ipa.xml.in:105 msgid "Close back rounded vowel" msgstr "" #: ../data/ipa.xml.in:107 msgid "Near-close central vowel" msgstr "" #: ../data/ipa.xml.in:108 msgid "Close central rounded vowel" msgstr "" #: ../data/ipa.xml.in:109 msgid "Labial-palatal approximant" msgstr "" #: ../data/ipa.xml.in:110 msgid "Close back unrounded vowel" msgstr "" #: ../data/ipa.xml.in:111 msgid "Voiced labiodental fricative" msgstr "" #: ../data/ipa.xml.in:112 msgid "Labiodental flap" msgstr "" #: ../data/ipa.xml.in:113 msgid "Labiodental approximant" msgstr "" #: ../data/ipa.xml.in:114 msgid "Voiced velar fricative" msgstr "" #: ../data/ipa.xml.in:115 msgid "Close-mid back unrounded vowel" msgstr "" #: ../data/ipa.xml.in:116 msgid "Voiced labiovelar approximant" msgstr "" #: ../data/ipa.xml.in:117 msgid "Voiceless labiovelar approximant" msgstr "" #: ../data/ipa.xml.in:118 msgid "Velar approximant" msgstr "" #: ../data/ipa.xml.in:119 msgid "Bilabial percussive" msgstr "" #: ../data/ipa.xml.in:120 msgid "Voiceless velar fricative" msgstr "" #: ../data/ipa.xml.in:121 msgid "Voiceless uvular fricative" msgstr "" #: ../data/ipa.xml.in:122 msgid "Close front rounded vowel" msgstr "" #: ../data/ipa.xml.in:123 msgid "Near-close near-front rounded vowel" msgstr "" #: ../data/ipa.xml.in:124 msgid "Palatal lateral approximant" msgstr "" #: ../data/ipa.xml.in:126 msgid "Voiced alveolar fricative" msgstr "" #: ../data/ipa.xml.in:127 msgid "Voiced palato-alveolar fricative" msgstr "" #: ../data/ipa.xml.in:129 msgid "Voiced retroflex fricative" msgstr "" #: ../data/ipa.xml.in:130 msgid "Voiceless dental fricative" msgstr "" #: ../data/ipa.xml.in:131 msgid "Voiceless bilabial fricative" msgstr "" #: ../data/ipa.xml.in:132 msgid "Glottal stop" msgstr "" #: ../data/ipa.xml.in:133 msgid "Epiglottal plosive" msgstr "" #: ../data/ipa.xml.in:134 msgid "Voiced pharyngeal fricative" msgstr "" #: ../data/ipa.xml.in:135 msgid "Voiced epiglottal fricative" msgstr "" #: ../data/ipa.xml.in:136 msgid "Bilabial click" msgstr "" #: ../data/ipa.xml.in:139 msgid "Palatal click" msgstr "" #: ../data/ipa.xml.in:141 msgid "Bidental percussive" msgstr "" #: ../data/ipa.xml.in:142 msgid "Aspiration mark" msgstr "" #: ../data/ipa.xml.in:143 msgid "Non-aspiration mark" msgstr "" #: ../data/ipa.xml.in:144 msgid "Breathy voice mark" msgstr "" #: ../data/ipa.xml.in:145 msgid "Palatalization mark" msgstr "" #: ../data/ipa.xml.in:146 msgid "Lateral release mark" msgstr "" #: ../data/ipa.xml.in:147 msgid "Bilabial nasal release mark" msgstr "" #: ../data/ipa.xml.in:148 msgid "Labiodental nasal release mark" msgstr "" #: ../data/ipa.xml.in:149 msgid "Alveolar nasal release mark" msgstr "" #: ../data/ipa.xml.in:150 msgid "Palatal nasal release mark" msgstr "" #: ../data/ipa.xml.in:151 msgid "Retroflex nasal release mark" msgstr "" #: ../data/ipa.xml.in:152 msgid "Uvular nasal release mark" msgstr "" #: ../data/ipa.xml.in:153 msgid "Labio-palatalization mark" msgstr "" #: ../data/ipa.xml.in:154 msgid "Labiodentalization mark" msgstr "" #: ../data/ipa.xml.in:155 msgid "Labialization mark" msgstr "" #: ../data/ipa.xml.in:156 msgid "Velarization mark" msgstr "" #: ../data/ipa.xml.in:157 msgid "Glottalization mark" msgstr "" #: ../data/ipa.xml.in:158 msgid "Pharyngealization mark" msgstr "" #: ../data/ipa.xml.in:159 msgid "Combining velarization/pharyngealization mark" msgstr "" #: ../data/ipa.xml.in:160 msgid "Combining laryngealization mark" msgstr "" #: ../data/ipa.xml.in:161 msgid "Combining retroflexion mark" msgstr "" #: ../data/ipa.xml.in:162 msgid "Ejection mark" msgstr "" #: ../data/ipa.xml.in:163 msgid "Rhotacization mark" msgstr "" #: ../data/ipa.xml.in:164 msgid "Combining dentalization mark" msgstr "" #: ../data/ipa.xml.in:165 msgid "Combining dentolabialization mark" msgstr "" #: ../data/ipa.xml.in:166 msgid "Combining alveolarization mark" msgstr "" #: ../data/ipa.xml.in:167 msgid "Combining linguolabialization mark" msgstr "" #: ../data/ipa.xml.in:168 msgid "Combining apicalization mark" msgstr "" #: ../data/ipa.xml.in:169 msgid "Combining laminalization mark" msgstr "" #: ../data/ipa.xml.in:170 msgid "Combining centralization mark" msgstr "" #: ../data/ipa.xml.in:171 msgid "Combining mid-centralization mark" msgstr "" #: ../data/ipa.xml.in:172 msgid "Combining nasalization mark" msgstr "" #: ../data/ipa.xml.in:173 msgid "Combining nasalization mark below" msgstr "" #: ../data/ipa.xml.in:174 msgid "Combining denasalization mark" msgstr "" #: ../data/ipa.xml.in:175 msgid "Combining nasal friction mark" msgstr "" #: ../data/ipa.xml.in:176 msgid "Combining velopharyngeal friction mark" msgstr "" #: ../data/ipa.xml.in:177 msgid "Combining voiced mark" msgstr "" #: ../data/ipa.xml.in:178 msgid "Combining voiceless mark" msgstr "" #: ../data/ipa.xml.in:179 msgid "Combining voiceless mark above" msgstr "" #: ../data/ipa.xml.in:180 msgid "Pre-voicing/post-voicing mark" msgstr "" #: ../data/ipa.xml.in:181 msgid "Combining breathy voice mark" msgstr "" #: ../data/ipa.xml.in:182 msgid "Combining unreleased stop mark" msgstr "" #: ../data/ipa.xml.in:183 msgid "Combining more rounded mark" msgstr "" #: ../data/ipa.xml.in:184 msgid "Combining less rounded mark" msgstr "" #: ../data/ipa.xml.in:185 msgid "Combining labial spreading mark" msgstr "" #: ../data/ipa.xml.in:186 msgid "Combining syllabic mark" msgstr "" #: ../data/ipa.xml.in:187 msgid "Combining syllabic mark above" msgstr "" #: ../data/ipa.xml.in:188 msgid "Combining non-syllabic mark" msgstr "" #: ../data/ipa.xml.in:189 msgid "Combining non-syllabic mark above" msgstr "" #: ../data/ipa.xml.in:190 msgid "Combining top tone mark" msgstr "" #: ../data/ipa.xml.in:191 msgid "Combining high tone mark" msgstr "" #: ../data/ipa.xml.in:192 msgid "Combining mid tone mark" msgstr "" #: ../data/ipa.xml.in:193 msgid "Combining low tone mark" msgstr "" #: ../data/ipa.xml.in:194 msgid "Combining bottom tone mark" msgstr "" #: ../data/ipa.xml.in:195 msgid "Combining falling tone mark" msgstr "" #: ../data/ipa.xml.in:196 msgid "Combining high falling tone mark" msgstr "" #: ../data/ipa.xml.in:197 msgid "Combining low falling tone mark" msgstr "" #: ../data/ipa.xml.in:198 msgid "Combining rising tone mark" msgstr "" #: ../data/ipa.xml.in:199 msgid "Combining high rising tone mark" msgstr "" #: ../data/ipa.xml.in:200 msgid "Combining low rising tone mark" msgstr "" #: ../data/ipa.xml.in:201 msgid "Combining dipping tone mark" msgstr "" #: ../data/ipa.xml.in:202 msgid "Combining peaking tone mark" msgstr "" #: ../data/ipa.xml.in:203 msgid "Top tone letter" msgstr "" #: ../data/ipa.xml.in:204 msgid "High tone letter" msgstr "" #: ../data/ipa.xml.in:205 msgid "Mid tone letter" msgstr "" #: ../data/ipa.xml.in:206 msgid "Low tone letter" msgstr "" #: ../data/ipa.xml.in:207 msgid "Bottom tone letter" msgstr "" #: ../data/ipa.xml.in:208 msgid "Falling tone digraph" msgstr "" #: ../data/ipa.xml.in:209 msgid "High falling tone digraph" msgstr "" #: ../data/ipa.xml.in:210 msgid "Rising tone digraph" msgstr "" #: ../data/ipa.xml.in:211 msgid "High rising tone digraph" msgstr "" #: ../data/ipa.xml.in:212 msgid "Low rising tone digraph" msgstr "" #: ../data/ipa.xml.in:213 msgid "Dipping tone trigraph" msgstr "" #: ../data/ipa.xml.in:214 msgid "Peaking tone trigraph" msgstr "" #: ../data/ipa.xml.in:215 msgid "Upstep mark" msgstr "" #: ../data/ipa.xml.in:216 msgid "Downstep mark" msgstr "" #: ../data/ipa.xml.in:217 msgid "Minor break" msgstr "" #: ../data/ipa.xml.in:218 msgid "Major break" msgstr "" #: ../data/ipa.xml.in:219 msgid "Rising intonation mark" msgstr "" #: ../data/ipa.xml.in:220 msgid "Falling intonation mark" msgstr "" #: ../data/ipa.xml.in:221 msgid "Advanced articulation mark" msgstr "" #: ../data/ipa.xml.in:222 msgid "Retracted articulation mark" msgstr "" #: ../data/ipa.xml.in:223 msgid "Combining advanced articulation mark" msgstr "" #: ../data/ipa.xml.in:224 msgid "Combining retracted articulation mark" msgstr "" #: ../data/ipa.xml.in:225 msgid "Raised sound mark" msgstr "" #: ../data/ipa.xml.in:226 msgid "Lowered sound mark" msgstr "" #: ../data/ipa.xml.in:227 msgid "Combining raised sound mark" msgstr "" #: ../data/ipa.xml.in:228 msgid "Combining lowered sound mark" msgstr "" #: ../data/ipa.xml.in:229 msgid "Combining tongue root advancement mark" msgstr "" #: ../data/ipa.xml.in:230 msgid "Combining tongue root retraction mark" msgstr "" #: ../data/ipa.xml.in:231 msgid "Combining strong articulation mark" msgstr "" #: ../data/ipa.xml.in:232 msgid "Combining weak articulation mark" msgstr "" #: ../data/ipa.xml.in:233 msgid "Combining whistled articulation mark" msgstr "" #: ../data/ipa.xml.in:234 msgid "Combining sliding articulation mark" msgstr "" #: ../data/ipa.xml.in:235 msgid "Egression mark" msgstr "" #: ../data/ipa.xml.in:236 msgid "Ingression mark" msgstr "" #: ../data/ipa.xml.in:237 msgid "Combining ligature tie" msgstr "" #: ../data/ipa.xml.in:238 msgid "Combining ligature undertie" msgstr "" #: ../data/ipa.xml.in:239 msgid "Elongation mark" msgstr "" #: ../data/ipa.xml.in:240 msgid "Weak elongation mark" msgstr "" #: ../data/ipa.xml.in:241 msgid "Combining extra-short duration mark" msgstr "" #: ../data/ipa.xml.in:242 msgid "Liaison mark" msgstr "" #: ../data/ipa.xml.in:243 msgid "Stress mark" msgstr "" #: ../data/ipa.xml.in:244 msgid "Weak stress mark" msgstr "" #: ../data/ipa.xml.in:245 msgid "Syllable break" msgstr "" #: ../data/ipa.xml.in:246 msgid "Opening orthographic bracket" msgstr "" #: ../data/ipa.xml.in:247 msgid "Closing orthographic bracket" msgstr "" #: ../data/ja.xml.in:1 msgid "Japanese" msgstr "იაპონური" #: ../data/ja.xml.in:2 ../input-pad/unicode_block.h:136 msgid "Hiragana" msgstr "ჰირაგანა" #: ../data/ja.xml.in:3 ../input-pad/unicode_block.h:137 msgid "Katakana" msgstr "კატაკანა" #: ../data/ja.xml.in:4 ../data/zh.xml.in.h:3 msgid "Radicals" msgstr "" #: ../data/ja.xml.in:5 ../input-pad/unicode_block.h:132 msgid "CJK Radicals Supplement" msgstr "CJK რადიკალების დამატებები" #: ../data/keyboard.xml.in:1 msgid "Keyboard" msgstr "კლავიატურა" #: ../data/keyboard.xml.in:2 msgid "Function Key" msgstr "" #: ../data/keyboard.xml.in:3 msgid "Key Pad" msgstr "" #: ../data/latin.xml.in:1 msgid "ASCII" msgstr "ASCII" #: ../data/latin.xml.in:2 ../input-pad/unicode_block.h:38 msgid "Latin-1 Supplement" msgstr "Latin-1 დამატებებით" #: ../data/latin.xml.in:3 ../input-pad/unicode_block.h:39 msgid "Latin Extended-A" msgstr "ლათინური გაფართოებული-A" #: ../data/latin.xml.in:4 msgid "Old and Middle English" msgstr "" #: ../data/runr.xml.in:1 msgid "Runes (Unicode Block)" msgstr "" #: ../data/runr.xml.in:2 msgid "Runes (Elder Fuþark)" msgstr "" #: ../data/runr.xml.in:3 msgid "Runes (Younger Fuþark)" msgstr "" #: ../data/runr.xml.in:4 msgid "Runes (Fuþorc)" msgstr "" #: ../data/shaw.xml.in:1 ../input-pad/unicode_block.h:200 msgid "Shavian" msgstr "შავიური" #: ../data/str.xml.in:1 msgid "Chat" msgstr "ჩატი" #: ../data/str.xml.in:2 msgid "Emoji" msgstr "ემოჯი" #: ../data/str.xml.in:3 msgid "Rain" msgstr "წვიმა" #: ../data/str.xml.in:4 msgid "Comet" msgstr "კომეტა" #: ../data/str.xml.in:5 msgid "Cross" msgstr "ჯვარი" #: ../data/str.xml.in:6 msgid "Solar" msgstr "მზის" #: ../data/str.xml.in:7 msgid "Mercury" msgstr "მერკური" #: ../data/str.xml.in:8 msgid "Venus" msgstr "ვენერა" #: ../data/str.xml.in:9 msgid "Earth" msgstr "დედამიწა" #: ../data/str.xml.in:10 msgid "Mars" msgstr "მარსი" #: ../data/str.xml.in:11 msgid "Jupiter" msgstr "იუპიტერი" #: ../data/str.xml.in:12 msgid "Saturn" msgstr "სატურნი" #: ../data/str.xml.in:13 msgid "Uranus" msgstr "ურანი" #: ../data/str.xml.in:14 msgid "Neptune" msgstr "ნეპტუნი" #: ../data/str.xml.in:15 msgid "Pluto" msgstr "პლუტონი" #: ../data/str.xml.in:16 msgid "Aries" msgstr "ვერძი" #: ../data/str.xml.in:17 msgid "Taurus" msgstr "კურო" #: ../data/str.xml.in:18 msgid "Gemini" msgstr "მარჩბივი" #: ../data/str.xml.in:19 msgid "Cancer" msgstr "კიბო" #: ../data/str.xml.in:20 msgid "Leo" msgstr "ლომი" #: ../data/str.xml.in:21 msgid "Virgo" msgstr "ქალწული" #: ../data/str.xml.in:22 msgid "Libra" msgstr "სასწორი" #: ../data/str.xml.in:23 msgid "Scorpius" msgstr "ღრიანკალი" #: ../data/str.xml.in:24 msgid "Sagittarius" msgstr "მშვილდოსანი" #: ../data/str.xml.in:25 msgid "Capricorn" msgstr "თხის რქა" #: ../data/str.xml.in:26 msgid "Aquarius" msgstr "მერწყული" #: ../data/str.xml.in:27 msgid "Pisces" msgstr "თევზები" #: ../data/str.xml.in:28 msgid "Dice 1" msgstr "" #: ../data/str.xml.in:29 msgid "Dice 2" msgstr "" #: ../data/str.xml.in:30 msgid "Dice 3" msgstr "" #: ../data/str.xml.in:31 msgid "Dice 4" msgstr "" #: ../data/str.xml.in:32 msgid "Dice 5" msgstr "" #: ../data/str.xml.in:33 msgid "Dice 6" msgstr "" #: ../data/str.xml.in:34 msgid "Anchor" msgstr "ბმული" #: ../data/str.xml.in:35 msgid "Sword" msgstr "ხმალი" #: ../data/str.xml.in:36 msgid "Scales" msgstr "ფარფლები" #: ../data/str.xml.in:37 msgid "Conversation" msgstr "საუბარი" #: ../data/str.xml.in:38 msgid "Warning" msgstr "ყურადღება" #: ../data/str.xml.in:39 msgid "Thunder" msgstr "" #: ../data/str.xml.in:40 msgid "Coffin" msgstr "" #: ../data/str.xml.in:41 msgid "Gender" msgstr "სქესი" #: ../data/str.xml.in:42 msgid "Soccer" msgstr "სოკერი" #: ../data/str.xml.in:43 msgid "Baseball" msgstr "" #: ../data/str.xml.in:44 msgid "Snowman" msgstr "" #: ../data/str.xml.in:45 msgid "Shogi" msgstr "" #: ../data/str.xml.in:46 msgid "Shoji" msgstr "" #: ../data/str.xml.in:47 msgid "Maintenance" msgstr "შეკეთება" #: ../data/str.xml.in:48 msgid "Roadblock" msgstr "" #: ../data/str.xml.in:49 msgid "No entry" msgstr "" #: ../data/str.xml.in:50 msgid "Truck" msgstr "" #: ../data/str.xml.in:51 msgid "Torii" msgstr "" #: ../data/str.xml.in:52 msgid "Church" msgstr "ტაძარი" #: ../data/str.xml.in:53 msgid "Castle" msgstr "სასახლე" #: ../data/str.xml.in:54 msgid "Historic site" msgstr "" #: ../data/str.xml.in:55 msgid "Power station" msgstr "" #: ../data/str.xml.in:56 msgid "Lighthouse" msgstr "შუქურა" #: ../data/str.xml.in:57 msgid "Mountain" msgstr "მთა" #: ../data/str.xml.in:58 msgid "Beach" msgstr "ბიჩი" #: ../data/str.xml.in:59 msgid "Park" msgstr "პარკი" #: ../data/str.xml.in:60 msgid "Ferry" msgstr "" #: ../data/str.xml.in:61 msgid "Sailboat" msgstr "" #: ../data/str.xml.in:62 msgid "Ice rink" msgstr "" #: ../data/str.xml.in:63 msgid "Scissors" msgstr "მაკრატლები" #: ../data/str.xml.in:64 msgid "Airplane" msgstr "" #: ../data/str.xml.in:65 msgid "Clenched Fist" msgstr "" #: ../data/str.xml.in:66 msgid "Hand" msgstr "ხელი" #: ../data/str.xml.in:67 msgid "V Sign" msgstr "" #: ../data/str.xml.in:68 msgid "Writing" msgstr "ჩაწერა" #: ../data/str.xml.in:69 msgid "Pencil" msgstr "ფანქარი" #: ../data/str.xml.in:70 msgid "Pen" msgstr "კალამi" #: ../data/str.xml.in:71 msgid "Star" msgstr "ვარსკვლავი" #: ../data/str.xml.in:72 msgid "Typhoon" msgstr "" #: ../data/str.xml.in:73 msgid "Fog" msgstr "ნისლი" #: ../data/str.xml.in:74 msgid "Umbrella" msgstr "" #: ../data/str.xml.in:75 msgid "Night sky" msgstr "" #: ../data/str.xml.in:76 msgid "Sunrise" msgstr "აისი" #: ../data/str.xml.in:77 msgid "Sunset" msgstr "მზის ჩასვლა" #: ../data/str.xml.in:78 msgid "Bridge" msgstr "ხიდი" #: ../data/str.xml.in:79 msgid "Wave" msgstr "ტალღა" #: ../data/str.xml.in:80 msgid "New Moon" msgstr "ახალი მთვარე" #: ../data/str.xml.in:81 msgid "Crescent Moon" msgstr "" #: ../data/str.xml.in:82 msgid "Quarter Moon" msgstr "მეოთხედი მთვარე" #: ../data/str.xml.in:83 msgid "Gibbous Moon" msgstr "" #: ../data/str.xml.in:84 msgid "Full Moon" msgstr "სრული მთვარე" #: ../data/str.xml.in:85 msgid "Moon" msgstr "მთვარის" #: ../data/str.xml.in:86 msgid "Sun" msgstr "მზე" #: ../data/str.xml.in:87 msgid "Cloud" msgstr "ღრუბელი" #: ../data/str.xml.in:88 msgid "Palm" msgstr "" #: ../data/str.xml.in:89 msgid "Hot Pepper" msgstr "" #: ../data/str.xml.in:90 msgid "Flower" msgstr "ყვავილი" #: ../data/str.xml.in:91 msgid "Tulip" msgstr "" #: ../data/str.xml.in:92 msgid "Cherry" msgstr "" #: ../data/str.xml.in:93 msgid "Rose" msgstr "" #: ../data/str.xml.in:94 msgid "Hibiscus" msgstr "" #: ../data/str.xml.in:95 msgid "Sunflower" msgstr "" #: ../data/str.xml.in:96 msgid "Blossom" msgstr "" #: ../data/str.xml.in:97 msgid "Clover" msgstr "" #: ../data/str.xml.in:98 msgid "Maple" msgstr "" #: ../data/str.xml.in:99 msgid "Fallen Leaf" msgstr "ჩამოვარდნილი ფოთოლი" #: ../data/str.xml.in:100 msgid "Leaf" msgstr "ფოთოლი" #: ../data/str.xml.in:101 msgid "Mushroom" msgstr "" #: ../data/str.xml.in:102 msgid "Tomato" msgstr "პომიდორი" #: ../data/str.xml.in:103 msgid "Eggplant" msgstr "" #: ../data/str.xml.in:104 msgid "Grape" msgstr "ყურძენი" #: ../data/str.xml.in:105 msgid "Melon" msgstr "" #: ../data/str.xml.in:106 msgid "Watermelon" msgstr "" #: ../data/str.xml.in:107 msgid "Tangerine" msgstr "მანდარინი" #: ../data/str.xml.in:108 msgid "Lemon" msgstr "ლიმონი" #: ../data/str.xml.in:109 msgid "Banana" msgstr "ბანანი" #: ../data/str.xml.in:110 msgid "Pineapple" msgstr "" #: ../data/str.xml.in:111 msgid "Apple" msgstr "გამოყენება" #: ../data/str.xml.in:112 msgid "Pear" msgstr "" #: ../data/str.xml.in:113 msgid "Peach" msgstr "" #: ../data/str.xml.in:114 msgid "Strawberry" msgstr "მარწყვი" #: ../data/str.xml.in:115 msgid "Hamburger" msgstr "" #: ../data/str.xml.in:116 msgid "Pizza" msgstr "პიცა" #: ../data/str.xml.in:117 msgid "Meat" msgstr "ხორცი" #: ../data/str.xml.in:118 msgid "Poultry" msgstr "" #: ../data/str.xml.in:119 msgid "Rice Cracker" msgstr "" #: ../data/str.xml.in:120 msgid "Rice Ball" msgstr "" #: ../data/str.xml.in:121 msgid "Rice" msgstr "ბრინჯი" #: ../data/str.xml.in:122 msgid "Curry" msgstr "ქარი" #: ../data/str.xml.in:123 msgid "Ramen" msgstr "რამენი" #: ../data/str.xml.in:124 msgid "Spaghetti" msgstr "" #: ../data/str.xml.in:125 msgid "Bread" msgstr "პური" #: ../data/str.xml.in:126 msgid "Fried Potato" msgstr "" #: ../data/str.xml.in:127 msgid "Roasted Sweet Potato" msgstr "" #: ../data/str.xml.in:128 msgid "Dango" msgstr "" #: ../data/str.xml.in:129 msgid "Oden" msgstr "" #: ../data/str.xml.in:130 msgid "Sushi" msgstr "სუში" #: ../data/str.xml.in:131 msgid "Fried Shrimp" msgstr "" #: ../data/str.xml.in:132 msgid "Fish Cake" msgstr "" #: ../data/str.xml.in:133 msgid "Soft Ice Cream" msgstr "" #: ../data/str.xml.in:134 msgid "Shaved Ice" msgstr "" #: ../data/str.xml.in:135 msgid "Ice Cream" msgstr "ნაყინი" #: ../data/str.xml.in:136 msgid "Doughnut" msgstr "" #: ../data/str.xml.in:137 msgid "Cookie" msgstr "ქუქი" #: ../data/str.xml.in:138 msgid "Chocolate" msgstr "შოკოლადი" #: ../data/str.xml.in:139 msgid "Candy" msgstr "" #: ../data/str.xml.in:140 msgid "Custard" msgstr "" #: ../data/str.xml.in:141 msgid "Honey" msgstr "" #: ../data/str.xml.in:142 msgid "Shortcake" msgstr "" #: ../data/str.xml.in:143 msgid "Bento" msgstr "" #: ../data/str.xml.in:144 msgid "Pot of Food" msgstr "" #: ../data/str.xml.in:145 msgid "Cooking" msgstr "კულინარია" #: ../data/str.xml.in:146 msgid "Meal" msgstr "" #: ../data/str.xml.in:147 msgid "Cup" msgstr "ჭიქა" #: ../data/str.xml.in:148 msgid "Sake" msgstr "" #: ../data/str.xml.in:149 msgid "Wine" msgstr "ღვინო" #: ../data/str.xml.in:150 msgid "Cocktail" msgstr "" #: ../data/str.xml.in:151 msgid "Drink" msgstr "სასმელი" #: ../data/str.xml.in:152 msgid "Beer" msgstr "ლუდი" #: ../data/str.xml.in:153 msgid "Cheers" msgstr "" #: ../data/str.xml.in:154 msgid "Baby Bottle" msgstr "" #: ../data/str.xml.in:155 msgid "Ribbon" msgstr "ლენტა" #: ../data/str.xml.in:156 msgid "Present" msgstr "წარმოდგენილია" #: ../data/str.xml.in:157 msgid "Cake" msgstr "ნამცხვარი" #: ../data/str.xml.in:158 msgid "Hallowe'en" msgstr "" #: ../data/str.xml.in:159 msgid "Christmas" msgstr "შობა" #: ../data/str.xml.in:160 msgid "Piano" msgstr "პიანინო" #: ../data/str.xml.in:161 msgid "Microphone" msgstr "მიკროფონი" #: ../data/str.xml.in:162 msgid "Headphone" msgstr "ყურსაცვამი" #: ../data/str.xml.in:163 msgid "Hat" msgstr "" #: ../data/str.xml.in:164 msgid "Musical Note" msgstr "" #: ../data/str.xml.in:165 msgid "Saxophone" msgstr "საქსოფონი" #: ../data/str.xml.in:166 msgid "Guitar" msgstr "გიტარა" #: ../data/str.xml.in:167 msgid "Trumpet" msgstr "ბუკი" #: ../data/str.xml.in:168 msgid "Violin" msgstr "ვიოლინო" #: ../data/str.xml.in:169 msgid "Musical Score" msgstr "" #: ../data/str.xml.in:170 msgid "Tennis" msgstr "ტენისი" #: ../data/str.xml.in:171 msgid "Ski" msgstr "" #: ../data/str.xml.in:172 msgid "Basketball" msgstr "კალათბურთი" #: ../data/str.xml.in:173 msgid "Flag" msgstr "ალამი" #: ../data/str.xml.in:174 msgid "Show Board" msgstr "" #: ../data/str.xml.in:175 msgid "Running" msgstr "სირბილი" #: ../data/str.xml.in:176 msgid "Surfer" msgstr "" #: ../data/str.xml.in:177 msgid "Medal" msgstr "" #: ../data/str.xml.in:178 msgid "Trophy" msgstr "" #: ../data/str.xml.in:179 msgid "Horse Racing" msgstr "" #: ../data/str.xml.in:180 msgid "American Football" msgstr "" #: ../data/str.xml.in:181 msgid "Rugby" msgstr "რაგბი" #: ../data/str.xml.in:182 msgid "Swimmer" msgstr "" #: ../data/str.xml.in:183 msgid "Weight Lifting" msgstr "" #: ../data/str.xml.in:184 msgid "Golf" msgstr "გოლფი" #: ../data/str.xml.in:185 msgid "Motorcycle" msgstr "" #: ../data/str.xml.in:186 msgid "Race" msgstr "" #: ../data/str.xml.in:187 msgid "House" msgstr "ჰაუსი" #: ../data/str.xml.in:188 msgid "Office" msgstr "ოფისი" #: ../data/str.xml.in:189 msgid "Hospital" msgstr "საავადმყოფო" #: ../data/str.xml.in:190 msgid "Bank" msgstr "ბანკი" #: ../data/str.xml.in:191 msgid "Hotel" msgstr "სასტუმრო" #: ../data/str.xml.in:192 msgid "School" msgstr "სკოლა" #: ../data/str.xml.in:193 msgid "Factory" msgstr "ქარხანა" #: ../data/str.xml.in:194 msgid "Rat" msgstr "ვირთხა" #: ../data/str.xml.in:195 msgid "Mouse" msgstr "თაგუნა" #: ../data/str.xml.in:196 msgid "Cow" msgstr "ძროხა" #: ../data/str.xml.in:197 msgid "Tiger" msgstr "ვეფხვი" #: ../data/str.xml.in:198 msgid "Leopard" msgstr "ლეოპარდი" #: ../data/str.xml.in:199 msgid "Rabbit" msgstr "კურდღელი" #: ../data/str.xml.in:200 msgid "Cat" msgstr "კატა" #: ../data/str.xml.in:201 msgid "Dragon" msgstr "დრაკონი" #: ../data/str.xml.in:202 msgid "Crocodile" msgstr "ნიანგი" #: ../data/str.xml.in:203 msgid "Whale" msgstr "" #: ../data/str.xml.in:204 msgid "Snail" msgstr "" #: ../data/str.xml.in:205 msgid "Snake" msgstr "გველი" #: ../data/str.xml.in:206 msgid "Horse" msgstr "ცხენი" #: ../data/str.xml.in:207 msgid "Sheep" msgstr "ცხვარი" #: ../data/str.xml.in:208 msgid "Goat" msgstr "თხა" #: ../data/str.xml.in:209 msgid "Monkey" msgstr "მაიმუნი" #: ../data/str.xml.in:210 msgid "Chicken" msgstr "ქათამი" #: ../data/str.xml.in:211 msgid "Dog" msgstr "ძაღლი" #: ../data/str.xml.in:212 msgid "Pig" msgstr "ღორი" #: ../data/str.xml.in:213 msgid "Elephant" msgstr "სპილო" #: ../data/str.xml.in:214 msgid "Octopus" msgstr "" #: ../data/str.xml.in:215 msgid "Spiral Shell" msgstr "" #: ../data/str.xml.in:216 msgid "Bug" msgstr "შეცდომა" #: ../data/str.xml.in:217 msgid "Ant" msgstr "" #: ../data/str.xml.in:218 msgid "Lady Beetle" msgstr "" #: ../data/str.xml.in:219 msgid "Fish" msgstr "თევზი" #: ../data/str.xml.in:220 msgid "Tropical Fish" msgstr "" #: ../data/str.xml.in:221 msgid "Blowfish" msgstr "ფუგუ" #: ../data/str.xml.in:222 msgid "Bird" msgstr "ჩიტი" #: ../data/str.xml.in:223 msgid "Penguin" msgstr "პინგვინი" #: ../data/str.xml.in:224 msgid "Koala" msgstr "კოალა" #: ../data/str.xml.in:225 msgid "Poodle" msgstr "" #: ../data/str.xml.in:226 msgid "Camel" msgstr "" #: ../data/str.xml.in:227 msgid "Dolphin" msgstr "დელფინი" #: ../data/str.xml.in:228 msgid "Frog" msgstr "ბაყაყი" #: ../data/str.xml.in:229 msgid "Hamster" msgstr "" #: ../data/str.xml.in:230 msgid "Wolf" msgstr "მგელი" #: ../data/str.xml.in:231 msgid "Bear" msgstr "" #: ../data/str.xml.in:232 msgid "Panda" msgstr "პანდა" #: ../data/str.xml.in:233 msgid "Eye" msgstr "" #: ../data/str.xml.in:234 msgid "Ear" msgstr "" #: ../data/str.xml.in:235 msgid "Nose" msgstr "" #: ../data/str.xml.in:236 msgid "Mouth" msgstr "" #: ../data/str.xml.in:237 msgid "Tongue" msgstr "" #: ../data/str.xml.in:238 msgid "Crown" msgstr "" #: ../data/str.xml.in:239 msgid "Glasses" msgstr "" #: ../data/str.xml.in:240 msgid "Necktie" msgstr "" #: ../data/str.xml.in:241 msgid "T-Shirt" msgstr "" #: ../data/str.xml.in:242 msgid "Jeans" msgstr "" #: ../data/str.xml.in:243 msgid "Dress" msgstr "" #: ../data/str.xml.in:244 msgid "Kimono" msgstr "" #: ../data/str.xml.in:245 msgid "Bikini" msgstr "" #: ../data/str.xml.in:246 msgid "Clothes" msgstr "ტანსაცმელი" #: ../data/str.xml.in:247 msgid "Purse" msgstr "" #: ../data/str.xml.in:248 msgid "Handbag" msgstr "" #: ../data/str.xml.in:249 msgid "Pouch" msgstr "" #: ../data/str.xml.in:250 msgid "Shoe" msgstr "" #: ../data/str.xml.in:251 msgid "Footprint" msgstr "" #: ../data/str.xml.in:252 msgid "Bust in silhouette" msgstr "" #: ../data/str.xml.in:253 msgid "Busts in silhouette" msgstr "" #: ../data/str.xml.in:254 msgid "Boy" msgstr "" #: ../data/str.xml.in:255 msgid "Girl" msgstr "გოგონა" #: ../data/str.xml.in:256 msgid "Man" msgstr "" #: ../data/str.xml.in:257 msgid "Woman" msgstr "" #: ../data/str.xml.in:258 msgid "Family" msgstr "ოჯახი" #: ../data/str.xml.in:259 msgid "Man and woman holding hands" msgstr "" #: ../data/str.xml.in:260 msgid "Men holding hands" msgstr "" #: ../data/str.xml.in:261 msgid "Women holding hands" msgstr "" #: ../data/str.xml.in:262 msgid "Men's room" msgstr "" #: ../data/str.xml.in:263 msgid "Women's room" msgstr "" #: ../data/str.xml.in:264 msgid "Restroom" msgstr "" #: ../data/str.xml.in:265 msgid "Princess" msgstr "" #: ../data/str.xml.in:266 msgid "Japanese Ogre" msgstr "" #: ../data/str.xml.in:267 msgid "Japanese Goblin" msgstr "" #: ../data/str.xml.in:268 msgid "Ghost" msgstr "" #: ../data/str.xml.in:269 msgid "Baby Angel" msgstr "" #: ../data/str.xml.in:270 msgid "Extraterrestrial Alien" msgstr "" #: ../data/str.xml.in:271 msgid "Alien Monster" msgstr "" #: ../data/str.xml.in:272 msgid "Imp" msgstr "" #: ../data/str.xml.in:273 msgid "Skull" msgstr "თავის ქალა" #: ../data/str.xml.in:274 msgid "Information Desk Person" msgstr "" #: ../data/str.xml.in:275 msgid "Guardsman" msgstr "" #: ../data/str.xml.in:276 msgid "Dancer" msgstr "" #: ../data/str.xml.in:277 msgid "Lipstick" msgstr "" #: ../data/str.xml.in:278 msgid "Nail polish" msgstr "" #: ../data/str.xml.in:279 msgid "Face" msgstr "ზედაპირი" #: ../data/str.xml.in:280 msgid "Haircut" msgstr "" #: ../data/str.xml.in:281 msgid "Syringe" msgstr "შპრიცი" #: ../data/str.xml.in:282 msgid "Pill" msgstr "" #: ../data/str.xml.in:283 msgid "Kiss" msgstr "" #: ../data/str.xml.in:284 msgid "Love Letter" msgstr "" #: ../data/str.xml.in:285 msgid "Ring" msgstr "ზარი" #: ../data/str.xml.in:286 msgid "Gem Stone" msgstr "" #: ../data/str.xml.in:287 msgid "Wedding" msgstr "" #: ../data/str.xml.in:288 msgid "Heart" msgstr "გული" #: ../data/str.xml.in:289 msgid "Idea" msgstr "იდეა" #: ../data/str.xml.in:290 msgid "Anger" msgstr "" #: ../data/str.xml.in:291 msgid "Bomb" msgstr "" #: ../data/str.xml.in:292 msgid "Sleeping" msgstr "მძინარე" #: ../data/str.xml.in:293 msgid "Collision" msgstr "შეჯახება" #: ../data/str.xml.in:294 msgid "Sweat" msgstr "" #: ../data/str.xml.in:295 msgid "Droplet" msgstr "წვეთი" #: ../data/str.xml.in:296 msgid "Dash" msgstr "პანელი" #: ../data/str.xml.in:297 msgid "Poo" msgstr "" #: ../data/str.xml.in:298 msgid "Muscle" msgstr "" #: ../data/str.xml.in:299 msgid "Dizzy" msgstr "" #: ../data/str.xml.in:300 msgid "Speech" msgstr "ლაპარაკი" #: ../data/str.xml.in:301 msgid "Thought" msgstr "" #: ../data/str.xml.in:302 msgid "Perfect Score" msgstr "" #: ../data/str.xml.in:303 msgid "Pushpin" msgstr "" #: ../data/str.xml.in:304 msgid "Paperclip" msgstr "სამაგრი" #: ../data/str.xml.in:305 msgid "Speaker with cancellation stroke" msgstr "" #: ../data/str.xml.in:306 msgid "Speaker low volume" msgstr "" #: ../data/str.xml.in:307 msgid "Speaker medium volume" msgstr "" #: ../data/str.xml.in:308 msgid "Speaker high volume" msgstr "" #: ../data/str.xml.in:309 msgid "Battery" msgstr "კვების ელემენტი" #: ../data/str.xml.in:310 msgid "Plug" msgstr "" #: ../data/str.xml.in:311 msgid "Magnifying glass tilted left" msgstr "" #: ../data/str.xml.in:312 msgid "Magnifying glass tilted right" msgstr "" #: ../data/str.xml.in:313 msgid "Bookmark" msgstr "" #: ../data/str.xml.in:314 msgid "Book" msgstr "წიგნი" #: ../data/str.xml.in:315 msgid "Memo" msgstr "მემორანდუმი" #: ../data/str.xml.in:316 msgid "Mail" msgstr "წერილი" #: ../data/str.xml.in:317 msgid "Incoming envelope" msgstr "" #: ../data/str.xml.in:318 msgid "Postbox" msgstr "" #: ../data/str.xml.in:319 msgid "Mobile Phone" msgstr "მობილური ტელეფონი" #: ../data/str.xml.in:320 msgid "Antenna with bars" msgstr "" #: ../data/str.xml.in:321 msgid "Camera" msgstr "კამერა" #: ../data/str.xml.in:322 msgid "Video" msgstr "ვიდეო" #: ../data/str.xml.in:323 msgid "Television" msgstr "ტელევიზია" #: ../data/str.xml.in:324 msgid "Radio" msgstr "რადიო" #: ../data/str.xml.in:325 msgid "Key" msgstr "" #: ../data/str.xml.in:326 msgid "Lock, locked" msgstr "" #: ../data/str.xml.in:327 msgid "Lock, unlocked" msgstr "" #: ../data/str.xml.in:328 msgid "Fire" msgstr "ცეცხლი" #: ../data/str.xml.in:329 msgid "Wrench" msgstr "" #: ../data/str.xml.in:330 msgid "Hammer" msgstr "ჩაქუჩი" #: ../data/str.xml.in:331 msgid "Nut and bolt" msgstr "" #: ../data/str.xml.in:332 msgid "Hocho" msgstr "" #: ../data/str.xml.in:333 msgid "Pistol" msgstr "" #: ../data/str.xml.in:334 msgid "Microscope" msgstr "" #: ../data/str.xml.in:335 msgid "Telescope" msgstr "ტელესკოპი" #: ../data/str.xml.in:336 msgid "Crystal" msgstr "კრისტალი" #: ../data/str.xml.in:337 msgid "David Star" msgstr "" #: ../data/str.xml.in:338 msgid "Beginner" msgstr "დამწყები" #: ../data/str.xml.in:339 msgid "Candle" msgstr "სანთელი" #: ../data/str.xml.in:340 msgid "Hole" msgstr "ხვრელი" #: ../data/str.xml.in:341 msgid "Laptop Computer" msgstr "" #: ../data/str.xml.in:342 msgid "Desktop Computer" msgstr "სამაგიდო კომპიუტერი" #: ../data/str.xml.in:343 msgid "keyboard" msgstr "კლავიატურა" #: ../data/str.xml.in:344 msgid "Printer" msgstr "პრინტერი" #: ../data/str.xml.in:345 msgid "Calculator" msgstr "კალკულატორი" #: ../data/str.xml.in:346 msgid "Minimize" msgstr "ჩაკეცვა" #: ../data/str.xml.in:347 msgid "Maximize" msgstr "გადიდება" #: ../data/str.xml.in:348 msgid "Refresh" msgstr "განახლება" #: ../data/str.xml.in:349 msgid "Close" msgstr "დახურვა" #: ../data/str.xml.in:350 msgid "World" msgstr "მსოფლიო" #: ../data/str.xml.in:351 msgid "Mt. Fuji" msgstr "" #: ../data/str.xml.in:352 msgid "Tokyo Tower" msgstr "" #: ../data/str.xml.in:353 msgid "Japan" msgstr "იაპონია" #: ../data/str.xml.in:354 msgid "Anguish" msgstr "" #: ../data/str.xml.in:355 msgid "Smile" msgstr "ღიმილი" #: ../data/str.xml.in:356 msgid "Smirk" msgstr "" #: ../data/str.xml.in:357 msgid "Neutral" msgstr "ნეიტრალური" #: ../data/str.xml.in:358 msgid "Expressionless" msgstr "" #: ../data/str.xml.in:359 msgid "Unamused" msgstr "" #: ../data/str.xml.in:360 msgid "Pensive" msgstr "" #: ../data/str.xml.in:361 msgid "Confused" msgstr "დაბნეული" #: ../data/str.xml.in:362 msgid "Confounded" msgstr "" #: ../data/str.xml.in:363 msgid "Disappointed" msgstr "დაბნეული" #: ../data/str.xml.in:364 msgid "Angry" msgstr "გაბრაზებული" #: ../data/str.xml.in:365 msgid "Cry" msgstr "" #: ../data/str.xml.in:366 msgid "Sleepy" msgstr "მძინარა" #: ../data/str.xml.in:367 msgid "Tired" msgstr "" #: ../data/str.xml.in:368 msgid "Surprise" msgstr "" #: ../data/str.xml.in:369 msgid "Scream" msgstr "" #: ../data/str.xml.in:370 msgid "Flushed" msgstr "" #: ../data/str.xml.in:371 msgid "Medical Mask" msgstr "" #: ../data/str.xml.in:372 msgid "OK" msgstr "დიახ" #: ../data/str.xml.in:373 msgid "Bow" msgstr "მშვილდი" #: ../data/str.xml.in:374 msgid "See-No-Evil" msgstr "" #: ../data/str.xml.in:375 msgid "Hear-No-Evil" msgstr "" #: ../data/str.xml.in:376 msgid "Speak-No-Evil" msgstr "" #: ../data/str.xml.in:377 msgid "Banzai" msgstr "" #: ../data/str.xml.in:378 msgid "Pleading" msgstr "" #: ../data/str.xml.in:379 msgid "Smileys" msgstr "სიცილაკები" #: ../data/str.xml.in:380 msgid "Smile Big" msgstr "" #: ../data/str.xml.in:381 msgid "Sad" msgstr "მოწყენილი" #: ../data/str.xml.in:382 msgid "Wink" msgstr "ვინკი" #: ../data/str.xml.in:383 msgid "Shock" msgstr "" #: ../data/str.xml.in:384 msgid "Kiss | Secret" msgstr "" #: ../data/str.xml.in:385 msgid "Glasses Cool | Eyeroll" msgstr "" #: ../data/str.xml.in:386 msgid "Glasses Cool" msgstr "" #: ../data/str.xml.in:387 msgid "Embarrassed" msgstr "შეცბუნებული" #: ../data/str.xml.in:388 msgid "Crying" msgstr "" #: ../data/str.xml.in:389 msgid "Thinking" msgstr "" #: ../data/str.xml.in:390 msgid "Don't Know" msgstr "" #: ../data/str.xml.in:391 msgid "Party" msgstr "წვეულება" #: ../data/str.xml.in:392 msgid "Yawn" msgstr "" #: ../data/str.xml.in:393 msgid "Bunny" msgstr "" #: ../data/str.xml.in:394 msgid "Sick" msgstr "ავადაა" #: ../data/str.xml.in:395 msgid "Devil" msgstr "" #: ../data/str.xml.in:396 msgid "Angel" msgstr "" #: ../data/str.xml.in:397 msgid "Love" msgstr "მიყვარს" #: ../data/str.xml.in:398 msgid "Love Over" msgstr "" #: ../data/str.xml.in:399 msgid "Film" msgstr "ლენტი" #: ../data/str.xml.in:400 msgid "Clock" msgstr "საათი" #: ../data/str.xml.in:401 msgid "Coffee" msgstr "ყავა" #: ../data/str.xml.in:402 msgid "Phone" msgstr "ტელეფონი" #: ../data/str.xml.in:403 msgid "Hug Left" msgstr "" #: ../data/str.xml.in:404 msgid "Hug Right" msgstr "" #: ../data/str.xml.in:405 msgid "Yes" msgstr "კი" #: ../data/str.xml.in:406 msgid "No" msgstr "არა" #: ../data/str.xml.in:407 msgid "Shut Mouth" msgstr "" #: ../data/str.xml.in:408 msgid "Money Mouth" msgstr "" #: ../data/str.xml.in:409 msgid "Foot in Mouth" msgstr "" #: ../data/str.xml.in:410 msgid "Shout" msgstr "" #. http://ja.wikipedia.org/wiki/%E9%A1%94%E6%96%87%E5%AD%97 #: ../data/str.xml.in:412 msgid "Smileys (Japanese)" msgstr "" #: ../data/str.xml.in:413 msgid "Smoking" msgstr "" #: ../data/str.xml.in:414 msgid "Sorry" msgstr "უკაცრავად" #: ../data/str.xml.in:415 msgid "Hug" msgstr "" #. http://ja.wikipedia.org/wiki/%E9%A1%94%E6%96%87%E5%AD%97 #: ../data/str.xml.in:417 msgid "Smileys (Japanese 2ch)" msgstr "" #: ../data/str.xml.in:418 msgid "Hey" msgstr "" #. http://ja.wikipedia.org/wiki/%E9%A1%94%E6%96%87%E5%AD%97 #: ../data/str.xml.in:420 msgid "Smileys (Chinese)" msgstr "" #: ../data/str.xml.in:421 msgid "Crow" msgstr "" #. http://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88%E3%82%B9%E3%83%A9%E3%83%B3%E3%82%B0 #: ../data/str.xml.in:423 msgid "Acronym" msgstr "აკრონიმი" #: ../data/str.xml.in:424 msgid "Acronym (Computer)" msgstr "" #. http://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88%E3%82%B9%E3%83%A9%E3%83%B3%E3%82%B0 #: ../data/str.xml.in:426 msgid "Acronym (Japanese)" msgstr "" #: ../data/str.xml.in:427 msgid "Do not want to read between lines (Aete Kuuki Wo Yomanai)" msgstr "" #: ../data/str.xml.in:428 msgid "Can't get together (Guda Guda)" msgstr "" #: ../data/str.xml.in:429 msgid "Say whatever one feels (Iitaidake)" msgstr "" #: ../data/str.xml.in:430 msgid "Excited (Kitakore)" msgstr "" #: ../data/str.xml.in:431 msgid "Detail (Kuwashiku)" msgstr "" #: ../data/str.xml.in:432 msgid "Cannot read between lines (Kuuki Ga Yomenai)" msgstr "" #: ../data/str.xml.in:433 msgid "Omission (Shouryaku)" msgstr "" #: ../data/str.xml.in:434 msgid "Excited (Waku Waku Teka Teka)" msgstr "" #: ../data/str.xml.in:435 msgid "Laugh" msgstr "" #: ../data/str.xml.in:436 msgid "Dude (Oi!)" msgstr "" #: ../data/str.xml.in:437 msgid "Good job (Otsukare)" msgstr "" #: ../data/str.xml.in:438 msgid "Want (Kure, E.g. pics クレメンス)" msgstr "" #: ../data/str.xml.in:439 msgid "ASCII art of a hand (✊, E.g. つAttention)" msgstr "" #: ../data/str.xml.in:440 msgid "In The Meantime (Toriaezu, Maa)" msgstr "" #: ../data/str.xml.in:441 msgid "Self-confidence (Aniki, E.g. tennis ニキ)" msgstr "" #: ../data/str.xml.in:442 msgid "Bye" msgstr "ნახვამდის" #: ../data/str.xml.in:443 msgid "Want (Hattekure, E.g. pics ハラデイ)" msgstr "" #: ../data/str.xml.in:444 msgid "Exist as microparticles (Biryushi Level De Sonzaisuru)" msgstr "" #: ../data/str.xml.in:445 msgid "False Start (Flying Get)" msgstr "" #: ../data/str.xml.in:446 msgid "Fulfilling Life (Real life is Zyujitsu)" msgstr "" #: ../data/str.xml.in:447 msgid "Laugh (Warau)" msgstr "" #: ../data/str.xml.in:448 msgid "He (Yatsu <- Yashi)" msgstr "" #: ../data/w3c.xml.in:1 msgid "Char References" msgstr "" #: ../data/zh.xml.in:1 msgid "Chinese" msgstr "ჩინური" #: ../data/zh.xml.in:4 ../input-pad/unicode_block.h:138 msgid "Bopomofo" msgstr "ბოპომოფო" #: ../input-pad/app-menu.ui.h:1 msgid "_File" msgstr "_ფაილი" #: ../input-pad/app-menu.ui.h:2 ../input-pad/dialog.ui.h:21 msgid "_Close" msgstr "_დახურვა" #: ../input-pad/app-menu.ui.h:3 msgid "Close the program" msgstr "" #: ../input-pad/app-menu.ui.h:4 msgid "_Pad" msgstr "" #: ../input-pad/app-menu.ui.h:5 msgid "_Code Point" msgstr "" #: ../input-pad/app-menu.ui.h:6 msgid "_Show Pad" msgstr "" #: ../input-pad/app-menu.ui.h:7 msgid "Show _All Characters" msgstr "" #: ../input-pad/app-menu.ui.h:8 msgid "Show _Custom Characters" msgstr "" #: ../input-pad/app-menu.ui.h:9 msgid "Show _Nothing" msgstr "" #: ../input-pad/app-menu.ui.h:10 msgid "Show _Keyboard Layout" msgstr "" #: ../input-pad/app-menu.ui.h:11 msgid "_Help" msgstr "_დახმარება" #: ../input-pad/app-menu.ui.h:12 msgid "_Troubleshoot" msgstr "_პრობლემების გადაწყვეტა" #: ../input-pad/app-menu.ui.h:13 msgid "_About" msgstr "შესახებ" #: ../input-pad/dialog.ui.h:1 msgid "Code Point Dialog" msgstr "" #: ../input-pad/dialog.ui.h:2 msgid "Unicode" msgstr "უნიკოდი" #: ../input-pad/dialog.ui.h:3 msgid "You can choose encoding type" msgstr "" #: ../input-pad/dialog.ui.h:4 msgid "Current Encoding" msgstr "" #: ../input-pad/dialog.ui.h:5 msgid "Copy Buffer" msgstr "ბუფერის კოპირება" #: ../input-pad/dialog.ui.h:6 msgid "" "Base 16\n" "Hex" msgstr "" #: ../input-pad/dialog.ui.h:8 msgid "Set number case to hexadecimal" msgstr "" #: ../input-pad/dialog.ui.h:9 msgid "" "Base 10\n" "Dec" msgstr "" #: ../input-pad/dialog.ui.h:11 msgid "Set number case to decimal" msgstr "" #: ../input-pad/dialog.ui.h:12 msgid "" "Base 8\n" "Oct" msgstr "" #: ../input-pad/dialog.ui.h:14 msgid "Set number case to octal" msgstr "" #: ../input-pad/dialog.ui.h:15 msgid "" "Base 2\n" "Bin" msgstr "" #: ../input-pad/dialog.ui.h:17 msgid "Set number case to binary" msgstr "" #: ../input-pad/dialog.ui.h:18 msgid "Code Point:" msgstr "" #: ../input-pad/dialog.ui.h:19 msgid "Character:" msgstr "სიმბოლო:" #: ../input-pad/dialog.ui.h:20 msgid "_Send" msgstr "_გაგზავნა" #: ../input-pad/dialog.ui.h:22 msgid "Input Pad Troubleshoot" msgstr "" #: ../input-pad/dialog.ui.h:24 #, no-c-format msgid "" "\n" "This application can be run either as a stand-alone program or under an " "input method application.\n" "If you wish to send multi-byte characters, this application needs to be run " "under an input method application.\n" "If you wish to send characters to X11 applications, those applications needs " "to allow send events. e.g.\n" "% xterm -xrm \"XTerm*allowSendEvents: true\"\n" "\n" "You also can copy pad files from /usr/share/input-pad/pad to $HOME/.config/" "pad to customize those in \"Custom Character\" pane." msgstr "" #: ../input-pad/dialog.ui.h:31 msgid "_OK" msgstr "_დიახ" #: ../input-pad/dialog.ui.h:32 msgid "Configure Keyboard Layouts" msgstr "" #: ../input-pad/dialog.ui.h:33 msgid "A_vailable layouts:" msgstr "" #: ../input-pad/dialog.ui.h:34 msgid "_Add" msgstr "_დამატება" #: ../input-pad/dialog.ui.h:35 msgid "_Layouts shown in the list:" msgstr "" #: ../input-pad/dialog.ui.h:36 msgid "_Remove" msgstr "წ_აშლა" #: ../input-pad/dialog.ui.h:37 msgid "_Options" msgstr "_პარამეტრები" #: ../input-pad/dialog.ui.h:38 msgid "Configure Keyboard Options" msgstr "" #: ../input-pad/dialog.ui.h:39 msgid "_Use the default keyboard option" msgstr "" #: ../input-pad/dialog.ui.h:40 msgid "Use the defualt XKB option" msgstr "" #: ../input-pad/dialog.ui.h:41 msgid "Keyboard Option" msgstr "" #: ../input-pad/dialog.ui.h:43 msgid "The input pad is a tool to send a character on button." msgstr "" #: ../input-pad/dialog.ui.h:44 msgid "translator_credits" msgstr "მთარგმნელის_შესახებ" #: ../input-pad/eek-gtk.c:65 msgid "Use libeek to draw keyboard" msgstr "" #: ../input-pad/eek-gtk.c:237 msgid "eekboard layout" msgstr "" #: ../input-pad/eek-gtk.c:249 msgid "eekboard Options" msgstr "" #: ../input-pad/eek-gtk.c:249 msgid "Show eekboard Options" msgstr "" #: ../input-pad/unicode_block.h:37 msgid "Basic Latin" msgstr "საბაზისო ლათინური" #: ../input-pad/unicode_block.h:40 msgid "Latin Extended-B" msgstr "ლათინური გაფართოებული-B" #: ../input-pad/unicode_block.h:41 msgid "IPA Extensions" msgstr "IPA-ის გაფართოებები" #: ../input-pad/unicode_block.h:42 msgid "Spacing Modifier Letters" msgstr "ჰარეს მოდიფიკატორი სიმბოლოები" #: ../input-pad/unicode_block.h:43 msgid "Combining Diacritical Marks" msgstr "შემკრები დიაკრიტიკული სანიშნები" #: ../input-pad/unicode_block.h:44 msgid "Greek and Coptic" msgstr "ბერძნული და კოპტური" #: ../input-pad/unicode_block.h:45 msgid "Cyrillic" msgstr "კირილიცა" #: ../input-pad/unicode_block.h:46 msgid "Cyrillic Supplement" msgstr "კირილიცა დამატებებით" #: ../input-pad/unicode_block.h:47 msgid "Armenian" msgstr "სომხური" #: ../input-pad/unicode_block.h:48 msgid "Hebrew" msgstr "ივრითი" #: ../input-pad/unicode_block.h:49 msgid "Arabic" msgstr "არაბული" #: ../input-pad/unicode_block.h:50 msgid "Syriac" msgstr "სირიული" #: ../input-pad/unicode_block.h:51 msgid "Arabic Supplement" msgstr "არაბული დამატებებით" #: ../input-pad/unicode_block.h:52 msgid "Thaana" msgstr "თაანური" #: ../input-pad/unicode_block.h:53 msgid "NKo" msgstr "NKo" #: ../input-pad/unicode_block.h:54 msgid "Samaritan" msgstr "სამარიტული" #: ../input-pad/unicode_block.h:55 msgid "Devanagari" msgstr "დევაგანური" #: ../input-pad/unicode_block.h:56 msgid "Bengali" msgstr "ბენგალური" #: ../input-pad/unicode_block.h:57 msgid "Gurmukhi" msgstr "გურმუხული" #: ../input-pad/unicode_block.h:58 msgid "Gujarati" msgstr "გუჯარათული" #: ../input-pad/unicode_block.h:59 msgid "Oriya" msgstr "ორია" #: ../input-pad/unicode_block.h:60 msgid "Tamil" msgstr "თამილური" #: ../input-pad/unicode_block.h:61 msgid "Telugu" msgstr "ტელუგური" #: ../input-pad/unicode_block.h:62 msgid "Kannada" msgstr "კანნადა" #: ../input-pad/unicode_block.h:63 msgid "Malayalam" msgstr "მალაიამი" #: ../input-pad/unicode_block.h:64 msgid "Sinhala" msgstr "სინჰალა" #: ../input-pad/unicode_block.h:65 msgid "Thai" msgstr "ტაილანდური" #: ../input-pad/unicode_block.h:66 msgid "Lao" msgstr "ლაოსური" #: ../input-pad/unicode_block.h:67 msgid "Tibetan" msgstr "ტიბეტური" #: ../input-pad/unicode_block.h:68 msgid "Myanmar" msgstr "მიანმარი" #: ../input-pad/unicode_block.h:69 msgid "Georgian" msgstr "ქართული" #: ../input-pad/unicode_block.h:70 msgid "Hangul Jamo" msgstr "ჰანგული ჯამო" #: ../input-pad/unicode_block.h:71 msgid "Ethiopic" msgstr "ეთიოპიური" #: ../input-pad/unicode_block.h:72 msgid "Ethiopic Supplement" msgstr "ეთიოპური დამატებებით" #: ../input-pad/unicode_block.h:73 msgid "Cherokee" msgstr "ჩეროკი" #: ../input-pad/unicode_block.h:74 msgid "Unified Canadian Aboriginal Syllabics" msgstr "კანადური აბორიგინალური" #: ../input-pad/unicode_block.h:75 msgid "Ogham" msgstr "ოგამი" #: ../input-pad/unicode_block.h:76 msgid "Runic" msgstr "რუნები" #: ../input-pad/unicode_block.h:77 msgid "Tagalog" msgstr "ტაგალოგური" #: ../input-pad/unicode_block.h:78 msgid "Hanunoo" msgstr "ჰანუნოო" #: ../input-pad/unicode_block.h:79 msgid "Buhid" msgstr "ბუჰიდი" #: ../input-pad/unicode_block.h:80 msgid "Tagbanwa" msgstr "ტაგბანვა" #: ../input-pad/unicode_block.h:81 msgid "Khmer" msgstr "კხმერული" #: ../input-pad/unicode_block.h:82 msgid "Mongolian" msgstr "მონღოლური" #: ../input-pad/unicode_block.h:83 msgid "Unified Canadian Aboriginal Syllabics Extended" msgstr "უნიფიცირებული კანადური აბორიგინალური მარცვლები, გაფართოებული" #: ../input-pad/unicode_block.h:84 msgid "Limbu" msgstr "ლიმბუ" #: ../input-pad/unicode_block.h:85 msgid "Tai Le" msgstr "ტაი ლე" #: ../input-pad/unicode_block.h:86 msgid "New Tai Lue" msgstr "ახალი ტაი ლუ" #: ../input-pad/unicode_block.h:87 msgid "Khmer Symbols" msgstr "ხმერული სიმბოლოები" #: ../input-pad/unicode_block.h:88 msgid "Buginese" msgstr "ბუგინური" #: ../input-pad/unicode_block.h:89 msgid "Tai Tham" msgstr "ტაი ენა" #: ../input-pad/unicode_block.h:90 msgid "Balinese" msgstr "ბალინური" #: ../input-pad/unicode_block.h:91 msgid "Sundanese" msgstr "სუნდური" #: ../input-pad/unicode_block.h:92 msgid "Lepcha" msgstr "ლეპჩა" #: ../input-pad/unicode_block.h:93 msgid "Ol Chiki" msgstr "ოლ ჩიკი" #: ../input-pad/unicode_block.h:94 msgid "Vedic Extensions" msgstr "ვედიიური გაფართოებები" #: ../input-pad/unicode_block.h:95 msgid "Phonetic Extensions" msgstr "ფონეტიკური გაფართოებები" #: ../input-pad/unicode_block.h:96 msgid "Phonetic Extensions Supplement" msgstr "ფონეტიკური გაფართოებების ჩანაცვლებები" #: ../input-pad/unicode_block.h:97 msgid "Combining Diacritical Marks Supplement" msgstr "შემკრები დიაკრიტიკული სანიშნების დანამატები" #: ../input-pad/unicode_block.h:98 msgid "Latin Extended Additional" msgstr "ლათინური დამატებით გაფართოებული" #: ../input-pad/unicode_block.h:99 msgid "Greek Extended" msgstr "გაფართოებული ბერძნული" #: ../input-pad/unicode_block.h:100 msgid "General Punctuation" msgstr "ზოგადი პუნქტუაცია" #: ../input-pad/unicode_block.h:101 msgid "Superscripts and Subscripts" msgstr "ზედა და ქვედა სკრიპტები" #: ../input-pad/unicode_block.h:102 msgid "Currency Symbols" msgstr "ფულის სიმბოლოები" #: ../input-pad/unicode_block.h:103 msgid "Combining Diacritical Marks for Symbols" msgstr "შემკრები დიაკრიტიკული სანიშნები სიმბოლოებისთვის" #: ../input-pad/unicode_block.h:104 msgid "Letterlike Symbols" msgstr "ასოს-მსგავსი სიმბოლოები" #: ../input-pad/unicode_block.h:105 msgid "Number Forms" msgstr "რიცხვითი ფორმები" #: ../input-pad/unicode_block.h:106 msgid "Arrows" msgstr "ისრები" #: ../input-pad/unicode_block.h:107 msgid "Mathematical Operators" msgstr "მათემატიკური ოპერატორები" #: ../input-pad/unicode_block.h:108 msgid "Miscellaneous Technical" msgstr "დანარჩენი ტექნიკური" #: ../input-pad/unicode_block.h:109 msgid "Control Pictures" msgstr "საკონტროლო სურათები" #: ../input-pad/unicode_block.h:110 msgid "Optical Character Recognition" msgstr "სიმბოლოების ოპტიკური გამოცნობა" #: ../input-pad/unicode_block.h:111 msgid "Enclosed Alphanumerics" msgstr "ჩასმული ასოები და რიცხვები" #: ../input-pad/unicode_block.h:113 msgid "Block Elements" msgstr "ბლოკის ელემენტები" #: ../input-pad/unicode_block.h:114 msgid "Geometric Shapes" msgstr "გეომეტრიული ფიგურები" #: ../input-pad/unicode_block.h:115 msgid "Miscellaneous Symbols" msgstr "სხვადასხვა სიმბოლოები" #: ../input-pad/unicode_block.h:117 msgid "Miscellaneous Mathematical Symbols-A" msgstr "სხვადასხვა მათემატიკური სიმბოლოები - A" #: ../input-pad/unicode_block.h:118 msgid "Supplemental Arrows-A" msgstr "დამატებითი ისრები - A" #: ../input-pad/unicode_block.h:119 msgid "Braille Patterns" msgstr "ბრაილის შაბლონები" #: ../input-pad/unicode_block.h:120 msgid "Supplemental Arrows-B" msgstr "დამატებითი ისრები - B" #: ../input-pad/unicode_block.h:121 msgid "Miscellaneous Mathematical Symbols-B" msgstr "სხვადასხვა მათემატიკური სიმბოლოები - B" #: ../input-pad/unicode_block.h:122 msgid "Supplemental Mathematical Operators" msgstr "დამატებითი მათემატიკური ოპერატორები" #: ../input-pad/unicode_block.h:123 msgid "Miscellaneous Symbols and Arrows" msgstr "სხვადასხვა სიმბოლოები და ისრები" #: ../input-pad/unicode_block.h:124 msgid "Glagolitic" msgstr "გლაგოლიტური" #: ../input-pad/unicode_block.h:125 msgid "Latin Extended-C" msgstr "ლათინური გაფართოებული-C" #: ../input-pad/unicode_block.h:126 msgid "Coptic" msgstr "კოპტური" #: ../input-pad/unicode_block.h:127 msgid "Georgian Supplement" msgstr "ქართული დამატებებით" #: ../input-pad/unicode_block.h:128 msgid "Tifinagh" msgstr "ტიფინაგური" #: ../input-pad/unicode_block.h:129 msgid "Ethiopic Extended" msgstr "გაფართოებული ეთიოპიური" #: ../input-pad/unicode_block.h:130 msgid "Cyrillic Extended-A" msgstr "კირილიცა გაფართოებული-A" #: ../input-pad/unicode_block.h:131 msgid "Supplemental Punctuation" msgstr "დამატებითი პუნქტუაცია" #: ../input-pad/unicode_block.h:133 msgid "Kangxi Radicals" msgstr "Kangxi-ის რადიკალები" #: ../input-pad/unicode_block.h:134 msgid "Ideographic Description Characters" msgstr "იდეოგრაფიური აღწერის სიმბოლოები" #: ../input-pad/unicode_block.h:135 msgid "CJK Symbols and Punctuation" msgstr "CJK სიმბოლოები და პუნქტუაცია" #: ../input-pad/unicode_block.h:139 msgid "Hangul Compatibility Jamo" msgstr "Hangul-თან თავსებადი Jamo" #: ../input-pad/unicode_block.h:140 msgid "Kanbun" msgstr "კანბუნი" #: ../input-pad/unicode_block.h:141 msgid "Bopomofo Extended" msgstr "ბოპომოფო, გაფართოებული" #: ../input-pad/unicode_block.h:142 msgid "CJK Strokes" msgstr "CJK-ის ჩარტყმები" #: ../input-pad/unicode_block.h:143 msgid "Katakana Phonetic Extensions" msgstr "კატაკანის ფონეტიკური გაფართოებები" #: ../input-pad/unicode_block.h:144 msgid "Enclosed CJK Letters and Months" msgstr "დახურული CJK ასოები და თვეებ" #: ../input-pad/unicode_block.h:146 msgid "CJK Unified Ideographs Extension A" msgstr "CJK გაერთიანებული იდეოგრაფების გაფართოება A" #: ../input-pad/unicode_block.h:147 msgid "Yijing Hexagram Symbols" msgstr "იჩინგის ჰექსაგრამული სიბოლოები" #: ../input-pad/unicode_block.h:148 msgid "CJK Unified Ideographs" msgstr "CJK გაფართოებული იდეოგრაფები" #: ../input-pad/unicode_block.h:149 msgid "Yi Syllables" msgstr "იჩიგის მარცვლები" #: ../input-pad/unicode_block.h:150 msgid "Yi Radicals" msgstr "იჩინგის რადიკალები" #: ../input-pad/unicode_block.h:151 msgid "Lisu" msgstr "ლისუ" #: ../input-pad/unicode_block.h:152 msgid "Vai" msgstr "ვაი" #: ../input-pad/unicode_block.h:153 msgid "Cyrillic Extended-B" msgstr "კირილიცა გაფართოებული-B" #: ../input-pad/unicode_block.h:154 msgid "Bamum" msgstr "ბამუმი" #: ../input-pad/unicode_block.h:155 msgid "Modifier Tone Letters" msgstr "ტონის მოდიფიკატორი სიმბოლოები" #: ../input-pad/unicode_block.h:156 msgid "Latin Extended-D" msgstr "ლათინური გაფართოებული-D" #: ../input-pad/unicode_block.h:157 msgid "Syloti Nagri" msgstr "Syloti Nagri" #: ../input-pad/unicode_block.h:158 msgid "Common Indic Number Forms" msgstr "ზოგადი ინდური რიცხვითი ფორმები" #: ../input-pad/unicode_block.h:159 msgid "Phags-pa" msgstr "Phags-pa" #: ../input-pad/unicode_block.h:160 msgid "Saurashtra" msgstr "საურაშტრა" #: ../input-pad/unicode_block.h:161 msgid "Devanagari Extended" msgstr "დევაგანური გაფართოებული" #: ../input-pad/unicode_block.h:162 msgid "Kayah Li" msgstr "კაია-ლი" #: ../input-pad/unicode_block.h:163 msgid "Rejang" msgstr "რეჯანგი" #: ../input-pad/unicode_block.h:164 msgid "Hangul Jamo Extended-A" msgstr "ჰანგული ჯამო გაფართოებული-A" #: ../input-pad/unicode_block.h:165 msgid "Javanese" msgstr "იავური" #: ../input-pad/unicode_block.h:166 msgid "Cham" msgstr "ჩამური" #: ../input-pad/unicode_block.h:167 msgid "Myanmar Extended-A" msgstr "მიანმარი გაფართოებული-A" #: ../input-pad/unicode_block.h:168 msgid "Tai Viet" msgstr "ტაი ვიეტური" #: ../input-pad/unicode_block.h:169 msgid "Meetei Mayek" msgstr "მანიპურული" #: ../input-pad/unicode_block.h:170 msgid "Hangul Syllables" msgstr "ჰანგულის მარცვლები" #: ../input-pad/unicode_block.h:171 msgid "Hangul Jamo Extended-B" msgstr "ჰანგული ჯამო გაფართოებული-B" #: ../input-pad/unicode_block.h:172 msgid "High Surrogates" msgstr "მაღალი სუროგატები" #: ../input-pad/unicode_block.h:173 msgid "High Private Use Surrogates" msgstr "მაღალი პირადი გამოყენების სუროგატები" #: ../input-pad/unicode_block.h:174 msgid "Low Surrogates" msgstr "დაბალი სუროგატები" #: ../input-pad/unicode_block.h:175 msgid "Private Use Area" msgstr "პირადი გამოყენების ადგილი" #: ../input-pad/unicode_block.h:176 msgid "CJK Compatibility Ideographs" msgstr "CJK თავსებადი იდეოგრაფები" #: ../input-pad/unicode_block.h:177 msgid "Alphabetic Presentation Forms" msgstr "ანბანური წარმოდგენის ფორმები" #: ../input-pad/unicode_block.h:178 msgid "Arabic Presentation Forms-A" msgstr "ფორმების არაბული პრეზენტაცია-A" #: ../input-pad/unicode_block.h:179 msgid "Variation Selectors" msgstr "ვარიაციული სელექტორები" #: ../input-pad/unicode_block.h:180 msgid "Vertical Forms" msgstr "ვერტიკალური ფორმები" #: ../input-pad/unicode_block.h:181 msgid "Combining Half Marks" msgstr "ნახევრადსანიშნების კომბინირება" #: ../input-pad/unicode_block.h:182 msgid "CJK Compatibility Forms" msgstr "CJK თავსებადობის ფორმები" #: ../input-pad/unicode_block.h:183 msgid "Small Form Variants" msgstr "პატარა ფორმის ვარიანტები" #: ../input-pad/unicode_block.h:184 msgid "Arabic Presentation Forms-B" msgstr "ფორმების არაბული პრეზენტაცია-" #: ../input-pad/unicode_block.h:185 msgid "Halfwidth and Fullwidth Forms" msgstr "ნახევარსიგანიანი და სრულსიგანიანი ფორმები" #: ../input-pad/unicode_block.h:186 msgid "Specials" msgstr "სპეციალური სიმბოლოები" #: ../input-pad/unicode_block.h:187 msgid "Linear B Syllabary" msgstr "წრფივი B მარცვლოვანი ანბანი" #: ../input-pad/unicode_block.h:188 msgid "Linear B Ideograms" msgstr "წრფივი B იდეოგრამები" #: ../input-pad/unicode_block.h:189 msgid "Aegean Numbers" msgstr "ეგეოსური რიცხვები" #: ../input-pad/unicode_block.h:190 msgid "Ancient Greek Numbers" msgstr "ძველბერძნული ციფრები" #: ../input-pad/unicode_block.h:191 msgid "Ancient Symbols" msgstr "ძველი სიმბოლოები" #: ../input-pad/unicode_block.h:192 msgid "Phaistos Disc" msgstr "ფესტოსის დისკო" #: ../input-pad/unicode_block.h:193 msgid "Lycian" msgstr "ლიდიის" #: ../input-pad/unicode_block.h:194 msgid "Carian" msgstr "კარიული" #: ../input-pad/unicode_block.h:195 msgid "Old Italic" msgstr "ძველი დახრილი" #: ../input-pad/unicode_block.h:197 msgid "Ugaritic" msgstr "უგარათული" #: ../input-pad/unicode_block.h:198 msgid "Old Persian" msgstr "ძველი სპარსული" #: ../input-pad/unicode_block.h:199 msgid "Deseret" msgstr "უდაბნოური" #: ../input-pad/unicode_block.h:201 msgid "Osmanya" msgstr "ოსმანია" #: ../input-pad/unicode_block.h:202 msgid "Cypriot Syllabary" msgstr "კვიპრიოტული მარცვლოვანი ანბანი" #: ../input-pad/unicode_block.h:203 msgid "Imperial Aramaic" msgstr "იმპერიული არამეული" #: ../input-pad/unicode_block.h:204 msgid "Phoenician" msgstr "ფონეტიკური" #: ../input-pad/unicode_block.h:205 msgid "Lydian" msgstr "ლიდიური" #: ../input-pad/unicode_block.h:206 msgid "Kharoshthi" msgstr "ხაროშტი" #: ../input-pad/unicode_block.h:207 msgid "Old South Arabian" msgstr "ძველი სამხრეთ არაბული" #: ../input-pad/unicode_block.h:208 msgid "Avestan" msgstr "ავესტანი" #: ../input-pad/unicode_block.h:209 msgid "Inscriptional Parthian" msgstr "პართიული დამწერლობა" #: ../input-pad/unicode_block.h:210 msgid "Inscriptional Pahlavi" msgstr "ფეჰლევის დამწერლობა" #: ../input-pad/unicode_block.h:211 msgid "Old Turkic" msgstr "ძველი თურქული" #: ../input-pad/unicode_block.h:212 msgid "Rumi Numeral Symbols" msgstr "" #: ../input-pad/unicode_block.h:213 msgid "Kaithi" msgstr "კაიტხი" #: ../input-pad/unicode_block.h:214 msgid "Cuneiform" msgstr "ლურსმული" #: ../input-pad/unicode_block.h:215 msgid "Cuneiform Numbers and Punctuation" msgstr "ლურსმული რიცხვები და პუნქტუაცია" #: ../input-pad/unicode_block.h:216 msgid "Egyptian Hieroglyphs" msgstr "ეგვიპტური იეროგლიფები" #: ../input-pad/unicode_block.h:217 msgid "Byzantine Musical Symbols" msgstr "ბიზანტიური მუსიკალური სიმბოლოები" #: ../input-pad/unicode_block.h:218 msgid "Musical Symbols" msgstr "მუსიკალური სიმბოლოები" #: ../input-pad/unicode_block.h:219 msgid "Ancient Greek Musical Notation" msgstr "ძველბერძნული მუსიკალური ნოტაციები" #: ../input-pad/unicode_block.h:220 msgid "Tai Xuan Jing Symbols" msgstr "Tai Xuan Jing-ის სიმბოლოები" #: ../input-pad/unicode_block.h:221 msgid "Counting Rod Numerals" msgstr "ჩხირებით თვლა" #: ../input-pad/unicode_block.h:222 msgid "Mathematical Alphanumeric Symbols" msgstr "მათემატიკური ალფარიცხვული სიმბოლოები" #: ../input-pad/unicode_block.h:223 msgid "Mahjong Tiles" msgstr "მაჰჯონგის ფილები" #: ../input-pad/unicode_block.h:224 msgid "Domino Tiles" msgstr "დომინოს ფილები" #: ../input-pad/unicode_block.h:225 msgid "Enclosed Alphanumeric Supplement" msgstr "დამატებით შემოსაზღვრული ციფრები და სიმბოლოები" #: ../input-pad/unicode_block.h:226 msgid "Enclosed Ideographic Supplement" msgstr "დამატებით შემოსაზღვრული იეროგლიფები" #: ../input-pad/unicode_block.h:227 msgid "CJK Unified Ideographs Extension B" msgstr "CJK გაერთიანებული იდეოგრაფების გაფართოება B" #: ../input-pad/unicode_block.h:228 msgid "CJK Unified Ideographs Extension C" msgstr "CJK გაერთიანებული იდეოგრაფების გაფართოება C" #: ../input-pad/unicode_block.h:229 msgid "CJK Compatibility Ideographs Supplement" msgstr "CJK თავსებადი იდეოგრაფების დამატებები" #: ../input-pad/unicode_block.h:230 msgid "Tags" msgstr "ჭდეები" #: ../input-pad/unicode_block.h:231 msgid "Variation Selectors Supplement" msgstr "ვარიაციული სელექტორების დამატება" #: ../input-pad/unicode_block.h:232 msgid "Supplementary Private Use Area-A" msgstr "პირადი გამოყენების ადგილი-A" #: ../input-pad/unicode_block.h:233 msgid "Supplementary Private Use Area-B" msgstr "პირადი გამოყენების ადგილი-B" #: ../input-pad/window-gtk.c:247 msgid "Display version" msgstr "ვერსის ჩვენება" #. Translators: the word 'KBDUI' is not translated. #: ../input-pad/window-gtk.c:250 msgid "Use KBDUI to draw keyboard" msgstr "" #. Translators: the word 'TYPE' is not translated. #: ../input-pad/window-gtk.c:253 msgid "Use TYPE of char table. The available TYPE=0, 1, 2" msgstr "" #. Translators: the word 'TYPE' is not translated. #: ../input-pad/window-gtk.c:256 msgid "Use TYPE of keyboard layout. The available TYPE=0, 1" msgstr "" #: ../input-pad/window-gtk.c:263 msgid "Use XTEST module to send key events" msgstr "" #: ../input-pad/window-gtk.c:268 msgid "Use XSendEvent to send key events" msgstr "" #: ../input-pad/window-gtk.c:1216 msgid "Fold layout" msgstr "" #: ../input-pad/window-gtk.c:1221 ../input-pad/window-gtk.c:2619 msgid "Extend layout" msgstr "" #: ../input-pad/window-gtk.c:2833 msgid "Layout" msgstr "განლაგება" #: ../input-pad/window-gtk.c:3104 msgid "_Layout:" msgstr "განლაგება:" #: ../input-pad/window-gtk.c:3134 msgid "_Configure Layouts" msgstr "" #. No longer used in gtk 2.20 #. gchar *license1, *license2, *license3; #. license1 = _("" #. "This library is free software; you can redistribute it and/or " #. "modify it under the terms of the GNU Lesser General Public " #. "License as published by the Free Software Foundation; either " #. "version 2 of the License, or (at your option) any later version."); #. #. license2 = _("" #. "This library is distributed in the hope that it will be useful, " #. "but WITHOUT ANY WARRANTY; without even the implied warranty of " #. "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU " #. "Lesser General Public License for more details."); #. #. license3 = _("" #. "You should have received a copy of the GNU Lesser General Public " #. "License along with this library; if not, write to the Free Software " #. "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, " #. "MA 02110-1301 USA"); #. #. license = g_strdup_printf ("%s\n\n%s\n\n%s", #. license1, license2, license3); #. #. This format has been used since gtk 2.20. #: ../input-pad/window-gtk.c:3173 #, c-format msgid "This program comes with ABSOLUTELY NO WARRANTY; for details, visit %s" msgstr "" #: ../input-pad/window-gtk.c:3455 msgid "Group" msgstr "ჯგუფი" #: ../input-pad/window-gtk.c:3463 msgid "Subgroup" msgstr "ქვეჯგუფი" input-pad-1.1.0/po/pt_BR.po000066400000000000000000002147571476727667600154520ustar00rootroot00000000000000# Portuguese (Brazil) translations for input-pad # Copyright (C) 2010-2016 Takao Fujiwara # This file is distributed under the same license as the input-pad package. # # Marco Aurélio Krause , 2015. #zanata msgid "" msgstr "" "Project-Id-Version: input-pad HEAD\n" "Report-Msgid-Bugs-To: http://code.google.com/p/input-pad/issues/list\n" "POT-Creation-Date: 2016-03-02 18:45+0900\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2015-10-28 02:59-0400\n" "Last-Translator: Marco Aurélio Krause \n" "Language-Team: Portuguese (Brazil)\n" "Language: pt-BR\n" "X-Generator: Zanata 3.8.2\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" #: ../data/alphabet.xml.in.in.h:1 msgid "Alphabets" msgstr "Alfabetos" #: ../data/base.xml.in.h:1 msgid "Symbols" msgstr "Símbolos" #: ../data/base.xml.in.h:2 msgid "Currency" msgstr "Moeda" #: ../data/base.xml.in.h:3 msgid "Letterlike" msgstr "" #: ../data/base.xml.in.h:4 msgid "Miscellaneous" msgstr "" #: ../data/base.xml.in.h:5 ../input-pad/unicode_block.h:116 msgid "Dingbats" msgstr "" #. Translators: Superscripts and Subscripts #: ../data/base.xml.in.h:7 msgid "Super and Sub" msgstr "Super e Sub" #: ../data/base.xml.in.h:8 msgid "Bold" msgstr "Negrito" #: ../data/base.xml.in.h:9 msgid "Italic" msgstr "Itálico" #: ../data/base.xml.in.h:10 msgid "Script" msgstr "Script" #: ../data/base.xml.in.h:11 msgid "Double Struck" msgstr "" #: ../data/base.xml.in.h:12 msgid "All" msgstr "Tudo" #: ../data/base.xml.in.h:13 ../data/zh.xml.in.h:2 msgid "Numbers" msgstr "Números" #: ../data/base.xml.in.h:14 msgid "Roman" msgstr "Romano" #: ../data/base.xml.in.h:15 msgid "Enclosed" msgstr "Fechado" #: ../data/base.xml.in.h:16 msgid "Fraction" msgstr "Fração" #: ../data/base.xml.in.h:17 msgid "Technical" msgstr "Técnico" #: ../data/base.xml.in.h:18 msgid "Unit" msgstr "Unidade" #: ../data/base.xml.in.h:19 msgid "Mathematical" msgstr "Matemática" #: ../data/base.xml.in.h:20 msgid "Controls" msgstr "Controles" #: ../data/base.xml.in.h:21 msgid "OCR" msgstr "OCR" #: ../data/base.xml.in.h:22 msgid "Graphics" msgstr "Gráficos" #: ../data/base.xml.in.h:23 msgid "Arrow" msgstr "Flecha" #: ../data/base.xml.in.h:24 ../input-pad/unicode_block.h:112 msgid "Box Drawing" msgstr "" #: ../data/base.xml.in.h:25 ../input-pad/window-gtk.c:3685 msgid "Block" msgstr "Bloco" #: ../data/base.xml.in.h:26 msgid "Geometric" msgstr "Geométrico" #: ../data/base.xml.in.h:27 msgid "Braille" msgstr "Braille" #: ../data/base.xml.in.h:28 msgid "Punctuations" msgstr "Pontuações" #: ../data/base.xml.in.h:29 msgid "General" msgstr "Geral" #: ../data/base.xml.in.h:30 msgid "CJK" msgstr "CJK" #: ../data/base.xml.in.h:31 ../input-pad/unicode_block.h:145 msgid "CJK Compatibility" msgstr "Compatibilidade com GJK" #: ../data/base.xml.in.h:32 msgid "Small Form" msgstr "" #: ../data/cmd.xml.in.h:1 msgid "Command" msgstr "Comando" #: ../data/cmd.xml.in.h:2 msgid "Date" msgstr "Data" #: ../data/cmd.xml.in.h:3 msgid "Normal Date" msgstr "" #: ../data/cmd.xml.in.h:4 msgid "Date and Time" msgstr "Data e hora" #: ../data/cmd.xml.in.h:5 msgid "ChangeLog date" msgstr "" #: ../data/cmd.xml.in.h:6 msgid "USA English date" msgstr "" #: ../data/cmd.xml.in.h:7 msgid "UK English date" msgstr "" #: ../data/cmd.xml.in.h:8 msgid "ISO 8601 date" msgstr "" #: ../data/cmd.xml.in.h:9 msgid "Era" msgstr "" #: ../data/cmd.xml.in.h:10 msgid "Century Year" msgstr "" #: ../data/cmd.xml.in.h:11 msgid "Normal Time" msgstr "" #: ../data/cmd.xml.in.h:12 msgid "English Time" msgstr "" #: ../data/cmd.xml.in.h:13 msgid "Month" msgstr "" #: ../data/cmd.xml.in.h:14 msgid "English Month" msgstr "" #: ../data/cmd.xml.in.h:15 msgid "Short Month" msgstr "" #: ../data/cmd.xml.in.h:16 msgid "English Short Month" msgstr "" #: ../data/cmd.xml.in.h:17 msgid "Weekday" msgstr "" #: ../data/cmd.xml.in.h:18 msgid "English Weekday" msgstr "" #: ../data/cmd.xml.in.h:19 msgid "Short Weekday" msgstr "" #: ../data/cmd.xml.in.h:20 msgid "English Short Weekday" msgstr "" #: ../data/goth.xml.in.h:1 ../input-pad/unicode_block.h:196 msgid "Gothic" msgstr "" #: ../data/input-pad.desktop.in.h:1 ../input-pad/dialog.ui.h:42 #: ../input-pad/window-gtk.c:5084 ../input-pad/window-gtk.c:5085 #: ../input-pad/window-gtk.ui.h:1 msgid "Input Pad" msgstr "" #. "IPA" stands for "International Phonetic Alphabet" #: ../data/ipa-obsolete.xml.in.h:2 msgid "IPA (Obsolete)" msgstr "" #: ../data/ipa-obsolete.xml.in.h:3 ../data/ipa.xml.in.h:6 msgid "Open back unrounded vowel" msgstr "" #: ../data/ipa-obsolete.xml.in.h:4 msgid "Palatalized voiced bilabial plosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:5 msgid "Voiceless palatal implosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:6 ../data/ipa.xml.in.h:138 msgid "Alveolar click" msgstr "" #: ../data/ipa-obsolete.xml.in.h:7 msgid "Palatalized voiced alveolar plosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:8 ../data/ipa.xml.in.h:25 msgid "Voiced alveolar affricate" msgstr "" #: ../data/ipa-obsolete.xml.in.h:9 ../data/ipa.xml.in.h:27 msgid "Voiced alveopalatal affricate" msgstr "" #: ../data/ipa-obsolete.xml.in.h:10 ../data/ipa.xml.in.h:26 msgid "Voiced palato-alveolar affricate" msgstr "" #: ../data/ipa-obsolete.xml.in.h:11 msgid "Palatalized voiceless labiodental fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:12 msgid "Palatalized voiced velar plosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:13 msgid "Palatalized voiceless velar plosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:14 msgid "Voiceless velar implosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:15 msgid "Palatalized alveolar lateral approximant" msgstr "" #: ../data/ipa-obsolete.xml.in.h:16 msgid "Palatalized bilabial nasal" msgstr "" #: ../data/ipa-obsolete.xml.in.h:17 msgid "Palatalized alveolar nasal" msgstr "" #: ../data/ipa-obsolete.xml.in.h:18 msgid "Syllabic alveolar nasal" msgstr "" #: ../data/ipa-obsolete.xml.in.h:19 msgid "Palatalized voiceless bilabial plosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:20 msgid "Voiceless bilabial implosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:21 msgid "Palatalized alveolar trill" msgstr "" #: ../data/ipa-obsolete.xml.in.h:22 msgid "Voiced strident apico-alveolar trill" msgstr "" #: ../data/ipa-obsolete.xml.in.h:23 msgid "Palatalized voiceless alveolar fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:24 ../data/ipa.xml.in.h:19 msgid "Voiceless alveopalatal fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:25 msgid "Labialized voiceless palato-alveolar fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:26 ../data/ipa.xml.in.h:103 msgid "Voiceless alveopalatal affricate" msgstr "" #: ../data/ipa-obsolete.xml.in.h:27 ../data/ipa.xml.in.h:101 msgid "Voiceless alveolar affricate" msgstr "" #: ../data/ipa-obsolete.xml.in.h:28 ../data/ipa.xml.in.h:102 msgid "Voiceless palato-alveolar affricate" msgstr "" #: ../data/ipa-obsolete.xml.in.h:29 msgid "Palatalized voiceless alveolar plosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:30 msgid "Voiceless alveolar implosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:31 ../data/ipa.xml.in.h:137 msgid "Dental click" msgstr "" #: ../data/ipa-obsolete.xml.in.h:32 msgid "Voiceless uvular implosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:33 msgid "Palatalized voiced labiodental fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:34 msgid "Palatalized voiceless velar fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:35 msgid "Palatalized voiced alveolar fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:36 msgid "Labialized voiced palato-alveolar fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:37 ../data/ipa.xml.in.h:128 msgid "Voiced alveopalatal fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:38 ../data/ipa.xml.in.h:106 msgid "Near-close near-back vowel" msgstr "" #: ../data/ipa-obsolete.xml.in.h:39 ../data/ipa.xml.in.h:140 msgid "Alveolar lateral click" msgstr "" #: ../data/ipa-obsolete.xml.in.h:40 msgid "Labialized voiceless alveolar or dental fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:41 msgid "Labialized voiced alveolar or dental fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:42 msgid "Combining labialization mark" msgstr "" #: ../data/ipa-obsolete.xml.in.h:43 msgid "Combining palatalization mark" msgstr "" #. "IPA" stands for "International Phonetic Alphabet" #: ../data/ipa-unofficial.xml.in.h:2 msgid "IPA (Unofficial)" msgstr "" #: ../data/ipa-unofficial.xml.in.h:3 msgid "Voiced labiodental plosive" msgstr "" #: ../data/ipa-unofficial.xml.in.h:4 ../data/ipa.xml.in.h:18 msgid "Voiceless palatal lateral affricate" msgstr "" #: ../data/ipa-unofficial.xml.in.h:5 msgid "Voiced retroflex implosive" msgstr "" #: ../data/ipa-unofficial.xml.in.h:6 ../data/ipa.xml.in.h:88 msgid "Alveolar flap" msgstr "" #: ../data/ipa-unofficial.xml.in.h:7 ../data/ipa.xml.in.h:125 msgid "Voiceless palatal lateral fricative" msgstr "" #: ../data/ipa-unofficial.xml.in.h:8 ../data/ipa.xml.in.h:91 msgid "Retroflex flap" msgstr "" #: ../data/ipa-unofficial.xml.in.h:9 msgid "Voiceless retroflex lateral fricative" msgstr "" #. "PUA" stands for "Private Use Area" #: ../data/ipa-unofficial.xml.in.h:11 msgid "Voiceless retroflex lateral fricative (PUA)" msgstr "" #: ../data/ipa-unofficial.xml.in.h:12 ../data/ipa.xml.in.h:59 msgid "Voiceless velar lateral affricate" msgstr "" #: ../data/ipa-unofficial.xml.in.h:13 ../data/ipa.xml.in.h:68 msgid "Voiceless velar lateral fricative" msgstr "" #: ../data/ipa-unofficial.xml.in.h:14 msgid "Epiglottal trill" msgstr "" #: ../data/ipa-unofficial.xml.in.h:15 msgid "Voiceless labiodental plosive" msgstr "" #: ../data/ipa-unofficial.xml.in.h:16 msgid "Voiceless retroflex lateral affricate" msgstr "" #. "PUA" stands for "Private Use Area" #: ../data/ipa-unofficial.xml.in.h:18 msgid "Voiceless retroflex lateral affricate (PUA)" msgstr "" #: ../data/ipa-unofficial.xml.in.h:19 msgid "Combining stridency mark" msgstr "" #. "PUA" stands for "Private Use Area" #: ../data/ipa-unofficial.xml.in.h:21 msgid "Combining stridency mark (PUA)" msgstr "" #. "IPA" stands for "International Phonetic Alphabet" #: ../data/ipa.xml.in.h:2 msgid "IPA" msgstr "" #: ../data/ipa.xml.in.h:3 msgid "Open front unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:4 msgid "Open central unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:5 msgid "Near-open central vowel" msgstr "" #: ../data/ipa.xml.in.h:7 msgid "Open back rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:8 msgid "Open-mid back unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:9 msgid "Near-open front unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:10 msgid "Voiced bilabial plosive" msgstr "" #: ../data/ipa.xml.in.h:11 msgid "Voiced labiodental affricate" msgstr "" #: ../data/ipa.xml.in.h:12 msgid "Voiced bilabial implosive" msgstr "" #: ../data/ipa.xml.in.h:13 msgid "Bilabial trill" msgstr "" #: ../data/ipa.xml.in.h:14 msgid "Voiced bilabial fricative" msgstr "" #: ../data/ipa.xml.in.h:15 msgid "Voiceless palatal plosive" msgstr "" #: ../data/ipa.xml.in.h:16 msgid "Voiceless palatal fricative" msgstr "" #: ../data/ipa.xml.in.h:17 msgid "Voiceless palatal affricate" msgstr "" #: ../data/ipa.xml.in.h:20 msgid "Voiced alveolar plosive" msgstr "" #: ../data/ipa.xml.in.h:21 msgid "Voiced alveolar implosive" msgstr "" #: ../data/ipa.xml.in.h:22 msgid "Voiced retroflex plosive" msgstr "" #: ../data/ipa.xml.in.h:23 msgid "Voiced dental fricative" msgstr "" #: ../data/ipa.xml.in.h:24 msgid "Voiced alveolar lateral affricate" msgstr "" #: ../data/ipa.xml.in.h:28 msgid "Voiced retroflex affricate" msgstr "" #: ../data/ipa.xml.in.h:29 msgid "Close-mid front unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:30 msgid "Close-mid central unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:31 msgid "Mid-central vowel" msgstr "" #: ../data/ipa.xml.in.h:32 msgid "Rhotacized mid-central vowel" msgstr "" #: ../data/ipa.xml.in.h:33 msgid "Open-mid front unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:34 msgid "Open-mid central rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:35 msgid "Open-mid central unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:36 msgid "Rhotacized open-mid central unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:37 msgid "Voiceless labiodental fricative" msgstr "" #: ../data/ipa.xml.in.h:38 msgid "Velopharyngeal fricative" msgstr "" #: ../data/ipa.xml.in.h:39 msgid "Voiced velar plosive" msgstr "" #: ../data/ipa.xml.in.h:40 msgid "Voiced labial-velar plosive" msgstr "" #: ../data/ipa.xml.in.h:41 msgid "Voiced velar implosive" msgstr "" #: ../data/ipa.xml.in.h:42 msgid "Voiced uvular plosive" msgstr "" #: ../data/ipa.xml.in.h:43 msgid "Voiced uvular implosive" msgstr "" #: ../data/ipa.xml.in.h:44 msgid "Voiceless glottal fricative" msgstr "" #: ../data/ipa.xml.in.h:45 msgid "Voiced glottal fricative" msgstr "" #: ../data/ipa.xml.in.h:46 msgid "Voiceless pharyngeal fricative" msgstr "" #: ../data/ipa.xml.in.h:47 msgid "Voiceless coarticulated velar and palato-alveolar fricative" msgstr "" #: ../data/ipa.xml.in.h:48 msgid "Voiceless epiglottal fricative" msgstr "" #: ../data/ipa.xml.in.h:49 msgid "Close front unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:50 msgid "Near-close near-front unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:51 msgid "Near-close central unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:52 msgid "Close central unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:53 msgid "Palatal approximant" msgstr "" #: ../data/ipa.xml.in.h:54 msgid "Voiced palatal fricative" msgstr "" #: ../data/ipa.xml.in.h:55 msgid "Voiced palatal plosive" msgstr "" #: ../data/ipa.xml.in.h:56 msgid "Voiced palatal affricate" msgstr "" #: ../data/ipa.xml.in.h:57 msgid "Voiced palatal implosive" msgstr "" #: ../data/ipa.xml.in.h:58 msgid "Voiceless velar plosive" msgstr "" #: ../data/ipa.xml.in.h:60 msgid "Voiceless labial-velar plosive" msgstr "" #: ../data/ipa.xml.in.h:61 msgid "Voiceless velar affricate" msgstr "" #: ../data/ipa.xml.in.h:62 msgid "Alveolar lateral approximant" msgstr "" #: ../data/ipa.xml.in.h:63 msgid "Velarized alveolar lateral approximant" msgstr "" #: ../data/ipa.xml.in.h:64 msgid "Voiceless alveolar lateral fricative" msgstr "" #: ../data/ipa.xml.in.h:65 msgid "Retroflex lateral approximant" msgstr "" #: ../data/ipa.xml.in.h:66 msgid "Voiced alveolar lateral fricative" msgstr "" #: ../data/ipa.xml.in.h:67 msgid "Velar lateral approximant" msgstr "" #: ../data/ipa.xml.in.h:69 msgid "Bilabial nasal" msgstr "" #: ../data/ipa.xml.in.h:70 msgid "Labiodental nasal" msgstr "" #: ../data/ipa.xml.in.h:71 msgid "Alveolar nasal" msgstr "" #: ../data/ipa.xml.in.h:72 msgid "Velar nasal" msgstr "" #: ../data/ipa.xml.in.h:73 msgid "Labial-velar nasal" msgstr "" #: ../data/ipa.xml.in.h:74 msgid "Palatal nasal" msgstr "" #: ../data/ipa.xml.in.h:75 msgid "Retroflex nasal" msgstr "" #: ../data/ipa.xml.in.h:76 msgid "Uvular nasal" msgstr "" #: ../data/ipa.xml.in.h:77 msgid "Close-mid back rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:78 msgid "Close-mid front rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:79 msgid "Close-mid central rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:80 msgid "Open-mid front rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:81 msgid "Open front rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:82 msgid "Voiceless bilabial plosive" msgstr "" #: ../data/ipa.xml.in.h:83 msgid "Voiceless bilabial-labiodental affricate" msgstr "" #: ../data/ipa.xml.in.h:84 msgid "Voiceless bilabial affricate" msgstr "" #: ../data/ipa.xml.in.h:85 msgid "Voiceless labiodental affricate" msgstr "" #: ../data/ipa.xml.in.h:86 msgid "Voiceless uvular plosive" msgstr "" #: ../data/ipa.xml.in.h:87 msgid "Alveolar trill" msgstr "" #: ../data/ipa.xml.in.h:89 msgid "Alveolar lateral flap" msgstr "" #: ../data/ipa.xml.in.h:90 msgid "Uvular trill" msgstr "" #: ../data/ipa.xml.in.h:92 msgid "Alveolar approximant" msgstr "" #: ../data/ipa.xml.in.h:93 msgid "Retroflex approximant" msgstr "" #: ../data/ipa.xml.in.h:94 msgid "Voiced uvular fricative" msgstr "" #: ../data/ipa.xml.in.h:95 msgid "Voiceless alveolar fricative" msgstr "" #: ../data/ipa.xml.in.h:96 msgid "Voiceless palato-alveolar fricative" msgstr "" #: ../data/ipa.xml.in.h:97 msgid "Voiceless retroflex fricative" msgstr "" #: ../data/ipa.xml.in.h:98 msgid "Voiceless alveolar plosive" msgstr "" #: ../data/ipa.xml.in.h:99 msgid "Voiceless retroflex plosive" msgstr "" #: ../data/ipa.xml.in.h:100 msgid "Voiceless alveolar lateral affricate" msgstr "" #: ../data/ipa.xml.in.h:104 msgid "Voiceless retroflex affricate" msgstr "" #: ../data/ipa.xml.in.h:105 msgid "Close back rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:107 msgid "Near-close central vowel" msgstr "" #: ../data/ipa.xml.in.h:108 msgid "Close central rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:109 msgid "Labial-palatal approximant" msgstr "" #: ../data/ipa.xml.in.h:110 msgid "Close back unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:111 msgid "Voiced labiodental fricative" msgstr "" #: ../data/ipa.xml.in.h:112 msgid "Labiodental flap" msgstr "" #: ../data/ipa.xml.in.h:113 msgid "Labiodental approximant" msgstr "" #: ../data/ipa.xml.in.h:114 msgid "Voiced velar fricative" msgstr "" #: ../data/ipa.xml.in.h:115 msgid "Close-mid back unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:116 msgid "Voiced labiovelar approximant" msgstr "" #: ../data/ipa.xml.in.h:117 msgid "Voiceless labiovelar approximant" msgstr "" #: ../data/ipa.xml.in.h:118 msgid "Velar approximant" msgstr "" #: ../data/ipa.xml.in.h:119 msgid "Bilabial percussive" msgstr "" #: ../data/ipa.xml.in.h:120 msgid "Voiceless velar fricative" msgstr "" #: ../data/ipa.xml.in.h:121 msgid "Voiceless uvular fricative" msgstr "" #: ../data/ipa.xml.in.h:122 msgid "Close front rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:123 msgid "Near-close near-front rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:124 msgid "Palatal lateral approximant" msgstr "" #: ../data/ipa.xml.in.h:126 msgid "Voiced alveolar fricative" msgstr "" #: ../data/ipa.xml.in.h:127 msgid "Voiced palato-alveolar fricative" msgstr "" #: ../data/ipa.xml.in.h:129 msgid "Voiced retroflex fricative" msgstr "" #: ../data/ipa.xml.in.h:130 msgid "Voiceless dental fricative" msgstr "" #: ../data/ipa.xml.in.h:131 msgid "Voiceless bilabial fricative" msgstr "" #: ../data/ipa.xml.in.h:132 msgid "Glottal stop" msgstr "" #: ../data/ipa.xml.in.h:133 msgid "Epiglottal plosive" msgstr "" #: ../data/ipa.xml.in.h:134 msgid "Voiced pharyngeal fricative" msgstr "" #: ../data/ipa.xml.in.h:135 msgid "Voiced epiglottal fricative" msgstr "" #: ../data/ipa.xml.in.h:136 msgid "Bilabial click" msgstr "" #: ../data/ipa.xml.in.h:139 msgid "Palatal click" msgstr "" #: ../data/ipa.xml.in.h:141 msgid "Bidental percussive" msgstr "" #: ../data/ipa.xml.in.h:142 msgid "Aspiration mark" msgstr "" #: ../data/ipa.xml.in.h:143 msgid "Non-aspiration mark" msgstr "" #: ../data/ipa.xml.in.h:144 msgid "Breathy voice mark" msgstr "" #: ../data/ipa.xml.in.h:145 msgid "Palatalization mark" msgstr "" #: ../data/ipa.xml.in.h:146 msgid "Lateral release mark" msgstr "" #: ../data/ipa.xml.in.h:147 msgid "Bilabial nasal release mark" msgstr "" #: ../data/ipa.xml.in.h:148 msgid "Labiodental nasal release mark" msgstr "" #: ../data/ipa.xml.in.h:149 msgid "Alveolar nasal release mark" msgstr "" #: ../data/ipa.xml.in.h:150 msgid "Palatal nasal release mark" msgstr "" #: ../data/ipa.xml.in.h:151 msgid "Retroflex nasal release mark" msgstr "" #: ../data/ipa.xml.in.h:152 msgid "Uvular nasal release mark" msgstr "" #: ../data/ipa.xml.in.h:153 msgid "Labio-palatalization mark" msgstr "" #: ../data/ipa.xml.in.h:154 msgid "Labiodentalization mark" msgstr "" #: ../data/ipa.xml.in.h:155 msgid "Labialization mark" msgstr "" #: ../data/ipa.xml.in.h:156 msgid "Velarization mark" msgstr "" #: ../data/ipa.xml.in.h:157 msgid "Glottalization mark" msgstr "" #: ../data/ipa.xml.in.h:158 msgid "Pharyngealization mark" msgstr "" #: ../data/ipa.xml.in.h:159 msgid "Combining velarization/pharyngealization mark" msgstr "" #: ../data/ipa.xml.in.h:160 msgid "Combining laryngealization mark" msgstr "" #: ../data/ipa.xml.in.h:161 msgid "Combining retroflexion mark" msgstr "" #: ../data/ipa.xml.in.h:162 msgid "Ejection mark" msgstr "" #: ../data/ipa.xml.in.h:163 msgid "Rhotacization mark" msgstr "" #: ../data/ipa.xml.in.h:164 msgid "Combining dentalization mark" msgstr "" #: ../data/ipa.xml.in.h:165 msgid "Combining dentolabialization mark" msgstr "" #: ../data/ipa.xml.in.h:166 msgid "Combining alveolarization mark" msgstr "" #: ../data/ipa.xml.in.h:167 msgid "Combining linguolabialization mark" msgstr "" #: ../data/ipa.xml.in.h:168 msgid "Combining apicalization mark" msgstr "" #: ../data/ipa.xml.in.h:169 msgid "Combining laminalization mark" msgstr "" #: ../data/ipa.xml.in.h:170 msgid "Combining centralization mark" msgstr "" #: ../data/ipa.xml.in.h:171 msgid "Combining mid-centralization mark" msgstr "" #: ../data/ipa.xml.in.h:172 msgid "Combining nasalization mark" msgstr "" #: ../data/ipa.xml.in.h:173 msgid "Combining nasalization mark below" msgstr "" #: ../data/ipa.xml.in.h:174 msgid "Combining denasalization mark" msgstr "" #: ../data/ipa.xml.in.h:175 msgid "Combining nasal friction mark" msgstr "" #: ../data/ipa.xml.in.h:176 msgid "Combining velopharyngeal friction mark" msgstr "" #: ../data/ipa.xml.in.h:177 msgid "Combining voiced mark" msgstr "" #: ../data/ipa.xml.in.h:178 msgid "Combining voiceless mark" msgstr "" #: ../data/ipa.xml.in.h:179 msgid "Combining voiceless mark above" msgstr "" #: ../data/ipa.xml.in.h:180 msgid "Pre-voicing/post-voicing mark" msgstr "" #: ../data/ipa.xml.in.h:181 msgid "Combining breathy voice mark" msgstr "" #: ../data/ipa.xml.in.h:182 msgid "Combining unreleased stop mark" msgstr "" #: ../data/ipa.xml.in.h:183 msgid "Combining more rounded mark" msgstr "" #: ../data/ipa.xml.in.h:184 msgid "Combining less rounded mark" msgstr "" #: ../data/ipa.xml.in.h:185 msgid "Combining labial spreading mark" msgstr "" #: ../data/ipa.xml.in.h:186 msgid "Combining syllabic mark" msgstr "" #: ../data/ipa.xml.in.h:187 msgid "Combining syllabic mark above" msgstr "" #: ../data/ipa.xml.in.h:188 msgid "Combining non-syllabic mark" msgstr "" #: ../data/ipa.xml.in.h:189 msgid "Combining non-syllabic mark above" msgstr "" #: ../data/ipa.xml.in.h:190 msgid "Combining top tone mark" msgstr "" #: ../data/ipa.xml.in.h:191 msgid "Combining high tone mark" msgstr "" #: ../data/ipa.xml.in.h:192 msgid "Combining mid tone mark" msgstr "" #: ../data/ipa.xml.in.h:193 msgid "Combining low tone mark" msgstr "" #: ../data/ipa.xml.in.h:194 msgid "Combining bottom tone mark" msgstr "" #: ../data/ipa.xml.in.h:195 msgid "Combining falling tone mark" msgstr "" #: ../data/ipa.xml.in.h:196 msgid "Combining high falling tone mark" msgstr "" #: ../data/ipa.xml.in.h:197 msgid "Combining low falling tone mark" msgstr "" #: ../data/ipa.xml.in.h:198 msgid "Combining rising tone mark" msgstr "" #: ../data/ipa.xml.in.h:199 msgid "Combining high rising tone mark" msgstr "" #: ../data/ipa.xml.in.h:200 msgid "Combining low rising tone mark" msgstr "" #: ../data/ipa.xml.in.h:201 msgid "Combining dipping tone mark" msgstr "" #: ../data/ipa.xml.in.h:202 msgid "Combining peaking tone mark" msgstr "" #: ../data/ipa.xml.in.h:203 msgid "Top tone letter" msgstr "" #: ../data/ipa.xml.in.h:204 msgid "High tone letter" msgstr "" #: ../data/ipa.xml.in.h:205 msgid "Mid tone letter" msgstr "" #: ../data/ipa.xml.in.h:206 msgid "Low tone letter" msgstr "" #: ../data/ipa.xml.in.h:207 msgid "Bottom tone letter" msgstr "" #: ../data/ipa.xml.in.h:208 msgid "Falling tone digraph" msgstr "" #: ../data/ipa.xml.in.h:209 msgid "High falling tone digraph" msgstr "" #: ../data/ipa.xml.in.h:210 msgid "Rising tone digraph" msgstr "" #: ../data/ipa.xml.in.h:211 msgid "High rising tone digraph" msgstr "" #: ../data/ipa.xml.in.h:212 msgid "Low rising tone digraph" msgstr "" #: ../data/ipa.xml.in.h:213 msgid "Dipping tone trigraph" msgstr "" #: ../data/ipa.xml.in.h:214 msgid "Peaking tone trigraph" msgstr "" #: ../data/ipa.xml.in.h:215 msgid "Upstep mark" msgstr "" #: ../data/ipa.xml.in.h:216 msgid "Downstep mark" msgstr "" #: ../data/ipa.xml.in.h:217 msgid "Minor break" msgstr "" #: ../data/ipa.xml.in.h:218 msgid "Major break" msgstr "" #: ../data/ipa.xml.in.h:219 msgid "Rising intonation mark" msgstr "" #: ../data/ipa.xml.in.h:220 msgid "Falling intonation mark" msgstr "" #: ../data/ipa.xml.in.h:221 msgid "Advanced articulation mark" msgstr "" #: ../data/ipa.xml.in.h:222 msgid "Retracted articulation mark" msgstr "" #: ../data/ipa.xml.in.h:223 msgid "Combining advanced articulation mark" msgstr "" #: ../data/ipa.xml.in.h:224 msgid "Combining retracted articulation mark" msgstr "" #: ../data/ipa.xml.in.h:225 msgid "Raised sound mark" msgstr "" #: ../data/ipa.xml.in.h:226 msgid "Lowered sound mark" msgstr "" #: ../data/ipa.xml.in.h:227 msgid "Combining raised sound mark" msgstr "" #: ../data/ipa.xml.in.h:228 msgid "Combining lowered sound mark" msgstr "" #: ../data/ipa.xml.in.h:229 msgid "Combining tongue root advancement mark" msgstr "" #: ../data/ipa.xml.in.h:230 msgid "Combining tongue root retraction mark" msgstr "" #: ../data/ipa.xml.in.h:231 msgid "Combining strong articulation mark" msgstr "" #: ../data/ipa.xml.in.h:232 msgid "Combining weak articulation mark" msgstr "" #: ../data/ipa.xml.in.h:233 msgid "Combining whistled articulation mark" msgstr "" #: ../data/ipa.xml.in.h:234 msgid "Combining sliding articulation mark" msgstr "" #: ../data/ipa.xml.in.h:235 msgid "Egression mark" msgstr "" #: ../data/ipa.xml.in.h:236 msgid "Ingression mark" msgstr "" #: ../data/ipa.xml.in.h:237 msgid "Combining ligature tie" msgstr "" #: ../data/ipa.xml.in.h:238 msgid "Combining ligature undertie" msgstr "" #: ../data/ipa.xml.in.h:239 msgid "Elongation mark" msgstr "" #: ../data/ipa.xml.in.h:240 msgid "Weak elongation mark" msgstr "" #: ../data/ipa.xml.in.h:241 msgid "Combining extra-short duration mark" msgstr "" #: ../data/ipa.xml.in.h:242 msgid "Liaison mark" msgstr "" #: ../data/ipa.xml.in.h:243 msgid "Stress mark" msgstr "" #: ../data/ipa.xml.in.h:244 msgid "Weak stress mark" msgstr "" #: ../data/ipa.xml.in.h:245 msgid "Syllable break" msgstr "" #: ../data/ipa.xml.in.h:246 msgid "Opening orthographic bracket" msgstr "" #: ../data/ipa.xml.in.h:247 msgid "Closing orthographic bracket" msgstr "" #: ../data/ja.xml.in.h:1 msgid "Japanese" msgstr "" #: ../data/ja.xml.in.h:2 ../input-pad/unicode_block.h:136 msgid "Hiragana" msgstr "" #: ../data/ja.xml.in.h:3 ../input-pad/unicode_block.h:137 msgid "Katakana" msgstr "" #: ../data/ja.xml.in.h:4 ../data/zh.xml.in.h:3 msgid "Radicals" msgstr "" #: ../data/ja.xml.in.h:5 ../input-pad/unicode_block.h:132 msgid "CJK Radicals Supplement" msgstr "" #: ../data/keyboard.xml.in.h:1 msgid "Keyboard" msgstr "" #: ../data/keyboard.xml.in.h:2 msgid "Function Key" msgstr "" #: ../data/keyboard.xml.in.h:3 msgid "Key Pad" msgstr "" #: ../data/latin.xml.in.h:1 msgid "ASCII" msgstr "" #: ../data/latin.xml.in.h:2 ../input-pad/unicode_block.h:38 msgid "Latin-1 Supplement" msgstr "" #: ../data/latin.xml.in.h:3 ../input-pad/unicode_block.h:39 msgid "Latin Extended-A" msgstr "" #: ../data/latin.xml.in.h:4 msgid "Old and Middle English" msgstr "" #: ../data/runr.xml.in.h:1 msgid "Runes (Unicode Block)" msgstr "" #: ../data/runr.xml.in.h:2 msgid "Runes (Elder Fuþark)" msgstr "" #: ../data/runr.xml.in.h:3 msgid "Runes (Younger Fuþark)" msgstr "" #: ../data/runr.xml.in.h:4 msgid "Runes (Fuþorc)" msgstr "" #: ../data/shaw.xml.in.h:1 ../input-pad/unicode_block.h:200 msgid "Shavian" msgstr "" #: ../data/str.xml.in.h:1 msgid "Chat" msgstr "" #: ../data/str.xml.in.h:2 msgid "Emoji" msgstr "" #: ../data/str.xml.in.h:3 msgid "Rain" msgstr "" #: ../data/str.xml.in.h:4 msgid "Comet" msgstr "" #: ../data/str.xml.in.h:5 msgid "Cross" msgstr "" #: ../data/str.xml.in.h:6 msgid "Solar" msgstr "" #: ../data/str.xml.in.h:7 msgid "Mercury" msgstr "" #: ../data/str.xml.in.h:8 msgid "Venus" msgstr "" #: ../data/str.xml.in.h:9 msgid "Earth" msgstr "" #: ../data/str.xml.in.h:10 msgid "Mars" msgstr "" #: ../data/str.xml.in.h:11 msgid "Jupiter" msgstr "" #: ../data/str.xml.in.h:12 msgid "Saturn" msgstr "" #: ../data/str.xml.in.h:13 msgid "Uranus" msgstr "" #: ../data/str.xml.in.h:14 msgid "Neptune" msgstr "" #: ../data/str.xml.in.h:15 msgid "Pluto" msgstr "" #: ../data/str.xml.in.h:16 msgid "Aries" msgstr "" #: ../data/str.xml.in.h:17 msgid "Taurus" msgstr "" #: ../data/str.xml.in.h:18 msgid "Gemini" msgstr "" #: ../data/str.xml.in.h:19 msgid "Cancer" msgstr "" #: ../data/str.xml.in.h:20 msgid "Leo" msgstr "" #: ../data/str.xml.in.h:21 msgid "Virgo" msgstr "" #: ../data/str.xml.in.h:22 msgid "Libra" msgstr "" #: ../data/str.xml.in.h:23 msgid "Scorpius" msgstr "" #: ../data/str.xml.in.h:24 msgid "Sagittarius" msgstr "" #: ../data/str.xml.in.h:25 msgid "Capricorn" msgstr "" #: ../data/str.xml.in.h:26 msgid "Aquarius" msgstr "" #: ../data/str.xml.in.h:27 msgid "Pisces" msgstr "" #: ../data/str.xml.in.h:28 msgid "Dice 1" msgstr "" #: ../data/str.xml.in.h:29 msgid "Dice 2" msgstr "" #: ../data/str.xml.in.h:30 msgid "Dice 3" msgstr "" #: ../data/str.xml.in.h:31 msgid "Dice 4" msgstr "" #: ../data/str.xml.in.h:32 msgid "Dice 5" msgstr "" #: ../data/str.xml.in.h:33 msgid "Dice 6" msgstr "" #: ../data/str.xml.in.h:34 msgid "Anchor" msgstr "" #: ../data/str.xml.in.h:35 msgid "Sword" msgstr "" #: ../data/str.xml.in.h:36 msgid "Scales" msgstr "" #: ../data/str.xml.in.h:37 msgid "Conversation" msgstr "" #: ../data/str.xml.in.h:38 msgid "Warning" msgstr "" #: ../data/str.xml.in.h:39 msgid "Thunder" msgstr "" #: ../data/str.xml.in.h:40 msgid "Coffin" msgstr "" #: ../data/str.xml.in.h:41 msgid "Gender" msgstr "" #: ../data/str.xml.in.h:42 msgid "Soccer" msgstr "" #: ../data/str.xml.in.h:43 msgid "Baseball" msgstr "" #: ../data/str.xml.in.h:44 msgid "Snowman" msgstr "" #: ../data/str.xml.in.h:45 msgid "Shoji" msgstr "" #: ../data/str.xml.in.h:46 msgid "Maintenance" msgstr "" #: ../data/str.xml.in.h:47 msgid "Roadblock" msgstr "" #: ../data/str.xml.in.h:48 msgid "No entry" msgstr "" #: ../data/str.xml.in.h:49 msgid "Truck" msgstr "" #: ../data/str.xml.in.h:50 msgid "Torii" msgstr "" #: ../data/str.xml.in.h:51 msgid "Church" msgstr "" #: ../data/str.xml.in.h:52 msgid "Castle" msgstr "" #: ../data/str.xml.in.h:53 msgid "Historic site" msgstr "" #: ../data/str.xml.in.h:54 msgid "Power station" msgstr "" #: ../data/str.xml.in.h:55 msgid "Lighthouse" msgstr "" #: ../data/str.xml.in.h:56 msgid "Mountain" msgstr "" #: ../data/str.xml.in.h:57 msgid "Beach" msgstr "" #: ../data/str.xml.in.h:58 msgid "Park" msgstr "" #: ../data/str.xml.in.h:59 msgid "Ferry" msgstr "" #: ../data/str.xml.in.h:60 msgid "Sailboat" msgstr "" #: ../data/str.xml.in.h:61 msgid "Ice rink" msgstr "" #: ../data/str.xml.in.h:62 msgid "Scissors" msgstr "" #: ../data/str.xml.in.h:63 msgid "Airplane" msgstr "" #: ../data/str.xml.in.h:64 msgid "Clenched Fist" msgstr "" #: ../data/str.xml.in.h:65 msgid "Hand" msgstr "" #: ../data/str.xml.in.h:66 msgid "V Sign" msgstr "" #: ../data/str.xml.in.h:67 msgid "Writing" msgstr "" #: ../data/str.xml.in.h:68 msgid "Pencil" msgstr "" #: ../data/str.xml.in.h:69 msgid "Pen" msgstr "" #: ../data/str.xml.in.h:70 msgid "Star" msgstr "" #: ../data/str.xml.in.h:71 msgid "Typhoon" msgstr "" #: ../data/str.xml.in.h:72 msgid "Fog" msgstr "" #: ../data/str.xml.in.h:73 msgid "Umbrella" msgstr "" #: ../data/str.xml.in.h:74 msgid "Night sky" msgstr "" #: ../data/str.xml.in.h:75 msgid "Sunrise" msgstr "" #: ../data/str.xml.in.h:76 msgid "Sunset" msgstr "" #: ../data/str.xml.in.h:77 msgid "Bridge" msgstr "" #: ../data/str.xml.in.h:78 msgid "Wave" msgstr "" #: ../data/str.xml.in.h:79 msgid "New Moon" msgstr "" #: ../data/str.xml.in.h:80 msgid "Crescent Moon" msgstr "" #: ../data/str.xml.in.h:81 msgid "Quarter Moon" msgstr "" #: ../data/str.xml.in.h:82 msgid "Gibbous Moon" msgstr "" #: ../data/str.xml.in.h:83 msgid "Full Moon" msgstr "" #: ../data/str.xml.in.h:84 msgid "Moon" msgstr "" #: ../data/str.xml.in.h:85 msgid "Sun" msgstr "" #: ../data/str.xml.in.h:86 msgid "Cloud" msgstr "" #: ../data/str.xml.in.h:87 msgid "Palm" msgstr "" #: ../data/str.xml.in.h:88 msgid "Hot Pepper" msgstr "" #: ../data/str.xml.in.h:89 msgid "Flower" msgstr "" #: ../data/str.xml.in.h:90 msgid "Tulip" msgstr "" #: ../data/str.xml.in.h:91 msgid "Cherry" msgstr "" #: ../data/str.xml.in.h:92 msgid "Rose" msgstr "" #: ../data/str.xml.in.h:93 msgid "Hibiscus" msgstr "" #: ../data/str.xml.in.h:94 msgid "Sunflower" msgstr "" #: ../data/str.xml.in.h:95 msgid "Blossom" msgstr "" #: ../data/str.xml.in.h:96 msgid "Clover" msgstr "" #: ../data/str.xml.in.h:97 msgid "Maple" msgstr "" #: ../data/str.xml.in.h:98 msgid "Fallen Leaf" msgstr "" #: ../data/str.xml.in.h:99 msgid "Leaf" msgstr "" #: ../data/str.xml.in.h:100 msgid "Mushroom" msgstr "" #: ../data/str.xml.in.h:101 msgid "Tomato" msgstr "" #: ../data/str.xml.in.h:102 msgid "Eggplant" msgstr "" #: ../data/str.xml.in.h:103 msgid "Grape" msgstr "" #: ../data/str.xml.in.h:104 msgid "Melon" msgstr "" #: ../data/str.xml.in.h:105 msgid "Watermelon" msgstr "" #: ../data/str.xml.in.h:106 msgid "Tangerine" msgstr "" #: ../data/str.xml.in.h:107 msgid "Lemon" msgstr "" #: ../data/str.xml.in.h:108 msgid "Banana" msgstr "" #: ../data/str.xml.in.h:109 msgid "Pineapple" msgstr "" #: ../data/str.xml.in.h:110 msgid "Apple" msgstr "" #: ../data/str.xml.in.h:111 msgid "Pear" msgstr "" #: ../data/str.xml.in.h:112 msgid "Peach" msgstr "" #: ../data/str.xml.in.h:113 msgid "Strawberry" msgstr "" #: ../data/str.xml.in.h:114 msgid "Hamburger" msgstr "" #: ../data/str.xml.in.h:115 msgid "Pizza" msgstr "" #: ../data/str.xml.in.h:116 msgid "Meat" msgstr "" #: ../data/str.xml.in.h:117 msgid "Poultry" msgstr "" #: ../data/str.xml.in.h:118 msgid "Rice Cracker" msgstr "" #: ../data/str.xml.in.h:119 msgid "Rice Ball" msgstr "" #: ../data/str.xml.in.h:120 msgid "Rice" msgstr "" #: ../data/str.xml.in.h:121 msgid "Curry" msgstr "" #: ../data/str.xml.in.h:122 msgid "Ramen" msgstr "" #: ../data/str.xml.in.h:123 msgid "Spaghetti" msgstr "" #: ../data/str.xml.in.h:124 msgid "Bread" msgstr "" #: ../data/str.xml.in.h:125 msgid "Fried Potato" msgstr "" #: ../data/str.xml.in.h:126 msgid "Roasted Sweet Potato" msgstr "" #: ../data/str.xml.in.h:127 msgid "Dango" msgstr "" #: ../data/str.xml.in.h:128 msgid "Oden" msgstr "" #: ../data/str.xml.in.h:129 msgid "Sushi" msgstr "" #: ../data/str.xml.in.h:130 msgid "Fried Shrimp" msgstr "" #: ../data/str.xml.in.h:131 msgid "Fish Cake" msgstr "" #: ../data/str.xml.in.h:132 msgid "Soft Ice Cream" msgstr "" #: ../data/str.xml.in.h:133 msgid "Shaved Ice" msgstr "" #: ../data/str.xml.in.h:134 msgid "Ice Cream" msgstr "" #: ../data/str.xml.in.h:135 msgid "Doughnut" msgstr "" #: ../data/str.xml.in.h:136 msgid "Cookie" msgstr "" #: ../data/str.xml.in.h:137 msgid "Chocolate" msgstr "" #: ../data/str.xml.in.h:138 msgid "Candy" msgstr "" #: ../data/str.xml.in.h:139 msgid "Custard" msgstr "" #: ../data/str.xml.in.h:140 msgid "Honey" msgstr "" #: ../data/str.xml.in.h:141 msgid "Shortcake" msgstr "" #: ../data/str.xml.in.h:142 msgid "Bento" msgstr "" #: ../data/str.xml.in.h:143 msgid "Pot of Food" msgstr "" #: ../data/str.xml.in.h:144 msgid "Cooking" msgstr "" #: ../data/str.xml.in.h:145 msgid "Meal" msgstr "" #: ../data/str.xml.in.h:146 msgid "Cup" msgstr "" #: ../data/str.xml.in.h:147 msgid "Sake" msgstr "" #: ../data/str.xml.in.h:148 msgid "Wine" msgstr "" #: ../data/str.xml.in.h:149 msgid "Cocktail" msgstr "" #: ../data/str.xml.in.h:150 msgid "Drink" msgstr "" #: ../data/str.xml.in.h:151 msgid "Beer" msgstr "" #: ../data/str.xml.in.h:152 msgid "Cheers" msgstr "" #: ../data/str.xml.in.h:153 msgid "Baby Bottle" msgstr "" #: ../data/str.xml.in.h:154 msgid "Ribbon" msgstr "" #: ../data/str.xml.in.h:155 msgid "Present" msgstr "" #: ../data/str.xml.in.h:156 msgid "Cake" msgstr "" #: ../data/str.xml.in.h:157 msgid "Hallowe'en" msgstr "" #: ../data/str.xml.in.h:158 msgid "Christmas" msgstr "" #: ../data/str.xml.in.h:159 msgid "Piano" msgstr "" #: ../data/str.xml.in.h:160 msgid "Microphone" msgstr "" #: ../data/str.xml.in.h:161 msgid "Headphone" msgstr "" #: ../data/str.xml.in.h:162 msgid "Hat" msgstr "" #: ../data/str.xml.in.h:163 msgid "Musical Note" msgstr "" #: ../data/str.xml.in.h:164 msgid "Saxophone" msgstr "" #: ../data/str.xml.in.h:165 msgid "Guiter" msgstr "" #: ../data/str.xml.in.h:166 msgid "Trumpet" msgstr "" #: ../data/str.xml.in.h:167 msgid "Violin" msgstr "" #: ../data/str.xml.in.h:168 msgid "Musical Score" msgstr "" #: ../data/str.xml.in.h:169 msgid "Tennis" msgstr "" #: ../data/str.xml.in.h:170 msgid "Ski" msgstr "" #: ../data/str.xml.in.h:171 msgid "Basketball" msgstr "" #: ../data/str.xml.in.h:172 msgid "Flag" msgstr "" #: ../data/str.xml.in.h:173 msgid "Show Board" msgstr "" #: ../data/str.xml.in.h:174 msgid "Running" msgstr "" #: ../data/str.xml.in.h:175 msgid "Surfer" msgstr "" #: ../data/str.xml.in.h:176 msgid "Medal" msgstr "" #: ../data/str.xml.in.h:177 msgid "Trophy" msgstr "" #: ../data/str.xml.in.h:178 msgid "Horse Racing" msgstr "" #: ../data/str.xml.in.h:179 msgid "American Football" msgstr "" #: ../data/str.xml.in.h:180 msgid "Rugby" msgstr "" #: ../data/str.xml.in.h:181 msgid "Swimmer" msgstr "" #: ../data/str.xml.in.h:182 msgid "Weight Lifting" msgstr "" #: ../data/str.xml.in.h:183 msgid "Golf" msgstr "" #: ../data/str.xml.in.h:184 msgid "Motorcycle" msgstr "" #: ../data/str.xml.in.h:185 msgid "Race" msgstr "" #: ../data/str.xml.in.h:186 msgid "House" msgstr "" #: ../data/str.xml.in.h:187 msgid "Office" msgstr "" #: ../data/str.xml.in.h:188 msgid "Hospital" msgstr "" #: ../data/str.xml.in.h:189 msgid "Bank" msgstr "" #: ../data/str.xml.in.h:190 msgid "Hotel" msgstr "" #: ../data/str.xml.in.h:191 msgid "School" msgstr "" #: ../data/str.xml.in.h:192 msgid "Factory" msgstr "" #: ../data/str.xml.in.h:193 msgid "Rat" msgstr "" #: ../data/str.xml.in.h:194 msgid "Mouse" msgstr "" #: ../data/str.xml.in.h:195 msgid "Cow" msgstr "" #: ../data/str.xml.in.h:196 msgid "Tiger" msgstr "" #: ../data/str.xml.in.h:197 msgid "Leopard" msgstr "" #: ../data/str.xml.in.h:198 msgid "Rabbit" msgstr "" #: ../data/str.xml.in.h:199 msgid "Cat" msgstr "" #: ../data/str.xml.in.h:200 msgid "Dragon" msgstr "" #: ../data/str.xml.in.h:201 msgid "Crocodile" msgstr "" #: ../data/str.xml.in.h:202 msgid "Whale" msgstr "" #: ../data/str.xml.in.h:203 msgid "Snail" msgstr "" #: ../data/str.xml.in.h:204 msgid "Snake" msgstr "" #: ../data/str.xml.in.h:205 msgid "Horse" msgstr "" #: ../data/str.xml.in.h:206 msgid "Sheep" msgstr "" #: ../data/str.xml.in.h:207 msgid "Goat" msgstr "" #: ../data/str.xml.in.h:208 msgid "Monkey" msgstr "" #: ../data/str.xml.in.h:209 msgid "Chicken" msgstr "" #: ../data/str.xml.in.h:210 msgid "Dog" msgstr "" #: ../data/str.xml.in.h:211 msgid "Pig" msgstr "" #: ../data/str.xml.in.h:212 msgid "Elephant" msgstr "" #: ../data/str.xml.in.h:213 msgid "Octopus" msgstr "" #: ../data/str.xml.in.h:214 msgid "Spiral Shell" msgstr "" #: ../data/str.xml.in.h:215 msgid "Bug" msgstr "" #: ../data/str.xml.in.h:216 msgid "Ant" msgstr "" #: ../data/str.xml.in.h:217 msgid "Lady Beetle" msgstr "" #: ../data/str.xml.in.h:218 msgid "Fish" msgstr "" #: ../data/str.xml.in.h:219 msgid "Tropical Fish" msgstr "" #: ../data/str.xml.in.h:220 msgid "Blowfish" msgstr "" #: ../data/str.xml.in.h:221 msgid "Bird" msgstr "" #: ../data/str.xml.in.h:222 msgid "Penguin" msgstr "" #: ../data/str.xml.in.h:223 msgid "Koala" msgstr "" #: ../data/str.xml.in.h:224 msgid "Poodle" msgstr "" #: ../data/str.xml.in.h:225 msgid "Camel" msgstr "" #: ../data/str.xml.in.h:226 msgid "Dolphin" msgstr "" #: ../data/str.xml.in.h:227 msgid "Frog" msgstr "" #: ../data/str.xml.in.h:228 msgid "Hamster" msgstr "" #: ../data/str.xml.in.h:229 msgid "Wolf" msgstr "" #: ../data/str.xml.in.h:230 msgid "Bear" msgstr "" #: ../data/str.xml.in.h:231 msgid "Panda" msgstr "" #: ../data/str.xml.in.h:232 msgid "Eye" msgstr "" #: ../data/str.xml.in.h:233 msgid "Ear" msgstr "" #: ../data/str.xml.in.h:234 msgid "Nose" msgstr "" #: ../data/str.xml.in.h:235 msgid "Mouth" msgstr "" #: ../data/str.xml.in.h:236 msgid "Tongue" msgstr "" #: ../data/str.xml.in.h:237 msgid "Crown" msgstr "" #: ../data/str.xml.in.h:238 msgid "Glasses" msgstr "" #: ../data/str.xml.in.h:239 msgid "Necktie" msgstr "" #: ../data/str.xml.in.h:240 msgid "T-Shirt" msgstr "" #: ../data/str.xml.in.h:241 msgid "Jeans" msgstr "" #: ../data/str.xml.in.h:242 msgid "Dress" msgstr "" #: ../data/str.xml.in.h:243 msgid "Kimono" msgstr "" #: ../data/str.xml.in.h:244 msgid "Bikini" msgstr "" #: ../data/str.xml.in.h:245 msgid "Clothes" msgstr "" #: ../data/str.xml.in.h:246 msgid "Purse" msgstr "" #: ../data/str.xml.in.h:247 msgid "Handbag" msgstr "" #: ../data/str.xml.in.h:248 msgid "Pouch" msgstr "" #: ../data/str.xml.in.h:249 msgid "Shoe" msgstr "" #: ../data/str.xml.in.h:250 msgid "Footprint" msgstr "" #: ../data/str.xml.in.h:251 msgid "Account" msgstr "" #: ../data/str.xml.in.h:252 msgid "Boy" msgstr "" #: ../data/str.xml.in.h:253 msgid "Girl" msgstr "" #: ../data/str.xml.in.h:254 msgid "Man" msgstr "" #: ../data/str.xml.in.h:255 msgid "Woman" msgstr "" #: ../data/str.xml.in.h:256 msgid "Family" msgstr "" #: ../data/str.xml.in.h:257 msgid "Restroom" msgstr "" #: ../data/str.xml.in.h:258 msgid "Men" msgstr "" #: ../data/str.xml.in.h:259 msgid "Women" msgstr "" #: ../data/str.xml.in.h:260 msgid "Princess" msgstr "" #: ../data/str.xml.in.h:261 msgid "Japanese Ogre" msgstr "" #: ../data/str.xml.in.h:262 msgid "Japanese Goblin" msgstr "" #: ../data/str.xml.in.h:263 msgid "Ghost" msgstr "" #: ../data/str.xml.in.h:264 msgid "Baby Angel" msgstr "" #: ../data/str.xml.in.h:265 msgid "Extraterrestrial Alien" msgstr "" #: ../data/str.xml.in.h:266 msgid "Alien Monster" msgstr "" #: ../data/str.xml.in.h:267 msgid "IMP" msgstr "" #: ../data/str.xml.in.h:268 msgid "Skull" msgstr "" #: ../data/str.xml.in.h:269 msgid "Information Desk Person" msgstr "" #: ../data/str.xml.in.h:270 msgid "Guardsman" msgstr "" #: ../data/str.xml.in.h:271 msgid "Dancer" msgstr "" #: ../data/str.xml.in.h:272 msgid "Lipstick" msgstr "" #: ../data/str.xml.in.h:273 msgid "Nail" msgstr "" #: ../data/str.xml.in.h:274 msgid "Face" msgstr "" #: ../data/str.xml.in.h:275 msgid "Haircut" msgstr "" #: ../data/str.xml.in.h:276 msgid "Syringe" msgstr "" #: ../data/str.xml.in.h:277 msgid "Medicine" msgstr "" #: ../data/str.xml.in.h:278 msgid "Kiss" msgstr "" #: ../data/str.xml.in.h:279 msgid "Love Letter" msgstr "" #: ../data/str.xml.in.h:280 msgid "Ring" msgstr "" #: ../data/str.xml.in.h:281 msgid "Gem Stone" msgstr "" #: ../data/str.xml.in.h:282 msgid "Wedding" msgstr "" #: ../data/str.xml.in.h:283 msgid "Heart" msgstr "" #: ../data/str.xml.in.h:284 msgid "Idea" msgstr "" #: ../data/str.xml.in.h:285 msgid "Anger" msgstr "" #: ../data/str.xml.in.h:286 msgid "Bomb" msgstr "" #: ../data/str.xml.in.h:287 msgid "Sleeping" msgstr "" #: ../data/str.xml.in.h:288 msgid "Collision" msgstr "" #: ../data/str.xml.in.h:289 msgid "Sweat" msgstr "" #: ../data/str.xml.in.h:290 msgid "Droplet" msgstr "" #: ../data/str.xml.in.h:291 msgid "Dash" msgstr "" #: ../data/str.xml.in.h:292 msgid "Poo" msgstr "" #: ../data/str.xml.in.h:293 msgid "Muscle" msgstr "" #: ../data/str.xml.in.h:294 msgid "Dizzy" msgstr "" #: ../data/str.xml.in.h:295 msgid "Speech" msgstr "" #: ../data/str.xml.in.h:296 msgid "Thought" msgstr "" #: ../data/str.xml.in.h:297 msgid "Perfect Score" msgstr "" #: ../data/str.xml.in.h:298 msgid "Pushpin" msgstr "" #: ../data/str.xml.in.h:299 msgid "Clip" msgstr "" #: ../data/str.xml.in.h:300 msgid "Speaker" msgstr "" #: ../data/str.xml.in.h:301 msgid "Battery" msgstr "" #: ../data/str.xml.in.h:302 msgid "Plug" msgstr "" #: ../data/str.xml.in.h:303 msgid "Search" msgstr "" #: ../data/str.xml.in.h:304 msgid "Bookmark" msgstr "" #: ../data/str.xml.in.h:305 msgid "Book" msgstr "" #: ../data/str.xml.in.h:306 msgid "Memo" msgstr "" #: ../data/str.xml.in.h:307 msgid "Mail" msgstr "" #: ../data/str.xml.in.h:308 msgid "Mobile Phone" msgstr "" #: ../data/str.xml.in.h:309 msgid "Camera" msgstr "" #: ../data/str.xml.in.h:310 msgid "Video" msgstr "" #: ../data/str.xml.in.h:311 msgid "Television" msgstr "" #: ../data/str.xml.in.h:312 msgid "Radio" msgstr "" #: ../data/str.xml.in.h:313 msgid "Key" msgstr "" #: ../data/str.xml.in.h:314 msgid "Lock" msgstr "" #: ../data/str.xml.in.h:315 msgid "Fire" msgstr "" #: ../data/str.xml.in.h:316 msgid "Wrench" msgstr "" #: ../data/str.xml.in.h:317 msgid "Hammer" msgstr "" #: ../data/str.xml.in.h:318 msgid "Bolt" msgstr "" #: ../data/str.xml.in.h:319 msgid "Hocho" msgstr "" #: ../data/str.xml.in.h:320 msgid "Pistol" msgstr "" #: ../data/str.xml.in.h:321 msgid "Microscope" msgstr "" #: ../data/str.xml.in.h:322 msgid "Telescope" msgstr "" #: ../data/str.xml.in.h:323 msgid "Crystal" msgstr "" #: ../data/str.xml.in.h:324 msgid "David Star" msgstr "" #: ../data/str.xml.in.h:325 msgid "Beginner" msgstr "" #: ../data/str.xml.in.h:326 msgid "Candle" msgstr "" #: ../data/str.xml.in.h:327 msgid "Hole" msgstr "" #: ../data/str.xml.in.h:328 msgid "Personal Computer" msgstr "" #: ../data/str.xml.in.h:329 msgid "keyboard" msgstr "" #: ../data/str.xml.in.h:330 msgid "Printer" msgstr "" #: ../data/str.xml.in.h:331 msgid "Calculator" msgstr "" #: ../data/str.xml.in.h:332 msgid "Minimize" msgstr "" #: ../data/str.xml.in.h:333 msgid "Maximize" msgstr "" #: ../data/str.xml.in.h:334 msgid "Refresh" msgstr "" #: ../data/str.xml.in.h:335 msgid "Close" msgstr "" #: ../data/str.xml.in.h:336 msgid "World" msgstr "" #: ../data/str.xml.in.h:337 msgid "Mt. Fuji" msgstr "" #: ../data/str.xml.in.h:338 msgid "Tokyo Tower" msgstr "" #: ../data/str.xml.in.h:339 msgid "Japan" msgstr "" #: ../data/str.xml.in.h:340 msgid "Anguish" msgstr "" #: ../data/str.xml.in.h:341 msgid "Smile" msgstr "" #: ../data/str.xml.in.h:342 msgid "Smirk" msgstr "" #: ../data/str.xml.in.h:343 msgid "Neutral" msgstr "" #: ../data/str.xml.in.h:344 msgid "Expressionless" msgstr "" #: ../data/str.xml.in.h:345 msgid "Unamused" msgstr "" #: ../data/str.xml.in.h:346 msgid "Pensive" msgstr "" #: ../data/str.xml.in.h:347 msgid "Confused" msgstr "" #: ../data/str.xml.in.h:348 msgid "Confounded" msgstr "" #: ../data/str.xml.in.h:349 msgid "Disappointed" msgstr "" #: ../data/str.xml.in.h:350 msgid "Angry" msgstr "" #: ../data/str.xml.in.h:351 msgid "Cry" msgstr "" #: ../data/str.xml.in.h:352 msgid "Sleeply" msgstr "" #: ../data/str.xml.in.h:353 msgid "Tired" msgstr "" #: ../data/str.xml.in.h:354 msgid "Surprise" msgstr "" #: ../data/str.xml.in.h:355 msgid "Scream" msgstr "" #: ../data/str.xml.in.h:356 msgid "Flushed" msgstr "" #: ../data/str.xml.in.h:357 msgid "Medical Mask" msgstr "" #: ../data/str.xml.in.h:358 msgid "OK" msgstr "" #: ../data/str.xml.in.h:359 msgid "Bow" msgstr "" #: ../data/str.xml.in.h:360 msgid "See-No-Evil" msgstr "" #: ../data/str.xml.in.h:361 msgid "Hear-No-Evil" msgstr "" #: ../data/str.xml.in.h:362 msgid "Speak-No-Evil" msgstr "" #: ../data/str.xml.in.h:363 msgid "Banzai" msgstr "" #: ../data/str.xml.in.h:364 msgid "Pleading" msgstr "" #: ../data/str.xml.in.h:365 msgid "Smileys" msgstr "" #: ../data/str.xml.in.h:366 msgid "Smile Big" msgstr "" #: ../data/str.xml.in.h:367 msgid "Sad" msgstr "" #: ../data/str.xml.in.h:368 msgid "Wink" msgstr "" #: ../data/str.xml.in.h:369 msgid "Shock" msgstr "" #: ../data/str.xml.in.h:370 msgid "Kiss | Secret" msgstr "" #: ../data/str.xml.in.h:371 msgid "Glasses Cool | Eyeroll" msgstr "" #: ../data/str.xml.in.h:372 msgid "Glasses Cool" msgstr "" #: ../data/str.xml.in.h:373 msgid "Embarrassed" msgstr "" #: ../data/str.xml.in.h:374 msgid "Crying" msgstr "" #: ../data/str.xml.in.h:375 msgid "Thinking" msgstr "" #: ../data/str.xml.in.h:376 msgid "Don't Know" msgstr "" #: ../data/str.xml.in.h:377 msgid "Party" msgstr "" #: ../data/str.xml.in.h:378 msgid "Yawn" msgstr "" #: ../data/str.xml.in.h:379 msgid "Bunny" msgstr "" #: ../data/str.xml.in.h:380 msgid "Sick" msgstr "" #: ../data/str.xml.in.h:381 msgid "Devil" msgstr "" #: ../data/str.xml.in.h:382 msgid "Angel" msgstr "" #: ../data/str.xml.in.h:383 msgid "Love" msgstr "" #: ../data/str.xml.in.h:384 msgid "Love Over" msgstr "" #: ../data/str.xml.in.h:385 msgid "Film" msgstr "" #: ../data/str.xml.in.h:386 msgid "Clock" msgstr "" #: ../data/str.xml.in.h:387 msgid "Coffee" msgstr "" #: ../data/str.xml.in.h:388 msgid "Phone" msgstr "" #: ../data/str.xml.in.h:389 msgid "Hug Left" msgstr "" #: ../data/str.xml.in.h:390 msgid "Hug Right" msgstr "" #: ../data/str.xml.in.h:391 msgid "Yes" msgstr "" #: ../data/str.xml.in.h:392 msgid "No" msgstr "" #: ../data/str.xml.in.h:393 msgid "Shut Mouth" msgstr "" #: ../data/str.xml.in.h:394 msgid "Money Mouth" msgstr "" #: ../data/str.xml.in.h:395 msgid "Foot in Mouth" msgstr "" #: ../data/str.xml.in.h:396 msgid "Shout" msgstr "" #. http://ja.wikipedia.org/wiki/%E9%A1%94%E6%96%87%E5%AD%97 #: ../data/str.xml.in.h:398 msgid "Smileys (Japanese)" msgstr "" #: ../data/str.xml.in.h:399 msgid "Smoking" msgstr "" #: ../data/str.xml.in.h:400 msgid "Sorry" msgstr "" #: ../data/str.xml.in.h:401 msgid "Hug" msgstr "" #. http://ja.wikipedia.org/wiki/%E9%A1%94%E6%96%87%E5%AD%97 #: ../data/str.xml.in.h:403 msgid "Smileys (Japanese 2ch)" msgstr "" #: ../data/str.xml.in.h:404 msgid "Hey" msgstr "" #. http://ja.wikipedia.org/wiki/%E9%A1%94%E6%96%87%E5%AD%97 #: ../data/str.xml.in.h:406 msgid "Smileys (Chinese)" msgstr "" #: ../data/str.xml.in.h:407 msgid "Crow" msgstr "" #. http://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88%E3%82%B9%E3%83%A9%E3%83%B3%E3%82%B0 #: ../data/str.xml.in.h:409 msgid "Acronym" msgstr "" #: ../data/str.xml.in.h:410 msgid "Acronym (Computer)" msgstr "" #. http://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88%E3%82%B9%E3%83%A9%E3%83%B3%E3%82%B0 #: ../data/str.xml.in.h:412 msgid "Acronym (Japanese)" msgstr "" #: ../data/str.xml.in.h:413 msgid "Do not want to read between lines (Aete Kuuki Wo Yomanai)" msgstr "" #: ../data/str.xml.in.h:414 msgid "Can't get together (Guda Guda)" msgstr "" #: ../data/str.xml.in.h:415 msgid "Say whatever one feels (Iitaidake)" msgstr "" #: ../data/str.xml.in.h:416 msgid "Excited (Kitakore)" msgstr "" #: ../data/str.xml.in.h:417 msgid "Detail (Kuwashiku)" msgstr "" #: ../data/str.xml.in.h:418 msgid "Cannot read between lines (Kuuki Ga Yomenai)" msgstr "" #: ../data/str.xml.in.h:419 msgid "Omission (Shouryaku)" msgstr "" #: ../data/str.xml.in.h:420 msgid "Excited (Waku Waku Teka Teka)" msgstr "" #: ../data/str.xml.in.h:421 msgid "Laugh" msgstr "" #: ../data/str.xml.in.h:422 msgid "Dude (Oi!)" msgstr "" #: ../data/str.xml.in.h:423 msgid "Good job (Otsukare)" msgstr "" #: ../data/str.xml.in.h:424 msgid "Want (Kure, E.g. pics クレメンス)" msgstr "" #: ../data/str.xml.in.h:425 msgid "ASCII art of a hand (✊, E.g. つAttention)" msgstr "" #: ../data/str.xml.in.h:426 msgid "In The Meantime (Toriaezu, Maa)" msgstr "" #: ../data/str.xml.in.h:427 msgid "Self-confidence (Aniki, E.g. tennis ニキ)" msgstr "" #: ../data/str.xml.in.h:428 msgid "Bye" msgstr "" #: ../data/str.xml.in.h:429 msgid "Want (Hattekure, E.g. pics ハラデイ)" msgstr "" #: ../data/str.xml.in.h:430 msgid "Exist as microparticles (Biryushi Level De Sonzaisuru)" msgstr "" #: ../data/str.xml.in.h:431 msgid "False Start (Flying Get)" msgstr "" #: ../data/str.xml.in.h:432 msgid "Fulfilling Life (Real life is Zyujitsu)" msgstr "" #: ../data/str.xml.in.h:433 msgid "Laugh (Warau)" msgstr "" #: ../data/str.xml.in.h:434 msgid "He (Yatsu <- Yashi)" msgstr "" #: ../data/w3c.xml.in.h:1 msgid "Char References" msgstr "" #: ../data/zh.xml.in.h:1 msgid "Chinese" msgstr "" #: ../data/zh.xml.in.h:4 ../input-pad/unicode_block.h:138 msgid "Bopomofo" msgstr "" #: ../input-pad/app-menu.ui.h:1 msgid "_File" msgstr "" #: ../input-pad/app-menu.ui.h:2 ../input-pad/dialog.ui.h:21 msgid "_Close" msgstr "" #: ../input-pad/app-menu.ui.h:3 msgid "Close the program" msgstr "" #: ../input-pad/app-menu.ui.h:4 msgid "_Pad" msgstr "" #: ../input-pad/app-menu.ui.h:5 msgid "_Code Point" msgstr "" #: ../input-pad/app-menu.ui.h:6 msgid "_Show Pad" msgstr "" #: ../input-pad/app-menu.ui.h:7 msgid "Show _All Characters" msgstr "" #: ../input-pad/app-menu.ui.h:8 msgid "Show _Custom Characters" msgstr "" #: ../input-pad/app-menu.ui.h:9 msgid "Show _Nothing" msgstr "" #: ../input-pad/app-menu.ui.h:10 msgid "Show _Keyboard Layout" msgstr "" #: ../input-pad/app-menu.ui.h:11 msgid "_Help" msgstr "" #: ../input-pad/app-menu.ui.h:12 msgid "_Troubleshoot" msgstr "" #: ../input-pad/app-menu.ui.h:13 msgid "_About" msgstr "" #: ../input-pad/dialog.ui.h:1 msgid "Code Point Dialog" msgstr "" #: ../input-pad/dialog.ui.h:2 msgid "Unicode" msgstr "" #: ../input-pad/dialog.ui.h:3 msgid "You can choose encoding type" msgstr "" #: ../input-pad/dialog.ui.h:4 msgid "Current Encoding" msgstr "" #: ../input-pad/dialog.ui.h:5 msgid "Copy Buffer" msgstr "" #: ../input-pad/dialog.ui.h:6 msgid "Base 16\n" "Hex" msgstr "" #: ../input-pad/dialog.ui.h:8 msgid "Set number case to hexadecimal" msgstr "" #: ../input-pad/dialog.ui.h:9 msgid "Base 10\n" "Dec" msgstr "" #: ../input-pad/dialog.ui.h:11 msgid "Set number case to decimal" msgstr "" #: ../input-pad/dialog.ui.h:12 msgid "Base 8\n" "Oct" msgstr "" #: ../input-pad/dialog.ui.h:14 msgid "Set number case to octal" msgstr "" #: ../input-pad/dialog.ui.h:15 msgid "Base 2\n" "Bin" msgstr "" #: ../input-pad/dialog.ui.h:17 msgid "Set number case to binary" msgstr "" #: ../input-pad/dialog.ui.h:18 msgid "Code Point:" msgstr "" #: ../input-pad/dialog.ui.h:19 msgid "Character:" msgstr "" #: ../input-pad/dialog.ui.h:20 msgid "_Send" msgstr "" #: ../input-pad/dialog.ui.h:22 msgid "Input Pad Troubleshoot" msgstr "" #: ../input-pad/dialog.ui.h:24 #, no-c-format msgid "" "\n" "This application can be run either as a stand-alone program or under an " "input method application.\n" "If you wish to send multi-byte characters, this application needs to be run " "under an input method application.\n" "If you wish to send characters to X11 applications, those applications needs " "to allow send events. e.g.\n" "% xterm -xrm \"XTerm*allowSendEvents: true\"\n" "\n" "You also can copy pad files from /usr/share/input-pad/pad to $HOME/.config/" "pad to customize those in \"Custom Character\" pane." msgstr "" #: ../input-pad/dialog.ui.h:31 msgid "_OK" msgstr "" #: ../input-pad/dialog.ui.h:32 msgid "Configure Keyboard Layouts" msgstr "" #: ../input-pad/dialog.ui.h:33 msgid "A_vailable layouts:" msgstr "" #: ../input-pad/dialog.ui.h:34 msgid "_Add" msgstr "" #: ../input-pad/dialog.ui.h:35 msgid "_Layouts shown in the list:" msgstr "" #: ../input-pad/dialog.ui.h:36 msgid "_Remove" msgstr "" #: ../input-pad/dialog.ui.h:37 msgid "_Options" msgstr "" #: ../input-pad/dialog.ui.h:38 msgid "Configure Keyboard Options" msgstr "" #: ../input-pad/dialog.ui.h:39 msgid "_Use the default keyboard option" msgstr "" #: ../input-pad/dialog.ui.h:40 msgid "Use the defualt XKB option" msgstr "" #: ../input-pad/dialog.ui.h:41 msgid "Keyboard Option" msgstr "" #: ../input-pad/dialog.ui.h:43 msgid "The input pad is a tool to send a character on button." msgstr "" #: ../input-pad/dialog.ui.h:44 msgid "translator_credits" msgstr "" #: ../input-pad/eek-gtk.c:65 msgid "Use libeek to draw keyboard" msgstr "" #: ../input-pad/eek-gtk.c:237 msgid "eekboard layout" msgstr "" #: ../input-pad/eek-gtk.c:249 msgid "eekboard Options" msgstr "" #: ../input-pad/eek-gtk.c:249 msgid "Show eekboard Options" msgstr "" #: ../input-pad/unicode_block.h:37 msgid "Basic Latin" msgstr "" #: ../input-pad/unicode_block.h:40 msgid "Latin Extended-B" msgstr "" #: ../input-pad/unicode_block.h:41 msgid "IPA Extensions" msgstr "" #: ../input-pad/unicode_block.h:42 msgid "Spacing Modifier Letters" msgstr "" #: ../input-pad/unicode_block.h:43 msgid "Combining Diacritical Marks" msgstr "" #: ../input-pad/unicode_block.h:44 msgid "Greek and Coptic" msgstr "" #: ../input-pad/unicode_block.h:45 msgid "Cyrillic" msgstr "" #: ../input-pad/unicode_block.h:46 msgid "Cyrillic Supplement" msgstr "" #: ../input-pad/unicode_block.h:47 msgid "Armenian" msgstr "" #: ../input-pad/unicode_block.h:48 msgid "Hebrew" msgstr "" #: ../input-pad/unicode_block.h:49 msgid "Arabic" msgstr "" #: ../input-pad/unicode_block.h:50 msgid "Syriac" msgstr "" #: ../input-pad/unicode_block.h:51 msgid "Arabic Supplement" msgstr "" #: ../input-pad/unicode_block.h:52 msgid "Thaana" msgstr "" #: ../input-pad/unicode_block.h:53 msgid "NKo" msgstr "" #: ../input-pad/unicode_block.h:54 msgid "Samaritan" msgstr "" #: ../input-pad/unicode_block.h:55 msgid "Devanagari" msgstr "" #: ../input-pad/unicode_block.h:56 msgid "Bengali" msgstr "" #: ../input-pad/unicode_block.h:57 msgid "Gurmukhi" msgstr "" #: ../input-pad/unicode_block.h:58 msgid "Gujarati" msgstr "" #: ../input-pad/unicode_block.h:59 msgid "Oriya" msgstr "" #: ../input-pad/unicode_block.h:60 msgid "Tamil" msgstr "" #: ../input-pad/unicode_block.h:61 msgid "Telugu" msgstr "" #: ../input-pad/unicode_block.h:62 msgid "Kannada" msgstr "" #: ../input-pad/unicode_block.h:63 msgid "Malayalam" msgstr "" #: ../input-pad/unicode_block.h:64 msgid "Sinhala" msgstr "" #: ../input-pad/unicode_block.h:65 msgid "Thai" msgstr "" #: ../input-pad/unicode_block.h:66 msgid "Lao" msgstr "" #: ../input-pad/unicode_block.h:67 msgid "Tibetan" msgstr "" #: ../input-pad/unicode_block.h:68 msgid "Myanmar" msgstr "" #: ../input-pad/unicode_block.h:69 msgid "Georgian" msgstr "" #: ../input-pad/unicode_block.h:70 msgid "Hangul Jamo" msgstr "" #: ../input-pad/unicode_block.h:71 msgid "Ethiopic" msgstr "" #: ../input-pad/unicode_block.h:72 msgid "Ethiopic Supplement" msgstr "" #: ../input-pad/unicode_block.h:73 msgid "Cherokee" msgstr "" #: ../input-pad/unicode_block.h:74 msgid "Unified Canadian Aboriginal Syllabics" msgstr "" #: ../input-pad/unicode_block.h:75 msgid "Ogham" msgstr "" #: ../input-pad/unicode_block.h:76 msgid "Runic" msgstr "" #: ../input-pad/unicode_block.h:77 msgid "Tagalog" msgstr "" #: ../input-pad/unicode_block.h:78 msgid "Hanunoo" msgstr "" #: ../input-pad/unicode_block.h:79 msgid "Buhid" msgstr "" #: ../input-pad/unicode_block.h:80 msgid "Tagbanwa" msgstr "" #: ../input-pad/unicode_block.h:81 msgid "Khmer" msgstr "" #: ../input-pad/unicode_block.h:82 msgid "Mongolian" msgstr "" #: ../input-pad/unicode_block.h:83 msgid "Unified Canadian Aboriginal Syllabics Extended" msgstr "" #: ../input-pad/unicode_block.h:84 msgid "Limbu" msgstr "" #: ../input-pad/unicode_block.h:85 msgid "Tai Le" msgstr "" #: ../input-pad/unicode_block.h:86 msgid "New Tai Lue" msgstr "" #: ../input-pad/unicode_block.h:87 msgid "Khmer Symbols" msgstr "" #: ../input-pad/unicode_block.h:88 msgid "Buginese" msgstr "" #: ../input-pad/unicode_block.h:89 msgid "Tai Tham" msgstr "" #: ../input-pad/unicode_block.h:90 msgid "Balinese" msgstr "" #: ../input-pad/unicode_block.h:91 msgid "Sundanese" msgstr "" #: ../input-pad/unicode_block.h:92 msgid "Lepcha" msgstr "" #: ../input-pad/unicode_block.h:93 msgid "Ol Chiki" msgstr "" #: ../input-pad/unicode_block.h:94 msgid "Vedic Extensions" msgstr "" #: ../input-pad/unicode_block.h:95 msgid "Phonetic Extensions" msgstr "" #: ../input-pad/unicode_block.h:96 msgid "Phonetic Extensions Supplement" msgstr "" #: ../input-pad/unicode_block.h:97 msgid "Combining Diacritical Marks Supplement" msgstr "" #: ../input-pad/unicode_block.h:98 msgid "Latin Extended Additional" msgstr "" #: ../input-pad/unicode_block.h:99 msgid "Greek Extended" msgstr "" #: ../input-pad/unicode_block.h:100 msgid "General Punctuation" msgstr "" #: ../input-pad/unicode_block.h:101 msgid "Superscripts and Subscripts" msgstr "" #: ../input-pad/unicode_block.h:102 msgid "Currency Symbols" msgstr "" #: ../input-pad/unicode_block.h:103 msgid "Combining Diacritical Marks for Symbols" msgstr "" #: ../input-pad/unicode_block.h:104 msgid "Letterlike Symbols" msgstr "" #: ../input-pad/unicode_block.h:105 msgid "Number Forms" msgstr "" #: ../input-pad/unicode_block.h:106 msgid "Arrows" msgstr "" #: ../input-pad/unicode_block.h:107 msgid "Mathematical Operators" msgstr "" #: ../input-pad/unicode_block.h:108 msgid "Miscellaneous Technical" msgstr "" #: ../input-pad/unicode_block.h:109 msgid "Control Pictures" msgstr "" #: ../input-pad/unicode_block.h:110 msgid "Optical Character Recognition" msgstr "" #: ../input-pad/unicode_block.h:111 msgid "Enclosed Alphanumerics" msgstr "" #: ../input-pad/unicode_block.h:113 msgid "Block Elements" msgstr "" #: ../input-pad/unicode_block.h:114 msgid "Geometric Shapes" msgstr "" #: ../input-pad/unicode_block.h:115 msgid "Miscellaneous Symbols" msgstr "" #: ../input-pad/unicode_block.h:117 msgid "Miscellaneous Mathematical Symbols-A" msgstr "" #: ../input-pad/unicode_block.h:118 msgid "Supplemental Arrows-A" msgstr "" #: ../input-pad/unicode_block.h:119 msgid "Braille Patterns" msgstr "" #: ../input-pad/unicode_block.h:120 msgid "Supplemental Arrows-B" msgstr "" #: ../input-pad/unicode_block.h:121 msgid "Miscellaneous Mathematical Symbols-B" msgstr "" #: ../input-pad/unicode_block.h:122 msgid "Supplemental Mathematical Operators" msgstr "" #: ../input-pad/unicode_block.h:123 msgid "Miscellaneous Symbols and Arrows" msgstr "" #: ../input-pad/unicode_block.h:124 msgid "Glagolitic" msgstr "" #: ../input-pad/unicode_block.h:125 msgid "Latin Extended-C" msgstr "" #: ../input-pad/unicode_block.h:126 msgid "Coptic" msgstr "" #: ../input-pad/unicode_block.h:127 msgid "Georgian Supplement" msgstr "" #: ../input-pad/unicode_block.h:128 msgid "Tifinagh" msgstr "" #: ../input-pad/unicode_block.h:129 msgid "Ethiopic Extended" msgstr "" #: ../input-pad/unicode_block.h:130 msgid "Cyrillic Extended-A" msgstr "" #: ../input-pad/unicode_block.h:131 msgid "Supplemental Punctuation" msgstr "" #: ../input-pad/unicode_block.h:133 msgid "Kangxi Radicals" msgstr "" #: ../input-pad/unicode_block.h:134 msgid "Ideographic Description Characters" msgstr "" #: ../input-pad/unicode_block.h:135 msgid "CJK Symbols and Punctuation" msgstr "" #: ../input-pad/unicode_block.h:139 msgid "Hangul Compatibility Jamo" msgstr "" #: ../input-pad/unicode_block.h:140 msgid "Kanbun" msgstr "" #: ../input-pad/unicode_block.h:141 msgid "Bopomofo Extended" msgstr "" #: ../input-pad/unicode_block.h:142 msgid "CJK Strokes" msgstr "" #: ../input-pad/unicode_block.h:143 msgid "Katakana Phonetic Extensions" msgstr "" #: ../input-pad/unicode_block.h:144 msgid "Enclosed CJK Letters and Months" msgstr "" #: ../input-pad/unicode_block.h:146 msgid "CJK Unified Ideographs Extension A" msgstr "" #: ../input-pad/unicode_block.h:147 msgid "Yijing Hexagram Symbols" msgstr "" #: ../input-pad/unicode_block.h:148 msgid "CJK Unified Ideographs" msgstr "" #: ../input-pad/unicode_block.h:149 msgid "Yi Syllables" msgstr "" #: ../input-pad/unicode_block.h:150 msgid "Yi Radicals" msgstr "" #: ../input-pad/unicode_block.h:151 msgid "Lisu" msgstr "" #: ../input-pad/unicode_block.h:152 msgid "Vai" msgstr "" #: ../input-pad/unicode_block.h:153 msgid "Cyrillic Extended-B" msgstr "" #: ../input-pad/unicode_block.h:154 msgid "Bamum" msgstr "" #: ../input-pad/unicode_block.h:155 msgid "Modifier Tone Letters" msgstr "" #: ../input-pad/unicode_block.h:156 msgid "Latin Extended-D" msgstr "" #: ../input-pad/unicode_block.h:157 msgid "Syloti Nagri" msgstr "" #: ../input-pad/unicode_block.h:158 msgid "Common Indic Number Forms" msgstr "" #: ../input-pad/unicode_block.h:159 msgid "Phags-pa" msgstr "" #: ../input-pad/unicode_block.h:160 msgid "Saurashtra" msgstr "" #: ../input-pad/unicode_block.h:161 msgid "Devanagari Extended" msgstr "" #: ../input-pad/unicode_block.h:162 msgid "Kayah Li" msgstr "" #: ../input-pad/unicode_block.h:163 msgid "Rejang" msgstr "" #: ../input-pad/unicode_block.h:164 msgid "Hangul Jamo Extended-A" msgstr "" #: ../input-pad/unicode_block.h:165 msgid "Javanese" msgstr "" #: ../input-pad/unicode_block.h:166 msgid "Cham" msgstr "" #: ../input-pad/unicode_block.h:167 msgid "Myanmar Extended-A" msgstr "" #: ../input-pad/unicode_block.h:168 msgid "Tai Viet" msgstr "" #: ../input-pad/unicode_block.h:169 msgid "Meetei Mayek" msgstr "" #: ../input-pad/unicode_block.h:170 msgid "Hangul Syllables" msgstr "" #: ../input-pad/unicode_block.h:171 msgid "Hangul Jamo Extended-B" msgstr "" #: ../input-pad/unicode_block.h:172 msgid "High Surrogates" msgstr "" #: ../input-pad/unicode_block.h:173 msgid "High Private Use Surrogates" msgstr "" #: ../input-pad/unicode_block.h:174 msgid "Low Surrogates" msgstr "" #: ../input-pad/unicode_block.h:175 msgid "Private Use Area" msgstr "" #: ../input-pad/unicode_block.h:176 msgid "CJK Compatibility Ideographs" msgstr "" #: ../input-pad/unicode_block.h:177 msgid "Alphabetic Presentation Forms" msgstr "" #: ../input-pad/unicode_block.h:178 msgid "Arabic Presentation Forms-A" msgstr "" #: ../input-pad/unicode_block.h:179 msgid "Variation Selectors" msgstr "" #: ../input-pad/unicode_block.h:180 msgid "Vertical Forms" msgstr "" #: ../input-pad/unicode_block.h:181 msgid "Combining Half Marks" msgstr "" #: ../input-pad/unicode_block.h:182 msgid "CJK Compatibility Forms" msgstr "" #: ../input-pad/unicode_block.h:183 msgid "Small Form Variants" msgstr "" #: ../input-pad/unicode_block.h:184 msgid "Arabic Presentation Forms-B" msgstr "" #: ../input-pad/unicode_block.h:185 msgid "Halfwidth and Fullwidth Forms" msgstr "" #: ../input-pad/unicode_block.h:186 msgid "Specials" msgstr "" #: ../input-pad/unicode_block.h:187 msgid "Linear B Syllabary" msgstr "" #: ../input-pad/unicode_block.h:188 msgid "Linear B Ideograms" msgstr "" #: ../input-pad/unicode_block.h:189 msgid "Aegean Numbers" msgstr "" #: ../input-pad/unicode_block.h:190 msgid "Ancient Greek Numbers" msgstr "" #: ../input-pad/unicode_block.h:191 msgid "Ancient Symbols" msgstr "" #: ../input-pad/unicode_block.h:192 msgid "Phaistos Disc" msgstr "" #: ../input-pad/unicode_block.h:193 msgid "Lycian" msgstr "" #: ../input-pad/unicode_block.h:194 msgid "Carian" msgstr "" #: ../input-pad/unicode_block.h:195 msgid "Old Italic" msgstr "" #: ../input-pad/unicode_block.h:197 msgid "Ugaritic" msgstr "" #: ../input-pad/unicode_block.h:198 msgid "Old Persian" msgstr "" #: ../input-pad/unicode_block.h:199 msgid "Deseret" msgstr "" #: ../input-pad/unicode_block.h:201 msgid "Osmanya" msgstr "" #: ../input-pad/unicode_block.h:202 msgid "Cypriot Syllabary" msgstr "" #: ../input-pad/unicode_block.h:203 msgid "Imperial Aramaic" msgstr "" #: ../input-pad/unicode_block.h:204 msgid "Phoenician" msgstr "" #: ../input-pad/unicode_block.h:205 msgid "Lydian" msgstr "" #: ../input-pad/unicode_block.h:206 msgid "Kharoshthi" msgstr "" #: ../input-pad/unicode_block.h:207 msgid "Old South Arabian" msgstr "" #: ../input-pad/unicode_block.h:208 msgid "Avestan" msgstr "" #: ../input-pad/unicode_block.h:209 msgid "Inscriptional Parthian" msgstr "" #: ../input-pad/unicode_block.h:210 msgid "Inscriptional Pahlavi" msgstr "" #: ../input-pad/unicode_block.h:211 msgid "Old Turkic" msgstr "" #: ../input-pad/unicode_block.h:212 msgid "Rumi Numeral Symbols" msgstr "" #: ../input-pad/unicode_block.h:213 msgid "Kaithi" msgstr "" #: ../input-pad/unicode_block.h:214 msgid "Cuneiform" msgstr "" #: ../input-pad/unicode_block.h:215 msgid "Cuneiform Numbers and Punctuation" msgstr "" #: ../input-pad/unicode_block.h:216 msgid "Egyptian Hieroglyphs" msgstr "" #: ../input-pad/unicode_block.h:217 msgid "Byzantine Musical Symbols" msgstr "" #: ../input-pad/unicode_block.h:218 msgid "Musical Symbols" msgstr "" #: ../input-pad/unicode_block.h:219 msgid "Ancient Greek Musical Notation" msgstr "" #: ../input-pad/unicode_block.h:220 msgid "Tai Xuan Jing Symbols" msgstr "" #: ../input-pad/unicode_block.h:221 msgid "Counting Rod Numerals" msgstr "" #: ../input-pad/unicode_block.h:222 msgid "Mathematical Alphanumeric Symbols" msgstr "" #: ../input-pad/unicode_block.h:223 msgid "Mahjong Tiles" msgstr "" #: ../input-pad/unicode_block.h:224 msgid "Domino Tiles" msgstr "" #: ../input-pad/unicode_block.h:225 msgid "Enclosed Alphanumeric Supplement" msgstr "" #: ../input-pad/unicode_block.h:226 msgid "Enclosed Ideographic Supplement" msgstr "" #: ../input-pad/unicode_block.h:227 msgid "CJK Unified Ideographs Extension B" msgstr "" #: ../input-pad/unicode_block.h:228 msgid "CJK Unified Ideographs Extension C" msgstr "" #: ../input-pad/unicode_block.h:229 msgid "CJK Compatibility Ideographs Supplement" msgstr "" #: ../input-pad/unicode_block.h:230 msgid "Tags" msgstr "" #: ../input-pad/unicode_block.h:231 msgid "Variation Selectors Supplement" msgstr "" #: ../input-pad/unicode_block.h:232 msgid "Supplementary Private Use Area-A" msgstr "" #: ../input-pad/unicode_block.h:233 msgid "Supplementary Private Use Area-B" msgstr "" #: ../input-pad/window-gtk.c:203 msgid "Display version" msgstr "" #. Translators: the word 'KBDUI' is not translated. #: ../input-pad/window-gtk.c:206 msgid "Use KBDUI to draw keyboard" msgstr "" #. Translators: the word 'TYPE' is not translated. #: ../input-pad/window-gtk.c:209 msgid "Use TYPE of char table. The available TYPE=0, 1, 2" msgstr "" #. Translators: the word 'TYPE' is not translated. #: ../input-pad/window-gtk.c:212 msgid "Use TYPE of keyboard layout. The available TYPE=0, 1" msgstr "" #: ../input-pad/window-gtk.c:219 msgid "Use XTEST module to send key events" msgstr "" #: ../input-pad/window-gtk.c:224 msgid "Use XSendEvent to send key events" msgstr "" #: ../input-pad/window-gtk.c:1172 msgid "Fold layout" msgstr "" #: ../input-pad/window-gtk.c:1177 ../input-pad/window-gtk.c:2610 msgid "Extend layout" msgstr "" #: ../input-pad/window-gtk.c:2824 msgid "Layout" msgstr "" #: ../input-pad/window-gtk.c:3095 msgid "_Layout:" msgstr "" #: ../input-pad/window-gtk.c:3125 msgid "_Configure Layouts" msgstr "" #. No longer used in gtk 2.20 #. gchar *license1, *license2, *license3; #. license1 = _("" #. "This library is free software; you can redistribute it and/or " #. "modify it under the terms of the GNU Lesser General Public " #. "License as published by the Free Software Foundation; either " #. "version 2 of the License, or (at your option) any later version."); #. #. license2 = _("" #. "This library is distributed in the hope that it will be useful, " #. "but WITHOUT ANY WARRANTY; without even the implied warranty of " #. "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU " #. "Lesser General Public License for more details."); #. #. license3 = _("" #. "You should have received a copy of the GNU Lesser General Public " #. "License along with this library; if not, write to the Free Software " #. "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, " #. "MA 02110-1301 USA"); #. #. license = g_strdup_printf ("%s\n\n%s\n\n%s", #. license1, license2, license3); #. #. This format has been used since gtk 2.20. #: ../input-pad/window-gtk.c:3164 #, c-format msgid "This program comes with ABSOLUTELY NO WARRANTY; for details, visit %s" msgstr "" #: ../input-pad/window-gtk.c:3446 msgid "Group" msgstr "" #: ../input-pad/window-gtk.c:3454 msgid "Subgroup" msgstr "" input-pad-1.1.0/po/reform-weblate-pot.sh000077500000000000000000000021661476727667600201430ustar00rootroot00000000000000#!/bin/sh # Weblate warns Not Found data/alphabet.xml.in.in.h in input-pad.pot # since intltool converts XML files to H files internally. # This script trims .h in the comments in input-pad.pot until the intltool # method is replaced with gettext one. : ${ECHO:='/usr/bin/echo'} PROGNAME=`basename $0` usage() { $ECHO -e \ "This script trims .h in the comments in input-pad.pot\n" \ "$PROGNAME [OPTIONS…] POTFILE\n" \ "\n" \ "OPTIONS:\n" \ "-h, --help This help\n" \ "\n" \ "POTFILE: input-pad.pot\n" \ "" } if [ "x$1" = "x--help" ] || [ "x$1" = "x-h" ] ; then usage exit 0 fi POTFILE="$1" if [ ! -f "$POTFILE" ] ; then $ECHO -e "Not Found $POTFILE\n" exit 1 fi sed -e "/^#/s/\([^ ]*\)\.in\.h:\([0-9]*\)/\1.in:\2/" "$POTFILE" input-pad-1.1.0/po/uk.po000066400000000000000000003273071476727667600150570ustar00rootroot00000000000000# Ukrainian translations for input-pad # Copyright (C) 2010-2016 Takao Fujiwara # This file is distributed under the same license as the input-pad package. # # Translators: # Yuri Chornoivan , 2012,2014 # Yuri Chornoivan , 2016. #zanata msgid "" msgstr "" "Project-Id-Version: input-pad HEAD\n" "Report-Msgid-Bugs-To: http://code.google.com/p/input-pad/issues/list\n" "POT-Creation-Date: 2016-03-02 18:45+0900\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2016-03-02 12:41-0500\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" "Language: uk\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Zanata 3.8.2\n" #: ../data/alphabet.xml.in.in.h:1 msgid "Alphabets" msgstr "Алфавіти" #: ../data/base.xml.in.h:1 msgid "Symbols" msgstr "Символи" #: ../data/base.xml.in.h:2 msgid "Currency" msgstr "Валюти" #: ../data/base.xml.in.h:3 msgid "Letterlike" msgstr "Символи літер" #: ../data/base.xml.in.h:4 msgid "Miscellaneous" msgstr "Різне" #: ../data/base.xml.in.h:5 ../input-pad/unicode_block.h:116 msgid "Dingbats" msgstr "Декоративні" #. Translators: Superscripts and Subscripts #: ../data/base.xml.in.h:7 msgid "Super and Sub" msgstr "Верхні і нижні індекси" #: ../data/base.xml.in.h:8 msgid "Bold" msgstr "Напівжирні" #: ../data/base.xml.in.h:9 msgid "Italic" msgstr "Курсив" #: ../data/base.xml.in.h:10 msgid "Script" msgstr "Малі" #: ../data/base.xml.in.h:11 msgid "Double Struck" msgstr "Подвійне перекреслення" #: ../data/base.xml.in.h:12 msgid "All" msgstr "Всі" #: ../data/base.xml.in.h:13 ../data/zh.xml.in.h:2 msgid "Numbers" msgstr "Числа" #: ../data/base.xml.in.h:14 msgid "Roman" msgstr "Римські" #: ../data/base.xml.in.h:15 msgid "Enclosed" msgstr "У рамці" #: ../data/base.xml.in.h:16 msgid "Fraction" msgstr "Дроби" #: ../data/base.xml.in.h:17 msgid "Technical" msgstr "Технічні" #: ../data/base.xml.in.h:18 msgid "Unit" msgstr "Одиниці" #: ../data/base.xml.in.h:19 msgid "Mathematical" msgstr "Математичні" #: ../data/base.xml.in.h:20 msgid "Controls" msgstr "Керування" #: ../data/base.xml.in.h:21 msgid "OCR" msgstr "ОРС" #: ../data/base.xml.in.h:22 msgid "Graphics" msgstr "Графіка" #: ../data/base.xml.in.h:23 msgid "Arrow" msgstr "Стрілка" #: ../data/base.xml.in.h:24 ../input-pad/unicode_block.h:112 msgid "Box Drawing" msgstr "Для малювання рамок" #: ../data/base.xml.in.h:25 ../input-pad/window-gtk.c:3685 msgid "Block" msgstr "Блоки" #: ../data/base.xml.in.h:26 msgid "Geometric" msgstr "Геометричні" #: ../data/base.xml.in.h:27 msgid "Braille" msgstr "Шрифт Брайля" #: ../data/base.xml.in.h:28 msgid "Punctuations" msgstr "Символи пунктуації" #: ../data/base.xml.in.h:29 msgid "General" msgstr "Загальне" #: ../data/base.xml.in.h:30 msgid "CJK" msgstr "CJK" #: ../data/base.xml.in.h:31 ../input-pad/unicode_block.h:145 msgid "CJK Compatibility" msgstr "Сумісність з CJK" #: ../data/base.xml.in.h:32 msgid "Small Form" msgstr "Малі форми" #: ../data/cmd.xml.in.h:1 msgid "Command" msgstr "Команда" #: ../data/cmd.xml.in.h:2 msgid "Date" msgstr "Дата" #: ../data/cmd.xml.in.h:3 msgid "Normal Date" msgstr "Звичайна дата" #: ../data/cmd.xml.in.h:4 msgid "Date and Time" msgstr "Дата і час" #: ../data/cmd.xml.in.h:5 msgid "ChangeLog date" msgstr "Дата журналу змін" #: ../data/cmd.xml.in.h:6 msgid "USA English date" msgstr "Дата (США)" #: ../data/cmd.xml.in.h:7 msgid "UK English date" msgstr "Дата (Великобританія)" #: ../data/cmd.xml.in.h:8 msgid "ISO 8601 date" msgstr "Дата у форматі ISO 8601" #: ../data/cmd.xml.in.h:9 msgid "Era" msgstr "Ера" #: ../data/cmd.xml.in.h:10 msgid "Century Year" msgstr "Рік століття" #: ../data/cmd.xml.in.h:11 msgid "Normal Time" msgstr "Звичайний час" #: ../data/cmd.xml.in.h:12 msgid "English Time" msgstr "Час англійською" #: ../data/cmd.xml.in.h:13 msgid "Month" msgstr "Місяць" #: ../data/cmd.xml.in.h:14 msgid "English Month" msgstr "Місяць англійською" #: ../data/cmd.xml.in.h:15 msgid "Short Month" msgstr "Місяць (скорочено)" #: ../data/cmd.xml.in.h:16 msgid "English Short Month" msgstr "Місяць англійською (скорочено)" #: ../data/cmd.xml.in.h:17 msgid "Weekday" msgstr "День тижня" #: ../data/cmd.xml.in.h:18 msgid "English Weekday" msgstr "День тижня англійською" #: ../data/cmd.xml.in.h:19 msgid "Short Weekday" msgstr "День тижня (скорочено)" #: ../data/cmd.xml.in.h:20 msgid "English Short Weekday" msgstr "День тижня англійською (скорочено)" #: ../data/goth.xml.in.h:1 ../input-pad/unicode_block.h:196 msgid "Gothic" msgstr "Готичні" #: ../data/input-pad.desktop.in.h:1 ../input-pad/dialog.ui.h:42 #: ../input-pad/window-gtk.c:5084 ../input-pad/window-gtk.c:5085 #: ../input-pad/window-gtk.ui.h:1 msgid "Input Pad" msgstr "Панель введення" #. "IPA" stands for "International Phonetic Alphabet" #: ../data/ipa-obsolete.xml.in.h:2 msgid "IPA (Obsolete)" msgstr "IPA (застарілі)" #: ../data/ipa-obsolete.xml.in.h:3 ../data/ipa.xml.in.h:6 msgid "Open back unrounded vowel" msgstr "Неогублений голосний заднього ряду низького піднесення" #: ../data/ipa-obsolete.xml.in.h:4 msgid "Palatalized voiced bilabial plosive" msgstr "Палатизований дзвінкий губно-губний проривний" #: ../data/ipa-obsolete.xml.in.h:5 msgid "Voiceless palatal implosive" msgstr "Глухий твердопіднебінний вибуховий" #: ../data/ipa-obsolete.xml.in.h:6 ../data/ipa.xml.in.h:138 msgid "Alveolar click" msgstr "Ясенний клацальний приголосний" #: ../data/ipa-obsolete.xml.in.h:7 msgid "Palatalized voiced alveolar plosive" msgstr "Палатизований дзвінкий альвеолярний проривний" #: ../data/ipa-obsolete.xml.in.h:8 ../data/ipa.xml.in.h:25 msgid "Voiced alveolar affricate" msgstr "Дзвінкий ясенний африкативний" #: ../data/ipa-obsolete.xml.in.h:9 ../data/ipa.xml.in.h:27 msgid "Voiced alveopalatal affricate" msgstr "Дзвінкий заясенний африкативний" #: ../data/ipa-obsolete.xml.in.h:10 ../data/ipa.xml.in.h:26 msgid "Voiced palato-alveolar affricate" msgstr "Дзвінкий заясенний африкативний" #: ../data/ipa-obsolete.xml.in.h:11 msgid "Palatalized voiceless labiodental fricative" msgstr "Палатизований глухий губно-зубний фрикативний" #: ../data/ipa-obsolete.xml.in.h:12 msgid "Palatalized voiced velar plosive" msgstr "Палатизований дзвінкий задньопіднебінний проривний" #: ../data/ipa-obsolete.xml.in.h:13 msgid "Palatalized voiceless velar plosive" msgstr "Палатизований глухий задньопіднебінний проривний" #: ../data/ipa-obsolete.xml.in.h:14 msgid "Voiceless velar implosive" msgstr "Глухий задньопіднебінний вибуховий" #: ../data/ipa-obsolete.xml.in.h:15 msgid "Palatalized alveolar lateral approximant" msgstr "Палатизований ясенний боковий апроксимант" #: ../data/ipa-obsolete.xml.in.h:16 msgid "Palatalized bilabial nasal" msgstr "Палатизований двогубий носовий приголосний" #: ../data/ipa-obsolete.xml.in.h:17 msgid "Palatalized alveolar nasal" msgstr "Палатизований альвеолярний носовий" #: ../data/ipa-obsolete.xml.in.h:18 msgid "Syllabic alveolar nasal" msgstr "Складовий ясенний носовий звук" #: ../data/ipa-obsolete.xml.in.h:19 msgid "Palatalized voiceless bilabial plosive" msgstr "Палатизований глухий губно-губний проривний" #: ../data/ipa-obsolete.xml.in.h:20 msgid "Voiceless bilabial implosive" msgstr "Глухий губно-губний вибуховий" #: ../data/ipa-obsolete.xml.in.h:21 msgid "Palatalized alveolar trill" msgstr "Палатизований альвеолярний дрижачий" #: ../data/ipa-obsolete.xml.in.h:22 msgid "Voiced strident apico-alveolar trill" msgstr "Дзвінкий різкий верхньо-ясенний дрижачий" #: ../data/ipa-obsolete.xml.in.h:23 msgid "Palatalized voiceless alveolar fricative" msgstr "Палатизований глухий ясенний фрикативний" #: ../data/ipa-obsolete.xml.in.h:24 ../data/ipa.xml.in.h:19 msgid "Voiceless alveopalatal fricative" msgstr "Глухий заясенний фрикативний" #: ../data/ipa-obsolete.xml.in.h:25 msgid "Labialized voiceless palato-alveolar fricative" msgstr "Огублений глухий заясенний фрикативний" #: ../data/ipa-obsolete.xml.in.h:26 ../data/ipa.xml.in.h:103 msgid "Voiceless alveopalatal affricate" msgstr "Глухий заясенний африкативний" #: ../data/ipa-obsolete.xml.in.h:27 ../data/ipa.xml.in.h:101 msgid "Voiceless alveolar affricate" msgstr "Глухий ясенний африкативний" #: ../data/ipa-obsolete.xml.in.h:28 ../data/ipa.xml.in.h:102 msgid "Voiceless palato-alveolar affricate" msgstr "Глухий заясенний африкативний" #: ../data/ipa-obsolete.xml.in.h:29 msgid "Palatalized voiceless alveolar plosive" msgstr "Палатизований глухий альвеолярний проривний" #: ../data/ipa-obsolete.xml.in.h:30 msgid "Voiceless alveolar implosive" msgstr "Глухий ясенний вибуховий" #: ../data/ipa-obsolete.xml.in.h:31 ../data/ipa.xml.in.h:137 msgid "Dental click" msgstr "Зубний клацальний" #: ../data/ipa-obsolete.xml.in.h:32 msgid "Voiceless uvular implosive" msgstr "Глухий язичковий вибуховий" #: ../data/ipa-obsolete.xml.in.h:33 msgid "Palatalized voiced labiodental fricative" msgstr "Палатизований дзвінкий губно-зубний фрикативний" #: ../data/ipa-obsolete.xml.in.h:34 msgid "Palatalized voiceless velar fricative" msgstr "Палатизований глухий задньопіднебінний фрикативний" #: ../data/ipa-obsolete.xml.in.h:35 msgid "Palatalized voiced alveolar fricative" msgstr "Палатизований дзвінкий ясенний фрикативний" #: ../data/ipa-obsolete.xml.in.h:36 msgid "Labialized voiced palato-alveolar fricative" msgstr "Огублений дзвінкий заясенний фрикативний" #: ../data/ipa-obsolete.xml.in.h:37 ../data/ipa.xml.in.h:128 msgid "Voiced alveopalatal fricative" msgstr "Дзвінкий заясенний фрикативний" #: ../data/ipa-obsolete.xml.in.h:38 ../data/ipa.xml.in.h:106 msgid "Near-close near-back vowel" msgstr "Ненапружений огублений голосний заднього ряду високого піднесення" #: ../data/ipa-obsolete.xml.in.h:39 ../data/ipa.xml.in.h:140 msgid "Alveolar lateral click" msgstr "Ясенний боковий клацальний" #: ../data/ipa-obsolete.xml.in.h:40 msgid "Labialized voiceless alveolar or dental fricative" msgstr "Огублений глухий ясенний або зубний фрикативний" #: ../data/ipa-obsolete.xml.in.h:41 msgid "Labialized voiced alveolar or dental fricative" msgstr "Огублений дзвінкий ясенний або зубний фрикативний" #: ../data/ipa-obsolete.xml.in.h:42 msgid "Combining labialization mark" msgstr "Комбінована позначка огублення" #: ../data/ipa-obsolete.xml.in.h:43 msgid "Combining palatalization mark" msgstr "Комбінована позначка палатизації" #. "IPA" stands for "International Phonetic Alphabet" #: ../data/ipa-unofficial.xml.in.h:2 msgid "IPA (Unofficial)" msgstr "IPA (Неофіційна версія)" #: ../data/ipa-unofficial.xml.in.h:3 msgid "Voiced labiodental plosive" msgstr "Дзвінкий губно-зубний проривний" #: ../data/ipa-unofficial.xml.in.h:4 ../data/ipa.xml.in.h:18 msgid "Voiceless palatal lateral affricate" msgstr "Глухий твердопіднебінний бічний африкативний" #: ../data/ipa-unofficial.xml.in.h:5 msgid "Voiced retroflex implosive" msgstr "Дзвінкий ретрофлексний вибуховий" #: ../data/ipa-unofficial.xml.in.h:6 ../data/ipa.xml.in.h:88 msgid "Alveolar flap" msgstr "Ясенний одноударний приголосний" #: ../data/ipa-unofficial.xml.in.h:7 ../data/ipa.xml.in.h:125 msgid "Voiceless palatal lateral fricative" msgstr "Глухий твердопіднебінний латеральний фрикативний" #: ../data/ipa-unofficial.xml.in.h:8 ../data/ipa.xml.in.h:91 msgid "Retroflex flap" msgstr "Ретрофлексний одноударний" #: ../data/ipa-unofficial.xml.in.h:9 msgid "Voiceless retroflex lateral fricative" msgstr "Глухий ретрофлексний латеральний фрикативний" #. "PUA" stands for "Private Use Area" #: ../data/ipa-unofficial.xml.in.h:11 msgid "Voiceless retroflex lateral fricative (PUA)" msgstr "Глухий ретрофлексний латеральний фрикативний (PUA)" #: ../data/ipa-unofficial.xml.in.h:12 ../data/ipa.xml.in.h:59 msgid "Voiceless velar lateral affricate" msgstr "Глухий задньопіднебінний латеральний фрикативний" #: ../data/ipa-unofficial.xml.in.h:13 ../data/ipa.xml.in.h:68 msgid "Voiceless velar lateral fricative" msgstr "Глухий задньопіднебінний латеральний фрикативний" #: ../data/ipa-unofficial.xml.in.h:14 msgid "Epiglottal trill" msgstr "Епігортанний дрижачий" #: ../data/ipa-unofficial.xml.in.h:15 msgid "Voiceless labiodental plosive" msgstr "Глухий губно-зубний проривний" #: ../data/ipa-unofficial.xml.in.h:16 msgid "Voiceless retroflex lateral affricate" msgstr "Глухий ретрофлексний бічний африкативний" #. "PUA" stands for "Private Use Area" #: ../data/ipa-unofficial.xml.in.h:18 msgid "Voiceless retroflex lateral affricate (PUA)" msgstr "Глухий ретрофлексний бічний африкативний (PUA)" #: ../data/ipa-unofficial.xml.in.h:19 msgid "Combining stridency mark" msgstr "Комбінована позначка різкості" #. "PUA" stands for "Private Use Area" #: ../data/ipa-unofficial.xml.in.h:21 msgid "Combining stridency mark (PUA)" msgstr "Комбінована позначка різкості (PUA)" #. "IPA" stands for "International Phonetic Alphabet" #: ../data/ipa.xml.in.h:2 msgid "IPA" msgstr "IPA" #: ../data/ipa.xml.in.h:3 msgid "Open front unrounded vowel" msgstr "Неогублений голосний переднього ряду низького піднесення" #: ../data/ipa.xml.in.h:4 msgid "Open central unrounded vowel" msgstr "Неогублений голосний центрального ряду низького піднесення" #: ../data/ipa.xml.in.h:5 msgid "Near-open central vowel" msgstr "Ненапружений голосний середнього ряду низького піднесення" #: ../data/ipa.xml.in.h:7 msgid "Open back rounded vowel" msgstr "Огублений голосний заднього ряду низького піднесення" #: ../data/ipa.xml.in.h:8 msgid "Open-mid back unrounded vowel" msgstr "Огублений голосний заднього ряду високо-середнього піднесення" #: ../data/ipa.xml.in.h:9 msgid "Near-open front unrounded vowel" msgstr "Майже неогублений голосний переднього ряду низького піднесення" #: ../data/ipa.xml.in.h:10 msgid "Voiced bilabial plosive" msgstr "Дзвінкий губно-губний проривний" #: ../data/ipa.xml.in.h:11 msgid "Voiced labiodental affricate" msgstr "Дзвінкий губно-зубний африкативний" #: ../data/ipa.xml.in.h:12 msgid "Voiced bilabial implosive" msgstr "Дзвінкий губно-губний імплозивний" #: ../data/ipa.xml.in.h:13 msgid "Bilabial trill" msgstr "Двогубий дрижачий приголосний" #: ../data/ipa.xml.in.h:14 msgid "Voiced bilabial fricative" msgstr "Дзвінкий губно-губний фрикативний" #: ../data/ipa.xml.in.h:15 msgid "Voiceless palatal plosive" msgstr "Глухий твердопіднебінний проривний" #: ../data/ipa.xml.in.h:16 msgid "Voiceless palatal fricative" msgstr "Глухий твердопіднебінний фрикативний" #: ../data/ipa.xml.in.h:17 msgid "Voiceless palatal affricate" msgstr "Глухий твердопіднебінний африкативний" #: ../data/ipa.xml.in.h:20 msgid "Voiced alveolar plosive" msgstr "Дзвінкий альвеолярний проривний" #: ../data/ipa.xml.in.h:21 msgid "Voiced alveolar implosive" msgstr "Дзвінкий ясенний вибуховий" #: ../data/ipa.xml.in.h:22 msgid "Voiced retroflex plosive" msgstr "Дзвінкий ретрофлексний проривний" #: ../data/ipa.xml.in.h:23 msgid "Voiced dental fricative" msgstr "Дзвінкий зубний фрикативний" #: ../data/ipa.xml.in.h:24 msgid "Voiced alveolar lateral affricate" msgstr "Дзвінкий ясенний латеральний африкативний" #: ../data/ipa.xml.in.h:28 msgid "Voiced retroflex affricate" msgstr "Дзвінкий ретрофлексний африкативний" #: ../data/ipa.xml.in.h:29 msgid "Close-mid front unrounded vowel" msgstr "Неогублений голосний переднього ряду високо-середнього піднесення" #: ../data/ipa.xml.in.h:30 msgid "Close-mid central unrounded vowel" msgstr "Неогублений голосний середнього ряду високо-середнього піднесення" #: ../data/ipa.xml.in.h:31 msgid "Mid-central vowel" msgstr "Нейтральний голосний" #: ../data/ipa.xml.in.h:32 msgid "Rhotacized mid-central vowel" msgstr "Ротацизований нейтральний голосний" #: ../data/ipa.xml.in.h:33 msgid "Open-mid front unrounded vowel" msgstr "Неогублено-середній голосний переднього ряду низького піднесення" #: ../data/ipa.xml.in.h:34 msgid "Open-mid central rounded vowel" msgstr "Огублений голосний середнього ряду низько-середнього піднесення" #: ../data/ipa.xml.in.h:35 msgid "Open-mid central unrounded vowel" msgstr "Неогублений голосний середньо-центрального ряду низького піднесення" #: ../data/ipa.xml.in.h:36 msgid "Rhotacized open-mid central unrounded vowel" msgstr "" "Ротацизований неогублений голосний середньо-центрального ряду низького " "піднесення" #: ../data/ipa.xml.in.h:37 msgid "Voiceless labiodental fricative" msgstr "Глухий губно-зубний фрикативний" #: ../data/ipa.xml.in.h:38 msgid "Velopharyngeal fricative" msgstr "Велофарингіальний фрикативний" #: ../data/ipa.xml.in.h:39 msgid "Voiced velar plosive" msgstr "Дзвінкий задньопіднебінний проривний" #: ../data/ipa.xml.in.h:40 msgid "Voiced labial-velar plosive" msgstr "Дзвінкий губно-задньопіднебінний проривний" #: ../data/ipa.xml.in.h:41 msgid "Voiced velar implosive" msgstr "Дзвінкий задньопіднебінний вибуховий" #: ../data/ipa.xml.in.h:42 msgid "Voiced uvular plosive" msgstr "Дзвінкий язичковий проривний" #: ../data/ipa.xml.in.h:43 msgid "Voiced uvular implosive" msgstr "Дзвінкий язичковий вибуховий" #: ../data/ipa.xml.in.h:44 msgid "Voiceless glottal fricative" msgstr "Глухий гортанний фрикативний" #: ../data/ipa.xml.in.h:45 msgid "Voiced glottal fricative" msgstr "Дзвінкий гортанний фрикативний" #: ../data/ipa.xml.in.h:46 msgid "Voiceless pharyngeal fricative" msgstr "Глухий глотковий фрикативний" #: ../data/ipa.xml.in.h:47 msgid "Voiceless coarticulated velar and palato-alveolar fricative" msgstr "Глухий співартикульований задньопіднебінний і заясенний фрикативний" #: ../data/ipa.xml.in.h:48 msgid "Voiceless epiglottal fricative" msgstr "Глухий епігортанний фрикативний" #: ../data/ipa.xml.in.h:49 msgid "Close front unrounded vowel" msgstr "Неогублений голосний переднього ряду високого піднесення" #: ../data/ipa.xml.in.h:50 msgid "Near-close near-front unrounded vowel" msgstr "Майже неогублений голосний майже переднього ряду високого піднесення" #: ../data/ipa.xml.in.h:51 msgid "Near-close central unrounded vowel" msgstr "Майже неогублений голосний середнього ряду високого піднесення" #: ../data/ipa.xml.in.h:52 msgid "Close central unrounded vowel" msgstr "Неогублений голосний середнього ряду високого піднесення" #: ../data/ipa.xml.in.h:53 msgid "Palatal approximant" msgstr "Твердопіднебінний апроксимант" #: ../data/ipa.xml.in.h:54 msgid "Voiced palatal fricative" msgstr "Дзвінкий твердопіднебінний фрикативний" #: ../data/ipa.xml.in.h:55 msgid "Voiced palatal plosive" msgstr "Дзвінкий твердопіднебінний проривний" #: ../data/ipa.xml.in.h:56 msgid "Voiced palatal affricate" msgstr "Дзвінкий твердопіднебінний африкативний" #: ../data/ipa.xml.in.h:57 msgid "Voiced palatal implosive" msgstr "Дзвінкий твердопіднебінний вибуховий" #: ../data/ipa.xml.in.h:58 msgid "Voiceless velar plosive" msgstr "Глухий задньопіднебінний проривний" #: ../data/ipa.xml.in.h:60 msgid "Voiceless labial-velar plosive" msgstr "Глухий губно-задньопіднебінний проривний" #: ../data/ipa.xml.in.h:61 msgid "Voiceless velar affricate" msgstr "Глухий задньопіднебінний фрикативний" #: ../data/ipa.xml.in.h:62 msgid "Alveolar lateral approximant" msgstr "Ясенний боковий апроксимант" #: ../data/ipa.xml.in.h:63 msgid "Velarized alveolar lateral approximant" msgstr "Веляризований ясенний боковий апроксимант" #: ../data/ipa.xml.in.h:64 msgid "Voiceless alveolar lateral fricative" msgstr "Глухий ясенний латеральний фрикативний" #: ../data/ipa.xml.in.h:65 msgid "Retroflex lateral approximant" msgstr "Ретрофлексний латеральний апроксимант" #: ../data/ipa.xml.in.h:66 msgid "Voiced alveolar lateral fricative" msgstr "Дзвінкий ясенний латеральний фрикативний" #: ../data/ipa.xml.in.h:67 msgid "Velar lateral approximant" msgstr "М’якопіднебінний боковий апроксимант" #: ../data/ipa.xml.in.h:69 msgid "Bilabial nasal" msgstr "Двогубий носовий приголосний" #: ../data/ipa.xml.in.h:70 msgid "Labiodental nasal" msgstr "Губно-зубний носовий" #: ../data/ipa.xml.in.h:71 msgid "Alveolar nasal" msgstr "Ясенний носовий" #: ../data/ipa.xml.in.h:72 msgid "Velar nasal" msgstr "Задньопіднебінний носовий" #: ../data/ipa.xml.in.h:73 msgid "Labial-velar nasal" msgstr "Губно-задньопіднебінний носовий" #: ../data/ipa.xml.in.h:74 msgid "Palatal nasal" msgstr "Твердопіднебінний носовий" #: ../data/ipa.xml.in.h:75 msgid "Retroflex nasal" msgstr "Ретрофлексний носовий" #: ../data/ipa.xml.in.h:76 msgid "Uvular nasal" msgstr "Язичковий носовий" #: ../data/ipa.xml.in.h:77 msgid "Close-mid back rounded vowel" msgstr "Огублений голосний заднього ряду високо-середнього піднесення" #: ../data/ipa.xml.in.h:78 msgid "Close-mid front rounded vowel" msgstr "Огублений голосний переднього ряду високо-середнього піднесення" #: ../data/ipa.xml.in.h:79 msgid "Close-mid central rounded vowel" msgstr "Огублений голосний середнього ряду високо-середнього піднесення" #: ../data/ipa.xml.in.h:80 msgid "Open-mid front rounded vowel" msgstr "Огублений голосний переднього ряду низько-середнього піднесення" #: ../data/ipa.xml.in.h:81 msgid "Open front rounded vowel" msgstr "Огублений голосний переднього ряду низького піднесення" #: ../data/ipa.xml.in.h:82 msgid "Voiceless bilabial plosive" msgstr "Глухий губно-губний проривний" #: ../data/ipa.xml.in.h:83 msgid "Voiceless bilabial-labiodental affricate" msgstr "Глухий двогубно-губно-зубний африкативний" #: ../data/ipa.xml.in.h:84 msgid "Voiceless bilabial affricate" msgstr "Глухий губно-губний фрикативний" #: ../data/ipa.xml.in.h:85 msgid "Voiceless labiodental affricate" msgstr "Глухий губно-зубний африкативний" #: ../data/ipa.xml.in.h:86 msgid "Voiceless uvular plosive" msgstr "Глухий язичковий проривний" #: ../data/ipa.xml.in.h:87 msgid "Alveolar trill" msgstr "Ясенний дрижачий приголосний" #: ../data/ipa.xml.in.h:89 msgid "Alveolar lateral flap" msgstr "Ясенний боковий одноударний приголосний" #: ../data/ipa.xml.in.h:90 msgid "Uvular trill" msgstr "Язичковий дрижачий" #: ../data/ipa.xml.in.h:92 msgid "Alveolar approximant" msgstr "Ясенний апроксимант" #: ../data/ipa.xml.in.h:93 msgid "Retroflex approximant" msgstr "Ретрофлексний апроксимант" #: ../data/ipa.xml.in.h:94 msgid "Voiced uvular fricative" msgstr "Дзвінкий язичковий фрикативний" #: ../data/ipa.xml.in.h:95 msgid "Voiceless alveolar fricative" msgstr "Глухий ясенний фрикативний" #: ../data/ipa.xml.in.h:96 msgid "Voiceless palato-alveolar fricative" msgstr "Глухий заясенний фрикативний" #: ../data/ipa.xml.in.h:97 msgid "Voiceless retroflex fricative" msgstr "Глухий ретрофлексний фрикативний" #: ../data/ipa.xml.in.h:98 msgid "Voiceless alveolar plosive" msgstr "Глухий альвеолярний проривний" #: ../data/ipa.xml.in.h:99 msgid "Voiceless retroflex plosive" msgstr "Глухий ретрофлексний проривний" #: ../data/ipa.xml.in.h:100 msgid "Voiceless alveolar lateral affricate" msgstr "Глухий ясенний латеральний африкативний" #: ../data/ipa.xml.in.h:104 msgid "Voiceless retroflex affricate" msgstr "Глухий ретрофлексний африкативний" #: ../data/ipa.xml.in.h:105 msgid "Close back rounded vowel" msgstr "Огублений голосний заднього ряду високого піднесення" #: ../data/ipa.xml.in.h:107 msgid "Near-close central vowel" msgstr "Ненапружений голосний середнього ряду" #: ../data/ipa.xml.in.h:108 msgid "Close central rounded vowel" msgstr "Огублений голосний середнього ряду високого піднесення" #: ../data/ipa.xml.in.h:109 msgid "Labial-palatal approximant" msgstr "Губно-твердопіднебінний апроксимант" #: ../data/ipa.xml.in.h:110 msgid "Close back unrounded vowel" msgstr "Неогублений голосний заднього ряду високого піднесення" #: ../data/ipa.xml.in.h:111 msgid "Voiced labiodental fricative" msgstr "Дзвінкий губно-зубний фрикативний" #: ../data/ipa.xml.in.h:112 msgid "Labiodental flap" msgstr "Губно-зубне плескання" #: ../data/ipa.xml.in.h:113 msgid "Labiodental approximant" msgstr "Губно-зубний апроксимант" #: ../data/ipa.xml.in.h:114 msgid "Voiced velar fricative" msgstr "Дзвінкий задньопіднебінний фрикативний" #: ../data/ipa.xml.in.h:115 msgid "Close-mid back unrounded vowel" msgstr "Неогублений голосний заднього ряду високо-середнього піднесення" #: ../data/ipa.xml.in.h:116 msgid "Voiced labiovelar approximant" msgstr "Дзвінкий губно-задньопіднебінний апроксимант" #: ../data/ipa.xml.in.h:117 msgid "Voiceless labiovelar approximant" msgstr "Глухий губно-задньопіднебінний апроксимант" #: ../data/ipa.xml.in.h:118 msgid "Velar approximant" msgstr "Задньопіднебінний апроксимант" #: ../data/ipa.xml.in.h:119 msgid "Bilabial percussive" msgstr "Двогубий ударний" #: ../data/ipa.xml.in.h:120 msgid "Voiceless velar fricative" msgstr "Глухий задньопіднебінний фрикативний" #: ../data/ipa.xml.in.h:121 msgid "Voiceless uvular fricative" msgstr "Глухий язичковий фрикативний" #: ../data/ipa.xml.in.h:122 msgid "Close front rounded vowel" msgstr "Огублений голосний переднього ряду високого піднесення" #: ../data/ipa.xml.in.h:123 msgid "Near-close near-front rounded vowel" msgstr "Ненапружений огублений голосний переднього ряду високого піднесення" #: ../data/ipa.xml.in.h:124 msgid "Palatal lateral approximant" msgstr "Твердопіднебінний латеральний апроксимант" #: ../data/ipa.xml.in.h:126 msgid "Voiced alveolar fricative" msgstr "Дзвінкий ясенний фрикативний" #: ../data/ipa.xml.in.h:127 msgid "Voiced palato-alveolar fricative" msgstr "Дзвінкий заясенний фрикативний" #: ../data/ipa.xml.in.h:129 msgid "Voiced retroflex fricative" msgstr "Дзвінкий ретрофлексний фрикативний" #: ../data/ipa.xml.in.h:130 msgid "Voiceless dental fricative" msgstr "Глухий зубний фрикативний" #: ../data/ipa.xml.in.h:131 msgid "Voiceless bilabial fricative" msgstr "Глухий губно-губний фрикативний" #: ../data/ipa.xml.in.h:132 msgid "Glottal stop" msgstr "Гортанне зімкнення" #: ../data/ipa.xml.in.h:133 msgid "Epiglottal plosive" msgstr "Епігортанний проривний" #: ../data/ipa.xml.in.h:134 msgid "Voiced pharyngeal fricative" msgstr "Дзвінкий глотковий фрикативний" #: ../data/ipa.xml.in.h:135 msgid "Voiced epiglottal fricative" msgstr "Дзвінкий епігортанний фрикативний" #: ../data/ipa.xml.in.h:136 msgid "Bilabial click" msgstr "Губно-губне клацальний" #: ../data/ipa.xml.in.h:139 msgid "Palatal click" msgstr "Палатальний клацальний" #: ../data/ipa.xml.in.h:141 msgid "Bidental percussive" msgstr "Двозубий ударний" #: ../data/ipa.xml.in.h:142 msgid "Aspiration mark" msgstr "Позначка придихання" #: ../data/ipa.xml.in.h:143 msgid "Non-aspiration mark" msgstr "Позначка відсутності придихання" #: ../data/ipa.xml.in.h:144 msgid "Breathy voice mark" msgstr "Позначка хрипкої вимови" #: ../data/ipa.xml.in.h:145 msgid "Palatalization mark" msgstr "Позначка палатизації" #: ../data/ipa.xml.in.h:146 msgid "Lateral release mark" msgstr "Позначка бічного видиху" #: ../data/ipa.xml.in.h:147 msgid "Bilabial nasal release mark" msgstr "Позначка двогубого носового видиху" #: ../data/ipa.xml.in.h:148 msgid "Labiodental nasal release mark" msgstr "Позначка губно-зубного носового видиху" #: ../data/ipa.xml.in.h:149 msgid "Alveolar nasal release mark" msgstr "Позначка ясенного носового видиху" #: ../data/ipa.xml.in.h:150 msgid "Palatal nasal release mark" msgstr "Позначка палатального носового видиху" #: ../data/ipa.xml.in.h:151 msgid "Retroflex nasal release mark" msgstr "Позначка ретрофлексного носового видиху" #: ../data/ipa.xml.in.h:152 msgid "Uvular nasal release mark" msgstr "Позначка язичкового носового видиху" #: ../data/ipa.xml.in.h:153 msgid "Labio-palatalization mark" msgstr "Позначка губо-палатизації" #: ../data/ipa.xml.in.h:154 msgid "Labiodentalization mark" msgstr "Позначка губо-денталізації" #: ../data/ipa.xml.in.h:155 msgid "Labialization mark" msgstr "Позначка огублення" #: ../data/ipa.xml.in.h:156 msgid "Velarization mark" msgstr "Позначка веляризації" #: ../data/ipa.xml.in.h:157 msgid "Glottalization mark" msgstr "Позначка глоталізації" #: ../data/ipa.xml.in.h:158 msgid "Pharyngealization mark" msgstr "Позначка фаринголізації" #: ../data/ipa.xml.in.h:159 msgid "Combining velarization/pharyngealization mark" msgstr "Комбінована позначка веляризації/фарингалізації" #: ../data/ipa.xml.in.h:160 msgid "Combining laryngealization mark" msgstr "Комбінована позначка ларингалізації" #: ../data/ipa.xml.in.h:161 msgid "Combining retroflexion mark" msgstr "Комбінована позначка ретрофлексії" #: ../data/ipa.xml.in.h:162 msgid "Ejection mark" msgstr "Позначка виштовхування" #: ../data/ipa.xml.in.h:163 msgid "Rhotacization mark" msgstr "Позначка ротацизації" #: ../data/ipa.xml.in.h:164 msgid "Combining dentalization mark" msgstr "Комбінована позначка денталізації" #: ../data/ipa.xml.in.h:165 msgid "Combining dentolabialization mark" msgstr "Комбінована позначка зубо-огублення" #: ../data/ipa.xml.in.h:166 msgid "Combining alveolarization mark" msgstr "Комбінована позначка альвеоляризації" #: ../data/ipa.xml.in.h:167 msgid "Combining linguolabialization mark" msgstr "Комбінована позначка язико-огублення" #: ../data/ipa.xml.in.h:168 msgid "Combining apicalization mark" msgstr "Комбінована позначка апікалізації" #: ../data/ipa.xml.in.h:169 msgid "Combining laminalization mark" msgstr "Комбінована позначка ламіналізації" #: ../data/ipa.xml.in.h:170 msgid "Combining centralization mark" msgstr "Комбінована позначка централізації" #: ../data/ipa.xml.in.h:171 msgid "Combining mid-centralization mark" msgstr "Комбінована позначка середньо-централізації" #: ../data/ipa.xml.in.h:172 msgid "Combining nasalization mark" msgstr "Комбінована позначка назалізації" #: ../data/ipa.xml.in.h:173 msgid "Combining nasalization mark below" msgstr "Комбінована підрядкова позначка назалізації" #: ../data/ipa.xml.in.h:174 msgid "Combining denasalization mark" msgstr "Комбінована позначка деназалізації" #: ../data/ipa.xml.in.h:175 msgid "Combining nasal friction mark" msgstr "Комбінована позначка носової фрикції" #: ../data/ipa.xml.in.h:176 msgid "Combining velopharyngeal friction mark" msgstr "Комбінована позначка велофарингіальної фрикції" #: ../data/ipa.xml.in.h:177 msgid "Combining voiced mark" msgstr "Комбінована позначка дзвінкості" #: ../data/ipa.xml.in.h:178 msgid "Combining voiceless mark" msgstr "Комбінована позначка глухості" #: ../data/ipa.xml.in.h:179 msgid "Combining voiceless mark above" msgstr "Комбінована надрядкова позначка глухості" #: ../data/ipa.xml.in.h:180 msgid "Pre-voicing/post-voicing mark" msgstr "Позначка перед/післявиголошення" #: ../data/ipa.xml.in.h:181 msgid "Combining breathy voice mark" msgstr "Комбінована позначка хрипкої вимови" #: ../data/ipa.xml.in.h:182 msgid "Combining unreleased stop mark" msgstr "Комбінована позначка зупинки без видиху" #: ../data/ipa.xml.in.h:183 msgid "Combining more rounded mark" msgstr "Комбінована позначка більшої округлості" #: ../data/ipa.xml.in.h:184 msgid "Combining less rounded mark" msgstr "Комбінована позначка меншої округлості" #: ../data/ipa.xml.in.h:185 msgid "Combining labial spreading mark" msgstr "Комбінована позначка розкриття губ" #: ../data/ipa.xml.in.h:186 msgid "Combining syllabic mark" msgstr "Комбінована позначка складу" #: ../data/ipa.xml.in.h:187 msgid "Combining syllabic mark above" msgstr "Комбінована надрядкова позначка складу" #: ../data/ipa.xml.in.h:188 msgid "Combining non-syllabic mark" msgstr "Комбінована позначка нескладовості" #: ../data/ipa.xml.in.h:189 msgid "Combining non-syllabic mark above" msgstr "Комбінована верхня позначка нескладовості" #: ../data/ipa.xml.in.h:190 msgid "Combining top tone mark" msgstr "Комбінована позначка високого тону" #: ../data/ipa.xml.in.h:191 msgid "Combining high tone mark" msgstr "Комбінована позначка підвищеного тону" #: ../data/ipa.xml.in.h:192 msgid "Combining mid tone mark" msgstr "Комбінована позначка середнього тону" #: ../data/ipa.xml.in.h:193 msgid "Combining low tone mark" msgstr "Комбінована позначка низького тону" #: ../data/ipa.xml.in.h:194 msgid "Combining bottom tone mark" msgstr "Комбінована позначка зниженого тону" #: ../data/ipa.xml.in.h:195 msgid "Combining falling tone mark" msgstr "Комбінована позначка спадання тону" #: ../data/ipa.xml.in.h:196 msgid "Combining high falling tone mark" msgstr "Комбінована позначка значного спадання тону" #: ../data/ipa.xml.in.h:197 msgid "Combining low falling tone mark" msgstr "Комбінована позначка незначного спадання тону" #: ../data/ipa.xml.in.h:198 msgid "Combining rising tone mark" msgstr "Комбінована позначка підвищення тону" #: ../data/ipa.xml.in.h:199 msgid "Combining high rising tone mark" msgstr "Комбінована позначка значного підвищення тону" #: ../data/ipa.xml.in.h:200 msgid "Combining low rising tone mark" msgstr "Поєднальна позначка незначного підвищення тону" #: ../data/ipa.xml.in.h:201 msgid "Combining dipping tone mark" msgstr "Комбінована позначка зниження тону" #: ../data/ipa.xml.in.h:202 msgid "Combining peaking tone mark" msgstr "Комбінована позначка пікового тону" #: ../data/ipa.xml.in.h:203 msgid "Top tone letter" msgstr "Літера найвищого тону" #: ../data/ipa.xml.in.h:204 msgid "High tone letter" msgstr "Літера з підвищеним тоном" #: ../data/ipa.xml.in.h:205 msgid "Mid tone letter" msgstr "Літера з середнім тоном" #: ../data/ipa.xml.in.h:206 msgid "Low tone letter" msgstr "Літера з пониженим тоном" #: ../data/ipa.xml.in.h:207 msgid "Bottom tone letter" msgstr "Літера нижнього тону" #: ../data/ipa.xml.in.h:208 msgid "Falling tone digraph" msgstr "Диграма спадного тону" #: ../data/ipa.xml.in.h:209 msgid "High falling tone digraph" msgstr "Диграма значного зниження тону" #: ../data/ipa.xml.in.h:210 msgid "Rising tone digraph" msgstr "Диграма підвищення тону" #: ../data/ipa.xml.in.h:211 msgid "High rising tone digraph" msgstr "Диграма значного підвищення тону" #: ../data/ipa.xml.in.h:212 msgid "Low rising tone digraph" msgstr "Диграма незначного підвищення тону" #: ../data/ipa.xml.in.h:213 msgid "Dipping tone trigraph" msgstr "Триграма зі зниженням тону" #: ../data/ipa.xml.in.h:214 msgid "Peaking tone trigraph" msgstr "Триграма пікового тону" #: ../data/ipa.xml.in.h:215 msgid "Upstep mark" msgstr "Позначка підвищення тону на один крок" #: ../data/ipa.xml.in.h:216 msgid "Downstep mark" msgstr "Позначка зниження тону на один крок" #: ../data/ipa.xml.in.h:217 msgid "Minor break" msgstr "Мала пауза" #: ../data/ipa.xml.in.h:218 msgid "Major break" msgstr "Велика пауза" #: ../data/ipa.xml.in.h:219 msgid "Rising intonation mark" msgstr "Позначка зростання інтонації" #: ../data/ipa.xml.in.h:220 msgid "Falling intonation mark" msgstr "Позначка спадання інтонації" #: ../data/ipa.xml.in.h:221 msgid "Advanced articulation mark" msgstr "Позначка додаткової артикуляції" #: ../data/ipa.xml.in.h:222 msgid "Retracted articulation mark" msgstr "Позначка редукування артикуляції" #: ../data/ipa.xml.in.h:223 msgid "Combining advanced articulation mark" msgstr "Комбінована позначка додаткової артикуляції" #: ../data/ipa.xml.in.h:224 msgid "Combining retracted articulation mark" msgstr "Комбінована позначка редукування артикуляції" #: ../data/ipa.xml.in.h:225 msgid "Raised sound mark" msgstr "Позначка підвищеного тону" #: ../data/ipa.xml.in.h:226 msgid "Lowered sound mark" msgstr "Позначка зниженого тону" #: ../data/ipa.xml.in.h:227 msgid "Combining raised sound mark" msgstr "Комбінована позначка підвищеного звуку" #: ../data/ipa.xml.in.h:228 msgid "Combining lowered sound mark" msgstr "Комбінована позначка зниженого звуку" #: ../data/ipa.xml.in.h:229 msgid "Combining tongue root advancement mark" msgstr "Комбінована позначка висування кореня язика" #: ../data/ipa.xml.in.h:230 msgid "Combining tongue root retraction mark" msgstr "Комбінована позначка втягування кореня язика" #: ../data/ipa.xml.in.h:231 msgid "Combining strong articulation mark" msgstr "Комбінована позначка сильної артикуляції" #: ../data/ipa.xml.in.h:232 msgid "Combining weak articulation mark" msgstr "Комбінована позначка слабкої артикуляції" #: ../data/ipa.xml.in.h:233 msgid "Combining whistled articulation mark" msgstr "Комбінована позначка свистової артикуляції" #: ../data/ipa.xml.in.h:234 msgid "Combining sliding articulation mark" msgstr "Комбінована позначка перенесення артикуляції" #: ../data/ipa.xml.in.h:235 msgid "Egression mark" msgstr "Позначка егресивності" #: ../data/ipa.xml.in.h:236 msgid "Ingression mark" msgstr "Позначка інгресивності" #: ../data/ipa.xml.in.h:237 msgid "Combining ligature tie" msgstr "Комбінований об’єднувач лігатури" #: ../data/ipa.xml.in.h:238 msgid "Combining ligature undertie" msgstr "Комбінований нижній об’єднувач лігатури" #: ../data/ipa.xml.in.h:239 msgid "Elongation mark" msgstr "Позначка подовження" #: ../data/ipa.xml.in.h:240 msgid "Weak elongation mark" msgstr "Позначки слабкої протяжності" #: ../data/ipa.xml.in.h:241 msgid "Combining extra-short duration mark" msgstr "Комбінована позначка надзвичайно короткої тривалості" #: ../data/ipa.xml.in.h:242 msgid "Liaison mark" msgstr "Позначка зв’язку" #: ../data/ipa.xml.in.h:243 msgid "Stress mark" msgstr "Позначка наголосу" #: ../data/ipa.xml.in.h:244 msgid "Weak stress mark" msgstr "Позначка слабкого наголосу" #: ../data/ipa.xml.in.h:245 msgid "Syllable break" msgstr "Кінець складу" #: ../data/ipa.xml.in.h:246 msgid "Opening orthographic bracket" msgstr "Початкова орфографічна дужка" #: ../data/ipa.xml.in.h:247 msgid "Closing orthographic bracket" msgstr "Завершальна орфографічна дужка" #: ../data/ja.xml.in.h:1 msgid "Japanese" msgstr "Японська" #: ../data/ja.xml.in.h:2 ../input-pad/unicode_block.h:136 msgid "Hiragana" msgstr "Хірагана" #: ../data/ja.xml.in.h:3 ../input-pad/unicode_block.h:137 msgid "Katakana" msgstr "Катакана" #: ../data/ja.xml.in.h:4 ../data/zh.xml.in.h:3 msgid "Radicals" msgstr "Радикали" #: ../data/ja.xml.in.h:5 ../input-pad/unicode_block.h:132 msgid "CJK Radicals Supplement" msgstr "Додатки радикалів ієрогліфів" #: ../data/keyboard.xml.in.h:1 msgid "Keyboard" msgstr "Клавіатура" #: ../data/keyboard.xml.in.h:2 msgid "Function Key" msgstr "Функціональна клавіша" #: ../data/keyboard.xml.in.h:3 msgid "Key Pad" msgstr "Бічна панель" #: ../data/latin.xml.in.h:1 msgid "ASCII" msgstr "ASCII" #: ../data/latin.xml.in.h:2 ../input-pad/unicode_block.h:38 msgid "Latin-1 Supplement" msgstr "Додаткові Latin-1" #: ../data/latin.xml.in.h:3 ../input-pad/unicode_block.h:39 msgid "Latin Extended-A" msgstr "Латинь розширена-A" #: ../data/latin.xml.in.h:4 msgid "Old and Middle English" msgstr "Давня та середня англійська" #: ../data/runr.xml.in.h:1 msgid "Runes (Unicode Block)" msgstr "Руни (блок Unicode)" #: ../data/runr.xml.in.h:2 msgid "Runes (Elder Fuþark)" msgstr "Руни (старий футарк)" #: ../data/runr.xml.in.h:3 msgid "Runes (Younger Fuþark)" msgstr "Руни (новий футорк)" #: ../data/runr.xml.in.h:4 msgid "Runes (Fuþorc)" msgstr "Руки (футорк)" #: ../data/shaw.xml.in.h:1 ../input-pad/unicode_block.h:200 msgid "Shavian" msgstr "Шавіан" #: ../data/str.xml.in.h:1 msgid "Chat" msgstr "Балачка" #: ../data/str.xml.in.h:2 msgid "Emoji" msgstr "Emoji" #: ../data/str.xml.in.h:3 msgid "Rain" msgstr "Дощ" #: ../data/str.xml.in.h:4 msgid "Comet" msgstr "Комета" #: ../data/str.xml.in.h:5 msgid "Cross" msgstr "Хрест" #: ../data/str.xml.in.h:6 msgid "Solar" msgstr "Сонце" #: ../data/str.xml.in.h:7 msgid "Mercury" msgstr "Меркурій" #: ../data/str.xml.in.h:8 msgid "Venus" msgstr "Венера" #: ../data/str.xml.in.h:9 msgid "Earth" msgstr "Земля" #: ../data/str.xml.in.h:10 msgid "Mars" msgstr "Марс" #: ../data/str.xml.in.h:11 msgid "Jupiter" msgstr "Юпітер" #: ../data/str.xml.in.h:12 msgid "Saturn" msgstr "Сатурн" #: ../data/str.xml.in.h:13 msgid "Uranus" msgstr "Уран" #: ../data/str.xml.in.h:14 msgid "Neptune" msgstr "Нептун" #: ../data/str.xml.in.h:15 msgid "Pluto" msgstr "Плутон" #: ../data/str.xml.in.h:16 msgid "Aries" msgstr "Овен" #: ../data/str.xml.in.h:17 msgid "Taurus" msgstr "Телець" #: ../data/str.xml.in.h:18 msgid "Gemini" msgstr "Близнюки" #: ../data/str.xml.in.h:19 msgid "Cancer" msgstr "Рак" #: ../data/str.xml.in.h:20 msgid "Leo" msgstr "Лев" #: ../data/str.xml.in.h:21 msgid "Virgo" msgstr "Діва" #: ../data/str.xml.in.h:22 msgid "Libra" msgstr "Терези" #: ../data/str.xml.in.h:23 msgid "Scorpius" msgstr "Скорпіон" #: ../data/str.xml.in.h:24 msgid "Sagittarius" msgstr "Стрілець" #: ../data/str.xml.in.h:25 msgid "Capricorn" msgstr "Козоріг" #: ../data/str.xml.in.h:26 msgid "Aquarius" msgstr "Водолій" #: ../data/str.xml.in.h:27 msgid "Pisces" msgstr "Риби" #: ../data/str.xml.in.h:28 msgid "Dice 1" msgstr "Кістка 1" #: ../data/str.xml.in.h:29 msgid "Dice 2" msgstr "Кістка 2" #: ../data/str.xml.in.h:30 msgid "Dice 3" msgstr "Кістка 3" #: ../data/str.xml.in.h:31 msgid "Dice 4" msgstr "Кістка 4" #: ../data/str.xml.in.h:32 msgid "Dice 5" msgstr "Кістка 5" #: ../data/str.xml.in.h:33 msgid "Dice 6" msgstr "Кістка 6" #: ../data/str.xml.in.h:34 msgid "Anchor" msgstr "Якір" #: ../data/str.xml.in.h:35 msgid "Sword" msgstr "Меч" #: ../data/str.xml.in.h:36 msgid "Scales" msgstr "Ваги" #: ../data/str.xml.in.h:37 msgid "Conversation" msgstr "Спілкування" #: ../data/str.xml.in.h:38 msgid "Warning" msgstr "Попередження" #: ../data/str.xml.in.h:39 msgid "Thunder" msgstr "Грім" #: ../data/str.xml.in.h:40 msgid "Coffin" msgstr "Труна" #: ../data/str.xml.in.h:41 msgid "Gender" msgstr "Стать" #: ../data/str.xml.in.h:42 msgid "Soccer" msgstr "Футбол" #: ../data/str.xml.in.h:43 msgid "Baseball" msgstr "Бейсбол" #: ../data/str.xml.in.h:44 msgid "Snowman" msgstr "Сніговик" #: ../data/str.xml.in.h:45 msgid "Shoji" msgstr "Сьодзі" #: ../data/str.xml.in.h:46 msgid "Maintenance" msgstr "Супровід" #: ../data/str.xml.in.h:47 msgid "Roadblock" msgstr "Блок-пост" #: ../data/str.xml.in.h:48 msgid "No entry" msgstr "Вхід заборонено" #: ../data/str.xml.in.h:49 msgid "Truck" msgstr "Вантажівка" #: ../data/str.xml.in.h:50 msgid "Torii" msgstr "Торіі" #: ../data/str.xml.in.h:51 msgid "Church" msgstr "Церква" #: ../data/str.xml.in.h:52 msgid "Castle" msgstr "Замок" #: ../data/str.xml.in.h:53 msgid "Historic site" msgstr "Історичне місце" #: ../data/str.xml.in.h:54 msgid "Power station" msgstr "Електростанція" #: ../data/str.xml.in.h:55 msgid "Lighthouse" msgstr "Маяк" #: ../data/str.xml.in.h:56 msgid "Mountain" msgstr "Гора" #: ../data/str.xml.in.h:57 msgid "Beach" msgstr "Пляж" #: ../data/str.xml.in.h:58 msgid "Park" msgstr "Парк" #: ../data/str.xml.in.h:59 msgid "Ferry" msgstr "Пором" #: ../data/str.xml.in.h:60 msgid "Sailboat" msgstr "Човен" #: ../data/str.xml.in.h:61 msgid "Ice rink" msgstr "Коток" #: ../data/str.xml.in.h:62 msgid "Scissors" msgstr "Ножиці" #: ../data/str.xml.in.h:63 msgid "Airplane" msgstr "Літак" #: ../data/str.xml.in.h:64 msgid "Clenched Fist" msgstr "Стиснутий кулак" #: ../data/str.xml.in.h:65 msgid "Hand" msgstr "Рука" #: ../data/str.xml.in.h:66 msgid "V Sign" msgstr "Символ перемоги" #: ../data/str.xml.in.h:67 msgid "Writing" msgstr "Записування" #: ../data/str.xml.in.h:68 msgid "Pencil" msgstr "Олівець" #: ../data/str.xml.in.h:69 msgid "Pen" msgstr "Ручка" #: ../data/str.xml.in.h:70 msgid "Star" msgstr "Зірка" #: ../data/str.xml.in.h:71 msgid "Typhoon" msgstr "Тайфун" #: ../data/str.xml.in.h:72 msgid "Fog" msgstr "Туман" #: ../data/str.xml.in.h:73 msgid "Umbrella" msgstr "Парасолька" #: ../data/str.xml.in.h:74 msgid "Night sky" msgstr "Нічне небо" #: ../data/str.xml.in.h:75 msgid "Sunrise" msgstr "Схід сонця" #: ../data/str.xml.in.h:76 msgid "Sunset" msgstr "Захід сонця" #: ../data/str.xml.in.h:77 msgid "Bridge" msgstr "Міст" #: ../data/str.xml.in.h:78 msgid "Wave" msgstr "Хвиля" #: ../data/str.xml.in.h:79 msgid "New Moon" msgstr "Новий місяць" #: ../data/str.xml.in.h:80 msgid "Crescent Moon" msgstr "Молодий місяць" #: ../data/str.xml.in.h:81 msgid "Quarter Moon" msgstr "Перша чверть місяця" #: ../data/str.xml.in.h:82 msgid "Gibbous Moon" msgstr "Горбатий місяць" #: ../data/str.xml.in.h:83 msgid "Full Moon" msgstr "Повний місяць" #: ../data/str.xml.in.h:84 msgid "Moon" msgstr "Місяць" #: ../data/str.xml.in.h:85 msgid "Sun" msgstr "Сонце" #: ../data/str.xml.in.h:86 msgid "Cloud" msgstr "Хмара" #: ../data/str.xml.in.h:87 msgid "Palm" msgstr "Долоня" #: ../data/str.xml.in.h:88 msgid "Hot Pepper" msgstr "Пекучий перець" #: ../data/str.xml.in.h:89 msgid "Flower" msgstr "Квітка" #: ../data/str.xml.in.h:90 msgid "Tulip" msgstr "Тюльпан" #: ../data/str.xml.in.h:91 msgid "Cherry" msgstr "Вишня" #: ../data/str.xml.in.h:92 msgid "Rose" msgstr "Троянда" #: ../data/str.xml.in.h:93 msgid "Hibiscus" msgstr "Гібіскус" #: ../data/str.xml.in.h:94 msgid "Sunflower" msgstr "Соняшник" #: ../data/str.xml.in.h:95 msgid "Blossom" msgstr "Цвітіння" #: ../data/str.xml.in.h:96 msgid "Clover" msgstr "Конюшина" #: ../data/str.xml.in.h:97 msgid "Maple" msgstr "Клен" #: ../data/str.xml.in.h:98 msgid "Fallen Leaf" msgstr "Опалий листок" #: ../data/str.xml.in.h:99 msgid "Leaf" msgstr "Листок" #: ../data/str.xml.in.h:100 msgid "Mushroom" msgstr "Гриб" #: ../data/str.xml.in.h:101 msgid "Tomato" msgstr "Помідор" #: ../data/str.xml.in.h:102 msgid "Eggplant" msgstr "Баклажан" #: ../data/str.xml.in.h:103 msgid "Grape" msgstr "Виноград" #: ../data/str.xml.in.h:104 msgid "Melon" msgstr "Диня" #: ../data/str.xml.in.h:105 msgid "Watermelon" msgstr "Кавун" #: ../data/str.xml.in.h:106 msgid "Tangerine" msgstr "Мандарин" #: ../data/str.xml.in.h:107 msgid "Lemon" msgstr "Лимон" #: ../data/str.xml.in.h:108 msgid "Banana" msgstr "Банан" #: ../data/str.xml.in.h:109 msgid "Pineapple" msgstr "Ананас" #: ../data/str.xml.in.h:110 msgid "Apple" msgstr "Яблуко" #: ../data/str.xml.in.h:111 msgid "Pear" msgstr "Груша" #: ../data/str.xml.in.h:112 msgid "Peach" msgstr "Персик" #: ../data/str.xml.in.h:113 msgid "Strawberry" msgstr "Полуниця" #: ../data/str.xml.in.h:114 msgid "Hamburger" msgstr "Гамбургер" #: ../data/str.xml.in.h:115 msgid "Pizza" msgstr "Піца" #: ../data/str.xml.in.h:116 msgid "Meat" msgstr "М’ясо" #: ../data/str.xml.in.h:117 msgid "Poultry" msgstr "Курятина" #: ../data/str.xml.in.h:118 msgid "Rice Cracker" msgstr "Крекер" #: ../data/str.xml.in.h:119 msgid "Rice Ball" msgstr "Рисова кулька" #: ../data/str.xml.in.h:120 msgid "Rice" msgstr "Рис" #: ../data/str.xml.in.h:121 msgid "Curry" msgstr "Каррі" #: ../data/str.xml.in.h:122 msgid "Ramen" msgstr "Рамен" #: ../data/str.xml.in.h:123 msgid "Spaghetti" msgstr "Спагетті" #: ../data/str.xml.in.h:124 msgid "Bread" msgstr "Хліб" #: ../data/str.xml.in.h:125 msgid "Fried Potato" msgstr "Смажена картопля" #: ../data/str.xml.in.h:126 msgid "Roasted Sweet Potato" msgstr "Смажена солодка картопля" #: ../data/str.xml.in.h:127 msgid "Dango" msgstr "Данґо" #: ../data/str.xml.in.h:128 msgid "Oden" msgstr "Оден" #: ../data/str.xml.in.h:129 msgid "Sushi" msgstr "Суші" #: ../data/str.xml.in.h:130 msgid "Fried Shrimp" msgstr "Смажена креветка" #: ../data/str.xml.in.h:131 msgid "Fish Cake" msgstr "Рибне печиво" #: ../data/str.xml.in.h:132 msgid "Soft Ice Cream" msgstr "М’яке морозиво" #: ../data/str.xml.in.h:133 msgid "Shaved Ice" msgstr "Тертий лід" #: ../data/str.xml.in.h:134 msgid "Ice Cream" msgstr "Морозиво" #: ../data/str.xml.in.h:135 msgid "Doughnut" msgstr "Пончик" #: ../data/str.xml.in.h:136 msgid "Cookie" msgstr "Печиво" #: ../data/str.xml.in.h:137 msgid "Chocolate" msgstr "Шоколад" #: ../data/str.xml.in.h:138 msgid "Candy" msgstr "Цукерка" #: ../data/str.xml.in.h:139 msgid "Custard" msgstr "Солодкий крем" #: ../data/str.xml.in.h:140 msgid "Honey" msgstr "Мед" #: ../data/str.xml.in.h:141 msgid "Shortcake" msgstr "Пісочний коржик" #: ../data/str.xml.in.h:142 msgid "Bento" msgstr "Бенто" #: ../data/str.xml.in.h:143 msgid "Pot of Food" msgstr "Казанок із їжею" #: ../data/str.xml.in.h:144 msgid "Cooking" msgstr "Куховарення" #: ../data/str.xml.in.h:145 msgid "Meal" msgstr "Їжа" #: ../data/str.xml.in.h:146 msgid "Cup" msgstr "Чашка" #: ../data/str.xml.in.h:147 msgid "Sake" msgstr "Саке" #: ../data/str.xml.in.h:148 msgid "Wine" msgstr "Вино" #: ../data/str.xml.in.h:149 msgid "Cocktail" msgstr "Коктель" #: ../data/str.xml.in.h:150 msgid "Drink" msgstr "Напій" #: ../data/str.xml.in.h:151 msgid "Beer" msgstr "Пиво" #: ../data/str.xml.in.h:152 msgid "Cheers" msgstr "Тост" #: ../data/str.xml.in.h:153 msgid "Baby Bottle" msgstr "Мала пляшечка" #: ../data/str.xml.in.h:154 msgid "Ribbon" msgstr "Стрічка" #: ../data/str.xml.in.h:155 msgid "Present" msgstr "Подарунок" #: ../data/str.xml.in.h:156 msgid "Cake" msgstr "Торт" #: ../data/str.xml.in.h:157 msgid "Hallowe'en" msgstr "Геловін" #: ../data/str.xml.in.h:158 msgid "Christmas" msgstr "Різдво" #: ../data/str.xml.in.h:159 msgid "Piano" msgstr "Піаніно" #: ../data/str.xml.in.h:160 msgid "Microphone" msgstr "Мікрофон" #: ../data/str.xml.in.h:161 msgid "Headphone" msgstr "Навушники" #: ../data/str.xml.in.h:162 msgid "Hat" msgstr "Капелюх" #: ../data/str.xml.in.h:163 msgid "Musical Note" msgstr "Музична нота" #: ../data/str.xml.in.h:164 msgid "Saxophone" msgstr "Саксофон" #: ../data/str.xml.in.h:165 msgid "Guiter" msgstr "Кітара" #: ../data/str.xml.in.h:166 msgid "Trumpet" msgstr "Труба" #: ../data/str.xml.in.h:167 msgid "Violin" msgstr "Скрипка" #: ../data/str.xml.in.h:168 msgid "Musical Score" msgstr "Нотний стан" #: ../data/str.xml.in.h:169 msgid "Tennis" msgstr "Теніс" #: ../data/str.xml.in.h:170 msgid "Ski" msgstr "Лижі" #: ../data/str.xml.in.h:171 msgid "Basketball" msgstr "Баскетбол" #: ../data/str.xml.in.h:172 msgid "Flag" msgstr "Прапор" #: ../data/str.xml.in.h:173 msgid "Show Board" msgstr "Сноубордінґ" #: ../data/str.xml.in.h:174 msgid "Running" msgstr "Бігун" #: ../data/str.xml.in.h:175 msgid "Surfer" msgstr "Катання на дошці" #: ../data/str.xml.in.h:176 msgid "Medal" msgstr "Медаль " #: ../data/str.xml.in.h:177 msgid "Trophy" msgstr "Трофей" #: ../data/str.xml.in.h:178 msgid "Horse Racing" msgstr "Кінний спорт" #: ../data/str.xml.in.h:179 msgid "American Football" msgstr "Американський футбол" #: ../data/str.xml.in.h:180 msgid "Rugby" msgstr "Регбі" #: ../data/str.xml.in.h:181 msgid "Swimmer" msgstr "Плавання" #: ../data/str.xml.in.h:182 msgid "Weight Lifting" msgstr "Важка атлетика" #: ../data/str.xml.in.h:183 msgid "Golf" msgstr "Гольф" #: ../data/str.xml.in.h:184 msgid "Motorcycle" msgstr "Мотоцикл" #: ../data/str.xml.in.h:185 msgid "Race" msgstr "Перегони" #: ../data/str.xml.in.h:186 msgid "House" msgstr "Дім" #: ../data/str.xml.in.h:187 msgid "Office" msgstr "Офіс" #: ../data/str.xml.in.h:188 msgid "Hospital" msgstr "Лікарня" #: ../data/str.xml.in.h:189 msgid "Bank" msgstr "Банк" #: ../data/str.xml.in.h:190 msgid "Hotel" msgstr "Готель" #: ../data/str.xml.in.h:191 msgid "School" msgstr "Школа" #: ../data/str.xml.in.h:192 msgid "Factory" msgstr "Фабрика" #: ../data/str.xml.in.h:193 msgid "Rat" msgstr "Щур" #: ../data/str.xml.in.h:194 msgid "Mouse" msgstr "Миша" #: ../data/str.xml.in.h:195 msgid "Cow" msgstr "Корова" #: ../data/str.xml.in.h:196 msgid "Tiger" msgstr "Тигр" #: ../data/str.xml.in.h:197 msgid "Leopard" msgstr "Леопард" #: ../data/str.xml.in.h:198 msgid "Rabbit" msgstr "Кролик" #: ../data/str.xml.in.h:199 msgid "Cat" msgstr "Кіт" #: ../data/str.xml.in.h:200 msgid "Dragon" msgstr "Дракон" #: ../data/str.xml.in.h:201 msgid "Crocodile" msgstr "Крокодил" #: ../data/str.xml.in.h:202 msgid "Whale" msgstr "Кит" #: ../data/str.xml.in.h:203 msgid "Snail" msgstr "Слимак" #: ../data/str.xml.in.h:204 msgid "Snake" msgstr "Змія" #: ../data/str.xml.in.h:205 msgid "Horse" msgstr "Кінь" #: ../data/str.xml.in.h:206 msgid "Sheep" msgstr "Вівця" #: ../data/str.xml.in.h:207 msgid "Goat" msgstr "Цап" #: ../data/str.xml.in.h:208 msgid "Monkey" msgstr "Мавпа" #: ../data/str.xml.in.h:209 msgid "Chicken" msgstr "Курча" #: ../data/str.xml.in.h:210 msgid "Dog" msgstr "Собака" #: ../data/str.xml.in.h:211 msgid "Pig" msgstr "Свиня" #: ../data/str.xml.in.h:212 msgid "Elephant" msgstr "Слон" #: ../data/str.xml.in.h:213 msgid "Octopus" msgstr "Восьминіг" #: ../data/str.xml.in.h:214 msgid "Spiral Shell" msgstr "Спіральна раковина" #: ../data/str.xml.in.h:215 msgid "Bug" msgstr "Комашка" #: ../data/str.xml.in.h:216 msgid "Ant" msgstr "Мурашка" #: ../data/str.xml.in.h:217 msgid "Lady Beetle" msgstr "Сонечко" #: ../data/str.xml.in.h:218 msgid "Fish" msgstr "Риба" #: ../data/str.xml.in.h:219 msgid "Tropical Fish" msgstr "Тропічна риба" #: ../data/str.xml.in.h:220 msgid "Blowfish" msgstr "Риба-фугу" #: ../data/str.xml.in.h:221 msgid "Bird" msgstr "Пташка" #: ../data/str.xml.in.h:222 msgid "Penguin" msgstr "Пінгвін" #: ../data/str.xml.in.h:223 msgid "Koala" msgstr "Коала" #: ../data/str.xml.in.h:224 msgid "Poodle" msgstr "Пудель" #: ../data/str.xml.in.h:225 msgid "Camel" msgstr "Верблюд" #: ../data/str.xml.in.h:226 msgid "Dolphin" msgstr "Дельфін" #: ../data/str.xml.in.h:227 msgid "Frog" msgstr "Жаба" #: ../data/str.xml.in.h:228 msgid "Hamster" msgstr "Хом’як" #: ../data/str.xml.in.h:229 msgid "Wolf" msgstr "Вовк" #: ../data/str.xml.in.h:230 msgid "Bear" msgstr "Ведмідь" #: ../data/str.xml.in.h:231 msgid "Panda" msgstr "Панда" #: ../data/str.xml.in.h:232 msgid "Eye" msgstr "Око" #: ../data/str.xml.in.h:233 msgid "Ear" msgstr "Вухо" #: ../data/str.xml.in.h:234 msgid "Nose" msgstr "Ніс" #: ../data/str.xml.in.h:235 msgid "Mouth" msgstr "Рот" #: ../data/str.xml.in.h:236 msgid "Tongue" msgstr "Язик" #: ../data/str.xml.in.h:237 msgid "Crown" msgstr "Корона" #: ../data/str.xml.in.h:238 msgid "Glasses" msgstr "Окуляри" #: ../data/str.xml.in.h:239 msgid "Necktie" msgstr "Краватка" #: ../data/str.xml.in.h:240 msgid "T-Shirt" msgstr "Футболка" #: ../data/str.xml.in.h:241 msgid "Jeans" msgstr "Джинси" #: ../data/str.xml.in.h:242 msgid "Dress" msgstr "Плаття" #: ../data/str.xml.in.h:243 msgid "Kimono" msgstr "Кімоно" #: ../data/str.xml.in.h:244 msgid "Bikini" msgstr "Бікіні" #: ../data/str.xml.in.h:245 msgid "Clothes" msgstr "Одяг" #: ../data/str.xml.in.h:246 msgid "Purse" msgstr "Сумочка" #: ../data/str.xml.in.h:247 msgid "Handbag" msgstr "Сумка" #: ../data/str.xml.in.h:248 msgid "Pouch" msgstr "Мішок" #: ../data/str.xml.in.h:249 msgid "Shoe" msgstr "Туфля" #: ../data/str.xml.in.h:250 msgid "Footprint" msgstr "Відбиток ноги" #: ../data/str.xml.in.h:251 msgid "Account" msgstr "Рахунок" #: ../data/str.xml.in.h:252 msgid "Boy" msgstr "Хлопчик" #: ../data/str.xml.in.h:253 msgid "Girl" msgstr "Дівчинка" #: ../data/str.xml.in.h:254 msgid "Man" msgstr "Чоловік" #: ../data/str.xml.in.h:255 msgid "Woman" msgstr "Жінка" #: ../data/str.xml.in.h:256 msgid "Family" msgstr "Сім’я" #: ../data/str.xml.in.h:257 msgid "Restroom" msgstr "Туалет" #: ../data/str.xml.in.h:258 msgid "Men" msgstr "Чоловіки" #: ../data/str.xml.in.h:259 msgid "Women" msgstr "Жінки" #: ../data/str.xml.in.h:260 msgid "Princess" msgstr "Принцеса" #: ../data/str.xml.in.h:261 msgid "Japanese Ogre" msgstr "Японський людожер" #: ../data/str.xml.in.h:262 msgid "Japanese Goblin" msgstr "Японський гоблін" #: ../data/str.xml.in.h:263 msgid "Ghost" msgstr "Привид" #: ../data/str.xml.in.h:264 msgid "Baby Angel" msgstr "Ангел-малятко" #: ../data/str.xml.in.h:265 msgid "Extraterrestrial Alien" msgstr "Прибулець з інших планет" #: ../data/str.xml.in.h:266 msgid "Alien Monster" msgstr "Іншопланетний монстр" #: ../data/str.xml.in.h:267 msgid "IMP" msgstr "Чортеня" #: ../data/str.xml.in.h:268 msgid "Skull" msgstr "Череп" #: ../data/str.xml.in.h:269 msgid "Information Desk Person" msgstr "Працівник служби інформації" #: ../data/str.xml.in.h:270 msgid "Guardsman" msgstr "Охоронець" #: ../data/str.xml.in.h:271 msgid "Dancer" msgstr "Танцівник" #: ../data/str.xml.in.h:272 msgid "Lipstick" msgstr "Губна помада" #: ../data/str.xml.in.h:273 msgid "Nail" msgstr "Ніготь" #: ../data/str.xml.in.h:274 msgid "Face" msgstr "Лице" #: ../data/str.xml.in.h:275 msgid "Haircut" msgstr "Зачіска" #: ../data/str.xml.in.h:276 msgid "Syringe" msgstr "Шпринц" #: ../data/str.xml.in.h:277 msgid "Medicine" msgstr "Ліки" #: ../data/str.xml.in.h:278 msgid "Kiss" msgstr "Цілунок" #: ../data/str.xml.in.h:279 msgid "Love Letter" msgstr "Любовний лист" #: ../data/str.xml.in.h:280 msgid "Ring" msgstr "Перстень" #: ../data/str.xml.in.h:281 msgid "Gem Stone" msgstr "Дорогоцінний камінь" #: ../data/str.xml.in.h:282 msgid "Wedding" msgstr "Весілля" #: ../data/str.xml.in.h:283 msgid "Heart" msgstr "Серце" #: ../data/str.xml.in.h:284 msgid "Idea" msgstr "Ідея" #: ../data/str.xml.in.h:285 msgid "Anger" msgstr "Лють" #: ../data/str.xml.in.h:286 msgid "Bomb" msgstr "Бомба" #: ../data/str.xml.in.h:287 msgid "Sleeping" msgstr "Сон" #: ../data/str.xml.in.h:288 msgid "Collision" msgstr "Зіткнення" #: ../data/str.xml.in.h:289 msgid "Sweat" msgstr "Піт" #: ../data/str.xml.in.h:290 msgid "Droplet" msgstr "Крапля" #: ../data/str.xml.in.h:291 msgid "Dash" msgstr "Сплеск" #: ../data/str.xml.in.h:292 msgid "Poo" msgstr "Лайно" #: ../data/str.xml.in.h:293 msgid "Muscle" msgstr "Мускул" #: ../data/str.xml.in.h:294 msgid "Dizzy" msgstr "Запаморочення" #: ../data/str.xml.in.h:295 msgid "Speech" msgstr "Розмова" #: ../data/str.xml.in.h:296 msgid "Thought" msgstr "Думка" #: ../data/str.xml.in.h:297 msgid "Perfect Score" msgstr "Чудовий результат" #: ../data/str.xml.in.h:298 msgid "Pushpin" msgstr "Кнопка" #: ../data/str.xml.in.h:299 msgid "Clip" msgstr "Скріпка" #: ../data/str.xml.in.h:300 msgid "Speaker" msgstr "Промовець" #: ../data/str.xml.in.h:301 msgid "Battery" msgstr "Батарея" #: ../data/str.xml.in.h:302 msgid "Plug" msgstr "Пробка" #: ../data/str.xml.in.h:303 msgid "Search" msgstr "Пошук" #: ../data/str.xml.in.h:304 msgid "Bookmark" msgstr "Закладка" #: ../data/str.xml.in.h:305 msgid "Book" msgstr "Книга" #: ../data/str.xml.in.h:306 msgid "Memo" msgstr "Нотатка" #: ../data/str.xml.in.h:307 msgid "Mail" msgstr "Пошта" #: ../data/str.xml.in.h:308 msgid "Mobile Phone" msgstr "Мобільний телефон" #: ../data/str.xml.in.h:309 msgid "Camera" msgstr "Фотоапарат" #: ../data/str.xml.in.h:310 msgid "Video" msgstr "Відео" #: ../data/str.xml.in.h:311 msgid "Television" msgstr "Телевізор" #: ../data/str.xml.in.h:312 msgid "Radio" msgstr "Радіо" #: ../data/str.xml.in.h:313 msgid "Key" msgstr "Ключ" #: ../data/str.xml.in.h:314 msgid "Lock" msgstr "Замок" #: ../data/str.xml.in.h:315 msgid "Fire" msgstr "Вогонь" #: ../data/str.xml.in.h:316 msgid "Wrench" msgstr "Гайковий ключ" #: ../data/str.xml.in.h:317 msgid "Hammer" msgstr "Молоток" #: ../data/str.xml.in.h:318 msgid "Bolt" msgstr "Ґвинт" #: ../data/str.xml.in.h:319 msgid "Hocho" msgstr "Гочо" #: ../data/str.xml.in.h:320 msgid "Pistol" msgstr "Пістолет" #: ../data/str.xml.in.h:321 msgid "Microscope" msgstr "Мікроскоп" #: ../data/str.xml.in.h:322 msgid "Telescope" msgstr "Телескоп" #: ../data/str.xml.in.h:323 msgid "Crystal" msgstr "Кристал" #: ../data/str.xml.in.h:324 msgid "David Star" msgstr "Зірка Давида" #: ../data/str.xml.in.h:325 msgid "Beginner" msgstr "Початківець" #: ../data/str.xml.in.h:326 msgid "Candle" msgstr "Свічка" #: ../data/str.xml.in.h:327 msgid "Hole" msgstr "Дірка" #: ../data/str.xml.in.h:328 msgid "Personal Computer" msgstr "Персональний комп’ютер" #: ../data/str.xml.in.h:329 msgid "keyboard" msgstr "Клавіатура" #: ../data/str.xml.in.h:330 msgid "Printer" msgstr "Принтер" #: ../data/str.xml.in.h:331 msgid "Calculator" msgstr "Калькулятор" #: ../data/str.xml.in.h:332 msgid "Minimize" msgstr "Мінімізувати" #: ../data/str.xml.in.h:333 msgid "Maximize" msgstr "Максимізувати" #: ../data/str.xml.in.h:334 msgid "Refresh" msgstr "Оновити" #: ../data/str.xml.in.h:335 msgid "Close" msgstr "Закрити" #: ../data/str.xml.in.h:336 msgid "World" msgstr "Світ" #: ../data/str.xml.in.h:337 msgid "Mt. Fuji" msgstr "Гора Фудзі" #: ../data/str.xml.in.h:338 msgid "Tokyo Tower" msgstr "Токійська вежа" #: ../data/str.xml.in.h:339 msgid "Japan" msgstr "Японія" #: ../data/str.xml.in.h:340 msgid "Anguish" msgstr "Страждання" #: ../data/str.xml.in.h:341 msgid "Smile" msgstr "Посмішка" #: ../data/str.xml.in.h:342 msgid "Smirk" msgstr "Усмішка" #: ../data/str.xml.in.h:343 msgid "Neutral" msgstr "Нейтральний" #: ../data/str.xml.in.h:344 msgid "Expressionless" msgstr "Невиразний" #: ../data/str.xml.in.h:345 msgid "Unamused" msgstr "Нерозважений" #: ../data/str.xml.in.h:346 msgid "Pensive" msgstr "Задумливий" #: ../data/str.xml.in.h:347 msgid "Confused" msgstr "Збитий з пантелику" #: ../data/str.xml.in.h:348 msgid "Confounded" msgstr "Збентежений" #: ../data/str.xml.in.h:349 msgid "Disappointed" msgstr "Розчарований" #: ../data/str.xml.in.h:350 msgid "Angry" msgstr "Злий" #: ../data/str.xml.in.h:351 msgid "Cry" msgstr "Плач" #: ../data/str.xml.in.h:352 msgid "Sleeply" msgstr "Сонний" #: ../data/str.xml.in.h:353 msgid "Tired" msgstr "Втомлений" #: ../data/str.xml.in.h:354 msgid "Surprise" msgstr "Здивований" #: ../data/str.xml.in.h:355 msgid "Scream" msgstr "Крик" #: ../data/str.xml.in.h:356 msgid "Flushed" msgstr "Засоромлений" #: ../data/str.xml.in.h:357 msgid "Medical Mask" msgstr "Медична маска" #: ../data/str.xml.in.h:358 msgid "OK" msgstr "Гаразд" #: ../data/str.xml.in.h:359 msgid "Bow" msgstr "Лук" #: ../data/str.xml.in.h:360 msgid "See-No-Evil" msgstr "Не бачу зла" #: ../data/str.xml.in.h:361 msgid "Hear-No-Evil" msgstr "Не чую зла" #: ../data/str.xml.in.h:362 msgid "Speak-No-Evil" msgstr "Не кажу злого" #: ../data/str.xml.in.h:363 msgid "Banzai" msgstr "Банзай!" #: ../data/str.xml.in.h:364 msgid "Pleading" msgstr "Захист" #: ../data/str.xml.in.h:365 msgid "Smileys" msgstr "Емоційки" #: ../data/str.xml.in.h:366 msgid "Smile Big" msgstr "Посмішка до вух" #: ../data/str.xml.in.h:367 msgid "Sad" msgstr "Сумний" #: ../data/str.xml.in.h:368 msgid "Wink" msgstr "Підморгує" #: ../data/str.xml.in.h:369 msgid "Shock" msgstr "Шок" #: ../data/str.xml.in.h:370 msgid "Kiss | Secret" msgstr "Цілунок | Потайки" #: ../data/str.xml.in.h:371 msgid "Glasses Cool | Eyeroll" msgstr "Крутий в окулярах або вирячені очі" #: ../data/str.xml.in.h:372 msgid "Glasses Cool" msgstr "Крутий в окулярах" #: ../data/str.xml.in.h:373 msgid "Embarrassed" msgstr "Стурбований" #: ../data/str.xml.in.h:374 msgid "Crying" msgstr "Ридаючий" #: ../data/str.xml.in.h:375 msgid "Thinking" msgstr "Думає" #: ../data/str.xml.in.h:376 msgid "Don't Know" msgstr "Не знаю" #: ../data/str.xml.in.h:377 msgid "Party" msgstr "Вечірка" #: ../data/str.xml.in.h:378 msgid "Yawn" msgstr "Позіхає" #: ../data/str.xml.in.h:379 msgid "Bunny" msgstr "Кролик" #: ../data/str.xml.in.h:380 msgid "Sick" msgstr "Хворий" #: ../data/str.xml.in.h:381 msgid "Devil" msgstr "Знавіснілий" #: ../data/str.xml.in.h:382 msgid "Angel" msgstr "Ангел" #: ../data/str.xml.in.h:383 msgid "Love" msgstr "Любов" #: ../data/str.xml.in.h:384 msgid "Love Over" msgstr "Кінець кохання" #: ../data/str.xml.in.h:385 msgid "Film" msgstr "Кінострічка" #: ../data/str.xml.in.h:386 msgid "Clock" msgstr "Годинник" #: ../data/str.xml.in.h:387 msgid "Coffee" msgstr "Кава" #: ../data/str.xml.in.h:388 msgid "Phone" msgstr "Телефон" #: ../data/str.xml.in.h:389 msgid "Hug Left" msgstr "Обнімає ліворуч" #: ../data/str.xml.in.h:390 msgid "Hug Right" msgstr "Обнімає праворуч" #: ../data/str.xml.in.h:391 msgid "Yes" msgstr "Так" #: ../data/str.xml.in.h:392 msgid "No" msgstr "Ні" #: ../data/str.xml.in.h:393 msgid "Shut Mouth" msgstr "Закритий рот" #: ../data/str.xml.in.h:394 msgid "Money Mouth" msgstr "Гроші тримаю при собі" #: ../data/str.xml.in.h:395 msgid "Foot in Mouth" msgstr "Не варто було цього казати" #: ../data/str.xml.in.h:396 msgid "Shout" msgstr "Крик" #. http://ja.wikipedia.org/wiki/%E9%A1%94%E6%96%87%E5%AD%97 #: ../data/str.xml.in.h:398 msgid "Smileys (Japanese)" msgstr "Емоційки (японські)" #: ../data/str.xml.in.h:399 msgid "Smoking" msgstr "Курить" #: ../data/str.xml.in.h:400 msgid "Sorry" msgstr "Вибач" #: ../data/str.xml.in.h:401 msgid "Hug" msgstr "Обнімає" #. http://ja.wikipedia.org/wiki/%E9%A1%94%E6%96%87%E5%AD%97 #: ../data/str.xml.in.h:403 msgid "Smileys (Japanese 2ch)" msgstr "Емоційки (японські, 2ch)" #: ../data/str.xml.in.h:404 msgid "Hey" msgstr "Гей" #. http://ja.wikipedia.org/wiki/%E9%A1%94%E6%96%87%E5%AD%97 #: ../data/str.xml.in.h:406 msgid "Smileys (Chinese)" msgstr "Емоційки (китайські)" #: ../data/str.xml.in.h:407 msgid "Crow" msgstr "Ворона" #. http://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88%E3%82%B9%E3%83%A9%E3%83%B3%E3%82%B0 #: ../data/str.xml.in.h:409 msgid "Acronym" msgstr "Абревіатури" #: ../data/str.xml.in.h:410 msgid "Acronym (Computer)" msgstr "Абревіатури (комп’ютерні)" #. http://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88%E3%82%B9%E3%83%A9%E3%83%B3%E3%82%B0 #: ../data/str.xml.in.h:412 msgid "Acronym (Japanese)" msgstr "Абревіатури (японські)" #: ../data/str.xml.in.h:413 msgid "Do not want to read between lines (Aete Kuuki Wo Yomanai)" msgstr "Не хочу читати між рядками" #: ../data/str.xml.in.h:414 msgid "Can't get together (Guda Guda)" msgstr "Не можу розібратися" #: ../data/str.xml.in.h:415 msgid "Say whatever one feels (Iitaidake)" msgstr "Точно сказано (ітайдаке)" #: ../data/str.xml.in.h:416 msgid "Excited (Kitakore)" msgstr "Захоплення (кітакоре)" #: ../data/str.xml.in.h:417 msgid "Detail (Kuwashiku)" msgstr "Докладніше" #: ../data/str.xml.in.h:418 msgid "Cannot read between lines (Kuuki Ga Yomenai)" msgstr "Не можу читати між рядками" #: ../data/str.xml.in.h:419 msgid "Omission (Shouryaku)" msgstr "Недогляд (сьоряку)" #: ../data/str.xml.in.h:420 msgid "Excited (Waku Waku Teka Teka)" msgstr "Захоплення (ваку-ваку тека-тека)" #: ../data/str.xml.in.h:421 msgid "Laugh" msgstr "Гигикає" #: ../data/str.xml.in.h:422 msgid "Dude (Oi!)" msgstr "Чувак" #: ../data/str.xml.in.h:423 msgid "Good job (Otsukare)" msgstr "Чудова робота (отсукаре)" #: ../data/str.xml.in.h:424 msgid "Want (Kure, E.g. pics クレメンス)" msgstr "Хочу (Куре, наприклад クレメンス картинок)" #: ../data/str.xml.in.h:425 msgid "ASCII art of a hand (✊, E.g. つAttention)" msgstr "ASCII-зображення руки (✊, наприклад увага つ)" #: ../data/str.xml.in.h:426 msgid "In The Meantime (Toriaezu, Maa)" msgstr "Тим часом (Toriaezu, Maa)" #: ../data/str.xml.in.h:427 msgid "Self-confidence (Aniki, E.g. tennis ニキ)" msgstr "Впевненість у собі (Анікі, наприклад ニキ у тенісі)" #: ../data/str.xml.in.h:428 msgid "Bye" msgstr "Па" #: ../data/str.xml.in.h:429 msgid "Want (Hattekure, E.g. pics ハラデイ)" msgstr "Хочу (Хаттекуре, наприклад ハラデイ картинок)" #: ../data/str.xml.in.h:430 msgid "Exist as microparticles (Biryushi Level De Sonzaisuru)" msgstr "Існувати як мікрочастинки" #: ../data/str.xml.in.h:431 msgid "False Start (Flying Get)" msgstr "Фальстарт" #: ../data/str.xml.in.h:432 msgid "Fulfilling Life (Real life is Zyujitsu)" msgstr "Переповнений життям (життя — джіу-джітсу)" #: ../data/str.xml.in.h:433 msgid "Laugh (Warau)" msgstr "Гигикає (варо)" #: ../data/str.xml.in.h:434 msgid "He (Yatsu <- Yashi)" msgstr "Він (яцу <- яцу)" #: ../data/w3c.xml.in.h:1 msgid "Char References" msgstr "Довідник з символів" #: ../data/zh.xml.in.h:1 msgid "Chinese" msgstr "Китайська" #: ../data/zh.xml.in.h:4 ../input-pad/unicode_block.h:138 msgid "Bopomofo" msgstr "Бопомофо" #: ../input-pad/app-menu.ui.h:1 msgid "_File" msgstr "_Файл" #: ../input-pad/app-menu.ui.h:2 ../input-pad/dialog.ui.h:21 msgid "_Close" msgstr "_Закрити" #: ../input-pad/app-menu.ui.h:3 msgid "Close the program" msgstr "Закрити вікно програми" #: ../input-pad/app-menu.ui.h:4 msgid "_Pad" msgstr "_Панель" #: ../input-pad/app-menu.ui.h:5 msgid "_Code Point" msgstr "_Точка кодування" #: ../input-pad/app-menu.ui.h:6 msgid "_Show Pad" msgstr "_Показ панелі" #: ../input-pad/app-menu.ui.h:7 msgid "Show _All Characters" msgstr "Показати _всі символи" #: ../input-pad/app-menu.ui.h:8 msgid "Show _Custom Characters" msgstr "Показати _нетипові символи" #: ../input-pad/app-menu.ui.h:9 msgid "Show _Nothing" msgstr "_Нічого не показувати" #: ../input-pad/app-menu.ui.h:10 msgid "Show _Keyboard Layout" msgstr "Показати _розкладку клавіатури" #: ../input-pad/app-menu.ui.h:11 msgid "_Help" msgstr "_Довідка" #: ../input-pad/app-menu.ui.h:12 msgid "_Troubleshoot" msgstr "_Усування вад" #: ../input-pad/app-menu.ui.h:13 msgid "_About" msgstr "_Про програму" #: ../input-pad/dialog.ui.h:1 msgid "Code Point Dialog" msgstr "Діалогове вікно точки кодування" #: ../input-pad/dialog.ui.h:2 msgid "Unicode" msgstr "Unicode" #: ../input-pad/dialog.ui.h:3 msgid "You can choose encoding type" msgstr "Ви можете вибрати тип кодування" #: ../input-pad/dialog.ui.h:4 msgid "Current Encoding" msgstr "Поточне кодування" #: ../input-pad/dialog.ui.h:5 msgid "Copy Buffer" msgstr "Буфер копіювання" #: ../input-pad/dialog.ui.h:6 msgid "Base 16\n" "Hex" msgstr "За основою\n" "16" #: ../input-pad/dialog.ui.h:8 msgid "Set number case to hexadecimal" msgstr "Використати шістнадцятковий запис" #: ../input-pad/dialog.ui.h:9 msgid "Base 10\n" "Dec" msgstr "За основою\n" "10" #: ../input-pad/dialog.ui.h:11 msgid "Set number case to decimal" msgstr "Використати десятковий запис" #: ../input-pad/dialog.ui.h:12 msgid "Base 8\n" "Oct" msgstr "За основою\n" "8" #: ../input-pad/dialog.ui.h:14 msgid "Set number case to octal" msgstr "Використати вісімковий запис" #: ../input-pad/dialog.ui.h:15 msgid "Base 2\n" "Bin" msgstr "За основою\n" "2" #: ../input-pad/dialog.ui.h:17 msgid "Set number case to binary" msgstr "Використати двійковий запис" #: ../input-pad/dialog.ui.h:18 msgid "Code Point:" msgstr "Точка кодування:" #: ../input-pad/dialog.ui.h:19 msgid "Character:" msgstr "Символ:" #: ../input-pad/dialog.ui.h:20 msgid "_Send" msgstr "_Надіслати" #: ../input-pad/dialog.ui.h:22 msgid "Input Pad Troubleshoot" msgstr "Діагностування панелі введення" #: ../input-pad/dialog.ui.h:24 #, no-c-format msgid "" "\n" "This application can be run either as a stand-alone program or under an " "input method application.\n" "If you wish to send multi-byte characters, this application needs to be run " "under an input method application.\n" "If you wish to send characters to X11 applications, those applications needs " "to allow send events. e.g.\n" "% xterm -xrm \"XTerm*allowSendEvents: true\"\n" "\n" "You also can copy pad files from /usr/share/input-pad/pad to $HOME/.config/" "pad to customize those in \"Custom Character\" pane." msgstr "" "\n" "Цю програму можна запустити окремо або з програми керування способами " "введення даних.\n" "Якщо вам потрібно вводити мультибайтові символи, цю програму слід запустити " "з програми керування способами введення.\n" "Якщо вам потрібно передавати символи графічним програмам, слід увімкнути " "події надсилання даних для таких програм, наприклад\n" "% xterm -xrm \"XTerm*allowSendEvents: true\"\n" "\n" "Вам також слід скопіювати файли наборів з /usr/share/input-pad/pad до $HOME/." "config/pad, щоб змінити ті з них, які належать до групи «Нетипові символи»." #: ../input-pad/dialog.ui.h:31 msgid "_OK" msgstr "_Гаразд" #: ../input-pad/dialog.ui.h:32 msgid "Configure Keyboard Layouts" msgstr "Налаштувати клавіатурні скорочення" #: ../input-pad/dialog.ui.h:33 msgid "A_vailable layouts:" msgstr "Д_оступні розкладки:" #: ../input-pad/dialog.ui.h:34 msgid "_Add" msgstr "_Додати" #: ../input-pad/dialog.ui.h:35 msgid "_Layouts shown in the list:" msgstr "_Розкладки, показані у списку:" #: ../input-pad/dialog.ui.h:36 msgid "_Remove" msgstr "Ви_лучити" #: ../input-pad/dialog.ui.h:37 msgid "_Options" msgstr "П_араметри" #: ../input-pad/dialog.ui.h:38 msgid "Configure Keyboard Options" msgstr "Налаштувати параметри клавіатури" #: ../input-pad/dialog.ui.h:39 msgid "_Use the default keyboard option" msgstr "В_икористовувати типовий варіант клавіатури" #: ../input-pad/dialog.ui.h:40 msgid "Use the defualt XKB option" msgstr "Використовувати типовий параметр XKB" #: ../input-pad/dialog.ui.h:41 msgid "Keyboard Option" msgstr "Варіант клавіатури" #: ../input-pad/dialog.ui.h:43 msgid "The input pad is a tool to send a character on button." msgstr "" "Панель введення — це програма для надсилання символів, намальованих на " "кнопках." #: ../input-pad/dialog.ui.h:44 msgid "translator_credits" msgstr "Юрій Чорноіван " #: ../input-pad/eek-gtk.c:65 msgid "Use libeek to draw keyboard" msgstr "Використовувати libeek для малювання клавіатури" #: ../input-pad/eek-gtk.c:237 msgid "eekboard layout" msgstr "Розкладка eekboard" #: ../input-pad/eek-gtk.c:249 msgid "eekboard Options" msgstr "Параметри eekboard" #: ../input-pad/eek-gtk.c:249 msgid "Show eekboard Options" msgstr "Показати параметри eekboard" #: ../input-pad/unicode_block.h:37 msgid "Basic Latin" msgstr "Основні латинські" #: ../input-pad/unicode_block.h:40 msgid "Latin Extended-B" msgstr "Латинь розширена-B" #: ../input-pad/unicode_block.h:41 msgid "IPA Extensions" msgstr "Розширена IPA" #: ../input-pad/unicode_block.h:42 msgid "Spacing Modifier Letters" msgstr "Знаки інтервалів" #: ../input-pad/unicode_block.h:43 msgid "Combining Diacritical Marks" msgstr "Об’єднання діакритичних знаків" #: ../input-pad/unicode_block.h:44 msgid "Greek and Coptic" msgstr "Грецькі і коптські" #: ../input-pad/unicode_block.h:45 msgid "Cyrillic" msgstr "Кирилиця" #: ../input-pad/unicode_block.h:46 msgid "Cyrillic Supplement" msgstr "Додаткова кирилиця" #: ../input-pad/unicode_block.h:47 msgid "Armenian" msgstr "Вірменська" #: ../input-pad/unicode_block.h:48 msgid "Hebrew" msgstr "Іврит" #: ../input-pad/unicode_block.h:49 msgid "Arabic" msgstr "Арабська" #: ../input-pad/unicode_block.h:50 msgid "Syriac" msgstr "Сирійська" #: ../input-pad/unicode_block.h:51 msgid "Arabic Supplement" msgstr "Додаткові арабські" #: ../input-pad/unicode_block.h:52 msgid "Thaana" msgstr "Таана" #: ../input-pad/unicode_block.h:53 msgid "NKo" msgstr "Н’Ко" #: ../input-pad/unicode_block.h:54 msgid "Samaritan" msgstr "Самаритянська" #: ../input-pad/unicode_block.h:55 msgid "Devanagari" msgstr "Деванагарі" #: ../input-pad/unicode_block.h:56 msgid "Bengali" msgstr "Бенгальська" #: ../input-pad/unicode_block.h:57 msgid "Gurmukhi" msgstr "Гурмухі" #: ../input-pad/unicode_block.h:58 msgid "Gujarati" msgstr "Гуджараті" #: ../input-pad/unicode_block.h:59 msgid "Oriya" msgstr "Орія" #: ../input-pad/unicode_block.h:60 msgid "Tamil" msgstr "Тамільська" #: ../input-pad/unicode_block.h:61 msgid "Telugu" msgstr "Телугу" #: ../input-pad/unicode_block.h:62 msgid "Kannada" msgstr "Каннада" #: ../input-pad/unicode_block.h:63 msgid "Malayalam" msgstr "Малаялам" #: ../input-pad/unicode_block.h:64 msgid "Sinhala" msgstr "Сингалійська" #: ../input-pad/unicode_block.h:65 msgid "Thai" msgstr "Таїландська" #: ../input-pad/unicode_block.h:66 msgid "Lao" msgstr "Лаоська" #: ../input-pad/unicode_block.h:67 msgid "Tibetan" msgstr "Тибетська" #: ../input-pad/unicode_block.h:68 msgid "Myanmar" msgstr "М’янмська" #: ../input-pad/unicode_block.h:69 msgid "Georgian" msgstr "Грузинська" #: ../input-pad/unicode_block.h:70 msgid "Hangul Jamo" msgstr "Хангиль-чжамо" #: ../input-pad/unicode_block.h:71 msgid "Ethiopic" msgstr "Ефіопська" #: ../input-pad/unicode_block.h:72 msgid "Ethiopic Supplement" msgstr "Додаткові ефіопські" #: ../input-pad/unicode_block.h:73 msgid "Cherokee" msgstr "Черокі" #: ../input-pad/unicode_block.h:74 msgid "Unified Canadian Aboriginal Syllabics" msgstr "Уніфіковані силабічні канадських аборигенів" #: ../input-pad/unicode_block.h:75 msgid "Ogham" msgstr "Огам" #: ../input-pad/unicode_block.h:76 msgid "Runic" msgstr "Рунічна" #: ../input-pad/unicode_block.h:77 msgid "Tagalog" msgstr "Тагалог" #: ../input-pad/unicode_block.h:78 msgid "Hanunoo" msgstr "Хануну" #: ../input-pad/unicode_block.h:79 msgid "Buhid" msgstr "Бухід" #: ../input-pad/unicode_block.h:80 msgid "Tagbanwa" msgstr "Таґбанва" #: ../input-pad/unicode_block.h:81 msgid "Khmer" msgstr "Кхмерська" #: ../input-pad/unicode_block.h:82 msgid "Mongolian" msgstr "Монгольська" #: ../input-pad/unicode_block.h:83 msgid "Unified Canadian Aboriginal Syllabics Extended" msgstr "Уніфіковані силабічні канадських аборигенів (додаткові)" #: ../input-pad/unicode_block.h:84 msgid "Limbu" msgstr "Лімбу" #: ../input-pad/unicode_block.h:85 msgid "Tai Le" msgstr "Тай лі" #: ../input-pad/unicode_block.h:86 msgid "New Tai Lue" msgstr "Нова тай лі" #: ../input-pad/unicode_block.h:87 msgid "Khmer Symbols" msgstr "Кхмерські символи" #: ../input-pad/unicode_block.h:88 msgid "Buginese" msgstr "Бугійська" #: ../input-pad/unicode_block.h:89 msgid "Tai Tham" msgstr "Тай-тхем" #: ../input-pad/unicode_block.h:90 msgid "Balinese" msgstr "Балійська" #: ../input-pad/unicode_block.h:91 msgid "Sundanese" msgstr "Сунданська" #: ../input-pad/unicode_block.h:92 msgid "Lepcha" msgstr "Лепча" #: ../input-pad/unicode_block.h:93 msgid "Ol Chiki" msgstr "Ол-чикі" #: ../input-pad/unicode_block.h:94 msgid "Vedic Extensions" msgstr "Ведичні розширення" #: ../input-pad/unicode_block.h:95 msgid "Phonetic Extensions" msgstr "Фонетичні розширення" #: ../input-pad/unicode_block.h:96 msgid "Phonetic Extensions Supplement" msgstr "Додаткові фонетичні розширення" #: ../input-pad/unicode_block.h:97 msgid "Combining Diacritical Marks Supplement" msgstr "Додаткові об’єднання діакритичних знаків" #: ../input-pad/unicode_block.h:98 msgid "Latin Extended Additional" msgstr "Латинські додаткові розширені" #: ../input-pad/unicode_block.h:99 msgid "Greek Extended" msgstr "Розширені грецькі" #: ../input-pad/unicode_block.h:100 msgid "General Punctuation" msgstr "Загальна пунктуація" #: ../input-pad/unicode_block.h:101 msgid "Superscripts and Subscripts" msgstr "Верхні і нижні індекси" #: ../input-pad/unicode_block.h:102 msgid "Currency Symbols" msgstr "Символи грошових одиниць" #: ../input-pad/unicode_block.h:103 msgid "Combining Diacritical Marks for Symbols" msgstr "Об’єднання діакритичних знаків і символів" #: ../input-pad/unicode_block.h:104 msgid "Letterlike Symbols" msgstr "Схожі на літери символи" #: ../input-pad/unicode_block.h:105 msgid "Number Forms" msgstr "Форми чисел" #: ../input-pad/unicode_block.h:106 msgid "Arrows" msgstr "Стрілки" #: ../input-pad/unicode_block.h:107 msgid "Mathematical Operators" msgstr "Математичні оператори" #: ../input-pad/unicode_block.h:108 msgid "Miscellaneous Technical" msgstr "Різні технічні" #: ../input-pad/unicode_block.h:109 msgid "Control Pictures" msgstr "Малюнки керування" #: ../input-pad/unicode_block.h:110 msgid "Optical Character Recognition" msgstr "Оптичне розпізнавання знаків" #: ../input-pad/unicode_block.h:111 msgid "Enclosed Alphanumerics" msgstr "Буквено-цифрові у рамках" #: ../input-pad/unicode_block.h:113 msgid "Block Elements" msgstr "Блокові елементи" #: ../input-pad/unicode_block.h:114 msgid "Geometric Shapes" msgstr "Геометричні форми" #: ../input-pad/unicode_block.h:115 msgid "Miscellaneous Symbols" msgstr "Різні символи" #: ../input-pad/unicode_block.h:117 msgid "Miscellaneous Mathematical Symbols-A" msgstr "Різні математичні символи-A" #: ../input-pad/unicode_block.h:118 msgid "Supplemental Arrows-A" msgstr "Додаткові стрілки-A" #: ../input-pad/unicode_block.h:119 msgid "Braille Patterns" msgstr "Шаблони Брайля" #: ../input-pad/unicode_block.h:120 msgid "Supplemental Arrows-B" msgstr "Додаткові стрілки-B" #: ../input-pad/unicode_block.h:121 msgid "Miscellaneous Mathematical Symbols-B" msgstr "Різні математичні символи-B" #: ../input-pad/unicode_block.h:122 msgid "Supplemental Mathematical Operators" msgstr "Додаткові математичні дії" #: ../input-pad/unicode_block.h:123 msgid "Miscellaneous Symbols and Arrows" msgstr "Різні символи і стрілки" #: ../input-pad/unicode_block.h:124 msgid "Glagolitic" msgstr "Глаголиця" #: ../input-pad/unicode_block.h:125 msgid "Latin Extended-C" msgstr "Латинь розширена-C" #: ../input-pad/unicode_block.h:126 msgid "Coptic" msgstr "Коптська" #: ../input-pad/unicode_block.h:127 msgid "Georgian Supplement" msgstr "Додаткові грузинські" #: ../input-pad/unicode_block.h:128 msgid "Tifinagh" msgstr "Тіфінаг" #: ../input-pad/unicode_block.h:129 msgid "Ethiopic Extended" msgstr "Розширена ефіопська" #: ../input-pad/unicode_block.h:130 msgid "Cyrillic Extended-A" msgstr "Розширена кирилиця-A" #: ../input-pad/unicode_block.h:131 msgid "Supplemental Punctuation" msgstr "Додаткова пунктуація" #: ../input-pad/unicode_block.h:133 msgid "Kangxi Radicals" msgstr "Радикали кандзі" #: ../input-pad/unicode_block.h:134 msgid "Ideographic Description Characters" msgstr "Символи-ідеограми" #: ../input-pad/unicode_block.h:135 msgid "CJK Symbols and Punctuation" msgstr "Символи і пунктуація CJK" #: ../input-pad/unicode_block.h:139 msgid "Hangul Compatibility Jamo" msgstr "Сумісні корейські" #: ../input-pad/unicode_block.h:140 msgid "Kanbun" msgstr "Канбун" #: ../input-pad/unicode_block.h:141 msgid "Bopomofo Extended" msgstr "Додаткові бопомофо" #: ../input-pad/unicode_block.h:142 msgid "CJK Strokes" msgstr "Штрихи CJK" #: ../input-pad/unicode_block.h:143 msgid "Katakana Phonetic Extensions" msgstr "Фонетичні розширення катакани" #: ../input-pad/unicode_block.h:144 msgid "Enclosed CJK Letters and Months" msgstr "Вкладені ієрогліфи і назви місяців" #: ../input-pad/unicode_block.h:146 msgid "CJK Unified Ideographs Extension A" msgstr "Ієрогліфічні ідеограми Додаток A" #: ../input-pad/unicode_block.h:147 msgid "Yijing Hexagram Symbols" msgstr "Символи гексаграм «Книги перетворень»" #: ../input-pad/unicode_block.h:148 msgid "CJK Unified Ideographs" msgstr "Універсальні ідеографічні ієрогліфи" #: ../input-pad/unicode_block.h:149 msgid "Yi Syllables" msgstr "Склади Ї" #: ../input-pad/unicode_block.h:150 msgid "Yi Radicals" msgstr "Радикалі Ї" #: ../input-pad/unicode_block.h:151 msgid "Lisu" msgstr "Лісу" #: ../input-pad/unicode_block.h:152 msgid "Vai" msgstr "Вай" #: ../input-pad/unicode_block.h:153 msgid "Cyrillic Extended-B" msgstr "Розширена кирилиця-B" #: ../input-pad/unicode_block.h:154 msgid "Bamum" msgstr "Бамум" #: ../input-pad/unicode_block.h:155 msgid "Modifier Tone Letters" msgstr "Символи зміни тону" #: ../input-pad/unicode_block.h:156 msgid "Latin Extended-D" msgstr "Латинь розширена-D" #: ../input-pad/unicode_block.h:157 msgid "Syloti Nagri" msgstr "Силоті нагрі" #: ../input-pad/unicode_block.h:158 msgid "Common Indic Number Forms" msgstr "Загальні індійські форми чисел" #: ../input-pad/unicode_block.h:159 msgid "Phags-pa" msgstr "Фагс-па" #: ../input-pad/unicode_block.h:160 msgid "Saurashtra" msgstr "Саураштра" #: ../input-pad/unicode_block.h:161 msgid "Devanagari Extended" msgstr "Розширена деванагарі" #: ../input-pad/unicode_block.h:162 msgid "Kayah Li" msgstr "Кая-лі" #: ../input-pad/unicode_block.h:163 msgid "Rejang" msgstr "Реджан" #: ../input-pad/unicode_block.h:164 msgid "Hangul Jamo Extended-A" msgstr "Корейска розширена-A" #: ../input-pad/unicode_block.h:165 msgid "Javanese" msgstr "Яванська" #: ../input-pad/unicode_block.h:166 msgid "Cham" msgstr "Тьям" #: ../input-pad/unicode_block.h:167 msgid "Myanmar Extended-A" msgstr "М’янмська розширена-A" #: ../input-pad/unicode_block.h:168 msgid "Tai Viet" msgstr "Тай-в’єт" #: ../input-pad/unicode_block.h:169 msgid "Meetei Mayek" msgstr "Маніпурі" #: ../input-pad/unicode_block.h:170 msgid "Hangul Syllables" msgstr "Склади хангиля" #: ../input-pad/unicode_block.h:171 msgid "Hangul Jamo Extended-B" msgstr "Корейська розширена-B" #: ../input-pad/unicode_block.h:172 msgid "High Surrogates" msgstr "Верхні замінники" #: ../input-pad/unicode_block.h:173 msgid "High Private Use Surrogates" msgstr "Верхні приватні замінники" #: ../input-pad/unicode_block.h:174 msgid "Low Surrogates" msgstr "Нижні замінники" #: ../input-pad/unicode_block.h:175 msgid "Private Use Area" msgstr "Область приватного використання" #: ../input-pad/unicode_block.h:176 msgid "CJK Compatibility Ideographs" msgstr "Сумісні ієрогліфічні ідеограми" #: ../input-pad/unicode_block.h:177 msgid "Alphabetic Presentation Forms" msgstr "Форми відтворення абеток" #: ../input-pad/unicode_block.h:178 msgid "Arabic Presentation Forms-A" msgstr "Форми відображення арабської A" #: ../input-pad/unicode_block.h:179 msgid "Variation Selectors" msgstr "Вибір варіантів" #: ../input-pad/unicode_block.h:180 msgid "Vertical Forms" msgstr "Вертикальні форми" #: ../input-pad/unicode_block.h:181 msgid "Combining Half Marks" msgstr "Комбіновані позначки половинок" #: ../input-pad/unicode_block.h:182 msgid "CJK Compatibility Forms" msgstr "Сумісні ієрогліфічні форми" #: ../input-pad/unicode_block.h:183 msgid "Small Form Variants" msgstr "Варіанти малих форм" #: ../input-pad/unicode_block.h:184 msgid "Arabic Presentation Forms-B" msgstr "Форми відображення арабської B" #: ../input-pad/unicode_block.h:185 msgid "Halfwidth and Fullwidth Forms" msgstr "Форми півширини та повної ширини" #: ../input-pad/unicode_block.h:186 msgid "Specials" msgstr "Спеціальні" #: ../input-pad/unicode_block.h:187 msgid "Linear B Syllabary" msgstr "Лінійна писемність B, склади" #: ../input-pad/unicode_block.h:188 msgid "Linear B Ideograms" msgstr "Лінійна писемність B, ідеограми" #: ../input-pad/unicode_block.h:189 msgid "Aegean Numbers" msgstr "Егейські числа" #: ../input-pad/unicode_block.h:190 msgid "Ancient Greek Numbers" msgstr "Давньогрецькі числа" #: ../input-pad/unicode_block.h:191 msgid "Ancient Symbols" msgstr "Давні символи" #: ../input-pad/unicode_block.h:192 msgid "Phaistos Disc" msgstr "Фестський диск" #: ../input-pad/unicode_block.h:193 msgid "Lycian" msgstr "лікійська" #: ../input-pad/unicode_block.h:194 msgid "Carian" msgstr "Карійська" #: ../input-pad/unicode_block.h:195 msgid "Old Italic" msgstr "Давня італійська" #: ../input-pad/unicode_block.h:197 msgid "Ugaritic" msgstr "Угаритська" #: ../input-pad/unicode_block.h:198 msgid "Old Persian" msgstr "Старовинна персидська" #: ../input-pad/unicode_block.h:199 msgid "Deseret" msgstr "Дезерет" #: ../input-pad/unicode_block.h:201 msgid "Osmanya" msgstr "Османья" #: ../input-pad/unicode_block.h:202 msgid "Cypriot Syllabary" msgstr "Кіпріотська складова абетка" #: ../input-pad/unicode_block.h:203 msgid "Imperial Aramaic" msgstr "імперська арамейська" #: ../input-pad/unicode_block.h:204 msgid "Phoenician" msgstr "фінікійська" #: ../input-pad/unicode_block.h:205 msgid "Lydian" msgstr "лідійська" #: ../input-pad/unicode_block.h:206 msgid "Kharoshthi" msgstr "Кхароштхі" #: ../input-pad/unicode_block.h:207 msgid "Old South Arabian" msgstr "Давня південноарабська" #: ../input-pad/unicode_block.h:208 msgid "Avestan" msgstr "Авестанська" #: ../input-pad/unicode_block.h:209 msgid "Inscriptional Parthian" msgstr "Інскрипційна парфянська" #: ../input-pad/unicode_block.h:210 msgid "Inscriptional Pahlavi" msgstr "Інскрипційна пехлеві" #: ../input-pad/unicode_block.h:211 msgid "Old Turkic" msgstr "Давня турецька" #: ../input-pad/unicode_block.h:212 msgid "Rumi Numeral Symbols" msgstr "Числові символи румі" #: ../input-pad/unicode_block.h:213 msgid "Kaithi" msgstr "Кайтхі" #: ../input-pad/unicode_block.h:214 msgid "Cuneiform" msgstr "Клинопис" #: ../input-pad/unicode_block.h:215 msgid "Cuneiform Numbers and Punctuation" msgstr "Клинописні числа і пунктуація" #: ../input-pad/unicode_block.h:216 msgid "Egyptian Hieroglyphs" msgstr "Єгипетська ієрогліфічна" #: ../input-pad/unicode_block.h:217 msgid "Byzantine Musical Symbols" msgstr "Візантійські музичні символи" #: ../input-pad/unicode_block.h:218 msgid "Musical Symbols" msgstr "Музичні символи" #: ../input-pad/unicode_block.h:219 msgid "Ancient Greek Musical Notation" msgstr "Давньогрецькі символи запису музики" #: ../input-pad/unicode_block.h:220 msgid "Tai Xuan Jing Symbols" msgstr "Символи Тай Хуан Жинь" #: ../input-pad/unicode_block.h:221 msgid "Counting Rod Numerals" msgstr "Числа з паличок для лічби" #: ../input-pad/unicode_block.h:222 msgid "Mathematical Alphanumeric Symbols" msgstr "Математичні буквено-цифрові символи" #: ../input-pad/unicode_block.h:223 msgid "Mahjong Tiles" msgstr "Плитки маджонґ" #: ../input-pad/unicode_block.h:224 msgid "Domino Tiles" msgstr "Плитки доміно" #: ../input-pad/unicode_block.h:225 msgid "Enclosed Alphanumeric Supplement" msgstr "Додаткові буквенно-цифрові у рамках" #: ../input-pad/unicode_block.h:226 msgid "Enclosed Ideographic Supplement" msgstr "Додаткові ідеографічні у рамках" #: ../input-pad/unicode_block.h:227 msgid "CJK Unified Ideographs Extension B" msgstr "Уніфіковані ієрогліфічні ідеограми, додаток B" #: ../input-pad/unicode_block.h:228 msgid "CJK Unified Ideographs Extension C" msgstr "Ієрогліфічні ідеограми, додаток C" #: ../input-pad/unicode_block.h:229 msgid "CJK Compatibility Ideographs Supplement" msgstr "Додаткові ієрогліфічні ідеограми для сумісності" #: ../input-pad/unicode_block.h:230 msgid "Tags" msgstr "Мітки" #: ../input-pad/unicode_block.h:231 msgid "Variation Selectors Supplement" msgstr "Додаткові символи зміни" #: ../input-pad/unicode_block.h:232 msgid "Supplementary Private Use Area-A" msgstr "Додаткова область приватного використання A" #: ../input-pad/unicode_block.h:233 msgid "Supplementary Private Use Area-B" msgstr "Додаткова область приватного використання B" #: ../input-pad/window-gtk.c:203 msgid "Display version" msgstr "Показати дані щодо версії" #. Translators: the word 'KBDUI' is not translated. #: ../input-pad/window-gtk.c:206 msgid "Use KBDUI to draw keyboard" msgstr "Використовувати KBDUI для малювання клавіатури" #. Translators: the word 'TYPE' is not translated. #: ../input-pad/window-gtk.c:209 msgid "Use TYPE of char table. The available TYPE=0, 1, 2" msgstr "" "Використовувати тип TYPE таблиці символів. Доступні значення: TYPE=0, 1, 2" #. Translators: the word 'TYPE' is not translated. #: ../input-pad/window-gtk.c:212 msgid "Use TYPE of keyboard layout. The available TYPE=0, 1" msgstr "" "Використовувати тип TYPE розкладки клавіатури. Доступні значення: TYPE=0, 1" #: ../input-pad/window-gtk.c:219 msgid "Use XTEST module to send key events" msgstr "Використовувати модуль XTEST для надсилання натискань клавіш" #: ../input-pad/window-gtk.c:224 msgid "Use XSendEvent to send key events" msgstr "Використовувати XSendEvent для надсилання натискань клавіш" #: ../input-pad/window-gtk.c:1172 msgid "Fold layout" msgstr "Згорнути розкладку" #: ../input-pad/window-gtk.c:1177 ../input-pad/window-gtk.c:2610 msgid "Extend layout" msgstr "Розгорнути розкладку" #: ../input-pad/window-gtk.c:2824 msgid "Layout" msgstr "Розкладка" #: ../input-pad/window-gtk.c:3095 msgid "_Layout:" msgstr "_Розкладка:" #: ../input-pad/window-gtk.c:3125 msgid "_Configure Layouts" msgstr "_Налаштувати розкладки" #. No longer used in gtk 2.20 #. gchar *license1, *license2, *license3; #. license1 = _("" #. "This library is free software; you can redistribute it and/or " #. "modify it under the terms of the GNU Lesser General Public " #. "License as published by the Free Software Foundation; either " #. "version 2 of the License, or (at your option) any later version."); #. #. license2 = _("" #. "This library is distributed in the hope that it will be useful, " #. "but WITHOUT ANY WARRANTY; without even the implied warranty of " #. "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU " #. "Lesser General Public License for more details."); #. #. license3 = _("" #. "You should have received a copy of the GNU Lesser General Public " #. "License along with this library; if not, write to the Free Software " #. "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, " #. "MA 02110-1301 USA"); #. #. license = g_strdup_printf ("%s\n\n%s\n\n%s", #. license1, license2, license3); #. #. This format has been used since gtk 2.20. #: ../input-pad/window-gtk.c:3164 #, c-format msgid "This program comes with ABSOLUTELY NO WARRANTY; for details, visit %s" msgstr "" "Вам не надається жодних гарантій щодо роботи цієї програми. Щоб дізнатися " "більше, відвідайте %s" #: ../input-pad/window-gtk.c:3446 msgid "Group" msgstr "Група" #: ../input-pad/window-gtk.c:3454 msgid "Subgroup" msgstr "Підгрупа" input-pad-1.1.0/po/zh_CN.po000066400000000000000000002201221476727667600154240ustar00rootroot00000000000000# Chinese (China) translations for input-pad # Copyright (C) 2010-2025 Takao Fujiwara # This file is distributed under the same license as the input-pad package. # # Translators: # Christopher Meng , 2012-2013 # Tommy He , 2012 # Jingge Chen , 2024. msgid "" msgstr "" "Project-Id-Version: input-pad HEAD\n" "Report-Msgid-Bugs-To: http://code.google.com/p/input-pad/issues/list\n" "POT-Creation-Date: 2016-03-02 18:45+0900\n" "PO-Revision-Date: 2024-01-22 11:36+0000\n" "Last-Translator: Jingge Chen \n" "Language-Team: Chinese (Simplified) \n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Weblate 5.3.1\n" #: ../data/alphabet.xml.in.in.h:1 msgid "Alphabets" msgstr "字母" #: ../data/base.xml.in.h:1 msgid "Symbols" msgstr "符号" #: ../data/base.xml.in.h:2 msgid "Currency" msgstr "货币" #: ../data/base.xml.in.h:3 msgid "Letterlike" msgstr "字母式" #: ../data/base.xml.in.h:4 msgid "Miscellaneous" msgstr "杂项" #: ../data/base.xml.in.h:5 ../input-pad/unicode_block.h:116 msgid "Dingbats" msgstr "装饰记号" #. Translators: Superscripts and Subscripts #: ../data/base.xml.in.h:7 msgid "Super and Sub" msgstr "上标与下标" #: ../data/base.xml.in.h:8 msgid "Bold" msgstr "粗体" #: ../data/base.xml.in.h:9 msgid "Italic" msgstr "斜体" #: ../data/base.xml.in.h:10 msgid "Script" msgstr "脚本" #: ../data/base.xml.in.h:11 msgid "Double Struck" msgstr "双线体" #: ../data/base.xml.in.h:12 msgid "All" msgstr "全部" #: ../data/base.xml.in.h:13 ../data/zh.xml.in.h:2 msgid "Numbers" msgstr "数字" #: ../data/base.xml.in.h:14 msgid "Roman" msgstr "罗马数字" #: ../data/base.xml.in.h:15 msgid "Enclosed" msgstr "带圈或括号" #: ../data/base.xml.in.h:16 msgid "Fraction" msgstr "分数" #: ../data/base.xml.in.h:17 msgid "Technical" msgstr "技术" #: ../data/base.xml.in.h:18 msgid "Unit" msgstr "单元" #: ../data/base.xml.in.h:19 msgid "Mathematical" msgstr "数学" #: ../data/base.xml.in.h:20 msgid "Controls" msgstr "控制" #: ../data/base.xml.in.h:21 msgid "OCR" msgstr "OCR" #: ../data/base.xml.in.h:22 msgid "Graphics" msgstr "图形" #: ../data/base.xml.in.h:23 msgid "Arrow" msgstr "箭头" #: ../data/base.xml.in.h:24 ../input-pad/unicode_block.h:112 msgid "Box Drawing" msgstr "制表符" #: ../data/base.xml.in.h:25 ../input-pad/window-gtk.c:3685 msgid "Block" msgstr "块" #: ../data/base.xml.in.h:26 msgid "Geometric" msgstr "几何学" #: ../data/base.xml.in.h:27 msgid "Braille" msgstr "盲文" #: ../data/base.xml.in.h:28 msgid "Punctuations" msgstr "标点" #: ../data/base.xml.in.h:29 msgid "General" msgstr "一般" #: ../data/base.xml.in.h:30 msgid "CJK" msgstr "中日韩" #: ../data/base.xml.in.h:31 ../input-pad/unicode_block.h:145 msgid "CJK Compatibility" msgstr "中日韩兼容性" #: ../data/base.xml.in.h:32 msgid "Small Form" msgstr "小写" #: ../data/cmd.xml.in.h:1 msgid "Command" msgstr "命令" #: ../data/cmd.xml.in.h:2 msgid "Date" msgstr "日期" #: ../data/cmd.xml.in.h:3 msgid "Normal Date" msgstr "正常日期" #: ../data/cmd.xml.in.h:4 msgid "Date and Time" msgstr "日期和时间" #: ../data/cmd.xml.in.h:5 msgid "ChangeLog date" msgstr "变更日志日期" #: ../data/cmd.xml.in.h:6 msgid "USA English date" msgstr "美式英文日期" #: ../data/cmd.xml.in.h:7 msgid "UK English date" msgstr "英式英文日期" #: ../data/cmd.xml.in.h:8 msgid "ISO 8601 date" msgstr "ISO 8601 日期" #: ../data/cmd.xml.in.h:9 msgid "Era" msgstr "年代" #: ../data/cmd.xml.in.h:10 msgid "Century Year" msgstr "公元" #: ../data/cmd.xml.in.h:11 msgid "Normal Time" msgstr "正常时间" #: ../data/cmd.xml.in.h:12 msgid "English Time" msgstr "英文时间" #: ../data/cmd.xml.in.h:13 msgid "Month" msgstr "月" #: ../data/cmd.xml.in.h:14 msgid "English Month" msgstr "英文月" #: ../data/cmd.xml.in.h:15 msgid "Short Month" msgstr "短月" #: ../data/cmd.xml.in.h:16 msgid "English Short Month" msgstr "英文短月" #: ../data/cmd.xml.in.h:17 msgid "Weekday" msgstr "工作日" #: ../data/cmd.xml.in.h:18 msgid "English Weekday" msgstr "英文工作日" #: ../data/cmd.xml.in.h:19 msgid "Short Weekday" msgstr "短工作日" #: ../data/cmd.xml.in.h:20 msgid "English Short Weekday" msgstr "英文短工作日" #: ../data/goth.xml.in.h:1 ../input-pad/unicode_block.h:196 msgid "Gothic" msgstr "哥特式" #: ../data/input-pad.desktop.in.h:1 ../input-pad/dialog.ui.h:42 #: ../input-pad/window-gtk.c:5084 ../input-pad/window-gtk.c:5085 #: ../input-pad/window-gtk.ui.h:1 msgid "Input Pad" msgstr "输入面板" #. "IPA" stands for "International Phonetic Alphabet" #: ../data/ipa-obsolete.xml.in.h:2 msgid "IPA (Obsolete)" msgstr "国际音标(已弃用)" #: ../data/ipa-obsolete.xml.in.h:3 ../data/ipa.xml.in.h:6 msgid "Open back unrounded vowel" msgstr "开后不圆唇元音" #: ../data/ipa-obsolete.xml.in.h:4 msgid "Palatalized voiced bilabial plosive" msgstr "腭化浊化双唇爆发音" #: ../data/ipa-obsolete.xml.in.h:5 #, fuzzy msgid "Voiceless palatal implosive" msgstr "清化硬颚音" #: ../data/ipa-obsolete.xml.in.h:6 ../data/ipa.xml.in.h:138 msgid "Alveolar click" msgstr "" #: ../data/ipa-obsolete.xml.in.h:7 msgid "Palatalized voiced alveolar plosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:8 ../data/ipa.xml.in.h:25 msgid "Voiced alveolar affricate" msgstr "" #: ../data/ipa-obsolete.xml.in.h:9 ../data/ipa.xml.in.h:27 msgid "Voiced alveopalatal affricate" msgstr "" #: ../data/ipa-obsolete.xml.in.h:10 ../data/ipa.xml.in.h:26 msgid "Voiced palato-alveolar affricate" msgstr "" #: ../data/ipa-obsolete.xml.in.h:11 msgid "Palatalized voiceless labiodental fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:12 msgid "Palatalized voiced velar plosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:13 msgid "Palatalized voiceless velar plosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:14 msgid "Voiceless velar implosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:15 msgid "Palatalized alveolar lateral approximant" msgstr "" #: ../data/ipa-obsolete.xml.in.h:16 msgid "Palatalized bilabial nasal" msgstr "" #: ../data/ipa-obsolete.xml.in.h:17 msgid "Palatalized alveolar nasal" msgstr "" #: ../data/ipa-obsolete.xml.in.h:18 msgid "Syllabic alveolar nasal" msgstr "" #: ../data/ipa-obsolete.xml.in.h:19 msgid "Palatalized voiceless bilabial plosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:20 msgid "Voiceless bilabial implosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:21 msgid "Palatalized alveolar trill" msgstr "" #: ../data/ipa-obsolete.xml.in.h:22 msgid "Voiced strident apico-alveolar trill" msgstr "" #: ../data/ipa-obsolete.xml.in.h:23 msgid "Palatalized voiceless alveolar fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:24 ../data/ipa.xml.in.h:19 msgid "Voiceless alveopalatal fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:25 msgid "Labialized voiceless palato-alveolar fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:26 ../data/ipa.xml.in.h:103 msgid "Voiceless alveopalatal affricate" msgstr "" #: ../data/ipa-obsolete.xml.in.h:27 ../data/ipa.xml.in.h:101 msgid "Voiceless alveolar affricate" msgstr "" #: ../data/ipa-obsolete.xml.in.h:28 ../data/ipa.xml.in.h:102 msgid "Voiceless palato-alveolar affricate" msgstr "" #: ../data/ipa-obsolete.xml.in.h:29 msgid "Palatalized voiceless alveolar plosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:30 msgid "Voiceless alveolar implosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:31 ../data/ipa.xml.in.h:137 msgid "Dental click" msgstr "" #: ../data/ipa-obsolete.xml.in.h:32 msgid "Voiceless uvular implosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:33 msgid "Palatalized voiced labiodental fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:34 msgid "Palatalized voiceless velar fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:35 msgid "Palatalized voiced alveolar fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:36 msgid "Labialized voiced palato-alveolar fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:37 ../data/ipa.xml.in.h:128 msgid "Voiced alveopalatal fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:38 ../data/ipa.xml.in.h:106 msgid "Near-close near-back vowel" msgstr "" #: ../data/ipa-obsolete.xml.in.h:39 ../data/ipa.xml.in.h:140 msgid "Alveolar lateral click" msgstr "" #: ../data/ipa-obsolete.xml.in.h:40 msgid "Labialized voiceless alveolar or dental fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:41 msgid "Labialized voiced alveolar or dental fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:42 msgid "Combining labialization mark" msgstr "" #: ../data/ipa-obsolete.xml.in.h:43 msgid "Combining palatalization mark" msgstr "" #. "IPA" stands for "International Phonetic Alphabet" #: ../data/ipa-unofficial.xml.in.h:2 msgid "IPA (Unofficial)" msgstr "" #: ../data/ipa-unofficial.xml.in.h:3 msgid "Voiced labiodental plosive" msgstr "" #: ../data/ipa-unofficial.xml.in.h:4 ../data/ipa.xml.in.h:18 msgid "Voiceless palatal lateral affricate" msgstr "" #: ../data/ipa-unofficial.xml.in.h:5 msgid "Voiced retroflex implosive" msgstr "" #: ../data/ipa-unofficial.xml.in.h:6 ../data/ipa.xml.in.h:88 msgid "Alveolar flap" msgstr "" #: ../data/ipa-unofficial.xml.in.h:7 ../data/ipa.xml.in.h:125 msgid "Voiceless palatal lateral fricative" msgstr "" #: ../data/ipa-unofficial.xml.in.h:8 ../data/ipa.xml.in.h:91 msgid "Retroflex flap" msgstr "" #: ../data/ipa-unofficial.xml.in.h:9 msgid "Voiceless retroflex lateral fricative" msgstr "" #. "PUA" stands for "Private Use Area" #: ../data/ipa-unofficial.xml.in.h:11 msgid "Voiceless retroflex lateral fricative (PUA)" msgstr "" #: ../data/ipa-unofficial.xml.in.h:12 ../data/ipa.xml.in.h:59 msgid "Voiceless velar lateral affricate" msgstr "" #: ../data/ipa-unofficial.xml.in.h:13 ../data/ipa.xml.in.h:68 msgid "Voiceless velar lateral fricative" msgstr "" #: ../data/ipa-unofficial.xml.in.h:14 msgid "Epiglottal trill" msgstr "" #: ../data/ipa-unofficial.xml.in.h:15 msgid "Voiceless labiodental plosive" msgstr "" #: ../data/ipa-unofficial.xml.in.h:16 msgid "Voiceless retroflex lateral affricate" msgstr "" #. "PUA" stands for "Private Use Area" #: ../data/ipa-unofficial.xml.in.h:18 msgid "Voiceless retroflex lateral affricate (PUA)" msgstr "" #: ../data/ipa-unofficial.xml.in.h:19 msgid "Combining stridency mark" msgstr "" #. "PUA" stands for "Private Use Area" #: ../data/ipa-unofficial.xml.in.h:21 msgid "Combining stridency mark (PUA)" msgstr "" #. "IPA" stands for "International Phonetic Alphabet" #: ../data/ipa.xml.in.h:2 msgid "IPA" msgstr "" #: ../data/ipa.xml.in.h:3 msgid "Open front unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:4 msgid "Open central unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:5 msgid "Near-open central vowel" msgstr "" #: ../data/ipa.xml.in.h:7 msgid "Open back rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:8 msgid "Open-mid back unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:9 msgid "Near-open front unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:10 msgid "Voiced bilabial plosive" msgstr "" #: ../data/ipa.xml.in.h:11 msgid "Voiced labiodental affricate" msgstr "" #: ../data/ipa.xml.in.h:12 msgid "Voiced bilabial implosive" msgstr "" #: ../data/ipa.xml.in.h:13 msgid "Bilabial trill" msgstr "" #: ../data/ipa.xml.in.h:14 msgid "Voiced bilabial fricative" msgstr "" #: ../data/ipa.xml.in.h:15 msgid "Voiceless palatal plosive" msgstr "" #: ../data/ipa.xml.in.h:16 msgid "Voiceless palatal fricative" msgstr "" #: ../data/ipa.xml.in.h:17 msgid "Voiceless palatal affricate" msgstr "" #: ../data/ipa.xml.in.h:20 msgid "Voiced alveolar plosive" msgstr "" #: ../data/ipa.xml.in.h:21 msgid "Voiced alveolar implosive" msgstr "" #: ../data/ipa.xml.in.h:22 msgid "Voiced retroflex plosive" msgstr "" #: ../data/ipa.xml.in.h:23 msgid "Voiced dental fricative" msgstr "" #: ../data/ipa.xml.in.h:24 msgid "Voiced alveolar lateral affricate" msgstr "" #: ../data/ipa.xml.in.h:28 msgid "Voiced retroflex affricate" msgstr "" #: ../data/ipa.xml.in.h:29 msgid "Close-mid front unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:30 msgid "Close-mid central unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:31 msgid "Mid-central vowel" msgstr "" #: ../data/ipa.xml.in.h:32 msgid "Rhotacized mid-central vowel" msgstr "" #: ../data/ipa.xml.in.h:33 msgid "Open-mid front unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:34 msgid "Open-mid central rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:35 msgid "Open-mid central unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:36 msgid "Rhotacized open-mid central unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:37 msgid "Voiceless labiodental fricative" msgstr "" #: ../data/ipa.xml.in.h:38 msgid "Velopharyngeal fricative" msgstr "" #: ../data/ipa.xml.in.h:39 msgid "Voiced velar plosive" msgstr "" #: ../data/ipa.xml.in.h:40 msgid "Voiced labial-velar plosive" msgstr "" #: ../data/ipa.xml.in.h:41 msgid "Voiced velar implosive" msgstr "" #: ../data/ipa.xml.in.h:42 msgid "Voiced uvular plosive" msgstr "" #: ../data/ipa.xml.in.h:43 msgid "Voiced uvular implosive" msgstr "" #: ../data/ipa.xml.in.h:44 msgid "Voiceless glottal fricative" msgstr "" #: ../data/ipa.xml.in.h:45 msgid "Voiced glottal fricative" msgstr "" #: ../data/ipa.xml.in.h:46 msgid "Voiceless pharyngeal fricative" msgstr "" #: ../data/ipa.xml.in.h:47 msgid "Voiceless coarticulated velar and palato-alveolar fricative" msgstr "" #: ../data/ipa.xml.in.h:48 msgid "Voiceless epiglottal fricative" msgstr "" #: ../data/ipa.xml.in.h:49 msgid "Close front unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:50 msgid "Near-close near-front unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:51 msgid "Near-close central unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:52 msgid "Close central unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:53 msgid "Palatal approximant" msgstr "" #: ../data/ipa.xml.in.h:54 msgid "Voiced palatal fricative" msgstr "" #: ../data/ipa.xml.in.h:55 msgid "Voiced palatal plosive" msgstr "" #: ../data/ipa.xml.in.h:56 msgid "Voiced palatal affricate" msgstr "" #: ../data/ipa.xml.in.h:57 msgid "Voiced palatal implosive" msgstr "" #: ../data/ipa.xml.in.h:58 msgid "Voiceless velar plosive" msgstr "" #: ../data/ipa.xml.in.h:60 msgid "Voiceless labial-velar plosive" msgstr "" #: ../data/ipa.xml.in.h:61 msgid "Voiceless velar affricate" msgstr "" #: ../data/ipa.xml.in.h:62 msgid "Alveolar lateral approximant" msgstr "" #: ../data/ipa.xml.in.h:63 msgid "Velarized alveolar lateral approximant" msgstr "" #: ../data/ipa.xml.in.h:64 msgid "Voiceless alveolar lateral fricative" msgstr "" #: ../data/ipa.xml.in.h:65 msgid "Retroflex lateral approximant" msgstr "" #: ../data/ipa.xml.in.h:66 msgid "Voiced alveolar lateral fricative" msgstr "" #: ../data/ipa.xml.in.h:67 msgid "Velar lateral approximant" msgstr "" #: ../data/ipa.xml.in.h:69 msgid "Bilabial nasal" msgstr "" #: ../data/ipa.xml.in.h:70 msgid "Labiodental nasal" msgstr "" #: ../data/ipa.xml.in.h:71 msgid "Alveolar nasal" msgstr "" #: ../data/ipa.xml.in.h:72 msgid "Velar nasal" msgstr "" #: ../data/ipa.xml.in.h:73 msgid "Labial-velar nasal" msgstr "" #: ../data/ipa.xml.in.h:74 msgid "Palatal nasal" msgstr "" #: ../data/ipa.xml.in.h:75 msgid "Retroflex nasal" msgstr "" #: ../data/ipa.xml.in.h:76 msgid "Uvular nasal" msgstr "" #: ../data/ipa.xml.in.h:77 msgid "Close-mid back rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:78 msgid "Close-mid front rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:79 msgid "Close-mid central rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:80 msgid "Open-mid front rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:81 msgid "Open front rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:82 msgid "Voiceless bilabial plosive" msgstr "" #: ../data/ipa.xml.in.h:83 msgid "Voiceless bilabial-labiodental affricate" msgstr "" #: ../data/ipa.xml.in.h:84 msgid "Voiceless bilabial affricate" msgstr "" #: ../data/ipa.xml.in.h:85 msgid "Voiceless labiodental affricate" msgstr "" #: ../data/ipa.xml.in.h:86 msgid "Voiceless uvular plosive" msgstr "" #: ../data/ipa.xml.in.h:87 msgid "Alveolar trill" msgstr "" #: ../data/ipa.xml.in.h:89 msgid "Alveolar lateral flap" msgstr "" #: ../data/ipa.xml.in.h:90 msgid "Uvular trill" msgstr "" #: ../data/ipa.xml.in.h:92 msgid "Alveolar approximant" msgstr "" #: ../data/ipa.xml.in.h:93 msgid "Retroflex approximant" msgstr "" #: ../data/ipa.xml.in.h:94 msgid "Voiced uvular fricative" msgstr "" #: ../data/ipa.xml.in.h:95 msgid "Voiceless alveolar fricative" msgstr "" #: ../data/ipa.xml.in.h:96 msgid "Voiceless palato-alveolar fricative" msgstr "" #: ../data/ipa.xml.in.h:97 msgid "Voiceless retroflex fricative" msgstr "" #: ../data/ipa.xml.in.h:98 msgid "Voiceless alveolar plosive" msgstr "" #: ../data/ipa.xml.in.h:99 msgid "Voiceless retroflex plosive" msgstr "" #: ../data/ipa.xml.in.h:100 msgid "Voiceless alveolar lateral affricate" msgstr "" #: ../data/ipa.xml.in.h:104 msgid "Voiceless retroflex affricate" msgstr "" #: ../data/ipa.xml.in.h:105 msgid "Close back rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:107 msgid "Near-close central vowel" msgstr "" #: ../data/ipa.xml.in.h:108 msgid "Close central rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:109 msgid "Labial-palatal approximant" msgstr "" #: ../data/ipa.xml.in.h:110 msgid "Close back unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:111 msgid "Voiced labiodental fricative" msgstr "" #: ../data/ipa.xml.in.h:112 msgid "Labiodental flap" msgstr "" #: ../data/ipa.xml.in.h:113 msgid "Labiodental approximant" msgstr "" #: ../data/ipa.xml.in.h:114 msgid "Voiced velar fricative" msgstr "" #: ../data/ipa.xml.in.h:115 msgid "Close-mid back unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:116 msgid "Voiced labiovelar approximant" msgstr "" #: ../data/ipa.xml.in.h:117 msgid "Voiceless labiovelar approximant" msgstr "" #: ../data/ipa.xml.in.h:118 msgid "Velar approximant" msgstr "" #: ../data/ipa.xml.in.h:119 msgid "Bilabial percussive" msgstr "" #: ../data/ipa.xml.in.h:120 msgid "Voiceless velar fricative" msgstr "" #: ../data/ipa.xml.in.h:121 msgid "Voiceless uvular fricative" msgstr "" #: ../data/ipa.xml.in.h:122 msgid "Close front rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:123 msgid "Near-close near-front rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:124 msgid "Palatal lateral approximant" msgstr "" #: ../data/ipa.xml.in.h:126 msgid "Voiced alveolar fricative" msgstr "" #: ../data/ipa.xml.in.h:127 msgid "Voiced palato-alveolar fricative" msgstr "" #: ../data/ipa.xml.in.h:129 msgid "Voiced retroflex fricative" msgstr "" #: ../data/ipa.xml.in.h:130 msgid "Voiceless dental fricative" msgstr "" #: ../data/ipa.xml.in.h:131 msgid "Voiceless bilabial fricative" msgstr "" #: ../data/ipa.xml.in.h:132 msgid "Glottal stop" msgstr "" #: ../data/ipa.xml.in.h:133 msgid "Epiglottal plosive" msgstr "" #: ../data/ipa.xml.in.h:134 msgid "Voiced pharyngeal fricative" msgstr "" #: ../data/ipa.xml.in.h:135 msgid "Voiced epiglottal fricative" msgstr "" #: ../data/ipa.xml.in.h:136 msgid "Bilabial click" msgstr "" #: ../data/ipa.xml.in.h:139 msgid "Palatal click" msgstr "" #: ../data/ipa.xml.in.h:141 msgid "Bidental percussive" msgstr "" #: ../data/ipa.xml.in.h:142 msgid "Aspiration mark" msgstr "" #: ../data/ipa.xml.in.h:143 msgid "Non-aspiration mark" msgstr "" #: ../data/ipa.xml.in.h:144 msgid "Breathy voice mark" msgstr "" #: ../data/ipa.xml.in.h:145 msgid "Palatalization mark" msgstr "" #: ../data/ipa.xml.in.h:146 msgid "Lateral release mark" msgstr "" #: ../data/ipa.xml.in.h:147 msgid "Bilabial nasal release mark" msgstr "" #: ../data/ipa.xml.in.h:148 msgid "Labiodental nasal release mark" msgstr "" #: ../data/ipa.xml.in.h:149 msgid "Alveolar nasal release mark" msgstr "" #: ../data/ipa.xml.in.h:150 msgid "Palatal nasal release mark" msgstr "" #: ../data/ipa.xml.in.h:151 msgid "Retroflex nasal release mark" msgstr "" #: ../data/ipa.xml.in.h:152 msgid "Uvular nasal release mark" msgstr "" #: ../data/ipa.xml.in.h:153 msgid "Labio-palatalization mark" msgstr "" #: ../data/ipa.xml.in.h:154 msgid "Labiodentalization mark" msgstr "" #: ../data/ipa.xml.in.h:155 msgid "Labialization mark" msgstr "" #: ../data/ipa.xml.in.h:156 msgid "Velarization mark" msgstr "" #: ../data/ipa.xml.in.h:157 msgid "Glottalization mark" msgstr "" #: ../data/ipa.xml.in.h:158 msgid "Pharyngealization mark" msgstr "" #: ../data/ipa.xml.in.h:159 msgid "Combining velarization/pharyngealization mark" msgstr "" #: ../data/ipa.xml.in.h:160 msgid "Combining laryngealization mark" msgstr "" #: ../data/ipa.xml.in.h:161 msgid "Combining retroflexion mark" msgstr "" #: ../data/ipa.xml.in.h:162 msgid "Ejection mark" msgstr "" #: ../data/ipa.xml.in.h:163 msgid "Rhotacization mark" msgstr "" #: ../data/ipa.xml.in.h:164 msgid "Combining dentalization mark" msgstr "" #: ../data/ipa.xml.in.h:165 msgid "Combining dentolabialization mark" msgstr "" #: ../data/ipa.xml.in.h:166 msgid "Combining alveolarization mark" msgstr "" #: ../data/ipa.xml.in.h:167 msgid "Combining linguolabialization mark" msgstr "" #: ../data/ipa.xml.in.h:168 msgid "Combining apicalization mark" msgstr "" #: ../data/ipa.xml.in.h:169 msgid "Combining laminalization mark" msgstr "" #: ../data/ipa.xml.in.h:170 msgid "Combining centralization mark" msgstr "" #: ../data/ipa.xml.in.h:171 msgid "Combining mid-centralization mark" msgstr "" #: ../data/ipa.xml.in.h:172 msgid "Combining nasalization mark" msgstr "" #: ../data/ipa.xml.in.h:173 msgid "Combining nasalization mark below" msgstr "" #: ../data/ipa.xml.in.h:174 msgid "Combining denasalization mark" msgstr "" #: ../data/ipa.xml.in.h:175 msgid "Combining nasal friction mark" msgstr "" #: ../data/ipa.xml.in.h:176 msgid "Combining velopharyngeal friction mark" msgstr "" #: ../data/ipa.xml.in.h:177 msgid "Combining voiced mark" msgstr "" #: ../data/ipa.xml.in.h:178 msgid "Combining voiceless mark" msgstr "" #: ../data/ipa.xml.in.h:179 msgid "Combining voiceless mark above" msgstr "" #: ../data/ipa.xml.in.h:180 msgid "Pre-voicing/post-voicing mark" msgstr "" #: ../data/ipa.xml.in.h:181 msgid "Combining breathy voice mark" msgstr "" #: ../data/ipa.xml.in.h:182 msgid "Combining unreleased stop mark" msgstr "" #: ../data/ipa.xml.in.h:183 msgid "Combining more rounded mark" msgstr "" #: ../data/ipa.xml.in.h:184 msgid "Combining less rounded mark" msgstr "" #: ../data/ipa.xml.in.h:185 msgid "Combining labial spreading mark" msgstr "" #: ../data/ipa.xml.in.h:186 msgid "Combining syllabic mark" msgstr "" #: ../data/ipa.xml.in.h:187 msgid "Combining syllabic mark above" msgstr "" #: ../data/ipa.xml.in.h:188 msgid "Combining non-syllabic mark" msgstr "" #: ../data/ipa.xml.in.h:189 msgid "Combining non-syllabic mark above" msgstr "" #: ../data/ipa.xml.in.h:190 msgid "Combining top tone mark" msgstr "" #: ../data/ipa.xml.in.h:191 msgid "Combining high tone mark" msgstr "" #: ../data/ipa.xml.in.h:192 msgid "Combining mid tone mark" msgstr "" #: ../data/ipa.xml.in.h:193 msgid "Combining low tone mark" msgstr "" #: ../data/ipa.xml.in.h:194 msgid "Combining bottom tone mark" msgstr "" #: ../data/ipa.xml.in.h:195 msgid "Combining falling tone mark" msgstr "" #: ../data/ipa.xml.in.h:196 msgid "Combining high falling tone mark" msgstr "" #: ../data/ipa.xml.in.h:197 msgid "Combining low falling tone mark" msgstr "" #: ../data/ipa.xml.in.h:198 msgid "Combining rising tone mark" msgstr "" #: ../data/ipa.xml.in.h:199 msgid "Combining high rising tone mark" msgstr "" #: ../data/ipa.xml.in.h:200 msgid "Combining low rising tone mark" msgstr "" #: ../data/ipa.xml.in.h:201 msgid "Combining dipping tone mark" msgstr "" #: ../data/ipa.xml.in.h:202 msgid "Combining peaking tone mark" msgstr "" #: ../data/ipa.xml.in.h:203 msgid "Top tone letter" msgstr "" #: ../data/ipa.xml.in.h:204 msgid "High tone letter" msgstr "" #: ../data/ipa.xml.in.h:205 msgid "Mid tone letter" msgstr "" #: ../data/ipa.xml.in.h:206 msgid "Low tone letter" msgstr "" #: ../data/ipa.xml.in.h:207 msgid "Bottom tone letter" msgstr "" #: ../data/ipa.xml.in.h:208 msgid "Falling tone digraph" msgstr "" #: ../data/ipa.xml.in.h:209 msgid "High falling tone digraph" msgstr "" #: ../data/ipa.xml.in.h:210 msgid "Rising tone digraph" msgstr "" #: ../data/ipa.xml.in.h:211 msgid "High rising tone digraph" msgstr "" #: ../data/ipa.xml.in.h:212 msgid "Low rising tone digraph" msgstr "" #: ../data/ipa.xml.in.h:213 msgid "Dipping tone trigraph" msgstr "" #: ../data/ipa.xml.in.h:214 msgid "Peaking tone trigraph" msgstr "" #: ../data/ipa.xml.in.h:215 msgid "Upstep mark" msgstr "" #: ../data/ipa.xml.in.h:216 msgid "Downstep mark" msgstr "" #: ../data/ipa.xml.in.h:217 msgid "Minor break" msgstr "" #: ../data/ipa.xml.in.h:218 msgid "Major break" msgstr "" #: ../data/ipa.xml.in.h:219 msgid "Rising intonation mark" msgstr "" #: ../data/ipa.xml.in.h:220 msgid "Falling intonation mark" msgstr "" #: ../data/ipa.xml.in.h:221 msgid "Advanced articulation mark" msgstr "" #: ../data/ipa.xml.in.h:222 msgid "Retracted articulation mark" msgstr "" #: ../data/ipa.xml.in.h:223 msgid "Combining advanced articulation mark" msgstr "" #: ../data/ipa.xml.in.h:224 msgid "Combining retracted articulation mark" msgstr "" #: ../data/ipa.xml.in.h:225 msgid "Raised sound mark" msgstr "" #: ../data/ipa.xml.in.h:226 msgid "Lowered sound mark" msgstr "" #: ../data/ipa.xml.in.h:227 msgid "Combining raised sound mark" msgstr "" #: ../data/ipa.xml.in.h:228 msgid "Combining lowered sound mark" msgstr "" #: ../data/ipa.xml.in.h:229 msgid "Combining tongue root advancement mark" msgstr "" #: ../data/ipa.xml.in.h:230 msgid "Combining tongue root retraction mark" msgstr "" #: ../data/ipa.xml.in.h:231 msgid "Combining strong articulation mark" msgstr "" #: ../data/ipa.xml.in.h:232 msgid "Combining weak articulation mark" msgstr "" #: ../data/ipa.xml.in.h:233 msgid "Combining whistled articulation mark" msgstr "" #: ../data/ipa.xml.in.h:234 msgid "Combining sliding articulation mark" msgstr "" #: ../data/ipa.xml.in.h:235 msgid "Egression mark" msgstr "" #: ../data/ipa.xml.in.h:236 msgid "Ingression mark" msgstr "" #: ../data/ipa.xml.in.h:237 msgid "Combining ligature tie" msgstr "" #: ../data/ipa.xml.in.h:238 msgid "Combining ligature undertie" msgstr "" #: ../data/ipa.xml.in.h:239 msgid "Elongation mark" msgstr "" #: ../data/ipa.xml.in.h:240 msgid "Weak elongation mark" msgstr "" #: ../data/ipa.xml.in.h:241 msgid "Combining extra-short duration mark" msgstr "" #: ../data/ipa.xml.in.h:242 msgid "Liaison mark" msgstr "" #: ../data/ipa.xml.in.h:243 msgid "Stress mark" msgstr "" #: ../data/ipa.xml.in.h:244 msgid "Weak stress mark" msgstr "" #: ../data/ipa.xml.in.h:245 msgid "Syllable break" msgstr "" #: ../data/ipa.xml.in.h:246 msgid "Opening orthographic bracket" msgstr "" #: ../data/ipa.xml.in.h:247 msgid "Closing orthographic bracket" msgstr "" #: ../data/ja.xml.in.h:1 msgid "Japanese" msgstr "" #: ../data/ja.xml.in.h:2 ../input-pad/unicode_block.h:136 msgid "Hiragana" msgstr "" #: ../data/ja.xml.in.h:3 ../input-pad/unicode_block.h:137 msgid "Katakana" msgstr "" #: ../data/ja.xml.in.h:4 ../data/zh.xml.in.h:3 msgid "Radicals" msgstr "" #: ../data/ja.xml.in.h:5 ../input-pad/unicode_block.h:132 msgid "CJK Radicals Supplement" msgstr "" #: ../data/keyboard.xml.in.h:1 msgid "Keyboard" msgstr "键盘" #: ../data/keyboard.xml.in.h:2 msgid "Function Key" msgstr "功能键" #: ../data/keyboard.xml.in.h:3 msgid "Key Pad" msgstr "按键板" #: ../data/latin.xml.in.h:1 msgid "ASCII" msgstr "ASCII" #: ../data/latin.xml.in.h:2 ../input-pad/unicode_block.h:38 msgid "Latin-1 Supplement" msgstr "" #: ../data/latin.xml.in.h:3 ../input-pad/unicode_block.h:39 msgid "Latin Extended-A" msgstr "" #: ../data/latin.xml.in.h:4 msgid "Old and Middle English" msgstr "" #: ../data/runr.xml.in.h:1 msgid "Runes (Unicode Block)" msgstr "" #: ../data/runr.xml.in.h:2 msgid "Runes (Elder Fuþark)" msgstr "" #: ../data/runr.xml.in.h:3 msgid "Runes (Younger Fuþark)" msgstr "" #: ../data/runr.xml.in.h:4 msgid "Runes (Fuþorc)" msgstr "" #: ../data/shaw.xml.in.h:1 ../input-pad/unicode_block.h:200 msgid "Shavian" msgstr "" #: ../data/str.xml.in.h:1 msgid "Chat" msgstr "聊天" #: ../data/str.xml.in.h:2 msgid "Emoji" msgstr "" #: ../data/str.xml.in.h:3 msgid "Rain" msgstr "" #: ../data/str.xml.in.h:4 msgid "Comet" msgstr "" #: ../data/str.xml.in.h:5 msgid "Cross" msgstr "" #: ../data/str.xml.in.h:6 msgid "Solar" msgstr "" #: ../data/str.xml.in.h:7 msgid "Mercury" msgstr "" #: ../data/str.xml.in.h:8 msgid "Venus" msgstr "" #: ../data/str.xml.in.h:9 msgid "Earth" msgstr "" #: ../data/str.xml.in.h:10 msgid "Mars" msgstr "" #: ../data/str.xml.in.h:11 msgid "Jupiter" msgstr "" #: ../data/str.xml.in.h:12 msgid "Saturn" msgstr "" #: ../data/str.xml.in.h:13 msgid "Uranus" msgstr "" #: ../data/str.xml.in.h:14 msgid "Neptune" msgstr "" #: ../data/str.xml.in.h:15 msgid "Pluto" msgstr "" #: ../data/str.xml.in.h:16 msgid "Aries" msgstr "" #: ../data/str.xml.in.h:17 msgid "Taurus" msgstr "" #: ../data/str.xml.in.h:18 msgid "Gemini" msgstr "" #: ../data/str.xml.in.h:19 msgid "Cancer" msgstr "" #: ../data/str.xml.in.h:20 msgid "Leo" msgstr "" #: ../data/str.xml.in.h:21 msgid "Virgo" msgstr "" #: ../data/str.xml.in.h:22 msgid "Libra" msgstr "" #: ../data/str.xml.in.h:23 msgid "Scorpius" msgstr "" #: ../data/str.xml.in.h:24 msgid "Sagittarius" msgstr "" #: ../data/str.xml.in.h:25 msgid "Capricorn" msgstr "" #: ../data/str.xml.in.h:26 msgid "Aquarius" msgstr "" #: ../data/str.xml.in.h:27 msgid "Pisces" msgstr "" #: ../data/str.xml.in.h:28 msgid "Dice 1" msgstr "" #: ../data/str.xml.in.h:29 msgid "Dice 2" msgstr "" #: ../data/str.xml.in.h:30 msgid "Dice 3" msgstr "" #: ../data/str.xml.in.h:31 msgid "Dice 4" msgstr "" #: ../data/str.xml.in.h:32 msgid "Dice 5" msgstr "" #: ../data/str.xml.in.h:33 msgid "Dice 6" msgstr "" #: ../data/str.xml.in.h:34 msgid "Anchor" msgstr "" #: ../data/str.xml.in.h:35 msgid "Sword" msgstr "" #: ../data/str.xml.in.h:36 msgid "Scales" msgstr "" #: ../data/str.xml.in.h:37 msgid "Conversation" msgstr "" #: ../data/str.xml.in.h:38 msgid "Warning" msgstr "" #: ../data/str.xml.in.h:39 msgid "Thunder" msgstr "" #: ../data/str.xml.in.h:40 msgid "Coffin" msgstr "" #: ../data/str.xml.in.h:41 msgid "Gender" msgstr "" #: ../data/str.xml.in.h:42 msgid "Soccer" msgstr "" #: ../data/str.xml.in.h:43 msgid "Baseball" msgstr "" #: ../data/str.xml.in.h:44 msgid "Snowman" msgstr "" #: ../data/str.xml.in.h:45 msgid "Shoji" msgstr "" #: ../data/str.xml.in.h:46 msgid "Maintenance" msgstr "" #: ../data/str.xml.in.h:47 msgid "Roadblock" msgstr "" #: ../data/str.xml.in.h:48 msgid "No entry" msgstr "" #: ../data/str.xml.in.h:49 msgid "Truck" msgstr "" #: ../data/str.xml.in.h:50 msgid "Torii" msgstr "" #: ../data/str.xml.in.h:51 msgid "Church" msgstr "" #: ../data/str.xml.in.h:52 msgid "Castle" msgstr "" #: ../data/str.xml.in.h:53 msgid "Historic site" msgstr "" #: ../data/str.xml.in.h:54 msgid "Power station" msgstr "" #: ../data/str.xml.in.h:55 msgid "Lighthouse" msgstr "" #: ../data/str.xml.in.h:56 msgid "Mountain" msgstr "" #: ../data/str.xml.in.h:57 msgid "Beach" msgstr "" #: ../data/str.xml.in.h:58 msgid "Park" msgstr "" #: ../data/str.xml.in.h:59 msgid "Ferry" msgstr "" #: ../data/str.xml.in.h:60 msgid "Sailboat" msgstr "" #: ../data/str.xml.in.h:61 msgid "Ice rink" msgstr "" #: ../data/str.xml.in.h:62 msgid "Scissors" msgstr "" #: ../data/str.xml.in.h:63 msgid "Airplane" msgstr "" #: ../data/str.xml.in.h:64 msgid "Clenched Fist" msgstr "" #: ../data/str.xml.in.h:65 msgid "Hand" msgstr "" #: ../data/str.xml.in.h:66 msgid "V Sign" msgstr "" #: ../data/str.xml.in.h:67 msgid "Writing" msgstr "" #: ../data/str.xml.in.h:68 msgid "Pencil" msgstr "" #: ../data/str.xml.in.h:69 msgid "Pen" msgstr "" #: ../data/str.xml.in.h:70 msgid "Star" msgstr "星星" #: ../data/str.xml.in.h:71 msgid "Typhoon" msgstr "" #: ../data/str.xml.in.h:72 msgid "Fog" msgstr "" #: ../data/str.xml.in.h:73 msgid "Umbrella" msgstr "" #: ../data/str.xml.in.h:74 msgid "Night sky" msgstr "" #: ../data/str.xml.in.h:75 msgid "Sunrise" msgstr "" #: ../data/str.xml.in.h:76 msgid "Sunset" msgstr "" #: ../data/str.xml.in.h:77 msgid "Bridge" msgstr "" #: ../data/str.xml.in.h:78 msgid "Wave" msgstr "" #: ../data/str.xml.in.h:79 msgid "New Moon" msgstr "" #: ../data/str.xml.in.h:80 msgid "Crescent Moon" msgstr "" #: ../data/str.xml.in.h:81 msgid "Quarter Moon" msgstr "" #: ../data/str.xml.in.h:82 msgid "Gibbous Moon" msgstr "" #: ../data/str.xml.in.h:83 msgid "Full Moon" msgstr "" #: ../data/str.xml.in.h:84 msgid "Moon" msgstr "月亮" #: ../data/str.xml.in.h:85 msgid "Sun" msgstr "" #: ../data/str.xml.in.h:86 msgid "Cloud" msgstr "" #: ../data/str.xml.in.h:87 msgid "Palm" msgstr "" #: ../data/str.xml.in.h:88 msgid "Hot Pepper" msgstr "" #: ../data/str.xml.in.h:89 msgid "Flower" msgstr "" #: ../data/str.xml.in.h:90 msgid "Tulip" msgstr "" #: ../data/str.xml.in.h:91 msgid "Cherry" msgstr "" #: ../data/str.xml.in.h:92 msgid "Rose" msgstr "" #: ../data/str.xml.in.h:93 msgid "Hibiscus" msgstr "" #: ../data/str.xml.in.h:94 msgid "Sunflower" msgstr "" #: ../data/str.xml.in.h:95 msgid "Blossom" msgstr "" #: ../data/str.xml.in.h:96 msgid "Clover" msgstr "" #: ../data/str.xml.in.h:97 msgid "Maple" msgstr "" #: ../data/str.xml.in.h:98 msgid "Fallen Leaf" msgstr "" #: ../data/str.xml.in.h:99 msgid "Leaf" msgstr "" #: ../data/str.xml.in.h:100 msgid "Mushroom" msgstr "" #: ../data/str.xml.in.h:101 msgid "Tomato" msgstr "" #: ../data/str.xml.in.h:102 msgid "Eggplant" msgstr "" #: ../data/str.xml.in.h:103 msgid "Grape" msgstr "" #: ../data/str.xml.in.h:104 msgid "Melon" msgstr "" #: ../data/str.xml.in.h:105 msgid "Watermelon" msgstr "" #: ../data/str.xml.in.h:106 msgid "Tangerine" msgstr "" #: ../data/str.xml.in.h:107 msgid "Lemon" msgstr "" #: ../data/str.xml.in.h:108 msgid "Banana" msgstr "" #: ../data/str.xml.in.h:109 msgid "Pineapple" msgstr "" #: ../data/str.xml.in.h:110 msgid "Apple" msgstr "" #: ../data/str.xml.in.h:111 msgid "Pear" msgstr "" #: ../data/str.xml.in.h:112 msgid "Peach" msgstr "" #: ../data/str.xml.in.h:113 msgid "Strawberry" msgstr "" #: ../data/str.xml.in.h:114 msgid "Hamburger" msgstr "" #: ../data/str.xml.in.h:115 msgid "Pizza" msgstr "" #: ../data/str.xml.in.h:116 msgid "Meat" msgstr "" #: ../data/str.xml.in.h:117 msgid "Poultry" msgstr "" #: ../data/str.xml.in.h:118 msgid "Rice Cracker" msgstr "" #: ../data/str.xml.in.h:119 msgid "Rice Ball" msgstr "" #: ../data/str.xml.in.h:120 msgid "Rice" msgstr "" #: ../data/str.xml.in.h:121 msgid "Curry" msgstr "" #: ../data/str.xml.in.h:122 msgid "Ramen" msgstr "" #: ../data/str.xml.in.h:123 msgid "Spaghetti" msgstr "" #: ../data/str.xml.in.h:124 msgid "Bread" msgstr "" #: ../data/str.xml.in.h:125 msgid "Fried Potato" msgstr "" #: ../data/str.xml.in.h:126 msgid "Roasted Sweet Potato" msgstr "" #: ../data/str.xml.in.h:127 msgid "Dango" msgstr "" #: ../data/str.xml.in.h:128 msgid "Oden" msgstr "" #: ../data/str.xml.in.h:129 msgid "Sushi" msgstr "" #: ../data/str.xml.in.h:130 msgid "Fried Shrimp" msgstr "" #: ../data/str.xml.in.h:131 msgid "Fish Cake" msgstr "" #: ../data/str.xml.in.h:132 msgid "Soft Ice Cream" msgstr "" #: ../data/str.xml.in.h:133 msgid "Shaved Ice" msgstr "" #: ../data/str.xml.in.h:134 msgid "Ice Cream" msgstr "" #: ../data/str.xml.in.h:135 msgid "Doughnut" msgstr "" #: ../data/str.xml.in.h:136 msgid "Cookie" msgstr "" #: ../data/str.xml.in.h:137 msgid "Chocolate" msgstr "" #: ../data/str.xml.in.h:138 msgid "Candy" msgstr "" #: ../data/str.xml.in.h:139 msgid "Custard" msgstr "" #: ../data/str.xml.in.h:140 msgid "Honey" msgstr "" #: ../data/str.xml.in.h:141 msgid "Shortcake" msgstr "" #: ../data/str.xml.in.h:142 msgid "Bento" msgstr "" #: ../data/str.xml.in.h:143 msgid "Pot of Food" msgstr "" #: ../data/str.xml.in.h:144 msgid "Cooking" msgstr "" #: ../data/str.xml.in.h:145 msgid "Meal" msgstr "" #: ../data/str.xml.in.h:146 msgid "Cup" msgstr "" #: ../data/str.xml.in.h:147 msgid "Sake" msgstr "" #: ../data/str.xml.in.h:148 msgid "Wine" msgstr "" #: ../data/str.xml.in.h:149 msgid "Cocktail" msgstr "" #: ../data/str.xml.in.h:150 msgid "Drink" msgstr "" #: ../data/str.xml.in.h:151 msgid "Beer" msgstr "啤酒" #: ../data/str.xml.in.h:152 msgid "Cheers" msgstr "" #: ../data/str.xml.in.h:153 msgid "Baby Bottle" msgstr "" #: ../data/str.xml.in.h:154 msgid "Ribbon" msgstr "" #: ../data/str.xml.in.h:155 msgid "Present" msgstr "礼物" #: ../data/str.xml.in.h:156 msgid "Cake" msgstr "蛋糕" #: ../data/str.xml.in.h:157 msgid "Hallowe'en" msgstr "" #: ../data/str.xml.in.h:158 msgid "Christmas" msgstr "" #: ../data/str.xml.in.h:159 msgid "Piano" msgstr "" #: ../data/str.xml.in.h:160 msgid "Microphone" msgstr "" #: ../data/str.xml.in.h:161 msgid "Headphone" msgstr "" #: ../data/str.xml.in.h:162 msgid "Hat" msgstr "" #: ../data/str.xml.in.h:163 msgid "Musical Note" msgstr "乐符" #: ../data/str.xml.in.h:164 msgid "Saxophone" msgstr "" #: ../data/str.xml.in.h:165 msgid "Guiter" msgstr "" #: ../data/str.xml.in.h:166 msgid "Trumpet" msgstr "" #: ../data/str.xml.in.h:167 msgid "Violin" msgstr "" #: ../data/str.xml.in.h:168 msgid "Musical Score" msgstr "" #: ../data/str.xml.in.h:169 msgid "Tennis" msgstr "" #: ../data/str.xml.in.h:170 msgid "Ski" msgstr "" #: ../data/str.xml.in.h:171 msgid "Basketball" msgstr "" #: ../data/str.xml.in.h:172 msgid "Flag" msgstr "" #: ../data/str.xml.in.h:173 msgid "Show Board" msgstr "" #: ../data/str.xml.in.h:174 msgid "Running" msgstr "" #: ../data/str.xml.in.h:175 msgid "Surfer" msgstr "" #: ../data/str.xml.in.h:176 msgid "Medal" msgstr "" #: ../data/str.xml.in.h:177 msgid "Trophy" msgstr "" #: ../data/str.xml.in.h:178 msgid "Horse Racing" msgstr "" #: ../data/str.xml.in.h:179 msgid "American Football" msgstr "" #: ../data/str.xml.in.h:180 msgid "Rugby" msgstr "" #: ../data/str.xml.in.h:181 msgid "Swimmer" msgstr "" #: ../data/str.xml.in.h:182 msgid "Weight Lifting" msgstr "" #: ../data/str.xml.in.h:183 msgid "Golf" msgstr "" #: ../data/str.xml.in.h:184 msgid "Motorcycle" msgstr "" #: ../data/str.xml.in.h:185 msgid "Race" msgstr "" #: ../data/str.xml.in.h:186 msgid "House" msgstr "" #: ../data/str.xml.in.h:187 msgid "Office" msgstr "" #: ../data/str.xml.in.h:188 msgid "Hospital" msgstr "" #: ../data/str.xml.in.h:189 msgid "Bank" msgstr "" #: ../data/str.xml.in.h:190 msgid "Hotel" msgstr "" #: ../data/str.xml.in.h:191 msgid "School" msgstr "" #: ../data/str.xml.in.h:192 msgid "Factory" msgstr "" #: ../data/str.xml.in.h:193 msgid "Rat" msgstr "" #: ../data/str.xml.in.h:194 msgid "Mouse" msgstr "" #: ../data/str.xml.in.h:195 msgid "Cow" msgstr "" #: ../data/str.xml.in.h:196 msgid "Tiger" msgstr "" #: ../data/str.xml.in.h:197 msgid "Leopard" msgstr "" #: ../data/str.xml.in.h:198 msgid "Rabbit" msgstr "" #: ../data/str.xml.in.h:199 msgid "Cat" msgstr "猫" #: ../data/str.xml.in.h:200 msgid "Dragon" msgstr "" #: ../data/str.xml.in.h:201 msgid "Crocodile" msgstr "" #: ../data/str.xml.in.h:202 msgid "Whale" msgstr "" #: ../data/str.xml.in.h:203 msgid "Snail" msgstr "" #: ../data/str.xml.in.h:204 msgid "Snake" msgstr "" #: ../data/str.xml.in.h:205 msgid "Horse" msgstr "" #: ../data/str.xml.in.h:206 msgid "Sheep" msgstr "" #: ../data/str.xml.in.h:207 msgid "Goat" msgstr "" #: ../data/str.xml.in.h:208 msgid "Monkey" msgstr "猴子" #: ../data/str.xml.in.h:209 msgid "Chicken" msgstr "" #: ../data/str.xml.in.h:210 msgid "Dog" msgstr "" #: ../data/str.xml.in.h:211 msgid "Pig" msgstr "" #: ../data/str.xml.in.h:212 msgid "Elephant" msgstr "" #: ../data/str.xml.in.h:213 msgid "Octopus" msgstr "" #: ../data/str.xml.in.h:214 msgid "Spiral Shell" msgstr "" #: ../data/str.xml.in.h:215 msgid "Bug" msgstr "" #: ../data/str.xml.in.h:216 msgid "Ant" msgstr "" #: ../data/str.xml.in.h:217 msgid "Lady Beetle" msgstr "" #: ../data/str.xml.in.h:218 msgid "Fish" msgstr "" #: ../data/str.xml.in.h:219 msgid "Tropical Fish" msgstr "" #: ../data/str.xml.in.h:220 msgid "Blowfish" msgstr "" #: ../data/str.xml.in.h:221 msgid "Bird" msgstr "" #: ../data/str.xml.in.h:222 msgid "Penguin" msgstr "" #: ../data/str.xml.in.h:223 msgid "Koala" msgstr "" #: ../data/str.xml.in.h:224 msgid "Poodle" msgstr "" #: ../data/str.xml.in.h:225 msgid "Camel" msgstr "" #: ../data/str.xml.in.h:226 msgid "Dolphin" msgstr "" #: ../data/str.xml.in.h:227 msgid "Frog" msgstr "" #: ../data/str.xml.in.h:228 msgid "Hamster" msgstr "" #: ../data/str.xml.in.h:229 msgid "Wolf" msgstr "" #: ../data/str.xml.in.h:230 msgid "Bear" msgstr "熊" #: ../data/str.xml.in.h:231 msgid "Panda" msgstr "" #: ../data/str.xml.in.h:232 msgid "Eye" msgstr "" #: ../data/str.xml.in.h:233 msgid "Ear" msgstr "" #: ../data/str.xml.in.h:234 msgid "Nose" msgstr "" #: ../data/str.xml.in.h:235 msgid "Mouth" msgstr "" #: ../data/str.xml.in.h:236 msgid "Tongue" msgstr "吐舌" #: ../data/str.xml.in.h:237 msgid "Crown" msgstr "" #: ../data/str.xml.in.h:238 msgid "Glasses" msgstr "" #: ../data/str.xml.in.h:239 msgid "Necktie" msgstr "" #: ../data/str.xml.in.h:240 msgid "T-Shirt" msgstr "" #: ../data/str.xml.in.h:241 msgid "Jeans" msgstr "" #: ../data/str.xml.in.h:242 msgid "Dress" msgstr "" #: ../data/str.xml.in.h:243 msgid "Kimono" msgstr "" #: ../data/str.xml.in.h:244 msgid "Bikini" msgstr "" #: ../data/str.xml.in.h:245 msgid "Clothes" msgstr "" #: ../data/str.xml.in.h:246 msgid "Purse" msgstr "" #: ../data/str.xml.in.h:247 msgid "Handbag" msgstr "" #: ../data/str.xml.in.h:248 msgid "Pouch" msgstr "" #: ../data/str.xml.in.h:249 msgid "Shoe" msgstr "" #: ../data/str.xml.in.h:250 msgid "Footprint" msgstr "" #: ../data/str.xml.in.h:251 msgid "Account" msgstr "" #: ../data/str.xml.in.h:252 msgid "Boy" msgstr "男孩" #: ../data/str.xml.in.h:253 msgid "Girl" msgstr "" #: ../data/str.xml.in.h:254 msgid "Man" msgstr "" #: ../data/str.xml.in.h:255 msgid "Woman" msgstr "" #: ../data/str.xml.in.h:256 msgid "Family" msgstr "" #: ../data/str.xml.in.h:257 msgid "Restroom" msgstr "" #: ../data/str.xml.in.h:258 msgid "Men" msgstr "" #: ../data/str.xml.in.h:259 msgid "Women" msgstr "" #: ../data/str.xml.in.h:260 msgid "Princess" msgstr "" #: ../data/str.xml.in.h:261 msgid "Japanese Ogre" msgstr "" #: ../data/str.xml.in.h:262 msgid "Japanese Goblin" msgstr "" #: ../data/str.xml.in.h:263 msgid "Ghost" msgstr "" #: ../data/str.xml.in.h:264 msgid "Baby Angel" msgstr "" #: ../data/str.xml.in.h:265 msgid "Extraterrestrial Alien" msgstr "" #: ../data/str.xml.in.h:266 msgid "Alien Monster" msgstr "" #: ../data/str.xml.in.h:267 msgid "IMP" msgstr "" #: ../data/str.xml.in.h:268 msgid "Skull" msgstr "" #: ../data/str.xml.in.h:269 msgid "Information Desk Person" msgstr "" #: ../data/str.xml.in.h:270 msgid "Guardsman" msgstr "" #: ../data/str.xml.in.h:271 msgid "Dancer" msgstr "" #: ../data/str.xml.in.h:272 msgid "Lipstick" msgstr "" #: ../data/str.xml.in.h:273 msgid "Nail" msgstr "" #: ../data/str.xml.in.h:274 msgid "Face" msgstr "" #: ../data/str.xml.in.h:275 msgid "Haircut" msgstr "" #: ../data/str.xml.in.h:276 msgid "Syringe" msgstr "" #: ../data/str.xml.in.h:277 msgid "Medicine" msgstr "" #: ../data/str.xml.in.h:278 msgid "Kiss" msgstr "" #: ../data/str.xml.in.h:279 msgid "Love Letter" msgstr "" #: ../data/str.xml.in.h:280 msgid "Ring" msgstr "" #: ../data/str.xml.in.h:281 msgid "Gem Stone" msgstr "" #: ../data/str.xml.in.h:282 msgid "Wedding" msgstr "" #: ../data/str.xml.in.h:283 msgid "Heart" msgstr "" #: ../data/str.xml.in.h:284 msgid "Idea" msgstr "" #: ../data/str.xml.in.h:285 msgid "Anger" msgstr "" #: ../data/str.xml.in.h:286 msgid "Bomb" msgstr "" #: ../data/str.xml.in.h:287 msgid "Sleeping" msgstr "" #: ../data/str.xml.in.h:288 msgid "Collision" msgstr "" #: ../data/str.xml.in.h:289 msgid "Sweat" msgstr "" #: ../data/str.xml.in.h:290 msgid "Droplet" msgstr "" #: ../data/str.xml.in.h:291 msgid "Dash" msgstr "" #: ../data/str.xml.in.h:292 msgid "Poo" msgstr "" #: ../data/str.xml.in.h:293 msgid "Muscle" msgstr "" #: ../data/str.xml.in.h:294 msgid "Dizzy" msgstr "" #: ../data/str.xml.in.h:295 msgid "Speech" msgstr "" #: ../data/str.xml.in.h:296 msgid "Thought" msgstr "" #: ../data/str.xml.in.h:297 msgid "Perfect Score" msgstr "" #: ../data/str.xml.in.h:298 msgid "Pushpin" msgstr "" #: ../data/str.xml.in.h:299 msgid "Clip" msgstr "" #: ../data/str.xml.in.h:300 msgid "Speaker" msgstr "" #: ../data/str.xml.in.h:301 msgid "Battery" msgstr "" #: ../data/str.xml.in.h:302 msgid "Plug" msgstr "" #: ../data/str.xml.in.h:303 msgid "Search" msgstr "" #: ../data/str.xml.in.h:304 msgid "Bookmark" msgstr "" #: ../data/str.xml.in.h:305 msgid "Book" msgstr "" #: ../data/str.xml.in.h:306 msgid "Memo" msgstr "" #: ../data/str.xml.in.h:307 msgid "Mail" msgstr "" #: ../data/str.xml.in.h:308 msgid "Mobile Phone" msgstr "" #: ../data/str.xml.in.h:309 msgid "Camera" msgstr "" #: ../data/str.xml.in.h:310 msgid "Video" msgstr "" #: ../data/str.xml.in.h:311 msgid "Television" msgstr "" #: ../data/str.xml.in.h:312 msgid "Radio" msgstr "" #: ../data/str.xml.in.h:313 msgid "Key" msgstr "" #: ../data/str.xml.in.h:314 msgid "Lock" msgstr "" #: ../data/str.xml.in.h:315 msgid "Fire" msgstr "" #: ../data/str.xml.in.h:316 msgid "Wrench" msgstr "" #: ../data/str.xml.in.h:317 msgid "Hammer" msgstr "" #: ../data/str.xml.in.h:318 msgid "Bolt" msgstr "" #: ../data/str.xml.in.h:319 msgid "Hocho" msgstr "" #: ../data/str.xml.in.h:320 msgid "Pistol" msgstr "" #: ../data/str.xml.in.h:321 msgid "Microscope" msgstr "" #: ../data/str.xml.in.h:322 msgid "Telescope" msgstr "" #: ../data/str.xml.in.h:323 msgid "Crystal" msgstr "" #: ../data/str.xml.in.h:324 msgid "David Star" msgstr "" #: ../data/str.xml.in.h:325 msgid "Beginner" msgstr "" #: ../data/str.xml.in.h:326 msgid "Candle" msgstr "" #: ../data/str.xml.in.h:327 msgid "Hole" msgstr "" #: ../data/str.xml.in.h:328 msgid "Personal Computer" msgstr "" #: ../data/str.xml.in.h:329 msgid "keyboard" msgstr "" #: ../data/str.xml.in.h:330 msgid "Printer" msgstr "" #: ../data/str.xml.in.h:331 msgid "Calculator" msgstr "" #: ../data/str.xml.in.h:332 msgid "Minimize" msgstr "" #: ../data/str.xml.in.h:333 msgid "Maximize" msgstr "" #: ../data/str.xml.in.h:334 msgid "Refresh" msgstr "" #: ../data/str.xml.in.h:335 msgid "Close" msgstr "" #: ../data/str.xml.in.h:336 msgid "World" msgstr "" #: ../data/str.xml.in.h:337 msgid "Mt. Fuji" msgstr "" #: ../data/str.xml.in.h:338 msgid "Tokyo Tower" msgstr "" #: ../data/str.xml.in.h:339 msgid "Japan" msgstr "" #: ../data/str.xml.in.h:340 msgid "Anguish" msgstr "" #: ../data/str.xml.in.h:341 msgid "Smile" msgstr "微笑" #: ../data/str.xml.in.h:342 msgid "Smirk" msgstr "" #: ../data/str.xml.in.h:343 msgid "Neutral" msgstr "" #: ../data/str.xml.in.h:344 msgid "Expressionless" msgstr "" #: ../data/str.xml.in.h:345 msgid "Unamused" msgstr "" #: ../data/str.xml.in.h:346 msgid "Pensive" msgstr "" #: ../data/str.xml.in.h:347 msgid "Confused" msgstr "" #: ../data/str.xml.in.h:348 msgid "Confounded" msgstr "" #: ../data/str.xml.in.h:349 msgid "Disappointed" msgstr "" #: ../data/str.xml.in.h:350 msgid "Angry" msgstr "生气" #: ../data/str.xml.in.h:351 msgid "Cry" msgstr "" #: ../data/str.xml.in.h:352 msgid "Sleeply" msgstr "" #: ../data/str.xml.in.h:353 msgid "Tired" msgstr "" #: ../data/str.xml.in.h:354 msgid "Surprise" msgstr "" #: ../data/str.xml.in.h:355 msgid "Scream" msgstr "" #: ../data/str.xml.in.h:356 msgid "Flushed" msgstr "" #: ../data/str.xml.in.h:357 msgid "Medical Mask" msgstr "" #: ../data/str.xml.in.h:358 msgid "OK" msgstr "" #: ../data/str.xml.in.h:359 msgid "Bow" msgstr "" #: ../data/str.xml.in.h:360 msgid "See-No-Evil" msgstr "" #: ../data/str.xml.in.h:361 msgid "Hear-No-Evil" msgstr "" #: ../data/str.xml.in.h:362 msgid "Speak-No-Evil" msgstr "" #: ../data/str.xml.in.h:363 msgid "Banzai" msgstr "" #: ../data/str.xml.in.h:364 msgid "Pleading" msgstr "" #: ../data/str.xml.in.h:365 msgid "Smileys" msgstr "表情" #: ../data/str.xml.in.h:366 msgid "Smile Big" msgstr "大笑" #: ../data/str.xml.in.h:367 msgid "Sad" msgstr "悲伤" #: ../data/str.xml.in.h:368 msgid "Wink" msgstr "眨眼" #: ../data/str.xml.in.h:369 msgid "Shock" msgstr "震惊" #: ../data/str.xml.in.h:370 msgid "Kiss | Secret" msgstr "" #: ../data/str.xml.in.h:371 msgid "Glasses Cool | Eyeroll" msgstr "" #: ../data/str.xml.in.h:372 msgid "Glasses Cool" msgstr "" #: ../data/str.xml.in.h:373 msgid "Embarrassed" msgstr "" #: ../data/str.xml.in.h:374 msgid "Crying" msgstr "" #: ../data/str.xml.in.h:375 msgid "Thinking" msgstr "思考" #: ../data/str.xml.in.h:376 msgid "Don't Know" msgstr "" #: ../data/str.xml.in.h:377 msgid "Party" msgstr "派对" #: ../data/str.xml.in.h:378 msgid "Yawn" msgstr "呵欠" #: ../data/str.xml.in.h:379 msgid "Bunny" msgstr "兔子" #: ../data/str.xml.in.h:380 msgid "Sick" msgstr "生病" #: ../data/str.xml.in.h:381 msgid "Devil" msgstr "" #: ../data/str.xml.in.h:382 msgid "Angel" msgstr "天使" #: ../data/str.xml.in.h:383 msgid "Love" msgstr "" #: ../data/str.xml.in.h:384 msgid "Love Over" msgstr "" #: ../data/str.xml.in.h:385 msgid "Film" msgstr "" #: ../data/str.xml.in.h:386 msgid "Clock" msgstr "" #: ../data/str.xml.in.h:387 msgid "Coffee" msgstr "" #: ../data/str.xml.in.h:388 msgid "Phone" msgstr "电话" #: ../data/str.xml.in.h:389 msgid "Hug Left" msgstr "" #: ../data/str.xml.in.h:390 msgid "Hug Right" msgstr "" #: ../data/str.xml.in.h:391 msgid "Yes" msgstr "Yes" #: ../data/str.xml.in.h:392 msgid "No" msgstr "No" #: ../data/str.xml.in.h:393 msgid "Shut Mouth" msgstr "闭嘴" #: ../data/str.xml.in.h:394 msgid "Money Mouth" msgstr "" #: ../data/str.xml.in.h:395 msgid "Foot in Mouth" msgstr "" #: ../data/str.xml.in.h:396 msgid "Shout" msgstr "大叫" #. http://ja.wikipedia.org/wiki/%E9%A1%94%E6%96%87%E5%AD%97 #: ../data/str.xml.in.h:398 msgid "Smileys (Japanese)" msgstr "" #: ../data/str.xml.in.h:399 msgid "Smoking" msgstr "抽烟" #: ../data/str.xml.in.h:400 msgid "Sorry" msgstr "抱歉" #: ../data/str.xml.in.h:401 msgid "Hug" msgstr "" #. http://ja.wikipedia.org/wiki/%E9%A1%94%E6%96%87%E5%AD%97 #: ../data/str.xml.in.h:403 msgid "Smileys (Japanese 2ch)" msgstr "" #: ../data/str.xml.in.h:404 msgid "Hey" msgstr "" #. http://ja.wikipedia.org/wiki/%E9%A1%94%E6%96%87%E5%AD%97 #: ../data/str.xml.in.h:406 msgid "Smileys (Chinese)" msgstr "" #: ../data/str.xml.in.h:407 msgid "Crow" msgstr "" #. http://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88%E3%82%B9%E3%83%A9%E3%83%B3%E3%82%B0 #: ../data/str.xml.in.h:409 msgid "Acronym" msgstr "" #: ../data/str.xml.in.h:410 msgid "Acronym (Computer)" msgstr "" #. http://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88%E3%82%B9%E3%83%A9%E3%83%B3%E3%82%B0 #: ../data/str.xml.in.h:412 msgid "Acronym (Japanese)" msgstr "" #: ../data/str.xml.in.h:413 msgid "Do not want to read between lines (Aete Kuuki Wo Yomanai)" msgstr "" #: ../data/str.xml.in.h:414 msgid "Can't get together (Guda Guda)" msgstr "" #: ../data/str.xml.in.h:415 msgid "Say whatever one feels (Iitaidake)" msgstr "" #: ../data/str.xml.in.h:416 msgid "Excited (Kitakore)" msgstr "" #: ../data/str.xml.in.h:417 msgid "Detail (Kuwashiku)" msgstr "" #: ../data/str.xml.in.h:418 msgid "Cannot read between lines (Kuuki Ga Yomenai)" msgstr "" #: ../data/str.xml.in.h:419 msgid "Omission (Shouryaku)" msgstr "" #: ../data/str.xml.in.h:420 msgid "Excited (Waku Waku Teka Teka)" msgstr "" #: ../data/str.xml.in.h:421 msgid "Laugh" msgstr "" #: ../data/str.xml.in.h:422 msgid "Dude (Oi!)" msgstr "" #: ../data/str.xml.in.h:423 msgid "Good job (Otsukare)" msgstr "" #: ../data/str.xml.in.h:424 msgid "Want (Kure, E.g. pics クレメンス)" msgstr "" #: ../data/str.xml.in.h:425 msgid "ASCII art of a hand (✊, E.g. つAttention)" msgstr "" #: ../data/str.xml.in.h:426 msgid "In The Meantime (Toriaezu, Maa)" msgstr "" #: ../data/str.xml.in.h:427 msgid "Self-confidence (Aniki, E.g. tennis ニキ)" msgstr "" #: ../data/str.xml.in.h:428 msgid "Bye" msgstr "拜拜" #: ../data/str.xml.in.h:429 msgid "Want (Hattekure, E.g. pics ハラデイ)" msgstr "" #: ../data/str.xml.in.h:430 msgid "Exist as microparticles (Biryushi Level De Sonzaisuru)" msgstr "" #: ../data/str.xml.in.h:431 msgid "False Start (Flying Get)" msgstr "" #: ../data/str.xml.in.h:432 msgid "Fulfilling Life (Real life is Zyujitsu)" msgstr "" #: ../data/str.xml.in.h:433 msgid "Laugh (Warau)" msgstr "" #: ../data/str.xml.in.h:434 msgid "He (Yatsu <- Yashi)" msgstr "" #: ../data/w3c.xml.in.h:1 msgid "Char References" msgstr "" #: ../data/zh.xml.in.h:1 msgid "Chinese" msgstr "中文" #: ../data/zh.xml.in.h:4 ../input-pad/unicode_block.h:138 msgid "Bopomofo" msgstr "" #: ../input-pad/app-menu.ui.h:1 msgid "_File" msgstr "文件(_F)" #: ../input-pad/app-menu.ui.h:2 ../input-pad/dialog.ui.h:21 msgid "_Close" msgstr "关闭(_C)" #: ../input-pad/app-menu.ui.h:3 msgid "Close the program" msgstr "关闭程序" #: ../input-pad/app-menu.ui.h:4 msgid "_Pad" msgstr "面板(_P)" #: ../input-pad/app-menu.ui.h:5 msgid "_Code Point" msgstr "码点(_C)" #: ../input-pad/app-menu.ui.h:6 msgid "_Show Pad" msgstr "显示面板(_S)" #: ../input-pad/app-menu.ui.h:7 msgid "Show _All Characters" msgstr "显示所有字符(_A)" #: ../input-pad/app-menu.ui.h:8 msgid "Show _Custom Characters" msgstr "显示自定义字符(_C)" #: ../input-pad/app-menu.ui.h:9 msgid "Show _Nothing" msgstr "不显示(_N)" #: ../input-pad/app-menu.ui.h:10 msgid "Show _Keyboard Layout" msgstr "显示键盘布局(_K)" #: ../input-pad/app-menu.ui.h:11 msgid "_Help" msgstr "帮助(_H)" #: ../input-pad/app-menu.ui.h:12 msgid "_Troubleshoot" msgstr "错误诊断(_T)" #: ../input-pad/app-menu.ui.h:13 msgid "_About" msgstr "" #: ../input-pad/dialog.ui.h:1 msgid "Code Point Dialog" msgstr "" #: ../input-pad/dialog.ui.h:2 msgid "Unicode" msgstr "Unicode" #: ../input-pad/dialog.ui.h:3 msgid "You can choose encoding type" msgstr "您可以选择编码类型" #: ../input-pad/dialog.ui.h:4 msgid "Current Encoding" msgstr "当前编码" #: ../input-pad/dialog.ui.h:5 msgid "Copy Buffer" msgstr "复制缓存" #: ../input-pad/dialog.ui.h:6 msgid "Base 16\n" "Hex" msgstr "" #: ../input-pad/dialog.ui.h:8 msgid "Set number case to hexadecimal" msgstr "设定数字为十六进制" #: ../input-pad/dialog.ui.h:9 msgid "Base 10\n" "Dec" msgstr "" #: ../input-pad/dialog.ui.h:11 msgid "Set number case to decimal" msgstr "设定数字为十进制" #: ../input-pad/dialog.ui.h:12 msgid "Base 8\n" "Oct" msgstr "" #: ../input-pad/dialog.ui.h:14 msgid "Set number case to octal" msgstr "设定数字为八进制" #: ../input-pad/dialog.ui.h:15 msgid "Base 2\n" "Bin" msgstr "" #: ../input-pad/dialog.ui.h:17 msgid "Set number case to binary" msgstr "设定数字为二进制" #: ../input-pad/dialog.ui.h:18 msgid "Code Point:" msgstr "" #: ../input-pad/dialog.ui.h:19 msgid "Character:" msgstr "" #: ../input-pad/dialog.ui.h:20 msgid "_Send" msgstr "发送(_S)" #: ../input-pad/dialog.ui.h:22 msgid "Input Pad Troubleshoot" msgstr "输入面板除错程序" #: ../input-pad/dialog.ui.h:24 #, no-c-format msgid "" "\n" "This application can be run either as a stand-alone program or under an " "input method application.\n" "If you wish to send multi-byte characters, this application needs to be run " "under an input method application.\n" "If you wish to send characters to X11 applications, those applications needs " "to allow send events. e.g.\n" "% xterm -xrm \"XTerm*allowSendEvents: true\"\n" "\n" "You also can copy pad files from /usr/share/input-pad/pad to $HOME/.config/" "pad to customize those in \"Custom Character\" pane." msgstr "" #: ../input-pad/dialog.ui.h:31 msgid "_OK" msgstr "" #: ../input-pad/dialog.ui.h:32 msgid "Configure Keyboard Layouts" msgstr "配置键盘布局" #: ../input-pad/dialog.ui.h:33 msgid "A_vailable layouts:" msgstr "可用的布局(_V):" #: ../input-pad/dialog.ui.h:34 msgid "_Add" msgstr "" #: ../input-pad/dialog.ui.h:35 msgid "_Layouts shown in the list:" msgstr "列表中显示的布局(_L):" #: ../input-pad/dialog.ui.h:36 msgid "_Remove" msgstr "" #: ../input-pad/dialog.ui.h:37 msgid "_Options" msgstr "选项(_O)" #: ../input-pad/dialog.ui.h:38 msgid "Configure Keyboard Options" msgstr "配置键盘选项" #: ../input-pad/dialog.ui.h:39 msgid "_Use the default keyboard option" msgstr "使用默认键盘选项(_U)" #: ../input-pad/dialog.ui.h:40 msgid "Use the defualt XKB option" msgstr "使用默认 XKB 选项" #: ../input-pad/dialog.ui.h:41 msgid "Keyboard Option" msgstr "键盘选项" #: ../input-pad/dialog.ui.h:43 msgid "The input pad is a tool to send a character on button." msgstr "输入面板是用来将字符发送至按键的工具。" #: ../input-pad/dialog.ui.h:44 msgid "translator_credits" msgstr "Tommy He , 2012" #: ../input-pad/eek-gtk.c:65 msgid "Use libeek to draw keyboard" msgstr "" #: ../input-pad/eek-gtk.c:237 msgid "eekboard layout" msgstr "eekboard 布局" #: ../input-pad/eek-gtk.c:249 msgid "eekboard Options" msgstr "eekboard 选项" #: ../input-pad/eek-gtk.c:249 msgid "Show eekboard Options" msgstr "显示 eekboard 选项" #: ../input-pad/unicode_block.h:37 msgid "Basic Latin" msgstr "" #: ../input-pad/unicode_block.h:40 msgid "Latin Extended-B" msgstr "" #: ../input-pad/unicode_block.h:41 msgid "IPA Extensions" msgstr "" #: ../input-pad/unicode_block.h:42 msgid "Spacing Modifier Letters" msgstr "" #: ../input-pad/unicode_block.h:43 msgid "Combining Diacritical Marks" msgstr "" #: ../input-pad/unicode_block.h:44 msgid "Greek and Coptic" msgstr "" #: ../input-pad/unicode_block.h:45 msgid "Cyrillic" msgstr "" #: ../input-pad/unicode_block.h:46 msgid "Cyrillic Supplement" msgstr "" #: ../input-pad/unicode_block.h:47 msgid "Armenian" msgstr "" #: ../input-pad/unicode_block.h:48 msgid "Hebrew" msgstr "" #: ../input-pad/unicode_block.h:49 msgid "Arabic" msgstr "" #: ../input-pad/unicode_block.h:50 msgid "Syriac" msgstr "" #: ../input-pad/unicode_block.h:51 msgid "Arabic Supplement" msgstr "" #: ../input-pad/unicode_block.h:52 msgid "Thaana" msgstr "" #: ../input-pad/unicode_block.h:53 msgid "NKo" msgstr "" #: ../input-pad/unicode_block.h:54 msgid "Samaritan" msgstr "" #: ../input-pad/unicode_block.h:55 msgid "Devanagari" msgstr "" #: ../input-pad/unicode_block.h:56 msgid "Bengali" msgstr "" #: ../input-pad/unicode_block.h:57 msgid "Gurmukhi" msgstr "" #: ../input-pad/unicode_block.h:58 msgid "Gujarati" msgstr "" #: ../input-pad/unicode_block.h:59 msgid "Oriya" msgstr "" #: ../input-pad/unicode_block.h:60 msgid "Tamil" msgstr "" #: ../input-pad/unicode_block.h:61 msgid "Telugu" msgstr "" #: ../input-pad/unicode_block.h:62 msgid "Kannada" msgstr "" #: ../input-pad/unicode_block.h:63 msgid "Malayalam" msgstr "" #: ../input-pad/unicode_block.h:64 msgid "Sinhala" msgstr "" #: ../input-pad/unicode_block.h:65 msgid "Thai" msgstr "" #: ../input-pad/unicode_block.h:66 msgid "Lao" msgstr "" #: ../input-pad/unicode_block.h:67 msgid "Tibetan" msgstr "" #: ../input-pad/unicode_block.h:68 msgid "Myanmar" msgstr "" #: ../input-pad/unicode_block.h:69 msgid "Georgian" msgstr "" #: ../input-pad/unicode_block.h:70 msgid "Hangul Jamo" msgstr "" #: ../input-pad/unicode_block.h:71 msgid "Ethiopic" msgstr "" #: ../input-pad/unicode_block.h:72 msgid "Ethiopic Supplement" msgstr "" #: ../input-pad/unicode_block.h:73 msgid "Cherokee" msgstr "" #: ../input-pad/unicode_block.h:74 msgid "Unified Canadian Aboriginal Syllabics" msgstr "" #: ../input-pad/unicode_block.h:75 msgid "Ogham" msgstr "" #: ../input-pad/unicode_block.h:76 msgid "Runic" msgstr "" #: ../input-pad/unicode_block.h:77 msgid "Tagalog" msgstr "" #: ../input-pad/unicode_block.h:78 msgid "Hanunoo" msgstr "" #: ../input-pad/unicode_block.h:79 msgid "Buhid" msgstr "" #: ../input-pad/unicode_block.h:80 msgid "Tagbanwa" msgstr "" #: ../input-pad/unicode_block.h:81 msgid "Khmer" msgstr "" #: ../input-pad/unicode_block.h:82 msgid "Mongolian" msgstr "" #: ../input-pad/unicode_block.h:83 msgid "Unified Canadian Aboriginal Syllabics Extended" msgstr "" #: ../input-pad/unicode_block.h:84 msgid "Limbu" msgstr "" #: ../input-pad/unicode_block.h:85 msgid "Tai Le" msgstr "" #: ../input-pad/unicode_block.h:86 msgid "New Tai Lue" msgstr "" #: ../input-pad/unicode_block.h:87 msgid "Khmer Symbols" msgstr "" #: ../input-pad/unicode_block.h:88 msgid "Buginese" msgstr "" #: ../input-pad/unicode_block.h:89 msgid "Tai Tham" msgstr "" #: ../input-pad/unicode_block.h:90 msgid "Balinese" msgstr "" #: ../input-pad/unicode_block.h:91 msgid "Sundanese" msgstr "" #: ../input-pad/unicode_block.h:92 msgid "Lepcha" msgstr "" #: ../input-pad/unicode_block.h:93 msgid "Ol Chiki" msgstr "" #: ../input-pad/unicode_block.h:94 msgid "Vedic Extensions" msgstr "" #: ../input-pad/unicode_block.h:95 msgid "Phonetic Extensions" msgstr "" #: ../input-pad/unicode_block.h:96 msgid "Phonetic Extensions Supplement" msgstr "" #: ../input-pad/unicode_block.h:97 msgid "Combining Diacritical Marks Supplement" msgstr "" #: ../input-pad/unicode_block.h:98 msgid "Latin Extended Additional" msgstr "" #: ../input-pad/unicode_block.h:99 msgid "Greek Extended" msgstr "" #: ../input-pad/unicode_block.h:100 msgid "General Punctuation" msgstr "" #: ../input-pad/unicode_block.h:101 msgid "Superscripts and Subscripts" msgstr "" #: ../input-pad/unicode_block.h:102 msgid "Currency Symbols" msgstr "" #: ../input-pad/unicode_block.h:103 msgid "Combining Diacritical Marks for Symbols" msgstr "" #: ../input-pad/unicode_block.h:104 msgid "Letterlike Symbols" msgstr "" #: ../input-pad/unicode_block.h:105 msgid "Number Forms" msgstr "" #: ../input-pad/unicode_block.h:106 msgid "Arrows" msgstr "" #: ../input-pad/unicode_block.h:107 msgid "Mathematical Operators" msgstr "" #: ../input-pad/unicode_block.h:108 msgid "Miscellaneous Technical" msgstr "" #: ../input-pad/unicode_block.h:109 msgid "Control Pictures" msgstr "" #: ../input-pad/unicode_block.h:110 msgid "Optical Character Recognition" msgstr "" #: ../input-pad/unicode_block.h:111 msgid "Enclosed Alphanumerics" msgstr "" #: ../input-pad/unicode_block.h:113 msgid "Block Elements" msgstr "" #: ../input-pad/unicode_block.h:114 msgid "Geometric Shapes" msgstr "" #: ../input-pad/unicode_block.h:115 msgid "Miscellaneous Symbols" msgstr "" #: ../input-pad/unicode_block.h:117 msgid "Miscellaneous Mathematical Symbols-A" msgstr "" #: ../input-pad/unicode_block.h:118 msgid "Supplemental Arrows-A" msgstr "" #: ../input-pad/unicode_block.h:119 msgid "Braille Patterns" msgstr "" #: ../input-pad/unicode_block.h:120 msgid "Supplemental Arrows-B" msgstr "" #: ../input-pad/unicode_block.h:121 msgid "Miscellaneous Mathematical Symbols-B" msgstr "" #: ../input-pad/unicode_block.h:122 msgid "Supplemental Mathematical Operators" msgstr "" #: ../input-pad/unicode_block.h:123 msgid "Miscellaneous Symbols and Arrows" msgstr "" #: ../input-pad/unicode_block.h:124 msgid "Glagolitic" msgstr "" #: ../input-pad/unicode_block.h:125 msgid "Latin Extended-C" msgstr "" #: ../input-pad/unicode_block.h:126 msgid "Coptic" msgstr "" #: ../input-pad/unicode_block.h:127 msgid "Georgian Supplement" msgstr "" #: ../input-pad/unicode_block.h:128 msgid "Tifinagh" msgstr "" #: ../input-pad/unicode_block.h:129 msgid "Ethiopic Extended" msgstr "" #: ../input-pad/unicode_block.h:130 msgid "Cyrillic Extended-A" msgstr "" #: ../input-pad/unicode_block.h:131 msgid "Supplemental Punctuation" msgstr "" #: ../input-pad/unicode_block.h:133 msgid "Kangxi Radicals" msgstr "" #: ../input-pad/unicode_block.h:134 msgid "Ideographic Description Characters" msgstr "" #: ../input-pad/unicode_block.h:135 msgid "CJK Symbols and Punctuation" msgstr "" #: ../input-pad/unicode_block.h:139 msgid "Hangul Compatibility Jamo" msgstr "" #: ../input-pad/unicode_block.h:140 msgid "Kanbun" msgstr "" #: ../input-pad/unicode_block.h:141 msgid "Bopomofo Extended" msgstr "" #: ../input-pad/unicode_block.h:142 msgid "CJK Strokes" msgstr "中日韩音调" #: ../input-pad/unicode_block.h:143 msgid "Katakana Phonetic Extensions" msgstr "" #: ../input-pad/unicode_block.h:144 msgid "Enclosed CJK Letters and Months" msgstr "" #: ../input-pad/unicode_block.h:146 msgid "CJK Unified Ideographs Extension A" msgstr "" #: ../input-pad/unicode_block.h:147 msgid "Yijing Hexagram Symbols" msgstr "" #: ../input-pad/unicode_block.h:148 msgid "CJK Unified Ideographs" msgstr "" #: ../input-pad/unicode_block.h:149 msgid "Yi Syllables" msgstr "" #: ../input-pad/unicode_block.h:150 msgid "Yi Radicals" msgstr "" #: ../input-pad/unicode_block.h:151 msgid "Lisu" msgstr "" #: ../input-pad/unicode_block.h:152 msgid "Vai" msgstr "" #: ../input-pad/unicode_block.h:153 msgid "Cyrillic Extended-B" msgstr "" #: ../input-pad/unicode_block.h:154 msgid "Bamum" msgstr "" #: ../input-pad/unicode_block.h:155 msgid "Modifier Tone Letters" msgstr "" #: ../input-pad/unicode_block.h:156 msgid "Latin Extended-D" msgstr "" #: ../input-pad/unicode_block.h:157 msgid "Syloti Nagri" msgstr "" #: ../input-pad/unicode_block.h:158 msgid "Common Indic Number Forms" msgstr "" #: ../input-pad/unicode_block.h:159 msgid "Phags-pa" msgstr "" #: ../input-pad/unicode_block.h:160 msgid "Saurashtra" msgstr "" #: ../input-pad/unicode_block.h:161 msgid "Devanagari Extended" msgstr "" #: ../input-pad/unicode_block.h:162 msgid "Kayah Li" msgstr "" #: ../input-pad/unicode_block.h:163 msgid "Rejang" msgstr "" #: ../input-pad/unicode_block.h:164 msgid "Hangul Jamo Extended-A" msgstr "" #: ../input-pad/unicode_block.h:165 msgid "Javanese" msgstr "" #: ../input-pad/unicode_block.h:166 msgid "Cham" msgstr "" #: ../input-pad/unicode_block.h:167 msgid "Myanmar Extended-A" msgstr "" #: ../input-pad/unicode_block.h:168 msgid "Tai Viet" msgstr "" #: ../input-pad/unicode_block.h:169 msgid "Meetei Mayek" msgstr "" #: ../input-pad/unicode_block.h:170 msgid "Hangul Syllables" msgstr "" #: ../input-pad/unicode_block.h:171 msgid "Hangul Jamo Extended-B" msgstr "" #: ../input-pad/unicode_block.h:172 msgid "High Surrogates" msgstr "" #: ../input-pad/unicode_block.h:173 msgid "High Private Use Surrogates" msgstr "" #: ../input-pad/unicode_block.h:174 msgid "Low Surrogates" msgstr "" #: ../input-pad/unicode_block.h:175 msgid "Private Use Area" msgstr "" #: ../input-pad/unicode_block.h:176 msgid "CJK Compatibility Ideographs" msgstr "" #: ../input-pad/unicode_block.h:177 msgid "Alphabetic Presentation Forms" msgstr "" #: ../input-pad/unicode_block.h:178 msgid "Arabic Presentation Forms-A" msgstr "" #: ../input-pad/unicode_block.h:179 msgid "Variation Selectors" msgstr "" #: ../input-pad/unicode_block.h:180 msgid "Vertical Forms" msgstr "" #: ../input-pad/unicode_block.h:181 msgid "Combining Half Marks" msgstr "" #: ../input-pad/unicode_block.h:182 msgid "CJK Compatibility Forms" msgstr "" #: ../input-pad/unicode_block.h:183 msgid "Small Form Variants" msgstr "" #: ../input-pad/unicode_block.h:184 msgid "Arabic Presentation Forms-B" msgstr "" #: ../input-pad/unicode_block.h:185 msgid "Halfwidth and Fullwidth Forms" msgstr "" #: ../input-pad/unicode_block.h:186 msgid "Specials" msgstr "" #: ../input-pad/unicode_block.h:187 msgid "Linear B Syllabary" msgstr "" #: ../input-pad/unicode_block.h:188 msgid "Linear B Ideograms" msgstr "" #: ../input-pad/unicode_block.h:189 msgid "Aegean Numbers" msgstr "" #: ../input-pad/unicode_block.h:190 msgid "Ancient Greek Numbers" msgstr "" #: ../input-pad/unicode_block.h:191 msgid "Ancient Symbols" msgstr "" #: ../input-pad/unicode_block.h:192 msgid "Phaistos Disc" msgstr "" #: ../input-pad/unicode_block.h:193 msgid "Lycian" msgstr "" #: ../input-pad/unicode_block.h:194 msgid "Carian" msgstr "" #: ../input-pad/unicode_block.h:195 msgid "Old Italic" msgstr "" #: ../input-pad/unicode_block.h:197 msgid "Ugaritic" msgstr "" #: ../input-pad/unicode_block.h:198 msgid "Old Persian" msgstr "" #: ../input-pad/unicode_block.h:199 msgid "Deseret" msgstr "" #: ../input-pad/unicode_block.h:201 msgid "Osmanya" msgstr "" #: ../input-pad/unicode_block.h:202 msgid "Cypriot Syllabary" msgstr "" #: ../input-pad/unicode_block.h:203 msgid "Imperial Aramaic" msgstr "" #: ../input-pad/unicode_block.h:204 msgid "Phoenician" msgstr "" #: ../input-pad/unicode_block.h:205 msgid "Lydian" msgstr "" #: ../input-pad/unicode_block.h:206 msgid "Kharoshthi" msgstr "" #: ../input-pad/unicode_block.h:207 msgid "Old South Arabian" msgstr "" #: ../input-pad/unicode_block.h:208 msgid "Avestan" msgstr "" #: ../input-pad/unicode_block.h:209 msgid "Inscriptional Parthian" msgstr "" #: ../input-pad/unicode_block.h:210 msgid "Inscriptional Pahlavi" msgstr "" #: ../input-pad/unicode_block.h:211 msgid "Old Turkic" msgstr "" #: ../input-pad/unicode_block.h:212 msgid "Rumi Numeral Symbols" msgstr "" #: ../input-pad/unicode_block.h:213 msgid "Kaithi" msgstr "" #: ../input-pad/unicode_block.h:214 msgid "Cuneiform" msgstr "" #: ../input-pad/unicode_block.h:215 msgid "Cuneiform Numbers and Punctuation" msgstr "" #: ../input-pad/unicode_block.h:216 msgid "Egyptian Hieroglyphs" msgstr "" #: ../input-pad/unicode_block.h:217 msgid "Byzantine Musical Symbols" msgstr "" #: ../input-pad/unicode_block.h:218 msgid "Musical Symbols" msgstr "" #: ../input-pad/unicode_block.h:219 msgid "Ancient Greek Musical Notation" msgstr "" #: ../input-pad/unicode_block.h:220 msgid "Tai Xuan Jing Symbols" msgstr "" #: ../input-pad/unicode_block.h:221 msgid "Counting Rod Numerals" msgstr "" #: ../input-pad/unicode_block.h:222 msgid "Mathematical Alphanumeric Symbols" msgstr "" #: ../input-pad/unicode_block.h:223 msgid "Mahjong Tiles" msgstr "" #: ../input-pad/unicode_block.h:224 msgid "Domino Tiles" msgstr "" #: ../input-pad/unicode_block.h:225 msgid "Enclosed Alphanumeric Supplement" msgstr "" #: ../input-pad/unicode_block.h:226 msgid "Enclosed Ideographic Supplement" msgstr "" #: ../input-pad/unicode_block.h:227 msgid "CJK Unified Ideographs Extension B" msgstr "" #: ../input-pad/unicode_block.h:228 msgid "CJK Unified Ideographs Extension C" msgstr "" #: ../input-pad/unicode_block.h:229 msgid "CJK Compatibility Ideographs Supplement" msgstr "" #: ../input-pad/unicode_block.h:230 msgid "Tags" msgstr "" #: ../input-pad/unicode_block.h:231 msgid "Variation Selectors Supplement" msgstr "" #: ../input-pad/unicode_block.h:232 msgid "Supplementary Private Use Area-A" msgstr "" #: ../input-pad/unicode_block.h:233 msgid "Supplementary Private Use Area-B" msgstr "" #: ../input-pad/window-gtk.c:203 msgid "Display version" msgstr "显示版本" #. Translators: the word 'KBDUI' is not translated. #: ../input-pad/window-gtk.c:206 msgid "Use KBDUI to draw keyboard" msgstr "" #. Translators: the word 'TYPE' is not translated. #: ../input-pad/window-gtk.c:209 msgid "Use TYPE of char table. The available TYPE=0, 1, 2" msgstr "" #. Translators: the word 'TYPE' is not translated. #: ../input-pad/window-gtk.c:212 msgid "Use TYPE of keyboard layout. The available TYPE=0, 1" msgstr "" #: ../input-pad/window-gtk.c:219 msgid "Use XTEST module to send key events" msgstr "使用 XTEST 模块发送按键事件" #: ../input-pad/window-gtk.c:224 msgid "Use XSendEvent to send key events" msgstr "使用 XSendEvent 发送按键事件" #: ../input-pad/window-gtk.c:1172 msgid "Fold layout" msgstr "" #: ../input-pad/window-gtk.c:1177 ../input-pad/window-gtk.c:2610 msgid "Extend layout" msgstr "扩展布局" #: ../input-pad/window-gtk.c:2824 msgid "Layout" msgstr "布局" #: ../input-pad/window-gtk.c:3095 msgid "_Layout:" msgstr "布局(_L):" #: ../input-pad/window-gtk.c:3125 msgid "_Configure Layouts" msgstr "配置布局(_C)" #. No longer used in gtk 2.20 #. gchar *license1, *license2, *license3; #. license1 = _("" #. "This library is free software; you can redistribute it and/or " #. "modify it under the terms of the GNU Lesser General Public " #. "License as published by the Free Software Foundation; either " #. "version 2 of the License, or (at your option) any later version."); #. #. license2 = _("" #. "This library is distributed in the hope that it will be useful, " #. "but WITHOUT ANY WARRANTY; without even the implied warranty of " #. "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU " #. "Lesser General Public License for more details."); #. #. license3 = _("" #. "You should have received a copy of the GNU Lesser General Public " #. "License along with this library; if not, write to the Free Software " #. "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, " #. "MA 02110-1301 USA"); #. #. license = g_strdup_printf ("%s\n\n%s\n\n%s", #. license1, license2, license3); #. #. This format has been used since gtk 2.20. #: ../input-pad/window-gtk.c:3164 #, c-format msgid "This program comes with ABSOLUTELY NO WARRANTY; for details, visit %s" msgstr "该程序不具有任何担保;欲知详情请访问 %s" #: ../input-pad/window-gtk.c:3446 msgid "Group" msgstr "分组" #: ../input-pad/window-gtk.c:3454 msgid "Subgroup" msgstr "" input-pad-1.1.0/po/zh_TW.po000066400000000000000000002217061476727667600154670ustar00rootroot00000000000000# Chinese (Taiwan) translations for input-pad # Copyright (C) 2010-2016 Takao Fujiwara # This file is distributed under the same license as the input-pad package. # # Translators: # Walter Cheuk , 2012. msgid "" msgstr "" "Project-Id-Version: input-pad HEAD\n" "Report-Msgid-Bugs-To: http://code.google.com/p/input-pad/issues/list\n" "POT-Creation-Date: 2016-03-02 18:45+0900\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2012-06-22 05:01-0400\n" "Last-Translator: Walter Cheuk \n" "Language-Team: Chinese (Taiwan) \n" "Language: zh-TW\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Zanata 3.8.2\n" #: ../data/alphabet.xml.in.in.h:1 msgid "Alphabets" msgstr "字母" #: ../data/base.xml.in.h:1 msgid "Symbols" msgstr "符號" #: ../data/base.xml.in.h:2 msgid "Currency" msgstr "貨幣" #: ../data/base.xml.in.h:3 msgid "Letterlike" msgstr "" #: ../data/base.xml.in.h:4 msgid "Miscellaneous" msgstr "雜項" #: ../data/base.xml.in.h:5 ../input-pad/unicode_block.h:116 msgid "Dingbats" msgstr "Dingbats" #. Translators: Superscripts and Subscripts #: ../data/base.xml.in.h:7 msgid "Super and Sub" msgstr "上標與下標" #: ../data/base.xml.in.h:8 msgid "Bold" msgstr "" #: ../data/base.xml.in.h:9 msgid "Italic" msgstr "" #: ../data/base.xml.in.h:10 msgid "Script" msgstr "" #: ../data/base.xml.in.h:11 msgid "Double Struck" msgstr "" #: ../data/base.xml.in.h:12 msgid "All" msgstr "全部" #: ../data/base.xml.in.h:13 ../data/zh.xml.in.h:2 msgid "Numbers" msgstr "數字" #: ../data/base.xml.in.h:14 msgid "Roman" msgstr "" #: ../data/base.xml.in.h:15 msgid "Enclosed" msgstr "包起來的符號" #: ../data/base.xml.in.h:16 msgid "Fraction" msgstr "分數" #: ../data/base.xml.in.h:17 msgid "Technical" msgstr "技術" #: ../data/base.xml.in.h:18 msgid "Unit" msgstr "單位" #: ../data/base.xml.in.h:19 msgid "Mathematical" msgstr "數學" #: ../data/base.xml.in.h:20 msgid "Controls" msgstr "" #: ../data/base.xml.in.h:21 msgid "OCR" msgstr "" #: ../data/base.xml.in.h:22 msgid "Graphics" msgstr "" #: ../data/base.xml.in.h:23 msgid "Arrow" msgstr "" #: ../data/base.xml.in.h:24 ../input-pad/unicode_block.h:112 msgid "Box Drawing" msgstr "" #: ../data/base.xml.in.h:25 ../input-pad/window-gtk.c:3685 msgid "Block" msgstr "" #: ../data/base.xml.in.h:26 msgid "Geometric" msgstr "" #: ../data/base.xml.in.h:27 msgid "Braille" msgstr "盲人點字" #: ../data/base.xml.in.h:28 msgid "Punctuations" msgstr "標點" #: ../data/base.xml.in.h:29 msgid "General" msgstr "一般" #: ../data/base.xml.in.h:30 msgid "CJK" msgstr "中日韓" #: ../data/base.xml.in.h:31 ../input-pad/unicode_block.h:145 msgid "CJK Compatibility" msgstr "中日韓相容" #: ../data/base.xml.in.h:32 msgid "Small Form" msgstr "小寫" #: ../data/cmd.xml.in.h:1 msgid "Command" msgstr "指令" #: ../data/cmd.xml.in.h:2 msgid "Date" msgstr "日期" #: ../data/cmd.xml.in.h:3 msgid "Normal Date" msgstr "正常日期" #: ../data/cmd.xml.in.h:4 msgid "Date and Time" msgstr "日期與時間" #: ../data/cmd.xml.in.h:5 msgid "ChangeLog date" msgstr "變更記錄日期" #: ../data/cmd.xml.in.h:6 msgid "USA English date" msgstr "美式英文日期" #: ../data/cmd.xml.in.h:7 msgid "UK English date" msgstr "英式英文日期" #: ../data/cmd.xml.in.h:8 msgid "ISO 8601 date" msgstr "ISO 8601 日期" #: ../data/cmd.xml.in.h:9 msgid "Era" msgstr "年代" #: ../data/cmd.xml.in.h:10 msgid "Century Year" msgstr "" #: ../data/cmd.xml.in.h:11 msgid "Normal Time" msgstr "正常時間" #: ../data/cmd.xml.in.h:12 msgid "English Time" msgstr "英文時間" #: ../data/cmd.xml.in.h:13 msgid "Month" msgstr "月份" #: ../data/cmd.xml.in.h:14 msgid "English Month" msgstr "英文月份" #: ../data/cmd.xml.in.h:15 msgid "Short Month" msgstr "簡短月份" #: ../data/cmd.xml.in.h:16 msgid "English Short Month" msgstr "英文簡短月份" #: ../data/cmd.xml.in.h:17 msgid "Weekday" msgstr "週日" #: ../data/cmd.xml.in.h:18 msgid "English Weekday" msgstr "英文週日" #: ../data/cmd.xml.in.h:19 msgid "Short Weekday" msgstr "簡短週日" #: ../data/cmd.xml.in.h:20 msgid "English Short Weekday" msgstr "英文簡短週日" #: ../data/goth.xml.in.h:1 ../input-pad/unicode_block.h:196 msgid "Gothic" msgstr "" #: ../data/input-pad.desktop.in.h:1 ../input-pad/dialog.ui.h:42 #: ../input-pad/window-gtk.c:5084 ../input-pad/window-gtk.c:5085 #: ../input-pad/window-gtk.ui.h:1 msgid "Input Pad" msgstr "" #. "IPA" stands for "International Phonetic Alphabet" #: ../data/ipa-obsolete.xml.in.h:2 msgid "IPA (Obsolete)" msgstr "" #: ../data/ipa-obsolete.xml.in.h:3 ../data/ipa.xml.in.h:6 msgid "Open back unrounded vowel" msgstr "" #: ../data/ipa-obsolete.xml.in.h:4 msgid "Palatalized voiced bilabial plosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:5 msgid "Voiceless palatal implosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:6 ../data/ipa.xml.in.h:138 msgid "Alveolar click" msgstr "" #: ../data/ipa-obsolete.xml.in.h:7 msgid "Palatalized voiced alveolar plosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:8 ../data/ipa.xml.in.h:25 msgid "Voiced alveolar affricate" msgstr "" #: ../data/ipa-obsolete.xml.in.h:9 ../data/ipa.xml.in.h:27 msgid "Voiced alveopalatal affricate" msgstr "" #: ../data/ipa-obsolete.xml.in.h:10 ../data/ipa.xml.in.h:26 msgid "Voiced palato-alveolar affricate" msgstr "" #: ../data/ipa-obsolete.xml.in.h:11 msgid "Palatalized voiceless labiodental fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:12 msgid "Palatalized voiced velar plosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:13 msgid "Palatalized voiceless velar plosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:14 msgid "Voiceless velar implosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:15 msgid "Palatalized alveolar lateral approximant" msgstr "" #: ../data/ipa-obsolete.xml.in.h:16 msgid "Palatalized bilabial nasal" msgstr "" #: ../data/ipa-obsolete.xml.in.h:17 msgid "Palatalized alveolar nasal" msgstr "" #: ../data/ipa-obsolete.xml.in.h:18 msgid "Syllabic alveolar nasal" msgstr "" #: ../data/ipa-obsolete.xml.in.h:19 msgid "Palatalized voiceless bilabial plosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:20 msgid "Voiceless bilabial implosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:21 msgid "Palatalized alveolar trill" msgstr "" #: ../data/ipa-obsolete.xml.in.h:22 msgid "Voiced strident apico-alveolar trill" msgstr "" #: ../data/ipa-obsolete.xml.in.h:23 msgid "Palatalized voiceless alveolar fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:24 ../data/ipa.xml.in.h:19 msgid "Voiceless alveopalatal fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:25 msgid "Labialized voiceless palato-alveolar fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:26 ../data/ipa.xml.in.h:103 msgid "Voiceless alveopalatal affricate" msgstr "" #: ../data/ipa-obsolete.xml.in.h:27 ../data/ipa.xml.in.h:101 msgid "Voiceless alveolar affricate" msgstr "" #: ../data/ipa-obsolete.xml.in.h:28 ../data/ipa.xml.in.h:102 msgid "Voiceless palato-alveolar affricate" msgstr "" #: ../data/ipa-obsolete.xml.in.h:29 msgid "Palatalized voiceless alveolar plosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:30 msgid "Voiceless alveolar implosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:31 ../data/ipa.xml.in.h:137 msgid "Dental click" msgstr "" #: ../data/ipa-obsolete.xml.in.h:32 msgid "Voiceless uvular implosive" msgstr "" #: ../data/ipa-obsolete.xml.in.h:33 msgid "Palatalized voiced labiodental fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:34 msgid "Palatalized voiceless velar fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:35 msgid "Palatalized voiced alveolar fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:36 msgid "Labialized voiced palato-alveolar fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:37 ../data/ipa.xml.in.h:128 msgid "Voiced alveopalatal fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:38 ../data/ipa.xml.in.h:106 msgid "Near-close near-back vowel" msgstr "" #: ../data/ipa-obsolete.xml.in.h:39 ../data/ipa.xml.in.h:140 msgid "Alveolar lateral click" msgstr "" #: ../data/ipa-obsolete.xml.in.h:40 msgid "Labialized voiceless alveolar or dental fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:41 msgid "Labialized voiced alveolar or dental fricative" msgstr "" #: ../data/ipa-obsolete.xml.in.h:42 msgid "Combining labialization mark" msgstr "" #: ../data/ipa-obsolete.xml.in.h:43 msgid "Combining palatalization mark" msgstr "" #. "IPA" stands for "International Phonetic Alphabet" #: ../data/ipa-unofficial.xml.in.h:2 msgid "IPA (Unofficial)" msgstr "" #: ../data/ipa-unofficial.xml.in.h:3 msgid "Voiced labiodental plosive" msgstr "" #: ../data/ipa-unofficial.xml.in.h:4 ../data/ipa.xml.in.h:18 msgid "Voiceless palatal lateral affricate" msgstr "" #: ../data/ipa-unofficial.xml.in.h:5 msgid "Voiced retroflex implosive" msgstr "" #: ../data/ipa-unofficial.xml.in.h:6 ../data/ipa.xml.in.h:88 msgid "Alveolar flap" msgstr "" #: ../data/ipa-unofficial.xml.in.h:7 ../data/ipa.xml.in.h:125 msgid "Voiceless palatal lateral fricative" msgstr "" #: ../data/ipa-unofficial.xml.in.h:8 ../data/ipa.xml.in.h:91 msgid "Retroflex flap" msgstr "" #: ../data/ipa-unofficial.xml.in.h:9 msgid "Voiceless retroflex lateral fricative" msgstr "" #. "PUA" stands for "Private Use Area" #: ../data/ipa-unofficial.xml.in.h:11 msgid "Voiceless retroflex lateral fricative (PUA)" msgstr "" #: ../data/ipa-unofficial.xml.in.h:12 ../data/ipa.xml.in.h:59 msgid "Voiceless velar lateral affricate" msgstr "" #: ../data/ipa-unofficial.xml.in.h:13 ../data/ipa.xml.in.h:68 msgid "Voiceless velar lateral fricative" msgstr "" #: ../data/ipa-unofficial.xml.in.h:14 msgid "Epiglottal trill" msgstr "" #: ../data/ipa-unofficial.xml.in.h:15 msgid "Voiceless labiodental plosive" msgstr "" #: ../data/ipa-unofficial.xml.in.h:16 msgid "Voiceless retroflex lateral affricate" msgstr "" #. "PUA" stands for "Private Use Area" #: ../data/ipa-unofficial.xml.in.h:18 msgid "Voiceless retroflex lateral affricate (PUA)" msgstr "" #: ../data/ipa-unofficial.xml.in.h:19 msgid "Combining stridency mark" msgstr "" #. "PUA" stands for "Private Use Area" #: ../data/ipa-unofficial.xml.in.h:21 msgid "Combining stridency mark (PUA)" msgstr "" #. "IPA" stands for "International Phonetic Alphabet" #: ../data/ipa.xml.in.h:2 msgid "IPA" msgstr "" #: ../data/ipa.xml.in.h:3 msgid "Open front unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:4 msgid "Open central unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:5 msgid "Near-open central vowel" msgstr "" #: ../data/ipa.xml.in.h:7 msgid "Open back rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:8 msgid "Open-mid back unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:9 msgid "Near-open front unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:10 msgid "Voiced bilabial plosive" msgstr "" #: ../data/ipa.xml.in.h:11 msgid "Voiced labiodental affricate" msgstr "" #: ../data/ipa.xml.in.h:12 msgid "Voiced bilabial implosive" msgstr "" #: ../data/ipa.xml.in.h:13 msgid "Bilabial trill" msgstr "" #: ../data/ipa.xml.in.h:14 msgid "Voiced bilabial fricative" msgstr "" #: ../data/ipa.xml.in.h:15 msgid "Voiceless palatal plosive" msgstr "" #: ../data/ipa.xml.in.h:16 msgid "Voiceless palatal fricative" msgstr "" #: ../data/ipa.xml.in.h:17 msgid "Voiceless palatal affricate" msgstr "" #: ../data/ipa.xml.in.h:20 msgid "Voiced alveolar plosive" msgstr "" #: ../data/ipa.xml.in.h:21 msgid "Voiced alveolar implosive" msgstr "" #: ../data/ipa.xml.in.h:22 msgid "Voiced retroflex plosive" msgstr "" #: ../data/ipa.xml.in.h:23 msgid "Voiced dental fricative" msgstr "" #: ../data/ipa.xml.in.h:24 msgid "Voiced alveolar lateral affricate" msgstr "" #: ../data/ipa.xml.in.h:28 msgid "Voiced retroflex affricate" msgstr "" #: ../data/ipa.xml.in.h:29 msgid "Close-mid front unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:30 msgid "Close-mid central unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:31 msgid "Mid-central vowel" msgstr "" #: ../data/ipa.xml.in.h:32 msgid "Rhotacized mid-central vowel" msgstr "" #: ../data/ipa.xml.in.h:33 msgid "Open-mid front unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:34 msgid "Open-mid central rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:35 msgid "Open-mid central unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:36 msgid "Rhotacized open-mid central unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:37 msgid "Voiceless labiodental fricative" msgstr "" #: ../data/ipa.xml.in.h:38 msgid "Velopharyngeal fricative" msgstr "" #: ../data/ipa.xml.in.h:39 msgid "Voiced velar plosive" msgstr "" #: ../data/ipa.xml.in.h:40 msgid "Voiced labial-velar plosive" msgstr "" #: ../data/ipa.xml.in.h:41 msgid "Voiced velar implosive" msgstr "" #: ../data/ipa.xml.in.h:42 msgid "Voiced uvular plosive" msgstr "" #: ../data/ipa.xml.in.h:43 msgid "Voiced uvular implosive" msgstr "" #: ../data/ipa.xml.in.h:44 msgid "Voiceless glottal fricative" msgstr "" #: ../data/ipa.xml.in.h:45 msgid "Voiced glottal fricative" msgstr "" #: ../data/ipa.xml.in.h:46 msgid "Voiceless pharyngeal fricative" msgstr "" #: ../data/ipa.xml.in.h:47 msgid "Voiceless coarticulated velar and palato-alveolar fricative" msgstr "" #: ../data/ipa.xml.in.h:48 msgid "Voiceless epiglottal fricative" msgstr "" #: ../data/ipa.xml.in.h:49 msgid "Close front unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:50 msgid "Near-close near-front unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:51 msgid "Near-close central unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:52 msgid "Close central unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:53 msgid "Palatal approximant" msgstr "" #: ../data/ipa.xml.in.h:54 msgid "Voiced palatal fricative" msgstr "" #: ../data/ipa.xml.in.h:55 msgid "Voiced palatal plosive" msgstr "" #: ../data/ipa.xml.in.h:56 msgid "Voiced palatal affricate" msgstr "" #: ../data/ipa.xml.in.h:57 msgid "Voiced palatal implosive" msgstr "" #: ../data/ipa.xml.in.h:58 msgid "Voiceless velar plosive" msgstr "" #: ../data/ipa.xml.in.h:60 msgid "Voiceless labial-velar plosive" msgstr "" #: ../data/ipa.xml.in.h:61 msgid "Voiceless velar affricate" msgstr "" #: ../data/ipa.xml.in.h:62 msgid "Alveolar lateral approximant" msgstr "" #: ../data/ipa.xml.in.h:63 msgid "Velarized alveolar lateral approximant" msgstr "" #: ../data/ipa.xml.in.h:64 msgid "Voiceless alveolar lateral fricative" msgstr "" #: ../data/ipa.xml.in.h:65 msgid "Retroflex lateral approximant" msgstr "" #: ../data/ipa.xml.in.h:66 msgid "Voiced alveolar lateral fricative" msgstr "" #: ../data/ipa.xml.in.h:67 msgid "Velar lateral approximant" msgstr "" #: ../data/ipa.xml.in.h:69 msgid "Bilabial nasal" msgstr "" #: ../data/ipa.xml.in.h:70 msgid "Labiodental nasal" msgstr "" #: ../data/ipa.xml.in.h:71 msgid "Alveolar nasal" msgstr "" #: ../data/ipa.xml.in.h:72 msgid "Velar nasal" msgstr "" #: ../data/ipa.xml.in.h:73 msgid "Labial-velar nasal" msgstr "" #: ../data/ipa.xml.in.h:74 msgid "Palatal nasal" msgstr "" #: ../data/ipa.xml.in.h:75 msgid "Retroflex nasal" msgstr "" #: ../data/ipa.xml.in.h:76 msgid "Uvular nasal" msgstr "" #: ../data/ipa.xml.in.h:77 msgid "Close-mid back rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:78 msgid "Close-mid front rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:79 msgid "Close-mid central rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:80 msgid "Open-mid front rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:81 msgid "Open front rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:82 msgid "Voiceless bilabial plosive" msgstr "" #: ../data/ipa.xml.in.h:83 msgid "Voiceless bilabial-labiodental affricate" msgstr "" #: ../data/ipa.xml.in.h:84 msgid "Voiceless bilabial affricate" msgstr "" #: ../data/ipa.xml.in.h:85 msgid "Voiceless labiodental affricate" msgstr "" #: ../data/ipa.xml.in.h:86 msgid "Voiceless uvular plosive" msgstr "" #: ../data/ipa.xml.in.h:87 msgid "Alveolar trill" msgstr "" #: ../data/ipa.xml.in.h:89 msgid "Alveolar lateral flap" msgstr "" #: ../data/ipa.xml.in.h:90 msgid "Uvular trill" msgstr "" #: ../data/ipa.xml.in.h:92 msgid "Alveolar approximant" msgstr "" #: ../data/ipa.xml.in.h:93 msgid "Retroflex approximant" msgstr "" #: ../data/ipa.xml.in.h:94 msgid "Voiced uvular fricative" msgstr "" #: ../data/ipa.xml.in.h:95 msgid "Voiceless alveolar fricative" msgstr "" #: ../data/ipa.xml.in.h:96 msgid "Voiceless palato-alveolar fricative" msgstr "" #: ../data/ipa.xml.in.h:97 msgid "Voiceless retroflex fricative" msgstr "" #: ../data/ipa.xml.in.h:98 msgid "Voiceless alveolar plosive" msgstr "" #: ../data/ipa.xml.in.h:99 msgid "Voiceless retroflex plosive" msgstr "" #: ../data/ipa.xml.in.h:100 msgid "Voiceless alveolar lateral affricate" msgstr "" #: ../data/ipa.xml.in.h:104 msgid "Voiceless retroflex affricate" msgstr "" #: ../data/ipa.xml.in.h:105 msgid "Close back rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:107 msgid "Near-close central vowel" msgstr "" #: ../data/ipa.xml.in.h:108 msgid "Close central rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:109 msgid "Labial-palatal approximant" msgstr "" #: ../data/ipa.xml.in.h:110 msgid "Close back unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:111 msgid "Voiced labiodental fricative" msgstr "" #: ../data/ipa.xml.in.h:112 msgid "Labiodental flap" msgstr "" #: ../data/ipa.xml.in.h:113 msgid "Labiodental approximant" msgstr "" #: ../data/ipa.xml.in.h:114 msgid "Voiced velar fricative" msgstr "" #: ../data/ipa.xml.in.h:115 msgid "Close-mid back unrounded vowel" msgstr "" #: ../data/ipa.xml.in.h:116 msgid "Voiced labiovelar approximant" msgstr "" #: ../data/ipa.xml.in.h:117 msgid "Voiceless labiovelar approximant" msgstr "" #: ../data/ipa.xml.in.h:118 msgid "Velar approximant" msgstr "" #: ../data/ipa.xml.in.h:119 msgid "Bilabial percussive" msgstr "" #: ../data/ipa.xml.in.h:120 msgid "Voiceless velar fricative" msgstr "" #: ../data/ipa.xml.in.h:121 msgid "Voiceless uvular fricative" msgstr "" #: ../data/ipa.xml.in.h:122 msgid "Close front rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:123 msgid "Near-close near-front rounded vowel" msgstr "" #: ../data/ipa.xml.in.h:124 msgid "Palatal lateral approximant" msgstr "" #: ../data/ipa.xml.in.h:126 msgid "Voiced alveolar fricative" msgstr "" #: ../data/ipa.xml.in.h:127 msgid "Voiced palato-alveolar fricative" msgstr "" #: ../data/ipa.xml.in.h:129 msgid "Voiced retroflex fricative" msgstr "" #: ../data/ipa.xml.in.h:130 msgid "Voiceless dental fricative" msgstr "" #: ../data/ipa.xml.in.h:131 msgid "Voiceless bilabial fricative" msgstr "" #: ../data/ipa.xml.in.h:132 msgid "Glottal stop" msgstr "子群組" #: ../data/ipa.xml.in.h:133 msgid "Epiglottal plosive" msgstr "" #: ../data/ipa.xml.in.h:134 msgid "Voiced pharyngeal fricative" msgstr "" #: ../data/ipa.xml.in.h:135 msgid "Voiced epiglottal fricative" msgstr "" #: ../data/ipa.xml.in.h:136 msgid "Bilabial click" msgstr "" #: ../data/ipa.xml.in.h:139 msgid "Palatal click" msgstr "" #: ../data/ipa.xml.in.h:141 msgid "Bidental percussive" msgstr "" #: ../data/ipa.xml.in.h:142 msgid "Aspiration mark" msgstr "" #: ../data/ipa.xml.in.h:143 msgid "Non-aspiration mark" msgstr "" #: ../data/ipa.xml.in.h:144 msgid "Breathy voice mark" msgstr "" #: ../data/ipa.xml.in.h:145 msgid "Palatalization mark" msgstr "" #: ../data/ipa.xml.in.h:146 msgid "Lateral release mark" msgstr "" #: ../data/ipa.xml.in.h:147 msgid "Bilabial nasal release mark" msgstr "" #: ../data/ipa.xml.in.h:148 msgid "Labiodental nasal release mark" msgstr "" #: ../data/ipa.xml.in.h:149 msgid "Alveolar nasal release mark" msgstr "" #: ../data/ipa.xml.in.h:150 msgid "Palatal nasal release mark" msgstr "" #: ../data/ipa.xml.in.h:151 msgid "Retroflex nasal release mark" msgstr "" #: ../data/ipa.xml.in.h:152 msgid "Uvular nasal release mark" msgstr "" #: ../data/ipa.xml.in.h:153 msgid "Labio-palatalization mark" msgstr "" #: ../data/ipa.xml.in.h:154 msgid "Labiodentalization mark" msgstr "" #: ../data/ipa.xml.in.h:155 msgid "Labialization mark" msgstr "" #: ../data/ipa.xml.in.h:156 msgid "Velarization mark" msgstr "" #: ../data/ipa.xml.in.h:157 msgid "Glottalization mark" msgstr "" #: ../data/ipa.xml.in.h:158 msgid "Pharyngealization mark" msgstr "" #: ../data/ipa.xml.in.h:159 msgid "Combining velarization/pharyngealization mark" msgstr "" #: ../data/ipa.xml.in.h:160 msgid "Combining laryngealization mark" msgstr "" #: ../data/ipa.xml.in.h:161 msgid "Combining retroflexion mark" msgstr "" #: ../data/ipa.xml.in.h:162 msgid "Ejection mark" msgstr "" #: ../data/ipa.xml.in.h:163 msgid "Rhotacization mark" msgstr "" #: ../data/ipa.xml.in.h:164 msgid "Combining dentalization mark" msgstr "" #: ../data/ipa.xml.in.h:165 msgid "Combining dentolabialization mark" msgstr "" #: ../data/ipa.xml.in.h:166 msgid "Combining alveolarization mark" msgstr "" #: ../data/ipa.xml.in.h:167 msgid "Combining linguolabialization mark" msgstr "" #: ../data/ipa.xml.in.h:168 msgid "Combining apicalization mark" msgstr "" #: ../data/ipa.xml.in.h:169 msgid "Combining laminalization mark" msgstr "" #: ../data/ipa.xml.in.h:170 msgid "Combining centralization mark" msgstr "" #: ../data/ipa.xml.in.h:171 msgid "Combining mid-centralization mark" msgstr "" #: ../data/ipa.xml.in.h:172 msgid "Combining nasalization mark" msgstr "" #: ../data/ipa.xml.in.h:173 msgid "Combining nasalization mark below" msgstr "" #: ../data/ipa.xml.in.h:174 msgid "Combining denasalization mark" msgstr "" #: ../data/ipa.xml.in.h:175 msgid "Combining nasal friction mark" msgstr "" #: ../data/ipa.xml.in.h:176 msgid "Combining velopharyngeal friction mark" msgstr "" #: ../data/ipa.xml.in.h:177 msgid "Combining voiced mark" msgstr "" #: ../data/ipa.xml.in.h:178 msgid "Combining voiceless mark" msgstr "" #: ../data/ipa.xml.in.h:179 msgid "Combining voiceless mark above" msgstr "" #: ../data/ipa.xml.in.h:180 msgid "Pre-voicing/post-voicing mark" msgstr "" #: ../data/ipa.xml.in.h:181 msgid "Combining breathy voice mark" msgstr "" #: ../data/ipa.xml.in.h:182 msgid "Combining unreleased stop mark" msgstr "" #: ../data/ipa.xml.in.h:183 msgid "Combining more rounded mark" msgstr "" #: ../data/ipa.xml.in.h:184 msgid "Combining less rounded mark" msgstr "" #: ../data/ipa.xml.in.h:185 msgid "Combining labial spreading mark" msgstr "" #: ../data/ipa.xml.in.h:186 msgid "Combining syllabic mark" msgstr "" #: ../data/ipa.xml.in.h:187 msgid "Combining syllabic mark above" msgstr "" #: ../data/ipa.xml.in.h:188 msgid "Combining non-syllabic mark" msgstr "" #: ../data/ipa.xml.in.h:189 msgid "Combining non-syllabic mark above" msgstr "" #: ../data/ipa.xml.in.h:190 msgid "Combining top tone mark" msgstr "" #: ../data/ipa.xml.in.h:191 msgid "Combining high tone mark" msgstr "" #: ../data/ipa.xml.in.h:192 msgid "Combining mid tone mark" msgstr "" #: ../data/ipa.xml.in.h:193 msgid "Combining low tone mark" msgstr "" #: ../data/ipa.xml.in.h:194 msgid "Combining bottom tone mark" msgstr "" #: ../data/ipa.xml.in.h:195 msgid "Combining falling tone mark" msgstr "" #: ../data/ipa.xml.in.h:196 msgid "Combining high falling tone mark" msgstr "" #: ../data/ipa.xml.in.h:197 msgid "Combining low falling tone mark" msgstr "" #: ../data/ipa.xml.in.h:198 msgid "Combining rising tone mark" msgstr "" #: ../data/ipa.xml.in.h:199 msgid "Combining high rising tone mark" msgstr "" #: ../data/ipa.xml.in.h:200 msgid "Combining low rising tone mark" msgstr "" #: ../data/ipa.xml.in.h:201 msgid "Combining dipping tone mark" msgstr "" #: ../data/ipa.xml.in.h:202 msgid "Combining peaking tone mark" msgstr "" #: ../data/ipa.xml.in.h:203 msgid "Top tone letter" msgstr "" #: ../data/ipa.xml.in.h:204 msgid "High tone letter" msgstr "" #: ../data/ipa.xml.in.h:205 msgid "Mid tone letter" msgstr "" #: ../data/ipa.xml.in.h:206 msgid "Low tone letter" msgstr "" #: ../data/ipa.xml.in.h:207 msgid "Bottom tone letter" msgstr "" #: ../data/ipa.xml.in.h:208 msgid "Falling tone digraph" msgstr "" #: ../data/ipa.xml.in.h:209 msgid "High falling tone digraph" msgstr "" #: ../data/ipa.xml.in.h:210 msgid "Rising tone digraph" msgstr "" #: ../data/ipa.xml.in.h:211 msgid "High rising tone digraph" msgstr "" #: ../data/ipa.xml.in.h:212 msgid "Low rising tone digraph" msgstr "" #: ../data/ipa.xml.in.h:213 msgid "Dipping tone trigraph" msgstr "" #: ../data/ipa.xml.in.h:214 msgid "Peaking tone trigraph" msgstr "" #: ../data/ipa.xml.in.h:215 #, fuzzy msgid "Upstep mark" msgstr "重音標記" #: ../data/ipa.xml.in.h:216 msgid "Downstep mark" msgstr "" #: ../data/ipa.xml.in.h:217 msgid "Minor break" msgstr "" #: ../data/ipa.xml.in.h:218 msgid "Major break" msgstr "" #: ../data/ipa.xml.in.h:219 msgid "Rising intonation mark" msgstr "" #: ../data/ipa.xml.in.h:220 msgid "Falling intonation mark" msgstr "" #: ../data/ipa.xml.in.h:221 msgid "Advanced articulation mark" msgstr "" #: ../data/ipa.xml.in.h:222 msgid "Retracted articulation mark" msgstr "" #: ../data/ipa.xml.in.h:223 msgid "Combining advanced articulation mark" msgstr "" #: ../data/ipa.xml.in.h:224 msgid "Combining retracted articulation mark" msgstr "" #: ../data/ipa.xml.in.h:225 msgid "Raised sound mark" msgstr "" #: ../data/ipa.xml.in.h:226 msgid "Lowered sound mark" msgstr "" #: ../data/ipa.xml.in.h:227 msgid "Combining raised sound mark" msgstr "" #: ../data/ipa.xml.in.h:228 msgid "Combining lowered sound mark" msgstr "" #: ../data/ipa.xml.in.h:229 msgid "Combining tongue root advancement mark" msgstr "" #: ../data/ipa.xml.in.h:230 msgid "Combining tongue root retraction mark" msgstr "" #: ../data/ipa.xml.in.h:231 msgid "Combining strong articulation mark" msgstr "" #: ../data/ipa.xml.in.h:232 msgid "Combining weak articulation mark" msgstr "" #: ../data/ipa.xml.in.h:233 msgid "Combining whistled articulation mark" msgstr "" #: ../data/ipa.xml.in.h:234 msgid "Combining sliding articulation mark" msgstr "" #: ../data/ipa.xml.in.h:235 msgid "Egression mark" msgstr "" #: ../data/ipa.xml.in.h:236 msgid "Ingression mark" msgstr "" #: ../data/ipa.xml.in.h:237 msgid "Combining ligature tie" msgstr "" #: ../data/ipa.xml.in.h:238 msgid "Combining ligature undertie" msgstr "" #: ../data/ipa.xml.in.h:239 msgid "Elongation mark" msgstr "" #: ../data/ipa.xml.in.h:240 msgid "Weak elongation mark" msgstr "" #: ../data/ipa.xml.in.h:241 msgid "Combining extra-short duration mark" msgstr "" #: ../data/ipa.xml.in.h:242 msgid "Liaison mark" msgstr "" #: ../data/ipa.xml.in.h:243 msgid "Stress mark" msgstr "重音標記" #: ../data/ipa.xml.in.h:244 msgid "Weak stress mark" msgstr "" #: ../data/ipa.xml.in.h:245 msgid "Syllable break" msgstr "音節分隔" #: ../data/ipa.xml.in.h:246 msgid "Opening orthographic bracket" msgstr "" #: ../data/ipa.xml.in.h:247 msgid "Closing orthographic bracket" msgstr "" #: ../data/ja.xml.in.h:1 msgid "Japanese" msgstr "日文" #: ../data/ja.xml.in.h:2 ../input-pad/unicode_block.h:136 msgid "Hiragana" msgstr "平假名" #: ../data/ja.xml.in.h:3 ../input-pad/unicode_block.h:137 msgid "Katakana" msgstr "片假名" #: ../data/ja.xml.in.h:4 ../data/zh.xml.in.h:3 msgid "Radicals" msgstr "部首" #: ../data/ja.xml.in.h:5 ../input-pad/unicode_block.h:132 msgid "CJK Radicals Supplement" msgstr "中日韓部首補充" #: ../data/keyboard.xml.in.h:1 msgid "Keyboard" msgstr "" #: ../data/keyboard.xml.in.h:2 msgid "Function Key" msgstr "功能鍵" #: ../data/keyboard.xml.in.h:3 msgid "Key Pad" msgstr "" #: ../data/latin.xml.in.h:1 msgid "ASCII" msgstr "ASCII" #: ../data/latin.xml.in.h:2 ../input-pad/unicode_block.h:38 msgid "Latin-1 Supplement" msgstr "" #: ../data/latin.xml.in.h:3 ../input-pad/unicode_block.h:39 msgid "Latin Extended-A" msgstr "" #: ../data/latin.xml.in.h:4 msgid "Old and Middle English" msgstr "" #: ../data/runr.xml.in.h:1 msgid "Runes (Unicode Block)" msgstr "" #: ../data/runr.xml.in.h:2 msgid "Runes (Elder Fuþark)" msgstr "" #: ../data/runr.xml.in.h:3 msgid "Runes (Younger Fuþark)" msgstr "" #: ../data/runr.xml.in.h:4 msgid "Runes (Fuþorc)" msgstr "" #: ../data/shaw.xml.in.h:1 ../input-pad/unicode_block.h:200 msgid "Shavian" msgstr "" #: ../data/str.xml.in.h:1 msgid "Chat" msgstr "聊天" #: ../data/str.xml.in.h:2 msgid "Emoji" msgstr "" #: ../data/str.xml.in.h:3 msgid "Rain" msgstr "" #: ../data/str.xml.in.h:4 msgid "Comet" msgstr "" #: ../data/str.xml.in.h:5 msgid "Cross" msgstr "" #: ../data/str.xml.in.h:6 msgid "Solar" msgstr "" #: ../data/str.xml.in.h:7 msgid "Mercury" msgstr "" #: ../data/str.xml.in.h:8 msgid "Venus" msgstr "" #: ../data/str.xml.in.h:9 msgid "Earth" msgstr "" #: ../data/str.xml.in.h:10 msgid "Mars" msgstr "" #: ../data/str.xml.in.h:11 msgid "Jupiter" msgstr "" #: ../data/str.xml.in.h:12 msgid "Saturn" msgstr "" #: ../data/str.xml.in.h:13 msgid "Uranus" msgstr "" #: ../data/str.xml.in.h:14 msgid "Neptune" msgstr "" #: ../data/str.xml.in.h:15 msgid "Pluto" msgstr "" #: ../data/str.xml.in.h:16 msgid "Aries" msgstr "" #: ../data/str.xml.in.h:17 msgid "Taurus" msgstr "" #: ../data/str.xml.in.h:18 msgid "Gemini" msgstr "" #: ../data/str.xml.in.h:19 msgid "Cancer" msgstr "" #: ../data/str.xml.in.h:20 msgid "Leo" msgstr "" #: ../data/str.xml.in.h:21 msgid "Virgo" msgstr "" #: ../data/str.xml.in.h:22 msgid "Libra" msgstr "" #: ../data/str.xml.in.h:23 msgid "Scorpius" msgstr "" #: ../data/str.xml.in.h:24 msgid "Sagittarius" msgstr "" #: ../data/str.xml.in.h:25 msgid "Capricorn" msgstr "" #: ../data/str.xml.in.h:26 msgid "Aquarius" msgstr "" #: ../data/str.xml.in.h:27 msgid "Pisces" msgstr "" #: ../data/str.xml.in.h:28 msgid "Dice 1" msgstr "" #: ../data/str.xml.in.h:29 msgid "Dice 2" msgstr "" #: ../data/str.xml.in.h:30 msgid "Dice 3" msgstr "" #: ../data/str.xml.in.h:31 msgid "Dice 4" msgstr "" #: ../data/str.xml.in.h:32 msgid "Dice 5" msgstr "" #: ../data/str.xml.in.h:33 msgid "Dice 6" msgstr "" #: ../data/str.xml.in.h:34 msgid "Anchor" msgstr "" #: ../data/str.xml.in.h:35 msgid "Sword" msgstr "" #: ../data/str.xml.in.h:36 msgid "Scales" msgstr "" #: ../data/str.xml.in.h:37 msgid "Conversation" msgstr "" #: ../data/str.xml.in.h:38 msgid "Warning" msgstr "" #: ../data/str.xml.in.h:39 msgid "Thunder" msgstr "" #: ../data/str.xml.in.h:40 msgid "Coffin" msgstr "" #: ../data/str.xml.in.h:41 msgid "Gender" msgstr "" #: ../data/str.xml.in.h:42 msgid "Soccer" msgstr "" #: ../data/str.xml.in.h:43 msgid "Baseball" msgstr "" #: ../data/str.xml.in.h:44 msgid "Snowman" msgstr "" #: ../data/str.xml.in.h:45 msgid "Shoji" msgstr "" #: ../data/str.xml.in.h:46 msgid "Maintenance" msgstr "" #: ../data/str.xml.in.h:47 msgid "Roadblock" msgstr "" #: ../data/str.xml.in.h:48 msgid "No entry" msgstr "" #: ../data/str.xml.in.h:49 msgid "Truck" msgstr "" #: ../data/str.xml.in.h:50 msgid "Torii" msgstr "" #: ../data/str.xml.in.h:51 msgid "Church" msgstr "" #: ../data/str.xml.in.h:52 msgid "Castle" msgstr "" #: ../data/str.xml.in.h:53 msgid "Historic site" msgstr "" #: ../data/str.xml.in.h:54 msgid "Power station" msgstr "" #: ../data/str.xml.in.h:55 msgid "Lighthouse" msgstr "" #: ../data/str.xml.in.h:56 msgid "Mountain" msgstr "" #: ../data/str.xml.in.h:57 msgid "Beach" msgstr "" #: ../data/str.xml.in.h:58 msgid "Park" msgstr "" #: ../data/str.xml.in.h:59 msgid "Ferry" msgstr "" #: ../data/str.xml.in.h:60 msgid "Sailboat" msgstr "" #: ../data/str.xml.in.h:61 msgid "Ice rink" msgstr "" #: ../data/str.xml.in.h:62 msgid "Scissors" msgstr "" #: ../data/str.xml.in.h:63 msgid "Airplane" msgstr "" #: ../data/str.xml.in.h:64 msgid "Clenched Fist" msgstr "" #: ../data/str.xml.in.h:65 msgid "Hand" msgstr "" #: ../data/str.xml.in.h:66 msgid "V Sign" msgstr "" #: ../data/str.xml.in.h:67 msgid "Writing" msgstr "" #: ../data/str.xml.in.h:68 msgid "Pencil" msgstr "" #: ../data/str.xml.in.h:69 msgid "Pen" msgstr "" #: ../data/str.xml.in.h:70 msgid "Star" msgstr "星" #: ../data/str.xml.in.h:71 msgid "Typhoon" msgstr "" #: ../data/str.xml.in.h:72 msgid "Fog" msgstr "" #: ../data/str.xml.in.h:73 msgid "Umbrella" msgstr "" #: ../data/str.xml.in.h:74 msgid "Night sky" msgstr "" #: ../data/str.xml.in.h:75 msgid "Sunrise" msgstr "" #: ../data/str.xml.in.h:76 msgid "Sunset" msgstr "" #: ../data/str.xml.in.h:77 msgid "Bridge" msgstr "" #: ../data/str.xml.in.h:78 msgid "Wave" msgstr "" #: ../data/str.xml.in.h:79 msgid "New Moon" msgstr "" #: ../data/str.xml.in.h:80 msgid "Crescent Moon" msgstr "" #: ../data/str.xml.in.h:81 msgid "Quarter Moon" msgstr "" #: ../data/str.xml.in.h:82 msgid "Gibbous Moon" msgstr "" #: ../data/str.xml.in.h:83 msgid "Full Moon" msgstr "" #: ../data/str.xml.in.h:84 msgid "Moon" msgstr "月" #: ../data/str.xml.in.h:85 msgid "Sun" msgstr "" #: ../data/str.xml.in.h:86 msgid "Cloud" msgstr "" #: ../data/str.xml.in.h:87 msgid "Palm" msgstr "" #: ../data/str.xml.in.h:88 msgid "Hot Pepper" msgstr "" #: ../data/str.xml.in.h:89 msgid "Flower" msgstr "" #: ../data/str.xml.in.h:90 msgid "Tulip" msgstr "" #: ../data/str.xml.in.h:91 msgid "Cherry" msgstr "" #: ../data/str.xml.in.h:92 msgid "Rose" msgstr "" #: ../data/str.xml.in.h:93 msgid "Hibiscus" msgstr "" #: ../data/str.xml.in.h:94 msgid "Sunflower" msgstr "" #: ../data/str.xml.in.h:95 msgid "Blossom" msgstr "" #: ../data/str.xml.in.h:96 msgid "Clover" msgstr "" #: ../data/str.xml.in.h:97 msgid "Maple" msgstr "" #: ../data/str.xml.in.h:98 msgid "Fallen Leaf" msgstr "" #: ../data/str.xml.in.h:99 msgid "Leaf" msgstr "" #: ../data/str.xml.in.h:100 msgid "Mushroom" msgstr "" #: ../data/str.xml.in.h:101 msgid "Tomato" msgstr "" #: ../data/str.xml.in.h:102 msgid "Eggplant" msgstr "" #: ../data/str.xml.in.h:103 msgid "Grape" msgstr "" #: ../data/str.xml.in.h:104 msgid "Melon" msgstr "" #: ../data/str.xml.in.h:105 msgid "Watermelon" msgstr "" #: ../data/str.xml.in.h:106 msgid "Tangerine" msgstr "" #: ../data/str.xml.in.h:107 msgid "Lemon" msgstr "" #: ../data/str.xml.in.h:108 msgid "Banana" msgstr "" #: ../data/str.xml.in.h:109 msgid "Pineapple" msgstr "" #: ../data/str.xml.in.h:110 msgid "Apple" msgstr "" #: ../data/str.xml.in.h:111 msgid "Pear" msgstr "" #: ../data/str.xml.in.h:112 msgid "Peach" msgstr "" #: ../data/str.xml.in.h:113 msgid "Strawberry" msgstr "" #: ../data/str.xml.in.h:114 msgid "Hamburger" msgstr "" #: ../data/str.xml.in.h:115 msgid "Pizza" msgstr "" #: ../data/str.xml.in.h:116 msgid "Meat" msgstr "" #: ../data/str.xml.in.h:117 msgid "Poultry" msgstr "" #: ../data/str.xml.in.h:118 msgid "Rice Cracker" msgstr "" #: ../data/str.xml.in.h:119 msgid "Rice Ball" msgstr "" #: ../data/str.xml.in.h:120 msgid "Rice" msgstr "" #: ../data/str.xml.in.h:121 msgid "Curry" msgstr "" #: ../data/str.xml.in.h:122 msgid "Ramen" msgstr "" #: ../data/str.xml.in.h:123 msgid "Spaghetti" msgstr "" #: ../data/str.xml.in.h:124 msgid "Bread" msgstr "" #: ../data/str.xml.in.h:125 msgid "Fried Potato" msgstr "" #: ../data/str.xml.in.h:126 msgid "Roasted Sweet Potato" msgstr "" #: ../data/str.xml.in.h:127 msgid "Dango" msgstr "" #: ../data/str.xml.in.h:128 msgid "Oden" msgstr "" #: ../data/str.xml.in.h:129 msgid "Sushi" msgstr "" #: ../data/str.xml.in.h:130 msgid "Fried Shrimp" msgstr "" #: ../data/str.xml.in.h:131 msgid "Fish Cake" msgstr "" #: ../data/str.xml.in.h:132 msgid "Soft Ice Cream" msgstr "" #: ../data/str.xml.in.h:133 msgid "Shaved Ice" msgstr "" #: ../data/str.xml.in.h:134 msgid "Ice Cream" msgstr "" #: ../data/str.xml.in.h:135 msgid "Doughnut" msgstr "" #: ../data/str.xml.in.h:136 msgid "Cookie" msgstr "" #: ../data/str.xml.in.h:137 msgid "Chocolate" msgstr "" #: ../data/str.xml.in.h:138 msgid "Candy" msgstr "" #: ../data/str.xml.in.h:139 msgid "Custard" msgstr "" #: ../data/str.xml.in.h:140 msgid "Honey" msgstr "" #: ../data/str.xml.in.h:141 msgid "Shortcake" msgstr "" #: ../data/str.xml.in.h:142 msgid "Bento" msgstr "" #: ../data/str.xml.in.h:143 msgid "Pot of Food" msgstr "" #: ../data/str.xml.in.h:144 msgid "Cooking" msgstr "" #: ../data/str.xml.in.h:145 msgid "Meal" msgstr "" #: ../data/str.xml.in.h:146 msgid "Cup" msgstr "" #: ../data/str.xml.in.h:147 msgid "Sake" msgstr "" #: ../data/str.xml.in.h:148 msgid "Wine" msgstr "" #: ../data/str.xml.in.h:149 msgid "Cocktail" msgstr "" #: ../data/str.xml.in.h:150 msgid "Drink" msgstr "" #: ../data/str.xml.in.h:151 msgid "Beer" msgstr "啤酒" #: ../data/str.xml.in.h:152 msgid "Cheers" msgstr "" #: ../data/str.xml.in.h:153 msgid "Baby Bottle" msgstr "" #: ../data/str.xml.in.h:154 msgid "Ribbon" msgstr "" #: ../data/str.xml.in.h:155 msgid "Present" msgstr "" #: ../data/str.xml.in.h:156 msgid "Cake" msgstr "蛋糕" #: ../data/str.xml.in.h:157 msgid "Hallowe'en" msgstr "" #: ../data/str.xml.in.h:158 msgid "Christmas" msgstr "" #: ../data/str.xml.in.h:159 msgid "Piano" msgstr "" #: ../data/str.xml.in.h:160 msgid "Microphone" msgstr "" #: ../data/str.xml.in.h:161 msgid "Headphone" msgstr "" #: ../data/str.xml.in.h:162 msgid "Hat" msgstr "" #: ../data/str.xml.in.h:163 msgid "Musical Note" msgstr "音符" #: ../data/str.xml.in.h:164 msgid "Saxophone" msgstr "" #: ../data/str.xml.in.h:165 msgid "Guiter" msgstr "" #: ../data/str.xml.in.h:166 msgid "Trumpet" msgstr "" #: ../data/str.xml.in.h:167 msgid "Violin" msgstr "" #: ../data/str.xml.in.h:168 msgid "Musical Score" msgstr "" #: ../data/str.xml.in.h:169 msgid "Tennis" msgstr "" #: ../data/str.xml.in.h:170 msgid "Ski" msgstr "" #: ../data/str.xml.in.h:171 msgid "Basketball" msgstr "" #: ../data/str.xml.in.h:172 msgid "Flag" msgstr "" #: ../data/str.xml.in.h:173 msgid "Show Board" msgstr "" #: ../data/str.xml.in.h:174 msgid "Running" msgstr "" #: ../data/str.xml.in.h:175 msgid "Surfer" msgstr "" #: ../data/str.xml.in.h:176 msgid "Medal" msgstr "" #: ../data/str.xml.in.h:177 msgid "Trophy" msgstr "" #: ../data/str.xml.in.h:178 msgid "Horse Racing" msgstr "" #: ../data/str.xml.in.h:179 msgid "American Football" msgstr "" #: ../data/str.xml.in.h:180 msgid "Rugby" msgstr "" #: ../data/str.xml.in.h:181 msgid "Swimmer" msgstr "" #: ../data/str.xml.in.h:182 msgid "Weight Lifting" msgstr "" #: ../data/str.xml.in.h:183 msgid "Golf" msgstr "" #: ../data/str.xml.in.h:184 msgid "Motorcycle" msgstr "" #: ../data/str.xml.in.h:185 msgid "Race" msgstr "" #: ../data/str.xml.in.h:186 msgid "House" msgstr "" #: ../data/str.xml.in.h:187 msgid "Office" msgstr "" #: ../data/str.xml.in.h:188 msgid "Hospital" msgstr "" #: ../data/str.xml.in.h:189 msgid "Bank" msgstr "" #: ../data/str.xml.in.h:190 msgid "Hotel" msgstr "" #: ../data/str.xml.in.h:191 msgid "School" msgstr "" #: ../data/str.xml.in.h:192 msgid "Factory" msgstr "" #: ../data/str.xml.in.h:193 msgid "Rat" msgstr "" #: ../data/str.xml.in.h:194 msgid "Mouse" msgstr "" #: ../data/str.xml.in.h:195 msgid "Cow" msgstr "" #: ../data/str.xml.in.h:196 msgid "Tiger" msgstr "" #: ../data/str.xml.in.h:197 msgid "Leopard" msgstr "" #: ../data/str.xml.in.h:198 msgid "Rabbit" msgstr "" #: ../data/str.xml.in.h:199 msgid "Cat" msgstr "貓" #: ../data/str.xml.in.h:200 msgid "Dragon" msgstr "" #: ../data/str.xml.in.h:201 msgid "Crocodile" msgstr "" #: ../data/str.xml.in.h:202 msgid "Whale" msgstr "" #: ../data/str.xml.in.h:203 msgid "Snail" msgstr "" #: ../data/str.xml.in.h:204 msgid "Snake" msgstr "" #: ../data/str.xml.in.h:205 msgid "Horse" msgstr "" #: ../data/str.xml.in.h:206 msgid "Sheep" msgstr "" #: ../data/str.xml.in.h:207 msgid "Goat" msgstr "" #: ../data/str.xml.in.h:208 msgid "Monkey" msgstr "猴" #: ../data/str.xml.in.h:209 msgid "Chicken" msgstr "" #: ../data/str.xml.in.h:210 msgid "Dog" msgstr "狗" #: ../data/str.xml.in.h:211 msgid "Pig" msgstr "" #: ../data/str.xml.in.h:212 msgid "Elephant" msgstr "" #: ../data/str.xml.in.h:213 msgid "Octopus" msgstr "" #: ../data/str.xml.in.h:214 msgid "Spiral Shell" msgstr "" #: ../data/str.xml.in.h:215 msgid "Bug" msgstr "" #: ../data/str.xml.in.h:216 msgid "Ant" msgstr "" #: ../data/str.xml.in.h:217 msgid "Lady Beetle" msgstr "" #: ../data/str.xml.in.h:218 msgid "Fish" msgstr "" #: ../data/str.xml.in.h:219 msgid "Tropical Fish" msgstr "" #: ../data/str.xml.in.h:220 msgid "Blowfish" msgstr "" #: ../data/str.xml.in.h:221 msgid "Bird" msgstr "" #: ../data/str.xml.in.h:222 msgid "Penguin" msgstr "" #: ../data/str.xml.in.h:223 msgid "Koala" msgstr "" #: ../data/str.xml.in.h:224 msgid "Poodle" msgstr "" #: ../data/str.xml.in.h:225 msgid "Camel" msgstr "" #: ../data/str.xml.in.h:226 msgid "Dolphin" msgstr "" #: ../data/str.xml.in.h:227 msgid "Frog" msgstr "" #: ../data/str.xml.in.h:228 msgid "Hamster" msgstr "" #: ../data/str.xml.in.h:229 msgid "Wolf" msgstr "" #: ../data/str.xml.in.h:230 msgid "Bear" msgstr "" #: ../data/str.xml.in.h:231 msgid "Panda" msgstr "" #: ../data/str.xml.in.h:232 msgid "Eye" msgstr "" #: ../data/str.xml.in.h:233 msgid "Ear" msgstr "" #: ../data/str.xml.in.h:234 msgid "Nose" msgstr "" #: ../data/str.xml.in.h:235 msgid "Mouth" msgstr "" #: ../data/str.xml.in.h:236 msgid "Tongue" msgstr "" #: ../data/str.xml.in.h:237 msgid "Crown" msgstr "" #: ../data/str.xml.in.h:238 msgid "Glasses" msgstr "" #: ../data/str.xml.in.h:239 msgid "Necktie" msgstr "" #: ../data/str.xml.in.h:240 msgid "T-Shirt" msgstr "" #: ../data/str.xml.in.h:241 msgid "Jeans" msgstr "" #: ../data/str.xml.in.h:242 msgid "Dress" msgstr "" #: ../data/str.xml.in.h:243 msgid "Kimono" msgstr "" #: ../data/str.xml.in.h:244 msgid "Bikini" msgstr "" #: ../data/str.xml.in.h:245 msgid "Clothes" msgstr "" #: ../data/str.xml.in.h:246 msgid "Purse" msgstr "" #: ../data/str.xml.in.h:247 msgid "Handbag" msgstr "" #: ../data/str.xml.in.h:248 msgid "Pouch" msgstr "" #: ../data/str.xml.in.h:249 msgid "Shoe" msgstr "" #: ../data/str.xml.in.h:250 msgid "Footprint" msgstr "" #: ../data/str.xml.in.h:251 msgid "Account" msgstr "" #: ../data/str.xml.in.h:252 msgid "Boy" msgstr "男孩" #: ../data/str.xml.in.h:253 msgid "Girl" msgstr "女孩" #: ../data/str.xml.in.h:254 msgid "Man" msgstr "" #: ../data/str.xml.in.h:255 msgid "Woman" msgstr "" #: ../data/str.xml.in.h:256 msgid "Family" msgstr "" #: ../data/str.xml.in.h:257 msgid "Restroom" msgstr "" #: ../data/str.xml.in.h:258 msgid "Men" msgstr "" #: ../data/str.xml.in.h:259 msgid "Women" msgstr "" #: ../data/str.xml.in.h:260 msgid "Princess" msgstr "" #: ../data/str.xml.in.h:261 msgid "Japanese Ogre" msgstr "" #: ../data/str.xml.in.h:262 msgid "Japanese Goblin" msgstr "" #: ../data/str.xml.in.h:263 msgid "Ghost" msgstr "" #: ../data/str.xml.in.h:264 msgid "Baby Angel" msgstr "" #: ../data/str.xml.in.h:265 msgid "Extraterrestrial Alien" msgstr "" #: ../data/str.xml.in.h:266 msgid "Alien Monster" msgstr "" #: ../data/str.xml.in.h:267 msgid "IMP" msgstr "" #: ../data/str.xml.in.h:268 msgid "Skull" msgstr "" #: ../data/str.xml.in.h:269 msgid "Information Desk Person" msgstr "" #: ../data/str.xml.in.h:270 msgid "Guardsman" msgstr "" #: ../data/str.xml.in.h:271 msgid "Dancer" msgstr "" #: ../data/str.xml.in.h:272 msgid "Lipstick" msgstr "" #: ../data/str.xml.in.h:273 msgid "Nail" msgstr "" #: ../data/str.xml.in.h:274 msgid "Face" msgstr "" #: ../data/str.xml.in.h:275 msgid "Haircut" msgstr "" #: ../data/str.xml.in.h:276 msgid "Syringe" msgstr "" #: ../data/str.xml.in.h:277 msgid "Medicine" msgstr "" #: ../data/str.xml.in.h:278 msgid "Kiss" msgstr "吻" #: ../data/str.xml.in.h:279 msgid "Love Letter" msgstr "" #: ../data/str.xml.in.h:280 msgid "Ring" msgstr "" #: ../data/str.xml.in.h:281 msgid "Gem Stone" msgstr "" #: ../data/str.xml.in.h:282 msgid "Wedding" msgstr "" #: ../data/str.xml.in.h:283 msgid "Heart" msgstr "" #: ../data/str.xml.in.h:284 msgid "Idea" msgstr "" #: ../data/str.xml.in.h:285 msgid "Anger" msgstr "" #: ../data/str.xml.in.h:286 msgid "Bomb" msgstr "" #: ../data/str.xml.in.h:287 msgid "Sleeping" msgstr "" #: ../data/str.xml.in.h:288 msgid "Collision" msgstr "" #: ../data/str.xml.in.h:289 msgid "Sweat" msgstr "" #: ../data/str.xml.in.h:290 msgid "Droplet" msgstr "" #: ../data/str.xml.in.h:291 msgid "Dash" msgstr "" #: ../data/str.xml.in.h:292 msgid "Poo" msgstr "" #: ../data/str.xml.in.h:293 msgid "Muscle" msgstr "" #: ../data/str.xml.in.h:294 msgid "Dizzy" msgstr "" #: ../data/str.xml.in.h:295 msgid "Speech" msgstr "" #: ../data/str.xml.in.h:296 msgid "Thought" msgstr "" #: ../data/str.xml.in.h:297 msgid "Perfect Score" msgstr "" #: ../data/str.xml.in.h:298 msgid "Pushpin" msgstr "" #: ../data/str.xml.in.h:299 msgid "Clip" msgstr "" #: ../data/str.xml.in.h:300 msgid "Speaker" msgstr "" #: ../data/str.xml.in.h:301 msgid "Battery" msgstr "" #: ../data/str.xml.in.h:302 msgid "Plug" msgstr "" #: ../data/str.xml.in.h:303 msgid "Search" msgstr "" #: ../data/str.xml.in.h:304 msgid "Bookmark" msgstr "" #: ../data/str.xml.in.h:305 msgid "Book" msgstr "" #: ../data/str.xml.in.h:306 msgid "Memo" msgstr "" #: ../data/str.xml.in.h:307 msgid "Mail" msgstr "" #: ../data/str.xml.in.h:308 msgid "Mobile Phone" msgstr "" #: ../data/str.xml.in.h:309 msgid "Camera" msgstr "" #: ../data/str.xml.in.h:310 msgid "Video" msgstr "" #: ../data/str.xml.in.h:311 msgid "Television" msgstr "" #: ../data/str.xml.in.h:312 msgid "Radio" msgstr "" #: ../data/str.xml.in.h:313 msgid "Key" msgstr "" #: ../data/str.xml.in.h:314 msgid "Lock" msgstr "" #: ../data/str.xml.in.h:315 msgid "Fire" msgstr "" #: ../data/str.xml.in.h:316 msgid "Wrench" msgstr "" #: ../data/str.xml.in.h:317 msgid "Hammer" msgstr "" #: ../data/str.xml.in.h:318 msgid "Bolt" msgstr "" #: ../data/str.xml.in.h:319 msgid "Hocho" msgstr "" #: ../data/str.xml.in.h:320 msgid "Pistol" msgstr "" #: ../data/str.xml.in.h:321 msgid "Microscope" msgstr "" #: ../data/str.xml.in.h:322 msgid "Telescope" msgstr "" #: ../data/str.xml.in.h:323 msgid "Crystal" msgstr "" #: ../data/str.xml.in.h:324 msgid "David Star" msgstr "" #: ../data/str.xml.in.h:325 msgid "Beginner" msgstr "" #: ../data/str.xml.in.h:326 msgid "Candle" msgstr "" #: ../data/str.xml.in.h:327 msgid "Hole" msgstr "" #: ../data/str.xml.in.h:328 msgid "Personal Computer" msgstr "" #: ../data/str.xml.in.h:329 msgid "keyboard" msgstr "" #: ../data/str.xml.in.h:330 msgid "Printer" msgstr "" #: ../data/str.xml.in.h:331 msgid "Calculator" msgstr "" #: ../data/str.xml.in.h:332 msgid "Minimize" msgstr "" #: ../data/str.xml.in.h:333 msgid "Maximize" msgstr "" #: ../data/str.xml.in.h:334 msgid "Refresh" msgstr "" #: ../data/str.xml.in.h:335 msgid "Close" msgstr "" #: ../data/str.xml.in.h:336 msgid "World" msgstr "" #: ../data/str.xml.in.h:337 msgid "Mt. Fuji" msgstr "" #: ../data/str.xml.in.h:338 msgid "Tokyo Tower" msgstr "" #: ../data/str.xml.in.h:339 msgid "Japan" msgstr "" #: ../data/str.xml.in.h:340 msgid "Anguish" msgstr "" #: ../data/str.xml.in.h:341 msgid "Smile" msgstr "微笑" #: ../data/str.xml.in.h:342 msgid "Smirk" msgstr "" #: ../data/str.xml.in.h:343 msgid "Neutral" msgstr "" #: ../data/str.xml.in.h:344 msgid "Expressionless" msgstr "" #: ../data/str.xml.in.h:345 msgid "Unamused" msgstr "" #: ../data/str.xml.in.h:346 msgid "Pensive" msgstr "" #: ../data/str.xml.in.h:347 msgid "Confused" msgstr "" #: ../data/str.xml.in.h:348 msgid "Confounded" msgstr "" #: ../data/str.xml.in.h:349 msgid "Disappointed" msgstr "" #: ../data/str.xml.in.h:350 msgid "Angry" msgstr "生氣" #: ../data/str.xml.in.h:351 msgid "Cry" msgstr "" #: ../data/str.xml.in.h:352 msgid "Sleeply" msgstr "" #: ../data/str.xml.in.h:353 msgid "Tired" msgstr "" #: ../data/str.xml.in.h:354 msgid "Surprise" msgstr "" #: ../data/str.xml.in.h:355 msgid "Scream" msgstr "" #: ../data/str.xml.in.h:356 msgid "Flushed" msgstr "" #: ../data/str.xml.in.h:357 msgid "Medical Mask" msgstr "" #: ../data/str.xml.in.h:358 msgid "OK" msgstr "" #: ../data/str.xml.in.h:359 msgid "Bow" msgstr "" #: ../data/str.xml.in.h:360 msgid "See-No-Evil" msgstr "" #: ../data/str.xml.in.h:361 msgid "Hear-No-Evil" msgstr "" #: ../data/str.xml.in.h:362 msgid "Speak-No-Evil" msgstr "" #: ../data/str.xml.in.h:363 msgid "Banzai" msgstr "" #: ../data/str.xml.in.h:364 msgid "Pleading" msgstr "" #: ../data/str.xml.in.h:365 msgid "Smileys" msgstr "笑面" #: ../data/str.xml.in.h:366 msgid "Smile Big" msgstr "大微笑" #: ../data/str.xml.in.h:367 msgid "Sad" msgstr "哀" #: ../data/str.xml.in.h:368 msgid "Wink" msgstr "" #: ../data/str.xml.in.h:369 msgid "Shock" msgstr "" #: ../data/str.xml.in.h:370 msgid "Kiss | Secret" msgstr "吻 | 祕密" #: ../data/str.xml.in.h:371 msgid "Glasses Cool | Eyeroll" msgstr "" #: ../data/str.xml.in.h:372 msgid "Glasses Cool" msgstr "" #: ../data/str.xml.in.h:373 msgid "Embarrassed" msgstr "尷尬" #: ../data/str.xml.in.h:374 msgid "Crying" msgstr "哭" #: ../data/str.xml.in.h:375 msgid "Thinking" msgstr "" #: ../data/str.xml.in.h:376 msgid "Don't Know" msgstr "不懂" #: ../data/str.xml.in.h:377 msgid "Party" msgstr "" #: ../data/str.xml.in.h:378 msgid "Yawn" msgstr "打哈欠" #: ../data/str.xml.in.h:379 msgid "Bunny" msgstr "" #: ../data/str.xml.in.h:380 msgid "Sick" msgstr "病" #: ../data/str.xml.in.h:381 msgid "Devil" msgstr "魔鬼" #: ../data/str.xml.in.h:382 msgid "Angel" msgstr "天使" #: ../data/str.xml.in.h:383 msgid "Love" msgstr "愛" #: ../data/str.xml.in.h:384 msgid "Love Over" msgstr "愛完結" #: ../data/str.xml.in.h:385 msgid "Film" msgstr "" #: ../data/str.xml.in.h:386 msgid "Clock" msgstr "時鐘" #: ../data/str.xml.in.h:387 msgid "Coffee" msgstr "咖啡" #: ../data/str.xml.in.h:388 msgid "Phone" msgstr "電話" #: ../data/str.xml.in.h:389 msgid "Hug Left" msgstr "左抱" #: ../data/str.xml.in.h:390 msgid "Hug Right" msgstr "右抱" #: ../data/str.xml.in.h:391 msgid "Yes" msgstr "" #: ../data/str.xml.in.h:392 msgid "No" msgstr "" #: ../data/str.xml.in.h:393 msgid "Shut Mouth" msgstr "" #: ../data/str.xml.in.h:394 msgid "Money Mouth" msgstr "" #: ../data/str.xml.in.h:395 msgid "Foot in Mouth" msgstr "" #: ../data/str.xml.in.h:396 msgid "Shout" msgstr "" #. http://ja.wikipedia.org/wiki/%E9%A1%94%E6%96%87%E5%AD%97 #: ../data/str.xml.in.h:398 msgid "Smileys (Japanese)" msgstr "笑面 (日文)" #: ../data/str.xml.in.h:399 msgid "Smoking" msgstr "抽煙" #: ../data/str.xml.in.h:400 msgid "Sorry" msgstr "" #: ../data/str.xml.in.h:401 msgid "Hug" msgstr "抱" #. http://ja.wikipedia.org/wiki/%E9%A1%94%E6%96%87%E5%AD%97 #: ../data/str.xml.in.h:403 msgid "Smileys (Japanese 2ch)" msgstr "笑面 (日文 2ch)" #: ../data/str.xml.in.h:404 msgid "Hey" msgstr "" #. http://ja.wikipedia.org/wiki/%E9%A1%94%E6%96%87%E5%AD%97 #: ../data/str.xml.in.h:406 msgid "Smileys (Chinese)" msgstr "笑面 (中文)" #: ../data/str.xml.in.h:407 msgid "Crow" msgstr "烏鴉" #. http://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88%E3%82%B9%E3%83%A9%E3%83%B3%E3%82%B0 #: ../data/str.xml.in.h:409 msgid "Acronym" msgstr "縮寫" #: ../data/str.xml.in.h:410 msgid "Acronym (Computer)" msgstr "縮寫 (電腦)" #. http://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88%E3%82%B9%E3%83%A9%E3%83%B3%E3%82%B0 #: ../data/str.xml.in.h:412 msgid "Acronym (Japanese)" msgstr "縮寫 (日文)" #: ../data/str.xml.in.h:413 msgid "Do not want to read between lines (Aete Kuuki Wo Yomanai)" msgstr "" #: ../data/str.xml.in.h:414 msgid "Can't get together (Guda Guda)" msgstr "" #: ../data/str.xml.in.h:415 msgid "Say whatever one feels (Iitaidake)" msgstr "" #: ../data/str.xml.in.h:416 msgid "Excited (Kitakore)" msgstr "興奮 (Kitakore)" #: ../data/str.xml.in.h:417 msgid "Detail (Kuwashiku)" msgstr "詳細" #: ../data/str.xml.in.h:418 msgid "Cannot read between lines (Kuuki Ga Yomenai)" msgstr "" #: ../data/str.xml.in.h:419 msgid "Omission (Shouryaku)" msgstr "" #: ../data/str.xml.in.h:420 msgid "Excited (Waku Waku Teka Teka)" msgstr "興奮 (Waku Waku Teka Teka)" #: ../data/str.xml.in.h:421 msgid "Laugh" msgstr "笑" #: ../data/str.xml.in.h:422 msgid "Dude (Oi!)" msgstr "" #: ../data/str.xml.in.h:423 msgid "Good job (Otsukare)" msgstr "" #: ../data/str.xml.in.h:424 msgid "Want (Kure, E.g. pics クレメンス)" msgstr "" #: ../data/str.xml.in.h:425 msgid "ASCII art of a hand (✊, E.g. つAttention)" msgstr "" #: ../data/str.xml.in.h:426 msgid "In The Meantime (Toriaezu, Maa)" msgstr "" #: ../data/str.xml.in.h:427 msgid "Self-confidence (Aniki, E.g. tennis ニキ)" msgstr "" #: ../data/str.xml.in.h:428 msgid "Bye" msgstr "" #: ../data/str.xml.in.h:429 msgid "Want (Hattekure, E.g. pics ハラデイ)" msgstr "" #: ../data/str.xml.in.h:430 msgid "Exist as microparticles (Biryushi Level De Sonzaisuru)" msgstr "" #: ../data/str.xml.in.h:431 msgid "False Start (Flying Get)" msgstr "" #: ../data/str.xml.in.h:432 msgid "Fulfilling Life (Real life is Zyujitsu)" msgstr "" #: ../data/str.xml.in.h:433 msgid "Laugh (Warau)" msgstr "笑 (Warau)" #: ../data/str.xml.in.h:434 msgid "He (Yatsu <- Yashi)" msgstr "" #: ../data/w3c.xml.in.h:1 msgid "Char References" msgstr "" #: ../data/zh.xml.in.h:1 msgid "Chinese" msgstr "中文" #: ../data/zh.xml.in.h:4 ../input-pad/unicode_block.h:138 msgid "Bopomofo" msgstr "注音符號" #: ../input-pad/app-menu.ui.h:1 msgid "_File" msgstr "檔案(_F)" #: ../input-pad/app-menu.ui.h:2 ../input-pad/dialog.ui.h:21 msgid "_Close" msgstr "關閉(_C)" #: ../input-pad/app-menu.ui.h:3 msgid "Close the program" msgstr "關閉程式" #: ../input-pad/app-menu.ui.h:4 msgid "_Pad" msgstr "" #: ../input-pad/app-menu.ui.h:5 msgid "_Code Point" msgstr "碼位(_C)" #: ../input-pad/app-menu.ui.h:6 msgid "_Show Pad" msgstr "顯示 Pad(_S)" #: ../input-pad/app-menu.ui.h:7 msgid "Show _All Characters" msgstr "顯示全部字元(_A)" #: ../input-pad/app-menu.ui.h:8 msgid "Show _Custom Characters" msgstr "顯示自訂字元(_C)" #: ../input-pad/app-menu.ui.h:9 msgid "Show _Nothing" msgstr "不顯示(_N)" #: ../input-pad/app-menu.ui.h:10 msgid "Show _Keyboard Layout" msgstr "顯示鍵盤配置(_K)" #: ../input-pad/app-menu.ui.h:11 msgid "_Help" msgstr "求助(_H)" #: ../input-pad/app-menu.ui.h:12 msgid "_Troubleshoot" msgstr "" #: ../input-pad/app-menu.ui.h:13 msgid "_About" msgstr "" #: ../input-pad/dialog.ui.h:1 msgid "Code Point Dialog" msgstr "" #: ../input-pad/dialog.ui.h:2 msgid "Unicode" msgstr "" #: ../input-pad/dialog.ui.h:3 msgid "You can choose encoding type" msgstr "可選擇編碼類型" #: ../input-pad/dialog.ui.h:4 msgid "Current Encoding" msgstr "當前編碼" #: ../input-pad/dialog.ui.h:5 msgid "Copy Buffer" msgstr "" #: ../input-pad/dialog.ui.h:6 msgid "Base 16\n" "Hex" msgstr "十六進制\n" "Hex" #: ../input-pad/dialog.ui.h:8 msgid "Set number case to hexadecimal" msgstr "" #: ../input-pad/dialog.ui.h:9 msgid "Base 10\n" "Dec" msgstr "十進制\n" "Dec" #: ../input-pad/dialog.ui.h:11 msgid "Set number case to decimal" msgstr "" #: ../input-pad/dialog.ui.h:12 msgid "Base 8\n" "Oct" msgstr "八進制\n" "Oct" #: ../input-pad/dialog.ui.h:14 msgid "Set number case to octal" msgstr "" #: ../input-pad/dialog.ui.h:15 msgid "Base 2\n" "Bin" msgstr "二進制\n" "Bin" #: ../input-pad/dialog.ui.h:17 msgid "Set number case to binary" msgstr "" #: ../input-pad/dialog.ui.h:18 msgid "Code Point:" msgstr "碼位:" #: ../input-pad/dialog.ui.h:19 msgid "Character:" msgstr "字元:" #: ../input-pad/dialog.ui.h:20 msgid "_Send" msgstr "發送(_S)" #: ../input-pad/dialog.ui.h:22 msgid "Input Pad Troubleshoot" msgstr "" #: ../input-pad/dialog.ui.h:24 #, no-c-format msgid "" "\n" "This application can be run either as a stand-alone program or under an " "input method application.\n" "If you wish to send multi-byte characters, this application needs to be run " "under an input method application.\n" "If you wish to send characters to X11 applications, those applications needs " "to allow send events. e.g.\n" "% xterm -xrm \"XTerm*allowSendEvents: true\"\n" "\n" "You also can copy pad files from /usr/share/input-pad/pad to $HOME/.config/" "pad to customize those in \"Custom Character\" pane." msgstr "" #: ../input-pad/dialog.ui.h:31 msgid "_OK" msgstr "" #: ../input-pad/dialog.ui.h:32 msgid "Configure Keyboard Layouts" msgstr "設定鍵盤配置" #: ../input-pad/dialog.ui.h:33 msgid "A_vailable layouts:" msgstr "可用配置(_V):" #: ../input-pad/dialog.ui.h:34 msgid "_Add" msgstr "" #: ../input-pad/dialog.ui.h:35 msgid "_Layouts shown in the list:" msgstr "" #: ../input-pad/dialog.ui.h:36 msgid "_Remove" msgstr "" #: ../input-pad/dialog.ui.h:37 msgid "_Options" msgstr "選項(_O)" #: ../input-pad/dialog.ui.h:38 msgid "Configure Keyboard Options" msgstr "設定鍵盤選項" #: ../input-pad/dialog.ui.h:39 msgid "_Use the default keyboard option" msgstr "使用預設鍵盤選項(_U)" #: ../input-pad/dialog.ui.h:40 msgid "Use the defualt XKB option" msgstr "使用預設 XKB 選項" #: ../input-pad/dialog.ui.h:41 msgid "Keyboard Option" msgstr "鍵盤選項" #: ../input-pad/dialog.ui.h:43 msgid "The input pad is a tool to send a character on button." msgstr "" #: ../input-pad/dialog.ui.h:44 msgid "translator_credits" msgstr "" #: ../input-pad/eek-gtk.c:65 msgid "Use libeek to draw keyboard" msgstr "以 libeek 繪畫鍵盤" #: ../input-pad/eek-gtk.c:237 msgid "eekboard layout" msgstr "eekboard 配置" #: ../input-pad/eek-gtk.c:249 msgid "eekboard Options" msgstr "eekboard 選項" #: ../input-pad/eek-gtk.c:249 msgid "Show eekboard Options" msgstr "顯示 eekboard 選項" #: ../input-pad/unicode_block.h:37 msgid "Basic Latin" msgstr "" #: ../input-pad/unicode_block.h:40 msgid "Latin Extended-B" msgstr "" #: ../input-pad/unicode_block.h:41 msgid "IPA Extensions" msgstr "" #: ../input-pad/unicode_block.h:42 msgid "Spacing Modifier Letters" msgstr "" #: ../input-pad/unicode_block.h:43 msgid "Combining Diacritical Marks" msgstr "" #: ../input-pad/unicode_block.h:44 msgid "Greek and Coptic" msgstr "" #: ../input-pad/unicode_block.h:45 msgid "Cyrillic" msgstr "" #: ../input-pad/unicode_block.h:46 msgid "Cyrillic Supplement" msgstr "" #: ../input-pad/unicode_block.h:47 msgid "Armenian" msgstr "" #: ../input-pad/unicode_block.h:48 msgid "Hebrew" msgstr "希伯來文" #: ../input-pad/unicode_block.h:49 msgid "Arabic" msgstr "阿拉伯文" #: ../input-pad/unicode_block.h:50 msgid "Syriac" msgstr "" #: ../input-pad/unicode_block.h:51 msgid "Arabic Supplement" msgstr "阿拉伯文補充" #: ../input-pad/unicode_block.h:52 msgid "Thaana" msgstr "" #: ../input-pad/unicode_block.h:53 msgid "NKo" msgstr "" #: ../input-pad/unicode_block.h:54 msgid "Samaritan" msgstr "" #: ../input-pad/unicode_block.h:55 msgid "Devanagari" msgstr "天城文" #: ../input-pad/unicode_block.h:56 msgid "Bengali" msgstr "孟加拉文" #: ../input-pad/unicode_block.h:57 msgid "Gurmukhi" msgstr "" #: ../input-pad/unicode_block.h:58 msgid "Gujarati" msgstr "" #: ../input-pad/unicode_block.h:59 msgid "Oriya" msgstr "" #: ../input-pad/unicode_block.h:60 msgid "Tamil" msgstr "泰米爾文" #: ../input-pad/unicode_block.h:61 msgid "Telugu" msgstr "" #: ../input-pad/unicode_block.h:62 msgid "Kannada" msgstr "" #: ../input-pad/unicode_block.h:63 msgid "Malayalam" msgstr "馬來文" #: ../input-pad/unicode_block.h:64 msgid "Sinhala" msgstr "" #: ../input-pad/unicode_block.h:65 msgid "Thai" msgstr "泰文" #: ../input-pad/unicode_block.h:66 msgid "Lao" msgstr "寮文" #: ../input-pad/unicode_block.h:67 msgid "Tibetan" msgstr "藏文" #: ../input-pad/unicode_block.h:68 msgid "Myanmar" msgstr "緬文" #: ../input-pad/unicode_block.h:69 msgid "Georgian" msgstr "喬治亞文" #: ../input-pad/unicode_block.h:70 msgid "Hangul Jamo" msgstr "諺文字母" #: ../input-pad/unicode_block.h:71 msgid "Ethiopic" msgstr "" #: ../input-pad/unicode_block.h:72 msgid "Ethiopic Supplement" msgstr "" #: ../input-pad/unicode_block.h:73 msgid "Cherokee" msgstr "" #: ../input-pad/unicode_block.h:74 msgid "Unified Canadian Aboriginal Syllabics" msgstr "" #: ../input-pad/unicode_block.h:75 msgid "Ogham" msgstr "" #: ../input-pad/unicode_block.h:76 msgid "Runic" msgstr "" #: ../input-pad/unicode_block.h:77 msgid "Tagalog" msgstr "他加祿文" #: ../input-pad/unicode_block.h:78 msgid "Hanunoo" msgstr "" #: ../input-pad/unicode_block.h:79 msgid "Buhid" msgstr "" #: ../input-pad/unicode_block.h:80 msgid "Tagbanwa" msgstr "" #: ../input-pad/unicode_block.h:81 msgid "Khmer" msgstr "高棉文" #: ../input-pad/unicode_block.h:82 msgid "Mongolian" msgstr "蒙文" #: ../input-pad/unicode_block.h:83 msgid "Unified Canadian Aboriginal Syllabics Extended" msgstr "" #: ../input-pad/unicode_block.h:84 msgid "Limbu" msgstr "" #: ../input-pad/unicode_block.h:85 msgid "Tai Le" msgstr "" #: ../input-pad/unicode_block.h:86 msgid "New Tai Lue" msgstr "" #: ../input-pad/unicode_block.h:87 msgid "Khmer Symbols" msgstr "高棉符號" #: ../input-pad/unicode_block.h:88 msgid "Buginese" msgstr "" #: ../input-pad/unicode_block.h:89 msgid "Tai Tham" msgstr "" #: ../input-pad/unicode_block.h:90 msgid "Balinese" msgstr "" #: ../input-pad/unicode_block.h:91 msgid "Sundanese" msgstr "巽他文" #: ../input-pad/unicode_block.h:92 msgid "Lepcha" msgstr "" #: ../input-pad/unicode_block.h:93 msgid "Ol Chiki" msgstr "" #: ../input-pad/unicode_block.h:94 msgid "Vedic Extensions" msgstr "" #: ../input-pad/unicode_block.h:95 msgid "Phonetic Extensions" msgstr "" #: ../input-pad/unicode_block.h:96 msgid "Phonetic Extensions Supplement" msgstr "" #: ../input-pad/unicode_block.h:97 msgid "Combining Diacritical Marks Supplement" msgstr "" #: ../input-pad/unicode_block.h:98 msgid "Latin Extended Additional" msgstr "" #: ../input-pad/unicode_block.h:99 msgid "Greek Extended" msgstr "" #: ../input-pad/unicode_block.h:100 msgid "General Punctuation" msgstr "一般標點" #: ../input-pad/unicode_block.h:101 msgid "Superscripts and Subscripts" msgstr "上標與下標" #: ../input-pad/unicode_block.h:102 msgid "Currency Symbols" msgstr "貨幣符號" #: ../input-pad/unicode_block.h:103 msgid "Combining Diacritical Marks for Symbols" msgstr "" #: ../input-pad/unicode_block.h:104 msgid "Letterlike Symbols" msgstr "" #: ../input-pad/unicode_block.h:105 msgid "Number Forms" msgstr "" #: ../input-pad/unicode_block.h:106 msgid "Arrows" msgstr "箭頭" #: ../input-pad/unicode_block.h:107 msgid "Mathematical Operators" msgstr "數學運算子" #: ../input-pad/unicode_block.h:108 msgid "Miscellaneous Technical" msgstr "雜項科技" #: ../input-pad/unicode_block.h:109 msgid "Control Pictures" msgstr "" #: ../input-pad/unicode_block.h:110 msgid "Optical Character Recognition" msgstr "泰米爾文" #: ../input-pad/unicode_block.h:111 msgid "Enclosed Alphanumerics" msgstr "包起來的字母和數字" #: ../input-pad/unicode_block.h:113 msgid "Block Elements" msgstr "" #: ../input-pad/unicode_block.h:114 msgid "Geometric Shapes" msgstr "地理學圖形" #: ../input-pad/unicode_block.h:115 msgid "Miscellaneous Symbols" msgstr "雜項符號" #: ../input-pad/unicode_block.h:117 msgid "Miscellaneous Mathematical Symbols-A" msgstr "雜項數學符號-A" #: ../input-pad/unicode_block.h:118 msgid "Supplemental Arrows-A" msgstr "補充箭頭-A" #: ../input-pad/unicode_block.h:119 msgid "Braille Patterns" msgstr "盲文式樣" #: ../input-pad/unicode_block.h:120 msgid "Supplemental Arrows-B" msgstr "補充箭頭-B" #: ../input-pad/unicode_block.h:121 msgid "Miscellaneous Mathematical Symbols-B" msgstr "雜項數學符號-B" #: ../input-pad/unicode_block.h:122 msgid "Supplemental Mathematical Operators" msgstr "" #: ../input-pad/unicode_block.h:123 msgid "Miscellaneous Symbols and Arrows" msgstr "雜項符號和箭頭" #: ../input-pad/unicode_block.h:124 msgid "Glagolitic" msgstr "" #: ../input-pad/unicode_block.h:125 msgid "Latin Extended-C" msgstr "" #: ../input-pad/unicode_block.h:126 msgid "Coptic" msgstr "" #: ../input-pad/unicode_block.h:127 msgid "Georgian Supplement" msgstr "喬治亞文補充" #: ../input-pad/unicode_block.h:128 msgid "Tifinagh" msgstr "" #: ../input-pad/unicode_block.h:129 msgid "Ethiopic Extended" msgstr "" #: ../input-pad/unicode_block.h:130 msgid "Cyrillic Extended-A" msgstr "" #: ../input-pad/unicode_block.h:131 msgid "Supplemental Punctuation" msgstr "" #: ../input-pad/unicode_block.h:133 msgid "Kangxi Radicals" msgstr "康熙部首" #: ../input-pad/unicode_block.h:134 msgid "Ideographic Description Characters" msgstr "表意文字說明字元" #: ../input-pad/unicode_block.h:135 msgid "CJK Symbols and Punctuation" msgstr "中日韓符號和標點" #: ../input-pad/unicode_block.h:139 msgid "Hangul Compatibility Jamo" msgstr "諺文相容字母" #: ../input-pad/unicode_block.h:140 msgid "Kanbun" msgstr "漢文" #: ../input-pad/unicode_block.h:141 msgid "Bopomofo Extended" msgstr "注音符號擴充" #: ../input-pad/unicode_block.h:142 msgid "CJK Strokes" msgstr "中日韓筆畫" #: ../input-pad/unicode_block.h:143 msgid "Katakana Phonetic Extensions" msgstr "" #: ../input-pad/unicode_block.h:144 msgid "Enclosed CJK Letters and Months" msgstr "包起來的中日韓字母和月份符號" #: ../input-pad/unicode_block.h:146 msgid "CJK Unified Ideographs Extension A" msgstr "中日韓統一表意文字擴充 A 集" #: ../input-pad/unicode_block.h:147 msgid "Yijing Hexagram Symbols" msgstr "易經八卦符號" #: ../input-pad/unicode_block.h:148 msgid "CJK Unified Ideographs" msgstr "中日韓統一表意文字" #: ../input-pad/unicode_block.h:149 msgid "Yi Syllables" msgstr "彞文音節" #: ../input-pad/unicode_block.h:150 msgid "Yi Radicals" msgstr "彞文部首" #: ../input-pad/unicode_block.h:151 msgid "Lisu" msgstr "" #: ../input-pad/unicode_block.h:152 msgid "Vai" msgstr "" #: ../input-pad/unicode_block.h:153 msgid "Cyrillic Extended-B" msgstr "" #: ../input-pad/unicode_block.h:154 msgid "Bamum" msgstr "" #: ../input-pad/unicode_block.h:155 msgid "Modifier Tone Letters" msgstr "" #: ../input-pad/unicode_block.h:156 msgid "Latin Extended-D" msgstr "" #: ../input-pad/unicode_block.h:157 msgid "Syloti Nagri" msgstr "" #: ../input-pad/unicode_block.h:158 msgid "Common Indic Number Forms" msgstr "" #: ../input-pad/unicode_block.h:159 msgid "Phags-pa" msgstr "" #: ../input-pad/unicode_block.h:160 msgid "Saurashtra" msgstr "" #: ../input-pad/unicode_block.h:161 msgid "Devanagari Extended" msgstr "天城文擴充" #: ../input-pad/unicode_block.h:162 msgid "Kayah Li" msgstr "" #: ../input-pad/unicode_block.h:163 msgid "Rejang" msgstr "" #: ../input-pad/unicode_block.h:164 msgid "Hangul Jamo Extended-A" msgstr "諺文字母擴充-A" #: ../input-pad/unicode_block.h:165 msgid "Javanese" msgstr "爪哇文" #: ../input-pad/unicode_block.h:166 msgid "Cham" msgstr "" #: ../input-pad/unicode_block.h:167 msgid "Myanmar Extended-A" msgstr "緬文擴充-A" #: ../input-pad/unicode_block.h:168 msgid "Tai Viet" msgstr "" #: ../input-pad/unicode_block.h:169 msgid "Meetei Mayek" msgstr "" #: ../input-pad/unicode_block.h:170 msgid "Hangul Syllables" msgstr "諺文音節" #: ../input-pad/unicode_block.h:171 msgid "Hangul Jamo Extended-B" msgstr "諺文字母擴充-B" #: ../input-pad/unicode_block.h:172 msgid "High Surrogates" msgstr "" #: ../input-pad/unicode_block.h:173 msgid "High Private Use Surrogates" msgstr "" #: ../input-pad/unicode_block.h:174 msgid "Low Surrogates" msgstr "" #: ../input-pad/unicode_block.h:175 msgid "Private Use Area" msgstr "" #: ../input-pad/unicode_block.h:176 msgid "CJK Compatibility Ideographs" msgstr "中日韓相容表意文字" #: ../input-pad/unicode_block.h:177 msgid "Alphabetic Presentation Forms" msgstr "字母表現形式" #: ../input-pad/unicode_block.h:178 msgid "Arabic Presentation Forms-A" msgstr "阿拉伯字母表現形式 A" #: ../input-pad/unicode_block.h:179 msgid "Variation Selectors" msgstr "異體字選擇元" #: ../input-pad/unicode_block.h:180 msgid "Vertical Forms" msgstr "直排" #: ../input-pad/unicode_block.h:181 msgid "Combining Half Marks" msgstr "" #: ../input-pad/unicode_block.h:182 msgid "CJK Compatibility Forms" msgstr "中日韓相容形式" #: ../input-pad/unicode_block.h:183 msgid "Small Form Variants" msgstr "小型相容形式" #: ../input-pad/unicode_block.h:184 msgid "Arabic Presentation Forms-B" msgstr "阿拉伯字母表現形式 B" #: ../input-pad/unicode_block.h:185 msgid "Halfwidth and Fullwidth Forms" msgstr "半形和全形" #: ../input-pad/unicode_block.h:186 msgid "Specials" msgstr "特殊字元" #: ../input-pad/unicode_block.h:187 msgid "Linear B Syllabary" msgstr "" #: ../input-pad/unicode_block.h:188 msgid "Linear B Ideograms" msgstr "" #: ../input-pad/unicode_block.h:189 msgid "Aegean Numbers" msgstr "" #: ../input-pad/unicode_block.h:190 msgid "Ancient Greek Numbers" msgstr "古希臘數字" #: ../input-pad/unicode_block.h:191 msgid "Ancient Symbols" msgstr "古符號" #: ../input-pad/unicode_block.h:192 msgid "Phaistos Disc" msgstr "" #: ../input-pad/unicode_block.h:193 msgid "Lycian" msgstr "" #: ../input-pad/unicode_block.h:194 msgid "Carian" msgstr "" #: ../input-pad/unicode_block.h:195 msgid "Old Italic" msgstr "" #: ../input-pad/unicode_block.h:197 msgid "Ugaritic" msgstr "" #: ../input-pad/unicode_block.h:198 msgid "Old Persian" msgstr "" #: ../input-pad/unicode_block.h:199 msgid "Deseret" msgstr "" #: ../input-pad/unicode_block.h:201 msgid "Osmanya" msgstr "" #: ../input-pad/unicode_block.h:202 msgid "Cypriot Syllabary" msgstr "" #: ../input-pad/unicode_block.h:203 msgid "Imperial Aramaic" msgstr "" #: ../input-pad/unicode_block.h:204 msgid "Phoenician" msgstr "" #: ../input-pad/unicode_block.h:205 msgid "Lydian" msgstr "" #: ../input-pad/unicode_block.h:206 msgid "Kharoshthi" msgstr "" #: ../input-pad/unicode_block.h:207 msgid "Old South Arabian" msgstr "" #: ../input-pad/unicode_block.h:208 msgid "Avestan" msgstr "" #: ../input-pad/unicode_block.h:209 msgid "Inscriptional Parthian" msgstr "" #: ../input-pad/unicode_block.h:210 msgid "Inscriptional Pahlavi" msgstr "" #: ../input-pad/unicode_block.h:211 msgid "Old Turkic" msgstr "" #: ../input-pad/unicode_block.h:212 msgid "Rumi Numeral Symbols" msgstr "" #: ../input-pad/unicode_block.h:213 msgid "Kaithi" msgstr "" #: ../input-pad/unicode_block.h:214 msgid "Cuneiform" msgstr "" #: ../input-pad/unicode_block.h:215 msgid "Cuneiform Numbers and Punctuation" msgstr "" #: ../input-pad/unicode_block.h:216 msgid "Egyptian Hieroglyphs" msgstr "" #: ../input-pad/unicode_block.h:217 msgid "Byzantine Musical Symbols" msgstr "Byzantine 音符" #: ../input-pad/unicode_block.h:218 msgid "Musical Symbols" msgstr "音符" #: ../input-pad/unicode_block.h:219 msgid "Ancient Greek Musical Notation" msgstr "古希臘音符" #: ../input-pad/unicode_block.h:220 msgid "Tai Xuan Jing Symbols" msgstr "太玄經符號" #: ../input-pad/unicode_block.h:221 msgid "Counting Rod Numerals" msgstr "算籌數字" #: ../input-pad/unicode_block.h:222 msgid "Mathematical Alphanumeric Symbols" msgstr "" #: ../input-pad/unicode_block.h:223 msgid "Mahjong Tiles" msgstr "麻將牌" #: ../input-pad/unicode_block.h:224 msgid "Domino Tiles" msgstr "骨牌" #: ../input-pad/unicode_block.h:225 msgid "Enclosed Alphanumeric Supplement" msgstr "包起來的字母和數字補充" #: ../input-pad/unicode_block.h:226 msgid "Enclosed Ideographic Supplement" msgstr "包起來的表音文字補充" #: ../input-pad/unicode_block.h:227 msgid "CJK Unified Ideographs Extension B" msgstr "中日韓統一表意文字擴充 B 集" #: ../input-pad/unicode_block.h:228 msgid "CJK Unified Ideographs Extension C" msgstr "中日韓統一表意文字擴充 C 集" #: ../input-pad/unicode_block.h:229 msgid "CJK Compatibility Ideographs Supplement" msgstr "中日韓相容表意文字補充" #: ../input-pad/unicode_block.h:230 msgid "Tags" msgstr "標記" #: ../input-pad/unicode_block.h:231 msgid "Variation Selectors Supplement" msgstr "異體字選擇元補充" #: ../input-pad/unicode_block.h:232 msgid "Supplementary Private Use Area-A" msgstr "" #: ../input-pad/unicode_block.h:233 msgid "Supplementary Private Use Area-B" msgstr "" #: ../input-pad/window-gtk.c:203 msgid "Display version" msgstr "顯示版本" #. Translators: the word 'KBDUI' is not translated. #: ../input-pad/window-gtk.c:206 msgid "Use KBDUI to draw keyboard" msgstr "以 KBDUI 繪畫鍵盤" #. Translators: the word 'TYPE' is not translated. #: ../input-pad/window-gtk.c:209 msgid "Use TYPE of char table. The available TYPE=0, 1, 2" msgstr "" #. Translators: the word 'TYPE' is not translated. #: ../input-pad/window-gtk.c:212 msgid "Use TYPE of keyboard layout. The available TYPE=0, 1" msgstr "" #: ../input-pad/window-gtk.c:219 msgid "Use XTEST module to send key events" msgstr "" #: ../input-pad/window-gtk.c:224 msgid "Use XSendEvent to send key events" msgstr "" #: ../input-pad/window-gtk.c:1172 msgid "Fold layout" msgstr "" #: ../input-pad/window-gtk.c:1177 ../input-pad/window-gtk.c:2610 msgid "Extend layout" msgstr "" #: ../input-pad/window-gtk.c:2824 msgid "Layout" msgstr "配置" #: ../input-pad/window-gtk.c:3095 msgid "_Layout:" msgstr "配置(_L):" #: ../input-pad/window-gtk.c:3125 msgid "_Configure Layouts" msgstr "設定配置(_C)" #. No longer used in gtk 2.20 #. gchar *license1, *license2, *license3; #. license1 = _("" #. "This library is free software; you can redistribute it and/or " #. "modify it under the terms of the GNU Lesser General Public " #. "License as published by the Free Software Foundation; either " #. "version 2 of the License, or (at your option) any later version."); #. #. license2 = _("" #. "This library is distributed in the hope that it will be useful, " #. "but WITHOUT ANY WARRANTY; without even the implied warranty of " #. "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU " #. "Lesser General Public License for more details."); #. #. license3 = _("" #. "You should have received a copy of the GNU Lesser General Public " #. "License along with this library; if not, write to the Free Software " #. "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, " #. "MA 02110-1301 USA"); #. #. license = g_strdup_printf ("%s\n\n%s\n\n%s", #. license1, license2, license3); #. #. This format has been used since gtk 2.20. #: ../input-pad/window-gtk.c:3164 #, c-format msgid "This program comes with ABSOLUTELY NO WARRANTY; for details, visit %s" msgstr "" #: ../input-pad/window-gtk.c:3446 msgid "Group" msgstr "群組" #: ../input-pad/window-gtk.c:3454 msgid "Subgroup" msgstr "子群組" input-pad-1.1.0/pyinput-pad/000077500000000000000000000000001476727667600157205ustar00rootroot00000000000000input-pad-1.1.0/pyinput-pad/Makefile.am000066400000000000000000000117061476727667600177610ustar00rootroot00000000000000# vim:set noet ts=4: # # input-pad - The input pad # # Copyright (c) 2010-2014 Takao Fujiwara # Copyright (c) 2010-2014 Red Hat, Inc. # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301 USA noinst_DIST = \ $(NULL) AM_CPPFLAGS = \ -I$(top_srcdir) \ -I$(top_srcdir)/input-pad \ $(NULL) pyinput_pad_swig_files = \ input_pad_group.i \ input_pad_window_gtk.i \ input_pad.i \ $(NULL) pyinput_pad_PYTHON = \ $(pyinput_pad_swig_files:.i=.py) \ $(NULL) pyinput_pad_LTLIBRARIES = \ _input_pad_group.la \ _input_pad_window_gtk.la \ _input_pad.la \ $(NULL) pyinput_paddir = $(pyexecdir)/$(PACKAGE)-$(libinput_pad_VERSION) _input_pad_la_SOURCES = \ $(NULL) nodist__input_pad_la_SOURCES = \ input_pad_wrap.c \ $(NULL) _input_pad_la_CFLAGS = \ $(PYTHON_CFLAGS) \ $(GTK3_CFLAGS) \ $(NULL) _input_pad_la_LDFLAGS = \ $(PYTHON_LIBS) \ $(GTK3_LIBS) \ -avoid-version \ -module \ $(NULL) _input_pad_la_LIBADD = \ $(top_builddir)/input-pad/libinput-pad-$(libinput_pad_API_VERSION).la \ $(NULL) _input_pad_group_la_SOURCES = \ $(NULL) nodist__input_pad_group_la_SOURCES = \ input_pad_group_wrap.c \ $(NULL) _input_pad_group_la_CFLAGS = \ $(PYTHON_CFLAGS) \ $(NULL) _input_pad_group_la_LDFLAGS = \ $(PYTHON_LIBS) \ -avoid-version \ -module \ $(NULL) _input_pad_group_la_LIBADD = \ $(top_builddir)/input-pad/libinput-pad-$(libinput_pad_API_VERSION).la \ $(NULL) _input_pad_window_gtk_la_SOURCES = \ $(NULL) nodist__input_pad_window_gtk_la_SOURCES = \ input_pad_window_gtk_wrap.c \ $(NULL) _input_pad_window_gtk_la_CFLAGS = \ $(PYTHON_CFLAGS) \ $(GTK3_CFLAGS) \ $(NULL) _input_pad_window_gtk_la_LDFLAGS = \ $(PYTHON_LIBS) \ $(GTK3_LIBS) \ -avoid-version \ -module \ $(NULL) _input_pad_window_gtk_la_LIBADD = \ $(top_builddir)/input-pad/libinput-pad-$(libinput_pad_API_VERSION).la \ $(NULL) %.py %_wrap.c: %.i @f=`basename "$<"`; \ if [ x"$$f" = xinput_pad_window_gtk.i ] ; then \ sed -e "/G_BEGIN_DECLS/d" -e "/G_END_DECLS/d" \ -e "/G_MODULE_EXPORT/d" \ $(top_srcdir)/input-pad/input-pad-window-gtk.h \ > $(builddir)/input-pad-window-gtk-swig.h; \ fi; \ $(SWIG) -python -I$(top_srcdir)/input-pad $< \ $(NULL) pyinput_pad_pth_in_files = \ pyinput_pad.pth.in \ $(NULL) pyinput_pad_pth_DATA = $(pyinput_pad_pth_in_files:.pth.in=.pth) pyinput_pad_pthdir = $(pyexecdir) CLEANFILES = \ $(pyinput_pad_PYTHON) \ $(pyinput_pad_pth_DATA) \ input-pad-window-gtk-swig.h \ input_pad_wrap.c \ input_pad_group_wrap.c \ input_pad_window_gtk_wrap.c \ $(NULL) EXTRA_DIST = \ $(pyinput_pad_swig_files) \ $(pyinput_pad_pth_in_files) \ test_input_pad.py \ test_input_pad_group.py \ test_input_pad_gtk.py \ $(NULL) input-pad-1.1.0/pyinput-pad/input_pad.i000066400000000000000000000135041476727667600200600ustar00rootroot00000000000000%module input_pad %{ #include #include #include %} %include input-pad.h %pythoncode { get_version = input_pad_get_version class InputPadWindow: def __init__(self, argv=None, type=INPUT_PAD_WINDOW_TYPE_GTK): self.window = None self.type = type _init_internal(argv, type) def new (self, child=0): self.window = _input_pad_window_new_with_gtype (child, True) def show(self): input_pad_window_show(self.window) def hide(self): input_pad_window_hide(self.window) def get_visible(self): return input_pad_window_get_visible(self.window) def set_paddir(self, paddir, domain=None): input_pad_window_set_paddir(self.window, paddir, domain) def append_padfile(self, padfile, domain=None): input_pad_window_append_padfile(self.window, padfile, domain) def set_char_button_sensitive(self, sensitive): input_pad_window_set_char_button_sensitive(self.window, sensitive) def reorder_button_pressed(self): input_pad_window_reorder_button_pressed(self.window) def set_kbdui_name(self, name=None): input_pad_window_set_kbdui_name(self.window, name) def set_show_table (self, type=0): input_pad_window_set_show_table (self.window, type) def set_show_layout (self, type=0): input_pad_window_set_show_layout (self.window, type) def connect(self, signal_id, signal_cb, data=None): _input_pad_window_connect_wrapper(self.window, signal_id, signal_cb, data) def main(self): input_pad_window_main(self.window) def destroy(self): input_pad_window_destroy(self.window) def _init_internal(argv, type): if argv == None: import sys argv = sys.argv if type == INPUT_PAD_WINDOW_TYPE_GTK: import pygtk import gtk _input_pad_window_init_wrapper (argv, type) def init(argv=None, type=INPUT_PAD_WINDOW_TYPE_GTK): _init_internal(argv, type) def get_kbdui_name_list(): return _input_pad_window_get_kbdui_name_list_wrapper() } %inline %{ /* workaround */ extern void* _input_pad_window_new_with_gtype (unsigned int child, unsigned int gtype); PyObject * _input_pad_window_get_kbdui_name_list_wrapper (void) { InputPadWindowKbduiName *list; Py_ssize_t i, size = 0; PyObject *retval = NULL; PyObject *tuple = NULL; list = input_pad_window_get_kbdui_name_list (); if (list == NULL) { return Py_None; } while (list[size].name != NULL) { size++; } retval = PyList_New (0); for (i = 0; i < size; i++) { tuple = PyTuple_Pack (3, PyString_FromString (list[i].name), PyString_FromString (list[i].description), PyInt_FromLong (list[i].type)); PyList_Append (retval, tuple); free (list[i].name); list[i].name = NULL; free (list[i].description); list[i].description = NULL; } free (list); return retval; } void _input_pad_window_init_wrapper (PyObject *pyargv, InputPadWindowType type) { int i; int argc; char **argv; if (!PyList_Check (pyargv)) { PyErr_Warn (PyExc_Warning, "type of argument 2 is not list"); return; } argc = PyList_Size (pyargv); for (i = 0; i < argc; i++) { if (!PyString_Check (PyList_GetItem (pyargv, i))) { PyErr_Warn (PyExc_Warning, "argument is not string"); return; } } argv = calloc (sizeof (char*), argc); for (i = 0; i < argc; i++) { argv[i] = strdup (PyString_AsString (PyList_GetItem (pyargv, i))); } input_pad_window_init (&argc, &argv, type); PySys_SetArgv (argc, argv); for (i = 0; argv && i < argc; i++) { free (argv[i]); } free (argv); } typedef struct _python_callback_data { PyObject *pysignal_cb; PyObject *pydata; } python_callback_data; static unsigned int button_pressed_cb (void *window, gchar *str, guint type, guint keysym, guint keycode, guint state, gpointer data) { PyObject *retval; PyObject *pywindow = NULL; PyObject *pystr = NULL; python_callback_data *cb_data = (python_callback_data *) data; pywindow = SWIG_NewPointerObj (SWIG_as_voidptr(window), SWIGTYPE_p_void, 0 | 0 ); pystr = PyString_FromString (str); retval = PyObject_CallFunction (cb_data->pysignal_cb, "OOiiiiO", pywindow, pystr, type, keysym, keycode, state, cb_data->pydata); Py_DECREF (pystr); return FALSE; } unsigned long _input_pad_window_connect_wrapper(void *window, char *signal_id, PyObject *pysignal_cb, PyObject *pydata) { gchar *message = NULL; python_callback_data *cb_data; if (!PyCallable_Check (pysignal_cb)) { PyErr_Warn (PyExc_Warning, "not function"); return 0; } if (g_strcmp0 (signal_id, "button-pressed") != 0) { message = g_strdup_printf ("Your signal_id is not supported: %s", signal_id ? signal_id : "(null)"); PyErr_Warn (PyExc_Warning, message); g_free (message); return 0; } cb_data = (python_callback_data *) g_new0 (python_callback_data, 1); cb_data->pysignal_cb = pysignal_cb; cb_data->pydata = pydata; return g_signal_connect (G_OBJECT (window), signal_id, G_CALLBACK (button_pressed_cb), cb_data); } %} input-pad-1.1.0/pyinput-pad/input_pad_group.i000066400000000000000000000003441476727667600212720ustar00rootroot00000000000000%module input_pad_group %{ #include %} %include input-pad-group.h %pythoncode { def parse_all_files(custom_dirname=None, domain=None): return input_pad_group_parse_all_files (custom_dirname, domain) } input-pad-1.1.0/pyinput-pad/input_pad_window_gtk.i000066400000000000000000000157731476727667600223260ustar00rootroot00000000000000%module input_pad_window_gtk %{ #include InputPadGtkWindow * _input_pad_gtk_window_new_wrapper (int pytype, unsigned int child); unsigned long _input_pad_gtk_window_connect_wrapper (struct _InputPadGtkWindow *self, char *signal_id, PyObject *pysignal_cb, PyObject *pydata); %} %include input-pad-window-gtk-swig.h %pythoncode { class InputPadGtkWindow(_InputPadGtkWindow): def __init__(self, pytype, child=0): _InputPadGtkWindow.__init__(self, pytype, child) def set_paddir(self, paddir, domain=None): _InputPadGtkWindow.set_paddir(self, paddir, domain) def append_padfile(self, padfile, domain=None): _InputPadGtkWindow.append_padfile(self, padfile, domain) def get_kbdui_name_list(): return _input_pad_gtk_window_get_kbdui_name_list_wrapper() } %extend _InputPadGtkWindow { _InputPadGtkWindow (int pytype, unsigned int child) { return _input_pad_gtk_window_new_wrapper (pytype, child); } void hide () { gtk_widget_hide (GTK_WIDGET (self)); } void show () { gtk_widget_show (GTK_WIDGET (self)); } int get_visible () { return gtk_widget_get_visible (GTK_WIDGET (self)); } void set_paddir (const char *paddir, const char *domain) { input_pad_gtk_window_set_paddir (INPUT_PAD_GTK_WINDOW (self), paddir, domain); } void append_padfile (const char *padfile, const char *domain) { input_pad_gtk_window_append_padfile (INPUT_PAD_GTK_WINDOW (self), padfile, domain); } void set_char_button_sensitive (unsigned int sensitive) { input_pad_gtk_window_set_char_button_sensitive (INPUT_PAD_GTK_WINDOW (self), sensitive ? TRUE : FALSE); } void reorder_button_pressed () { input_pad_gtk_window_reorder_button_pressed (INPUT_PAD_GTK_WINDOW (self)); } unsigned int get_keyboard_state () { return input_pad_gtk_window_get_keyboard_state (INPUT_PAD_GTK_WINDOW (self)); } void set_keyboard_state (unsigned int keyboard_state) { input_pad_gtk_window_set_keyboard_state (INPUT_PAD_GTK_WINDOW (self), keyboard_state); } void set_keyboard_state_with_keysym (unsigned int keysym) { input_pad_gtk_window_set_keyboard_state_with_keysym (INPUT_PAD_GTK_WINDOW (self), keysym); } void set_kbdui_name (const char *kbdui_name) { input_pad_gtk_window_set_kbdui_name (INPUT_PAD_GTK_WINDOW (self), kbdui_name); } void set_show_table (unsigned int type) { input_pad_gtk_window_set_show_table (INPUT_PAD_GTK_WINDOW (self), type); } void set_show_layout (unsigned int type) { input_pad_gtk_window_set_show_layout (INPUT_PAD_GTK_WINDOW (self), type); } void show_all () { gtk_widget_show_all (GTK_WIDGET (self)); } void connect (char *signal_id, PyObject *signal_cb, PyObject *data=Py_None) { _input_pad_gtk_window_connect_wrapper (self, signal_id, signal_cb, data); } ~_InputPadGtkWindow () { /* We don't need anything? */ } }; %inline %{ /* workaround */ extern GtkWidget * _input_pad_gtk_window_new_with_gtype (GtkWindowType type, unsigned int child, gboolean gtype); PyObject * _input_pad_gtk_window_get_kbdui_name_list_wrapper (void) { InputPadWindowKbduiName *list; Py_ssize_t i, size = 0; PyObject *retval = NULL; PyObject *tuple = NULL; list = input_pad_gtk_window_get_kbdui_name_list (); if (list == NULL) { return Py_None; } while (list[size].name != NULL) { size++; } retval = PyList_New (0); for (i = 0; i < size; i++) { tuple = PyTuple_Pack (3, PyString_FromString (list[i].name), PyString_FromString (list[i].description), PyInt_FromLong (list[i].type)); PyList_Append (retval, tuple); g_free (list[i].name); list[i].name = NULL; g_free (list[i].description); list[i].description = NULL; } g_free (list); return retval; } InputPadGtkWindow * _input_pad_gtk_window_new_wrapper (int pytype, unsigned int child) { GtkWindowType type; type = pytype; return (InputPadGtkWindow *) _input_pad_gtk_window_new_with_gtype (type, child, TRUE); } typedef struct _python_callback_data { PyObject *pysignal_cb; PyObject *pydata; } python_callback_data; static unsigned int button_pressed_cb (struct _InputPadGtkWindow *window, gchar *str, guint type, guint keysym, guint keycode, guint state, gpointer data) { PyObject *retval; PyObject *pywindow = NULL; PyObject *pystr = NULL; python_callback_data *cb_data = (python_callback_data *) data; pywindow = SWIG_NewPointerObj (SWIG_as_voidptr(window), SWIGTYPE_p__InputPadGtkWindow, 0 | 0 ); pystr = PyString_FromString (str); retval = PyObject_CallFunction (cb_data->pysignal_cb, "OOiiiiO", pywindow, pystr, type, keysym, keycode, state, cb_data->pydata); Py_DECREF (pystr); return FALSE; } unsigned long _input_pad_gtk_window_connect_wrapper (struct _InputPadGtkWindow *self, char *signal_id, PyObject *pysignal_cb, PyObject *pydata) { gchar *message = NULL; python_callback_data *cb_data; if (!PyCallable_Check (pysignal_cb)) { PyErr_Warn (PyExc_Warning, "not function"); return 0; } if (g_strcmp0 (signal_id, "button-pressed") != 0) { message = g_strdup_printf ("Your signal_id is not supported: %s", signal_id ? signal_id : "(null)"); PyErr_Warn (PyExc_Warning, message); g_free (message); return 0; } cb_data = (python_callback_data *) g_new0 (python_callback_data, 1); cb_data->pysignal_cb = pysignal_cb; cb_data->pydata = pydata; return g_signal_connect (G_OBJECT (self), signal_id, G_CALLBACK (button_pressed_cb), cb_data); } %} input-pad-1.1.0/pyinput-pad/pyinput_pad.pth.in000066400000000000000000000000411476727667600213710ustar00rootroot00000000000000@PACKAGE@-@libinput_pad_VERSION@ input-pad-1.1.0/pyinput-pad/test_input_pad.py000077500000000000000000000020341476727667600213160ustar00rootroot00000000000000#!/usr/bin/python from input_pad import InputPadWindow, get_version, get_kbdui_name_list import os, sys def button_pressed_cb(window, str, type, keysym, keycode, state, data): print "str =", str print "type =", type print "keysym =", keysym print "keycode =", keycode print "state =", state print "data =", data print "input-pad version:", get_version() window = InputPadWindow() # InputPadWindow() calls setlocale() print "available kbdui modules:", get_kbdui_name_list() window.new() if len(sys.argv) > 1: if os.path.isdir(sys.argv[1]): print "paddir", sys.argv[1] window.set_paddir(sys.argv[1]) elif os.path.isfile(sys.argv[1]): print "padfile", sys.argv[1] window.append_padfile(sys.argv[1]) #window.set_kbdui_name("eek-gtk") window.show() #window.set_show_table (0) #window.set_show_layout (0) window.set_char_button_sensitive(True) window.connect("button-pressed", button_pressed_cb) window.reorder_button_pressed() print "input-pad visible?", window.get_visible() window.main() input-pad-1.1.0/pyinput-pad/test_input_pad_gir.py000066400000000000000000000030641476727667600221600ustar00rootroot00000000000000#!/usr/bin/python #from input_pad import InputPadWindow, get_version, get_kbdui_name_list from gi.repository import Gio from gi.repository import Gtk from gi.repository import InputPad import os, sys def button_pressed_cb(window, str, type, keysym, keycode, state): print("str = %s" % str) print("type = %u" % type) print("keysym = %u" % keysym) print("keycode = %u" % keycode) print("state = %u" % state) def on_activated(app): window = app.get_window() # InputPad.Window() calls setlocale() length = InputPad.window_get_kbdui_name_list_length() print("available kbdui modules length: %d" % length) i = 0 while i < length: print("available kbdui modules %s" %\ InputPad.window_get_kbdui_name_get_name_with_index(i)) i += 1 if len(sys.argv) > 1: if os.path.isdir(sys.argv[1]): print("paddir %s" % sys.argv[1]) window.set_paddir(sys.argv[1]) elif os.path.isfile(sys.argv[1]): print("padfile %s" % sys.argv[1]) window.append_padfile(sys.argv[1]) #window.set_kbdui_name("eek-gtk") window.show() #window.set_show_table (0) window.set_show_layout (0) window.set_char_button_sensitive(True) window.connect("button-pressed", button_pressed_cb) window.reorder_button_pressed() print("input-pad version: %s" % InputPad.get_version()) sys.argv = InputPad.window_init(sys.argv, InputPad.WindowType.WINDOW_TYPE_GTK) app = InputPad.GtkApplication.new() app.connect('activated', on_activated) Gio.Application.run(app, sys.argv) input-pad-1.1.0/pyinput-pad/test_input_pad_group.py000077500000000000000000000015031476727667600225320ustar00rootroot00000000000000#!/usr/bin/python import input_pad_group import sys def dump_group(group): while group != None: print "group name =", group.name table = group.table while table != None: print " table name =", table.name print " table column =", table.column print " table type =", table.type if table.type == 1: print " table chars", table.data.chars elif table.type == 2: print " table keysyms", table.data.keysyms table = table.next group = group.next def test(): if len(sys.argv) > 1: print "paddir", sys.argv[1] group = input_pad_group.parse_all_files(sys.argv[1]) else: group = input_pad_group.parse_all_files() dump_group(group) def main(): test() main() input-pad-1.1.0/pyinput-pad/test_input_pad_gtk.py000077500000000000000000000022071476727667600221650ustar00rootroot00000000000000#!/usr/bin/python import os, sys import gtk import input_pad from input_pad_window_gtk import InputPadGtkWindow, get_kbdui_name_list def button_pressed_cb(window, str, type, keysym, keycode, state, data): print "str =", str print "type =", type print "keysym =", keysym print "keycode =", keycode print "state =", state print "data =", data input_pad.init() print "available kbdui modules:", get_kbdui_name_list() window = InputPadGtkWindow (gtk.WINDOW_TOPLEVEL) if len(sys.argv) > 1: if os.path.isdir(sys.argv[1]): print "paddir", sys.argv[1] window.set_paddir(sys.argv[1]) elif os.path.isfile(sys.argv[1]): print "padfile", sys.argv[1] window.append_padfile(sys.argv[1]) #window.set_kbdui_name("eek-gtk") window.show() #window.set_show_table(0) #window.set_show_layout(0) window.set_char_button_sensitive(True) window.connect("button-pressed", button_pressed_cb) window.reorder_button_pressed() print "input-pad visible?", window.get_visible() ## XK_Shift_L from X11/keysymdef.h #window.set_keyboard_state_with_keysym(0xffe1) print "keyboard_state?", window.get_keyboard_state() gtk.main() input-pad-1.1.0/web/000077500000000000000000000000001476727667600142235ustar00rootroot00000000000000input-pad-1.1.0/web/ChangeLog000066400000000000000000000002771476727667600160030ustar00rootroot00000000000000Sat Jul 17 2010 Takao Fujiwara * Update images to follow the latest. Wed Jun 09 2010 Takao Fujiwara * Committed screenshots. input-pad-1.1.0/web/images/000077500000000000000000000000001476727667600154705ustar00rootroot00000000000000input-pad-1.1.0/web/images/screenshot1.png000066400000000000000000001453551476727667600204510ustar00rootroot00000000000000PNG  IHDR善sRGBbKGD pHYs  tIME3x'N IDATxw\Hg{^ (`_{XN=w<,*6*^Xv7y+e]AgH&NIf<3IHL%!DBG@VpBTGG|Æ 3~p^pʏhBLߋR>/}~ܪD8 !*"UEJKK^;RZR߹}K]<&?Wl6N K_5} +**=}9eF5Z=i࢛3{vCF_o7b4ΦL.W 0 SpA WaxҜ@ȣeB+--޽{yyoTCW"եKqQwtkn]۷zࡂЫׯ7n܄;z GaXtܜ\m7n~q%EE[777"~r\AQI1 csf 9.߈aIHO!(AC8cc!La& d2Д§kG﫪***EGGkh>@WW'==h-~9ZZ\.d=O`2uy{8<ff"z>55s)l""Bܽ k7SE1L(M)IYL[$ER>A#Y 1k H1̊JVC}b@_/---//VG UL($Vq Ca_Qݒ`aDp8&ƮP QB||BjQ~.+fc#F!ȟ;e~%]" J,~Wr"ap_nDMk[[fW٩:7+TWEF$UyvP(j_X&UQ㛡## 133&6!ԩs'}=gI1 q}V)$ xa?DW4|zD"iHP.Bh…_u۶mJҠb0|qCI 0hNN8bw2x4% c@\4}zB@t>_VZDNgg %),,BQT/tQPffQAa!ǫ[f0>/Ô0p4$(JFd–-[ nٲaPT4t;((,ӥP(B2GH#(d:p&L/3Á#Pqq!$N:[ _~0>!;''++*K!DI%%~(Z!@ud&'JKKSGW'';HSE h.Ƨ9XlYCy7m9*@9z&&~a|I$6nĄM7)/n${.7uYBQdn=UדB kJ t:# /CC.e))ľʭfeg}C cffVfV~~'!QBw͏32߻_YU1 IèT%ڰ~(eW R`02>Id(8aӇS^>424$PnT* 'L'aҨTjO>޵.^6=t`x&9tz=zKRΝ;w:;9rADlm$ >E6YGood}}= _Paff8D20GESh\t1>E "Ԇ, ABh4b4MgpV@Kp`BEֈgIrsQV!!x_ŢPg|zVWאf‚׆ UUUJ䓇;ZNLp aBSoU" TVV***!.BPBJ@PBG}n@+DO#a `9$4 a (>^.\s +(wtt}1doollzZd2YƸuD?[!o//kk( \f5ĸxʒK)ш{^hLQq93P|/\~.__Ss:,엹sH,Ux!C#a?+++Pgݜ`M:xJdannccfj}}u_RVV6eT#cG'K.FN6l1rd]\s Cά^nL̑Çߋ0oMd2|B]G~-[ O{ycG:Zp9`Ǐm:}ƌ7oH?J{O+/?oQqcn077G͚9322+ǍkLp!ٳg߾}lo6]]ݥK,]|EEE._>>!.8wݾu8⇏ ڵ+=<<C<׫vY èTj?_n}Db!RRSqҹ3Wh4 ?:О={u8۷[~N/KR>GxBbH!ѣN1E3='l+Wdgg?|mM5קׯG#ާ8`Z~6n\SS7m,K>{8111'N#G ?%%%&&6;'GRd-M\۷h +. @,C N llm%%Z̒P~ztϞ=d޸uJZYZ!@dA%S(pA,Chob͂8 Q(T)M%B[{ꥣr|SVQճgLL1JYYB@ 3xM̌ uMMw8SQQ!X6)*Ȃ,,h}}o`qIϞ|L`dbjL6 0\,aLnxaOAY>>C CF?{ЪM iYk3fLK tύ32fΚmiej`h4? UiҤ&>˫Xk׮ȖYfgNMM @ Xf###Y,֥K޾}+>|pƌ^^^^^^s}\d7o5LhgII w|1;w;zL&$Xаӕ8Ϟ5YRR /!HZ\".wrrq#bgmm# q!Y,nݺQܿJJ˗׬Y#ل{zz"tuuo%N:u̙#GTSS;qℳ̲Ϟ=+//8q"UEEĉ/^d>=~pd+-aaaSLR|>`M4aĉ'L%:Xe!6mnnXClbb΄S:;;~:))IQQq̘17nܸ_վ}+++7]t9{Q P47MԴ}]('YYYr`)cdd+6b6^!`Ĉ)o^>t왳O= |ZvZe~i(̛pBOO^zڵSN KYQQ"یYZZ:::?~… D-wYI&f\ڌb'';::>|ɩFxe^^q߻wM,Yr9T]UxyydB&Mׯ֭[---O8qe"ׯG)Ҋ~77rׯ_( *b555!}Pdss3L677r!_SS(3B/  ,AyH)TWWҫy8V [6]XTǼs=v},# EBeZגoN>ݽ{1cܹSGGƦQl 1 -ܐl~~yjjj d+|||&M$lCM/mqq1BHMM->>̙33glmD+`BnnnAGLd+--E{رcлwo5۷Ç'Nիי3ghaaE"`hYQ5UU77_4{q_EdÇn܌ RTT,+-#rTUUD :w/W5fC1\8 qc8/q\}I?QbJdaYYd$>z$ѣG;vWk#wKJRRR $m~ !?ޯhhh8q!uk׮jkk7s577?u""aaa!EEÇ\ZǏϘ1#==}M0jMpwwW[ϟO!&^xqƍ7npi7JVWWH&Š*ͮxMpp@ عs'EEEϞ=xG^j%gٟVݼyߐCgLnjjr^Ѩc_24hɒ%p8˗!F񻹸E[G&G迻w;ֻWs%$$lۺ;!c&p ëk)2e)S?;;;}ƍ7ol۷o?qO<ܼiS-˴ڑ%@NC/1$^1 zס-[pO -(( n+**B᯿?~l暚7nF ~z``en:::$ŋ^С&ASSctyUvbX&&&)%N4)==!ڰa 8*B(22#Bo^YSSӐ}Ι3aСvvv!!!:{yύg,ͣ_751]tOQ$''< օ}aǎÇݻ:~L]>=z0]5sюN·ؿoY `:vػ>}tXڵkƍ+23^|z-j.͛7K)ۨ})eCBBBBBƍ$Znڵky<ԩSnj$Fb988]vMHH N-K#kaa!DيSN}6;;ԩS߿יp^zu-22222K.MA,x;wPI,-N<|I1mZnDCCÝ;wS˵RlvmGt'CEC -+)+;]t:}UW!Ե-Ԏw͚58 'O7Q秧UUU\4¦b͚5k֬Y,3f LOOu.]._L,K&gΜqҏ??~|xNNNNNا\gOIIwfKqm& nЊ<=yQ?6R;΁[lj׮ݞ={3c Q/K,~L7ȱcLjy;v,I***njeeEɣ IDAT[.44455۷ӦMkl3!::;%%9JfqzjGBa Я_;w2ܼ7u ]֔:W1mڴZuS)SNMKKvZk6\d/;vލ***JJJZt)1i.׆\|JΟ?)0.]cmZ[|s܁BX,5559>|m+CeLl+d̙ KZIiGa%[1b"x &de@IڨF|V%i%Ȃ,mÀiL!YmVYh^`2 N;L`I9B&72zREYYY,47y$&Ť8HdY" 5_~a%L#=K7STPܽ{tȂ,Ȋd 1GۙA|^^PwR(mmmOwC}}&8Ȃ,-a a%Div)DL dAdeeb-Q͞+PzdM.hS1 8g4:Jk B&H [WcTb;Z*2JAz>JP.=p#߽VUcmaR+o>J+sd-M\۷hmQݻw7EVC]km Lx߇ 2fmDjA_7miJ̘<5,ZGSqQIB ׮GS__Lq{IIIqQ[4BmfffA-,d~~*QJzm dxfh˲"+ PnIrPm4}%ꖏ V:EzRIj ;a(L +㳒?"Tg};e*UqDzJ>Bb Pg3՞U<>Uz+z_t1/z8B(U,08JJJ+%rr*fYd멱L9wo<ɭB&zujaR.>ExY4V KJBd2^BME-̦5TĒ۽{r|>_f)e^={ęS%wo!VVM1&F@###Ny>޺?mA@g h ' 1K}9XE 5X!+%"H/% n e{kaTG%fW{tҊIx =4/gEhNusK話\}c\'2u5X8+i ff3hmv lä*VkwE_WBm[yyyfri~A>vrr޿_II 2uۂ,Zèd nl}SRTVV ^v1W#n>yW}'C9D%dd!w,!t')PR\{SՃQw>,agySd8΢^&9[RMNB(n3+N*GܗRtWy%rmm*@(-!8hp7}uǂJgk߽X*<lDaF&r&nZ#dE&BN:rHTTd0Mt2ڴmAz51()&S;U/{S2 S Gz_A#7Trhǜ*bZ)2Q|h9#PfH(-Szi%|S#DrKry,%:YƑXk'VsKxvORaRȤ R2ˉ e55BʤI4%f e̘#G:uJGGNT`x $'G%d- q@"T݉UO80 11_(r#!BEBO@^^gek.[2!R|159S1GX]MtX!PCJ,)ցO_ʹ3/-r2d@!*Cĭ!t u<_)VV&[XS\[\DC$*jZXq?ckXD7 *o2H_ǫB&B(0\2f})9EU[*{\s~35[omKVQ7^bSF0 xSQ._ vA5R]WH99UBSPe ḕQUGnFFlmvY _i쨭Tb:QȤ²a8v*s*J_i>YejT2J&9Y7[ͿfTECWgsSgW82I{C%eBOPIBm*-Z}ĉ?5jTcZwH{C 9tP(lSD...'N,^xʕ2&}FAA/-- !-/^Oɩ zȑNOO߽{7d38YYY˖-ٳGPPЇd#G˅#G\rFv.q%e333.\H#_^^IIIC >y$͇OV3:*L2WR}.6=&9ؚS\ygԧ ګo<ɶ3Q p7.\UX:y}L?k c+UB[c]tr~ hj5j[Xr_G LjY%?CITb֏\VɏLbNMܘuKp.&? έdW G8Pjey-3r .\xl-fݶG|>?>>?m,-((Xt)ũ?"Ν;է:v([߾}+W JKK={Fߊa(i3Xܪy 6Qк%ѣG5Kr6lǏ###M&mn-,,={I$RSJc⑍[n޽q-,AAAFFF$,,,,::2`8tP6n8`FZ rR`Q{#3ɢjDS &Fz]w\x)w&^/>nNn5WՄ7 Ynǣ33%\u 2"eHS͞_8ddd3gθqV\޽;+8q k׮7n^!pe33ϧdggoݺɓ'\\⃣ue]\\N:pB:thDDԩSdrVVVtttϞ=e?N711!9Ci< *([p37ĉQSSoEGG+((L8QMm """0 ۴i6I===C9qϟ3gNǎ/^(ޜ">B}3~}-[Lˡ0f/Z!`΢S-8[S,h+Yo_BQQQǏG-]b֭</<<& „KK˝;w2̿fgee)((|P2?^|Y4c}'#}bbbtuu޿MC ki * 5&LA3:::LHHصkΝ;(7%K=z7nhѢN:5QV^̚5K. .޽24RTTɓ&'x%KH@̡ׯߞ={uuuUTTZ!U: ة[y5)l ڬձfTWW8qBMMP^PPн{w&d2'L uUbӴi?!&MoT+ŋO>ŋן;j(oo}vˋf۷///ɓ'Ĕ;>|ٳg4U9ZLQ>[𭚺m:tԩSWsK6KCh]|üy?Nӟy$99qCCC/]hjj*3,8>{㸓6"I~FQ gcc?ȕFc;𯅅%Je0,b+++ssscCٜ߿*Jh,nɒ%{KiSRRBBBzAi}r[|ӣG8pj[[["155Çޏ=͝0aCMM Ǔ&555uuul6LUVa\Xw=hhh奥gdd`xyyyMMQi+P+}РAo޼￉oUWWu;vuF%R"""뛧j1cƄ8q͛7YzDB..6BpMvZYYyO}teE[{1eʔ 6|fffw&/jQnݺellڽ{;w/_nbbGL"}vHH5Œ}8\rݻwh$ssȋfRK0f"&dX,6nܸtzi%%%~.]&H@@@^^ފ+vޭD5y}s_~7n7o޶mJuuu1cNEΝ߯t&WXXح[f̘0a@E$kuAAAAAAwֺʛ7onfClll]&߿h^gƘѣnjMO:e)_5TgϞ jjh4BRRҘ1cxMܽ{99EEE Nh v=z4jɆ6@M͜۷o*o|}}}}}J7++G]tYhhe8o2yɓ'#lT0d+DIt6Ns8==셿N#UUU:u d2y˖-Ď۶m Lo߾E^@Y$7YDR &Jh4͛Ǎ5sR\\ܳgψy>jj>=Ҩw7A5JCL&< < NO.A( J%ɺWTTTh41WCQQQ*^Q.#Pb[mBBBÇ߿r[|3=Ҷd(L8[.Dp8 l6N=Il ƤI/^(JYxI2Xr޼yRfO|>۞L&z@6'[2 x5@ ŷiۂ,t ![\\L<_ݻ>Cٳ'00ǯ^5556lXqqhSu-22H7oҥo||>>""ۻMGgGGǕ+Wfff>֪.\8wdL#=K涔Cܽ{tF}@ YV Х-dIzJ ƏgرRҷo_⽇wss[dBh„ Ǐe 3}ׯ:ujǎqㆹ9Bh̙QQQQQQ_4Օ{222H$6_ G|ի ꗕI8Rq|ٲe2%|d i;/ 1?1OP== ,&mKȸ[7w6EVCCN[46,w0LܹsR"TH|8[fuurQΝ;/|2%%E xxx n7F1t ëk 1JnG*^һY{%ɑM)O t9q.B"Qit&Fe[[35^ }O. @=?}:..۽{]^V*F6>qvvuְaÚR3TJ5QBms*M,oahym޼YWQQX.((jǏŗ;t`iiIRoݺmLvsssss?MBB ܣ$Ba⫍>ydEHK9)))1199߱ZݻXoO>~Æ Ǐ_|9Lܹsaaaddd~ӧ~ d7oJaT_#%vy[8㧫'@ t!x0naRH$@b* 2@A \Iu6C=:H;x  J,:Pd `B‡6\\\\\\H$2̽B$y2< q2&│1/3^ 7J׭[7 `ޱ:@=p⨼ܯ^RL49־g U\WV&0;;BhΝrfzu#Lsߡ'm ;y|~=& (A'wq;ynF&6Dǽo߾}͓܊/>+Z ,).RQUCڿg龃"v=hoh^}ٙw'y_wbPMK.mbTrL jxgO}U{G D89ѽi;AO~]b C(!$˭ر)xҴYt!TTT( 5D4 DC =!4b섋g*+Ʒ >/ɼcBG!cGB CKo,+3PJ{by`<]M3LK[{ɪu IĞM`Pg=ȋ翹 !< .kiiY+W7GY===ϫxL4ի˗/9s!//ŋ]t_^E[/g0_C fx)r?O' Xl{1i?ԅH{)J~ޗE~nS7QLGX0ɣC 0X,ֵk׈?#--mĪY3500 ]]3gΈ<;wP(#fϞ$V55/?X%$i>n¯2fXQAr8 t:a۱ӽ;}}" _L^v\8{G;w%2;'+SM]M:zPY!d%!ɶQSSp8IJޥK__x"@ ضmkdd$^YY/;88\tH۱cɓmmmŃ >}gϞ&&& .[gϺL6ԄG~~ω3gg?z^͛7׭hȆ UJCAAA666'Nl0F-dkל%8vvl ~$1~δ`Rqß>N\nswϞ$?{R̘s_W"S߼uS3 w/+q Q6v.6AkOa4ڵkcbb:;v|К5kN>e˖{m۶b8xڵaÆ͛7HgΜ|rt 5k9rӧ[nWnnϟ݊ITAΜ9*//~СCQkjDؐ 뭔.\zʕz]p/jhзy?Q#pS\Tv񚦖4+.GڕxOl6jekӽKe%CzKĥ |:MZж0ʎ;v sss̙3 t/һwc">Swww׮]BC Yl(]G  zzzK,Y|իKXRRB"|||TUUr'MrK.uUWWlE6iF׋֭{{z}}}#""Ν;#vurD x2>`H!6_].]s]P+us-[lu"6FJJ@ Otww@ ޽{]ڷoO,P(UUUQHGIIV ! 6<iEJDXXX8::}w:wxΝ3gΌ9lE6iF$A VJCo߾0pGB-`=x%a;| éi5 \0 7nӏ9z޽ѣGӧOw޵kիWZO}ٳŋ Q4FdaJ[g ;aiiIRoݺUo{G߿_VVF"^zPlٲׯgee%$$:th|||>}$WE6iFBJ~ŠL&'&~z@#7740dGYYy˗/rJvvϷmۖ?+OӣBiiiW>}_FDDk<E6iFRƆԸ/_7o̝;yOb2977W晞@s /^Z]]=888;;[UU[n`ee XTWPYYyΝW^fތ3֮][k/sN.kjjgϞvڵ*QQQ HC7m(eo۶mժUFg~ G|իϠًD„Bp#Z ; ҅qT9vߠ!׆SVb8aB 0Fax"K%|6JUggg*J|.IՖ BR{@Ԑ6Gg@[L!3m#gXWۀ6zp]%* *( `A5vL C 1hQDA"X(6ĥ-ؼmc/.ٙ3syf̳gڣGW\Kpag1'i~KK yR8ݗ{0P_`Te)?^8j;܄;Pvdׯ>[.+0HW Bh_l8+JȏU2luz<)v[$_!Eȳ$,Abaadh`0z;WCϡHKdbbJw#{38jɃ{4[7v)["~lk/'-pBH}&B(#?UVn:g_;ȣ.⓲I?O & L ޥN2g:{GDa?UTh4G6J]tI 1Yq ㏸szzOAP q*;e{`#vl#eV %6g"!0NiFu!TY.'EnjeczxLgI@OH\EbΞ>.'`=:;:<*upd3&f"4inݹocwo^DmX}_Z[ZeddEbK]D.E%un.OO1 ;KH8}sT[!rڰe~ٴ5@KC-2,+'*)OjL@55U5_>eZ/~Sk@M:ٕ󱥥9v[?qD//u]UBg͞>y{ ,25A̜&f<-z|6媺 g_M.9d̩󩽭BH`^PzhxT_g"i~jڇ|B#l44.^2-$ /dwkv ޝA#~[kǩDvBhkW.yB#6sϥB"8ci4Qϋ43E+9ϙLrEB{8^F GqvcaGQA>#I,JNN*Ύ&Iz@wvKBRb9Y7٧j? ۴=y9և|^l᜿m>PWS{bld1yELΎs {-i?PVQm < ߙ5g "'Nhoۿ`L~rrFoUYYy g<.ھ{y[lKz=1bʪ?\i԰#,Z=ɣu^>>qqqD>RoooH==DEEt)I)V:$$Ǐ_~=x Lm۶ﵾ8a, C  \|رcǎdoÇ;99ݹsgً-bǶm~kk 6TTT}dtѽJh/O68a~!ddd#aG 455mllBCC\Yȑ#Bcǎ=s {YW^M$ ?9tɘMMM;;;''ꪮnhh8}oqè(++}$???v|}})Jaaammmzz֭[MMMMLL ̙3544.\hmm͎-m$ɷK;1  C ͝n|T@{okmbbrvOOOHCCCyyy[l)**b–L233.**2D" 0K '/x422wuu3f̷2$#!J +((455y $Î=\\\{[|d?)%Va:>/6B6 3 PII)BHRRԴ哥 0 ''g̙t:aH[HLHHξu־}ݛ.''mmwDzE;dM6}EBx"/9eee;;?v˛BBB ³gϸ>x3CdIC/rڵ߿0G3fL_ `yYGGw<ĖǶ H}'A$o!uVooSΟ?_WWڵk!ެ%!!ի#GpO:uԸqm۶e׭[mffVVV٩쬠?0 _-?~,))ܭGGG+))e^_~eΝD"qÆ d2q?599}rDCCmO$%%_~-F3 ##={ˏ1ɓVVV=fwظqE6męvС?`*22RQQqժUuuu_eee322vҢ~}}K\rʕ+ e#G{llU&NaÆNrڵ_;mZAA… b$o>@ <866IG5p|={6gXAAѣ8{,g$B . xKXL a,LB0nS1DIIo޼imme_(}+Oe_$091]~¢_WWWM@2t%EBƺ{koo {捔رcl Fo=@߱<&8! 2 0 2 iӦ/@Ɯ9stttE,ar.;99}Ç *jmmhѢozR#7}jׯ_OWXARG3$$k f͒8pveeeFFFKKˀ *y_6~gI õ233Bvvv.]122FyyyΝ;ʊ:ckkk{{%KEEEiii 22tuu-,,֬Yֆ>;YիW>|`mMUUӧOœƎ;۶m9smZZ'#FT-&&&88]VHSSӂ mmmWGHJJte;x'O-_ !qƄ;vHKK߿zÆ EEE*@$nܸ1;;;>>p!޳YO|r[[۬Y0 q RRR7od2}ѣ+W~ttŋ_xڴiSVV9k֬jN >{l}!f͚W^=z?d$B + #!!lԨQK9!KP N<⢩iggwMhh+WxKIIٲeÍٳ{zl))Ǐ:4((h4syyyWqرgΜijj:qĞ={FxbcccN@B222}aUWWw-[nڴ`|FMo{FRRY,L^pĉyRܿt?`0[-[IKKK._ZZbGM/lll= IDATnĉw-((HNN>x`RRNoq|`8::r3f {Pv^%%% >=rС=b]j8 lЇW^# w9Nlkk vrrw޻wxGFFeʕ隚GIRazEk֬7$Ma!$S3̣FM ?LMM ˳O#jjjؘL&tO"=.)$$DYY@ <{9|GݻFV4x`veyD#y t#x2 DB-@00 0 2 0BӦM W h@0̙|>>::99_ p8w֮] @0!$$67A40>!!!MWWb͚5mmm%KEEEiii 2};w\ ++ҍʜC߻wvM2OH$nܸ1;;;>>p[[[oذ\ǎ[x'O–/_߶DRRwbb"dࠩicczʕ7rH/B),,o["11qԩӧ~2144Қ5kVuuu_Raև & {'ƿ;99ݻwݻwL&/3>~hddDRTjII (iȢ]\yyySSSHH$BٳgI$ nΔݻw6=v>|Ѐ1hhhx 磜DFFW9™O$%% ^bpF$%%[Dس$׮]s"77w˖-[hdHHHYYĝ!4a8Q|Շxٳׯ_?{,g0rss68qDVZjU@q 0 0 2  2"KXL a,LB0x d c*Q4PJB [q`0 Ơ3؟;;H@bX_0e$D " u9s/_A@x3777]]] 5kִ{yym۶m̙VVViii-;w\ +++΋ Ftt#tuu===ϝ;gooOR,XHNN|lhh|2LPN|d05U0D$nܸ1;;;>>pIG]r/^ ;x'O-_ !iӦ?#++s֬Y4mŊ+VKIIqqqa/"ZzzפI$! `7`gjڇ{w :BN>|"!)  _455mllBCC\™5rHرcϜ9û/B),,ljj:qĞ={Fxbcc+W444WWWuuuCCӧ#z+,¨8p`ذaNc!Cl; aRv֭gOUVQ2Ύ %۲eKQQ|4gpQQT*3Km3f1cdddz+,ʼHw(**? |reeeQQю;" , a_wظqE6m)v!=YYY9`[[[UUՏ?fdd޽EOOo2R29/7~#bOM?Է"0Wβe;jwSl2eCYx\\>njmmYI q\lG}mD˺a 0 a :㱸'"|d{L700[Xv!D90s%$$89ܾ}WWe~*aX, c :::r0jjf2XN01¾`"HhjkTcݾHWIૅ dd&a MO>8bNٝ?tyHl;|$FjnUN&Y0QCS{|"!)%w*0 hQ7M̙LfCH)NJ 'NpA{;8l9ERI@ aģ‡Y*+k CcC2 V8W MM"O[AO}N>V!T_ߐz)00ׇ{_$ aUDaPˢDž奥zCZ666>0>q@O!T . P%\[g+06v>]⋤d F_an1TUUUS0S{]^)pf}Cg%eee :t<bH$_8X 5uGA">~H$ՓK} g%rƏ~d0τ3# ("xћo]\ın_y$Jgl$1q5ttHDb*iUr?4–e+tիt㳷|Vnn:bZ?zX#7B}xz g1H$#GU/ Daa@d@ad@daa@d@ ,&d" z$D"/x ?à=)z\__/~"QQǍKP ^<`1UU;;;H$1N]^zMD ^^D_K`2 \\ ĺN ؔDRWW')/x ^[췘as'QutY3m*N/xۯ&]bH$&[kF&3, /x 0 2 _3nܸXC0^%}Jtt4&}hdx񢇇*Dz-nm۶9RZZZEE%00ݻ-,,]]]+Vp?>n-..4i+N[v9RRRIIIĹ*00PYYYAAÇ{k+vIReeeKKK͗WRRرctww~z݌3(!!;}q^M|XצM8 gM瓴888xzzXOKfϞmmmݹsrDD^}}ݻ=<[8 e,---##ï]oSSS||>yYF___P 0,55UQQQVVv„ ۷o:qEEE7۷7nܸ|2>q0a¥Kϟvq[[[qW!)))x)))PNNΨQ(,, cQQQ177uwwWKT^~LLLLNNniik^XAAAZZ:==޾KWSoWC D"qΝFFF_^|yxx;ys"啞'NpY__O &Libb2{lPCC~С & >͛{y󦯯/vk.7n899_:uJKK8oٲE__RTCC۷766vvvFFFV2LWUU}7m_Gm Ɖ'^|iooލEx2WZZСCqqq 򊉉y=ChWAAA...vpppO:7r>ۛM0OVVӧt:]Av "1m4 v㈏!??F:thҤIwURRl˖-w!8ǙsrR__ÇÇb!,X|'mۆ|ĉ "O׮]ѣ+W 4̙3wٳAAAjjj$iʔ)"mWF@ɓ'O>b(ʊ+8?Q堠 __۷o={v홙zDݫ~V.S~2 `0gXff] ^uVfm۶nݺ%;;}ZggDۛ3Lwscƌ0~{%%% mlFQ:ϟ 7''F09s=zKl_6fW-,%Irrrzu000x_Xfg甔̘1O3!aïGٸ1B555?FIHHkjjikk g~ yy9TQJkk+ޫ!WKT^~n_OOψp2-##^ Y,&P....ΫW=666v޼y=z`lhNAA!33N(**Ξ={ҥ{쵰0/))줏&c@ccׯ_|*.~VSSc``6Af?x2>e ]r8uuÇdwq||{ U^?/QVVq&+++KKK?ӝN:]RRx/Bm*hcķWVV~ӦM?~}{ MIIa0::6/]T[[[HmŢEVXnk;4<{RщN IDAT/ccc|✒`0|}}1Jѣ񡡡---GfooC}"""h*--5kV/]T$mŌӫV^SWWggg_+@%WKvK[_wBܷo_ii)200ضm?#>>~z--KrnJZvy CCם?,X}OX<%9ӹY!2aC ] w/7oo%//HlliI"~;,TP/7+p?vK7pƌ3N  Qxߥ]H`mŒ^´Wxi | }33u|{WO^ %*rST>z`7eߔ)ePRTLJL.&a/xd˜+/x ^?{E /x ^[a//x۟/x ^{ H$6770Y,Kk ^= jk ajj P&/x ^k q=Gsu !i{*))IKˈ-W,V]E{wȰaJd2/x 륐7aKdk:?``(UF؞ B"44+/x۟h&`0z @ S$9/J/x ^?{9x!dLsC a/x ^kqK 0tzŻwO׋1q#M̨ /x ޯ %`1UU;;;:͛$2JA/xŽoѯ:`0.nzb]' bhlJ"Qrd/xWZF>z(auT]|LJmh/x ^~^@L}!E"yZ*Lf2Ylx ^_Od@@?00ټy3&y/^ᡪJ"޾}w۶m#GVQQ ǻ{n iiiyyyWWD"N:wŊ$.ϟ[}'MJqjjj>ܹs8xkkkUUU,--sUUU``p۾;wR8FoTTD:u*kjjz  8p֬YI޽1c%$$tuuO^SSw/%0˽L&cDDgɓ_|)*888K.͞=ƍ{~~>^ee刈[n;wNBBãZ'&&yFFFPO0!lذ۷o rթSv222nnn8x.]TXX8~3f<{ i^|''Oܸqݻdee['N8pΝ;W;q˗/.**zcnܸvZI&|xQff&{633'k>>ї={رĞǏk׮ݽ{`a@$h_^ Úedd6667oޚ5kTEEEMM͹sr=MMM7nիWqޯ޼ysƍ`|&LtRee%<~!)))G)))PNN1cư?n^'$$afllgP_ p_/wweffaiit0͛^isssTTŋ%%%1III$&&JHH -9cǎy޽{o޼닃FڵƍNNN>>>xVԩSZZZl٢?x`YYduuuqKT;;;###ٿ8e2TWW^(KKˊ eeepsst>999999]]]UUը(C { cذa7o244d&L1446lwЎiӦihhG|pppOOO&M ncYYٖ-[~w_+mii[bB ,0776008q?qDPP_k׮}ѕ+W.\+gϞ-))QSSSRRznU;11Q<}?x<==cҤIk222Ν͛'N؜={vС`0 w?=}{Lgg8vtt̘Ԙ&/(*UsAAAbh4cccG&9gΜG^| r077CzUnaa.V/LlSw ovvNIIɌ3ٟ[[[8p1cB6zȑ#]_SSh4,//G"**uvSYYimmuuuᴙT` ¯b)**"t#"B yUG900 >#.#kjj>>ۓYoC9sښ/`2˗}\n]GGGP???q{4h^2NᲲ=pS'G~d2L&@&WMM !6n8q{%$$ vv'B82r>]M,wj'O'B]f!::ԦFg67o~'Qddh_~;'YMMp߼f?x2!.wU5jjj>D& UW^^̌@ hjjPEOωee7nO?M>ԩ%%%q"Z[Ο{۶h䕕ߴiuuǏoC}SRR naa K.hѢ+ڎ655 000prrgXx=<&MPccBUUUT`6@ \zkvB apQPPs'>qW^3g{!$ܜ`/\8ѓ3MMMMMMEÇH$KK}X,m۶㏐a|} c%.W_)"[yIDbcC(+wXhV{ر/U3g;5 `j@#u59?)[B'K~y?(ߌwСzd %*rST&0zyrsgٺeDRĖa^XP:^Gߟga}w},>,QaPn^/ /x ^o/ >/ ^WĒaf.eX$ /x ޯ ' jk ajj P&/x ^~^HΎm}y "H>>$YII¹#Gq Hcz{{Z ,nk qW^yyy5*..nСׯ__nիW݋O}O<9m4]RRbjj _ 3糇cbbJJJ~wN !?txի!⠭m˗/7o{ÇCBB J7ΒD*''.((QSS[pakk+gyyy## .VӦM322:Jffx===2bX***YYYފ _R222Gm u֑duuu|477|TWW?wjn͛7q8%iiiY`|}}+**pۙ&N+Ç[[[s gΜC2 'D"qΝϞ=;w9vQ\\2cƌO{Ypayyyvv 8ڊ^;;o߾z ð۷oܾ}ðG[YYaժUׯ_OHHxׇW.q+WzI&X,yÆ 9sfoMHǏ_0 +))qrr >|xVVnWaFPP7nܹZZZ+V:tݻxܾ}!d۷$%%joll cA$:U㵵͛rr&&&wdݾ};(hX!D>B ;"|NN %%%u^b0WY Ľ?AHDq/amQ{{{_&2m?3o\~o_{b_e©8Kx ð 466.[LJJ !TTT9!,?gϮrcll`e5!㎎Okkkd{{{G!djjB&^M~軗3\*^">5H$34ڇ+466WWWs+e{nƾz Dbnn#BÇ_633åؽ{8F)&\YYQ嗢'.]222 333344~/ vӁҊ R.֖LKK0t߾\scǎ~߾999fኞ^>_b򢢢OYBq%QfRkii%%%bfgg4dyyyz1 STT?ʕ߽{WPPP^E+W[[+77O̙3!jkkkkk۰!H$V^Xp۾~~SV\u 2ƍ߿g{4;}={`oq7o4H344tƌcǎ8l_$W08iÇs15=SMҤT:(*|BڊʩrȶN֖EEXg9d"bKeH)٤1Rݔ1܇yu&66vѢEVVы/}ɘh0G޾}۬YWXquݔ;GRi߾}U=(V23khgŦ۾}{q(:zԩS]\\E"QQQ!g^'''#6Va,X`iN =A{0Rm۶-Xpuuu))) #ڍw٧N-X]ޏ>RRRϝ;+~:U YU-2״ ef_"[ lԨQ䳦MP6=3Q m&+yw]p۷|ZԎ̛3ORU+MT֭kL"U˲liiiS YHzgMB;vLUWh`mm[ۘWdl|x C)Ft))?~Cڵk׏%,W^,hޚ1 mc^mxˏ=ٳА.Q\y>ęs3.l۶}iEEBO˗-M͜ҥ7eF~0̙3*Հ֛aRӫ-4^x_zzzBY+pmӦMl؅ +pS9jU&MR?X:0f:Q[XX@xՒW֐TnK(gNH墜P1 .́^x^К0/ /6 *82)Ȯ^xWue<ɓ2s s];S^xޗ%@OڔGʳP(211 y/ / <˗̞; JŒ¢UVJE&&N:t4jk / /^[[!C*J$^Cx|P'%^x^E/qh(@h94،^xM/j[ Z}!ܿZLT)Jd,rqu / dTZkv8h!X|nƅ 4# /«^ dm.4-|'KKK/^xWB6؏GXe+*m2k[ۧb^x^1 B04MstX>/22 /@c0em`jj΍믿 64446nOٱcyh{{QQQ\\ܙ3gJKK---h";;{okW)-ԫʮTPPpmH,e983 #**nnnv튋0aBff… |JJJٳŌ3)뛛;Z;vѣG95jÆ &L[^^>zhyfffzĉSSS5Y%K888ܽ{fӧeeewF0(--=w\TTEQ̒|||֮]+=z$cPaÆ~ȑ#W^]d yLx₂/vXBBgB6ms)STTTpU\Uu-sgvܹ˲-[XhYDOOZQ @}evQEFFEGG_^Ҋ 7d333BH.] ѣΝ lܸ˫7Ǐgeev={<}tBҥKoߞ;pV\,FEE;wܹs:ujbz_y? hhѢ<CCC...suu2dڴy,GgϞy<^=d 88BMfffX~=EQYYYoC޺wޝ>}:MÆ Od~ h D,H^;ƚru'' 1RVޠ?}訃OÇhHe/!~vUV422ҶW,S%JF*I$bBV*^BT*eūZZW ^eX9*g~2ǧɓ'3osūAtkcc=mԔCﳲOi?d0X4t7!!aP{䉙E ;%o#M\Ν;gϖ޼ySR%x<_____؅66/_жىeٙRTtŋjܭtY:_Ȳl^^ȯZSSUپ樜fT.^ooȈBpȑ\y+^ލ72 srr~C@@`HHhT'[X[[egg?|P__]v*tvM\Z__ɓ#F(((غuzz]ҥKAAbΎiHH_,ML.]*V^F:z̆ 6g;S5@6(*XYS-0`_MP(Tv/!ƍ&M=o5q#XS7 d@{P9#サuTTt~~L`eg߹sŵG,xr^ED"ї_&ƺN>#::qtӽm80յMj^eo׾}}|||Z]eJWkc:6m@ U&pXMh)aÆm۶&?˲ ,,-;;K/!ӓU>0XeF~J[Y3;vLFS^EF 5Jqurt.rL|> /οrsԼ9`YXRXT{~J֞BӴ٩CFm^xM/v@3 D\[[+Hz=zB!T^x^Z(@h94|^xM/0byB 2EE.̈́^xW7h `Ǐ]{A{*{w3.\!^x^Rgh$ÐH Ngn@ ptviK?YZZ| /:~48IJ,[QQnkg͖Y> /aBi|^xM/@֜aرxT-8`zzzƍ+++kdnݺ5@^x}| g^si;^MiMHH~rr~ᇪ*33At+W=z3СCO8U g0ѣGׯ__f͠A\]]6mdgg''ۧ&ic.==2[l(#`eeUVVƁZ",]w100pqq9v-[+nCRRRiO>3fL۶mW6|0 Ŗ=ݚ5kƏ߶m[77_o߾mڴ x /m֫W/SSS.3~A 273cccP&ӝW6ms)STTTٚ> 1C??!55U___~*:6۱c͛7ݹs'666!!L^eΝcǎ/ ;z7n>={zذaKٸqAn߾=s̈[nqMHH)))Yj%k+K^ګW &|+V駟JKKV 'j{}wj/^g8! vٱckO>iҥEj1$200000())>}z||'79~SN<9,,,44]v%$$ 2/((oN}C>:t(88MZYY͙3G>tA{{{B"""ڒ !'Ovvv^x;wO>`=z̜93##ƑJiiiCRa 2 ?啒'!{CӴYee3f̰af̘en߾=//޽{6mx-X};v,}]xx8g޽{+}67Ν;ߋD"md777ٛBu&-$;;H^Μ1lذ'NhUS3xKPJOD,H+ 0?&fwݻbYaZ2,ˊ⺺ZaR|:̚5K*nڴ߯)TUU xei J<{윜GIU.m,*ToZ*p:B@R񚚚>zTri+%r|WC5ކZv/&j3^RN[*577֭[zzzhh^h&hK-//0a=qcw2æ_~e_}C/^Beo,6vܹs>}mmH$4iRtt[uzΝ:q``BF[rӧIIIuFJxYAAAG._AUrކZ6Wz|َA%kݸq#77wҤIsn߾͛;w~ə?_U4(ɓ!!j@cݻwߺuݻwqppXzɓ\ '˿D^m=++&25kV>9{22.4mbbm>إKm]F$25kVYY:a)gjddNg7::ĉ11-,,]\\8h%k6aVa .[~ĉa\ cN~ 2x1cxj@Cc,2LzAeq˗,CI=!벏;8]5o}M:mzk3d+yP T=/!OK>|sFFK+U+kQo#-YK^Eq۶O+  QEdBnߺ=r*W%umTJzO:9tu㑟]ٳƽZ^xśr˱抷OCid;UwUj%:ka4Ӹ,˗3 Qw"]5 CxG8ZL" /dw /@Fs! / nz@AQTUUMQla^xW7h"LLL[seeeڙx /:a}I} 99Y&&&BOy Ö>.rL|> / K\d55oN0XV*R'4-21qvvСQ[cx^xuӋ(L!C*Q{Ex|P(. /(=Q|/rãiJ /{iP۪T"m.4E8WzFEEd\\]m«/ %2 F*-}ڵ\wwX,Wx7OB^5-%^~C C"7``;Zم/diiI ^atPkf,[QQnkgMZ> K7ay*-ϗ1«ri̓ -3 Jme;h,`fȑˬYe٠nݺF#""ǍWVVƪM㕳o>-[ʗÆ j uɧH$+++,)S͘1~6:ha*0ydBHLL̠AQ!!!yyyvСCUUw^OO}%9g6KZ[[۷O̙3|>픟UTTpʕ]vI5k֠44^Iiw,,,!AAA뛛;VףG_f͚AlڴΎҥK#GȗD.\ ,^xСNNNǎS?gdd߿ɓ'.] 233.\---[z,<_qD;33S6gaaa*|`77]vŵ*֭srrZbşb2U^\\Kw^s+**x<ސ!C:uԥKI& ;wرcppڵk߸VXXP5 `Ϟ=?Ϟ={bbbvw?^fU^PPl׮]љhҤIϟyfΝ+n߾c|U///Ź...suu8q޽{?.22?ػwWJJ|p!,쒒#FBөS'yY8wgΜINNTumX&OOΝKDJqn8|?ܺuKqʕ+ Ou֩SrIJ_&%kg1 #\]]'2 #Jj !ߌWZjeff:^?`11G$a%D\WW˲lM a_WVVK ))i0{y,ꗳVѵx9_adDD[z7 *B⺺ZBHIIQW9˲RTqbqCFƚru''s_)[bnp{[[nÇػ7Ç'N)tJg,K>C׭yj{ !(;;g*YmָR|iiiuu?ȿʕ+m#ԝ;w_=eSJKKCBBa{xxӧO>}fxe9x`xB/Qb;w~Ϟ=>tpNN͛޴ ?0 >F ȦvsUl V>o׮66KQܻW$ ,˲"hڴsΣ(ӳ>44C˻~VG%|>-˶QϯeGXz<಻9yɓ'Lyf]6ii֮][UUWm}aݷnz]aV^5yde,X0u4GG'KK؅G>{S,Xhaa|BBfΜ9GѳN* [6_dPUVZef~ѢϊMMM}Y+Ɋ 윑qa͚QQeee ?˲ʖmdCc9sʕ+eOi^B1 asٿu3;&{xsU q˗-_V MDÇFfpR؅ c.T֭kLBnث&+6K+km[B>̛3 K7o\olTv_&kzlS v?hx CwrF}k%_3hv0iHV3^/z[}ۼ_@+0ZZL|{Nx6/К3oh^- xs>L /-/ZqAQTUUMQla^xZ.-P&LLL[sayYYv</j h~ݷ)C0''D(4ðKr</ \_ Kfϝ_[SYV*Rx4-21qvvСQ[cxW}/hZp2 %2 RV"hz B?«riq 4_`p_ /m 0 0aa 2 nZ!1RDj %IDAT*%|*h=x4M4 a4X,~p7oTTTvAP%2 x7 hF*-}ڵ\whF{w3.\0^D*%/ow:;j.4-|'KKKa hu'VT٣^Aӱ}ZY!QAZu 42Ϸ˗2}x<|Tʠfݪ@dx;ibYB;w8::|cÈ`¬O8ġÆm߱Co5jԔ)SPo!nnn( ^DEEu=** I vd9/^ |W}99w9~ٟ~dmc~>-ӫWo2ll.]G3sbY{s'.M$e'&%%bϟ?Mφjoo߾qe˖YXX>|k+=11qѢEϟ:Ea4".ꕜy?Zv?ssse <srrJ9/^Hs^^}-[~'yd'EQ6lߎ9_g%$$|煅 on|/2&&dժU~ӧOўtݻw8qӓyĉݻwԠpdU_o^?Bڵk7xCe5rޓ';nOO.]|YMYZZS孍0`ͻw10oooBH```@@={_~#""hv .^NzyE #;;ga6fǍxT6=""cbqEEř3gƎ 'ܹsa޽{[FqH[+AhhǏdc,߹sg{HTYYPn/^D̙{MMeff.5_ 9sQIM^]/?YX"y?&F*JjkCCC~>bd]m !e/d !555 <(odyT"_eYNp Z݂ʨOLy<ޭ[h7vlʡÇ7N6ё+W>.]\!m۶}lzYYQBM)?#,aBXeΝLMYBn"_&;'Gʕ+W\\4< w0 'r<_h4g͛Q6zzii ! _&(.1.---77w̘Ѳ)ff#GX0ڵk3?խkW/>]|9EmVVVW\-)) |c0K"hmm)e޽m6ٓX\\e˖ƗxAsK?q#F\ve#FL8A__f˗m߶Y>5Kqa'''ww~Y[['n޼OޣDŽ  |_1 ]/$ꓻw{t+W6>Qx,ˊD]g(::J1c=;:-T=]{\\\_. z[522rٲe ~=,[,22wgV._2{ZDz<=c.訃=rpG3zyyXȺӧOChqܼӿs6o7$*2iMĕfO|RV~gpl{22.^7oޛUmں{۹sg,nH2Z<{6_ohhŋ33/GEE5_H6њ2 B;#j0n3iٻwo9O fZ[Ѭla@= ò }2 T: EU=)+[s'e*.eQ ax<'eZDڵ32)#>^-( 0lY+9=/==} x=Mu=k*+81OIiZdb@?vd zΝ;[YYI$\ޜx|Pdo:0 T-Мp( 2 @d@ 0Ъy陞oD@M\axG@M*V_B: 2 @d@?42j dDX=PU=0#8K!?9$#8KurgI.O, ԥ%4rrgI"YH#'Gp4gIeM|<*YIENDB`input-pad-1.1.0/web/images/screenshot2.png000066400000000000000000000650141476727667600204430ustar00rootroot00000000000000PNG  IHDR6pfsRGBbKGD pHYs  tIME-R/ IDATxy\irrʡ:oDE9 :c8qNqޛ(LQ'ܧ\jICĶ~╤I$y'iRB,(ZCrQBBZ:DjԘ0hZ=Ϟ=Hz"KDCjkk@u8.\.W[GЦVim܌_K}, TlfP)5/^44]xxzijj tuJJ=_ѣ BEQ[SSW[s҅)f3hښ0!# $gAͨZEgNOAOEOHSSkS+[rz"0z&)*]݈,دx<Ţ'0Mr$iO|{ o םccӷOmg%C;/yY j=ֽ6=1VW7>/ =*}}; ƫTGrsrr m$0vvZZ ( niu8ŢB IHK(>>S76PgO|K@S@}\.Ņ?.g_C@H*>qE̚E6\+i2RpYC b?"IRâč"Q#I|5ԔbG@B%$$Ժ>xðكoUyyy<[={ҟ]x``@׮]nZBo"BqƑ$y٬ҒRcsg=x𠮾(mN;)ɆOixolY hYY$Ļ"<%RpER$I|.!D$IAlQ@ : !233;t蠭UYYuk+ӿ2055~M-mGG[o@544zJ]]]OOF4(_PXXnlb,5_AQc BÿX,6 9r$IRS-/Rͭdƍo/Tlظ12"$$wD,irXA\}HOa(.w:p2~FQo:3044qA6l% ±c ?7;8t|`M9z~}+0xD;0 !y|: FxX͛ׯ]8p@IIIAa!B߯[׮Y 5*hݲ&TI$!OC 1(x$ 1$gT穩w{w5ԟg}8Q@ctR& 1 !uu/?0G-͞>}ZVV"(I(E!򿢷KB$I,KSSڪ$!& tY~Z2CCo,-)G;يFk+!pDiY}5wWZnݜ9s$ͮV)K#jY Mx艚':wVѻ^VFnݺꫩ [P$UrQ6%à?%KvH!PSb XݻAֵZZZЕ;}?%>ի'Bq^B1x8P8ON!\fc*a^BwdBEVVŠJHvh>x3@j+xJ޵BtYV`z ..7o^\\ܻJ"SH50w`Ee)!Z}zgfd|  [D=Kd)=ûBV{ɔ_w-DBMMKtt)$I2ڵG9wyz --,T/;ta# ;G>&O(}ha={P燄Kܱ !Û Y-Iwڽ[Wh޽$sAC%tzAXbf#Y= UN677p8=* IPs;;[MMMeaan`$¬e^ReߺgW"KHp8ff19˥ˠ(Jx$x2h/ !TUYAr|㣴uϢ-D֐F:tf08=!GJN㧯o "gϜ:J7]AY|!˗ÃCS}bU[[ ! mmQce__|6W4ؿg7lcZ6A$&Y(,x~葿2"ɍ,H^2!ĆF@Hȍ!Jѷ_B,F֪4#GUTիžC]T-j;Uaڇ֣=K1qd#c_g.A^^NNN(Dgfn}߾*m&GDFJO^0t(c@FxHWQ7$knݺ—AO?)&Ohⴴw07xOA=yt_ߤV~XM|\|999t-YYYƎ ( Q5 KC yS )>y {qd -C$C!L!B ZKR !%v6v*-˵wppW.s0.x ^WC BZJheL,58/xI{<IQ$%߳$Ir8JϤ 0 H^mA/ڀBRB/x ^oܹs?ˆB3[$$$/qqqեܜ:x`CCC ^gϞ|> ,,]\\|͛7J0aa{a;g3f`6l@  x͛e;ުI&jhht̴syyyXX@ 5jTii+㭬*RKRuuu]vR~+?HMMfܸq[{cС˗/2Yi C ={6ǏOzZvv63ӧOKNIIYvk׮:t411qܸqovrrRw̘1'O111#Gt}ݻ-[k.ggŋ>֭[ @^/y辆ݻMfkk;`prQQQJٝv- ?^__b;@J鹺6sϞ=+W|ΠAۇ}RRRqqի6kg=z4BNU)xd w„ )VVV:uz왳9s>SRաCfˣRʕ+ܶlBOݻjқr xܹ6p@֭wJ/^ǻvgllܷoӧO3\ϟ?~ĉJJJHLJJqssST$!444Qz 33Dt8200ԩӵk>KOUt_jjjd[BB·~[QQ*k@CCԩSA4]U&^v>ӞRC$gϞfXfff'OFxb۶m ~~~ʵZfl[__rʯJMMozzSSSy<-[8>sLy.\/\@_Gu֍9󞞞999LW^^^̴sllftttJJB~͚5555+V/@+*++ qYYYZ@ݗX,NJJzQ)Fwc%F- [l155:th\\\QQQ˧C tww_r#GmHR˖-;;;x{{jjj޻wqgx&&&5c ^H4f7dUZZRo^^^ll+WX,,_ֵkW[[>}ܼy{*$>|84իҒ~礤p6L;ϟ?'N055ݻwQ\bmmjÍ8NHHHΝRV mj9=k{!IΞ=[{[VFGqҥׯ߿͚5gϞ}N=*ռz… oݺKP;N+^ f^J@ߙ;zsέZ*66+8ވ^٬{e^KE鉪DjjjM(R^^koogoo׻w/++ÇԛqBԩSwqx*3MzIN*r8l---Il ĭoFFFnnqcٟ_|/$''G}_*W W:::\~ikk+49NAAAn])={l*})+o;dHҥK1 )D^9Ib1.&na//O//Ϲs?}fO=oC1լ6lXDD޽]|98xD$]SpQ#M)Bg6Л娷#z BaFFfϞ=0 t鲯O-%K"T^QQqQ>ϘI zoffd+:zAhhMyBԔo>K=gw'Ɔ  ld:jlldFFFCz׷^y KC"rrr/_b֫hB{@ IQ_˳,l6[(8::6{i x߮fnnnMM7D#GR}횚z˗.|;:;dT__ʕ+:::gϞqJ(&O;uꜛ.{7y3<{#+**l[wI7oLLL{BOqtt~b޹sTTT$$l0L.Xtڐb BU{B&&&-_gϞ]2ǎgϞ]v2Ez?X*Vѯ/߿+:t`ll|;wŭfGVne/]422¼^y3g~}999,P:z辔URx~Lujר?KW :u-z(M[XXqFIH߾}FB-]fk"JR DKƧLW_8q2.nM}}ݶmQzj_ϪZb M&o~G<}ԩ#ʺj+?2dd$TEeZZZKOO300PդB"/^DF~S^^7x?}ӗz{{_~B}:880)))bxĈ>xGG/5jtCC֭[@}_z<***22B}رc͋ׯ߁e(%xZURpnWȟ0hf|>k׮6lx8$I;;UbL©G.VS $$l^pEdd3̟?gt`ll`]r)zaѣ)o0 [tҥKLW,Eߞ!$$$$$\_+ۂxQ-[6FWBƼvP?~=~/YQkllcG"AWWҳ)|P!I2_P/x?eo; )Ї^mYt/x OC "?Џɂ/xz[Hf86%#R[/x ^~6@ΐխ,/742d|U:Xl/x?iGˣoX,C54]H*/+W@ax ^J]mxx!X+~3g_-NQ<{AmM p8CGS-m/x?eo[Lm۲BCC\x<߿Z1cƍg̘1b֭[---O>q\ھ7 222..@ wZ''#G_Eܾ}̙3x'''oot8p޽{AAAL1? 611Ύ>o<[[[755UWW|L&Y] ϟ8q"c$tttZs= #"!A x !d``ЩSk׮j͡nr1`bo-;w_~tq)HD}L!EMMͯاO++N:6_rW_}ƌ1==]]]]__<-[p9s&;p ..\/+UׯKKK׭[7r{zz0Ydsss///ft)))ƪ B{{5k466X!cIAHWظQj;w2`x>>>ǏgҲ600Xr%&$$lٲtСqqqEEE "''q233Dcƌ111{Cfpww:ydn݂^xjc^^^llmۘÇwuȑz*O$>|3:uzj;;$&+f3߾}ĉYYY_|ŨQ>}ʀwFFF;wf0cwnѣGEEEj걠a]qd<{#+**leN8͛yyO$[ ?N!wܹ&&& 1 kM,W[[[,L(ڋ 011y8o={Օ_=v8OOO77={ڵ/BիWǪUL^MM/_CsN\j{1XlmmuVҥK###-,Μ9og1&f3W555555mb:tJ[SSPYYYL2KKKGGI&?KW :uR,BhժXE鹻: >}ԩ0 JI9Ҩ_,O 2D2k[o]]~[ZZկ_V42R8ꄐx"2r==gVW+,,tppطo3휒"G.OVob腣FnhhߺuKW/cbGEEEFF0_;|޼~8u?Ix=z I{le/z<55!Dw 8ڵ ?#Ivժ)S&CHJΟ?r쨨(eDzCBBBBBzp8/^T++䗫[lVTȠ1];?T}Ǐ7~8潣G߶ȸcc;oQF5l߈Y>qGuuue͛7w"o(XO|,EQI~]/x^AB /xۓwDppkd>,W^o[ )(@ ^^@9!ͮopxA/x ޶RXF C= ^o-ۯ?!ːcB| k2uuu54{>IRetqut1 /x ^{K]mxxذbW,fgf0.O]CCb5/xۂxWH!wbc\qU[FaKo?/xWB  {Z!!-89; \.x ^MRQ^VY^^^V6vF Ϟo߾W\iۗVK'U핮7n`*JCBBԜGɉbBCCDz4!!ܼ\/ޗ(EQRSS>BUk׮Çbbb$[?''端?~|NN* ,Yվ7رc]F$9tP&u͔>όw^hhhPPPiiiuo7n\`ҤI.\w^XXؔ)Sjkk_>**ٳg?NHH000PtÆ uuuN <`⼼< AYZZ\ȑ#|}}Mfnn>{l77DU !!ͭ}oB==ݻwӣɣGVSSc?ǀ_MLLӧUTTTNRRRV0L l6|QK% 6sζ...}||O>eʔaÆ1;x<AH!W^\.wذaeeez%=,Euuի׬Y)lʼn'pŋ---18}CfffQQEĉ}?)S~7 Ƽ˭[={O?1Y_ LLLLMM/^,2$-- vx#8x ;(I"/_6,""b._I:t`EE3w…gϮӧ/իWE=xի3gT ~~'~Ȳk @)::z…'Y022"==}޼FFF;v$:99)1Kp8 ̗bj2:zatBhzz:ϟ7oQǎ]]]555RHϿv޽{ VwժXE鹻0puS)X)턲lddܺȴH R++벲R՗ 7Μy HggݻwP{ܹ{]'ݰ':::2"nd]]aÂ+fGC$ł3񧜥hi5744444TgΜn6XVV*Y?=ÇdT(+k>kSU^^[yKW8?M-fGEEEEEɻ~Jf޳g3j;Ǭޖffeog==&h]OVWIID'=o>/^Tr*eX͛ݻw3R$RlqUUUGmmmСl%ؾm^uuuܖA|m%@J{L{ůuvǍ_Fk[ /xۤ7CE܆#BBO;K>+QOK ^~"^)(@? ^/NB 6]_0>` %/x ^W |![Y^nhd@ɪ*;tc/x ^ I8^}'dy;׮ejhU]bJ*b^\ mڇBbW,f<|EQ.~455ʾpMLLu ^‰PX#,/!ĸH$*}ba\j/x ^J{Rȝ;ba\Ֆp x ^mz9j)1 /sNuu CQ6[#prvZ[s\o"!Ieeeeco8.p0Ph/x ^A/ (R "֭A>6v*-˵wppW.s0.x ^ z5pĒc^ZY3S2 EM5/x 6Ų!$93r0 H^m^P(K!C_"7?wTR/x ^,(3K8:pqqanVVV)))+C]|d! f),,ܴiӪU)֠Hz!===W) )󋏏INNvttTSS3443f "2zwwwYd B(++d׮](uss۴iS:uJNNVWbBߧAa]w󍌌f̘WRY K,annn- ?熆:::#F(((`ƻdv矙&''K{#""Tq|aaahDDNO:uРA"Hu}!eN4۹Z2\^^}x ''3Mw]tiJWL>8;;b;vlݺu_~߿P@f]b_C2 K,yIBBBxxxNNҙ3gfddfff|rذatE :n~1;vaaa*Obؾ}n߾l2?CFFy<,+**Ν $޹sgϞ=D( ggg%III\)Ξ=+iuu5 033sttҟ:99yҤIIII ʵq8[[[zH#\6ELLLB$ IDAT!Cܹ?ݻw> pU@r VVV.]H]\\R<|$I:AZYY1[fX* -,,f̘qƍ۷oO:Ɔ-[LLLLLL:vАRǏg̘!Cap:pXKXIt'DIq5Bر/^}wda {@~SBt`AP(nWAyyyA!za)tZ( 333ЬY_JW\E^)%RonnnMM7D#^X]QV/EU]&=z|koof/PIIɳgNRĉqqkmNZl˖͓'OݻYF#㝝U@EG/^r;wcǎ-,B(*j^T<ڞbT .\haaxwLe zF}Mɓ',X`ddcGw ,VDo2ywY@ `2KqI?|2y\vuDZbyϞΝ;奢r6,sU= >x❻={?%=бcǣGS|z4gϞ]],\-K3^k`WCyPҕLu!#|)1Ɔ 6lwٳgϖ8΀PHHHbv鉿HuǑ[gɰ'y T\kkk{Y^ |!I2_Pż~\ju2 ,6Ś̉qQЦC D}GxR1GU_K)ev~7o?I@ QЦ$޽s揨UHIOC;=y@ѐ/x 6EB 6]_0 d %/x ^M/(RXF C= ^m^ѷ_B,~kh\Wݯ$U^VzLWW@0o[r1|>|pBb7s^EӼ*:8t411/x ^M/P‚ǎYd|! !E"X,Vsl 54$? ^m^BEK|RƸ< 㪶,Ö_ ^m !>/_HxaA?wTWW0f:'gg5/x ^Y/H# ￳lT "ǟ=y| B/x 6eWIB 1Adߺ5NerN7eccc/x ^A_ΣXrKQUB+kfJf!q/xFX!D$aI ^m e)#''B EQ gggC J~/=wڵ-,J€9~>0`s*ef) Ǐoddfcc3nܸsqqmm3&000++ҥK&*?Um`eKPPݻBaaa5TTlh1wm۶;ZCyzz3F&o߾?999y{{[N(I&X[[>^Ě쩼#F 0 377W8(q ޽K.Y$$$/QWWwtt?𺹹aChhh8880ݺu+=oa@}?s-ouss۴iR{޽[QQallcU{%}BCC_|ahh#Y7 @ H7>ƩSxӟ~ƍӦM{JktҼׯݻoŹs&%%mڴÇ[lxdCCC&k-,YŌ.!!nK,'M^wJXzС,uuFf쑑O>|pVVUD (..SMGCC#!!a˖-C+**|:t3ftqٲel6;++K ر:cop8,̿,^xm۶KKKOOO???faaa{_wcǎ'2Y333777ftl0XMM !?;88$&&3ݳgի }2fsq)T @H!III}ٿ.]nݺE*9ԨVVVVgϞe)Y,&w=ݺu;vؕ+W|zk֬DE!Cܹs#Wr|=U{cbbbDݹs眜v} RE韁v܏g8.メxyyzyyΝ;_?mE$!{NQ7DIqxt钩S466|-ŭ4irBB{ꕷ 8ވ^JaٽE ۷o7228qXSX80{n$Ibf/ I1*(rΜ9a+V q]U{xFpe$1kРAt/!)V`*y;k~nr$X, EpU[ť.TeT(v8uJժ؂BciuVY,Tm}lRw`PeUf(%yqm&IHX}?rι9sdtE k@m:cH rBC)ipRpN|}̒m-snjSXx+??gϞ;7ֵW+˲Nnӻ^t7|?6Ͻ{]bb>7'my|i-xL)%RO>...-snees%qNNB~As !RǧG_իnn5F~QJA'N0NgRYaaa^ COl 4|3'Y?ct#G8::*]lkkKO4BT*;7bş~7o*Fi/eYO?ѣ?ݚU?ٳg߿h^-ZϮ\q۶c/!dܸ|ɓ k@ǒL" O=ªUZH$4hPbbqyÆҐК??D kаÇ(#j32yiZjl_ԛ6ϦMc\͜l|||||:/^c/ˋaŋ=3%"En΍S>>wIHH۹sZ裏 Ԁ)Sܾ};99`Ν/bUU1))iȐ!)))IpFko]JJϬ,5#u҃dnnKIA[⒙9iҤAر#66vΜ9gϞ]r%˲{4ܢ~?7nnjM.SJ]\\8YS*fggSJV^=qDGGG''Ƚ{N|]RX,>vZno߾~5=FjjQ 0s̤+hD3gwTTVV9r7hBTTw}o߾WO2i۶mQQQ{q@wvڬ,ggɓ'gdd4=KBJq:K,'$$l߾v7n_y`___BرcwޭHJJ3g!dܹ{5Z{;p|juFFo>}47);v޽!**aaa|zhhI~~~@wգGsfgg_re˖-g-6FIa|?sRROzzgAAAwgO:2lذ>}:toFnoGСC{왕k׮)JoΟ?up/BƱ~\zMNNNqqq߲e[oeygJRjC:B~ᒓS3BqJmOsYV0* `ˆۼy$4|pJRY_WWK)WSSY^[[q\ϡBDB!4ڳgOpF Զ5^#/ǩ9N]WW'BjG+.~hnjUgթ^Gu>?noopZ(**⋴䢢9ӟ 4ip*{'nXXX'$l jxҒ$цhs3Nr\PPJ{|RRRR]]9$77W8yyyCbn]]݁۷o旔~WMۮ{ 8KV̚5k!!$BQYՕeiӦ5yFtg9uIsssgg熫=z4%%C]l% k()Z>xرも-Z$ˋ`Y᧟~ڷoߜܢ"SS^zBzl[^^0ر͛7SJF͘1n@sݻ'Lܿo?V{3fhT/Җ-[ڰMڮo?r,R{{;wnb꒷zk(@8dȐ#G2%˳ I)^GЕ ֬Y_k N]2϶[x+`_Y]btɒ7o?KX*He˖ѣGJK">>7RJWxL+233LK,v?ر31qػwرcYmp){m&mץƺCƗd2SSF%4>>/zjOO~ieehRt_Ckh ޾vjllq."mvppHHHhzA;wNÇ*暘6 G~L>`M={Jh}ڛVZjF lvgn2MճgǏ+4ATTTTTT9~<}/_'Q#Ewpp0SIqӕi8][.wIѹ Os#>}y@):"A=oo{t{\/trtE.<%E'7JH$ҮUUOBc|Zi.G.r.t]|x𡽽6%dkk#4W/  m\躺ȼ!;|Zj>"ssd2X0j ђGŹ9=R˲E.rzmükeo\?aP(b}<<= .^T(E(Je2O+KK3EzmOUfb-Yn]m[ADRթT*~'ð"3C.r.t]sxp_ZCtCȊ$]\"gI[PRJ PRJ ` 8ZVй0P(n()Jr ҞҁnnrGG;o@7nURpjuɣG.8  1zz/dr ˻UIR/د.nܸ/_[Rgf߼y `h=gH#?ʼn&yӧ,˲Sll,qURxxx`3=<<|믿W__+W:88DDDQQQ؆:s hIDAT=9xHBțo>0v8/Fҥ555?|fzgׯR]]w89]TTįCxr3gμŵO!D*zzz.]ɩRrjR4;;Rjjjjmm=k,f7n{H$666 hv{ggg{?tpI! 6_䤂~H ^~~>9?a>bb>(+-7!۷STTǎ{wK͛7oڵN0aBK w@_~=###??Qjkkwu!CB r]v֢s |̜9o߾k֮Yr^zMxmBz>~NOK7}4S}q_-3O99}}׻wV $''rG)ݰaٳ[Za^{ҒFß__~ŋ7mڄ-C:uooFKɝ8i:$$ѣ~yhhCJeEEEVV֬Y3 !7o8nС@noƍM6ˌ>)S8qbȑGí1-"""))ɓ'--lٳRT$=z`/E[Ԅud ^gϞ1N"(++aq/*|[TTSK2g H/AI{R)j5*eJYN>>.3=zhv!qj:((hqdd{-,,N>iG#@ot  Ed"KK a^I(̚o}CCBNNN //{$ R4OBPwvPB9J mUXXؖ(} _^Quu5;a111gΞs[\HG GO7o*K\#!~ TsbfɅTԴ`ԒqE+W4?=MML23Bn߾-ʡ!3f_bii1m+W]pƍ p0B} O[߾}S\\\QQA9|fVRfhp?_|ԩS~~#jjjjjj֭{_ PJ.\uׯ/JمRB(7|K)u֭[IkhW|FD̙:u (SNcjj+>:KImfQso5kz _.\paÕ===GaggY'6lg8V,ݛdb QF233_֭[^R~&oBWWQFm۶}Ŋw.j@H%ɷfuw'ܹc./VRiBgVrss_^8%E^D3~#'Lx-&&&<<nɲw sq!CV\9 n_zڟ^P__}~\ժ_ޔ;K?qg)AARY/t&VܿWVGNϴn>|HpIs>@wx R@KhH$BI-jz>@kMw4{;G]@[r>Z9ށ`X()<==茉]^ ꉹa0x]r===1 mIENDB`input-pad-1.1.0/web/images/screenshot3.png000066400000000000000000001164761476727667600204550ustar00rootroot00000000000000PNG  IHDR'sRGBbKGD pHYs  tIME9li IDATxw\G:pt8ѻX bc%^QcK,[ĖkCQ# (*At9^N88|?|tov33>3;KQ!(!v'BN h` P5ȌIЙ4 DuCX˖B@K`(2B(h`ֲJJw+{'J$z0\M]刔!D111A%%e%qOu= b)+-9O^!U5%B[?|Ojoݼ1qR&a aV6LER+L&B!lJA0 a*^NiiaAFvFtu[x E_('ggU2Ru.J<3 JBm--@(+ 6:OO P(Z?N"C|MUUsc>":F:ll)ŴFMMMnn4=ӔB!o-GDA1&.?‚,DG)I F<^_?o%%%hPAܾ}˗3gv3guttwf%}Mn^^dkA>>{ѰwgO9;9535%a\\~Baa;VVVFD\1cluҡCRFdgΜ.2 ^mĆϟ7$hHba0(}Fq\F!558+P5$'7G Qnݻ)**+ُ?~GnnB'@ 8ܵkWs33Pbb7o^G\B54}$KW&92AcJ/tLSQQYYYx-,l?@b}. 0LG"*@0 p%b"c8QTh ϟ^uM͠A; {N:l{.QoGݹ]iiݺv%#2dȐ!uݾ}[AAq„JJ ̬lww[ FJKKz)Eh|X%??OQQf}yFMȣ ޹sWϞUp=ڹ!}߬s*q"ﯛbTȾ̟Om2>z|TĦQ- 6 9ze +*NqN8t|`dqՠaIyy7oM())1660`F녎o߻wtp/LKQQ!J8pJͽw@@@++*bcBDFF0)Gc`/ٸ˗l6CBGEk`4-gC QBg CMGLE㘀'w8D))RPrQ+x"_Q!Ytpl̏Bj!g''Uv%}ѱ# RSSutupLcrAJr!׀秧***$pϿ{ݻHIIȨ /?А+<3#33#ӱh%%%W^P(:::f6ZЊv ~)Bv4" ,ڽ{%Kbe"`S?_4!&2%BgƞֲށگA/ҧPO>Aa4"!%Kv!!'Zj,e_8B6 Y ww^^SEթ`a@߾^,,,eK:"ǬA>JJTVVF޺f;LݍA>EEi}3!b[6 %5훷IIz}]x G[[SQ s؇nn!DPtq/++KLL|ݛo;hƗ kaOP.Ȋ+ȍm۶۶m/'- ze~Ǯ=?|20Чh2EN*lAUQL& Ȯ%DޤU ޾yqEEYYY7"oy#G u8{;UVV^ SQVE40<ԲҲνk%VbSS]];v/\SS}/Vw_Ϟ'i" sefölLX05<^;~EY1VQPR 9[oMe5%+PB>1K  2éӧø\ISA>|oS*;L-E>gvvF356~muup>K޽*84xj|2-=CMM>cwGS(Nmf1v]; s'$?:;9Fod~hfj*їf_ݛl`_fqoذJ[k9Dj( Jr h4ZbbbO8sԔ],,l6B14jk0Lx(+:( }z1Li40bX FP(=fe5`a4LuuuVVv}UUUГO_ѐ?x¤U+++ drrϘy'M让)>>W^ͯ9`Bcn]ʥ$ S`ЫW&..μ "YDmʱ@[| Z._l6[ׯ_yruZ~yy-[ݿtucueKX,@ uuƎ=z۷oeH޿ogAsȐ'NRSW۽kh4ǩTG,,,[unnnVVs}666cǎ]fM~~/*V~ʕЛ7nzB {`>:]} ?_۶mnZ \ 4r!+pA{?xPOOEE8Ө4 (--Կ?)3LPƎ{BE~왽lǁ7#GEE޼u 2.O]A\dyL^W\ջW̃9sfKrQ ?v˗Byyzzu#H==ي|.L&S4p!_ttt|nnn]}⹨"S=e]uؼYth} ,_><{= BgΜ~/VpjĒ`E͛4<-HII=v>r$iᮭ[KSߺy뺦9s;Ktl\\܆ {jIJiӦӧ(Is55K4+$%%M_wΜ9{UNNkTn m6rQ@p={n@8v}beebtU,߿„JJJ-5:G;wMU\\ljZ¯xBh߸]tםop8_AFHMMMxx@AIZhA>szJ6[::IΞ={?먔~BM:.@=vrvt1Ԕ g2 :ߺubzzs)EC=NKK=wܖ-2|^lh?/@EAA?`a j8@]ʇj&΁^7T MFI 0 , , 0  ]WH`vZj>Fijiuvlbj 5^ia &O cGYY11}757hA BAxyYYnnñhio M1LaPh4*_ePePnʢj>@T.]Z` 88Nxuu5MPttt̮8}F|>?111:AvNNS2FRu8ݺv`0@Aۉr]ia@@ٽ D3 ~#򦷷7˥Re :AX, $G4'ݎӿ_?=}}75u~1&&4:AA+7, E328镗 gF4AA+KٳgG.+GIo^x43=BǩT\ !ePePn?uԽw- /6Ϟt215Y2 ʠ ʠs͋Y`~hեKر=-J4m T/YYYYɿe%} 0Li¿i)ɲpePeP#{yj=z+vl,GI޿{޵k[줤"[ZZː-oЩ+&pRi;90Yvfu ʠ AY̝t7|>::Z0Ӻfiiyo zڎ;|ӧ76))~A4P]]=<[z@ FcX5pePeP/6:h ia\9QQQqws#_sƌDNrB|s΢ N:e3g{.mv2(2("VǏNN2$?JSD\n8qDУGbcZ+ |.܃f}K+^tŴѣG =zKJJ.]266o|u6eʔVQׯ_/,,D9;;wԩwO>EDD9RIIINP(K,mZ V&F 'A={LܫWSNO0!e`` gO>LTGѶ'yڵ(((` y)?}T:F֖իW{lٲsQ(9svv//zϧT*500prTf2vvv.\`0mB Ǖ'N(whA,]4!!AUUՕ GGǖOpӦMk{ wiuuK4F+0jjj${09Ol*1&egg*gy OƎ#uGIIiA\ |ry%۶4Ţ̗.]PT++;wnڴI^y?~|SJ'!~VVK/>W$$---88_~=͛)))2h IX,VEEB䫌8q"Brs/^$$$ :uT^^.Vz7BHMMmݳgϖ.!ɋ/:vH>ӧ>>>-6>M̟'@ /&J.^)++ǫرCw^{+*+>C8cA`!Bƴ䧜k׮M:uժUcǎ=y򤁁AFFa 2]|y`` -`ɽ]Lu PSSN:EQCQZZe˖-[ rrr~zVYYYɷm:i(VGP0 ##`(T7o"##C2ρѱɤhc>{-3w^:C-<ڰaرcLIO`QQQW9x IDATF*8c8DU MV UWW+))xxxyyy%%%q~>vܯ'O,**\fO?$3jnnnjj*w íb,zܛ)/;hJ$'qttܱcGFF 󓋅r-[oׯo;0QΝ ًb9r^Dg[wC EE/IIMYpa=QO͝7'?rLI#l \.Wl|<7bNjjjQ|i[^yVPPؽ{7BHUUEb $lmmLL XAAA5t OKK{ieeecgM~ߞtReee7o466"ljj믿6S i9Lm~8??)B:::+W,ωةSǎm;tPSU^\0337ohhht˙ލu,+%b02Mr s3ճ_u08p`PPlQr4HUUU{BάoUUU?.s닌x@@uV\oM`an. 5Jrw77׶OۏԎ1b#GrFFF,K.㩭6H\\\:vL3=[]m42A<Bܽ{s1WW5˺.QN8qK.lk8 PTT\jՍ7={aooߞˋlѬ> @0e&!69|Z4Mmmں1m4%%; $ j6444: 8\ …G)X@{w`*Zul>erP(jjj]{F^^*))ʂ<`a2( e*+q3F۸qc+ɅX~'0ڸ> \ >'_;^/ -DYEEeϞ=M9nnݺuM @k5Sp1j ui1v$2@,'mV}v2(2(e dFI@A[2X@[$T*5''G^`?*ʠ ʠ -lB!Q(TPePv V|rHPDhȍko_jlrֻgϘXNo`Ebbc=<1,PeP.0J4;M%Ҩf}z{5h{yq A2(2(yeaoٲg_&Yh޽{[ð!C\zUpрP(:`ooei)8BIP "(2(r;Qn/Fyy;~W]QQQ CCC_YYV,W^ www|YBBBh...:uUܹvAϟ?\R^^Nn8gRG v`錦 hT ʠ ʠܮ۾b322Ewvڕ@vff˗k=pÇVK^^^c.--Z]W\9hРZć,--k}!ԳgOџ'N 5j*vZQZZ99M2T{:ߔePePn`0o߾---=z5JKK]\\lmmB4f w>|!tYf n/////.ҨEEEmذ߾}]o޼YpaddEdd$111=z0GNT?~|LLL 8߈rN (...*,uΠX @Aۃr0hjjnذA4dرm}}܎p8Ʀ{WQTUUE-)ӧg``0͛Bjd7n***fdd߼y3'''<< .% u~z<7EMM]wtt ePePn(--=~xVXq~mݺu׮]SQQF8uT}΀̀1c t"aqqq_ >ydO>ӧOƙ6mځo~'VB-]T(}P===r/0W^^.f|ʠ ʠۋ')F9sF[[Ϗ bɒ%cǎCۏ=zҥ^;wܹsʊܮe@[NWWuٻwoǎ!&L8|pttt=.]T^^.-1x`GGǰ0P+q**.G+ ɹ ʠ A]X =z򥯯 pU###WWW:.oذj޼yϟzhNNի5^2A...6l8rɔrttcd7oܹ3**jܹ^^^3f̐c==z4""mrVڞ|U{3Vԩ? Gey}n۶m`a/9.@. aXhh-[ ={TQQyĉUUU_Ns\>/\%۸833kׯ޹sٳgG%`0ss޽{[[[׊aؽ{.]=nܸ۷oN2СCޞ#Fٳg5p|cTA8   /h% Pe١YYY5\RR:m4 ҨIV}$| UTTL6M4[n3g 9qD•Bl6{̘17o5TJ %骏 6ٳGš 0`ǎ,KXb… ‚<<< AAA;vq0m׿!Cdˀ$s| iwgp ~c ϯd06[N79چ{Iaƅ dHx9 {z,Rw-κ48d2:$vȑ#G)}Mx;1_P.W[n6ZQNHHx9B˫oL_~ӧO>[i~\]]kMk Ç0;w4jdJرcqqqŚ]v:u\VXq}ѐٳgO4}* Cf<==Ў9rte##4v-LLLvyFݻwOAAAsH|;wmllȐ˗KX[ruuݻw*ʦ,.\رcGҮ]r%ߊ&/^]~֊ɲ_Zr 0yQ_+,,ܻw9s.^hee%8Ϙ1cΜ9EEE!xM6=ؘǽ 33Hr"Pn7nh4ѽ7nܐ~A9P7o)W3j)_zwBM-[!]2g##?{),,ҥ 9T.>|up6}pZ󕕕>{muu\^ʕ}6KQ%޽q\u)ٸqcI&5}1AP6ʛ6mΝ;E޸qC\__!t={:::K~kRkTn ws`Hn~FFFRF}!&&U ϳ"rIII)))6;pqR?&|@=BR([$RFn'QF!2|rU}~&P *0DZtijjjDDY F}vUU/Oooy6555jҥK\Qkr~~++=a C>G5ekwfV? 8b^ȯT)W!@PWKWG3uWK0V5R,AYIsL-͞ Nꓕ/:[W`*Y>c3&S֯J*؛9ۗKI^gbb2k,#QSrѬy?~=~&(ves1hÐ &@.za"FNjJffLAH[_R0۬Ȓ6?OL+YɇK= LƳ bYF`_Q_4s=e3=6N.*'e]mʒb*.!X NN+yc[symf̒䖧7V9dUnЭvнki*y]^IR\_9)?KBXdr^I_!B_^8[hHS]."$D#Q#o>q|Z̠S܎{WE|'%(mҁNPeP6Ð!4c.5X oR>fjRv9A @58BhAн/;cb_,TU\,.Dg|KU:HAyqe!|\eTP(<ļEPݽNPeP6laȡ]m:[jݥ̼8!^!R7 0"M *?9u~oG7ɟ}upGЍl @b^ !7^huF[J+j@rC}b &ev²P [VS46JɑWc04 AA( /~ Y7Z3OQ֟y.kq )52=LcigKM&})FeW/vn(K8+:J)k)vBQ(Pc3g%MK<!|^vae 5VgPtuu\nzzz AA]('w`3L6NMݫ*(RB{x'ަ\ݍIpBڜ!֢5}Mř-!멸hL:4TK=u:yJqVAe8ȍܢ*aUUTc-W9VZz:|Ш={"t:ȵcbc=<1,PeP܎FIĢȤe70ʁQ) fAt?>I*3:qVHSr ˾Jխ'٢+OA{{EjO88g\-E V$Bq0Q eHXba4L3.Q^^Fi*(*ʠ ʠ[ //P(X}Dw㷙%^1>X)^VK1;wI.zei_Bj|f{&$R@Uy_p"*$%MPPW3$#6Nv&7~oILy,ڰ?PL@ hKP "(2(r;Qn-> @@E_S@SIեun8}aF}GB3MFU֭h[#UW+-C7ν뤷rlw% f֝A CddI⋱@ }1q 'pw߬wûQYnJP#  vB3t:B4B2(2(+oabЪjAwSʫ݉Kx5;/5xQ in%KIRj?O) JyWſ0#G'sͮ2K/n8C )DR˪UE&IY±rK}: ż]uFJ+& $dV3T*}=cAj99MѡR:Nn]m;t ( ʠ ʠ[!G'ƋBi{p-*#ܺG }+nF^ο@.89=_!v\xI F ]~-LRR^2Kp KOOyۛ6Etk(2(r{Pn> 4@`_׊(O] IDATaT@İQw맧|~S5y{GGǘ PeP6Z, 01`镗 )ٹy|>F2(2(yVba 0T*U.]41r!PeP,VVZt!և7;;2 ʠ MeN`A8F 'A_Ç1և&R-r>d25ŋ cСU铲2A<O[[=_KKK'MԨ&}y<^>}gϞɖU!eeO>ijjUbooJN8QU#qB4DSE+6TY9@,'nnBr;r80tm۶K^ʉ֭۳g|JKK[bۍÊ mm]Qy+V믿[6֮]SSScddb䢬RXXxȑsʽ=m޼y4ʟ>}ڽ{w8xb9*|o߾:::MTݻw|||DD*PS{n33۷V)]xqA+`FB8S(ƺF*ڵK4|>_EE%777%%N.}kaPQ0 Ú9_fϞ= }m>1H@8Wn>(ˠ\wȑ#BMϳ ;y FP(@WWW33[nrW&͝0aBII AOߛޞy򤥥˗/>||uVEEe={v?tpp=ܟ)w!!! ,Xt%K[E~\]]CS0aBnn.AÆ B,KWW7;;!bΝzo|b333I_K]fffI8'NxȑGay<ʕ+ϟoeeeff*q[%i<1/5- }]vegg\rРAÇSL%ҳgOџ'N 5jpڵkGiiiHHȰa ***޽{qF⒘RQQqrr$X99DOOw)88x-|rwcڴiŸP'ݻl͚5MX,ɓO>^`0 !f _X%{?87B,2***³VUUp9< :p hJ $&&ֺ'}SN;vtrrK{եP(gΜ!$'';884=t:Rtoee%N6kYZZ]?<O>}DFF2DMMMxM a*%߿gÇ:ubÓb?~|˖-,!Խ{._|ҥÝ={VYYY4WC8qbHHz)Lr.\ajj 4I=IK.M3FM8ٳUUUM̳K0 >~8--W^6l˖-GYYEEm955U.yr߿)))0?N:E:꒙0fP.]$Xl6;..q7ydד'O>}Z4δi8@ٟ~I4ªUBBo߾:44TOO[ޤP(<ŗ/_ Kmhh( &_7~ظqckd5)r8(ƔoAYHUUUzz:a 9sK9nݯ_sݻwյ#[hњ5kTUU_|8::rPFܹsҥ- $Okb{ܹs|||iiυy߿S|`TUU)**...---|hd&):Kt֬Y+VL>jjj|>;**J]]Noݺ5==¢>|FFF~~~89@Zϟ/++[8s C[+e7Ȫ3xڵ͑gP6L&ӓo&ٻwj3gPϞ=kВi)Fii%KN&/((߽{w:UUUw>3gĶݻ jJ/R*E,hb R` 6`7P@h@)Qb"K;ߏ1(ŏ)g9iϼM>eƍ-l9rK^:555hmmMәLznni4ԩS-[aتU|||jjj ttttsszޔiɒ%" b\\\JKK;;f0ePLYFFG:rwﶶvssk|YMII=6㌌s΍3&==͡Y,VhhhJJoddd}}^o(] ʠܡ28 h.g\QWWosu!`~*:x`P_Toܼ5k持w+~o)QiT}=>Z ʠ,28 he^vdZ]]|66YY:*/*qrt4O 6d FzF- PePPWZZ`r8IJI}(f)j_T.++U-geP{-aaIv…'۸qGKsssuuV|5C4\.L&Cx< GE8NFʠ *C1;w<}vcc1c=~dݹsgȑ?sy<^AAAT[[K bbb0ii3fQQQ ɓ'xnssskjjB222Æ ;~!Cw฻_z_4iҞ={:kerCPΠ v.jjj_-hjj ,))ټy)SZW^ښ522rgϖ7ر05553f`Xo߾򥴴={ŕMMM B222Ç@ tuugϞM`nkooeW\\{ p9{ Elcc#K#99YSSs0 :::vXFDJJ*//*uѢE*͎_ӸUb [nEy{{"jjjJNNf0`F"***괴wUUU]|_~f0*jnn677߼y3~7oRQO REEeɝD"YXX 455Eھ})"ϟ˙Ȧ&~ίlggs[Q_ckkePYY7l%K->>>x}kӦM0,--زqƌ6dtq!~MLLLLL H+###wgfee9rDNNѣ{wڕD!_x1~cǎ|2$$̉?s'N\~֖kYfÆ 222]_^^^~~~!!!=%зF{Zxg?dqh4Z`` N>"333""?ׯt:+ѕ+WJe˖%''5f\~]^^J8pXOOիWGSSXk;5da0oe;2Z>all|ܾ;v,++ $7o#X+WPT 777;;;)S 4f0׵/rev)k D111HT*oɮldd$ڶP#FBkmW֣/M0jjj6mզ#cXw'EcccPPЅ Ξ=扙>}ƍ8#GCK.]zEMMFegg;::Z[[t&}v6ue˖aj*d2===ܲ^x7Xd h5۩WTSnuu ///;;;EEe˖_^pi]JZF6o9rssf0t:ɰZ|9ùrݻUUU[2u4ddd0 [nځ:"ioWjjjlllqqׯ_"$ ߚ2!())9iҤ˗GFFfdd|K bve_T{llիMLLlve:MFAI[LBBh…Ѫ-LǓ0`Bh7nn//3ٳ?344L&*A&׮]YRRrѓ'OzzzB0 @FF&11;&&(rCBBnݺ㣧 IDATNMޡݫsܹ޷FNNN^^ދ/ cE qᘘٳggݺu&L4hPkẅ́,LYYŋ،7H>r۫o޼a2EEE:::޽355d2ϟ͝1cFBBBZZԢ]rʕ+!ii1cS(¼r!CD[O@fi]]]ɪU>Ɉjdc٢* 766 _ҡ-|`sWBp;wćAZr~=kyMLLܷo~>K\WWxWo޼yM EQ[[+%%5w}djrrݻw ^ðX;;™_YZZ q ooF .kootR-- :tΝ;:::o߾P(麺K,111qss۱cT `ڃib77ĤT1S\hE&O Ӌ[&֭;xǏ7l KFPU*DM6?7o8NZxPTTpZ;۟p#mz,t86NoFgggb֌=͛r@@BE=/pyb#GWWٳ" ڛJ644mhhRB79x=$ f7 TbĚ˚*f. qySlѢEOVQQxիWy<B;wyK}@c3g422ھ}M妦&__9s ?(}ʸw-##ѣ;v$%%Wwxyga]!@!"0ًs}:K{Cuu?p޼ycnn_2u0xOvv(nc~xUzONH5ݼyTUUT*377wwwP(***x!g͚r~]mmy0ׯQ;#פZGGG\O>566IKKBRPPp8t:]LLBH$? !'N8XᰞGǏߢa… .囕Juwwwww rppԌ!ɮ} 3 #OY#g t:?_HJI^1}!qq?_xH0sP8M)s\2/0p}PD0={v)繳O>!SȺt'N˻[VVubS(UU iKxmn>֭[,JJJfc3}4@ACe)Z}}}Ν;SRR~w337n߹sgر-~貲!1f̘###"eMM é'VOBHOO/##fgg[YYYYYEGG庺fggGDӆp8ݬ$HT]\BO+ʠ ( K"&&Dž.^hii3s̸bڴi?3=&&!>}NpG!oT6UMBkA)\.ёh/^$%w566|r9s.[LEE!TQQA8 MMͽ{:;;KJJ^|,+444%%722pAh::: Er!x<qvڭ211qגj)?Y92laa)--_XX&YTTS__/));SSJ&y3f$$$͟?ݼy3!!!++%33SVVv666ƍÃ%G7r$x }`ذ!S-H$$/M70w P微;_~O_QQMt ލ\.>66vҥZZZ .=tН;wttt߾}KP uuu,Ybbbc)))S __קZZZ#666 b_wu?U zS)ePѳ=͛r@@B /py~ŸFWWٳr&NNN-ڙ:;;#p^|d%P_ 2t1~m1`nPepw>{jI$2z}HD"y [Dxe.gCy| k+UTT+)!SB+׀Feey~~cǖ.]%ԩرcg.,,p.\pҥ8Q)H$--m۶544sCur~~~"Tf2AAA.\xhg''ܹPΧO277ojjm9 8  nzMzB!- LX.‰#k(K9ϰ}[Z]K]d(j2m%QFV-7{III///MMMkk Pb)++WUU-[L]]?yم Z+jڴiAAA=QgϞ߿E+{ȑ9rDT,B8qرctKzyy 5Ԓ}G'>q]ȝPɿgio;}WɨAvm]8gGxaBfnfy>b, w[\_e3H锕ExmzJ]]=11;33Bx`Ν;]fdQ=ȕwލ/O", 2"Ra9 '3>ۅ9uTZZZuuuLLLDjk[Ox*[ۻwﺸ|7,Ԓ})!E~~޽{ϝ;7a%dglnjzZj<4e23;~ؠ!Oƙ3&FOP+=b>o߾rFFFwD߿bYZZ\.UTd0EEEW LbAA7oa} ڛ!K |?kllPOwXO/KǗ&! II"B)//2Qè1w Ӆ_m)a D hhnn&!X$WH8N?>p)3C8ά6~Zߍkƚ[ 20߹eqB5Q/Ş;t|?a~#C{QJKKچnڴIBB",,PHI4M^JYY &y>~(e۷olpzaL4)55U\\\@rOO 0l-&Ar !!!ADiӦR ɀ~E\RNN.<}X}ehh(N'+V@V\/_,//O"( Djhhزe Y{ٿ6laÆ?Ǐ9b~m/$%% &&0('5 LvuuuuuѣLw3qN^}isޫ{wj n%{~<(rM)r吐hQ){yyyyy<ϠyBƍ7n\za %%%!!!?z}}qqԩ QJ&MD4/_N-Zaa6mJNNNHH={6>Nщ}sbbb/nFFF8wAxp= 0(rwjI555W33ٳg:u366M۶m#"ݛ={;w;h"4'z+fggΛC||< ~a2(܄<|0,, BL&uJ g͚o$HNNN ӦM7L:__mmmeddBѥBGś ?l03gΔhڵkiii3g΄7g{|9S}ePH06mӟ~I__!$%%uA55cIMM… w񌍍?|%''w̙9sXZZ!T[[{5l6֭[x=,,&,^qCuV7vСdo^pӧO&:_9sIZZZKKHyҥ[nVa dee/_J㓒0 a0Dk A9'O; OMM͚5kG;vWWW{yyϝ;HsN[[۷߽{077Ww b...7n$d9ϏҥKW^? DL.--]G(~.3]EPehIDAT>CWn9巤CՂWNYUY ׮2ڼcڬmj8文Bµut;}odfJ*&oشUCK#ѧO-zMRMG`2T$e1˷oZ~L=|8d#^ t11| e+d }.3z#OW/ی34r M-أSشG-mꪪy3_IJJu:&]:g29I6s>6C:n#ݖ.3ʠ+;˗Ar?D" <_z_Cի+W>,((uVuuÉ577766xyyyW+_&L`bbЯ_?ẅ́,LYYŋ،7ںv8&e(dk+WǎKR;;yU /psrlmmt1(deEUy[Z9,ƍGm?<4[;Sᡋ: !x0}&N+-g˜;.rGx)PPT?p 546 !4o"BYS[rⷃ yP rnĥ\>r4BphJܑ>}wvk=uS?ŎXT`] _70>?:Ç{P('ODM55566Ғp\.0V SȺt'N˻[VVuS(UU iKxʌqzEV*)Ğmf"MsSӂ}nf{y'1;y9Tbfݸ~&-VPT_\/:gkA~WY\\!hʵC#s ի`] }Wrb߿]Di["<<#;99999otvvvvvӐH$*6x>f %Dm* VF]8/ߒ`߾K]ST)i_/&񤢂a2_!%fiߝ]S6vonj6k6>SkћW<oa{yjbijOL;xw70,`H qBeJ˃һ"a sjg P徫 9 Sit*}! _u"9; B(R9mؤtU#B߮gki{tt>z8!6ڛqsg~޼k/)JyYÇQc̉՗ϟr SVV!3@!FC̛#df9njZJ<(Bd؍>ti :#<pXkC|lp<x6_w;/ݦU gz?}b7+SIKljn0HfvmbbCd+#*+X/?ưv*w-; _>_=u2d5~Sg:7Ũ`1[4b*!tblccäFDh:dѢE`]R&jA| p\.~655(2a;y2CM;Br&deehkSV2p2ñ1<4̚1>]AAAYp!G{N׌5d`s}1GAI˷c̈́1C ;jBh_`tq3lWPZx7Us̼_=PK,aaa׬0q}jj١Cj鹗ֿ\_W2{;@ },--;nnnxkx"=ʚf8k_ 5͍6 0/d8؝q>C$yR ÷.e|qqq=TKbiiq3fB-Iuuu}}}{{) Bopxs!?Ѐ/HaÆ人:)c6y䌌6gNMMe0Ė'N̙3GYY /ǎz-OV0??իvvv#Gl3AcccIIɀ ;aXBHLL1cȧ%ɮ0[GM#P]xo=)0ekMMMp=z^d``0dȧ+**fΜo߾ŋ"lvRRRII B௿:pYUU? WL||Ϗxm۶j{511QWWG)((8p O<{lccc߽{4h[p𠛛TRR}Ouu5D|2Bv٩SZ[[ ($M6Yf۶m3f1WwY/Fm۶M:ːHziZVS_ L&SSS sTbƤĤHumXigj wu-U/Aza <==͛$7۷ ,YΝ+**jll|a 򀀀WWK.yxx9sfӦM?-[,,,0 8q ؼy3:bcc]v{n˖-GٳggcǎEFFfeeᆦ244!t޽>117:;w۷4rxx8B/^5j655߾}… ڣG^t{mFdee%ǫW?|yyE :3_z7/rxɞ=}J댕oll66V\\k'nʔ3UT:(m5x>yn|M߿իWڵkWUU޽{&:Ÿ@h ( lccS###PNN˵Uϝ;~}ΝO7gђ_NvG m-奄eK޽+_-?N|33% {M B=W˽=``<ϟDl`[[O:ogB̰3OݗOi1f$B(RBhυsџ3q*}+muyN3dߺ} 4cj4uaB81^>{}C?=q\!#Ƶk h!""._UN6ӢP(VVwaTUU]~=((0??_LLɓ'&&&"y?H ·5(XYY]r!tʕJ*cƌ6mNIIz16 mm>Oqq1522*-- \nݛ7ot޽{׮][__"Bq˯^ \ z ڛ466رcÆ rrr H/r<{ByĈ4-++b4HL+$a\. 0 &L566fXZZZǫTUU555uW ( L"&O^QQakkٺ_xA$x<@/"#Nx<y<oH9EEg4;lEg.9 N@"4wlzNDp# ?>`ccc⛘\vmҤI'OH$QiڮXðm۶umao{3O<<@oa@qR~FO?Yǘ1K HyptYd NO8 -$hh΢хo)Ƴgꬬ6mpLMMNI"N]`v Q}r 444$$$EØ;wnNNNXXX~nݪ%z -kx<9yǻyN8;yvStznK.c#8!D8tq&jjiߺuscVWW߾}ʆ Du"[_iUUUm Mz<@r\. ̿G`25451 ƪc<LBm鯡dt6ڻdeeQWmD}sfίO?cQ]`tj /!- aJ8w`|UD䀄z |S]uApbbիWZL`F!; k;(/YJ]VLLLTa. <у5Fb+ !c;uisAǞ5pI:p5k2ת|n<@S ''+X,EE%Q;{[A0,Iqy\B-ݳu%%&feep8-N:Ї(Pz'7a#lbb@<ӻwlh`"ekl'0`̞t|'!$//7eCX1K W@(5%`2ܴу쬛**JJUCaseEee-ֿ?LiW;HzAȧ\(=IGUVV81 _2:$iɰ'yjaU"ԧvfW C=o2lD}I:sI;wyg!ɥzh4rePE #c%%ZkE+YѲ][g7F$f)[/+hгSebbri/"³r DePeL*?OJP>~آ%uHKK|?ap 8jqp1(dk>;vRKKs:] A+#u?a2 HPRRf1w5.~ KpRRR )d'X-++úYIPTUU'..!@?2[N0oOsJ 16pY/N&4(r(@b7eʍ* m5x>ynʔ>w\ﵩQo2~U[FN $&Y&f:gXmLPGz0@fap08 py h9 3qP(tJju(0p@osj 8 Dɬe*"# 1 Q9$ rjIDԒ]ZW@- ݥuԒ]ZW@- ]D@ԒڳcaYAlB)(9w DIENDB`input-pad-1.1.0/web/images/screenshot4.png000066400000000000000000000311641476727667600204440ustar00rootroot00000000000000PNG  IHDREsRGBbKGD pHYs  tIME%̫ IDATxwXpG;z(RT" b^ %] *jFc$ V`E&xpˉH<>>;ߝRs/B| *+N0b~8hR{M%q\6k\.D:%%%D$4PU%LNѤ{I-qc|MMM@@?77e~~\L`؍d2zzi=?U[yknDbbV=wFt-Q#pY, Qy֋/޼yC"tttzpmáp} CٽL&3 KOu5VYDxk,&?Mhhh 4MKKñtssSUUmO5_Eq=S0&NIp8r^0U MLkp|a~ ͛TVVUL&|VwJh"ŅӦOk8LnE\*0x7b}lȈЖhbg gPQaMX"!6aF!baC05T |bN>]YYI&)@PCeX|'O+**VVV>}2B555yy/54}+wX"ܸqǕtJm&cƌ0 w-yyzz-`}#nZQQUUUJz{{W;gkBsimff6rښO3\Z]SxrIxbfffUu5]{ޥ&''TWWkjk992"B^BmR=ˢDBjT [TDC8ccB0L"ț7oBݻuՙh|Lm"É7oܬbY BჇ8 pO8-H$tĉzi%qS׮]XZ"OMM;p2=I!Z(D֭[EEjϟ痖8KB***BQppwwsC~Be++ieUՍ7SRɖD?6ēbHwzl޲E*cǥb޼eKA"ɦ4>*om@qU rLC'JJTM/6(5Υ|v>ŋ/(+xa*,D윕uX>{ !4&lnEEfeg7/(X~D"0 !flk88:ߦ?::'H$7oLkpPPɓ27Y5[XܼuN#sG WRROKMݻ$Db!);;)jGy-s"#BDJ6HN1L"M1He=j<}TJW)xp1gL,&Hč*.,$p,"QUYYT\$њc) LiTH,&S\J:,fc5coov0 #HfޘDBlmo]HdKα0$bB***յ5VB}l1p 蝉#5w'-{#ٚZq," 1乐6 E6l?F[mـ4{Jn<JA7޼hۥwoֵ3KYY!o/_XZZ67D^mC7!S(H,&2c6tN"{if1 a@Z( "݄#h4I-1*iܼOY_s ]ڭaA~G1 -]Ɩb(Cl z~W $l… ϟ?~zoК mK4kҕU"1q&D8ITinn= b2N!CGF^j$-0h ssBƁh4*TYޘhiJLttyHo eUa@YC 1 xܷO= F^T줬 /NUu*Q_&$@j`` ΙLo^jj۷n6HihhhM& )ʋ/J| t4\Gp,UUUI$=@III:'O?y+ B&&z ڰ#:6::l 0 Bш<i4WPvb(`nme⢐胔 &i^<^1j>-HH--)b !#j'!#"'Mmm-NxX*dA)$:btwŵ#C@@"F -H2D3=z g@=z3g@ [O`uV?g΄fum}Ř1af&fCC֔Ts,a޽O<%504XM>D޺y[r5%ePmmE>TXX8pPޡCO8ncȑ#k֬]{E1fLX ŋOMMݷwk)~}NF#-9{6,,͛裏0Qammr H?tpoC#+kI#=矮=t9V֓L!bqTtLGC#~o~hhXHȂyzy~駸877\]]'MHR_w5(((&&Ν;m |WSz?)rtTԝO]!"""-\A?'.[w۷ z䰊JlΟ_xw={7&)ZYYɵMzښH 0pԨ'MǏ}Z`hdLӣV{zx>|;._hcc`~vu}#--,ur)ag8q"Jq𠻻WQPMM+Wo% r+O&hhhA߾:p cS[g1%%!.=<|Ci333E"t"--׭,栁'Odkkr Ç(M\I}NXӄc]|iI&N|2_O\P8id]]A^W\qDb˗uuuc}/-9xXL&8]6nӧpP<ToetÑXZZtZOL "+ᕰl9nǎ˗-񱵵]d5'LbY/g+T){󦼢SW!TdTTTDFFXLiƿ%{|W.pT\=zJ(JJo ~=tqqSO%D"!$D E{BIeeGQm3 *={-Bl3AZ:xee%񌡤t(nuuҙ3g uV"szz7444.^$LLhb ܽ{w@ k" EYZXQ>nx7ӿ[f(KKKr꩚gtL6SWO_?y&V~Oܔs.ܦVazak޹ gtttz542&ȯ^T&gCq'EKHXrD222l/^,\ÇՖ .6To:p@QQvϞQQ>}{)>{+,*rWXٷz/l۶sÆff)qɒK.p8o9r# oݼ!B6ǰr\\z4<~4q:y_ޒOGH^xUYYYPP`0FtRߧ]^G"iӯ͝a|>ͭ\UYYYI˵]|N<|Ç111t:o &w7~HٔE nmċF]M>/SPVViӬ6F={뎏> 8hϿҙO܇kgk`ψΠLRvVo_cSЫ+.TUWO4^1gO|RH\XTp,!hุ&N`>{lAnn=bݸy3**:YFƍr}p{o-_bwf(ҨzzS}sNڙ_! p D"Qێ,׬]wᲲ.]DG~ڻgU+W7!k׮_vb~7OBv .]68(d6):LLLV\1hР `kk !dkkkia:|Ĉýtԩӷo޾bJ&yf>rg"P=Us>|ò){FUVVٳW O'%M4iIIIs†!C 0CWi#,/oa!!{=BȨG>Ӽ\m lsrsB_ʩ6GOH@3XdIFѣGEKߙ?=A7m$!Oe3K?sssG޿DМϞeD=!N._!TRR:*zvDĮߚ\^YY%WcL&г&?|F$ 444f2S<-`nnxߧO3㲓#^rEPe˖}]ZVpOOkjj""#-\8p֭ O<%ү_!GNXLo/;w>˽|rfffp)ֻ :y9@-|lr&5w*m>{֬_bqaaѱk8mmmPsN?~w߭ E~~};k׮8hر"D̛nEEE? j)##;<OIIIg;q @ϟLtT^|p6ҥKtJ֎8i~\ngqrrrrrNNpoSPll朹s骕+:e֬];q⤚ ŋ͘1]I""#&YSSݟWˉC3y1={e 3g=z 3=z g@|z\r3Jh gz/X> 7K0ƍ񟯠u qf ##":Ypb++cn޴iɒ%ڹ~˱661;n|qq1Kee)S :uZz(Xȿ_@swbz*ccsgϵ`K?p7~D+ksbIPxLb4[ǚkz,|3Bp~;/55Ο=z 1={^WWGtٲ{v޾5dQG\eeeXԂFڵkNdD֋+V,QQQ}6wwUV 4۷jaɁ |uzqɹ'NoZm[yqmԩ֭s.6&XX헟̉=ԜiX|lwl}aJJJ֭T@i0 #C$33H8t'ҝVȑ#'a4mYAAAo6iãѾY1,$$8$$*X|,3y> sD&V%00pɏ?PTccc:IT+@oX^zعCv1meeE&҈_P`kckmmxVVe~}}=jqFhjjY[[KܜVz!/+3Bff>:ٳ/_3wnLL ^{effΜ54h`TtLP( Yӧ>zfGҤV ] !xrQP!Q\.…7r\`wnn=ߏNAO"zTSS#5ce˗w2rlbMМ*..NKk`=:P`=:6g@ 3g@z O aX"A3D)*X_кY$z#b& 554mLi4X_ĺHJKJݻkfi4eo#^f_rB!:X`lKY,̣;-sCCÃz~n3ͶOMMma]v%'' \\\wU+|Y덨-/۾֓<<<Ν;r~ީλܷϲD'M+))iaٔnݺ5J TWWGEE͚5KYYcx 6O sN Ks+ssS)d555K 9W^u_zwEnqchJJNN)R| ##U\fں:߾~KSOW[W':u Ǝ  F~>n9ҟ99_> gc]~OL<9klӧO O'N|=޽|vX俬=&^űɔq"ƍmeX;u My:1aacT俬;gԆ(4رc===---[@;nsdBx4;:ϭ,X:ϟ/`۱}p>}/}*Xn]aL&k)Oxv͵+\J I\`+I$---A)_GWJYkk3I$2X_@nN NOME3> RorprԢR`wu|bUUY%SUVTH> Brpt`X*t:X`r>bV/;a'~-bq I$*MIN~ z[*hcGB1_l=ց/C=z @=z g@=3g@ ys@~ .N/((4_~ic^| j9++??`.l/$7ǢDpe+A٬ kE8oooyӦ%K[kjkgΜelb䜘xH{)znnffH$Mݤ`ٔUV7Z嬰pmK~j B(3yG$uuuc}/-9xHPe0 GK~|X,~ <~UPd=X^zعCfdTTTDFFXLiƧ洱Ro4O!S* mP]vEYf~;w.ިO ߺ:|֬&&</q*a&)+)9svȐ[mmҚ0~[goo-xJJJSL^x1B޽;_ HJJ rtpPbɃhˍa J~zIJ$Xs.C@} go;;L&x/~u&(,, UVV3f@ j7uTSSS:nnnKhaOOO߹s~uuLww[ܹS"] GÇk֬ ۰a)"hɒ% .^^^V 577?7oތ5JMMرcDFFr3g 4K.;vXz:z:::!!!^"8`cc3j("0Bh455tٳg%IM ,tѣG>}:x`Glڶmۂ x<^llԩS߼y ʺ~'6o\[[+_.]ln3<<͛OuVmm!C+ԩS.]0B 3t:}֭۷o700 Zn]QQBbǎق <<<BcƌQRR{.OHHؼyS.]6lW:9998TGݼyݻ?~|r4`CCCI&}4g7n\~~}ݏ9蘞!hu!ul _QQ㸛ح[7%%% 1 #.g!33 [[[ooo;;'۷!r;x?L>Dbq5T*׷oロ~iӦ"xתPD"nhRDBHH&bD"&)H$f166B=|ʪ1 E "L޹D"HxɫW^x1666&&ƍMg݇C&MMM+**lllT3gq$3*8nmmωļk>>>[nŲ|>NxmeeE&o߾-P|2qjժ7n޼y0vxf.+M81,,щDBgϞ;w555Mw d ?}C) b2\wH+W*d$.~ ajjJٴiBo\L&sذa}`m/vp~޽ׯOCC… "ca6 0 gg͛7gg`XL< 6?1̞={w-U#8[l=;Ξds*d^ryݺus_hl!eŋB_>G!"?g֭_uu5ٹsi9)f6׃b:'†GO) *k!Z"U:c?6dzyk Hsh@[N~s\(2g98zV6zVdruu , `-L =-$TGWq_$DD,t;EzKKKNgH .%۷454*#yGUe%ϝM!:8:߿WYQ!iV fT*&QhFFFěƊ #4%:Қ"M14#ʇ3g@z v)IDZIENDB`