07070100000000000081A400000000000000000000000166413409000002AC000000000000000000000000000000000000001C00000000gnome-maps-46.11/.gitignore*.orig *~ *#* ABOUT-NLS Makefile Makefile.in aclocal.m4 autom4te.cache/ libtool config/ config.log config.status configure install-sh missing .deps/ .flatpak-builder/ .libs/ *.o *.lo *.la .buildconfig data/org.gnome.Maps.appdata.xml data/org.gnome.Maps.desktop data/org.gnome.Maps.desktop.in data/org.gnome.Maps.gschema.xml.in data/org.gnome.Maps.gschema.valid m4/*.m4 po/.intltool-merge-cache po/Makefile.in.in po/Makevars.template po/POTFILES po/Rules-quot po/stamp-it po/*.sed po/*.gmo po/*.sin po/*.header src/gnome-maps src/*.gresource src/*.gresource.xml src/org.gnome.Maps.service /lib/GnomeMaps-1.0.gir /lib/GnomeMaps-1.0.typelib /lib/maps-enum-types.[ch] build/ dist/07070100000001000081A40000000000000000000000016641340900000467000000000000000000000000000000000000002000000000gnome-maps-46.11/.gitlab-ci.ymlinclude: 'https://gitlab.gnome.org/GNOME/citemplates/raw/master/flatpak/flatpak_ci_initiative.yml' .vars-devel: variables: # Replace with your manifest path MANIFEST_PATH: "org.gnome.Maps.json" RUNTIME_REPO: "https://nightly.gnome.org/gnome-nightly.flatpakrepo" # Replace with your application name, as written in the manifest FLATPAK_MODULE: "gnome-maps" APP_ID: "org.gnome.Maps.Devel" BUNDLE: "gnome-maps-git.flatpak" # Build Flatpak for x86_64 flatpak@x86_64: extends: ['.flatpak@x86_64', '.vars-devel'] # Build Flatpak for aarch64 flatpak@aarch64: extends: ['.flatpak@aarch64', '.vars-devel'] nightly@x86_64: extends: '.publish_nightly' # assuming your job in named 'flatpak@x86_64' needs: ['flatpak@x86_64'] nightly@aarch64: extends: '.publish_nightly' # assuming your job in named 'flatpak@aarch64' needs: ['flatpak@aarch64'] preview: image: fedora:latest script: - sudo dnf install -y gjs - ./scripts/exportMapStyle.js artifacts: name: 'Map style preview' when: always paths: - dist expire_in: 90 days 07070100000002000081A4000000000000000000000001664134090000169A000000000000000000000000000000000000001B00000000gnome-maps-46.11/.jshintrc{ "maxerr" : 50, // {int} Maximum error before stopping // Enforcing "bitwise" : false, // true: Prohibit bitwise operators (&, |, ^, etc.) "camelcase" : false, // true: Identifiers must be in camelCase "curly" : false, // true: Require {} for every new block or scope "eqeqeq" : true, // true: Require triple equals (===) for comparison "forin" : false, // true: Require filtering for..in loops with obj.hasOwnProperty() "immed" : false, // true: Require immediate invocations to be wrapped in parens e.g. `(function () { } ());` "indent" : 4, // {int} Number of spaces to use for indentation "latedef" : "nofunc", // true: Require variables/functions to be defined before being used "newcap" : true, // true: Require capitalization of all constructor functions e.g. `new F()` "noarg" : true, // true: Prohibit use of `arguments.caller` and `arguments.callee` "noempty" : true, // true: Prohibit use of empty blocks "nonew" : false, // true: Prohibit use of constructors for side-effects (without assignment) "plusplus" : false, // true: Prohibit use of `++` & `--` "quotmark" : false, // Quotation mark consistency: // false : do nothing (default) // true : ensure whatever is used is consistent // "single" : require single quotes // "double" : require double quotes "undef" : true, // true: Require all non-global variables to be declared (prevents global leaks) "unused" : false, // true: Require all defined variables be used "strict" : false, // true: Requires all functions run in ES5 Strict Mode "trailing" : true, // true: Prohibit trailing whitespaces "maxparams" : false, // {int} Max number of formal params allowed per function "maxdepth" : false, // {int} Max depth of nested blocks (within functions) "maxstatements" : false, // {int} Max number statements per function "maxcomplexity" : false, // {int} Max cyclomatic complexity per function "maxlen" : false, // {int} Max number of characters per line // Relaxing "asi" : false, // true: Tolerate Automatic Semicolon Insertion (no semicolons) "boss" : false, // true: Tolerate assignments where comparisons would be expected "debug" : false, // true: Allow debugger statements e.g. browser breakpoints. "eqnull" : false, // true: Tolerate use of `== null` "esnext" : true, // true: Allow ES.next (ES6) syntax (ex: `const`) "moz" : true, // true: Allow Mozilla specific syntax (extends and overrides esnext features) // (ex: `for each`, multiple try/catch, function expression…) "evil" : false, // true: Tolerate use of `eval` and `new Function()` "expr" : false, // true: Tolerate `ExpressionStatement` as Programs "funcscope" : false, // true: Tolerate defining variables inside control statements" "globalstrict" : false, // true: Allow global "use strict" (also enables 'strict') "iterator" : false, // true: Tolerate using the `__iterator__` property "lastsemic" : false, // true: Tolerate omitting a semicolon for the last statement of a 1-line block "laxbreak" : true, // true: Tolerate possibly unsafe line breakings "laxcomma" : false, // true: Tolerate comma-first style coding "loopfunc" : false, // true: Tolerate functions being defined in loops "multistr" : true, // true: Tolerate multi-line strings "proto" : false, // true: Tolerate using the `__proto__` property "scripturl" : false, // true: Tolerate script-targeted URLs "smarttabs" : false, // true: Tolerate mixed tabs/spaces when used for alignment "shadow" : false, // true: Allows re-define variables later in code e.g. `var x=1; x=2;` "sub" : false, // true: Tolerate using `[]` notation when it can still be expressed in dot notation "supernew" : false, // true: Tolerate `new function () { ... };` and `new Object;` "validthis" : false, // true: Tolerate using this in a non-constructor function // Environments "browser" : false, // Web Browser (window, document, etc) "couch" : false, // CouchDB "devel" : false, // Development/debugging (alert, confirm, etc) "dojo" : false, // Dojo Toolkit "jquery" : false, // jQuery "mootools" : false, // MooTools "node" : false, // Node.js "nonstandard" : false, // Widely adopted globals (escape, unescape, etc) "prototypejs" : false, // Prototype and Scriptaculous "rhino" : false, // Rhino "worker" : false, // Web Workers "wsh" : false, // Windows Scripting Host "yui" : false, // Yahoo User Interface // Legacy "nomen" : false, // true: Prohibit dangling `_` in variables "onevar" : false, // true: Allow only one `var` statement per function "passfail" : false, // true: Stop on first error "white" : false, // true: Check against strict whitespace and indentation rules // Custom Globals "predef" : [ "log", "logError", "print", "printerr", "imports", "ARGV", "pkg", "_", "C_", "N_" ] } 07070100000003000081A4000000000000000000000001664134090000AAF1000000000000000000000000000000000000001900000000gnome-maps-46.11/COPYINGThe source code of Gnome Maps is licensed to you under the GNU General Public License version 2, or (at your option) any later version. ======================================================================== GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. ================================================================================ GNU LIBRARY GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1991 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the library GPL. It is numbered 2 because it goes with version 2 of the ordinary GPL.] 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 Library General Public License, applies to some specially designated Free Software Foundation software, and to any other libraries whose authors decide to use it. You can use it for your libraries, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the 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 a program 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. Our method of protecting your rights has two steps: (1) copyright the library, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the library. Also, for each distributor's protection, we want to make certain that everyone understands that there is no warranty for this free library. If the library is modified by someone else and passed on, we want its recipients to know that what they have is not the original version, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that companies distributing free software will individually obtain patent licenses, thus in effect transforming the program into proprietary software. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License, which was designed for utility programs. This license, the GNU Library General Public License, applies to certain designated libraries. This license is quite different from the ordinary one; be sure to read it in full, and don't assume that anything in it is the same as in the ordinary license. The reason we have a separate public license for some libraries is that they blur the distinction we usually make between modifying or adding to a program and simply using it. Linking a program with a library, without changing the library, is in some sense simply using the library, and is analogous to running a utility program or application program. However, in a textual and legal sense, the linked executable is a combined work, a derivative of the original library, and the ordinary General Public License treats it as such. Because of this blurred distinction, using the ordinary General Public License for libraries did not effectively promote software sharing, because most developers did not use the libraries. We concluded that weaker conditions might promote sharing better. However, unrestricted linking of non-free programs would deprive the users of those programs of all benefit from the free status of the libraries themselves. This Library General Public License is intended to permit developers of non-free programs to use free libraries, while preserving your freedom as a user of such programs to change the free libraries that are incorporated in them. (We have not seen how to achieve this as regards changes in header files, but we have achieved it as regards changes in the actual functions of the Library.) The hope is that this will lead to faster development of free libraries. 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, while the latter only works together with the library. Note that it is possible for a library to be covered by the ordinary General Public License rather than by this special one. GNU LIBRARY GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Library 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 compile 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) 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. c) 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. d) 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 source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. 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 to 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 Library 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 Library 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 Library General Public License for more details. You should have received a copy of the GNU Library 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! 07070100000004000081A40000000000000000000000016641340900020A36000000000000000000000000000000000000001600000000gnome-maps-46.11/NEWS46.11 - May 12, 2024 ========================= Changes since 46.10 - Fix crash on startup when unnamed favorites where previously saved - Don't show OSM edit dialog if the user previously reclined signing in - Don't show stored routes in the search results when searching for destinations Added/updated/fixed translations - Hindi - Brazilian Portuguese - Portuguese - Greek All contributors to this release Efstathios Iosifidis Hugo Carvalho Juliano de Souza Camargo Marcus Lundblad Scrambled 777 46.10 - Apr 20, 2024 ========================= Changes since 46.0 - Due to a typo in the version number in the metadata for 46.0 (being 46.9) make this release version number 46.10 - Fix current location marker not moving when updating location 46.0 - Mar 16, 2024 ========================= Changes since 46.rc - Fix routes covering user location marker - Update project link in DOAP file Added/updated/fixed translations - Korean - Kabyle - Polish - Occitan - Latvian - Italian - Danish - Russian - Swedish - Hungarian All contributors to this release Alan Mortensen Alexandre Franke Anders Jonsson Artur S0 Athmane MOKRAOUI Balázs Úr James Westman Jeeyong Um Marcus Lundblad Milo Casagrande Piotr Drąg Quentin PAGÈS Rūdolfs Mazurs Valentin Blot <14005-vblot@users.noreply.gitlab.gnome.org> 46.rc - Mar 2, 2024 ========================= Changes since 45.beta - Lots of updates to the map style - Fix parsing OSM object URLs with trailing slashes Added/updated/fixed translations - German - Latvian - British English - Lithuanian - Chinese (China) - Spanish - Turkish - Kazakh - French - Finnish - Slovenian - Dutch - Basque - Czech - Hebrew - Indonesian - Persian - Ukranian - Belarusian - Georgian - Galician - Friulian All contributors to this release Alexandre Franke Andi Chandler Asier Sarasua Garmendia Aurimas Černius Automeris naranja <104251-automerisnaranja@users.noreply.gitlab.gnome.org> Baurzhan Muftakhidinov Boyuan Yang <073plan@gmail.com> Bruce Cowan Christian Kirbach Danial Behzadi Daniel Mustieles Daniel Rusek Ekaterine Papava Fabio Tomat Fran Dieguez James Westman Jiri Grönroos Julián Villodre Kukuh Syafaat Marcus Lundblad Matej Urbančič Nathan Follens Rūdolfs Mazurs Sabri Ünal Sophie Herold Vasil Pupkin <3abac@3a.by> Yaron Shahrabani Yuri Chornoivan 46.beta - Feb 10, 2024 ========================= Changes since 45.alpha - The experimental vector map view now uses the new GNOME map style - Add highway shield renderer using definitions from OSM-Americana to render localized shields in some areas when using the experimental map view - Show place bubbles directly when clicking symbols and labels in the experimental map view (removing the need to use the "What's here?" context menu) - Refresh icons in the POI browser UI to use new icons matching the new map style - Fixing issues with the place bar in narrow "mobile mode" - Modernize map marker icon - Show shapelayer name and place description in place bubbles for marked places in shape layers - Use the system's clock format (12h/24h) when sandboxed (through portal) - Refreshed UI for favorites with an empty view, and the ability to remove favorites directly from the menu - Internal: refactored the place store to make it easier to show additional information for places Added/updated/fixed translations - Czech - Russian - Turkish - Galician - Italian - Persian All contributors to this release Artur S0 Danial Behzadi Daniel Rusek Fran Dieguez Jakub Steiner James Westman Marcus Lundblad Sabri Ünal Vittorio Monti 46.alpha - Jan 6, 2024 ========================= Changes since 45.0 - Redesigned zoom controls inspired by the Loupe image viewer - Support for OpenTripPlanner v2 GraphQL for public transit routing - Redeigned OSM account dialog, using Adwaita widgets - Simplified/refactored more flexible storage format for the place store cache - Fixed a bug preventing the POI browser showing in some cases Added/updated/fixed translations - Friulian - Russian - Turkish - Catalan - Romanian - French - Brazilian Portuguese - British English - Esperanto All contributors to this release Artur S0 Bruce Cowan Dark Dragon Emin Tufan Çetin Fabio Tomat Felipe Kinoshita Florentina Mușat Guillaume Bernard James Westman Jordi Mas i Hernandez Kristjan SCHMIDT Marcus Lundblad Rafael Fontenelle Sabri Ünal 45.0 - Sep 16, 2023 ========================= Changes since 45.rc - Hide the experimental vector map toggle if libshumate is compiled without vector support - Fix POI browser category lables showing translated strings Added/updated/fixed translations - Swedish - Slovenian - Korean - Hungarian - Danish - Lithuanian - Hebrew - Czech All contributors to the release Alan Mortensen Anders Jonsson Aurimas Černius Balázs Úr Daniel Rusek James Westman Jeeyong Um Marcus Lundblad Matej Urbančič Yosef Or Boczko 45.rc - Sep 1, 2023 ========================= Changes since 45.rc - Enabled experimental vector-based map - Update OSM edit POI definition - Increase sidebar width to fit longer translated strings Added/updated/fixed translations - Russian - Chinese (China) - Punjabi - German - Greek - Kazakh - Spanish - Finnish - Czech - Portuguese - Belarusian - Polish - Persian - Galician - Turkish - Ukrainian - Indonesian All contributors to this release Amn Alam Artur S0 Asier Sarasua Garmendia Baurzhan Muftakhidinov Boyuan Yang <073plan@gmail.com> Danial Behzadi Daniel Mustieles Daniel Rusek Efstathios Iosifidis Fran Dieguez Harry Bond Hugo Carvalho James Westman Jiri Grönroos Kukuh Syafaat Marcus Lundblad Michael Evans Nathan Follens Philipp Kiemle Piotr Drąg RedAuburn Sabri Ünal Vasil Pupkin <3abac@3a.by> Yuri Chornoivan 45.beta - Aug 4, 2023 ========================= Changes since 45.alpha - Use Adw.OverlaySplitView for the routing sidebar. This enables better narrow screen size adaptiveness and using touch gestures to open the sidebar - Always show phone numbers as links when sandboxed (e.g. Flatpak) - Re-enable animations when going to new places and showing routes - Use toasts for the OSM zoom in and location service dialogs - Restrict to using only supported languages for the GraphHopper geocoding (search) service 45.alpha - Jul 1, 2023 ========================= Changes since 44.0 - Implemented POI explore UI - Move zoom control buttons (back) to overlay - Add rotation button with ability to reset rotation - Make use of Adw.Toast for showing simple messages - Update screenshots - Add support for auth header in OpenTripPlanner plugin Added/updated/fixed translations - Brazilian Portuguese - Icelandic - Slovak - Italian - Turkish - Friulian - Bulgarian - Russian - Dutch - Chinese (China) - Persian - Ukrainian - Indonesian - Georgian - Indonesian - Slovenian All contributors to this release Aleksandr Melman Alexander Shopov Andika Triwidada Boyuan Yang <073plan@gmail.com> Danial Behzadi Dušan Kazik Ekaterine Papava Fabio Tomat Felipe Kinoshita Gianvito Cavasoli Jakub Steiner kramo Leônidas Araújo Marcus Lundblad Martin Nathan Follens Sabri Ünal Sam Hewitt Sveinn í Felli Szymon Kłos Yuri Chornoivan 44.0 - Mar 18, 2023 ========================= Changes since 44.rc - Disable the go-to animation to avoid getting throttled by the tile server Added/updated/fixed translations - British English - Persian - French - Catalan - Friulian - Greek - Swedish - Polish - Bulgarian - Korean - Russian All contributors to this release Aleksandr Melman Alexander Shopov Anders Jonsson Bruce Cowan Efstathios Iosifidis Fabio Tomat Irénée THIRION Jeeyong Um Jordi Mas i Hernandez Marcus Lundblad MohammadSaleh Kamyab Piotr Drąg 44.rc - Mar 4, 2023 ========================= Changes since 44.beta - Updated POI definitions for OpenStreetMap editing - Center text in the location service dialog - Tweak header captilization and ellipsation for tooltips and menu items - Use proper suggestions style for search result lists - Add nightly builds for AArch64 Added/updated/fixed translations - Czech - Finnish - Slovenian - Hungarian - Danish - Portuguese - Friulian - Galician - Turkish - Spanish - Basque - German - Belarusian - Indonesian - Lithuanian - Ukrainian - Hebrew - Georgian - Serbian All contributors to this release Alan Mortensen Andika Triwidada Asier Sarasua Garmendia Aurimas Černius Automeris naranja <104251-automerisnaranja@users.noreply.gitlab.gnome.org> Balázs Úr Christopher Davis Daniel Ekaterine Papava Fabio Tomat Felipe Kinoshita Fran Dieguez Hugo Carvalho Jiri Grönroos Julian Sparber Jürgen Benvenuti Kukuh Syafaat Marcus Lundblad Marek Černocký Matej Urbančič Sabri Ünal Vasil Pupkin <3abac@3a.by> Yaron Shahrabani Yosef Or Boczko Yuri Chornoivan Марко Костић 44.beta - Feb 1, 2023 ========================= Changes since 44.alpha - Prevent the scale to cover the sidebar when the window is narrow - Fix keyboard navigation of search results (regression from the GTK 4 port) - Style fixes of the sidebar border - Make the "export as image" dialog work on phones Added/updated/fixed translations - Indonesian - Russian - German - Greek - Ukrainian - Portuguese - Belarussian - Hebrew - Georgian - Turkish - Basque All contributors to this release Adrien Plazas Aleksandr Melman Asier Sarasua Garmendia Efstathios Iosifidis Ekaterine Papava Emin Tufan Çetin Fabio Tomat Hugo Carvalho Jürgen Benvenuti Kukuh Syafaat Marcus Lundblad Sabri Ünal Vasil Pupkin <3abac@3a.by> Yosef Or Boczko Yuri Chornoivan 44.alpha - Jan 6, 2023 ========================= Changes since 43.0 - Fix excessive margins in place bubbles - Fix adaptive mode detection when maximized - Fix broken long-press to bring up the context menu on touch screens - Fixing various issues left after the GTK 4 port - Fix setting adaptive narrow (phone) mode on first launch on portrait displays - Fix dragging-and-dropping route entris in the sidebar - Fix opening shapelayer files when dragged-and-dropped onto the main window - Fix selecting turnpoint instructions showing the position of the instruction on the map - Fix local tiles (using the --local command-line option) - Fix location service dialog - Fix send-to dialog - Fix user location accuracy marker positioning - Implement support for getting thumbnails and Wikipedia article extracts from Wikidata Added/updated/fixed translations - Ukrainian - Russian - Turkish - Belarussian - Hungarian - Hebrew - Greek - Italian - Icelandic - Slovak - Dutch - Friulian - Nepali - Kazakh All contributors to this release Aleksandr Melman Amit Tripathi Balázs Úr Baurzhan Muftakhidinov Dušan Kazik Efstathios Iosifidis Fabio Tomat Gianvito Cavasoli James Westman Marcus Lundblad Nathan Follens Pablo Correa Gómez Pawan Chitrakar Sabri Ünal Shivam Madlani Sveinn í Felli Taisei Washington Valentin Blot <14005-vblot@users.noreply.gitlab.gnome.org> Vasil Pupkin <3abac@3a.by> Yosef Or Boczko Yuri Chornoivan 43.0 - Sep 17, 2022 ========================= Changes since 43.rc - Remove build-dependency on GTK3 - Don't install tests gresource Added/updated/fixed translations - French - Bulgarian - Catalan - Lithuanian - Hebrew - Slovenian - Latvian - Georgian - Serbian - Korean - Brazilian Portuguese - Galician - German - Chinese (China) All contributors to this release Alexander Shopov Aurimas Černius Boyuan Yang <073plan@gmail.com> Charles Monzat Fran Dieguez Jan Tojnar Jeeyong Um Jeremy Bicha Jordi Mas Jürgen Benvenuti Leônidas Araújo Marcus Lundblad Matej Urbančič Rūdolfs Mazurs Yosef Or Boczko Zurab Kargareteli Марко Костић 43.rc - Sep 3, 2022 ========================= Changes since 43.beta - Use Adwaita about dialog - Various UI cleanups, tweaks, and fixes - Switch OSM edit authorization to use OAuth 2 - Update POI definitions for OSM editing Added/updated/fixed translations - Danish - Turkish - Indonesian - Catalan - Basque - Hungarian - Swedish - Finnish - Croatian - Czech - Spanish - Russian - Portuguese - Polish - Ukrainian - Occitan - Persian - Abkhazian - Georgian - Galician All contributors to this release Alan Mortensen Aleksandr Melman Anders Jonsson Asier Sarasua Garmendia Balázs Úr Christopher Davis Danial Behzadi Daniel Mustieles Emin Tufan Çetin Fran Dieguez Goran Vidović Hugo Carvalho Jiri Grönroos Jordi Mas Kukuh Syafaat Marcus Lundblad Marek Černocký Marek Černocký Nart Tlisha Piotr Drąg Quentin PAGÈS Sabri Ünal Yuri Chornoivan Zurab Kargareteli 43.beta - Aug 20, 2022 ========================= Changes since 43.alpha - Port to GTK 4 and libshumate - Port to use libsoup 3 Added/updated/fixed translations - Croatian - Ukrainian - Swedish - Persian - Finnish - Basque - Spanish - French - Abkhazian - Georgian - Turkish - Hebrew - Indonesian All contributors to this release Anders Jonsson Asier Sarasua Garmendia Bartłomiej Piotrowski Claude Paroz Danial Behzadi Daniel Mustieles Emin Tufan Çetin Goran Vidović Jiri Grönroos Kukuh Syafaat Marcus Lundblad Nart Tlisha Piotr Drąg Yosef Or Boczko Yuri Chornoivan Zurab Kargareteli 43.alpha - Jul 1, 2022 ========================= Changes since 42.0 - Remove network check (always assume network is available) - Remove check-in support (as no GOA backends support this anymore) - Use external browser to authorize OSM account for editing - Add checkbox to select the visibility of the scale - Fix setting the correct month in the public transit time settings - Migrate code to use ES 6 modules - Tune location bias scale parameter for the Photon geocoder - Fix a crash on exit - Add icons for keep left/right route instuctions - Remove support for contact address lookup (removes dependency on libfolks, possible this will be re-introduces at some point using e-d-s directly) - Remove support for dark street and hybrid aerial tiles, as we don't have access to these anymore and a future implementation of dark tiles will likely use vector tiles with a stylesheet - Add specific icon for tourist rail in public transit itineraries - Update the Resrobot public transit plugin to API v2.1 Added/updated/fixed translations - Brazilian Portuguese - Persian - Portuguese - Ukrainian - Russian - Italian - Friulian - German - Georgian - Hebrew - Nepali - Spanish - Galician - Swedish - Icelandic - Slovak - Hungarian - Dutch - Latvian All contributors to this release Aleksandr Melman Anders Jonsson Andreas Nilsson Balázs Úr Danial Behzadi Daniel Mustieles Dušan Kazik Fabio Tomat Fran Dieguez Gianvito Cavasoli Hugo Carvalho Jakub Steiner Jürgen Benvenuti Marcus Lundblad Nathan Follens Pawan Chitrakar Piotr Drąg Rūdolfs Mazurs Sten Smoller Sveinn í Felli Yosef Or Boczko Yuri Chornoivan Zurab Kargareteli 42.0 - Mar 19, 2022 ========================= Added/updated/fixed translations - Slovenian - Norwegian Bokmål - Russian - Serbian - French - Spanish - Kazakh - German - Bulgarian - Korean - Hungarian - Danish - Hebrew - Galician - Lithuanian - Persian - Polish - Chinese (China) All contributors to this release Aleksandr Melman Alexander Shopov Ask Hjorth Larsen Aurimas Černius Balázs Úr Baurzhan Muftakhidinov Charles Monzat Danial Behzadi Daniel Mustieles Fran Dieguez Jeeyong Um Kjartan Maraas Luming Zh Marcus Lundblad Matej Urbančič Philipp Kiemle Piotr Drąg Yosef Or Boczko Марко Костић 42.rc - Mar 5, 2022 ========================= Changes since 42.beta - Save visibility of the scale in gsettings so it's remembered between runs - Update OSM POI definitions for OSM editing - Correctly set the initially selected date in the calendar widget for public transit routing, so that the date is always set to today when first selecting a date, even if Maps was started on an earlier day - Fix some incositencies when showing times for public transit itineraries - Update appdata screenshots - Use tabular numbers for time labels in the public transit itinerary views to keep things tidily lined up vertically Added/updated/fixed translations - Brazilian Portuguese - Catalan - Basque - Turkish - Finnish - Czech - Portuguese - Croatian - Ukrainian - Indonesian - Swedish - German - Polish - Finnish - Turkish - French - Lithuanian All contributors to this release Anders Jonsson Asier Sarasua Garmendia Aurimas Černius Claude Paroz Emin Tufan Çetin Enrico Nicoletto Goran Vidović Hugo Carvalho Jiri Grönroos Jordi Mas Kukuh Syafaat Marcus Lundblad Marek Černocký Piotr Drąg Sophie Herold Tim Sabsch Yuri Chornoivan 42.beta - Feb 12, 2022 ========================= Changes since 42.alpha - Fix build with Meson 0.60+ - Update required libhandy version - Use the location portal when sandboxed - Only use location bias when searching on high zoom levels, to work around problems with finding some locations (such as cities) with the Photon search API - Fix shortcuts overlay for development builds - Support alternative OpenStreetMap location URLs format in the search bar Added/updated/fixed translations - German - Brazilian Portuguese - Slovenian - Galician - Italian - Occitan - Catalan - Russian - Czech - Chinese (China) All contributors to this release Aleksandr Melman Bilal Elmoussaoui Boyuan Yang <073plan@gmail.com> David King Fran Dieguez Gianvito Cavasoli Jordi Mas i Hernandez Leônidas Araújo Marcus Lundblad Marek Černocký Matej Urbančič Philipp Kiemle Quentin PAGÈS 42.alpha - Jan 8, 2022 ========================= Changes since 41.0 - Add more fine-tuned initial zoom levels for more place types - Add support for maps: URIs, DBus action, and command line option to initiate a search - Show icons for u-turns in turn-by-turn routing - Add dual-installation support (with devel icon for nightly) - Implement support for the new "prefer dark style" setting - Improvements to appdata metadata Added/updated/fixed translations - Hebrew - Basque - Indonesian - Icelandic - Spanish - Occitan - Persian - Portuguese - Croatian - Ukrainian - Friulian - Latvian - Slovak - Bulgarian - Vietnamese - Serbian - Turkish All contributors to this release Alexander Shopov Asier Sarasua Garmendia Danial Behzadi Daniel Mustieles Dušan Kazik Emin Tufan Çetin Fabio Tomat Goran Vidović Hugo Carvalho Kukuh Syafaat Marcus Lundblad Ngọc Quân Trần Piotr Drąg Quentin PAGÈS Rūdolfs Mazurs Sveinn í Felli Yaron Shahrabani Yosef Or Boczko Yuri Chornoivan Мирослав Николић 41.0 - Sep 18, 2021 ========================= Changes since 41.rc - State hardware support in appdata Added/updated/fixed translations - Danish - Polish - Dutch - Hungarian - French - Korean - Croatian All contributors to this release Adrien Plazas Alan Mortensen Balázs Meskó Goran Vidović Guillaume Bernard Jeeyong Um Marcus Lundblad Nathan Follens Piotr Drąg 41.rc - Sep 04, 2021 ========================= Changes since 41.beta - Updated OSM POI types for editing - Refine usage of shopping cart icon in search result to be used only for supermarket-like places - Updated screenshots to reflect the switch to osm.org tiles Added/updated/fixed translations - Chinese (China) - Greek - Romanian - Lithuanian - Persian - Catalan - Slovenian - Kazakh - Finnish - Galician - Indonesian - Brazilian Portuguese - Spanish - Czech - German - Ukrainian - Swedish All contributors to this release Abderrahim Kitouni Alexey Rubtsov Anders Jonsson Andre Klapper Asier Sarasua Garmendia Aurimas Černius Baurzhan Muftakhidinov Boyuan Yang <073plan@gmail.com> Danial Behzadi Daniel Mustieles Daniel Șerbănescu Dušan Kazik Dz Chen Efstathios Iosifidis Enrico Nicoletto Fabio Tomat Florentina Mușat Fran Dieguez harryjrk Hugo Carvalho Jiri Grönroos Jordi Mas Kukuh Syafaat Luna Jernberg Marcus Lundblad Marek Černocký Matej Urbančič Nathan Follens Philipp Kiemle Quentin PAGÈS Rafael Fontenelle Yaron Shahrabani Yuri Chornoivan Zander Brown 41.beta - Aug 13, 2021 ========================= Changes since 41.alpha - Build librest for development Flatpaks - Build ical from the 3.0 branch for development Flakpaks - Update donation and wiki web links in appdata Added/updated/fixed translations - Czech - German - Catalan - Friulian - Brazilian Portuguese All contributors to this release Fabio Tomat Jordi Mas Marcus Lundblad Marek Černocký Philipp Kiemle Rafael Fontenelle 41.alpha - Jul 9, 2021 ========================= Changes since 40.0 - Fix regression when signing in for OSM editing - Remove Facebook check-in support, as it's not been working for a while - Improve formatting of population and altidutes in place bubbles - Show take-away information for restaurants (and similar places) - Show e-mail address when available for places - Use more detailed (and GNOME-style) icons in search results - Use different icons for marking a place a favorie and for the favorite menu button in the header bar Added/updated/fixed translations - Indonesian - Romanian - Chinese (China) - Slovenian - Russian - Catalan - Portuguese - Hebrew - Spanish - Slovak - Occitan - Ukrainian - Dutch - British English All contributors to this release Abderrahim Kitouni Alexey Rubtsov Andre Klapper Boyuan Yang <073plan@gmail.com> Daniel Mustieles Dušan Kazik Dz Chen Florentina Mușat harryjrk Hugo Carvalho Jordi Mas Kukuh Syafaat Marcus Lundblad Matej Urbančič Nathan Follens Quentin PAGÈS Yaron Shahrabani Yuri Chornoivan Zander Brown 40.0 - Mar 20, 2021 ========================= Changes since 40.rc - Translation updates Added/updated/fixed translations - Italian - Polish - Norwegian Bokmål All contributors to this release Gianvito Cavasoli Kjartan Maraas Marcus Lundblad Piotr Drąg 40.rc - Mar 13, 2021 ========================= Changes since 40.beta - Updated appdata screenshots - Updated POI defintions for OSM editing Added/updated/fixed translations - Korean - Vietnamese - Persian - Friulian - Czech - Indonesian - French - Greek - Serbian - Kazakh - Lithuanian - German - Galician - Portuguese - Basque - Finnish - Brazilian Portuguese - Turkish - Catalan - Slovenian - Romanian - Spanish - Punjabi - Hungarian - Swedish - Ukrainian All contributors to this release Anders Jonsson Andre Klapper A S Alam Asier Sarasua Garmendia Aurimas Černius Balázs Meskó Baurzhan Muftakhidinov Charles Monzat Danial Behzadi Daniel Mustieles Daniel Șerbănescu Efstathios Iosifidis Fabio Tomat Fran Dieguez Hugo Carvalho Jeeyong Um Jiri Grönroos Jordi Mas Kukuh Syafaat Marcus Lundblad Marek Černocký Matej Urbančič Ngọc Quân Trần Philipp Kiemle Piotr Drąg Rafael Fontenelle Sabri Ünal Yuri Chornoivan Мирослав Николић 40.beta - Feb 12, 2021 ========================= Changes since 40.alpha - Made place bubble adaptive for use on phones - Show native name of places in addition to translated one - Avoid building some Flatpak dependencies which are now in the SDK - Fix a bug resulting in writing a broken last view position on exit in some circumstances - Fix a bug preventing wrapping around at the date line with dark tiles - Increased width of layers thumbnails to avoid empty margins in some translations - Update copyright year Added/updated/fixed translations - Swedish - German - Turkish - Slovenian - Portuguese - Spanish - Galician - Czech - Romanian - Ukrainian - Vietnamese - Norwegian Bokmål - Catalan All contributors to this release Daniel Mustieles Daniel Șerbănescu Emin Tufan Çetin Fran Dieguez Hugo Carvalho James Westman Jordi Mas Kjartan Maraas Luna Jernberg Marcus Lundblad Marek Černocký Matej Urbančič Ngọc Quân Trần Philipp Kiemle Yuri Chornoivan 40.alpha - Jan 9, 2021 ========================= Changes since 3.38.0 - Place bubbles redesign with larger thumbnails, tidy list view, and summaries from Wikipedia when available in OSM - More adapative UI fixes (for the no-network display) - Restore zooming to bounding boxes in search results (for administrative areas, buildings, etc.) - List compatible form factors in appdata - Don't display invalid URLs and also show error message for invalid URLs when editing POIs in OSM - Show localized name in user's language in place bubbles when available in OSM - Normalize tel: URIs to support the Calls app on Librem 5 and Pinephone (among others) - Improve handling of OpenStreetMap URLs (to address objects or coordinated) when pasting into the search bar - Load file contents of shape layer files using async operations (parsing is still done synchronous due to limitations with GJS) - Require GJS 1.66 now, to enable newer ES features like coalesce and the safe navigation operators Added/updated/fixed translations - Slovenian - Galician - Portuguese - Brazilian Portuguese - Catalan - German - Friulian - Romanian - Ukrainian - Basque - Lithuanian - Norwegian Bokmål - Spanish - Czech - Chinese (Taiwan) - Slovak - French - Latvian All contributors to this release Adrien Plazas Anubhav Tyagi Asier Sarasua Garmendia Aurimas Černius Bruno Lopes da Silva Charles Monzat Cheng-Chia Tseng Daniel Mustieles Dušan Kazik Fabio Tomat Florentina Mușat Fran Dieguez Henrique Roberto Gattermann Mittelstaedt Hugo Carvalho James Westman Jan-Michael Brummer Jonas Danielsson Jordi Mas Juliano de Souza Camargo Kjartan Maraas Marcus Lundblad Marek Černocký Matej Urbančič Philipp Kiemle Ravi Shankar Rūdolfs Mazurs Tim Sabsch Yuri Chornoivan 3.38.0 - Sep 12, 2020 ========================= Changes since 3.37.92 - Translation updates Added/updated/fixed translations - British English - Italian - Greek - Portuguese - Korean - Hugarian - Danish All contributors to this release Alan Mortensen Balázs Meskó Efstathios Iosifidis Gianvito Cavasoli Jeeyong Um Juliano Camargo Zander Brown 3.37.92 - Sep 5, 2020 ========================= Changes since 3.37.91 - Revert the adaptive UI for the routing sidebar, as there has been reports of crashes in some cases (related to Clutter and libhandy under Wayland) - Allow editing negative elevations on OSM objects (values below sea level) - Display population in place bubbles using localized number format - Update POI type definitions from iD for OSM editing Added/updated/fixed translations - German - Serbian - Slovak - French - Basque - Friulian - Chinese (China) - Lithuanian - Dutch - Swedish - Croatian - Slovenian - Catalan - Polish All contributors to this release Anders Jonsson Asier Sarasua Garmendia Aurimas Černius Boyuan Yang <073plan@gmail.com> Charles Monzat Dušan Kazik Fabio Tomat Goran Vidović Jordi Mas Marcus Lundblad Mario Blättermann Matej Urbančič Nathan Follens Piotr Drąg Марко Костић 3.37.91 - Aug 22, 2020 ========================= Changes since 3.37.90 - Add additional icons for walking directions for the OpenTripPlanner transit plugin - Make the "no network" display adaptive Added/updated/fixed translations - French - Persian - Brazilian Portuguese - Turkish - Finnish - Kazakh - Indonesian - Romanian - Galician - Spanish - Czech - Chinese (China) - Ukranian - British English - Basque All contributors to this release Alexandre Franke Asier Sarasua Garmendia Baurzhan Muftakhidinov Boyuan Yang <073plan@gmail.com> Bruce Cowan Danial Behzadi Daniel Mustieles Emin Tufan Çetin Florentina Mușat Fran Dieguez Jan-Michael Brummer Jiri Grönroos Kukuh Syafaat Lubos Marcus Lundblad Marek Černocký Rafael Fontenelle Yuri Chornoivan 3.37.90 - Aug 8, 2020 ========================= Changes since 3.37.3 - Improved keyboard navigation for routing entries - Adaptive UI for routing sidebar Added/updated/fixed translations - Turkish - Swedish - Tamil - Catalan - Romanian - Ukranian - Spanish - Brazilian Portuguese - Friulian - German All contributors to this release Anders Jonsson Daniel Mustieles Emin Tufan Çetin Fabio Tomat Florentina Mușat James Westman Jordan Petridis Jordi Mas Marcus Lundblad Rafael Fontenelle Tim Sabsch Yuri Chornoivan அருள்ராஜன் அ லை 3.37.3 - Jul 4, 2020 ========================= Changes since 3.37.2 - Implement night mode - Implement support for hybrid aerial map style - Add F10 keyboard shortcut for the main menu - Fix an issue where some search result gets the wrong level of name Added/updated/fixed translations - Chinese (China) - Catalan - Spanish - Kazakh - Lithuanian - Romanian - Ukranian - Turkish - Indonesian All contributors to this release Aurimas Černius Baurzhan Muftakhidinov Boyuan Yang <073plan@gmail.com> Daniel Mustieles Emin Tufan Çetin Florentina Mușat Gil Forcada James Westman Kukuh Syafaat Lionir Deadman Marcus Lundblad Michael Catanzaro Yuri Chornoivan 3.37.2 - May 30, 2020 ========================= Changes since 3.37.1 - Fix "no network" dispay to fit better on smaller displays - Add initial basic support for running unit tests on builds - Enable sandboxing on the WebKit web view used in OpenStreetMap account setup - Limit the number of fraction digits when displaying raw coordinates in place entries (i.e. when route searching) for better readability - Restrict the user location accuracy circle to only show when all of it fits in the view (both horizontally and vertically) to avoid obscuring too much of the map view i.e. on very wide displays. Also lower the opacity of the circle to make it "stand out" less Added/updated/fixed translations - Turkish - Romanian - Persian - Chinese (Taiwan) - Spanish - Ukranian All contributors to this release Cheng-Chia Tseng Danial Behzadi Daniel Mustieles Emin Tufan Çetin Florentina Mușat Marcus Lundblad mimi89999 Yuri Chornoivan 3.37.1 - Apr 25, 2020 ========================= Changes since 3.36.0 - Adaptive UI for narrow screens - Recognize contact:website and contact:phone OSM tags - Fix link to sign up for an OpenStreetMap account for editing - Public transit routing plugin for GoMetro (South Africa) - Don't reset query points when routing fails (e.g. no public transit provider is available) to allow switching mode with the same query - Add command line option to specify tile size when using --local with a local tile cache - Fix a bug not displaying tiles south of the equator when using --local - Allow entering DMS coordinates without comma between latitude and logitude parts - Use localized digits in more places Added/updated/fixed translations - Korean - Slovenian - Ukranian - Chinese (Taiwan) - Serbian - German - Norwegian Bokmål - Catalan - Greek All contributors to this release Cheng-Chia Tseng Daniel Korostil Efstathios Iosifidis James Westman Jeeyong Um Jonathan Brielmaier Jordi Mas Kjartan Maraas Marcus Lundblad Matej Urbančič Piotr Drąg Sabri Ünal Tim Sabsch Yuri Chornoivan Марко Костић 3.36.0 - Mar 7, 2020 ========================= Added/updated/fixed translations - Catalan - Dutch - Punjabi - Italian - Korean - Polish All contributors to this release Aman Alam Gianvito Cavasoli Jeeyong Um Jordi Mas Nathan Follens Piotr Drąg 3.35.92 - Feb 29, 2020 ========================= Added/updated/fixed translations - Greek - Chinese (Taiwan) - Danish - Persian - Hungarian - Basque All contributors to this release Alan Mortensen Asier Sarasua Garmendia Balázs Meskó Chao-Hsiung Liao Danial Behzadi Efstathios Iosifidis Marcus Lundblad 3.35.91 - Feb 15, 2020 ========================= Changes since 3.35.90 - Add additional category code for busses in the Opendata.ch plugin Added/updated/fixed translations - Turkish - Brazilian Portuguese - Galician - Czech - Finnish - Swedish - French - Persian - Lithuanian - Croatian - British English - Indonesian All contributors to this release Anders Jonsson Aurimas Černius Claude Paroz Danial Behzadi Fran Dieguez Goran Vidović Jiri Grönroos Kukuh Syafaat Marcus Lundblad Marek Černocký Rafael Fontenelle Sabri Ünal Zander Brown 3.35.90 - Jan 31, 2020 ========================= Changes since 3.35.3 - Move “Export as Image” to the hamburger menu - Restructure context menu items for routing to allow changing start and destination points without resetting the query from the sidebar - Allow more width for the favourites popover and search result popovers in the routing sidebar to better avoid clipping longer place names Added/updated/fixed translations - Spanish - Finnish - Malay - Friulian - Slovak - Indonesian - Greek All contributors to this release Daniel Mustieles Dušan Kazik Efstathios Iosifidis Fabio Tomat Jiri Grönroos Kukuh Syafaat Marcus Lundblad Rafael Fontenelle Umarzuki Bin Mochlis Moktar Yi-Jyun Pan 3.35.3 - Jan 4, 2020 ========================= Changes since 3.35.3 - Avoid flickering when animating user location marker Added/updated/fixed translations - Spanish - Galician - Brazilian Portuguese - Esperanto - Friulian All contributors to this release Andre Klapper Daniel Mustieles dvijaywargiya Fabio Tomat Fran Dieguez James Westman Kristjan SCHMIDT Rafael Fontenelle 3.35.2 - Nov 23, 2019 ========================= Changes since 3.35.1 - Added public transit routing plugins for Resrobot (national Swedish transit API) and opendata.ch (for Switzerland) - Avoid "overflowing" the sidebar when a public transit itinerary has a large number of parts (legs) by ellipsizing in the middle when showing them in the journeys overview - Add command line option to always consider being online (--force-online) as a work-around for certain VPN and proxy networks not playing well with NetworkManager - Set User-Agent HTTP header in places where it was missing Added/updated/fixed translations - Friulian - Indonesian - Spanish - Czech - Basque - Persian All contributors to this release Andika Triwidada Asier Sarasua Garmendia Danial Behzadi Daniel Mustieles Fabio Tomat Marcus Lundblad Marek Černocký 3.35.1 - Oct 12, 2019 ========================= Changes since 3.34.0 - Initial support for public trasit routing/journey planning using third-party service providers - Add nightly app icon (currently not installed, awaiting support for dual installations) - Update default tile size when using local tiles Added/updated/fixed translations - Spanish - Danish - Slovak - Dutch - Friulian - Italian All contributors to this release Ask Hjorth Larsen Daniel Mustieles Dušan Kazik Fabio Tomat Gianvito Cavasoli Jakub Steiner Marcus Lundblad Nathan Follens 3.34.0 - Sep 9, 2019 ========================= Added/updated/fixed translations - Korean - Brazilian Portuguese - Croatian - Greek All contributors to this release Efstathios Iosifidis Goran Vidović Rafael Fontenelle Seong-ho Cho 3.33.92 - Sep 2, 2019 ========================= Changes since 3.33.91 - Update OSM POI types - Fix performance issue when there's lots of location updates Added/updated/fixed translations - Czech - French - Danish - Turkish - British English - Serbian - Catalan - Galician - Hungarian - Slovenian - Latvian - German - Polish - Lithuanian All contributors to this release Ahmet Elgün Ask Hjorth Larsen Aurimas Černius Balázs Úr Charles Monzat Daniel Rusek Fran Dieguez Jordi Mas Marcus Lundblad Marek Černocký Matej Urbančič Piotr Drąg Rūdolfs Mazurs Tim Sabsch Valentin Blot <14005-vblot@users.noreply.gitlab.gnome.org> Zander Brown Марко Костић 3.33.91 - Aug 19, 2019 ========================= Added/updated/fixed translations - Swedish - Catalan - Finnish - Basque - Indonesian - Esperanto All contributors to this release Anders Jonsson Asier Sarasua Garmendia Jiri Grönroos Jordi Mas Kristjan SCHMIDT Kukuh Syafaat Marcus Lundblad 3.33.90 - Aug 5, 2019 ========================= Changes since 3.33.90 - Fix bug going back to already selected place from the search result list - Start immediatly at the last viewed location when app was closed last - Remember the map type (street or aerial) from when the app was closed last Added/updated/fixed translations - Karbi - Romanian - Spanish - Friulian - Basque - Brazilian Portuguese - Croatian All contributors to this release Asier Sarasua Garmendia Daniel Mustieles Daniel Șerbănescu Fabio Tomat Goran Vidović James Westman Jor Teron Marcus Lundblad Rafael Fontenelle 3.33.4 - Jul 15, 2019 ========================= Changes since 3.33.3 - Handle opening OpenStreetMap URLs pointing to either an object or bare coordinates by pasting it into the search entry and also as a program argument, in the same manner as with geo: URIs Added/updated/fixed translations - Indonesian - Icelandic - Slovenian - Friulian - Swedish - Croatian - Spanish - Dutch All contibutors to this release Anders Jonsson Daniel Mustieles Fabio Tomat Goran Vidović Kukuh Syafaat Marcus Lundblad Matej Urbančič Nathan Follens Sveinn í Felli 3.33.3 - Jun 17, 2019 ========================= Changes since 3.33.2 - Auto-complete searches ("search-as-you-type") using GraphHopper geocoder / Photon - Redesigned Send to-dialog with ability to copy and send locations in e-mails and better integration with Weather and Clocks - Show clockwise roundabout icons for turn-by-turn routing in left-hand traffic countries and territories - Update appdata screenshots with tile style - Fix a crash when there's many contacts with addresses in an Evolution address book Added/updated/fixed translations - Indonesian - Greek - Spanish - Hungarian All contributors to this release Balázs Úr Daniel Mustieles Efstathios Iosifidis James Westman Kukuh Syafaat Marcus Lundblad 3.33.2 - May 20, 2019 ========================= Changes since 3.33.1 - Accept additional formats when entering raw coordinates in the search entry (decimal lat/lon degrees format with literal ° symbol, and degrees, minutes, second format) Added/updated/fixed translations - Chineses (China) - Indonesian - Spanish All contributors to this release Daniel Mustieles Dz Chen Kukuh Syafaat Marcus Lundblad Will Burklund 3.33.1 - Apr 22, 2019 ========================= Changes since 3.32.0 - Stop using GtkOffscreenWindow (prerequisite for eventually porting to GTK 4) - Fix printing dialog not closing in some circumstances - Add some missing appstream metadata - Add tests validating appdata and desktop files - Remove some unnessesary instructions in turn-by-turn route searches Added/updated/fixed translations - Friulian - Danish - Croatian All contributors to this release Andreas Nilsson Ask Hjorth Larsen Fabio Tomat Goran Vidović James Westman Kalev Lember Marcus Lundblad Niels De Graef 3.32.0 - Mar 11, 2019 ========================= Changes since 3.31.92 - Translation updates Added/updated/fixed translations - Esperanto - Basque All contributors to this release Asier Sarasua Garmendia Kristjan SCHMIDT 3.31.92 - Mar 4, 2019 ========================= Changes since 3.31.91 - Updated appdata screenshots (shown in i.e. GNOME Software) - Fix displaying the proper application name in i.e. the gnome-shell overview and the top bar menu since a regression earlier in the 3.31.x cycle - Update POI type defintions and translations for OSM editing Added/updated/fixed translations - Latvian - Vietnamese - German - Serbian - Italian - Russian - Brazilian Portuguese - Korean - Lithuanian - Dutch - Icelandic All contributors to this release Aurimas Černius Gianvito Cavasoli James Westman Jeeyong Um Marcus Lundblad Nathan Follens Rafael Fontenelle Rūdolfs Mazurs Stas Solovey Sveinn í Felli Tim Sabsch Trần Ngọc Quân Марко Костић 3.31.91 - Feb 18, 2019 ========================= Changes since 3.31.90 - Fix array parsing error when loading shape layers when running with newer GJS Added/updated/fixed translations - Chinese (Taiwan) - Greek - Kazakh - Danish - Catalan - Polish - Czech All contributors to this release Alan Mortensen Baurzhan Muftakhidinov Efstathios Iosifidis Jordi Mas Marcus Lundblad Marek Cernocky Piotr Drąg Yi-Jyun Pan 3.31.90 - Feb 4, 2019 ========================= Changes since 3.31.4 - Show live-updated thumbnails for the street/aerial layer switcher, instead of (outdated) hard-code thumbnails - Fix a bug where the scrollbar in the favorites popover didn't show up Added/updated/fixed translations - Finnish - Friulian - French - Turkish - Indonesian - Romanian - Galician - Hungarian - Slovenian - Swedish - Spanish All contributors to this release Anders Jonsson Balázs Úr Claude Paroz Daniel Mustieles Daniel Șerbănescu Fabio Tomat Fran Dieguez James Westman Jiri Grönroos Kukuh Syafaat Marcus Lundblad Matej Urbančič Sabri Ünal 3.31.4 - Jan 7, 2019 ========================= Changes since 3.31.3 - Fix keyboard shortcut for quitting that was broken since the application menu was moved to the headerbar - Update GJS build dependency Added/updated/fixed translations - Turkish - Swedish - Friulian - Greek All contributors to this release Anders Jonsson Efstathios Iosifidis Fabio Tomat Marcus Lundblad Sabri Ünal 3.31.3 - Dec 10, 2018 ========================= Changes since 3.31.2 - Fix loading contact's adresses with newer GJS - Fix some array-related GJS deprecation warnings Added/updated/fixed translations - Spanish All contributors to this release Daniel Mustieles Jakub Steiner James Westman Marcus Lundblad 3.31.2 - Nov 12, 2018 ========================= Changes since 3.31.1 - Move app menu to the headerbar - Fix a crash that occured sometimes when activating "What's here?" from the context menu - Fix compiler warnings Added/updated/fixed translations - Esperanto - French - Slovak - Malayalam - Slovenian - Czech All contributors to this release Anish Sheela Carmen Bianca BAKKER Charles Monzat Debarshi Ray Dušan Kazik Marcus Lundblad Marek Cernocky Matej Urbančič Piotr Drąg 3.31.1 - Oct 8, 2018 ========================= Changes since 3.30.0 - Updated application icon - Start all way zoomed out on first run - Fix shape layer file chooser not showing up Added/updated/fixed translations - Serbian - Russian All contributors to this release FlyingPiMonster Jakub Steiner Marcus Lundblad Stas Solovey Марко Костић 3.30.0 - Sep 3, 2018 ========================= Added/updated/fixed translations - Danish - Croatian - Latvian - Hungarian - Vietnamese - Italian - Galician - Korean All contributors to this release Ask Hjorth Larsen Balázs Meskó Fran Dieguez Gianvito Cavasoli gogo Rūdolfs Mazurs Seong-ho Cho Trần Ngọc Quân 3.29.92 - Aug 27, 2018 ========================= Changes since 3.29.91 - Updated POI definitions and translations for OSM editing Added/updated/fixed translations - Indonesian - Finnish - Kazakh - Icelandic - Czech All contributors to this release Baurzhan Muftakhidinov Jiri Grönroos Kukuh Syafaat Marcus Lundblad Marek Cernocky Sveinn í Felli 3.29.91 - Aug 13, 2018 ========================= Changes since 3.29.90 - Don't spin up CI environments for master and tags Added/updated/fixed translations - Turkish - Lithuanian - Swedish - French - German - Polish - Slovenian All contributors to this release Anders Jonsson Aurimas Černius Claude Paroz Emin Tufan Çetin Jordan Petridis Mario Blättermann Matej Urbančič Piotr Drąg 3.29.90 - Jul 30, 2018 ========================= Changes since 3.29.4 - Add a Flatpak CI build/test job Added/updated/fixed translations - French All contributors to this release Charles Monzat Jordan Petridis Marcus Lundblad 3.29.4 - Jul 16, 2018 ========================= Changes since 3.29.3 - Use g_application_mark_busy() instead of the home-brewed busy marker - Limit the number of via points in routing queries to 10 to avoid hitting a limit in GraphHopper and also to better fit the UI - Various Flatpak updates Added/updated/fixed translations - Brazilian Portuguese - Catalan - Romanian - Friulian - Greek - Chinese (Taiwan) - Spanish All contributors to this release Alberto Fanjul Bruno Lopes da Silva Daniel Mustieles Daniel Șerbănescu Efstathios Iosifidis Fabio Tomat Marcus Lundblad Pere Orga Vinayak Aggarwal Yi-Jyun Pan 3.29.3 - Jun 19, 2018 ========================= Changes since 3.29.1 - Stop using notifications on top of the map view as it doesn't work on Wayland - Add OARS tags Added/updated/fixed translations - Chinese (Taiwan) - Occitan - Brazilian Portuguese - Chinese (China) All contributors to this release: Cédric Valmary Enrico Nicoletto Marcus Lundblad Mingcong Bai nick richards Yi-Jyun Pan 3.29.2 - May 21, 2018 ========================= Added/updated/fixed translations - Chinese (China) - Swedish - Romanian - Indonesian - Italian - Spanish - Slovenian - Greek - Friulian - Turkish All contributors to this release: Anders Jonsson Daniel Mustieles Daniel Șerbănescu Efstathios Iosifidis Fabio Tomat Kukuh Syafaat Mandy Wang Marcus Lundblad Matej Urbančič Milo Casagrande Muhammet Kara 3.29.1 - Apr 16, 2018 ========================= Changes since 3.28.0 - Switch to build with Meson (also dropped support for building with Autotools) - Disable UI for switching between street and aerial view if the service definition lacks aerial tile definitions (allows using a tile server not supplying aerial tiles) - Enable selecting map markers using touch Added/updated/fixed translations - Croatian - German - Hungarian - Czech - Latvian - Lithuanian - Serbian - Dutch - Slovenian - Croatian - Swedish - Brazilian Portuguese - Indonesian - French - Polish - Romanian - Russian All contributors to this release: Anders Jonsson Andika Triwidada Aurimas Černius Balázs Meskó Charles Monzat Daniel Șerbănescu gogo Justin van Steijn Marcus Lundblad Marek Cernocky Mario Blättermann Matej Urbančič Piotr Drąg Rafael Fontenelle Rūdolfs Mazurs Stas Solovey Марко Костић 3.28.0 - Mar 12, 2018 ========================= Changes since 3.27.92 - Change license of two files to GPL 2 or later (as was the original intension and what the project as a whole is using) Added/updated/fixed translations - Swedish - Serbian (latin) - Serbian - Italian - Greek - Danish All contributors to this release: Anders Jonsson Ask Hjorth Larsen Efstathios Iosifidis Gianvito Cavasoli Marcus Lundblad Марко Костић Милош Поповић 3.27.92 - Mar 5, 2018 ========================= Changes since 3.27.90 - Updated POI definitions for OpenStreetMap editing - Fix a segmentation fault at exit - Fix missing generated files and third-party licenses in the distributed release archive - Fix layout of shortcuts help overlay to better fit smaller screens Added/updated/fixed translations - Lithuanian - Kazakh - Scottish Gaelic - Vietnamese - Slovak - Korean - Latvian - Finnish - Dutch - Turkish - Czech - Croatian - Galician - Brazilian Portuguese - French - Polish All contributors to this release: Alain Lojewski Aurimas Černius Baurzhan Muftakhidinov Dušan Kazik Emin Tufan Çetin Fran Dieguez Furkan Ahmet Kara Gun Chleoc gogo Jiri Grönroos Kwangseob Jeong Marcus Lundblad Marek Cernocky Mattias Bengtsson Piotr Drąg Rafael Fontenelle Rūdolfs Mazurs Simon McVittie Trần Ngọc Quân 3.27.90 - Feb 5, 2018 ========================= Changes since 3.27.90 - Use moder JS features (ES6), classes (with GObject.registerClass()) and arrow notation (=> () ) for binding anonymous functions - Change default line with and color for layer lines in loaded layers to make them more visible - Don't select text in place entries in the routing sidebar when auto-completing - Bugfixes for keyboard navigation in search entry completion popover - Add additional tooltips for buttons in the routing sidebar - Decrease height of OSM login dialog Added/updated/fixed translations - Friulian - Catalan - Indonesian - German - Spanish - Hungarian - Finnish All contributors to this release: Balázs Meskó Balázs Úr Daniel Mustieles Fabio Tomat Gil Forcada Jiri Grönroos Jordi Mas Kukuh Syafaat Marcus Lundblad Tim Sabsch Tomasz Miąsko Vibhanshu Vaibhav 3.27.4 - Jan 8, 2018 ========================= Changes since 3.27.3 - Show thumnails from Wikipedia in the place bubbles when availability - Make the place bubble popovers follow the map when the view scrolls (i.e. when using the keyboard shortcuts to scroll) - Move the zoom control buttons to the headerbar to mitigate an issue with Clutter and overlay GTK+ widgets on Wayland - Adapt libgweather dependency to use gitlab.gnome.org for building Flatpaks Added/updated/fixed translations - German - Serbian - Swedish - Esperanto - Turkish - Czech - Spanish - Friulian All contributors to this release: Anders Jonsson Andreas Nilsson Daniel Mustieles Emin Tufan Çetin Fabio Tomat Kristjan SCHMIDT Marcus Lundblad Marek Černocký Mario Blättermann Марко Костић 3.27.3 - Dec 11, 2017 ========================= Changes since 3.27.3 - Show tile provider and OSM attribution in the About dialog - Install appstream metadata to non-deprecated location - Update Flatpak manifest to build libgweather with Meson Added/updated/fixed translations - Icelandic - Indonesian - Czech All contributors to this release: Jeremy Bicha Kukuh Syafaat Marcus Lundblad Marek Cernocky Sveinn í Felli 3.27.2 - Nov 13, 2017 ========================= Changes since 3.27.1 - Fix Maps to be available as an option for "Open with another application" for geo shape layer files - Fix JS warnings about redundant function arguments and similar things Added/updated/fixed translations - Norwegian bokmål - Hindi - Croatian - Friulian - Czech - Slovak - German All contributors to this release: Dušan Kazik Dylan McCall Fabio Tomat gogo Kjartan Maraas Marcus Lundblad Marek Cernocky Mario Blättermann Solomon Nadar 3.27.1 - Oct 16, 2017 ========================= Changes since 3.26.0 - Use sidebar icon style for icons in the routing results - Improve the look of route labels for public transit trips when using the dark theme - Add --version command line option - Fix network detection when running as a Flatpak - Update appdata screenshots - Show stored routes according to locale direction - Avoid a GTK+ warning on startup - Export symbols from modules using var instead of const to comply with ES6 and avoid a warning on newer GJS versions Added/updated/fixed translations - Polish - Icelandic - Arabic - Greek All contributors to this release: Anup Agarwal <108anup@gmail.com> Efstathios Iosifidis Khaled Hosny Marcus Lundblad Piotr Drąg Sveinn í Felli Xavi Ivars 3.26.0 - Sep 11, 2017 ========================= Added/updated/fixed translations: - Basque - Catalan - Swedish - Italian - Danish - Brittish English - Dutch All contributors to this release: Anders Jonsson Ask Hjorth Larsen Bruce Cowan Gianvito Cavasoli hanniedu Inaki Larranaga Murgoitio Jordi Mas 3.25.92 - Sep 4, 2017 ========================= Changes since 3.25.91 - Don't focus the search entry on start (prevents showing the on-screen keyboard at start on touch devices) - Make OSM edit and export image dialogs modal (fixes positioning on Wayland) - Update OSM POI definitions and translations Added/updated/fixed translations: - Slovak - Korean - Vietnamese - Finnish - Serbian (latin) - Serbian - Latvian - Chinese (Taiwan) - Danish - Russian - French - Brazilian Portuguese - Lithuanian All contributors to this release: Ask Hjorth Larsen Aurimas Černius Cheng-Chia Tseng Claude Paroz Dušan Kazik Jamerson Albuquerque Tiossi Jiri Grönroos Marcus Lundblad Rūdolfs Mazurs Seong-ho Cho Trần Ngọc Quân Yuri Myasoedov Марко Костић Милош Поповић 3.25.91 - Aug 21, 2017 ========================= Changes since 3.25.90 - Fix loading layer files when running as Flatpak - Don't allow adding more than one instance of address on OSM objects Added/updated/fixed translations: - Indonesian - Galician - Turkish - Nepali - Polish All contributors to this release: Çağatay Yiğit Şahin Fran Dieguez Kukuh Syafaat Marcus Lundblad Pawan Chitrakar Piotr Drąg 3.25.90 - Aug 7, 2017 ========================= Changes since 3.25.4 - Allow viewing and editing OSM editor notes when editing objects Added/updated/fixed translations: - Slovenian - Friulian - Spanish - Kazakh - Croatian - German - Catalan - Czech - Hungarian All contributors to this release: Balázs Meskó Baurzhan Muftakhidinov Daniel Mustieles Fabio Tomat gogo Jordi Mas Marcus Lundblad Marek Cernocky Mario Blättermann Matej Urbančič Piotr Drąg Robert Ancell 3.25.4 - Jul 20, 2017 ========================= Changes since 3.25.3 - Show feedback when no search results were found - Update Flatpak manifest for build changes in geocode-glib - Various bugfixes Added/updated/fixed translations: - Friulian - Hungarian - Spanish - Kazakh - German - Catalan - Indonesian - Slovak All contributors to this release: Balázs Meskó Baurzhan Muftakhidinov Daniel Mustieles Dušan Kazik Elias Entrup Fabio Tomat Hashem Nasarat Jordi Mas Kukuh Syafaat Marcus Lundblad Nayan Deshmukh Piotr Drąg Robert Ancell Wolfgang Stöggl Zeeshan Ali 3.25.3 - Jun 19, 2017 ========================= Changes since 3.25.2 - Added keyboard shortcuts for switching between street and aerial view - Added keyboard shortcut for opening layer files - Remember the last used mode of transportation for routing (also now default to walking on first run) - For transit results, don't reset previous list when no later or earlier alternatives are found - Also print coordinates in debug printout from GeoClue - Show and support editing for additional OpenStreetMap tags (religion and information on availability of toilets) Added/updated/fixed translations: - Friulian - German - Spanish - Indonesian - Polish - Hungarian - Kazakh - Lithuanian All contributors to this release: Aurimas Černius Balázs Meskó Baurzhan Muftakhidinov Daniel Mustieles Debarshi Ray Fabio Tomat Kukuh Syafaat Marcus Lundblad Mario Blättermann Piotr Drąg Robert Ancell Valentin Blot 3.25.2 - May 22, 2017 ========================= Changes since 3.25.2 - Fix OpenStreetMap editing in Flatpaks (update librest build dependency) - Use localized format when showing distances Added/updated/fixed translations: - Arabic - Catalan - Slovenian All contributors to this release: Jordi Mas Khaled Hosny Marcus Lundblad Matej Urbančič 3.25.1 - Apr 24, 2017 ========================= Changes since 3.25.1: - Fix JSON formatting for Flatpak manifest All contributors to this release: Marcus Lundblad 3.24.1 - Apr 10, 2017 ========================= Changes since 3.24.0: - Fix rendering of compacted route labels for transit routing - Don't show the “Next” button when selecting POI types when editing OpenStreetMap objects - Use HTTPS Wikipedia links Added/updated/fixed translations: - Croatian - Greek - Polish - Norwegian bokmål All contributors to this release: gogo Kjartan Maraas Marcus Lundblad Piotr Drąg RyuzakiKK Tom Tryfonidis 3.24.0 - Mar 20, 2017 ========================= Changes since 3.23.92: - Fix running when gnome-online-accounts isn't available. Added/updated/fixed translations: - Russian - Turkish - Slovak - Latvian - Italian - Japanese All contributors to this release: Dušan Kazik Gianvito Cavasoli Marcus Lundblad Osman Karagöz Rūdolfs Mazurs sujiniku Yuri Myasoedov 3.23.92 - Mar 13, 2017 ========================= Changes since 3.23.91: - Fix rendering Wikipedia links to articles containing a colon. - Updated OpenStreetMap POI definitions for editing. - Handle application/geo+json mime type for GeoJSON layer files. Added/updated/fixed translations: - Finnish - Swedish - Chinese (Taiwan) - Icelandic - Danish - Slovenian - Basque - Korean - Lithuanian - German - Catalan - Indonesian - Scottish Gaelic - Czech - Slovak - Serbian All contributors to this release: Anders Jonsson Ask Hjorth Larsen Aurimas Černius Chao-Hsiung Liao Cheng-Chia Tseng GunChleoc Inaki Larranaga Murgoitio Jiri Grönroos Jordi Mas Kukuh Syafaat Marcus Lundblad Marek Cernocky Mario Blättermann Matej Urbančič Seong-ho Cho Sveinn í Felli Марко М. Костић 3.23.91 - Feb 27, 2017 ========================= Changes since 3.23.90: - Support for public transit routing (enabled when service definition contains a URL for an OpenTripPlanner server, or by debug environment variable). - Add a button to reverse a route. - Stop using "for in" loops to traverse arrays. - Fixes for ES6 (GJS 1.48). Added/updated/fixed translations: - Kazakh - Danish - Spanish - German - Slovak - Norwegian bokmål - Finnish - Polish - Basque - Friulian - Brazilian Portuguese - Ukrainian - Galician - Serbian - Hungarian - French All contributors to this release: Anders Jonsson Andreas Nilsson Ask Hjorth Larsen Balázs Meskó Baurzhan Muftakhidinov Claude Paroz Daniel Korostil Daniel Mustieles Dušan Kazik Fabio Tomat Fran Dieguez Inaki Larranaga Murgoitio Jiri Grönroos Kjartan Maraas Marcus Lundblad Mario Blättermann Mattias Bengtsson Philip Chimento Piotr Drąg Rafael Fontenelle Мирослав Николић 3.23.90 - Feb 13, 2017 ========================= Added/updated/fixed translations: - Slovak - Chinese (China) - Indonesian All contributors to this release: Dingzhong Chen Dušan Kazik Kukuh Syafaat Marcus Lundblad 3.23.4 - Jan 16, 2017 ========================= Changes since 3.23.4: - Removed usage of deprecated gtk_menu_popup() function. Added/updated/fixed translations: - Finnish - Spanish All contributors to this release: Daniel Mustieles Jiri Grönroos Marcus Lundblad 3.23.3 - Dec 12, 2016 ========================= Changes since 3.23.2: - Enable easy building as a flatpak from within GNOME Builder. Added/updated/fixed translations: - Russian - Kazakh - Swedish - Hungarian All contributors to this release: Anders Jonsson Baurzhan Muftakhidinov Christian Hergert Gábor Kelemen Marcus Lundblad Stas Solovey 3.23.2 - Nov 21, 2016 ========================= Changes since 3.23.1: - Use Unicode in translatable strings Added/updated/fixed translations: - Friulian - Czech - Hungarian - German - Polish All contributors to this release: Balázs Meskó Fabio Tomat Marek Černocký Paul Seyfert Piotr Drąg 3.23.1 - Oct 24, 2016 ========================= Changes since 3.22.1: - Fixed a typo and a formatting issue - Handle a plain 00:00-24:00 opening hour specification as being "always open" for POIs Added/updated/fixed translations: - Norwegian bokmål All contributors to this release: Kjartan Maraas Marcus Lundblad 3.22.1 - Oct 10, 2016 ========================= Added/updated/fixed translations: - Basque All contributors to this release: Inaki Larranaga Murgoitio 3.22.0 - Sep 18, 2016 ========================= Added/updated/fixed translations: - Persian - Italian - Scottish Gaelic - Ukrainian All contributors to this release: Arash Mousavi Daniel Korostil Gianvito Cavasoli GunChleoc 3.21.92 - Sep 12, 2016 ========================= Changes since 3.21.91: - Added = accelerator for zoom-in - Fix rendering of website links containing HTML markup characters - Updated/added POI definitions for OpenStreetMap editing Added/updated/fixed translations: - Greek - Danish - Polish - Galician - Latvian - Vietnamese - Lithuanian - Kazakh - Korean All contributors to this release: Ask Hjorth Larsen Aurimas Černius Baurzhan Muftakhidinov Fran Dieguez Marcus Lundblad Piotr Drąg Razvan Brinzea Rūdolfs Mazurs Seong-ho Cho Tom Tryfonidis Trần Ngọc Quân 3.21.91 - Aug 29, 2016 ========================= Changes since 3.21.90: - Fix bug where you could not type + or - in the searchbar - Added Amisha, Marcus and Mattias as maintainers in the doap file Added/updated/fixed translations: - French - Serbian - Slovenian - Polish All contributors to this release: Alexandre Franke Jonas Danielsson Matej Urbančič Piotr Drąg Мирослав Николић 3.21.90 - Aug 19, 2016 ========================= Hello there! So we will stop using a redirect from gis.gnome.org to Mapbox tile server. Instead we will attempt to download a service.json file from gis.gnome.org. This file will tell us where our third-party services are. Starting with tile services. This is for two reasons. 1) It is much faster and 2) Mapbox didn't like the redirect approach. Changes since 3.21.4: - Download a service.json file to get tile server URI among other things. - Use GtkClutter for the attribution logo, to get transparency. Added/updated/fixed translations: - Hungarian - Slovak - Hebrew - Czech - Arabic - Finnish - Brazilian Portuguese - Indonesian - Brittish English All contributors to this release: Andika Triwidada Balázs Úr David King Dušan Kazik Gustavo Marques Jiri Grönroos Jonas Danielsson Marek Cernocky Mattias Bengtsson Safa Alfulaij Yosef Or Boczko 3.21.4 - Jul 30, 2016 ========================= Hi! This is an important release! With this release we switch from using the MapQuest open API for fetching tiles. And instead we start using Mapbox API. Using an community API key from Mapbox. Mapbox is a company with a commitment to Open source. And provides infrastructure that will allow us to do more with Maps. We are accessing the Mapbox API through a GNOME proxy that will allow us to easier switch our tile provider/URI in the future. Big thanks to Mattias Bengtsson who made this solution happen. Thank you, and sorry for our outage. Changes since 3.20.1: - Change tile URIs to use Mapbox, through proxy - Fix escaping of tel: URIs - Adapt colors of instuction when printing routes Added/updated/fixed translations: - Esperanto - Slovenian - Occitan - Polish - Portuguese - Turkish - Catalan - Norwegian bokmål - Indonesian - Punjabi - Spanish - Friulian All contributors to this release: Anders Jonsson Andika Triwidada A S Alam Cédric Valmary Daniel Mustieles Fabio Tomat Jonas Danielsson Jordi Mas Kjartan Maraas Kristjan SCHMIDT Marcus Lundblad Matej Urbančič Muhammet Kara Nayan Deshmukh Piotr Drąg Tiago Santos 3.20.1 - April 11, 2016 ========================= Changes since 3.20.0: - Bump dependencies on libchamplain and gjs - Fox memory leak in osmEdit Added/updated/fixed translations: - Ukrainian - Friulian - Greek - Vietnamese - Persian - Arabic All contributors to this release: Arash Mousavi Daniel Korostil Fabio Tomat Jonas Danielsson Jordi Mas Khaled Hosny Marcus Lundblad Tom Tryfonidis Trần Ngọc Quân 3.20.0 - March 21, 2016 ========================= Changes since 3.20.0: - Fix marking of translatable strings Added/updated/fixed translations: - Slovak - German - Polish - Catalan - Spanish - Czech - Hungarian - Finnish - Korean - Kazakh - Brazilian Portuguese - Russian - Lithuanian - Swedish - Galician - Serbian - Serbian Latin - French - Danish - Greek All contributors to this release: Antonio Fernandes C. Neto Ask Hjorth Larsen Aurimas Černius Balázs Meskó Baurzhan Muftakhidinov Bernd Homuth Claude Paroz Daniel Mustieles Dušan Kazik Fran Dieguez Gianvito Cavasoli Inaki Larranaga Murgoitio Jiri Grönroos Jordi Mas Marcus Lundblad Marek Černocký Mario Blättermann Piotr Drąg Rūdolfs Mazurs Sebastian Rasmussen Seong-ho Cho Stas Solovey Tom Tryfonidis Yuri Myasoedov Марко Костић Милош Поповић 3.19.91 - March 14, 2016 ========================== Changes since 3.19.91: - Rework geoclue interaction - Ellipsize route instructions in print layout - Add 'aeroway' type to OSM editting - Make auto-complete accent insensitive Added/updated/fixed translations: - Slovak - Brazilian Poruguese - Galician - Hebrew - Spanish - Korean - Ukrainian - Occitan - Hungarian - German - Kazakh - Latvian - Finnish - Friulian - Serbian - Lithuanian - French All contributors to this release: Artur de Aquino Morais Aurimas Černius Baurzhan Muftakhidinov Cédric Valmary Claude Paroz Daniel Korostil Daniel Mustieles Dušan Kazik Fabio Tomat Fran Dieguez Gábor Kelemen Jiri Grönroos Jonas Danielsson Mario Blättermann Marius Stanciu Razvan Brinzea Rūdolfs Mazurs Seong-ho Cho Yosef Or Boczko Zeeshan Ali (Khattak) Марко М. Костић 3.19.91 - March 1, 2016 ========================== Changes since 3.19.90: - Handle case when nothing was found when reverse geocoding through context menu - Make sure we validate bounding boxes from geoJSON layer - Add markers to route when printing - Add via points to route when printing - Add ability to add and edit addresses on OpenStreetMap - Allow Maps to shrink more by not using a fixed width for the searchbar - Add tooltip to icon next to route entry to help discoverbility of drag and drop re-oredering. Added/updated/fixed translations: - Galician - Dutch - Polish - German - Spanish - Serbian - Slovak - Brazilian Portuguese - French - Chinese (Taiwan) - Czech - Hingarian - Catalan 3.19.90 - February 16, 2016 ========================== Changes since 3.19.4: - Added icon to toggle visibility of a shape layer - Improve travel animations - Add a scale ruler to the bottom left corner - Include less information by default in map bubbles - Add expandable area on map bubbles - Add context menu item for adding location to OpenStreetMap - Enable editting of opening hours on OpenStreetMap - Add internet access tag to map bubbles - Add ele altitude tag to map bubbles - Add website to map bubbles - Add phone nunber to map bubbles - Add support for KML and GPX shape files - Add support for printing a route with instructions Added/updated/fixed translations: - Russian - Finnish - Catalan - German - Slovak - Hungarian - Spanish - Slovenian - Latvian - Polish - Kazakh - Chinese (Taiwan) - Brazilian Portuguese - Bulgarian - Serbian - French All contributors to this release: Alaf Azam Alexandre Franke Amisha Singla Balázs Meskó Baurzhan Muftakhidinov Chao-Hsiung Liao Codreanu Andrei Cosimo Cecchi Damián Nohales Daniel Mustieles Debarshi Ray Dušan Kazik Gábor Kelemen Hashem Nasarat Ivailo Panamski Jiri Grönroos Jonas Danielsson Jordi Mas Marcus Lundblad Mario Blättermann Matej Urbančič Piotr Drąg Rafael Fontenelle Richard Hughes Rūdolfs Mazurs Stas Solovey Zeeshan Ali (Khattak) Мирослав Николић 3.19.4 - Januari 18, 2016 ========================== First release of the year, and what a release! We have so many new contributors, it really warms your heart. And a lot of new stuff added, see below for details! Changes since 3.19.3: - Addded a keybinding help overlay (F1 to activate) - Fix zoom behaviour to be more aggresive - Fix bug with cancel login in OpenStreetMap account dialog - Add keyboard shortcut for going to current location (L) - Fix layout of OpenStreetMap edit - Fix bug that made it impossible to sign-in to OpenStreetMap if you first inputed the wrong credentials - Fix drag-and-drop to be more acceptive and responsive - Make sure we can export our markers to PNG - Give user the choice of exporting markers or not - Add GUI for loading and managing shape layers such as GeoJSON or in the future(?) KML - Add roundabout support to route - Use a regular GtkButton for marking favorites Added/updated/fixed translations: - Spanish - Kazakh - Slovak - Spanish - Lithuanian - Finnish - Esperanto - Czech - German - Brazilian Portuguese - Norwegian bokmål All contributors to this release Alaf Azam Alex Anthony Amisha Singla Aurimas Černius Baurzhan Muftakhidinov Damián Nohales Daniel Mustieles Dušan Kazik Enrico Nicoletto Hashem Nasarat Jiri Grönroos Jonas Danielsson Karanbir Chahal Kjartan Maraas Kristjan SCHMIDT Marcus Lundblad Marek Černocký Mario Blättermann Mattias Bengtsson Prashant Tyagi 3.19.3 - December 13, 2015 ========================== Changes since 3.19.2: - Added export to image to context menu - Added support for MultiPoint in GeoJSON - Fixed bug in send-to-dialog when default browser has no icon - Added support for MapBox simplestyle for GeoJSON - Added support for editing locations in OpenStreetMap Added/updated/fixed translations: - Hungarian - Spanish - Czech - Greek - Poruguese - Slovak - Finnish - Slovenian All contributors to this release: alafazam Alaf Azam Balázs Meskó Daniel Mustieles Dušan Kazik Hashem Nasarat Jiri Grönroos Jonas Danielsson Kalev Lember Marcus Lundblad Marek Černocký Martin Srebotnjak Matej Urbančič Pedro Albuquerque Piotr Drąg Tom Tryfonidis 3.19.2 - November 23, 2015 ========================== - Fix GeoJSON filling of polygons in polygons - Add simpler keyboard shortcuts for zoom - Fix width of send-to dialog - Add open with browser to send-to dialog that will open a location on OpenStreetMap web - Handle the 'geo' URI scheme, this will allow us to handle geu: URIs in for instance the browser or in Polari - Go to latest visited view on start up Added/updated/fixed translations: - Czech - Portuguese - zh_CN - Norwegian bokmål - Spanish - Turkish - Finnish - Lithuanian - German All contributors to this release: alafazam Amisha Aurimas Černius Benjamin Steinwender Daniel Mustieles Jiri Grönroos Jonas Danielsson Kjartan Maraas Marcus Lundblad Marek Černocký Mingye Wang (Arthur2e5) Muhammet Kara Pedro Albuquerque Piotr Drąg 3.19.1 - October 26, 2015 ====================== - Fix bugs in contact address lookup - No more warnings if address has no street address - Do not attempt to classify type of address if only one(1) - Use new convenience library for GeoClue - Add support for opening and displaying GeoJSON files. - https://en.wikipedia.org/wiki/GeoJSON - This is with help of the Mapbox geojson-vt javascript code found at: https://github.com/mapbox/geojson-vt - Added/updated/fixed translations: - Basque - Slovak All contributors to this release: Dušan Kazik Inaki Larranaga Murgoitio Jonas Danielsson Zeeshan Ali (Khattak) Changes since 3.18.1: 3.18.1 - October 10, 2015 ====================== Changes since 3.18.0.1: - Fix bugs in zooming to a location or contact - Fix styling of dialog header buttons - Added/updated/fixed translations: - Irish All contributors to this release: Jonas Danielsson Marcus Lundblad Seán de Búrca 3.18.0.1 - September 25, 2015 ====================== Changes since 3.18.0: - Fix bug that prevented Maps from launching - Added/updated/fixed translations: - Danish - Swedish - Greek - Serbian - Serbian Latin All contributors to this release: Anders Jonsson Ask Hjorth Larsen Jonas Danielsson Tom Tryfonidis Марко Костић Милош Поповић 3.18.0 - September 20, 2015 ====================== Changes since 3.17.92: - Added/updated/fixed translations: - Spanish - Italian - Brazilian Portuguese - Persian - Korean - Czech - Russian - Hungarian - Turkish All contributors to this release: Arash Mousavi Balázs Úr Claudio Arseni Daniel Mustieles Enrico Nicoletto Marek Černocký Muhammet Kara Seong-ho Cho Stas Solovey 3.17.92 - September 14, 2015 ====================== Changes since 3.17.91: - Add --local switch to use local, offline, tiles from a structured directory - Added/updated/fixed translations: - Polish - Indonesian - Hebrew - Hungarian - Italian - Lithuanian - Kazakh - Korean - German - Turkish - Norwegian bokmål - Icelandic - Slovenian - Finnish - Slovak - French - Persian - Japanese - Portuguese - Galician - German All contributors to this release: Andika Triwidada Arash Mousavi Aurimas Černius Balázs Úr Baurzhan Muftakhidinov Benjamin Steinwender Bernd Homuth Claude Paroz Claudio Arseni Dušan Kazik Fran Dieguez Hajime Taira Jiri Grönroos Jonas Danielsson Kjartan Maraas Martin Srebotnjak Muhammet Kara Pedro Albuquerque Piotr Drąg Seong-ho Cho Sveinn í Felli Ting-Wei Lan Yosef Or Boczko 3.17.91 - Aaugust 29, 2015 ====================== Changes since 3.17.90.1 - Fix memory leaks in contacts handling - Make sure car routes gets correct icon - Added/updated/fixed translations: - Galician - French - Portuguese - Chinese (Taiwan) - Russian - Greek All contributors to this release: Alexandre Franke Chao-Hsiung Liao Fran Dieguez Jonas Danielsson Kalev Lember Pedro Albuquerque Tom Tryfonidis Yuri Myasoedov 3.17.90.1 - Aaugust 22, 2015 ====================== Changes since 3.17.90 - Fix up search popup list - Fix storing of transportation type of route - Some bugfixes - Added/updated/fixed translations: - Slovak - Spanish All contributors to this release: Daniel Mustieles Dušan Kazik Jonas Danielsson Zeeshan Ali (Khattak) 3.17.90 - Aaugust 16, 2015 ====================== Changes since 3.17.1 - Add new user-location icon - Add directional user-location icon - Show heading from Geoclue - Do not animate on 'what is here?' - Add support for Geo URI (RFC5870) in searchbar - Add 'Copy Geo URI' context menu item - Store and complete against recent routes - Added/updated/fixed translations: - zh_CN - Aragonese - Occitan - Portuguese - Icelandic - Catalan - Friulian All contributors to this release Cédric Valmary Damián Nohales Daniel Martinez Dean Chen Fabio Tomat Jakub Steiner Jonas Danielsson Jonas Danielsson Jordi Mas Marcus Lundblad Pedro Albuquerque Piotr Drąg Sveinn í Felli Zeeshan Ali (Khattak) 3.17.1 - April 29, 2015 ====================== Changes since 3.16.1 - Switch to template for more UI files - Do not use intltool to translate GSettings schema - Improve height of favorites popover All contributors to this release: Jonas Danielsson Mattias Bengtsson Emmanuele Bassi 3.16.1 - April 13, 2015 ======================= Changes since 3.16.0 - Provide a symbolic variant of the app icon - Add new appdata screenshots - Added/updated/fixed translations: - Catalan - Esperanto - Punjabi All contributors to this release: Andreas Nilsson A S Alam Jakub Steiner Jonas Danielsson Jordi Mas Kristjan SCHMIDT Txus Ordorika 3.16.0 - Mar 22, 2015 ======================= Changes since 3.15.92 - Fix links for Wikipedia - Added/updated/fixed translations: - Tajik - Serbian - German - Indonesian - Basque - Italian All contributors to this release: Andika Triwidada Benjamin Steinwender Claudio Arseni Inaki Larranaga Murgoitio Marcus Lundblad Victor Ibragimov Мирослав Николић 3.15.92 - Mar 16, 2015 ======================= Changes since 3.15.91: - Use proper location instead of nearest city when sending location to Weather - Fix bug with layer ordering that made it impossible to drag routes under accuracy circle - Fix Clutter/GTK event re-entrant dead-lock on right click - Added/updated/fixed translations: - Hungarian - Dutch - Czech - Slovenian - Kazakh - Polish - Turkish - Finnish - Bosnian - Danish - Korean All contributors to this release: Ask Hjorth Larsen Baurzhan Muftakhidinov Gábor Kelemen Giovanni Campagna hanniedu Jiri Grönroos Jonas Danielsson Marek Černocký Matej Urbančič Miguel Vaello Martínez Muhammet Kara Paweł Żołnowski Samir Ribic Seong-ho Cho 3.15.91 - Mar 1, 2015 ======================= Changes since 3.15.90.2: - Fix leak in libmaps geocode - Only add contacts that properly geocode to a location - Fix bug that fetched a route twice for each request - Fix event handling of clutter and GTK+ that lead to deadlock and freeze when you clicked the map - Fix being able to mark search results as favorites - Added/updated/fixed translations: - Slovak - Russian - Chinese (Taiwan) - Swedish - Brazilian Portugese - Greek - Ukrainian - Lithuanian - Galician - Hungarian All contributors to this release: Aurimas Černius Balázs Úr Chao-Hsiung Liao Daniel Korostil Diogo Campos Dominique Leuenberger Dušan Kazik Fran Dieguez Guillaume Bernard Jonas Danielsson Sebastian Rasmussen Stas Solovey Γιάννης Κουτσούκος 3.15.90.2 - Feb 17, 2015 ======================= Changes since 3.15.91: - Fix build for clang/FreeBSD All contributors to this releas: Ting-Wei Lan 3.15.90.1 - Feb 15, 2015 ======================= Changes since 3.15.90: - Install Maps C library into pkglibdir 3.15.90 - Feb 15, 2015 ======================= Changes since 3.15.4: - Show notification with link to privacy panel when location service is off - Only show user location marker when location service is enabled - Added a 'show-location' activation action, to show contacts in Maps. - Add contacts with geocodable addresses to the placeStore to allow completion in search - Added/updated/fixed translations: - Lithuanian - Hebrew - Greek - Slovak - Russian - Spanish - German - Czech - Norweigian bokmål - Esperanto All contributors to this release: Aurimas Černius Benjamin Steinwender Daniel Mustieles Dimitris Spingos Dušan Kazik Jonas Danielsson Kjartan Maraas Kristjan SCHMIDT Marek Černocký Mattias Bengtsson Stas Solovey Yosef Or Boczko 3.15.4 - Jan 16, 2014 ======================= Changes since 3.15.3.2: - Smarter filtering in favorites menu - Make opening hours translatable - Convert to "package.js" application convention - Add runtime dependency checks - Refresh place meta data if stale - Switch to new full color mark-location icon - Zoom in and center map marker on double-click - Added/updated/fixed translations: - Hungarian - Friulian - Indonesian - Basque - Greek - Czech - Ukrainian - Brazilian Portuguese - Galician - Spanish - Russian - German All contributors to this release: Andika Triwidada Balázs Úr Bastien Nocera Christian Kirbach Damián Nohales Daniel Korostil Daniel Mustieles Dimitris Spingos Fabio Tomat Fran Dieguez Inaki Larranaga Murgoitio Jonas Danielsson Marcus Lundblad Marek Černocký Rafael Ferreira Ricardo Barbosa Stas Solovey 3.15.3.2 - Dec 19, 2014 ======================= Changes since 3.15.3.1: - Fix bug with completion popup - Added/updated/fixed translations: - Spanish All contributors to this release: Daniel Mustieles Jonas Danielsson 3.15.3.1 - Dec 18, 2014 ======================= Changes since 3.15.3: - Use search popover for completion - Added/updated/fixed translations: - Spanish All contributors to this release: Daniel Mustieles Jonas Danielsson 3.15.2 - Dec 15, 2014 ======================= Changes since 3.15.2: - Remove 'I am here' menu item from context menu - Improve geoclue interaction somewhat - Use Overpass API to add meta data to map bubbles - Use HTTPS for GraphHopper service - Add drag-n-drop to route entries - Add check-in possibility to user location bubble (Facebook/Foursquare) - Added/updated/fixed translations: - Hebrew - Czech - Norwegian bokmål - Spanish - Hungarian - Romanian All contributors to this release: Balázs Úr Damián Nohales Daniel Mustieles Daniel Șerbănescu Jonas Danielsson Kjartan Maraas Marcus Lundblad Marek Černocký Mattias Bengtsson Yosef Or Boczko 3.15.2 - Nov 24, 2014 ======================= Changes since 3.14.1: - Add support for imperial units - Use proper GtkButtons for zoom control - Add a 'No network view' to show when Maps is disconnected - Added accelrator to grab focus on search - Added accelerator to open route planner. - Added route button to MapBubble - Enable panning by keyboard - Add extra info to search result bubbles: - Popuplation - Wikipedia - Opening hours - Wheelchair accesability - Improve the UI of the search result popover - Add 'share' button to MapBubbles to allow user to share location to weather and clocks. - Add favorites handling to main window and MapBubbles. - Added/updated/fixed translations: - Persian - Latvian - Kazakh - Spanish - Hebrew - Russian - Greek All contributors to this release: amishas157 Ankita Patil Arash Mousavi Baurzhan Muftakhidinov Damián Nohales Daniel Mustieles Efstathios Iosifidis Jonas Danielsson Kjartan Maraas Mattias Bengtsson Pedro Albuquerque rishirajsinghjhelumi Rūdolfs Mazurs Shipra Stas Solovey Yosef Or Boczko 3.14.1 - Oct 10, 2014 ======================= Changes since 3.14.0: - Fix issue where icons did not recolor on dark theme - Added/updated/fixed translations: - Italian - Chinese (Taiwan) - zh_CN - Nepali All contributor to this release: Claudio Arseni Jonas Danielsson Iris Gou Kalev Lember Cheng-Chia Tseng 3.14.0 - Sep 22, 2014 ======================= Changes since 3.13.92: - Added/updated/fixed translations: - Turkish - Nepali - Finnish - Danish - Polish - Ukrainian - Serbian All contributor to this release: Kenneth Nielsen Jiri Grönroos Pawan Chitrakar Muhammet Kara Daniel Korostil Paweł Żołnowski Мирослав Николић 3.13.92 - Sep 16, 2014 ======================= Changes since 3.13.91: Please help out and test this! Make sure that building it works fine on your workstation and report a bug if not! Click around in the instruction list of a found route to make sure we do not still segfault there! - Improve sidebar alignments - Fix default transportation mode bug - Make coordinates in entry editable - Do not forget route on sidebar hide - Hopefully a fix for non-consistent build error - Hopefully a fix for elusive segfault in sidebar - Default focus on entry in sidebar reveal - Fix for theme problem with instruction list - Added/updated/fixed translations: - Assamese - Galician - Hebrew - Spanish - Brazilian Portugese - Indonesian - Greek - Russian - German - Norwegian bokmål - Catalan - Catalan (Valencian) - Czech - Punjabi - Korean - Slovak - Lithuanian - Hungarian - Slovenian All contributor to this release: Andika Triwidada A S Alam Aurimas Černius Balázs Úr Carles Ferrando Christian Kirbach Damián Nohales Daniel Mustieles Dušan Kazik Enrico Nicoletto Fran Diéguez Gil Forcada Guillaume Bernard Jonas Danielsson Kjartan Maraas Marek Černocký Maria Mavridou Martin Srebotnjak Mattias Eriksson Nilamdyuti Goswami Seong-ho Cho Ville-Pekka Vainio Yosef Or Boczko Yuri Myasoedov 3.13.91 - Sep 2, 2014 ======================= Changes since 3.13.4: - Add high contrast icon of logo - Use kinetic scroll mode - Set correct desktopId for geoclue - Send correct argv/argc to GApplication - Fix bug where selecting from completion nullified placeEntry - Add content rich map markers and map bubbles based on GtkPopover - Add tooltips to GtkHeaderButtons - Add support for via points in routing - Added/updated/fixed translations: - Brazilian Portuguese - Spanish - Traditional Chinese - Japanese - Greek - Hebrew - Galician - Norwegian bokmål - Czech - Catalan (Valencian) - Lithuanian - Assamese All contributor to this release: Anders Jonsson Andreas Nilsson Aurimas Černius Carles Ferrando Chao-Hsiung Liao Damián Nohales Daniel Mustieles Dario Di Nucci Dominique Leuenberger Elad Alfassa Enrico Nicoletto Fran Diéguez Gil Forcada Hajime Taira Inaki Larranaga Murgoitio Jonas Danielsson Kjartan Maraas Marek Černocký Maria Mavridou MarMav Mattias Bengtsson ngoswami Olav Vitters Piotr Drąg Yosef Or Boczko 3.13.4 - Jul 19, 2014 ======================= Changes since 3.13.3: - Fix sidebar margin for LTR - Added/updated/fixed translations: - Hebrew - Russian - Spanish - Hungarian - Brazilian Portuguese All contributor to this release: Balázs Úr Daniel Mustieles Enrico Nicoletto Jonas Danielsson MarMav Yosef Or Boczko Yuri Myasoedov 3.13.3 - Jun 24, 2014 ======================= Changes since 3.13.2: - Added sidebar for route searching - Fix styling of popovers - Fix cleanup for make dist - Fixup AppData file - Added/updated/fixed translations: - Slovenian - Spanish - Lithuanian All contributors to this release: Aurimas Černius Damián Nohales Daniel Mustieles Jonas Danielsson Martin Srebotnjak Mattias Bengtsson Piotr Drąg Richard Hughes 3.13.2 - May 27, 2014 ======================= Changes since 3.12.0: - New popover based UI for layers menu. - Added in app notifications. - Make clicking the map grab focus to be able to remove on-screen keyboard on tablets. - Maps now DBus activatable. - Handle GeoClue2 service not available. - Added/updated/fixed translations: - Dutch - Slovak - Tajik - Japanese - Greek - Romanian - Korean - Catalan (Valencian) All contributors to this release: Carles Ferrando Daniel Șerbănescu Dario Di Nucci Dušan Kazik Erwin Poeze Ikuya Awashiro Jonas Danielsson marablack3 Mattias Bengtsson Piotr Drąg Richard Hughes rishirajsinghjhelumi Seong-ho Cho Victor Ibragimov Zeeshan Ali (Khattak) 3.12.0 - Mar 24, 2014 ======================= Changes since 3.11.92: - Added/updated/fixed translations: - Korean - Polish - Punjabi - Danish - Aragonese - Telugu - Slovenian - Basque - German - Serbian - Italian All contributors to this release: Claudio Arseni Мирослав Николић Benjamin Steinwender Inaki Larranaga Murgoitio Matej Urbančič Praveen Illa Daniel Martinez Ask H. Larsen A S Alam Paweł Żołnowski Seong-ho Cho 3.11.92 - Mar 17, 2014 ======================= Changes since 3.11.91: - Enable keyboard navigation in search results popover. - Make clicking the map grab focus and dismiss on screen keyboard. - Added/updated/fixed translations: - Finnish - Hebrew - Ukrainian - French - Indonesian - Portuguese - Catalan - Russian - Traditional Chinese (Hong Kong and Taiwan) - Lithuanian - Chinese (China) - Latvian - Czech - Galician - Brazilian - Spanish - Norwegian bokmål - Hungarian All contributors to this release: Andika Triwidada Aurimas Černius Balázs Úr Chao-Hsiung Liao Claude Paroz Damián Nohales Daniel Korostil Daniel Mustieles Dario Di Nucci Duarte Loreto Fran Diéguez Gil Forcada Jonas Danielsson Kjartan Maraas Marek Černocký Rafael Ferreira Rūdolfs Mazurs Seong-ho Cho Tiagosdot Ville-Pekka Vainio Wylmer Wang Yaron Shahrabani Yuri Myasoedov 3.11.91 - Mar 2, 2014 ======================= Changes since 3.11.90: - Update about dialog. - Fix a bug that could put Maps in an endless loop. - Fix a 'make distcheck' bug. - Use markup for superscripts. - Added/updated/fixed translations: - Arabic - Catalan - Finnish - Swedish All contributors to this release: Jonas Danielsson Khaled Hosny Marcus Lundblad Mattias Bengtsson Pau Iranzo Ville-Pekka Vainio 3.11.90 - Feb 18, 2014 ======================= Changes since 3.11.5.1: - Make the search results show in a GtkPopover. - Fix a bug where search result spinner sometimes wouldn't be centered. - Add Jonas Danielsson to maintainer's list. - Added/updated/fixed translations: - Assamese - Ukrainian - French - Aragonese All contributors to this release: Claude Paroz Daniel Korostil Jonas Danielsson Jorge Pérez Pérez Mattias Bengtsson ngoswami Zeeshan Ali (Khattak) 3.11.5.1 - Feb 05, 2014 ======================= Changes since 3.11.5: - Fix some compiler warnings. All contributors to this release: Ting-Wei Lan Zeeshan Ali (Khattak) 3.11.5 - Feb 04, 2014 ===================== Changes since 3.11.4.1: - Much smoother goto animations. - Avoid a redundant zoom-out at end of goto animations by making use of new geocode-glib and libchamplain API. - Make Maps work against geoclue 2.1.x and latest gtk+. - If accuracy area is less than 1, show 'exact' instead of '0 km2'. - Explicitly specify desired accuracy level to geoclue. - Update website URL in AppData file. - Make gnome-maps executable a real binary. - Update recent added time on re-visits. - Fix a compiler warning. - Added/updated/fixed translations: - Brazilian Portuguese - Chinese simplified - Czech - Galician - Hebrew - Lithuanian - Norwegian - Slovenian - Spanish - Tajik - Telugu - Traditional Chinese (Hong Kong and Taiwan) Dependency-related changes: - Require gio-2.0 >= 2.39.3 - Require gjs-1.0 >= 1.39.0 - Require geocode-glib >= 3.11.5 (runtime-only) - Require libchamplain >= 0.12.6 (runtime-only) All contributors to this release: Andreas Nilsson Aurimas Černius Chao-Hsiung Liao Colin Walters Daniel Mustieles Fran Diéguez Jonas Danielsson Kjartan Maraas Marek Černocký Matej Urbančič Mattias Bengtsson Piotr Drąg Rafael Ferreira Tong Hui Victor Ibragimov Yosef Or Boczko Zeeshan Ali (Khattak) 3.11.4.1 - Jan 14, 2014 ======================= Changes since 3.11.4: - Provide completion for search based on recently used search results. All contributors to this release: Jonas Danielsson Mattias Bengtsson Zeeshan Ali (Khattak) 3.11.4 - Jan 14, 2014 ===================== Changes since 3.11.2: - Set saner minimum zoom level on the map view. - Added/updated/fixed translations: - Czech - Malayalam - Kannada - Slovak - Friulian - German - Esperanto All contributors to this release: Balasankar C Benjamin Steinwender Dušan Kazik Fabio Tomat Jonas Danielsson Marek Černocký Matthew Chisholm Shankar Prasad 3.11.2 - Nov 19, 2013 ===================== Changes since 3.10.0: - Default focus on search entry. - Clearer dconf key descriptions. - Use Unicode quotation marks and apostrophes. - Added/updated/fixed translations: - Afrikaans - Arabic - Basque - Brazilian Portuguese - Catalan (Valencian) - Chinese simplified - Danish - Dutch - Galician - Greek - Italian - Lithuanian - Malayalam - Norwegian bokmål - Persian - Slovenian - Spanish - Swedish - Tajik - Telugu - Turkish All contributors to this release: Anish A Arash Mousavi Aurimas Černius Carles Ferrando Claudio Arseni Daniel Mustieles Dawid Loubser Efstathios Iosifidis Emin Tufan Çetin Fran Diéguez Friedel Wolff Inaki Larranaga Murgoitio Jonas Danielsson Kenneth Nielsen Khaled Hosny Kjartan Maraas Marcus Lundblad Matej Urbančič Mattias Bengtsson Philip Withnall Praveen Illa Rafael Ferreira Reinout van Schouwen Tim Lunn Victor Ibragimov Zeeshan Ali (Khattak) tuhaihe <1132321739qq@gmail.com> 3.10.0 - Sep 23, 2013 ===================== Changes since 3.9.92: - Added/updated/fixed translations: - Arabic - Assamese - Catalan - Esperanto - Estonian - German - Japanese - Norwegian bokmål - Portuguese - Ukranian All contributors to this release: António Lima Benjamin Steinwender Daniel Korostil Jiro Matsuzawa Josep Sanchez Mesegue Khaled Hosny Kjartan Maraas Kristjan SCHMIDT Mattias Põldaru Nilamdyuti Goswami Priit Laes Zeeshan Ali (Khattak) 3.9.92 - Sep 16, 2013 ===================== Changes since 3.9.91: - Fix issue of Maps not updating user's location at first time launch. - Fix the awkward looking and slow goto animation and make it linear and fast. - Don't point to inexistent directories in gnome-maps script. - Mark two forgotten strings for translation. - Add some comments for translators. - Assamese - Basque - Brazilian Portuguese - British English - Czech - Danish - Dutch - Finnish - Finnish - French - Galician - German - Hungarian - Indonesian - Italian - Korean - Latvian - Lithuanian - Norwegian bokmål - Polish - Punjabi - Russian - Serbian - Slovak - Slovenian - Spanish - Tajik - Traditional Chinese All contributors to this release: Alexandre Franke Andika Triwidada A S Alam Aurimas Černius Balázs Úr Chao-Hsiung Liao Claudio Arseni Daniel Mustieles Dušan Kazik Enrico Nicoletto Fran Diéguez Gabor Kelemen Jonas Danielsson Kalev Lember Kjartan Maraas Kris Thomsen Marek Černocký Martin Srebotnjak Matej Urbančič Nilamdyuti Goswami Philip Withnall Piotr Drąg Reinout van Schouwen Rūdolfs Mazurs Seong-ho Cho Timo Jyrinki Tobias Endrigkeit Victor Ibragimov Ville-Pekka Vainio Yosef Or Boczko Yuri Myasoedov Zeeshan Ali (Khattak) Мирослав Николић 3.9.91 - Sep 03, 2013 ===================== Changes since 3.9.90.2: - Provide an AppData file for GNOME software center. - Improved search results popup: - Add a scroll window to not fill screen with results. - Show place icons when available for user to be able to differentiate between results. - Show a spinner when search is on going. - Show matched part of results in bold fonts. - Add a context menu with two options: - "What's here?": Finds the name of the place at cursor position. - "I'm here": Corrects/changes Maps' idea of where user is currently. - Gracefully handle markup in search results. - Fix build against latest gnome-common. - Added/updated/fixed translations: - Brazilian Portuguese - Czech - Esperanto - Galician - Hungarian - Irish - Polish - Slovenian - Spanish - Tajik - UK Dependency-related changes: - Adapt to, and depend on GeoClue >= 1.99.3. All contributors to this release: Andreas Nilsson Balázs Úr Daniel Korostil Daniel Mustieles Enrico Nicoletto Fran Diéguez Georges Basile Stavracas Neto Jonas Danielsson Kalev Lember Marek Černocký Matej Urbančič Piotr Drąg Ryan Lortie Seán de Búrca Victor Ibragimov Zeeshan Ali (Khattak) 3.9.90.2 - Aug 23, 2013 ======================= Changes since 3.9.90.1: - Drop usage of Geoclue library as its going to be dropped in Geoclue 1.99.2. - Update Polish translation. All contributors to this release: Piotr Drąg Zeeshan Ali (Khattak) 3.9.90.1 - Aug 20, 2013 ======================= Brown paperbag release for also updating version in configure/build. 3.9.90 - Aug 20, 2013 ===================== Changes since 3.9.5: - Search results are shown in a popup menu rather than as markers on the map. - Draw window decorations client-side, following the new GNOME3 trend. - The user location button is no longer a toggle. - Add buttons and key bindings for zooming in and out. - Added/updated/fixed translations: - Chinese simplified - Danish Dependency-related changes: - Adapt to, and depend on GeoClue >= 1.99.1. All contributors to this release: Andrea Veri Jonas Danielsson Kenneth Nielsen Kris Thomsen Mattias Bengtsson tuhaihe <1132321739qq@gmail.com> Yosef Or Boczko Zeeshan Ali (Khattak) 3.9.5 - Jul 31, 2013 ==================== First public release. 07070100000005000081A40000000000000000000000016641340900000284000000000000000000000000000000000000001800000000gnome-maps-46.11/READMEMaps is a map application for the GNOME desktop powered by OpenStreetMap. Find places from all over the globe. More information is available at https://apps.gnome.org/Maps/ This application is written in Javascript. # License Except where otherwise noted, Maps is licensed under the GNU General Public License version 2 or later. See the COPYING file for details. A few files are instead licensed under the GNU Lesser General Public License version 2.1 or later. This is reflected in those files' copyright headers. Some files have been copied from other projects and have different licenses. See their respective LICENSE files for details. 07070100000006000041ED0000000000000000000000026641340900000000000000000000000000000000000000000000001600000000gnome-maps-46.11/data07070100000007000081A40000000000000000000000016641340900000059000000000000000000000000000000000000002A00000000gnome-maps-46.11/data/gnome-maps-dark.css/* Overlay controls for zoom */ button.card.circular { background: alpha(black, .8); } 07070100000008000081A400000000000000000000000166413409000009DA000000000000000000000000000000000000002500000000gnome-maps-46.11/data/gnome-maps.css#dragged-entry { color: #939695; } .layer-radio-button { background-image: none; padding: 0; border: 1px solid @insensitive_borders; outline-width: 1px; } .layer-radio-button:checked { border: 2px solid @suggested_action_button_a; } #zoom-in-button, #zoom-out-button { font-weight: bold; } #sidebar-entry-list, #sidebar-entry-list .list-row:hover { background-color: transparent; } #sidebar-entry-list .list-row:focus { outline: 0; } #sidebar-entry-list > GtkLabel { padding-right: 6px; } #sidebar-entry-list > GtkLabel:dir(rtl) { padding-left: 6px; } #sidebar-entry-list .transportation-mode-button > GtkImage { padding: 4px 7px; } #sidebar { border-left: 1px solid @borders; } #sidebar:dir(rtl) { border-right: 1px solid @borders; } #sidebar grid.frame { border-width: 1px 0; } #instruction-list { border-right: 0px; border-left: 0px; } #instruction-box > GtkImage { padding-right: 6px; padding-left: 6px; } .map-bubble contents { /* This is so the Wikipedia image is flush against the borders of the popover */ padding: 0; } .no-margin-separator { /* A separator with no margin, so it's flush with the widgets/borders around it */ margin: 0; } .bubble-title { font-size: large; font-weight: bold; } .small-label, .bubble-content, .bubble-subtitle { font-size: small; } .shaded { background-color: alpha(black, 0.1); border-bottom: 1px solid alpha(black, 0.2); } .route-label { padding-left: 3px; padding-right: 3px; padding-top: 3px; padding-bottom: 3px; min-width: 16px; min-height: 16px; font-size: smaller; } .small-circular { border-radius: 14px; min-width: 14px; min-height: 14px; padding: 0px 0px; background-color: transparent; } .suggestions { padding-top: 6px; } .dropdown-searchbar { padding: 6px; border-bottom: 1px solid @borders; } popover.suggestions list > row:hover { background-color: alpha(currentColor, .04); } popover.suggestions list > row:active { background-color: alpha(currentColor, .08); } popover.suggestions list > row:selected { background-color: alpha(currentColor, .1); } popover.suggestions list > row:selected:hover { background-color: alpha(currentColor, .13); } popover.suggestions list > row:selected:active { background-color: alpha(currentColor, .19); } label.italic { font-style: italic; } /* Overlay controls for zoom */ button.card.circular { min-width: 42px; min-height: 42px; } 07070100000009000041ED0000000000000000000000026641340900000000000000000000000000000000000000000000001C00000000gnome-maps-46.11/data/icons0707010000000A000081A4000000000000000000000001664134090000026A000000000000000000000000000000000000002800000000gnome-maps-46.11/data/icons/meson.build# install the app icon (the regular or .Devel one) install_data( join_paths('public', 'hicolor', 'scalable', 'apps', app_id + '.svg'), install_dir: join_paths(datadir, 'icons', 'hicolor', 'scalable', 'apps') ) # install the symbolic app icon with the current name (optionally with .Devel suffix) install_data( join_paths('public', 'hicolor', 'symbolic', 'apps', 'org.gnome.Maps-symbolic.svg'), install_dir: join_paths(datadir, 'icons', 'hicolor', 'symbolic', 'apps'), rename: '@0@-symbolic.svg'.format(app_id) ) install_subdir( join_paths('private', 'hicolor'), install_dir: join_paths(pkgdatadir, 'icons') ) 0707010000000B000041ED0000000000000000000000026641340900000000000000000000000000000000000000000000002400000000gnome-maps-46.11/data/icons/private0707010000000C000041ED0000000000000000000000026641340900000000000000000000000000000000000000000000002C00000000gnome-maps-46.11/data/icons/private/hicolor0707010000000D000041ED0000000000000000000000026641340900000000000000000000000000000000000000000000003200000000gnome-maps-46.11/data/icons/private/hicolor/16x160707010000000E000041ED0000000000000000000000026641340900000000000000000000000000000000000000000000003700000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps0707010000000F000081A4000000000000000000000001664134090000068D000000000000000000000000000000000000005000000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/anniversary-symbolic.svg 07070100000010000081A4000000000000000000000001664134090000085E000000000000000000000000000000000000005100000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/arrow1-right-symbolic.svg 07070100000011000081A4000000000000000000000001664134090000027C000000000000000000000000000000000000005400000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/arrow2-top-left-symbolic.svg 07070100000012000081A4000000000000000000000001664134090000027F000000000000000000000000000000000000005500000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/arrow2-top-right-symbolic.svg 07070100000013000081A4000000000000000000000001664134090000018C000000000000000000000000000000000000004900000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/bank-symbolic.svg 07070100000014000081A4000000000000000000000001664134090000021A000000000000000000000000000000000000004800000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/bar-symbolic.svg 07070100000015000081A400000000000000000000000166413409000011E2000000000000000000000000000000000000004D00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/barbecue-symbolic.svg 07070100000016000081A40000000000000000000000016641340900000BED000000000000000000000000000000000000004B00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/barber-symbolic.svg 07070100000017000081A400000000000000000000000166413409000003EA000000000000000000000000000000000000004D00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/baseball-symbolic.svg 07070100000018000081A40000000000000000000000016641340900015405000000000000000000000000000000000000004800000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/bed-symbolic.svg image/svg+xml Gnome Symbolic Icon Theme Gnome Symbolic Icon Theme 07070100000019000081A400000000000000000000000166413409000153E0000000000000000000000000000000000000004A00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/bench-symbolic.svg image/svg+xml Gnome Symbolic Icon Theme Gnome Symbolic Icon Theme 0707010000001A000081A40000000000000000000000016641340900000CDC000000000000000000000000000000000000005400000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/bicycle-parking-symbolic.svg 0707010000001B000081A40000000000000000000000016641340900000CFF000000000000000000000000000000000000004E00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/bookmarks-symbolic.svg image/svg+xml 0707010000001C000081A400000000000000000000000166413409000006B9000000000000000000000000000000000000004A00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/bread-symbolic.svg 0707010000001D000081A400000000000000000000000166413409000001E9000000000000000000000000000000000000004E00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/briefcase-symbolic.svg 0707010000001E000081A40000000000000000000000016641340900000A3E000000000000000000000000000000000000004A00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/brush-symbolic.svg 0707010000001F000081A40000000000000000000000016641340900000581000000000000000000000000000000000000004E00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/build-alt-symbolic.svg 07070100000020000081A40000000000000000000000016641340900015BFB000000000000000000000000000000000000004D00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/building-symbolic.svg image/svg+xml Gnome Symbolic Icon Theme Gnome Symbolic Icon Theme 07070100000021000081A40000000000000000000000016641340900000A1E000000000000000000000000000000000000004800000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/bus-symbolic.svg 07070100000022000081A4000000000000000000000001664134090000080C000000000000000000000000000000000000004900000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/cafe-symbolic.svg 07070100000023000081A40000000000000000000000016641340900000CA7000000000000000000000000000000000000004800000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/cat-symbolic.svg 07070100000024000081A40000000000000000000000016641340900000FC6000000000000000000000000000000000000005100000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/circle-small-symbolic.svg 07070100000025000081A40000000000000000000000016641340900000500000000000000000000000000000000000000004900000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/city-symbolic.svg 07070100000026000081A40000000000000000000000016641340900000A8D000000000000000000000000000000000000005300000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/clothing-store-symbolic.svg 07070100000027000081A40000000000000000000000016641340900000485000000000000000000000000000000000000004900000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/coin-symbolic.svg 07070100000028000081A400000000000000000000000166413409000006D4000000000000000000000000000000000000004C00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/cycling-symbolic.svg 07070100000029000081A40000000000000000000000016641340900000B7A000000000000000000000000000000000000004C00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/dentist-symbolic.svg 0707010000002A000081A40000000000000000000000016641340900000A37000000000000000000000000000000000000004B00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/doctor-symbolic.svg 0707010000002B000081A40000000000000000000000016641340900000420000000000000000000000000000000000000004800000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/dog-symbolic.svg 0707010000002C000081A40000000000000000000000016641340900000ADD000000000000000000000000000000000000005600000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/drinking-fountain-symbolic.svg 0707010000002D000081A40000000000000000000000016641340900000231000000000000000000000000000000000000004B00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/drinks-symbolic.svg 0707010000002E000081A40000000000000000000000016641340900000FBC000000000000000000000000000000000000004C00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/driving-symbolic.svg 0707010000002F000081A400000000000000000000000166413409000008CD000000000000000000000000000000000000004A00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/earth-symbolic.svg 07070100000030000081A400000000000000000000000166413409000153B7000000000000000000000000000000000000005100000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/electric-car-symbolic.svg image/svg+xml Gnome Symbolic Icon Theme Gnome Symbolic Icon Theme 07070100000031000081A40000000000000000000000016641340900000377000000000000000000000000000000000000004D00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/exit-symbolic-rtl.svg 07070100000032000081A40000000000000000000000016641340900000374000000000000000000000000000000000000004900000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/exit-symbolic.svg 07070100000033000081A40000000000000000000000016641340900000166000000000000000000000000000000000000005100000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/explore-symbolic copy.svg 07070100000034000081A4000000000000000000000001664134090001556A000000000000000000000000000000000000004C00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/explore-symbolic.svg image/svg+xml Gnome Symbolic Icon Theme Gnome Symbolic Icon Theme 07070100000035000081A400000000000000000000000166413409000008EA000000000000000000000000000000000000005D00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/eye-open-negative-filled-symbolic.svg 07070100000036000081A400000000000000000000000166413409000006DD000000000000000000000000000000000000004E00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/fast-food-symbolic.svg 07070100000037000081A40000000000000000000000016641340900000A18000000000000000000000000000000000000004A00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/ferry-symbolic.svg 07070100000038000081A400000000000000000000000166413409000002BD000000000000000000000000000000000000005000000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/firefighter-symbolic.svg 07070100000039000081A400000000000000000000000166413409000001DC000000000000000000000000000000000000005000000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/flag-filled-symbolic.svg 0707010000003A000081A400000000000000000000000166413409000002A8000000000000000000000000000000000000005700000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/flag-outline-thick-symbolic.svg 0707010000003B000081A40000000000000000000000016641340900000311000000000000000000000000000000000000004B00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/flying-symbolic.svg 0707010000003C000081A40000000000000000000000016641340900000400000000000000000000000000000000000000005600000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/football-american-symbolic.svg 0707010000003D000081A400000000000000000000000166413409000009F1000000000000000000000000000000000000004D00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/football-symbolic.svg 0707010000003E000081A400000000000000000000000166413409000157C3000000000000000000000000000000000000004900000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/fuel-symbolic.svg image/svg+xml Gnome Symbolic Icon Theme Gnome Symbolic Icon Theme 0707010000003F000081A4000000000000000000000001664134090000039B000000000000000000000000000000000000004E00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/funicular-symbolic.svg 07070100000040000081A40000000000000000000000016641340900000B76000000000000000000000000000000000000004C00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/gamepad-symbolic.svg 07070100000041000081A40000000000000000000000016641340900000C2A000000000000000000000000000000000000004900000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/gate-symbolic.svg 07070100000042000081A40000000000000000000000016641340900000523000000000000000000000000000000000000004900000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/golf-symbolic.svg 07070100000043000081A40000000000000000000000016641340900000787000000000000000000000000000000000000004C00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/gondola-symbolic.svg 07070100000044000081A400000000000000000000000166413409000001E5000000000000000000000000000000000000004E00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/graveyard-symbolic.svg 07070100000045000081A40000000000000000000000016641340900000AFD000000000000000000000000000000000000004F00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/headphones-symbolic.svg 07070100000046000081A400000000000000000000000166413409000003E3000000000000000000000000000000000000004B00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/hockey-symbolic.svg 07070100000047000081A40000000000000000000000016641340900015460000000000000000000000000000000000000005200000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/hospital-sign-symbolic.svg image/svg+xml Gnome Symbolic Icon Theme Gnome Symbolic Icon Theme 07070100000048000081A40000000000000000000000016641340900015842000000000000000000000000000000000000004D00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/hospital-symbolic.svg image/svg+xml Gnome Symbolic Icon Theme Gnome Symbolic Icon Theme 07070100000049000081A40000000000000000000000016641340900000E0F000000000000000000000000000000000000005200000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/icecream-cone-symbolic.svg 0707010000004A000081A400000000000000000000000166413409000014BF000000000000000000000000000000000000005600000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/layer-not-visible-symbolic.svg image/svg+xml 0707010000004B000081A40000000000000000000000016641340900000FDF000000000000000000000000000000000000005200000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/layer-visible-symbolic.svg image/svg+xml 0707010000004C000081A40000000000000000000000016641340900000BBB000000000000000000000000000000000000005200000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/layers-button-symbolic.svg image/svg+xml 0707010000004D000081A400000000000000000000000166413409000002EF000000000000000000000000000000000000004C00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/library-symbolic.svg 0707010000004E000081A40000000000000000000000016641340900000674000000000000000000000000000000000000004900000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/loaf-symbolic.svg 0707010000004F000081A40000000000000000000000016641340900000B39000000000000000000000000000000000000004F00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/map-marker-symbolic.svg image/svg+xml Gnome Symbolic Icon Theme Gnome Symbolic Icon Theme 07070100000050000081A400000000000000000000000166413409000023F6000000000000000000000000000000000000005300000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/maps-point-end-symbolic.svg image/svg+xml 07070100000051000081A40000000000000000000000016641340900004288000000000000000000000000000000000000004A00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/maps-point-end.svg image/svg+xml 07070100000052000081A400000000000000000000000166413409000028C0000000000000000000000000000000000000005500000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/maps-point-start-symbolic.svg image/svg+xml 07070100000053000081A40000000000000000000000016641340900002C5C000000000000000000000000000000000000004C00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/maps-point-start.svg image/svg+xml 07070100000054000081A4000000000000000000000001664134090000024C000000000000000000000000000000000000004C00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/meeting-symbolic.svg 07070100000055000081A400000000000000000000000166413409000000CE000000000000000000000000000000000000004D00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/mountain-symbolic.svg 07070100000056000081A400000000000000000000000166413409000005BA000000000000000000000000000000000000004B00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/museum-symbolic.svg 07070100000057000081A40000000000000000000000016641340900000258000000000000000000000000000000000000004F00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/music-note-symbolic.svg 07070100000058000081A400000000000000000000000166413409000002E5000000000000000000000000000000000000005300000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/navigate-north-symbolic.svg 07070100000059000081A400000000000000000000000166413409000009B1000000000000000000000000000000000000004E00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/newspaper-symbolic.svg 0707010000005A000081A40000000000000000000000016641340900001DF1000000000000000000000000000000000000004F00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/no-toilets-symbolic.svg image/svg+xml Gnome Symbolic Icon Theme Gnome Symbolic Icon Theme 0707010000005B000081A40000000000000000000000016641340900002810000000000000000000000000000000000000005200000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/no-wheelchair-symbolic.svg image/svg+xml Gnome Symbolic Icon Theme Gnome Symbolic Icon Theme 0707010000005C000081A40000000000000000000000016641340900000793000000000000000000000000000000000000005B00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/non-religious-cemetary-symbolic.svg image/svg+xmlGnome Symbolic Icon ThemeGnome Symbolic Icon Themenon-religious-cemetary 0707010000005D000081A40000000000000000000000016641340900000479000000000000000000000000000000000000004E00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/open-book-symbolic.svg 0707010000005E000081A4000000000000000000000001664134090000051E000000000000000000000000000000000000005600000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/package-x-generic-symbolic.svg 0707010000005F000081A40000000000000000000000016641340900015534000000000000000000000000000000000000005100000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/parking-sign-symbolic.svg image/svg+xml Gnome Symbolic Icon Theme Gnome Symbolic Icon Theme 07070100000060000081A400000000000000000000000166413409000150D2000000000000000000000000000000000000004C00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/penguin-symbolic.svg image/svg+xml Gnome Symbolic Icon Theme Gnome Symbolic Icon Theme 07070100000061000081A40000000000000000000000016641340900000A72000000000000000000000000000000000000004D00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/pharmacy-symbolic.svg 07070100000062000081A40000000000000000000000016641340900001756000000000000000000000000000000000000005400000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/phone-oldschool-symbolic.svg image/svg+xml Gnome Symbolic Icon Theme Gnome Symbolic Icon Theme 07070100000063000081A40000000000000000000000016641340900000900000000000000000000000000000000000000004F00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/phonelink2-symbolic.svg 07070100000064000081A40000000000000000000000016641340900014B89000000000000000000000000000000000000005100000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/photo-camera-symbolic.svg image/svg+xml Gnome Symbolic Icon Theme Gnome Symbolic Icon Theme 07070100000065000081A40000000000000000000000016641340900000E79000000000000000000000000000000000000005200000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/police-badge2-symbolic.svg 07070100000066000081A4000000000000000000000001664134090001546C000000000000000000000000000000000000004D00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/post-box-symbolic.svg image/svg+xml Gnome Symbolic Icon Theme Gnome Symbolic Icon Theme 07070100000067000081A40000000000000000000000016641340900000585000000000000000000000000000000000000004800000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/pub-symbolic.svg 07070100000068000081A40000000000000000000000016641340900000C14000000000000000000000000000000000000005200000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/recycling-bin-symbolic.svg 07070100000069000081A4000000000000000000000001664134090001598B000000000000000000000000000000000000004F00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/restaurant-symbolic.svg image/svg+xml Gnome Symbolic Icon Theme Gnome Symbolic Icon Theme 0707010000006A000081A400000000000000000000000166413409000006E9000000000000000000000000000000000000004F00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/route-bike-symbolic.svg 0707010000006B000081A40000000000000000000000016641340900000CF3000000000000000000000000000000000000005100000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/route-button-symbolic.svg image/svg+xml 0707010000006C000081A40000000000000000000000016641340900000957000000000000000000000000000000000000004E00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/route-car-symbolic.svg 0707010000006D000081A40000000000000000000000016641340900000626000000000000000000000000000000000000005500000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/route-pedestrian-symbolic.svg 0707010000006E000081A400000000000000000000000166413409000013A2000000000000000000000000000000000000005200000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/route-reverse-symbolic.svg image/svg+xml Gnome Symbolic Icon Theme Gnome Symbolic Icon Theme 0707010000006F000081A400000000000000000000000166413409000001CE000000000000000000000000000000000000005B00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/route-transit-airplane-symbolic.svg 07070100000070000081A40000000000000000000000016641340900000A42000000000000000000000000000000000000005600000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/route-transit-bus-symbolic.svg 07070100000071000081A4000000000000000000000001664134090000035B000000000000000000000000000000000000005B00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/route-transit-cablecar-symbolic.svg 07070100000072000081A40000000000000000000000016641340900000A5B000000000000000000000000000000000000005800000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/route-transit-ferry-symbolic.svg 07070100000073000081A400000000000000000000000166413409000003CB000000000000000000000000000000000000005C00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/route-transit-funicular-symbolic.svg 07070100000074000081A40000000000000000000000016641340900000798000000000000000000000000000000000000005E00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/route-transit-gondolalift-symbolic.svg 07070100000075000081A40000000000000000000000016641340900000990000000000000000000000000000000000000005900000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/route-transit-subway-symbolic.svg 07070100000076000081A4000000000000000000000001664134090000077C000000000000000000000000000000000000005200000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/route-transit-symbolic.svg 07070100000077000081A400000000000000000000000166413409000006FF000000000000000000000000000000000000006000000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/route-transit-tourist-train-symbolic.svg 07070100000078000081A4000000000000000000000001664134090000077C000000000000000000000000000000000000005800000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/route-transit-train-symbolic.svg 07070100000079000081A40000000000000000000000016641340900000725000000000000000000000000000000000000005700000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/route-transit-tram-symbolic.svg 0707010000007A000081A40000000000000000000000016641340900000A7F000000000000000000000000000000000000004B00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/salami-symbolic.svg 0707010000007B000081A40000000000000000000000016641340900015689000000000000000000000000000000000000004B00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/school-symbolic.svg image/svg+xml Gnome Symbolic Icon Theme Gnome Symbolic Icon Theme 0707010000007C000081A400000000000000000000000166413409000004A1000000000000000000000000000000000000005800000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/sentiment-satisfied-symbolic.svg 0707010000007D000081A40000000000000000000000016641340900000459000000000000000000000000000000000000004A00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/share-symbolic.svg 0707010000007E000081A40000000000000000000000016641340900000FCD000000000000000000000000000000000000004900000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/shop-symbolic.svg 0707010000007F000081A400000000000000000000000166413409000159FF000000000000000000000000000000000000005200000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/shopping-cart-symbolic.svg image/svg+xml Gnome Symbolic Icon Theme Gnome Symbolic Icon Theme 07070100000080000081A4000000000000000000000001664134090000031B000000000000000000000000000000000000004F00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/smartphone-symbolic.svg 07070100000081000081A400000000000000000000000166413409000000D8000000000000000000000000000000000000004A00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/steps-symbolic.svg 07070100000082000081A400000000000000000000000166413409000005B0000000000000000000000000000000000000004B00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/tennis-symbolic.svg 07070100000083000081A40000000000000000000000016641340900000664000000000000000000000000000000000000004C00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/theater-symbolic.svg 07070100000084000081A4000000000000000000000001664134090000025F000000000000000000000000000000000000005300000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/ticket-special-symbolic.svg 07070100000085000081A400000000000000000000000166413409000002B5000000000000000000000000000000000000004B00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/ticket-symbolic.svg 07070100000086000081A40000000000000000000000016641340900001AF5000000000000000000000000000000000000004C00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/toilets-symbolic.svg image/svg+xml Gnome Symbolic Icon Theme Gnome Symbolic Icon Theme 07070100000087000081A40000000000000000000000016641340900000473000000000000000000000000000000000000004900000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/town-symbolic.svg 07070100000088000081A4000000000000000000000001664134090000109E000000000000000000000000000000000000005300000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/traffic-lights-symbolic.svg 07070100000089000081A4000000000000000000000001664134090000073A000000000000000000000000000000000000004A00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/train-symbolic.svg 0707010000008A000081A40000000000000000000000016641340900000701000000000000000000000000000000000000004900000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/tram-symbolic.svg 0707010000008B000081A400000000000000000000000166413409000154E2000000000000000000000000000000000000004900000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/tree-symbolic.svg image/svg+xml Gnome Symbolic Icon Theme Gnome Symbolic Icon Theme 0707010000008C000081A40000000000000000000000016641340900000428000000000000000000000000000000000000004F00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/user-trash-symbolic.svg 0707010000008D000081A40000000000000000000000016641340900015104000000000000000000000000000000000000005100000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/video-camera-symbolic.svg image/svg+xml Gnome Symbolic Icon Theme Gnome Symbolic Icon Theme 0707010000008E000081A4000000000000000000000001664134090000033F000000000000000000000000000000000000004C00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/weight2-symbolic.svg 0707010000008F000081A40000000000000000000000016641340900002648000000000000000000000000000000000000005700000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/wheelchair-limited-symbolic.svg image/svg+xml Gnome Symbolic Icon Theme Gnome Symbolic Icon Theme 07070100000090000081A4000000000000000000000001664134090000069B000000000000000000000000000000000000004F00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/wheelchair-symbolic.svg 07070100000091000081A40000000000000000000000016641340900000857000000000000000000000000000000000000004F00000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/wine-glass-symbolic.svg 07070100000092000081A40000000000000000000000016641340900000962000000000000000000000000000000000000005000000000gnome-maps-46.11/data/icons/private/hicolor/16x16/apps/wrench-wide-symbolic.svg 07070100000093000041ED0000000000000000000000026641340900000000000000000000000000000000000000000000003200000000gnome-maps-46.11/data/icons/private/hicolor/24x2407070100000094000041ED0000000000000000000000026641340900000000000000000000000000000000000000000000003700000000gnome-maps-46.11/data/icons/private/hicolor/24x24/apps07070100000095000081A40000000000000000000000016641340900000512000000000000000000000000000000000000005100000000gnome-maps-46.11/data/icons/private/hicolor/24x24/apps/user-location-compass.pngPNG  IHDRw=sBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<IDATH]lSeYWJ۵Xd ðM4h  `B &t1xA # tU 0`d(6=^667ys} 3"F{ܺ\ĉBv25ݷ|ҺL~-W"ҬLsb*OU-Zl- SJLHxs" ߫+aktm`/ ʹP9k˟9LV9s]J k+@`RaM1>2ЭUB->_tx~9vưլEvHI3ϔŹ絟*3e^.=.)5_d0:<^yՋN<(2 ߭m8@QY"㍊Elݴ,Nv㣆[؎/N(Kx)۪DZ]hh霪C8kGEa EZ#㽮O|`FN7S?ҡk{,$PHl;JnP<M!UɖIi-M> H:D\pN)'k9A' ԉpBNªpfgLkRచ03Oi" )cF5`GgZJ*a-BQ0}1[_Wi3jHw$kJN쩞)?U](&@ҦbqzR`B0Bx|g?N ̈́_!8{1. L(Iu_8,UW^,0DG_@^RGo&<"%Q5owLȢz,Ra9[ʕ]v\ḛg R.\['>2.^~F%˝,aThby9?Hh{ 㒄Ŭ`'zM 37i&2\NH) b"(>Kض $? +&fj~}*P+4ݝIENDB`07070100000096000081A40000000000000000000000016641340900000404000000000000000000000000000000000000004900000000gnome-maps-46.11/data/icons/private/hicolor/24x24/apps/user-location.pngPNG  IHDRw=sBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<IDATH]LeO-e.T9ؖ- 3vcb&b5fw%&,#j aKLZ7PB[(+}/Ms<99DUĪ%lJ(T/Ozb/)GuR|$Jc خFc๝ܕû1mxLg=eIra3 g&b`y-e7n~yt/nP&92]F?'"~FVz: 5o_0ڛ xh#t4 t#=v~~͇d WǗBx &D O Ar39oWx",NZJZ\~G92TJNw! %^gbfEY:K%fLљX+yeES+8`,[΋05(-8Y(-ߛ\j6j4ɢ !*MWռѪYF("WU'ev~ޤ9W> >c$8vneZ"}ǜxZq՛hq.7Yf˴{ DR0\| vި~g5q߼ah,lQpV+Ko2Asρ0IBY"ZH)ȓXD%hh,Bom\?%G. o6rV~ zШ*(a*ch|\1z3̶; W^_;wls=[rgJHhXcLzv>hjd5](Yj*f1igmTx-/Ю[IENDB`07070100000097000041ED0000000000000000000000026641340900000000000000000000000000000000000000000000003200000000gnome-maps-46.11/data/icons/private/hicolor/32x3207070100000098000041ED0000000000000000000000026641340900000000000000000000000000000000000000000000003700000000gnome-maps-46.11/data/icons/private/hicolor/32x32/apps07070100000099000081A40000000000000000000000016641340900000AF4000000000000000000000000000000000000005C00000000gnome-maps-46.11/data/icons/private/hicolor/32x32/apps/maps-direction-continue-symbolic.svg image/svg+xml 0707010000009A000081A4000000000000000000000001664134090000165B000000000000000000000000000000000000005C00000000gnome-maps-46.11/data/icons/private/hicolor/32x32/apps/maps-direction-elevator-symbolic.svg 0707010000009B000081A4000000000000000000000001664134090000100D000000000000000000000000000000000000005D00000000gnome-maps-46.11/data/icons/private/hicolor/32x32/apps/maps-direction-keep-left-symbolic.svg 0707010000009C000081A4000000000000000000000001664134090000100F000000000000000000000000000000000000005E00000000gnome-maps-46.11/data/icons/private/hicolor/32x32/apps/maps-direction-keep-right-symbolic.svg 0707010000009D000081A40000000000000000000000016641340900000C4F000000000000000000000000000000000000005800000000gnome-maps-46.11/data/icons/private/hicolor/32x32/apps/maps-direction-left-symbolic.svg image/svg+xml 0707010000009E000081A40000000000000000000000016641340900000C7C000000000000000000000000000000000000005900000000gnome-maps-46.11/data/icons/private/hicolor/32x32/apps/maps-direction-right-symbolic.svg image/svg+xml 0707010000009F000081A40000000000000000000000016641340900000F47000000000000000000000000000000000000006000000000gnome-maps-46.11/data/icons/private/hicolor/32x32/apps/maps-direction-roundabout-0-symbolic.svg image/svg+xml 070701000000A0000081A4000000000000000000000001664134090000106F000000000000000000000000000000000000006600000000gnome-maps-46.11/data/icons/private/hicolor/32x32/apps/maps-direction-roundabout-135-lht-symbolic.svg image/svg+xml 070701000000A1000081A4000000000000000000000001664134090000105C000000000000000000000000000000000000006200000000gnome-maps-46.11/data/icons/private/hicolor/32x32/apps/maps-direction-roundabout-135-symbolic.svg image/svg+xml 070701000000A2000081A40000000000000000000000016641340900001029000000000000000000000000000000000000006600000000gnome-maps-46.11/data/icons/private/hicolor/32x32/apps/maps-direction-roundabout-180-lht-symbolic.svg image/svg+xml 070701000000A3000081A40000000000000000000000016641340900001026000000000000000000000000000000000000006200000000gnome-maps-46.11/data/icons/private/hicolor/32x32/apps/maps-direction-roundabout-180-symbolic.svg image/svg+xml 070701000000A4000081A4000000000000000000000001664134090000111D000000000000000000000000000000000000006600000000gnome-maps-46.11/data/icons/private/hicolor/32x32/apps/maps-direction-roundabout-225-lht-symbolic.svg image/svg+xml 070701000000A5000081A40000000000000000000000016641340900001100000000000000000000000000000000000000006200000000gnome-maps-46.11/data/icons/private/hicolor/32x32/apps/maps-direction-roundabout-225-symbolic.svg image/svg+xml 070701000000A6000081A400000000000000000000000166413409000010B2000000000000000000000000000000000000006600000000gnome-maps-46.11/data/icons/private/hicolor/32x32/apps/maps-direction-roundabout-270-lht-symbolic.svg image/svg+xml 070701000000A7000081A400000000000000000000000166413409000010A4000000000000000000000000000000000000006200000000gnome-maps-46.11/data/icons/private/hicolor/32x32/apps/maps-direction-roundabout-270-symbolic.svg image/svg+xml 070701000000A8000081A400000000000000000000000166413409000011E9000000000000000000000000000000000000006600000000gnome-maps-46.11/data/icons/private/hicolor/32x32/apps/maps-direction-roundabout-315-lht-symbolic.svg image/svg+xml 070701000000A9000081A400000000000000000000000166413409000011AF000000000000000000000000000000000000006200000000gnome-maps-46.11/data/icons/private/hicolor/32x32/apps/maps-direction-roundabout-315-symbolic.svg image/svg+xml 070701000000AA000081A4000000000000000000000001664134090000106A000000000000000000000000000000000000006500000000gnome-maps-46.11/data/icons/private/hicolor/32x32/apps/maps-direction-roundabout-45-lht-symbolic.svg image/svg+xml 070701000000AB000081A40000000000000000000000016641340900001054000000000000000000000000000000000000006100000000gnome-maps-46.11/data/icons/private/hicolor/32x32/apps/maps-direction-roundabout-45-symbolic.svg image/svg+xml 070701000000AC000081A40000000000000000000000016641340900000FFB000000000000000000000000000000000000006500000000gnome-maps-46.11/data/icons/private/hicolor/32x32/apps/maps-direction-roundabout-90-lht-symbolic.svg image/svg+xml 070701000000AD000081A40000000000000000000000016641340900000FF8000000000000000000000000000000000000006100000000gnome-maps-46.11/data/icons/private/hicolor/32x32/apps/maps-direction-roundabout-90-symbolic.svg image/svg+xml 070701000000AE000081A40000000000000000000000016641340900000D37000000000000000000000000000000000000005E00000000gnome-maps-46.11/data/icons/private/hicolor/32x32/apps/maps-direction-roundabout-symbolic.svg image/svg+xml 070701000000AF000081A40000000000000000000000016641340900000CA4000000000000000000000000000000000000005D00000000gnome-maps-46.11/data/icons/private/hicolor/32x32/apps/maps-direction-sharpleft-symbolic.svg image/svg+xml 070701000000B0000081A40000000000000000000000016641340900000CA6000000000000000000000000000000000000005E00000000gnome-maps-46.11/data/icons/private/hicolor/32x32/apps/maps-direction-sharpright-symbolic.svg image/svg+xml 070701000000B1000081A40000000000000000000000016641340900000C88000000000000000000000000000000000000005E00000000gnome-maps-46.11/data/icons/private/hicolor/32x32/apps/maps-direction-slightleft-symbolic.svg image/svg+xml 070701000000B2000081A40000000000000000000000016641340900000C8B000000000000000000000000000000000000005F00000000gnome-maps-46.11/data/icons/private/hicolor/32x32/apps/maps-direction-slightright-symbolic.svg image/svg+xml 070701000000B3000081A400000000000000000000000166413409000004F3000000000000000000000000000000000000005F00000000gnome-maps-46.11/data/icons/private/hicolor/32x32/apps/maps-direction-u-turn-left-symbolic.svg 070701000000B4000081A40000000000000000000000016641340900000467000000000000000000000000000000000000006000000000gnome-maps-46.11/data/icons/private/hicolor/32x32/apps/maps-direction-u-turn-right-symbolic.svg 070701000000B5000081A400000000000000000000000166413409000008D7000000000000000000000000000000000000004E00000000gnome-maps-46.11/data/icons/private/hicolor/32x32/apps/maps-mark-location.svg 070701000000B6000041ED0000000000000000000000026641340900000000000000000000000000000000000000000000002300000000gnome-maps-46.11/data/icons/public070701000000B7000041ED0000000000000000000000026641340900000000000000000000000000000000000000000000002B00000000gnome-maps-46.11/data/icons/public/hicolor070701000000B8000041ED0000000000000000000000026641340900000000000000000000000000000000000000000000003400000000gnome-maps-46.11/data/icons/public/hicolor/scalable070701000000B9000041ED0000000000000000000000026641340900000000000000000000000000000000000000000000003900000000gnome-maps-46.11/data/icons/public/hicolor/scalable/apps070701000000BA000081A40000000000000000000000016641340900002031000000000000000000000000000000000000005200000000gnome-maps-46.11/data/icons/public/hicolor/scalable/apps/org.gnome.Maps.Devel.svg070701000000BB000081A40000000000000000000000016641340900002C5C000000000000000000000000000000000000004C00000000gnome-maps-46.11/data/icons/public/hicolor/scalable/apps/org.gnome.Maps.svg Adwaita Icon Template image/svg+xml GNOME Design Team Adwaita Icon Template 070701000000BC000041ED0000000000000000000000026641340900000000000000000000000000000000000000000000003400000000gnome-maps-46.11/data/icons/public/hicolor/symbolic070701000000BD000041ED0000000000000000000000026641340900000000000000000000000000000000000000000000003900000000gnome-maps-46.11/data/icons/public/hicolor/symbolic/apps070701000000BE000081A40000000000000000000000016641340900000F59000000000000000000000000000000000000005500000000gnome-maps-46.11/data/icons/public/hicolor/symbolic/apps/org.gnome.Maps-symbolic.svg image/svg+xml Gnome Symbolic Icon Theme Gnome Symbolic Icon Theme 070701000000BF000081A40000000000000000000000016641340900026075000000000000000000000000000000000000003D00000000gnome-maps-46.11/data/icons/public/org.gnome.Maps.Source.svg Adwaita Icon Template image/svg+xml GNOME Design Team Adwaita Icon Template Hicolor Symbolic I like the folds, too badit screams Android.There folds make sensethough, Android's arejust cosmetic. this one would do too :) 070701000000C0000081A4000000000000000000000001664134090000056C000000000000000000000000000000000000002800000000gnome-maps-46.11/data/maps-service.json{ "tileProviderInfo": { "name": "Mapbox", "url": "https://www.mapbox.com" }, "tiles": { "street": { "id": "osm.streets", "name": "OpenStreetMap street tiles", "license": "Map Data ODBL OpenStreetMap Contributors, Map Imagery CC-BY-SA 2.0 OpenStreetMap", "license_uri": "http://www.openstreetmap.org/copyright", "min_zoom_level": 0, "max_zoom_level": 19, "tile_size": 256, "uri_format": "https://tile.openstreetmap.org/#Z#/#X#/#Y#.png", "max_connections": 2 }, "print": { "id": "osm.print", "name": "OpenStreetMap street tiles for print", "license": "Map Data ODBL OpenStreetMap Contributors, Map Imagery CC-BY-SA 2.0 OpenStreetMap", "license_uri": "http://www.openstreetmap.org/copyright", "min_zoom_level": 0, "max_zoom_level": 19, "tile_size": 256, "uri_format": "https://tile.openstreetmap.org/#Z#/#X#/#Y#.png", "max_connections": 2 } }, "graphHopperGeocode": { "baseUrl": "https://graphhopper.com", "attribution": "GraphHopper", "attributionUrl": "https://graphhopper.com/", "apiKey": "VCIHrHj0pDKb8INLpT4s5hVadNmJ1Q3vi0J4nJYP", "supportedLanguages": ["de", "en", "fr"] } } 070701000000C1000081A4000000000000000000000001664134090000093C000000000000000000000000000000000000002200000000gnome-maps-46.11/data/meson.builddata_gresource = gnome.compile_resources( app_id + '.data', 'org.gnome.Maps.data.gresource.xml', gresource_bundle: true, install: true, install_dir: pkgdatadir ) install_data( 'maps-service.json', install_dir: pkgdatadir ) desktop = app_id + '.desktop' desktop_config = configuration_data() desktop_config.set('app-id', app_id) desktop_file = custom_target('desktop-file', input: configure_file( input: 'org.gnome.Maps.desktop.in.in', output: 'org.gnome.Maps.desktop.in', configuration: desktop_config ), output: desktop, install: true, install_dir: join_paths(datadir, 'applications'), command: [msgfmt, '--desktop', '--template', '@INPUT@', '-d', po_dir, '-o', '@OUTPUT@', '--keyword=X-Geoclue-Reason', '--keyword=Name', '--keyword=Comment', '--keyword=Keywords' ] ) install_data( 'org.gnome.Maps.gschema.xml', install_dir: join_paths(datadir, 'glib-2.0', 'schemas') ) # get current date, used as build date today = 'unknown' date = find_program('date', required: false) if date.found() r = run_command(date, '-I') if r.returncode() == 0 today = r.stdout().strip() endif endif appdata = app_id + '.appdata.xml' appdata_config = configuration_data() appdata_config.set('app-id', app_id) appdata_config.set('gettext-package', 'gnome-maps') appdata_config.set('build-date', today) appdata_config.set('release-version', meson.project_version()) appdata_file = i18n.merge_file( input: configure_file( input: 'org.gnome.Maps.appdata.xml.in.in', output: 'org.gnome.Maps.appdata.xml.in', configuration: appdata_config ), output: appdata, po_dir: po_dir, install: true, install_dir: join_paths(datadir, 'metainfo') ) service_conf = configuration_data() service_conf.set('PACKAGE_NAME', meson.project_name()) service_conf.set('pkgdatadir', pkgdatadir) service_conf.set('app-id', app_id) configure_file( input: 'org.gnome.Maps.service.in', output: app_id + '.service', configuration: service_conf, install: true, install_dir: join_paths(datadir, 'dbus-1', 'services') ) if desktop_file_validate.found() test( 'validate-desktop', desktop_file_validate, args: [ desktop_file.full_path() ] ) endif if appstreamcli.found() test( 'validate-appdata', appstreamcli, args: [ 'validate', '--no-net', appdata_file.full_path() ] ) endif subdir('icons') subdir('shields') 070701000000C2000081A400000000000000000000000166413409000048C7000000000000000000000000000000000000003700000000gnome-maps-46.11/data/org.gnome.Maps.appdata.xml.in.in @app-id@ CC0-1.0 GPL-2.0-or-later Maps Find places around the world

Maps gives you quick access to maps all across the world. It allows you to quickly find the place you’re looking for by searching for a city or street, or locate a place to meet a friend.

Maps uses the collaborative OpenStreetMap database, made by hundreds of thousands of people across the globe.

@app-id@.desktop https://gitlab.gnome.org/GNOME/gnome-maps/raw/HEAD/data/screenshots/maps-main.png https://gitlab.gnome.org/GNOME/gnome-maps/raw/HEAD/data/screenshots/maps-route.png https://gitlab.gnome.org/GNOME/gnome-maps/raw/HEAD/data/screenshots/maps-pinpoint.png
  • Fix crash on startup when unnamed favorites where previously saved
  • Don't show OSM edit dialog if the user previously reclined signing in
  • Don't show stored routes in the search results when searching for destinations
  • Fix current location marker not moving when updating location
  • Switch to the new GNOME map style for the experimental vector map
  • Support dark mode with the experimental vector map
  • Redesigned zoom control buttons
  • Revamped favorites menu
  • Port OpenStreetMap account dialog to use Adwaita widgets
  • Fix parsing OSM object URLs with trailing slashes
  • Fixing issues with the place bar in mobile mode
  • Fixed a bug preventing the POI browser showing in some cases
  • Fixed triggering a extranous reload of the trip query in the case the user has already filled in query points
  • Add more validation of transit plugin parameters
  • Fix showing missing nearby POIs when browsing in some cases
  • Set lower timeout when downloading service file
  • Fix searching for recent routes
  • Added points-of-interest search interface
  • Moved zoom controls to overlays on the map
  • Add indicator of map rotation, with ability to restore rotation
  • Improved adaptivity for the routing sidebar
  • Added support for experimental vector-based map
  • Replaced legacy message dialogs with toasts
  • Restore animations when going to a new place (with new tile download throttling feature of libshumate
  • Fix for potential security issue
  • Restrict GraphHopper geocoder to supported languages
  • Add support for authentication header in the OpenTripPlanner plugin
  • Show thumbnails for places with a linked Wikidata entry with a title image, but that has no linked Wikipedia articles
  • Show the correct rotation of the user location marker when there is a heading (Geoclue indicating motion), in case the map view is rotated
  • Disable animations also on zoom-to-fit and when selecting itinerary point for public transit routes, to avoid tile server throttling
  • Fix the "Send to" dialog which was broken in the case when there are external apps supporting geo: links
  • Restore the ability to navigate search results with keyboard
  • Disable the go-to animation to avoid getting throttled by the tile server
  • Style improvements to tooltip labels
  • Style improvements to the search result list
  • Make the export dialog fit on phones
  • Prevent the scale from covering the sidebar
  • Prevent the scale to cover the sidebar when the window is narrow
  • Fix blurry shape layers on zoom
  • Fix user location accuracy marker positioning
  • Various other bug fixes
  • Fix excessive margins in place bubbles
  • Fix adaptive mode detection when maximized
  • Fix broken long-press to bring up the context menu on touch screens
  • Fixing various issues left after the GTK 4 port
  • Fix setting adaptive narrow (phone) mode on first launch on portrait displays
  • Fix dragging-and-dropping route entris in the sidebar
  • Fix opening shapelayer files when dragged-and-dropped onto the main window
  • Fix selecting turnpoint instructions showing the position of the instruction on the map
  • Fix local tiles (using the --local command-line option)
  • Fix location service dialog
  • Fix send-to dialog
  • Port to GTK4 and libshumate
  • Use libadwaita about dialog
  • Use external browser to enroll for OSM editing
  • Switch to OAuth 2 for OSM editing
  • Remove check-in support (Foursquare is not working with GOA any longer)
  • Use ES6 modules
  • Tune location bias for the Photon search engine
  • Add menu item for toggling the scale
  • Fix setting the correct month in the public transit time settings
  • Fix crash on exit
  • Fix using Ukrainian address format for addresses in Ukraine
  • Update GWeather dependency to version 4
  • Update the Resrobot public transit plugin to use the v2.1 API
  • Don't optimize away keep left/right instructions for turn-by-turn routes
  • Allow paralell installation of development versions and stable releases
  • Add support for the \"prefer dark style\" preference
  • Add support for maps: URIs with search queries
  • Use more fine-tuned initial zoom level for more place types
  • Show u-turn icons in turn-by-turn routes
  • Improve appdata metadata with updated screenshots
  • Use the location portal when sandboxed
  • Only use location bias when searching at high zoom to avoid problems in the Photon search engine
  • Remember the state of showing the scale between runs
  • Tidy up showing time labels in public transit itineraries by using tabular numbers
  • Translation updates
  • Translation updates
  • Translation updates
  • Use new GNOME style icons for search results
  • Show e-mail addresse for places when available
  • Show take-away availability for restaurants and similar places
  • Remove Facebook check-in support, as it's not supported by libgfbgraph anymore
  • Update donation and wiki web links in appdata
  • Fix regression when signing in for OSM editing
  • Fix crashes when no aerial tile definition is available
  • Fix cut-off text in place bubble in some translations
  • Fix a bug where unfavoring a place made it unselectable until after a restart
  • Use country code attribute from GraphHopper/Photon geocode results to improve accuracy of address formatting among others
  • Redesigned place bubbles
  • Adaptive UI for the place bubbles on small screens
  • Show translated place names in user's language when available
  • Fix a bug resulting in writing a broken last view position on exit in some circumstances
  • Fix a bug preventing wrapping around at the date line with dark tiles
  • Fix a bug causing hanging in cases when dragging around route markers
  • Fix a bug where place details gets lost after searching again for the same place
    Translation updates
  • Fix a race-condition bug in search-as-you-type resulting in out-of-sync search results in some circumstances
  • Fix updating missing details after editing a POI in OpenStreetMap
  • Show error message in popover when a search request has failed
  • Fix exception on shutdown when unregistering DBus
  • Fix "no network" display to fit on smaller screens
  • Initial adpative UI
  • Added night mode
  • Added support for hybrid aerial layer
  • Public transit plugin for South Africa (GoMetro)
  • Improved keyboard navigation in routing sidebar
  • Make more use of localized number formatting
  • Fix an issue where some search result gets the wrong level of name
  • Don't reset query points when routing fails (e.g. no public transit provider is available) to allow switching mode with the same query
  • Fix a bug not displaying tiles south of the equator when using --local command line option
  • Allow entering DMS coordinates without comma between latitude and logitude parts
  • Updated POI defintions for OpenStreetMap editing
  • Fix link to sign up for an OpenStreetMap account
  • Initial support for public transit routing
  • Re-arrange context menu. Move "export as image" to hamburger menu
  • Avoid flickering the current location marker when changes
  • Added Malay translation
  • Fix generating Wikipedia URLs in some cases
  • Update tile size to 512 px when using --local option
  • Auto-complete "search-as-you-type"
  • Revamped sharing dialog
  • Support opening OpenStreetMap URLs
  • Faster startup
  • Remember map style last used when starting (street or aerial view)
  • Fix misaligned rendering of shape layers with the new map tiles
  • Remove some unnessesary instructions in turn-by-turn route searches
  • Updated Croatian translations
  • Show live-updated thumbnails for the street/aerial layer switcher, instead of (outdated) hard-code thumbnails
  • Move app menu to the headerbar
  • Updated application icon
keyboard pointing touch 360 gnome-maps.desktop GNOME The GNOME Project The GNOME Project https://apps.gnome.org/Maps/ https://gitlab.gnome.org/GNOME/gnome-maps/issues https://www.gnome.org/donate/ https://l10n.gnome.org/module/gnome-maps/ https://gitlab.gnome.org/GNOME/gnome-maps https://welcome.gnome.org/app/Maps/ gnome-maps mobile
070701000000C3000081A40000000000000000000000016641340900000C36000000000000000000000000000000000000003800000000gnome-maps-46.11/data/org.gnome.Maps.data.gresource.xml ui/context-menu.ui ui/export-view-dialog.ui ui/favorite-list-row.ui ui/favorites-popover.ui ui/headerbar-left.ui ui/headerbar-right.ui ui/instruction-row.ui ui/layers-popover.ui ui/shape-layer-row.ui ui/shape-layer-file-chooser.ui ui/main-window.ui ui/open-with-row.ui ui/osm-account-dialog.ui ui/osm-edit-address.ui ui/osm-edit-dialog.ui ui/osm-edit-wikipedia.ui ui/osm-type-list-row.ui ui/osm-type-search-entry.ui ui/osm-type-popover.ui ui/place-bar.ui ui/place-buttons.ui ui/place-dialog.ui ui/place-list-row.ui ui/place-popover.ui ui/place-view.ui ui/poi-category-goback-row.ui ui/poi-category-row.ui ui/route-entry.ui ui/search-bar.ui ui/send-to-dialog.ui ui/sidebar.ui ui/transit-arrival-row.ui ui/transit-itinerary-row.ui ui/transit-leg-row.ui ui/transit-more-row.ui ui/transit-options-panel.ui ui/transit-route-label.ui ui/transit-stop-row.ui ui/zoom-and-rotate-controls.ui gnome-maps.css gnome-maps-dark.css osm-types.json ui/help-overlay.ui 070701000000C4000081A40000000000000000000000016641340900000325000000000000000000000000000000000000003300000000gnome-maps-46.11/data/org.gnome.Maps.desktop.in.in[Desktop Entry] Version=1.0 Name=Maps Comment=A simple maps application Exec=gapplication launch @app-id@ %U # Translators: Do NOT translate or transliterate this text (this is an icon file name)! Icon=@app-id@ Terminal=false Type=Application StartupNotify=true Categories=GNOME;GTK;Utility; # Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! Keywords=Maps; DBusActivatable=true MimeType=application/vnd.geo+json;x-scheme-handler/geo;x-scheme-handler/maps;application/vnd.google-earth.kml+xml;application/gpx+xml;application/fits; X-Geoclue-Reason=Allows your location to be shown on the map. # Translators: Do NOT translate or transliterate this text (these are enum types)! X-Purism-FormFactor=Workstation;Mobile; 070701000000C5000081A40000000000000000000000016641340900000B4B000000000000000000000000000000000000003100000000gnome-maps-46.11/data/org.gnome.Maps.gschema.xml [0.0,0.0] last viewed location Coordinates of last viewed location. 0 zoom Zoom level 0.0 rotation Map rotation in radians "MapsStreetSource" Map type The type of map to display (street, aerial, etc.) [] Window size Window size (width and height). [] Window position Window position (X and Y). true Window maximized Window maximization state 20 Maximum number of search results Maximum number of search results from geocode search. 50 Number of recent places to store Number of recently visited places to store. 5 Number of recent routes to store Number of recently visited routes to store. "" OpenStreetMap username or email address Indicates if the user has signed in to edit OpenStreetMap data. 'pedestrian' Last used transportation type for routing true Show scale Whether to show the scale. 070701000000C6000081A40000000000000000000000016641340900000050000000000000000000000000000000000000003000000000gnome-maps-46.11/data/org.gnome.Maps.service.in[D-BUS Service] Name=@app-id@ Exec=@pkgdatadir@/@app-id@ --gapplication-service 070701000000C7000081A400000000000000000000000166413409000B1D60000000000000000000000000000000000000002500000000gnome-maps-46.11/data/osm-types.json{ "aeroway/apron": { "title": { "C": "Airport Apron", "fy": "Platfoarm lofthaven", "af": "Laaiblad", "ar": "مواقف الطائرات", "br": "Tarmak", "ca": "Àrea d'aparcament", "cs": "Odbavovací plocha", "da": "Lufthavnsforplads", "de": "Vorfeld", "el": "Χώρος Στάθμευσης και Εξυπηρέτησης Αεροσκαφών", "en-GB": "Airport Apron", "en": "Airport Apron", "eo": "Aviadil-parkumejo", "es": "Plataforma de estacionamiento de aeronaves", "et": "Lennujaama perroon", "fa": "صحن فرودگاه", "fi": "Lentokentän asemataso", "fr": "Aire de stationnement d'aéroport", "gl": "Estacionamento aéreo", "he": "רחבת חניית מטוסים", "hr": "Stajanka za parkiranje zrakoplova", "hu": "Forgalmi előtér", "it": "Parcheggio Aeromobili", "ja": "駐機場", "ko": "공항 에이프런", "mk": "Авионска постојка", "nl": "Platform (vliegveld)", "no": "Oppstillingsplass", "pl": "Płyta postojowa", "pt-BR": "Plataforma de estacionamento", "pt": "Plataforma de estacionamento", "ru": "Перрон аэропорта", "sk": "Odbavovacia plocha", "sr": "Авио-прилаз", "sv": "Parkering för flygplan (Apron)", "tr": "Havaalanı Apronu", "uk": "Перон", "vi": "Thềm đế Máy bay", "zh-CN": "机场停机坪", "zh-TW": "機場停機坪" } }, "aeroway/gate": { "title": { "C": "Airport Gate", "fy": "Gate lofthaven", "id": "Gerbang Bandara", "af": "Lughawepoort", "ar": "بوابة مطار", "ast": "Puerta de terminal", "ca": "Porta d'aeroport", "cs": "Letištní brána", "cy": "Gât Maes Awyr", "da": "Lufthavnsgate", "de": "Flugsteig", "el": "Πύλη Αεροδρομίου", "en-GB": "Airport Gate", "en": "Airport Gate", "eo": "Kluzo aerodromo-aviadilo", "es": "Puerta de embarque", "et": "Terminalivärav", "eu": "Aireportuko ate", "fa": "دروازه / گیت فرودگاه", "fi": "Lähtöportti", "fr": "Porte d'embarquement", "gl": "Porta de embarque", "he": "שער נמל תעופה", "hu": "Repülőtéri kapu", "is": "Flugvallarhlið", "it": "Gate aeroportuale", "ja": "空港ゲート", "ko": "공항 게이트", "lv": "Lidostas vārti", "mk": "Аеродромска порта", "nl": "Luchthaven-gate", "no": "Flyplassgate", "pl": "Wyjście do samolotu", "pt-BR": "Portão de embarque", "pt": "Porta de embarque / desembarque", "ru": "Выход на посадку", "sk": "Letisková brána", "sl": "Letališka vrata", "sr": "Излаз за укрцавање", "sv": "Gate", "ta": "விமான நிலைய நுழைவாயில்", "tr": "Kapı", "uk": "Вихід на посадку", "vi": "Cổng Sân bay", "zh-CN": "登机口", "zh-HK": "登機閘", "zh-TW": "登機閘門" } }, "aeroway/jet_bridge": { "title": { "C": "Jetway", "ar": "جسر إركاب", "cs": "Nástupní most", "da": "Flypassagerbro", "de": "Fluggastbrücke", "en-AU": "Aerobridge", "en": "Jetway", "eo": "Ponto flugstacio - aviadilo", "es": "Pasarela de acceso a aeronaves", "et": "Reisijasild", "fa": "راه هوایی", "fi": "Matkustajasilta", "fr": "Passerelle aéroportuaire", "gl": "Ponte de embarque", "he": "גשר עלייה למטוס", "hu": "Utashíd", "it": "Manicotto d’imbarco", "ja": "ボーディング・ブリッジ", "ko": "탑승교", "mk": "Авионски мост", "nl": "Vliegtuigslurf", "no": "Ombordstigningsbro", "pl": "Rękaw (pomost)", "pt-BR": "Jetway", "pt": "Ponte de embarque", "ru": "Телескопический трап", "sk": "Nástupný tunel", "sv": "Ombordstigningsbrygga", "tr": "Jet yolu", "uk": "Посадковий рукав", "vi": "Cầu Hành khách", "zh-CN": "登机廊桥", "zh-TW": "空橋" } }, "aeroway/parking_position": { "title": { "C": "Aircraft Parking Position", "fy": "Parkearposysje fleantúch", "af": "Parkeer posisie", "ar": "موضع وقوف الطائرات", "cs": "Parkovací místo letadla", "da": "Parkeringsposition for luftfartøjer", "de": "Flugzeugparkposition", "el": "Θέση Στάθμευσης Αεροσκάφους", "en-GB": "Aircraft Parking Position", "en": "Aircraft Parking Position", "eo": "Aviadil-parkumejo (detala pozicio)", "es": "Posición de estacionamiento de aviones", "et": "Õhusõiduki parkimisplats", "fa": "محل قرارگیری پارکینگ هواپیما", "fi": "Lentokoneen pysäköintikohta", "fr": "Voie de garage pour avion", "gl": "Estacionamento de transportes aéreos", "he": "מיקום חניית כלי טיס", "hr": "Parkirna pozicija za zrakoplov", "hu": "Légi jármű parkolási pozíciója", "it": "Posizione di parcheggio per aeromobili", "ja": "駐機ポイント(空港)", "mk": "Паркирна положба на леталото", "nl": "Vliegtuigparkeerplaats", "no": "Parkeringsposisjon for luftfartøy", "pl": "Miejsce postoju samolotu", "pt-BR": "Posição de estacionamento de aeronaves", "pt": "Área de estacionamento de avião", "ru": "Стоянка воздушного судна", "sk": "Miesto na parkovanie lietadla", "sr": "Место за паркирање авиона", "sv": "Parkeringsplats för flygplan", "tr": "Havaaracı Park Pozisyonu", "uk": "Місце стоянки літака", "vi": "Chỗ Đậu Máy bay", "zh-CN": "停机位", "zh-HK": "停機坪", "zh-TW": "停機坪" } }, "aeroway/runway": { "title": { "C": "Runway", "fy": "Start-/lâningsbaan", "bs": "Pista", "dv": "އެއާރޕޯޓް ރަންވޭ", "id": "Landas pacu", "kn": "ಓಡುದಾರಿ", "so": "Gegada diyaaradaha", "zh": "跑道", "af": "Aanloopbaan", "ar": "مدرج المطار", "ast": "Pista", "bg": "Летателна писта", "br": "Pradva", "ca": "Pista d'enlairament/aterratge", "cs": "Vzletová a přistávací dráha", "cy": "Rhedfa", "da": "Landingsbane", "de": "Start- und Landebahn", "el": "Διάδρομος Αεροδρομίου", "en-GB": "Runway", "en": "Runway", "eo": "Aviokurejo", "es": "Pista de aterrizaje", "et": "Lennurada", "fa": "باند فرودگاه", "fi": "Kiitorata", "fr": "Piste d’atterrissage", "ga": "Rúidbhealach", "gl": "Pista de aeroporto", "he": "מסלול המראה", "hr": "Uzletno-sletna staza", "hu": "Kifutópálya", "is": "Flugbraut", "it": "Pista di decollo/atterraggio", "ja": "滑走路", "ko": "활주로", "lt": "Pakilimo takas", "lv": "Skrejceļš", "mk": "Писта", "nl": "Startbaan", "no": "Rullebane", "pa-PK": "ہوائی اڈے دی رن‌وے", "pl": "Pas startowy", "pt-BR": "Pista de pouso e decolagem", "pt": "Pista de aterragem e descolagem", "ru": "Взлётная полоса", "sk": "Vzletová dráha", "sl": "Vzletno-pristajalna steza", "sr": "Полетно-слетна стаза", "sv": "Start- och landningsbana", "ta": "ஓடுதளம்", "tr": "Uçak Pisti", "uk": "Злітно-посадкова смуга", "vi": "Đường băng", "yue": "跑道", "zh-CN": "机场跑道", "zh-HK": "跑道", "zh-TW": "機場跑道" } }, "aeroway/taxiway": { "title": { "C": "Taxiway", "fy": "Taksybaan", "bs": "Staza za vožnju", "id": "Landas hubung", "zh": "滑行道", "af": "Rybaan", "ar": "طريق للمدرج", "ast": "Cai de rodaxe", "bg": "Рольожка", "br": "Hent-tremen", "ca": "Carrer de rodada", "cs": "Pojezdová dráha", "cy": "Tacsiffordd", "da": "Taxiway", "de": "Rollbahn", "el": "Τροχόδρομος", "en-GB": "Taxiway", "en": "Taxiway", "eo": "Aŭtokur-strato", "es": "Calle de rodaje", "et": "Ruleerimistee", "fa": "خزشراه", "fi": "Rullaustie", "fr": "Voie de circulation (aéroport)", "ga": "Bealach Innealta", "gl": "Pista de rodaxe", "he": "מסלול הסעה", "hr": "Rulnica", "hu": "Gurulóút", "is": "Akbraut flugvéla", "it": "Pista di rullaggio", "ja": "航空機誘導路", "ko": "유도로", "lv": "Manevrēšanas ceļš", "mk": "Воздухопловен приод", "nl": "Taxibaan", "no": "Taxibane", "pa-PK": "ٹیکسی‌وے", "pl": "Droga kołowania", "pt-BR": "Pista de taxiamento", "pt": "Via de circulação", "ru": "Рулёжная дорожка", "sk": "Rolovacia dráha", "sl": "Vozna steza", "sr": "Рулна стаза", "sv": "Taxibana", "tr": "Taksi Yolu", "uk": "Руліжна доріжка", "vi": "Đường lăn", "yue": "滑行道", "zh-CN": "滑行道", "zh-HK": "滑行道", "zh-TW": "滑行道" } }, "aeroway/windsock": { "title": { "C": "Windsock", "fy": "Wynsek", "af": "Windkous", "ar": "كم الريح", "br": "Mañch-aer", "ca": "Mànega de vent", "cs": "Větrný rukáv", "cy": "Hosan Gwynt", "da": "Vindpose", "de": "Windsack", "el": "Ανεμούριο", "en-GB": "Windsock", "en": "Windsock", "eo": "Ventmaniko", "es": "Manga de viento", "et": "Tuulekott", "fa": "بادنمای کیسه‌ای", "fi": "Tuulisukka", "fr": "Manche à air", "gl": "Manga de vento", "he": "שרוול רוח", "hu": "Szélzsák", "it": "Manica a vento", "ja": "吹流し", "mk": "Ветроказен ракав", "nl": "Windzak", "no": "Vindpølse", "pl": "Rękaw (wiatrowskaz)", "pt-BR": "Biruta", "pt": "Manga de vento", "ru": "Ветроуказатель", "sk": "Veterný rukáv", "sr": "Ветроказ", "sv": "Vindstrut", "tr": "Rüzgâr hortumu", "uk": "Вітровказ", "vi": "Ống gió", "zh-CN": "风向袋", "zh-TW": "風向袋" } }, "aeroway/hangar": { "title": { "C": "Hangar", "fy": "Hangaar", "bs": "Hangar", "id": "Hanggar", "zh": "机库", "af": "Loods", "ar": "حظيرة طائرات", "ast": "Hangar", "bg": "Хангар", "ca": "Hàngar", "cs": "Hangár", "da": "Hangar", "de": "Hangar", "el": "Υπόστεγο Αεροσκαφών", "en-GB": "Hangar", "en": "Hangar", "eo": "Hangaro", "es": "Hangar", "et": "Angaar", "fa": "آشیانه هواپیما (بزرگ / فرودگاه)", "fi": "Lentokonehalli", "fr": "Hangar", "ga": "Haingear", "gl": "Hangar", "he": "הנגאר", "hr": "Hangar", "hu": "Hangár", "is": "Flugskýli", "it": "Hangar", "ja": "航空機格納庫", "ko": "격납고", "lt": "Angaras", "lv": "Angārs", "mk": "Хангар", "nl": "Hangar", "no": "Hangar", "pl": "Hangar", "pt-BR": "Hangar", "pt": "Hangar", "ru": "Ангар", "sk": "Hangár", "sl": "Hangar", "sr": "Хангар", "sv": "Hangar", "ta": "விமானங்கள் நிறுத்துமிடம்", "tr": "Hangar", "uk": "Ангар", "vi": "Nhà Máy bay", "yue": "飛機庫", "zh-CN": "飞机库", "zh-HK": "飛機庫", "zh-TW": "機庫" } }, "aeroway/holding_position": { "title": { "C": "Aircraft Holding Position", "fy": "Wachtposysje fleantúch", "af": "Hou posisie", "ar": "مواضع انتظار طائرات", "cs": "Vyčkávací místo letadla", "de": "Rollhalteort", "en-GB": "Aircraft Holding Position", "en": "Aircraft Holding Position", "eo": "Aviadila atendejo", "es": "Posición de espera de aviones", "et": "Õhusõiduki ootepositsioon", "fa": "موقعیت توقف و انتظار هواپیما", "fi": "Lentokoneen pysähtymiskohta", "fr": "Point d’attente avion", "gl": "Punto de espera de avións", "he": "תבנית ריתוק כלי טיס", "hr": "Pozicija za čekanje", "hu": "Légi jármű várakozási pozíciója", "it": "Circuito di attesa per aeromobili", "ja": "航空機の停止位置", "mk": "Чекална положба на леталото", "nl": "Vliegtuigwachtplaats", "pl": "Punkt oczekiwania", "pt-BR": "Posição de retenção de aeronaves", "pt": "Ponto de espera de avião", "sk": "Vyčkávacie miesto", "sv": "Väntplats för flygplan", "tr": "Hava aracı tutma pozisyonu", "uk": "Стоп-лінія", "vi": "Vị trí Chờ đợi dành cho Máy bay", "zh-CN": "跑道等待位置", "zh-TW": "飛機停靠點" } }, "aeroway/terminal": { "title": { "C": "Airport Terminal", "fy": "Passazjiershal lofthaven", "dv": "އެއާރޕޯޓް ގިމަތަ", "id": "Terminal Bandar Udara,Terminal Bandara", "so": "Gagida Dayaaradeed", "af": "Terminaal", "ar": "صالة مطار", "ast": "Terminal d'aeropuertu", "ca": "Terminal d'aeroport", "cs": "Letištní terminál", "da": "Lufthavnsterminal", "de": "Flughafenterminal", "el": "Σταθμός Αεροναυτιλίας", "en-GB": "Airport Terminal", "en": "Airport Terminal", "eo": "Flugstacio", "es": "Terminal de aeropuerto", "et": "Lennuterminal", "eu": "Aireportuko Terminal", "fa": "پایانه فرودگاه", "fi": "Lentokenttäterminaali", "fr": "Terminal d'aéroport", "gl": "Terminal de aeroporto", "he": "טרמינל שדה תעופה", "hu": "Repülőtéri terminál", "is": "Flugstöð", "it": "Terminal aeroportuale", "ja": "空港ターミナル", "ko": "공항 터미널", "lv": "Lidostas Terminālis", "mk": "Аеродромски терминал", "nl": "Luchthaventerminal", "no": "Flyplassterminal", "pa-PK": "ہوائی ٹرمینل", "pl": "Terminal pasażerski", "pt-BR": "Terminal de aeroporto", "pt": "Terminal de aeroporto", "ru": "Терминал аэропорта", "sk": "Letiskový termnál", "sl": "Letališki terminal", "sr": "Аеродромски терминал", "sv": "Flygterminal", "tr": "Terminal", "uk": "Термінал", "vi": "Ga Sân bay", "yue": "機場大樓", "zh-CN": "航站楼", "zh-HK": "機場客運大樓", "zh-TW": "機場航廈" } }, "aeroway/aerodrome": { "title": { "C": "Airport", "am": "አየር ማረፊያ", "bn": "বিমানবন্দর", "fy": "Lofthaven", "hy": "Օդանավակայան", "te": "విమానాశ్రయం", "bs": "Aerodrom", "id": "Bandar Udara", "kn": "ವಿಮಾನ ನಿಲ್ದಾಣ", "zh": "机场", "af": "Lughawe", "ar": "مطار", "ast": "Aeropuertu", "bg": "Летище", "br": "Aerborzh", "ca": "Aeroport", "ckb": "فڕۆکەخانە", "cs": "Letiště", "cy": "Maes Awyr", "da": "Lufthavn", "de": "Flughafen", "el": "Αεροδρόμιο", "en-GB": "Airport", "en": "Airport", "eo": "Aerodromo", "es": "Aeropuerto", "et": "Lennujaam", "eu": "Aireportu", "fa": "فرودگاه", "fi": "Lentokenttä", "fr": "Aéroport", "ga": "Aerfort", "gl": "Aeroporto", "he": "נמל תעופה", "hr": "Zračna luka", "hu": "Repülőtér", "is": "Flugvöllur", "it": "Aeroporto", "ja": "空港", "ko": "공항", "lt": "Oro uostas", "lv": "Lidosta", "mk": "Аеродром", "nl": "Luchthaven", "no": "Flyplass", "pl": "Lotnisko", "pt-BR": "Aeroporto ou aeródromo", "pt": "Aeroporto", "ro": "Aeroport", "ru": "Аэропорт", "sk": "Letisko", "sl": "Letališče", "sr": "Аеродром", "sv": "Flygplats", "ta": "விமானநிலையம்", "th": "สนามบิน", "tr": "Havaalanı", "uk": "Аеропорт", "ur": "ہوائی اڈہ", "vi": "Sân bay", "yue": "飛機場", "zh-CN": "机场", "zh-HK": "機場", "zh-TW": "機場" } }, "aeroway/helipad": { "title": { "C": "Helipad", "bn": "হেলিপ্যাড", "fy": "Helyhaven", "hy": "Ուղաթիռային հրապարակ", "bs": "Heliodrom", "id": "Pendaratan Helikopter", "zh": "直升机场", "af": "Helikopterplatform", "ar": "مهبط الهليكوبتر", "ast": "Helipuertu", "bg": "Хеликоптерна площадка", "br": "Biñsporzh", "ca": "Heliport", "cs": "Přistávací plocha", "da": "Helikopterlandingsplads", "de": "Hubschrauberlandeplatz", "el": "Ελικοδρόμιο", "en-GB": "Helipad", "en": "Helipad", "eo": "Surteriĝejo helikoptera", "es": "Helipuerto", "et": "Kopteriväljak", "fa": "محل فرود هلی کوپتر", "fi": "Helikopterikenttä", "fr": "Héliport", "ga": "Héileapad", "gl": "Heliporto", "he": "מנחת מסוקים", "hr": "Heliodrom", "hu": "Helikopter-leszállóhely", "is": "Þyrlupallur", "it": "Elisuperficie", "ja": "ヘリパッド", "ko": "헬기 착륙장", "lt": "Sraigtasparnių aikštelė", "lv": "Helikopteru nosēšanās laukums", "mk": "Хеликоптерско слетувалиште", "nl": "Helipad", "no": "Helikopterlandingsplass", "pl": "Lądowisko dla helikopterów", "pt-BR": "Heliponto", "pt": "Heliponto", "ro": "Heliport", "ru": "Вертолётная площадка", "sk": "Heliport", "sl": "Heliodrom", "sr": "Хелиодром", "sv": "Helikopterplatta", "ta": "சிறு விமானம் இறங்கும் தளம்", "tr": "Helikopter Pisti", "uk": "Вертолітний майданчик", "vi": "Sân bay Trực thăng", "yue": "直升機坪", "zh-CN": "直升机场", "zh-HK": "直升機坪", "zh-TW": "直昇機坪" } }, "aeroway/spaceport": { "title": { "C": "Spaceport", "ar": "ميناء فضائي", "br": "Kreizenn aeregor", "cs": "Vesmírný přístav", "da": "Rumhavn", "de": "Weltraumbahnhof", "el": "Διαστημοδρόμιο", "en-GB": "Spaceport", "en": "Spaceport", "eo": "Kosmodromo", "es": "Puerto espacial", "et": "Kosmodroom", "fa": "پایگاه فضایی", "fi": "Laukaisukeskus", "fr": "Centre spatial", "gl": "Cosmódromo", "he": "מתקן שיגור", "hu": "Űrrepülőtér", "it": "Spazioporto", "ja": "宇宙船基地", "ko": "우주 공항", "mk": "Космодром", "nl": "Ruimtehaven", "no": "Rakettbase", "pl": "Port kosmiczny", "pt-BR": "Base de lançamento espacial", "pt": "Cosmódromo", "ru": "Космодром", "sk": "Kozmodróm", "sr": "Свемирска лука", "sv": "Rymdbas", "tr": "Uzay İstasyonu", "uk": "Космопорт", "vi": "Sân bay Vũ trụ", "zh-CN": "航天港", "zh-TW": "太空發射中心" } }, "amenity/ferry_terminal": { "title": { "C": "Ferry Terminal", "fy": "Feardaam/-kade", "id": "Pelabuhan Feri", "af": "Pontterminaal", "ar": "محطة الركاب", "ca": "Terminal de ferris", "cs": "Terminál přívozu/trajektu", "cy": "Terfynfa Fferi", "da": "Færgeterminal", "de": "Schiffsanleger", "el": "Σταθμός Επιβατών Προθμείου", "en-GB": "Ferry Terminal", "en": "Ferry Terminal", "eo": "Pramstacio", "es": "Terminal de ferry", "et": "Praamiterminal", "fa": "ترمینال کشتی", "fi": "Lauttaterminaali", "fr": "Terminal de ferry", "gl": "Terminal de transbordadores", "he": "מסוף מעבורת", "hu": "Kompkikötő", "it": "Terminal Traghetti", "ja": "フェリー乗り場", "ko": "페리 터미널", "mi": "Taunga Waka Kōpiko", "mk": "Траектен терминал", "nl": "Veerbootterminal", "no": "Fergekai", "pl": "Terminal promowy", "pt-BR": "Terminal da balsa", "pt": "Terminal de ferry", "ru": "Причал для паромов", "sk": "Trajektový terminál", "sr": "Терминал за трајект", "sv": "Färjeterminal", "th": "ท่าเรือ", "tr": "Feribot Terminali", "uk": "Поромний термінал", "vi": "Nhà ga Phà", "zh-CN": "轮渡码头", "zh-HK": "渡輪碼頭", "zh-TW": "渡輪碼頭" } }, "amenity/nursing_home": { "title": { "C": "Nursing Home", "fy": "Ferpleechhûs", "af": "Verpleging- en versorgingshuis", "ar": "دار التمريض", "br": "Ti-diskuizh", "ca": "Llar d'avis", "cs": "Domov pro seniory", "da": "Plejehjem", "de": "Pflegeheim", "el": "Κλινική", "en-GB": "Nursing Home", "en": "Nursing Home", "eo": "Domo de permanenta zorgado", "es": "Residencia de ancianos", "et": "Hoolduskodu", "fa": "آسایشگاه", "fi": "Hoitokoti", "fr": "Maison de repos", "gl": "Residencia de anciáns", "he": "בית אבות", "hu": "Ápolóotthon", "is": "Hjúkrunarheimili", "it": "Residenza Sanitaria Assistenziale (RSA)", "ja": "介護施設", "ko": "요양원", "mk": "Старечки дом", "nl": "Verpleeghuis", "no": "Gamlehjem", "pl": "Dom pomocy społecznej", "pt-BR": "Casa de repouso", "pt": "Centro Geriátrico", "ru": "Дом престарелых/Дом инвалидов (устаревший тег)", "sk": "Dom ošetrovateľskej starostlivosti", "sl": "Dom za bolniško nego", "sr": "Старачки дом", "sv": "Vårdhem", "th": "บ้านพักคนชรา", "tr": "Bakım Evi", "uk": "Будинок престарілих", "vi": "Viện Dưỡng lão", "zh-CN": "疗养院", "zh-HK": "護養院", "zh-TW": "養老院" } }, "amenity/recycling": { "title": { "C": "Recycling Bin", "af": "Herwinningspunt", "ar": "إعادة التدوير", "br": "Lec'h adaozañ", "ca": "Reciclatge", "cs": "Recyklace", "cy": "Ailgylchu", "da": "Genbrug", "de": "Recycling", "el": "Ανακύκλωση", "en-GB": "Recycling", "en": "Recycling", "eo": "Recikligejo", "es": "Reciclaje", "et": "Jäätmekäitlus", "eu": "Birziklatze", "fa": "بازیافت", "fi": "Kierrätys", "fr": "Point de recyclage", "gl": "Reciclaxe", "he": "מיחזור", "hr": "Recikliranje", "hu": "Szelektív hulladékgyűjtő", "is": "Endurvinnsla", "it": "Riciclaggio", "ja": "リサイクル施設", "ko": "재활용", "mi": "Hangarua", "mk": "Рециклажа", "nl": "Recycling", "no": "Resirkulering", "pl": "Przetwarzanie odpadów", "pt-BR": "Reciclagem", "pt": "Reciclagem", "ru": "Вторичное сырьё", "sk": "Recyklovanie", "sl": "Recikliranje", "sr": "Рециклирање", "sv": "Återvinning", "th": "การรีไซเคิล", "tr": "Geri Dönüşüm", "uk": "Переробка вторсировини", "vi": "Tái chế", "zh-CN": "资源回收设施", "zh-HK": "回收設施", "zh-TW": "回收" } }, "amenity/bench": { "title": { "C": "Bench", "bn": "বেঞ্চ", "fy": "Bankje", "bs": "Klupa", "id": "Bangku", "kn": "ನ್ಯಾಯಪೀಠ", "zh": "长凳", "af": "Bankie", "ar": "مقعد", "ast": "Asientu", "bg": "Пейка", "br": "Bank", "ca": "Banc", "cs": "Lavička", "cy": "Mainc", "da": "Bænk", "de": "Sitzbank", "el": "Παγκάκι", "en-GB": "Bench", "en": "Bench", "eo": "Benko", "es": "Banco / Asiento", "et": "Pink", "eu": "Banku", "fa": "نیمکت", "fi": "Penkki", "fr": "Banc", "ga": "Binse", "gl": "Banco", "he": "ספסל", "hr": "Klupa", "hu": "Pad", "is": "Bekkur", "it": "Panchina", "ja": "ベンチ", "ko": "벤치", "lt": "Suolas", "lv": "Sols", "mk": "Клупа", "nl": "Zitbank", "no": "Benk", "pa-PK": "بنچ", "pl": "Ławka", "pt-BR": "Assento", "pt": "Banco", "ro": "Bancă", "ru": "Скамейка", "sk": "Lavička", "sl": "Klop", "sr": "Клупа", "sv": "Bänk", "ta": "விசுப்பலகை", "th": "ม้านั่ง", "tr": "Bank", "uk": "Лавка", "vi": "Băng ghế", "yue": "長椅", "zh-CN": "长椅", "zh-HK": "長椅", "zh-TW": "長椅" } }, "amenity/binoculars": { "title": { "C": "Mounted Binoculars", "ar": "مناظير مثبتة", "br": "Lunedoù hirwel", "cs": "Namontovaný dalekohled", "da": "Fastmonteret kikkert", "de": "Stationäres Aussichtsfernrohr", "el": "Εγκατεστημένα Κιάλια", "en-GB": "Mounted Binoculars", "en": "Mounted Binoculars", "eo": "Lorno", "es": "Binoculares montados", "et": "Alusele kinnitatud üldkasutatav binokkel", "fa": "دوربین شکاری سوار شده", "fr": "Longue-vue publique", "gl": "Binoculares panorámicos", "he": "משקפת מקובעת", "hu": "Rögzített távcső", "it": "Binocolo Montato", "ja": "双眼鏡", "ko": "고정식 쌍안경", "mk": "Прицврстен двоглед", "nl": "Vaste verrekijkers", "pl": "Lornetka", "pt-BR": "Binóculos montados", "pt": "Binóculo panorâmico", "ru": "Установленные бинокли", "sk": "Stojanový ďalekohľad", "sv": "Fast monterad kikare", "tr": "Monte Dürbün", "uk": "Стаціонарний бінокль", "vi": "Ống nhòm Cố định", "zh-CN": "双筒望远镜", "zh-TW": "固定式雙筒望遠鏡" } }, "amenity/boat_storage": { "title": { "C": "Boat Storage", "ar": "مخزن القوارب", "cs": "Místo pro uložení lodí", "da": "Bådlager", "de": "Bootslagerplatz", "el": "Αποθήκευση Σκαφών", "en-GB": "Boat Storage", "en": "Boat Storage", "eo": "Boat-garaĝo seka", "es": "Almacenamiento de barcos", "et": "Staapelplats", "fa": "انبار قایق", "fr": "Stockage de bateau (sur terre)", "gl": "Tenda de embarcacións", "he": "אחסון סירות", "hu": "Hajótároló", "it": "Rimessaggio Barche", "ja": "ボート置き場", "mk": "Склад за чамци", "nl": "Botenopslag", "pl": "Przechowalnia łodzi", "pt-BR": "Armazenamento de barco", "pt": "Depósito de barcos", "ru": "Лодочное хранилище", "sk": "Miesto pre odloženie lodí", "sr": "Складиште бродова", "sv": "Båtförvaring", "th": "โกดังเก็บเรือ", "tr": "Tekne Depolaması", "uk": "Зберігання човнів", "vi": "Chỗ Để Thuyền", "zh-CN": "存船处", "zh-HK": "般隻停放處", "zh-TW": "般隻停放處" } }, "amenity/clock": { "title": { "C": "Clock", "fy": "Klok", "hi": "घडी", "id": "Jam", "kn": "ಗಡಿಯಾರ", "af": "Klok", "ar": "ساعة", "ast": "Reló", "br": "Eurier", "ca": "Rellotge", "ckb": "کاتژمێر", "cs": "Hodiny", "cy": "Cloc", "da": "Ur", "de": "Uhr", "el": "Ρολόι", "en-GB": "Clock", "en": "Clock", "eo": "Horloĝo", "es": "Reloj", "et": "Kell", "eu": "Ordulari", "fa": "ساعت", "fi": "Kello", "fr": "Horloge", "gl": "Reloxo", "he": "שעון", "hr": "Sat", "hu": "Óra", "is": "Klukka", "it": "Orologio", "ja": "時計", "ko": "시계", "lt": "Laikrodis", "lv": "Pulkstenis", "mk": "Часовник", "nl": "Klok", "no": "Klokke", "pl": "Zegar", "pt-BR": "Relógio", "pt": "Relógio", "ro": "Ceas", "ru": "Часы", "sk": "Hodiny", "sl": "Ura", "sr": "Сат", "sv": "Klocka", "ta": "கடிகாரம்", "th": "นาฬิกา", "tr": "Saat", "uk": "Годинник", "ur": "گھڑی", "vi": "Đồng hồ", "yue": "鐘", "zh-CN": "时钟", "zh-HK": "時鐘", "zh-TW": "時鐘" } }, "amenity/fountain": { "title": { "C": "Fountain", "bn": "ঝর্না", "fy": "Fontein", "bs": "Fontana", "id": "Air Mancur", "kn": "ಬುಗ್ಗೆ", "zh": "喷泉", "af": "Fontein", "ar": "نافورة", "ast": "Fonte d'adornu", "bg": "Фонтан", "br": "Feunteun", "ca": "Font ornamental", "cs": "Fontána, vodotrysk", "cy": "Ffynnon", "da": "Springvand", "de": "Springbrunnen", "el": "Συντριβάνι", "en-GB": "Fountain", "en": "Fountain", "eo": "Fontano", "es": "Fuente ornamental", "et": "Purskkaev", "eu": "Iturri", "fa": "فواره", "fi": "Suihkulähde", "fr": "Fontaine", "ga": "Scairdeán", "gl": "Fonte ornamental", "he": "מזרקה", "hr": "Fontana", "hu": "Szökőkút", "is": "Gosbrunnur", "it": "Fontana (decorativa)", "ja": "噴水", "ko": "분수대", "lt": "Fontanas", "lv": "Strūklaka", "mk": "Фонтана", "nl": "Fontein", "no": "Fontene", "pl": "Fontanna", "pt-BR": "Fonte", "pt": "Fonte decorativa", "ro": "Fântână", "ru": "Фонтан", "sk": "Fontána", "sl": "Vodomet", "sr": "Фонтана", "sv": "Fontän", "th": "น้ำพุ", "tr": "Su Fıskiyesi", "uk": "Фонтан", "ur": "چشمہ", "vi": "Vòi nước", "yue": "噴水池", "zh-CN": "喷泉", "zh-HK": "噴水池", "zh-TW": "噴水池" } }, "amenity/gambling": { "title": { "C": "Gambling Hall", "fy": "Kânsspulgelegenheid", "af": "Dobbelary", "ar": "Gambling Hall", "ca": "Sala de Jocs", "cs": "Místo pro hazard", "cy": "Neuadd Gambl", "de": "Spielhalle", "el": "Αίθουσα Τυχερών Παιγνίων για Διασκέδαση", "en-GB": "Gambling Hall", "en": "Gambling Hall", "eo": "Hazardludejo", "es": "Salón de juegos de azar", "et": "Hasartmängusaal", "fa": "سالن قمار", "fi": "Uhkapelisali", "fr": "Salle de jeux d'argent", "he": "היכל הימורים", "hu": "Szerencsejáték-helyszín", "it": "Sala da Gioco", "ja": "ギャンブル場", "ko": "도박장", "mk": "Сала за коцкање", "nl": "Gokhal", "no": "Spillehall", "pl": "Salon pachinko/bingo", "pt-BR": "Sala de jogos", "pt": "Sala de bingo", "ru": "Игорный зал", "sk": "Hazardné hry", "sr": "Коцкарска дворана", "sv": "Spelhall", "th": "ห้องเล่นการพนัน", "tr": "Kumar Salonu", "uk": "Ігорна зала", "vi": "Phòng Chơi bài", "zh-CN": "赌场厅", "zh-HK": "賭場", "zh-TW": "賭博場所" } }, "amenity/grit_bin": { "title": { "C": "Grit Bin", "fy": "Struibak", "af": "Grit bin", "ar": "صندوق حصى وملح", "ast": "Caxón de sal", "ca": "Contenidor de sorra", "cs": "Zásobník na posypový materiál", "cy": "Bin Graeanu", "da": "Vejsaltkasse", "de": "Streugutkiste", "en-GB": "Grit Bin", "en": "Grit Bin", "eo": "Ujo kun sablo kaj salo", "es": "Contenedor de gravilla", "et": "Libedustõrjekruusa kast", "eu": "Hare-ontzi", "fa": "سطل شن", "fi": "Hiekoitushiekkalaatikko", "fr": "Bac à sel", "gl": "Contedor de grava", "he": "סל חצץ", "hr": "Kanta sa šljunkom za poledicu", "hu": "Útszóróanyagos láda", "is": "Sandkista", "it": "Cestino del sale", "ja": "砂箱(降雪対策)", "ko": "염화칼슘 보관소", "lt": "Smėlio dėžė", "lv": "Smilšu tvertne", "mk": "Кутија за попескување", "nl": "Bak met Mengeling van Strooizout en Grind", "no": "Strøkasse", "pl": "Pojemnik z piaskiem lub żwirem", "pt-BR": "Caixa de Sal-Gema", "pt": "Caixa de sal para estrada", "ru": "Ящик с песком и солью (зимой)", "sk": "Nádoba s posypom", "sl": "Zabojnik za sol in pesek", "sv": "Sandkista", "tr": "Çakıl Kutusu", "uk": "Контейнер з піском", "vi": "Thùng Muối để Làm Tan Tuyết", "zh-CN": "砂箱", "zh-HK": "砂礫桶", "zh-TW": "沙盒" } }, "amenity/lavoir": { "title": { "C": "Lavoir", "ar": "مكان غسيل الملابس يدوياً", "br": "Poull-kannañ", "ca": "Safareig", "cs": "Lavor", "cy": "Golchdy", "da": "Vaskehus", "de": "Waschhaus", "el": "Δημόσιο πλυσταριό", "en": "Lavoir", "eo": "Vestaĵ-lavejo (ĉe rivero)", "es": "Lavadero", "et": "Kogukondlik rajatis käsitsi pesu pesemiseks", "fa": "محل شست‌وشوی لباس", "fi": "Pyykinpesupaikka", "fr": "Lavoir", "gl": "Lavadoiro", "he": "מקום מרחץ בגדים", "hu": "Ruhamosó hely", "it": "Lavatoio", "ja": "共同洗い場", "mk": "Пералница", "nl": "Openbare wasplaats", "no": "Vaskehus", "pl": "Pralnia (przy rzece)", "pt-BR": "Lavanderia pública", "pt": "Lavadouro", "ru": "Полоскалка (стирка белья на водоёмах)", "sk": "Miesto pre verejné pranie", "sv": "Tvättbrygga", "th": "สถานที่สาธารณะที่จัดไว้สำหรับซักเสื้อผ้า", "tr": "Yıkama Evi", "uk": "Місце для прання", "zh-CN": "公共洗衣池", "zh-TW": "洗手台" } }, "amenity/lounger": { "title": { "C": "Lounger", "ar": "Lounger", "br": "Kador-hir", "ca": "Gandula", "cs": "Lehátka", "da": "Liggestol", "de": "Liege", "el": "Ξαπλώστρα", "en-GB": "Lounger", "en": "Lounger", "eo": "Kuŝseĝo", "es": "Sillón de jardín / Tumbona", "et": "Rannatool", "fa": "صندلی راحتی", "fr": "Chaise longue", "he": "מיטת שיזוף", "hu": "Nyugágy", "it": "Sdraio", "ja": "サマーベッド", "ko": "일광욕용 의자", "mk": "Лежалка", "nl": "Ligstoel", "pl": "Leżak", "pt-BR": "Espreguiçadeira", "pt": "Espreguiçadeira", "ru": "Шезлонг", "sk": "Ležadlo", "sr": "Лежаљка", "sv": "Solstol(ar)", "th": "เลานจ์", "tr": "Şezlong", "uk": "Лежак", "vi": "Ghế Tắm nắng", "zh-CN": "躺椅", "zh-TW": "躺椅區" } }, "amenity/mortuary": { "title": { "C": "Morgue", "ar": "المشرحة", "br": "Morg", "ca": "Morgue", "cs": "Márnice", "da": "Lighus", "de": "Leichenhaus", "el": "Νεκροτομείο", "en-GB": "Morgue", "en": "Morgue", "eo": "Kadavrejo", "es": "Morgue", "et": "Surnukamber", "fa": "سردخانه", "fi": "Ruumishuone", "fr": "Morgue", "gl": "Velorio / tanatorio", "he": "חדר מתים", "hu": "Ravatalozó", "it": "Obitorio", "ja": "死体安置所", "ko": "영안실", "mi": "Whare tūpāpaku", "mk": "Мртовечница", "nl": "Mortuarium", "pl": "Kostnica", "pt-BR": "Necrotério", "pt": "Morgue", "ru": "Морг", "sk": "Márnica", "sr": "Мртвачница", "sv": "Bårhus", "th": "ห้องเก็บศพ", "tr": "Morg", "uk": "Морг", "vi": "Nhà xác", "zh-CN": "太平间/停尸房", "zh-TW": "太平間" } }, "amenity/motorcycle_parking": { "title": { "C": "Motorcycle Parking", "fy": "Motorparkearplak", "id": "Parkir Motor", "ms": "Tempat Letak Motosikal", "af": "Motorfietsparkering", "ar": "موقف دراجات نارية", "ast": "Aparcaderu de motos", "br": "Parklec'h marc'hoù-tan", "ca": "Aparcament per a motocicletes", "cs": "Parkování pro motorky", "da": "Motorcykelparkering", "de": "Motorradparkplatz", "el": "Στάθμευση μοτοσυκλετών", "en-GB": "Motorcycle Parking", "en": "Motorcycle Parking", "eo": "Motorcikla parkumejo", "es": "Estacionamiento de motos", "et": "Mootorratta parkla", "eu": "Motorren aparkalekua", "fa": "پارکینگ موتور سیکلت", "fi": "Moottoripyöräpysäköinti", "fr": "Parking pour motocyclettes", "gl": "Aparcadoiro de motos", "he": "חניית אופנועים", "hr": "Parkiralište za motocikle", "hu": "Motorkerékpár-parkoló", "is": "Mótorhjólastæði", "it": "Parcheggio moto", "ja": "オートバイの駐車場", "ko": "오토바이 주차장", "lt": "Motociklų stovėjimo aikštelė", "lv": "Motociklu stāvvieta", "mk": "Паркиралиште за мотоцикли", "nl": "Motorfietsparking", "no": "Motorsykkelparkering", "pl": "Parking motocyklowy", "pt-BR": "Estacionamento de motos", "pt": "Estacionamento para motas", "ro": "Parcare de Motociclete", "ru": "Парковка для мотоциклов", "sk": "Parkovanie pre motocykle", "sl": "Parkirišče za motorje", "sr": "Паркинг за мотоцикле", "sv": "Motorcykelparkering", "ta": "ஈருருளை நிறுத்துமிடம்", "th": "ที่จอดจักรยานยนต์", "tr": "Motosiklet Parkı", "uk": "Стоянка для мотоциклів", "vi": "Chỗ Đậu Xe máy", "yue": "電單車泊位", "zh-CN": "摩托车停车场", "zh-HK": "電單車停車位", "zh-TW": "機車停車場" } }, "amenity/parking_entrance": { "title": { "C": "Parking Garage Entrance / Exit", "fy": "Yn-/útgong parkeargaraazje", "af": "Parkeeringang", "ar": "مدخل / مخرج مرآب السيارات", "bg": "Вход/изход на гараж", "ca": "Entrada / Eixida d'un aparcament", "cs": "Vjezd / Výjezd krytého parkoviště", "da": "Ind/udgang til parkeringsgarage", "de": "Garageneinfahrt/-ausfahrt", "el": "Είσοδος / Έξοδος Γκαράζ", "en-AU": "Car Park Building Entrance / Exit", "en-GB": "Parking Garage Entrance / Exit", "en-NZ": "Carpark Building Entrance / Exit", "en": "Parking Garage Entrance / Exit", "eo": "Parkumeja en-/el-veturejo", "es": "Entrada/salida del garaje", "et": "Parkimismaja sisse/väljapääs", "fa": "ورودی / خروجی پارکینگ", "fi": "Pysäköintihallin ajoramppi", "fr": "Entrée / sortie de garage ou parking", "ga": "Slí Isteach/Amach Garáiste Páirceála", "gl": "Porta de entrada de aparcadoiro", "he": "יציאה לחניון", "hr": "Ulaz/izlaz iz garaže za automobile", "hu": "Parkolóház-bejárat", "it": "Ingresso/uscita parcheggio sotterraneo", "ja": "出入口(駐車場)", "ko": "주차장 입구/출구", "mk": "Влез/излез на покриено паркиралиште", "nl": "Ingang/uitgang van parkeergarage", "no": "Inn-/utkjøring parkeringshus", "pl": "Wjazd / Wyjazd z parkingu", "pt-BR": "Entrada / Saída da garagem", "pt": "Entrada / Saída de estacionamento", "ru": "Въезд в крытую парковку", "sk": "Vchod / východ do garáže", "sr": "Улаз/излаз за паркинг", "sv": "In- och utfart parkeringsgarage", "th": "ทางเข้า/ออก โรงจอดรถ", "tr": "Kapalı Otopark Giriş / Çıkış", "uk": "В’їзд/виїзд на криту стоянку", "vi": "Lối Ra vào Bãi Đậu xe Cao tầng", "zh-CN": "车库入口 / 出口", "zh-TW": "停車場入口/出口" } }, "amenity/photo_booth": { "title": { "C": "Photo Booth", "ar": "Photo Booth", "bg": "Фото будка", "br": "Fotomaton", "ca": "Fotoràpid", "cs": "Foto budka", "da": "Pasfotoautomat", "de": "Fotoautomat", "el": "Φωτογραφικός Θάλαμος", "en-GB": "Photo Booth", "en": "Photo Booth", "eo": "fot-aŭtomato", "es": "Cabina de fotos", "et": "Fotokabiin", "fa": "غرفه عکس", "fi": "Valokuvauskoppi", "fr": "Photomaton", "gl": "Cabina de fotos", "he": "תא צילום", "hu": "Fényképezőfülke", "it": "Cabina per fototessere", "ja": "証明写真機", "ko": "사진 부스", "mk": "Фотокабина", "nl": "Pasfotohokje", "no": "Fotokiosk", "pl": "Fotobudka", "pt-BR": "Cabine de foto", "pt": "Cabine Fotográfica", "ru": "Фотокабина", "sk": "Fotobúdka", "sr": "Фото кабина", "sv": "Fotoautomat", "th": "บูธถ่ายภาพ", "tr": "Fotoğraf Kabini", "uk": "Фото-кабінка", "vi": "Buồng Chụp hình", "zh-CN": "自助拍照机", "zh-TW": "照相站" } }, "amenity/trolley_bay": { "title": { "C": "Cart Corral", "ar": "عربة كورال", "br": "Goudor karrigelloù", "cs": "Stojan na vozíky", "cy": "Bae Trolïau", "da": "Bås til indkøbsvogne", "de": "Abstellplatz für Einkaufswagen", "el": "Χώρος Καροτσιών", "en-AU": "Trolley Bay", "en-GB": "Trolley Bay", "en-NZ": "Shopping Trolley Bay", "en": "Cart Corral", "es": "Corral de carritos", "fr": "Abri à chariots", "it": "Corridoio del carrello", "ja": "カート置き場", "mk": "Остава за колички", "nl": "Winkelwagenstalling", "pl": "Boks na wózki sklepowe", "pt-BR": "Baia de carrinhos de supermercado", "pt": "Parque de carrinhos de compras", "ru": "Загон для тележек", "sr": "Место за колица", "sv": "Kundvagnsgarage", "th": "ที่เก็บรถเข็น", "tr": "Cart Corral", "uk": "Місце для візків", "vi": "Khu Để Xe đẩy", "zh-CN": "手推车栏", "zh-TW": "手推車停放區" } }, "amenity/university": { "title": { "C": "University Grounds", "am": "ዩኒቨርሲቲ", "id": "Lingkungan Universitas", "ms": "Kawasan Universiti", "af": "Universiteitgebied", "ar": "أرض الجامعة", "ast": "Campus universitariu", "bg": "Университет", "br": "Tachenn skol-veur", "ca": "Campus universitari", "cs": "Prostor vysoké školy", "cy": "Tiroedd Prifysgol", "da": "Universitetsområde", "de": "Universitätsgelände", "el": "Πανεπιστήμιο", "en-GB": "University Grounds", "en": "University Grounds", "eo": "Altgrada lernejo (ISCED 5-7)", "es": "Terreno de universidad", "et": "Ülikooli maa-ala", "eu": "Unibertsitatearen eremua", "fa": "محوطه دانشگاه", "fi": "Yliopistokampus", "fr": "Université, enseignement supérieur universitaire - institution ou campus (terrain)", "ga": "Fearann Ollscoile", "gl": "Área universitaria", "he": "מתחם אוניברסיטה", "hr": "Sveučilišno zemljište", "hu": "Egyetem területe", "is": "Háskólalóð", "it": "Area universitaria", "ja": "大学(代表点または敷地)", "ko": "대학 부지", "lt": "Universiteto kiemas", "mi": "Whare Wānanga", "mk": "Универзитетски двор", "nl": "Campus van universiteit of hogeschool", "no": "Universitetsområde", "pl": "Teren uczelni", "pt-BR": "Universidade ou faculdade", "pt": "Universidade", "ro": "Universitate", "ru": "Университет / Институт", "sk": "Univerzita", "sl": "Univerzitetno območje", "sr": "Универзитетски кампус", "sv": "Universitetsområde", "ta": "பல்கலைக்கழகத் திடல்", "th": "พื้นที่มหาวิทยาลัย", "tr": "Üniversite Yerleşkesi", "uk": "Територія університету", "vi": "Sân trường Đại học", "zh-CN": "大学", "zh-HK": "大學範圍", "zh-TW": "大學範圍" } }, "amenity/bbq": { "title": { "C": "Barbecue/Grill", "fy": "Barbekjû/gril", "id": "Barbekyu/Pemanggang", "af": "Braai", "ar": "مكان مخصص للشواء", "ast": "Barbacoa/Asador", "br": "Regezer/grill", "ca": "Barbacoa/graella", "cs": "Gril", "cy": "Barbeciw", "da": "Barbecue/Grill", "de": "Grill", "el": "Ψησταριά/Σκάρα", "en-AU": "Barbeque", "en-GB": "Barbecue/Grill", "en-NZ": "Barbeque/Grill", "en": "Barbecue/Grill", "eo": "Rostilo", "es": "Parrilla", "et": "Väligrill", "eu": "Barbakoa/Parrila", "fa": "باربیکیو / گریل", "fi": "Grilli", "fr": "Barbecue, grill", "gl": "Barbacoa/Grella", "he": "מנגל", "hr": "Roštilj", "hu": "Grillezőhely", "is": "Grill", "it": "Barbecue/Griglia", "ja": "バーベキュー場/グリル", "ko": "바비큐/그릴", "lt": "Barbekiu/Grilis", "lv": "Barbekjū/Grills", "mk": "Скара", "nl": "Barbecue/Grill", "no": "Grill", "pl": "Grill", "pt-BR": "Churrasqueira", "pt": "Grelhador", "ru": "Барбекю/Гриль", "sk": "Gril", "sl": "Okrepčevalnica", "sr": "Роштиљ/печењара", "sv": "Grillplats/Grill", "th": "เตาย่าง", "tr": "Mangal Restoranı", "uk": "Барбекю/мангал", "vi": "Vỉ nướng", "zh-CN": "烧烤设施", "zh-HK": "燒烤", "zh-TW": "燒烤" } }, "amenity/hunting_stand": { "title": { "C": "Hunting Stand", "fy": "Jachttoer", "af": "Jagtoring", "ar": "منصة صيد", "ast": "Puestu de caza", "ca": "Punt de caça", "cs": "Posed", "da": "Jagttårn", "de": "Jägerstand", "el": "Καραούλι", "en-GB": "Hunting Stand", "en": "Hunting Stand", "eo": "Altembusko ĉasada", "es": "Puesto de caza", "et": "Jahitorn", "eu": "Ehiza postua", "fa": "ایستگاه شکار", "fi": "Metsästyspaikka", "fr": "Mirador de chasse", "gl": "Posto de caza", "he": "עמדת ציד", "hr": "Lovačka čeka", "hu": "Magasles", "is": "Skotvöllur", "it": "Postazione da caccia", "ja": "狩猟スタンド", "ko": "사냥 스탠드", "lt": "Medžioklės bokštelis", "lv": "Medību stends", "mk": "Ловен видиковец", "nl": "Jachthut", "no": "Jakttårn", "pl": "Ambona strzelnicza", "pt-BR": "Cabana de Caça", "pt": "Torre de caça", "ro": "Stand de Vânătoare", "ru": "Охотничья вышка", "sk": "Poľovnícka postriežka", "sl": "Lovska preža", "sr": "Чека", "sv": "Jakttorn", "tr": "Av Platformu", "uk": "Мисливська вежа", "vi": "Chỗ Săn Cao", "zh-CN": "狩猎台", "zh-HK": "狩獵台", "zh-TW": "獵寮" } }, "amenity/shelter": { "title": { "C": "Shelter", "bs": "Sklonište", "kn": "ಅಡೆ", "af": "Skuiling", "ar": "مأوى/عشة", "ast": "Abellugu", "br": "Goudor", "ca": "Refugi", "cs": "Přístřešek", "cy": "Cysgod", "da": "Læsted", "de": "Wetterschutz", "el": "Στέγαστρο", "en-GB": "Shelter", "en": "Shelter", "eo": "Ŝirmejo", "es": "Refugio", "et": "Varjualune", "eu": "Aterpetxe", "fa": "پناهگاه", "fi": "Katos", "fr": "Abri", "ga": "Scáthlán", "gl": "Abeiro", "he": "מקלט", "hr": "Sklonište", "hu": "Esőbeálló", "is": "Skýli", "it": "Riparo", "ja": "シェルター全般(休憩所、避難所)", "ko": "대피소", "lt": "Pastogė", "lv": "Pajumte", "mk": "Засолниште", "nl": "Beschutting", "no": "Skur", "pa-PK": "پناہ گاہ", "pl": "Wiata (schronienie)", "pt-BR": "Abrigo contra intempéries", "pt": "Abrigo", "ru": "Укрытие от непогоды", "sk": "Prístrešok", "sl": "Zavetišče", "sr": "Склониште", "sv": "Väderskydd", "th": "ที่พัก, ที่หลบภัย", "tr": "Barınak", "uk": "Притулок", "vi": "Nhà trú", "yue": "天遮或亭", "zh-CN": "亭", "zh-HK": "涼亭", "zh-TW": "涼亭" } }, "amenity/ticket_validator": { "title": { "C": "Ticket Validator", "ar": "مدقق التذاكر", "br": "Stamper tikedennoù", "ca": "Validador de bitllets", "cs": "Ověřovač vstupenek", "de": "Entwerter", "el": "Μηχάνημα ακύρωσης εισιτηρίων", "en-GB": "Ticket Validator", "en": "Ticket Validator", "eo": "Bilet-kontrolilo", "es": "Validador de boletos", "et": "Piletite valideerija", "fr": "Composteur de billet", "hu": "Jegyellenőrző", "it": "Validatore di biglietti", "ja": "改札機", "mk": "Валидатор на билети", "nl": "Stempelautomaat", "pl": "Kasownik", "pt-BR": "Máquina de validação de bilhetes", "pt": "Validador de bilhetes", "ru": "Валидатор билетов", "sk": "Označovač lístkov", "sv": "Biljettkontrollmaskin", "th": "เครื่องตรวจสอบตั๋ว", "tr": "Ticket Validator", "uk": "Валідатор квитків", "vi": "Máy Bấm Vé", "zh-CN": "验票机", "zh-TW": "剪票機" } }, "amenity/vacuum_cleaner": { "title": { "C": "Vacuum Cleaning Station", "ar": "محطة مكنسة سيارات", "cs": "Vysavač", "de": "Auto-Staubsauganlage", "el": "Σταθμός Ηλεκτρικής Σκούπας", "en-GB": "Car Hoover Service", "en": "Vacuum Cleaning Station", "eo": "Polvosuĉilo", "es": "Estación de limpieza con aspiradora", "fa": "ایستگاه جاروبرقی", "fr": "Station d'aspirateurs pour nettoyage automobile", "he": "תחנת שאיבת אבק", "hu": "Porszívó", "it": "Stazione di Aspirapolvere per Interni", "ja": "ゴミ吸取機", "mk": "Постројка за правосмукање", "nl": "Stofzuiger", "pl": "Odkurzacz samochodowy", "pt-BR": "Estação de aspiração", "pt": "Posto de aspiração", "sk": "Stanica s vysávačom", "sv": "Dammsugarstation", "tr": "Elektrikli Süpürge İstasyonu", "uk": "Стаціонарний пилотяг", "vi": "Trạm Hút bụi", "zh-CN": "真空清洁站", "zh-HK": "吸塵機店", "zh-TW": "吸塵器站" } }, "amenity/waste_disposal": { "title": { "C": "Garbage Dumpster", "ar": "حاوية قمامة متحركة", "ast": "Contenedor de basoria", "bg": "Контейнер за боклук", "br": "Bailh lastez", "ca": "Contenidor d'escombraries", "cs": "Kontejner na směsný odpad", "da": "Skraldespand", "de": "Müllcontainer", "el": "Κάδος απορριμμάτων", "en-AU": "Skip Bin", "en-GB": "Garbage Dumpster", "en": "Garbage Dumpster", "eo": "Rubujego (miksita)", "es": "Contenedor de residuos", "et": "Prügikonteiner", "fa": "زباله‌دان بزرگ", "fi": "Jäteastia", "fr": "Bac à déchets", "gl": "Contedor de lixo", "he": "פח אשפה", "hr": "Kontejner za smeće", "hu": "Szemeteskonténer", "is": "Ruslagámur", "it": "Cassonetto del pattume", "ja": "ゴミ収集ボックス", "ko": "쓰레기 수거함", "lt": "Šiukšlių konteineris", "lv": "Atkritumu konteiners", "mk": "Контејнер", "nl": "Kleine afvalcontainer", "no": "Søppelkonteiner", "pl": "Śmietnik", "pt-BR": "Contêiner de lixo não reciclável", "pt": "Contentor de lixo", "ro": "Container de Gunoi", "ru": "Мусорный бак", "sk": "Odpadkový kontajner", "sl": "Zabojnik za odpadke", "sr": "Контејнер за смеће", "sv": "Soptunna (hushålls- eller industrisopor)", "th": "ถังขยะ", "tr": "Çöp Tenekesi", "uk": "Контейнер для сміття", "vi": "Thùng Rác Lớn", "zh-CN": "大型垃圾箱", "zh-HK": "大型垃圾箱", "zh-TW": "垃圾場" } }, "amenity/weighbridge": { "title": { "C": "Truck Scale", "ar": "ميزان شاحانات", "cs": "Váha pro kamiony", "da": "Brovægt", "de": "Brückenwaage, LKW-Waage", "el": "Γεφυροπλάστιγγα", "en-AU": "Weighbridge", "en-GB": "Weigh Bridge", "en-NZ": "Weighbridge", "en": "Truck Scale", "eo": "Pesilo por aŭtomobiloj", "es": "Báscula de camiones", "et": "Autokaal", "fa": "باسکول کامیون", "fi": "Rekkavaaka / rautatievaaka", "fr": "pont bascule", "gl": "Balanza de camións", "he": "משקל משאיות", "hu": "Hídmérleg", "it": "Bilancia per camion", "ja": "トラックスケール", "ko": "트럭 저울", "mk": "Мосна вага", "nl": "Weegbrug", "no": "Lastebilvekt", "pl": "Waga samochodowa", "pt-BR": "Balança de caminhão", "pt": "Balança rodoviária", "ru": "Весы для грузовых автомобилей", "sk": "Váha pre nákladné vozidlá", "sr": "Камионска вага", "sv": "Lastbilsvåg", "th": "เครื่องชั่งรถบรรทุก", "tr": "Kamyon Kantarı", "uk": "Автомобільні ваги", "vi": "Trạm Cân Xe tải", "zh-CN": "汽车衡", "zh-TW": "地磅" } }, "amenity/bus_station": { "title": { "C": "Bus Station / Terminal", "am": "አውቶቡስ መናኃሪያ", "fy": "Busstasjon", "sq": "Stacioni i Autobusave", "id": "Stasiun Bus / Terminal", "af": "Busstasie / -terminaal", "ar": "محطة حافلات", "ast": "Estación d'autobuses / Terminal", "bg": "Автостанция / терминал", "br": "Arsav-dibenn bus", "ca": "Estació d'autobusos", "cs": "Autobusové nádraží / terminál", "cy": "Gorsaf Fysiau", "da": "Busstation/rutebilstation", "de": "Busbahnhof / Busterminal", "el": "Τερματικός Σταθμός Λεωφορείου", "en-GB": "Bus Station / Terminal", "en": "Bus Station / Terminal", "eo": "Aŭtobus-stacio", "es": "Estación / Terminal de bus", "et": "Bussijaam", "eu": "Autobus geltoki / Terminal", "fa": "پایانه / ترمینال اتوبوس", "fi": "Linja-autoasema/-terminaali", "fr": "Gare routière", "ga": "Stáisiún / Críochfort Bus", "gl": "Estación de autobuses", "he": "תחנת אוטובוס", "hr": "Autobusni kolodvor", "hu": "Buszpályaudvar", "is": "Strætisvagnastöð / Umferðarmiðstöð", "it": "Stazione /Terminal degli autobus", "ja": "バスターミナル(旧:単独)", "ko": "버스 터미널", "lv": "Autobusu pietura / Terminālis", "mi": "Teihana Pahi", "mk": "Автобуска станица / терминал", "nl": "Busstation", "no": "Busstasjon/-terminal", "pa-PK": "بس سٹیشن", "pl": "Dworzec autobusowy", "pt-BR": "Terminal/Estação de ônibus", "pt": "Estação / Terminal de autocarros", "ru": "Автобусная станция/терминал", "sk": "Autobusová zastávka / Terminál", "sl": "Avtobusna postaja / Terminal", "sr": "Аутобуска станица", "sv": "Busstation / Bussterminal", "ta": "பேருந்து நிலையம் / முனையம்", "th": "สถานี/อู่รถประจำทาง", "tr": "Otobüs Durağı / Terminali", "uk": "Автостанція/Термінал", "ur": "بس اسٹیشن", "vi": "Ga Xe buýt", "yue": "巴士總站", "zh-CN": "公交车站 / 枢纽站", "zh-HK": "巴士總站", "zh-TW": "客運站" } }, "amenity/coworking_space": { "title": { "C": "Coworking Space", "ar": "مساحة عمل مشتركة", "br": "Lec'h kenlabourat", "ca": "Espai de coworking", "cs": "Místo pro spolupráci", "cy": "Ardal Gydweithio", "da": "Kontorfællesskab", "de": "Coworking-Räumlichkeiten", "el": "Χώρος Κοινής Εργασίας", "en-GB": "Coworking Space", "en": "Coworking Space", "eo": "Loko por samloka laborado (ang. coworking)", "es": "Espacio de trabajo compartido", "et": "Ühiskasutatavad tööruumid", "eu": "Coworking espazioa", "fa": "فضای کاری مشارکتی", "fi": "Yhteistyöskentelytila", "fr": "Espace de bureaux partagés, coworking", "gl": "Espacio de cotraballo", "he": "מתחם עבודה שיתופי", "hu": "Közösségi iroda", "is": "Sameiginlegt vinnurými", "it": "Spazio di Coworking", "ja": "コワーキングスペース", "ko": "공동 작업 공간", "mk": "Споделен работен простор", "nl": "Coworking-kantoor", "no": "Rom for medarbeider", "pl": "Przestrzeń coworkingowa", "pt-BR": "Espaço de coworking", "pt": "Espaço de trabalho partilhado", "ru": "Коворкинг", "sk": "Priestory pre coworking", "sl": "Prostor za sodelanje", "sr": "Заједнички радни простор", "sv": "Dagkontor", "th": "พื้นที่ทำงานร่วมกัน", "tr": "Ortak Çalışma Alanı", "uk": "Коворкінг", "vi": "Văn phòng Làm việc Chung", "zh-CN": "共享办公空间", "zh-HK": "共同工作空間", "zh-TW": "共同工作空間" } }, "amenity/embassy": { "title": { "C": "Embassy", "am": "ኤምባሲ", "bn": "দুতাবাস", "fy": "Ambassade", "bs": "Ambasada", "id": "Kedutaan besar", "kn": "ರಾಯಭಾರ", "ms": "Kedutaan Besar", "zh": "使馆", "af": "Ambassade", "ar": "سفارة", "ast": "Embaxada", "bg": "Посолство", "br": "Kannati", "ca": "Ambaixada", "cs": "Velvyslanectví", "cy": "Llysgenhadaeth", "da": "Ambassade", "de": "Botschaft", "el": "Πρεσβεία", "en-GB": "Embassy", "en": "Embassy", "eo": "Ambasadejo", "es": "Embajada", "et": "Saatkond", "eu": "Enbaxada", "fa": "سفارت خانه", "fi": "Suurlähetystö", "fr": "Ambassade", "ga": "Ambasáid", "gl": "Embaixada", "he": "שגרירות", "hr": "Ambasada", "hu": "Külképviselet", "is": "Sendiráð", "it": "Ambasciata", "ja": "大使館", "ko": "대사관", "lt": "Ambasada", "lv": "Vēstniecība", "mk": "Амбасада", "nl": "Ambassade", "no": "Ambassade", "pl": "Ambasada/konsulat", "pt-BR": "Embaixada", "pt": "Embaixada", "ro": "Ambasadă", "ru": "Посольство", "sk": "Veľvyslanectvo", "sl": "Veleposlaništvo", "sr": "Амбасада", "sv": "Ambassad", "ta": "தூதரகம்", "th": "สถานเอกอัครราชฑูต", "tr": "Büyükelçilik", "uk": "Амбасада", "ur": "صفارت خانہ", "vi": "Tòa đại sứ", "yue": "大使館", "zh-CN": "使馆", "zh-HK": "大使館", "zh-TW": "使館" } }, "amenity/animal_boarding": { "title": { "C": "Animal Boarding Facility", "fy": "Bistepinsjon", "af": "Dierehotel", "ar": "منشأة رعاية حيوانات", "ast": "Instalación d'embarque d'animales", "ca": "Instal·lació d'embarcament d'animals", "cs": "Hotel pro zvířata", "da": "Dyrepension", "de": "Tierpension", "el": "Επιθεώρηση Ζώων", "en-GB": "Animal Boarding Facility", "en": "Animal Boarding Facility", "eo": "Hotelo (prizorgejo) por hejmbestoj", "es": "Alojamiento de animales", "fa": "امکانات پانسیون حیوانات", "fi": "Lemmikkihoitola", "fr": "Pension animalière", "gl": "Aloxamento de animais", "he": "פנסיון", "hu": "Állatpanzió", "is": "Dýrahótel", "it": "Pensione per animali", "ja": "ペットホテル", "ko": "동물 기숙 시설", "mk": "Престојувалиште за животни", "nl": "Dierenpension", "pl": "Hotel dla zwierząt", "pt-BR": "Hotel para animais", "pt": "Hotel para animais", "ru": "Передержка животных", "sk": "Zvierací hotel", "sl": "Živalski hotel", "sv": "Djurhotell", "th": "ศูนย์ดูแลสัตว์", "tr": "Yatılı Hayvan Bakım Yeri", "uk": "Готель для тварин", "vi": "Khách sạn Thú cưng", "zh-CN": "动物寄养机构", "zh-HK": "寵物酒店", "zh-TW": "寵物度假村" } }, "amenity/animal_breeding": { "title": { "C": "Animal Breeding Facility", "ar": "منشأة تربية وبيع حيوانات", "ast": "Instalación d'alimentación d'animales", "ca": "Instal·lació de reproducció d'animals", "cs": "Chovná stanice", "da": "Dyreavl", "de": "Tierzucht", "el": "Εκτροφείο", "en-GB": "Animal Breeding Facility", "en": "Animal Breeding Facility", "eo": "Bredejo", "es": "Criadero de animales", "fa": "امکانات پرورش حیوانات", "fi": "Eläinten ruokintapaikka", "fr": "Installation d'élevage d'animaux", "gl": "Granxa de animais", "he": "מתקן לגידול לבעלי חיים", "hu": "Állattenyésztő", "is": "Dýraræktun", "it": "Allevamento", "ja": "動物繁殖施設", "ko": "동물 사육 시설", "mk": "Размножувалиште на животни", "nl": "Fokkerij", "pl": "Hodowla zwierząt", "pt-BR": "Estabelecimento para reprodução de animais", "pt": "Instalação para reprodução de animais", "ru": "Питомник", "sk": "Chovateľská stanica", "sl": "Središče za vzrejo živali", "sr": "Установа за узгој животиња", "sv": "Djuruppfödning", "th": "ศูนย์เพาะพันธุ์สัตว์", "tr": "Hayvan Islah Yeri", "uk": "Розплідник тварин", "vi": "Trại Nuôi Thú", "zh-CN": "动物饲养繁育机构", "zh-HK": "動物繁殖場", "zh-TW": "動物繁殖場" } }, "amenity/animal_shelter": { "title": { "C": "Animal Shelter", "fy": "Biste-asyl", "af": "Dierebeskerming", "ar": "مأوى حيوانات", "ast": "Refuxu d'animales", "br": "Bod-loened", "ca": "Refugi d'animals", "cs": "Zvířecí útulek", "da": "Dyreinternat", "de": "Tierheim", "el": "Καταφύγιο Ζώων", "en-GB": "Animal Shelter", "en": "Animal Shelter", "eo": "Azilo por bestoj", "es": "Refugio de animales", "et": "Loomade varjupaik", "fa": "پناهگاه حیوانات", "fi": "Eläinhoitola", "fr": "Refuge animalier", "gl": "Abeiro de animais", "he": "בית מחסה לחיות מחמד", "hu": "Állatmenhely", "is": "Dýraathvarf", "it": "Rifugio per animali", "ja": "動物保護施設", "ko": "동물 보호소", "lt": "Gyvūnų prieglauda", "lv": "Dzīvnieku patversme", "mk": "Засолниште за животни", "nl": "Dierenasiel", "no": "Dyrehjem", "pl": "Schronisko dla zwierząt", "pt-BR": "Abrigo de animais", "pt": "Abrigo para animais", "ru": "Приют для животных", "sk": "Útulok pre zvieratá", "sl": "Zavetišče za živali", "sr": "Азил за животиње", "sv": "Djurhem", "th": "ศูนย์พักพิงสัตว์", "tr": "Hayvan Barinağı", "uk": "Притулок для тварин", "vi": "Trạm Cứu hộ Thú cưng", "zh-CN": "动物收容救助所", "zh-HK": "動物收容中心", "zh-TW": "動物收容中心" } }, "amenity/arts_centre": { "title": { "C": "Arts Center", "bn": "শিল্প কেন্দ্র", "fy": "Keunstsintrum", "bs": "Centar za umjetnost", "id": "Pusat Kesenian", "af": "Kunssentrum", "ar": "مركز فنون", "ast": "Centru d'arte", "br": "Kreizenn arz ha sevenadur", "ca": "Centre artístic", "cs": "Umělecké centrum", "cy": "Canolfan Celfyddydau", "da": "Kunstcenter", "de": "Kunstzentrum", "el": "Κέντρο Καλών Τεχνών", "en-AU": "Arts Centre", "en-CA": "Arts Centre", "en-GB": "Arts Centre", "en-NZ": "Arts Centre", "en": "Arts Center", "eo": "Belart-centro", "es": "Centro de arte", "et": "Kunstide keskus", "eu": "Arte Zentro", "fa": "مرکز هنری", "fi": "Taidekeskus", "fr": "Centre artistique et culturel", "gl": "Centro de arte", "he": "מרכז אומנויות", "hr": "Umjetnički paviljon", "hu": "Művészeti központ", "is": "Listamiðstöð", "it": "Centro artistico", "ja": "アートセンター", "ko": "아트 센터", "lt": "Menų centras", "lv": "Mākslas Centrs", "mk": "Дом на уметноста", "nl": "Cultureel centrum", "no": "Kunstsenter", "pl": "Ośrodek sztuki", "pt-BR": "Centro cultural", "pt": "Centro de artes", "ro": "Centru de Artă", "ru": "Центр Искусств", "sk": "Umelecké centrum", "sl": "Umetniško središče", "sr": "Уметнички центар", "sv": "Konstcenter", "ta": "கலையரங்கம்", "th": "ศูนย์ศิลปะ", "tr": "Sanat Merkezi", "uk": "Мистецький центр", "vi": "Trung tâm Nghệ thuật", "yue": "美術館", "zh-CN": "艺术中心", "zh-HK": "美術館", "zh-TW": "藝文中心" } }, "amenity/atm": { "title": { "C": "ATM", "bn": "এটিএম", "fy": "Jildautomaat", "bs": "Bankomat", "id": "ATM", "kn": "ಎಟಿಎಮ್", "ms": "ATM", "zh": "自动柜员机(ATM)。", "af": "OTM", "ar": "صراف آلي", "ast": "Caxeru automáticu", "bg": "Банкомат", "br": "Bilhedaouer", "ca": "Caixer automàtic", "cs": "Bankomat", "cy": "Peiriant Arian Parod", "da": "Pengeautomat", "de": "Geldautomat", "el": "ATM", "en-GB": "Cash Machine", "en": "ATM", "eo": "Bankaŭtomato", "es": "Cajero automático", "et": "Pangaautomaat", "eu": "ATM", "fa": "دستگاه خودپرداز", "fi": "Pankkiautomaatti", "fr": "Distributeur de billets", "ga": "Meaisín Bainc", "gl": "Caixeiro automático", "he": "כספומט", "hr": "Bankomat", "hu": "Bankautomata", "is": "Hraðbanki", "it": "Bancomat", "ja": "ATM", "ko": "ATM", "lt": "Bankomatas", "lv": "Bankomāts", "mi": "Pūrere Pūtea", "mk": "Банкомат", "nl": "Bankautomaat", "nn": "Minibank", "no": "Minibank", "pa-PK": "نقدی آلہ (اے ٹی ایم)", "pl": "Bankomat", "pt-BR": "Caixa eletrônico", "pt": "Terminal bancário", "ro": "Bancomat", "ru": "Банкомат", "sk": "Bankomat", "sl": "Bankomat", "sr": "Банкомат", "sv": "Uttagsautomat", "ta": "ஏ.டி.எம்", "th": "เครื่องรับจ่ายเงินอัตโนมัติ", "tr": "ATM", "uk": "Банкомат", "ur": "ای ٹی ایم", "vi": "Máy Rút tiền", "yue": "提款機", "zh-CN": "ATM机", "zh-HK": "提款機", "zh-TW": "自動櫃員機" } }, "amenity/bicycle_rental": { "title": { "C": "Bicycle Rental", "bn": "সাইকেল ভাড়া নেয়া", "fy": "Fytsferhier", "hy": "Հեծանիվի վարձակալություն", "bs": "Iznajmljivanje bicikala", "id": "Penyewaan Sepeda", "zh": "自行车租赁处", "af": "Fietshuur", "ar": "تأجير دراجات", "ast": "Alquiler de bicicletes", "bg": "Наем на велосипеди", "br": "Marc'hoù-houarn da feurmiñ", "ca": "Lloguer de bicicletes", "cs": "Půjčovna kol", "da": "Cykeludlejning", "de": "Fahrradverleih", "el": "Ενοικιαζόμενα Ποδηλάτα", "en-GB": "Bicycle Rental", "en": "Bicycle Rental", "eo": "Bicikl-pruntejo", "es": "Alquiler de bicicletas", "et": "Rattarent", "eu": "Bizikleten Alokairua", "fa": "اجاره دوچرخه", "fi": "Kaupunkipyöräasema", "fr": "Location de vélos", "gl": "Alugueiro de bicicletas", "he": "השכרת אופניים", "hr": "Najam bicikla", "hu": "Kerékpárkölcsönző", "is": "Hjólaleiga", "it": "Noleggio biciclette", "ja": "レンタサイクル", "ko": "자전거 대여소", "lt": "Dviračių nuoma", "lv": "Velonoma", "mk": "Изнајмување велосипеди", "nl": "Fietsverhuur", "no": "Sykkelutleie", "pl": "Wypożyczalnia rowerów", "pt-BR": "Estação de bicicletas públicas", "pt": "Aluguer de bicicletas", "ro": "Închiriere biciclete", "ru": "Велопрокат", "sk": "Prenájom bicyklov", "sl": "Izposoja koles", "sr": "Изнајмљивање бицикла", "sv": "Cykeluthyrning", "ta": "சைக்கிள் வாடகை", "th": "เช่าจักรยาน", "tr": "Bisiklet Kiralama", "uk": "Прокат велосипедів", "vi": "Cho thuê Xe đạp", "yue": "租單車舖", "zh-CN": "自行车出租点", "zh-HK": "單車出租", "zh-TW": "單車出租" } }, "amenity/bicycle_repair_station": { "title": { "C": "Bicycle Repair Tool Stand", "am": "ቢስክሌት ጠጋኝ", "fy": "Fyts-selsreparaasje", "af": "Fietsherstelstasie", "ar": "ورشة إصلاح دراجات هوائية", "ast": "Caballete pa reparar bicicletes", "ca": "Lloc de reparació de Bicicletes", "cs": "Montážní stojan na kola", "da": "Cykelreparationsværktøj", "de": "Fahrradreparatur-Werkzeugkasten", "el": "Πάγκος Επισκευής Ποδηλάτων", "en-GB": "Bicycle Repair Tool Stand", "en": "Bicycle Repair Tool Stand", "eo": "Bicikla mem-riparejo", "es": "Puesto de reparación de bicicletas", "et": "Jalgrattaremondi pukk", "eu": "Bizikleta konpontzeko tresneriaren postua", "fa": "ایستگاه تعمیر دوچرخه", "fi": "Polkupyörän huoltoteline", "fr": "Stand d'outils de réparation de vélos", "gl": "Lugar para ferramentas de reparación de bicicletas", "he": "עמדת תיקון אופניים", "hr": "Stalak sa alatima za bicikle", "hu": "Önálló kerékpárszerelő pont", "is": "Hjólaviðgerðastandur", "it": "Stazione di riparazione biciclette", "ja": "自転車修理場(公共)", "ko": "자전거 수리 도구", "lv": "Velosipēdu Remonta Darbarīku Stends", "mk": "Држач за поправка на велосипеди", "nl": "Openbaar fietsgereedschap", "no": "Sykkelservicestasjon", "pl": "Samoobsługowa stacja naprawy rowerów", "pt-BR": "Estação de reparo de bicicletas", "pt": "Ponto de reparação de bicicletas", "ru": "Стойка для ремонта велосипедов", "sk": "Servisný stojan na opravu bicykla", "sl": "Stojalo za popravilo koles", "sv": "Station för cykelreparation", "th": "จุดบริการเครื่องมือซ่อมจักรยาน", "tr": "Bisiklet Tamircisi", "uk": "Станція ремонту велосипедів", "vi": "Quầy Sửa Xe đạp", "zh-CN": "自行车维修工具站", "zh-HK": "單車維修站", "zh-TW": "自行車維修工具站" } }, "amenity/biergarten": { "title": { "C": "Biergarten", "af": "Biertuin", "ar": "Biergarten", "cs": "Pivní zahrádka", "cy": "Biergarten", "de": "Biergarten", "el": "Κήπος Μπυραρίας", "en-GB": "Biergarten", "en": "Biergarten", "eo": "Bierĝardeno", "es": "Biergarten (Bar al aire libre)", "eu": "Biergarten", "fa": "بیرگارتن (حیاط با سرو آبجو - ریشه در مونیخ آلمان)", "fr": "Biergarten", "gl": "Biergarten (xardín da cervexa alemán)", "he": "ביר גרדן", "hu": "Sörkert", "is": "Bjórgarður", "it": "Biergarten", "ja": "ビアガーデン", "ko": "옥외 식탁", "mk": "Пивска градина", "nl": "Biergarten", "no": "Ølhage", "pl": "Ogródek piwny", "pt-BR": "Biergarten", "pt": "Jardim de cerveja", "ru": "Пивной сад", "sk": "Pivná záhrada", "sr": "Пивска башта", "sv": "Ölträdgård", "th": "ลานเบียร์", "tr": "Bira bahçesi", "uk": "Пивний садок", "vi": "Vườn Bia", "zh-CN": "啤酒花园", "zh-HK": "露天啤酒店", "zh-TW": "啤酒花園" } }, "amenity/boat_rental": { "title": { "C": "Boat Rental", "fy": "Boatferhier", "bs": "Iznajmljivanje plovila", "id": "Penyewaan Perahu Boat", "af": "Boothuur", "ar": "محل استئجار قوارب", "ast": "Alquiler de barcos", "br": "Bigi da feurmiñ", "ca": "Lloguer d'embarcacions", "cs": "Půjčovna lodí", "da": "Bådudlejning", "de": "Bootsvermietung", "el": "Ενοικίαση Σκαφών", "en-GB": "Boat Rental", "en": "Boat Rental", "eo": "Boat-pruntejo", "es": "Alquiler de barcos", "et": "Paadilaenutus", "eu": "Ontzi alokairu", "fa": "کرایه قایق", "fi": "Venevuokraamo", "fr": "Location de bateau", "gl": "Alugueiro de embarcacións", "he": "השכרת סירה", "hr": "Najam brodova", "hu": "Hajókölcsönző", "is": "Bátaleiga", "it": "Noleggio barche", "ja": "貸しボート", "ko": "보트 대여소", "lt": "Laivų nuoma", "lv": "Laivu īre", "mk": "Изнајмување чамци", "nl": "Bootverhuur", "no": "Båuttleie", "pl": "Wypożyczalnia łodzi", "pt-BR": "Aluguel de barcos", "pt": "Aluguer de barcos", "ro": "Închiriere Barcă", "ru": "Аренда Лодок", "sk": "Prenájom lodí", "sl": "Izposoja plovil", "sr": "Изнајмљивање чамаца", "sv": "Båtuthyrning", "th": "ศูนย์เรือเช่า", "tr": "Bot Kiralama", "uk": "Прокат човнів", "vi": "Cho thuê Tàu", "yue": "租艇", "zh-CN": "船舶租赁处", "zh-HK": "租艇", "zh-TW": "小艇出租" } }, "amenity/bureau_de_change": { "title": { "C": "Currency Exchange", "am": "የውጭ ምንዛሬ ቢሮ", "fy": "Wikselkantoar", "id": "Penukaran Mata Uang", "af": "Wisselkantoor", "ar": "تحويل أموال", "ast": "Cambiu de moneda", "ca": "Canvi de divisa", "ckb": "گۆڕینەوەی دراو", "cs": "Směnárna", "da": "Valutaveksling", "de": "Geldwechselstube", "el": "Ανταλλακτήριο Συναλλάγματος", "en-GB": "Currency Exchange", "en": "Currency Exchange", "eo": "Monŝanĝejo", "es": "Cambio de moneda", "et": "Valuutavahetus", "eu": "Moneta trukea", "fa": "تبدیل ارز / صرافی", "fi": "Valuutanvaihtopiste", "fr": "Bureau de change", "gl": "Troco de divisas", "he": "המרת מט״ח", "hr": "Mjenjačnica", "hu": "Pénzváltó", "is": "Gjaldmiðlaskipti", "it": "Cambiavalute", "ja": "両替所", "ko": "환전소", "lt": "Valiutos keitykla", "lv": "Valūtas Maiņa", "mk": "Менувачница", "nl": "Wisselkantoor", "no": "Valutaveksling", "pl": "Kantor", "pt-BR": "Casa de câmbio", "pt": "Agência de câmbio", "ro": "Schimbare Valută", "ru": "Пункт обмена валюты", "sk": "Zmenáreň", "sl": "Menjalnica", "sr": "Мењачница", "sv": "Växlingskontor", "ta": "பணப் பரிமாற்றம்", "th": "จุดแลกเปลี่ยนเงินตรา", "tr": "Döviz Bürosu", "uk": "Обмін валют", "vi": "Đổi tiền", "zh-CN": "货币兑换", "zh-HK": "外幣兌換", "zh-TW": "外幣兌換" } }, "amenity/car_pooling": { "title": { "C": "Car Pooling Station", "ar": "محطة تجميع السيارات", "br": "Leur-genweturañ", "cs": "Stanice spolujízdy", "da": "Samkørselsstation", "de": "Car-Pooling-Station", "el": "Σταθμός Συγκέντρωσης Αυτοκινήτων", "en-GB": "Car Pooling Station", "en": "Car Pooling Station", "eo": "Haltejo aŭtomobila (carpooling)", "es": "Estación de vehículo compartido (Carpooling)", "fa": "ایستگاه هم‌سفری (نوعی اشتراک خودرو)", "fi": "Kimppakyytiasema", "fr": "Aire de covoiturage", "gl": "Estación de automóbil compartido (Carpooling)", "he": "תחנת שיתוף נסיעות", "hu": "Telekocsihely", "it": "Stazione per il Car Pooling", "ja": "カープール", "mk": "Станица за заедничко автомобилско возење", "nl": "Carpoolparking", "pl": "Punkt carpoolingowy", "pt-BR": "Estação de carona solidária", "pt": "Posto de boleia partilhada", "ru": "Станция для сбора автомобилей", "sk": "Stanica spolujazdy", "sv": "Bilpoolstation", "tr": "Araç Havuzlama İstasyonu", "uk": "Місце посадки/висадки пасажирів", "vi": "Chỗ Đón để Đi Cùng Xe", "zh-CN": "拼车站", "zh-TW": "汽車共乘站" } }, "amenity/car_rental": { "title": { "C": "Car Rental", "am": "የመኪና ማከራያ", "bn": "গাড়ি ভাড়া", "fy": "Autoferhier", "bs": "Rent-a-car", "id": "Penyewaan Mobil", "af": "Motorhuur", "ar": "محل إيجار سيارات", "ast": "Alquiler d'automóviles", "bg": "Коли под наем", "br": "Kirri da feurmiñ", "ca": "Lloguer de cotxes", "ckb": "بەکرێدانی ئۆتۆمبێل", "cs": "Půjčovna aut", "da": "Biludlejning", "de": "Autovermietung", "el": "Ενοικίαση Αυτοκινήτων", "en-GB": "Car Rental", "en": "Car Rental", "eo": "Aŭtomobil-pruntejo", "es": "Alquiler de automóviles", "et": "Autorent", "eu": "Auto Alokairua", "fa": "کرایه ماشین", "fi": "Autonvuokraus", "fr": "Location de voiture", "gl": "Alugueiro de automóbiles", "he": "השכרת רכב", "hr": "Najam automobila", "hu": "Autókölcsönző", "is": "Bílaleiga", "it": "Noleggio auto", "ja": "レンタカー", "ko": "자동차 대여점", "lt": "Automobilių nuoma", "lv": "Autonoma", "mi": "Ngā Tūnga Waka Rēti", "mk": "Изнајмување автомобили", "nl": "Autoverhuur", "no": "Bilutleie", "pl": "Wypożyczalnia samochodów", "pt-BR": "Locadora de veículos", "pt": "Aluguer de automóveis", "ro": "Închiriere Mașini", "ru": "Аренда автомобилей", "sk": "Autopožičovňa", "sl": "Izposoja avtomobilov", "sr": "Изнајмљивање возила", "sv": "Biluthyrning", "th": "ศูนย์รถเช่า", "tr": "Araç Kiralama", "uk": "Прокат автомобілів", "vi": "Cho thuê Xe", "yue": "租車舖", "zh-CN": "汽车租赁", "zh-HK": "汽車租賃", "zh-TW": "汽車租車店" } }, "amenity/car_sharing": { "title": { "C": "Car Sharing Station", "am": "የመኪና ዕቃ መለዋወጫ መሸጫ", "fy": "Autodielstânplak", "id": "Stasiun Berbagi Mobil", "af": "Saam-ry", "ar": "محطة مشاركة السيارات", "ca": "Estació de cotxes compartits", "cs": "Stanice sdílení aut", "da": "Delebilsstation", "de": "Car Sharing Station", "el": "Σταθμός Διαμοιρασμού Αυτοκινήτων", "en-GB": "Car Sharing Station", "en": "Car Sharing Station", "eo": "Aŭtomobil-pruntejo komunuma (organizita kunveturado)", "es": "Estación de uso temporal de vehículos (Carsharing)", "fa": "ایستگاه اشتراک‌گذاری خودرو", "fi": "Yhteiskäyttöautoasema", "fr": "Station d'auto-partage", "gl": "Estación de vehículos compartidos (Carsharing)", "he": "תחנת שיתוף מכוניות", "hu": "Autómegosztó állomás", "it": "Stazione per il Car Sharing", "ja": "カーシェアリング", "ko": "카셰어링 센터", "mk": "Станица за споделување автомобили", "nl": "Autodelen", "no": "Bildelingsstasjon", "pl": "Stacja car-sharingowa", "pt-BR": "Estação de compartilhamento de carros", "pt": "Posto de partilha de automóvel", "ru": "Пункт краткосрочной аренды автомобилей", "sk": "Stanica zdieľania áut", "sv": "Bildelningsstation", "tr": "Araç Paylaşma İstasyonu", "uk": "Каршерінг станція", "vi": "Trạm Chia sẻ Xe", "zh-CN": "共享汽车站点", "zh-TW": "共享汽車站" } }, "amenity/car_wash": { "title": { "C": "Car Wash", "fy": "Autowaskerij", "bs": "Autopraonica", "id": "Pencucian Mobil", "zh": "洗车", "af": "Karwas", "ar": "غسيل سيارات", "ast": "Llaváu de coches", "bg": "Автомивка", "br": "Porzh gwalc'hiñ kirri", "ca": "Rentat de cotxes", "ckb": "شووشتنگەی ئۆتۆمبێل", "cs": "Automyčka", "cy": "Golchi Car", "da": "Bilvask", "de": "Autowäsche", "el": "Πλυντήριο Αυτοκινήτων", "en-GB": "Car Wash", "en": "Car Wash", "eo": "Aŭtomobil-purigejo", "es": "Lavado de automóviles", "et": "Autopesula", "eu": "Auto garbiketa", "fa": "کارواش", "fi": "Autopesula", "fr": "Station de lavage de voiture", "gl": "Lavado de automóbiles", "he": "שטיפת רכב", "hr": "Autopraonica", "hu": "Autómosó", "is": "Bílaþvottur", "it": "Autolavaggio", "ja": "洗車場", "ko": "세차장", "lt": "Automobilių plovykla", "lv": "Automazgātuve", "mk": "Автоперална", "nl": "Autowasstraat", "no": "Bilvask", "pl": "Myjnia samochodowa", "pt-BR": "Lava-rápido", "pt": "Lavagem de veículos", "ro": "Spălătorie Auto", "ru": "Автомойка", "sk": "Autoumyváreň", "sl": "Avtopralnica", "sr": "Ауто-перионица", "sv": "Biltvätt", "th": "สถานที่บริการล้างรถ", "tr": "Araç Yıkama", "uk": "Автомийка", "vi": "Rửa xe", "yue": "洗車舖", "zh-CN": "洗车", "zh-HK": "洗車店", "zh-TW": "洗車店" } }, "amenity/casino": { "title": { "C": "Casino", "fy": "Kasino", "id": "Kasino", "af": "Dobbelhuis", "ar": "كازينو", "ast": "Casino", "bg": "Казино", "br": "Kazino", "ca": "Casino", "ckb": "گازینۆ", "cs": "Kasino", "cy": "Casino", "da": "Kasino", "de": "Kasino", "el": "Καζίνο", "en-GB": "Casino", "en": "Casino", "eo": "Monludejo", "es": "Casino", "et": "Kasiino", "eu": "Kasino", "fa": "کازینو", "fi": "Kasino", "fr": "Casino", "gl": "Casino", "he": "קזינו", "hr": "Kasino", "hu": "Kaszinó", "is": "Spilavíti", "it": "Casinò", "ja": "カジノ", "ko": "카지노", "lt": "Kazino", "lv": "Kazino", "mk": "Коцкарница", "nl": "Casino", "no": "Kasino", "pl": "Kasyno", "pt-BR": "Cassino", "pt": "Casino", "ro": "Cazino", "ru": "Казино", "sk": "Kasíno", "sl": "Igralnica", "sr": "Казино", "sv": "Kasino", "th": "บ่อนการพนัน", "tr": "Kumarhane", "uk": "Казино", "ur": "قمار خانہ", "vi": "Sòng bạc", "zh-CN": "赌场", "zh-HK": "賭場", "zh-TW": "賭場" } }, "amenity/charging_station": { "title": { "C": "Charging Station", "fy": "Laadstasjon", "af": "Herlaaistasie", "ar": "محطة شحن", "ast": "Estación de recarga", "ca": "Estació de càrrega", "cs": "Nabíjecí stanice", "da": "Ladestation", "de": "Ladestation für Elektrofahrzeuge", "el": "Σταθμός Φόρτισης", "en-GB": "Charging Station", "en": "Charging Station", "eo": "Ŝargostacio", "es": "Estación de carga para vehículos eléctricos", "et": "Laadimisjaam", "eu": "Kargatzeko geltokia", "fa": "ایستگاه شارژ", "fi": "Latauspiste", "fr": "Borne de recharge", "gl": "Estación de carga", "he": "תחנת טעינה", "hr": "Punionica za električna vozila", "hu": "Elektromos töltőállomás", "is": "Hleðslustöð", "it": "Stazione di ricarica", "ja": "充電スタンド", "ko": "충전소", "lt": "Įkrovimo stotelė", "lv": "Uzlādes stacija", "mk": "Напојна станица", "nl": "Oplaadstation", "no": "Ladestasjon", "pl": "Stacja ładowania pojazdów", "pt-BR": "Estação de carregamento", "pt": "Posto de carregamento", "ro": "Benzinărie", "ru": "Станция зарядки", "sk": "Nabíjacia stanica", "sl": "Polnilna postaja", "sr": "Пуњач за електрична возила", "sv": "Laddstation", "tr": "Şarj İstasyonu", "uk": "Зарядна станція", "vi": "Trạm Sạc Pin", "zh-CN": "充电站", "zh-HK": "充電站", "zh-TW": "充電站" } }, "amenity/clinic": { "title": { "C": "Clinic", "am": "ክሊኒክ", "fy": "Klinyk", "bs": "Klinika", "id": "Klinik", "kn": "ಚಿಕಿತ್ಸಾಲಯ", "af": "Kliniek", "ar": "عيادة", "ast": "Clínica", "br": "Liesklinikenn", "ca": "Clínica", "ckb": "نۆڕینگە", "cs": "Poliklinika", "cy": "Clinig", "da": "Klinik", "de": "Ärztezentrum", "el": "Κλινική", "en-GB": "Clinic", "en": "Clinic", "eo": "Kuracistejo (centro de komunuma sano)", "es": "Clínica", "et": "Kliinik", "eu": "Erietxe", "fa": "کلینیک", "fi": "Terveyskeskus", "fr": "Centre médical de taille moyenne, soins en ambulatoire", "gl": "Clínica ou centro de saúde", "he": "מרפאה", "hr": "Klinika", "hu": "Rendelőintézet", "is": "Læknastofa", "it": "Clinica medica", "ja": "医療センター(通院のみ)", "ko": "클리닉", "lt": "Klinika", "lv": "Klīnika", "mk": "Клиника", "nl": "Dagbehandelingscentrum", "no": "Klinikk", "pl": "Przychodnia/poliklinika", "pt-BR": "Clínica ou posto de saúde", "pt": "Centro de saúde / Clínica", "ro": "Clinică", "ru": "Клиника", "sk": "Klinika", "sl": "Klinika", "sr": "Клиника", "sv": "Vårdcentral", "th": "คลินิก", "tr": "Klinik", "uk": "Клініка", "vi": "Trạm Y tế", "yue": "診所", "zh-CN": "诊所", "zh-HK": "診所", "zh-TW": "診所" } }, "amenity/community_centre": { "title": { "C": "Community Center", "am": "የማህበረሰብ ማዕከል", "fy": "Mienskipshûs", "af": "Gemeenskapsentrum", "ar": "مركز اجتماعي", "ast": "Centru comunitariu", "br": "Sal liezimplij", "ca": "Centre Comunitari", "cs": "Komunitní centrum", "cy": "Canolfan Gymunedol", "da": "Medborgerhus", "de": "Gemeindezentrum", "el": "Κέντρο Κοινότητας", "en-AU": "Community Centre", "en-CA": "Community Centre", "en-GB": "Community Centre", "en-NZ": "Community Centre", "en": "Community Center", "eo": "Komunuma centro", "es": "Centro Comunitario", "et": "Kogukonna keskus", "eu": "Gizarte Etxe", "fa": "مرکز اجتماع", "fi": "Yhteisökeskus", "fr": "Salle polyvalente", "ga": "Ionad Pobail", "gl": "Centro comunitario", "he": "מרכז קהילתי", "hr": "Društveni centar", "hu": "Közösségi ház", "is": "Samfélagsmiðstöð", "it": "Centro sociale (pubblico)", "ja": "コミュニティセンター", "ko": "커뮤니티 센터", "lt": "Bendruomenės centras", "lv": "Kopienas centrs", "mk": "Месна заедница", "nl": "Buurthuis", "no": "Samfunnshus", "pl": "Centrum społecznościowe", "pt-BR": "Centro comunitário", "pt": "Centro comunitário", "ro": "Centru Comunitar", "ru": "Общественный центр", "sk": "Komunitné centrum", "sl": "Središče skupnosti", "sr": "Дом културе", "sv": "Samlingslokal", "th": "ศูนย์ชุมชน", "tr": "Toplum Merkezi", "uk": "Суспільний центр", "vi": "Trung tâm Cộng đồng", "yue": "社區會堂", "zh-CN": "社区活动中心", "zh-HK": "社區中心", "zh-TW": "社區中心" } }, "amenity/conference_centre": { "title": { "C": "Convention Center", "ms": "Pusat Konvensyen", "af": "Konverensiesentrum", "ar": "مركز مؤتمرات", "br": "Kreizenn ar c'hendalc'hioù", "ca": "Centre de convencions", "cs": "Konferenční centrum", "da": "Kongrescenter", "de": "Kongresszentrum", "el": "Συνεδριακό Κέντρο", "en-AU": "Convention Centre", "en-CA": "Convention Centre", "en-GB": "Convention Centre", "en-NZ": "Convention Centre", "en": "Convention Center", "eo": "Konferenca centro", "es": "Centro de convenciones", "et": "Konverentsikeskus", "fa": "مرکز همایش", "fi": "Kongressikeskus", "fr": "Centre de congrés", "gl": "Centro de convencións", "he": "מרכז כנסים", "hu": "Konferenciaközpont", "it": "Centro conferenze", "ja": "コンベンションセンター", "ko": "컨벤션 센터", "mk": "Центар за собири", "nl": "Congrescentrum", "no": "Konferansesenter", "pl": "Centrum konferencyjne", "pt-BR": "Centro de convenções", "pt": "Centro de convenções", "ru": "Конференц-центр", "sk": "Konferenčné centrum", "sr": "Конгресни центар", "sv": "Kongresscenter", "th": "ศูนย์การประชุม", "tr": "Kongre Merkezi", "uk": "Конференц-центр", "vi": "Trung tâm Hội nghị", "zh-CN": "会议中心", "zh-HK": "會議中心", "zh-TW": "會議中心" } }, "amenity/courthouse": { "title": { "C": "Courthouse", "am": "ፍርድ ቤት", "fy": "Rjochtbank", "bs": "Sudnica", "id": "Pengadilan", "zh": "法院", "af": "Hof", "ar": "محكمة", "ast": "Xulgáu", "bg": "Съд", "br": "Ti-barn", "ca": "Jutjat", "ckb": "دادگا", "cs": "Soud", "cy": "Llys", "da": "Domstolsbygning", "de": "Gericht", "el": "Δικαστήριο", "en-GB": "Courthouse", "en": "Courthouse", "eo": "Juĝdomo", "es": "Juzgado", "et": "Kohtumaja", "eu": "Epaitegi", "fa": "دادگاه", "fi": "Tuomioistuin", "fr": "Tribunal", "ga": "Teach Cúirte", "gl": "Xulgado", "he": "בית משפט", "hr": "Zgrada suda", "hu": "Bíróság", "is": "Dómhús", "it": "Tribunale", "ja": "裁判所", "ko": "법원", "lt": "Teismo rūmai", "lv": "Tiesas nams", "mk": "Суд", "nl": "Gerechtsgebouw", "no": "Tinghus", "pl": "Sąd", "pt-BR": "Tribunal", "pt": "Tribunal", "ro": "Tribunal", "ru": "Суд", "sk": "Súd", "sl": "Sodišče", "sr": "Судница", "sv": "Domstol", "th": "ศาล", "tr": "Mahkeme", "uk": "Суд", "vi": "Tòa", "yue": "法庭", "zh-CN": "法院", "zh-HK": "法庭", "zh-TW": "法院" } }, "amenity/crematorium": { "title": { "C": "Crematorium", "fy": "Krematoarium", "af": "Krematorium", "ar": "محرقة موتى", "ast": "Crematoriu", "br": "Forn an ankoù", "ca": "Crematori", "cs": "Krematorium", "cy": "Crematoriwm", "da": "Krematorium", "de": "Krematorium", "el": "Κρεματόριο", "en-GB": "Crematorium", "en": "Crematorium", "eo": "Kadavrobruligejo", "es": "Crematorio", "et": "Krematoorium", "eu": "Errausketa-labe", "fa": "مٌرده سوز", "fi": "Krematorio", "fr": "Crématorium", "gl": "Crematorio", "he": "משרפה", "hu": "Krematórium", "is": "Líkbrennsla", "it": "Forno crematorio", "ja": "火葬場", "ko": "화장장", "lt": "Krematoriumas", "lv": "Krematorija", "mk": "Крематориум", "nl": "Crematorium", "no": "Krematorium", "pl": "Krematorium", "pt-BR": "Crematório", "pt": "Crematório", "ro": "Crematoriu", "ru": "Крематорий", "sk": "Krematórium", "sl": "Krematorij", "sr": "Крематоријум", "sv": "Krematorium", "ta": "சுடுகாடு", "th": "เมรุ", "tr": "Cesed Yakma Yeri", "uk": "Крематорій", "vi": "Lò Thiêu", "zh-CN": "火葬场", "zh-HK": "火葬場", "zh-TW": "火葬場" } }, "amenity/dentist": { "title": { "C": "Dentist", "am": "የጥርስ ሃኪም", "fy": "Toskedokter", "bs": "Zubar", "id": "Dokter Gigi", "kn": "ದಂತವೈದ್ಯ", "af": "Tandarts", "ar": "طبيب أسنان", "ast": "Dentista", "bg": "Стоматолог", "br": "Dentour", "ca": "Dentista", "ckb": "ددانساز", "cs": "Zubař", "cy": "Deintydd", "da": "Tandlæge", "de": "Zahnarzt", "el": "Οδοντιατρείο", "en-GB": "Dentist", "en": "Dentist", "eo": "Dentistejo", "es": "Dentista", "et": "Hambaarst", "eu": "Dentista", "fa": "دندانپزشکی", "fi": "Hammaslääkäriasema", "fr": "Dentiste", "gl": "Dentista", "he": "מרפאת שיניים", "hr": "Zubar", "hu": "Fogorvos", "is": "Tannlæknir", "it": "Dentista", "ja": "歯医者", "ko": "치과 의원", "lt": "Dantistas", "lv": "Zobārsts", "mk": "Забар", "nl": "Tandarts", "nn": "Tannlege", "no": "Tannlege", "pl": "Dentysta", "pt-BR": "Dentista", "pt": "Dentista", "ro": "Dentist", "ru": "Стоматология", "sk": "Zubár", "sl": "Zobozdravnik", "sr": "Зубар", "sv": "Tandläkare", "ta": "பல் மருத்துவர்", "th": "ทันตแพทย์", "tr": "Dişçi", "uk": "Стоматолог", "vi": "Nha sĩ", "yue": "牙醫", "zh-CN": "牙科医院", "zh-HK": "牙醫", "zh-TW": "牙醫" } }, "amenity/dive_centre": { "title": { "C": "Dive Center", "ar": "مركز للغوص", "ca": "Centre de submarinisme", "cs": "Centrum potápění", "da": "Dykkercenter", "de": "Tauchschule", "el": "Καταδυτικό Κέντρο", "en-AU": "Dive Centre", "en-CA": "Dive Centre", "en-GB": "Dive Centre", "en-NZ": "Dive Centre", "en": "Dive Center", "eo": "Centro de subakva naĝado", "es": "Centro de buceo", "et": "Sukeldumiskeskus", "fa": "مرکز غواصی", "fi": "Sukelluskeskus", "fr": "Centre de plongée", "gl": "Centro de mergullo", "he": "מרכז צלילה", "hu": "Búvárközpont", "is": "Köfunarmiðstöð", "it": "Centro subacqueo", "ja": "ダイブセンター", "ko": "다이브 센터", "mk": "Нуркачки центар", "nl": "Duikcentrum", "no": "Dykkesenter", "pl": "Centrum nurkowe", "pt-BR": "Centro de mergulho", "pt": "Centro de mergulho", "ru": "Дайв-центр", "sk": "Centrum potápania", "sr": "Ронилачки центар", "sv": "Dykcenter", "th": "ศูนย์ดำน้ำ", "tr": "Dalış Merkezi", "uk": "Центр навчання підводного плавання", "vi": "Trung tâm Lặn biển", "zh-CN": "潜水中心", "zh-HK": "潛水中心", "zh-TW": "潛水中心" } }, "amenity/doctors": { "title": { "C": "Doctor", "am": "ክሊኒክ", "fy": "Dokter", "kn": "ವೈದ್ಯರು", "af": "Dokter", "ar": "طبيب", "ast": "Doctor", "br": "Doktor", "ca": "Doctor", "ckb": "پزیشک", "cs": "Lékař", "cy": "Meddyg", "da": "Læge", "de": "Arzt", "el": "Ιατρός", "en-GB": "Doctor", "en": "Doctor", "eo": "Kabineto de kuracisto", "es": "Médico", "et": "Arst", "eu": "Mediku", "fa": "مطب دکتر", "fi": "Yksityinen lääkäri", "fr": "Médecin", "gl": "Doutor", "he": "רופא", "hr": "Doktor", "hu": "Orvosi rendelő", "is": "Læknir", "it": "Medico di base", "ja": "診療所(個人・小規模)", "ko": "의원", "lt": "Daktaras", "lv": "Dakteris", "mk": "Лекар", "nl": "Dokter", "no": "Lege", "pl": "Gabinet lekarski", "pt-BR": "Consultório médico", "pt": "Consultório médico", "ro": "Doctor", "ru": "Кабинет врача", "sk": "Lekár", "sl": "Zdravnik", "sr": "Доктор", "sv": "Doktor", "ta": "மருத்துவர்", "th": "แพทย์", "tr": "Doktor", "uk": "Лікар", "ur": "ڈاکٹر", "vi": "Bác sĩ", "yue": "醫生", "zh-CN": "医师", "zh-HK": "醫生", "zh-TW": "醫生" } }, "amenity/dojo": { "title": { "C": "Dojo / Martial Arts Academy", "id": "Sasana Bela Diri", "ar": "دوجو / أكاديمية الفنون القتالية", "ast": "Dojo / Academia d'artes marciales", "br": "Dojo", "ca": "Dojo / Acadèmia d'arts marcials", "cs": "Škola bojových umění", "da": "Dojo/Kampsportsakademi", "de": "Kampfsportstudio", "el": "Ντότζο/ Σχολή Πολεμικών Τεχνών", "en-GB": "Dojo / Martial Arts Academy", "en": "Dojo / Martial Arts Academy", "eo": "Doĵo / batalart-lernejo", "es": "Academia de artes marciales", "et": "Dōjō / Võitluskunstide kool", "fa": "باشگاه / آموزشگاه هنرهای رزمی", "fi": "Japanilaisten itsepuolustuslajien harjoittelupaikka", "fr": "Dojo", "gl": "Dojo/academia de artes marciais", "he": "דוג׳ו / מרכז לאומנויות לחימה", "hr": "Škola borilačkih vještina", "hu": "Harcművészeti edzőterem / dodzso", "is": "Dojo / Bardagaíþróttir", "it": "Dojo/Accademia di arti marziali", "ja": "道場", "ko": "도장 / 무술 학원", "lv": "Dojo / Karatē apmācība", "mk": "Училиште за боречки вештини", "nl": "Dojo / School voor Japanse krijgskunsten", "pl": "Szkoła sztuk walki", "pt-BR": "Academia de Artes Marciais", "pt": "Centro de artes marciais", "ru": "Додзё / Школа боевых искусств", "sk": "Škola bojových umení", "sl": "Dojo in šola borilnih veščin", "sr": "Школа борилачких вештина", "sv": "Dojo / Akademi för kampsport", "th": "โรงเรียนสอนศิลปะป้องกันตัว", "tr": "Dövüş Sanatları Akademisi", "uk": "Додзьо / Школа бойових мистецтв", "vi": "Võ đường", "zh-CN": "道场/武术学院", "zh-HK": "道場/武術學院", "zh-TW": "道場/武術研習班" } }, "amenity/dressing_room": { "title": { "C": "Changing Room", "id": "Ruang Ganti Pakaian", "ar": "غرفة التبديل", "br": "Gwiskva", "ca": "Vestuari", "cs": "Kabinka pro převlečení", "cy": "Ystafell Newid", "da": "Omklædningsrum", "de": "Umkleideraum", "el": "Αποδυτήρια", "en-GB": "Changing Room", "en": "Changing Room", "eo": "Vestejo", "es": "Vestuario", "et": "Riietuskabiin", "eu": "Aldagela", "fa": "اتاق تعویض لباس", "fi": "Pukuhuone", "fr": "Vestiaire", "gl": "Vestiario", "he": "חדר הלבשה", "hu": "Öltöző", "it": "Camerino", "ja": "更衣室", "ko": "탈의실", "mk": "Соблекувална", "nl": "Kleedkamer", "no": "Garderobe", "pl": "Przebieralnia", "pt-BR": "Vestiário", "pt": "Vestiário", "ru": "Раздевалка", "sk": "Šatňa", "sr": "Свлачионица", "sv": "Omklädningsrum", "th": "ห้องเปลี่ยนเสื้อผ้า", "tr": "Giyinme Odası", "uk": "Роздягальня", "vi": "Phòng Thay đồ", "zh-CN": "更衣室", "zh-HK": "更衣室", "zh-TW": "更衣室" } }, "amenity/driver_training": { "title": { "C": "Driver Training Grounds", "ar": "أراضي تعليم السيلقة", "bg": "Учебен полигон", "br": "Tachenn skol-vleinañ", "ca": "Circuit de pràctiques per a conduir", "ckb": "گۆڕەپانی فێرکردنی شوفێری", "cs": "Cvičná plocha pro řidiče", "da": "Køreteknisk anlæg", "de": "Verkehrsübungsplatz", "el": "Χώροι Εκπαίδευσης Οδηγών", "en-GB": "Driver Training Grounds", "en": "Driver Training Grounds", "es": "Terreno para preparación de conductores", "et": "Õppesõiduplats", "fi": "Ajoharjoittelupaikka", "fr": "Circuit d'essai de stages de conduite", "it": "Campi di addestramento dei conducenti", "ja": "自動車教習コース", "ko": "운전 연습장", "mk": "Автошколски полигон", "nl": "Rijvaardigheidscentrum", "pl": "Plac do nauki jazdy", "pt-BR": "Área de treinamento de megulho", "pt": "Pista de aulas de condução", "sk": "Výcvikový polygón pre motoristov", "sv": "Förarutbildningsplats", "tr": "Driver Training Grounds", "uk": "Тренувальний майданчик (автошкола)", "vi": "Sân Tập Lái xe", "zh-CN": "驾驶员训练场", "zh-TW": "駕駛員訓練場" } }, "amenity/driving_school": { "title": { "C": "Driving School", "am": "የመኪና ትምህርት ቤት", "fy": "Rydskoalle", "ms": "Sekolah Memandu", "af": "Bestuurskool", "ar": "مدرسة تعليم القيادة", "ast": "Autoescuela", "bg": "Автошкола", "br": "Skol-vleinañ", "ca": "Autoescola", "cs": "Autoškola", "cy": "Ysgol Gyrru", "da": "Køreskole", "de": "Fahrschule", "el": "Σχολή Οδήγησης", "en-GB": "Driving School", "en": "Driving School", "eo": "Stirlernejo", "es": "Escuela de conducción", "et": "Sõidukool", "eu": "Auto-eskola", "fa": "آموزشگاه رانندگی", "fi": "Autokoulu", "fr": "Auto-école", "gl": "Autoescola", "he": "בית ספר לנהיגה", "hu": "Autósiskola", "is": "Ökuskóli", "it": "Scuola guida", "ja": "自動車教習所", "ko": "운전학원", "lt": "Vairavimo mokykla", "lv": "Autoskola", "mk": "Автоучилиште", "nl": "Rijschool", "nn": "Køyreskule", "no": "Trafikkskole", "pl": "Szkoła nauki jazdy", "pt-BR": "Auto escola", "pt": "Escola de condução", "ro": "Școală de Șoferi", "ru": "Автошкола", "sk": "Autoškola", "sl": "Avtošola", "sr": "Ауто школа", "sv": "Trafikskola", "ta": "ஓட்டுநர் பள்ளி", "th": "โรงเรียนสอนขับรถ", "tr": "Sürücü Kursu", "uk": "Автошкола", "vi": "Trường Dạy Lái Xe", "zh-CN": "驾校", "zh-HK": "駕駛學校", "zh-TW": "駕訓班" } }, "amenity/exhibition_centre": { "title": { "C": "Exposition Center", "ar": "Exposition Center", "ca": "Centre d'Exposicions", "cs": "Veletržní palác", "da": "Udstillings- og kongrescenter", "de": "Messezentrum", "el": "Εκθεσιακό Κέντρο", "en-CA": "Exposition Centre", "en-GB": "Exposition Centre", "en-NZ": "Exhibition Centre", "en": "Exposition Center", "eo": "Centro de ekspozicioj kaj foiroj", "es": "Centro de exposiciones", "et": "Messikeskus", "fa": "مرکز نمایشگاهی ، عرضه", "fi": "Messukeskus", "fr": "Centre d'expositions", "gl": "Centro de exposicións", "he": "מרכז כנסים", "hu": "Kiállítási központ", "it": "Centro Espositivo", "ja": "展示場", "ko": "전시회장", "mk": "Изложбен центар", "nl": "Expo center", "pl": "Centrum targowo-wystawiennicze", "pt-BR": "Centro de exposições", "pt": "Centro de exposições", "ru": "Выставочный центр", "sk": "Výstavné centrum", "sr": "Изложбени центар", "sv": "Utställningscenter/Mässa", "th": "ศูนย์นิทรรศการ", "tr": "Fuar Merkezi", "uk": "Виставковий центр", "vi": "Trung tâm Triển lãm", "zh-CN": "展览中心", "zh-HK": "展覽中心", "zh-TW": "展覽中心" } }, "amenity/fire_station": { "title": { "C": "Fire Station", "am": "እሳትና ድንገተኛ አደጋዎች መከላከያ", "bn": "দমকল", "fy": "Brânwacht", "bs": "Vatrogasna stanica", "id": "Kantor Pemadam Kebakaran", "kn": "ಅಗ್ನಿಶಾಮಕ ಕೇಂದ್ರ", "ms": "Balai Bomba", "zh": "消防站", "af": "Brandweerstasie", "ar": "محطة إطفاء حريق", "ast": "Parque de bomberos", "bg": "Пожарна", "br": "Kazarn pomperien", "ca": "Parc de bombers", "cs": "Hasičská zbrojnice", "cy": "Gorsaf Dân", "da": "Brandstation", "de": "Feuerwache", "el": "Πυροσβεστικός Σταθμός", "en-GB": "Fire Station", "en": "Fire Station", "eo": "Fajrobrigadejo", "es": "Estación de bomberos", "et": "Päästedepoo", "eu": "Suhiltzaile-etxe", "fa": "ایستگاه آتش نشانی", "fi": "Paloasema", "fr": "Caserne de pompiers", "gl": "Parque de bombeiros", "he": "תחנת כיבוי אש", "hr": "Vatrogasna postaja", "hu": "Tűzoltóság", "is": "Slökkvistöð", "it": "Caserma dei vigili del fuoco", "ja": "消防署", "ko": "소방서", "lt": "Gaisrinė", "lv": "Ugunsdzēsēju stacija", "mk": "Противпожарна станица", "nl": "Brandweerkazerne", "no": "Brannstasjon", "pl": "Remiza strażacka", "pt-BR": "Posto de bombeiros", "pt": "Quartel dos bombeiros", "ro": "Pompieri", "ru": "Пожарная часть", "sk": "Hasičská stanica", "sl": "Gasilska postaja", "sr": "Ватрогасна станица", "sv": "Brandstation", "ta": "தீயணைப்பு நிலையம்", "th": "สถานีดับเพลิง", "tr": "İtfaiye", "uk": "Пожежна станція", "vi": "Trạm Cứu hỏa", "yue": "滅火局", "zh-CN": "消防站", "zh-HK": "消防局", "zh-TW": "消防局" } }, "amenity/food_court": { "title": { "C": "Food Court", "fy": "Itenshal", "ms": "Medan Selera", "af": "Kosgebied", "ar": "قاعة طعام", "cs": "Jídelní plocha", "cy": "Cwrt Bwyd", "da": "Torvehaller", "de": "Gemeinschaftlicher Gastronomiebereich", "el": "Χώρος Εστίασης", "en-GB": "Food Court", "en": "Food Court", "eo": "Manĝ-bazaro", "es": "Plaza de comida", "et": "Toiduväljak", "eu": "Bazkaltzeko eremua", "fa": "فودکورت", "fi": "Ravintolamaailma", "fr": "Aire de restauration, food-court", "gl": "Zona de comidas", "he": "מתחם מזון", "hu": "Étkezőtér", "is": "Matarmarkaður", "it": "Zona ristorazione", "ja": "フードコート", "ko": "푸드코트", "lv": "Ēdnīca", "mk": "Сала за брза храна", "nl": "Foodcourt", "no": "Mathall", "pl": "Strefa gastronomiczna", "pt-BR": "Praça de alimentação", "pt": "Praça de alimentação", "ru": "Ресторанный дворик", "sk": "Stravovacia zóna", "sl": "Skupni jedilni prostor", "sv": "Restaurangtorg", "th": "ศูนย์อาหาร", "tr": "Yemek Yeri", "uk": "Фуд-корт", "vi": "Trung tâm Ẩm thực", "zh-CN": "美食广场", "zh-HK": "美食廣場", "zh-TW": "美食街" } }, "amenity/fuel": { "title": { "C": "Gas Station", "bn": "গ্যাস স্টেশন", "fy": "Tenkstasjon", "bs": "Benzinska pumpa", "id": "Pom Bensin", "ms": "Stesen Minyak", "zh": "加油站", "af": "Brandstofstasie", "ar": "محطة وقود", "ast": "Gasolinera", "bg": "Бензиностанция", "br": "Porzh Servij", "ca": "Benzinera", "cs": "Čerpací stanice", "cy": "Gorsaf Petrol", "da": "Tankstation", "de": "Tankstelle", "el": "Βενζινάδικο", "en-AU": "Service Station", "en-GB": "Petrol Station", "en-NZ": "Petrol Station", "en": "Gas Station", "eo": "Benzinejo", "es": "Estación de servicio / Gasolinera", "et": "Tankla", "eu": "Gasolindegi", "fa": "جایگاه سوخت", "fi": "Huoltoasema", "fr": "Station-service", "gl": "Gasolineira", "he": "תחנת דלק", "hr": "Benzinska postaja", "hu": "Benzinkút", "is": "Bensínstöð", "it": "Stazione di servizio", "ja": "ガソリンスタンド", "ko": "주유소", "lt": "Degalinė", "lv": "Degvielas uzpildes stacija", "mk": "Бензинска станица", "nl": "Tankstation", "no": "Bensinstasjon", "pl": "Stacja paliw", "pt-BR": "Posto de combustível", "pt": "Posto de combustível", "ro": "Benzinărie", "ru": "АЗС", "sk": "Čerpacia stanica", "sl": "Bencinska črpalka", "sr": "Бензинска пумпа", "sv": "Bensinstation", "th": "สถานีบริการน้ำมัน", "tr": "Benzinci", "uk": "Заправка", "vi": "Cây xăng", "yue": "油站", "zh-CN": "加油站", "zh-HK": "油站", "zh-TW": "加油站" } }, "amenity/give_box": { "title": { "C": "Free Box", "ar": "صندوق مشاركة الأشياء المجانية", "cs": "Darovací box", "de": "Schenkschrank/Tauschschrank", "en-GB": "Free Box", "en": "Free Box", "eo": "Kesto de senpaga interŝanĝo", "es": "Caja libre", "et": "Taaskasutuskonteiner", "fa": "صندوق آزاد", "fr": "Boîte à dons", "gl": "Caixa libre", "he": "תיבת הענקה", "hu": "Adománygyűjtő doboz", "it": "Scatola generica", "ja": "ギブボックス", "mk": "Даровница", "nl": "Ruilkast", "no": "Byttebod", "pl": "Wystawka (wymiana rzeczy używanych)", "pt-BR": "Caixa grátis", "pt": "Caixa livre", "sk": "Búdka so zdieľanými vecami", "sv": "Bortskänkningslåda", "tr": "Ücretsiz Kutu", "uk": "Безкоштовні речі", "vi": "Thùng Tặng/Lấy", "zh-CN": "闲置物品交换屋", "zh-TW": "禮物盒" } }, "amenity/grave_yard": { "title": { "C": "Graveyard", "am": "የቀብር ቦታ", "bn": "কবরখানা", "fy": "Begraafplak", "te": "స్మశానం", "bs": "Groblje", "id": "Kuburan", "kn": "ಶ್ಮಶಾನ", "zh": "墓地", "af": "Begraafplaas", "ar": "مقبرة", "ast": "Enterramientos", "bg": "Църковно гробище", "br": "Bered", "ca": "Cementiri", "ckb": "گۆڕستان", "cs": "Pohřebiště", "cy": "Mynwent", "da": "Kirkegård", "de": "Gräberfeld", "el": "Κοιμητήριο", "en-GB": "Graveyard", "en": "Graveyard", "eo": "Tombejo (ĉirkaŭpreĝeja)", "es": "Camposanto", "et": "Surnuaed", "eu": "Hilerri", "fa": "قبرستان محوطه امام‌زاده یا مکان متبرکه", "fi": "Kirkkomaa", "fr": "Lieu de sépulture attenant à un lieu de culte, cimetière paroissial", "ga": "Reilig", "gl": "Camposanto", "he": "בית עלמין", "hr": "Groblje uz crkvu", "hu": "Sírkert", "is": "Grafreitur", "it": "Cimitero", "ja": "墓地(宗教施設内など、小)", "ko": "묘역 (종교시설 내부)", "lt": "Kapinės prie bažnyčios", "lv": "Kapi", "mi": "Urupā", "mk": "Гробишта", "nl": "Begraafplaats (nabij kerk)", "no": "Kirkegård", "pl": "Cmentarz przykościelny", "pt-BR": "Cemitério paroquial", "pt": "Sepultura (fora de cemitérios)", "ro": "Cimitir", "ru": "Небольшие захоронения при местах служения (церквях и т.п.)", "sk": "Pohrebisko", "sl": "Pokopališče", "sr": "Гробље", "sv": "Kyrkogård", "ta": "இடுகாடு", "th": "สุสาน", "tr": "Mezarlık", "uk": "Цвинтар", "ur": "قبرستان", "vi": "Nghĩa địa tại Nhà thờ", "yue": "墳地", "zh-CN": "教堂墓地", "zh-HK": "墓地", "zh-TW": "教堂墓地" } }, "amenity/hookah_lounge": { "title": { "C": "Hookah Lounge", "br": "Tavarn chicha", "cs": "Salonek s vodní dýmkou", "cy": "Lolfa Hwcah", "de": "Shisha Bar", "el": "Σαλόνι για Ναργιλέ", "en": "Hookah Lounge", "es": "Bar de cachimbas", "et": "Vesipiibu baar", "fr": "Bar à chicha", "he": "בר נרגילות", "it": "Sala Narghilè", "ja": "シーシャラウンジ", "mk": "Наргиле-бар", "pl": "Shisha Bar", "pt": "Espaço hookah", "ru": "Кальянная", "sv": "Lounge för vattenpipa", "uk": "Кальянна зала", "zh-TW": "水煙休息室" } }, "amenity/hospital": { "title": { "C": "Hospital Grounds", "am": "ሆስፒታል", "fy": "Sikehûsterrein", "dv": "ހޮސްޕިޓަލް", "id": "Lingkungan Rumah Sakit", "ne": "अस्पताल मैदान", "so": "Goob Isbitaal", "af": "Hospitaalgebied", "ar": "أرض مستشفى", "ast": "Antoxana d'hospital", "bg": "Болница", "br": "Tachenn ospital", "ca": "Hospital", "cs": "Prostor nemocnice", "cy": "Tiroedd Ysbyty", "da": "Hospitalsområde", "de": "Krankenhaus", "el": "Νοσοκομείο", "en-GB": "Hospital Grounds", "en": "Hospital Grounds", "eo": "Malsanuleja tereno", "es": "Terreno del hospital", "et": "Haigla territoorium", "eu": "Ospitalearen Eremua", "fa": "محیط بیمارستان", "fi": "Sairaala-alue", "fr": "Terrains hospitaliers", "gl": "Área hospitalaria", "he": "מתחם בית חולים", "hr": "Bolničko zemljište", "hu": "Kórház területe", "is": "Spítalalóð", "it": "Area ospedaliera", "ja": "大規模病院(代表点または敷地)", "ko": "병원 부지", "lt": "Ligoninės kiemas", "mk": "Болнички двор", "nl": "Ziekenhuisgebied", "no": "Sykehusområde", "pl": "Teren szpitala", "pt-BR": "Hospital", "pt": "Hospital", "ro": "Spital", "ru": "Больница", "sk": "Nemocničný areál", "sl": "Klinično središče", "sr": "Болнички круг", "sv": "Sjukhusområde", "ta": "மருத்துவமனை", "th": "พื้นที่โรงพยาบาล", "tr": "Hastane", "uk": "Територія лікарні", "vi": "Sân Bệnh viện", "yue": "醫院地", "zh-CN": "医院", "zh-HK": "醫院範圍", "zh-TW": "醫院" } }, "amenity/internet_cafe": { "title": { "C": "Internet Cafe", "fy": "Ynternetkafee", "ms": "Kafe Internet", "af": "Internetkafee", "ar": "مقهى إنترنت", "br": "Siber-tavarn", "ca": "Cibercafè", "cs": "Internetová kavárna", "cy": "Caffi Rhyngrwyd", "da": "Internetcafe", "de": "Internetcafé", "el": "Internet Cafe", "en-GB": "Internet Cafe", "en-NZ": "Internet Café", "en": "Internet Cafe", "eo": "Retkafejo", "es": "Cibercafé", "et": "Internetikohvik", "eu": "Internet kafetegi", "fa": "کافی‌نت", "fi": "Internetkahvila", "fr": "Cybercafé", "gl": "Internet café", "he": "קפה אינטרנט", "hu": "Internetkávézó", "is": "Netkaffihús", "it": "Internet Café", "ja": "インターネットカフェ", "ko": "PC방", "lt": "Interneto kavinė", "lv": "Interneta Kafejnīca", "mk": "Интернет-кафуле", "nl": "Internetcafé", "no": "Internettkafé", "pl": "Kafejka internetowa", "pt-BR": "Internet Café", "pt": "Cibercafé", "ro": "Internet Cafe", "ru": "Интернет-кафе", "sk": "Internetová kaviareň", "sl": "Internet Cafe", "sr": "Интернет кафић", "sv": "Internetkafé", "th": "ร้านอินเตอร์เน็ต", "tr": "İnternet Kafe", "uk": "Інтернет кафе", "vi": "Quán Internet", "zh-CN": "网吧", "zh-HK": "網吧", "zh-TW": "網咖" } }, "amenity/karaoke_box": { "title": { "C": "Karaoke Box", "ar": "Karaoke Box", "cs": "Karaoke kabinka", "cy": "Bocs Carioci", "de": "Karaoke-Box", "en-GB": "Karaoke Box", "en": "Karaoke Box", "eo": "Karaokeejo", "es": "Karaoke Box", "et": "Karaokebaar", "fa": "جعبه کارائوکه (ابزار سرگرمی آوازخوانی)", "fi": "Karaokekoppi", "fr": "Karaoke", "he": "תיבת קריוקי", "hu": "Karaoke-bár", "it": "Karaoke", "ja": "カラオケボックス", "ko": "노래방", "mk": "Просторија за караоке", "nl": "Karaokehokje", "pl": "Budka karaoke", "pt-BR": "Caixa de Karaokê", "pt": "Caixa de karaoke", "sk": "Karaoke kabínka", "sr": "Караоке кабина", "sv": "Karaoke Box", "th": "กล่องคาราโอเกะ", "tr": "Karaoke Kutusu", "uk": "Кабінка караоке", "vi": "Dàn Karaoke", "zh-CN": "KTV", "zh-TW": "卡拉 OK 包廂" } }, "amenity/kneipp_water_cure": { "title": { "C": "Kneipp Facility", "cs": "Kneippova lázeň", "de": "Kneipp-Anlage", "en-GB": "Kneipp Facility", "en": "Kneipp Facility", "es": "Instalación Kneipp", "et": "Kneipp-ravi keskus", "fr": "Bain Kneipp", "he": "מתקן קנייפ", "ja": "クナイプ療法施設", "mk": "Кнајпова хидротерапија", "nl": "Kneipp-faciliteit", "pl": "Basen Kneippa", "pt": "Espaço de terapia Kneipp", "tr": "Kneipp Facility", "uk": "Водолікування Кнайпа", "zh-TW": "Kneipp 設施" } }, "amenity/language_school": { "title": { "C": "Language School", "fy": "Taalskoalle", "af": "Taalskool", "ar": "مدرسة لغات", "bg": "Езиково училище", "br": "Skol yezhoù", "ca": "Escola d'idiomes", "ckb": "قوتابخانەی زمان", "cs": "Jazyková škola", "cy": "Ysgol Iaith", "da": "Sprogskole", "de": "Sprachschule", "el": "Φροντιστήριο Ξένων Γλωσσών", "en-GB": "Language School", "en": "Language School", "eo": "Lingva lernejo", "es": "Escuela de idiomas", "et": "Keeltekool", "eu": "Hizkuntz eskola", "fa": "آموزشگاه زبان", "fi": "Kielikoulu", "fr": "École de langues", "gl": "Escola de idiomas", "he": "בית ספר לשפות", "hu": "Nyelviskola", "is": "Tungumálaskóli", "it": "Scuola di lingue straniere", "ja": "外国語教室", "ko": "언어 학원", "lt": "Kalbų mokykla", "mk": "Училиште за јазици", "nl": "Taalschool", "nn": "Språkskule", "no": "Språkskole", "pa-PK": "بولی دا سکول", "pl": "Szkoła językowa", "pt-BR": "Escola de idiomas", "pt": "Escola de línguas", "ru": "Языковая школа", "sk": "Jazyková škola", "sr": "Језичка школа", "sv": "Språkskola", "ta": "மொழிப் பள்ளி", "th": "โรงเรียนสอนภาษา", "tr": "Dil Okulu", "uk": "Мовна школа", "vi": "Trường học Ngoại ngữ", "yue": "語言學校", "zh-CN": "语言学校", "zh-HK": "語言學校", "zh-TW": "語言學校" } }, "amenity/love_hotel": { "title": { "C": "Love Hotel", "fy": "Wiphotel", "ar": "Love Hotel", "br": "Love Hotel", "cs": "Hodinový hotel", "cy": "Gwesty Rhyw", "da": "Kærlighedshotel", "de": "Stundenhotel", "el": "Ξενοδοχείο Ημιδιαμονής", "en-GB": "Love Hotel", "en": "Love Hotel", "eo": "Amor-hotelo", "es": "Hotel para parejas", "et": "Armuhotell", "fa": "هتل عشق", "fi": "Tuntihotelli", "fr": "Love hôtel", "gl": "Hotel para parellas", "he": "מלון לפי שעות", "hu": "Love hotel", "is": "Ástarhótel", "it": "Love Hotel", "ja": "ラブホテル", "ko": "러브 호텔", "mk": "Љубовен хотел", "nl": "Love hotel", "no": "Kjærlighetshotell", "pl": "Hotel miłości", "pt-BR": "Motel", "pt": "Motel para casais", "ru": "Отель любви", "sk": "Hodinový hotel", "sr": "Љубавни хотел", "sv": "Kärlekshotell", "th": "ม่านรูด", "tr": "Aşk Oteli", "uk": "Готель кохання", "vi": "Khách sạn Tình yêu", "zh-CN": "爱情宾馆", "zh-HK": "愛情酒店", "zh-TW": "情趣旅館" } }, "amenity/marketplace": { "title": { "C": "Marketplace", "am": "የገበያ ቦታ", "bn": "বাজার", "fy": "Merkplak", "bs": "Tržnica", "id": "Pasar", "zh": "市场", "af": "Markplein", "ar": "محل تسوق", "ast": "Mercáu", "bg": "Пазар", "br": "Marc'had", "ca": "Mercat", "cs": "Tržiště", "cy": "Marchnad", "da": "Markedsplads", "de": "Marktplatz", "el": "Αγορά", "en-GB": "Marketplace", "en": "Marketplace", "eo": "Bazaro", "es": "Mercado", "et": "Turg", "eu": "Merkatu", "fa": "بازار", "fi": "Tori", "fr": "Marché", "ga": "Margadh", "gl": "Mercado", "he": "שוק", "hr": "Tržnica", "hu": "Piactér", "is": "Markaður", "it": "Mercato", "ja": "市場", "ko": "시장", "lt": "Prekyvietė", "lv": "Tirgus", "mk": "Пазар", "nl": "Marktplaats", "no": "Markedsplass", "pl": "Targowisko / Hala targowa", "pt-BR": "Feira ou mercado público", "pt": "Mercado", "ro": "Piață", "ru": "Рынок", "sk": "Tržnica", "sl": "Tržnica", "sr": "Тржница", "sv": "Marknadsplats", "ta": "பஜார்", "th": "ตลาด", "tr": "Çarşı", "uk": "Ринок", "vi": "Chợ phiên", "yue": "街市", "zh-CN": "市场", "zh-HK": "街市", "zh-TW": "市場" } }, "amenity/monastery": { "title": { "C": "Monastery Grounds", "fy": "Kleasterterrein", "af": "Monnikekloostergebied", "ar": "Monastery Grounds", "br": "Tachenn abati", "ca": "Terrenys d'un monestir", "cs": "Klášterní pozemky", "da": "Kloster-område", "de": "Klostergelände", "el": "Μοναστήρι", "en-GB": "Monastery Grounds", "en": "Monastery Grounds", "eo": "Monaĥeja tereno", "es": "Terreno del monasterio", "et": "Kloostriala", "eu": "Monastegiaren eremu", "fa": "زمین های صومعه", "fi": "Luostari", "fr": "Terrain de monastère", "gl": "Área de mosteiro", "he": "מתחם מנזר", "hu": "Kolostor területe", "is": "Klausturlóð", "it": "Monastero", "ja": "修道院", "ko": "수도원 부지", "mk": "Манастир", "nl": "Kloostergebied", "no": "Klosterområde", "pl": "Teren klasztoru", "pt-BR": "Jardins do mosteiro", "pt": "Mosteiro", "ru": "Монастырь", "sk": "Kláštorný areál", "sr": "Манастирско земљиште", "sv": "Klosterområde", "th": "พื้นที่บริเวณวัดหรือโบสถ์", "tr": "Manastır Alanı", "uk": "Територія монастиря", "vi": "Sân Tu viện", "zh-CN": "修道院", "zh-HK": "寺院範圍", "zh-TW": "修道院" } }, "amenity/money_transfer": { "title": { "C": "Money Transfer Station", "fy": "Agintskip jildoerdracht", "ar": "محل لتحويل الأموال", "br": "Treuzkas arc'hant", "cs": "Místo pro peněžní převody", "de": "Geldtransferstation", "el": "Υπηρεσία Μεταφοράς Χρημάτων", "en-GB": "Money Transfer Station", "en": "Money Transfer Station", "eo": "Centro de mon-transigo", "es": "Estación de transferencia de dinero", "et": "Rahaülekandeteenus", "fa": "ایستگاه انتقال پول", "fi": "Rahansiirtopiste", "fr": "Transfert d'argent", "gl": "Estación de transferencia de diñeiro", "he": "תחנת העברת כספים", "hu": "Pénzátutaló", "it": "Agenzia di Money Transfer", "ja": "海外送金所", "ko": "환전소", "mk": "Испраќање на пари", "nl": "Wisselkantoor", "no": "Pengeoverføringsstasjon", "pl": "Placówka przekazów pieniężnych", "pt-BR": "Estação de transferência de dinheiro", "pt": "Serviço de transferência de dinheiro", "ru": "Денежные переводы", "sk": "Spoločnosť zabezpečujúca prevod peňazí", "sr": "Услуга за пренос новца", "sv": "Pengaöverföring", "tr": "Para Transfer İstasyonu", "uk": "Грошові перекази", "vi": "Gửi Tiền", "zh-CN": "货币交换处", "zh-HK": "滙款中心", "zh-TW": "匯款站" } }, "amenity/motorcycle_rental": { "title": { "C": "Motorcycle Rental", "ar": "إيجار دراجات نارية", "br": "Marc'hoù-tan da feurmiñ", "ca": "Lloguer de motocicletes", "cs": "Půjčovna motocyklů", "da": "Motorcykeludlejning", "de": "Motorradverleih", "el": "Ενοικίαση Μοτοσικλετών", "en-GB": "Motorcycle Rental", "en": "Motorcycle Rental", "eo": "Motorcikl-pruntejo", "es": "Alquiler de motos", "et": "Mootorratta rent", "fa": "اجاره موتور سیکلت", "fi": "Moottoripyörävuokraamo", "fr": "Location de motos", "he": "השכרת אופנועים", "hu": "Motorkerékpár-kölcsönző", "it": "Noleggio Motocicli", "ja": "レンタルバイク", "ko": "오토바이 대여소", "mk": "Изнајмување мотоцикли", "nl": "Motorfietsverhuur", "pl": "Wypożyczalnia motocykli", "pt-BR": "Aluguel de motocicleta", "pt": "Aluguer de motas", "ru": "Мотопрокат", "sk": "Požičovňa motocyklov", "sr": "Изнајмљивање мотоцикла", "sv": "Motorcykeluthyrning", "th": "ร้านเช่าจักรยานยนต์", "tr": "Motosiklet Kiralama", "uk": "Прокат мотоциклів", "vi": "Cho thuê Xe máy", "zh-CN": "摩托车租赁处", "zh-HK": "電單車出租", "zh-TW": "摩托車租賃" } }, "amenity/music_school": { "title": { "C": "Music School", "am": "የሙዚቃ ትምህርት ቤት", "fy": "Muzykskoalle", "ms": "Sekolah Muzik", "af": "Musiekskool", "ar": "مدرسة موسيقى", "ast": "Academia de música", "bg": "Музикално училище", "br": "Skol sonerezh", "ca": "Escola de música", "ckb": "قوتابخانەی مۆسیقی", "cs": "Hudební škola", "cy": "Ysgol Gerddoriaeth", "da": "Musikskole", "de": "Musikschule", "el": "Μουσικό Σχολείο", "en-GB": "Music School", "en": "Music School", "eo": "Muzika lernejo", "es": "Escuela de música", "et": "Muusikakool", "eu": "Musika eskola", "fa": "آموزشگاه موسیقی", "fi": "Musiikkikoulu", "fr": "École de musique", "gl": "Escola de música", "he": "בית ספר למוזיקה", "hu": "Zeneiskola", "is": "Tónlistarskóli", "it": "Scuola di musica", "ja": "音楽学校", "ko": "음악 학교", "lt": "Muzikos mokykla", "lv": "Mūzikas skola", "mk": "Музичко училиште", "nl": "Muziekschool", "no": "Musikkskole", "pl": "Szkoła muzyczna", "pt-BR": "Escola de Música", "pt": "Escola de música", "ru": "Музыкальная школа", "sk": "Hudobná škola", "sl": "Glasbena šola", "sr": "Музичка школа", "sv": "Musikskola", "ta": "இசைப் பள்ளி", "th": "โรงเรียนสอนดนตรี", "tr": "Müzik Okulu", "uk": "Музична школа", "vi": "Trường Âm nhạc", "yue": "音樂學校", "zh-CN": "音乐学校", "zh-HK": "音樂學校", "zh-TW": "音樂學校" } }, "amenity/parcel_locker": { "title": { "C": "Parcel Locker", "ar": "صناديق استلام الشحنات البريدية", "ca": "Armari intel·ligent", "cs": "Schránka na zásilky", "da": "Pakkeboks", "de": "Paketautomat", "el": "Θυρίδα δεμάτων", "en-GB": "Parcel Locker", "en": "Parcel Locker", "eo": "Poŝt-aŭtomato", "es": "Casillero de paquetería", "et": "Pakiautomaat", "fi": "Pakettiautomaatti", "fr": "Casier à colis", "hu": "Csomagautomata", "it": "Punto di ritiro self-service", "ja": "宅配ロッカー", "mk": "Шкафче за пратки", "nl": "Pakketkluis", "pl": "Paczkomat", "pt-BR": "Locker postal", "pt": "Cacifo postal", "ru": "Почтомат", "sk": "Schránka na balíky", "sr": "Пакетомат", "sv": "Paketautomat (utlämning)", "th": "ตู้ล็อกเกอร์รับฝากสัมภาระ", "tr": "Parcel Locker", "uk": "Поштомат", "vi": "Tủ Bưu kiện", "zh-CN": "快递柜", "zh-HK": "包裹儲物櫃", "zh-TW": "包裹儲物櫃" } }, "amenity/parking": { "title": { "C": "Parking Lot", "fy": "Parkearplak", "id": "Parkiran", "af": "Parkering", "ar": "مكان انتظار سيارات", "bg": "Паркинг", "br": "Parklec'h", "ca": "Aparcament", "cs": "Parkoviště", "cy": "Maes Parcio", "da": "Parkeringsplads", "de": "Parkplatz", "el": "Πάρκινγκ", "en-AU": "Car Park", "en-CA": "Parking Lot", "en-GB": "Car Park", "en-NZ": "Car Park", "en": "Parking Lot", "eo": "Parkumejo", "es": "Estacionamiento / Aparcamiento", "et": "Autoparkla", "fa": "پارکینگ", "fi": "Pysäköintialue", "fr": "Parking", "gl": "Aparcadoiro de automóbiles", "he": "מגרש חנייה", "hr": "Parkiralište za automobile", "hu": "Parkoló", "is": "Bílastæðasvæði", "it": "Parcheggio", "ja": "駐車場", "ko": "주차장", "lt": "Automobilių stovėjimo aikštelė", "lv": "Stāvvieta", "mi": "Ngā Tūnga Waka", "mk": "Паркиралиште", "nl": "Parkeerplaats", "no": "Parkeringsplass", "pa-PK": "پارکنگ والی تھاں", "pl": "Parking samochodowy", "pt-BR": "Estacionamento", "pt": "Parque de estacionamento", "ro": "Parcare", "ru": "Парковка", "sk": "Parkovisko", "sl": "Parkirišče", "sr": "Паркиралиште", "sv": "Parkeringsplats", "th": "ลานจอดรถ", "tr": "Otopark", "uk": "Автостоянка", "vi": "Bãi Đậu xe", "zh-CN": "停车场", "zh-HK": "停車場", "zh-TW": "停車場" } }, "amenity/payment_centre": { "title": { "C": "Payment Center", "ar": "مركز دفع نقود", "br": "Kreizenn baeañ", "cs": "Platební centrum", "de": "Zahlstelle", "el": "Κέντρο Πληρωμών", "en-AU": "Payment Centre", "en-CA": "Payment Centre", "en-GB": "Payment Centre", "en-NZ": "Payment Centre", "en": "Payment Center", "eo": "Centro de pago", "es": "Centro de pago", "et": "Makseteenuste keskus", "fa": "مرکز پرداخت", "fi": "Maksupalvelu", "fr": "Centre de paiement", "gl": "Centro de pagamento", "he": "מרכז תשלום", "hu": "Befizetőpont", "it": "Centro per i pagamenti", "ja": "納入窓口", "mk": "Платежно место", "nl": "Betalingscentrum", "no": "Betalingssenter", "pl": "Centrum płatności", "pt-BR": "Centro de pagamento", "pt": "Balcão de pagamento", "ru": "Центр платежей", "sk": "Platobné centrum", "sl": "Plačilni center", "sr": "Платежно место", "sv": "Betalningscenter", "th": "ศูนย์การชำระเงิน", "tr": "Ödeme Merkezi", "uk": "Приймання платежів", "vi": "Trung tâm Thanh toán", "zh-CN": "收银台", "zh-HK": "繳費處", "zh-TW": "繳費中心" } }, "amenity/payment_terminal": { "title": { "C": "Payment Terminal", "fy": "Betelautomaat", "af": "Betaalautomaat", "ar": "محطة دفع نقود", "ca": "Terminal de pagament", "cs": "Platební terminál", "da": "Betalingsterminal", "de": "Zahlungsterminal", "el": "Τερματικό Πληρωμών", "en-GB": "Payment Terminal", "en": "Payment Terminal", "eo": "Pag-aŭtomato", "es": "Terminal de pago", "et": "Makseterminal", "fa": "ترمینال پرداخت ، POS", "fi": "Maksupääte", "fr": "Terminal de paiement", "gl": "Terminal de pagamento", "he": "מסוף תשלום", "hu": "Befizetőautomata", "it": "Terminale pagamenti", "ja": "支払端末", "mk": "Платежен терминал", "nl": "Betalingsterminal", "no": "Betalingsterminal", "pl": "Terminal płatniczy", "pt-BR": "Terminal de pagamento", "pt": "Terminal de pagamento", "ru": "Платёжный терминал", "sk": "Platobný terminál", "sl": "Plačilni terminal", "sr": "Интерактивни киоск", "sv": "Betalningsterminal", "th": "เครื่องชำระเงิน", "tr": "Ödeme Terminali", "uk": "Платіжний термінал", "zh-CN": "支付终端", "zh-HK": "繳費終端機", "zh-TW": "繳費窗口" } }, "amenity/place_of_worship": { "title": { "C": "Place of Worship", "am": "የእምነት ቦታ", "bn": "প্রার্থনাস্থল", "fy": "Gebedshûs", "bs": "Bogomolja", "dv": "އަޅުކަންކުރާ ތަންތަން", "id": "Tempat Beribadah", "ms": "Tempat Ibadat", "ne": "पूजा गर्ने ठाउँ", "so": "Goobta Cibaadada", "zh": "礼拜场所", "af": "Plek van aanbidding", "ar": "مكان عبادة", "ast": "Llugar de cultu", "bg": "Религиозен храм", "br": "Lec'h azeuliñ", "ca": "Lloc de culte", "ckb": "پەرستگا", "cs": "Chrám", "cy": "Addoldy", "da": "Tilbedelsessted", "de": "Andachtsstätte", "el": "Χώρος Λατρείας", "en-GB": "Place of Worship", "en": "Place of Worship", "eo": "Preĝejo", "es": "Lugar de adoración", "et": "Pühakoda", "eu": "Gurtza gune", "fa": "پرستشگاه", "fi": "Rukoilupaikka", "fr": "Lieu de culte", "gl": "Lugar de culto", "he": "בית תפילה", "hr": "Vjerski objekt", "hu": "Istentiszteleti hely", "is": "Tilbeiðsluhús", "it": "Luogo di culto", "ja": "宗教施設全般", "ko": "종교 시설", "lt": "Maldos namai", "lv": "Dievnams", "mk": "Верско здание", "nl": "Gebedshuis", "no": "Bedested", "pl": "Miejsce odbywania praktyk religijnych", "pt-BR": "Local de prática religiosa", "pt": "Local de oração", "ro": "Loc de Rugăciune", "ru": "Место поклонения", "sk": "Náboženské miesto", "sl": "Verski objekt", "sr": "Богомоља", "sv": "Plats för tillbedjan", "ta": "வழிபாட்டு இடம்", "th": "ศาสนสถาน", "tr": "İbadethane", "uk": "Культове місце", "ur": "عبادت گاہ", "vi": "Nơi Thờ phụng", "yue": "拜神之所", "zh-CN": "礼拜场所", "zh-HK": "祟拜場所", "zh-TW": "宗教祟拜場所" } }, "amenity/planetarium": { "title": { "C": "Planetarium", "kn": "ತಾರಾಲಯ", "ms": "Planetarium", "ar": "قبة فلكية", "ast": "Planetariu", "br": "Planetariom", "ca": "Planetari", "cs": "Planetárium", "cy": "Planedariwm", "da": "Planetarium", "de": "Planetarium", "el": "Πλανητάριο", "en-GB": "Planetarium", "en": "Planetarium", "eo": "Planetario (astrokinejo)", "es": "Planetario", "et": "Planetaarium", "eu": "Planetario", "fa": "آسمان نما", "fi": "Planetaario", "fr": "Planétarium", "gl": "Planetario", "he": "פלנטריום", "hr": "Planetarij", "hu": "Planetárium", "is": "Stjörnuver", "it": "Planetario", "ja": "プラネタリウム", "ko": "천체투영관", "lt": "Planetariumas", "lv": "Planetārijs", "mk": "Планетариум", "nl": "Planetarium", "no": "Planetarium", "pl": "Planetarium", "pt-BR": "Planetário", "pt": "Planetário", "ro": "Planetariu", "ru": "Планетарий", "sk": "Planetárium", "sl": "Planetarij", "sr": "Планетаријум", "sv": "Planetarium", "ta": "கோளரங்கம்", "th": "ท้องฟ้าจำลอง", "tr": "Gökevi", "uk": "Планетарій", "vi": "Cung Thiên văn", "zh-CN": "天文馆", "zh-HK": "天象廳", "zh-TW": "天文臺" } }, "amenity/police": { "title": { "C": "Police", "am": "ፖሊስ ጣቢያ", "bn": "পুলিশ", "fy": "Plysje", "te": "పోలీసు", "bs": "Policija", "id": "Polisi", "kn": "ಪೊಲೀಸು", "ms": "Polis", "zh": "警察局", "af": "Polisie", "ar": "شرطة", "ast": "Policía", "bg": "Полиция", "br": "Ti-polis", "ca": "Comissaria de Policia", "ckb": "پۆلیس", "cs": "Policie", "cy": "Heddlu", "da": "Politi", "de": "Polizei", "el": "Αστυνομικό Τμήμα", "en-GB": "Police", "en": "Police", "eo": "Policejo", "es": "Policía", "et": "Politsei", "eu": "Polizia", "fa": "پليس", "fi": "Poliisiasema", "fr": "Poste de police", "ga": "Póilíní", "gl": "Policía", "he": "משטרה", "hr": "Policija", "hu": "Rendőrség", "is": "Lögregla", "it": "Forze di polizia", "ja": "警察", "ko": "경찰서", "lt": "Policija", "lv": "Policija", "mk": "Полиција", "nl": "Politiekantoor", "no": "Politi", "pl": "Posterunek policji / straży miejskiej lub gminnej", "pt-BR": "Polícia", "pt": "Esquadra da polícia", "ro": "Poliție", "ru": "Полиция", "sk": "Polícia", "sl": "Policija", "sr": "Полиција", "sv": "Polis", "ta": "காவல்", "th": "ตำรวจ", "tr": "Emniyet Müdürlüğü", "uk": "Поліція", "ur": "پلیس", "vi": "Đồn Cảnh sát", "yue": "差館", "zh-CN": "警察局", "zh-HK": "警署", "zh-TW": "警察局" } }, "amenity/polling_station": { "title": { "C": "Permanent Polling Place", "ar": "Permanent Polling Place", "br": "Burev-votiñ pad", "ca": "Col·legi Electoral Permanent", "cs": "Stálé volební místo", "cy": "Gorsaf Bleidleisio Parhaus", "de": "Permanentes Wahllokal", "el": "Μόνιμος Εκλογικός Χώρος", "en-GB": "Permanent Polling Place", "en": "Permanent Polling Place", "eo": "Balotejo (neŝanĝanta loko)", "es": "Lugar de votación permanente", "et": "Valimisjaoskond", "fa": "محل دائمی رأی‌گیری", "fi": "Pysyvä äänestyspaikka", "fr": "Bureau de vote permanent", "gl": "Lugar de votación permanente", "he": "קלפי קבוע", "hu": "Állandó szavazóhely", "it": "Sezione elettorale permanente", "ja": "投票所(常設)", "ko": "상설 투표소", "mk": "Трајно гласачко место", "nl": "Permanent stembureau", "no": "Fast stemmeplass", "pl": "Stały lokal wyborczy", "pt-BR": "Local de votação permanente", "pt": "Local de voto permanente", "sk": "Permanentná volebná miestnosť", "sv": "Permanent vallokal", "th": "หน่วยเลือกตั้ง", "tr": "Daimi Oylama Yeri", "uk": "Виборча дільниця", "vi": "Địa điểm Đi bầu Cố định", "zh-CN": "选举投票站", "zh-TW": "永久投票處" } }, "amenity/post_depot": { "title": { "C": "Post Sorting Office", "ar": "مكتب الفرز البريدي", "ca": "Oficina de classificació", "cs": "Poštovní depo", "da": "Postsorteringsfacilitet", "de": "Postverteilzentrum", "el": "Γραφείο Ταξινόμησης Αλληλογραφίας", "en-GB": "Post Sorting Office", "en": "Post Sorting Office", "eo": "Poŝta disspecigejo", "es": "Oficina de clasificación de correos", "et": "Postitöötlemiskeskus", "fa": "اداره پست", "fi": "Postinlajittelukeskus", "fr": "Bureau de tri de courrier", "gl": "Oficina de clasificación de correos", "he": "משרד מיון דואר", "hu": "Postai logisztikai központ", "it": "Ufficio di smistamento postale", "ja": "郵便集配所", "ko": "우편집중국", "mk": "Служба за поштенска отпрема", "nl": "Postsorteerkantoor", "no": "Sorteringssenter", "pl": "Sortownia przesyłek", "pt-BR": "Escritório de classificação de correspondência", "pt": "Centro de distribuição de correio", "sk": "Kancelária triedenia pošty", "sr": "Поштански сортажни центар", "sv": "Postsorteringskontor", "th": "ที่ทำการไปรษณีย์", "tr": "Posta Sıralama Ofisi", "uk": "Поштова сортувальна станція", "zh-CN": "包裹分拣中心", "zh-HK": "郵件處理中心", "zh-TW": "郵件處理中心" } }, "amenity/post_office": { "title": { "C": "Post Office", "am": "ፖስታ ቤት", "bn": "ডাকঘর", "fy": "Postkantoar", "te": "తపాలా కార్యాలయం", "bs": "Pošta", "id": "Kantor Pos", "kn": "ಅಂಚೆ ಕಚೇರಿ", "ms": "Pejabat Pos", "zh": "邮局", "af": "Poskantoor", "ar": "مكتب البريد", "ast": "Oficina de correos", "bg": "Поща", "br": "Ti-post", "ca": "Oficina de correus", "ckb": "نووسینگەی پۆستە", "cs": "Pošta", "cy": "Swyddfa Post", "da": "Postkontor", "de": "Postfiliale", "el": "Ταχυδρομείο", "en-GB": "Post Office", "en": "Post Office", "eo": "Poŝtoficejo", "es": "Oficina postal", "et": "Postkontor", "eu": "Postetxe", "fa": "اداره پست", "fi": "Postitoimisto", "fr": "Bureau de poste", "gl": "Oficina de correos", "he": "סניף דואר", "hr": "Pošta", "hu": "Posta", "is": "Pósthús", "it": "Ufficio postale", "ja": "郵便局", "ko": "우체국", "lt": "Paštas", "lv": "Pasta nodaļa", "mk": "Пошта", "nl": "Postkantoor", "no": "Postkontor", "pl": "Poczta/agencja pocztowa", "pt-BR": "Agência de correios", "pt": "Estação de correios", "ro": "Oficiul Poștal", "ru": "Почтовое отделение", "sk": "Pošta", "sl": "Pošta", "sr": "Пошта", "sv": "Postkontor", "ta": "அஞ்சலகம்", "th": "สำนักงานไปรษณีย์", "tr": "Postane", "uk": "Пошта", "ur": "ڈاک خانہ", "vi": "Bưu điện", "yue": "郵政局", "zh-CN": "邮局", "zh-HK": "郵政局", "zh-TW": "郵局" } }, "amenity/prep_school": { "title": { "C": "Test Prep / Tutoring School", "ar": "مدرسة إعداد للاختبارات/دروس خصوصية", "ca": "Classes de preparació / Classes de repàs", "cs": "Doučovací škola", "cy": "Ysgol Baratoi", "de": "Nachhilfeanbieter", "el": "Σχολείο Προπαρασκευής", "en-GB": "Exam Preparation", "en": "Test Prep / Tutoring School", "eo": "Lernejo pretiganta (al ekzameno/universitato)", "es": "Preparación para exámenes / Escuela de tutoría", "et": "Eelkool", "fa": "آزمون آزمایشی / مؤسسه آموزش", "fi": "Valmennuskoulu", "fr": "École préparatoire", "gl": "Preparación para exames / Escola de titoría", "he": "לימודי נהיגה", "hu": "Tesztpálya, tanulópálya", "it": "Scuola di preparazione / tutoraggio ai test", "ja": "進学予備校", "ko": "학원", "mk": "Подготвително училиште", "nl": "Studiebegeleiding", "pl": "Kursy przygotowawcze", "pt-BR": "Escola de preparação para exames", "pt": "Centro de explicações", "sk": "Príprava na skúšky/Doučovanie", "sv": "Pluggskola", "th": "โรงเรียนกวดวิชา", "tr": "Sınava Hazırlık / Özel Ders Okulu", "uk": "Підготовчий центр/Репетитор", "vi": "Trường Luyện thi / Dạy Kèm", "zh-CN": "辅导学校", "zh-HK": "補習社", "zh-TW": "補習班" } }, "amenity/prison": { "title": { "C": "Prison Grounds", "am": "እስር ቤት", "kn": "ಬಂದೀಖಾನೆ ಮೈದಾನ", "ms": "Kawasan Penjara", "af": "Tronkgebied", "ar": "مرافق/أراضي سجن", "ast": "Terrén de cárcel", "br": "Tachenn doull-bac'h", "ca": "Terrenys d'una presó", "cs": "Prostor věznice", "cy": "Tiroedd Carchar", "da": "Fængselsområde", "de": "Gefängnisanlage", "el": "Σωφρονιστικό Κατάστημα", "en-GB": "Prison Grounds", "en": "Prison Grounds", "eo": "Mallibereja tereno", "es": "Terreno de prisión / cárcel", "et": "Vangla", "eu": "Espetxe", "fa": "محوطه زندان", "fi": "Vankila", "fr": "Prison (terrain)", "gl": "Área penitenciaria", "he": "מגרש כלא", "hr": "Zatvorsko zemljište", "hu": "Börtön területe", "is": "Fangelsislóð", "it": "Area carceraria", "ja": "刑務所(代表点または敷地)", "ko": "교도소 부지", "mk": "Затворски двор", "nl": "Gevangenisgebied", "no": "Fengselsområde", "pl": "Teren więzienia", "pt-BR": "Presídio", "pt": "Prisão", "ro": "Închisoare", "ru": "Тюрьма", "sk": "Areál väznice", "sl": "Območje zapora", "sr": "Затворско двориште", "sv": "Fängelseområde", "th": "เรือนจำ", "tr": "Cezaevi", "uk": "Вʼязниця", "vi": "Sân Nhà tù", "zh-CN": "监狱/看守所", "zh-HK": "監獄範圍", "zh-TW": "監獄範圍" } }, "amenity/public_bath": { "title": { "C": "Public Bath", "af": "Openbare bad", "ar": "دورة مياة عمومية", "ast": "Baños públicos", "br": "Kibelldi foran", "ca": "Banys públic", "cs": "Veřejné lázně", "cy": "Bath Cyhoeddus", "da": "Offentligt bad", "de": "Öffentliches Bad", "el": "Δημόσιο Λουτρό", "en-GB": "Public Bath", "en": "Public Bath", "eo": "Banejo (distro)", "es": "Baño público", "et": "Avalik looduslik spaa", "eu": "Komun publikoak", "fa": "حمام عمومی", "fi": "Kylpylaitos", "fr": "Bain public", "gl": "Baño público", "he": "מרחצאות ציבוריות", "hr": "Javno kupalište", "hu": "Közfürdő", "is": "Almenningsböð", "it": "Bagni pubblici", "ja": "公衆浴場", "ko": "대중 목욕탕", "lt": "Vieša vonia", "mk": "Јавна бања", "nl": "Publiek bad", "no": "Offentlig bad", "pl": "Łaźnia publiczna", "pt-BR": "Banho público", "pt": "Banhos públicos", "ro": "Baie Publică", "ru": "Общественная баня", "sk": "Verejné kúpanie", "sl": "Javno kopališče", "sr": "Јавно купатило", "sv": "Publikt bad", "th": "ห้องอาบน้ำสาธารณะ", "tr": "Hamam", "uk": "Громадська лазня", "vi": "Nơi Tắm Công cộng", "zh-CN": "公共浴室", "zh-HK": "公共浴室", "zh-TW": "公共澡堂" } }, "amenity/ranger_station": { "title": { "C": "Ranger Station", "bs": "Stanica rendžerske službe", "ms": "Stesen Renjer", "af": "Veldwagtershut", "ar": "محطة الحراسة", "ast": "Guardes forestales", "ca": "Base d'Agents Rurals", "cs": "Stanice strážců NP", "da": "Rangerstation", "de": "Ranger-Station", "el": "Σταθμός Δασοφυλάκων", "en-GB": "Warden Station", "en": "Ranger Station", "eo": "Naturrezerveja oficejo/impostbudo", "es": "Estación de guardaparques", "et": "Looduskeskus", "eu": "Basozain geltokia", "fa": "ایستگاه جنگلبانی", "fi": "Metsävartiosto", "fr": "Centre d'accueil du parc", "gl": "Estación de garda de bosques", "he": "תחנת פקחים", "hr": "Rendžerska postaja", "hu": "Nemzeti park látogatóközpontja", "is": "Landvarðastöð", "it": "Guardiaparco", "ja": "レンジャーの詰所", "ko": "관리소", "lt": "Girininkų stotis", "mk": "Шумарска куќарка", "nl": "Boswachtershut", "no": "Skogvokterstasjon", "pl": "Baza strażników przyrody", "pt-BR": "Estação de patrulha", "pt": "Posto de guarda florestal", "ru": "Лесничество", "sk": "Správa chráneného územia", "sl": "Čuvaj parka", "sr": "Шумарска станица", "sv": "Friluftsanläggningen", "tr": "Korucu İstasyonu", "uk": "Контора лісництва", "vi": "Trạm Kiểm lâm", "yue": "郊野訪客處", "zh-CN": "野郊访客处", "zh-HK": "郊野公園遊客中心", "zh-TW": "國家公園管理站" } }, "recycling_type/centre": { "title": { "C": "Recycling Center" } }, "recycling_type/container": { "title": { "C": "Recycling Bin" } }, "amenity/refugee_site": { "title": { "C": "Refugee Camp", "ar": "مخيم لاجئين", "bg": "Бежански лагер", "br": "Kamp repuidi", "ca": "Camp de refugiats", "cs": "Uprchlický tábor", "da": "Flygtningelejr", "de": "Flüchtlingslager", "el": "Δομή Προσφύγων", "en-GB": "Refugee Camp", "en": "Refugee Camp", "eo": "Kampadejo por rifuĝantoj", "es": "Campamento de refugiados", "et": "Põgenikelaager", "fa": "اردوگاه پناهندگان", "fi": "Pakolaisleiri", "fr": "Camp de réfugiés", "gl": "Campo de refuxiados", "he": "מחנה פליטים", "hu": "Menekülttábor", "it": "Campo profughi", "ja": "難民キャンプ", "ko": "난민촌", "mk": "Бегалски камп", "nl": "Vluchtelingenkamp", "no": "Flyktningeleir", "pl": "Obóz uchodźców", "pt-BR": "Campo de refugiados", "pt": "Campo de refugiados", "ru": "Лагерь беженцев", "sk": "Utečenecký tábor", "sr": "Избеглички камп", "sv": "Flyktingläger", "th": "ค่ายผู้ลี้ภัย", "tr": "Mülteci Kampı", "uk": "Табір біженців", "vi": "Trại Tị nạn", "yue": "難民營", "zh-CN": "难民营", "zh-TW": "難民營" } }, "amenity/sanitary_dump_station": { "title": { "C": "RV Toilet Disposal", "ar": "مكب صرف صحي للكرفانات", "ast": "Vertíu de depósitos d'autocaravanes", "ca": "Estació de buidatge de lavabos", "cs": "Výlevka pro karavany", "da": "Bortskaffelse af sanitært affald", "de": "Campingtoiletten-Entsorgungsanlage", "en-GB": "RV Toilet Disposal", "en-NZ": "Caravan Toilet Disposal", "en": "RV Toilet Disposal", "eo": "Stacio de forigo de fekaĵoj (kampado)", "es": "Desecho de inodoro de casa rodante", "fa": "دفع توالت خودروی تفریحی (RV)", "fi": "Asuntoautojen jäteveden tyhjennyspiste", "fr": "Station de vidange sanitaire", "gl": "Depósito sanitario para autocaravanas", "he": "תחנת סילוק שפכים מקרוונים", "hr": "Pražnjenje toaleta za kamp kućice", "hu": "Szaniterürítő hely (lakóautóknak)", "is": "Salernishreinsun fyrir bíla", "it": "Smaltimento reflui camper", "ja": "キャンピングカー用汚物廃棄所", "ko": "RV 화장실 처리장", "mk": "Исфрлање трајлерски фекалии", "nl": "Kampeerauto-toilet-afvoer", "no": "Bobil-tømmestasjon", "pl": "Miejsce opróżniania toalety (dla kamperów)", "pt-BR": "Ponto de descarga de dejetos (para trailers)", "pt": "Escoamento sanitário para autocaravanas", "ru": "Слив для туалета трейлеров", "sk": "Vyprázdňovanie karavánových toaliet", "sl": "Odlaganje fekalij za avtodome", "sv": "Latrintömning för campingfordon", "th": "ห้องน้ำเคลื่อนที่", "tr": "Tuvalet Atık Yeri", "uk": "Місце зливу каналізації", "vi": "Trạm Đổ Chất thải dành cho Nhà lưu động", "zh-CN": "厕所卸污处", "zh-HK": "露營車廁所廢物收集", "zh-TW": "RV移動廁所" } }, "amenity/shower": { "title": { "C": "Shower", "af": "Stort", "ar": "دش استحمام", "ast": "Ducha", "br": "Strinkerezh", "ca": "Dutxa", "cs": "Sprchy", "cy": "Cawod", "da": "Brusebad", "de": "Dusche", "el": "Ντουζιέρα", "en-GB": "Shower", "en": "Shower", "eo": "Duŝejo", "es": "Ducha", "et": "Dušš", "eu": "Dutxa", "fa": "دوش", "fi": "Suihku", "fr": "Douche", "gl": "Ducha", "he": "מקלחת", "hr": "Tuš", "hu": "Zuhany", "is": "Steypibað", "it": "Doccia", "ja": "シャワー室", "ko": "샤워실", "lt": "Dušas", "lv": "Duša", "mk": "Туш", "nl": "Douche", "no": "Dusj", "pl": "Prysznic", "pt-BR": "Ducha", "pt": "Chuveiro", "ru": "Душ", "sk": "Verejné sprchy", "sl": "Tuš", "sr": "Туш", "sv": "Dusch", "th": "การอาบน้ำฝักบัว", "tr": "Banyo", "uk": "Душ", "vi": "Tắm đứng", "zh-CN": "淋浴间", "zh-HK": "淋浴處", "zh-TW": "淋浴間" } }, "amenity/smoking_area": { "title": { "C": "Smoking Area", "ar": "منطقة مخصصة للتدخين", "br": "Takad Butunerien", "ca": "Àrea per a fumadors", "ckb": "ناوەی جگەرەکێشان", "cs": "Kuřárna", "cy": "Ardal Ysmygu", "da": "Rygeområde", "de": "Raucherbereich", "el": "Χώρος Καπνιστών", "en-GB": "Smoking Area", "en": "Smoking Area", "eo": "Fumejo", "es": "Área de fumadores", "et": "Suitsetamise koht", "eu": "Erretzeko gune", "fa": "منطقه سیگار کشیدن", "fi": "Tupakointialue", "fr": "Zone fumeur", "gl": "Zona de fumadores", "he": "אזור עישון", "hu": "Dohányzásra kijelölt terület", "is": "Reykingasvæði", "it": "Area fumatori", "ja": "喫煙所", "ko": "흡연 구역", "lt": "Rūkymo vieta", "lv": "Smēķēšanas vieta", "mk": "Пушилница", "nl": "Rookgebied", "no": "Røykeområde", "pl": "Palarnia", "pt-BR": "Área de fumantes", "pt": "Área para fumadores", "ru": "Место для курения", "sk": "Fajčiarska zóna", "sr": "Зона за пушаче", "sv": "Rökområde", "th": "พื้นที่สูบบุหรี่", "tr": "Sigara İçme Alanı", "uk": "Місце для куріння", "vi": "Khu vực Hút thuốc", "zh-CN": "吸烟区域", "zh-HK": "吸煙區", "zh-TW": "吸煙區" } }, "amenity/social_centre": { "title": { "C": "Social Center", "af": "Maatskaplike sentrum", "ar": "مركز اجتماعي", "br": "Kreizenn sokial", "ca": "Centre social", "cs": "Sociální středisko", "cy": "Canolfan Cymdeithasol", "de": "Sozialzentrum", "el": "Κοινωνικό Κέντρο", "en-AU": "Social Centre", "en-GB": "Social Centre", "en-NZ": "Payment Centre", "en": "Social Center", "eo": "Centro de socio", "es": "Centro social", "et": "Sotsiaalkeskus", "fa": "مرکز اجتماعی", "fi": "Sosiaalikeskus", "fr": "Centre social", "gl": "Centro social", "he": "מרכז חברתי", "hu": "Szociális központ", "it": "Centro attività sociali", "ja": "社交センター", "ko": "사회 단체 본부", "mk": "Друштвен дом", "nl": "Sociaal ontmoetingscentrum", "pl": "Miejsce spotkań grupy środowiskowej", "pt-BR": "Centro social", "pt": "Clube social", "ru": "Социальный центр", "sk": "Spoločenské centrum", "sr": "Дружтвени центар", "sv": "Medborgarhus", "th": "ศูนย์ชุมชน", "tr": "Sosyal Merkez", "uk": "Громадський центр", "vi": "Hội trường", "zh-CN": "社区交流中心", "zh-HK": "社交中心", "zh-TW": "社交中心" } }, "amenity/stripclub": { "title": { "C": "Strip club", "br": "Strip club", "cs": "Striptýzový klub", "cy": "Clwb Dihatryd", "de": "Stripclub", "en-GB": "Strip club", "en": "Strip club", "es": "Club de striptease", "et": "Striptiisiklubi", "fr": "Club de strip-tease", "he": "מועדון חשפנות", "hu": "Sztriptízbár", "it": "Club di spogliarello", "ja": "ストリップ劇場", "mk": "Стриптиз-клуб", "nl": "Stripclub", "pl": "Klub ze striptizem", "pt-BR": "Clube de strip", "pt": "Clube de strip", "ru": "Стриптиз-клуб", "sk": "Striptízový klub", "sr": "Стриптиз клуб", "sv": "Strippklubb", "tr": "Striptiz kulübü", "uk": "Стріп клуб", "zh-TW": "脫衣舞俱樂部" } }, "amenity/studio": { "title": { "C": "Studio", "am": "ስቱዲዮ", "bs": "Studio", "id": "Studio", "ms": "Studio", "af": "Ateljee", "ar": "أستوديو", "ast": "Estudiu", "br": "Studio", "ca": "Estudi", "ckb": "ستۆدیۆ", "cs": "Studio", "cy": "Stiwdio", "da": "Studie", "de": "Ton-/Fernsehstudio", "el": "Στούντιο", "en-GB": "Studio", "en": "Studio", "eo": "Studio", "es": "Estudio de grabación", "et": "Stuudio", "eu": "Estudio", "fa": "استدیو", "fi": "Studio", "fr": "Studio", "gl": "Estudio", "he": "סטודיו", "hr": "Studio", "hu": "Stúdió", "is": "Upptökustúdíó", "it": "Studio radiotelevisivo", "ja": "スタジオ", "ko": "스튜디오", "lt": "Studija", "lv": "Studija", "mk": "Студио", "nl": "Studio", "no": "Studio", "pl": "Studio", "pt-BR": "Estúdio de rádio/TV ou de gravação", "pt": "Estúdio", "ro": "Studio", "ru": "Студия", "sk": "Štúdio", "sl": "Studio", "sr": "Студио", "sv": "Studio", "th": "สตูดิโอ", "tr": "Stüdyo", "uk": "Студія", "vi": "Studio", "zh-CN": "工作室", "zh-HK": "工作室", "zh-TW": "工作室" } }, "amenity/taxi": { "title": { "C": "Taxi Stand", "am": "ታክሲ", "bs": "Taxi stajalište", "id": "Tempat Tunggu Taksi", "kn": "‍ಕಾರು ನಿಲ್ಡಾಣ", "ms": "Tempat Menunggu Teksi", "af": "Taxi staanplek", "ar": "موقف تاكسي", "ast": "Parada de taxis", "bg": "Такси стоянка", "br": "Taksilec'h", "ca": "Parada de Taxi", "cs": "Stanoviště taxi", "cy": "Safle Tacsi", "da": "Taxiholdeplads", "de": "Taxistand", "el": "Πιάτσα Ταξί", "en-AU": "Taxi Rank", "en-GB": "Taxi Stand", "en": "Taxi Stand", "eo": "Taksistacio", "es": "Parada de taxi", "et": "Taksopeatus", "eu": "Taxi postu", "fa": "تاکسی", "fi": "Taksitolppa", "fr": "Station de taxi", "gl": "Parada de taxi", "he": "עמדת מוניות", "hr": "Taksi stajalište", "hu": "Taxiállomás", "is": "Leigubílastæði", "it": "Posteggio taxi", "ja": "タクシー乗り場", "ko": "택시 승차장", "lt": "Taksi stendas", "mk": "Такси-постојка", "nl": "Taxistandplaats", "no": "Taxiholdeplass", "pa-PK": "ٹیکسی سٹینڈ", "pl": "Postój taksówek", "pt-BR": "Ponto de táxi", "pt": "Praça de táxis", "ro": "Stand de Taxi", "ru": "Стоянка такси", "sk": "Stanovisko taxíkov", "sl": "Postajališče za taksi", "sr": "Такси стајалиште", "sv": "Taxihållplats", "th": "ป้ายรอแท็กซี่", "tr": "Taksi Durağı", "uk": "Стоянка таксі", "vi": "Bến Tắc xi", "yue": "的士站", "zh-CN": "出租车停车处", "zh-HK": "的士站", "zh-TW": "計程車招呼站" } }, "amenity/telephone": { "title": { "C": "Telephone", "am": "የህዝብ ስልክ", "bn": "টেলিফোন", "bs": "Telefon", "id": "Telepon", "kn": "ದುರವಾಣಿ", "ms": "Telefon", "zh": "电话", "af": "Openbare telefoon", "ar": "هاتف", "ast": "Teléfonu", "bg": "Телефон", "br": "Pellgomzer", "ca": "Telèfon", "ckb": "تەلەفۆن", "cs": "Telefon", "cy": "Ffôn", "da": "Telefon", "de": "Telefon", "el": "Τηλέφωνο", "en-CA": "Telephone", "en-GB": "Telephone", "en": "Telephone", "eo": "Telefono", "es": "Teléfono", "et": "Taksofon", "eu": "Telefono", "fa": "تلفن عمومی", "fi": "Yleinen puhelin", "fr": "Téléphone", "ga": "Teileafón", "gl": "Teléfono", "he": "טלפון", "hr": "Telefon", "hu": "Telefon", "is": "Sími", "it": "Telefono", "ja": "公衆電話", "ko": "전화", "lt": "Telefonas", "lv": "Telefons", "mk": "Телефон", "nl": "Telefoon", "no": "Telefon", "pa-PK": "فون", "pl": "Telefon", "pt-BR": "Telefone público", "pt": "Telefone", "ro": "Telefon", "ru": "Телефон", "sk": "Telefón", "sl": "Telefon", "sr": "Телефонска говорница", "sv": "Telefon", "ta": "தொலைபேசி", "th": "เบอร์โทรศัพท์", "tr": "Telefon", "uk": "Телефон", "ur": "ٹیلی فون", "vi": "Điện thoại", "yue": "電話", "zh-CN": "电话", "zh-HK": "電話", "zh-TW": "公用電話" } }, "amenity/theatre": { "title": { "C": "Theater", "am": "ቲያትር ቤት", "bn": "থিয়েটার", "bs": "Pozorište", "id": "Teater", "kn": "ಚಿತ್ರಮಂದಿರ", "ms": "Teater", "zh": "剧院", "af": "Teater", "ar": "مسرح", "ast": "Teatru", "bg": "Театър", "br": "C'hoariva", "ca": "Teatre", "ckb": "شانۆ", "cs": "Divadlo", "cy": "Theatr", "da": "Teater", "de": "The­a­ter", "el": "Θέατρο", "en-AU": "Theatre", "en-GB": "Theatre", "en-NZ": "Theatre", "en": "Theater", "eo": "Teatrejo", "es": "Teatro", "et": "Teater", "eu": "Antzoki", "fa": "تئاتر", "fi": "Teatteri", "fr": "Théâtre", "ga": "Amharclann", "gl": "Teatro", "he": "תאטרון", "hr": "Kazalište", "hu": "Színház", "is": "Leikhús", "it": "Teatro", "ja": "劇場", "ko": "극장", "lt": "Teatras", "lv": "Teātris", "mi": "Whare Tapere", "mk": "Театар", "nl": "Theater", "no": "Teater", "pl": "Teatr", "pt-BR": "Teatro", "pt": "Teatro", "ro": "Teatru", "ru": "Театр", "sk": "Divadlo", "sl": "Gledališče", "sr": "Позориште", "sv": "Teater", "ta": "திரையரங்கம்", "th": "โรงภาพยนตร์", "tr": "Tiyatro", "uk": "Театр", "vi": "Nhà hát", "yue": "舞臺戲院", "zh-CN": "剧院", "zh-HK": "劇院", "zh-TW": "戲劇院" } }, "amenity/townhall": { "title": { "C": "Town Hall", "bn": "টাউন হল", "bs": "Gradska vijećnica", "id": "Balai Kota", "ms": "Dewan Perbandaran", "zh": "市政府", "af": "Stadsaal", "ar": "مبنى البلدية/المركز الإداري", "ast": "Edificiu municipal", "bg": "Кметство", "br": "Ti-kêr", "ca": "Ajuntament", "cs": "Radnice", "cy": "Neuadd y Dref", "da": "Rådhus", "de": "Rathaus", "el": "Δημαρχείο", "en-GB": "Town Hall", "en": "Town Hall", "eo": "Urbodomo", "es": "Ayuntamiento / Municipalidad", "et": "Linnahall", "eu": "Udaletxe", "fa": "شهرداری", "fi": "Kunnantalo", "fr": "Mairie, hôtel de ville", "gl": "Casa do Concello", "he": "בניין עירייה", "hr": "Gradska vijećnica", "hu": "Városháza", "is": "Ráðhús", "it": "Municipio", "ja": "役場", "ko": "마을 회관", "lt": "Rotušė", "lv": "Pilsētas dome", "mi": "Hōro ā-Tāone", "mk": "Градски дом", "nl": "Gemeentehuis", "no": "Rådhus", "pl": "Urząd miasta lub gminy", "pt-BR": "Paço municipal ou prefeitura", "pt": "Câmara municipal / Junta de freguesia", "ro": "Primărie", "ru": "Администрация", "sk": "Mestský úrad", "sl": "Mestna hiša", "sr": "Градска кућа", "sv": "Kommunhus", "ta": "நகராட்சிமன்றம்", "th": "ศาลากลาง", "tr": "Belediye Binası", "uk": "Міська державна адміністрація", "vi": "Tòa thị chính Thị xã", "yue": "大會堂", "zh-CN": "地方政府/村礼堂", "zh-HK": "大會堂", "zh-TW": "鄉鎮市區公所" } }, "amenity/toy_library": { "title": { "C": "Toy Library", "ar": "Toy Library", "cs": "Půjčovna hraček", "cy": "Llyfrgell Tegannau", "da": "Legetøjsbibliotek", "de": "Spielzeugbibliothek", "el": "Βιβλιοθήκη Παιγνίων", "en-GB": "Toy Library", "en": "Toy Library", "eo": "Ludil‑biblioteko", "es": "Biblioteca de juguetes", "fa": "قفسه اسباب‌بازی", "fi": "Lelukirjasto", "fr": "Ludothèque", "gl": "Biblioteca de xoguetes", "he": "ספריית צעצועים", "hu": "Játékkölcsönző", "it": "Ludoteca", "ja": "おもちゃ資料館", "mk": "Зајмување играчки", "nl": "Spelotheek", "no": "Lekebibliotek", "pl": "Wypożyczalnia gier i zabawek", "pt-BR": "Brinquedoteca ou ludoteca", "pt": "Brinquedoteca", "ru": "Игротека", "sk": "Knižnica hier/hračiek", "sv": "Leksaksbibliotek", "th": "ห้องของเล่น", "tr": "Oyuncak Kütüphanesi", "uk": "Прокат іграшок", "vi": "Thư viện Đồ chơi", "zh-CN": "玩具游乐/租赁店", "zh-HK": "玩具圖書館", "zh-TW": "玩具圖書館" } }, "amenity/vehicle_inspection": { "title": { "C": "Vehicle Inspection", "af": "Voertuiginspeksie", "ar": "الفحص الدوري", "bg": "ГТП", "br": "Kontroll teknikel", "ca": "Inspecció de vehicles", "cs": "Kontrola vozidel", "da": "Bilinspektion", "de": "Fahrzeuginspektion", "el": "Κέντρο Τεχνικού Ελέγχου Οχημάτων (Κ.Τ.Ε.Ο.)", "en-GB": "Vehicle Inspection", "en": "Vehicle Inspection", "eo": "Aŭtomobil-kontrolejo", "es": "Inspección vehicular", "et": "Sõidukite tehnoülevaatus", "fa": "مرکز معاینه فنی خودرو", "fi": "Katsastusasema", "fr": "Centre de contrôle technique", "gl": "Inspección de vehículo", "he": "בדיקת כלי רכב", "hr": "Tehnički pregled vozila", "hu": "Műszaki vizsgáló állomás", "is": "Skoðun farartækja", "it": "Ispezione veicolo", "ja": "車検場", "ko": "차량 점검", "mk": "Преглед на возила", "nl": "Voertuigkeuring", "pl": "Stacja kontroli pojazdów", "pt-BR": "Inspeção veicular", "pt": "Centro de inspeção de veículos", "ru": "Станция техосмотра", "sk": "Stanica technickej kontroly", "sr": "Технички преглед возила", "sv": "Fordonsbesiktning", "th": "สถานตรวจสภาพรถ", "tr": "Araç denetleme", "uk": "Техогляд траспортних засобів", "vi": "Trạm Kiểm tra Xe", "zh-CN": "车辆检验站", "zh-HK": "車輛檢查", "zh-TW": "車輛檢驗" } }, "amenity/vending_machine": { "title": { "C": "Vending Machine", "ms": "Mesin Layan Diri", "af": "Verkoopmasjien", "ar": "ماكينة البيع الذاتي", "ast": "Máquina de venta automática", "bg": "Автомат за стоки", "br": "Dasparzher emgefre", "ca": "Màquina expenedora", "cs": "Prodejní automat", "cy": "Peiriant Gwerthu", "da": "Salgsautomat", "de": "Verkaufsautomat", "el": "Αυτόματος Πωλητής", "en-GB": "Vending Machine", "en": "Vending Machine", "eo": "Vendilo", "es": "Máquina expendedora", "et": "Müügiautomaat", "eu": "Makina saltzaile", "fa": "دستگاه فروش خودکار", "fi": "Myyntiautomaatti", "fr": "Distributeur automatique", "gl": "Máquina expendedora", "he": "מכונת ממכר", "hr": "Automat za prodaju", "hu": "Árusító automata", "is": "Sjálfsali", "it": "Distributore automatico", "ja": "自動販売機", "ko": "자동판매기", "lt": "Prekybos automatas", "lv": "Tirdzniecības automāts", "mk": "Продажен автомат", "nl": "Automaat", "no": "Automat", "pl": "Automat sprzedający", "pt-BR": "Máquina de venda", "pt": "Máquina de venda automática", "ru": "Торговый автомат", "sk": "Výdajný automat", "sl": "Prodajni avtomat", "sr": "Аутомат", "sv": "Varuautomat", "th": "ตู้หยอดเหรีญ", "tr": "Otomatik Satış Makinası", "uk": "Торговельний автомат", "vi": "Máy Bán Hàng", "zh-CN": "自动售货机", "zh-HK": "售賣機", "zh-TW": "自動販賣機" } }, "amenity/veterinary": { "title": { "C": "Veterinary", "am": "የእንስሳት መድሃኒት ቤት", "id": "Dokter Hewan", "kn": "ಪಶುವೈದ್ಯಕೀಯ", "ms": "Veterinar", "af": "Veearts", "ar": "عيادة بيطرية", "ast": "Veterinariu", "br": "Mezeg-loened", "ca": "Veterinari", "ckb": "ڤێتێرنەری", "cs": "Veterina", "cy": "Milfeddyg", "da": "Dyrlæge", "de": "Tierarztpraxis", "el": "Κτηνιατρείο", "en-GB": "Veterinary", "en": "Veterinary", "eo": "Bestokuracistejo", "es": "Veterinario", "et": "Loomaarst", "eu": "Albaitari", "fa": "دامپزشکی", "fi": "Eläinlääkäri", "fr": "Vétérinaire", "gl": "Veterinario", "he": "וטרינר", "hr": "Veterinar", "hu": "Állatorvos", "is": "Dýralæknir", "it": "Veterinario", "ja": "獣医", "ko": "동물병원", "lt": "Veterinarija", "lv": "Veternārārsts", "mk": "Ветеринар", "nl": "Dierenarts", "no": "Veterinær", "pl": "Weterynarz", "pt-BR": "Veterinário", "pt": "Veterinário", "ro": "Medic Veterinar", "ru": "Ветеринар", "sk": "Veterinár", "sl": "Veterinar", "sr": "Ветеринарница", "sv": "Veterinär", "th": "สัตวแพทย์", "tr": "Veteriner", "uk": "Ветеринарна лікарня", "vi": "Thú y", "zh-CN": "动物医院", "zh-HK": "獸醫", "zh-TW": "獸醫院" } }, "amenity/waste_basket": { "title": { "C": "Trash Can", "br": "Poubellenn", "ca": "Paperera", "cs": "Odpadkový koš", "cy": "Bin Sbwriel", "de": "Mülleimer", "el": "Καλάθι Απορριμμάτων", "en-AU": "Rubbish Bin", "en-GB": "Rubbish bin", "en": "Trash Can", "es": "Cesto de basura", "et": "Prügikast", "fr": "Poubelle", "he": "פח אשפה", "it": "Cestino", "ja": "ゴミ箱", "ko": "쓰레기통", "mi": "Rapihi", "mk": "Корпа за отпадоци", "nl": "Afvalbak", "pl": "Kosz na śmieci", "pt": "Caixote do lixo", "ru": "Мусорная корзина", "sk": "Odpadkový kôš", "sr": "Канта за смеће", "sv": "Soptunna", "uk": "сміттєвий бак", "zh-TW": "垃圾桶" } }, "amenity/waste_transfer_station": { "title": { "C": "Waste Transfer Station", "ar": "محطة نقل النفايات", "ast": "Estación de tresferencia de basoria", "ca": "Centre de tractament de residus", "cs": "Překládací stanice odpadu", "da": "Affaldsstation", "de": "Müllumladestation", "el": "Σταθμός Μεταφοράς Απορριμμάτων", "en-GB": "Waste Transfer Station", "en": "Waste Transfer Station", "eo": "Stacio de rubmastrumado", "es": "Estación de transferencia de residuos", "fa": "ایستگاه انتقال زباله", "fi": "Jätteiden putkikeräysasema", "fr": "Installation de transit, regroupement ou tri de déchets", "gl": "Estación de bombeo de augas residuais", "he": "תחנת מעבר זבל", "hu": "Hulladékátrakodó", "is": "Sorpflokkunarstöð", "it": "Centro Raccolta Rifiuti", "ja": "ゴミ集積場", "ko": "쓰레기 운반장", "mk": "Претоварна отпадна станица", "nl": "Afval-transfer-station", "pl": "Stacja przeładunku odpadów", "pt-BR": "Estação de transferência de resíduos", "pt": "Estação de transferência de lixo", "ru": "Мусоро-перегрузочная станция", "sk": "Prekládková stanica odpadu", "sl": "Zbirni center odpadkov", "sr": "Станица за пренос отпада", "sv": "Avfallscentral", "th": "สถานีขนถ่ายขยะ", "tr": "Çöp Transfer İstasyonu", "uk": "Сміттєперевантажувальна станція", "vi": "Trạm Trung chuyển Chất thải", "zh-CN": "垃圾中转站", "zh-HK": "垃圾轉運站", "zh-TW": "垃圾清運站" } }, "amenity/water_point": { "title": { "C": "RV Drinking Water", "ar": "تعبئة مياه شرب بكميات (لمقطورات السفر والتخييم)", "ast": "Agua potable pa caravanes", "ca": "Aigua potable d'autocaravana", "cs": "Pitná voda pro karavany", "da": "Tankning af drikkevand", "de": "Camping-Trinkwasser", "el": "Παροχή Πόσιμου Νερού", "en-GB": "RV Drinking Water", "en": "RV Drinking Water", "eo": "Trinkakvejo (kampado)", "es": "Recarga de agua potable para autocaravanas", "fa": "آب آشامیدنی", "fi": "Asuntoauton vesipiste", "fr": "Eau potable pour citerne de véhicule de loisirs", "gl": "Auga potábel para autocaravanas", "he": "מי שתייה לקרוואן", "hr": "Pitka voda za kamp kućice", "hu": "Ivóvíz-csatlakozás lakóautónak", "is": "Drykkjarvatn fyrir bíla", "it": "Acqua potabile per camper", "ja": "キャンピングカー用の給水施設", "ko": "RV 식수대", "mk": "Пивка вода за трајлери", "nl": "Waterpunt voor kampeerauto's", "no": "Drikkevann for bobiler", "pl": "Punkt tankowania wody pitnej (kampery/łodzie)", "pt-BR": "Torneira de água potável", "pt": "Água potável para autocaravanas", "ru": "Питьевая вода для трейлера", "sk": "Pitná voda pre karavany", "sl": "Pitna voda za avtodome", "sv": "Dricksvatten för campingfordon", "th": "น้ำดื่มสำหรับรถบ้าน", "tr": "İçme Suyu", "uk": "Заправка питною водою", "vi": "Vòi Nước uống dành cho Nhà lưu động", "zh-CN": "直饮水", "zh-HK": "露營車飲用水", "zh-TW": "RV 飲用水" } }, "amenity/watering_place": { "title": { "C": "Animal Watering Place", "af": "Drinkplek", "ar": "حوض تروية للحيوانات", "ast": "Bebederu p'animales", "ca": "Font d'aigua per animals (abeurador)", "cs": "Napajedlo pro zvířata", "da": "Dyrevandtrug", "de": "Tränke", "el": "Ποτίστρα Ζώων", "en-GB": "Animal Watering Place", "en": "Animal Watering Place", "eo": "Akvotrinkejo por bestoj", "es": "Abrevadero para animales", "et": "Loomade joogikoht", "fa": "آبشخور حیوانات", "fi": "Eläinten juomapaikka", "fr": "Point d'eau pour animaux", "gl": "Bebedoiro de animais", "he": "מקור מים לחיות", "hu": "Állatitató", "is": "Brynning fyrir dýr", "it": "Abbeveratoio", "ja": "動物の水飲み場", "ko": "동물 급수 장소", "mk": "Поило за миленици", "nl": "Drinkplaats voor dieren", "no": "Dyrevanningssted", "pl": "Wodopój", "pt-BR": "Bebedouro para animais", "pt": "Bebedouro para animais", "ru": "Водопой для животных", "sk": "Miesto na napájanie zvierat", "sl": "Napajališče za živali", "sr": "Појило", "sv": "Dricksvatten för djur", "th": "น้ำสำหรับสัตว์", "tr": "Hayvan Yıkama Yeri", "uk": "Водопій", "vi": "Nước Uống dành cho Thú vật", "zh-CN": "动物饮水地", "zh-HK": "動物飲水處", "zh-TW": "動物飲水區" } }, "amenity/baking_oven": { "title": { "C": "Baking Oven", "br": "Forn dre geuneud", "cs": "Pečící trouba", "de": "Backofen", "el": "Φούρνος Ψησίματος", "en-GB": "Baking Oven", "en": "Baking Oven", "es": "Horno de panadería", "et": "Avalik küpsetusahi", "fr": "Four à bois", "it": "Forno", "ja": "公共オーブン", "mk": "Рерна", "pl": "Piec chlebowy", "pt": "Forno de pão", "ru": "Печь для выпечки", "sk": "Rúra na pečenie", "sr": "Пећница", "sv": "Bakugn", "uk": "Піч", "zh-TW": "烘烤爐" } }, "amenity/bank": { "title": { "C": "Bank", "am": "ባንክ", "bn": "ব্যাংক", "fy": "Bank", "hy": "Բանկ", "te": "బ్యాంకు", "bs": "Banka", "dv": "ބޭންކު", "id": "Bank", "kn": "ಬ್ಯಾಂಕ್", "ne": "बैंक", "so": "Bangi", "zh": "银行", "af": "Bank", "ar": "بنك", "ast": "Bancu", "bg": "Банка", "br": "Ti-bank", "ca": "Banc", "ckb": "بانک", "cs": "Banka", "cy": "Banc", "da": "Bank", "de": "Bank-Filiale", "el": "Τράπεζα", "en-GB": "Bank", "en": "Bank", "eo": "Bankejo", "es": "Banco", "et": "Pank", "eu": "Bankua", "fa": "بانک", "fi": "Pankki", "fr": "Banque", "ga": "Banc", "gl": "Banco", "he": "בנק", "hr": "Banka", "hu": "Bank", "is": "Banki", "it": "Banca", "ja": "銀行", "ko": "은행", "lt": "Bankas", "lv": "Banka", "mk": "Банка", "nl": "Bank (financieel)", "no": "Bank", "pa-PK": "بینک", "pl": "Bank", "pt-BR": "Banco", "pt": "Banco", "ro": "Banca", "ru": "Банк", "sk": "Banka", "sl": "Banka", "sr": "Банка", "sv": "Bank", "ta": "வங்கி", "th": "ธนาคาร", "tr": "Banka", "uk": "Банк", "ur": "بینک", "vi": "Ngân hàng", "yue": "銀行", "zh-CN": "银行", "zh-HK": "銀行", "zh-TW": "銀行" } }, "amenity/bar": { "title": { "C": "Bar", "am": "ቡና ቤት", "bn": "পানশালা", "fy": "Bar", "hy": "Բար", "bs": "Bar", "dv": "ބާރ", "id": "Bar", "ne": "बार", "so": "Makhaayad", "zh": "酒吧", "af": "Kroeg", "ar": "حانة", "ast": "Bar", "bg": "Бар", "br": "Tavarn", "ca": "Bar de copes", "ckb": "مەیخانە", "cs": "Bar", "cy": "Bar", "da": "Bar", "de": "Bar", "el": "Μπαρ", "en-GB": "Bar", "en": "Bar", "eo": "Drinkejo", "es": "Bar (latam) / Bar de copas (es)", "et": "Baar", "eu": "Taberna", "fa": "بار", "fi": "Baari", "fr": "Bar", "ga": "Teach Tábhairne", "gl": "Bar de copas", "he": "בר", "hr": "Bar", "hu": "Bár", "is": "Knæpa", "it": "Bar", "ja": "バー", "ko": "바", "lt": "Baras", "lv": "Bārs", "mk": "Бар", "nl": "Bar", "no": "Bar", "pa-PK": "پب (بار، شراب والی)", "pl": "Bar alkoholowy", "pt-BR": "Bar requintado ou drinqueria", "pt": "Bar", "ro": "Bar", "ru": "Бар", "sk": "Bar", "sl": "Bar", "sr": "Бар", "sv": "Bar", "ta": "மதுபானக் கடை", "th": "บาร์", "tr": "Bar", "uk": "Бар", "vi": "Quán rượu", "yue": "酒吧", "zh-CN": "酒吧", "zh-HK": "酒吧", "zh-TW": "酒吧" } }, "amenity/bicycle_parking": { "title": { "C": "Bicycle Parking", "bn": "সাইকেল পার্ক করার জায়গা", "fy": "Fytsestalling", "hy": "Հեծանվային կայանատեղի", "bs": "Parking bicikala", "id": "Parkir Sepeda", "zh": "自行车停放处", "af": "Fietsparkering", "ar": "موقف دراجات هوائية", "ast": "Aparcaderu de bicicletes", "bg": "Паркинг за велосипеди", "br": "Parklec'h marc'hoù-houarn", "ca": "Aparcament per a bicicletes", "ckb": "گەراجی پاسکیل", "cs": "Parkování kol", "cy": "Parcio Beiciau", "da": "Cykelparkering", "de": "Fahrradparkplatz", "el": "Στάθμευση Ποδηλάτων", "en-GB": "Bicycle Parking", "en": "Bicycle Parking", "eo": "Bicikla parkumejo", "es": "Estacionamiento de bicicletas", "et": "Rattaparkla", "eu": "Bizikletentzako Aparkalekua", "fa": "پارکینگ دوچرخه", "fi": "Pyöräpysäköinti", "fr": "Parking à vélos", "gl": "Aparcadoiro de bicicletas", "he": "חניית אופניים", "hr": "Parkiralište za bicikle", "hu": "Kerékpártároló", "is": "Hjólastæði", "it": "Parcheggio biciclette", "ja": "駐輪場", "ko": "자전거 주차장", "lt": "Dviračių stovėjimo aikštelė", "lv": "Velo stāvvieta", "mi": "Tūnga pahikara", "mk": "Велосипедско паркиралиште", "nl": "Fietsenstalling", "no": "Sykkelparkering", "pa-PK": "سائیکل پارکنگ", "pl": "Parking rowerowy", "pt-BR": "Bicicletário", "pt": "Parque de bicicletas", "ro": "Parcare biciclete", "ru": "Велопарковка", "sk": "Parkovanie pre bicykle", "sl": "Parkirišče za kolesa", "sr": "Паркинг за бицикле", "sv": "Cykelparkering", "ta": "ஈருருளை நிறுத்தகம்", "th": "ที่จอดจักรยาน", "tr": "Bisiklet Parkı", "uk": "Велостоянка", "vi": "Chỗ Đậu Xe đạp", "yue": "泊單車處", "zh-CN": "自行车停车处", "zh-HK": "單車停放處", "zh-TW": "單車停車場" } }, "amenity/bicycle_wash": { "title": { "C": "Bicycle Wash" } }, "amenity/cafe": { "title": { "C": "Cafe", "am": "ሻይ ቤት", "bn": "ক্যাফে", "fy": "Kafee", "hy": "Սրճարան", "bs": "Kafe", "dv": "ކެފޭ", "id": "Kafe", "ms": "Kafe", "ne": "क्याफे", "so": "Kafateeriya", "zh": "咖啡", "af": "Kafee", "ar": "مقهى", "ast": "Café", "bg": "Кафене", "br": "Ti-kafe", "ca": "Cafeteria", "ckb": "قاوەخانە", "cs": "Kavárna", "cy": "Caffi", "da": "Cafe", "de": "Café", "el": "Καφέ", "en-GB": "Cafe", "en-NZ": "Café", "en": "Cafe", "eo": "Kafejo", "es": "Cafetería", "et": "Kohvik", "eu": "Kafetegi", "fa": "کافه", "fi": "Kahvila", "fr": "Café", "ga": "Caifé", "gl": "Cafetaría", "he": "בית קפה", "hr": "Kafić", "hu": "Kávézó", "is": "Kaffihús", "it": "Caffè", "ja": "喫茶店", "ko": "카페", "lt": "Kavinė", "lv": "Kafejnīca", "mk": "Кафетерија", "nl": "Café", "no": "Kafé", "pa-PK": "کافی ہٹی", "pl": "Kawiarnia", "pt-BR": "Cafeteria", "pt": "Café", "ro": "Cafenea", "ru": "Кафе", "sk": "Kaviareň", "sl": "Kavarna", "sr": "Кафић", "sv": "Café", "ta": "டீக்கடை", "th": "คาเฟ่", "tr": "Kafe", "uk": "Кафе", "vi": "Quán Cà phê/Trà/Chè", "yue": "茶座", "zh-CN": "咖啡馆", "zh-HK": "茶座", "zh-TW": "咖啡廳" } }, "amenity/childcare": { "title": { "C": "Nursery/Childcare", "fy": "Berne-opfang", "id": "Tempat Penitipan Anak", "af": "Kindersorg", "ar": "رعاية الأطفال", "ast": "Preescolar/Guardería", "bg": "Детска ясла", "br": "Magouri", "ca": "Llar d'Infants", "cs": "Předškolní a mimoškolní péče", "cy": "Meithrinfa", "da": "Dagpleje/Vuggestue", "de": "Kinderkrippenbetreuung, Kindertagesstätte", "el": "Παιδικός σταθμός", "en-AU": "Childcare", "en-GB": "Nursery/Childcare", "en": "Nursery/Childcare", "eo": "Bebovartejo", "es": "Guardería/Cuidado de niños", "et": "Lastehoid", "eu": "Haurtzendegi/ Ume zaintza", "fa": "مهدکودک/مراقبت از کودکان", "fi": "Päiväkoti", "fr": "Garderie", "ga": "Naíonra", "gl": "Gardaría", "he": "גנון", "hr": "Jaslice", "hu": "Bölcsőde", "is": "Barnagæsla/dagvistun", "it": "Asilo nido", "ja": "保育所", "ko": "보육/육아", "lv": "Bērnistaba / Bērnu aprūpe", "mk": "Детска градинка", "nl": "Kinderdagverblijf", "pl": "Punkt opieki nad dziećmi", "pt-BR": "Berçário ou creche", "pt": "Berçário / Creche", "ro": "Grădiniță", "ru": "Детская комната", "sk": "Detská starostlivosť", "sl": "Jasli / Vrtec", "sr": "Обданиште", "sv": "Barnomsorg", "th": "สถานรับเลี้ยงเด็ก", "tr": "Çocuk Bakımı", "uk": "Дитяча кімната", "vi": "Giữ trẻ", "zh-CN": "托儿所/保育园", "zh-HK": "託兒所/幼兒護理", "zh-TW": "托兒所/托嬰處" } }, "amenity/cinema": { "title": { "C": "Cinema", "am": "ሲኒማ ቤት", "bn": "সিনেমা", "fy": "Bioskoop", "hy": "Կինոթատրոն", "te": "సినిమా హాలు", "bs": "Kino", "dv": "ސިނަމާ", "id": "Bioskop", "kn": "ಸಿನಿಮಾ", "so": "Shaneemo", "zh": "电影院", "af": "Rolprentteater", "ar": "سينما", "ast": "Cine", "bg": "Кино", "br": "Sinema", "ca": "Cinema", "ckb": "سینەما", "cs": "Kino", "cy": "Sinema", "da": "Biograf", "de": "Kino", "el": "Κινηματογράφος", "en-GB": "Cinema", "en": "Cinema", "eo": "Kinejo", "es": "Cine", "et": "Kino", "eu": "Zinema", "fa": "سینما", "fi": "Elokuvateatteri", "fr": "Cinéma", "ga": "Pictiúrlann", "gl": "Cine", "he": "קולנוע", "hr": "Kino", "hu": "Mozi", "is": "Kvikmyndahús", "it": "Cinema", "ja": "映画館", "ko": "영화관", "lt": "Kino teatras", "lv": "Kino", "mi": "Whare Pikitia", "mk": "Кино", "nl": "Bioscoop", "no": "Kino", "pl": "Kino", "pt-BR": "Cinema", "pt": "Cinema", "ro": "Cinema", "ru": "Кинотеатр", "sk": "Kino", "sl": "Kino", "sr": "Биоскоп", "sv": "Biograf", "ta": "சினிமா", "th": "โรงภาพยนตร์", "tr": "Sinema", "uk": "Кінотеатр", "ur": "سنیمہ", "vi": "Rạp phim", "yue": "電影戲院", "zh-CN": "电影院", "zh-HK": "戲院", "zh-TW": "電影院" } }, "amenity/college": { "title": { "C": "College Grounds", "am": "ኮሌጅ", "fy": "Hegeskoalleterrein", "id": "Lapangan Kampus", "af": "Kollegegebied", "ar": "أرض كلية", "ast": "Terrén de colexu universitariu", "br": "Tachenn skol deskadurezh uhel", "ca": "Escola professional", "ckb": "کۆلێژ", "cs": "Prostor vyšší odborné školy/college", "cy": "Tiroedd Coleg", "da": "Område med videregående uddannelse", "de": "Hochschulgelände", "el": "Κολλέγιο", "en-GB": "College Grounds", "en": "College Grounds", "eo": "Postmezgrada lernejo (ISCED 4)", "es": "Terreno de centro educativo superior no universitario", "et": "Kolledži maa-ala", "eu": "Unibertsitate Eremu", "fa": "محیط کالج", "fi": "Korkeakoulualue (college)", "fr": "Enseignement supérieur (non universitaire) - institution ou campus (terrain)", "gl": "Área de educación superior", "he": "מתחם מכללה", "hr": "Fakultetsko zemljište", "hu": "Főiskola területe", "is": "Framhaldskólalóð", "it": "Area di un’accademia", "ja": "短大・高専・専門学校(代表点または敷地)", "ko": "전문대학 부지", "lt": "Kolegijos kiemas", "mk": "Средношколски двор", "nl": "Campus van beroepsschool", "pl": "Teren koledżu / szkoły policealnej", "pt-BR": "Escola técnica", "pt": "Centro de formação tecnológica", "ru": "Территория колледжа", "sk": "Vysoká škola", "sl": "Šolsko središče", "sr": "Колеџ кампус", "sv": "Collegeområde", "th": "พื้นที่ที่เป็นที่ตั้งของมหาวิทยาลัย", "tr": "Üniversite Kampüsü", "uk": "Територія коледжу", "vi": "Sân trường Cao đẳng", "yue": "學院範圍", "zh-CN": "学院", "zh-HK": "學院範圍", "zh-TW": "學院範圍" } }, "amenity/compressed_air": { "title": { "C": "Compressed Air", "id": "Pompa Ban", "ar": "منفاخ إطارات دراجات", "ast": "Aire comprimíu", "br": "Aer wasket", "ca": "Aire comprimit", "cs": "Stlačený vzduch", "da": "Luftpumpe", "de": "Druckluft", "el": "Πεπιεσμένος Αέρας", "en-GB": "Compressed Air", "en": "Compressed Air", "eo": "Gaskunpremilo", "es": "Aire comprimido", "et": "Suruõhk", "eu": "Aire konpromitua", "fa": "هوای فشرده", "fi": "Ilmanpainepiste", "fr": "Air comprimé", "gl": "Aire comprimido", "he": "אוויר דחוס", "hr": "Komprimirani zrak", "hu": "Sűrített levegő", "is": "Loftdæla", "it": "Aria Compressa", "ja": "空気入れ", "ko": "압축된 공기", "lt": "Suspaustas oras", "lv": "Saspiests Gaiss", "mk": "Компресор", "nl": "Perslucht", "no": "Trykkluft", "pl": "Kompresor", "pt-BR": "Bomba de ar comprimido", "pt": "Ar comprimido", "ro": "Aer Comprimat", "ru": "Сжатый воздух", "sk": "Vzduchový kompresor", "sl": "Zračni kompresor", "sr": "Компримовани ваздух", "sv": "Tryckluft", "th": "ระบบอัดอากาศ", "tr": "Hava Basma İstasyonu", "uk": "Стиснене повітря", "vi": "Khí Nén", "zh-CN": "压缩空气", "zh-HK": "打氣服務", "zh-TW": "壓縮空氣" } }, "amenity/dog_toilet": { "title": { "C": "Dog Toilet" } }, "amenity/drinking_water": { "title": { "C": "Drinking Water", "si": "බොනවතුර", "bn": "পানীয় জল", "fy": "Drinkwetter", "te": "తాగే నీరు", "bs": "Voda za piće", "hi": "पीने का पानी", "id": "Air Minum", "af": "Drinkwater", "ar": "مياه شرب", "ast": "Agua potable", "bg": "Чешма", "br": "Dour mat da evañ", "ca": "Aigua apta per al consum", "ckb": "ئاوی خواردنەوە", "cs": "Pitná voda", "cy": "Dŵr Yfed", "da": "Drikkevand", "de": "Trinkwasser", "el": "Πόσιμο Νερό", "en-GB": "Drinking Water", "en-NZ": "Drinking Fountain", "en": "Drinking Water", "eo": "Trinkakvejo", "es": "Agua potable", "et": "Joogivesi", "eu": "Ur edangarria", "fa": "آب آشامیدنی", "fi": "Juomavesipiste", "fr": "Eau potable", "gl": "Fonte de auga potábel", "he": "מי שתייה", "hr": "Pitka voda", "hu": "Ivóvíz", "is": "Drykkjarvatn", "it": "Fontanella", "ja": "水飲み場", "ko": "식수대", "lt": "Geriamas vanduo", "lv": "Dzeramūdens", "mk": "Пивка вода", "nl": "Drinkwaterkraantje", "no": "Drikkevann", "pl": "Woda pitna", "pt-BR": "Bebedouro", "pt": "Fonte de água potável", "ro": "Apă de Băut", "ru": "Питьевая вода", "sk": "Pitná voda", "sl": "Pitna voda", "sr": "Пијаћа вода", "sv": "Dricksvatten", "ta": "குடிநீர்", "th": "น้ำดื่ม", "tr": "İçme Suyu", "uk": "Питна вода", "ur": "پینے والا پانی", "vi": "Nước Uống", "yue": "飲水處", "zh-CN": "饮水处", "zh-HK": "飲用水", "zh-TW": "飲水機" } }, "amenity/events_venue": { "title": { "C": "Events Venue", "fy": "Evenemintehal", "af": "Onthaallokaal", "ar": "صالة مناسبات / قصر أفراح", "cs": "Kulturní sál", "cy": "Lleoliad Digwyddiadau", "da": "Selskabslokale", "de": "Veranstaltungszentrum", "el": "Χώρος Διεξαγωγής Εκδηλώσεων", "en-GB": "Events Venue", "en": "Events Venue", "eo": "Domo de ceremonioj", "es": "Lugar de eventos", "et": "Ürituste toimumiskoht", "fa": "تالار", "fi": "Tapahtumahalli", "fr": "Établissement accueillant des événements", "gl": "Lugar de eventos", "he": "מתחם אירועים", "hu": "Rendezvényhelyszín", "it": "Sala eventi", "ja": "イベント施設", "ko": "행사장", "mk": "Одржувалиште на настани", "nl": "Evenementenlocatie", "no": "Arrangementsted", "pl": "Sala bankietowa", "pt-BR": "Local de eventos", "pt": "Espaço para eventos", "sk": "Miesto konania udalostí", "sr": "Свечана сала", "sv": "Evenemangsplats/festlokal", "th": "สถานที่จัดงาน", "tr": "Etkinlikler Meydanı", "uk": "Банкетна зала", "vi": "Trung tâm Sự kiện", "zh-CN": "宴会厅", "zh-HK": "活動場館", "zh-TW": "活動場館" } }, "amenity/fast_food": { "title": { "C": "Fast Food", "am": "ፈጣን ምግብ", "bn": "ফাস্টফুড", "fy": "Flugge hap", "hy": "Արագ սնունդ", "bs": "Fast Food", "dv": "ފާސްޓް ފުޑް", "id": "Makanan Cepat Saji", "ms": "Makanan Segera", "ne": "फास्ट फूड", "so": "Cuntooyinka Fudud", "zh": "快餐", "af": "Kitskos", "ar": "وجبات سريعة", "ast": "Comida rápida", "bg": "Бърза закуска", "br": "Preti fast-food", "ca": "Local de menjar ràpid", "ckb": "خواردنی خێرا", "cs": "Rychlé občerstvení", "cy": "Bwyd Brys", "da": "Fast food", "de": "Schnellimbiss", "el": "Ταχυφαγείο", "en-GB": "Fast Food", "en": "Fast Food", "eo": "Rapidmanĝejo", "es": "Comida rápida", "et": "Kiirtoitlustus", "eu": "Janari azkarra", "fa": "فست فود", "fi": "Pikaruokaravintola", "fr": "Restauration rapide", "gl": "Comida rápida", "he": "מזון מהיר", "hr": "Brza hrana", "hu": "Gyorsétterem", "is": "Skyndibiti", "it": "Fast Food", "ja": "ファストフード全般", "ko": "패스트푸드", "lt": "Greitas maistas", "lv": "Ātrās ēdināšanas iestāde", "mk": "Брза храна", "nl": "Fastfoodrestaurant", "no": "Hurtigmat", "pa-PK": "کھاݨیاں والے", "pl": "Bar / fast food", "pt-BR": "Lanchonete", "pt": "Comida rápida", "ro": "Fast Food", "ru": "Фаст-фуд", "sk": "Rýchle občerstvenie", "sl": "Hitra prehrana", "sr": "Брза храна", "sv": "Snabbmat", "ta": "துரித உணவு", "th": "ฟาสต์ฟู้ด", "tr": "Fast Food", "uk": "Фаст-Фуд", "vi": "Nhà hàng Ăn nhanh", "yue": "快餐店", "zh-CN": "快餐店", "zh-HK": "快餐店", "zh-TW": "速食餐廳" } }, "amenity/funeral_hall": { "title": { "C": "Funeral Service Hall", "br": "Funerariom", "cs": "Síň pohřební služby", "de": "Trauerhalle", "el": "Αίθουσα Κηδειών", "en-GB": "Funeral Service Hall", "en": "Funeral Service Hall", "es": "Sala de servicio funerario", "et": "Tavandihoone", "ja": "葬儀場", "mk": "Сала за погребни свечености", "pl": "Dom przedpogrzebowy", "pt": "Casa mortuária", "sk": "Pohrebná miestnosť", "sv": "Lokal för begravningsceremonier", "uk": "Зал похоронних церемоній", "zh-TW": "殯儀館" } }, "amenity/ice_cream": { "title": { "C": "Ice Cream Shop", "am": "አይስ ክሬም", "fy": "Iiskosaak", "kn": "ಐಸ್ ಕ್ರೀಮ್ ಅಂಗ", "ms": "Kedai Ais Krim", "ar": "محل بيع المثلجات", "ast": "Xeladería", "br": "Stal dienn-skorn", "ca": "Gelateria", "ckb": "فرۆشگای ساردەمەنی", "cs": "Zmrzlina", "cy": "Siop Hufen Iâ", "da": "Ishus", "de": "Eisgeschäft", "el": "Παγωτατζίδικο", "en-GB": "Ice Cream Shop", "en": "Ice Cream Shop", "eo": "Glaciaĵejo", "es": "Heladería", "et": "Jäätisekohvik", "eu": "Izozki denda", "fa": "بستنی فروشی", "fi": "Jäätelön myyntipiste", "fr": "Magasin de crèmes glacées", "gl": "Xeadaría", "he": "חנות גלידה", "hu": "Fagylaltozó", "is": "Ísbúð", "it": "Gelateria", "ja": "アイスクリーム店", "ko": "아이스크림 가게", "lt": "Ledų parduotuvė", "lv": "Saldējuma Veikals", "mi": "Aihikirīmi toa", "mk": "Сладоледџилница", "nl": "IJssalon", "no": "Iskrembutikk", "pl": "Lodziarnia", "pt-BR": "Sorveteria", "pt": "Geladaria", "ro": "Magazin de Înghețată", "ru": "Прилавок с мороженным", "sk": "Obchod so zmrzlinou", "sl": "Sladoledarna", "sr": "Сладоледџиница", "sv": "Glassaffär", "th": "ร้านไอศกรีม", "tr": "Dondurmacı", "uk": "Морозиво", "vi": "Tiệm Kem", "yue": "雪榚舖", "zh-CN": "冰淇淋店", "zh-HK": "雪榚店", "zh-TW": "冰淇淋店" } }, "amenity/kindergarten": { "title": { "C": "Preschool / Kindergarten Grounds", "am": "ሕፃናት መዋያ", "fy": "Beukerskoalleterrein", "id": "Prasekolah / Taman Kanak-Kanak", "af": "Kleuterskoolgebied", "ar": "أرض حضانة / روض", "bg": "Предучилищна / детска градина", "br": "Tachenn skol-vamm", "ca": "Centre preescolar", "cs": "Prostor školky / předškolního zařízení", "cy": "Tiroedd Meithrinfa", "da": "Børnehave/vuggestue-grund", "de": "Kindergarten, Kindergartengelände", "el": "Χώρος νηπιαγωγείου", "en-GB": "Preschool / Nursery Grounds", "en": "Preschool / Kindergarten Grounds", "eo": "Infanvartejo (ISCED 0)", "es": "Terreno de preescolar / jardín de infantes", "et": "Lasteaia maa-ala", "fa": "محوطه پیش‌دبستانی / مهدکودک", "fi": "Esikoulu", "fr": "Crèche, garderie", "gl": "Área escolar infantil", "he": "מתחם גן/גן חובה", "hr": "Zemljište dječjeg vrtića", "hu": "Óvoda / óvodai terület", "it": "Area dell'asilo/scuola d'infanzia", "ja": "幼稚園/保育園(代表点または敷地)", "ko": "유치원 부지", "mi": "Kura Pūhou", "mk": "Двор на детска градинка", "nl": "Gebied van Crèche/Kleuterschool", "no": "Førskole- / Barnehageområde", "pl": "Teren przedszkola/żłobka", "pt-BR": "Escola de educação infantil", "pt": "Infantário / pré-escola", "ru": "Подготовительная школа / Детский сад", "sk": "Materská škôlka", "sr": "Предшколско двориште", "sv": "Förskoleområde", "th": "โรงเรียนอนุบาล", "tr": "Anaokulu Sahası", "uk": "Територія дитячого садочка", "vi": "Sân Nhà trẻ", "zh-CN": "幼儿园场地", "zh-HK": "幼兒園/幼稚園範圍", "zh-TW": "幼兒園範圍" } }, "amenity/letter_box": { "title": { "C": "Letter Box", "ar": "صندوق البريد", "br": "Boest-lizhiri prevez", "ca": "Bústia", "cs": "Domovní poštovní schránka", "cy": "Blwch Llythyrau", "de": "Hausbriefkasten", "el": "Γραμματοκιβώτιο", "en-GB": "Letter Box", "en": "Letter Box", "eo": "Leterkesto (riceva)", "es": "Buzón", "et": "Kirjakast", "fa": "صندوق پستی", "fi": "Asunnon postilaatikko", "fr": "Boîte aux lettres privée", "gl": "Caixa do correo", "he": "תיבת מכתבים", "hu": "Személyes levélszekrény", "it": "Cassetta delle lettere", "ja": "郵便受け", "ko": "우편함", "mk": "Поштенско сандаче", "nl": "Brievenbus", "no": "Postkasse", "pl": "Prywatna skrzynka pocztowa", "pt-BR": "Caixa de correio", "pt": "Caixa de correio", "ru": "Почтовый ящик", "sk": "Súkromná poštová schránka", "sr": "Поштанско сандуче", "sv": "Postlåda", "th": "กล่องจดหมาย", "tr": "Mektup Kutusu", "uk": "Поштова скринька", "vi": "Hòm thư Cá nhân", "zh-CN": "信箱", "zh-HK": "信箱", "zh-TW": "信箱" } }, "amenity/library": { "title": { "C": "Library", "am": "ቤተ-መፃሕፍት", "bn": "পাঠাগার", "fy": "Bibleteek", "te": "గ్రంథాలయం", "bs": "Biblioteka", "dv": "ލައިބްރަރީ", "id": "Perpustakaan", "kn": "ಗ್ರಂಥಾಲಯ", "ms": "Perpustakaan", "so": "Maktabad", "zh": "图书馆", "af": "Biblioteek", "ar": "مكتبة عامة", "ast": "Biblioteca", "bg": "Библиотека", "br": "Levraoueg", "ca": "Biblioteca", "ckb": "پەڕتووکخانە", "cs": "Knihovna", "cy": "Llyfrgell", "da": "Bibliotek", "de": "Bibliothek", "el": "Βιβλιοθήκη", "en-GB": "Library", "en": "Library", "eo": "Biblioteko", "es": "Biblioteca", "et": "Raamatukogu", "eu": "Liburutegi", "fa": "کتابخانه", "fi": "Kirjasto", "fr": "Bibliothèque", "ga": "Leabharlann", "gl": "Biblioteca", "he": "ספריה", "hr": "Knjižnica", "hu": "Könyvtár", "is": "Bókasafn", "it": "Biblioteca", "ja": "図書館", "ko": "도서관", "lt": "Biblioteka", "lv": "Bibliotēka", "mi": "Whare pukapuka", "mk": "Библиотека", "nl": "Bibliotheek", "no": "Bibliotek", "pa-PK": "لائیبریری", "pl": "Biblioteka", "pt-BR": "Biblioteca", "pt": "Biblioteca", "ro": "Librărie", "ru": "Библиотека", "sk": "Knižnica", "sl": "Knjižnica", "sr": "Библиотека", "sv": "Bibliotek", "ta": "புத்தகச்சாலை", "th": "ห้องสมุด", "tr": "Kütüphane", "uk": "Бібліотека", "ur": "کتاب گھر", "vi": "Thư viện", "yue": "圖書館", "zh-CN": "图书馆", "zh-HK": "圖書館", "zh-TW": "圖書館" } }, "amenity/library_dropoff": { "title": { "C": "Book Return Drop Box" } }, "amenity/loading_dock": { "title": { "C": "Loading Dock", "fy": "Laaddok", "af": "Laaistasie", "ar": "رصيف التحميل", "ca": "Moll de càrrega", "cs": "Nakládací rampa", "cy": "Doc Llwytho", "de": "Laderampe", "el": "Αποβάθρα Φόρτωσης", "en-GB": "Loading Dock", "en": "Loading Dock", "eo": "Ŝarĝ-kajo", "es": "Muelle de carga", "et": "Laoestakaad", "fa": "اسکله بارگیری", "fi": "Lastauslaituri", "fr": "Quai de chargement", "gl": "Peirao de carga", "he": "מתחם העמסה", "hu": "Teherautórakodó-rámpa", "it": "Zona di carico", "ja": "出入口(貨物)", "mk": "Товарна рампа", "nl": "Laadkaai", "no": "Lastebrygge", "pl": "Dok załadunkowy", "pt-BR": "Doca de carregamento", "pt": "Cais de carga", "ru": "Погрузочная платформа", "sk": "Nakladacia rampa", "sr": "Рампа за утовар и истовар", "sv": "Lastkaj", "th": "ท่าเรือขนถ่ายสินค้า", "tr": "Yükleme Rıhtımı", "uk": "Вантажна рампа", "vi": "Cửa Bốc dỡ Hàng hóa", "zh-CN": "装卸码头", "zh-TW": "裝卸碼頭" } }, "amenity/luggage_locker": { "title": { "C": "Luggage Locker" } }, "amenity/nightclub": { "title": { "C": "Nightclub", "am": "የምሽት ክለብ", "fy": "Nachtklup", "id": "Kelab Malam", "ms": "Kelab Malam", "af": "Nagklub", "ar": "ملهى ليلي", "ast": "Discoteca", "br": "Toull-noz", "ca": "Club nocturn", "ckb": "یانەی شەوانە", "cs": "Diskotéka", "cy": "Clwb Nos", "da": "Natklub", "de": "Diskothek", "el": "Νυχτερινό Κέντρο", "en-GB": "Nightclub", "en": "Nightclub", "eo": "Noktoklubejo", "es": "Discoteca", "et": "Ööklubi", "eu": "Klub", "fa": "کلوپ شبانه", "fi": "Yökerho", "fr": "Boîte de nuit", "gl": "Clube nocturno ou discoteca", "he": "מועדון לילה", "hr": "Noćni klub", "hu": "Diszkó", "is": "Næturklúbbur", "it": "Discoteca", "ja": "ナイトクラブ", "ko": "나이트클럽", "lt": "Naktinis klubas", "lv": "Naktsklubs", "mk": "Ноќен клуб", "nl": "Nachtclub", "no": "Nattklubb", "pl": "Klub nocny / dyskoteka", "pt-BR": "Boate", "pt": "Discoteca", "ro": "Club de Noapte", "ru": "Ночной клуб", "sk": "Nočný klub", "sl": "Nočni klub", "sr": "Ноћни клуб", "sv": "Nattklubb", "ta": "இரவு விடுதி", "th": "สถานที่เที่ยวกลางคืน", "tr": "Gece Kulübü", "uk": "Нічний клуб", "vi": "Câu lạc bộ Giải trí", "yue": "夜總會", "zh-CN": "夜总会", "zh-HK": "夜總會", "zh-TW": "夜總會" } }, "amenity/parking_space": { "title": { "C": "Parking Space", "fy": "Parkearhaven", "ms": "Ruang Letak Kenderaan", "af": "Parkeerplek", "ar": "موقف سيارات", "ast": "Espaciu d'aparcamientu", "bg": "Паркомясто", "br": "Plas parkañ", "ca": "Espai d'aparcament", "cs": "Parkovací místo", "cy": "Safle Parcio", "da": "Parkeringsbås", "de": "Einzelner Stellplatz", "el": "Χώρος Στάθμευσης", "en-GB": "Parking Space", "en": "Parking Space", "eo": "Parkumeja loko (detala)", "es": "Plaza de estacionamiento", "et": "Parkimiskoht", "eu": "Aparkatzeko lekua", "fa": "جای پارک منفرد", "fi": "Pysäköintiruutu", "fr": "Place de parking", "gl": "Praza de aparcadoiro", "he": "אזור חניה", "hr": "Parkirališno mjesto", "hu": "Parkolóhely", "is": "Bílastæðarými", "it": "Stallo di parcheggio", "ja": "駐車区画(1台ごとの)", "ko": "주차 공간", "lt": "Stovėjimo vieta", "mk": "Паркинг-место", "nl": "Parkeerplaats binnen parkeergelegenheid", "no": "Parkeringsplass", "pl": "Stanowisko parkingowe", "pt-BR": "Vaga de estacionamento", "pt": "Lugar (1) de estacionamento", "ro": "Loc de Parcare", "ru": "Отдельное парковочное место на парковке", "sk": "Parkovacie miesto", "sl": "Parkirni prostor", "sr": "Паркинг место", "sv": "Parkeringsruta", "th": "Parking Space", "tr": "Park Yeri", "uk": "Місце на стоянці", "vi": "Chỗ Đậu xe", "yue": "泊車位", "zh-CN": "停车位", "zh-HK": "泊車位", "zh-TW": "停車位" } }, "amenity/pharmacy": { "title": { "C": "Pharmacy Counter", "am": "መድሃኒት ቤት", "fy": "Apteekbaalje", "id": "Apotek", "af": "Apteek", "ar": "صيدلية", "bg": "Аптека", "br": "Apotikerezh", "ca": "Farmàcia", "cs": "Lékárna", "da": "Apotek", "de": "Apotheke", "el": "Φαρμακείο", "en-AU": "Pharmacy", "en-GB": "Pharmacy Counter", "en-NZ": "Pharmacy", "en": "Pharmacy Counter", "eo": "Apoteko", "es": "Farmacia", "et": "Apteek", "eu": "Botika", "fa": "داروخانه", "fi": "Apteekki", "fr": "Pharmacie", "gl": "Farmacia", "he": "דלפק בית מרקחת", "hu": "Gyógyszertár", "it": "Farmacia", "ja": "薬局・ドラッグストア(薬剤師が居る店)", "ko": "약국", "mk": "Аптека", "nl": "Apotheek", "no": "Apotekdisk", "pl": "Apteka", "pt-BR": "Farmácia", "pt": "Farmácia", "ro": "Farmacie", "ru": "Аптека", "sk": "Lekáreň", "sl": "Lekarna", "sr": "Апотекарски шалтер", "sv": "Läkemedel", "th": "เคาน์เตอร์เภสัชกร", "tr": "Eczane", "uk": "Аптека", "vi": "Quầy thuốc", "zh-CN": "药房", "zh-HK": "藥房", "zh-TW": "藥局" } }, "amenity/post_box": { "title": { "C": "Mail Drop Box", "fy": "Brievebus", "id": "Kotak Surat", "af": "Posbus", "ar": "صندوق بريد عام", "br": "Boest-lizhiri (kas)", "ca": "Bústia", "cs": "Poštovní schránka", "da": "Postkasse", "de": "Briefkasten", "el": "Γραμματοκιβώτιο Αλληλογραφίας", "en-GB": "Post Box", "en-NZ": "Post Box", "en": "Mail Drop Box", "eo": "Poŝtkesto (senda)", "es": "Buzón de correo", "et": "Kirjakast", "fa": "جعبه انداختن پست", "fi": "Postilaatikko", "fr": "Boîte aux lettres (envoi)", "gl": "Caixa do correo", "he": "תיבת איסוף דואר", "hu": "Postaláda", "it": "Buca delle lettere", "ja": "郵便ポスト", "ko": "우체통", "mk": "Поштенска преграда", "nl": "Brievenbus", "no": "Innleveringspostkasse", "pl": "Skrzynka pocztowa", "pt-BR": "Caixa de correio", "pt": "Marco de correio", "ru": "Почтовый ящик", "sk": "Verejná poštová schránka", "sr": "Поштанско сандуче", "sv": "Brevlåda", "th": "ตู้ไปรษณีย์", "tr": "Posta Bırakma Kutusu", "uk": "Поштова скриня", "vi": "Thùng thư", "zh-CN": "邮件投递箱", "zh-TW": "郵筒" } }, "amenity/pub": { "title": { "C": "Pub", "am": "ፐብ", "bn": "সরাইখানা", "te": "పబ్", "bs": "Pub", "id": "Pub", "ms": "Pub", "zh": "酒馆", "af": "Kroeg", "ar": "حانة", "ast": "Pub", "bg": "Пъб", "br": "Pub", "ca": "Bar", "cs": "Hospoda", "cy": "Tafarn", "da": "Værtshus", "de": "Kneipe", "el": "Παμπ", "en-GB": "Pub", "en": "Pub", "eo": "Taverno", "es": "Pub (latam) / Bar (es)", "et": "Kõrts", "eu": "Pub", "fa": "میخانه", "fi": "Pubi", "fr": "Pub", "ga": "Teach Tábhairne", "gl": "Bar", "he": "פאב", "hr": "Pivnica", "hu": "Kocsma", "is": "Krá", "it": "Pub", "ja": "居酒屋", "ko": "주점", "lt": "Aludė", "lv": "Krogs", "mk": "Паб", "nl": "Café", "no": "Pub", "pl": "Pub", "pt-BR": "Bar / Boteco", "pt": "Taberna", "ro": "Pub", "ru": "Паб", "sk": "Krčma", "sl": "Pivnica", "sr": "Паб", "sv": "Pub", "ta": "பப்", "th": "ผับ", "tr": "Bar", "uk": "Паб", "vi": "Quán rượu Pub", "yue": "酒館", "zh-CN": "英式酒吧", "zh-HK": "酒館", "zh-TW": "Pub" } }, "amenity/public_bookcase": { "title": { "C": "Public Bookcase", "af": "Ruilboekrak", "ar": "خزانة كتب عامة", "ast": "Biblioteca llibre", "ca": "Prestageria pública", "cs": "Veřejná knihovnička", "cy": "Blwch Llyfrau Cyhoeddus", "da": "Offentlig bogkasse", "de": "Öffentlicher Bücherschrank", "el": "Δημόσια Ανταλλακτική Βιβλιοθήκη", "en-GB": "Public Bookcase", "en": "Public Bookcase", "eo": "Publika libroŝranko", "es": "Biblioteca libre", "et": "Avalik raamaturiiul", "eu": "Apalategi publikoa", "fa": "قفسه کتاب عمومی", "fi": "Julkinen kirjahylly", "fr": "Microbibliothèque", "gl": "Estante pública", "he": "ספריה", "hr": "Javna knjižnica", "hu": "Közösségi könyvespolc", "is": "Almenningsbókakassi", "it": "Cassetta pubblica dei libri", "ja": "公共の本棚", "ko": "공공 책장", "lv": "Publisks Grāmatplaukts", "mk": "Јавен шкаф за книги", "nl": "Openbare boekenkast", "no": "Bokkiosk", "pl": "Półka bookcrossingowa", "pt-BR": "Biblioteca ao ar livre", "pt": "Biblioteca de rua", "ru": "Общественный книжный шкаф", "sk": "Verejná knihovnička", "sl": "Ulična knjižnica", "sr": "Јавна библиотека", "sv": "Offentlig bokhylla", "th": "ตู้หนังสือสาธารณะ", "tr": "Sokak Kütüphanesi", "uk": "Книжкова шафа", "vi": "Tủ sách Công cộng", "zh-CN": "公共书架", "zh-HK": "公眾書架", "zh-TW": "漂書站" } }, "amenity/research_institute": { "title": { "C": "Research Institute Grounds", "ar": "أراضي معهد بحوث", "br": "Arnodva enklask", "ca": "Terrenys d'un institut de recerca", "cs": "Prostor výzkumného ústavu", "da": "Forskningscenter", "de": "Forschungseinrichtung", "el": "Κέντρο Ερευνών", "en-GB": "Research Institute Grounds", "en": "Research Institute Grounds", "eo": "Esplorada instituto", "es": "Terreno del Instituto de Investigación", "et": "Teadusinstituut", "fa": "محدوده مؤسسه تحقیقاتی / پژوهشکده زمین‌شناسی", "fi": "Tutkimuslaitos", "fr": "Laboratoire de recherche", "gl": "Área de Instituto de Investigación", "he": "מתחם מכון מחקר", "hu": "Kutatóintézet területe", "it": "Istituto di ricerca", "ja": "研究所", "ko": "연구 기관 부지", "mk": "Истражувачки институт", "nl": "Gebied van een onderzoekscentrum", "no": "Grunn for forskningsinstitutt", "pl": "Teren instytutu badawczego", "pt-BR": "Área do instituto de pesquisa", "pt": "Instituto de pesquisa", "ru": "Территория научно-исследовательского института", "sk": "Výskumný ústav", "sr": "Подручије истаживачког института", "sv": "Forskningsinstitutsområde", "th": "พื้นที่ของสถาบันวิจัย", "tr": "Araştırma Enstitüsü Alanı", "uk": "Територія науково-дослідного інституту", "vi": "Sân Viện nghiên cứu", "zh-CN": "研究所场地", "zh-TW": "研究機構場地" } }, "amenity/restaurant": { "title": { "C": "Restaurant", "am": "ምግብ ቤት", "bn": "রেস্তোরাঁ", "te": "రెస్టారెంట్", "bs": "Restoran", "dv": "ރެސްޓޯރަންޓް", "id": "Restoran", "kn": "ಉಪಾಹಾರ ಗೃಹ", "ms": "Restoran", "ne": "रेस्टुरेन्ट", "so": "Maqaayad", "zh": "餐馆", "af": "Restaurant", "ar": "مطعم", "ast": "Restaurante", "bg": "Ресторант", "br": "Preti", "ca": "Restaurant", "ckb": "خواردنگە", "cs": "Restaurace", "cy": "Bwyty", "da": "Restaurant", "de": "Restaurant", "el": "Εστιατόριο / Ταβέρνα", "en-GB": "Restaurant", "en": "Restaurant", "eo": "Restoracio", "es": "Restaurante", "et": "Restoran", "eu": "Jatetxe", "fa": "رستوران", "fi": "Ravintola", "fr": "Restaurant", "ga": "Bialann", "gl": "Restaurante", "he": "מסעדה", "hr": "Restoran", "hu": "Étterem", "is": "Veitingahús", "it": "Ristorante", "ja": "レストラン全般", "ko": "음식점", "lt": "Restoranas", "lv": "Restorāns", "mk": "Ресторан", "nl": "Restaurant", "no": "Restaurant", "pl": "Restauracja", "pt-BR": "Restaurante", "pt": "Restaurante", "ro": "Restaurant", "ru": "Ресторан", "sk": "Reštaurácia", "sl": "Restavracija", "sr": "Ресторан", "sv": "Restaurang", "ta": "உணவகம்", "th": "ร้านอาหาร", "tr": "Lokanta", "uk": "Ресторан", "vi": "Nhà hàng", "yue": "餐廳", "zh-CN": "餐馆", "zh-HK": "餐廳", "zh-TW": "餐廳" } }, "amenity/school": { "title": { "C": "School Grounds", "am": "ትምህርት ቤት", "dv": "ސްކޫލު ބިން", "id": "Lingkungan Sekolah", "ms": "Kawasan Sekolah", "so": "Goobaha Dugsiyada", "af": "Skoolgebied", "ar": "أرض مدرسة", "ast": "Antoxana d'escuela", "bg": "Училище", "br": "Tachenn skol", "ca": "Escola - Institut", "cs": "Prostor školy", "cy": "Tiroedd Ysgol", "da": "Skolegrund", "de": "Schule, Schulgelände", "el": "Σχολείο", "en-GB": "School Grounds", "en": "School Grounds", "eo": "Lernejo (ISCED 1-3)", "es": "Terreno de escuela / colegio", "et": "Kool", "eu": "Eskola eremu", "fa": "محیط مدرسه", "fi": "Koulualue (peruskoulu/lukio/ammattikoulu)", "fr": "École élémentaire ou secondaire (terrain)", "ga": "Fearann Scoile", "gl": "Área escolar", "he": "מגרש בית ספר", "hr": "Škola i teren oko škole", "hu": "Iskola területe", "is": "Skólalóð", "it": "Area scolastica", "ja": "学校(代表点または敷地)", "ko": "학교 부지", "lt": "Mokyklos kiemas", "lv": "Skolas Zeme", "mi": "Kura", "mk": "Училиштен двор", "nl": "Schoolgebied", "no": "Skoleområde", "pl": "Teren szkoły podstawowej / średniej", "pt-BR": "Escola", "pt": "Escola", "ro": "Școală", "ru": "Школа", "sk": "Školský areál", "sl": "Izobraževalno središče", "sr": "Школа", "sv": "Skolområde", "ta": "பள்ளி மைதானம்", "th": "พื้นที่โรงเรียน", "tr": "Okul", "uk": "Територія школи", "vi": "Sân Trường", "zh-CN": "学校", "zh-HK": "學校範圍", "zh-TW": "中小學範圍" } }, "amenity/social_facility": { "title": { "C": "Social Facility", "id": "Fasilitas Sosial", "af": "Sosiale fasiliteit", "ar": "مرفق اجتماعي", "ast": "Serviciu social", "br": "Diazezadur servijoù sokial", "ca": "Centre social", "cs": "Zařízení sociálních služeb", "da": "Sociale faciliteter", "de": "Sozialeinrichtung", "el": "Μονάδα Κοινωνικών Υπηρεσιών", "en-GB": "Social Facility", "en": "Social Facility", "eo": "Socia servejo", "es": "Instalación social", "et": "Sotsiaalkeskus", "eu": "Gizarte-instalazio", "fa": "خدمات اجتماعی", "fi": "Sosiaalipalvelu", "fr": "Établissement de services sociaux", "gl": "Axuda Social", "he": "מתקן שירותי רווחה", "hr": "Socijalna ustanova", "hu": "Szociális létesítmény", "is": "Félagsþjónusta", "it": "Centro socio-assistenziale", "ja": "社会福祉施設", "ko": "사회 복지 시설", "mk": "Социјална служба", "nl": "Sociale Faciliteit", "pl": "Placówka pomocy społecznej", "pt-BR": "Unidade de assistência social", "pt": "Serviços sociais", "ro": "Facilitate Socială", "ru": "Социальное учреждение", "sk": "Sociálne zariadenie", "sl": "Socialnovarstvena ustanova", "sr": "Социјална установа", "sv": "Social inrättning", "th": "สิ่งอำนวยความสะดวกทางสังคม", "tr": "Okul Tesisleri", "uk": "Соціальний центр", "vi": "Dịch vụ Xã hội", "zh-CN": "社会服务设施", "zh-HK": "社會服務設施", "zh-TW": "社福機構" } }, "amenity/toilets": { "title": { "C": "Restroom", "id": "Toilet", "af": "Badkamer", "ar": "غرفة استراحة", "br": "Privezioù", "ca": "lavabo", "cs": "Toaleta", "cy": "Toiledau", "da": "Toilet", "de": "Toilette", "el": "Τουαλέτες", "en-AU": "Toilets", "en-CA": "Washroom", "en-GB": "Toilets", "en-NZ": "Toilets", "en": "Restroom", "es": "Baño", "et": "Tualettruum", "fa": "توالت عمومی", "fi": "Vessa", "fr": "Toilettes", "ga": "Leithris", "he": "שירותים", "hu": "Mosdó, vécé", "it": "Servizi igienici", "ja": "トイレ", "ko": "화장실", "mk": "Тоалет", "nl": "Toilet", "pl": "Toaleta (nieokreślona)", "pt-BR": "Banheiros", "pt": "Casas de banho", "ru": "Туалет", "sk": "Verejné toalety", "sr": "Тоалет", "sv": "Toaletter", "th": "ห้องน้ำ", "tr": "Restroom", "uk": "Туалет", "vi": "Phòng Vệ sinh", "zh-CN": "厕所", "zh-TW": "廁所" } }, "leisure/adult_gaming_centre": { "title": { "C": "Adult Gaming Center", "id": "Pusat permainan dewasa", "ar": "Adult Gaming Center", "ast": "Centru de xuegos p'adultos", "ca": "Centre d'oci adult", "cs": "Herna (hrací automaty)", "da": "Voksen spillecenter", "de": "Spielothek für Erwachsene", "el": "Κέντρο Παιχνιδιών Ενηλίκων", "en-AU": "Adult Gaming Centre", "en-GB": "Adult Gaming Centre", "en-NZ": "Adult Gaming Centre", "en": "Adult Gaming Center", "eo": "Hazardludejo (enĵet-maŝinoj)", "es": "Centro de juegos para adultos", "et": "Mänguautomaadisaal", "fa": "مرکز بازی بزرگسالان", "fi": "Uhkapelipelaamo", "fr": "Jeux pour adultes", "gl": "Centro recreativo para adultos", "he": "מרכז בידור למבוגרים", "hu": "Játékterem (csak felnőtteknek)", "is": "Fjárhættuspilasalur", "it": "Sala da gioco", "ja": "遊技場(成人向け)", "ko": "성인용 게임방", "lt": "Suaugusiųjų lošimų vieta", "mk": "Игротека за возрасни", "nl": "Speelzaal (met kansspelmachines)", "no": "Spillekasino", "pl": "Salon gier hazardowych", "pt-BR": "Centro de jogos para adultos", "pt": "Centro de jogos para adultos", "ru": "Игровые автоматы (азартные, на деньги)", "sk": "Herňa s výhernými a zábavnými automatmi", "sl": "Igralnica za odrasle", "sv": "Center för vuxenspel", "th": "ศูนย์เกมสำหรับผู้ใหญ่", "tr": "Yetişkin Oyun Merkezi", "uk": "Гральні автомати", "vi": "Trung tâm Đánh bạc", "zh-CN": "成人街机厅", "zh-HK": "成人遊戲中心", "zh-TW": "成人遊戲中心" } }, "leisure/bleachers": { "title": { "C": "Bleachers", "ar": "Bleachers", "br": "Derezioù", "ca": "Graderia", "cs": "Nekryté tribuny", "cy": "Meinciau", "da": "Lægtepladser", "de": "Nicht überdachte Tribüne", "el": "Εξέδρα Χωρίς Σκεπή", "en-CA": "Bleachers", "en-GB": "Stands", "en": "Bleachers", "eo": "Spektejo", "es": "Gradas", "et": "Avaistmed", "fa": "نیمکت مسابقات ورزشی", "fi": "Katsomo", "fr": "Gradins", "gl": "Bancadas", "he": "טריבונות", "hr": "Tribine", "hu": "Szabadtéri lelátó", "it": "Gradinate", "ja": "観覧席", "ko": "관중석", "mk": "Гледалиште на отворено", "nl": "Niet-overdekte tribune", "no": "Tribune", "pl": "Trybuna (odkryta)", "pt-BR": "Arquibancada simples", "pt": "Bancadas", "ru": "Трибуны", "sk": "Tribúny", "sv": "Läktare", "th": "อัฒจันทร์กลางแจ้ง", "tr": "Açık Tribün", "uk": "Трибуни", "vi": "Khán đài Ngoài trời", "zh-CN": "看台", "zh-TW": "看台" } }, "leisure/common": { "title": { "C": "Common", "bs": "Uobičajeno", "id": "Perintah", "ar": "أرض مشترك", "ast": "Terrén comunitariu", "br": "Tachenn foran", "ca": "Àrea comuna", "cs": "Volně přístupný prostor", "cy": "Comin", "da": "Fælled", "de": "Öffentliche Fläche, Allmende", "el": "Κοινό", "en-GB": "Common", "en": "Common", "eo": "Publika ripoza tereno", "es": "Tierras comunes -Reino Unido-", "fa": "زمین عمومی (معمولا در انگلستان)", "fi": "Yleinen", "fr": "Terrain communal", "gl": "Terreo comunal", "he": "אזור משותף", "hr": "Zelena površina po kojoj se može hodati - u UK", "hu": "Szabadidős tevékenységre használható közös terület (Nagy-Britannia)", "is": "Almenningur", "it": "Luogo pubblico", "ja": "共有地", "ko": "일반", "lt": "Bendros ganyklos", "mk": "Јавно зеленило", "nl": "Gemene weide", "no": "Fellesområde", "pl": "Serwituty", "pt-BR": "Área comunitária", "pt": "Terrenos comunitários", "ro": "Comun", "ru": "Общественные места для прогулок, без специфики", "sk": "Verejné priestranstvo", "sl": "Javni prostor", "sr": "Јавно добро", "sv": "Allmänning", "ta": "பொதுவான", "th": "ทั่วไป", "tr": "Piknik Alanı", "uk": "Громада", "vi": "Đất công", "yue": "公地", "zh-CN": "公共用地", "zh-HK": "公共用地", "zh-TW": "公共用地" } }, "leisure/firepit": { "title": { "C": "Fire Pit", "af": "Vuurgat", "ar": "حفرة لإشعال نار", "cs": "Ohniště", "cy": "Pit Tân", "da": "Bålsted", "de": "Feuerstelle", "el": "Εστία Φωτιάς", "en-GB": "Fire Pit", "en": "Fire Pit", "eo": "Lignofajrejo", "es": "Lugar para fogatas", "et": "Lõkkease", "fa": "گودال آتش", "fi": "Tulentekopaikka", "fr": "Emplacement pour feu", "gl": "Fogueira", "he": "שוחה למדורה", "hu": "Tűzrakóhely", "it": "Focolare", "ja": "焚き火場", "ko": "불구덩이", "mk": "Огниште", "nl": "Vuurplaats", "no": "Bålplass", "pl": "Miejsce na ognisko", "pt-BR": "Fogueira", "pt": "Espaço para fogueira", "ru": "Кострище", "sk": "Ohnisko", "sr": "Камин", "sv": "Eldstad", "th": "กองไฟ", "tr": "Ateş Çukuru", "uk": "Вогнище", "zh-CN": "火坑", "zh-TW": "篝火" } }, "leisure/fishing": { "title": { "C": "Fishing Spot", "ar": "منطقة صيد سمك", "br": "Lec'h pesketa", "ca": "Punt de pesca", "cs": "Místo pro rybolov", "cy": "Safle Pysgota", "da": "Fiskeplads", "de": "Angelplatz", "el": "Χώρος Αλιείας", "en-GB": "Fishing Spot", "en": "Fishing Spot", "eo": "Loko por fiŝhokado", "es": "Lugar de pesca", "et": "Kalapüügikoht", "fa": "محل ماهیگیری", "fi": "Kalastuspaikka", "fr": "Lieu de pêche", "gl": "Couto de pesca", "he": "נקודת דיג", "hr": "Mjesto za pecanje", "hu": "Horgászhely", "is": "Veiðistaður", "it": "Punto per la pesca", "ja": "釣りスポット", "ko": "낚시터", "mk": "Место за риболов", "nl": "Visstek", "no": "Fiskeplass", "pl": "Łowisko", "pt-BR": "Ponto de pesca", "pt": "Local de pesca", "ru": "Место для рыбалки", "sk": "Miesto pre rybolov", "sr": "Место за риболов", "sv": "Fiskeplats", "th": "จุดตกปลา", "tr": "Balık Tutma Yeri", "uk": "Місце для риболовлі", "vi": "Chỗ Câu cá", "zh-CN": "钓鱼地点", "zh-TW": "釣魚點" } }, "leisure/outdoor_seating": { "title": { "C": "Outdoor Seating Area", "ar": "منطقة جلوس خارجية", "cs": "Venkovní posezení", "da": "Udendørs siddepladser", "de": "Außengastronomie", "el": "Υπαίθριο Καθιστικό", "en-GB": "Outdoor Seating Area", "en": "Outdoor Seating Area", "eo": "Seĝoj eksterdome", "es": "Área de asientos al exterior", "et": "Väliistekohade ala", "fa": "محل استقرار در فضای باز", "fi": "Ulkoterassi", "fr": "Aire des places en terrasse", "gl": "Área de asentos ó exterior", "he": "אזור ישיבה בחוץ", "hr": "Sjedenje vani", "hu": "Kiülős helyek", "is": "Svæði fyrir sæti utandyra", "it": "Posti a sedere all’esterno", "ja": "屋外食事席エリア", "ko": "야외 좌석 구역", "mk": "Маси на отворено", "nl": "Terras", "no": "Uteservering", "pl": "Ogródek gastronomiczny", "pt-BR": "Área de estar ao ar livre", "pt": "Esplanada", "ru": "Столики на улице (площадка)", "sk": "Vonkajšie sedenie", "sr": "Простор за седење на отвореном", "sv": "Uteservering", "th": "บริเวณที่นั่งกลางแจ้ง", "tr": "Açık Oturma Alanı", "uk": "Місця на свіжому повітрі", "vi": "Khu Ăn uống Ngoài trời", "zh-CN": "室外座位", "zh-TW": "戶外座位區" } }, "leisure/picnic_table": { "title": { "C": "Picnic Table", "id": "Meja Piknik", "ar": "طاولة نزهة", "ast": "Mesa de merenderu", "bg": "Пикник маса", "br": "Taol biknik", "ca": "Taula de picnic", "cs": "Stůl pro piknik", "da": "Bord- og bænkesæt", "de": "Picknicktisch", "el": "Τραπέζι Πικ Νικ", "en-GB": "Picnic Table", "en": "Picnic Table", "eo": "Piknika tablo", "es": "Mesa de picnic", "et": "Piknikulaud", "fa": "میز پیکنیک", "fi": "Piknikpöytä", "fr": "Table de pique-nique", "gl": "Mesa de pícnic", "he": "שולחן פיקניק", "hr": "Stol za piknik", "hu": "Piknikasztal", "is": "Nestisborð", "it": "Tavolo da picnic", "ja": "ピクニックテーブル", "ko": "피크닉 테이블", "lt": "Pikniko stalas", "lv": "Piknika galds", "mk": "Излетничка маса", "nl": "Picknicktafel", "no": "Piknikbord", "pl": "Stół piknikowy", "pt-BR": "Mesa de piquenique", "pt": "Mesa de piquenique", "ro": "Masă de Picnic", "ru": "Стол для пикника", "sk": "Piknikový stôl", "sl": "Piknik miza", "sr": "Сто за излет", "sv": "Picknickbord", "th": "โต๊ะปิคนิค", "tr": "Piknik Masası", "uk": "Стіл для пікніка", "vi": "Bàn ăn Ngoài trời", "zh-CN": "野餐桌", "zh-HK": "野餐桌", "zh-TW": "野餐桌" } }, "leisure/playground": { "title": { "C": "Playground", "bn": "খেলার মাঠ", "te": "ఆటమైదానం", "bs": "Igralište", "id": "Lapangan Bermain", "zh": "游乐场", "af": "Speelgrond", "ar": "ساحة ألعاب للأطفال", "ast": "Xuegos infantiles", "bg": "Детска площадка", "br": "Porzh-c'hoari", "ca": "Zona de jocs infantils", "cs": "Dětské hřiště", "cy": "Ardal Chwarae", "da": "Legeplads", "de": "Spielplatz", "el": "Παιδική Χαρά", "en-GB": "Playground", "en": "Playground", "eo": "Infana ludejo", "es": "Patio de juegos", "et": "Mänguväljak", "eu": "Jolastoki", "fa": "زمین بازی", "fi": "Leikkipuisto", "fr": "Jeux pour enfants", "ga": "Áit Súgartha", "gl": "Parque infantil", "he": "גן שעשועים", "hr": "Igralište", "hu": "Játszótér", "is": "Leikvöllur", "it": "Parco giochi", "ja": "児童公園", "ko": "놀이터", "lt": "Žaidimų aikštelė", "lv": "Spēļlaukums", "mk": "Игралиште", "nl": "Speeltuin", "no": "Lekeplass", "pl": "Plac zabaw", "pt-BR": "Parquinho", "pt": "Parque infantil", "ro": "Loc de Joacă", "ru": "Детская площадка", "sk": "Detské ihrisko", "sl": "Otroško igrišče", "sr": "Игралиште", "sv": "Lekplats", "ta": "விளையாட்டுத் திடல்", "th": "สนามเด็กเล่น", "tr": "Çocuk Parkı", "uk": "Ігровий майданчик", "vi": "Sân chơi", "yue": "遊樂場", "zh-CN": "儿童游乐场", "zh-HK": "遊樂場", "zh-TW": "遊樂場" } }, "leisure/slipway": { "title": { "C": "Slipway", "bs": "Navoz", "id": "Slipway", "zh": "船架滑道", "af": "Inglipbaan", "ar": "مزلقة سفن", "ast": "Rampla de botadura", "bg": "Хелинг", "br": "Kal morañ", "ca": "Pendent per a embarcacions", "cs": "Vodní skluz", "da": "Bådrampe", "de": "Gleitbahn", "el": "Γλίστρα", "en-GB": "Slipway", "en-NZ": "Boat Ramp", "en": "Slipway", "eo": "Ŝipglitejo", "es": "Rampa para botes", "et": "Slipp", "fa": "سرسره آب اندازی قایق", "fi": "Veneramppi", "fr": "Cale de mise à l'eau", "ga": "Fánán", "gl": "Rampla para embarcacións", "he": "ממשה", "hr": "Navoz za brodove", "hu": "Sólya", "is": "Dráttarbraut", "it": "Scivolo per barche", "ja": "進水路", "ko": "선가대", "mk": "Испуст за пловила", "nl": "Botenhelling", "no": "Båtslipp", "pl": "Pochylnia (do wodowania)", "pt-BR": "Rampa náutica", "pt": "Rampa para barcos", "ru": "Стапель", "sk": "Lodný sklz", "sl": "Rampa", "sr": "Навоз", "sv": "Stapelbädd", "th": "ลานสำหรับกว้านเรือ", "tr": "Gemi Kızağı", "uk": "Стапель", "vi": "Đường Hạ thủy", "yue": "船排", "zh-CN": "船台", "zh-HK": "船台", "zh-TW": "船架滑道" } }, "highway/service": { "title": { "C": "Slipway (Drivable)", "bn": "সার্ভিস রোড", "bs": "Servisna cesta", "dv": "ޚިދުމަތްދޭ މަގުތައް", "id": "Jalan Layanan", "ms": "Jalan Perkhidmatan", "so": "Jidka Shaqaalaha", "zh": "辅助道路", "af": "Diensweg", "ar": "طريق مؤدي لمكان خدمة", "ast": "Vía de serviciu", "bg": "Сервизна улица", "br": "Hent moned", "ca": "Via de servei", "ckb": "شەقامی ڕاژەگوزاری", "cs": "Účelová komunikace, příjezd", "cy": "Ffordd Wasanaeth", "da": "Adgangsvej", "de": "Zufahrtsweg", "el": "Δρόμος Εξυπηρέτησης", "en-GB": "Service Road", "en": "Service Road", "eo": "Vojo alira", "es": "Vía de servicio", "et": "Juurdepääsutee", "fa": "جادهٔ خدماتی", "fi": "Huoltotie", "fr": "Voie de service", "gl": "Estrada de servizo", "he": "כביש שירות", "hr": "Pristupna cesta", "hu": "Szervizút", "is": "Þjónustugata", "it": "Strada di servizio", "ja": "敷地内道路(全般)", "ko": "서비스 도로", "lt": "Aptarnaujantis kelias", "lv": "Apkalpošanas ceļš", "mk": "Опслужен пат", "nl": "Toegangsweg", "no": "Stikkvei", "pa-PK": "سیوا سڑک", "pl": "Droga wewnętrzna", "pt-BR": "Via de serviço", "pt": "Estrada de serviço", "ro": "Stradă de Serviciu", "ru": "Служебная дорога", "sk": "Servisná cesta", "sl": "Servisna cesta", "sr": "Сервисни пут", "sv": "Serviceväg", "th": "ถนนบริการ", "tr": "Servis Yolu", "uk": "Службовий проїзд", "vi": "Ngách", "yue": "支道", "zh-CN": "服务道路", "zh-HK": "輔助道路", "zh-TW": "服務道路" } }, "leisure/water_park": { "title": { "C": "Water Park", "ar": "ملاهي مائية", "ast": "Parque acuáticu", "br": "Park dour", "ca": "Parc Aquàtic", "cs": "Akvapark", "cy": "Parc Dŵr", "da": "Vandland", "de": "Erlebnisbad", "el": "Νεροτσουλήθρες", "en-GB": "Water Park", "en": "Water Park", "eo": "Akvoparko", "es": "Parque acuático", "et": "Veepark", "eu": "Ur-parkea", "fa": "پارک آبی", "fi": "Vesipuisto", "fr": "Parc à thème aquatique", "gl": "Parque acuático", "he": "פארק מים", "hr": "Vodeni park", "hu": "Strand (épített)", "is": "Vatnagarður", "it": "Parco acquatico", "ja": "ウォーターパーク", "ko": "워터파크", "lt": "Vandens parkas", "lv": "Akvaparks", "mk": "Воден парк", "nl": "Waterpretpark", "no": "Utendørs badeland", "pl": "Akwapark", "pt-BR": "Parque aquático", "pt": "Parque aquático", "ro": "Parc Acvatic", "ru": "Аквапарк", "sk": "Vodný park", "sl": "Vodni park", "sr": "Водени парк", "sv": "Äventyrsbad / Vattenpark", "ta": "தண்ணீர் பூங்கா", "th": "สวนน้ำ", "tr": "Su Parkı", "uk": "Аквапарк", "vi": "Công viên Nước", "zh-CN": "水上乐园", "zh-HK": "水上樂園", "zh-TW": "水上樂園" } }, "leisure/bandstand": { "title": { "C": "Bandstand", "ar": "Bandstand", "cs": "Kryté pódium", "da": "Orkesterpavillon", "de": "Musikpavillon", "el": "Εξέδρα Συναυλιών", "en-GB": "Bandstand", "en-NZ": "Band Rotunda", "en": "Bandstand", "eo": "Orkestrejeto", "es": "Quiosco de música", "et": "Väike vabaõhulava", "fa": "محل دسته موسیقی (در پارک یا فضای باز)", "fi": "Pieni esiintymislava", "fr": "Kiosque à musique", "gl": "Palco de música", "he": "בימת תזמורת", "hu": "Zenepavilon", "is": "Hljómsveitapallur", "it": "Chiosco della musica", "ja": "野外音楽堂", "ko": "연주 무대", "mk": "Оркестарска естрада", "nl": "Podium", "pl": "Estrada", "pt-BR": "Coreto", "pt": "Coreto", "ru": "Площадка для музыкантов", "sk": "Hudobný pavilón", "sr": "Музички павиљон", "sv": "Musikestrad", "th": "ศาลา", "tr": "Bando standı", "uk": "Естрада", "vi": "Bục Dàn nhạc", "zh-CN": "小型演奏台", "zh-TW": "演奏臺" } }, "leisure/pitch": { "title": { "C": "Sport Pitch", "bs": "Sportsko igralište", "id": "Lapangan Olahraga", "zh": "运动场所", "af": "Sportveld", "ar": "ملعب رياضي", "ast": "Campu deportivu", "bg": "Спортно игрище", "br": "Tachenn sport", "ca": "Camp d'esports", "cs": "Hřiště", "cy": "Cae Chwaraeon", "da": "Sportsbane", "de": "Sportplatz", "el": "Αγωνιστικός Χώρος", "en-GB": "Sport Pitch", "en": "Sport Pitch", "eo": "Ludkampo", "es": "Cancha de juego", "et": "Spordiväljak", "fa": "زمین ورزشی", "fi": "Urheilukenttä", "fr": "Terrain de sport", "gl": "Cancha deportiva", "he": "מגרש ספורט", "hr": "Sportski teren", "hu": "Sportpálya", "is": "Íþróttavöllur", "it": "Campo da gioco", "ja": "スポーツ競技場", "ko": "운동장", "lt": "Sporto aikštelė", "lv": "Sporta laukums", "mk": "Спортско игралиште", "nl": "Sportveld", "no": "Idrettsbane", "pl": "Boisko", "pt-BR": "Quadra ou campo esportivo", "pt": "Campo de desporto", "ro": "Teren de Sport", "ru": "Спортивная площадка", "sk": "Športové ihrisko / kurt", "sl": "Športno igrišče", "sr": "Спортски терен", "sv": "Idrottsplats", "th": "สนามกีฬา", "tr": "Spor Sahası", "uk": "Спортивний майданчик", "vi": "Sân Thể thao", "yue": "運動場", "zh-CN": "运动场地", "zh-HK": "運動場地", "zh-TW": "運動場地" } }, "leisure/amusement_arcade": { "title": { "C": "Amusement Arcade", "ar": "Amusement Arcade", "ca": "Saló recreatiu", "cs": "Herna", "da": "Spillehal", "de": "Spielhalle für Unterhaltungsspiele", "el": "Αίθουσα Ψυχαγωγίας", "en-GB": "Amusement Arcade", "en": "Amusement Arcade", "eo": "Salono de ludoj", "es": "Sala recreativa de videojuegos", "et": "Videomängusaal", "fa": "بازی تفریحی / سالن سرگرمی", "fi": "Pelihalli", "fr": "Salle de jeux", "gl": "Sala de xogos recreativos", "he": "משחקי ארקייד", "hu": "Játékterem (kiskorúaknak is)", "is": "Spilasalur", "it": "Sala giochi", "ja": "ゲームセンター", "ko": "오락실", "mk": "Забавна аркада", "nl": "Speelhal", "no": "Spillehall", "pl": "Salon gier", "pt-BR": "Fliperama", "pt": "Salão de jogos", "ru": "Игровые автоматы", "sk": "Herňa so zábavnými automatmi", "sr": "Аркадна играоница", "sv": "Arkadhall", "th": "ร้านเกมตู้", "tr": "Oyun Salonu", "uk": "Ігрові автомати", "vi": "Khu Trò chơi Điện tử", "zh-CN": "游戏厅/电玩城", "zh-TW": "遊樂場" } }, "leisure/beach_resort": { "title": { "C": "Beach Resort", "ar": "منتجع الشاطئ", "br": "Kouronklec'h", "ca": "Balneari de platja", "cs": "Spravovaná pláž", "da": "Strandresort", "de": "Strandresort", "el": "Παραθαλάσσιο Θέρετρο", "en-GB": "Beach Resort", "en": "Beach Resort", "eo": "Sablobordo administrata (kun oportunaĵoj)", "es": "Balneario de playa", "et": "Rannakuurort", "fa": "تفرجگاه ساحلی", "fi": "Rantalomakohde", "fr": "Station balnéaire", "gl": "Estancia de praia", "he": "אתר נופש על החוף", "hr": "Kupalište", "hu": "Fürdőhely, vízparti strand", "is": "Strandbær", "it": "Stabilimento balneare", "ja": "ビーチリゾート", "ko": "해변 리조트", "mk": "Плажно летувалиште", "nl": "Strandoord", "no": "Strandhotell", "pl": "Ośrodek plażowy", "pt-BR": "Resort em praia", "pt": "Estância balnear", "ru": "Пляжный курорт", "sk": "Plážový rezort", "sv": "Strandresort", "th": "รีสอร์ทริมชายหาด", "tr": "Sahil Tatil Yeri", "uk": "Пляжний курорт", "vi": "Bãi biển Nghỉ dưỡng", "zh-CN": "海滩度假区", "zh-TW": "海灘渡假村" } }, "leisure/bird_hide": { "title": { "C": "Bird Hide", "ar": "مكان لمراقبة الطيور", "ast": "Observatoriu d'aves", "ca": "Observatori d'ocells", "cs": "Pozorovatelna zvěře", "cy": "Cuddfan Adar", "da": "Fugleskjul", "de": "Vogelbeobachtungsstation", "el": "Κρυψώνα Κυνηγών Πτηνών", "en-GB": "Bird Hide", "en": "Bird Hide", "eo": "Bird-observejo", "es": "Observatorio de aves", "et": "Linnuvaatlushoone", "fa": "مکان تماشای پرندگان", "fi": "Lintutorni", "fr": "Observatoire ornithologique", "gl": "Observatorio de aves", "he": "מסתור צפרות", "hu": "Madárles", "is": "Fuglaskoðunarskýli", "it": "Osservazione uccelli", "ja": "野鳥観察舎", "ko": "탐조대", "mk": "Птицонабљудувачница", "nl": "Vogelkijkscherm of -hut", "pl": "Czatownia ornitologiczna", "pt-BR": "Local de observação de pássaros", "pt": "Posto de observação de aves", "ru": "Пункт наблюдения за птицами", "sk": "Pozorovateľňa vtáctva", "sl": "Opazovalnica", "sv": "Torn/gömsle för fågelskådning", "tr": "Vahşi Yaşam Gözetleme Kulesi", "uk": "Пункт спостереження", "vi": "Căn nhà Quan sát Chim", "zh-CN": "观鸟点", "zh-HK": "觀鳥屋", "zh-TW": "鳥類棲息處" } }, "leisure/dance": { "title": { "C": "Dance Hall", "ar": "قاعة الرقص", "ast": "Salón de baille", "br": "Sal dañs", "ca": "Pista de ball", "ckb": "هۆڵی سەماکردن", "cs": "Tančírna", "da": "Dansehal", "de": "Tanzsaal", "el": "Αίθουσα Xορού", "en-GB": "Dance Hall", "en": "Dance Hall", "eo": "Dancejo", "es": "Salón de baile", "et": "Tantsusaal", "fa": "سالن رقص", "fi": "Tanssipaikka", "fr": "Salle de danse", "gl": "Sala de baile", "he": "היכל ריקודים", "hu": "Táncterem", "is": "Danssalur", "it": "Sala da ballo", "ja": "ダンスホール", "ko": "댄스 홀", "lt": "Šokių salė", "lv": "Deju zāle", "mk": "Сала за игранки", "nl": "Danszaal", "pl": "Sala taneczna", "pt-BR": "Danceteria", "pt": "Salão de dança", "ro": "Sală de Dans", "ru": "Танцевальный зал", "sk": "Tanečná sála", "sl": "Plesna dvorana", "sr": "Плесна сала", "sv": "Dansbana", "th": "ลานเต้นรำ", "tr": "Dans Salonu", "uk": "Зала для танців", "vi": "Phòng Khiêu vũ", "zh-CN": "舞厅", "zh-HK": "舞廳", "zh-TW": "舞廳" } }, "amenity/dancing_school": { "title": { "C": "Dance School" } }, "leisure/disc_golf_course": { "title": { "C": "Disc Golf Course", "ar": "مكان للعب قرص الجولف", "cs": "Hřiště pro disc golf", "da": "Discgolfbane", "de": "Discgolfanlage", "el": "Disc Golf Course", "en-GB": "Disc Golf Course", "en": "Disc Golf Course", "eo": "Ludkampo por golfdisko", "es": "Golf de disco", "et": "Kettagolfiväljak", "fa": "زمین گلف دیسک", "fi": "Frisbeegolfkenttä", "fr": "Parcours de disc golf", "gl": "Golf de disco", "he": "מגרש דיסק גולף", "hu": "Koronggolf pálya", "it": "Campo da golf del disco", "ja": "ディスクゴルフコース", "ko": "디스크 골프 코스", "mk": "Терен за дикс-голф", "nl": "Discgolfparcours", "no": "Diskgolfbane", "pl": "Pole do gry w disc golfa", "pt-BR": "Percurso de golfe de disco", "pt": "Campo de golfe de disco", "sk": "Ihrisko na frisbee golf", "sr": "Диск голф терен", "sv": "Frisbeegolfbana", "th": "สนามดิสก์กอล์ฟ", "tr": "Disk Golf Sahası", "uk": "Диско-гольф", "vi": "Sân Gôn Đĩa", "zh-CN": "飞盘高尔夫场", "zh-TW": "飛盤高爾夫球場" } }, "leisure/escape_game": { "title": { "C": "Escape Room", "id": "Ruangan Melarikan Diri (Permainan)", "ar": "غرفة الهروب", "br": "Escape room (c'hoari achap)", "ca": "Escape Room", "cs": "Úniková hra", "cy": "Ystafell Ddianc", "de": "Escape Room", "el": "Δωμάτιο Απόδρασης", "en-GB": "Escape Room", "en": "Escape Room", "eo": "Ĉambro de enigmoj", "es": "Sala de escape", "et": "Põgenemismängude tuba", "fa": "اتاق فرار", "fi": "Pakopeli", "fr": "Escape game", "gl": "Escape room", "he": "חדר בריחה", "hu": "Szabadulószoba", "it": "Escape Room", "ja": "脱出ゲーム場", "ko": "방탈출", "mk": "Соба за бегство", "nl": "Escaperoom", "pl": "Escape room", "pt-BR": "Escape game", "pt": "Sala de fuga", "ru": "Квест комната", "sk": "Úniková miestnosť", "sr": "Ескејп рум", "sv": "Escape Room", "tr": "Kaçış Odası", "uk": "Квест-кімната", "vi": "Trò chơi Thoát khỏi Phòng", "zh-CN": "密室逃脱", "zh-HK": "密室逃脫", "zh-TW": "密室逃脫" } }, "leisure/fitness_centre": { "title": { "C": "Gym / Fitness Center", "ar": "مركز لياقة بدنية", "ast": "Ximnasiu / Centru de fitness", "br": "Sal-sport", "ca": "Gimnàs / Centre de Fitness", "cs": "Tělocvična / Fitness centrum", "cy": "Campfa", "da": "Gym / Fitnesscenter", "de": "Fitness-Studio", "el": "Γυμναστήριο", "en-AU": "Gym / Fitness Centre", "en-GB": "Gym / Fitness Centre", "en-NZ": "Gym / Fitness Centre", "en": "Gym / Fitness Center", "eo": "Ripoz-gimnastika centro", "es": "Gimnasio / Centro de fitness", "et": "Jõusaal", "fa": "باشگاه تناسب اندام", "fi": "Kuntosali / fitness-keskus", "fr": "Centre de fitness / gym", "gl": "Ximnasio", "he": "מכון כושר", "hr": "Zatvoreni prostor za vježbanje", "hu": "Edzőterem / Fitneszklub", "is": "Líkamsræktarmiðstöð", "it": "Palestra / Centro Fitness", "ja": "ジム/フィットネスセンター", "ko": "체육관 / 피트니스 센터", "lv": "Sportazāle / Fitnesa centrs", "mk": "Вежбалница", "nl": "Fitnesscentrum", "no": "Treningssenter", "pl": "Siłownia / klub fitness", "pt-BR": "Academia", "pt": "Ginásio", "ro": "Centru Fitness", "ru": "Фитнес-центр", "sk": "Posilňovňa", "sl": "Telovadnica / Fitness", "sr": "Теретана / Фитнес центар", "sv": "Gym / Fitnesscenter", "th": "ยิม", "tr": "Spor Salonu", "uk": "Зал/Фітнес центр", "vi": "Trung tâm Thể dục", "zh-CN": "健身房/健身中心", "zh-HK": "體育館 / 健體中心", "zh-TW": "健身房/健身中心" } }, "leisure/fitness_station": { "title": { "C": "Outdoor Fitness Station", "ar": "مكان اللياقة البدنية خارج المباني", "ast": "Centru de fitness albentestate", "ca": "Instal·lació exterior de Fitness", "cs": "Venkovní tělocvična", "da": "Udendørs fitnessplads", "de": "Freiluft-Fitness-Station", "el": "Υπαίθριο Γυμναστήριο", "en-AU": "Outdoor Exercise Equipment", "en-GB": "Outdoor Fitness Station", "en": "Outdoor Fitness Station", "eo": "Ekzerc-parko (eksterdoma)", "es": "Estación de gimnasia al aire libre", "fa": "ایستگاه ورزشی در فضای باز", "fi": "Ulkokuntoilulaitteet", "fr": "Parcours de santé", "gl": "Estación de ximnasia ao aire libre", "he": "תחנת כושר", "hr": "Vanjski prostor za vježbanje", "hu": "Fitneszpark", "is": "Líkamsþjálfunarstöð utandyra", "it": "Palestra a cielo aperto", "ja": "屋外トレーニング場", "ko": "야외 신체단련소", "lv": "Brīvdabas fitnesa vieta", "mk": "Вежбалница на отворено", "nl": "Buitenshuis fitness-station", "no": "Utendørs treningsapparater", "pl": "Siłownia zewnętrzna", "pt-BR": "Equipamento de exercícios ao ar Livre", "pt": "Ginásio ao ar livre", "ro": "Stație de Fitness în Aer Liber", "ru": "Площадка для фитнеса", "sk": "Vonkajšia telocvičňa", "sl": "Telovadna orodja na prostem", "sr": "Фитнес станица на отвореном", "sv": "Utomhusgym", "th": "สถานที่ออกกำลังกายกลางแจ้ง", "tr": "Açıkhava Spor Yeri", "uk": "Тренажери на вулиці", "vi": "Trạm Thể dục", "zh-CN": "户外健身站", "zh-HK": "戶外健體站", "zh-TW": "戶外健身站" } }, "leisure/garden": { "title": { "C": "Garden", "am": "መናፈሻ", "bn": "বাগান", "te": "తోట", "bs": "Vrt", "id": "Kebun", "kn": "ಕೈತೋಟ", "zh": "花园", "af": "Tuin", "ar": "حديقة", "ast": "Xardín", "bg": "Градина", "br": "Liorzh", "ca": "Jardí", "ckb": "باخچە", "cs": "Zahrada", "cy": "Gardd", "da": "Have", "de": "Garten", "el": "Κήπος", "en-GB": "Garden", "en": "Garden", "eo": "Ĝardeno", "es": "Jardín", "et": "Aed", "fa": "باغ", "fi": "Puutarha", "fr": "Jardin", "ga": "Gairdín", "gl": "Xardín", "he": "גן", "hr": "Vrt", "hu": "Kert", "is": "Garður", "it": "Giardino", "ja": "庭園", "ko": "정원", "lt": "Sodas", "lv": "Dārzs", "mk": "Градина", "nl": "Tuin", "no": "Hage", "pl": "Ogród", "pt-BR": "Jardim/Horta", "pt": "Jardim", "ro": "Grădină", "ru": "Сад", "sk": "Záhrada", "sl": "Vrt", "sr": "Башта", "sv": "Trädgård", "ta": "தோட்டம்", "th": "สวนหย่อม", "tr": "Bahçe", "uk": "Сад", "ur": "باغ", "vi": "Vườn", "yue": "花園", "zh-CN": "花园", "zh-HK": "花園", "zh-TW": "花園" } }, "leisure/golf_course": { "title": { "C": "Golf Course", "am": "የጎልፍ መጫወቻ", "bn": "গল্ফ মাঠ", "bs": "Golf teren", "id": "Lapangan Golf", "zh": "高尔夫球场", "af": "Golfbaan", "ar": "معلب جولف", "ast": "Campu de golf", "bg": "Голф игрище", "br": "Tachenn golf", "ca": "Camp de golf", "cs": "Golfové hřiště", "cy": "Maes Golff", "da": "Golfbane", "de": "Golfplatz", "el": "Γήπεδο Γκολφ", "en-GB": "Golf Course", "en": "Golf Course", "eo": "Golfludejo", "es": "Campo de golf", "et": "Golfiväljak", "fa": "زمین گلف", "fi": "Golfkenttä", "fr": "Parcours de golf", "gl": "Campo de golf", "he": "מגרש גולף", "hr": "Igralište za golf", "hu": "Golfpálya", "is": "Golfvöllur", "it": "Campo da golf", "ja": "ゴルフコース", "ko": "골프장", "lt": "Golfo aikštynas", "lv": "Golfa laukums", "mk": "Терен за голф", "nl": "Golfbaan", "no": "Golfbane", "pl": "Pole golfowe", "pt-BR": "Campo de golfe", "pt": "Campo de golfe", "ro": "Curs de Golf", "ru": "Площадка для гольфа", "sk": "Golfové ihrisko", "sl": "Golfišče", "sr": "Голф терен", "sv": "Golfbana", "ta": "கோல்ஃப் கோர்ஸ்", "th": "สนามกอล์ฟ", "tr": "Golf Sahası", "uk": "Поле для гольфу", "vi": "Sân Gôn", "yue": "哥夫球場", "zh-CN": "高尔夫球场", "zh-HK": "高爾夫球場", "zh-TW": "高爾夫球場" } }, "leisure/hackerspace": { "title": { "C": "Hackerspace", "ar": "معمل هاكر", "cs": "Hackerspace", "cy": "Hackerspace", "da": "Hackerspace", "de": "Hackerspace", "el": "Χάκερσπεϊς", "en-GB": "Hackerspace", "en": "Hackerspace", "eo": "Kodumulejo (hackerspace)", "es": "Hacklab", "fa": "هکراسپیس", "fi": "Hacklab", "fr": "Tiers-lieu", "he": "משרד היי טק משותף", "hu": "Hackerspace", "is": "Hakkaraathvarf", "it": "Spazio hacker", "ja": "ハッカースペース", "ko": "해커스페이스", "mk": "Хакерски простор", "nl": "Hackerspace", "no": "Hackerspace", "pl": "Hackerspace", "pt-BR": "Hackerspace", "pt": "Espaço de hackers", "ru": "Хакерспейс", "sk": "Hackerspace", "sv": "Hackerspace", "tr": "Bilgisayar Korsanı Alanı", "uk": "Хакерспейс", "vi": "Không gian Hacker", "zh-CN": "创客空间", "zh-TW": "駭客空間" } }, "leisure/ice_rink": { "title": { "C": "Ice Rink", "id": "Arena Seluncur Es", "ar": "حلبة تزلج", "ast": "Pista de xelu", "bg": "Ледена пързалка", "br": "Poull-ruzikat", "ca": "Pista de gel", "cs": "Kluziště", "da": "Skøjtebane", "de": "Eislaufbahn", "el": "Παγοδρόμιο", "en-GB": "Ice Rink", "en": "Ice Rink", "eo": "Glitkurejo", "es": "Pista de hielo", "et": "Uisuväljak", "fa": "بازی روی یخ", "fi": "Luistelukenttä", "fr": "Patinoire", "gl": "Pista de xeo", "he": "החלקרח", "hr": "Klizalište", "hu": "Jégpálya", "is": "Skautasvell", "it": "Pista di Ghiaccio", "ja": "アイススケート場", "ko": "아이스 링크", "lt": "Čiuožykla", "lv": "Ledus halle", "mk": "Лизгалиште", "nl": "Schaatsbaan", "no": "Skøytebane", "pl": "Lodowisko", "pt-BR": "Pista de Patinação no Gelo", "pt": "Rinque de gelo", "ru": "Каток", "sk": "Klzisko / Zimný štadión bez hľadiska", "sl": "Drsališče", "sr": "Клизалиште", "sv": "Skridskobana", "th": "ลานสเก็ตน้ำแข็ง", "tr": "Buz Pateni", "uk": "Каток", "vi": "Sân Băng", "zh-CN": "滑冰场", "zh-HK": "溜冰場", "zh-TW": "溜冰場" } }, "leisure/marina": { "title": { "C": "Marina", "bs": "Marina", "dv": "ޔޮޓު މެރީނާ", "id": "Marina", "so": "Deked", "zh": "码头", "af": "Vasmeerplek", "ar": "مرسى لليخوت والقوارب الصغيرة", "ast": "Puertu deportivu", "bg": "Яхт клуб", "br": "Porzh-bageal", "ca": "Port esportiu", "cs": "Přístaviště", "cy": "Marina", "da": "Lystbådehavn", "de": "Yachthafen", "el": "Μαρίνα", "en-GB": "Marina", "en": "Marina", "eo": "Jaĥt-haveno", "es": "Puerto deportivo", "et": "Väikesadam", "fa": "تفرجگاه ساحلی", "fi": "Venesatama", "fr": "Marina", "ga": "Mairíne", "gl": "Porto deportivo", "he": "מרינה", "hr": "Marina", "hu": "Kishajókikötő", "is": "Bátahöfn", "it": "Marina", "ja": "マリーナ", "ko": "마리나", "lt": "Prieplauka", "mk": "Сидриште", "nl": "Jachthaven", "no": "Marina", "pl": "Przystań", "pt-BR": "Marina", "pt": "Marina", "ru": "Стоянка для яхт", "sk": "Prístav", "sl": "Marina", "sr": "Марина", "sv": "Marina", "ta": "மரினா", "th": "ท่าเรือ", "tr": "Yat Limanı", "uk": "Пристань для яхт", "vi": "Bến tàu", "yue": "遊艇碼頭", "zh-CN": "游艇码头", "zh-HK": "遊艇碼頭", "zh-TW": "遊艇碼頭" } }, "seamark:harbour:category/marina_no_facilities": { "title": { "C": "Yacht Berths" } }, "leisure/miniature_golf": { "title": { "C": "Miniature Golf", "af": "Miniatuur golf", "ar": "ملعب الجولف المصغرة", "ast": "Minigolf", "bg": "Миниатюрен голф", "br": "Minigolf", "ca": "Golf en miniatura", "cs": "Minigolf", "cy": "Mini Golff", "da": "Minigolf", "de": "Minigolfanlage", "el": "Μίνι Γκολφ", "en-GB": "Miniature Golf", "en": "Miniature Golf", "eo": "Minigolfludejo", "es": "Mini golf", "et": "Minatuurgolf", "fa": "گلف مینیاتوری", "fi": "Minigolf", "fr": "Mini-golf", "gl": "Minigolf", "he": "מיני גולף", "hr": "Minigolf", "hu": "Minigolf", "is": "Mínígolf", "it": "Minigolf", "ja": "ミニゴルフ", "ko": "미니 골프", "lt": "Minigolfas", "mk": "Миниголф", "nl": "Minigolf", "no": "Minigolf", "pl": "Minigolf", "pt-BR": "Campo de minigolfe", "pt": "Campo de minigolfe", "ro": "Minigolf", "ru": "Мини-гольф", "sk": "Miniatúrny golf", "sl": "Minigolf", "sr": "Мини-голф", "sv": "Minigolf", "th": "มินิกอล์ฟ", "tr": "Mini Golf", "uk": "Міні-гольф", "vi": "Sân Gôn Mini", "zh-CN": "迷你高尔夫", "zh-HK": "迷你哥爾夫", "zh-TW": "迷你高爾夫" } }, "leisure/nature_reserve": { "title": { "C": "Nature Reserve", "id": "Cagar Alam", "ar": "محمية طبيعية", "ast": "Reserva natural", "bg": "Природен резерват", "br": "Gwarezva natur", "ca": "Reserva Natural", "cs": "Přírodní rezervace", "cy": "Gwarchodfa Natur", "da": "Naturreservat", "de": "Naturschutzgebiet", "el": "Προστατευόμενος Βιότοπος", "en-GB": "Nature Reserve", "en": "Nature Reserve", "eo": "Natur-rezervejo", "es": "Reserva natural", "et": "Looduskaitseala", "fa": "ذخیره‌گاه طبیعی", "fi": "Luonnonsuojelualue", "fr": "Réserve naturelle", "gl": "Reserva natural", "he": "שמורת טבע", "hr": "Prirodni rezervat", "hu": "Természetvédelmi terület", "is": "Friðland", "it": "Riserva naturale", "ja": "自然保護区", "ko": "자연 보호 구역", "lt": "Draustinis", "mk": "Природен резерват", "nl": "Natuurreservaat", "no": "Naturreservat", "pl": "Rezerwat przyrody", "pt-BR": "Reserva natural", "pt": "Reserva natural", "ro": "Rezervat Natural", "ru": "Заповедник", "sk": "Prírodná rezervácia", "sl": "Naravni rezervat", "sr": "Резерват природе", "sv": "Naturreservat", "th": "เขตอนุรักษ์ธรรมชาติ", "tr": "Doğal Koruma Alanı", "uk": "Заповідник", "vi": "Khu Bảo tồn Thiên nhiên", "zh-CN": "自然保护区", "zh-HK": "自然保護區", "zh-TW": "自然保留區" } }, "leisure/park": { "title": { "C": "Park", "bn": "উদ্যান", "te": "పార్కు", "bs": "Park", "dv": "ޕާރކުތައް", "id": "Taman", "kn": "ಉದ್ಯಾನವನ", "ne": "पार्क", "so": "Jardiino", "zh": "公园", "af": "Park", "ar": "منتزه", "ast": "Parque", "bg": "Парк", "br": "Park", "ca": "Parc", "cs": "Park", "cy": "Parc", "da": "Park", "de": "Park", "el": "Πάρκο", "en-GB": "Park", "en": "Park", "eo": "Parko", "es": "Parque / Plaza verde", "et": "Park", "fa": "پارک", "fi": "Puisto", "fr": "Parc", "ga": "Páirc", "gl": "Parque", "he": "פארק", "hr": "Park", "hu": "Park", "is": "Garður", "it": "Parco", "ja": "公園", "ko": "공원", "lt": "Parkas", "lv": "Parks", "mi": "Papa Rēhia", "mk": "Парк", "nl": "Park", "no": "Park", "pl": "Park", "pt-BR": "Parque ou praça", "pt": "Parque público", "ro": "Parc", "ru": "Парк отдыха", "sk": "Park", "sl": "Park", "sr": "Парк", "sv": "Park", "ta": "பூங்கா", "th": "สวนสาธารณะ", "tr": "Park", "uk": "Парк", "ur": "پارک", "vi": "Công viên", "yue": "園", "zh-CN": "公园", "zh-HK": "公園", "zh-TW": "公園" } }, "leisure/resort": { "title": { "C": "Resort", "ar": "منتجع", "br": "Kreizenn dudi", "ca": "Complex turístic", "cs": "Letovisko", "cy": "Cyrchfan", "da": "Turistresort", "de": "Resort", "el": "Θέρετρο", "en-GB": "Resort", "en": "Resort", "eo": "Turisma centro", "es": "Complejo turístico", "et": "Puhkekeskus", "eu": "opor-leku", "fa": "تفرجگاه", "fi": "Lomakohde", "fr": "Centre de loisir", "gl": "Complexo turístico", "he": "אתר נופש", "hu": "Üdülőhely", "is": "Afþreyingarþorp", "it": "Resort", "ja": "リゾート地", "ko": "리조트", "mk": "Одморалиште", "nl": "Resort", "pl": "Ośrodek wypoczynkowy", "pt-BR": "Resort", "pt": "Estância turística", "ro": "Resort", "ru": "База отдыха / санаторий / пансионат / детский лагерь", "sk": "Rezort", "sl": "Letovišče", "sr": "Одмаралиште", "sv": "Resort", "th": "รีสอร์ท", "tr": "Tatil Yeri", "uk": "Курорт", "vi": "Khu Nghỉ dưỡng", "zh-CN": "度假区", "zh-HK": "度假勝地", "zh-TW": "度假勝地" } }, "leisure/sauna": { "title": { "C": "Sauna", "ar": "سونا", "ast": "Sauna", "br": "Sauna", "ca": "Sauna", "cs": "Sauna", "cy": "Sauna", "da": "Sauna", "de": "Sauna", "el": "Σάουνα", "en-GB": "Sauna", "en": "Sauna", "eo": "Ŝvitbanejo", "es": "Sauna", "et": "Saun", "eu": "Sauna", "fa": "سونا", "fi": "Sauna", "fr": "Sauna", "gl": "Sauna", "he": "סאונה", "hr": "Sauna", "hu": "Szauna", "is": "Gufubað", "it": "Sauna", "ja": "サウナ", "ko": "사우나", "lt": "Sauna", "lv": "Sauna", "mk": "Сауна", "nl": "Sauna", "no": "Badstu", "pl": "Sauna", "pt-BR": "Sauna", "pt": "Sauna", "ru": "Сауна", "sk": "Sauna", "sr": "Сауна", "sv": "Bastu", "th": "ซาวน่า", "tr": "Sauna", "uk": "Сауна", "vi": "Tắm hơi", "zh-CN": "桑拿", "zh-HK": "桑拿", "zh-TW": "桑拿" } }, "leisure/sports_centre": { "title": { "C": "Sports Center / Complex", "dv": "ކުުޅިވަރު މަރުކަޒު", "so": "Xarunta Cayaaraha", "ar": "مركز/مجمع رياضي", "ast": "Centru / Complexu deportivu", "br": "Kreizenn-sport", "ca": "Complex esportiu", "cs": "Sportovní centrum", "da": "Sportcenter / Kompleks", "de": "Sportzentrum / -komplex", "el": "Αθλητικό Κέντρο/ Συγκρότημα", "en-AU": "Sports Centre / Complex", "en-GB": "Sports Centre / Complex", "en-NZ": "Sports Centre / Complex", "en": "Sports Center / Complex", "eo": "Sporta centro", "es": "Complejo deportivo", "et": "Spordikeskus", "eu": "Kiroldegia/ gunea", "fa": "مجتمع / مرکز ورزشی", "fi": "Liikuntakeskus", "fr": "Centre sportif", "gl": "Complexo deportivo", "he": "מרכז ספורט", "hr": "Sportski centar", "hu": "Sportközpont", "is": "Íþróttamiðstöð", "it": "Complesso / Centro Sportivo", "ja": "スポーツセンター/複合施設", "ko": "스포츠 센터 / 단지", "lv": "Sporta Centrs / Komplekss", "mk": "Спортски центар / комплекс", "nl": "Sportcentrum of -complex", "no": "Idrettssenter / kompleks", "pl": "Ośrodek sportowy", "pt-BR": "Centro Esportivo / Clube", "pt": "Complexo desportivo", "ro": "Centru / Complex de Sport", "ru": "Спортивный центр/комплекс", "sk": "Športové centrum / Komplex", "sl": "Športni center / kompleks", "sr": "Спортски центар / Комплекс", "sv": "Sportcenter / -anläggning", "th": "ศูนย์กีฬา", "tr": "Spor Merkezi", "uk": "Спортивний центр/комплекс", "vi": "Trung tâm Thể thao", "zh-CN": "体育中心/综合体育场", "zh-HK": "體育中心 / 體育館", "zh-TW": "體育中心/設施" } }, "leisure/sports_hall": { "title": { "C": "Gymnasium", "ar": "قاعة رياضية", "br": "Jiminas", "cs": "Tělocvična", "cy": "Campfa", "da": "Idrætshal", "de": "Sporthalle", "el": "Γυμναστήριο", "en-GB": "Gymnasium", "en-NZ": "Sports Hall", "en": "Gymnasium", "eo": "Sporthalo", "es": "Gimnasio / Pabellón deportivo", "et": "Spordihall", "fa": "سالن ورزشی", "fi": "Liikuntasali", "fr": "Gymnase", "gl": "Pavillón polideportivo", "he": "חדר כושר", "hr": "Sportska dvorana", "hu": "Tornaterem", "it": "Palestra", "ja": "屋内運動場", "ko": "체조", "mk": "Фискултурна сала", "nl": "Sporthal", "no": "Gymsal", "pl": "Sala sportowa", "pt-BR": "Ginásio", "pt": "Pavilhão desportivo", "ru": "Спортзал", "sk": "Športová hala", "sr": "Спортска хала", "sv": "Sporthall", "tr": "Spor salonu", "uk": "Спортзал", "vi": "Nhà thi đấu Thể thao", "zh-CN": "体育馆", "zh-HK": "體育館", "zh-TW": "體育館" } }, "leisure/stadium": { "title": { "C": "Stadium", "am": "ስታዲዩም", "bn": "স্টেডিয়াম", "bs": "Stadion", "dv": "ސްޓޭޑިއަމް", "id": "Stadion", "kn": "ಕ್ರೀಡಾಂಗಣ", "ms": "Stadium", "so": "Garoon", "zh": "体育场", "af": "Stadium", "ar": "استاد رياضي", "ast": "Estadiu", "bg": "Стадион", "br": "Stad", "ca": "Estadi", "cs": "Stadion", "cy": "Stadiwm", "da": "Stadion", "de": "Stadion", "el": "Στάδιο", "en-GB": "Stadium", "en": "Stadium", "eo": "Stadiono", "es": "Estadio", "et": "Staadion", "eu": "Estadio", "fa": "استادیوم", "fi": "Stadion", "fr": "Stade", "ga": "Staid", "gl": "Estadio", "he": "אצטדיון", "hr": "Stadion", "hu": "Stadion", "is": "Leikvangur", "it": "Stadio", "ja": "スタジアム", "ko": "경기장", "lt": "Stadionas", "lv": "Stadions", "mk": "Стадион", "nl": "Stadion", "no": "Stadion", "pl": "Stadion", "pt-BR": "Estádio", "pt": "Estádio", "ro": "Stadion", "ru": "Стадион (территория)", "sk": "Štadión", "sl": "Stadion", "sr": "Стадион", "sv": "Stadium", "ta": "விளையாட்டு அரங்கம்", "tr": "Stadyum", "uk": "Стадіон", "ur": "اسٹیڈیم", "vi": "Sân vận động", "yue": "大體育館", "zh-CN": "体育场", "zh-HK": "體育館", "zh-TW": "體育場" } }, "leisure/swimming_area": { "title": { "C": "Natural Swimming Area", "ar": "منطقة سباحة طبيعية", "br": "Lec'h kouronkañ", "ca": "Zona de bany natural", "ckb": "پانتایی مەلەی سروشتی", "cs": "Přírodní koupaliště", "da": "Åbent vand-bane", "de": "Natürlicher Badebereich", "el": "Φυσική Περιοχή Κολύμβησης", "en-GB": "Natural Swimming Area", "en": "Natural Swimming Area", "eo": "Naĝejo natura", "es": "Área de natación natural", "et": "Looduslik ujumiskoht", "fa": "منطقه طبیعی شنا", "fi": "Uimaranta", "fr": "Lieu de baignade", "gl": "Área de natación natural", "he": "שטח שחייה טבעי", "hu": "Úszásra kijelölt terület", "it": "Area riservata ai bagnanti", "ja": "遊泳区域", "mk": "Природно пливалиште", "nl": "Natuurlijk zwemgebied", "pl": "Kąpielisko", "pt-BR": "Área de natação natural", "pt": "Área balnear natural", "ru": "Естественная зона для купания", "sk": "Prírodná plocha na kúpanie", "sr": "Природно пливалиште", "sv": "Naturbadområde", "tr": "Doğal Yüzme Alanı", "uk": "Місце для плавання", "vi": "Vũng Sâu để Bơi", "zh-CN": "自然游泳区域", "zh-TW": "自然游泳區" } }, "leisure/swimming_pool": { "title": { "C": "Swimming Pool", "bn": "সুইমিং পুল", "te": "ఈత కొలను", "bs": "Bazen", "id": "Kolam Renang", "kn": "ಈಜುಕೊಳ", "zh": "游泳池", "af": "Swembad", "ar": "حوض سباحة", "ast": "Piscina", "bg": "Плувен басейн", "br": "Poull-neuial", "ca": "Piscina", "cs": "Plavecký bazén", "cy": "Pwll Nofio", "da": "Svømmebassin", "de": "Schwimmbecken", "el": "Πισίνα", "en-GB": "Swimming Pool", "en": "Swimming Pool", "eo": "Naĝejo (akvo)", "es": "Piscina", "et": "Ujumisbassein", "eu": "Igerileku", "fa": "استخر شنا", "fi": "Uimahalli tai -allas", "fr": "Piscine", "gl": "Piscina", "he": "בריכת שחייה", "hr": "Bazen za kupanje", "hu": "Fürdőmedence", "is": "Sundlaug", "it": "Piscina", "ja": "遊泳プール(屋外)", "ko": "수영장", "lt": "Baseinas", "lv": "Peldbaseins", "mi": "Hōpua", "mk": "Базен", "nl": "Zwembad (water)", "no": "Svømmebasseng", "pl": "Basen", "pt-BR": "Piscina", "pt": "Piscina", "ro": "Piscină", "ru": "Бассейн (его водная поверхность)", "sk": "Bazén (vodná plocha)", "sl": "Plavalni bazen", "sr": "Базен", "sv": "Simbassäng", "ta": "நீச்சல் குளம்", "tr": "Yüzme Havuzu", "uk": "Басейн", "vi": "Hồ Bơi", "yue": "游水池", "zh-CN": "游泳池", "zh-HK": "游泳池", "zh-TW": "游泳池" } }, "leisure/track": { "title": { "C": "Racetrack (Non-Motorsport)", "ar": "مضمار السباق (غير رياضة السيارات)", "ast": "Circuitu (Deportes sin motor)", "cs": "Závodní dráha (ne pro motorsport)", "da": "Løbsbane (Ej motorsport)", "de": "Bahn (Nicht Motorsport)", "el": "Αγωνιστικός Στίβος (Μη-Μηχανοκίνηση)", "en-GB": "Racetrack (Non-Motorsport)", "en": "Racetrack (Non-Motorsport)", "eo": "Kurejo/biciklejo/konkursejo (nemotora)", "es": "Pista de carrera (no motorizada)", "et": "Staadion", "fa": "مسیر مسابقه (مسابقات غیرموتوری)", "fi": "Kilparata (ei moottoriurheilu)", "fr": "Piste de course (hors sports mécaniques)", "gl": "Pista de competición (non motorizada)", "he": "מסלול מרוצים (לבלתי ממונעים)", "hr": "Staza za utrkivanje (nemotorizirane discipline)", "hu": "Versenypálya (nem motorsport)", "is": "Keppnisbraut (ekki mótorsport)", "it": "Pista (sport non motoristici)", "ja": "競技トラック(モータースポーツ以外)", "ko": "경주로(비모터스포츠)", "mk": "Тркалиште (немоторно)", "nl": "Racebaan (niet-motorsport)", "no": "Racerbane (Ikke motorsport)", "pl": "Tor wyścigowy (sporty niemotorowe)", "pt-BR": "Pista para esportes não-motorizados", "pt": "Pista de desportos não motorizados", "ru": "Гоночный трек (не автоспорт)", "sk": "Pretekárska dráha (nemotorové športy)", "sl": "Tekmovalna steza (neasfaltirana)", "sv": "Tävlingsbana (Icke motorsport)", "tr": "Yarış Pisti (motor spor hariç)", "uk": "Гоночний трек (не мотоспорт)", "vi": "Đường Đua (Không phải Đua Xe)", "zh-CN": "赛道(非机动竞速项目)", "zh-HK": "賽道(非賽車)", "zh-TW": "賽道(非賽車運動)" } }, "leisure/trampoline_park": { "title": { "C": "Trampoline Park", "ar": "منتزه النُطيطة (الترامبولين)", "br": "Park Trampolin", "ca": "Parc de Trampolins", "cs": "Trampolínová hala", "da": "Trampolinpark", "de": "Trampolinpark", "el": "Πάρκο Τραμπολίνου", "en-GB": "Trampoline Park", "en": "Trampoline Park", "eo": "Parko de saltadtukoj", "es": "Parque de trampolín", "et": "Batuudikeskus", "fa": "پارک ترامپولین", "fi": "Trampoliinipuisto", "fr": "Parc à trampolines", "gl": "Parque de trampolíns", "he": "פארק טרמפולינות", "hu": "Ugrálda", "it": "Parco di trampolini", "ja": "トランポリンパーク", "mk": "Трамбулински парк", "nl": "Trampolinepark", "no": "Trampolinepark", "pl": "Park trampolin", "pt-BR": "Parque de trampolim", "pt": "Parque de trampolins", "sk": "Tempolínovy park", "sr": "Трамбулина парк", "sv": "Trampolinpark", "tr": "Trambolin Parkı", "uk": "Батутна арена", "vi": "Khu Giàn nhún", "zh-CN": "室内蹦床乐园", "zh-TW": "彈簧床公園" } }, "leisure/bowling_alley": { "title": { "C": "Bowling Alley", "id": "Tempat Boling", "ar": "بولينغ", "ast": "Bolera americana", "br": "Bowling", "ca": "Bolera", "cs": "Bowlingová dráha", "da": "Bowlingbaner", "de": "Bowlingbahn", "el": "Αίθουσα μπόουλινγκ", "en-GB": "Bowling Alley", "en": "Bowling Alley", "eo": "Kegloludejo", "es": "Bolera / Bowling", "et": "Boolingusaal", "fa": "سالن بولینگ", "fi": "Keilahalli", "fr": "Bowling", "gl": "Birlos", "he": "אולם כדורת", "hr": "Kuglalište", "hu": "Bowlingpálya", "is": "Keiluhöll", "it": "Sala da Bowling", "ja": "ボウリング場", "ko": "볼링장", "lv": "Boulinga Zāle", "mk": "Кугларница", "nl": "Bowlingbaan", "no": "Bowlingsenter", "pl": "Kręgielnia", "pt-BR": "Pista de boliche", "pt": "Pista de bólingue", "ro": "Alee de Bowling", "ru": "Боулинг центр", "sk": "Bowlingová hala", "sl": "Kegljišče", "sr": "Куглана", "sv": "Bowlinghall", "th": "ลานโบว์ลิ่ง", "tr": "Bowling Salonu", "uk": "Боулінг", "vi": "Khu Bowling", "zh-CN": "保龄球馆", "zh-HK": "保齡球場", "zh-TW": "保齡球館" } }, "leisure/dog_park": { "title": { "C": "Dog Park", "bs": "Igralište za pse", "id": "Taman Anjing", "af": "Hondepark", "ar": "حديقة كلاب", "ast": "Parque pa perros", "bg": "Кучешки парк", "br": "Park chas", "ca": "Parc Caní", "cs": "Psí park", "cy": "Parc Cŵn", "da": "Hundeskov", "de": "Hundepark", "el": "Πάρκο Σκύλων", "en-GB": "Dog Park", "en": "Dog Park", "eo": "Hund-parko", "es": "Parque para perros", "et": "Koerapark", "fa": "پارک سگ", "fi": "Koirapuisto", "fr": "Parc canin", "gl": "Parque para cans", "he": "פארק כלבים", "hr": "Park za pse", "hu": "Kutyafuttató", "is": "Hundagarður", "it": "Area per cani", "ja": "ドッグラン", "ko": "개 공원", "lt": "Šunų parkas", "lv": "Suņu parks", "mk": "Кучешки парк", "nl": "Hondenpark", "no": "Hundepark", "pl": "Wybieg dla psów", "pt-BR": "Cachorródromo", "pt": "Parque canino", "ro": "Parc de Câini", "ru": "Площадка для выгула собак", "sk": "Psí park", "sl": "Pasji park", "sr": "Парк за псе", "sv": "Hundpark", "th": "สวนสาธารณะสำหรับสุนัข", "tr": "Köpek Parkı", "uk": "Парк для собак", "vi": "Công viên dành cho Chó", "yue": "狗公園", "zh-CN": "狗公园", "zh-HK": "狗公園", "zh-TW": "狗公園" } }, "leisure/horse_riding": { "title": { "C": "Horseback Riding Center", "ar": "مركز ركوب الخيل", "br": "Kreizenn varc'hegezh", "ca": "Centre d'Equitació", "cs": "Jezdecké centrum", "da": "Ridecenter", "de": "Reitanlage", "el": "Κέντρο Ιππασίας", "en-AU": "Horseback Riding Centre", "en-GB": "Horse Riding Centre", "en": "Horseback Riding Center", "es": "Centro ecuestre", "et": "Ratsakeskus", "fr": "Centre équestre", "he": "מרכז לרכיבה על סוסים", "hu": "Lovasiskola központ", "it": "Centro equestre", "ja": "乗馬施設", "mk": "Јавачки центар", "nl": "Paardrijcentrum", "pl": "Ośrodek jeździecki", "pt-BR": "Centro equestre", "pt": "Centro hípico", "ru": "Центр верховой езды", "sk": "Jazdecký areál", "sr": "Центар за јахање", "sv": "Ridskola", "th": "ศูนย์ขี่ม้า", "tr": "Horseback Riding Center", "uk": "Центр верхової їзди", "vi": "Khu Cưỡi ngựa", "zh-TW": "馬術中心" } }, "leisure/hot_tub": { "title": { "C": "Hot Tub" } }, "leisure/indoor_play": { "title": { "C": "Indoor Play Center", "id": "Tempat Bermain dalam Ruangan", "af": "Binnespeelsentrum", "ar": "Indoor Play Center", "cs": "Vnitřní herna", "da": "Indendørs legeland", "de": "Innenliegender Spielbereich", "el": "Παιδική Χαρά Εσωτερικού Χώρου", "en-AU": "Indoor Play Centre", "en-GB": "Indoor Play Centre", "en-NZ": "Indoor Play Centre", "en": "Indoor Play Center", "eo": "Enkonstruaĵa infana ludejo (kun prizorgo)", "es": "Centro de juegos de interior", "fa": "مرکز بازی‌های داخل سالن", "fr": "Centre de jeux en intérieur", "he": "מרכז משחקים מקורה", "hu": "Játszóház", "it": "Centro giochi al chiuso", "ja": "屋内キッズスペース", "ko": "실내 놀이 센터", "mk": "Игротека на покриено", "nl": "Binnenspeeltuin", "pl": "Sala zabaw", "pt-BR": "Centro de jogos coberto", "pt": "Centro de diversões interior", "ru": "Детская площадка внутри здания", "sk": "Indoor herňa", "sr": "Забавиште", "sv": "Inomhuslekland", "th": "สนามเด็กเล่นในร่ม", "tr": "Indoor Play Center", "uk": "Ігровий центр", "vi": "Khu Vui chơi Trong nhà", "zh-CN": "室内游乐中心", "zh-HK": "室內遊樂中心", "zh-TW": "室內遊樂中心" } }, "office/administrative": { "title": { "C": "Administrative Office", "am": "አስተዳደር ቢሮ", "bs": "Administrativni ured", "id": "Kantor Administrasi", "ms": "Pejabat Pentadbiran", "af": "Administrasie", "ar": "مكتب إداري", "ast": "Oficina alministrativa", "br": "Burev melestradurel", "ca": "Oficina de tràmits locals", "cs": "Místní úřad", "cy": "Swyddfa Weinyddol", "da": "Administrativt kontor", "de": "Verwaltungsamt", "el": "Διοικητική Υπηρεσία", "en-GB": "Administrative Office", "en": "Administrative Office", "eo": "Administra oficejo", "es": "Oficina administrativa", "et": "Valitsuse kontor (aegunud silt)", "fa": "اداره حکومتی", "fi": "Kunnallishallinnon toimisto", "fr": "Bureau administratif", "gl": "Oficina administrativa", "he": "משרד אדמינסטרטיבי", "hu": "Közigazgatási hivatal", "is": "Stjórnsýsluskrifstofa", "it": "Autorità locale", "ja": "地方行政事務所", "ko": "관리 사무소", "lt": "Administracinis biuras", "mk": "Администрација", "nl": "Bestuurlijke instantie", "pl": "Biuro administracji publicznej (dawny schemat)", "pt-BR": "Administrativo", "pt": "Escritório da administração local", "ro": "Oficiu Administrativ", "ru": "Местная администрация и надзирающие органы", "sk": "Administratívny úrad", "sl": "Upravna enota", "sr": "Управна канцеларија", "sv": "Lokal myndighet", "ta": "நிருவாக அலுவலகம்", "th": "สำนักงานบริหาร", "tr": "İdari Ofis", "uk": "Канцелярія", "vi": "Cơ quan Địa phương", "yue": "行政樓", "zh-CN": "行政楼", "zh-HK": "行政樓", "zh-TW": "政府機關" } }, "office/physician": { "title": { "C": "Physician", "bn": "চিকিত্সক", "bs": "Ljekar", "kn": "ವೈದ್ಯ", "ms": "Pakar Perubatan", "ar": "طبيب", "ast": "Médicu", "br": "Medisin", "ca": "Metge", "cs": "Praktický lékař", "da": "Læge", "de": "Arztpraxis", "el": "Ιατρός", "en-GB": "Physician", "en": "Physician", "eo": "Kabineto de kuracisto", "es": "Médico", "et": "Arsti büroo", "fa": "پزشک", "fi": "Lääkäri", "fr": "Médecin", "gl": "Médico", "he": "רופא", "hr": "Liječnička praksa", "hu": "Orvos", "is": "Læknir", "it": "Medico", "ja": "医者", "ko": "내과의원", "lt": "Gydytojas", "mk": "Лекар", "nl": "Arts", "no": "Lege", "pl": "Lekarz", "pt-BR": "Médico", "pt": "Médico especialista", "ro": "Fizician", "ru": "Врач", "sk": "Doktor", "sl": "Ambulanta", "sr": "Лекар", "sv": "Läkare", "ta": "மருத்துவர்", "th": "หมอ", "tr": "Hekim", "uk": "Лікар", "vi": "Văn phòng Bác sĩ", "yue": "醫生", "zh-CN": "医生", "zh-HK": "醫生", "zh-TW": "醫務所" } }, "office/travel_agent": { "title": { "C": "Travel Agency", "am": "የጉዞ ወኪል", "bs": "Putnička agencija", "dv": "ޓްރެވެލް އޭޖެންސީ", "id": "Biro Perjalanan", "ms": "Agensi Pelancongan", "so": "Wakaalad Socdaal", "af": "Reisagent", "ar": "وكالة السفر", "ast": "Axencia de viaxes", "bg": "Туристическа агенция", "br": "Ajañs-veaj", "ca": "Agència de viatges", "cs": "Cestovní kancelář", "cy": "Asiantaeth Teithio", "da": "Rejsebureau", "de": "Reisebüro", "el": "Ταξιδιωτικό Γραφείο", "en-GB": "Travel Agency", "en": "Travel Agency", "eo": "Vojaĝa oficejo", "es": "Agencia de viajes", "et": "Reisibüroo", "fa": "آژانس مسافرتی", "fi": "Matkatoimisto", "fr": "Agence de voyage", "gl": "Axencia de viaxes", "he": "סוכנות נסיעות", "hr": "Putnička agencija", "hu": "Utazási iroda", "is": "Ferðaskrifstofa", "it": "Agenzia di viaggi", "ja": "旅行代理店", "ko": "여행사", "lt": "Kelionių agentūra", "mk": "Туристичка агенција", "nl": "Reisbureau", "no": "Reisebyrå", "pl": "Biuro podróży", "pt-BR": "Agência de Viagens", "pt": "Agência de viagens", "ro": "Agenție de Călătorii", "ru": "Турагентство (устаревший тег)", "sk": "Cestovná agentúra", "sl": "Potovalna agencija", "sr": "Туристичка агенција", "sv": "Resebyrå", "ta": "பயண முகவர்", "th": "นายหน้าท่องเที่ยว", "tr": "Seyahat Acentesi", "uk": "Туристична агенція", "vi": "Văn phòng Du lịch", "yue": "旅行社", "zh-CN": "旅行社", "zh-HK": "旅行社", "zh-TW": "旅行社" } }, "office/accountant": { "title": { "C": "Accountant Office", "am": "ሒሳብ ሠራተኛ", "ms": "Pejabat Akauntan", "af": "Boekhouer", "ar": "مكتب محاسب", "ast": "Contable", "br": "Kontour", "ca": "Oficina comptable", "cs": "Účetnictví", "cy": "Swyddfa Gyfrifydd", "da": "Revisor-kontor", "de": "Buchhaltungsbüro", "el": "Λογιστικό Γραφείο", "en-GB": "Accountant Office", "en": "Accountant Office", "eo": "Oficejo de kontisto", "es": "Oficina de contador", "et": "Raamatupidamisteenus", "fa": "دفتر حسابدار", "fi": "Tilintarkastustoimisto", "fr": "Comptable", "gl": "Oficina contábel", "he": "משרד רואה חשבון", "hu": "Könyvelőiroda", "is": "Bókhaldsskrifstofa", "it": "Commercialista", "ja": "会計事務所(主に法人向け)", "ko": "회계사 사무소", "mk": "Сметководствено биро", "nl": "Boekhouder", "no": "Revisorkontor", "pl": "Biuro rachunkowe", "pt-BR": "Contabilidade", "pt": "Contabilista", "ru": "Бухгалтер", "sk": "Účtovnícka kancelária", "sr": "Рачуноводствена канцеларија", "sv": "Bokhållare", "th": "สำนักงานบัญชี", "tr": "Muhasebeci", "uk": "Бухгалтер", "vi": "Văn phòng Kế toán", "zh-CN": "会计师事务所", "zh-TW": "會計師事務所" } }, "office/adoption_agency": { "title": { "C": "Adoption Agency", "ms": "Agensi Pengambilan Anak Angkat", "ar": "Adoption Agency", "br": "Ajañs advugelañ", "ca": "Agència d'adopció", "cs": "Adopční agentura", "cy": "Asiantaeth Mabwysiadu", "da": "Adoptionsbureau", "de": "Adoptionsagentur", "el": "Οργανισμός Υιοθεσίας", "en-GB": "Adoption Agency", "en": "Adoption Agency", "eo": "Oficejo de adopto", "es": "Agencia de adopción", "et": "Lapsendamisbüroo", "fa": "سازمان بهزیستی", "fi": "Adoptiotoimisto", "fr": "Agence d'adoption", "gl": "Axencia de adopción", "he": "סוכנות אימוץ", "hr": "Agencija za posvajanje", "hu": "Örökbefogadási ügynökség", "is": "Ættleiðingaskrifstofa", "it": "Agenzia per adozioni", "ja": "養子縁組み機関", "ko": "입양기관", "lv": "Adopcijas Aģentūra", "mk": "Агенција за посвојување", "nl": "Adoptiebureau", "no": "Adopsjonsbyrå", "pl": "Ośrodek adopcyjny", "pt-BR": "Agência de Adoção", "pt": "Agência de adoção", "ru": "Агенство по усыновлению", "sk": "Adopčná agentúra", "sr": "Агенција за усвајање", "sv": "Adoptionsbyrå", "th": "หน่วยงานรับเลี้ยงบุตรบุญธรรม", "tr": "Evlat Edinme Ajansı", "uk": "Агенція з усиновлення", "vi": "Cơ quan Nhận Con nuoi", "zh-CN": "领养中介", "zh-TW": "領養代理" } }, "office/advertising_agency": { "title": { "C": "Advertising Agency", "am": "የማስታወቂያ ድርጅት", "ms": "Agensi Pengiklanan", "af": "Advetensieagentskap", "ar": "وكالة إعلانية", "ast": "Axencia de publicidá", "br": "Ajañs bruderezh", "ca": "Agència de publicitat", "cs": "Reklamní agentura", "cy": "Asiantaeth Hysbysebu", "da": "Reklamebureau", "de": "Werbeagentur", "el": "Διαφημιστική", "en-GB": "Advertising Agency", "en": "Advertising Agency", "eo": "Oficejo de reklamo", "es": "Agencia de publicidad", "et": "Reklaamibüroo", "fa": "کانون تبلیغاتی", "fi": "Mainostoimisto", "fr": "Agence de publicité", "gl": "Axencia de publicidade", "he": "סוכנות פרסום", "hr": "Reklamna agencija", "hu": "Reklámügynökség", "is": "Auglýsingastofa", "it": "Agenzia pubblicitaria", "ja": "広告代理店", "ko": "광고 대행사", "lt": "Reklamos agentūra", "mk": "Рекламна агенција", "nl": "Reclamebureau", "no": "Reklamebyrå", "pl": "Agencja reklamowa", "pt-BR": "Agência de Publicidade", "pt": "Agência de publicidade", "ru": "Рекламное агенство", "sk": "Reklamná agentúra", "sr": "Рекламна агенција", "sv": "Reklambyrå", "ta": "விளம்பர முகவர்", "th": "ตัวแทนโฆษณา", "tr": "Reklam Ajansı", "uk": "Рекламна агенція", "vi": "Cơ sở Quảng cáo", "zh-CN": "广告中介", "zh-TW": "廣告代理公司" } }, "office/architect": { "title": { "C": "Architect Office", "am": "አርኪቴክት", "ms": "Pejabat Arkitek", "af": "Argitek", "ar": "مكتب مهندس معماري", "br": "Tisavour", "ca": "Despatx d'arquitectura", "cs": "Kancelář architekta", "cy": "Swyddfa Bensaer", "da": "Arkitekt-kontor", "de": "Architekturbüro", "el": "Αρχιτεκτονικό Γραφείο", "en-GB": "Architect Office", "en": "Architect Office", "eo": "Oficejo de arĥitekturisto", "es": "Oficina de arquitecto", "et": "Arhitektuuribüroo", "eu": "Arkitektura bulegoa", "fa": "دفتر معماری", "fi": "Arkkitehtitoimisto", "fr": "Architecte", "gl": "Oficina de arquitectura", "he": "משרד אדריכלים", "hr": "Arhitektonski ured", "hu": "Építésziroda", "is": "Arkitektastofa", "it": "Studio di architettura", "ja": "設計事務所", "ko": "건축가 사무소", "lt": "Architekto biuras", "lv": "Arhitekta birojs", "mk": "Архитектонско биро", "nl": "Architectenbureau", "no": "Arkitektkontor", "pl": "Architekt", "pt-BR": "Arquitetura", "pt": "Arquiteto", "ru": "Архитектурное бюро", "sk": "Architektonická kancelária", "sr": "Архитектонска канцеларија", "sv": "Arkitektbyrå", "th": "สำนักงานสถาปนิก", "tr": "Mimarlık Ofisi", "uk": "Архітектор", "vi": "Văn phòng Kiến trúc sư", "zh-CN": "建筑事务所", "zh-TW": "建築師事務所" } }, "office/association": { "title": { "C": "Nonprofit Organization Office", "am": "ማኅበር", "ms": "Pejabat Pertubuhan Bukan Untung", "ar": "مكتب منظمة غير ربحية", "ast": "Oficina d'ONG", "br": "Burev aozadur e-maez-gouarnamant", "ca": "Oficina d'una organització sense ànim de lucre", "cs": "Kancelář neziskové organizace", "cy": "Swyddfa Gorff Nid-er-elw", "da": "Almennyttigt kontor", "de": "Büro eines Berufs- oder Interessenverbands", "el": "Μη Κερδοσκοπικός Οργανισμός", "en-GB": "Nonprofit Organization Office", "en": "Nonprofit Organization Office", "eo": "Oficejo de ne-profit-cela organizaĵo", "es": "Oficina de organización sin fines de lucro", "et": "MTÜ kontor", "fa": "دفتر سازمان غیر انتفاعی", "fi": "Voittoa tavoittelematon järjestö", "fr": "Bureau d'association", "gl": "Oficina de asociación", "he": "ארגון ללא מטרת רווח", "hr": "Ured neprofitne udruge", "hu": "Egyesület irodája", "is": "Skrifstofa frjálsra félagasamtaka", "it": "Ufficio associazione senza scopo di lucro", "ja": "非営利組織", "ko": "비영리 단체 사무소", "lt": "Ne pelno organizacijos biuras", "mk": "Непрофитна организација", "nl": "Kantoor van non-profitorganisatie", "pl": "Organizacja non-profit", "pt-BR": "Organização sem fins lucrativos", "pt": "Associação sem fins lucrativos", "ru": "Ассоциация (союз)", "sk": "Združenie / Organizácia", "sr": "Непрофитна канцеларија", "sv": "Frivilligorganisation", "th": "องค์กรที่ไม่แสวงหาผลกำไร", "tr": "Yardım Kuruluşu", "uk": "Неприбуткова організація", "vi": "Tổ chức Phi lợi nhuận", "zh-CN": "非营利机构办公室", "zh-TW": "非營利組織辦公室" } }, "office/bail_bond_agent": { "title": { "C": "Bail Bond Agent" } }, "office/charity": { "title": { "C": "Charity Office", "ms": "Pejabat Kebajikan", "af": "Liefdadigheidskantoor", "ar": "مكتب منظمة خيرية", "ca": "Entitat caritativa", "cs": "Kancelář charity", "cy": "Swyddfa Elusen", "da": "Velgørenhedskontor", "de": "Wohlfahrtseinrichtung", "el": "Φιλανθρωπική Υπηρεσία", "en-GB": "Charity Office", "en": "Charity Office", "eo": "Oficejo de almoza organizaĵo", "es": "Oficina de beneficencia", "et": "Heategevusasutuse büroo", "fa": "دفتر خیریه", "fi": "Hyväntekeväisyysjärjestö", "fr": "Organisation de bienfaisance/charité", "gl": "Oficina da caridade", "he": "משרד צדקה", "hu": "Jótékonysági szervezet irodája", "is": "Skrifstofa góðgerðasamtaka", "it": "Organizzazione benefica", "ja": "慈善団体", "ko": "자선 단체 사무소", "lt": "Labdaros biuras", "mk": "Добротворна организација", "nl": "Kantoor van liefdadigheidsinstelling", "no": "Veldedighetskontor", "pl": "Organizacja charytatywna", "pt-BR": "Caridade", "pt": "Instituição de caridade", "ru": "Благотворительная организация", "sk": "Charitatívna organizácia", "sr": "Добротворна канцеларија", "sv": "Välgörenhetsorganisation", "th": "สำนักงานการกุศล", "tr": "Hayır Kurumu", "uk": "Благодійна організація", "vi": "Tổ chức Từ thiện", "zh-CN": "慈善机构", "zh-TW": "慈善機構" } }, "office/company": { "title": { "C": "Corporate Office", "am": "ኩባንያ", "ar": "مكتب شركة / مؤسسة", "ca": "Oficina corporativa", "cs": "Kancelář korporace", "cy": "Swyddfa Gorfforaethol", "da": "Virksomhedskontor", "de": "Firmenbüro", "el": "Εταιρικό Γραφείο", "en-GB": "Corporate Office", "en": "Corporate Office", "eo": "Oficejo de firmao", "es": "Oficina corporativa", "et": "Ettevõtte kontor", "fa": "دفتر شرکت خصوصی", "fi": "Yritystoimisto", "fr": "Bureau d'entreprise", "gl": "Oficina corporativa", "he": "משרד תאגידי", "hr": "Ured firme", "hu": "Vállalati iroda", "is": "Skrifstofa fyrirtækis", "it": "Ufficio aziendale", "ja": "会社", "ko": "기업 사무소", "lt": "Korporacijos biuras", "mk": "Деловни простории", "nl": "Kantoor van bedrijf", "pl": "Biuro firmy", "pt-BR": "Empresa (não especificada)", "pt": "Empresa (não especificada)", "ru": "Частная компания", "sk": "Kancelária súkromnej spoločnosti", "sr": "Пословна канцеларија", "sv": "Företagskontor", "th": "บริษัท", "tr": "Şirket", "uk": "Офіс компанії", "vi": "Văn phòng Công ty", "zh-CN": "企业公司", "zh-TW": "公司辦公室" } }, "office/consulting": { "title": { "C": "Consultancy Office", "ar": "مكتب شركة استشارية", "cs": "Poradenská kancelář", "cy": "Swyddfa Ymgynghoriaeth", "da": "Konsulentkontor", "de": "Consulting/Beratungs-Büro", "el": "Υπηρεσία Συμβούλων", "en-GB": "Consultancy Office", "en": "Consultancy Office", "eo": "Oficejo de konsilado por firmaoj", "es": "Oficina de consultora", "et": "Konsultatsioonifirma kontor", "fa": "دفتر مشاوره", "fi": "Konsulttitoimisto", "fr": "Bureau de consultant", "gl": "Oficina de consultoría", "he": "משרד ייעוץ", "hu": "Tanácsadó cég irodája", "it": "Studio di consulenza", "ja": "コンサルティング事務所", "ko": "컨설팅 사무소", "mk": "Советодавно биро", "nl": "Adviesbureau", "pl": "Biuro firmy konsultingowej", "pt-BR": "Consultoria", "pt": "Empresa de consultadoria", "ru": "Консультационная компания", "sk": "Poradenská spoločnosť", "sr": "Консултантска канцеларија", "sv": "Konsultkontor", "th": "สำนักงานที่ปรึกษา", "tr": "Danışmanlık Ofisi", "uk": "Консалтингова фірма", "vi": "Văn phòng Tư vấn", "zh-CN": "咨询公司办公室", "zh-TW": "諮詢處" } }, "office/diplomatic": { "title": { "C": "Diplomatic Office", "af": "Diplomatiekekantoor", "ar": "مكتب دبلوماسي", "bg": "Дипломатически офис", "br": "Savadur diplomatek", "ca": "Oficina diplomàtica", "cs": "Diplomatická kancelář", "cy": "Swyddfa Llysgenhadol", "da": "Diplomatkontor", "de": "Diplomatische und konsularische Vertretung", "el": "Διπλωματική Υπηρεσία", "en-GB": "Diplomatic Office", "en": "Diplomatic Office", "eo": "Oficejo diplomatia", "es": "Oficina diplomática", "et": "Diplomaatiline büroo", "fa": "دفتر دیپلماتیک / امور خارجه", "fi": "Diplomaattinen toimisto", "fr": "Bâtiment diplomatique", "gl": "Oficina diplomática", "he": "משרד דיפלומטי", "hu": "Diplomáciai iroda", "it": "Ufficio diplomatico", "ja": "外交施設", "ko": "외교 사무소", "mk": "Дипломатска служба", "nl": "Diplomatisch kantoor", "no": "Diplomatkontor", "pl": "Placówka dyplomatyczna", "pt-BR": "Diplomático", "pt": "Escritório diplomático", "ru": "Дипломатическое учреждение", "sk": "Diplomatický úrad", "sr": "Дипломатска канцеларија", "sv": "Diplomatkontor", "th": "สถานฑูต", "tr": "Diplomatik Ofis", "uk": "Дипломатична установа", "vi": "Văn phòng Ngoại giao", "zh-CN": "外交代表机构", "zh-TW": "外交辦公室" } }, "office/educational_institution": { "title": { "C": "Educational Institution", "am": "የትምህርት ተቋም", "bs": "Obrazovna institucija", "id": "Institusi Pendidikan", "ms": "Institusi Pendidikan", "af": "Opvoedkundige instelling", "ar": "مكتب مؤسسة تعليمية", "ast": "Institución educativa", "br": "Kreizenn stummañ", "ca": "Institució Educativa", "cs": "Vzdělávací instituce", "cy": "Sefydliad Addysgol", "da": "Uddannelsesinstitution", "de": "Bildungseinrichtung", "el": "Εκπαιδευτικό Ίδρυμα", "en-GB": "Educational Institution", "en": "Educational Institution", "eo": "Oficejo de edukada institucio", "es": "Oficina de institución educativa", "et": "Haridusasutuse kontor", "fa": "مؤسسه آموزشی", "fi": "Koulutushallinnon toimisto", "fr": "Centre de formation", "gl": "Institución educativa", "he": "מוסד חינוכי", "hr": "Obrazovna ustanova", "hu": "Oktatási intézmény", "is": "Menntastofnun", "it": "Istituto d'Istruzione", "ja": "教育機関事務所", "ko": "교육 기관", "lt": "Edukacinis institutas", "lv": "Izglītības Iestāde", "mk": "Образовна установа", "nl": "Kantoor van onderwijsinstelling", "no": "Utdanningsinstitusjon", "pl": "Biuro instytucji edukacyjnej", "pt-BR": "Escritório de instituição educacional", "pt": "Instituição de ensino", "ro": "Instituție Educațională", "ru": "Администрация общеобразовательного учреждения", "sk": "Úrad vzdelávacej organizácie", "sl": "Izobraževalna ustanova", "sr": "Образовна институција", "sv": "Utbildningskontor", "th": "สถาบันการศึกษา", "tr": "Eğitim Kurumu", "uk": "Офіс освітнього закладу", "vi": "Học viện", "yue": "敎育機構", "zh-CN": "教育机构", "zh-HK": "敎育機構", "zh-TW": "教育機構" } }, "office/employment_agency": { "title": { "C": "Employment Agency", "am": "የስራ ቅጥር ኤጀንሲ", "bs": "Agencija za zapošljavanje", "id": "Agen Tenaga Kerja", "ms": "Agensi Pekerjaan", "af": "Werksagentskap", "ar": "مكتب وكالة توظيف", "ast": "Axencia d'emplegu", "br": "Ajañs implijout", "ca": "Oficina de treball", "cs": "Úřad práce", "cy": "Asiantaeth Cyflogi", "da": "Arbejdsformidling", "de": "Arbeitsvermittlung", "el": "Γραφείο Ευρέσεως Εργασίας", "en-GB": "Employment Agency", "en": "Employment Agency", "eo": "Dungoficejo", "es": "Agencia de empleo", "et": "Tööhõivekontor", "fa": "آژانس کاریابی", "fi": "Työnvälitystoimisto", "fr": "Agence pour l'emploi", "gl": "Oficina de emprego", "he": "סוכנות כוח אדם", "hu": "Munkaügyi központ", "is": "Atvinnumiðlun", "it": "Agenzia per l'impiego", "ja": "職業安定所", "ko": "직업 소개소", "lt": "Įdarbinimo agentūra", "mk": "Агенција за вработување", "nl": "Uitzendbureau", "no": "Bemanningsbyrå", "pl": "Agencja zatrudnienia", "pt-BR": "Agência de Empregos", "pt": "Agência de emprego", "ro": "Agenție de Muncă", "ru": "Кадровое агентство", "sk": "Zamestnávateľská agentúra", "sl": "Agencija za zaposlovanje", "sr": "Служба за запошљавање", "sv": "Arbetsförmedling", "ta": "வேலைவாய்ப்பு முகவர்", "th": "สำนักงานจัดหางาน", "tr": "İş ve İşçi Bulma Kurumu", "uk": "Кадрова агенція", "vi": "Cơ quan Giới thiệu Việc làm", "yue": "薦人館", "zh-CN": "就业机构", "zh-HK": "職業介紹所", "zh-TW": "就業服務站" } }, "office/energy_supplier": { "title": { "C": "Energy Supplier Office", "ms": "Pejabat Pembekal Tenaga", "af": "Energieverskafferkantoor", "ar": "مكتب شركة مرافق الكهرباء", "ast": "Oficina de distribuidora d'enerxía", "br": "Pourvezer tredan", "ca": "Oficina d'una Distribuïdora Energètica", "cs": "Kancelář dodavatele elektřiny", "cy": "Swyddfa Gyflenwr Ynni", "da": "Energiforsyningskontor", "de": "Energieversorgungsunternehmen", "el": "Κατάστημα Παρόχου Ενέργειας", "en-GB": "Energy Supplier Office", "en": "Energy Supplier Office", "eo": "Oficejo de elektr-provizanto", "es": "Oficina de proveedor de energía", "et": "Energiafirma kontor", "fa": "دفتر تأمین کننده انرژی", "fi": "Energiayhtiö", "fr": "Fournisseur d'énergie", "gl": "Oficina de empresa enerxética", "he": "משרד ספק חשמל", "hr": "Uredi opskrbljivača energijom", "hu": "Energiaszolgáltató irodája", "is": "Orkusöluskrifstofa", "it": "Ufficio azienda fornitrice di energia", "ja": "エネルギー供給者", "ko": "에너지 공급자 사무소", "lv": "Elektrodevēja birojs", "mk": "Енергостопанска служба", "nl": "Kantoor van energiemaatschappij", "pl": "Biuro dostawcy energii", "pt-BR": "Fornecedor de energia", "pt": "Distribuidor de energia", "ru": "Офис поставщика электроэнергии", "sk": "Dodávateľ energie", "sr": "Електродистрибутивна канцеларија", "sv": "Energibolag", "th": "สำนักงานจัดหาพลังงาน", "tr": "Enerji Kurumu Şubesi", "uk": "Електропостачальна компанія", "vi": "Văn phòng Công ty Điện lực", "zh-CN": "电力公司", "zh-TW": "電力公司辦公室" } }, "office/estate_agent": { "title": { "C": "Real Estate Office", "am": "የሪል እስቴት ወኪል", "bs": "Agencija za nekretnine", "id": "Kantor Real Estate", "ms": "Pejabat Hartanah", "af": "Eiendomsagent", "ar": "مكتب عقاري", "ast": "Axencia inmobiliaria", "bg": "Брокер", "br": "Ajañs-tiez", "ca": "Agència immobiliària", "cs": "Realitní kancelář", "da": "Ejendomsmægler", "de": "Immobilienmakler", "el": "Κτηματομεσιτική Υπηρεσία", "en-GB": "Estate Agent", "en": "Real Estate Office", "eo": "Oficejo de nemoveblaĵisto", "es": "Inmobiliaria", "et": "Kinnisvarabüroo", "fa": "دفتر املاک", "fi": "Kiinteistönvälitystoimisto", "fr": "Agence immobilière", "gl": "Axencia inmobiliaria", "he": "משרד נדל״ן", "hu": "Ingatlaniroda", "is": "Fasteignasöluskrifstofa", "it": "Agenzia immobiliare", "ja": "不動産代理店", "ko": "부동산 사무소", "lt": "Nekilnojamo turto biuras", "mk": "Агенција за недвижности", "nl": "Makelaarskantoor", "no": "Eiendomsmegler", "pl": "Agencja nieruchomości", "pt-BR": "Imobiliária", "pt": "Agência imobiliária", "ro": "Agenție Imobiliară", "ru": "Агентство недвижимости", "sk": "Realitná agentúra", "sl": "Nepremičninska agencija", "sr": "Агенција за некретнине", "sv": "Mäklare/bostadsförmedling", "th": "สำนักงานอสังหาริมทรัพย์", "tr": "Gayrimenkul Ofisi", "uk": "Агенція з нерухомості", "vi": "Văn phòng Bất động sản", "yue": "管業處", "zh-CN": "地产中介", "zh-HK": "地產", "zh-TW": "房地產仲介" } }, "office/financial": { "title": { "C": "Financial Office", "bs": "Finansijski ured", "id": "Kantor Keuangan", "ms": "Pejabat Kewangan", "af": "Finansieële kantoor", "ar": "مكتب مالي", "ast": "Oficina financiera", "ca": "Oficina d'una financera", "cs": "Finanční úřad", "cy": "Swyddfa Gyllid", "da": "Finanskontor", "de": "Finanzvermittlung", "el": "Υπηρεσία Οικονομικών", "en-GB": "Financial Office", "en": "Financial Office", "eo": "Financa oficejo", "es": "Financiera", "et": "Rahandusteenuste firma kontor", "fa": "اداره مالی", "fi": "Taloustoimisto", "fr": "Bureau d'entreprise financière", "gl": "Oficina financeira", "he": "משרד פיננסי", "hu": "Pénzügyi vállalat irodája", "is": "Fjármálafyrirtæki", "it": "Ufficio finanziario", "ja": "会計事務所(主に個人向け)", "ko": "금융 사무소", "lt": "Finansų biuras", "mk": "Финансиска служба", "nl": "Kantoor van financiële instelling", "pl": "Biuro firmy finansowej", "pt-BR": "Instituição financeira", "pt": "Empresa financeira", "ro": "Oficiu Financiar", "ru": "Финансовая организация", "sk": "Finančná firma", "sl": "Finančna agencija", "sr": "Финансијска канцеларија", "sv": "Bankkontor", "th": "สำนักงานการเงิน", "tr": "Finans Ofisi", "uk": "Фінансове управління", "vi": "Văn phòng Tài chính", "yue": "財務部寫字樓", "zh-CN": "金融机构", "zh-HK": "金融機構辦事處", "zh-TW": "金融機構辦公室" } }, "office/financial_advisor": { "title": { "C": "Financial Advisor", "ms": "Penasihat Kewangan", "af": "Finansieële adviseur", "ar": "المستشار المالي", "br": "Kuzulier-arc'hant", "ca": "Assessoria financera", "cs": "Finanční poradce", "de": "Finanzberatung", "el": "Οικονομικός Σύμβουλος", "en-GB": "Financial Advisor", "en": "Financial Advisor", "eo": "Oficejo de financa konsilisto", "es": "Asesor financiero", "et": "Rahandusnõustaja büroo", "fa": "مشاور مالی", "fi": "Talousneuvonta", "fr": "Conseiller financier", "gl": "Asesor financeiro", "he": "ייעוץ כלכלי", "hu": "Pénzügyi tanácsadó", "it": "Consulente finanziario", "ja": "ファイナンシャル・アドバイザー", "ko": "재정 자문 사무소", "mk": "Финансов советник", "nl": "Financieel adviseur", "pl": "Doradca finansowy", "pt-BR": "Conselheiro financeiro", "pt": "Conselheiro financeiro", "ru": "Финансовый советник", "sk": "Finančný poradca", "sr": "Финансијски саветник", "sv": "Finansiell rådgivare", "th": "ที่ปรึกษาทางการเงิน", "tr": "Finans Danışmanı", "uk": "Радник з фінансових питань", "vi": "Cố vấn Tài chính", "zh-CN": "财务顾问", "zh-TW": "財務顧問" } }, "office/forestry": { "title": { "C": "Forestry Office", "ms": "Pejabat Perhutanan", "ar": "مكتب إدارة الغابات", "br": "Mererezh ar c'hoadoù", "ca": "Oficina forestal", "cs": "Kancelář lesní správy", "da": "Skovbrugskontor", "de": "Forstverwaltung", "el": "Υπηρεσία Δασοκομίας", "en-GB": "Forestry Office", "en": "Forestry Office", "eo": "Oficejo de arbar-mastrumo", "es": "Oficina forestal", "et": "Metsaamet", "fa": "دفتر جنگلداری", "fi": "Metsätalousvirasto", "fr": "Administration forestière", "gl": "Oficina forestal", "he": "משרד יעור", "hu": "Erdészeti iroda", "is": "Skrifstofa skógarvarða", "it": "Ufficio forestale", "ja": "林業事務所", "ko": "삼림 관리 사무소", "lv": "Mežniecības birojs", "mk": "Шумарска служба", "nl": "Bosbeheerkantoor", "no": "Skogbrukskontoret", "pl": "Leśnictwo", "pt-BR": "Gestão florestal", "pt": "Posto florestal", "ru": "Лесоводство", "sk": "Lesný úrad", "sr": "Шумарска канцеларија", "sv": "Skogsbolag", "th": "สำนักงานป่าไม้", "tr": "Ormancılık Şubesi", "uk": "Лісництво", "vi": "Văn phòng Lâm nghiệp", "zh-CN": "林务管理", "zh-TW": "林業事業辦公室" } }, "office/foundation": { "title": { "C": "Foundation Office", "am": "ተቋም", "ms": "Pejabat Yayasan", "ar": "مكتب مؤسسة", "ast": "Oficina de fundación", "br": "Diazezadur", "ca": "Oficina d'una fundació", "cs": "Kancelář nadace", "da": "Fondskontor", "de": "Stiftung", "el": "Υπηρεσία Ιδρύματος", "en-GB": "Foundation Office", "en": "Foundation Office", "eo": "Oficejo de fondaĵo", "es": "Oficina de fundación", "et": "Sihtasutuse büroo", "fa": "دفتر بنیاد", "fi": "Säätiö", "fr": "Fondation", "gl": "Oficina de fundación", "he": "משרד קרן", "hu": "Alapítvány irodája", "is": "Skrifstofa sjálfseignarstofnunar", "it": "Fondazione", "ja": "財団", "ko": "재단 사무소", "mk": "Задолжбина", "nl": "Kantoor van stichting", "pl": "Fundacja", "pt-BR": "Fundação", "pt": "Fundação", "ru": "Фонд", "sk": "Kancelária nadácie", "sr": "Фондациона канцеларија", "sv": "Stiftelse", "th": "มูลนิธิ", "tr": "Vakıf", "uk": "Фундація", "vi": "Quỹ Từ thiện", "zh-CN": "基金办公室", "zh-TW": "基金會辦公室" } }, "office/government": { "title": { "C": "Government Office", "am": "የመንግስት ድርጅት", "bs": "Vladin ured", "dv": "ސަރުކާރު އޮފީސްތައް", "id": "Kantor Pemerintah", "ms": "Pejabat Kerajaan", "so": "Xafiis Dowladeed", "af": "Regeringskantoor", "ar": "مكتب/دائرة حكومية", "ast": "Oficina gubernamental", "br": "Melestradurezh publik", "ca": "Oficina governamental", "cs": "Státní úřad", "cy": "Swyddfa Lywodraeth", "da": "Statsligt kontor", "de": "Behörde", "el": "Κρατική Υπηρεσία", "en-GB": "Government Office", "en": "Government Office", "eo": "Registara oficejo", "es": "Oficina de gobierno", "et": "Valitsuse kontor", "fa": "دفتر دولتی", "fi": "Julkishallinnon toimisto", "fr": "Administration publique", "gl": "Oficina gobernamental", "he": "משרד ממשלתי", "hr": "Državni ured", "hu": "Kormányzati hivatal", "is": "Opinber stofnun", "it": "Ufficio governativo", "ja": "行政機関事務所", "ko": "관청", "lt": "Vyriausybės biuras", "lv": "Valdības birojs", "mk": "Управна служба", "nl": "Overheidskantoor", "no": "Regjeringskontor", "pl": "Biuro administracji publicznej", "pt-BR": "Órgão governamental", "pt": "Escritório governamental", "ro": "Oficiu de Guvern", "ru": "Государственное учреждение", "sk": "Vládny úrad", "sl": "Vladna agencija", "sr": "Владина канцеларија", "sv": "Myndighet", "ta": "அரசு அலுவலகம்", "th": "หน่วยงานราชการ", "tr": "Devlet Dairesi", "uk": "Уряд", "vi": "Công sở", "yue": "衙門", "zh-CN": "政府办公点", "zh-HK": "政府辦公室", "zh-TW": "政府機關" } }, "office/guide": { "title": { "C": "Tour Guide Office", "ms": "Pejabat Pemandu Pelancong", "ar": "مكتب الدليل السياحي", "ca": "Oficina de guies turístics", "cs": "Kancelář turistického průvodce", "da": "Turguidekontor", "de": "Fremdenführer", "el": "Ταξιδιωτικό Γραφείο", "en-GB": "Tour Guide Office", "en": "Tour Guide Office", "eo": "Oficejo de vojaĝ-gvido", "es": "Oficina de turismo", "et": "Giidibüroo", "fa": "دفتر راهنمای تور", "fi": "Turistiopastoimisto", "fr": "Bureau des guides", "gl": "Oficina de guías turísticos", "he": "משרד תיירות", "hu": "Idegenvezetői iroda", "is": "Skrifstofa leiðsögumanna", "it": "Ufficio guide turistiche", "ja": "ツアーガイド", "ko": "여행 가이드 사무소", "mk": "Туристички водич", "nl": "Gidsenkantoor", "pl": "Biuro przewodnickie", "pt-BR": "Guia turístico", "pt": "Guia turístico", "ru": "Туристические гиды", "sk": "Kancelária sprievodcu", "sr": "Туристичка канцеларија", "sv": "Guidekontor", "th": "สำนักงานมัคคุเทศก์", "tr": "Tur Rehberi", "uk": "Гід", "vi": "Văn phòng Hướng dẫn Du lịch", "zh-CN": "导游机构", "zh-TW": "導遊辦公室" } }, "office/insurance": { "title": { "C": "Insurance Office", "am": "ኢንሹራንስ", "bs": "Ured za osiguranje", "id": "Kantor Asuransi", "ms": "Pejabat Insurans", "af": "Versekeringskantoor", "ar": "مكتب تأمينات", "ast": "Oficina de seguros", "bg": "Застрахователен офис", "br": "Ajañs asurañs", "ca": "Oficina d'una Companyia Asseguradora", "cs": "Pojišťovna", "cy": "Swyddfa Yswiriant", "da": "Forsikringselskab", "de": "Versicherungsbüro", "el": "Ασφαλιστικό Γραφείο", "en-GB": "Insurance Office", "en": "Insurance Office", "eo": "Oficejo de asekur-kompanio", "es": "Aseguradora", "et": "Kindlustusbüroo", "fa": "دفتر بیمه", "fi": "Vakuutustoimisto", "fr": "Agence d'assurance", "gl": "Oficina de seguros", "he": "משרד ביטוח", "hr": "Ured osiguravajućeg društva", "hu": "Biztosító", "is": "Tryggingaskrifstofa", "it": "Assicurazione", "ja": "保険会社・代理店", "ko": "보험 사무소", "lt": "Draudimo įstaiga", "lv": "Apdrošināšanas birojs", "mk": "Осигурително друштво", "nl": "Verzekeringskantoor", "no": "Forsikringskontor", "pl": "Agencja ubezpieczeniowa", "pt-BR": "Seguradora", "pt": "Agência de seguros", "ro": "Oficiu de Asigurare", "ru": "Страховая компания", "sk": "Poisťovacia firma", "sl": "Zavarovalnica", "sr": "Осигуравајуће друштво", "sv": "Försäkringskontor", "th": "สำนักงานประกันภัย", "tr": "Sigorta Acentesi", "uk": "Страхова компанія", "vi": "Văn phòng Bảo hiểm", "yue": "保險公司寫字樓", "zh-CN": "保险公司", "zh-HK": "保險公司辦公室", "zh-TW": "保險公司辦公室" } }, "office/lawyer": { "title": { "C": "Law Office", "am": "ጠበቃ", "bs": "Pravni ured", "id": "Kantor Hukum", "ms": "Pejabat Undang-undang", "ar": "مكتب قانوني", "ast": "Despachu d'abogaos", "bg": "Адвокат", "ca": "Bufet d'advocats", "cs": "Právní kancelář", "cy": "Swyddfa Gyfraith", "da": "Advokatkontor", "de": "Anwaltskanzlei", "el": "Δικηγορικό Γραφείο", "en-GB": "Law Office", "en-NZ": "Lawyer", "en": "Law Office", "eo": "Oficejo de leĝisto", "es": "Despacho de abogados", "et": "Advokaadibüroo", "fa": "دفتر حقوقی", "fi": "Lakitoimisto", "fr": "Cabinet d'avocats", "gl": "Bufete", "he": "משרד עורכי דין", "hr": "Odvjetnički ured", "hu": "Ügyvéd", "is": "Lögmannaskrifstofa", "it": "Studio legale", "ja": "法律事務所", "ko": "법률 사무소", "lt": "Advokatų kontora", "mk": "Правник", "nl": "Advocatenkantoor", "no": "Advokatkontor", "pl": "Prawnik", "pt-BR": "Advocacia", "pt": "Escritório de advocacia", "ro": "Cabinet de Avocatură", "ru": "Юридические услуги", "sk": "Právna kancelária", "sl": "Pravna pisarna", "sr": "Адвокатска канцеларија", "sv": "Advokatkontor", "ta": "சட்ட அலுவலகம்", "th": "สำนักงานกฎหมาย", "tr": "Hukuk Bürosu", "uk": "Адвокатське бюро", "vi": "Văn phòng Luật sư", "yue": "律師事務所", "zh-CN": "律师事务所", "zh-HK": "律師事務所", "zh-TW": "律師事務所" } }, "office/moving_company": { "title": { "C": "Moving Company Office", "ms": "Pejabat Syarikat Pemindahan", "ar": "مكتب شركة نقل", "br": "Embregerezh dilojañ", "cs": "Kancelář stěhovací služby", "cy": "Swyddfa Gwmni Symud", "da": "Flyttefirmakontor", "de": "Umzugsfirma", "el": "Υπηρεσία Μετακομίσεων", "en-GB": "Moving Company Office", "en": "Moving Company Office", "eo": "Oficejo de transloĝiĝ-helpa firmao", "es": "Oficina de mudanzas", "et": "Kolimisfirma kontor", "fa": "دفتر خدمات باربری / حمل بار", "fi": "Muuttoyhtiö", "fr": "Entreprise de déménagement", "gl": "Oficina de empresa de mudanzas", "he": "משרד תובלה", "hu": "Költöztetőcég irodája", "is": "Skrifstofa flutningafyrirtækis", "it": "Ufficio compagnia di traslochi", "ja": "引っ越し業者", "ko": "이삿짐센터", "mk": "Преселувач", "nl": "Kantoor van verhuisbedrijf", "no": "Flytttefirmakontor", "pl": "Biuro firmy przeprowadzkowej", "pt-BR": "Empresa de mudanças", "pt": "Empresa de mudanças", "ru": "Помощь при переезде", "sk": "Sťahovacia služba", "sr": "Служба за селидбу", "sv": "Flyttfirma", "th": "บริษัทขนย้าย", "tr": "Taşıma Şirketi Ofisi", "uk": "Перевезення речей", "vi": "Văn phòng Công ty Chuyển nhà", "zh-CN": "搬家公司", "zh-TW": "搬家公司辦公室" } }, "office/newspaper": { "title": { "C": "Newspaper Office", "am": "ጋዜጣ", "ms": "Pejabat Akhbar", "af": "Koerant kantoor", "ar": "صحيفة", "ast": "Redacción de periódicu", "br": "Kazetenn", "ca": "Oficines d'un Diari", "cs": "Novinářská redakce", "cy": "Swyddfa Bapur Newydd", "da": "Aviskontor", "de": "Zeitungsredaktion", "el": "Γραφεία Εφημερίδας", "en-GB": "Newspaper Office", "en": "Newspaper Office", "eo": "Oficejo de redakto", "es": "Oficina de periódicos", "et": "Ajalehekirjastus", "fa": "دفتر روزنامه", "fi": "Toimitus", "fr": "Journal", "gl": "Oficina de xornal", "he": "משרד עיתונאות", "hu": "Újságszerkesztőség", "is": "Skrifstofur fréttablaðs", "it": "Ufficio giornalistico", "ja": "新聞社", "ko": "신문사 사무소", "mk": "Новинарска служба", "nl": "Krantredactie", "no": "Avisredaksjon", "pl": "Redakcja gazety lub czasopisma", "pt-BR": "Jornal", "pt": "Jornal", "ru": "Редакция газеты", "sk": "Redakcia novín", "sr": "Новинска канцеларија", "sv": "Tidningsredaktion", "ta": "செய்தித்தாள் அலுவலகம்", "th": "บริษัทหนังสือพิมพ์", "tr": "Gazete Şubesi", "uk": "Редакція газети", "vi": "Văn phòng Tờ báo", "zh-CN": "报社", "zh-HK": "報社辦公室", "zh-TW": "報社辦公室" } }, "office/ngo": { "title": { "C": "NGO Office", "am": "መንግስታዊ ያልሆነ ድርጅት", "bn": "এনজিও অফিস", "bs": "Ured NVO", "id": "Kantor LSM", "ms": "Pejabat Pertubuhan Bukan Kerajaan", "af": "NRO-kantoor", "ar": "مكتب المنظمات العامة الغير حكومية", "ast": "Oficina d'ONG", "br": "Burev AMG", "ca": "Oficina d'una ONG", "cs": "Nezisková organizace", "cy": "Swyddfa Gorff Aflywodraethol", "da": "NGO-kontor", "de": "NGO-Büro – Nichtregierungsorganisation", "el": "Γραφείο ΜΚΟ", "en-GB": "NGO Office", "en": "NGO Office", "eo": "Oficejo de neregistara organizaĵo", "es": "Oficina de ONG", "et": "Vabaühenduse kontor", "fa": "سازمان مردم نهاد", "fi": "Kansalaisjärjestö", "fr": "Organisation non gouvernementale", "gl": "Oficina ONG", "he": "משרד ארגון לא ממשלתי", "hr": "Nevladina organizacija", "hu": "Civil szervezet irodája", "is": "Skrifstofa frjálsra félagasamtaka", "it": "Organizzazione non governativa", "ja": "NGO事務所", "ko": "NGO 사무소", "mk": "НВО", "nl": "Kantoor van NGO", "pl": "Biuro organizacji pozarządowej", "pt-BR": "Sede de ONG", "pt": "ONG", "ro": "Oficiu NGO", "ru": "Общественная организация", "sk": "Mimovládna organizácia", "sl": "Sedež nevladne organizacije", "sr": "Канцеларија НВО", "sv": "Icke-statlig organisation", "th": "บริษัทเอกชน", "tr": "Sivil Toplum Örgütü", "uk": "Недержавна громадська організація", "vi": "Tổ chức Phi chính phủ", "yue": "志顠機構寫字樓", "zh-CN": "非政府组织", "zh-HK": "非政府機構辦公室", "zh-TW": "非政府機構辦公室" } }, "office/notary": { "title": { "C": "Notary Office", "ms": "Pejabat Penyaksi Awam", "af": "Notaris", "ar": "مكتب كتابة عدل / موثق", "ast": "Notaría", "br": "Noter", "ca": "Notaria", "cs": "Kancelář notáře", "cy": "Swyddfa Notari", "da": "Notarkontor", "de": "Notariat", "el": "Γραφείο Συμβολαιογράφων", "en-GB": "Notary Office", "en": "Notary Office", "eo": "Oficejo de notario", "es": "Escribanía / Notaría", "et": "Notaribüroo", "fa": "دفتر اسناد رسمی", "fi": "Notaari", "fr": "Notaire", "gl": "Notaría", "he": "משרד נוטריון", "hu": "Közjegyző", "is": "Skrifstofa lögbókanda", "it": "Ufficio notarile", "ja": "公証役場", "ko": "공증사무소", "lv": "Notāru birojs", "mk": "Нотар", "nl": "Notariskantoor", "pl": "Notariusz", "pt-BR": "Tabelionato", "pt": "Notário", "ru": "Нотариус", "sk": "Notársky úrad", "sr": "Нотарска канцеларија", "sv": "Notarie", "th": "บริษัทรับรองเอกสาร", "tr": "Noter", "uk": "Нотаріус", "vi": "Văn phòng Công chứng", "zh-CN": "公证处", "zh-TW": "公證機構" } }, "office/political_party": { "title": { "C": "Political Party Office", "ar": "مكتب الحزب السياسي", "br": "Burev strollad politikel", "ca": "Oficina d'un partit polític", "cs": "Kancelář politické strany", "cy": "Swyddfa Blaid Gwleidyddol", "da": "Politisk partikontor", "de": "Parteibüro", "el": "Γραφείο Πολιτικού Κόμματος", "en-GB": "Political Party Office", "en": "Political Party Office", "eo": "Oficejo de partio politika", "es": "Oficina del partido político", "et": "Partei kontor", "fa": "دفتر حزب سیاسی", "fi": "Puoluetoimisto", "fr": "Bureau de parti politique", "gl": "Oficina de partido político", "he": "משרד של מפלגה", "hu": "Pártiroda", "it": "Ufficio di un partito", "ja": "政党事務所", "ko": "정당 사무소", "mk": "Партиски штаб", "nl": "Kantoor van een politieke partij", "no": "Partikontor", "pl": "Biuro partii politycznej", "pt-BR": "Partido político", "pt": "Sede partidária", "ru": "Офис политической партии", "sk": "Kancelária politickej strany", "sr": "Канцеларија политичке странке", "sv": "Partikontor", "th": "สำนักงานพรรคการเมือง", "tr": "Siyasi Parti Ofisi", "uk": "Офіс політичної партії", "vi": "Văn phòng Đảng phái Chính trị", "zh-CN": "政党办公室", "zh-TW": "政黨辦公室" } }, "office/private_investigator": { "title": { "C": "Private Investigator Office", "ms": "Pejabat Penyiasat Peribadi", "ar": "مكتب محقق خاص", "br": "Enklasker prevez", "ca": "Oficina d'investigador privat", "cs": "Soukromá detektivní kancelář", "da": "Privatdetektivkontor", "de": "Privatdetektiv", "el": "Γραφείο Ιδιωτικού Ερευνητή", "en-GB": "Private Investigator Office", "en": "Private Investigator Office", "eo": "Oficejo de detektivo", "es": "Oficina de investigador privado", "et": "Eradetektiivi büroo", "fa": "دفتر تحقیقات خصوصی", "fi": "Yksityisetsivä", "fr": "Enquêteur privé/détective", "gl": "Oficina de investigador privado", "he": "משרד חוקר פרטי", "hu": "Magánnyomozó-iroda", "is": "Einkaspæjaraskrifstofa", "it": "Ufficio agenzia investigativa privata", "ja": "私立探偵社", "ko": "사설탐정 사무소", "lv": "Privātizmeklētēja birojs", "mk": "Приватен иследувач", "nl": "Kantoor van privédetective", "no": "Kontor for privat etterforskning", "pl": "Prywatny detektyw", "pt-BR": "Detetive particular", "pt": "Detetive privado", "ru": "Частный сыщик", "sk": "Kancelária súkromného detektíva", "sr": "Детективска канцеларија", "sv": "Privatdetektiv", "ta": "தனியார் துப்பு துலக்கும் அலுவலகம்", "th": "นักสืบเอชน", "tr": "Dedektif", "uk": "Приватний детектив", "vi": "Văn phòng Thám tử Tư", "zh-CN": "私家侦探事务所", "zh-TW": "私家偵探辦公室" } }, "office/quango": { "title": { "C": "Quasi-NGO Office", "ms": "Pejabat Separa NGO", "af": "Kwasi NRO-kantoor", "ar": "مكتب منظمة غير حكومية شبه مستقلة", "br": "Burev hanter-AMG", "ca": "Oficina de quasi-ONG", "cs": "Kancelář kvaziautonomní nevládní organizace", "cy": "Swyddfa Gorff Quasi-Aflywodraethol", "de": "Mittlerorganisation", "el": "Γραφείο σχεδόν-ΜΚΟ", "en-GB": "Quasi-NGO Office", "en": "Quasi-NGO Office", "eo": "Oficejo de duon-registara organizaĵo", "es": "Oficina ONG cuasiautónoma", "et": "Osalise vabaühenduse kontor", "fi": "Kansalaisjärjestön toimisto", "fr": "Autorité administrative indépendante", "gl": "Oficina ONG cuasiautónoma", "he": "משרד ארגון חצי לא ממשלתי", "hu": "Kvázicivil szervezet irodája", "is": "Félagasamtök í samstarfi við hið opinbera (quango)", "it": "Ufficio di una simil ONG", "ja": "準非政府機関", "ko": "준정부조직 사무소", "mk": "Квази-НВО", "nl": "Kantoor van quango", "pl": "Biuro organizacji quasi-pozarządowej", "pt-BR": "Autarquia autônoma", "pt": "ONG subsidiada", "ru": "Полу-независимая некоммерческая организация", "sk": "Kvázi mimovládna organizácia", "sr": "Квази-НВО канцеларија", "sv": "Kvasiautonom icke-statlig organisation", "th": "บริษัทกึ่งรัฐวิสาหกิจกึ่งเอกชน", "tr": "Yarı Özel Sivil Toplum Örgütü", "uk": "Квазі-НГО", "vi": "Tổ chức Bán độc lập Phi chính phủ", "zh-CN": "准非政府组织", "zh-TW": "準非政府組織辦公室" } }, "office/religion": { "title": { "C": "Religious Office", "am": "ሃይማኖት", "af": "Godsdienskantoor", "ar": "مكتب ديني", "br": "Burev relijiel", "ca": "Oficina religiosa", "cs": "Náboženská kancelář", "cy": "Swyddfa Grefyddol", "da": "Religiøst kontor", "de": "Büro einer Glaubensgemeinschaft", "el": "Θρησκευτική Υπηρεσία", "en-GB": "Religious Office", "en": "Religious Office", "eo": "Kancelario religia", "es": "Oficina religiosa", "et": "Usuühingu büroo", "fa": "دفاتر مذهبی", "fi": "Uskonnollinen toimisto", "fr": "Bureau religieux", "gl": "Oficina relixiosa", "he": "משרד לנושאי דת", "hu": "Egyházi iroda", "it": "Ufficio religioso", "ja": "教団事務所", "ko": "종교 사무소", "mk": "Верска служба", "nl": "Religieus kantoor", "no": "Religiøst kontor", "pl": "Biuro organizacji religijnej", "pt-BR": "Religioso", "pt": "Escritório religioso", "ru": "Офис религиозной организации", "sk": "Náboženský úrad", "sr": "Верска канцеларија", "sv": "Religiöst kontor", "th": "สำนักงานศาสนา", "tr": "Dini Ofis", "uk": "Релігійна організація", "vi": "Văn phòng Tôn giáo", "zh-CN": "宗教团体办公室", "zh-TW": "宗教辦公處所" } }, "office/research": { "title": { "C": "Research Office", "am": "ምርምር ቢሮ", "bs": "Ured za istraživanje", "id": "Kantor Riset", "kn": "ಸಂಶೋಧನಾ ಕಛೇರಿ", "ms": "Pejabat Penyelidikan", "af": "Navorsingskantoor", "ar": "مكتب بحوث", "ast": "Despachu d'investigación", "br": "Aozadur enklask skiantel", "ca": "Oficines d'R+D", "cs": "Výzkumný ústav", "cy": "Swyddfa Ymchwil", "da": "Forskning", "de": "Forschungseinrichtung", "el": "Γραφείο Ερευνών", "en-GB": "Research Office", "en": "Research Office", "eo": "Oficejo de scienca esplorado", "es": "Oficina de investigación", "et": "Teadus- ja arendustegevuse kontor", "fa": "سازمان تحقیقاتی و پژوهشی", "fi": "Tutkimustoimisto", "fr": "Organisme de recherche", "gl": "Oficina de investigación", "he": "משרד מחקר", "hr": "Ured za istraživanje", "hu": "Kutatóintézet", "is": "Rannsóknarstofa", "it": "Istituto di Ricerca", "ja": "研究開発オフィス", "ko": "연구 사무소", "lt": "Tyrimų tarnyba", "mk": "Истражувачка служба", "nl": "Onderzoekskantoor", "no": "Forskningskontor", "pl": "Biuro badawcze", "pt-BR": "Pesquisa", "pt": "Centro de investigação", "ro": "Birou de Cercetare", "ru": "Научно-исследовательская организация", "sk": "Kancelária výskumnej spoločnosti", "sl": "Raziskave", "sr": "Истраживачка канцеларија", "sv": "Forskning och utveckling", "ta": "ஆராய்ச்சி அலுவலகம்", "th": "หน่วยงานวิจัย", "tr": "Araştırma Kurumu", "uk": "Дослідницька лабораторія", "vi": "Văn phòng Nghiên cứu", "yue": "研究所", "zh-CN": "研究所", "zh-HK": "研究所", "zh-TW": "研究機構" } }, "office/security": { "title": { "C": "Security Office", "ms": "Pejabat Keselamatan", "ar": "مكتب مؤسسات الحراسات الأمنية", "br": "Ajañs surentez prevez", "ca": "Oficina de seguretat", "cs": "Kancelář hlídače", "cy": "Swyddfa Ddiogelwch", "de": "Sicherheitsdienstleister", "el": "Υπηρεσία Ασφαλείας", "en-GB": "Security Office", "en": "Security Office", "eo": "Oficejo de garda firmao", "es": "Oficina de seguridad", "et": "Turvateenuste firma kontor", "fa": "دفتر امنیت", "fr": "Agence de sécurité privée", "he": "משרד אבטחה", "hu": "Biztonsági iroda", "it": "Ufficio della vigilanza", "ja": "警備会社", "ko": "보안 사무소", "mk": "Обезбедување", "nl": "Kantoor van de beveiliging", "pl": "Biuro ochrony", "pt-BR": "Segurança privada", "pt": "Empresa de segurança privada", "ru": "Офис охраны", "sk": "Kancelária bezpečnostnej agentúry", "sr": "Служба за безбедност", "sv": "Bevakningskontor", "th": "สำนักงานรักษาความปลอดภัย", "tr": "Emniyet Amirliği", "uk": "Охоронна фірма", "vi": "Văn phòng Dịch vụ Bảo vệ", "zh-CN": "安保办公室", "zh-HK": "保安辦公室", "zh-TW": "保全辦公室" } }, "office/surveyor": { "title": { "C": "Surveyor Office", "ms": "Pejabat Juruukur", "ar": "مكتب مساح أرضي", "br": "Mentoniour", "ca": "Oficina d'un agrimensor", "cs": "Zeměměřický úřad", "da": "Landinspektørs kontor", "de": "Sachverständigenbüro", "el": "Γραφείο Επιθεωρητών", "en-GB": "Surveyor Office", "en": "Surveyor Office", "eo": "Oficejo de analiza firmao", "es": "Oficina de agrimensor", "et": "Maamõõtja kontor", "fa": "دفتر نظرسنجی", "fi": "Maanmittaustoimisto", "fr": "Géomètre", "gl": "Oficina de agrimensor", "he": "משרד מודד", "hu": "Földmérő", "is": "Landmælingaskrifstofa", "it": "Ufficio di supervisione", "ja": "土地家屋調査士事務所", "ko": "측량기사 사무소", "mk": "Земјомерна служба", "nl": "Kantoor van landmeter/expert/risicoschatter/schademeter/opiniepeilers/statisticus", "no": "Landmålerkontor", "pl": "Geodeta", "pt-BR": "Peritagem", "pt": "Empresa de peritagem", "ru": "Организация оценки и статистики", "sk": "Stavebný znalec", "sr": "Геодетска канцеларија", "sv": "Undersökning/inspektion", "ta": "நில அளவாய்வாளர் அலுவலகம்", "th": "สำนักงานสำรวจ", "tr": "Harita Mühendisliği", "uk": "Експерт-оцінник", "vi": "Văn phòng Khảo sát", "yue": "量地官寫字樓", "zh-CN": "调查评估办公室", "zh-TW": "測繪公司辦公室" } }, "office/tax_advisor": { "title": { "C": "Tax Advisor Office", "ms": "Pejabat Penasihat Cukai", "af": "Belastingadviseur", "ar": "مستشار الضرائب", "br": "Burev kuzulier-arc'hant", "ca": "Asesoria Fiscal", "cs": "Kancelář daňového poradce", "da": "Skatterådgivningskontor", "de": "Steuerberatungskanzlei", "el": "Γραφείο Φορολογικού Συμβούλου", "en-GB": "Tax Advisor Office", "en": "Tax Advisor Office", "eo": "Oficejo de impost-konsilo", "es": "Oficina de asesor fiscal", "et": "Maksunõustaja büroo", "fa": "دفتر مشاور مالیاتی", "fi": "Veroneuvonta", "fr": "Conseiller fiscal", "gl": "Oficina de xestor fiscal", "he": "משרד יועץ מס", "hu": "Adótanácsadó", "is": "Skattaráðgjafarskrifstofa", "it": "Centro assistenza fiscale", "ja": "税理士事務所", "ko": "세무사 사무소", "mk": "Даночен советник", "nl": "Kantoor van belastingsadviseur", "no": "Skatterådgiverkontor", "pl": "Doradca podatkowy", "pt-BR": "Assessoria fiscal", "pt": "Escritório de consultadoria fiscal", "ru": "Офис консультанта по налогам", "sk": "Daňový poradca", "sr": "Канцеларија пореског саветника", "sv": "Skatterådgivning", "th": "สำนักงานปรึกษาภาษี", "tr": "Vergi Danışmanlığı", "uk": "Податкова консультація", "vi": "Dich vụ Khai thuế", "zh-CN": "税务顾问机构", "zh-TW": "稅務顧問辦公室" } }, "office/telecommunication": { "title": { "C": "Telecom Office", "am": "ቴሌኮሙኒኬሽን", "bn": "টেলিকম অফিস", "bs": "Ured telekoma", "id": "Kantor Telekomunikasi", "ms": "Pejabat Telekom", "af": "Telekommunikasiekantoor", "ar": "مكتب شركات اتصالات", "ast": "Oficina de telecomunicaciones", "br": "Ajañs pellgehenterezh", "ca": "Oficines d'una companyia de telecomunicacions", "cs": "Telekomunikační společnost", "da": "Teleselskabskontor", "de": "Telekommunikationsunternehmen", "el": "Υπηρεσία Τηλεπικοινωνιών", "en-GB": "Telecom Office", "en": "Telecom Office", "eo": "Oficejo de telekomunikada firmao", "es": "Oficina de telecomunicaciones", "et": "Sidefirma kontor", "fa": "دفتر مخابراتی", "fi": "Tietoliikennetoimisto", "fr": "Agence de télécommunications", "gl": "Oficina de telecomunicacións", "he": "משרד חברת תקשורת", "hr": "Ured za telekomunikacije", "hu": "Távközlési cég irodája", "is": "Samskiptaskrifstofa", "it": "Ufficio di telecomunicazioni", "ja": "通信会社事務所", "ko": "통신 사무소", "lt": "Telekomunikacijų biuras", "lv": "Telekomunikāciju birojs", "mk": "Телекомуникациска служба", "nl": "Telecomkantoor", "no": "Telekontor", "pl": "Biuro firmy telekomunikacyjnej", "pt-BR": "Telecomunicações", "pt": "Empresa de telecomunicações", "ro": "Oficiu Telecom", "ru": "Офис телекоммуникационной компании", "sk": "Kancelária telekomunikačnej spoločnosti", "sl": "Telekomunikacijska pisarna", "sr": "Телекомуникациона канцеларија", "sv": "Telekom", "ta": "தொலைத்தொடர்பு அலுவலகம்", "th": "สำนักงานโทรคมนาคม", "tr": "Haberleşme Bürosu", "uk": "Телекомунікаційна компанія", "vi": "Văn phòng Viễn thông", "yue": "電話公司寫字樓", "zh-CN": "电信办公室", "zh-HK": "電訊公司辦公室", "zh-TW": "電信公司辦事處" } }, "office/water_utility": { "title": { "C": "Water Utility Office", "ms": "Pejabat Pembekal Air", "ar": "مكتب شركة مياه", "br": "Ajañs an dour", "ca": "Oficina de la companyia de l'aigua", "cs": "Vodohospodářská kancelář", "da": "Vandforsyningskontor", "de": "Wasserversorgungsunternehmen", "el": "Υπηρεσία Εκμετάλλευσης Νερού", "en-GB": "Water Utility Office", "en": "Water Utility Office", "eo": "Oficejo de akv-provizanta firmao", "es": "Oficina de servicios públicos de agua", "et": "Veevärgi kontor", "fa": "دفتر تاسیسات آبی", "fi": "Vesilaitostoimisto", "fr": "Compagnie des eaux", "gl": "Oficina de servizos públicos de auga", "he": "משרד לשירות ציבורי - מים", "hu": "Vízműiroda", "is": "Skrifstofa vatnsveitu", "it": "Ufficio azienda di fornitura dell'acqua", "ja": "水回り工事店", "ko": "수도사업소", "mk": "Водоводна служба", "nl": "Kantoor van watermaatschappij", "pl": "Biuro wodociągowe", "pt-BR": "Fornecedor de água", "pt": "Fornecedor de água", "ru": "Офис водопроводной компании", "sk": "Kancelária vodohospodárskej spoločnosti", "sr": "Водоснабдевање", "sv": "Vattenleverantör", "th": "สำนักงานการประปา", "tr": "Su Müdürlüğü", "uk": "Водоканал", "vi": "Văn phòng Nhà cung cấp Nước uống", "zh-CN": "水务设施机构", "zh-HK": "水上設施辦公室", "zh-TW": "自來水公司" } }, "office/yes": { "title": { "C": "Office (Unspecified Type)", "ar": "مكتب (نوع غير محدد)", "br": "Burev (n'eo ket spisaet)", "ca": "Oficina (Tipus sense especificar)", "cs": "Kancelář (nespecifikovaný typ)", "cy": "Swyddfa (math anhysbys)", "da": "Kontor (uspecificeret type)", "de": "Büro (nicht spezifizierter Typ)", "el": "Γραφείο (Απροσδιόριστος Τύπος)", "en-GB": "Office (Unspecified Type)", "en": "Office (Unspecified Type)", "eo": "Oficejo (nekonata speco)", "es": "Oficina (tipo no especificado)", "et": "Määratlemata kontor", "fr": "Bureau (non précisé)", "he": "משרד (ללא הגדרת סוג)", "hu": "Iroda (meghatározatlan típusú)", "it": "Ufficio (Tipo non specificato)", "ja": "オフィス(全般)", "mk": "Канцеларија (неукажан вид)", "nl": "Kantoor (ongespecificeerd)", "no": "Kontor (uspesifisert type)", "pl": "Biuro (nieokreślone)", "pt-BR": "Escritório (tipo não especificado)", "pt": "Escritório", "ru": "Офис (любой тип)", "sk": "Úrad (nešpecifikovaný typ)", "sr": "Канцеларија (неодређеног типа)", "sv": "Kontor (ospecificerad typ)", "th": "สำนักงาน (ไม่ระบุประเภท)", "tr": "Office (Unspecified Type)", "uk": "Офіс (невизначений тип)", "vi": "Văn phòng (Kiểu Không rõ)", "zh-TW": "辦公室(未指定類型)" } }, "office/engineer": { "title": { "C": "Engineering Office", "cs": "Inženýrská kancelář", "da": "Ingeniørkontor", "de": "Ingenieurbüro", "en-GB": "Engineering Office", "en": "Engineering Office", "es": "Oficina de ingeniería", "et": "Inseneribüroo", "fr": "Bureau d'études et d'ingénierie", "he": "משרד הנדסה", "it": "Ufficio di ingegneria", "ja": "技術士事務所", "mk": "Инженерско биро", "pl": "Biuro inżynierskie", "pt-BR": "Engenharia", "pt": "Escritório de engenharia", "sk": "Inžinierska kancelária", "sr": "Инжењерски биро", "sv": "Ingenjörskontoret", "tr": "Engineering Office", "uk": "Інженер", "zh-TW": "工程師辦公室" } }, "office/graphic_design": { "title": { "C": "Graphic Design Office", "br": "Grafour", "cs": "Kancelář grafického designu", "da": "Kontor for grafisk design", "de": "Grafikdesign", "en-GB": "Graphic Design Office", "en": "Graphic Design Office", "es": "Oficina de diseño gráfico", "et": "Kujundusfirma kontor", "fi": "Graafinen suunnittelija", "fr": "Graphiste", "he": "משרד לעיצוב גרפי", "hu": "Grafikai stúdió", "it": "Ufficio di progettazione grafica", "ja": "グラフィックデザイン会社", "mk": "Графичко ателје", "pl": "Agencja graficzna", "pt-BR": "Design gráfico", "pt": "Empresa de design gráfico", "sk": "Kancelária grafického dizajnu", "sr": "Графички студио", "sv": "Kontor för grafiskt designer", "tr": "Graphic Design Office", "uk": "Графічний дизайн", "zh-TW": "平面設計師辦公室" } }, "office/property_management": { "title": { "C": "Property Management / Leasing Office", "cs": "Správa nemovitostí / Leasingová kancelář", "de": "Hausverwaltung", "el": "Γραφείο Διαχείρισης Ακινήτων / Leasing", "en-GB": "Property Management / Leasing Office", "en": "Property Management / Leasing Office", "es": "Administración de propiedades / Oficina de arrendamiento", "et": "Kinnisvarahaldusfirma kontor", "fr": "Société de location immobilière", "he": "משרד לניהול נכסים/ליסינג", "ja": "資産管理会社", "mk": "Домарска служба", "pl": "Zarządca nieruchomości", "pt-BR": "Gestão de condomínios", "pt": "Gestão de condomínios", "sk": "Správa nehnuteľností", "sr": "Канцеларија за управљање имовином / Канцеларије за издавање", "sv": "Fastighetsförvaltning / Uthyrningskontor", "tr": "Property Management / Leasing Office", "uk": "Офіс управляючої нерухомістю компанії.", "zh-TW": "物業管理/租賃辦公室" } }, "office/therapist": { "title": { "C": "Therapist Office", "ms": "Pejabat Ahli Terapi", "ar": "المعالج", "br": "Yac'hadour", "ca": "Oficina de terapeuta", "cs": "Terapeutická kancelář", "cy": "Swyddfa Therapydd", "da": "Terapikontor", "de": "Therapeut", "el": "Υπηρεσία Θεραπευτών", "en-GB": "Therapist Office", "en": "Therapist Office", "eo": "Kabineto de terapiisto", "es": "Oficina de terapeuta", "et": "Terapeudi kontor", "fa": "دفتر روان‌درمان", "fi": "Terapia", "fr": "Thérapeute", "gl": "Oficina de terapeuta", "he": "משרד מטפל", "hu": "Orvosi iroda", "is": "Meðferðarstofa", "it": "Studio psichiatrico", "ja": "セラピスト(オフィス)", "ko": "치료사 사무소", "lv": "Terapieta birojs", "mk": "Терапевт", "nl": "Kantoor van therapeut", "no": "Terapeutkontor", "pl": "Terapeuta", "pt-BR": "Terapeuta", "pt": "Terapeuta", "ru": "Офис терапевта", "sk": "Terapeut", "sr": "Терапеутска канцеларија", "sv": "Terapeut", "tr": "Terapist", "uk": "Фізіотерапевт", "vi": "Văn phòng Trị liệu", "zh-CN": "治疗师工作室", "zh-HK": "治療師辦公室", "zh-TW": "治療師辦公室" } }, "office/union": { "title": { "C": "Labor Union Office", "br": "Burev sindikad", "ca": "Oficina d'un sindicat laboral", "cs": "Úřad práce", "cy": "Swyddfa Undeb Llafur", "da": "Fagforeningskontor", "de": "Gewerkschaftsbüro", "el": "Γραφείο Εργατικού Σωματείου", "en-GB": "Union Office", "en": "Labor Union Office", "es": "Oficina sindical", "et": "Ametiühingu kontor", "fi": "Ammattiliitto", "fr": "Bureau de syndicat", "he": "לשכת איגודי עובדים", "hu": "Szakszervezeti iroda", "it": "Ufficio del sindacato", "ja": "労働組合事務所", "mk": "Синдикална канцеларија", "pl": "Biuro związku zawodowego", "pt-BR": "Sindicato", "pt": "Sindicato", "ru": "Офис профсоюза", "sk": "Odborová organizácia zamestnancov", "sr": "Синдикат", "sv": "Fackföreningskontor", "tr": "Labor Union Office", "uk": "Офіс профспілки", "zh-TW": "工會辦公室" } }, "office/coworking": { "title": { "C": "Coworking Space", "ar": "مساحة عمل مشتركة", "br": "Lec'h kenlabourat", "ca": "Espai de cotreball", "cs": "Místo pro spolupráci", "cy": "Ardal Gydweithio", "da": "Kontorfællesskab", "de": "Coworking-Büro", "el": "Χώρος Συνεργασίας", "en-GB": "Coworking Space", "en": "Coworking Space", "eo": "Oficejo por samloka laborado (coworking)", "es": "Espacio de trabajo compartido", "fa": "فضای کاری مشارکتی", "fi": "Yhteistyöskentelytila", "fr": "Espace de coworking", "gl": "Espacio de cotraballo", "he": "משרדים משותפים", "hu": "Közösségi iroda", "is": "Sameiginlegt vinnurými", "it": "Ufficio in coworking", "ja": "コワーキングスペース", "ko": "공동 작업 공간", "mk": "Споделен работен простор", "nl": "Coworking-kantoor", "no": "Medarbeiderområde", "pl": "Centrum coworkingowe", "pt-BR": "Espaço de coworking", "pt": "Coworking", "ru": "Коворкинг", "sk": "Priestory pre coworking", "sl": "Prostor za sodelo", "sr": "Дељени радни простор", "sv": "Dagkontor", "th": "พื้นที่ทำงานร่วมกันกับผู้อื่น", "tr": "Ortak Çalışma Alanı", "uk": "Коворкінг", "vi": "Văn phòng Làm việc Chung", "zh-CN": "共享办公空间", "zh-HK": "共同工作空間", "zh-TW": "共同工作空間" } }, "office/it": { "title": { "C": "Information Technology Office", "am": "አይ.ቲ.", "ms": "Pejabat Teknologi Maklumat", "ar": "مكتب متخصصي تكنولوجيا المعلومات", "ca": "Oficina de tecnologies de la informació", "cs": "Kancelář informačních technologií", "cy": "Swyddfa Dechnoleg Gwybodaeth", "da": "Informationsteknologikontor", "de": "IT-Unternehmen", "el": "Υπηρεσία Πληροφοριών Τεχνολογίας", "en-GB": "Information Technology Office", "en-NZ": "IT/Software Company", "en": "Information Technology Office", "eo": "Oficejo de inform-teĥnologia firmao", "es": "Oficina de tecnología de la información", "et": "IT-firma kontor", "fa": "دفتر فناوری اطلاعات", "fi": "Informaatioteknologian toimisto", "fr": "Spécialiste en informatique", "gl": "Oficina de tecnoloxías da información", "he": "משרד שירותי מחשוב", "hu": "Informatikai cég irodája", "is": "Upplýsingatækniskrifstofa", "it": "Ufficio società IT", "ja": "IT企業", "ko": "IT 사무소", "mk": "Информатичка служба", "nl": "IT-kantoor", "pl": "Biuro firmy informatycznej", "pt-BR": "Empresa de TI", "pt": "Escritório de Ti", "ru": "Офис IT-компании", "sk": "Kancelária IT spoločnosti", "sr": "Информатичка канцеларија", "sv": "IT-kontor", "th": "สำนักงานเทคโนโลยีสารสนเทศ", "tr": "Bilişim Teknoloji Ofisi", "uk": "ІТ компанія", "vi": "Văn phòng Tin học", "zh-CN": "IT公司", "zh-TW": "資訊公司辦公室" } }, "place/farm": { "title": { "C": "Farm", "id": "Peternakan", "kn": "ತೋಟ", "ms": "Ladang", "af": "Plaas", "ar": "مزرعة", "ast": "Granxa", "br": "Atant", "ca": "Granja", "cs": "Zemědělská usedlost", "cy": "Fferm", "da": "Gård", "de": "Bauernhof", "el": "Φάρμα", "en-GB": "Farm", "en": "Farm", "eo": "Farmejo (setlejo)", "es": "Granja", "et": "Talu", "eu": "Baserria", "fa": "مزرعه", "fi": "Maatila", "fr": "Ferme isolée", "gl": "Granxa", "he": "חווה", "hu": "Tanya", "is": "Býli", "it": "Fattoria o cascina", "ja": "農場", "ko": "농장", "lt": "Ūkis", "lv": "Zemnieku saimniecība", "mk": "Фарма", "nl": "Boerderij", "no": "Gård", "pl": "Farma / gospodarstwo rolne", "pt-BR": "Fazenda", "pt": "Quinta", "ro": "Fermă", "ru": "Ферма", "sk": "Farma", "sl": "Kmetija", "sr": "Фарма", "sv": "Gård", "ta": "பண்ணை", "th": "ฟาร์ม", "tr": "Çiftlik", "uk": "Ферма", "ur": "کھیت", "vi": "Trại", "yue": "農場", "zh-CN": "农场", "zh-HK": "農場", "zh-TW": "農場" } }, "place/city_block": { "title": { "C": "City Block", "af": "Stadsblok", "ar": "مربع سكني", "cs": "Městský blok", "cy": "Bloc Dinas", "de": "Häuserblock", "el": "Οικοδομικό Τετράγωνο", "en-GB": "City Block", "en": "City Block", "eo": "Dombloko", "es": "Manzana urbana", "et": "Tänavatevaheline kvartal", "fa": "بلوک شهری", "fi": "Kortteli", "fr": "Îlot urbain", "gl": "Mazá urbana", "he": "מבנן עירוני", "hu": "Háztömb", "is": "Byggingareitur", "it": "Isolato urbano", "ja": "街区(日本では未定義)", "ko": "도시 블록", "mk": "Градски блок", "nl": "Huizenblok", "no": "Bykvartal", "pl": "Kwartał", "pt-BR": "Quarteirão", "pt": "Quarteirão", "ru": "Городской квартал", "sk": "Blok domov", "sr": "Градски блок", "sv": "Kvarter", "tr": "Şehir Bloğu", "uk": "Квартал в місті", "vi": "Ô phố", "zh-CN": "城市街区", "zh-TW": "城市街區" } }, "place/island": { "title": { "C": "Island", "bn": "দ্বীপ", "bs": "Ostrvo", "dv": "ރަށް", "id": "Pulau", "kn": "ದ್ವೀಪ", "ms": "Pulau", "so": "Jasiirad", "zh": "岛屿", "af": "Eiland", "ar": "جزيرة", "ast": "Islla", "bg": "Остров", "br": "Enez", "ca": "Illa", "cs": "Ostrov", "cy": "Ynys", "da": "Ø", "de": "Insel", "el": "Νησί", "en-GB": "Island", "en": "Island", "eo": "Insulo", "es": "Isla", "et": "Saar", "fa": "جزیره", "fi": "Saari", "fr": "Île", "ga": "Oileán", "gl": "Illa", "he": "אי", "hr": "Otok", "hu": "Sziget", "is": "Eyja", "it": "Isola", "ja": "島", "ko": "섬", "lt": "Sala", "lv": "Sala", "mk": "Остров", "nl": "Eiland", "no": "Øy", "pa-PK": "ٹاپو", "pl": "Wyspa", "pt-BR": "Ilha", "pt": "Ilha", "ro": "Insulă", "ru": "Остров", "sk": "Ostrov", "sl": "Otok", "sr": "Острво", "sv": "Ö", "ta": "தீவு", "th": "เกาะ", "tr": "Ada", "uk": "Острів", "ur": "جزیرہ", "vi": "Đảo", "yue": "洲", "zh-CN": "岛屿", "zh-HK": "島嶼", "zh-TW": "島嶼" } }, "place/islet": { "title": { "C": "Islet", "ms": "Anak Pulau", "af": "Eilandjie", "ar": "جزيرة صغيرة", "br": "Enezig", "ca": "Illot", "cs": "Ostrůvek", "cy": "Ynysig", "da": "Holm", "de": "Kleine Insel", "el": "Νησίδα", "en-GB": "Islet", "en": "Islet", "eo": "Insuleto", "es": "Islote", "et": "Laid", "fa": "جزیره کوچک", "fi": "Luoto", "fr": "Îlot", "gl": "Illote", "he": "איון", "hu": "Kis sziget", "is": "Hólmi", "it": "Isoletta", "ja": "小島", "ko": "작은 섬", "mk": "Островче", "nl": "Eilandje < 1 km²", "no": "Liten øy", "pl": "Wysepka", "pt-BR": "Ilhota", "pt": "Ilhéu", "ru": "Островок", "sk": "Ostrovček", "sr": "Острвце", "sv": "Holme", "tr": "Adacık", "uk": "Острівець", "vi": "Đảo Nhỏ", "yue": "洲仔", "zh-CN": "小岛", "zh-TW": "小島" } }, "place/isolated_dwelling": { "title": { "C": "Isolated Dwelling", "bs": "Izolirano stanovanje", "ms": "Tempat Tinggal Terpencil", "zh": "孤立的民房", "af": "Afgeleë blyplek", "ar": "مساكن متفرقة ومنعزلة", "ast": "Vivienda aisllada", "bg": "Изолирано жилище", "br": "Annez distro", "ca": "Vivenda aïllada", "cs": "Samota", "da": "Lille beboet område (1-2 hustande)", "de": "Einzelsiedlung", "el": "Απομονωμένες Κατοικίες", "en-GB": "Isolated Dwelling", "en": "Isolated Dwelling", "eo": "Solstaranta domo", "es": "Vivienda aislada", "et": "Üksik eluhoone", "fa": "مسکن ایزوله", "fi": "Yksittäinen asunto", "fr": "Lieu-dit habité (1 ou 2 habitations)", "gl": "Vivenda illada", "he": "מבנה מבודד", "hr": "Usamljena kućanstva", "hu": "Magányos lakóhely", "is": "Einöngruð búseta", "it": "Abitazioni isolate", "ja": "孤立した(2世帯以下の)居住区", "ko": "독립 주택", "lt": "Izoliuota gyvenvietė", "mk": "Оддалечено живеалиште", "nl": "Afgelegen woning(en)", "pl": "Pojedyncze odosobnione zabudowania", "pt-BR": "Moradia isolada", "pt": "Povoado menor e isolado", "ru": "Хутор", "sk": "Samota", "sl": "Osamljeno bivališče", "sr": "Изоловано пребивалиште", "sv": "Isolerad boplats", "tr": "Mesken", "uk": "Маєток", "vi": "Chỗ ở Hẻo lánh", "yue": "孤離居所", "zh-CN": "孤立居所", "zh-HK": "孤立民居", "zh-TW": "獨立聚落" } }, "place/locality": { "title": { "C": "Locality", "bn": "অঞ্চল", "bs": "Lokalitet", "dv": "ރަށްްފުށު", "id": "Daerah Sekitar", "kn": "ಸ್ಥಳ", "ms": "Lokaliti", "so": "Deegaanka", "zh": "地点(无人定居)", "af": "Ligging", "ar": "موضع لمكان غير مأهول", "ast": "Llugar despobláu", "bg": "Местност", "br": "Kêriadenn didud", "ca": "Indret", "cs": "Neobydlené místo", "cy": "Bro", "da": "Lokalitet", "de": "Örtlichkeit", "el": "Τοποθεσία", "en-GB": "Locality", "en": "Locality", "eo": "Loko neloĝata", "es": "Paraje", "et": "Paikkond", "eu": "Aurkintza", "fa": "محل خالی از سکنه", "fi": "Paikkakunta", "fr": "Lieu-dit non habité", "gl": "Lugar", "he": "אזור בלתי מיושב", "hr": "Lokalitet", "hu": "Lakatlan hely", "is": "Staðfesti", "it": "Località non popolata", "ja": "無居住地域・通称地名", "ko": "소재지명", "lt": "Vietovė", "mk": "Месност", "nl": "Veldnaam", "no": "Sted", "pl": "Miejsce nazwane", "pt-BR": "Localidade", "pt": "Local ermo e desabitado", "ro": "Localitate", "ru": "Урочище, местность", "sk": "Lokalita", "sl": "Kraj (OSM: ODSVETOVANO)", "sr": "Локалитет", "sv": "Plats", "tr": "Mevkii", "uk": "Місцевість", "vi": "Địa phương", "yue": "地方", "zh-CN": "地方", "zh-HK": "地區", "zh-TW": "地點(無人定居)" } }, "place/plot": { "title": { "C": "Plot", "ms": "Plot", "ar": "قطعة الأرض", "ca": "Parcel·la", "cs": "Parcela", "cy": "Plot", "da": "Matrikel", "de": "Grundstück", "el": "Οικόπεδο", "en-GB": "Plot", "en": "Plot", "eo": "Parcelo", "es": "Parcela", "et": "Krunt", "fa": "طرح / قطعه زمین", "fi": "Tontti", "fr": "Parcelle", "gl": "Parcela", "he": "חלקה", "hu": "Telek", "is": "Skiki", "it": "Particella catastale", "ja": "小区画", "ko": "필지", "mk": "Парцела", "nl": "Perceel", "no": "Tomt", "pl": "Działka", "pt-BR": "Lote", "pt": "Lote de terreno", "ru": "Земельный участок", "sk": "Pozemok", "sr": "Парцела", "sv": "Tomt", "tr": "Arsa", "uk": "Ділянка", "ur": "زمین", "vi": "Miếng đất", "zh-CN": "Plot", "zh-TW": "地籍" } }, "place/square": { "title": { "C": "Square", "af": "Plein", "ar": "ساحة", "ast": "Plaza", "br": "Skwar", "ca": "Plaça", "cs": "Náměstí", "cy": "Sgwâr", "da": "Plads", "de": "Platz", "el": "Πλατεία", "en-GB": "Square", "en": "Square", "eo": "Placo", "es": "Plaza cívica", "et": "Väljak", "fa": "فضای عمومی باز (احاطه شده با ساختمان)", "fi": "Aukio", "fr": "Place", "gl": "Praza", "he": "כיכר", "hu": "Tér", "is": "Torg", "it": "Piazza", "ja": "広場(都心部)", "ko": "광장", "lv": "Skvērs", "mk": "Плоштад", "nl": "Plein", "no": "Torg", "pa-PK": "چوک", "pl": "Plac publiczny", "pt-BR": "Praça Pavimentada", "pt": "Praça ou largo", "ro": "Piață", "ru": "Площадь", "sk": "Námestie", "sl": "Trg", "sr": "Трг", "sv": "Torg", "ta": "சதுக்கம்", "th": "จตุรัส", "tr": "Meydan", "uk": "Майдан", "vi": "Quảng trường", "yue": "前地", "zh-CN": "广场", "zh-HK": "廣場", "zh-TW": "廣場" } }, "place/city": { "title": { "C": "City", "am": "ከተማ", "bn": "শহর", "sq": "Qytet", "te": "నగరం", "bs": "Grad", "dv": "ސިިޓީ", "id": "Kota", "kn": "ನಗರ", "ms": "Bandar", "so": "Magaalo", "zh": "城市", "af": "Stad", "ar": "مدينة كبيرة", "ast": "Ciudá", "bg": "Град над 100 000", "br": "Kêr vras", "ca": "Ciutat", "cs": "Velkoměsto", "cy": "Dinas", "da": "Storby", "de": "Großstadt", "el": "Πόλη", "en-GB": "City", "en": "City", "eo": "Urbego", "es": "Ciudad", "et": "Linn", "fa": "شهر", "fi": "Suuri kaupunki", "fr": "Grande ville (plus de 100 000 habitants)", "ga": "Cathair", "gl": "Cidade", "he": "עיר", "hr": "Grad s više od 100 000 stanovnika", "hu": "Nagyváros", "is": "Borg", "it": "Città", "ja": "市制地方自治体", "ko": "시", "lt": "Miestas", "lv": "Lielpilsēta", "mk": "Град", "nl": "Stad", "no": "By", "pa-PK": "شہر", "pl": "Duże miasto", "pt-BR": "Cidade Maior", "pt": "Cidade", "ro": "Oraș", "ru": "Большой город", "sk": "Veľkomesto", "sl": "Velemesto", "sr": "Град", "sv": "Större stad", "ta": "மாநகரம்", "th": "เมือง", "tr": "Şehir", "uk": "Місто", "ur": "شہر", "vi": "Thành phố", "yue": "城", "zh-CN": "城市", "zh-HK": "城市", "zh-TW": "城市" } }, "place/hamlet": { "title": { "C": "Hamlet", "am": "ከተማ", "bs": "Zaselak", "id": "Dusun", "ms": "Dukuh", "zh": "村庄", "af": "Gehuggie", "ar": "قرية صغيرة / هجرة", "ast": "Aldea", "bg": "Махала", "br": "Pennkêr", "ca": "Llogaret", "cs": "Osada", "cy": "Pentrefan", "da": "Mindre beboet område", "de": "Weiler", "el": "Οικισμός", "en-GB": "Hamlet", "en": "Hamlet", "eo": "Vilaĝeto", "es": "Aldea", "et": "Väike küla", "fa": "دهکده", "fi": "Pikkukylä", "fr": "Lieu-dit ou hameau", "ga": "Gráig", "gl": "Aldea", "he": "כפריר", "hr": "Zaseok", "hu": "Falucska", "is": "Þéttbýliskjarni", "it": "Piccolo borgo", "ja": "集落・通称地名", "ko": "반", "lt": "Viensėdis", "mk": "Заселок", "nl": "Dorp/gehucht/buurtschap", "no": "Bosetning", "pl": "Przysiółek", "pt-BR": "Lugarejo", "pt": "Aldeia", "ro": "Cătun", "ru": "Деревня", "sk": "Osada", "sl": "Zaselek", "sr": "Засеок", "sv": "By", "th": "หมู่บ้านขนาดเล็ก", "tr": "Mezra", "uk": "Хутір", "vi": "Thôn", "yue": "村仔", "zh-CN": "小村庄", "zh-HK": "小村莊", "zh-TW": "村莊" } }, "place/neighbourhood": { "title": { "C": "Neighborhood", "id": "Tetangga", "ms": "Kejiranan", "af": "Woonbuurt", "ar": "حي سكني", "ast": "Barriu", "bg": "Квартал", "br": "Karter", "ca": "Barri", "cs": "Část obce", "cy": "Cymydogaeth", "da": "Nabolag", "de": "Wohngegend", "el": "Γειτονιά", "en-AU": "Neighbourhood", "en-CA": "Neighbourhood", "en-GB": "Neighbourhood", "en": "Neighborhood", "eo": "Najbaraĵo", "es": "Barrio pequeño / Vecindario", "fa": "محله", "fi": "Naapurusto", "fr": "Quartier de voisinage", "gl": "Veciñanza ou subarrio", "he": "שכונה", "hr": "Susjedstvo", "hu": "Környék", "is": "Hverfi", "it": "Quartiere", "ja": "小字", "ko": "동", "lt": "Kaiminystė", "mk": "Маало", "nl": "Buurt", "no": "Nabolag", "pl": "Sąsiedztwo", "pt-BR": "Vizinhança", "pt": "Bairro", "ro": "Cartier", "ru": "Исторический район со сложившимся именем", "sk": "Susedstvo", "sl": "Soseska", "sr": "Градско насеље", "sv": "Kvarter", "ta": "நகர்ப்பகுதி", "th": "ชุมชน", "tr": "Mahalle", "uk": "Житловий масив", "ur": "محلہ", "vi": "Hàng xóm", "zh-CN": "街坊社区", "zh-HK": "近鄰", "zh-TW": "鄰里" } }, "place/quarter": { "title": { "C": "Sub-Borough / Quarter", "af": "Wyk", "ar": "منطقة فرعية / ربع", "cs": "Městská čtvrť", "cy": "Cwarter", "da": "Nabolag / Kvarter", "de": "Gegend / Quartier", "el": "Συνοικία", "en-GB": "Sub-Borough / Quarter", "en": "Sub-Borough / Quarter", "eo": "Kvartalo", "es": "Sub-borough / Quarter", "et": "Kvartal", "fa": "توابع منطقه / محله", "fi": "Alakeskus", "fr": "Quartier", "gl": "Sub-municipio / Distrito", "he": "רובע", "hu": "Kis városrész", "is": "Úthverfishluti / Hverfi", "it": "Sotto-distretto / Quartiere", "ja": "大字 / (市内の)町", "ko": "하위 자치구 / 지구", "mk": "Маало / Четврт", "nl": "Wijk", "pl": "Kwartał", "pt-BR": "Sub-bairro", "pt": "Zona de cidade", "ro": "Cartier", "ru": "Подрайон / квартал", "sk": "Mestská štvrť", "sl": "Mestna četrt", "sr": "Четврт", "sv": "Kvarter / Under-Borough", "th": "แขวง", "tr": "Semt", "uk": "Мікро-район/Квартал", "vi": "Khu", "zh-CN": "街区/社区", "zh-HK": "自治市分區 / 小區", "zh-TW": "自治市區" } }, "place/suburb": { "title": { "C": "Borough / Suburb", "am": "አካባቢ", "ar": "ضاحية", "br": "Bannlev", "cs": "Čtvrť / předměstí", "da": "Bydistrikt / Bydel", "de": "Stadtteil / Vorort", "el": "Προάστιο", "en-AU": "Suburb", "en-GB": "Borough / Suburb", "en-NZ": "Suburb", "en": "Borough / Suburb", "eo": "Suburbo", "es": "Borough / Suburbio", "et": "Eeslinn", "fa": "منطقه ، ناحیه", "fi": "Kaupunginosa / lähiö", "fr": "Banlieue", "gl": "Barrio ou suburbio", "he": "פרוור", "hu": "Városrész", "is": "Jaðarbyggð / Úthverfi", "it": "Sobborgo", "ja": "区", "ko": "자치구 / 근교", "mk": "Населба", "nl": "Stadsdeel", "pl": "Dzielnica", "pt-BR": "Bairro", "pt": "Subúrbio", "ro": "Suburbie", "ru": "Район / Пригород", "sk": "Predmestie", "sl": "Predmestje", "sr": "Градска општина / Предграђе", "sv": "Förort / Borough", "th": "เขต", "tr": "Mahalle", "uk": "Район в місті/Передмістя", "ur": "مضافت", "vi": "Quận", "zh-CN": "市内区域", "zh-HK": "自治市 / 郊區", "zh-TW": "郊區" } }, "place/town": { "title": { "C": "Town", "bn": "উপনগর", "te": "పట్టణం", "bs": "Gradić", "dv": "އަވަށް", "id": "Kota", "kn": "ಪಟ್ಟಣ", "ms": "Bandar", "so": "Magaalo", "zh": "城镇", "af": "Dorp", "ar": "مدينة", "ast": "Villa", "bg": "Град под 100 000", "br": "Kêr", "ca": "Ciutat", "cs": "Město", "cy": "Tref", "da": "By", "de": "Kleinstadt", "el": "Κωμόπολη", "en-GB": "Town", "en": "Town", "eo": "Urbo", "es": "Pueblo / Ciudad pequeña", "et": "Linn", "fa": "شهر", "fi": "Pieni kaupunki / taajama", "fr": "Ville (de 10 000 à 100 000 habitants)", "ga": "Baile", "gl": "Cidade pequena", "he": "עירייה", "hr": "Gradić", "hu": "Kisváros", "is": "Bær", "it": "Cittadina", "ja": "町制地方自治体", "ko": "읍·면·동·로동자구", "lt": "Miestelis", "lv": "Pilsēta", "mi": "Tāone", "mk": "Гратче", "nl": "Plaats", "no": "Tettsted", "pa-PK": "نگر", "pl": "Małe miasto", "pt-BR": "Cidade Menor", "pt": "Vila", "ro": "Oraș", "ru": "Город", "sk": "Mesto", "sl": "Mesto", "sr": "Варош", "sv": "Mellanstor stad", "ta": "நகரம்", "th": "เทศบาลเมือง", "tr": "Kasaba", "uk": "Місто (невелике)", "ur": "قصبہ", "vi": "Thị xã", "yue": "鎮", "zh-CN": "城镇", "zh-HK": "鎮", "zh-TW": "鄉鎮市區" } }, "place/village": { "title": { "C": "Village", "bn": "গ্রাম", "te": "గ్రామం", "bs": "Selo", "id": "Desa", "kn": "ಹಳ್ಳಿ", "ms": "Kampung", "zh": "村庄", "af": "Gehug", "ar": "قرية", "ast": "Pueblu", "bg": "Село", "br": "Kêriadenn", "ca": "Poble", "cs": "Vesnice", "cy": "Pentref", "da": "Landsby", "de": "Dorf", "el": "Χωριό", "en-GB": "Village", "en": "Village", "eo": "Vilaĝo", "es": "Población / Aldea", "et": "Küla", "fa": "روستا", "fi": "Kylä", "fr": "Village (de 100 à 10 000 habitants)", "ga": "Sráidbhaile", "gl": "Vila", "he": "כפר", "hr": "Selo", "hu": "Falu", "is": "Þorp", "it": "Paese", "ja": "村制の地方自治体", "ko": "리·통", "lt": "Kaimas", "lv": "Ciems", "mk": "Село", "nl": "Dorp", "no": "Tettsted", "pa-PK": "پنڈ", "pl": "Wieś", "pt-BR": "Povoado", "pt": "Sede de Freguesia", "ro": "Sat", "ru": "Село (более 300 жителей)", "sk": "Dedina", "sl": "Vas", "sr": "Село", "sv": "Mindre samhälle", "ta": "கிராமம்", "th": "หมู่บ้าน", "tr": "Köy", "uk": "Село", "ur": "گاؤں", "vi": "Làng", "yue": "村", "zh-CN": "村庄", "zh-HK": "鄉村", "zh-TW": "村里" } }, "shop/boutique": { "title": { "C": "Boutique", "bn": "বুটিক", "bs": "Butik", "id": "Butik", "zh": "精品店", "af": "Boetiek", "ar": "بوتيك", "ast": "Boutique", "bg": "Бутик", "br": "Stalig", "ca": "Boutique", "cs": "Módní butik", "cy": "Boutique", "da": "Boutique", "de": "Boutique", "el": "Μπουτίκ", "en-GB": "Boutique", "en": "Boutique", "eo": "Mod-butiko (altprezaj vestaĵoj)", "es": "Boutique", "et": "Butiik", "fa": "بوتیک", "fi": "Muotiliike", "fr": "Petit magasin de mode", "ga": "Búitíc", "gl": "Boutique", "he": "בוטיק", "hr": "Butik", "hu": "Butik", "is": "Búð", "it": "Boutique", "ja": "ブティック", "ko": "부티크", "lt": "Parduotuvė", "lv": "Veikals", "mk": "Бутик", "nl": "Boetiek", "no": "Klesbutikk", "pl": "Butik", "pt-BR": "Loja de Alta Costura", "pt": "Boutique", "ro": "Boutique", "ru": "Бутик", "sk": "Butik", "sl": "Butik", "sr": "Бутик", "sv": "Boutique (Dyra kläder och accessoarer)", "th": "ร้านขายเสื้อผ้าและเครื่องประดับ", "tr": "Butik Mağaza", "uk": "Бутік", "vi": "Tiệm Thời trang", "yue": "時裝店", "zh-CN": "精品店", "zh-HK": "時裝店", "zh-TW": "服飾店" } }, "shop/fashion": { "title": { "C": "Fashion Store", "id": "Toko Mode", "ar": "متجر موضة", "ast": "Tienda de moda", "br": "Stal-gizioù", "ca": "Botiga de roba", "cs": "Módní zboží", "cy": "Siop Ffasiwn", "da": "Modebutik", "de": "Modegeschäft", "el": "Κατάστημα Μόδας", "en-GB": "Fashion Shop", "en": "Fashion Store", "eo": "Mod-butiko", "es": "Tienda de moda", "et": "Moekauplus", "fa": "فروشگاه مد", "fi": "Muotiliike", "fr": "Boutique de mode", "gl": "Tenda de moda", "he": "חנות אופנה", "hr": "Modni dućan", "hu": "Divatüzlet", "is": "Tískuverslun", "it": "Negozio di moda", "ja": "ファッション店", "ko": "패션 가게", "lt": "Mados parduotuvė", "lv": "Modes veikals", "mk": "Модна продавница", "nl": "Modewinkel", "no": "Motebutikk", "pl": "Sklep odzieżowy", "pt-BR": "Loja de Moda", "pt": "Loja de moda", "ro": "Magazin de Modă", "ru": "Магазин модной брендовой одежды", "sk": "Obchod s módnymi odevmi", "sl": "Trgovina z modnimi oblačili", "sr": "Бутик", "sv": "Modebutik", "th": "ร้านเสื้อผ้าแฟชั่น", "tr": "Giyim Mağazası", "uk": "Бутік", "vi": "Tiệm Thời trang", "zh-CN": "服装店", "zh-HK": "時裝店", "zh-TW": "時尚店" } }, "shop/agrarian": { "title": { "C": "Farm Supply Shop", "af": "Landbouwinkel", "ar": "متجر المنتجات والمستلزمات الزراعية", "br": "Stal dafar labour-douar", "ca": "Agrobotiga", "cs": "Farmářská prodejna", "cy": "Siop Gynnyrch Fferm", "da": "Grovvareforretning", "de": "Agrarmarkt", "el": "Αγροτικές Προμήθειες", "en-GB": "Farm Supply Shop", "en": "Farm Supply Shop", "eo": "Terkultur-investaĵa vendejo", "es": "Tienda de suministros agrícolas", "et": "Põllumajandustarvete kauplus", "eu": "Nekazal-tresna denda", "fa": "فروشگاه لوازم کشاورزی", "fi": "Maataloustarvikeliike", "fr": "Magasin d'agriculture", "gl": "Tenda de subministracións agrícolas", "he": "חנות אביזרי חקלאות", "hu": "Gazdabolt", "is": "Landbúnaðarvöruverslun", "it": "Negozio di attrezzatura agricola", "ja": "農業用品店", "ko": "농업 용품 가게", "mk": "Земјоделска продавица", "nl": "Landbouwbenodigdhedenwinkel", "pl": "Sklep rolniczy", "pt-BR": "Loja de suprimentos agrícolas", "pt": "Loja de produtos agrícolas", "ru": "Сельскохозяйственный магазин", "sk": "Obchod s potrebami/technikou pre poľnohospodárov", "sr": "Продавница пољопривредне опреме", "sv": "Jordbruksaffär", "th": "ร้านอุปกรณ์เกษตร", "tr": "Çiftlik Malzemeleri Dükkanı", "uk": "Сільгосптовари", "vi": "Tiệm Nông nghiệp", "zh-CN": "农场供应店", "zh-TW": "農業資材行" } }, "shop/antiques": { "title": { "C": "Antique Shop", "ms": "Kedai Antik", "ar": "متجر تحف", "bg": "Антикварен магазин", "br": "Hendraour", "ca": "Botiga d'antiguitats", "cs": "Starožitnictví", "cy": "Siop Henebion", "da": "Antikvitetsforretning", "de": "Antiquitätenhändler", "el": "Μαγαζί με Αντίκες", "en-GB": "Antique Shop", "en": "Antique Shop", "es": "Tienda de antigüedades", "et": "Antikvariaat", "fi": "Antikvariaatti", "fr": "Antiquaire", "he": "חנות עתיקות", "hu": "Régiségkereskedés", "it": "Negozio di oggetti antichi", "ja": "古美術品店", "ko": "골동품 가게", "mk": "Старинарница", "nl": "Antiekwinkel", "pl": "Sklep z antykami", "pt-BR": "Antiquário", "pt": "Loja de antiguidades", "ru": "Антиквариат", "sk": "Starožitníctvo", "sr": "Продавница атиквитета", "sv": "Antikaffär", "th": "ร้านขายของโบราณ", "tr": "Antique Shop", "uk": "Антикварний магазин", "vi": "Tiệm Đồ Cổ", "zh-TW": "古董店" } }, "shop/baby_goods": { "title": { "C": "Baby Goods Store", "id": "Toko Perlengkapan Bayi", "af": "Babaware", "ar": "متجر مستلزمات الأطفال", "ca": "Botiga per a nadons", "cs": "Potřeby pro děti", "cy": "Siop Nwyddau Babanod", "da": "Babyudstyrsbutik", "de": "Babysachengeschäft", "el": "Κατάστημα Βρεφικών Ειδών", "en-GB": "Baby Goods Shop", "en": "Baby Goods Store", "eo": "Bebaĵa vendejo", "es": "Tienda de productos para bebé", "et": "Beebikaupade pood", "fa": "فروشگاه کالای کودک", "fi": "Vauvatarvikeliike", "fr": "Magasin de produits pour bébés", "gl": "Tenda de produtos para meniños", "he": "חנות לדברי תינוקות", "hr": "Trgovina za bebe", "hu": "Bababolt", "is": "Barnavöruverslun", "it": "Negozio di prodotti per l'infanzia", "ja": "赤ちゃん用品店", "ko": "유아 용품 가게", "lt": "Vaikų prekių parduotuvė", "mk": "Продавница за бебешка опрема", "nl": "Babyartikelenwinkel", "no": "Babyutstyrsbutikk", "pl": "Sklep z artykułami dla dzieci i niemowląt", "pt-BR": "Loja de artigos para bebês", "pt": "Loja de acessórios para bebés", "ro": "Magazin de Produse pentru Bebeluși", "ru": "Магазин детских товаров", "sk": "Obchod s detskými potrebami", "sl": "Trgovina za otroke", "sr": "Продавница беби-опреме", "sv": "Babyprodukter", "th": "ร้านสินค้าสำหรับแม่และเด็ก", "tr": "Bebek Malzemeleri Mağazası", "uk": "Товари для немовлят", "vi": "Tiệm Đồ Sơ sinh", "zh-CN": "婴儿用品店", "zh-HK": "嬰兒用品店", "zh-TW": "嬰兒用品店" } }, "shop/bag": { "title": { "C": "Bag/Luggage Store", "id": "Toko Tas/Koper", "ar": "متجر حقائب وأمتعة", "br": "Stal malizennoù ha seier", "ca": "Botiga d'equipatges o bosses", "cs": "Obchod se zavazadly", "cy": "Siop Fagiau / Bagiau Teithio", "da": "Taske/Kuffertbutik", "de": "Taschengeschäft", "el": "Κατάστημα αποσκευών", "en-GB": "Bag/Luggage Shop", "en": "Bag/Luggage Store", "eo": "Saka/valiza vendejo", "es": "Tienda de bolsos / equipaje", "et": "Kotipood", "fa": "فروشگاه کیف/چمدان", "fi": "Matkalaukkumyymälä", "fr": "Bagagerie", "gl": "Tenda de maletas", "he": "חנות מזוודות", "hr": "Trgovina sa torbama", "hu": "Táska- és bőröndbolt", "is": "Töskubúð", "it": "Negozio di borse e valigie", "ja": "バッグ/カバン店", "ko": "가방/여행가방 가게", "lt": "Kuprinių/lagaminų parduotuvė", "lv": "Somu / Čemodānu veikals", "mk": "Продавница за чанти, торби и куфери", "nl": "Zak-/Reiskofferwinkel", "no": "Veskebutikk", "pl": "Sklep z torebkami/walizkami", "pt-BR": "Loja de Bolsas/Malas", "pt": "Loja de malas / bagagem", "ro": "Magazin de Bagaje", "ru": "Магазин сумок и саквояжа", "sk": "Obchod s kuframi", "sl": "Trgovina za prtljago", "sv": "Väskaffär", "th": "ร้านกระเป๋า", "tr": "Çanta/Valiz Mağazası", "uk": "Магазин з продажу валіз", "vi": "Tiệm Túi", "zh-CN": "箱包店", "zh-HK": "袋/行李箱店", "zh-TW": "包包/行李店" } }, "shop/bathroom_furnishing": { "title": { "C": "Bathroom Furnishing Store", "id": "Toko Perlengkapan Kamar Mandi", "ar": "متجر أثاث واكسسوارات الحمامات", "bg": "Магазин за обзавеждане на бани", "br": "Stal dafar sal-gibellañ", "ca": "Botiga de mobles de bany", "cs": "Vybavení koupelen", "cy": "Siop Ddodrefn Ystafell Ymolchi", "da": "Badeværelseindretningsbutik", "de": "Badeinrichtungsgeschäft", "el": "Κατάστημα εξοπλισμού μπάνιου", "en-GB": "Bathroom Furnishing Shop", "en": "Bathroom Furnishing Store", "eo": "Lavĉambr-akcesoraĵa vendejo", "es": "Tienda de muebles de baño", "et": "Santehnika kauplus", "fa": "فروشگاه لوازم حمام", "fi": "Kylpyhuoneliike", "fr": "Fournitures pour salles de bain", "gl": "Tenda de mobles de baño", "he": "חנות רהיטי שירותים/מקלחת", "hr": "Prodavaonica kupaonske opreme", "hu": "Fürdőszobafelszerelés-bolt", "is": "Baðinnréttingaverslun", "it": "Negozio di prodotti per il bagno", "ja": "浴室用品店", "ko": "화장실 기구 가게", "lt": "Vonios baldų parduotuvė", "mk": "Продавница за санитарии", "nl": "Badkamermeubelwinkel", "no": "Baderomsbutikk", "pl": "Sklep z wyposażeniem łazienek", "pt-BR": "Loja de Mobiliário de Banheiros", "pt": "Loja de assessórios para casas de banho", "ro": "Magazin de Mobilier pentru Băi", "ru": "Магазин продающий мебель для ванных комнат", "sk": "Obchod s kúpelňami", "sl": "Trgovina s kopalniško opremo", "sv": "Badrumsinredning", "th": "ร้านอุปกรณ์อาบน้ำ", "tr": "Züccaciye", "uk": "Магазин сантехніки", "vi": "Tiệm Bán đồ Phòng tắm", "zh-CN": "浴室家具店", "zh-HK": "浴室配件店", "zh-TW": "衛浴用品店" } }, "shop/beauty": { "title": { "C": "Beauty Shop", "am": "ውበት / ስፓ", "bs": "Salon ljepote", "id": "Salon Kecantikan", "zh": "美容店", "af": "Skoonheidswinkel", "ar": "محل تجميل", "ast": "Cosmética", "bg": "Козметик", "br": "Kenederezh", "ca": "Saló de bellesa", "cs": "Kosmetický salón", "cy": "Siop Harddwch", "da": "Skønhedsforhandler", "de": "Schönheitssalon", "el": "Κατάστημα Ομορφιάς", "en-GB": "Beauty Shop", "en": "Beauty Shop", "eo": "Salono de beligado", "es": "Salón de belleza", "et": "Ilusalong", "fa": "سالن زیبایی", "fi": "Kauneushoitola", "fr": "Salon de beauté", "gl": "Salón de beleza", "he": "חנות מוצרי יופי/טיפוח", "hr": "Kozmetički salon", "hu": "Szépségszalon", "is": "Fegrunarstofa", "it": "Salone di bellezza", "ja": "美容サービス", "ko": "뷰티 샵", "lt": "Grožio salonas", "lv": "Skaistumveikals", "mk": "Салон за убавина", "nl": "Schoonheidssalon", "no": "Skjønnhetsbutikk", "pl": "Salon urody", "pt-BR": "Salão de Beleza", "pt": "Centro de estética", "ro": "Magazin Beauty", "ru": "Салон красоты", "sk": "Salón krásy", "sl": "Lepotilni salon", "sr": "Салон лепоте", "sv": "Skönhetssalong", "ta": "அழகுசாதனக் கடை", "th": "ร้านเสริมสวย", "tr": "Güzellik Salonu", "uk": "Салон краси", "vi": "Thẩm mỹ viện", "yue": "美容院", "zh-CN": "美容店", "zh-HK": "美容院", "zh-TW": "美容店" } }, "shop/beverages": { "title": { "C": "Beverage Store", "am": "የለስላሳ መጠጦች ማከፋፈያ", "bs": "Prodavnica pića", "id": "Toko Minuman", "ms": "Kedai Minuman", "zh": "饮品店", "af": "Drankgoedwinkel", "ar": "محل بيع مشروبات ومرطبات", "ast": "Venta de bebíes", "bg": "Магазин за алкохол и цигари", "br": "Stal-evajoù", "ca": "Botiga de begudes", "cs": "Prodejna nápojů", "cy": "Siop Ddiodydd", "da": "Drikkevarebutik", "de": "Getränkehandel", "el": "Αναψυκτήριο", "en-GB": "Beverages Shop", "en": "Beverage Store", "eo": "Trinkaĵa vendejo", "es": "Tienda de bebidas", "et": "Joogikauplus", "fa": "فروشگاه آشامیدنی", "fi": "Viinakauppa", "fr": "Magasin de boissons", "gl": "Tenda de bebidas", "he": "חנות משקאות", "hr": "Trgovina s pićima", "hu": "Italbolt", "is": "Drykkjarbúð", "it": "Negozio di bevande", "ja": "飲料店", "ko": "음료 가게", "lt": "Gėrimų parduotuvė", "lv": "Dzērienu veikals", "mk": "Продавница за пијалаци", "nl": "Drankenwinkel", "no": "Øl- og vinutsalg", "pl": "Sklep z napojami", "pt-BR": "Loja de Bebidas", "pt": "Loja de bebidas", "ro": "Magazin de Băuturi", "ru": "Магазин по продаже алкогольных и безалкогольных напитков", "sk": "Obchod s nápojmi", "sl": "Trgovina s pijačami", "sr": "Продавница пића", "sv": "Dryckaffär", "th": "ร้านเครื่องดื่ม", "tr": "İçecek Dükkanı", "uk": "Напої", "vi": "Tiệm Đồ uống", "yue": "飲品舖", "zh-CN": "饮料店", "zh-HK": "飲品店", "zh-TW": "飲品批發店" } }, "shop/bookmaker": { "title": { "C": "Bookmaker", "id": "Juru Taruh", "af": "Beroepswedder", "ar": "مكتب رهانات", "ast": "Encuadernador", "ca": "Casa d'apostes", "cs": "Sázková kancelář", "cy": "Siop Fetio", "da": "Bookmaker", "de": "Wettbüro", "el": "Πρακτορείο στοιχημάτων", "en-GB": "Bookmaker", "en": "Bookmaker", "eo": "Vetperistejo", "es": "Corredor de apuestas", "et": "Trükkal", "fa": "دلال شرط‌بندی", "fi": "Kirjapaino", "fr": "Bookmaker", "gl": "Corredor de apostas", "he": "כורך ספרים", "hr": "Kladioničar", "hu": "Fogadóiroda", "is": "Veðmangari", "it": "Agenzia di scommesse", "ja": "公営競技投票券売り場", "ko": "마권업자", "lt": "Knygrišys", "mk": "Обложувалница", "nl": "Bookmaker (gokkantoor)", "no": "Bookmaker", "pl": "Bukmacher", "pt-BR": "Casa de Apostas", "pt": "Casa de apostas", "ro": "Casă de pariuri", "ru": "Букмекерская контора", "sk": "Stávková kancelária", "sl": "Stavnica", "sr": "Кладионица", "sv": "Vadslagning", "th": "คนทำหนังสือ", "tr": "Bahis Merkezi", "uk": "Букмекер", "vi": "Phòng Đánh cá Ngựa", "zh-CN": "书商", "zh-HK": "投注站", "zh-TW": "投注處" } }, "shop/camera": { "title": { "C": "Camera Equipment Store", "ar": "Camera Equipment Store", "br": "Stal dafar luc'hskeudennerezh", "cs": "Prodejna kamer", "cy": "Siop Offer Camera", "da": "Fotoforhandler", "de": "Fotofachgeschäft", "el": "Κατάστημα Εξοπλισμού Καμερών", "en-GB": "Camera Equipment Shop", "en": "Camera Equipment Store", "eo": "Vendejo kun fotiloj kaj lensoj", "es": "Tienda de equipos de fotografía", "et": "Fotokaamera tarvikute pood", "fa": "فروشگاه لوازم عکاسی", "fi": "Kameraliike", "fr": "Boutique de matériel photographique", "gl": "Tenda de fotografía", "he": "חנות ציוד צילום", "hu": "Fényképezőgép-üzlet", "it": "Negozio di materiale fotografico", "ja": "カメラ店", "ko": "카메라 가게", "mk": "Продавница за фотографска опрема", "nl": "Winkel voor camerabenodigdheden", "pl": "Sklep z aparatami fotograficznymi i kamerami", "pt-BR": "Loja de equipamentos para câmeras", "pt": "Loja de equipamento fotográfico", "ru": "Магазин фотооборудования", "sk": "Obchod s fotoaparátmi", "sr": "Продавница опреме за камере", "sv": "Affär för kameratillbehör", "th": "ร้านอุปกรณ์กล้อง", "tr": "Kamera Ekipman Mağazası", "uk": "Фотообладнання", "vi": "Tiệm Máy ảnh", "zh-CN": "相机店", "zh-TW": "相機配件店" } }, "shop/candles": { "title": { "C": "Candle Shop", "id": "Toko Lilin", "ms": "Kedai Lilin", "ar": "متجر الشموع", "br": "Stal-vouji", "ca": "Botiga d'espelmes", "cs": "Obchod se svíčkami", "cy": "Siop Ganhwyllau", "da": "Stearinlysforhandler", "de": "Kerzengeschäft", "el": "Κατάστημα Κεριών", "en-GB": "Candle Shop", "en": "Candle Shop", "eo": "Kandela vendejo", "es": "Tienda de velas", "et": "Küünlapood", "fa": "شمع فروشی", "fi": "Kynttiläkauppa", "fr": "Magasin de bougies", "gl": "Tenda de velas", "he": "חנות נרות", "hr": "Prodavaonica svijeća", "hu": "Gyertyabolt", "is": "Kertabúð", "it": "Negozio di candele", "ja": "キャンドル専門店", "ko": "양초 가게", "lt": "Žvakių parduotuvė", "lv": "Sveču veikals", "mi": "Kānara toa", "mk": "Свеќарница", "nl": "Kaarsenwinkel", "no": "Lysstøperi", "pl": "Sklep ze świecami", "pt-BR": "Loja de Velas", "pt": "Loja de velas", "ro": "Magazin de Lumânări", "ru": "Свечной магазин", "sk": "Obchod so sviečkami", "sl": "Svečarstvo", "sr": "Свећарница", "sv": "Ljusaffär", "th": "ร้านเทียน", "tr": "Mum Mağazası", "uk": "Магазин свічок", "vi": "Tiệm Cây nến", "zh-CN": "蜡烛店", "zh-HK": "蠟燭店", "zh-TW": "燈具店" } }, "shop/car_parts": { "title": { "C": "Car Parts Store", "bn": "গাড়ির যন্ত্রাংশের দোকান", "bs": "Prodavnica auto dijelova", "id": "Toko Peralatan Mobil", "zh": "汽车配件店", "af": "Motoronderdelewinkel", "ar": "محل قطع غيار السيارة", "ast": "Repuestos d'automóviles", "bg": "Авточасти", "ca": "Botiga de recanvis de cotxe", "cs": "Náhradní díly pro auta", "cy": "Siop Rannau Car", "da": "Bilreservedelsforhandler", "de": "Autoteilehandel", "el": "Ανταλλακτικά Αυτοκινήτων", "en-GB": "Car Parts Shop", "en": "Car Parts Store", "eo": "Aŭtomobil-parta vendejo", "es": "Tienda de repuestos de automóvil", "et": "Autoosade pood", "fa": "فروشگاه قطعات خودرو", "fi": "Varaosamyymälä", "fr": "Magasin de pièces automobiles", "gl": "Tenda de recambios de automóbiles", "he": "חנות חלקי מכוניות", "hr": "Trgovina rezevnih dijelova za automobile", "hu": "Autóalkatrész-üzlet", "is": "Bílavarahlutaverslun", "it": "Negozio di autoricambi", "ja": "カー用品店", "ko": "자동차 부품 가게", "lt": "Auto dalių parduotuvė", "lv": "Auto rezerves daļu veikals", "mk": "Продавница за автоделови", "nl": "Auto-onderdelenwinkel", "no": "Bildelforhandler", "pl": "Sklep z częściami do samochodów", "pt-BR": "Autopeças", "pt": "Loja de peças para automóveis", "ru": "Автозапчасти", "sk": "Predajňa autodielov", "sl": "Avtomobilski deli", "sr": "Продавница ауто делова", "sv": "Biltillbehör", "th": "ร้านอะไหล่รถยนต์", "tr": "Yedek Parça Dükkanı", "uk": "Автозапчастини", "vi": "Tiệm Phụ tùng Xe hơi", "yue": "汽車零件舖", "zh-CN": "汽车零部件商店", "zh-HK": "汽車零件店", "zh-TW": "汽車零件店" } }, "shop/caravan": { "title": { "C": "RV Dealership", "ar": "متجر بيع كرفانات ومنازل متنقلة", "cs": "Prodejna karavanů", "cy": "Gwerthwr Carafannau", "da": "Autocamperforhandler", "de": "Wohnwagengeschäft", "en-AU": "Caravan Dealership", "en-GB": "Caravan Dealership", "en-NZ": "Caravan Shop", "en": "RV Dealership", "eo": "Vendejo de kampad-veturiloj", "es": "Concesionario de autocaravanas", "et": "Haagissuvilate/autoelamute müügiplats", "fi": "Asuntovaunukauppa", "fr": "Concessionnaire de véhicules de tourisme", "gl": "Concesionario de autocaravanas", "he": "סוכנות קרוואנים", "hu": "Lakókocsi kereskedés", "it": "Concessionario caravan", "ja": "キャラバンカー販売店", "ko": "RV 대리점", "mk": "Продавач на камп-возила", "nl": "Caravan-dealer", "no": "Bobilforhandler", "pl": "Sklep z kamperami i przyczepami", "pt-BR": "Concessionária de Motorhomes", "pt": "Vendedor de caravanas", "ru": "Продажа домов на колёсах", "sk": "Obchod s karavanmi", "sv": "Husvagnsförsäljare", "th": "ตัวแทนจำหน่ายรถบ้าน", "tr": "Karavan Galerisi", "uk": "Салон автотрейлерів", "vi": "Tiệm Nhà xe Lưu động", "zh-CN": "房车售卖", "zh-TW": "拖車經銷商" } }, "shop/carpet": { "title": { "C": "Carpet Store", "id": "Toko Karpet", "af": "Tapytwinkel", "ar": "متجر سجاد ومفروشات", "ast": "Alfombres", "bg": "Магазин за килими", "ca": "Botiga de catifes", "cs": "Prodejna koberců", "cy": "Siop Garped", "da": "Tæppeforhandler", "de": "Teppichgeschäft", "el": "Κατάστημα χαλιών", "en-GB": "Carpet Shop", "en": "Carpet Store", "eo": "Tapiŝa vendejo", "es": "Tienda de alfombras", "et": "Vaibapood", "fa": "فرش فروشی", "fi": "Mattokauppa", "fr": "Magasin de tapis", "gl": "Tenda de alfombras", "he": "חנות שטיחים", "hr": "Prodavaonica tepiha", "hu": "Szőnyegbolt", "is": "Gólfteppaverslun", "it": "Negozio di tappeti", "ja": "カーペット店", "ko": "카펫 가게", "lt": "Kilimų parduotuvė", "lv": "Paklāju veikals", "mk": "Продавница за теписи", "nl": "Tapijtwinkel", "no": "Teppehandler", "pl": "Sklep z dywanami", "pt-BR": "Tapeçaria", "pt": "Loja de tapetes", "ro": "Magazin de Covoare", "ru": "Магазин ковров", "sk": "Obchod s kobercami", "sl": "Trgovina s preprogrami", "sr": "Продавница тепиха", "sv": "Mattaffär", "th": "ร้านขายพรม", "tr": "Halı Mağazası", "uk": "Магазин килимів", "vi": "Tiệm Thảm", "zh-CN": "地毯店", "zh-HK": "地毯店", "zh-TW": "地毯店" } }, "shop/catalogue": { "title": { "C": "Catalog Shop", "ar": "Catalog Shop", "cs": "Katalogový obchod", "cy": "Siop Gátalog", "de": "Versandhandel", "en-GB": "Catalogue Shop", "en": "Catalog Shop", "eo": "Ricevejo de aĉetaĵoj (per katalogo)", "es": "Tienda de catálogo", "fa": "فروشگاه کاتالوگ", "fr": "Magasin à catalogue", "gl": "Tenda de catálogo", "he": "חנות קטלוגים", "hu": "Katalógus-áruház", "it": "Produzione di Cataloghi", "ja": "カタログショップ", "ko": "카탈로그 가게", "mk": "Каталошка продавница", "nl": "Cataloguswinkel", "pl": "Catalog Shop", "pt-BR": "Catálogo de loja", "pt": "Loja de catálogo", "sk": "Obchod s katalógovým tovarom", "sv": "Katalogaffär", "th": "ร้านค้าที่ใช้แคตตาล็อก", "tr": "Katalog Mağazası", "uk": "Товари поштою", "zh-CN": "Catalog Shop", "zh-TW": "目錄店" } }, "shop/charity": { "title": { "C": "Charity Store", "af": "Liefdadigheidswinkel", "ar": "متجر خيري", "ca": "Botiga de Caritat", "cs": "Charitativní obchod", "cy": "Siop Elusen", "da": "Velgørenhedsbutik", "de": "Sozialkaufhaus", "el": "Κατάστημα Φιλανθρωπίας", "en-GB": "Charity Shop", "en": "Charity Store", "eo": "Almoza vendejo", "es": "Tienda de caridad", "et": "Heategevuslik kauplus", "fa": "فروشگاه خیریه", "fi": "Hyväntekeväisyyskauppa", "fr": "Magasin d'organisme caritatif", "gl": "Tenda solidaria", "he": "חנות צדקה", "hu": "Adománybolt", "is": "Góðgerðaverslun", "it": "Mercatino dell'usato", "ja": "チャリティショップ", "ko": "자선 쇼핑몰", "mk": "Добротворна продавница", "nl": "Winkel van goed doel", "pl": "Sklep charytatywny", "pt-BR": "Loja de Caridade", "pt": "Loja solidária", "ro": "Magazin de Caritate", "ru": "Благотворительный магазин", "sk": "Charitný obchod", "sv": "Second hand-butik", "th": "ร้านการกุศล", "tr": "Yardım Mağazası", "uk": "Доброчинна крамниця", "vi": "Tiệm Từ thiện", "zh-CN": "慈善机构店", "zh-HK": "慈善商店", "zh-TW": "慈善商店" } }, "shop/chocolate": { "title": { "C": "Chocolate Store", "id": "Toko Cokelat", "ms": "Kedai Coklat", "af": "Sjokoladewinkel", "ar": "متجر شوكولاتة", "ast": "Chocolatería", "br": "Chokolader", "ca": "Botiga de xocolata", "cs": "Prodejna čokolády", "cy": "Siop Siocled", "da": "Chokoladeforretning", "de": "Schokoladenladen", "el": "Κατάστημα Ειδών Σοκολάτας", "en-AU": "Chocolate Shop", "en-GB": "Chocolate Shop", "en": "Chocolate Store", "eo": "Ĉokolada vendejo", "es": "Chocolatería", "et": "Šokolaadikauplus", "fa": "فروشگاه شکلات", "fi": "Suklaapuoti", "fr": "Chocolatier", "gl": "Chocolataría", "he": "חנות שוקולד", "hr": "Prodavaonica čokolade", "hu": "Csokoládébolt", "is": "Súkkulaðibúð", "it": "Cioccolateria", "ja": "チョコレート店", "ko": "초콜릿 가게", "lt": "Šokolado parduotuvė", "lv": "Šokolādes veikals", "mk": "Продавница за чоколади", "nl": "Chocoladewinkel", "no": "Sjokoladebutikk", "pl": "Sklep z czekoladą", "pt-BR": "Loja de Chocolates", "pt": "Loja de chocolates", "ro": "Magazin de Ciocolată", "ru": "Магазин шоколада", "sk": "Obchod s čokoládou", "sl": "Čokoladnica", "sr": "Продавница чоколаде", "sv": "Chokladaffär", "th": "ร้านช็อคโกแลต", "tr": "Çikolata Dükkanı", "uk": "Магазин шоколаду", "vi": "Tiệm Sô-cô-la", "zh-CN": "巧克力店", "zh-HK": "朱古力店", "zh-TW": "巧克力店" } }, "shop/coffee": { "title": { "C": "Coffee Store", "ms": "Kedai Kopi", "af": "Koffiewinkel", "ar": "متجر القهوة", "ast": "Venta de café", "br": "Stal-gafe", "ca": "Botiga de cafè", "cs": "Obchod prodávající kávu", "cy": "Siop Goffi", "da": "Kaffebutik", "de": "Kaffeegeschäft", "el": "Καφεκοπτείο", "en-GB": "Coffee Shop (Retail)", "en-NZ": "Coffee Ingredients Store", "en": "Coffee Store", "eo": "Kafa vendejo", "es": "Tienda de café", "et": "Kohvipood", "fa": "فروشگاه قهوه", "fi": "Kahvikauppa", "fr": "Boutique de vente de cafés", "gl": "Tenda de café", "he": "חנות קפה", "hr": "Prodavaonica za kavu", "hu": "Kávébolt", "is": "Kaffibúð", "it": "Negozio di caffè", "ja": "コーヒー豆販売店", "ko": "커피 가게", "lt": "Kavos parduotuvė", "lv": "Kafijas veikals", "mk": "Продавница за кафе", "nl": "Koffiewinkel", "no": "Kaffebutikk", "pl": "Sklep z kawą", "pt-BR": "Loja de Cafés", "pt": "Loja de café", "ro": "Magazin de Cafea", "ru": "Магазин кофе", "sk": "Obchod s kávou", "sl": "Trgovina s kavo", "sr": "Продавница кафе", "sv": "Kaffeaffär", "th": "ร้านกาแฟ", "tr": "Kahveci", "uk": "Крамниця кави", "vi": "Tiệm Bột Cà phê", "zh-CN": "咖啡豆/粉店", "zh-HK": "咖啡店", "zh-TW": "咖啡店" } }, "shop/computer": { "title": { "C": "Computer Store", "am": "ኮምፒውተር", "bn": "কম্পিউটারের দোকান", "bs": "Prodavnica računara", "id": "Toko Komputer", "kn": "ಗಣಕಯಂತ್ರದ ಅಂಗಡಿ", "ms": "Kedai Komputer", "zh": "电脑店", "af": "Rekenaarwinkel", "ar": "محل حاسب آلي", "ast": "Informática", "bg": "Компютърен магазин", "br": "Stal-urzhiataerezh", "ca": "Botiga d'informàtica", "cs": "Počítače", "cy": "Siop Gyfrifiaduron", "da": "Computerforhandler", "de": "Computerfachhandel", "el": "Κατάστημα Υπολογιστών", "en-GB": "Computer Shop", "en": "Computer Store", "eo": "Komputila vendejo", "es": "Tienda de informática", "et": "Arvutipood", "fa": "فروشگاه کامپیوتر", "fi": "Tietokoneliike", "fr": "Magasin d'informatique", "gl": "Tenda de informática", "he": "חנות מחשבים", "hr": "Prodavaonica računala", "hu": "Számítógépbolt", "is": "Tölvuverslun", "it": "Negozio di informatica", "ja": "コンピューター店", "ko": "컴퓨터 가게", "lt": "Kompiuterių parduotuvė", "lv": "Datorveikals", "mk": "Продавница за сметачи", "nl": "Computerwinkel", "no": "Databutikk", "pa-PK": "کمپوٹر دی دکان", "pl": "Sklep komputerowy", "pt-BR": "Loja de Informática", "pt": "Loja de informática", "ro": "Magazin de Calculatoare", "ru": "Компьютерный магазин", "sk": "Obchod s výpočtovou technikou", "sl": "Računalniška trgovina", "sr": "Продавница рачунара", "sv": "Datorbutik", "ta": "கணினி விற்பனையகம்", "th": "ร้านคอมพิวเตอร์", "tr": "Bilgisayar Mağazası", "uk": "Комп’ютери", "vi": "Tiệm Máy tính", "yue": "電腦舖", "zh-CN": "电脑店", "zh-HK": "電腦店", "zh-TW": "電腦店" } }, "shop/copyshop": { "title": { "C": "Copy Store", "sq": "Fotokopje", "id": "Tempat Fotokopi", "af": "Fotostaatwinkel", "ar": "متجر نسخ وتصوير", "ast": "Copistería", "br": "Luc'heilañ ha moullañ", "ca": "Copisteria", "cs": "Kopírování", "cy": "Siop Gopïo", "da": "Fotokopishop", "de": "Kopierladen", "el": "Κατάστημα Φωτοτυπιών", "en-GB": "Copyshop", "en": "Copy Store", "eo": "Fotokopiilejo", "es": "Centro de copiado", "et": "Koopiateenuse kauplus", "fa": "چاپ و تکثیر", "fi": "Kopiointiliike", "fr": "Photocopie et impression", "gl": "Copistaría", "he": "חנות העתקות", "hr": "Fotokopiraona", "hu": "Fénymásoló", "is": "Ljósritunarstofa", "it": "Copisteria", "ja": "コピー店", "ko": "복사집", "lt": "Kopijavimo parduotuvė", "lv": "Printēšanas veikals", "mk": "Копирница", "nl": "Copyshop", "no": "Printsjappe", "pl": "Punkt ksero i druku", "pt-BR": "Copiadora", "pt": "Loja de fotocópias", "ro": "Atelier de Copiere", "ru": "Магазин копирования, печати", "sk": "Kopírovacie a tlačiarenské služby", "sl": "Fotokopirnica", "sr": "Копирница", "sv": "Tryckeri", "th": "ร้านถ่ายเอกสาร", "tr": "Kırtasiye", "uk": "Копіювальні послуги", "vi": "Tiệm Sao chép", "zh-CN": "打印店", "zh-HK": "影印店", "zh-TW": "影印店" } }, "shop/cosmetics": { "title": { "C": "Cosmetics Store", "id": "Toko Kosmetik", "af": "Kosmetiekwinkel", "ar": "متجر مستحضرات التجميل", "ast": "Perfumería", "br": "Stal produioù kened", "ca": "Botiga de cosmètics", "cs": "Obchod s kosmetikou", "cy": "Siop Golur", "da": "Kosmetikbutik", "de": "Kosmetikladen", "el": "Κατάστημα καλλυντικών", "en-GB": "Cosmetics Shop", "en": "Cosmetics Store", "eo": "Kosmetikaĵa (persona higieno) vendejo", "es": "Tienda de cosméticos", "et": "Kosmeetikapood", "fa": "فروشگاه آرایشی و بهداشتی", "fi": "Kosmetiikkamyymälä", "fr": "Magasin de cosmétiques", "gl": "Tenda de cosméticos", "he": "חנות קוסמטיקה", "hr": "Prodavaonica kozmetike", "hu": "Kozmetikai bolt", "is": "Snyrtivöruverslun", "it": "Negozio di cosmetici", "ja": "化粧品店", "ko": "화장품 가게", "lt": "Kosmetikos parduotuvė", "lv": "Kosmētikas veikals", "mk": "Продавница за козметика", "nl": "Cosmeticawinkel", "no": "Parfymeri", "pl": "Sklep z kosmetykami", "pt-BR": "Loja de Cosméticos", "pt": "Loja de cosmética", "ro": "osmetic", "ru": "Магазин косметики", "sk": "Obchod s kozmetikou", "sl": "Kozmetična trgovina", "sr": "Продавница козметике", "sv": "Sminkaffär", "th": "ร้านเครื่องสำอาง", "tr": "Kozmetik Mağazası", "uk": "Магазин косметики", "vi": "Tiệm Mỹ phẩm", "zh-CN": "化妆品店", "zh-HK": "化妝品店", "zh-TW": "化妝品店" } }, "shop/country_store": { "title": { "C": "Rural Supplies Store", "cs": "Venkovské potřeby", "de": "Dorfladen", "el": "Κατάστημα Αγροτικών Ειδών", "en": "Rural Supplies Store", "es": "Tienda de suministros rurales", "et": "Maarahva pood", "fr": "Quincaillerie", "he": "חנות הספקה כפרית", "ja": "農山村用品店", "mk": "Продавница за рурални стоки", "nl": "Plattelandswinkel", "pl": "Sklep z artykułami wiejskimi", "pt-BR": "Venda rural", "pt": "Loja para proprietários rurais", "ru": "Магазин сельских товаров", "sv": "Butik med landsbygdsförnödenheter", "th": "ร้านค้าชนบท", "tr": "Rural Supplies Store", "uk": "Сільмаг", "vi": "Tiệm Nông thôn", "zh-TW": "農具店" } }, "shop/dairy": { "title": { "C": "Dairy Store", "id": "Toko Susu", "ar": "متجر الألبان", "ast": "Llechería", "bg": "Млекарница", "br": "Diennerezh", "ca": "Botiga de productes làctics", "cs": "Mléčné výrobky", "cy": "Siop Laeth", "da": "Ismejeri", "de": "Milchgeschäft", "el": "Γαλακτοπωλείο", "en-GB": "Dairy Shop", "en-NZ": "Milk Product Shop", "en": "Dairy Store", "eo": "Laktaĵa vendejo", "es": "Tienda de lácteos", "et": "Piimapood", "fa": "فروشگاه لبنی", "fi": "Maitotuotemyymälä", "fr": "Crèmerie", "gl": "Tenda de produtos frescos", "he": "חנות מוצרי חלב", "hr": "Prodavaonica mliječnih proizvoda", "hu": "Tejtermékbolt", "is": "Mjólkurbúð", "it": "Negozio di latticini", "ja": "乳製品店", "ko": "유제품 가게", "lt": "Pieno produktų parduotuvė", "lv": "Piena veikals", "mk": "Бакалница", "nl": "Zuivelhandel", "no": "Ferskvarebutikk", "pl": "Sklep z nabiałem", "pt-BR": "Loja de Laticínios", "pt": "Loja de laticínios", "ro": "Magazin de Lactate", "ru": "Магазин молочных продуктов", "sk": "Obchod s mliečnymi výrobkami", "sl": "Mlekarna", "sr": "Продавница млечних производа", "sv": "Mejeriaffär", "th": "ร้านขายนม", "tr": "Süt Mağazası", "uk": "Молочний магазин", "vi": "Tiệm Sữa", "zh-CN": "牛奶店", "zh-HK": "奶製品店", "zh-TW": "奶製品店" } }, "shop/doors": { "title": { "C": "Door Shop", "ar": "متجر بيع أبواب", "bg": "Магазин за врати", "br": "Stal dorioù", "ca": "Botiga de portes", "cs": "Prodejna dveří", "cy": "Siop Ddrysau", "da": "Dørforhandler", "de": "Türgeschäft", "el": "Κατάστημα Θυρών", "en-GB": "Door Shop", "en": "Door Shop", "eo": "Vendejo de pordoj", "es": "Tienda de puertas (aberturas)", "et": "Uksepood", "fa": "فروشگاه در", "fi": "Oviliike", "fr": "Magasin de portes", "gl": "Tenda de portas", "he": "חנות דלתות", "hu": "Ajtószaküzlet", "it": "Negozio di porte", "ja": "ドア販売店", "ko": "문 가게", "mk": "Продавница за врати", "nl": "Deurenwinkel", "no": "Dørbutikk", "pl": "Sklep z drzwiami", "pt-BR": "Loja de portas", "pt": "Loja de portas", "ru": "Магазин дверей", "sk": "Obchod s dverami", "sr": "Продавница врата", "sv": "Affär med dörrar", "th": "ร้านขายประตู", "tr": "Kapı Dükkanı", "uk": "Магазин дверей", "vi": "Tiệm Cửa", "zh-CN": "门业店", "zh-HK": "門店", "zh-TW": "門店" } }, "shop/dry_cleaning": { "title": { "C": "Dry Cleaner", "sq": "Pastrim Kimik", "id": "Jasa Cuci Kering", "ms": "Kedai Cucian Kering", "af": "Droogskoonmaker", "ar": "مغسلة ملابس بالبخار", "ast": "Llimpieza en seco", "bg": "Химическо чистене", "br": "Stal-fererezh", "ca": "Bugaderia", "cs": "Čistírna", "da": "Renseri", "de": "Chemische Reinigung", "el": "Στεγνοκαθαριστήριο", "en-GB": "Dry Cleaner", "en": "Dry Cleaner", "eo": "Vest-lavejo (nepolara solvilo)", "es": "Tintorería", "et": "Keemiline puhastus", "fa": "خشکشویی", "fi": "Kuivapesula", "fr": "Pressing", "gl": "Tinturaría", "he": "ניקוי יבש", "hr": "Kemijska čistionica", "hu": "Vegytisztitó", "is": "Þurrhreinsun", "it": "Lavanderia", "ja": "クリーニング店", "ko": "드라이클리닝", "lv": "Ķīmiskā tīrītava", "mk": "Хемиско чистење", "nl": "Stomerij", "no": "Renseri", "pl": "Pralnia chemiczna", "pt-BR": "Lavanderia a seco", "pt": "Limpeza a seco", "ro": "Uscător", "ru": "Химчистка", "sk": "Čistiareň odevov", "sl": "Čistilnica", "sr": "Хемијско чишћење", "sv": "Kemtvätt", "th": "ร้านซักรีด", "tr": "Kuru Temizleme Mağazası", "uk": "Хімчистка", "vi": "Tiệm Giặt khô", "zh-CN": "干洗店", "zh-HK": "乾洗店", "zh-TW": "乾洗店" } }, "shop/e-cigarette": { "title": { "C": "E-Cigarette Shop", "ms": "Kedai Rokok Elektronik", "ar": "متجر سجائر إلكترونية", "br": "Stal sigaretennoù elektronek", "ca": "Botiga de cigars electrònics", "cs": "Obchod s e-cigaretami", "cy": "Siop E-Sigaréts", "da": "E-cigaretbutik", "de": "E-Zigarettengeschäft", "el": "Κατάστημα Ηλεκτρονικού Τσιγάρου", "en-GB": "E-Cigarette Shop", "en": "E-Cigarette Shop", "eo": "Elektronik-cigareda vendejo", "es": "Tienda de cigarrillo electrónico", "et": "E-sigaretipood", "fa": "فروشگاه سیگار الکترونیکی", "fi": "Sähkösavukemyymälä", "fr": "Magasin de cigarettes électroniques", "gl": "Tenda de cigarros electrónicos", "he": "חנות מוצרי עישון", "hu": "E-cigaretta bolt", "is": "Rafrettubúð", "it": "Negozio di sigarette elettroniche", "ja": "電子タバコ店", "ko": "전자 담배 가게", "lt": "El. cigarečių parduotuvė", "lv": "E-Cigarešu veikals", "mk": "Продавница за е-цигари", "nl": "E-sigarettenwinkel", "no": "E-sigarettbutikk", "pl": "Sklep z e-papierosami", "pt-BR": "Loja de cigarro eletrônico", "pt": "Loja de cigarros eletrónicos", "ro": "Magazin de Țigarete Electrice", "ru": "Магазин электронных сигарет", "sk": "Obchod s elektronickými cigaretami", "sr": "Продавница електронских цигарета", "sv": "Affär för elektroniska cigaretter", "th": "ร้านบุหรี่ไฟฟ้า", "tr": "Elektronik Sigara Mağazası", "uk": "Магазин Е-цигарок", "vi": "Tiệm Thuốc lá Điện tử", "zh-CN": "电子烟店", "zh-HK": "電子煙店", "zh-TW": "電子菸商店" } }, "shop/electrical": { "title": { "C": "Electrical Equipment Store", "am": "የኤሌትሪክ ዕቃዎች መሸጫ", "ar": "متجر المستلزمات الإلكترونية", "br": "Stal dafar tredanek", "ca": "Tenda d'equipament elèctric", "cs": "Prodejna elektoniky", "de": "Elektrofachgeschaft", "el": "Κατάστημα Ηλεκτρολογικού Εξοπλισμού", "en-GB": "Electrical Equipment Shop", "en": "Electrical Equipment Store", "eo": "Elektraĵa vendejo", "es": "Tienda de equipos eléctricos", "et": "Elektrikauba pood", "fa": "فروشگاه کالای برق", "fi": "Sähkötarvikekauppa", "fr": "Magasin d'équipements électriques", "gl": "Tenda de material eléctrico", "he": "חנות מוצרי חשמל", "hu": "Villamossági szaküzlet", "it": "Negozio di materiale elettrico", "ja": "電気店", "ko": "전기 기구 가게", "mk": "Продавница за електрика", "nl": "Winkel voor elektriciteitsbenodigdheden", "no": "Elektrisk utstyrsbutikk", "pl": "Sklep elektryczny", "pt-BR": "Loja de equipamentos elétricos", "pt": "Loja de material elétrico", "ru": "Магазин электротоваров", "sk": "Obchod s elektrotechnickými potrebami", "sr": "Продавница беле технике", "sv": "Affär med elutrustning", "th": "ร้านเครื่องใช้ไฟฟ้า", "tr": "Elektrikli Ekipman Mağazası", "uk": "Магазин електротехнічного обладнання", "vi": "Tiệm Linh kiện Điện tử", "zh-CN": "电气设备店", "zh-TW": "電氣材料行" } }, "shop/electronics": { "title": { "C": "Electronics Store", "am": "ኤሌክትሮኒክስ መሸጫ ሱቅ", "bn": "ইলেকট্রনিক্স-এর দোকান", "bs": "Prodavnica elektronike", "id": "Toko Elektronik", "ms": "Kedai Elektronik", "zh": "电器店", "af": "Elektronikawinkel", "ar": "محل إلكترونيات", "ast": "Electrónica", "bg": "Магазин за електроника", "br": "Stal mekanikoù tredan hag elektronek", "ca": "Botiga d'electrònica", "cs": "Elektro", "cy": "Siop Electroneg", "da": "Elektronikbutik", "de": "Elektronikfachgeschäft", "el": "Κατάστημα Ηλεκτρονικών", "en-GB": "Electronics Shop", "en": "Electronics Store", "eo": "Elektronika vendejo", "es": "Tienda de electrónica y electrodomésticos", "et": "Elektroonikapood", "fa": "فروشگاه لوازم برقی", "fi": "Elektroniikkamyymälä", "fr": "Magasin d'électronique et d'électroménager", "gl": "Tenda de electrodomésticos", "he": "חנות אלקטרוניקה", "hr": "Prodavaonica elektronike", "hu": "Szórakoztató elektronikai bolt", "is": "Rafeindatækjaverslun", "it": "Negozio di elettronica", "ja": "家電販売店(小型製品)", "ko": "전자 제품 가게", "lt": "Elektronikos parduotuvė", "lv": "Elektronikas veikals", "mk": "Продавница за електронска роба", "nl": "Huishoudtoestellen-/Witgoedwinkel", "no": "Elektronikkbutikk", "pl": "Sklep z elektroniką (RTV/AGD)", "pt-BR": "Loja de Eletrônicos", "pt": "Loja de eletrodomésticos", "ro": "Magazin de Electronice", "ru": "Магазин бытовой электроники", "sk": "Obchod s elektronikou", "sl": "Elektronska trgovina", "sr": "Продавница електронике", "sv": "Elektronikbutik", "th": "ร้านเครื่องใช้ไฟฟ้า", "tr": "Elektronik Mağazası", "uk": "Електроніка", "vi": "Tiệm Điện tử", "yue": "電器舖", "zh-CN": "电器店", "zh-HK": "電子舖", "zh-TW": "電器店" } }, "shop/erotic": { "title": { "C": "Erotic Store", "af": "Erotiese winkel", "ar": "Erotic Store", "ast": "Artículos eróticos", "br": "Sex-shop", "ca": "Botiga d'articles eròtics", "cs": "Sex shop", "cy": "Siop Erotig", "da": "Erotikbutik", "de": "Erotikgeschäft", "el": "Μαγαζί ερωτικών ειδών", "en-GB": "Erotic Shop", "en": "Erotic Store", "eo": "Seksumila vendejo", "es": "Tienda erótica", "et": "Erootikapood", "fa": "فروشگاه لوازم بزرگسالان", "fi": "Erotiikkamyymälä", "fr": "Sex-shop", "gl": "Tenda erótica", "he": "חנות ארוטיקה", "hr": "Prodavaonica erotskih pomagala", "hu": "Szexbolt", "is": "Hjálpartæki ástarlífsins", "it": "Sexy shop", "ja": "アダルトショップ", "ko": "성인용품 가게", "lt": "Erotikos parduotuvė", "lv": "Erotiskais veikals", "mk": "Еротска продавница", "nl": "Seksshop", "no": "Erotikkbutikk", "pl": "Sex shop", "pt-BR": "Sex Shop", "pt": "Sex shop", "ro": "Magazin Erotic", "ru": "Секс-шоп", "sk": "Ochod s erotickými potrebami", "sl": "Erotična trgovina", "sr": "Продавница еротике", "sv": "Sexshop", "th": "ร้านขายของเล่นผู้ใหญ่", "tr": "Erotik Ürünler Mağazası", "uk": "Секс-шоп", "vi": "Tiệm Bán đồ Khiêu dâm", "zh-CN": "情趣用品店", "zh-HK": "情趣用品店", "zh-TW": "情趣用品店" } }, "shop/fabric": { "title": { "C": "Fabric Store", "id": "Toko Kain", "ms": "Kedai Fabrik", "af": "Lapwinkel", "ar": "محل بيع الأقمشة", "br": "Stal wiadoù", "ca": "Botiga de teles", "cs": "Obchod s textilem", "cy": "Siop Ddeunydd", "da": "Stofforretning", "de": "Stoffgeschäft", "el": "Πωλήσεις Υφασμάτων", "en-GB": "Fabric Shop", "en": "Fabric Store", "eo": "Teksaĵa vendejo", "es": "Tienda textil", "et": "Kangakauplus", "fa": "پارچه فروشی", "fi": "Kangaskauppa", "fr": "Magasin de tissus", "gl": "Tenda de teas", "he": "חנות אריגה", "hr": "Trgovina za tkanine", "hu": "Méteráru-bolt", "is": "Álnavöruverslun", "it": "Negozio di tessuti", "ja": "生地屋", "ko": "직물 가게", "lt": "Audinių parduotuvė", "lv": "Audumu veikals", "mk": "Продавница за ткаенини", "nl": "Stofwinkel", "no": "Stoffbutikk", "pl": "Sklep z tkaninami", "pt-BR": "Loja de Tecidos", "pt": "Loja de tecidos", "ro": "Magazin de Materiale", "ru": "Магазин тканей", "sk": "Obchod s metrovým textilom", "sl": "Trgovina z metrskim blagom", "sr": "Продавница текстила", "sv": "Tygaffär", "th": "ร้านขายผ้า", "tr": "Kumaş Mağazası", "uk": "Магазин тканин", "vi": "Tiệm Vải", "zh-CN": "布店", "zh-HK": "布料店", "zh-TW": "帆布店" } }, "shop/fashion_accessories": { "title": { "C": "Fashion Accessories Store", "ar": "محل اكسسوارات الموضة", "ca": "Botiga d'accessoris de moda", "cs": "Prodejna módních doplňků", "da": "Butik for modetilbehør", "de": "Geschäft für Modeaccessoires", "el": "Κατάστημα για Αξεσουάρ Μόδας", "en-GB": "Fashion Accessories Shop", "en": "Fashion Accessories Store", "eo": "Galanteria (vestaj akcesoraĵoj) vendejo", "es": "Tienda de accesorios de moda", "et": "Moeaksessuaaride kauplus", "fa": "فروشگاه لوازم مد", "fi": "Muotitarvikekauppa", "fr": "Boutique d'accessoires de mode", "gl": "Tenda de accesorios de moda", "he": "חנות אביזרי אופנה", "hu": "Divat kiegészítők boltja", "it": "Negozio di accessori di moda", "ja": "ファッション小物店", "ko": "패션 액세서리 가게", "mk": "Продавница за модни додатоци", "nl": "Modeaccessoirewinkel", "pl": "Sklep z galanterią", "pt-BR": "Loja de acessórios de moda", "pt": "Loja de acessórios de moda", "ru": "Магазин модных аксессуаров", "sk": "Obchod s módnymi doplnkami", "sr": "Продавница модних додатака", "sv": "Affär för modeaccessoarer", "th": "ร้านขายเครื่องประดับแฟชั่น", "tr": "Moda Aksesuarları Mağazası", "uk": "Магазин модних аксесуарів", "vi": "Tiệm Phụ kiện Thời trang", "zh-CN": "饰品店", "zh-TW": "服裝配飾商店" } }, "shop/fireplace": { "title": { "C": "Fireplace Store", "ar": "متجر بيع المواقد والدفايات", "br": "Stal oaledoù", "ca": "Botiga de llars de foc", "cs": "Prodej krbů a kamen", "da": "Brændeovnsforretning", "de": "Kachelofenladen", "el": "Είδη Τζακιού", "en-GB": "Fireplace Shop", "en": "Fireplace Store", "eo": "Kamen-vendejo", "es": "Tienda de chimeneas", "et": "Küttekollete pood", "fa": "فروشگاه شومینه ، بخاری", "fi": "Takkamyymälä", "fr": "Magasin de cheminées", "gl": "Tenda de chemineas", "he": "חנות חימום", "hu": "Cserépkályha- és kandalló-szaküzlet", "it": "Negozio di caminetti", "ja": "暖房具店", "ko": "벽난로 가게", "mk": "Продавница за камини", "nl": "Haardwinkel", "no": "Peisbutikk", "pl": "Sklep z kominkami", "pt-BR": "Loja de Lareiras", "pt": "Loja de lareiras", "ru": "Продажа каминов", "sk": "Obchod s krbmi a kachľami", "sr": "Продавница камина", "sv": "Kaminbutik", "tr": "Şömine Mağazası", "uk": "Печі, каміни", "vi": "Tiệm Lò sưởi", "zh-CN": "壁炉用品店", "zh-TW": "壁爐商店" } }, "shop/flooring": { "title": { "C": "Flooring Supply Shop", "ar": "محل بيع أرضيات", "ca": "Botiga de sòls", "cs": "Podlahové krytiny", "de": "Fußbodengeschäft", "el": "Κατάστημα Πλακιδίων", "en-GB": "Flooring Supply Shop", "en": "Flooring Supply Shop", "eo": "Plank-vendejo", "es": "Tienda de suministros para pisos", "et": "Põrandatarvikute pood", "fa": "فروشگاه لوازم جانبی کفپوش", "fr": "Magasin de revêtements de sol", "gl": "Tenda de chans", "he": "חנות ריצוף", "hu": "Burkoló bolt", "it": "Negozio di articoli per pavimentazioni", "ja": "床用品店", "ko": "바닥재 가게", "mk": "Продавница за подови", "nl": "Vloerwinkel", "pl": "Sklep z posadzkami", "pt-BR": "Loja de materiais para pisos", "pt": "Loja de material de pavimentação", "sk": "Obchod s podlahovými krytinami", "sr": "Продавница подних облога", "sv": "Affär för golv", "th": "ร้านจำหน่ายวัสดุปูพื้น", "tr": "Döşeme Malzemeleri Mağazası", "uk": "Магазин напільних матеріалів", "zh-CN": "地板店", "zh-HK": "地板店", "zh-TW": "地板商店" } }, "shop/florist": { "title": { "C": "Florist", "am": "የአበባ መሸጫ", "bn": "ফুল ব্যবসায়ী", "bs": "Cvjećar", "id": "Toko Bunga", "kn": "ಹೂವಿನ ವ್ಯಾಪಾರಿ", "ms": "Kedai Bunga", "zh": "花店", "af": "Bloemiste", "ar": "محل بيع الورود", "ast": "Floristería", "bg": "Магазин за цветя", "br": "Stal-vleunioù", "ca": "Floristeria", "cs": "Květinářství", "cy": "Blodau", "da": "Blomsterbutik", "de": "Blumenhändler", "el": "Ανθοπωλείο", "en-GB": "Florist", "en": "Florist", "eo": "Florvendejo", "es": "Floristería", "et": "Lillepood", "fa": "گل فروشی", "fi": "Kukkakauppa", "fr": "Fleuriste", "ga": "Siopa Bláthanna", "gl": "Floraría", "he": "חנות פרחים", "hr": "Cvjećarna", "hu": "Virágbolt", "is": "Blómabúð", "it": "Fioraio", "ja": "生花店", "ko": "꽃 가게", "lt": "Gėlės", "lv": "Florists", "mk": "Цвеќарница", "nl": "Bloemenwinkel", "no": "Blomsterbutikk", "pl": "Kwiaciarnia", "pt-BR": "Floricultura", "pt": "Florista", "ro": "Florărie", "ru": "Цветочный магазин", "sk": "Kvetinárstvo", "sl": "Cvetličarna", "sr": "Цвећар", "sv": "Florist", "ta": "பூக்கடை", "th": "ร้านขายดอกไม้", "tr": "Çiçekçi", "uk": "Квіти", "vi": "Tiệm Hoa", "yue": "花舖", "zh-CN": "花店", "zh-HK": "花店", "zh-TW": "花店" } }, "shop/funeral_directors": { "title": { "C": "Funeral Home", "id": "Rumah Pemakaman", "kn": "ಶವಸಂಸ್ಕಾರದ ನೆಲೆ", "af": "Begrafnisondernemer", "ar": "محل بيع أكفان ومستلزمات الجنائز", "ast": "Velatoriu", "bg": "Погребална агенция", "br": "Lidoù kañv", "ca": "Tanatori", "cs": "Pohřební služba", "cy": "Trefnydd Angladdau", "da": "Bedemandsforretning", "de": "Beerdigungsinstitut", "el": "Γραφείο Τελετών", "en-GB": "Funeral Home", "en": "Funeral Home", "eo": "Tombistejo", "es": "Funeraria", "et": "Matusebüroo", "fa": "غسالخانه", "fi": "Hautaustoimisto", "fr": "Pompes funèbres", "gl": "Funeraria", "he": "קברן", "hr": "Pogrebno poduzeće", "hu": "Temetkezési iroda", "is": "Útfararheimili", "it": "Casa funeraria", "ja": "葬儀社", "ko": "장례식장", "lt": "Laidojimo namai", "lv": "Apbedīšanas birojs", "mk": "Погребално друштво", "nl": "Begrafenisondernemer", "no": "Begravelsesagent", "pl": "Zakład pogrzebowy", "pt-BR": "Funerária", "pt": "Agência funerária", "ro": "Casă Funerală", "ru": "Бюро похоронных услуг", "sk": "Pohrebný ústav", "sl": "Pogrebne storitve", "sr": "Продавница загробне опреме", "sv": "Begravningsbyrå", "th": "งานศพ", "tr": "Cenaze Koordinatörü", "uk": "Ритуальні послуги", "vi": "Nhà quàn", "yue": "殯儀館", "zh-CN": "殡仪馆", "zh-HK": "殯儀館", "zh-TW": "生命禮儀公司" } }, "shop/furniture": { "title": { "C": "Furniture Store", "am": "የቤትና የቢሮ ዕቃዎች መሸጫ", "bn": "আসবাবপত্রের দোকান", "bs": "Salon namještaja", "id": "Toko Furnitur", "kn": "ಪಿಟೋಪಕರಣಗಳ ಅಂಗಡಿ", "zh": "家具店", "af": "Meubelwinkel", "ar": "محل بيع أثاث", "ast": "Mueblería", "bg": "Мебелен магазин", "br": "Stal-arrebeuri", "ca": "Botiga de mobles", "cs": "Nábytek", "cy": "Siop Gelfi", "da": "Møbelforhandler", "de": "Möbelhaus", "el": "Κατάστημα Επίπλων", "en-GB": "Furniture Shop", "en": "Furniture Store", "eo": "Mebla vendejo", "es": "Mueblería", "et": "Mööblipood", "fa": "فروشگاه مبلمان", "fi": "Huonekaluliike", "fr": "Magasin de meubles", "gl": "Moblaría", "he": "חנות רהיטים", "hr": "Salon namještaja", "hu": "Bútorbolt", "is": "Húsgagnaverslun", "it": "Negozio di mobili", "ja": "家具店", "ko": "가구점", "lt": "Baldų parduotuvė", "lv": "Mēbeļu veikals", "mk": "Салон за мебел", "nl": "Meubelzaak", "no": "Møbelforhandler", "pl": "Sklep meblowy", "pt-BR": "Loja de Móveis", "pt": "Loja de mobiliário", "ro": "Magazin de Mobilă", "ru": "Мебельный магазин", "sk": "Obchod s nábytkom", "sl": "Trgovina s pohištvom", "sr": "Продавница намештаја", "sv": "Möbelaffär", "th": "ร้านเฟอร์นิเจอร์", "tr": "Mobilya Mağazası", "uk": "Меблі", "vi": "Cửa hàng Nội thất", "yue": "傢俬舖", "zh-CN": "家具店", "zh-HK": "傢俬店", "zh-TW": "傢具店" } }, "shop/garden_centre": { "title": { "C": "Garden Center", "bs": "Centar za baštovanstvo", "id": "Toko Tanaman", "zh": "花店", "af": "Tuinsentrum", "ar": "مشتل", "ast": "Xardinería", "bg": "Градински център", "br": "Liorzherezh", "ca": "Centre de jardineria", "cs": "Zahradnictví", "cy": "Canolfan Garddio", "da": "Havecenter", "de": "Gartenzentrum", "el": "Κέντρο Κήπου", "en-AU": "Garden Centre", "en-GB": "Garden Centre", "en-NZ": "Garden Centre", "en": "Garden Center", "eo": "Ĝarden-vendejo", "es": "Centro de jardinería / Vivero", "et": "Aianduskeskus", "fa": "مرکز خرید گل و گلدان", "fi": "Puutarhamyymälä", "fr": "Jardinerie", "gl": "Centro de xardinaría", "he": "חנות גננות", "hr": "Vrtni centar", "hu": "Kertészet", "is": "Garðaverslun", "it": "Vivaio", "ja": "園芸用品店", "ko": "원예 용품점", "lt": "Sodo centras", "lv": "Dārzkopības veikals", "mk": "Градинарски центар", "nl": "Tuincentrum", "no": "Gartneri", "pl": "Centrum ogrodnicze", "pt-BR": "Centro de Jardinagem", "pt": "Loja de jardinagem", "ro": "Magazin de Grădinărit", "ru": "Садовые принадлежности", "sk": "Záhradné centrum", "sl": "Vrtni center", "sr": "Баштенски центар", "sv": "Trädgårdscenter", "th": "ตลาดต้นไม้", "tr": "Bahçe Düzenleme Mağazası", "uk": "Садово-парковий центр", "vi": "Trung tâm Làm vườn", "yue": "園藝舖", "zh-CN": "园艺品店", "zh-HK": "園藝中心", "zh-TW": "園藝中心" } }, "shop/gas": { "title": { "C": "Bottled Gas Shop", "ar": "محل بيع الغاز المعبأ", "ast": "Gas embotelláu", "ca": "Punt de venta de Gas embotellat", "cs": "Obchod s lahvovým plynem", "da": "Gasflaskebutik", "de": "Gasflaschenverkauf", "el": "Κατάστημα Εμφιαλωμένων Αερίων", "en-GB": "Bottled Gas Shop", "en": "Bottled Gas Shop", "eo": "Gasuja vendejo", "es": "Tienda de gas embotellado", "et": "Balloongaasi kauplus", "fa": "فروشگاه کپسول گاز", "fi": "Kaasupulloliike", "fr": "Magasin de bouteilles de gaz", "gl": "Tenda de bombonas de gas", "he": "חנות גז", "hu": "Palackozottgáz-bolt", "is": "Verslun með flöskugas", "it": "Negozio di bombole", "ja": "ガスボンベ店", "ko": "가스통 가게", "lv": "Gāzes balonu veikals", "mk": "Продавница за плински боци", "nl": "Gasflessenwinkel", "pl": "Sklep z butlami gazowymi", "pt-BR": "Distribuidora de GLP", "pt": "Loja de botijas de gás", "ru": "Магазин газовых баллонов", "sk": "Obchod s plynovými fľašami", "sl": "Trgovina s plinskimi jeklenkami", "sv": "Gasbutik", "th": "ร้านแก็สหุงต้ม", "tr": "Tüpçü", "uk": "Продаж зрідженого газу", "vi": "Tiệm Ga", "zh-CN": "瓶装燃气站", "zh-HK": "瓶裝石油氣店", "zh-TW": "瓦斯店" } }, "shop/general": { "title": { "C": "General Store", "id": "Warung", "af": "Algemene handelaar", "ar": "متجر عام", "ca": "Botiga generalista", "cs": "Smíšené zboží", "cy": "Siop Gyffredinol", "de": "Gemischtwarenhandlung", "el": "Γενικό Κατάστημα", "en-GB": "General Shop", "en": "General Store", "eo": "Ĝenerala vendejo", "es": "Tienda general", "et": "Kauplus", "fa": "فروشگاه عمومی", "fi": "Sekatavarakauppa", "fr": "Magasin général", "gl": "Tenda xeral", "he": "חנות כללית", "hu": "Vegyesbolt", "it": "Emporio", "ja": "よろず屋", "ko": "일반 상점", "mk": "Општа продавница", "nl": "Algemene winkel", "no": "Landhandel", "pl": "Sklep wielobranżowy", "pt-BR": "Loja geral", "pt": "Mercearia", "sk": "Obchod s rôznym tovarom", "sr": "Класична продавница", "sv": "Generell affär", "th": "ร้านค้าทั่วไป", "tr": "Genel Mağaza", "uk": "Крамниця", "zh-CN": "杂货店", "zh-TW": "一般商店" } }, "shop/gift": { "title": { "C": "Gift Shop", "bn": "উপহারের দোকান", "bs": "Prodavnica suvenira", "id": "Toko Hadiah", "kn": "ಉಡುಗೊರೆಯ ಅಂಗಡಿ", "ms": "Kedai Hadiah", "zh": "礼品店", "af": "Geskenkwinkel", "ar": "محل بيع هدايا", "ast": "Regalos", "bg": "Магазин за подаръци", "br": "Stal-brofoù", "ca": "Botiga de regals", "cs": "Dárky, suvenýry", "cy": "Siop Roddion", "da": "Gavebutik", "de": "Geschenkeladen", "el": "Κατάστημα Δώρων", "en-GB": "Gift Shop", "en": "Gift Shop", "eo": "Suvenira vendejo", "es": "Tienda de regalos", "et": "Kingipood", "fa": "فروشگاه لوازم کادویی", "fi": "Lahjamyymälä", "fr": "Boutique de cadeaux", "gl": "Tenda de agasallos", "he": "חנות מתנות", "hr": "Suvenirnica", "hu": "Ajándékbolt", "is": "Gjafavörubúð", "it": "Negozio souvenir", "ja": "ギフト店", "ko": "선물 가게", "lt": "Dovanų parduotuvė", "lv": "Dāvanu veikals", "mk": "Продавница за подароци", "nl": "Cadeauwinkel", "no": "Gavebutikk", "pl": "Sklep z pamiątkami", "pt-BR": "Loja de Presentes", "pt": "Loja de lembranças", "ro": "Magazin de Cadouri", "ru": "Магазин сувениров", "sk": "Darčekový obchod", "sl": "Prodajalna daril", "sr": "Продавница поклона", "sv": "Presentbutik", "th": "ร้านของฝาก", "tr": "Hediyelik Eşya Dükkanı", "uk": "Подарунки", "vi": "Tiệm Quà tặng", "yue": "禮品舖", "zh-CN": "礼品店", "zh-HK": "禮品店", "zh-TW": "禮品店" } }, "shop/hairdresser_supply": { "title": { "C": "Hairdresser Supply Store", "ar": "متجر مستلزمات حلاقين", "br": "Stal dafar perukenner", "ckb": "فرۆشگای کەلوپەلی تراشین", "cs": "Kadeřnické potřeby", "da": "Butik med udstyr til frisører", "de": "Friseurbedarf", "el": "Εξοπλισμός Κομμωτηρίου", "en-GB": "Hairdresser Supply Shop", "en": "Hairdresser Supply Store", "eo": "Frizist-ilara vendejo", "es": "Tienda de suministros para peluquería", "et": "Juuksuritarvikute pood", "eu": "Ile-apaindegiko hornidura-denda", "fa": "فروشگاه لوازم سلمانی", "fi": "Hiustarvikemyymälä", "fr": "Magasin de matériel de coiffure", "gl": "Tenda de accesorios de salón de peiteado", "he": "חנות ציוד לספרים", "hu": "Fodrászkellék-bolt", "it": "Negozio di prodotti per parrucchiere", "ja": "理容用品店", "ko": "미용실 용품 가게", "mk": "Фризерски набавки", "nl": "Haarbenodigdhedenwinkel", "pl": "Sklep z artykułami fryzjerskimi", "pt-BR": "Loja de suprimentos de cabeleireiro", "pt": "Loja de acessórios de cabeleireiro", "ru": "Парикмахерские принадлежности", "sk": "Obchod s potrebami pre kaderníkov", "sr": "Продавница опреме за фризера", "sv": "Affär för hårprodukter", "th": "ร้านอุปกรณ์ทำผม", "tr": "Kuaför Malzemeleri Mağazası", "uk": "Перукарські товари", "vi": "Tiệm Mỹ phẩm Tóc", "zh-CN": "美发美容用品店", "zh-TW": "剪髮器材店" } }, "shop/hardware": { "title": { "C": "Hardware Store", "am": "ሲኒማ ቤት", "bs": "Prodavnica željezarije", "dv": "ހާރޑްވެއާރ ފިހާރަ", "id": "Toko Perkakas", "so": "Dukaanka Qalabka", "zh": "五金店", "af": "Hardewarewinkel", "ar": "محل مواد بناء", "ast": "Ferretería", "bg": "Железария", "br": "Kinkailherezh", "ca": "Ferreteria", "cs": "Železářství", "cy": "Siop Galedwedd", "da": "Håndværkerbutik", "de": "Eisenwarenhandel", "el": "Χρωματοπωλείο", "en-GB": "Hardware Shop", "en": "Hardware Store", "eo": "Laborila vendejo", "es": "Ferretería", "et": "Rauakauplus", "fa": "فروشگاه ابزارآلات و یراق", "fi": "Rautakauppa", "fr": "Quincaillerie", "gl": "Ferraxaría", "he": "חנות אספקה טכנית", "hr": "Željezarija", "hu": "Vas-műszaki bolt", "is": "Byggingavöruverslun", "it": "Ferramenta", "ja": "金物屋", "ko": "철물점", "lt": "Techninės įrangos parduotuvė", "lv": "Celtniecības veikals", "mk": "Продавница за алат и опрема", "nl": "Bouwmarkt", "no": "Jernvarehandel", "pl": "Sklep z narzędziami", "pt-BR": "Loja de Material de Construção", "pt": "Loja de ferragens", "ru": "Хозяйственный магазин", "sk": "Železiarstvo", "sl": "Železnina", "sr": "Гвожђара", "sv": "Järnaffär", "th": "ร้านขายเหล็ก", "tr": "Donanım Mağazası", "uk": "Будівельні товари", "vi": "Tiệm Ngũ kim", "yue": "五金舖", "zh-CN": "五金店", "zh-HK": "五金店", "zh-TW": "五金店" } }, "shop/hearing_aids": { "title": { "C": "Hearing Aids Store", "id": "Toko Alat Bantu Dengar", "af": "Gehoortoestellewinkel", "ar": "متجر سماعات الأذن الطبية", "ast": "Audiólogu", "bg": "Магазин за слухови апарати", "br": "Protezour-klevet", "ca": "Centre d'audició", "cs": "Obchod s naslouchátky", "da": "Høreapparatbutik", "de": "Hörgerätegeschäft", "el": "Κατάστημα ακουστικών βαρηκοΐας", "en-GB": "Hearing Aids Shop", "en": "Hearing Aids Store", "eo": "Aŭd-helpila vendejo", "es": "Tienda de audífonos", "et": "Kuulmisabipood", "fa": "فروشگاه لوازم کمک شنوایی", "fi": "Kuuloapumyymälä", "fr": "Audioprothésiste", "gl": "Tenda de audífonos", "he": "חנות מכשירי שמיעה", "hr": "Prodavaonica slušnih pomagala", "hu": "Hallókészülékbolt", "is": "Heyrnartækjaverslun", "it": "Negozio di apparecchi acustici", "ja": "補聴器店", "ko": "보청기 가게", "lt": "Klausos aparatų parduotuvė", "mk": "Продавница за слушни помагала", "nl": "Hoorapparatenwinkel", "no": "Høreapparatutsalg", "pl": "Sklep z aparatami słuchowymi", "pt-BR": "Loja de Aparelhos Auditivos", "pt": "Loja de aparelhos auditivos", "ru": "Магазин по продаже слуховых аппаратов", "sk": "Obchod s načúvacími prístrojmi", "sl": "Trgovina s slušnimi pripomočki", "sv": "Hörapparater", "th": "ร้านขายเครื่องช่วยฟัง", "tr": "İşitme Cihazı Mağazası", "uk": "Слухові апарати", "vi": "Tiệm Ống nghe", "zh-CN": "听觉恢复用品店", "zh-HK": "助聽器店", "zh-TW": "助聽器店" } }, "shop/hifi": { "title": { "C": "Hifi Store", "bs": "HiFi prodavnica", "id": "Toko Hifi", "zh": "音响店", "af": "Hoëtrouwinkel", "ar": "محل بيع أجهزة عالية الدقة", "ast": "Equipos de música", "bg": "Магазин за аудиотехника", "br": "Stal danvez hifi", "ca": "Botiga d'alta fidelitat", "cs": "Hifi elektronika", "cy": "Siop Hifi", "da": "Radioforhandler", "de": "HiFi-Laden", "el": "Κατάστημα Hifi", "en-GB": "Hifi Shop", "en": "Hifi Store", "eo": "Aldfidela-sona vendejo", "es": "Tienda de equipos de sonido", "et": "Hifi kauplus", "fa": "فروشگاه لوازم صوتی", "fi": "Hifimyymälä", "fr": "Magasin de matériel hi-fi", "gl": "Tenda de equipamento de son", "he": "חנות הגברה", "hr": "Prodavaonica audio opreme", "hu": "HiFi-szaküzlet", "is": "Hljómverslun", "it": "Negozio Hifi", "ja": "音響機器店", "ko": "고급 오디오 가게", "lt": "Hifi parduotuvė", "mk": "Продавница за аудиоопрема", "nl": "Hifi-/Bruingoedwinkel", "no": "Hifi-butikk", "pl": "Sklep ze sprzętem hi-fi", "pt-BR": "Loja de Aparelhos Hi-Fi", "pt": "Loja de alta fidelidade", "ru": "Магазин по продаже Hi-Fi", "sk": "Obchod so zvukovou technikou", "sl": "Trgovina z avdio opremo", "sr": "Музичка опрема", "sv": "HiFi-butik", "th": "ร้านขายเครื่องเสียง", "tr": "Hoparlör Mağazası", "uk": "Аудіо апаратура", "vi": "Tiệm Thiết bị Âm thanh", "yue": "音響舖", "zh-CN": "音响店", "zh-HK": "音響店", "zh-TW": "音響店" } }, "shop/household_linen": { "title": { "C": "Household Linen Shop", "ar": "محل المفروشات والأغطية المنزلية", "ca": "Botiga de roba per a la llar", "cs": "Bytový textil", "de": "Haushaltswäschegeschäft", "el": "Κατάστημα με είδη Προικός", "en-GB": "Household Linen Shop", "en": "Household Linen Shop", "eo": "Tuka vendejo", "es": "Tienda de ropa de hogar", "et": "Kodutekstiilipood", "fr": "Magasin de linge de maison", "gl": "Tenda de roupa de fogar", "he": "חנות מצעים", "hu": "Lakástextil-szaküzlet", "it": "Negozio di biancheria per la casa", "ja": "家庭用布製品店", "ko": "가정용 직물 가게", "mk": "Продавница за постелнини", "nl": "Winkel voor huishoudelijk linnen", "pl": "Sklep z pościelą/ręcznikami", "pt-BR": "Loja de roupa de casa", "pt": "Loja de têxteis para o lar", "sk": "Obchod s bytovým textilom", "sv": "Affär för hushållstextilier", "tr": "Ev Tekstili Mağazası", "uk": "Магазин білизни", "zh-CN": "布艺店", "zh-TW": "家用亞麻布商店" } }, "shop/houseware": { "title": { "C": "Houseware Store", "af": "Huisraadwinkel", "ar": "متجر بيع الأدوات المنزلية الصغيرة", "ast": "Menaxe del llar", "bg": "Домашни потреби", "ca": "Botiga d'articles per a la llar", "cs": "Domácí potřeby", "da": "Køkkenudstyr", "de": "Haushaltswarengeschäft", "el": "Είδη Οικιακής Χρήσης", "en-GB": "Houseware Store", "en": "Houseware Store", "eo": "Mastrum-aparata vendejo", "es": "Tienda de artículos del hogar", "et": "Kodutarvete kauplus", "fa": "فروشگاه لوازم خانگی خرد", "fi": "Kotitarvikekauppa", "fr": "Magasin d’articles ménagers", "gl": "Tenda de artigos do fogar", "he": "חנות כלי בית", "hu": "Háztartási bolt", "is": "Búsáhaldaverslun", "it": "Casalinghi", "ja": "家庭用品店", "ko": "가정용품 가게", "mk": "Продавница за домот", "nl": "Huisraadwinkel", "pa-PK": "گھریلو دکان", "pl": "Sklep z małymi artykułami gospodarstwa domowego", "pt-BR": "Loja de utensílios domésticos", "pt": "Loja de artigos para o lar", "ru": "Магазин товаров для дома", "sk": "Obchod s domácimi potrebami", "sr": "Позамантерија", "sv": "Husgeråd", "th": "ร้านขายของใช้ในบ้าน", "tr": "Ev Eşyaları Mağazası", "uk": "Господарські товари", "vi": "Tiệm Gia dụng", "zh-CN": "家居用品店", "zh-HK": "家庭用品店", "zh-TW": "家庭用品店" } }, "shop/interior_decoration": { "title": { "C": "Interior Decoration Store", "id": "Toko Dekorasi Interior", "af": "Binnenshuise versieringwinkel", "ar": "متجر الديكور الداخلي", "ast": "Decoración d'interiores", "br": "Stal kinklañ diabarzh", "ca": "Botiga de decoració d'interior", "cs": "Obchod s bytovými doplňky", "cy": "Siop Addurno Mewnol", "da": "Brugskunstbutik", "de": "Innenausstattungsgeschäft", "el": "Διακοσμητές Εσωτερικών Χώρων", "en-GB": "Interior Decoration Shop", "en": "Interior Decoration Store", "eo": "Ensembla (meblara) vendejo", "es": "Tienda de decoración de interiores", "et": "Sisedekoratsioonikauplus", "fa": "فروشگاه تزئینات داخلی", "fi": "Sisustusmyymälä", "fr": "Magasin de décoration d'intérieur", "gl": "Tenda de decoración de interiores", "he": "חנות עיצוב פנים", "hr": "Trgovina unutarnjeg uređenja", "hu": "Lakberendezési bolt", "is": "Innanhúshönnunarverslun", "it": "Negozio di decorazioni per interni", "ja": "インテリアショップ", "ko": "실내장식 가게", "lt": "Interjero dekoravimo parduotuvė", "mk": "Продавница за внатрешно уредување", "nl": "Binnenhuisdecoratiewinkel", "no": "Interiørbutikk", "pl": "Sklep z dekoracją wnętrz", "pt-BR": "Loja de Decoração Interior", "pt": "Loja de decoração de interiores", "ro": "Magazin de Decorații Interioare", "ru": "Магазин предметов интерьера", "sk": "Obchod s bytovými dekoráciami", "sr": "Унутрашња декорација", "sv": "Inredningsaffär", "th": "ร้านตกแต่งภายใน", "tr": "İç Dekorasyon Mağazası", "uk": "Оформлення інтер’єру", "vi": "Tiệm Trang trí Nội thất", "zh-CN": "室内装饰店", "zh-HK": "室內設計店", "zh-TW": "室內設計店" } }, "shop/jewelry": { "title": { "C": "Jewelry Store", "id": "Toko Perhiasan", "ar": "محل بيع مجوهرات", "bg": "Бижутерия", "br": "Stal-vravrigoù", "ca": "Joieria", "cs": "Klenotnictví", "cy": "Siop Gemwaith", "da": "Guldsmed", "de": "Juwelier", "el": "Κοσμηματοπωλείο", "en-AU": "Jewellery Store", "en-GB": "Jewellery Shop", "en": "Jewelry Store", "eo": "Juvelista vendejo", "es": "Joyería", "et": "Ehtepood", "fa": "جواهرفروشی", "fi": "Jalokiviliike", "fr": "Bijouterie", "gl": "Xoiaría", "he": "חנות תכשיטים", "hr": "Prodavaonica nakita", "hu": "Ékszerüzlet", "is": "Skartgripaverslun", "it": "Gioielleria", "ja": "宝飾店", "ko": "귀금속 가게", "mk": "Златарница", "nl": "Juwelierszaak", "no": "Gullsmed", "pl": "Sklep jubilerski", "pt-BR": "Joalheria", "pt": "Ourivesaria", "ru": "Ювелирный магазин", "sk": "Klenotníctvo", "sr": "Продавница накита", "sv": "Juvelerare", "th": "ร้านจิวเวลรี่", "tr": "Kuyumcu", "uk": "Ювелірні прикраси", "vi": "Tiệm Kim hoàn", "zh-CN": "珠宝店", "zh-HK": "珠寶店", "zh-TW": "珠寶店" } }, "shop/kiosk": { "title": { "C": "Kiosk", "am": "አነስተኛ ሱቅ", "sq": "Kioskë", "id": "Warung", "af": "Kiosk", "ar": "كشك", "ast": "Quioscu", "br": "Kiosk", "ca": "Quiosc", "cs": "Kiosek", "cy": "Ciosg", "da": "Kiosk", "de": "Kiosk", "el": "Περίπτερο", "en-GB": "Kiosk", "en": "Kiosk", "eo": "Gazetbudo", "es": "Quiosco", "et": "Kiosk", "fa": "دکه", "fi": "Kioski", "fr": "Kiosque", "ga": "Both", "gl": "Quiosco", "he": "קיוסק", "hr": "Kiosk", "hu": "Trafik (önálló épület)", "is": "Blaðastandur", "it": "Chiosco", "ja": "キオスク", "ko": "가판대", "lt": "Kioskas", "lv": "Kiosks", "mk": "Киоск", "nl": "Winkelkiosk", "no": "Kiosk", "pl": "Kiosk", "pt-BR": "Quiosque (comercial)", "pt": "Quiosque", "ru": "Магазин в виде киоска", "sk": "Kiosk", "sl": "Kiosk", "sr": "Киоск", "sv": "Kiosk", "th": "ร้านค้าขนาดเล็ก", "tr": "Büfe", "uk": "Кіоск", "vi": "Gian hàng", "zh-CN": "售货亭", "zh-TW": "販賣亭" } }, "shop/kitchen": { "title": { "C": "Kitchen Design Store", "sq": "Dyqan për Aredim të Kuzhinës", "id": "Toko Desain Interior Dapur", "ar": "متجر ديكور وتصميم المطابخ", "ast": "Diseñu de cocines", "br": "Stal keginoù", "ca": "Botiga de disseny de cuines", "cs": "Kuchyňské studio", "cy": "Siop Gegin", "da": "Køkkenforhandler", "de": "Küchenfachmarkt", "el": "Διακόσμηση Κουζίνας", "en-GB": "Kitchen Design Shop", "en": "Kitchen Design Store", "eo": "Kuirej-mebla vendejo", "es": "Tienda de diseño de cocinas", "et": "Köögimööblikauplus", "fa": "فروشگاه تزئینات آشپزخانه", "fi": "Keittiöliike", "fr": "Cuisiniste", "gl": "Tenda de deseño de cociñas", "he": "חנות עיצוב המטבח", "hr": "Trgovina kuhinjskog namještaja", "hu": "Konyhabútorbolt", "is": "Eldhúshönnunarverslun", "it": "Negozio di cucine", "ja": "キッチンデザイン店", "ko": "주방 디자인 가게", "lt": "Virtuvės dizaino parduotuvė", "lv": "Virtuves dizaina veikals", "mk": "Кујни и елементи", "nl": "Keukenontwerpwinkel", "no": "Kjøkkenbutikk", "pl": "Sklep z wyposażeniem i meblami kuchennymi", "pt-BR": "Loja de Cozinhas", "pt": "Loja de cozinhas", "ro": "Magazin de Bucătărie", "ru": "Магазин кухонь", "sk": "Kuchynské štúdio", "sr": "Кухињски дизајн", "sv": "Köksinredning", "tr": "Mutfak Eşyaları Mağazası", "uk": "Меблі для кухні", "vi": "Tiệm Thiết kế Phòng bếp", "zh-CN": "厨房用品店", "zh-HK": "廚房設計店", "zh-TW": "廚房設計行" } }, "shop/laundry": { "title": { "C": "Laundry", "am": "የልብስ ንጽህና መስጫ", "sq": "Lavanderi", "bs": "Praonica", "id": "Penatu", "kn": "ಧೋಬಿಖಾನೆ", "zh": "洗衣店", "af": "Wassery", "ar": "محل غسيل ملابس", "ast": "Llavandería", "bg": "Пералня", "br": "Kanndi", "ca": "Bugaderia", "cs": "Prádelna", "cy": "Golchi Dillad", "da": "Vaskeri", "de": "Wäscherei", "el": "Καθαριστήριο", "en-GB": "Laundry", "en": "Laundry", "eo": "Vest-lavejo (akvo)", "es": "Lavandería", "et": "Pesumaja", "fa": "رخت‌شوی‌خانه", "fi": "Pesula", "fr": "Laverie", "gl": "Lavandaría", "he": "כביסה", "hr": "Praonica rublja", "hu": "Mosoda", "is": "Þvottur", "it": "Lavanderia", "ja": "洗濯屋・ランドリー(非セルフ)", "ko": "세탁소", "lt": "Skalbykla", "lv": "Veļas mazgātuve", "mk": "Перачница", "nl": "Wasserette", "no": "Vaskeri", "pl": "Pralnia", "pt-BR": "Lavanderia", "pt": "Lavandaria", "ro": "Spălătorie", "ru": "Прачечная", "sk": "Čistiareň", "sl": "Pralnica", "sr": "Перионица", "sv": "Tvättinrättning", "ta": "சலவையகம்", "th": "ร้านซักรีด", "tr": "Çamaşır Yıkama", "uk": "Пральня", "vi": "Tiệm Giặt là", "yue": "洗衣舖", "zh-CN": "洗衣店", "zh-HK": "洗衣店", "zh-TW": "洗衣店" } }, "shop/leather": { "title": { "C": "Leather Store", "id": "Toko Kulit", "ar": "متجر المنتجات الجلدية", "ast": "Artículos de piel", "ca": "Botiga de cuirs", "cs": "Kožené zboží", "cy": "Siop Ledr", "da": "Læderbutik", "de": "Lederwarengeschäft", "el": "Κατάστημα με Δερμάτινα", "en-GB": "Leather Shop", "en": "Leather Store", "eo": "Ledaĵa vendejo", "es": "Talabartería", "et": "Nahakauplus", "fa": "فروشگاه چرم", "fi": "Nahkaliike", "fr": "Maroquinier", "gl": "Tenda de peles", "he": "חנות עור", "hr": "Trgovina kožnom galanterijom", "hu": "Bőrdíszműbolt", "is": "Leðurvöruverslun", "it": "Pelletteria", "ja": "皮革用品店", "ko": "가죽 가게", "lt": "Odos dirbinių parduotuvė", "lv": "Ādas veikals", "mk": "Кожна галантерија", "nl": "Lederwinkel", "no": "Skinnbutikk", "pl": "Sklep z odzieżą skórzaną", "pt-BR": "Loja de Couros", "pt": "Loja de couro", "ru": "Магазин кожаных изделий", "sk": "Obchod s kožennými výrobkami", "sl": "Usnjarna", "sr": "Продавница коже", "sv": "Läderaffär", "ta": "தோல் கடை", "th": "ร้านเครื่องหนัง", "tr": "Deri Dükkanı", "uk": "Шкіргалантерея", "vi": "Tiệm Đồ Da", "zh-CN": "皮具店", "zh-HK": "皮革店", "zh-TW": "皮革店" } }, "shop/lighting": { "title": { "C": "Lighting Store", "ar": "متجر إنارة ولمبات", "bg": "Магазин за осветителни тела", "br": "Stal lampoù", "cs": "Prodejna osvětlení", "cy": "Siop Oleuadau", "da": "Lampebutik", "de": "Leuchten- und Lampengeschäft", "el": "Κατάστημα Λάμπας", "en-GB": "Lighting Shop", "en": "Lighting Store", "eo": "Prilumigad‑aparata vendejo", "es": "Tienda de iluminación", "et": "Lambipood", "fa": "فروشگاه لوازم روشنایی", "fi": "Valaisinkauppa", "fr": "Magasin de lampes", "gl": "Tenda de iluminación", "he": "חנות תאורה", "hu": "Világítástechnikai szaküzlet", "it": "Negozio di illuminazione", "ja": "照明器具店", "ko": "조명 가게", "mk": "Продавница за расветни тела", "nl": "Verlichtingswinkel", "pl": "Sklep z oświetleniem", "pt-BR": "Loja de iluminação", "pt": "Loja de iluminação", "ru": "Магазин светильников", "sk": "Obchod so svietidlami", "sr": "Продавница осветљења", "sv": "Belysningsbutik", "th": "ร้านโคมไฟ", "tr": "Aydınlatma Mağazası", "uk": "Магазин освітлення", "vi": "Tiệm Đèn sáng", "zh-CN": "灯饰店", "zh-TW": "燈具店" } }, "shop/locksmith": { "title": { "C": "Locksmith", "bs": "Bravar", "id": "Ahli Kunci", "ar": "محل بيع أقفال ونسخ مفاتيح", "ast": "Cerraxería", "bg": "Ключар", "br": "Alc'hwezerezh", "ca": "Copisteria de claus", "cs": "Zámečník", "da": "Låsesmed", "de": "Schlüsseldienst", "el": "Κλειδαράς", "en-GB": "Locksmith", "en": "Locksmith", "eo": "Laborejo de seruristo", "es": "Cerrajería", "et": "Lukksepp", "eu": "Sarrailagilea", "fa": "قفل سازی", "fi": "Lukkoliike", "fr": "Serrurier", "gl": "Cerralleiro", "he": "מנעולן", "hr": "Bravar", "hu": "Lakatos", "is": "Lásasmiður", "it": "Fabbro", "ja": "鍵屋(専門店)", "ko": "열쇠 제조공", "lt": "Raktininkas", "lv": "Atslēdznieks", "mk": "Бравар", "nl": "Slotenmaker", "no": "Låsesmed", "pl": "Dorabianie kluczy / Ślusarz", "pt-BR": "Serralheiro", "pt": "Chaveiro", "ru": "Изготовление ключей", "sk": "Kľúčová služba (obchod)", "sl": "Ključavničar", "sr": "Бравар", "sv": "Låssmed", "th": "ช่างทำกุญแจ", "tr": "Anahtarcı", "uk": "Слюсар", "vi": "Thợ khóa", "yue": "鎖匠", "zh-CN": "锁匠铺", "zh-HK": "鎖匠", "zh-TW": "鎖匠" } }, "shop/lottery": { "title": { "C": "Lottery Shop", "id": "Toko Lotre", "af": "Loterywinkel", "ar": "متجر اليانصيب", "ast": "Loteríes", "bg": "Лотарийни билети", "br": "Lotiri", "ca": "Administració de loteria", "cs": "Prodejna losů", "cy": "Siop Loteri", "da": "Lotteributik", "de": "Lottoannahmestelle", "el": "Κατάστημα λαχείων", "en-GB": "Lottery Shop", "en": "Lottery Shop", "eo": "Loterbileta vendejo", "es": "Lotería", "et": "Lotopood", "fa": "فروشگاه قرعه کشی", "fi": "Veikkauspiste", "fr": "Loterie", "gl": "Tenda de lotaría", "he": "חנות לוטו", "hr": "Trgovina igara na sreću", "hu": "Lottózó", "is": "Lottósjoppa", "it": "Ricevitoria", "ja": "宝くじ売り場", "ko": "복권 가게", "lt": "Loterijų parduotuvė", "lv": "Loterijas veikals", "mk": "<преведете со истозначници или сродни поими на „Лотарија“, одделени со запирки>", "nl": "Loterij", "no": "Tipping", "pl": "Kolektura", "pt-BR": "Casa lotérica", "pt": "Loja de lotaria", "ro": "Loterie", "ru": "Продажа лотерейных билетов", "sk": "Obchod s lotériovými žrebmi", "sl": "Loterijska prodajalna", "sr": "Продавница лутрије", "sv": "Lotteri", "th": "ร้านขายหวย", "tr": "Loto Bayi", "uk": "Лотерейний магазин", "vi": "Tiệm Xổ số", "zh-CN": "彩票店", "zh-HK": "獎券店", "zh-TW": "彩券行" } }, "shop/mall": { "title": { "C": "Mall", "bn": "মল", "bs": "Tržni centar", "id": "Mal", "zh": "商场", "af": "Winkelsentrum", "ar": "مركز تسوق تجاري (مول)", "ast": "Centru comercial", "bg": "Мол", "br": "Kreizenn genwerzh", "ca": "Centre comercial", "cs": "Obchodní centrum", "cy": "Canolfan Siopa", "da": "Indkøbscenter", "de": "Einkaufszentrum", "el": "Εμπορικό Κέντρο", "en-AU": "Shopping Centre", "en-GB": "Shopping Centre", "en": "Mall", "eo": "Vendejaro", "es": "Centro comercial", "et": "Kaubanduskeskus", "fa": "مرکز خرید", "fi": "Kauppakeskus", "fr": "Centre commercial", "ga": "Ionad Siopadóireachta", "gl": "Centro comercial", "he": "קניון", "hr": "Trgovački centar", "hu": "Bevásárlóközpont", "is": "Verslunarmiðstöð", "it": "Centro commerciale", "ja": "ショッピングセンター", "ko": "쇼핑몰", "lt": "Prekybos centras", "lv": "Iepirkšanās centrs", "mk": "Трговски центар", "nl": "Winkelcentrum", "no": "Kjøpesenter", "pl": "Centrum handlowe", "pt-BR": "Shopping ou Galeria de lojas", "pt": "Centro comercial", "ro": "Mall", "ru": "Торговый центр", "sk": "Nákupné centrum", "sl": "Trgovski center", "sr": "Тржни центар", "sv": "Köpcenter", "ta": "பேரங்காடி", "th": "ห้างสรรพสินค้า", "tr": "Alışveriş Merkezi", "uk": "Торгівельний центр", "ur": "مال", "vi": "Trung tâm Thương mại", "yue": "大商場", "zh-CN": "购物中心", "zh-HK": "購物中心", "zh-TW": "購物中心" } }, "shop/massage": { "title": { "C": "Massage Shop", "am": "ማሳጅ ቤት", "id": "Panti Pijat", "ar": "صالون التدليك", "ast": "Masaxes", "br": "Saloñs merata", "ca": "Centre de massatges", "cs": "Masáže", "da": "Massagebutik", "de": "Massagesalon", "el": "Κατάστημα Μασάζ", "en-GB": "Massage Shop", "en": "Massage Shop", "eo": "Salono de masaĝo", "es": "Salón de masajes", "et": "Massaažisalong", "fa": "فروشگاه ماساژ", "fi": "Hierontayritys", "fr": "Salon de massage", "gl": "Tenda de masaxes", "he": "מכון עיסוי", "hr": "Studio za masažu", "hu": "Masszázsszalon", "is": "Nuddstofa", "it": "Centro massaggi", "ja": "マッサージ店", "ko": "마사지 가게", "lt": "Masažo parduotuvė", "lv": "Masāžu veikals", "mk": "Масажа", "nl": "Massagewinkel", "no": "Massasjesenter", "pl": "Salon masażu", "pt-BR": "Loja de Massagem", "pt": "Centro de massagens", "ro": "Masaj", "ru": "Массажный салон", "sk": "Masážny salón", "sr": "Салон за масажу", "sv": "Massage", "th": "ร้านนวด", "tr": "Masaj Salonu", "uk": "Масаж", "vi": "Tiệm Xoa bóp", "zh-CN": "按摩店", "zh-HK": "按摩店", "zh-TW": "按摩店" } }, "shop/medical_supply": { "title": { "C": "Medical Supply Store", "id": "Toko Peralatan Medis", "ar": "متجر مستلزمات وأجهزة طبية", "ast": "Tienda d'equipu médicu", "ca": "Botiga d'equipament mèdic", "cs": "Zdravotnické potřeby", "da": "Håndkøbsmedicinforhandler", "de": "Sanitätshaus", "el": "Κατάστημα Προμήθειας Ιατρικών Ειδών", "en-GB": "Medical Supply Shop", "en": "Medical Supply Store", "eo": "Medicin-aparata vendejo", "es": "Tienda de aparatos ortopédicos", "et": "Tervisetoodete kauplus", "eu": "Ortopedia eta medikuntzako-hornidura denda", "fa": "فروشگاه تجهیزات پزشکی", "fi": "Lääketarvikemyymälä", "fr": "Magasin de matériel médical", "gl": "Tenda de subministracións médicas", "he": "חנות ציוד רפואי", "hr": "Trgovina medicinske opreme", "hu": "Gyógyászati segédeszközök boltja", "is": "Lækningavöruverslun", "it": "Negozio di forniture mediche", "ja": "健康・医療器具店", "ko": "의료 용품 가게", "lt": "Medicinos reikmenų parduotuvė", "lv": "Medicīnisko piederumu veikals", "mk": "Медицинска опрема и залихи", "nl": "Winkel voor medische hulpmiddelen", "no": "Medisinsk utstyrsbutikk", "pl": "Sklep ze sprzętem medycznym", "pt-BR": "Loja de equipamentos hospitalares", "pt": "Loja de material médico", "ro": "Magazin Alimentar Medical", "ru": "Медицинские принадлежности", "sk": "Obchod so zdravotníckymi pomôckami", "sl": "Trgovina z medicinskimi primpomočki", "sr": "Продавница медицинске опреме", "sv": "Medicinsk utrustning", "th": "ร้านเวชภัณฑ์", "tr": "Medikal Ürünler Mağazası", "uk": "Медтехніка", "vi": "Tiệm Thiết bị Y tế", "zh-CN": "医疗用品店", "zh-HK": "醫療器材行", "zh-TW": "醫療器材行" } }, "shop/military_surplus": { "title": { "C": "Military Surplus Store", "ar": "متجر بيع المعدات والمستلزمات العسكرية المستعملة", "ca": "Botiga d'excedents militars", "cs": "Armádní výprodej", "da": "Militær overskudslager", "de": "Militärkleidungsabverkauf", "el": "Κατάστημα Στρατιωτικού Εξοπλισμού", "en-GB": "Military Surplus Shop", "en": "Military Surplus Store", "eo": "Ne-plu-necesa-armea-ekipaĵo vendejo", "es": "Tienda de excedentes militares", "et": "Sõjaväe ülejääkide pood", "fi": "Armeijan ylijäämämyymälä", "fr": "Surplus militaire", "gl": "Tenda de accesorios militares", "he": "חנות עודפי צבא", "hu": "Használt katonai felszerelések boltja", "it": "Negozio di eccedenze militari", "ja": "軍払い下げ品店", "ko": "군용품 판매점", "mk": "Продавница за воени вишоци", "nl": "Legerdump", "pl": "Sklep ze sprzętem wojskowym", "pt-BR": "Loja de excedente militar", "pt": "Loja de excedentes militares", "ru": "Армейский магазин", "sk": "Obchod s vojenskými predmetmi", "sr": "Продавница војних вишкова", "sv": "Affär med militäröverskott", "th": "ร้านขายอุปกรณ์ทางทหาร", "tr": "Askeri Fazlalık Mağazası", "uk": "Магазин військових товарів", "zh-CN": "军品店", "zh-TW": "軍用品店" } }, "shop/mobile_phone": { "title": { "C": "Mobile Phone Store", "bn": "মোবাইল ফোন-এর দোকান", "bs": "Prodavnica mobilnih uređaja", "dv": "މޯބައިލް ފޯނު ވިއްކާ ފިހާރަ", "id": "Toko Handphone", "ms": "Kedai Telefon Bimbit", "so": "Dukaanka Taleefoonka Gacanta", "zh": "手机店", "af": "Selfoonwinkel", "ar": "محل بيع هواتف", "ast": "Telefonía móvil", "bg": "Магазин за мобилни телефони", "br": "Stal pellgomzerioù hezoug", "ca": "Botiga de telefonia mòbil", "cs": "Obchod s mobily", "cy": "Siop Ffonau Symudol", "da": "Mobiltelefonforhandler", "de": "Mobiltelefonladen", "el": "Κατάστημα Κινητής Τηλεφωνίας", "en-GB": "Mobile Phone Shop", "en": "Mobile Phone Store", "eo": "Poŝtelefona vendejo", "es": "Tienda de telefonía móvil", "et": "Mobiilipood", "fa": "فروشگاه تلفن همراه", "fi": "Matkapuhelinmyymälä", "fr": "Magasin de téléphonie mobile", "gl": "Tenda de telefonía móbil", "he": "חנות טלפונים ניידים", "hr": "Prodavaonica mobilnih telefona", "hu": "Mobiltelefon-szaküzlet", "is": "Farsímaverslun", "it": "Negozio di telefonia mobile", "ja": "携帯電話店", "ko": "휴대폰 가게", "lt": "Mobiliųjų telefonų parduotuvė", "lv": "Mobilo telefonu veikals", "mk": "Мобилара", "nl": "Mobieletelefoonwinkel", "no": "Mobiltelefonforhandler", "pl": "Sklep z telefonami komórkowymi", "pt-BR": "Loja de Celulares", "pt": "Loja de telemóveis", "ro": "Magazin de Telefoane Mobile", "ru": "Магазин мобильных телефонов и аксессуаров", "sk": "Obchod s mobilnými telefónmi", "sl": "Trgovina z mobilnimi telefoni", "sr": "Продавница мобилних телефона", "sv": "Mobiltelefoner", "th": "ร้านโทรศัพท์มือถือ", "tr": "Cep Telefonu Mağazası", "uk": "Мобільні телефони", "vi": "Tiệm Điện thoại Di động", "yue": "電話舖", "zh-CN": "手机店", "zh-HK": "流動電話店", "zh-TW": "行動電話店" } }, "shop/model": { "title": { "C": "Model Shop", "ar": "متجر بيع النماذج المصغرة للأشياء", "cs": "Modelářský obchod", "de": "Modellbaugeschäft", "el": "Κατάστημα Μοντελισμού", "en-GB": "Model Shop", "en": "Model Shop", "eo": "Vendejo de modelfarado", "es": "Tienda de modelismo", "fi": "Pienoismallikauppa", "fr": "Magasin de modélisme", "gl": "Tenda de modelismo", "he": "חנות דגמים", "hu": "Modellező bolt", "it": "Negozio di modellistica", "ja": "模型店", "ko": "모형 가게", "mk": "Моделарска продавница", "nl": "Modelwinkel", "pl": "Sklep modelarski", "pt-BR": "Loja de modelos", "pt": "Loja de modelismo", "ru": "Магазин для моделирования", "sk": "Modelársky obchod", "sv": "Affär för byggmodeller", "th": "ร้านโมเดล", "tr": "Manken Dükkanı", "uk": "Магазин масштабних моделей", "vi": "Tiệm Mô hình", "zh-CN": "模型店", "zh-TW": "模型店" } }, "shop/money_lender": { "title": { "C": "Money Lender", "id": "Peminjaman Uang", "ms": "Ceti", "ar": "مُقرض المال", "ast": "Prestamista", "bg": "Бързи кредити", "br": "Prester", "ca": "Prestamista", "cs": "Nebankovní půjčky", "da": "Pengeudlåner", "de": "Geldverleih", "el": "Τοκογλύφος", "en-GB": "Money Lender", "en": "Money Lender", "eo": "Mon-pruntejo", "es": "Prestamista de dinero", "et": "Rahalaenutaja", "fa": "وام دهنده پول", "fi": "Rahanlainausliike", "fr": "Prêteur", "gl": "Prestamista de cartos", "he": "מלווה בריבית", "hu": "Pénzkölcsönző", "is": "Peningaútlán", "it": "Agenzia di prestiti", "ja": "消費者金融", "ko": "대출", "lt": "Pinigų skolintojas", "lv": "Naudas Aizdevējs", "mk": "Зајмување пари", "nl": "Particuliere Gelduitleendienst", "no": "Pengeutlåner", "pl": "Firma pożyczkowa", "pt-BR": "Financiadora", "pt": "Loja de empréstimos", "ro": "Creditor de Bani", "ru": "Ростовщик", "sk": "Požičovňa peňazí", "sl": "Posojilnica", "sr": "Зајмодавац", "sv": "Långivare", "th": "ผู้ให้กู้ยืมเงิน", "tr": "Tefeci", "uk": "Кредитна спілка", "vi": "Chỗ Mượn Tiền", "zh-CN": "放贷人", "zh-HK": "放債人", "zh-TW": "地下錢莊" } }, "shop/motorcycle": { "title": { "C": "Motorcycle Dealership", "bs": "Salon motocikala", "id": "Dealer Motor", "zh": "摩托车行", "af": "Motorfietshandelaar", "ar": "بائع دراجات نارية", "ast": "Venta de motos", "bg": "Магазин за мотоциклети", "br": "Gwerzher marc'hoù-tan", "ca": "Botiga de motocicletes", "cs": "Obchod s motocykly", "da": "Motorcykelforhandler", "de": "Motorradhändler", "el": "Εμπόριο Μοτοσυκλετών", "en-GB": "Motorcycle Dealership", "en": "Motorcycle Dealership", "eo": "Motorcikla vendejo", "es": "Concesionario de motos", "et": "Mootorrattapood", "fa": "نمایندگی موتور سیکلت", "fi": "Moottoripyöräliike", "fr": "Vendeur de motos", "gl": "Concesionario de motocicletas", "he": "חנות אופנועים", "hr": "Prodavaonica motocikala", "hu": "Motorkerékpár-kereskedés", "is": "Mótorhjólaverslun", "it": "Concessionario di motociclette", "ja": "バイク店", "ko": "오토바이 대리점", "lt": "Motociklų prekybos atstovybė", "lv": "Motociklu veikals", "mk": "Салон за мотоцикли", "nl": "Motorwinkel", "no": "Motorsykkelforhandler", "pl": "Sklep motocyklowy", "pt-BR": "Loja de motocicletas", "pt": "Loja de motas", "ro": "Magazin de Motociclete", "ru": "Магазин мотоциклов", "sk": "Predajňa motocyklov", "sl": "Trgovina z motorji", "sr": "Продавница мотоцикала", "sv": "Återförsäljare av motorcyklar", "th": "ร้านขายจักรยานยนต์", "tr": "Motosiklet Satış Mağazası", "uk": "Салон мотоциклів", "vi": "Tiệm Xe máy", "yue": "電單車行", "zh-CN": "摩托车店", "zh-HK": "電單車店", "zh-TW": "機車行" } }, "shop/motorcycle_repair": { "title": { "C": "Motorcycle Repair Shop", "af": "Motorfiets werkswinkel", "ar": "ورشة تصليح الدراجات النارية", "br": "Karrdi marc'hoù-tan", "ca": "Taller de reparació de motos", "cs": "Opravna motocyklů", "da": "Motorcykelværksted", "de": "Motorradwerkstatt", "el": "Συνεργείο Μοτοσυκλετών", "en-GB": "Motorcycle Repair Shop", "en": "Motorcycle Repair Shop", "eo": "Motorcikl-riparejo", "es": "Taller de reparación de motos", "et": "Mootorratta remondikoda", "fa": "تعمیرگاه موتورسیکلت", "fi": "Moottoripyöräkorjaamo", "fr": "Réparateur de motos", "gl": "Taller de arranxo de motocicletas", "he": "מוסך אופנועים", "hr": "Ormarići za bicikle", "hu": "Motorkerékpáralkatrész-bolt", "is": "Mótorhjólaviðgerðaverslun", "it": "Officina riparazione motocicli", "ja": "バイク修理店", "ko": "오토바이 수리점", "lt": "Motociklų taisykla", "lv": "Motociklu remonta darbnīca", "mk": "Поправка на мотоцикли", "nl": "Motorreparatie", "no": "Motorsykkelverksted", "pl": "Warsztat motocyklowy", "pt-BR": "Oficina de motocicletas", "pt": "Oficina de motas", "ru": "Мотомастерская", "sk": "Oprava motocyklov", "sr": "Поправка мотоцикала", "sv": "Motorcykelverkstad", "th": "ร้านซ่อมจักรยานยนต์", "tr": "Motosiklet Tamir Atölyesi", "uk": "Ремонт мотоциклів", "vi": "Tiệm Sửa Xe máy", "zh-CN": "摩托车修理店", "zh-TW": "摩托車維修店" } }, "shop/nutrition_supplements": { "title": { "C": "Nutrition Supplements Store", "ar": "متجر المكملات الغذائية", "ast": "Tienda de suplementos nutritivos", "br": "Stal klokaennoù boued", "ca": "Botiga de suplements nutricionals", "cs": "Obchod s potravními doplňky", "da": "Kosttilskudsbutik", "de": "Nahrungsergänzungsmittelgeschäft", "el": "Κατάστημα με Συμπληρώματα Διατροφής", "en-GB": "Nutrition Supplements Shop", "en": "Nutrition Supplements Store", "eo": "Diet-suplementa vendejo", "es": "Tienda de suplementos nutricionales", "et": "Toidulisandite kauplus", "fa": "فروشگاه تغذیه مکمل", "fi": "Lisäravinnemyymälä", "fr": "Boutique de compléments alimentaires", "gl": "Tenda de suplementos nutricionais", "he": "חנות ויטמינים", "hu": "Étrendkiegészítő-bolt", "is": "Verslun með fæðubótarefni", "it": "Negozio di integratori alimentari", "ja": "栄養サプリ販売店", "ko": "영양 보조 식품 가게", "mk": "Продавница за прехранбени додатоци", "nl": "Voedingssupplementenwinkel", "pl": "Sklep z suplementami diety", "pt-BR": "Loja de Suplementos Nutricionais", "pt": "Loja de suplementos alimentares", "ro": "Magazin de Suplimente Nutritive", "ru": "Магазин пищевых добавок", "sk": "Obchod s výživovými doplnkami", "sl": "Trgovina s prehrambenimi dodatki", "sr": "Продавница додатака исхрани", "sv": "Hälsokost", "th": "ร้านอาหารเสริม", "tr": "Gıda Takviye Ürünleri Mağazası", "uk": "Магазин харчових добавок", "vi": "Tiệm Thuốc bổ", "zh-CN": "保健品店", "zh-HK": "營養補充品店", "zh-TW": "營養補充品店" } }, "shop/optician": { "title": { "C": "Optician", "am": "መነፅር ቤት", "bn": "চক্ষুরোগের চিকিত্সক", "sq": "Okulist", "bs": "Optičar", "id": "Optik", "kn": "ನೇತ್ರ ತಜ್ಞ", "zh": "眼镜店", "af": "Oogarts", "ar": "متجر نظارات", "ast": "Óptica", "bg": "Оптика", "br": "Luneder", "ca": "Òptica", "cs": "Optika", "cy": "Optegydd", "da": "Optiker", "de": "Optiker", "el": "Οπτικός", "en-GB": "Optician", "en": "Optician", "eo": "Optikbutiko", "es": "Óptica", "et": "Optikapood", "fa": "عینک فروشی", "fi": "Optikko", "fr": "Opticien", "ga": "Radharceolaí", "gl": "Óptica", "he": "אופטיקאי", "hr": "Optičar", "hu": "Látszerész", "is": "Gleraugnaverslun", "it": "Ottico", "ja": "メガネ店", "ko": "안경점", "lt": "Optika", "lv": "Optometrists", "mk": "Оптичар", "nl": "Opticien", "no": "Optiker", "pl": "Optyk", "pt-BR": "Ótica", "pt": "Ótica", "ro": "Optician", "ru": "Оптика", "sk": "Optika", "sl": "Optik", "sr": "Оптичар", "sv": "Optiker", "th": "ช่างทำแว่นตา", "tr": "Gözlükçü", "uk": "Оптика", "vi": "Tiệm Kính mắt", "yue": "眼鏡鋪", "zh-CN": "眼镜店", "zh-HK": "眼鏡店", "zh-TW": "眼鏡行" } }, "shop/outpost": { "title": { "C": "Online Retailer Outpost", "ar": "محل استلام شحنات مطلوبة من الانترنت", "br": "Stal produioù gwerzhet enlinenn", "cs": "Výdejna e-shopu", "da": "Udlevering for onlineforhandlere", "de": "Abholstelle eines Onlinehändlers", "el": "Σημείο Παραλαβής Διαδικτυακών Πωλήσεων", "en-GB": "Online Retailer Outpost", "en": "Online Retailer Outpost", "eo": "Ricevejo de aĉetaĵoj (per interreto)", "es": "Puesto de venta minorista online", "fa": "پایگاه خرده‌فروشی آنلاین", "fi": "Verkkokaupan noutopiste", "fr": "Magasin de produits vendus en ligne", "gl": "Posto de venda minorista online", "he": "נקודת הפצה של שירות מקוון", "hu": "Internetes bolt", "it": "Centro ritiro acquisti online", "ja": "商品受け取り店", "ko": "전자상거래 사업자 영업소", "mk": "Испостава на семрежна продавница", "nl": "Voorpost van een online retailer", "no": "Utstillingsbutikk", "pl": "Placówka sklepu internetowego", "pt-BR": "Posto de retalhista online", "pt": "Posto de retalhista online", "ru": "Пункт выдачи интернет-магазина", "sv": "Utlämning av online-beställningar", "tr": "Çevrimiçi Perakende Satış Noktası", "uk": "Пункт видачі онлайн магазина", "zh-CN": "电商自提点", "zh-TW": "線上零售商提貨處" } }, "shop/paint": { "title": { "C": "Paint Store", "id": "Toko Cat", "ms": "Kedai Cat", "ar": "متجر دهانات وطلاء", "ast": "Tienda de pintures", "br": "Stal livadur", "ca": "Botiga de pintura", "cs": "Barvy a laky", "cy": "Siop Baent", "da": "Farvehandel", "de": "Farbengeschäft", "el": "Χρωματοπωλείο", "en-GB": "Paint Shop", "en": "Paint Store", "eo": "Farba vendejo", "es": "Tienda de pinturas", "et": "Värvipood", "fa": "فروشگاه رنگ", "fi": "Maalikauppa", "fr": "Magasin de peintures", "gl": "Tenda de pinturas", "he": "חנות צבע", "hr": "Prodavaonica boja", "hu": "Festékbolt", "is": "Málningarvöruverslun", "it": "Negozio di vernici", "ja": "塗料店", "ko": "페인트 가게", "lt": "Dažų parduotuvė", "lv": "Krāsu veikals", "mk": "Бои и лакови", "nl": "Verfwinkel", "no": "Malingsbutikk", "pl": "Sklep z farbami", "pt-BR": "Loja de Tintas", "pt": "Loja de tintas", "ro": "Magazin de Pictură", "ru": "Магазин красочных изделий", "sk": "Obchod s nátermi", "sl": "Trgovina z barvami", "sr": "Фарбара", "sv": "Färgbutik", "th": "ร้านขายสี", "tr": "Boyacı", "uk": "Магазин фарб", "vi": "Tiệm Sơn", "zh-CN": "油漆店", "zh-HK": "油漆店", "zh-TW": "油漆行" } }, "shop/party": { "title": { "C": "Party Supply Store", "ar": "متجر مستلزمات حفلات", "br": "Stal dafar gouelioù", "cs": "Párty zboží", "cy": "Siop Gynnyrch Partïon", "de": "Partyzubehör", "el": "Κατάστημα Προμηθειών για Πάρτυ", "en-GB": "Party Supply Shop", "en": "Party Supply Store", "eo": "Vendejo de okazaĵaj provizoj", "es": "Tienda de artículos para fiestas", "et": "Peotarvikute pood", "fa": "فروشگاه لوازم مهمانی", "fr": "Magasin de matériel de fête", "gl": "Tenda de artigos para festas", "he": "חנות ציוד למסיבות", "hu": "Partykellékbolt", "it": "Negozio di articoli per le feste", "ja": "パーティ用品店", "ko": "파티 용품 가게", "mk": "Набавки за забавни настани", "nl": "Feestwinkel", "pa-PK": "پارٹی دی دکان", "pl": "Sklep z artykułami imprezowymi", "pt-BR": "Loja de materiais para festas", "pt": "Loja de acessórios para festas", "ru": "Магазин для вечеринок", "sk": "Obchod s potrebami pre oslavy", "sr": "Продавница опреме за журке", "sv": "Partybutik", "th": "ร้านอุปกรณ์ปาร์ตี้", "tr": "Parti Malzemeleri Mağazası", "uk": "Товари до свят", "vi": "Tiệm Phụ kiện Trang trí Tiệc", "zh-CN": "派对节日用品", "zh-TW": "宴會器材店" } }, "shop/pawnbroker": { "title": { "C": "Pawnshop", "ar": "متجر رهن", "bg": "Заложна къща", "br": "Prester ouzh gouestl", "cs": "Zastavárna", "da": "Pantelåner", "de": "Pfandleihe", "el": "Ενεχυροδανειστήριο", "en-GB": "Pawnbroker", "en": "Pawnshop", "es": "Casa de empeños", "et": "Pandimaja", "fr": "Prêteur sur gages", "he": "בית משכון", "hu": "Zálogház", "it": "Banco dei pegni", "ja": "質屋", "mk": "Заложна куќа", "nl": "Pandjeshuis", "pl": "Lombard", "pt-BR": "Loja de penhor", "pt": "Loja de penhoras", "ru": "Ломбард", "sk": "Záložňa", "sr": "Залагаоница", "sv": "Pantbank", "th": "โรงรับจำนำ", "tr": "Pawnshop", "uk": "Ломбард", "vi": "Tiệm Cầm đồ", "zh-TW": "當舖" } }, "shop/perfumery": { "title": { "C": "Perfume Store", "ar": "متجر عطور", "ast": "Perfumería", "bg": "Парфюмерия", "br": "Porfumerezh", "ca": "Botiga de perfums", "cs": "Parfumerie", "da": "Parfumebutik", "de": "Parfümerie", "el": "Αρωματοπωλείο", "en-GB": "Perfume Shop", "en": "Perfume Store", "eo": "Parfuma vendejo", "es": "Perfumería", "et": "Parfüümikauplus", "fa": "عطر فروشی", "fi": "Hajusteliike", "fr": "Parfumerie", "gl": "Perfumaría", "he": "חנות בשמים", "hr": "Parfimerija", "hu": "Parfüméria", "is": "Ilmvatnsbúð", "it": "Profumeria", "ja": "香水店", "ko": "향수 가게", "lt": "Parfumerijos parduotuvė", "mk": "Парфимерија", "nl": "Parfumwinkel", "no": "Parfymeri", "pl": "Perfumeria", "pt-BR": "Perfumaria", "pt": "Perfumaria", "ro": "Magazin de Parfum", "ru": "Парфюмерия", "sk": "Parfuméria", "sl": "Parfumerija", "sr": "Парфемџиница", "sv": "Parfymbutik", "th": "ร้านน้ำหอม", "tr": "Parfümeri", "uk": "Парфуми", "vi": "Tiệm Nước hoa", "zh-CN": "香水店", "zh-HK": "香水店", "zh-TW": "香水店" } }, "shop/pet": { "title": { "C": "Pet Store", "bs": "Prodavnica kućnih ljubnimaca", "id": "Toko Peliharaan", "zh": "宠物店", "af": "Troeteldierwinkel", "ar": "محل بيع حيوانات أليفة", "ast": "Tienda de mascotes", "bg": "Зоо магазин", "br": "Stal-loened", "ca": "Botiga d'animals", "cs": "Chovatelské potřeby", "cy": "Siop Anifeiliaid Anwes", "da": "Dyrehandler", "de": "Zoofachgeschäft", "el": "Κατάστημα Κατοικίδιων", "en-GB": "Pet Shop", "en": "Pet Store", "eo": "Hejmbesta vendejo", "es": "Tienda de mascotas", "et": "Lemmikloomapood", "fa": "فروشگاه حیوانات خانگی", "fi": "Lemmikkiliike", "fr": "Animalerie", "gl": "Tenda de mascotas", "he": "חנות לחיות מחמד", "hr": "Prodavaonica kućnim ljubimcima", "hu": "Kisállatkereskedés", "is": "Dýrabúð", "it": "Negozio per animali", "ja": "ペットショップ", "ko": "애완동물 가게", "lt": "Augintinių parduotuvė", "lv": "Dzīvnieku veikals", "mk": "Продавница за домашни миленици", "nl": "Dierenwinkel", "no": "Dyrebutikk", "pl": "Sklep zoologiczny", "pt-BR": "Loja de animais ou artigos para animais", "pt": "Loja de animais de estimação", "ro": "Magazin de Animale", "ru": "Зоомагазин", "sk": "Obchod s potrebami pre domáce zvieratá", "sl": "Trgovina za domače živali", "sr": "Продавница кућних љубимаца", "sv": "Djurbutik", "th": "ร้านสัตว์เลี้ยง", "tr": "Evcil Hayvan Mağazası", "uk": "Товари для тварин", "vi": "Tiệm Vật nuôi", "yue": "寵物舖", "zh-CN": "宠物店", "zh-HK": "寵物舖", "zh-TW": "寵物店" } }, "shop/photo": { "title": { "C": "Photography Store", "bs": "Fotografska radnja", "id": "Toko Fotografi", "ar": "محل تصوير", "ast": "Fotografía", "bg": "Фото", "br": "Stal luc'hskeudennerezh", "ca": "Botiga de fotografia", "cs": "Fotografický obchod", "cy": "Siop Ffotograffiaeth", "da": "Fotoforretning", "de": "Fotofachgeschäft", "el": "Φωτογραφείο", "en-GB": "Photography Shop", "en": "Photography Store", "eo": "Fotografia vendejo", "es": "Tienda de fotografía", "et": "Fotograafiapood", "eu": "Argazkilaritza denda", "fa": "عکس و ویدیو", "fi": "Valokuvausliike", "fr": "Tirage de photos", "gl": "Tenda de fotografía", "he": "חנות צילום", "hr": "Prodavaonica fotografske opreme", "hu": "Fotósbolt", "is": "Ljósmyndavöruverslun", "it": "Fotografo", "ja": "写真店", "ko": "사진 가게", "lt": "Fotografijos parduotuvė", "lv": "Fotogrāfijas veikals", "mk": "Фотографски дуќан", "nl": "Fotowinkel", "no": "Fotobutikk", "pa-PK": "تصویراں دی دکان", "pl": "Sklep fotograficzny", "pt-BR": "Loja de Fotografia", "pt": "Loja de fotografia", "ro": "Magazin de Fotografie", "ru": "Фототовары", "sk": "Obchod s fototechnikou", "sl": "Foto trgovina", "sr": "Фотографска радња", "sv": "Fotoaffär", "th": "ร้านถ่ายรูป", "tr": "Fotoğrafçı", "uk": "Фототовари", "vi": "Tiệm Chụp Hình", "yue": "影相舖", "zh-CN": "照相馆", "zh-HK": "相片沖印店", "zh-TW": "攝影用品店" } }, "shop/pottery": { "title": { "C": "Pottery Store", "ar": "متجر فخار", "br": "Stal-boderezh", "ca": "Botiga de ceràmica", "cs": "Keramika", "cy": "Siop Grochenwaith", "da": "Keramikbutik", "de": "Keramikladen", "el": "Κατάστημα Κεραμικής", "en-GB": "Pottery Shop", "en": "Pottery Store", "eo": "Porcelan-vendejo", "es": "Tienda de alfarería", "et": "Keraamikapood", "fa": "فروشگاه سفال", "fi": "Keramiikkamyymälä", "fr": "Magasin de poterie", "gl": "Tenda de cerámica", "he": "חנות כדים", "hu": "Fazekas bolt", "it": "Negozio di ceramica", "ja": "陶磁器店", "ko": "도자기 가게", "mk": "Продавница за грнчарија", "nl": "Winkel voor aardewerk", "pl": "Sklep garncarski", "pt-BR": "Loja de cerâmica", "pt": "Loja de cerâmica", "ru": "Магазин керамики", "sk": "Obchod s keramikou", "sr": "Продавница грнчарије", "sv": "Keramikaffär", "th": "ร้านเครื่องปั้นดินเผา", "tr": "Çömlek Mağazası", "uk": "Порцелянові вироби", "vi": "Tiệm Đồ gốm", "zh-CN": "陶瓷店", "zh-TW": "陶器店" } }, "shop/printer_ink": { "title": { "C": "Printer Ink Store", "ar": "متجر أحبار طابعة", "br": "Stal liv moullerez", "ca": "Botiga de tinta d'impressores", "cs": "Barvy do tiskáren", "cy": "Siop Incs Printeri", "de": "Druckertintengeschäft", "el": "Κατάστημα για Μελάνια Εκτυπωτών", "en-GB": "Printer Ink Shop", "en": "Printer Ink Store", "eo": "Presil-inka vendejo", "es": "Tienda de tinta para impresora", "et": "Printeritindi pood", "fa": "فروشگاه جوهر چاپ‌گر", "fi": "Tulostinmustemyymälä", "fr": "Vendeur d'encre pour imprimante", "gl": "Tenda de tinta de impresora", "he": "חנות דיו למדפסות", "hu": "Nyomtatófesték bolt", "it": "Negozio di cartucce per stampanti", "ja": "プリンタ用インク店", "ko": "프린터 잉크 가게", "mk": "Продавница за печатарска боја", "nl": "Winkel voor printerinkt", "pl": "Sklep z tuszami do drukarek", "pt-BR": "Loja de tinta de impressora", "pt": "Loja de tinteiros de impressora", "ru": "Магазин чернил для принтера", "sk": "Obchod s tonermi", "sv": "Butik för skrivarbläck", "th": "ร้านหมึกพิมพ์", "tr": "Kartuş Mağazası", "uk": "Чорнила для принтера", "vi": "Tiệm Mực in", "zh-CN": "打印机墨水店", "zh-HK": "列印機墨水商店", "zh-TW": "印表機墨水商店" } }, "shop/psychic": { "title": { "C": "Psychic", "ar": "Psychic", "br": "Mediom", "cs": "Věštírna", "cy": "Seicig", "de": "Astrologiker", "el": "Μέντιουμ", "en-GB": "Psychic", "en": "Psychic", "eo": "Laborejo de mediumo", "es": "Vidente", "et": "Kaardimoor", "fa": "پیش‌گو", "fi": "Psyykikko", "fr": "Magasin ésotérique psi", "gl": "Vidente", "he": "מדיום", "hu": "Jóslás", "it": "Sensitivo", "ja": "サイキック店", "ko": "초능력자", "mk": "Јасновидец", "nl": "Medium (esoterie)", "pl": "Wróżka", "pt-BR": "Psíquico", "pt": "Vidente", "ru": "Предсказатель", "sk": "Veštiareň", "sr": "Видовњак", "sv": "Medium / Psykisk", "th": "เกี่ยวกับจิตใจ", "tr": "Medyum", "uk": "Екстрасенс", "zh-CN": "特异功能(看相等)", "zh-TW": "算命店" } }, "shop/pyrotechnics": { "title": { "C": "Fireworks Store", "id": "Toko Kembang Api", "ar": "متجر ألعاب نارية", "ast": "Venta de pirotecnia", "br": "Stal tanioù-arvest", "ca": "Botiga d'articles pirotècnics", "cs": "Obchod s pyrotechnikou", "cy": "Siop Dân Gwyllt", "da": "Fyrværkeributik", "de": "Feuerwerksgeschäft", "el": "Κατάστημα Πυροτεχνημάτων", "en-GB": "Fireworks Shop", "en": "Fireworks Store", "eo": "Art-fajraĵa vendejo", "es": "Tienda de fuegos artificiales", "et": "Ilutulestiku kauplus", "fa": "فروشگاه لوازم آتش‌بازی", "fi": "Ilotulitemyymälä", "fr": "Magasin de feux d'artifice", "gl": "Tenda de fogos artificiais", "he": "חנות זיקוקים", "hr": "Prodavaonica za pirotehniku", "hu": "Tűzijátékbolt", "is": "Flugeldaverslun", "it": "Negozio di fuochi d'artificio", "ja": "花火店", "ko": "불꽃놀이 가게", "lt": "Fejerverkų parduotuvė", "mk": "Продавница за огномет", "nl": "Vuurwerkwinkel", "no": "Fyrverkerihandel", "pl": "Sklep ze sztucznymi ogniami", "pt-BR": "Loja de Fogos de Artifício", "pt": "Loja de pirotecnia", "ro": "Magazin de Artificii", "ru": "Магазин фейерверков", "sk": "Obchod s pyrotechnikou", "sr": "Продавница петарди", "sv": "Fyrverkerier", "th": "ร้านดอกไม้ไฟ", "tr": "Havai Fişek Mağazası", "uk": "Феєрверки", "vi": "Tiệm Pháo bông", "yue": "煙花舖", "zh-CN": "烟花爆竹店", "zh-HK": "煙花店", "zh-TW": "煙火商" } }, "shop/radiotechnics": { "title": { "C": "Radio/Electronic Component Store", "id": "Toko Komponen Radio/Elektronik", "ar": "متجر بيع قطع الراديو / الإلكترونية", "ast": "Componentes electrónicos", "ca": "Botiga d'articles electrònics", "cs": "Obchod s elektronickými součástkami", "da": "Radio/Elektronikbutik", "de": "Radio/Elektronik-Geschäft", "el": "Μαγαζί Ηλεκτρονικών Εξαρτημάτων", "en-GB": "Radio/Electronic Component Shop", "en": "Radio/Electronic Component Store", "eo": "Radioteĥnika/elektronik-parta vendejo", "es": "Tienda de componentes radio electrónicos", "et": "Elektroonikakomponentide pood", "fa": "فروشگاه رادیو/اجزای الکترونیکی", "fi": "Elektroniikkakomponenttimyymälä", "fr": "Magasin de composants électroniques et de radio", "gl": "Tenda de compoñentes electrónicos", "he": "חנות אלקטרוניקה ורדיו", "hr": "Trgovina za elektroniku", "hu": "Rádiótechnikai bolt", "is": "Rafíhlutaverslun", "it": "Negozio di componenti elettronici", "ja": "電子部品店", "ko": "라디오/전자 부품 가게", "lt": "Radijo/elektroninių dalių parduotuvė", "lv": "Radio / Elektronisko komponenšu veikals", "mk": "Продавница за електрични делови", "nl": "Winkel voor radio- en elektronische componenten", "no": "Elektronikkbutikk", "pl": "Sklep z częściami elektronicznymi", "pt-BR": "Loja de Componentes Eletrônicos", "pt": "Loja de componentes eletrónicos / rádio", "ru": "Магазин радиодеталей", "sk": "Obchod s rádioelektronikou", "sl": "Trgovina z elektroniko", "sr": "Продавница електронских делова", "sv": "Radio/Elektronikbutik", "th": "ร้านวิทยุ/อุปกรณ์อิเล็กทรอนิกส์", "tr": "Radyocu", "uk": "Радіодеталі", "vi": "Tiệm Linh kiện Điện tử", "yue": "無綫電/電子零件舖", "zh-CN": "音像制品店", "zh-HK": "無線電/電子零件店", "zh-TW": "無線電/電子零件店" } }, "shop/religion": { "title": { "C": "Religious Store", "id": "Toko Agamawi", "af": "Godsdienswinkel", "ar": "متجر ديني", "ast": "Artículos relixosos", "br": "Stal relijiel", "ca": "Botiga d'articles religiosos", "cs": "Náboženské předměty", "cy": "Siop Grefyddol", "da": "Religøs forretning", "de": "Devotionalienhandlung", "el": "Κατάστημα Θρησκευτικών Ειδών", "en-GB": "Religious Shop", "en": "Religious Store", "eo": "Devotaĵa vendejo", "es": "Tienda religiosa", "et": "Usutarvete kauplus", "fa": "فروشگاه مذهبی", "fi": "Uskonnollinen myymälä", "fr": "Magasin d'articles religieux", "gl": "Tenda relixiosa", "he": "חנות לתשמישי דת", "hr": "Prodavaonica religioznih pomagala", "hu": "Kegytárgybolt", "is": "Verslun með trúartengdar vörur", "it": "Negozio di articoli religiosi", "ja": "宗教用品店", "ko": "종교 가게", "lt": "Religinė parduotuvė", "mk": "Верска продавница", "nl": "Religieuze winkel", "no": "Religiøs butikk", "pa-PK": "دھرمک دکان", "pl": "Sklep z dewocjonaliami", "pt-BR": "Loja de Artigos Religiosos", "pt": "Loja de artigos religiosos", "ro": "Magazin Religios", "ru": "Религиозная лавка", "sk": "Obchod s náboženskými predmetmi", "sr": "Продавница верских предмета", "sv": "Religiös butik", "th": "ร้านขายของทางศาสนา", "tr": "Dini Ürünler Mağazası", "uk": "Церковна лавка", "vi": "Tiệm Bán đồ Tôn giáo", "yue": "宗教舖", "zh-CN": "宗教商店", "zh-HK": "宗教用品店", "zh-TW": "宗教用品店" } }, "shop/rental": { "title": { "C": "Rental Shop", "ar": "محل تأجير", "br": "Stal feurmiñ", "ca": "Botiga de lloguers", "cs": "půjčovna", "da": "Udlejningsforretning", "de": "Verleih", "el": "Κατάστημα Ενοικίασης", "en-GB": "Rental Shop", "en": "Rental Shop", "eo": "Pruntejo", "es": "Tienda de alquiler", "fa": "فروشگاه کرایه وزشی، بازی یا وسایل نقلیه", "fi": "Vuokraamo", "fr": "Magasin de location", "gl": "Tenda de alugueiro", "he": "חנות השכרה", "hu": "Kölcsönző", "it": "Negozio di noleggio", "ja": "レンタルショップ", "ko": "대여점", "mk": "Изнајмувачница", "nl": "Verhuurwinkel", "pl": "Wypożyczalnia", "pt-BR": "Locadora", "pt": "Loja de aluguer de material em geral", "ru": "Аренда", "sk": "Požičovňa", "sv": "Hyrbutik", "th": "ร้านเช่า", "tr": "Kiralık Dükkan", "uk": "Станція прокату", "vi": "Cho thuê Hàng hóa", "zh-CN": "设备租赁", "zh-HK": "租賃店", "zh-TW": "租賃店" } }, "shop/repair": { "title": { "C": "Repair Shop", "af": "Herstelwinkel", "ar": "محل تصليح", "cs": "Opravna", "cy": "Siop Atgyweirio", "da": "Reparationsværksted", "de": "Reparaturgeschäft", "el": "Κατάστημα Επισκευών", "en-GB": "Repair Shop", "en": "Repair Shop", "eo": "Riparejo", "es": "Taller de reparaciones", "fa": "تعمیرگاه", "fi": "Korjaamo", "fr": "Atelier de réparation", "he": "חנות תיקונים", "hu": "Javítóműhely", "it": "Bottega di riparazioni", "ja": "修理店", "ko": "수리점", "mk": "Поправачница", "nl": "Reparatiewinkel", "pl": "Naprawy (nieokreślone)", "pt-BR": "Oficina", "pt": "Loja de reparações", "sk": "Opravovňa", "sv": "Reparatör", "th": "ร้านซ่อม", "tr": "Tamir Dükkanı", "uk": "Ремонт", "vi": "Sửa Đồ", "zh-CN": "修理店", "zh-HK": "維修店", "zh-TW": "維修店" } }, "shop/scuba_diving": { "title": { "C": "Scuba Diving Shop", "id": "Toko Perlengkapan Menyelam", "ar": "متجر معدات الغوص تحت الماء", "ast": "Tienda de merguyu", "br": "Stal danvez splujañ", "ca": "Botiga de submarinisme", "cs": "Potřeby pro potápěče", "da": "Dykkerudstyrsbutik", "de": "Tauchwarengeschäft", "el": "Κατάστημα Εξοπλισμού Καταδύσεων", "en-GB": "Scuba Diving Shop", "en": "Scuba Diving Shop", "eo": "Subakvad-aparata vendejo", "es": "Tienda de buceo", "et": "Sukeldustarvikute kauplus", "fa": "فروشگاه لوازم غواصی", "fi": "Sukellusliike", "fr": "Magasin de matériel de plongée sous-marine", "gl": "Tenda de mergullo", "he": "חנות לצוללנים", "hr": "Prodavaonica opreme za ronjenje", "hu": "Búvárfelszerelés-bolt", "is": "Verslun með köfunarvörur", "it": "Negozio di attrezzatura per subacquei", "ja": "スキューバダイビングショップ", "ko": "스쿠버 다이빙 가게", "lt": "Povandeninio nardymo parduotuvė", "mk": "Продавница за нуркачка опрема", "nl": "Duikwinkel", "no": "Dykkerutstyrsbutikk", "pl": "Sklep nurkowy", "pt-BR": "Loja de equipamentos de mergulho", "pt": "Loja de equipamento de mergulho", "ro": "Magazin de Scufundări", "ru": "Магазин подводного снаряжения", "sk": "Obchod s potápačským vybavením", "sl": "Trgovina s potapljaško opremo", "sr": "Продавница ронилачке опреме", "sv": "Dykarbutik", "th": "ร้านอุปกรณ์ดำน้ำ", "tr": "Tüple Dalış Mağazası", "uk": "Підводне плавання", "vi": "Tiệm Dụng cụ Lặn Scuba", "zh-CN": "潜水商店", "zh-HK": "潛水用品店", "zh-TW": "潛水用品店" } }, "shop/second_hand": { "title": { "C": "Thrift Store", "ar": "متجر التوفير", "ca": "Botiga de segona mà", "cs": "Second hand", "cy": "Siop Ail-Law", "da": "Genbrugsbutik", "de": "Second-Hand-Laden", "el": "Κατάστημα Μεταχειρισμένων", "en-GB": "Secondhand shop", "en": "Thrift Store", "es": "Tienda de segunda mano", "fi": "Kirpputori", "fr": "Magasin de produits d'occasion", "he": "חנות יד שנייה", "it": "Mercatino dell'usato", "ja": "中古品店", "mk": "Добротворна продавница", "nl": "Tweedehandswinkel", "pl": "Sklep z rzeczami używanymi", "pt-BR": "Brechó", "pt": "Loja de produtos em segunda mão", "ru": "Комиссионный магазин", "sv": "Second hand", "th": "ร้านขายของมือสอง", "tr": "Thrift Store", "uk": "Секонд-хенд", "vi": "Tiệm Mua lại", "zh-TW": "二手商店" } }, "shop/sewing": { "title": { "C": "Sewing Supply Shop", "ar": "متجر مستلزمات خياطة", "ca": "Merceria", "cs": "Šicí potřeby, galanterie", "da": "Syforretning", "de": "Geschäft für Nähzubehör", "el": "Κατάστημα Ειδών Ραπτικής", "en-GB": "Sewing Supply Shop", "en": "Sewing Supply Shop", "eo": "Kudrilar-vendejo", "es": "Tienda de suministros de costura", "et": "Õmblustarvikute pood", "fa": "فروشگاه لوازم خیاطی / خرازی", "fi": "Ompelutarvikeliike", "fr": "Magasin de couture", "gl": "Tenda de artigos de costura", "he": "חנות ציוד תפירה", "hu": "Varrásfelszerelés bolt", "is": "Saumavöruverslun", "it": "Merceria", "ja": "手芸用品店", "ko": "바느질 용품 가게", "mk": "Шивачки набавки", "nl": "Naaiwinkel", "no": "Sybutikk", "pl": "Pasmanteria", "pt-BR": "Loja de aviamentos", "pt": "Retrosaria", "ru": "Швейные принадлежности", "sk": "Obchod so šijacími potrebami", "sr": "Продавница кројачке робе", "sv": "Sybutik", "th": "ร้านอุปกรณ์เย็บผ้า", "tr": "Dikiş Malzemeleri Dükkanı", "uk": "Приладдя для шиття", "vi": "Tiệm Đồ Kim chỉ", "zh-CN": "缝纫用品商店", "zh-TW": "縫紉用品店" } }, "shop/shoe_repair": { "title": { "C": "Shoe Repair Shop", "af": "Skoenherstelwinkel", "ar": "محل تصليح الأحذية", "bg": "Обущар", "br": "Kereour", "ca": "Sabater", "cs": "Opravna obuvi", "cy": "Siop Atgyweirio Esgidiau", "da": "Skomager", "de": "Schuhreparatur", "el": "Τσαγκαράδικο", "en-GB": "Shoe Repair Shop", "en": "Shoe Repair Shop", "eo": "Ŝu-riparejo", "es": "Taller de reparación de calzado", "et": "Kingaparandus", "eu": "Oinetako-konponketak", "fa": "کفاشی", "fr": "Cordonnier", "gl": "Tenda de arranxo de zapatos", "he": "חנות לתיקון נעליים", "hu": "Cipőjavítás", "it": "Calzolaio", "ja": "靴修理店", "ko": "신발 수선점", "mk": "Чевлар", "nl": "Schoenenreparatiewinkel", "pl": "Szewc (naprawa obuwia)", "pt-BR": "Loja de conserto de calçados", "pt": "Reparador de sapatos", "ru": "Ремонт обуви", "sk": "Oprava obuvi", "sr": "Обућар", "sv": "Skomakare", "th": "ร้านซ่อมรองเท้า", "tr": "Ayakkabı Tamir Mağazası", "uk": "Ремонт взуття", "vi": "Tiệm Sửa Giày", "zh-CN": "修鞋店", "zh-TW": "修鞋店" } }, "shop/spices": { "title": { "C": "Spice Shop", "ar": "محل بيع بهارات", "br": "Stal spisoù", "ca": "Botiga d'espècies", "cs": "Koření, bylinky", "cy": "Siop Sbeisys", "da": "Kryddeributik", "de": "Gewürzladen", "el": "Κατάστημα Μπαχαρικών", "en-GB": "Spice Shop", "en": "Spice Shop", "eo": "Spica vendejo", "es": "Tienda de especias", "et": "Maitseainete pood", "fa": "فروشگاه ادویه", "fi": "Maustekauppa", "fr": "Magasin d'épices", "gl": "Tenda de especias", "he": "חנות תבלינים", "hu": "Fűszerbolt", "it": "Negozio di spezie", "ja": "スパイス店", "ko": "향신료 가게", "mk": "Продавница за зачини", "nl": "Kruidenwinkel", "pa-PK": "مرچی دی دکان", "pl": "Sklep z przyprawami", "pt-BR": "Loja de especiarias", "pt": "Loja de especiarias", "ru": "Магазин специй", "sk": "Obchod s koreninami", "sr": "Продавница зачина", "sv": "Affär för kryddor", "th": "ร้านเครื่องเทศ", "tr": "Baharat Mağazası", "uk": "Спеції", "vi": "Tiệm Gia vị", "zh-CN": "香料店", "zh-TW": "香料店" } }, "shop/stationery": { "title": { "C": "Stationery Store", "am": "የጽሕፈት መሳሪያ መሸጫ", "bs": "Prodavnica kancelarijske opreme", "id": "Toko Alat Tulis", "zh": "文化用品店", "af": "Skryfbehoeftewinkel", "ar": "متجر قرطاسية و أدوات مكتبية", "ast": "Papelería", "bg": "Магазин за канцеларски стоки", "br": "Paperaerezh", "ca": "Papereria", "cs": "Kancelářské potřeby", "da": "Papirforhandler", "de": "Schreibwarengeschäft", "el": "Κατάστημα Γραφικής Ύλης", "en-GB": "Stationery Shop", "en": "Stationery Store", "eo": "Papervara vendejo", "es": "Artículos de papelería y oficina", "et": "Kirjatarvete kauplus", "eu": "Paperdenda", "fa": "فروشگاه نوشت‌افزار", "fi": "Toimistotarvikekauppa", "fr": "Papeterie", "gl": "Papelaría", "he": "חנות לדברי כתיבה", "hr": "Papirnica", "hu": "Papírbolt", "is": "Skriffangaverslun", "it": "Negozio di cancelleria", "ja": "文具店", "ko": "문구점", "lt": "Kanceliarinių prekių parduotuvė", "lv": "Rakstāmlietu veikals", "mk": "Канцелариски материјали", "nl": "Kantoorboekhandel", "no": "Papirhandel", "pl": "Sklep papierniczy", "pt-BR": "Papelaria", "pt": "Papelaria", "ru": "Канцелярские товары", "sk": "Papierníctvo", "sl": "Papirnica", "sr": "Продавница канцеларијске опреме", "sv": "Pappershandel", "th": "ร้านเครื่องเขียน", "tr": "Kırtasiye", "uk": "Канцтовари", "vi": "Tiệm Văn phòng phẩm", "yue": "文具舖", "zh-CN": "文具店", "zh-HK": "文具店", "zh-TW": "文具店" } }, "shop/storage_rental": { "title": { "C": "Storage Rental", "ar": "محل تأجير أماكن التخزين", "ast": "Alquiler d'almacenes", "ca": "Lloguer de magatzem", "cs": "Skladovací prostor", "da": "Lagerhotel", "de": "Lagerraumvermieter", "el": "Ενοικιαζόμενος Χώρος Αποθήκευσης", "en-GB": "Storage Rental", "en": "Storage Rental", "eo": "Magazena spaco por lui", "es": "Alquiler de espacios para almacenaje", "et": "Miniladu", "fa": "کرایه انبار", "fi": "Varastonvuokrauspalvelu", "fr": "Location de stockage", "gl": "Alugueiro de almacéns", "he": "שטח אחסון להשכרה", "hu": "Tárolóhely bérbeadása", "is": "Geymsluleiga", "it": "Box a noleggio", "ja": "レンタル倉庫", "ko": "저장공간 대여소", "mk": "Изнамјување складиштен простор", "nl": "Zelfopslag", "no": "Minilager", "pl": "Przechowalnia rzeczy (długoterminowa)", "pt-BR": "Aluguel de Armazenamento", "pt": "Aluguer de depósitos", "ru": "Аренда складских помещений", "sk": "Prenájom skladových priestorov", "sl": "Najem shrambnih prostorov", "sr": "Изнајмљивање складишта", "sv": "Hyrlager", "th": "ห้องเช่าสำหรับเก็บของ", "tr": "Depo Kiralama Mağazası", "uk": "Склади в оренду", "vi": "Cho thuê Chỗ Để đồ", "zh-CN": "租赁处", "zh-HK": "存倉", "zh-TW": "儲物空間出租" } }, "shop/swimming_pool": { "title": { "C": "Pool Supply Store", "ar": "متجر مستلزمات حمامات السباحة", "br": "Stal dafar poull-neuial", "cs": "Bazény", "da": "Butik med pooludstyr", "de": "Swimmingpoolbedarf", "el": "Κατάστημα Ειδών Πισίνας", "en-GB": "Pool Supply Shop", "en": "Pool Supply Store", "eo": "Vendejo de naĝej-akcesoriaĵoj", "es": "Tienda de suministros para piscinas", "et": "Basseinitarvikute pood", "fa": "فروشگاه لوازم استخر", "fi": "Uima-allasliike", "fr": "Magasin de matériel de piscine", "gl": "Tenda de subministracións para piscinas", "he": "חנות ציוד לבריכות", "hr": "Trgovina opreme za bazene", "hu": "Uszodatechnika-bolt", "it": "Negozio per rifornimenti per piscina", "ja": "プール用品店", "ko": "수영장 용품 가게", "mk": "Базенски залихи", "nl": "Winkel voor zwembadbenodigdheden", "pl": "Sklep z akcesoriami do basenów", "pt-BR": "Loja de suprimentos para piscinas", "pt": "Loja de acessórios para piscinas", "ru": "Магазин товаров для бассейна", "sk": "Obchod s bazénmi", "sr": "Продавница опреме за базене", "sv": "Butik för pooltillbehör", "th": "ร้านจำหน่ายอุปกรณ์สระว่ายน้ำ", "tr": "Havuz Malzemeleri Mağazası", "uk": "Обладнання для басейнів", "zh-CN": "泳池设备店", "zh-TW": "泳池用品商店" } }, "shop/tailor": { "title": { "C": "Tailor", "id": "Tukang Jahit", "kn": "ದರ್ಜಿ", "ms": "Kedai Tukang Jahit", "af": "Snyer", "ar": "خياط", "ast": "Sastrería", "br": "Kemener", "ca": "Sastreria", "cs": "Krejčovství", "cy": "Gwniadur", "da": "Skrædder", "de": "Schneider", "el": "Ράφτης", "en-GB": "Tailor", "en": "Tailor", "eo": "Tajlora laborejo/vendejo", "es": "Sastrería", "et": "Rätsep", "fa": "خیاط", "fi": "Räätäliliike", "fr": "Tailleur", "gl": "Xastraría", "he": "חייט", "hr": "Krojač", "hu": "Szabó", "is": "Skraddari", "it": "Sartoria", "ja": "仕立屋", "ko": "양복점", "mk": "Кројач", "nl": "Kleermaker", "no": "Skredder", "pl": "Krawiec (usługi krawieckie)", "pt-BR": "Alfaiataria", "pt": "Alfaiate", "ru": "Портной", "sk": "Obchod s pánskymi odevmi", "sl": "Krojač", "sr": "Kројач", "sv": "Skräddare", "ta": "தையல்காரர்", "th": "ช่างตัดเสื้อ", "tr": "Terzi", "uk": "Кравець", "ur": "درزی", "vi": "Tiệm May", "zh-CN": "裁缝店", "zh-HK": "裁縫", "zh-TW": "裁縫" } }, "shop/tattoo": { "title": { "C": "Tattoo Parlor", "id": "Jasa Pembuatan Tato", "ar": "صالون الوشم", "ast": "Tatuaxes", "br": "Tatouerezh", "ca": "Centre de tatuatges", "cs": "Tetovací salón", "cy": "Parlwr Tatŵ", "da": "Tatovør", "de": "Tätowierer", "el": "Στούντιο Τατουάζ", "en-GB": "Tattoo Parlor", "en": "Tattoo Parlor", "eo": "Salono de tatuado", "es": "Salón de tatuajes", "et": "Tätoveeringu salong", "fa": "سالن تاتو", "fi": "Tatuointisalonki", "fr": "Salon de tatouage", "gl": "Salón de tatuaxes", "he": "מכון קעקועים", "hr": "Studio za tetoviranje", "hu": "Tetováló szalon", "is": "Húðflúrstofa", "it": "Tatuatore", "ja": "タトゥースタジオ", "ko": "문신 가게", "lt": "Tatuiruočių salonas", "lv": "Tetovējumu veikals", "mk": "Тетоважи", "nl": "Tattoozetter", "no": "Tatovør", "pl": "Studio tatuażu", "pt-BR": "Estúdio de tatuagem", "pt": "Estúdio de tatuagens", "ro": "Artist de Tatuaje", "ru": "Тату салон", "sk": "Tetovací salón", "sl": "Salon za tetovažo", "sr": "Салон за тетоваже", "sv": "Tatueringsstudio", "th": "ร้านสักลาย", "tr": "Dövmeci", "uk": "Тату салон", "vi": "Tiệm Xăm", "zh-CN": "纹身店", "zh-HK": "紋身店", "zh-TW": "刺青店" } }, "shop/telecommunication": { "title": { "C": "Telecom Retail Store", "af": "Telekommunikasiewinkel", "ar": "متجر بيع بالتجزئة لشركة اتصالات", "cs": "Telekomunikační prodejna", "de": "Telekommunikationsfachgeschäft", "el": "Κατάστημα Πώλησης Τηλεπικοινωνιών", "en-GB": "Telecom Retail Shop", "en": "Telecom Retail Store", "eo": "Oficejo de telekomunikada firmao (vendo)", "es": "Tienda minorista de telecomunicaciones", "et": "Sidefirma pood", "fa": "فروشگاه لوازم مخابراتی", "fi": "Teleoperaattorin myymälä", "fr": "Magasin de compagnie de télécommunication", "gl": "Tenda de subministracións de telecomunicación", "he": "חנות טלפונים", "hu": "Telekommunikációs üzlet", "it": "Negozio al dettaglio di Telefonia", "ja": "通信サービス店", "ko": "통신사 대리점", "mk": "Телекомуникациска продавница", "nl": "Telecomwinkel", "pl": "Salon dostawcy usług telekomunikacyjnych", "pt-BR": "Loja de telecomunicações", "pt": "Loja de telecomunicações", "sk": "Obchod s telekomunikačnými službami", "sv": "Telekombutik", "th": "ร้านให้บริการโทรคมนาคม", "tr": "Telekom Perakende Mağazası", "uk": "Магазин телекомунікаційного обладнання", "zh-CN": "电信零售店", "zh-TW": "通訊行" } }, "shop/ticket": { "title": { "C": "Ticket Seller", "id": "Penjual Tiket", "ar": "بائع تذاكر", "ast": "Venta d'entraes", "ca": "Venedor de tiquets", "cs": "Prodejna vstupenek", "cy": "Gwerthwr Tocynnau", "da": "Billetsælger", "de": "Eintrittskartenverkäufer", "el": "Εκδοτήριο Εισιτηρίων", "en-GB": "Ticket Seller", "en": "Ticket Seller", "eo": "Biletejo", "es": "Venta de boletos", "et": "Piletikassa", "fa": "بلیط فروشی", "fi": "Lipunmyyntipiste", "fr": "Boutique de vente de billets", "gl": "Venda de entradas", "he": "עמדת מכירת כרטיסים", "hr": "Prodavač ulaznica", "hu": "Jegypénztár", "is": "Miðasala", "it": "Biglietteria", "ja": "チケット売り場", "ko": "티켓 판매소", "lt": "Bilietų pardavėjas", "lv": "Biļešu kase", "mk": "Билетарница", "nl": "Ticketverkoop", "no": "Billettutsalg", "pa-PK": "ٹِکِٹ والا", "pl": "Kasa biletowa", "pt-BR": "Bilheteria", "pt": "Bilheteira", "ro": "Vânzător de Bilete", "ru": "Билетная касса", "sk": "Predajňa vstupeniek", "sl": "Prodajalna vstopnic", "sr": "Билетарница", "sv": "Biljettförsäljning", "th": "คนขายตั๋ว", "tr": "Bilet Satıcısı", "uk": "Квиткова каса", "vi": "Đại lý Bán Vé", "zh-CN": "售票处", "zh-HK": "門票售賣", "zh-TW": "賣票亭" } }, "shop/tiles": { "title": { "C": "Tile Shop", "ar": "متجر بلاط", "ast": "Tienda d'azulexos", "br": "Stal-garrelladur", "ca": "Botiga de rajoles", "cs": "Obchod s obklady", "cy": "Siop Deils", "da": "Fliseforhandler", "de": "Fliesenhändler", "el": "Κατάστημα Πλακιδίων", "en-GB": "Tile Shop", "en": "Tile Shop", "eo": "Kahela vendejo", "es": "Tienda de azulejos", "et": "Plaadipood", "fa": "کاشی فروشی", "fi": "Laattamyymälä", "fr": "Magasin de carrelage", "gl": "Tenda de azulexos", "he": "חנות מרצפות", "hu": "Csempebolt", "is": "Flísaverslun", "it": "Negozio di piastrelle", "ja": "タイル店", "ko": "타일 가게", "lv": "Flīžu veikals", "mk": "Продавница за плочки", "nl": "Tegelwinkel", "no": "Flisebutikk", "pl": "Sklep z płytkami ceramicznymi", "pt-BR": "Loja de Azulejos", "pt": "Loja de azulejos", "ru": "Магазин плитки", "sk": "Obchod s obkladmi a dlažbami", "sr": "Продавница керамике", "sv": "Kakelbutik", "th": "ร้านกระเบื้อง", "tr": "Karo Dükkanı", "uk": "Кахель", "vi": "Tiệm Ngói", "zh-CN": "瓷砖商店", "zh-TW": "磁磚商店" } }, "shop/tobacco": { "title": { "C": "Tobacco Shop", "id": "Toko Tembakau", "ar": "محل بيع التبغ", "ast": "Estancu", "br": "Stal-vutun", "ca": "Estanc", "cs": "Kuřácké potřeby", "cy": "Siop Dybaco", "da": "Tobaksforretning", "de": "Tabakwarengeschäft", "el": "Κατάστημα Ειδών Καπνού", "en-GB": "Tobacco Shop", "en": "Tobacco Shop", "eo": "Tabaka vendejo", "es": "Tienda de tabaco", "et": "Tubakapood", "fa": "فروشگاه مواد افیونی تنباکو", "fi": "Tupakkapuoti", "fr": "Bureau de tabac", "gl": "Estanco", "he": "חנות טבק", "hr": "Trgovina za duhanske proizvode", "hu": "Dohánybolt", "is": "Tóbaksverslun", "it": "Tabaccheria", "ja": "たばこ店", "ko": "담배 가게", "lt": "Tabako parduotuvė", "lv": "Tabakas veikals", "mk": "Продавница за тутун", "nl": "Tabakswinkel", "no": "Tobakksbutikk", "pl": "Sklep z tytoniem", "pt-BR": "Tabacaria", "pt": "Tabacaria", "ro": "Tăbăcărie", "ru": "Табачный магазин", "sk": "Obchod s tabakom", "sl": "Tobačna trgovina", "sr": "Дуванџиница", "sv": "Tobaksbutik", "ta": "புகையிலைக் கடை", "th": "ร้านยาสูบ", "tr": "Tütüncü", "uk": "Тютюн", "vi": "Tiệm Thuốc lá", "zh-CN": "烟草店", "zh-HK": "煙草店", "zh-TW": "菸店" } }, "shop/tool_hire": { "title": { "C": "Tool Rental", "ar": "محل تأجير معدات", "br": "Binviji da feurmiñ", "ca": "Lloguer d'eines", "cs": "půjčovna nářadí", "da": "Værktøjsudlejning", "de": "Werkzeugverleih", "el": "Ενοικιαστήριο Εργαλείων", "en-GB": "Tool Rental", "en": "Tool Rental", "eo": "Il-pruntejo", "es": "Alquiler de herramientas", "et": "Tööriistade laenutus", "fa": "اجاره ابزار", "fi": "Työkaluvuokraamo", "fr": "Location d'outils", "gl": "Alugueiro de ferramentas", "he": "השכרת כלים", "hu": "Gépkölcsönző", "it": "Noleggio utensili", "ja": "工具レンタル店", "ko": "도구 대여점", "mk": "Изнајмување алати", "nl": "Gereedschapsverhuur", "no": "Verktøyutleie", "pl": "Wypożyczalnia narzędzi", "pt-BR": "Aluguel de ferramentas", "pt": "Aluguer de ferramentas", "ru": "Аренда инструмента", "sk": "Požičovňa nástrojov", "sr": "Изнајмљивање алата", "sv": "Verktygsuthyrning", "th": "ร้านเช่าอุปกรณ์", "tr": "Alet Kiralama", "uk": "Прокат інструмента", "vi": "Cho thuê Công cụ", "zh-CN": "工具租赁店", "zh-TW": "工具租賃" } }, "shop/trade": { "title": { "C": "Trade Shop", "ar": "محلات بيع مواد بالجملة", "br": "Braswerzher", "cs": "Stavebniny", "cy": "Siop Fasnachu", "da": "Brancheforhandler", "de": "Baustoffhandel", "el": "Εμπορικό Κατάστημα", "en-GB": "Trade Shop", "en": "Trade Shop", "eo": "Pogranda vendejo (konstruaĵ‑materialoj)", "es": "Tienda comercial / Corralón", "fa": "تجارتگاه", "fr": "Grossiste", "gl": "Distribuidor", "he": "חנות קמעונאית", "hu": "Szakáruház", "is": "Iðnaðarvörusala", "it": "Materiali da edilizia", "ja": "建築資材店", "ko": "무역 가게", "mk": "Занаетчиски набавки", "nl": "Bouwmaterialenhandel", "pl": "Skład materiałów budowlanych", "pt-BR": "Distribuidor", "pt": "Loja de materiais de construção", "ru": "Оптовая база", "sk": "Stavebniny", "sr": "Трговачка продавница", "sv": "Proffshandel", "th": "ร้านขายของ", "tr": "Ticaret Mağazası", "uk": "Оптово-роздрібний магазин", "vi": "Tiệm Công nghiệp", "zh-CN": "材料商店", "zh-TW": "材料行" } }, "shop/travel_agency": { "title": { "C": "Travel Agency", "bs": "Putnička agencija", "dv": "ޓްރެވެލް އޭޖެންސީ", "id": "Biro Perjalanan", "so": "Wakaalad Socdaal", "zh": "旅行社", "af": "Reisagent", "ar": "وكالة سفر", "ast": "Axencia de viaxes", "bg": "Туристическа агенция", "br": "Ajañs-veaj", "ca": "Agència de viatges", "cs": "Cestovní kancelář", "cy": "Asiantaeth Teithio", "da": "Rejsebureau", "de": "Reisebüro", "el": "Ταξιδιωτικό Γραφείο", "en-GB": "Travel Agency", "en": "Travel Agency", "eo": "Vojaĝa oficejo", "es": "Agencia de viajes", "et": "Reisibüroo", "fa": "آژانس مسافرتی", "fi": "Matkatoimisto", "fr": "Agence de voyages", "gl": "Axencia de viaxes", "he": "סוכנות נסיעות", "hr": "Putnička agencija", "hu": "Utazási iroda", "is": "Ferðaskrifstofa", "it": "Agenzia di viaggi", "ja": "旅行代理店", "ko": "여행사", "lt": "Kelionių agentūra", "lv": "Ceļojumu aģentūra", "mk": "Туристичка агенција", "nl": "Reisbureau", "no": "Reisebyrå", "pl": "Biuro podróży", "pt-BR": "Agência de Viagens", "pt": "Agência de viagens", "ro": "Agenție de Călătorii", "ru": "Бюро путешествий", "sk": "Cestovná agentúra", "sl": "Turistična agencija", "sr": "Туристичка агенција", "sv": "Resebyrå", "ta": "பயண முகவர்", "th": "นายหน้าท่องเที่ยว", "tr": "Turizm Acentası", "uk": "Туристична агенція", "vi": "Văn phòng Du lịch", "yue": "旅行社", "zh-CN": "旅行社", "zh-HK": "旅行社", "zh-TW": "旅行社" } }, "shop/trophy": { "title": { "C": "Trophy Shop", "ms": "Kedai Piala", "ar": "محل بيع جوائز ودروع ولوحات تذكارية", "br": "Stal trofeoù", "ca": "Botiga de trofeus", "cs": "Prodejna trofejí", "cy": "Siop Dlysau", "da": "Trofæbutik", "de": "Trophäengeschäft", "el": "Κατάστημα Τροπαίων", "en-GB": "Trophy Shop", "en": "Trophy Shop", "eo": "Vendejo de pokaloj kaj premioj", "es": "Tienda de trofeos", "et": "Auhindade kauplus", "fr": "Magasin de trophées", "gl": "Tenda de trofeos", "he": "חנות מדליות", "hu": "Kupák, kitüntetések boltja", "it": "Negozio di coppe", "ja": "徽章店", "ko": "트로피 가게", "mk": "Продавница за трофеи", "nl": "Trofeewinkel", "pl": "Sklep z trofeami", "pt-BR": "Loja de troféus", "pt": "Loja de troféus", "ru": "Магазин наград", "sk": "Obchod s trofejami", "sr": "Продавница трофеја", "sv": "Affär för troféer", "th": "ร้านถ้วยรางวัล", "tr": "Kupa Dükkanı", "uk": "Магазин нагород", "vi": "Tiệm Giải thưởng", "zh-CN": "奖杯奖牌店", "zh-TW": "獎盃商店" } }, "shop/tyres": { "title": { "C": "Tire Store", "bs": "Prodavnica guma", "id": "Toko Ban", "ms": "Kedai Tayar", "zh": "轮胎店", "af": "Bandewinkel", "ar": "محل بيع إطارات", "ast": "Neumáticos", "bg": "Магазин за автомобилни гуми", "br": "Stal bandennoù-rod", "ca": "Botiga de pneumàtics", "cs": "Pneuservis", "cy": "Siop Deiars", "da": "Dækforhandler", "de": "Reifenhandel", "el": "Βουλκανιζατέρ", "en-AU": "Tyre Shop", "en-GB": "Tyre Shop", "en-NZ": "Tyre Store", "en": "Tire Store", "eo": "Aerbenda vendejo", "es": "Tienda de neumáticos", "et": "Rehvipood", "fa": "تایر فروشی", "fi": "Rengasliike", "fr": "Magasin de pneus", "gl": "Tenda de pneumáticos", "he": "חנות צמיגים", "hr": "Prodavaonica pneumaticima", "hu": "Autógumibolt", "is": "Dekkjabúð", "it": "Gommista", "ja": "タイヤ店", "ko": "타이어 가게", "lt": "Padangų parduotuvė", "lv": "Riepu veikals", "mk": "Продавница за автогуми", "nl": "Bandenwinkel", "no": "Dekkutsalg", "pa-PK": "ٹائیر دی دکان", "pl": "Sklep z oponami / wulkanizacja", "pt-BR": "Loja de pneus/borracharia", "pt": "Loja de pneus", "ro": "Magazin de Roți", "ru": "Шины", "sk": "Predajňa pneumatík", "sl": "Prodaja pnevmatik", "sr": "Продавница гума", "sv": "Däckfirma", "th": "ร้านขายยางรถยนต์", "tr": "Araç Lastiği Mağazası", "uk": "Колеса та шини", "vi": "Tiệm Lốp xe", "yue": "軚舖", "zh-CN": "轮胎店", "zh-HK": "輪胎店", "zh-TW": "輪胎店" } }, "shop/vacuum_cleaner": { "title": { "C": "Vacuum Cleaner Store", "id": "Toko Pengisap Debu", "ar": "متجر المكنسات الكهربائية", "ast": "Tienda d'aspiradores", "br": "Stal sunerezioù", "ca": "Botiga d'aspiradors", "cs": "Obchod s vysavači", "da": "Støvsugerforhandler", "de": "Staubsaugergeschäft", "el": "Κατάστημα Ηλεκτρικών Σκουπών", "en-GB": "Hoover Shop", "en": "Vacuum Cleaner Store", "eo": "Polvosuĉila vendejo", "es": "Tienda de aspiradoras", "et": "Tolmuimeja kauplus", "fa": "فروشگاه جاروبرقی", "fi": "Pölynimuriliike", "fr": "Magasin d'électroménager de nettoyage", "gl": "Tenda de aspiradoras", "he": "חנות שואבי אבק", "hr": "Trgovina za usisavače", "hu": "Porszívóbolt", "is": "Verslun með ryksugur", "it": "Negozio di aspirapolveri", "ja": "掃除機店", "ko": "진공청소기 가게", "lv": "Putekļusūcēju veikals", "mk": "Продавница за правосмукалки", "nl": "Stofzuigerwinkel", "no": "Støvsugerbutikk", "pl": "Sklep z odkurzaczami", "pt-BR": "Loja de Aspiradores de Pó", "pt": "Loja de aspiradores", "ro": "Magazin de Aspiratoare", "ru": "Магазин по продаже пылесосов", "sk": "Obchod s vysavačmi", "sl": "Trgovina s sesalci", "sr": "Продавница усисивача", "sv": "Dammsugarbutik", "th": "ร้านเครื่องดูดฝุ่น", "tr": "Elektrikli Süpürge Mağazası", "uk": "Пилотяги", "vi": "Tiệm Máy Hút bụi", "zh-CN": "吸尘器店", "zh-HK": "吸塵機店", "zh-TW": "吸塵器店" } }, "shop/watches": { "title": { "C": "Watches Shop", "ar": "متجر الساعات اليدوية", "ast": "Reloxería", "br": "Horolajerezh", "ca": "Botiga de rellotges", "cs": "Hodinářství", "da": "Urbutik", "de": "Uhrengeschäft", "el": "Κατάστημα Ρολογιών", "en-GB": "Watches Shop", "en": "Watches Shop", "eo": "Horloĝa vendejo", "es": "Relojería", "et": "Kellapood", "fa": "ساعت فروشی", "fi": "Kellokauppa", "fr": "Magasin de montres", "gl": "Reloxaría", "he": "חנות שעונים", "hr": "Trgovina Satovima", "hu": "Órabolt (karóra)", "is": "Úraverslun", "it": "Negozio di orologi", "ja": "腕時計店", "ko": "손목시계 가게", "lt": "Laikrodžių parduotuvė", "lv": "Pulksteņu Veikals", "mk": "Продавница за часовници", "nl": "Horlogewinkel", "no": "Urmaker", "pa-PK": "گھڑیاں", "pl": "Sklep z zegarkami", "pt-BR": "Relojoaria", "pt": "Loja de relógios", "ro": "Magazin de Ceasuri", "ru": "Магазин часов", "sk": "Obchod s hodinkami", "sl": "Trgovina z urami", "sr": "Продавница сатова", "sv": "Klockaffär", "th": "ร้านนาฬิกา", "tr": "Saatçi", "uk": "Годинники", "vi": "Tiệm Đồng hồ Đeo tay", "zh-CN": "手表店", "zh-HK": "手錶店", "zh-TW": "鐘錶行" } }, "shop/water": { "title": { "C": "Drinking Water Shop", "af": "Drinkwaterwinkel", "ar": "متجر مياه شرب", "br": "Stal dour mat da evañ", "ca": "Botiga d'aigua potable", "cs": "Obchod s pitnou vodou", "cy": "Siop Ddŵr Yfed", "da": "Drikkevandsbutik", "de": "Trinkwasserladen", "el": "Κατάστημα Πόσιμου Νερού", "en-GB": "Drinking Water Shop", "en": "Drinking Water Shop", "eo": "Trinkakv-vendejo", "es": "Tienda de agua potable", "et": "Joogivee pood", "fa": "فروشگاه آب", "fi": "Juomavesikauppa", "fr": "Magasin d'eau potable", "gl": "Tenda de auga potábel", "he": "חנות מי שתייה", "hu": "Ivóvíz-bolt", "it": "Negozio di acqua da bere", "ja": "飲料水店", "ko": "식수 가게", "mk": "Продавница за пивка вода", "nl": "Drinkwaterwinkel", "pa-PK": "پاݨی دی دکان", "pl": "Sklep z wodą pitną", "pt-BR": "Loja de Água Potável", "pt": "Loja de água potável", "ru": "Магазин питьевой воды", "sk": "Obchod s pitnou vodou", "sr": "Продавница пијаће воде", "sv": "Affär för dricksvatten", "th": "ร้านน้ำดื่ม", "tr": "İçme Suyu Mağazası", "uk": "Магазин питної води", "vi": "Tiệm Nước uống", "zh-CN": "饮水店", "zh-TW": "飲用水商店" } }, "shop/water_sports": { "title": { "C": "Watersport/Swim Shop", "si": "ජල ක්‍රීඩා/ පිහිනුම් තටාකය", "id": "Toko Renang/Olahraga Air", "ar": "متجر رياضة مائية/سباحة", "ast": "Tienda de natación/deportes acuáticos", "ca": "Botiga d'esports aquàtics", "cs": "Plavecké potřeby", "da": "Svømmesport/Svømmeudstyrsbutik", "de": "Wassersportgeschäft", "el": "Κατάστημα Ειδών Θαλάσσιων Σπορ / Κολύμβησης", "en-GB": "Watersport/Swim Shop", "en": "Watersport/Swim Shop", "eo": "Akvosport-aparata vendejo", "es": "Tienda de deporte acuático / natación", "et": "Veesporditarvete kauplus", "fa": "فروشگاه لوازم ورزش‌های آبی / شنا", "fi": "Vesiurheiluliike", "fr": "Vente d'équipements et d'articles pour sports nautiques", "gl": "Tenda de deportes acuáticos / natación", "he": "חנות שחייה", "hr": "Trgovina za vodene sportove", "hu": "Vízisport-bolt", "is": "Verslun með sund/vatnaíþróttavörur", "it": "Negozio per sport acquatici", "ja": "ウォータースポーツ用品店", "ko": "수상 스포츠/수영 가게", "mk": "Опрема за капење/водени спортови", "nl": "Watersport-/Zwemwinkel", "no": "Vannsport/Svømmebutikk", "pl": "Sklep ze sprzętem do sportów wodnych", "pt-BR": "Loja de esportes aquáticos", "pt": "Loja de desportos aquáticos", "ru": "Водный спорт/ Спорттовары", "sk": "Obchod s plaveckým vybavením", "sr": "Продавница пливачке опреме", "sv": "Vattensport/simning", "th": "ร้านกีฬาทางน้ำ/ว่ายน้ำ", "tr": "Su Sporları Mağazası", "uk": "Водний спорт/Спорттовари", "vi": "Tiệm Dụng cụ Bơi lội", "zh-CN": "水上运动/泳具店", "zh-HK": "水上活動/游泳用品店", "zh-TW": "水上活動/泳具店" } }, "shop/weapons": { "title": { "C": "Weapon Shop", "id": "Toko Senjata", "ar": "متجر أسلحة", "ast": "Armería", "br": "Armerezh", "ca": "Armeria", "cs": "Zbraně a střelivo", "cy": "Siop Arfau", "da": "Våbenbutik", "de": "Waffengeschäft", "el": "Κατάστημα Όπλων", "en-GB": "Weapon Shop", "en": "Weapon Shop", "eo": "Armila vendejo", "es": "Armería", "et": "Relvapood", "fa": "فروشگاه سلاح", "fi": "Aseliike", "fr": "Armurerie", "gl": "Armaría", "he": "חנות נשק קר", "hr": "Trgovina za oružje", "hu": "Fegyverbolt", "is": "Vopnaverslun", "it": "Armeria", "ja": "武器屋", "ko": "무기 가게", "lt": "Ginklų parduotuvė", "lv": "Ieroču Veikals", "mk": "Продавница за оружје", "nl": "Wapenwinkel", "no": "Våpenbutikk", "pl": "Sklep z bronią", "pt-BR": "Loja de armas", "pt": "Loja de armas", "ro": "Magazin de Arme", "ru": "Оружейный магазин", "sk": "Ochod so zbraňami", "sl": "Trgovina z orožjem", "sr": "Оружарница", "sv": "Vapenaffär", "ta": "ஆயுதவிற்பனைக் கடை", "th": "ร้านอาวุธ", "tr": "Silah Mağazası", "uk": "Зброя", "ur": "بندوق کی دکان", "vi": "Tiệm Vũ khí", "zh-CN": "武器店", "zh-HK": "武器店", "zh-TW": "武器店" } }, "shop/wholesale": { "title": { "C": "Wholesale Store", "ar": "متجر بيع بالجملة", "cs": "Velkoobchodní sklad", "cy": "Siop Gyfanwerthu", "de": "Großhandel", "el": "Κατάστημα Χονδρικής", "en-GB": "Wholesale Shop / Cash & Carry", "en": "Wholesale Store", "eo": "Pogranda vendejo", "es": "Almacén al por mayor", "et": "Hulgikauplus", "fa": "عمده‌فروشی", "fi": "Tukkukauppa", "fr": "Commerce de gros", "gl": "Almacén ó por maior", "he": "חנות סיטונאות", "hu": "Nagykereskedés", "is": "Heildverslun", "it": "Grossista", "ja": "卸売店", "ko": "도매상", "mk": "Големопродажен центар", "nl": "Groothandel", "no": "Grossisthandel", "pl": "Hurtownia", "pt-BR": "Atacadista", "pt": "Loja grossista", "ru": "Оптовый магазин", "sk": "Veľkoobchod", "sr": "Велепродајна продавница", "sv": "Grosistaffär", "ta": "மொத்தவிலைக் கடை", "th": "ร้านขายส่ง", "tr": "Toptan satış Mağazası", "uk": "Гуртова торгівля", "vi": "Tiệm Bán buôn", "zh-CN": "仓储超市", "zh-TW": "批發商" } }, "shop/wigs": { "title": { "C": "Wig Shop", "ar": "متجر بيع الباروكات", "br": "Stal perukennoù", "ca": "Botiga de perruqes", "cs": "Paruky", "cy": "Siop Wigs", "da": "Parykbutik", "de": "Perückenladen", "el": "Κατάστημα με Περούκες", "en-GB": "Wig Shop", "en": "Wig Shop", "eo": "Vendejo de perukoj", "es": "Tienda de pelucas", "et": "Parukapood", "fr": "Magasin de perruques", "gl": "Tenda de perrucas", "he": "חנות פיאות", "hu": "Paróka-szaküzlet", "it": "Negozio di parrucche", "ja": "かつら店", "ko": "가발 가게", "mk": "Продавница за перики", "nl": "Pruikenwinkel", "pl": "Sklep z perukami", "pt-BR": "Loja de perucas", "pt": "Loja de perucas", "ru": "Магазин париков", "sk": "Obchod s parochňami", "sv": "Affär för peruker", "th": "ร้านวิกผม", "tr": "Peruk Mağazası", "uk": "Магазин перук", "vi": "Tiệm Tóc giả", "zh-CN": "假发店", "zh-TW": "假髮專賣店" } }, "shop/window_blind": { "title": { "C": "Window Blind Store", "id": "Toko Kerai", "ar": "محل لبيع ستائر النوافذ", "ast": "Venta de persianes", "bg": "Магазин за щори", "ca": "Botiga de persianes", "cs": "Obchod s roletami", "da": "Persienneforhandler", "de": "Fensterladengeschäft", "el": "Κατάστημα σκιάστρων παραθύρου", "en-GB": "Window Blind Shop", "en": "Window Blind Store", "eo": "Fenestr-kovrila vendejo", "es": "Tienda de persianas", "et": "Aknakatete kauplus", "fa": "فروشگاه پرده و کرکره", "fi": "Kaihdinmyymälä", "fr": "Magasin de vente de stores", "gl": "Tenda de persianas", "he": "חנות וילונות", "hu": "Redőnybolt", "is": "Verslun með rimlagluggatjöld", "it": "Negozio di tapparelle e serrande", "ja": "ブラインドカーテン専門店", "ko": "창문 블라인드 가게", "lv": "Logu žalūziju veikals", "mk": "Продавница за завеси и ролетни", "nl": "Jaloeziewinkel", "no": "Persiennebutikk", "pl": "Sklep z żaluzjami/roletami", "pt-BR": "Loja de persianas", "pt": "Loja de estores", "ru": "Магазин жалюзей", "sk": "Obchod so žalúziami", "sl": "Trgovina z okenskimi senčili", "sv": "Persienner", "th": "ร้านขายบานเกล็ดหน้าต่าง", "tr": "Jaluzi Mağazası", "uk": "Жалюзі, ролети", "vi": "Tiệm Mành", "zh-CN": "百叶窗店", "zh-HK": "百葉簾店", "zh-TW": "窗廉店" } }, "shop/yes": { "title": { "C": "Shop (Unspecified Type)", "ar": "متجر (نوع غير محدد)", "br": "Stal (n'eo ket spisaet)", "ca": "Botiga / Tenda (Tipus sense especificar)", "cs": "Obchod (nespecifikovaný typ)", "cy": "Siop (math anhysbys)", "da": "Butik (uspecificeret type)", "de": "Geschäft (nicht spezifizierter Typ)", "el": "Μαγαζί (Απροσδιόριστος Τύπος)", "en-GB": "Shop (Unspecified Type)", "en": "Shop (Unspecified Type)", "eo": "Vendejo (nekonata speco)", "es": "Tienda (tipo no especificado)", "et": "Määratlemata pood", "fr": "Magasin (non précisé)", "he": "חנות (ללא הגדרת סוג)", "hu": "Üzlet (meghatározatlan típusú)", "it": "Negozio (Tipo non specificato)", "ja": "お店(全般)", "mk": "Дуќан (неукажан вид)", "nl": "Winkel (ongespecificeerd)", "pl": "Sklep (nieokreślony)", "pt-BR": "Loja (tipo não especificado)", "pt": "Loja", "sk": "Obchod (nešpecifikovaný typ)", "sr": "Продавница (неодређеног типа)", "sv": "Affär (ospecificerad typ)", "th": "ร้าน (ไม่ระบุประเภท)", "tr": "Shop (Unspecified Type)", "uk": "Магазин чи майстерня (невизначений тип)", "vi": "Tiệm (Kiểu Không rõ)", "zh-TW": "商店(未指定類型)" } }, "shop/art": { "title": { "C": "Art Store", "af": "Kunswinkel", "ar": "متجر الفنون", "ast": "Galería d'arte", "br": "Stal-arz", "ca": "Botiga d'art", "cs": "Obchod s uměním", "cy": "Siop Gelf", "da": "Kunstbutik", "de": "Kunsthandlung", "el": "Κατάστημα Τέχνης", "en-GB": "Art Shop", "en": "Art Store", "eo": "Artaĵa vendejo", "es": "Tienda de arte", "et": "Kunstitarvete kauplus", "fa": "فروشگاه آثار هنری", "fi": "Taideliike", "fr": "Marchand d'art", "gl": "Tenda de arte", "he": "חנות לחפצי אומנות", "hr": "Trgovina umjetninama", "hu": "Művészeti bolt", "is": "Listmunaverslun", "it": "Negozio di opere d'arte", "ja": "美術品販売店", "ko": "미술품 가게", "lt": "Meno parduotuvė", "lv": "Mākslas veikals", "mk": "Продавница за уметнички дела", "nl": "Kunstwinkel", "no": "Kunsthandel", "pl": "Sklep z dziełami sztuki", "pt-BR": "Loja de arte", "pt": "Loja de artigos de arte", "ro": "Magazin de Artă", "ru": "Магазин произведений искусства", "sk": "Obchod s umeleckými dielami", "sl": "Trgovina z umetninami", "sr": "Продавница уметнина", "sv": "Konstaffär", "ta": "கலை அங்காடி", "th": "ร้านขายงานศิลปะ", "tr": "Sanat Mağazası", "uk": "Художній салон", "vi": "Tiệm Nghệ phẩm", "zh-CN": "艺术品店", "zh-HK": "藝術商店", "zh-TW": "藝術商店" } }, "shop/bed": { "title": { "C": "Bedding/Mattress Store", "id": "Toko Selimut/Matras", "ar": "متجر مراتب ولوازم الفراش", "bg": "Магазин за легла/матраци", "br": "Stal dafar gwele", "ca": "Botiga de matalassos", "cs": "Prodejna postelí", "cy": "Siop Welyau / Fatresi", "da": "Sengetøj / Madras forhandler", "de": "Betten/Matratzengeschäft", "el": "Κατάστημα κρεβατιών/στρωμάτων", "en-GB": "Bed Shop", "en": "Bedding/Mattress Store", "eo": "Lita/matraca vendejo", "es": "Tienda de ropa de cama / Colchonería", "et": "Magamistoa kauba pood", "fa": "فروشگاه کالای خواب/ تشک", "fi": "Vuodetarvikeliike", "fr": "Magasin de literie", "gl": "Tenda de colchóns/roupa de cama", "he": "חנות מזרנים", "hr": "Trgovina opreme za krevete", "hu": "Ágy- és matracbolt", "is": "Rúm/Dýnuverslun", "it": "Negozio di letti/materassi", "ja": "寝具店", "ko": "침구/매트리스 가게", "lv": "Gultasveļas / Matraču veikals", "mk": "Продавница за кревети и постелнина", "nl": "Bed-/Matrassenwinkel", "no": "Sengebutikk", "pl": "Sklep z łóżkami/materacami", "pt-BR": "Loja de Camas e Colchões", "pt": "Loja de camas / colchões", "ro": "Magazin de Saltele", "ru": "Магазин матрасов и постельных принадлежностей", "sk": "Obchod s posteľami/matracmi", "sl": "Trgovina s posteljnino in žimnicami", "sr": "Продавница душека", "sv": "Sängaffär", "th": "ร้านขายที่นอน", "tr": "Yatak Mağazası", "uk": "Магазин постільних приналежностей", "vi": "Tiệm Nệm", "zh-CN": "床上用品店", "zh-HK": "寢具/床褥店", "zh-TW": "床具/寐具店" } }, "shop/cannabis": { "title": { "C": "Cannabis Shop", "ar": "Cannabis Shop", "br": "Stal ganabiz", "ca": "Botiga cannàbica", "cs": "Prodejna konopí", "cy": "Siop Ganabis", "de": "Cannabisgeschäft", "el": "Κατάστημα Κάναβις", "en-GB": "Cannabis Shop", "en": "Cannabis Shop", "eo": "Mariĥuana vendejo", "es": "Tienda de cannabis", "et": "Kanepipood", "fa": "فروشگاه شاهدانه / ورمی کمپوست", "fi": "Kannabiskauppa", "fr": "Magasin de cannabis", "gl": "Tenda de cannabis", "he": "חנות קנביס", "hu": "Marihuánabolt", "it": "Negozio di cannabis", "ja": "Cannabis Shop(illegal in Japan)", "ko": "대마초 가게", "mk": "Продавница за коноп", "nl": "Cannabiswinkel", "no": "Cannabisbutikk", "pl": "Sklep z produktami z konopi", "pt-BR": "Loja de canábis", "pt": "Loja de canábis", "ru": "Магазин марихуаны", "sk": "Obchod s konopnými produktami", "sr": "Продавница канабиса", "sv": "Cannabisaffär", "th": "ร้านกัญชา", "tr": "Esrar Dükkanı", "uk": "Конопля", "vi": "Tiệm Cần sa", "zh-CN": "大麻店", "zh-TW": "娛樂用大麻店" } }, "shop/car_repair": { "title": { "C": "Car Repair Shop", "bn": "গাড়ি মেরামতের দোকান", "bs": "Auto servis", "dv": "ކާާރު ހަދައިދޭ ގަރާޖް", "id": "Bengkel Mobil", "so": "Garaash", "zh": "汽车修理店", "af": "Werkswinkel", "ar": "ورشة إصلاح سيارات", "ast": "Taller d'automóviles", "bg": "Сервиз за автомобили", "br": "Karrdi kirri", "ca": "Taller d'automòbils", "cs": "Autoopravna", "cy": "Gweithdy Atgyweirio Ceir", "da": "Bilværksted", "de": "Autowerkstatt", "el": "Συνεργείο Αυτοκινήτων", "en-GB": "Car Repair Shop", "en": "Car Repair Shop", "eo": "Aŭtomobil-riparejo", "es": "Taller de reparación de automóviles", "et": "Autoremont", "fa": "تعمیرگاه خودرو", "fi": "Autokorjaamo", "fr": "Garage de réparation automobile", "gl": "Taller de arranxo de automóbiles", "he": "מוסך", "hr": "Automehaničar", "hu": "Autószerelő", "is": "Bílaverkstæði", "it": "Autofficina", "ja": "自動車修理工場", "ko": "자동차 수리점", "lt": "Auto taisykla", "lv": "Auto remontdarbnīca", "mk": "Автосервис", "nl": "Autogarage", "no": "Bilverksted", "pl": "Warsztat samochodowy", "pt-BR": "Oficina Mecânica", "pt": "Oficina de automóveis", "ro": "Vulcanizare", "ru": "Автомастерская", "sk": "Autoservis", "sl": "Avtoservis", "sr": "Ауто-сервис", "sv": "Bilverkstad", "th": "อู่ซ่อมรถ", "tr": "Tamirci", "uk": "Автомайстерня", "vi": "Tiệm Sửa Xe", "yue": "車房", "zh-CN": "汽车修理店", "zh-HK": "車房", "zh-TW": "汽車維修店" } }, "shop/clothes": { "title": { "C": "Clothing Store", "bn": "জামাকাপড়ের দোকান", "sq": "Dyqan Veshjesh", "bs": "Prodavnica odjeće", "id": "Toko Baju", "ms": "Kedai Pakaian", "zh": "服装店", "af": "Klerewinkel", "ar": "محل ملابس", "ast": "Tienda de ropa", "bg": "Магазин за дрехи", "br": "Stal-dilhad", "ca": "Botiga de roba", "cs": "Oblečení", "cy": "Siop Ddillad", "da": "Tøjbutik", "de": "Bekleidungsgeschäft", "el": "Κατάστημα Ένδυσης", "en-GB": "Clothing Shop", "en": "Clothing Store", "eo": "Vesta vendejo", "es": "Tienda de ropa", "et": "Riidepood", "fa": "فروشگاه لباس", "fi": "Vaatekauppa", "fr": "Magasin de vêtements", "gl": "Tenda de roupa", "he": "חנות בגדים", "hr": "Prodavaonica odjeće", "hu": "Ruházati bolt", "is": "Fataverslun", "it": "Negozio di abbigliamento", "ja": "衣料品店", "ko": "옷 가게", "lt": "Drabužių parduotuvė", "lv": "Apģērba veikals", "mk": "Продавница за облека", "nl": "Kledingzaak", "no": "Klesbutikk", "pa-PK": "کپڑے دی دکان", "pl": "Sklep odzieżowy", "pt-BR": "Loja de Roupas", "pt": "Loja de roupa", "ro": "Magazin de Haine", "ru": "Магазин одежды", "sk": "Obchod s odevmi", "sl": "Trgovina z oblekami", "sr": "Продавница одеће", "sv": "Klädaffär", "ta": "ஜவுளிக் கடை", "th": "ร้านเสื้อผ้า", "tr": "Giyim Mağazası", "uk": "Одяг", "vi": "Tiệm Quần áo", "yue": "衫舖", "zh-CN": "服装店", "zh-HK": "服飾店", "zh-TW": "服飾店" } }, "shop/craft": { "title": { "C": "Arts & Crafts Store", "ar": "متجر الفنون والحرف", "br": "Stal arzoù krouiñ", "ca": "Botiga d'art i artesania", "cs": "Obchod s uměleckými a řemeslnými potřebami", "cy": "Siop Grefft", "da": "Kunst & hobbybutik", "de": "Geschäft für Künstlerbedarf", "el": "Κατάστημα Τέχνης & Χειροτεχνίας", "en-GB": "Arts & Crafts Shop", "en": "Arts & Crafts Store", "eo": "Vendejo de materialoj por metio", "es": "Tienda de artesanías", "et": "Käsitöö ja kunstikauplus", "fa": "فروشگاه هنر و صنایع دستی", "fi": "Käsityöliike", "fr": "Magasin d'arts et loisirs créatifs", "gl": "Tenda de artes e oficios", "he": "חנות חפצי אומנות", "hu": "Kézműves bolt", "it": "Negozio di arti e mestieri", "ja": "美術・工芸用品店", "ko": "미술 & 공예 가게", "mk": "Продавница за уметнички ракотворби", "nl": "Winkel voor schilder- en tekengereedschap", "no": "Kunst & håndverksbutikk", "pl": "Sklep z artykułami dla artystów", "pt-BR": "Loja de artesanato", "pt": "Loja de acessórios para artes manuais", "ru": "Магазин художественных принадлежностей", "sk": "Obchod s umeleckými a remeselnými potrebami", "sv": "Konst- & hantverksbutik", "th": "ร้านขายงานศิลปะและงานฝีมือ", "tr": "El Sanatları Mağazası", "uk": "Мистецтво та ремесла", "vi": "Tiệm Bán đồ Thủ công", "zh-CN": "工艺美术用品店", "zh-TW": "手工藝品店" } }, "shop/curtain": { "title": { "C": "Curtain Store", "id": "Toko Gorden", "ar": "محل بيع الستائر", "ast": "Tienda de cortines", "br": "Stal-rideoz", "ca": "Botiga de cortines", "cs": "Obchod se závěsy", "cy": "Siop Len", "da": "Gardinbutik", "de": "Vorhanggeschäft", "el": "Είδη Κουρτίνας", "en-GB": "Curtain Shop", "en": "Curtain Store", "eo": "Kurtena vendejo", "es": "Tienda de cortinas", "et": "Kardinakauplus", "fa": "پرده فروشی", "fi": "Verhomyymälä", "fr": "Magasin de rideaux", "gl": "Tenda de cortinas", "he": "חנות וילונות", "hr": "Trgovina za zastore", "hu": "Függönybolt", "is": "Gluggatjaldaverslun", "it": "Negozio di tende", "ja": "カーテン店", "ko": "커튼 가게", "lt": "Užuolaidų parduotuvė", "lv": "Aizkaru veikals", "mk": "Продавница за завеси", "nl": "Gordijnenwinkel", "no": "Gardinbutikk", "pl": "Sklep z zasłonami", "pt-BR": "Loja de Cortinas", "pt": "Loja de cortinas", "ro": "Magazin de Perdele", "ru": "Магазин штор и драпировок", "sk": "Obchod so záclonami", "sl": "Trgovina z zavesami", "sr": "Продавница завеса", "sv": "Gardinaffär", "th": "ร้านผ้าม่าน", "tr": "Perde Mağazası", "uk": "Магазин занавісок", "vi": "Tiệm Màn cửa", "zh-CN": "窗帘店", "zh-HK": "窗簾店", "zh-TW": "窗廉店" } }, "shop/frame": { "title": { "C": "Framing Shop", "id": "Toko Bingkai", "ar": "محل تأطير (بيع إطارات صور)", "ast": "Marcos", "br": "Stal enframmadur", "ca": "Botiga de marcs", "cs": "Rámařství", "da": "Rammebutik", "de": "Bilderrahmengeschäft", "el": "Κατάστημα Κορνίζων", "en-GB": "Framing Shop", "en": "Framing Shop", "eo": "Bild-kadra vendejo", "es": "Tienda de enmarcación", "et": "Raamikauplus", "fa": "قاب سازی", "fi": "Kehystämö", "fr": "Magasin d'encadrements", "gl": "Tenda de enmarcado", "he": "חנות חקלאות", "hr": "Trgovina za okvire", "hu": "Képkeret-bolt", "is": "Innrömmun", "it": "Negozio di cornici", "ja": "額縁店", "ko": "액자 가게", "lt": "Įrėminimo parduotuvė", "mk": "Врамувачница", "nl": "Lijstenmakerij", "no": "Innrammingsbutikk", "pl": "Sklep z ramami", "pt-BR": "Loja de Molduras", "pt": "Loja de molduras", "ru": "Магазин рамок для фотографий и картин", "sk": "Obchod s rámami", "sr": "Стаклар", "sv": "Ramaffär", "th": "ร้านทำกรอบรูป", "tr": "Çerçeve Mağazası", "uk": "Багетна майстерня", "vi": "Tiệm Khung Tranh", "zh-CN": "相框店", "zh-HK": "表框店", "zh-TW": "表框店" } }, "shop/fuel": { "title": { "C": "Fuel Shop", "am": "ነዳጅ ማደያ", "ar": "متجر بيع الوقود", "ca": "Botiga de combustibles", "cs": "Obchod s palivem", "cy": "Siop Danwydd", "da": "Brændstofbutik", "de": "Tankstelle", "el": "Κατάστημα Καυσίμων", "en-GB": "Fuel Shop", "en": "Fuel Shop", "eo": "Brulaĵ-vendejo", "es": "Tienda de combustible", "et": "Küttepood", "fa": "فروشگاه سوخت", "fi": "Polttoainemyymälä", "fr": "Revendeur de carburant", "gl": "Tenda de combustíbel", "he": "חנות נוחות", "hu": "Üzemanyag-szaküzlet", "it": "Negozio di carburanti", "ja": "燃料店", "ko": "연료 가게", "mk": "Продавница за гориво", "nl": "Brandstofwinkel", "no": "Drivstoffbuttikk", "pl": "Sklep z paliwem", "pt-BR": "Loja de combustíveis", "pt": "Loja de combustíveis", "sk": "Obchod s palivom", "sr": "Продавница горива", "sv": "Bränsleaffär", "th": "ร้านขายเชื้อเพลิง", "tr": "Akaryakıt İstasyonu", "uk": "Паливо", "vi": "Tiệm Nhiên liệu", "zh-CN": "燃料店", "zh-HK": "燃料店", "zh-TW": "燃料店" } }, "shop/nuts": { "title": { "C": "Nuts Shop", "br": "Stal-graoñ", "cs": "Obchod s oříšky", "da": "Nøddebutik", "de": "Nussgeschäft", "el": "Κατάστημα Καρπών", "en-GB": "Nuts Shop", "en": "Nuts Shop", "es": "Tienda de frutos secos", "et": "Pähklipood", "fi": "Pähkinäkauppa", "fr": "Magasin de noix", "he": "חנות פיצוחים", "it": "Negozio di noci", "ja": "ナッツ店", "mk": "Продавница за оревести пловоди", "pl": "Sklep z bakaliami", "pt-BR": "Loja de frutos secos", "pt": "Loja de frutos secos", "ru": "Магазин орехов", "sk": "Obchod s orieškami alebo sušeným ovocím", "sr": "Продавница орашастих плодова", "sv": "Nötbutik", "tr": "Nuts Shop", "uk": "Горіхи та сухофрукти", "zh-TW": "堅果商店" } }, "shop/shoes": { "title": { "C": "Shoe Store", "am": "ጫማ ቤት", "bn": "জুতোর দোকান", "bs": "Prodavnica obuće", "id": "Toko Sepatu", "kn": "ಮೆಟ್ಟು ಅಂಗಡಿ", "ms": "Kedai Kasut", "zh": "鞋店", "af": "Skoenwinkel", "ar": "متجر أحذية", "ast": "Zapatería", "bg": "Магазин за обувки", "br": "Stal-votoù", "ca": "Sabateria", "cs": "Obuvnictví", "cy": "Siop Esgidiau", "da": "Skobutik", "de": "Schuhgeschäft", "el": "Κατάστημα Υπόδησης", "en-GB": "Shoe Shop", "en": "Shoe Store", "eo": "Ŝua vendejo", "es": "Zapatería", "et": "Kingapood", "eu": "Zapata-denda", "fa": "کفش فروشی", "fi": "Kenkäkauppa", "fr": "Magasin de chaussures", "gl": "Zapataría", "he": "חנות נעליים", "hr": "Prodavaonica obuće", "hu": "Cipőbolt", "is": "Skóbúð", "it": "Negozio di scarpe", "ja": "靴店", "ko": "신발 가게", "lt": "Batų parduotuvė", "lv": "Apavu veikals", "mk": "Продавница за обувки", "nl": "Schoenenwinkel", "no": "Skobutikk", "pl": "Sklep obuwniczy", "pt-BR": "Loja de Calçados", "pt": "Sapataria", "ro": "Magazin de Ghete", "ru": "Обувь", "sk": "Obchod s obuvou", "sl": "Trgovina s čevlji", "sr": "Продавница обуће", "sv": "Skoaffär", "ta": "காலணியகம்", "th": "ร้านรองเท้า", "tr": "Ayakkabı Mağazası", "uk": "Взуття", "vi": "Tiệm Giày", "yue": "鞋舖", "zh-CN": "鞋店", "zh-HK": "鞋舖", "zh-TW": "鞋店" } }, "shop/hobby": { "title": { "C": "Hobby Shop", "ar": "متاجر الهوايات", "cs": "Obchod s potřebami pro volný čas", "cy": "Siop Hobi", "da": "Hobbybutik", "de": "Bastelgeschäft", "el": "Κατάστημα Ειδών Χόμπυ", "en-GB": "Hobby Shop", "en": "Hobby Shop", "eo": "Hobia vendejo", "es": "Tienda de pasatiempos", "fa": "فروشگاه سرگرمی", "fi": "Harrastuskauppa", "fr": "Magasin pour hobby (non spécifié)", "gl": "Tenda de pasatempos", "he": "חנות תחביבים", "hu": "Hobbibolt", "it": "Negozio di hobbystica", "ja": "ホビーショップ", "ko": "취미 가게", "mk": "Хобистичка продавница", "nl": "Hobbywinkel", "no": "Hobbybutikk", "pl": "Sklep hobbystyczny", "pt-BR": "Loja de passatempo", "pt": "Loja de modelismo", "sk": "Obchod s potrebami pre voľný čas", "sv": "Hobbyaffär", "th": "ร้านขายของสำหรับงานอดิเรก", "tr": "Hobi Mağazası", "uk": "Магазин товарів для хобі", "zh-CN": "Hobby Shop", "zh-TW": "嗜好商店" } }, "shop/vacant": { "title": { "C": "Vacant Shop", "te": "ఖాళీ దుకాణం", "bs": "Prodavnica za iznajmljivanje", "id": "Toko Kosong", "zh": "空置铺位", "af": "Leë winkel", "ar": "محل شاغر", "ast": "Tienda balera", "bg": "Свободна търговска площ", "br": "Stal dilezet", "ca": "Botiga vacant", "cs": "Neobsazený obchod", "cy": "Siop Wag", "da": "Ledig butik (ingen salg pt)", "de": "Leerstehendes Geschäft", "el": "Ξενοίκιαστο Κατάστημα", "en-GB": "Vacant Shop", "en": "Vacant Shop", "eo": "Forlasita vendejo", "es": "Local disponible", "et": "Vaba kaubanduspind", "eu": "Denda-lokal hutsa", "fa": "فروشگاه خالی", "fi": "Tyhjä liikehuoneisto", "fr": "Commerce désaffecté", "gl": "Local baleiro", "he": "חנות ריקה", "hr": "Prazan dućanski prostor", "hu": "Kiadó üzlethelyiség", "is": "Tóm verslun", "it": "Negozio vuoto", "ja": "空き店舗", "ko": "빈 가게", "lt": "Tuščia parduotuvė", "mk": "Празна продавница", "nl": "Leegstaande winkel", "pl": "Pusty lokal sklepowy", "pt-BR": "Loja Desocupada", "pt": "Loja desocupada", "ro": "Magazin Vacant", "ru": "Помещение под открытие магазина", "sk": "Prázdny obchod", "sl": "Nedelujoča trgovina", "sr": "Упражњена продавница", "sv": "Tom lokal", "th": "ร้านว่าง", "tr": "Boş Dükkan", "uk": "Здається в оренду", "vi": "Tiệm Trống", "yue": "吉舖", "zh-CN": "空置铺位", "zh-HK": "空置商舖", "zh-TW": "閒置商店" } }, "shop/anime": { "title": { "C": "Anime / Manga Shop", "ms": "Kedai Anime / Manga", "ar": "متجر أنيمي / مانغا", "bg": "Аниме / манга магазин", "br": "Stal mangaoù ha anime", "ca": "Botiga de manga / anime", "cs": "Obchod s Anime / Mangou", "cy": "Siop Anime / Manga", "da": "Anime/Manga-buik", "de": "Anime- / Manga-Geschäft", "el": "Κατάστημα Anime / Manga", "en-GB": "Anime / Manga Shop", "en": "Anime / Manga Shop", "eo": "Anime-/manga-vendejo", "es": "Tienda de anime / manga", "et": "Mangapood", "fa": "فروشگاه انیمه / مانگا (کمیک ژاپنی)", "fi": "Anime-/mangaliike", "fr": "Boutique de manga et anime", "gl": "Tenda de anime / manga", "he": "חנות אנימה/מנגה", "hu": "Anime képregényekkel kapcsolatos bolt", "it": "Negozio di Anime / Manga", "ja": "アニメショップ", "ko": "애니메이션/만화 가게", "mk": "Продавница за аниме/манга", "nl": "Anime-/Mangawinkel", "no": "Anime- / mangabutikk", "pl": "Sklep z mangą i anime", "pt-BR": "Loja de Anime / Manga", "pt": "Loja de animé", "ru": "Магазин аниме / манги", "sk": "Obchod s anime/manga predmetmi", "sr": "Продавница манга и аниме", "sv": "Anime/Manga-affär", "th": "ร้านหนังสือการ์ตูน", "tr": "Anime / Manga Dükkanı", "uk": "Аніме/манга магазин", "vi": "Tiệm Anime/Manga", "zh-CN": "动漫/漫画店", "zh-HK": "動畫/漫畫店", "zh-TW": "動畫/漫畫店" } }, "shop/appliance": { "title": { "C": "Appliance Store", "af": "Toestelwinkel", "ar": "متجر الأجهزة المنزلية", "bg": "Магазин за електроуреди", "br": "Stal mekanikoù tredan", "ca": "Botiga d'electrodomèstics", "cs": "Prodejna spotřební elektroniky", "cy": "Siop Offer", "da": "Hvidevareforretning", "de": "Haushaltselektrogerätegeschäft", "el": "Κατάστημα Συσκευών", "en-GB": "Appliance Shop", "en": "Appliance Store", "eo": "Elektronikaĵega vendejo", "es": "Tienda de electrodomésticos", "et": "Kodumasinate pood", "fa": "فروشگاه لوازم خانگی", "fi": "Kodinkonemyymälä", "fr": "Magasin d'électroménager", "gl": "Tenda de electrodomésticos", "he": "חנות כלים חשמלים", "hu": "Háztartásigép-bolt", "is": "Raftækjaverslun", "it": "Negozio di elettrodomestici", "ja": "白物家電販売店(大型製品)", "ko": "가전 제품 가게", "mk": "Продавница за апарати и уреди", "nl": "Huishoudelijkeapparatuurwinkel", "no": "Hvitevarebutikk", "pl": "Sklep z AGD", "pt-BR": "Loja de Eletrodomésticos", "pt": "Loja de eletrodomésticos \"brancos\"", "ro": "Magazin de Electrocasnice", "ru": "Магазин бытовой техники", "sk": "Obchod s domácimi spotrebičmi", "sl": "Splošna tehnična trgovina", "sr": "Продавница беле технике", "sv": "Vitvaror", "th": "ร้านขายเครื่องมือ", "tr": "Beyaz Eşya Mağazası", "uk": "Побутова техніка", "vi": "Tiệm Gia dụng", "zh-CN": "家用电器店", "zh-HK": "電器店", "zh-TW": "家用電器店" } }, "shop/bicycle": { "title": { "C": "Bicycle Shop", "bn": "সাইকেলের দোকান", "bs": "Prodavnica bicikala", "id": "Toko Sepeda", "ms": "Kedai Basikal", "zh": "自行车店", "af": "Fietswinkel", "ar": "متجر دراجات هوائية", "ast": "Tienda de ciclismu", "bg": "Магазин за велосипеди", "br": "Stal marc'hoù-houarn", "ca": "Botiga de bicicletes", "cs": "Cykloprodejna", "cy": "Siop Feiciau", "da": "Cykelhandler", "de": "Fahrradladen", "el": "Κατάστημα Ποδηλάτων", "en-GB": "Bicycle Shop", "en": "Bicycle Shop", "eo": "Bicikla vendejo", "es": "Tienda de bicicletas", "et": "Rattapood", "fa": "فروشگاه دوچرخه", "fi": "Pyöräliike", "fr": "Magasin de vélos", "gl": "Tenda de bicicletas", "he": "חנות אופניים", "hr": "prodavaonica bicikala", "hu": "Kerékpárbolt", "is": "Hjólabúð", "it": "Negozio di biciclette", "ja": "自転車店", "ko": "자전거 가게", "lt": "Dviračių parduotuvė", "lv": "Velo veikals", "mi": "Pahikara toa", "mk": "Продавница за велосипеди", "nl": "Fietswinkel", "no": "Sykkelbutikk", "pl": "Sklep rowerowy", "pt-BR": "Loja de Bicicletas", "pt": "Loja de bicicletas", "ro": "Magazin de Biciclete", "ru": "Веломагазин", "sk": "Cykloobchod", "sl": "Kolesarska trgovina", "sr": "Продавница бицикала", "sv": "Cykelaffär", "ta": "மிதிவண்டிக் கடை", "th": "ร้านจักรยาน", "tr": "Bisiklet Mağazası", "uk": "Веломагазин", "vi": "Tiệm Xe đạp", "yue": "單車舖", "zh-CN": "自行车店", "zh-HK": "單車店", "zh-TW": "單車店" } }, "shop/boat": { "title": { "C": "Boat Store", "ar": "متجر بيع قوارب ومستلزماتها", "br": "Stal-vigi", "ca": "Botiga de nàutica", "cs": "Prodejna lodí", "cy": "Siop Gwch", "da": "Bådforhandler", "de": "Bootsgeschäft", "el": "Κατάστημα Σκαφών", "en-GB": "Boat Shop", "en": "Boat Store", "eo": "Boat‑vendejo", "es": "Tienda de barcos", "et": "Paadipood", "fa": "فروشگاه قایق", "fi": "Venekauppa", "fr": "Magasin de bateaux", "gl": "Tenda de embarcacións", "he": "חנות סירות", "hu": "Hajósbolt", "it": "Negozio di barche", "ja": "ボート店", "ko": "보트 가게", "mk": "Продавница за чамци", "nl": "Bootwinkel", "pl": "Sklep żeglarski", "pt-BR": "Loja de Barcos", "pt": "Loja de barcos", "ru": "Магазин лодок", "sk": "Obchod s loďami", "sr": "Продавница чамаца", "sv": "Båtaffär", "th": "ร้านขายเรือ", "tr": "Tekne Mağazası", "uk": "Магазин човнів", "vi": "Tiệm Tàu thuyền", "zh-CN": "船店", "zh-HK": "船店", "zh-TW": "船店" } }, "shop/brewing_supplies": { "title": { "C": "Brewing Supply Store", "ar": "Brewing Supply Store", "cs": "Pivovarnický obchod", "cy": "Siop Gynnyrch Bragdy", "da": "Bryggeudstyrsbutik", "de": "Brauzubehörgeschäft", "el": "Κατάστημα Εξοπλισμού Ζυθοποιίας", "en-GB": "Brewing Supply Shop", "en": "Brewing Supply Store", "eo": "Bier-/vin-farendaĵa vendejo", "es": "Tienda de suministros de cerveza", "et": "Pruulitarvikute pood", "fa": "فروشگاه فرآورده‌های آبجو", "fr": "Magasin de matériel de brasserie", "gl": "Tenda de cervexaría artesanal", "he": "חנות ציוד למבשלות", "hu": "Borászati, sör- és párlafőzési felszereléseket árusító üzlet", "it": "Negozio di forniture per la produzione di birra", "ja": "醸造用品店", "ko": "양조 용품 가게", "mk": "Пивоварска продавница", "nl": "Winkel voor brouwbenodigdheden", "pl": "Sklep dla piwowarów domowych", "pt-BR": "Loja de suprimentos para cerveja", "pt": "Loja de material de fermentação", "ru": "Магазин пивоваренного оборудования", "sk": "Obchod s potrebami pre výrobu piva/vína", "sv": "Affär för hembryggningstillbehör", "th": "ร้านอุปกรณ์ผลิตเบียร์", "tr": "Bira Malzemeleri Mağazası", "uk": "Пивоварне та виноробне обладнання", "zh-CN": "酿酒用品店", "zh-TW": "釀酒用品店" } }, "shop/car": { "title": { "C": "Car Dealership", "am": "መኪና መሸጫ", "bn": "গাড়ির ডিলারশিপ", "bs": "Salon automobila", "id": "Dealer Mobil", "zh": "车行", "af": "Voertuighandelaar", "ar": "وكالة/معرض سيارات", "ast": "Venta d'automóviles", "bg": "Автокъща", "br": "Gwerzher kirri", "ca": "Concessionari de cotxes", "cs": "Prodejna aut", "cy": "Gwerthwr Ceir", "da": "Bilforhandler", "de": "Autohändler", "el": "Εμπόριο Αυτοκινήτων", "en-GB": "Car Dealership", "en": "Car Dealership", "eo": "Aŭtomobila vendejo", "es": "Concesionario de automóviles", "et": "Autopood", "fa": "نمایندگی خودرو", "fi": "Autokauppa", "fr": "Concessionnaire automobile", "gl": "Concesionario de automóbiles", "he": "סוכנות רכב", "hr": "Prodavaonica automobila", "hu": "Autókereskedés", "is": "Bílabúð", "it": "Concessionario", "ja": "カーディーラー", "ko": "자동차 대리점", "lt": "Automobilių prekybos atstovybė", "lv": "Auto dīleris", "mk": "Автосалон", "nl": "Autoshowroom", "no": "Bilforhandler", "pl": "Salon sprzedaży samochodów", "pt-BR": "Concessionária de carros", "pt": "Loja de automóveis", "ro": "Magazin de Mașini", "ru": "Автодилер", "sk": "Predajňa áut", "sl": "Avtomobilski salon", "sr": "Салон аутомобила", "sv": "Bilhandlare", "ta": "வாகன விற்பனையகம்", "th": "ตัวแทนจำหน่ายรถยนต์", "tr": "Oto Galeri", "uk": "Автосалон", "vi": "Tiệm Xe hơi", "yue": "車行", "zh-CN": "汽车店", "zh-HK": "車行", "zh-TW": "汽車行" } }, "shop/collector": { "title": { "C": "Collectibles Shop", "ar": "متجر المقتنيات والتجميعات", "ca": "Botiga de coleccionabes", "cs": "Sběratel", "de": "Sammlergeschäft", "el": "Κατάστημα για Συλλέκτες", "en-GB": "Collectibles Shop", "en": "Collectibles Shop", "eo": "Kolektaĵa vendejo", "es": "Tienda de coleccionables", "et": "Pood kollektsionääridele", "fa": "فروشگاه کلکسیونی", "fr": "Magasin d'objets de collection", "gl": "Tenda de colecionismo", "he": "חנות אספנים", "hu": "Gyűjthető tárgyak boltja", "it": "Negozio di articoli da collezione", "ja": "コレクター店", "ko": "수집품 가게", "mk": "Колекционерска продавница", "nl": "Winkel voor verzamelobjecten", "no": "Samlingsbutikk", "pl": "Sklep kolekcjonerski", "pt-BR": "Loja de artigos para colecionadores", "pt": "Loja de colecionismo", "ru": "Коллекционный магазин", "sk": "Obchod so zberateľskými predmetmi", "sr": "Продавница колекционарства", "sv": "Affär med samlarobjekt", "th": "ร้านขายของสะสม", "tr": "Koleksiyon Mağazası", "uk": "Магазин предметів колекціювання", "vi": "Tiệm Đồ sưu tập", "zh-CN": "收藏品店", "zh-TW": "收藏品商店" } }, "shop/doityourself": { "title": { "C": "DIY Store", "bn": "নিজে করুন স্টোর", "bs": "Sve za kuću", "id": "Toko Swakriya", "ms": "Kedai DIY", "zh": "DIY商店", "af": "Doen-Dit-Self-winkel", "ar": "محل عدد وأدوات وأجهزة صيانة وتحسين المنزل", "ast": "Bricolage", "bg": "Магазин \"Направи си сам\"", "br": "Stal-vitellat", "ca": "Botiga de bricolatge", "cs": "Obchod pro kutily", "cy": "Siop DIY", "da": "Byggemarked", "de": "Heimwerkerladen", "el": "Κατάστημα ιδιοκατασκευών", "en-GB": "DIY Shop", "en": "DIY Store", "eo": "Memfaradila vendejo", "es": "Tienda de bricolaje / Hágalo usted mismo", "et": "Ehituskauplus", "fa": "فروشگاه DIY", "fi": "Askartelukauppa", "fr": "Magasin de bricolage", "gl": "Tenda de bricolaxe", "he": "חנות עשה זאת בעצמך", "hr": "Uradi sam", "hu": "Barkácsáruház", "is": "Handlaginna verslun", "it": "Negozio per il fai-da-te", "ja": "ホームセンター(DIY)", "ko": "DIY 가게", "lt": "Pasidaryk pats parduotuvė", "mk": "Продавница за мајсторисување", "nl": "Bouwmarkt, doe-het-zelfwinkel", "no": "Byggevarehus", "pl": "Market budowlany / sklep dla majsterkowiczów", "pt-BR": "Loja de Ferragens/Bricolagem", "pt": "Loja de bricolagem", "ro": "Magazin DIY", "ru": "Строительный магазин", "sk": "Obchod pre kutilov", "sl": "Orodjarna", "sr": "Продавница све за кућу", "sv": "Byggmarknad", "th": "ร้านขายของทำมือ", "tr": "Malzeme Mağazası", "uk": "Будівельний гіпермаркет", "vi": "Tiệm Vật liệu Xây dựng", "yue": "自組舖", "zh-CN": "DIY店", "zh-HK": "DIY店", "zh-TW": "DIY商店" } }, "shop/fishing": { "title": { "C": "Fishing Shop", "af": "Hengel gereedskapwinkel", "ar": "محل معدات الصيد البحري", "br": "Stal-besketa", "ca": "Botiga de pesca", "cs": "Rybářské potřeby", "cy": "Siop Bysgota", "da": "Fiskebutik", "de": "Angelgeschäft", "el": "Είδη Αλιείας", "en-GB": "Fishing Shop", "en": "Fishing Shop", "eo": "Fiŝkaptil-vendejo", "es": "Tienda de pesca", "et": "Kalastustarvete pood", "fa": "فروشگاه لوازم ماهی گیری", "fi": "Kalastuskauppa", "fr": "Magasin de pêche", "gl": "Tenda de pesca", "he": "חנות דיג", "hr": "Prodavaonica ribolovne opreme", "hu": "Horgászbolt", "it": "Negozio di pesca", "ja": "釣具店", "ko": "낚시 가게", "mk": "Риболовна продавница", "nl": "Hengelsportwinkel", "no": "Fiskebutikk", "pl": "Sklep wędkarski", "pt-BR": "Loja de pesca", "pt": "Loja de artigos de pesca", "ru": "Рыболовный магазин", "sk": "Obchod s rybárskymi potrebami", "sr": "Продавница рибе", "sv": "Fiskeaffär", "th": "ร้านขายอุปกรณ์ตกปลา", "tr": "Balıkçılık Mağazası", "uk": "Рибальський магазин", "vi": "Tiệm Cần câu", "zh-CN": "钓鱼店", "zh-TW": "釣魚用品店" } }, "shop/games": { "title": { "C": "Tabletop Game Store", "ar": "متجر ألعاب الطاولة", "cs": "Deskové hry", "cy": "Siop Gemau Bwrdd", "de": "Brettspielgeschäft", "el": "Κατάστημα Επιταπέζιων Παιχνιδιών", "en-GB": "Tabletop Game Shop", "en": "Tabletop Game Store", "eo": "Tabullud‑vendejo", "es": "Tienda de juegos de mesa", "et": "Lauamängude pood", "fi": "Lautapeliliike", "fr": "Magasin de jeux de plateau", "gl": "Tenda de xogos de mesa", "he": "חנות משחקי קופסה", "hu": "Társasjáték-bolt", "it": "Negozio di giochi da tavolo", "ja": "ボードゲーム販売店", "ko": "보드게임 가게", "mk": "Продавница за столни игри", "nl": "Bordspellenwinkel", "no": "Bordspill-butikk", "pl": "Sklep z grami", "pt-BR": "Loja de jogos de mesa", "pt": "Loja de jogos de tabuleiro", "ru": "Магазин настольных игр", "sk": "Obchod so stolovými hrami", "sr": "Продавница друштвених игара", "sv": "Affär för brädspel", "th": "ร้านบอร์ดเกมส์", "tr": "Masa Oyunları Mağazası", "uk": "Настільні ігри", "zh-CN": "桌游店", "zh-TW": "桌遊店" } }, "shop/hairdresser": { "title": { "C": "Hairdresser", "am": "ፀጉር ቤት", "bs": "Frizer", "id": "Salon", "zh": "理发点", "af": "Haarkapper", "ar": "حلاق", "ast": "Peluquería", "bg": "Фризьорски салон", "br": "Perukenner", "ca": "Perruqueria", "ckb": "سەرتاشخانە", "cs": "Kadeřnictví", "cy": "Triniwr Gwallt", "da": "Frisør", "de": "Friseur", "el": "Κομμωτήριο", "en-GB": "Hairdresser", "en": "Hairdresser", "eo": "Frizejo", "es": "Peluquería", "et": "Juuksurisalong", "eu": "Ile-apaintzailea", "fa": "آرایشگاه", "fi": "Parturi-kampaamo", "fr": "Salon de coiffure", "ga": "Gruagaire", "gl": "Perrucaría", "he": "מעצב שיער", "hr": "Frizerski salon", "hu": "Fodrász", "is": "Hárstofa", "it": "Parrucchiere", "ja": "理美容店", "ko": "미용실", "lt": "Kirpykla", "lv": "Frizieris", "mk": "Фризерски салон", "nl": "Kapper", "no": "Frisør", "pl": "Fryzjer", "pt-BR": "Cabeleireiro", "pt": "Cabeleireiro(a)", "ro": "Frizer", "ru": "Парикмахерская", "sk": "Kaderníctvo", "sl": "Frizer", "sr": "Фризер", "sv": "Hårfrisör", "th": "ช่างทำผม", "tr": "Kuaför", "uk": "Перукарня", "vi": "Tiệm Làm tóc", "yue": "飛髮舖", "zh-CN": "理发店", "zh-HK": "理髮店", "zh-TW": "理髮店" } }, "shop/honey": { "title": { "C": "Honey Store", "br": "Stal-vel", "cs": "Obchod s medem", "cy": "Siop Fêl", "da": "Honningbutik", "de": "Honiggeschäft", "el": "Κατάστημα Μελιού", "en-GB": "Honey Shop", "en": "Honey Store", "es": "Tienda de miel", "et": "Meepood", "fr": "Magasin de miel", "he": "חנות דבש", "it": "Negozio di miele", "ja": "蜂蜜販売店", "mk": "Продавница за мед", "nl": "Honingwinkel", "pl": "Sklep z miodem", "pt": "Loja de mel", "ru": "Магазин мёда", "sr": "Продавница меда", "sv": "Honungsaffär", "tr": "Honey Store", "uk": "Магазин меду", "zh-TW": "蜂蜜商店" } }, "shop/hunting": { "title": { "C": "Hunting Shop", "ar": "متجر بيع أسلحة ومعدات الصيد", "br": "Stal jiboez", "ca": "Botiga de caça", "cs": "Lovecké potřeby", "da": "Jagtbutik", "de": "Jagdgeschäft", "el": "Είδη Κυνηγιού", "en-GB": "Hunting Shop", "en": "Hunting Shop", "eo": "Ĉasil-vendejo", "es": "Tienda de caza", "et": "Jahipood", "fa": "فروشگاه لوازم شکار", "fi": "Metsästyskauppa", "fr": "Magasin de chasse", "gl": "Tenda de caza", "he": "חנות ציד", "hu": "Vadászati bolt", "is": "Veiðibúð", "it": "Negozio di caccia", "ja": "狩猟用品店", "ko": "사냥 용품 가게", "mk": "Ловечка продавница", "nl": "Jachtwinkel", "no": "Jaktbutikk", "pl": "Sklep myśliwski", "pt-BR": "Loja de Caça", "pt": "Loja de artigos de caça", "ru": "Охотничий магазин", "sk": "Obchod s poľovníckymi potrebami", "sr": "Продавница ловачке опреме", "sv": "Jaktbutik", "th": "ร้านอุปกรณ์ล่าสัตว์", "tr": "Avcılık Mağazası", "uk": "Мисливський магазин", "vi": "Tiệm Súng Săn", "zh-CN": "狩猎店", "zh-TW": "打獵用品店" } }, "shop/music": { "title": { "C": "Music Store", "bn": "সঙ্গীতের দোকান", "bs": "Muzička prodavnica", "id": "Toko Musik", "ms": "Kedai Muzik", "zh": "音乐店", "af": "Musiekwinkel", "ar": "متجر بيع موسيقى", "ast": "Tienda de música", "bg": "Музикален магазин", "br": "Stal-sonerezh", "ca": "Botiga de música", "cs": "Obchod s hudbou", "cy": "Siop Gerddoriaeth", "da": "Musikbutik", "de": "Musikgeschäft", "el": "Κατάστημα Μουσικής", "en-GB": "Music Shop", "en": "Music Store", "eo": "Muzika vendejo", "es": "Tienda de música", "et": "Muusikapood", "fa": "فروشگاه موسیقی", "fi": "Musiikkiliike", "fr": "Magasin de musique", "gl": "Tenda de música", "he": "חנות מוזיקה", "hr": "Prodavaonica glazbene opreme", "hu": "Hanglemezbolt", "is": "Tónlistarbúð", "it": "Negozio di musica", "ja": "CD/レコード店", "ko": "음반 가게", "lt": "Muzikos parduotuvė", "lv": "Mūzikas veikals", "mk": "Продавница за музика", "nl": "Muziekwinkel", "no": "Musikkforretning", "pl": "Sklep muzyczny", "pt-BR": "Loja de Discos Musicais", "pt": "Loja de música", "ro": "Magazin de Muzică", "ru": "Музыкальный магазин", "sk": "Obchod s hudbou", "sl": "Trgovina z glasbo", "sr": "Продавница музике", "sv": "Musikaffär", "th": "ร้านเครื่องดนตรี", "tr": "Müzik Mağazası", "uk": "Музичний магазин", "vi": "Tiệm Âm nhạc", "yue": "唱片舖", "zh-CN": "音乐店", "zh-HK": "唱片店", "zh-TW": "音樂店" } }, "shop/musical_instrument": { "title": { "C": "Musical Instrument Store", "id": "Toko Alat Musik", "ms": "Kedai Alatan Muzik", "ar": "متجر آلات موسيقية", "ast": "Instrumentos musicales", "br": "Stal binvioù sonerezh", "ca": "Botiga d'instruments musicals", "cs": "Obchod s hudebními nástroji", "cy": "Siop Offerynnau Cerdd", "da": "Musikinstrumentbutik", "de": "Musikinstrumentegeschäft", "el": "Κατάστημα μουσικών οργάνων", "en-GB": "Musical Instrument Shop", "en": "Musical Instrument Store", "eo": "Muzikinstrumenta vendejo", "es": "Tienda de instrumentos musicales", "et": "Muusikainstrumentide kauplus", "fa": "فروشگاه سازهای موسیقی", "fi": "Instrumenttimyymälä", "fr": "Magasin d'instruments de musique", "gl": "Tenda de instrumentos musicais", "he": "חנות כלי נגינה", "hr": "Trgovina glazbenih instrumenata", "hu": "Hangszerbolt", "is": "Hljóðfæraverslun", "it": "Negozio di strumenti musicali", "ja": "楽器店", "ko": "악기 가게", "lt": "Muzikos instrumentų parduotuvė", "lv": "Mūzikas instrumentu veikals", "mk": "Продавница за музички инструменти", "nl": "Muziekinstrumentenwinkel", "no": "Musikkinstrumentbutikk", "pl": "Sklep z instrumentami muzycznymi", "pt-BR": "Loja de Instrumentos Musicais", "pt": "Loja de instrumentos musicais", "ro": "Magazin de Instrumente Muzicale", "ru": "Магазин музыкальных инструментов", "sk": "Obchod s hudobnými nástrojmi", "sl": "Trgovina z glasbenimi inštrumenti", "sr": "Продавница музичких инструмената", "sv": "Musikinstrument", "th": "ร้านเครื่องดนตรี", "tr": "Müzik Aletleri Mağazası", "uk": "Магазин музичних інструментів", "vi": "Tiệm Nhạc cụ", "zh-CN": "乐器店", "zh-HK": "樂器店", "zh-TW": "音樂樂器行" } }, "shop/outdoor": { "title": { "C": "Outdoors Store", "id": "Toko Perlengkapan Outdoor", "ar": "متجر معدات الرحلات والتسلق والتخييم", "ast": "Equipamientu d'aire llibre", "ca": "Botiga per a activitats a l'aire lliure", "cs": "Outdoorové zboží", "cy": "Siop Gynnyrch Awyr Agored", "da": "Friluftsudstyrsbutik", "de": "Outdoorgeschäft", "el": "Κατάστημα με Είδη Εξοπλισμού Υπαίθρου", "en-GB": "Outdoors Shop", "en": "Outdoors Store", "eo": "Vojaĝila vendejo", "es": "Tienda de actividades al aire libre", "et": "Matkatarvete kauplus", "fa": "فروشگاه لوازم کوهنوردی و کمپینگ", "fi": "Ulkoilmamyymälä", "fr": "Magasin de matériel de sports de plein air", "gl": "Tenda de actividades ó ar libre", "he": "חנות רהיטי גינה", "hr": "Trgovina sa opremom za kampiranje", "hu": "Túrafelszerelés-bolt", "is": "Útivistarbúð", "it": "Negozio per sport all'aria aperta", "ja": "アウトドアショップ", "ko": "아웃도어 가게", "lt": "Laisvalaikio parduotuvė", "mk": "Продавница за рекреативна опрема", "nl": "Buitensportwinkel", "no": "Villmarksbutikk", "pl": "Sklep turystyczny", "pt-BR": "Loja de Esportes de Aventura", "pt": "Loja de artigos para atividades ao ar livre", "ro": "Magazin în Aer Liber", "ru": "Магазин снаряжения для активного отдыха", "sk": "Outdoorový obchod", "sl": "Trgovina za dejavosti na prostem", "sr": "Продавница планинарске опреме", "sv": "Friluftsaffär", "th": "ร้านค้ากลางแจ้ง", "tr": "Kamp Malzemeleri Mağazası", "uk": "Активний відпочинок", "vi": "Tiệm Thể thao Ngoài trời", "zh-CN": "户外用品店", "zh-HK": "戶外用品店", "zh-TW": "戶外用品店" } }, "shop/pasta": { "title": { "C": "Pasta Store", "ms": "Kedai Pasta", "br": "Stal doazennoù", "cs": "Obchod s těstovinami", "cy": "Siop Basta", "de": "Nudelgeschäft", "el": "Κατάστημα Ζυμαρικών", "en-GB": "Pasta Shop", "en": "Pasta Store", "es": "Fábrica de pastas", "et": "Pastapood", "fr": "Magasin de pâtes", "he": "חנות פסטה", "it": "Negozio di pasta", "ja": "パスタショップ", "mk": "Продавница за тестенини", "pl": "Sklep z makaronami", "pt": "Loja de massas", "ru": "Магазин макаронных изделий", "sk": "Obchod s cestovinami", "sv": "Pastabutik", "uk": "Магазин макаронних виробів", "zh-TW": "義大利麵商店" } }, "shop/pet_grooming": { "title": { "C": "Pet Groomer", "ca": "Perruqueria d'animals", "cs": "Zvířecí kadeřník", "da": "Dyrefrisør", "de": "Tierfriseur", "en-GB": "Pet Groomer", "en": "Pet Groomer", "es": "Peluquería de mascotas", "fr": "Salon de toilettage", "he": "מספרת חיות", "hu": "Kisállatfodrász", "it": "Tolettatura per animali", "ja": "ペット美容室", "mk": "Фризер за домашни миленици", "pl": "Salon fryzjerski dla zwierząt", "pt-BR": "Banho e tosa", "pt": "Salão de banhos e tosquias", "ru": "Парикмахерская для животных", "sk": "Zvierací salón", "sv": "Pälsvård för husdjur", "tr": "Pet Groomer", "uk": "Стрижка домашніх тварин", "zh-TW": "寵物美容師" } }, "shop/rice": { "title": { "C": "Rice Store", "br": "Stal-riz", "cs": "Obchod s rýží", "cy": "Siop Reis", "de": "Reisgeschäft", "el": "Κατάστημα Ρυζιού", "en-GB": "Rice Shop", "en": "Rice Store", "es": "Tienda de arroz", "et": "Riisipood", "fr": "Magasin de riz", "he": "חנות אורז", "it": "Negozio di riso", "ja": "米穀店", "mk": "Продавница за ориз", "pl": "Sklep z ryżem", "pt": "Loja de arroz", "ru": "Магазин риса", "sr": "Продавница пиринча", "sv": "Risaffär", "uk": "Магазин рису", "zh-TW": "米店" } }, "shop/sports": { "title": { "C": "Sporting Goods Store", "bn": "খেলার সামগ্রির দোকান", "bs": "Prodavnica sportske opreme", "id": "Toko Olahraga", "zh": "体育用品店", "af": "Sportwinkel", "ar": "متجر بيع أدوات رياضية", "ast": "Material deportivu", "bg": "Спортен магазин", "br": "Stal danvez sport", "ca": "Botiga d'esports", "cs": "Sportovní potřeby", "cy": "Siop Offer Chwaraeon", "da": "Sportsudstyrsbutik", "de": "Sportgeschäft", "el": "Κατάστημα Αθλητικών Ειδών", "en-GB": "Sporting Goods Shop", "en": "Sporting Goods Store", "eo": "Sporta vendejo", "es": "Tienda de artículos deportivos", "et": "Sporditarvete pood", "fa": "فروشگاه لوازم ورزشی", "fi": "Urheiluliike", "fr": "Magasin d'équipement sportif", "gl": "Tenda de deportes", "he": "חנות לאביזרי ספורט", "hr": "Prodavaonica sportske opreme", "hu": "Sportbolt", "is": "Íþróttaverslun", "it": "Negozio di articoli sportivi", "ja": "スポーツ用品店", "ko": "스포츠 용품 가게", "lt": "Sporto reikmenų parduotuvė", "lv": "Sporta veikals", "mk": "Продавница за спортска опрема", "nl": "Sportzaak", "no": "Sportsbutikk", "pa-PK": "کھیڈاں", "pl": "Sklep sportowy", "pt-BR": "Loja de equipamentos esportivos", "pt": "Loja de artigos desportivos", "ro": "Magazin de Haine de Sport", "ru": "Спорттовары", "sk": "Obchod so športovými potrebami", "sl": "Športna trgovina", "sr": "Продавница спортске опреме", "sv": "Sportaffär", "th": "ร้านอุปกรณ์กีฬา", "tr": "Spor Ürünleri Mağazası", "uk": "Спорттовари", "vi": "Tiệm Dụng cụ Thể thao", "yue": "運動舖", "zh-CN": "体育用品店", "zh-HK": "運動用品店", "zh-TW": "運動用品店" } }, "shop/toys": { "title": { "C": "Toy Store", "bn": "খেলনার দোকান", "te": "బొమ్మల కొట్టు", "bs": "Prodavnica igračaka", "id": "Toko Mainan", "ms": "Kedai Permainan", "zh": "玩具店", "af": "Speelgoedwinkel", "ar": "متجر ألعاب", "ast": "Xuguetería", "bg": "Магазин за играчки", "br": "Stal c'hoarielloù", "ca": "Botiga de joguines", "cs": "Hračkářství", "cy": "Siop Degannau", "da": "Legetøjsbutik", "de": "Spielwarengeschäft", "el": "Κατάστημα Παιχνιδιών", "en-GB": "Toy Shop", "en": "Toy Store", "eo": "Ludila vendejo", "es": "Juguetería", "et": "Mänguasjapood", "fa": "اسباب بازی فروشی", "fi": "Lelukauppa", "fr": "Magasin de jouets", "gl": "Tenda de xoguetes", "he": "חנות צעצועים", "hr": "Prodavaonica igračaka", "hu": "Játékbolt", "is": "Dótabúð", "it": "Negozio di giocattoli", "ja": "玩具店", "ko": "완구점", "lt": "Žaislų parduotuvė", "lv": "Rotaļlietu veikals", "mk": "Продавница за играчки", "nl": "Speelgoedwinkel", "no": "Lekebutikk", "pl": "Sklep z zabawkami", "pt-BR": "Loja de brinquedos", "pt": "Loja de brinquedos", "ro": "Magazin de Jucării", "ru": "Игрушки", "sk": "Hračkárstvo", "sl": "Trgovina igrač", "sr": "Продавница играчака", "sv": "Leksaksaffär", "ta": "விளையாட்டுப் பொருட் கடை", "th": "ร้านของเล่น", "tr": "Oyuncak Mağazası", "uk": "Іграшки", "vi": "Tiệm Đồ chơi", "yue": "玩具舖", "zh-CN": "玩具店", "zh-HK": "玩具店", "zh-TW": "玩具店" } }, "shop/video": { "title": { "C": "Video Store", "am": "ቪዲዮ", "bs": "Video klub", "id": "Toko Video", "zh": "影像店", "af": "Videowinkel", "ar": "محل بيع وتأجير الأفلام", "ast": "Tienda de videos", "bg": "Видеотека", "br": "Klub-video", "ca": "Botiga de vídeos", "cs": "Video obchod", "cy": "Siop Fideos", "da": "Videobutik", "de": "Videothek", "el": "Βιντεοκλάμπ", "en-GB": "Video/DVD Shop", "en": "Video Store", "eo": "Filma vendejo/pruntejo", "es": "Videoclub", "et": "Videopood", "fa": "فیلم فروشی", "fi": "Videovuokraamo", "fr": "Vidéo-club", "gl": "Videoclube", "he": "חנות סרטים", "hr": "Videoteka", "hu": "Videófilmbolt vagy -kölcsönző", "is": "Myndbandaverslun", "it": "Videoteca", "ja": "ビデオ店", "ko": "비디오 가게", "lt": "Vaizdo prekių parduotuvė", "lv": "Video veikals", "mk": "Видеотека", "nl": "Videotheek", "no": "Videoforhandler", "pl": "Sklep/wypożyczalnia z filmami", "pt-BR": "Loja/Locadora de Vídeos", "pt": "Videoclube", "ro": "Magazin Video", "ru": "Видеомагазин", "sk": "Videopožičovňa", "sl": "Videoteka", "sr": "Видео-клуб", "sv": "Videobutik", "th": "ร้านวิดีโอ", "tr": "Film - Video Mağazası", "uk": "Відео", "vi": "Tiệm Phim", "yue": "影視店", "zh-CN": "影像店", "zh-HK": "影視店", "zh-TW": "錄影帶店" } }, "shop/video_games": { "title": { "C": "Video Game Store", "id": "Toko Permainan Video", "ar": "متجر العاب الفيديو", "ast": "Tienda de videuxuegos", "br": "Stal c'hoarioù-video", "ca": "Botiga de videojocs", "cs": "Obchod s videohrami", "cy": "Siop Gemau Fideo", "da": "Videospilbutik", "de": "Videospielgeschäft", "el": "Μαγαζί Βιντεοπαιχνιδιών", "en-GB": "Video Games Shop", "en": "Video Game Store", "eo": "Videoluda vendejo", "es": "Tienda de videojuegos", "et": "Konsoolimängude pood", "fa": "فروشگاه بازی ویدئویی", "fi": "Videopeliliike", "fr": "Magasin de location et vente de jeux vidéo", "gl": "Tenda de videoxogos", "he": "חנות למשחקי מחשב", "hr": "Prodavaonica video igara", "hu": "Videojátékbolt", "is": "Tölvuleikjaverslun", "it": "Negozio di videogiochi", "ja": "テレビゲーム販売店", "ko": "비디오 게임 가게", "lt": "Video Žaidimų parduotuvė", "lv": "Videospēļu veikals", "mk": "Продавница за видеоигри", "nl": "Computerspelwinkel", "no": "Dataspillbutikk", "pl": "Sklep z grami wideo", "pt-BR": "Loja de Vídeogames", "pt": "Loja de videojogos", "ro": "Magazin de Jocuri de Calculator", "ru": "Магазин видеоигр", "sk": "Obchod s videohrami", "sl": "Trgovina z video igrami", "sr": "Продавница видео-игара", "sv": "TV-spel", "th": "ร้านวิดีโอเกมส์", "tr": "Bilgisayar Oyun Mağazası", "uk": "Комп’ютерні ігри", "vi": "Tiệm Trò chơi Điện tử", "zh-CN": "电子游戏店", "zh-HK": "電子遊戲店", "zh-TW": "電子遊戲店" } }, "shop/alcohol": { "title": { "C": "Liquor Store", "bs": "Prodavnica alkoholnih pića", "id": "Toko Minuman", "kn": "ಸಾರಾಯಿ ಅಂಗಡಿ", "zh": "酒品店", "af": "Drankwinkel", "ar": "متجر خمور", "ast": "Llicorería", "bg": "Магазин за алкохол", "br": "Stal alkool", "ca": "Botiga de licors", "cs": "Prodejna alkoholu", "cy": "Siop Ddiodydd Alcoholig", "da": "Spiritusforretning", "de": "Spirituosenladen", "el": "Κάβα Ποτών", "en-GB": "Off licence (Alcohol shop)", "en": "Liquor Store", "eo": "Alkohola vendejo", "es": "Licorería", "et": "Alkoholipood", "fa": "مغازه مشروبات الکلی", "fi": "Alkoholimyymälä", "fr": "Magasin de vente d'alcool", "gl": "Licoraría", "he": "חנות משקאות חריפים", "hr": "Prodavaonica alkoholnih pića", "hu": "Alkoholüzlet", "is": "Vínbúð", "it": "Negozio di liquori", "ja": "酒店", "ko": "주류상", "lt": "Alkoholinių gėrimų parduotuvė", "lv": "Alkoholisko dzērienu veikals", "mk": "Продавница за алкохолни пијалаци", "nl": "Slijterij", "no": "Vinutsalg", "pl": "Sklep monopolowy", "pt-BR": "Loja de alcoólicos licenciada", "pt": "Loja de bebidas alcoólicas", "ro": "Magazin de Băuturi Alcoolice", "ru": "Алкогольный магазин", "sk": "Obchod s alkoholom", "sl": "Trgovina z alkoholnimi pijačami", "sr": "Продавница алкохолних пића", "sv": "Vin-och-spritaffär", "ta": "மதுபானக் கடை", "th": "ร้านขายเหล้า", "tr": "İçki Dükkanı", "uk": "Алкогольні напої", "vi": "Tiệm Rượu", "yue": "酒莊", "zh-CN": "酒水店", "zh-HK": "酒類專賣店", "zh-TW": "酒類專賣店" } }, "shop/bakery": { "title": { "C": "Bakery", "bn": "বেকারি", "sq": "Furrë buke", "bs": "Pekara", "id": "Toko Roti", "kn": "ಅಟ್ಟಂಗಡಿ", "zh": "面包店", "af": "Bakkery", "ar": "مخبز", "ast": "Panadería", "bg": "Пекарна", "br": "Bouloñjerezh", "ca": "Fleca", "cs": "Pekařství", "cy": "Popty", "da": "Bager", "de": "Bäckerei", "el": "Αρτοποιείο", "en-GB": "Bakery", "en": "Bakery", "eo": "Panejo", "es": "Panadería", "et": "Pagariäri", "eu": "Okindegia", "fa": "نانوایی", "fi": "Leipomo", "fr": "Boulangerie", "gl": "Panadaría", "he": "מאפייה", "hr": "Pekara", "hu": "Pékség", "is": "Bakarí", "it": "Panificio", "ja": "パン屋", "ko": "제과점", "lt": "Kepykla", "lv": "Konditoreja", "mk": "Пекарница", "nl": "Bakkerij", "no": "Bakeri", "pl": "Piekarnia", "pt-BR": "Padaria", "pt": "Padaria", "ro": "Brutărie", "ru": "Булочная", "sk": "Pekáreň", "sl": "Pekarna", "sr": "Пекара", "sv": "Bageri", "ta": "அடுமனை", "th": "ร้านขายขนมปัง", "tr": "Fırın", "uk": "Булочна", "vi": "Tiệm Bánh", "yue": "麪飽舖同餅家", "zh-CN": "烘焙店", "zh-HK": "麵包西餅店", "zh-TW": "麵包店" } }, "shop/books": { "title": { "C": "Bookstore", "id": "Toko Buku", "af": "Boekwinkel", "ar": "بائع كتب", "br": "Levrdi", "ca": "Llibreria", "cs": "Knihkupectví", "cy": "Siop Lyfrau", "da": "Boghandel", "de": "Buchhandlung", "el": "Βιβλιοπωλείο", "en-GB": "Bookshop", "en": "Bookstore", "es": "Librería", "et": "Raamatupood", "fi": "Kirjakauppa", "fr": "Librairie", "ga": "Siopa Leabhair", "gl": "Libraría", "he": "חנות ספרים", "hu": "Könyvesbolt", "it": "Libreria", "ja": "本屋", "ko": "서점", "mk": "Книжарница", "nl": "Boekenwinkel", "pa-PK": "کتابگار", "pl": "Księgarnia", "pt-BR": "Livraria", "pt": "Livraria", "ru": "Книжный магазин", "sk": "Kníhkupectvo", "sr": "Књижара", "sv": "Bokhandel", "th": "ร้านหนังสือ", "tr": "Kitapçı", "uk": "Книгарня", "vi": "Hiệu Sách", "zh-CN": "书店", "zh-TW": "書店" } }, "shop/butcher": { "title": { "C": "Butcher", "am": "ሥጋ ቤት", "bn": "কসাই", "bs": "Mesar", "id": "Penjagalan", "zh": "肉贩", "af": "Slagter", "ar": "جزار", "ast": "Carnicería", "bg": "Колбаси", "br": "Kigerezh", "ca": "Carnisseria", "cs": "Řeznictví", "cy": "Cigydd", "da": "Slagter", "de": "Metzgerei", "el": "Κρεοπωλείο", "en-GB": "Butcher", "en": "Butcher", "eo": "Vianda vendejo", "es": "Carnicería", "et": "Lihapood", "fa": "قصابی", "fi": "Lihakauppa", "fr": "Boucherie", "ga": "Búistéir", "gl": "Carnizaría", "he": "קצב", "hr": "Mesnica", "hu": "Hentes", "is": "Slátrari", "it": "Macellaio", "ja": "精肉店", "ko": "정육점", "lt": "Mėsinė", "lv": "Miesnieks", "mk": "Месарница", "nl": "Slagerij", "no": "Slakter", "pl": "Sklep mięsny", "pt-BR": "Açougue", "pt": "Talho", "ro": "Măcelărie", "ru": "Мясной", "sk": "Mäsiarstvo", "sl": "Mesar", "sr": "Месара", "sv": "Slaktare", "ta": "இறைச்சிக் கடை", "th": "คนขายเนื้อ", "tr": "Kasap", "uk": "М’ясна лавка", "vi": "Hàng Thịt", "yue": "肉舖", "zh-CN": "肉店", "zh-HK": "肉舖", "zh-TW": "肉販" } }, "shop/cheese": { "title": { "C": "Cheese Store", "id": "Toko Keju", "ms": "Kedai Keju", "af": "Kaaswinkel", "ar": "متجر أجبان", "ast": "Quesería", "br": "Fourmajerezh", "ca": "Botiga de formatge", "cs": "Prodejna sýrů", "cy": "Siop Gaws", "da": "Ostehandler", "de": "Käseladen", "el": "Τυροπωλείο", "en-AU": "Cheese Shop", "en-GB": "Cheese Shop", "en": "Cheese Store", "eo": "Fromaĝa vendejo", "es": "Tienda de quesos", "et": "Juustupood", "fa": "پنیر فروشی", "fi": "Juustopuoti", "fr": "Fromagerie", "gl": "Queixaría", "he": "חנות גבינות", "hr": "Prodavaonica sira", "hu": "Sajtbolt", "is": "Ostabúð", "it": "Negozio di formaggi", "ja": "チーズ店", "ko": "치즈 가게", "lt": "Sūrių parduotuvė", "lv": "Siera veikals", "mk": "Сирењарница", "nl": "Kaaswinkel", "no": "Ostebutikk", "pl": "Sklep z serami", "pt-BR": "Loja de Queijos", "pt": "Loja de queijos", "ro": "Magazin de Brânzeturi", "ru": "Магазин сыров", "sk": "Obchod so syrmi", "sl": "Trgovina s siri", "sr": "Продавница сирева", "sv": "Ostaffär", "th": "ร้านชีส", "tr": "Peynirci", "uk": "Магазин сиру", "vi": "Tiệm Pho mát", "zh-CN": "奶酪店", "zh-HK": "芝士店", "zh-TW": "起士店" } }, "shop/chemist": { "title": { "C": "Drugstore", "id": "Toko Obat", "af": "Apteek", "ar": "متجر أدوات النظافة الشخصية والتجميل", "ast": "Droguería", "bg": "Дрогерия", "br": "Lezapotikerezh", "ca": "Drogueria", "cs": "Drogerie", "cy": "Cemegydd", "da": "Materialist", "de": "Drogerie", "el": "Χημικά Είδη Καθαριότητας", "en-AU": "Pharmacy", "en-GB": "Chemist", "en-NZ": "Chemist", "en": "Drugstore", "eo": "Kosmetikaĵa (ankaŭ purigaĵoj) vendejo", "es": "Tienda de artículos de limpieza y cosméticos", "et": "Kodukeemia kauplus", "fa": "لوازم آرایشی بهداشتی", "fi": "Apteekki-luontaistuotemyymälä", "fr": "Parapharmacie", "ga": "Cógaslann", "gl": "Drogaría", "he": "בית מרקחת", "hr": "Drogerija", "hu": "Drogéria", "is": "Hreinlætisvöruverslun", "it": "Drogheria", "ja": "ドラッグストア・化粧品・薬品店(薬剤師がいない店)", "ko": "드러그스토어", "lt": "Vaistinė", "lv": "Aptieka", "mk": "Аптека", "nl": "Drogisterij", "no": "Apotek", "pl": "Drogeria", "pt-BR": "Loja de Cosméticos e Higiene", "pt": "Drogaria", "ro": "Drogărie", "ru": "Бытовая химия", "sk": "Drogéria", "sl": "Lekarna", "sr": "Апотека", "sv": "Kemiaffär (hygien, kosmetika & städ)", "ta": "மருந்தகம்", "th": "ร้านขายยา", "tr": "İlaç Dükkanı", "uk": "Краса та догляд", "vi": "Tiệm Dược phẩm", "zh-CN": "药妆店", "zh-HK": "藥店", "zh-TW": "藥妝店" } }, "shop/confectionery": { "title": { "C": "Candy Store", "id": "Toko Permen", "af": "Lekkergoedwinkel", "ar": "متجر حلويات", "ast": "Venta de llambionaes", "br": "Stal-vadigoù", "ca": "Botiga de llaminadures", "cs": "Cukrovinky", "cy": "Siop Losin", "da": "Slikbutik", "de": "Süßwarenladen", "el": "Ζαχαροπλαστείο", "en-GB": "Sweet Shop", "en": "Candy Store", "eo": "Sukeraĵa vendejo", "es": "Tienda de dulces", "et": "Kommipood", "eu": "Gozodenda", "fa": "فروشگاه آب‌نبات", "fi": "Karkkipuoti", "fr": "Confiserie", "gl": "Tenda de larpeiradas", "he": "חנות ממתקים", "hr": "Prodavaonica slatkiša", "hu": "Édességbolt", "is": "Nammibúð", "it": "Negozio di dolciumi", "ja": "菓子屋(販売)", "ko": "사탕 가게", "lt": "Saldainių parduotuvė", "lv": "Saldumu veikals", "mk": "Бонбониера", "nl": "Snoepwinkel", "no": "Godtebutikk", "pa-PK": "مٹائی والی", "pl": "Sklep ze słodyczami", "pt-BR": "Doceria", "pt": "Doçaria", "ro": "Magazin de Dulciuri", "ru": "Кондитерская", "sk": "Obchod so sladkosťami", "sl": "Trgovina s slaščicami", "sr": "Бомбонџиница", "sv": "Godisaffär", "th": "ร้านขนมหวาน", "tr": "Şeker Mağazası", "uk": "Цукерки", "vi": "Tiệm Kẹo", "zh-CN": "糖果店", "zh-HK": "糖果店", "zh-TW": "糖果店" } }, "shop/convenience": { "title": { "C": "Convenience Store", "bs": "Bakalnica", "id": "Toko Kelontong", "ms": "Kedai Kecil", "zh": "便利店", "af": "Geriefswinkel", "ar": "بقالة - متجر صغير", "ast": "Tienda d'ultramarinos", "bg": "Магазин за хранителни стоки", "br": "Ispiserezh / gourstalig", "ca": "Botiga d'ultramarins", "cs": "Obchod se smíšeným zbožím", "da": "Minimarked", "de": "Minimarkt", "el": "Παντοπωλείο", "en-GB": "Convenience Store", "en-NZ": "Convenience Store / Dairy", "en": "Convenience Store", "eo": "Butiko oportuna", "es": "Tienda multiservicio", "et": "Toidupood", "fa": "سوپرمارکت / فروشگاه کوچک", "fi": "Lähikauppa", "fr": "Épicerie / Supérette", "gl": "Tenda de ultramarinos", "he": "חנות נוחות", "hr": "Trgovina mješovitom robom", "hu": "Kis élelmiszerbolt", "is": "Kjörbúð", "it": "Minimarket", "ja": "コンビニエンスストア", "ko": "편의점", "lt": "Savitarnos parduotuvė", "lv": "Veikals", "mk": "Бакалница", "nl": "Gemakswinkel", "no": "Nærbutikk", "pl": "Sklep ogólnospożywczy", "pt-BR": "Loja de Conveniência", "pt": "Minimercado / loja de conveniência", "ro": "Magazin Universal", "ru": "Магазин у дома", "sk": "Potraviny", "sl": "Minimarket", "sr": "Мини маркет", "sv": "Närbutik", "th": "ร้านสะดวกซื้อ", "tr": "Market", "uk": "Міні-маркет", "vi": "Tiệm Tiện lợi", "yue": "便利店", "zh-CN": "便利店", "zh-HK": "便利店", "zh-TW": "便利商店" } }, "shop/deli": { "title": { "C": "Delicatessen", "ar": "محل أطعمة لذيذة", "br": "Ispiserezh fin", "ca": "Delicadeses", "cs": "Lahůdkářství", "da": "Delikatesse", "de": "Feinkostladen", "el": "Εκλεκτά τρόφιμα", "en": "Delicatessen", "es": "Delicatessen", "et": "Kulinaariapood", "fa": "اغذیه فروشی", "fr": "Épicerie fine", "ga": "Deilí", "he": "מעדניה", "hu": "Csemegebolt", "it": "Negozio di specialità gastronomiche", "ja": "高級食材店", "mk": "Гастрономска продавница", "nl": "Delicatessen", "pl": "Ekskluzywne delikatesy", "pt-BR": "Delicatessen", "pt": "Loja gourmet", "ru": "Деликатесы", "sk": "Sladkosti", "sr": "Деликатеси", "sv": "Delikatessaffär", "th": "อาหารสำเร็จรูป", "tr": "Şarküteri", "uk": "Делікатеси/Вишукана їжа", "vi": "Tiệm Thực phẩm Cao cấp", "zh-TW": "熟食店" } }, "shop/department_store": { "title": { "C": "Department Store", "am": "የተደራጀ ግዙፍ ማከፋፈያ", "bn": "ডিপার্টমেন্ট স্টোর", "bs": "Robna kuća", "id": "Pasar Swalayan", "kn": "ಕಿರಾಣಿ ಅಂಗಡಿ", "zh": "百货店", "af": "Afdelingswinkel", "ar": "محل متعدد الأقسام", "ast": "Grandes almacenes", "bg": "Универсален магазин", "br": "Stal vras", "ca": "Grans magatzems", "cs": "Obchodní dům", "cy": "Siop Adran", "da": "Stormagasin", "de": "Kaufhaus", "el": "Πολυκατάστημα", "en-GB": "Department Store", "en": "Department Store", "eo": "Ĉiovendejo", "es": "Grandes almacenes / Tienda departamental", "et": "Kaubamaja", "fa": "فروشگاه چندمنظوره", "fi": "Tavaratalo", "fr": "Grand magasin", "gl": "Grandes almacéns", "he": "חנות כלבו", "hr": "Robna kuća", "hu": "Nagyáruház", "is": "Stórverslun", "it": "Grande magazzino", "ja": "百貨店", "ko": "백화점", "lt": "Universalinė parduotuvė", "lv": "Lielveikals", "mk": "Стоковна куќа", "nl": "Warenhuis", "no": "Supermarked", "pl": "Dom towarowy", "pt-BR": "Loja de departamentos", "pt": "Grande armazém", "ro": "Magazin Universal", "ru": "Универсальный магазин (с отделами)", "sk": "Obchodný dom", "sl": "Veleblagovnica", "sr": "Робна кућа", "sv": "Varuhus", "th": "ห้างสรรพสินค้า", "tr": "Mağaza", "uk": "Універмаг", "vi": "Tiệm Bách hóa", "yue": "百貨公司", "zh-CN": "百货商场", "zh-HK": "百貨公司", "zh-TW": "百貨公司" } }, "shop/farm": { "title": { "C": "Produce Stand", "bs": "Štand proizvodnje", "id": "Kios Tanaman", "af": "Wegstal", "ar": "متجر مزرعة ليبيع منتجاتها", "bg": "Щанд за плодове и зеленчуци", "br": "Stand frouezh ha legumaj", "cs": "Stánek s ovocem, zeleninou", "cy": "Stondin Gynnyrch", "da": "Gårdbutik", "de": "Hofladen", "el": "Πάγκος Παραγωγής", "en-GB": "Farm Shop", "en": "Produce Stand", "eo": "Terfrukta vendotablo", "es": "Tienda de productos agrícolas", "et": "Talukaup", "fa": "غرفه میوه و سبزی باغ", "fi": "Maatilan suoramyynti", "fr": "Magasin de producteurs", "gl": "Tenda de produtos agrícolas", "he": "דוכן ירקות", "hr": "Prodavaonica proizvoda farme", "hu": "Termelői bolt", "is": "Vörubás", "it": "Bancarella agricola", "ja": "農産物直売所", "ko": "산지 직매", "lt": "Produktų stendas", "mk": "Пилјарска тезга", "nl": "Boerderijwinkel voor groente en fruit", "no": "Gårdsutsalg", "pl": "Stragan z owocami i warzywami", "pt-BR": "Quitanda de Produção Local", "pt": "Loja de produtos agrícolas locais", "ru": "Магазин свежих продуктов", "sk": "Farmárske potraviny", "sl": "Prodaja domačih pridelkov", "sr": "Производни штанд", "sv": "Gårdsbutik", "th": "แผงลอยสำหรับวางสินค้า", "tr": "Manav", "uk": "Стелаж з фермерськими товарами", "vi": "Quầy Nông sản", "yue": "檔", "zh-CN": "农产直销店", "zh-HK": "農產品檔攤", "zh-TW": "產地直銷店" } }, "shop/frozen_food": { "title": { "C": "Frozen Food Store", "ar": "متجر أغذية مجمدة", "br": "Stal boued skornet", "ca": "Botiga de menjars congelats", "cs": "Prodejna mražených potravin", "cy": "Siop Fwyd Rhewgell", "de": "Geschäft für Tiefkühlprodukte", "el": "Κατάστημα Κατεψυγμένων Τροφίμων", "en-GB": "Frozen Food Shop", "en": "Frozen Food Store", "eo": "Frostigit-manĝaĵa vendejo", "es": "Tienda de alimentos congelados", "et": "Sügavkülmutatud toidu pood", "fa": "فروشگاه غذای منجمد", "fr": "Magasin de produits surgelés", "gl": "Tenda de conxelados", "he": "חנות מזון קפוא", "hu": "Fagyasztottélelmiszer-bolt", "it": "Negozio di cibo surgelato", "ja": "冷凍食品店", "ko": "냉동식품 가게", "mk": "Продавница за замрзната храна", "nl": "Winkel voor bevroren voedsel", "pl": "Sklep z mrożonkami", "pt-BR": "Loja de alimentos congelados", "pt": "Loja de comida congelada", "ru": "Магазин замороженных продуктов", "sk": "Obchod s mrazenými potravinami", "sr": "Продавница смрзнуте хране", "sv": "Affär för fryst mat", "th": "ร้านอาหารแช่แข็ง", "tr": "Donmuş Yiyecek Mağazası", "uk": "Заморожені продукти", "vi": "Tiệm Thực phẩm Đông lạnh", "zh-CN": "冷冻食品店", "zh-HK": "急凍食品店", "zh-TW": "冷凍食品商店" } }, "shop/greengrocer": { "title": { "C": "Greengrocer", "am": "አትክልት መሸጫ ሱቆች", "bs": "Zelenara", "id": "Toko Buah dan Sayuran", "ms": "Kedai Menjual Sayur", "zh": "果蔬店", "af": "Groentewinkel", "ar": "متجر خضروات", "ast": "Frutería", "bg": "Плод-зеленчук", "br": "Marc'hadour frouezh ha legumaj", "ca": "Fruiteria", "cs": "Ovoce a zelenina", "cy": "Gwerthwr Llysiau", "da": "Grønthandler", "de": "Obst- und Gemüseladen", "el": "Οπωροπωλείο", "en-GB": "Greengrocer", "en": "Greengrocer", "eo": "Legom-butiko", "es": "Verdulería / Frutería", "et": "Aedviljapood", "eu": "Fruta eta barazki-saltzailea", "fa": "سبزی و میوه فروشی", "fi": "Kasviskauppa", "fr": "Marchand de fruits et légumes", "ga": "Siopa Glasraí", "gl": "Froitaría", "he": "ירקן", "hr": "Voćarna", "hu": "Zöldséges", "is": "Grænmetissali", "it": "Fruttivendolo", "ja": "青果店", "ko": "청과상", "lt": "Daržovių ir vaisių pardavėjas", "mk": "Пилјарница", "nl": "Groenteboer", "no": "Grønnsakshandler", "pl": "Warzywniak", "pt-BR": "Verdureira ou quitanda", "pt": "Loja de frutas e verduras", "ru": "Магазин овощей и фруктов", "sk": "Predajňa ovocia alebo zeleniny", "sl": "Sadje in zelenjava", "sr": "Пиљар", "sv": "Grönsakshandlare", "th": "คนขายผักและผลไม้", "tr": "Manav", "uk": "Овочевий", "vi": "Tiệm Rau quả", "yue": "菜檔", "zh-CN": "果蔬店", "zh-HK": "菜檔", "zh-TW": "蔬果店" } }, "shop/health_food": { "title": { "C": "Health Food Store", "ar": "متجر أغذية صحية", "cs": "Obchod zdravé výživy", "da": "Helsekostbutik", "de": "Reformhaus", "el": "Κατάστημα Υγιεινών Τροφίμων", "en-GB": "Health Food Shop", "en": "Health Food Store", "es": "Tienda de alimentos saludables", "et": "Tervisliku toidu kauplus", "fr": "Magasin d'alimentation diététique/bio", "he": "חנות מזון בריאות", "hu": "Biobolt", "it": "Negozio di cibi sani", "ja": "健康食品店", "ko": "건강식품 판매점", "mk": "Продавница за здрава храна", "nl": "Natuurvoedingswinkel", "pl": "Sklep ze zdrową żywnością", "pt-BR": "Loja de comida saudável", "pt": "Loja de comida saudável", "ru": "Магазин здорового питания", "sk": "Obchod so zdravou výživou", "sv": "Hälsokostbutik", "th": "ร้านอาหารเพื่อสุขภาพ", "tr": "Health Food Store", "uk": "Магазин здорового харчування", "vi": "Tiệm Thực phẩm Thiên nhiên", "zh-TW": "健康食品店" } }, "shop/herbalist": { "title": { "C": "Herbalist", "ar": "محل بيع الأعشاب الطبية / عطار", "ast": "Herbolariu", "ca": "Herbolari", "cs": "Bylinkářství", "cy": "Herbwr", "da": "Helseforretning", "de": "Kräuterladen", "el": "Βοτανολόγος", "en-GB": "Herbalist", "en": "Herbalist", "eo": "Herba vendejo", "es": "Herbolario", "et": "Ravimtaimekauplus", "fa": "عطاری", "fi": "Luontaistuotemyymälä", "fr": "Herboristerie", "gl": "Herboristaría", "he": "חנות צמחי מרפא", "hu": "Gyógynövénybolt", "is": "Grasalæknir", "it": "Erboristeria", "ja": "薬草店", "ko": "약초 가게", "lt": "Žolininkas", "mk": "Билна аптека", "nl": "Herbalist", "no": "Plantelegemiddelbutikk", "pl": "Sklep zielarski", "pt-BR": "Ervanária", "pt": "Ervanária", "ru": "Магазин трав и лекарственных растений", "sk": "Bylinkárstvo", "sl": "Zeliščarstvo", "sr": "Травар", "sv": "Medicinalväxter", "th": "นักสมุนไพร", "tr": "Şifalı Bitkiler Mağazası", "uk": "Ботанік", "vi": "Tiệm Dược thảo", "zh-CN": "草药店", "zh-HK": "草藥店", "zh-TW": "草藥店" } }, "shop/newsagent": { "title": { "C": "Newsstand", "id": "Kios Koran", "ar": "كشك", "br": "Stalig kazetennoù", "ca": "Quiosc de premsa", "cs": "Novinový stánek", "cy": "Stondin Newyddion", "da": "Aviskiosk", "de": "Zeitschriftenhandel", "el": "Περίπτερο εφημερίδων", "en-AU": "Newsagency", "en-GB": "Newsagent", "en": "Newsstand", "es": "Puesto de periódicos y revistas", "et": "Lehekiosk", "fi": "Lehtikioski", "fr": "Kiosque à journaux", "ga": "Seastán Nuachtán", "he": "דוכן עתונים", "hu": "Újságos", "it": "Edicola", "ja": "新聞スタンド", "mk": "Весникарница", "nl": "Krantenkiosk", "pa-PK": "خبردار", "pl": "Salonik prasowy", "pt-BR": "Banca de jornais", "pt": "Loja de jornais / revistas", "ru": "Газетный киоск", "sk": "Obchod s novinami/časopismi", "sr": "Новинарница", "sv": "Tidningsaffär", "th": "แผงหนังสือ", "tr": "Gazete Bayii", "uk": "Преса", "vi": "Quầy báo", "zh-TW": "書報攤" } }, "shop/pastry": { "title": { "C": "Pastry Shop", "ar": "متجر حلويات", "ast": "Pastelería", "bg": "Сладкарница", "br": "Pastezerezh", "ca": "Pastisseria", "cs": "Cukrárna", "da": "Konditori", "de": "Konditorei", "el": "Ζαχαροπλαστείο", "en-GB": "Pastry Shop", "en": "Pastry Shop", "eo": "Kukejo", "es": "Pastelería", "et": "Kondiiter", "fa": "شیرینی فروشی", "fi": "Leipomokonditoria", "fr": "Pâtisserie", "gl": "Confeitaría ou pastelaría", "he": "בית מאפה", "hr": "Slastičarna", "hu": "Cukrászda", "is": "Kökubúð", "it": "Pasticceria", "ja": "焼菓子(ペイストリー)店", "ko": "과자 가게", "lt": "Kepykla", "mk": "Бели печива", "nl": "Patisserie", "no": "Bakeri", "pl": "Cukiernia", "pt-BR": "Confeitaria", "pt": "Pastelaria", "ru": "Пироги", "sk": "Cukráreň", "sl": "Slaščičarna", "sr": "Посластичарница", "sv": "Konditori", "th": "ร้านขนมอบ", "tr": "Pastane", "uk": "Кондитерські вироби", "vi": "Tiệm Bánh ngọt", "zh-CN": "糕饼店", "zh-HK": "榚點店", "zh-TW": "糕餅店" } }, "shop/seafood": { "title": { "C": "Seafood Shop", "id": "Toko HIdangan Laut", "af": "Seekoswinkel", "ar": "متجر مأكولات بحرية", "ast": "Mariscos", "br": "Stal boued-mor", "ca": "Botiga de Mariscos", "cs": "Rybárna", "cy": "Siop Fwyd Morol", "da": "Fiskehandler", "de": "Fischgeschäft", "el": "Κατάστημα Θαλασσινών", "en-GB": "Seafood Shop", "en": "Seafood Shop", "eo": "Marfrukta vendejo", "es": "Tienda de pescados y mariscos", "et": "Kalapood", "fa": "فروشگاه غذای دریایی", "fi": "Meriruokakauppa", "fr": "Poissonnerie / Vente de fruits de mer", "gl": "Peixaría", "he": "חנות למאכלי ים", "hr": "Ribarnica", "hu": "Halbolt", "is": "Fiskverslun", "it": "Pescheria", "ja": "魚屋", "ko": "해산물 가게", "lt": "Jūros gėrybių parduotuvė", "mk": "Продавница за морска храна", "nl": "Viswinkel", "no": "Sjømatbutikk", "pl": "Sklep z rybami i owocami morza", "pt-BR": "Peixaria ou loja de frutos do mar", "pt": "Peixaria", "ro": "Magazin de Fructe de Mare", "ru": "Магазин морепродуктов", "sk": "Obchod s rybami alebo morskými plodmi", "sl": "Ribarnica", "sr": "Продавница морске хране", "sv": "Fiskaffär", "th": "ร้านอาหารทะเล", "tr": "Deniz Ürünleri Mağazası", "uk": "Морепродукти", "vi": "Tiệm Hải sản", "zh-CN": "海鲜店", "zh-HK": "海鮮店", "zh-TW": "海產店" } }, "shop/supermarket": { "title": { "C": "Supermarket", "am": "የገበያ ማዕከል", "bn": "সুপারমার্কেট", "sq": "Supermarket", "te": "సుపర్ మార్కెట్", "bs": "Supermarket", "dv": "ސުޕަރމާރކެޓް", "id": "Pasar Besar", "ne": "सुपरमार्केट", "so": "Suuq-weyne", "zh": "超级市场", "af": "Supermark", "ar": "سوبر ماركت", "ast": "Supermercáu", "bg": "Супермаркет", "br": "Gourmarc'had", "ca": "Supermercat", "cs": "Supermarket", "cy": "Archfarchnad", "da": "Supermarked", "de": "Supermarkt", "el": "Σουπερμάρκετ", "en-GB": "Supermarket", "en": "Supermarket", "eo": "Superbazaro", "es": "Supermercado", "et": "Supermarket", "fa": "فروشگاه بزرگ", "fi": "Supermarketti", "fr": "Supermarché", "ga": "Ollmhargadh", "gl": "Supermercado", "he": "סופרמרקט", "hr": "Veletrgovina", "hu": "Szupermarket", "is": "Stórmarkaður", "it": "Supermercato", "ja": "スーパーマーケット", "ko": "슈퍼마켓", "lt": "Prekybos centras", "lv": "Lielveikals", "mk": "Супермаркет", "nl": "Supermarkt", "no": "Supermarked", "pl": "Supermarket", "pt-BR": "Supermercado", "pt": "Supermercado / Hipermercado", "ro": "Supermarket", "ru": "Супермаркет", "sk": "Supermarket", "sl": "Supermarket", "sr": "Супермаркет", "sv": "Mataffär", "th": "ซูเปอร์มาร์เก็ต", "tr": "Süpermarket", "uk": "Супермаркет", "vi": "Siêu thị", "yue": "超級市場", "zh-CN": "超市", "zh-HK": "超級市場", "zh-TW": "超級市場" } }, "shop/tea": { "title": { "C": "Tea Store", "id": "Toko Teh", "ar": "متجر شاي", "ast": "Tienda de tes", "br": "Stal te", "ca": "Botiga de te", "cs": "Obchod s čajem", "cy": "Siop De", "da": "Tebutik", "de": "Teegeschäft", "el": "Τεϊοπωλείο", "en-GB": "Tea Shop (Retail)", "en": "Tea Store", "eo": "Tea vendejo", "es": "Tienda de té", "et": "Teepood", "fa": "فروشگاه چای", "fi": "Teekauppa", "fr": "Magasin de thés", "gl": "Tenda de té", "he": "חנות תה", "hr": "Trgovina za čajeve", "hu": "Teaüzlet", "is": "Teverslun", "it": "Negozio di tè", "ja": "茶舗", "ko": "차 가게", "lt": "Arbatos parduotuvė", "lv": "Tējas veikals", "mk": "Продавница за чај", "nl": "Theewinkel", "no": "Tebutikk", "pa-PK": "چاہ والا", "pl": "Sklep z herbatą", "pt-BR": "Loja de Chás", "pt": "Loja de chás", "ro": "Magazin de Ceaiuri", "ru": "Чайный магазин", "sk": "Obchod s čajom", "sl": "Čajnica", "sr": "Чајџиница", "sv": "Te-butik", "ta": "தேநீர் கடை", "th": "ร้านชา", "tr": "Çaycı", "uk": "Чай", "vi": "Tiệm Trà Khô", "zh-CN": "茶叶商店", "zh-HK": "茶莊", "zh-TW": "茶行" } }, "shop/variety_store": { "title": { "C": "Discount Store", "id": "Toko Diskon", "ar": "متجر التخفيضات", "br": "Rabati", "ca": "Botiga de tot a 100", "cs": "Diskontní prodejna", "cy": "Siop Ddisgownt", "da": "Discountbutik", "de": "Sonderpostenmarkt", "el": "Κατάστημα Eκπτώσεων", "en-GB": "Discount shop", "en": "Discount Store", "es": "Tienda de saldos / variedades", "fi": "Halpatavaramyymälä", "fr": "Magasin discount", "he": "חנות מוזלת", "hu": "Diszkont üzlet", "ja": "均一価格店", "ko": "할인 판매점", "mk": "Попусна продавница", "nl": "Discountwinkel", "pl": "Sklep dyskontowy", "pt-BR": "Loja de descontos", "pt": "Loja de variedades", "ru": "Товары по одной цене", "sk": "Obchod so zmiešaným tovarom", "sr": "Дисконтна продавница", "sv": "Fyndbutik", "th": "ร้านขายสินค้าราคาถูก", "tr": "İndirim Mağazası", "uk": "Дискаунтер", "vi": "Tiệm Tạp hóa", "zh-CN": "折扣商店", "zh-TW": "折扣商店" } }, "shop/wine": { "title": { "C": "Wine Shop", "id": "Toko Anggur", "ar": "متجر نبيذ", "ast": "Bodega", "br": "Stal gwin", "ca": "Botiga de vins", "cs": "Vinotéka", "cy": "Siop Win", "da": "Vinforretning", "de": "Weinhandel", "el": "Κάβα Κρασιών", "en-GB": "Wine Shop", "en": "Wine Shop", "eo": "Vina vendejo", "es": "Tienda de vinos", "et": "Veinipood", "fa": "فروشگاه شراب", "fi": "Viinikauppa", "fr": "Caviste", "gl": "Tenda de viños", "he": "חנות יינות", "hr": "Prodavaonica vina", "hu": "Borszaküzlet", "is": "Vínbúð", "it": "Enoteca", "ja": "ワイン店", "ko": "와인 가게", "lt": "Vyno parduotuvė", "lv": "Vīna veikals", "mk": "Винотека", "nl": "Wijnhandel", "no": "Vinbutikk", "pl": "Sklep z winami", "pt-BR": "Loja de Vinhos", "pt": "Loja de vinhos", "ro": "Magazin de Vinuri", "ru": "Винный магазин", "sk": "Vinotéka", "sl": "Vinoteka", "sr": "Винарница", "sv": "Vinaffär", "th": "ร้านไวน์", "tr": "Şarap Mağazası", "uk": "Вино", "vi": "Tiệm Rượu vang", "yue": "酒舖", "zh-CN": "酒品商店", "zh-HK": "酒品店", "zh-TW": "販酒店" } }, "tourism/artwork": { "title": { "C": "Artwork", "bs": "Umjetničko djelo", "id": "Karya Seni", "zh": "艺术品", "af": "Kunswerk", "ar": "عمل فني", "ast": "Obra d'arte", "bg": "Произведение на изкуството", "br": "Oberenn arz", "ca": "Obra d'art", "cs": "Umělecké dílo", "cy": "Gwaith Celf", "da": "Kunstværk", "de": "Kunst", "el": "Έργο τέχνης", "en-GB": "Artwork", "en": "Artwork", "eo": "Artverko", "es": "Obra de arte", "et": "Kunstiteos", "fa": "اثر هنری", "fi": "Taideteos", "fr": "Œuvre d'art", "ga": "Obair Ealaíne", "gl": "Obra artística", "he": "אומנות", "hr": "Umjetničko djelo", "hu": "Műalkotás", "is": "Listaverk", "it": "Opera d'arte", "ja": "パブリックアート", "ko": "예술품", "lt": "Meno kūrinys", "lv": "Mākslas darbs", "mk": "Уметничко дело", "nl": "Kunstwerk", "no": "Kunstverk", "pl": "Dzieło sztuki", "pt-BR": "Obra de arte", "pt": "Obra de arte pública", "ru": "Произведение искусства", "sk": "Umelecké dielo", "sl": "Umetnina", "sr": "Уметничко дело", "sv": "Konstverk", "ta": "ஓவியம்", "th": "งานด้านศิลปะ", "tr": "Sanat Eseri", "uk": "Витвір мистецтва", "vi": "Nghệ phẩm", "yue": "藝術品", "zh-CN": "艺术品", "zh-HK": "藝術品", "zh-TW": "公共藝術" } }, "tourism/attraction": { "title": { "C": "Tourist Attraction", "bn": "পর্যটক আকর্ষণ", "bs": "Turistička atrakcija", "id": "Objek Wisata", "zh": "旅游景点", "af": "Toerismeaantreklikheid", "ar": "معلم سياحي", "ast": "Atracción turística", "bg": "Туристическа атракция", "br": "Dedenn touristel", "ca": "Atracció turística", "cs": "Pamětihodnost", "da": "Turistattraktion", "de": "Sehenswürdigkeit", "el": "Αξιοθέατο", "en-GB": "Tourist Attraction", "en": "Tourist Attraction", "eo": "Turisma vidindaĵo", "es": "Atracción turística", "et": "Turismiatraktsioon", "fa": "جاذبه گردشگری", "fi": "Turistikohde", "fr": "Attraction touristique", "gl": "Atracción turística", "he": "אתר תיירותי", "hr": "Turistička atrakcija", "hu": "Turisztikai látványosság", "is": "Ferðamannagildra", "it": "Attrazione turistica", "ja": "観光地", "ko": "관광 명소", "lt": "Turistų traukos vieta", "lv": "Tūrisma objekts", "mk": "Знаменитост", "nl": "Toeristische attractie", "no": "Turistattraksjon", "pl": "Atrakcja turystyczna", "pt-BR": "Atração turística", "pt": "Atração turística", "ro": "Atracție Turistică", "ru": "Достопримечательность", "sk": "Turistická atrakcia", "sl": "Turistična znamenitost", "sr": "Туристичка атракција", "sv": "Turistattraktion", "th": "สถานที่ท่องเที่ยว", "tr": "Turistik Yer", "uk": "Туристична пам’ятка", "vi": "Điểm Thu hút Du lịch", "yue": "旅行名勝", "zh-CN": "旅游名胜", "zh-HK": "觀光名勝", "zh-TW": "觀光景點" } }, "tourism/camp_pitch": { "title": { "C": "Camp Pitch", "ar": "Camp Pitch", "br": "Plas kampiñ", "ca": "Parcel·la de càmping", "cs": "Místo pro stan/karavan", "da": "Lejrplads", "de": "Zeltplatz/Wohnwagenplatz", "el": "Χώρος Κατασκήνωσης", "en": "Camp Pitch", "eo": "Loko por kampadveturilo/tendo", "es": "Lugar para acampar", "fi": "Leirintäalueen kenttä", "fr": "Parcelle dans un camping", "gl": "Lugar de campismo", "he": "מאהל", "hu": "Sátorhely", "it": "Piazzola", "ja": "キャンプ区画(キャンプ場内)", "ko": "캠핑장 구역", "mk": "Логориште", "nl": "Staplaats (camping)", "pl": "Miejsce na namioty", "pt-BR": "Acampamento de arremesso", "pt": "Alvéolo de parque de campismo", "sk": "Miesto pre stan/karavan", "sr": "Камп-место", "sv": "Tältplats/husvagnsplats", "th": "จุดกางเต็นท์", "tr": "Kamp Sahası", "uk": "Місце під намет", "zh-CN": "宿营位", "zh-TW": "營地" } }, "tourism/information": { "title": { "C": "Information", "bn": "তথ্য", "sq": "Informacion", "te": "సమాచారం", "bs": "Informacije", "id": "Informasi", "kn": "ಮಾಹಿತಿ", "zh": "资讯", "af": "Inligting", "ar": "معلومات سياحية", "ast": "Información", "bg": "Информация", "br": "Titouroù", "ca": "Informació", "cs": "Informace", "cy": "Gwybodaeth", "da": "Information", "de": "Information", "el": "Πληροφορίες", "en-GB": "Information", "en": "Information", "eo": "Informejo", "es": "Información turística", "et": "Info", "fa": "اطلاعات", "fi": "Infopiste", "fr": "Informations", "ga": "Eolas", "gl": "Información", "he": "מידע", "hr": "Turističke informacije", "hu": "Információ", "is": "Upplýsingar", "it": "Informazioni", "ja": "観光案内(全般)", "ko": "안내", "lt": "Informacija", "lv": "Informācija", "mk": "Информации", "nl": "Informatie", "no": "Informasjon", "pa-PK": "جاݨکاری", "pl": "Informacja turystyczna (nieokreślona)", "pt-BR": "Informações turísticas", "pt": "Informação turística", "ro": "Informații", "ru": "Инфопункт", "sk": "Informácie", "sl": "Informacije", "sr": "Информације", "sv": "Information", "ta": "தகவல்", "th": "ประชาสัมพันธ์", "tr": "Bilgi", "uk": "Інформація", "vi": "Thông tin", "yue": "資訊處", "zh-CN": "问询处", "zh-HK": "旅遊資訊", "zh-TW": "旅遊資訊" } }, "tourism/viewpoint": { "title": { "C": "Viewpoint", "bs": "Vidikovac", "id": "Titik Pandang", "zh": "景点", "af": "Uitkykpunt", "ar": "منظر سياحي", "ast": "Mirador", "bg": "Точка с хубава гледка", "br": "Gwelva", "ca": "Mirador", "cs": "Výhled", "da": "Udsigtspunkt", "de": "Aussichtspunkt", "el": "Σημείο θέασης", "en-AU": "Lookout", "en-GB": "Viewpoint", "en": "Viewpoint", "eo": "Belvidejo", "es": "Vista panorámica / Mirador", "et": "Vaatekoht", "fa": "نقطه دید", "fi": "Näköalapaikka", "fr": "Point de vue", "ga": "Pointe Radhairc", "gl": "Miradoiro", "he": "תצפית", "hr": "Vidikovac", "hu": "Kilátóhely", "is": "Útsýnisstaður", "it": "Punto panoramico", "ja": "展望台", "ko": "경승지", "lt": "Apžvalgos taškas", "lv": "Skatu punkts", "mk": "Видиковец", "nl": "Uitzichtpunt", "no": "Utsiktspunkt", "pl": "Punkt widokowy", "pt-BR": "Mirante", "pt": "Miradouro", "ro": "Punct de Vedere", "ru": "Обзорная точка", "sk": "Vyhliadka", "sl": "Razgledna točka", "sr": "Видиковац", "sv": "Utsiktspunkt", "th": "จุดชมวิว", "tr": "Görüş Noktası", "uk": "Оглядовий майданчик", "vi": "Điểm Ngắm cảnh", "yue": "觀景臺", "zh-CN": "观景点", "zh-HK": "觀景臺", "zh-TW": "觀景點" } }, "tourism/alpine_hut": { "title": { "C": "Mountain Lodge", "id": "Pondok Gunung", "ar": "كوخ جبلي", "bg": "Планинска хижа", "br": "Bod", "ca": "Refugi de muntanya", "cs": "Horský srub", "da": "Bjerghytte", "de": "Berghütte", "el": "Ορειβατικό Καταφύγιο", "en": "Mountain Lodge", "es": "Refugio de montaña", "fi": "Vuoristomaja", "fr": "Refuge de montagne", "he": "בקתה אלפינית", "hu": "Hegyi menedékház", "it": "Rifugio alpino", "ja": "山小屋", "ko": "산악 루지", "mk": "Планинарски дом", "nl": "Berghut", "pl": "Schronisko górskie", "pt-BR": "Pousada da Montanha", "pt": "Albergue alpino", "ru": "Горный домик", "sk": "Vysokohorská chata", "sr": "Планинска кућа", "sv": "Fjällstation", "th": "บ้านพักบนภูเขา", "tr": "Dağ Köşkü", "uk": "Хатинка в горах", "vi": "Túp lều trên Núi", "zh-TW": "山中小屋" } }, "tourism/apartment": { "title": { "C": "Guest Apartment / Condo", "ar": "شقة سياحية", "bg": "Апартамент за гости", "ca": "Apartaments vacacionals", "cs": "Byt/apartmán k pronájmu", "da": "Gæstelejlighed/Ejerlejlighed", "de": "Ferienwohnung", "el": "Ξενώνας / Διαμέρισμα", "en-AU": "Holiday Apartment", "en-GB": "Guest Apartment / Condo", "en": "Guest Apartment / Condo", "eo": "Apartamento feria (luprenebla)", "es": "Apartamento de huéspedes", "et": "Külaliskorter", "fa": "آپارتمان مهمان / کاندو", "fi": "Vierasmajoitus", "fr": "Location de vacances", "gl": "Apartamento de hóspedes", "he": "דירה לאורחים", "hr": "Turistički apartman", "hu": "Apartman", "is": "Gestaíbúð", "it": "Affittacamere", "ja": "リゾートマンション", "ko": "게스트 아파트 / 콘도", "lt": "Svečių apartamentai / butas", "mk": "Пансион", "nl": "Vakantieappartement", "pl": "Mieszkanie na wynajem", "pt-BR": "Apartamento de temporada", "pt": "Apartamento de alojamento local", "ro": "Apartament de Închiriat", "ru": "Гостевые апартаменты/квартира", "sk": "Dovolenkový apartmán", "sl": "Apartma / Gostišče", "sr": "Гостински апартман", "sv": "Turistlägenhet", "tr": "Misafir Apartmanı", "uk": "Мебльована квартира/Комплекс", "vi": "Khu chung cư Nghỉ dưỡng", "zh-CN": "出租公寓", "zh-HK": "民宿公寓 / 短租公寓", "zh-TW": "假日公寓" } }, "tourism/camp_site": { "title": { "C": "Campground", "id": "Perkemahan", "af": "Kampterrein", "ar": "مكان التخييم", "ast": "Campamentu", "br": "Takad kampiñ", "ca": "Àrea d'acampada", "cs": "Tábořiště", "da": "Campingplads", "de": "Campingplatz", "el": "Χώρος Κατασκήνωσης", "en-GB": "Camp Site", "en": "Campground", "eo": "Kampadejo", "es": "Campamento", "et": "Telkimisala", "fa": "اردوگاه", "fi": "Leirintäalue", "fr": "Camping", "gl": "Cámping", "he": "אתר מחנאות", "hu": "Kemping területe", "is": "Tjaldsvæði", "it": "Campeggio", "ja": "キャンプ場", "ko": "캠핑장", "lv": "Kempinga vieta", "mi": "Puninga", "mk": "Камп", "nl": "Camping", "pl": "Kemping", "pt-BR": "Local de acampamento", "pt": "Parque de campismo", "ro": "Teren de Camping", "ru": "Кемпинг/туристический приют", "sk": "Kemp", "sl": "Kamp", "sr": "Простор за камповање", "sv": "Campingplats", "th": "ลานกางเต็นท์", "tr": "Kamp Yeri", "uk": "Табір", "vi": "Khu Cắm trại", "yue": "營地", "zh-CN": "宿营场地", "zh-HK": "營地", "zh-TW": "露營地" } }, "tourism/caravan_site": { "title": { "C": "RV Park", "bs": "Kamp park", "id": "Taman RV", "zh": "房车营地", "af": "RV Park", "ar": "موقف عربات كبيرة", "ast": "Aparcaderu d'autocaravanes", "bg": "Паркинг за каравани", "br": "Leur kirri-kampiñ", "ca": "Càmping per a caravanes", "cs": "Místo pro karavany", "cy": "Parc Carafan", "da": "Autocamperplads", "de": "Wohnwagen-Campingplatz", "el": "Πάρκο τροχόσπιτων", "en-AU": "Caravan Site", "en-GB": "Caravan Park", "en-NZ": "Caravan Site", "en": "RV Park", "eo": "Kampad-veturila parkumejo", "es": "Parque de autocaravanas", "et": "Karavanipark", "fa": "پارکینگ ماشین کاروان", "fi": "Asuntoautopysäköinti", "fr": "Aire pour caravanes", "gl": "Área de autocaravanas", "he": "מגרש קרוונים", "hr": "Autokamp", "hu": "Lakókocsi-hely", "is": "Hjólhýsagarður", "it": "Sosta per camper", "ja": "オートキャンプ場", "ko": "RV 공원", "mk": "Трајлерски камп", "nl": "Caravan-/kampeerwagenterrein", "no": "Bobilpark", "pl": "Kemping dla kamperów", "pt-BR": "Estacionamento de trailers", "pt": "Parque de caravanas", "ru": "Стоянка трейлеров", "sk": "Parkovisko pre karavany", "sl": "Parkirišče za avtodome", "sr": "Камп-парк", "sv": "Ställplats", "ta": "ஆர்வி பூங்கா", "th": "ลานจอดรถบ้าน", "tr": "Karavan Parkı", "uk": "Караван-парк", "vi": "Bãi Đậu Nhà lưu động", "yue": "露營車營地", "zh-CN": "房车营地", "zh-HK": "露營車營地", "zh-TW": "露營車停車場" } }, "tourism/motel": { "title": { "C": "Motel", "am": "ሞቴል", "bn": "মোটেল", "bs": "Motel", "id": "Motel", "zh": "汽车旅馆", "af": "Motel", "ar": "فندق صغير", "ast": "Motel", "bg": "Мотел", "br": "Motel", "ca": "Motel", "cs": "Motel", "cy": "Motel", "da": "Motel", "de": "Motel", "el": "Μοτέλ", "en-GB": "Motel", "en": "Motel", "eo": "Aŭt-hotelo", "es": "Motel", "et": "Motell", "fa": "متل", "fi": "Motelli", "fr": "Motel", "ga": "Óstán Cois Bóthair", "gl": "Motel", "he": "מלון דרכים", "hr": "Motel", "hu": "Motel", "is": "Mótel", "it": "Motel", "ja": "モーテル", "ko": "모텔", "lt": "Motelis", "lv": "Motelis", "mk": "Мотел", "nl": "Motel", "no": "Motell", "pl": "Motel", "pt-BR": "Hotel de estrada", "pt": "Motel", "ro": "Motel", "ru": "Мотель", "sk": "Motel", "sl": "Motel", "sr": "Мотел", "sv": "Motel", "th": "โมเต็ล", "tr": "Motel", "uk": "Мотель", "vi": "Khách sạn Dọc đường", "yue": "汽車酒店", "zh-CN": "汽车旅馆", "zh-HK": "汽車酒店", "zh-TW": "汽車旅館" } }, "tourism/picnic_site": { "title": { "C": "Picnic Site", "bn": "পিকনিক-এর জায়গা", "bs": "Izletište", "id": "Tempat Piknik", "ms": "Tapak Perkelahan", "zh": "郊游地点", "af": "Piekniek plek", "ar": "موقع تنزه", "ast": "Área recreativa", "bg": "Място за пикник", "br": "Lec'h piknikañ", "ca": "Àrea de pícnic", "cs": "Místo pro piknik", "cy": "Safle Picnic", "da": "Madpakkested", "de": "Picknickplatz", "el": "Χώρος Εκδρομής", "en-GB": "Picnic Site", "en": "Picnic Site", "eo": "Piknika ejo", "es": "Zona de picnic", "et": "Piknikukoht", "fa": "مکان پیک نیک", "fi": "Piknikpuisto", "fr": "Aire de pique-nique", "gl": "Merendeiro ou zona de pícnic", "he": "פיקניק", "hr": "Izletište", "hu": "Piknikezőhely", "is": "Áningarstaður", "it": "Area picnic", "ja": "ピクニック場", "ko": "유원지", "lt": "Pikniko stovyklavietė", "lv": "Piknika vieta", "mk": "Излетничко место", "nl": "Picknickplaats", "no": "Pikniksted", "pa-PK": "پکنک دا تھاں", "pl": "Miejsce na piknik", "pt-BR": "Local de piquenique", "pt": "Parque de merendas", "ro": "Picnic", "ru": "Место для пикника", "sk": "Miesto pre piknik", "sl": "Prostor za piknike", "sr": "Излетиште", "sv": "Picknickplats", "th": "จุดปิกนิก", "tr": "Piknik Alanı", "uk": "Місце для пікніка", "vi": "Nơi Ăn Ngoài trời", "yue": "郊遊地點", "zh-CN": "野餐地", "zh-HK": "郊遊地點", "zh-TW": "野餐場地" } }, "tourism/theme_park": { "title": { "C": "Theme Park", "bn": "থিম পার্ক", "bs": "Tematski park", "id": "Taman Rekreasi", "zh": "主题公园", "af": "Temapark", "ar": "حديقة ترفيه", "ast": "Parque temáticu", "bg": "Увеселителен парк", "ca": "Parc temàtic", "cs": "Zábavní park", "cy": "Parc Thema", "da": "Forlystelsespark", "de": "Themenpark", "el": "Πάρκο Ψυχαγωγίας", "en-GB": "Theme Park", "en": "Theme Park", "eo": "Amuzparko", "es": "Parque de atracciones", "et": "Lõbustuspark", "fa": "پارک تفریحی, شهربازی", "fi": "Huvipuisto", "fr": "Parc d'attraction", "gl": "Parque de atraccións", "he": "לונה פארק", "hr": "Zabavni park", "hu": "Vidámpark", "is": "Skemmtigarður", "it": "Parco a tema", "ja": "テーマパーク", "ko": "놀이공원", "lt": "Atrakcijonų parkas", "lv": "Tematiskais parks", "mk": "Забавен парк", "nl": "Themapark", "no": "Temapark", "pl": "Park rozrywki", "pt-BR": "Parque temático", "pt": "Parque de diversões", "ro": "Parc de Distracții", "ru": "Парк развлечений", "sk": "Zábavný park", "sl": "Zabaviščni park", "sr": "Тематски парк", "sv": "Nöjespark", "th": "สวนสนุก", "tr": "Eğlence Parkı", "uk": "Тематичний парк", "vi": "Công viên Chủ đề", "yue": "主題公園", "zh-CN": "主题公园", "zh-HK": "主題公園", "zh-TW": "主題公園" } }, "tourism/wilderness_hut": { "title": { "C": "Wilderness Hut", "ar": "Wilderness Hut", "ca": "Refugi lliure", "cs": "Chata v divočině", "da": "Vildmarkshytte", "de": "unbewirtschaftete Schutzhütte", "el": "Ερημική Καλύβα", "en-GB": "Wilderness Hut", "en": "Wilderness Hut", "eo": "Sovaĝeja kabano", "es": "Refugio de paraje natural", "fi": "Autiotupa", "fr": "Refuge de bivouac", "gl": "Abeiro da natureza", "he": "בקתת טבע", "hr": "Planinarsko sklonište", "hu": "Menedékház (személyzet nélkül)", "is": "Óbyggðakofi", "it": "Bivacco", "ja": "避難小屋", "ko": "황야 막사", "mk": "Колиба во дивина", "nl": "Onbemande hut in wildernis", "no": "Villmarkshytta", "pl": "Chata biwakowa", "pt-BR": "Abrigo isolado", "pt": "Abrigo remoto", "ru": "Охотничий домик", "sk": "Útulňa (s vnútorným ohniskom)", "sv": "Stuga (för vandrare o.d.)", "th": "กระท่อมกลางป่า", "tr": "Dağ kulübesi", "uk": "Лісова хатинка", "vi": "Lều trú", "zh-CN": "野外住宿小屋", "zh-TW": "野外小屋" } }, "tourism/aquarium": { "title": { "C": "Aquarium", "ms": "Akuarium", "ar": "حوض سمك", "ast": "Acuariu", "bg": "Аквариум", "br": "Akwariom", "ca": "Aquari", "cs": "Akvárium", "cy": "Acwariwm", "da": "Akvarium", "de": "Aquarium", "el": "Ενυδρείο", "en-GB": "Aquarium", "en": "Aquarium", "eo": "Akvario", "es": "Acuario", "et": "Akvaarium", "fa": "آکواریوم", "fi": "Akvaario", "fr": "Aquarium", "gl": "Acuario", "he": "אקווריום", "hr": "Akvarij", "hu": "Akvárium", "is": "Sædýrasafn", "it": "Acquario", "ja": "水族館", "ko": "아쿠아리움", "lt": "Akvariumas", "lv": "Akvārijs", "mk": "Аквариум", "nl": "Aquarium", "no": "Akvarium", "pl": "Akwarium", "pt-BR": "Aquário", "pt": "Aquário público", "ro": "Acvariu", "ru": "Аквариум", "sk": "Akvárium", "sl": "Akvarij", "sr": "Акваријум", "sv": "Akvarium", "ta": "மீன் காட்சியகம்", "th": "พิพิธภัณฑ์สัตว์น้ำ", "tr": "Akvaryum", "uk": "Акваріум", "vi": "Thủy cung", "zh-CN": "水族馆", "zh-HK": "水族館", "zh-TW": "水族館(展覽館)" } }, "tourism/chalet": { "title": { "C": "Holiday Cottage", "id": "Vila Liburan", "ar": "منتجع - شاليه", "ca": "Bungalow / Cabanya", "cs": "Prázdninová vesnice", "cy": "Tŷ Gwyliau", "da": "Feriehus", "de": "Ferienhaus", "el": "Εξοχική Κατοικία", "en-GB": "Holiday Cottage", "en": "Holiday Cottage", "eo": "Dometo feria", "es": "Cabaña vacacional / Bungaló", "fi": "Loma-asunto", "fr": "Gîte", "gl": "Casa rural", "he": "בקתה לחגים", "hr": "Bungalov", "hu": "Nyaralóház", "is": "Frístundahús", "it": "Chalet", "ja": "貸別荘(戸建て)", "ko": "별장", "lt": "Atostogų kotedžas", "mk": "Викендичка", "nl": "Vakantiehuisje", "pl": "Domek/domki letniskowe", "pt-BR": "Chalé", "pt": "Casa de campo", "ru": "Коттедж под аренду", "sk": "Prázdninová chata", "sr": "Викендица", "sv": "Stuga", "ta": "விடுமுறை குடில்", "th": "บ้านพักตากอากาศ", "tr": "Tatil Kulübesi", "uk": "Шале", "vi": "Nhà nghỉ Riêng biệt", "zh-CN": "度假屋", "zh-TW": "假日小屋" } }, "tourism/gallery": { "title": { "C": "Art Gallery", "kn": "ಕಲಾಮಂದಿರ", "ar": "رواق الفنون", "ast": "Galería d'arte", "br": "Palier arz", "ca": "Galeria d'art", "cs": "Galerie umění", "cy": "Oriel Celf", "da": "Kunstgalleri", "de": "Kunstgalerie", "el": "Γκαλερί Τέχνης", "en-GB": "Art Gallery", "en": "Art Gallery", "eo": "Artgalerio", "es": "Galería de arte", "et": "Kunstigalerii", "fa": "گالری هنری", "fi": "Taidegalleria", "fr": "Galerie d'art", "gl": "Galería de arte", "he": "גלריית אומנות", "hr": "Umjetnička galerija", "hu": "Művészeti galéria", "is": "Listagallerí", "it": "Galleria d'arte", "ja": "アートギャラリー", "ko": "미술관", "lt": "Meno galerija", "lv": "Mākslas galerija", "mk": "Уметничка галерија", "nl": "Kunstgalerij", "no": "Kunstgalleri", "pa-PK": "گیلری", "pl": "Muzeum sztuki", "pt-BR": "Galeria de arte", "pt": "Galeria de arte", "ro": "Galerie de Artă", "ru": "Художественная галерея", "sk": "Umelecká galéria", "sl": "Umetnostna galerija", "sr": "Галерија слика", "sv": "Konstgalleri", "ta": "கலைக்கூடம்", "th": "หอศิลป์", "tr": "Sanat Galerisi", "uk": "Художня галерея", "vi": "Phòng tranh", "zh-CN": "美术馆", "zh-HK": "畫廊", "zh-TW": "藝廊" } }, "tourism/guest_house": { "title": { "C": "Guest House", "am": "እንግዳ ማረፊያ", "bn": "অতিথিশালা", "bs": "Gostinjska kuća", "id": "Rumah Tamu", "zh": "宾馆", "af": "Gastehuis", "ar": "دار الضيافة", "ast": "Pensión", "bg": "Къща за гости", "br": "Kambr ostizien", "ca": "Pensió", "cs": "Penzion", "da": "Gæstehus", "de": "Pension", "el": "Ξενώνας", "en-GB": "Guest House", "en": "Guest House", "eo": "Pensiono", "es": "Casa de huéspedes / B&B", "et": "Külalistemaja", "fa": "مهمان خانه", "fi": "Majatalo", "fr": "Chambre d'hôtes", "gl": "Hostal", "he": "בית הארחה", "hr": "Gostinjska kuća", "hu": "Vendégház", "is": "Gestahús", "it": "Bed & Breakfast", "ja": "民宿", "ko": "민박", "lt": "Svečių namai", "lv": "Viesu nams", "mk": "Приватен пансион", "nl": "Pension", "no": "Gjestehus", "pl": "Pensjonat", "pt-BR": "Guesthouse", "pt": "Casa de hóspedes", "ro": "Pensiune", "ru": "Гостевой дом", "sk": "Penzión", "sl": "Penzion", "sr": "Гостинска кућа", "sv": "Gästhus", "ta": "விருந்தினர் இல்லம்", "th": "เกสต์เฮาส์", "tr": "Konuk Evi", "uk": "Гостьовий будинок", "vi": "Nhà khách", "yue": "賓館", "zh-CN": "客栈", "zh-HK": "賓館", "zh-TW": "招待所" } }, "tourism/hostel": { "title": { "C": "Hostel", "am": "ሆስቴል", "bn": "ছাত্রাবাস", "bs": "Hostel", "id": "Kost", "zh": "招待所", "af": "Hostel", "ar": "نزل / شقة مفروشة", "ast": "Albergue", "bg": "Хостел", "br": "Herberc'h", "ca": "Alberg", "cs": "Hostel", "cy": "Hostel", "da": "Vandrerhjem", "de": "Hostel", "el": "Ξενώνας", "en-GB": "Hostel", "en": "Hostel", "eo": "Gastejo", "es": "Albergue", "et": "Hostel", "fa": "مسافرخانه", "fi": "Hostelli", "fr": "Auberge de jeunesse", "ga": "Brú", "gl": "Albergue", "he": "אכסנייה", "hr": "Hostel", "hu": "Turistaszálló", "is": "Farfuglaheimili", "it": "Ostello", "ja": "簡易宿泊所", "ko": "호스텔", "lt": "Viešbutis", "lv": "Hostelis", "mk": "Хостел", "nl": "Jeugdherberg", "no": "Hostell", "pa-PK": "ہوسٹل", "pl": "Hostel", "pt-BR": "Hostel", "pt": "Hostel", "ro": "Hostel", "ru": "Хостел", "sk": "Hostel", "sl": "Hostel", "sr": "Хостел", "sv": "Vandrarhem", "ta": "விடுதி", "th": "โฮสเทล", "tr": "Pansiyon", "uk": "Хостел", "vi": "Nhà trọ", "yue": "旅舍", "zh-CN": "旅舍", "zh-HK": "旅舍", "zh-TW": "旅舍" } }, "tourism/hotel": { "title": { "C": "Hotel", "am": "ሆቴል", "bn": "হোটেল", "sq": "Hotel", "te": "హోటెల్", "bs": "Hotel", "dv": "ހޮޓާ", "id": "Hotel", "kn": "ಭೋಜನಾಲಯ", "ms": "Hotel", "so": "Huteel", "zh": "旅馆", "af": "Hotel", "ar": "فندق", "ast": "Hotel", "bg": "Хотел", "br": "Leti", "ca": "Hotel", "cs": "Hotel", "cy": "Gwesty", "da": "Hotel", "de": "Hotel", "el": "Ξενοδοχείο", "en-GB": "Hotel", "en": "Hotel", "eo": "Hotelo", "es": "Hotel", "et": "Hotell", "fa": "هتل", "fi": "Hotelli", "fr": "Hôtel", "ga": "Óstán", "gl": "Hotel", "he": "מלון", "hr": "Hotel", "hu": "Szálloda", "is": "Hótel", "it": "Albergo", "ja": "ホテル", "ko": "호텔", "lt": "Viešbutis", "lv": "Viesnīca", "mk": "Хотел", "nl": "Hotel", "no": "Hotell", "pa-PK": "ہوٹل", "pl": "Hotel", "pt-BR": "Hotel", "pt": "Hotel", "ro": "Hotel", "ru": "Гостиница", "sk": "Hotel", "sl": "Hotel", "sr": "Хотел", "sv": "Hotell", "ta": "உணவகம்", "th": "โรงแรม", "tr": "Otel", "uk": "Готель", "ur": "ہوٹل", "vi": "Khách sạn", "yue": "酒店", "zh-CN": "宾馆", "zh-HK": "酒店", "zh-TW": "旅館" } }, "tourism/museum": { "title": { "C": "Museum", "am": "ሙዚየም", "bn": "প্রদর্শনশালা", "te": "మ్యూజియం", "bs": "Muzej", "id": "Museum", "kn": "ಒಡವೆಮನೆ", "zh": "博物馆", "af": "Musuem", "ar": "متحف", "ast": "Muséu", "bg": "Музей", "br": "Mirdi", "ca": "Museu", "cs": "Muzeum", "cy": "Amgueddfa", "da": "Museum", "de": "Museum", "el": "Μουσείο", "en-GB": "Museum", "en": "Museum", "eo": "Muzeo", "es": "Museo", "et": "Muuseum", "fa": "موزه", "fi": "Museo", "fr": "Musée", "ga": "Músaem", "gl": "Museo", "he": "מוזיאון", "hr": "Muzej", "hu": "Múzeum", "is": "Safn", "it": "Museo", "ja": "博物館・美術館", "ko": "박물관", "lt": "Muziejus", "lv": "Muzejs", "mi": "Whare tongarewa", "mk": "Музеј", "nl": "Museum", "no": "Museum", "pl": "Muzeum", "pt-BR": "Museu", "pt": "Museu", "ro": "Muzeu", "ru": "Музей", "sk": "Múzeum", "sl": "Muzej", "sr": "Музеј", "sv": "Museum", "ta": "அருங்காட்சியகம்", "th": "พิพิธภัณฑ์", "tr": "Müze", "uk": "Музей", "ur": "عجائب گھر", "vi": "Bảo tàng", "yue": "博物館", "zh-CN": "博物馆", "zh-HK": "博物館", "zh-TW": "博物館" } }, "tourism/trail_riding_station": { "title": { "C": "Trail Riding Station", "ar": "Trail Riding Station", "cs": "Stanice jízdy na koni", "da": "Station på ridesti", "de": "Wanderreitstation", "el": "Σταθμός Ιππασίας", "en-GB": "Trail Riding Station", "en": "Trail Riding Station", "eo": "Pensiono por ĉevalistoj", "es": "Estación de equitación", "fa": "ایستگاه مسیر گذر / پیاده‌روی", "fr": "Station équestre", "gl": "Posto de repouso ecuestre", "he": "תחנת רכיבה", "hu": "Lovastúra-állomás", "it": "Stazione di sosta per cavalli", "ja": "乗馬トレール乗り場", "mk": "Конак за рекреативни јавачи", "nl": "Ruiterlogies", "pl": "Zakwaterowanie dla turystów konnych", "pt-BR": "Estação de hipismo de trilha", "pt": "Posto de repouso equestre", "ru": "Временное жильё для лошадей и наездников", "sk": "Dočasné ubytovanie pre kone a jazdcov", "sv": "Turridningsstation", "th": "สนามขี่ม้า", "tr": "İz Sürme İstasyonu", "uk": "Місце відпочинку для коней та вершників", "vi": "Chuồng Ngựa Tạm thời", "zh-CN": "小径骑行站", "zh-TW": "騎馬車站" } }, "tourism/zoo": { "title": { "C": "Zoo", "am": "የእንስሳት ግቢ", "bn": "চিড়িয়াখানা", "te": "జూ", "bs": "Zoološki vrt", "hi": "चिड़िया घर", "id": "Kebun Binatang", "zh": "动物园", "af": "Dieretuin", "ar": "حديقة حيوانات", "ast": "Zoo", "bg": "Зоологическа градина", "br": "Zoo", "ca": "Zoo", "cs": "ZOO", "cy": "Sŵ", "da": "Zoologisk have", "de": "Zoo", "el": "Ζωολογικός Κήπος", "en-GB": "Zoo", "en": "Zoo", "eo": "Bestoĝardeno", "es": "Zoológico", "et": "Loomaaed", "fa": "باغ وحش", "fi": "Eläintarha", "fr": "Parc zoologique", "ga": "Zú", "gl": "Zoolóxico", "he": "גן חיות", "hr": "Zološki vrt", "hu": "Állatkert", "is": "Dýragarður", "it": "Zoo", "ja": "動物園", "ko": "동물원", "lt": "Zoologijos sodas", "lv": "Zooloģiskais dārzs", "mk": "Зоолошка градина", "nl": "Dierentuin", "no": "Zoologisk hage", "pl": "Zoo", "pt-BR": "Zoológico", "pt": "Jardim zoológico", "ro": "Grădină Zoologică", "ru": "Зоопарк", "sk": "Zoo", "sl": "Živalski vrt", "sr": "Зоолошки врт", "sv": "Zoo", "ta": "உயிரியல் பூங்கா", "th": "สวนสัตว์", "tr": "Hayvanat Bahçesi", "uk": "Зоопарк", "vi": "Vườn thú", "yue": "動物園", "zh-CN": "动物园", "zh-HK": "動物園", "zh-TW": "動物園" } } } 070701000000C8000041ED0000000000000000000000026641340900000000000000000000000000000000000000000000002200000000gnome-maps-46.11/data/screenshots070701000000C9000081A400000000000000000000000166413409000EE697000000000000000000000000000000000000003000000000gnome-maps-46.11/data/screenshots/maps-main.pngPNG  IHDR*HsBIT|dtEXtSoftwaregnome-screenshot>&tEXtCreation TimeFri 23 Jun 2023 11:58:25޸ IDATxydg}-ܳIhA "!eDL`q- |3{8 Fh *IZTk7̊ʬ%3S'"q͈Ȕ@DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDd%Hϩ.% ՖFϓ gn.=""""""""`N܃ ./ryEDDDDDDDvCpw9""""""""r黤CK9Ļ6|]]j?b.R ϱ$""""""""n-kqLr)i+3\ ϗ /b.>\6T(ˋ1c"""""""""K_s^TTbRDDDDDDDD֪YqyфSXwc5.WEDDDDDDDv6w.\xR?Y9K rMk=h;-7{,KA|/u_>;Prrv5;t>>fm}tqJ[RBJoޥS,_RvDDDDDDDD. Y2 R:f.ٗΞf ] b-u߷ WPH37 _n_}F\sNՔ""""""""rΌ11f2MӧyϽmo -CJËBa% %$ )gkJV-gw݋uvLiܖ+%YJ_Wxa[S\"DXڃ?mo./V^v2mKXS۶HPւnUӷݭw5'+=憕~X,+P@)""""""""+c:l6߶m>@'RN_pg~p"`᠒.ۻl冔$g!OnW@)""""""""Ceoذ,V >x.g[jUg+ DI9jMtc""""""""sxw(2wٙλ}HZjs: USv)߳ר 7J_RH)""""""""9GTt>O ou (d {o%g\/jrӾan-<澈>s@yddι *ED.fI&M'!bq""rI2`9444N:ӷO\̶fʅn[l ٷgӷ=WrBJ #2&&&h4 )EDD.1ih4 ˲%9snWMO_wt=}nDUJ=Sjr/[o0&V)ĥiJV[a\VA%rҽs,5aZLsZ߶f[EDDDDDDDdx8&c* Q/i߶Vzp)*h6)gjt[m(vE֡vPzܭUBc '.C\R:c=i6J%m7֭[W{x"""""g466޽{Id믿s1Fh4֞mebwViAR]IO~E!I>OoE;7~7y\ <[?j={gnfEDDDRw^jzzzV{(rdYvNj5|?/Mv=߅LV6\vo~*VDDDDda˩㎳߃>xGqӵvB.˲{8W'bٺT, )׭[ooWO}S޽|c[gyx|p/٧>)>׿ロniE,GGGW>gkǚ#훞nR[oRζen+KNZ]{ꩧ? ~g{ӴE?@>ݻ򗿼蹋y,3Yͅ])gfB??o|#RR'?I֭[SO=׾ 9u>ۿ<] H|;W\8poO/""""rWm6l9ogg}];KAя~??֢"b{9ߝo'G=VTaƍ=1|f˖-<|C"Is|f+Wq/˲EdӦM߿{w{w}~z>ӹ=?]є=yϜ'^O|SN''| _Oswp 7O|bj+//x'Qy뭷ORTVΙBܳ]P|6V{|"bHVcrr9^DDDDbyam6drr4MWm\֭c{C>1007͙c.~~^ѱf:y/hh???s{~s:y0E7|+1`jw^zG?Q TOvmi|3)9~^QU""oΞ={سgvۂM)4?x"""""k+_J iۯj3cdddt}?}!1ob>au?WLւ5o"y'صkox]O} #:>O2{/O<<?0==1Z^WqwsmVXǷX3Yo={;wv]|3ӨLDDDDd{gkX8qb՛Ns̶!jXKtV>sr2{[tMRk:KozӛNjk_Z/LV|S;\cxK^›f>w7244//o\RD.O[no&I/366Fe4M)NYK:wѣGٷoέ~)ʫR5-#LHy}q}e>G>s:/ַxꩧM~~kfM]vO}Çs7ַuEh4'?C=D$s]w_%2oq|o|#{M3]k.}o~c rz?yj UDDDDdY6yJ& )_ݹK^>TOw}|#a߾}g<,BtnMq̼}vm3oקyS˾SNcttݻww7~s~V<|_E✛fǎ-o;鮻Ϳ7^cxx@#kOd-[Çy8x zR۹<'OdxxXa544CYU<ȜbWLLLP*'Nw9r-+6-uZR3,?NcVUc~=0d@:2;άƼ3g4b\S ׾ƃ>O? t֤;y[ߺj<3<|&snVnnU;_D.%[lF{g&>=CRY,OEj5OZ;_[KsOd- LXqF~7~?=UTn׮]N^**צ QUjJ8`y,m)T)W=|{ \Drs!J脕_җxy 9; *r766ƾ}h˺_OO_8j\J(us*grI$J݅ *EDDdRP)"fyMJbqʥ_Y@QDDDDDDDDd +F~R9rEDDDDDDDDDi6KnEbq\T,vM$dYFwfP[k< P9PP)""iH)"(}iJ9o0\! ED|RP)""MXTee}UyRDDΫJRDD9uF$ED<>&v[kV\B|' CURRDD.-2-""""""ˡ"""""""""TȪSP)"""""""""NA:""""""""".ˮߓdY9y=UqY?ny3y,ebwSMJC2ㅖb(d-qyD# i)PJA϶v&N[M~oBm ~5/N:k1 ƚҘT 3Ja[v3 >ᬡNVF&4qz~J6\؀gݱQz) ˩ǛE|/''wm`uy|LP &Hps_s~ScGHOX>ʤ8cpς9`S69K;\AYK쇴 p`=Ajc㬡iIx\'N4qXBCJxyu.bYD.XkAe:[ ȎO|v? M N~?W\AqaOֱ?+vs_"cM ,U(D$#O?Chfգ'9G`6ԞyS?K6qko;Ͼe^ C`tS0k^A9dWR.߽!Is& b}q`rH&zgg)9i8Ŏ҉&';cJ%J7WS^x{3\owf|; ^{'xb|~lc g͜ A;$Ձ`z9Ű &d =~/M=/~Qp%9(zQeTG` %ز>_(%|g0S/g39b!$r8 rpp:{4 ARǯN}1y]vn_%bR?xTi}v?QKqLۜHi6>kiMYCg|>gR ☠:NV!_D-"s&ʾG5D[|kuq֩ m>s$MbSd6ɢ0/prʤyc켐ҥ96OZ<*|l7YW0 l6F ~7ӈ YN5b+} Yh& 6*څ"c5{~ƩGq#~3֤Oi]&k՛L^E9^bЄXI_q[ϓxmf !K$#u~z{pr@?$.MP=po9NzS$?cd lxo|-bG 60cp{'7@@[$&Zô7ohRڼoʎ>\V%˓!s@d9eC 뻙9i 4Ӏ+L-'ԓ*6q- .'wx"IM O+k-*~JPgq鼝w~eqR7i7[.ugh' 94KpJ(e!<,ͤN=Ϝߛ$켙\3`D!CZLLI'=B@'X@xلMpNf I Zs)yc[fV0`e#'M:v>mB3 M$MW%k;(U7ij ^<ωZNB@.=WPHZ /JDfCn:|<v+̙K+ (zb8ib8z_O*=47RәJ8g&H]ˇ4 _HGҞ| =^*O+D}l#IddxKD>lKZoskxŌ<0~nb0cU~lz8N2<:ᘛ~?_{3mWɏL4my\B/wՕlg"$z(p ~rov;/OQ~19FW׸cG<2[ox=6< dG(r?uFjqD~Jw.WJ'he83LH;zJTNs %GLtgs੣T6{} 4mr?d`2 I ֳk m@e ~kq!^fJ%(x>GO&N+q8YLqQ,GC9& A'4PazNBJsҖ ay{>7D JjT'b9-84V ^qr鿡qj}~iB4< BFͳ9#ԎRFكOӨ,Aϐs=ns,iL0P Cv}/r{xXh8AqzIjZwh҆u=,]*[OP;1ƑUy4oec2X,ݏm3ٜh-,mn@Yg<<%ity g#ZdSՃz}C zBZ'3֞4,O'97H&&4:A;Qg0t<9:vB0uiD^I爜I Bʔ* IK1YH;h& 1~+`0$YBgjR/`:յ1NFHL' _ܹ*L=4mN`Z8RZY}s % 4޷RERW&{9)my;@!6qPaSv8KlH%nu#o:.!ڤyZj 6&OIzIz,RXH6ݪp睊Md!dYr?\/096Bk%̔$' zzZFsQĆBVpſ?MNZ6x-qܦTL e/N\y`7g?G[hNP>+}Tgk|p-G5Aymo;H*C7e;5=ط?*t71U5m,<QOjjڛc,Y\zu FLTI,LzMZ,&ϳ%Ziry xX㑺N,ϩ'թ2f:{6:_d2A%a Xh4~w9;r،02 R Tku&&w֞,TB0"#Whmej4rc-d9.hN3ku cϐ5'ֽoecL`4mSmSϻ:oR"Zƣl(n_H]D/84iLYZBS>MT0;GGUa2z Ú&֤Xr NXٙ&nfbaG;O&5y@706$"4n8f(.c=N=M=)KzO^jTȪ8uq{ =}%R"JAzil9*CJJa E` ECʉ\@W9ThYRIڤ6昩OOnV`ר8yhRpa% {h$әRPfGӰ&"܇Y'e 45 m@6[~@\('8 k:wB{rjaÑ)&0΁5y b:$}yVif0kRN7iIFY^{5A-.m3C\N(]5Ҕ@LR% W+bK|NZ?SgÐ,'M ްҖ~\P)RNrj{CH&&Ywul~ 6< p~Fc}l,\kP"\_eZ ] $lN ){Q$! ^ 7ܺhhIv67 z}a/A^(?8p9B_K/&?mYַvwmumfD"TB QB #??1eJLxswns,Qy'cYkL0I֌JQzKo.uH22T:DQXFҳNVnA/kry]5]ҥ=kw@1cT]sTA AǞJռ}ϮOXI'8u5I:R!3=9a0{ 洆ѤV g'W/s1/qL쌒&gZTF$D'8/֣Eُ릝 bl!2͇3`άɾ 64a IGSmzLц`"+;E##-6gij(Κrɼ3%++ԑTȨ3*ܑ#>ʙ*ۗ_4#%IJKgH%䒅;-k*`cBT8n.o8 F.IiV;'5e!jKLW;?Db,q,dƐ^~θZ-v/@k%d)Ar )1JWTaqv;9 d|Kai%slry[Ơ᜿wjߕ1MRbD;-7BkE GkJt)|ɸaYxt 2b}fF e1 Q5XܴDJhh>8"k!S~&1h&ȒՖsV=Ŕ:Ju&g0*,?9cb\6k|[#%uS^]S縶..9wgSP8<"@{p +{ʟ<#baA^ur>P+ؓS;פV;%ZS!OƻuSd UcAҧd/K:8X%gJ`QU'i 0EY5 qaEA(}ܢ>SL$kzoJ6nsVٷI7$%0U- XsdiD{d(rk7 6݃YX¡%ryzcc"'(d"@TvI2ι)B;R6]I9&2Ȑ#Cht9iQ]X5mmRqPo>۩Kc:YÐGFl}#SbYP4ԇWbjJ3"zՓLc_%2=ǹ@H;RQ6qS#Tq 'iGʎi_"+M7ʹԿ-gQ93333333333[LgMy|a w$0dm`@ I)FA%=fI\hG.>?'LcG^QH<9:5-ݾqxp Q$=88X30)eti pARF C_]2ӯơ#k&gxXSJ:fH@wG޽sPF|*,Ǿ=RRN&L{RqR!ĵpHKf&IwӔD3R$h;cV`c&7WGAYH)> ">@qqK\)͓,Nj7M)Uil@Iy:\v >bx~䌏~G+~pzBRܾsI4yW?7w̵w;^*A[2̨JL*m-wZaQIN:`@"mA(db4TvC ^\`|͸n0Iw~T{mxwAR9ΚN--E-U)6<}p5/9:<`],m3\"ciiAE%"Yǥ1|qh#p0s+3tBԣh|HVhÊa,qJU3䯧nEVtiv (}| }7#XPpX͛e`b97yNt7REM|QPsu{#{6>?}~0ʙ qzK63ϓOػ%{sNB2w F[}; aX䘃D"BG++QdO{*\?Ll^Y6K?BhoXsb4J*D>%9BЬ* .򑅕1=n`AS ˈ \o]Gn劤oV]298|t9*q,UN7rHvJRsMtZHfLg-Y1qJ}KRnm$NrLE8Bˆ$"eBkwRU 4 M cQdҮE/u˦fŌަM5Kw euז_2Ɗ3q5oV sOe 4}}zS8 ={$~WВbP ZPKі>}x 3v%0Хneo<Ͽ̢rffffffffffm9sAwYo7LjiIa-o]Yr1I;[(r1HWl{spjxu7bK GRŧ4E_[uXeҰM&w)0u/3-3 UT ϰ@<:cxP~fdt{ cEp*URDj$)*)}?FKxu& GnSc (Fdj˛md}X+)"`Ife3K->u?wAl釆m\k"j -Yq0B-?7_TpV? SR uOu[g(r{/*X+I2ְG7 NX+ESBPrPَF)hARB%p=ðP[lUgOi9;.t|'{Ʊb5HP_sIl C&pV>dRWp%nlZ/kx8< }R9)b#7ԇ8:^/,}QXCp)%+FғmOʙ.% BM]ϥPbvl7.*G*<9i}c#"g?g ϻ+ae[Z"knjļ1SUH"R( 9җ'ݸ~p(qk-ΒsOURרY(iβYCфsʐOe.Z{3#g2E =xXI0NX%l8^k|*tC"22 TJm 'i-x]f333333333339ݫ/?py/&އr=l9Nm#$ b4!H$vE( EHp`j p>r%E`KI =?Ю>'-*98XF,;kaZF4ڲGg`mi{c ۤ@KkV"JF*X8_H<~LhרּTx|Rz)b\L4g:؇ V>$)MU@N"IA(R%,;Y)!  @bS[!Spg744rMVUccf̊o}[TSWN4f̯jH`ˀz(΀yS@pqёyx@RkhIʛkrs6̏^mnUհ/p K!QD^K^VUiD\۷z X &pZ&%RIf؜ahN 6R!\]mI$ =1`6o>:!XqSXSΚ3ܽy@L^RTZߧVn-o/Zx/b-~ȹ\}6@jUR4sҜϨئ V=]td7RXOO=256[F7UINPҘΊ>u( 0pJ,+b o2 Pt^'1,0,%Ј븇~LıCANBqЬY.Fvq?J#g<v {fQ93333333333cwhd pƚ:!fhfH}tq7#$ sVlCȜ 6aEIc%k7g zS>wyq:Jh;@ltXmzfR+XI R3!n-`"€؂zO+瘘O 0QiJ7Մ)J) 1)`#)oPIL}oϛd)&LBmJMz/R (~ ס( GnH,vIjZd18;cMJICr(ҥS7;E,j!NIw%e=MJ+U(VzlǷ۹ѬdcQg9 #7N5KJk%>Nߑ\_ G,|6.+KXtu]*ib.=BVVSGV+ iTBkk-( RXo-YJ48gRRb"59#j|_Ueϻg-i.h0p)X%"Bw߲!n^}Hy_)-Gp:c&k,xM,}1z#B> Êed+O*>֪`,ִxJTրAL1#+wҮqq1^0H?=8QZ.sK0JCן3+DւW Qɷ1[oZn) zؑJ!hpO* r̢rffffffffff7B]s%K4/Iaa4yo7Դ`u1pk S98]Yb(,2͑KP]eq3$-._~'i‚8]Gu3^%0~dBk0-_D wh;#d_ݧ3FhS." H8a\ ^/(N 9)( $0h!Im!UII27ITCqr^MO7lY9RxEJW%UKqd`(l=Q1,l1dBO(E:K__KeQ&dXJ.9~zuZԛ2'Q݊) H»䮤|h 8UֵMkS8Y7+b-9DL7%gci\ã ' #͸%鈕*nizC J ~,d/픒^bђD0 :ڀ)5N} 3(97G8IZڣITȽ/pSJh> E 1-J!1Iyp<]h*ؘ(>-;iy#\бtuZ)TY-|ϝ5 TM̶1g(1\@x-%M״nr*|0;n}@3m㰍"u$4FIPsY@v `ֵb$2Kq,7"*ǘ^/Rw?]~ós'Ej{M~`ydž@V ڷ{1x7էVv~%5|`~!7گr @k-I1%c>bX)5]aE(xYVRNچT"E{|E0˚^F\cHo"f:>hâƶ(cRN9q9td2c0ʙ_+9'ΟO9Yg<:Ŭ,pNL{RZǎ. \u\ל. M ".P'-<5ٗ՟?F,Jxu!X#C:p{DTb)\-NGc#c +p~mtפc5h1|MarWQvȷM Ls#!V}՚$Gr9@ մyHRlԢIy&RƎ|@$V0l`H׬&"c-AjE6Џ1ݸ"kЬȘQyXR8miDݟۍLmNw\uHZ{un^ ㏟F2>{cTU՗_LX6ݴפ؆))^\0`Th2nEWj-Vzn/ι=5+@8 i]x.ϡ R b0WuJ(1㌥]-nQpYs[W MF̘\w$%󌱰<5$s"`y-k/W}vw+JG uo1C۠_%N8M8h&^3Pn۽mLuga=9:<.Ɨxk9k530䁤#1 cY#R\n_Xq8!K&na, 'HMiu蘥[ +T %;F)tI3ic&F 2hm+Vt[忥]|Hb0t/qLj!\OOxֶ X;k#@ {I0 k#ҵ!5C@>HX·4Ǵ.wUnM5vq;>~5Z?:f|M%7P6DLJw;,*gffffffffff~=xyΫ;ց Ĉqo$v>I%C,;RΈS `0CqdUZ }?_~|cfĪ#jl"hH6+פoӾ.#:ezTgΦ= >|}pŨ.ur@Q⧙ &JY?\u/|g ;RJǨ 25$ǻ^QYrd`9Zª-XL"իF-, 1MC>x(i~& ȫ+m88!e}IYJ7釬} P3f{1E|Ae᭼QWEDPZ$oKp:UHίTiFhha,8Ĭr_A N3Gm_/_K>8Gո+bΘ3ʙ_ ˟Q\U{[B1e/)kQ8{+)FK b7JJ5jؤ tU7=RȤ2o&ŋ*2zziH&lsq{+ruOGd,+!}_Yz,s:( #5' .>+J в8kʞnV8'j yukW0>81cwBd]D'GpKd(ߦ> `͸:X?!ŞG\2C P~?ucy9DN F ۸%Sh܂ Qi08, 'l!0ֺ*1x8mXC0EVKV:߆oOHL7!(N"]१~Pm{ԣx@]a33333333333ތ]z[kfMKcN{!&y]4mU<爝 K$Āg lV4Mhd,HKEj">b흹kgVCx$bŊnE"x. 8c>erIh+#` T-_s;t(T%e[,FR-yHvɘZr-,SZގFRXDtTw)S4<RU4,"o%S>f\Oz*0iGK1?R`}sgJ2zON#9vo2*2˛KzhfEJyTN-5%j;zXaD0%N EEbCJQc&bPhB{UHa?&@nr6,νO9|NEu5{׻rHTOuvϗyy)x?P概M#LmRUgV@”7 n-t qM2+GB% <&JaO[6,}梻dOX% %7XVVZn3 D1"q_P&iC,#J!LGN3gR$-ZEђAGJ5b|B{w'Y!V"wMJ"S: 6xɸI5[T-Yu^yto5n|C '!,(޿PU%Ҙ[ĺ m"mYxXe>ؤB8V,y+3b0v~AaGȑ#G9rȑ#I4ݻ__#eJ"H,R U`zJ]ՈM։1O2c]0ΈDFlX+9=9_ul-:wSGWnڐ&O+JQ%j=]#-ЇX'T `7k8 %ϴu 1S1vfvVzp]ogB#G9rȑ#G֔~۟c-^84?J$BJ=%ZHev-+C1ÉŋPȘwl?ܗR"Ϯ6кF{dnEθr*N2PDV8ʲ˽{"T@*00&_Bs6T:#0x2 BsBW-ŊhsFKTf@0`|4MQJɤ 2 (YڱO|k?(RJO{S+&+ZB>8 f >J.ئsp8 )"#L;8)Zљl@*P Ƣ(1)SVw5hy sY4x4+DbW 1'ʷW?8ޥjk" U)Q+yUÿ~%Zu>U1ry]k?b!C)6 UqChDŽ(c0S OGuK홦zwA7 3[,LWPF-YxKvy%adJp 8 y@Ӑ%KvlX hLC (:qNȵw\lF:Z:0nv٩j!#4hm3\3٥-SpX ,k2FIoO-kXznv/3 kےՒkFDZ(Z]/cc x~/9 g|;~]{^̞XV$YP\OW\OW~j?'c㡑tUeASϗ]Pyȑ#G9rȑoxu;XӞ\ $bV\۰ =۸RYoJ'YkDjn#Kzc y-i3ѶzMK1™%;Oݏtr';L:tF펓mǐǯU1Ͱ=K㬁5;JӲ1O?ĚX. ##Pi䚨O]JVJɘ\YكH)P=O?bIRRye*TJFHE0FO%1GGe ں3/S5 !4rG`s4vb7m1IY297#hz?eUIz% 0tE'j7G|3,[#8/t(˲n",a ߟ];NT?g g1Wb&h}&Hf1W&E[NE*%2RCGfUd(Xe~b~;"s&,0-t -Z&"ۧ 2!?ShpQwE[2=fͷ|3|s`g+Xf+}"a֌C avs,ا=Q#I3xV~t&ݒJ.$z,)?zjzT,ݚf䧛~@G~5<=qXP#Df/KDFRPyȑ#G9rȑ;ny /^s۷7tռ-cag/r`A ٠W(J[`w{jעof*?׷q"dMO 5FEE(L#IN:R lH9dqBk i'[¢O\Xw%T6o[_xcUVèt[We ج9kțc(X:{y%a9}~ =ۖ0dл7)m48R=!SލUb4ww:Gmlݼ5ѼFXR: SQ}/ތŲ@@4 q Hg=> ۣ?0B^Btcai"5,biP1٢fx줜EJu"eL\2 w1i.r)b') u8Hҏz&G픨΢R(Lyؖ Z38Cg<:PE;c[h"ﶁHO >.Nx,|dQwP m,2 C4Mξ?,R#>x/RR&sg=W;ʎ65K63ԷZ^##m99TTgʲ˜ym jR`q9te&5ư9ˆӵa,7lҖbV%GOQeXq7x9crW(b05`K"9w,[{?:_Y5g9N<?. IDATo]a|7l)]^ɖ_.D*'-/LqqDַh!?Қ^M5{5۴>).HňYq W+k,ƸyRp&s]H}a( *Ò b=9(;şKjpyn89 G9rȑ#GIq~N0޶:ۑ6䚩U1bI$gw4ȜM{|xqɚQ_JU%vji܊b,M,cqLR 2{V Ғs gR ]NzTb@ >c'-Z\`LG / E%uNͼ/`)t)k5t5X;!>"v0ahMv Uy){50^9ؘQ3|̑w/R"3 cMĔ)(;Rۦpܤ-Ea ^3(|up 864oR閡)I m@Su"׉5^d/Lw [ǜ6ucYha]ljypauϐ%iX(H;Gu\7_5ڟ2~̷?]뎾UeG޶89zR1ړ㊩X gn0qn]#qCyFWH9ÿgGR\ XuT5s17iDS$!s)\P+Z2e09RKBKFsc=ZYo4˘uB#G9rȑ#G~#Ro~xl];38u-۸7Ig3c :z_0RJ5FqRvy$Xe IV\ãM:TB'W2K!VNXtmh1 FS(䒩 S,BŘdZbXDkX\fd(˗܍=wW{^s|A]jOՖ-?! V96-*c#c#m5T 1b(Zrb ū50,̥>|gia%4*zhv!"8{t.shuA#= N 4L'HcFF&3*$QQF ͻ7%1E~#/&P1R9i bA,( ĹD[SU:?#B a.I64OEʪ?,R:/&DJ0sp" (r/B&Z&O̟TT\U# ֢Fa}E\qƳ/c:wf$-, t BaԪ 1pe[na&NBdJϾyxB^B{=p8$L{J0sLeUBX,O?zo+ǕX",n;,LֿURHqǰT12ԑuEs κ3Zf4b(Z5_u.й#cy;!D-㔱x.k^!ʀ"_q]j6鎪_M߉!0ǞDuߠjţƓƌ ؔh4i,}/ ϗ lFM7DD eT4ϑ 9W)H[?;X g ksvFdُd;G O%0H&-ndD](T9rȑ#G9r䓨V 7W_[г xaUh"0.bt|;UcDQW=~O;B2%D4E]tT}Rt--u)m*mzNaھC9?6s9aݬ8iWT-Kp5Ř3g,8MF)Ktݕ\߻΢ZkRX ^fX?;õ=2_KT+z\wg`"7O#sVy*xX 3tIJIq/Qk^\[+ 7/㛯bbxq:BMƀ[zm Dԉ߳3Rn3g.tOR/A$r-Uw_ X o"V_4\R|c>nb&3JͯX,)i5E~h: ۃ  N/q,a8a͆+ =ZHso%Tb5j:G/BȮ_zO&nh Ɓ-Ȏ~M\a}[ AomR* TB>a0'T+)cRs"2)~ZTU$l.F Ϫ986`g6^33Ʒ,pa%q .O:=Ͽ_ @E6(~>`߆ h4J#Ljs`ǯ*rw1;&kmO2#'DV0q̭Śz3Tp!۷!PȬ&.Ua$`UoGLJ83"TEYx 1Ӊe6+ipOP'K'1c-T e{u(!5gZ;as[VbrG#kRx2(h9)^Y 5Uivx[|<RڍlMO>z+ ֓A6{Id^E=C^1Sv;jsNj5`X+pREo+%I-V&*sMme[26nR,saw oFѤT-ypͰ8b#29v-Fِ#K(EԱ :sJ ~iG+8b$6[fxkf*pL?'AQGuQGuQGT1?orq"cY׫?H9L9sfJcevQ}~+אK$fXud7܇;ML ) z\#R8ȳgܚ>6` K a 1aZ+$Yha( :b\8Fj]Ɍa#$DV4UPn01O/mG-/RsG42D|nL孇Xc jа>G`*Sg)E!9e˘rE./6J%br!Wc]ЃkхD8)8)X eq g8!;'N;.-Lrd"JXRNxYm7$Tja蜓b,3q!*.|M3O b>粙x K_w<Z!cP2/GsdAa,m\o}BZjJ6ʐ{rxyJm=-SRn55l٥g y9%Hv-J9srx[Ni AX,Ծ›Zା$.oJvp:g`P2i 9S }ܿ3U$1CfǣMtlB٘h}aVG\,ܩcL ,WRZ\3Xf:Ұ/)/x rmu<z5c>`Z-G$ڎU欺`s-81P5ğ ''%HO!SP҇-$HtN=qRh 8QrXZfy|.2 (ǽ`)᭡4 AGnDHO708R$h[SSqXbACm;/qY2(kM&br)815 Do{>K||5Ŷ$1)B`p;4ƾ6BbqŠ.R *Tt,)kFBkP(UŰl̳7U+Ǧ{ )LEVcN1BnS)8)`V`b'b(I(?Ǧ顴܏ kF̎̾8a{N~ހ7Fu6:z.~ʳ<}"@sj`\(h>J9S0 a`/@{bUq^i}6nb$Ml8NLE]U2)E} c8?=/dųqZƶ&nO2)8jA!$UDSFuE<7P䈛,k![_.D SJ T):L9Y`[vYj?;mK-#)dU亅I>ܳKXf&h~ԟ4Pj1¯n˅R~4mMP9E4,?eԶΰ~8B׋j!D(V,NgkvUO z»$Ub 18pz=GniJA_4Āi-Td(4켳VqT2P*1*ZeMccfH)+WutzI8MEeP w.j~sCLKG[߃u=Yw #٬H儐O@ YS>!%N4nCkogmYا(>\uMMk;uq"w 9M~Oz#n'mapSq YREZjut凌nE+Kl=SHW#2;9#+yCe4BʑA_s*kVTq:ʣ:ꨣ:ꨣ:ۇ<-ur'CZ:bPBq8v\H:>?'˫9 C U)PS )%R 8sM#Nk8s-[- Xb->i-d7m| OK7n<@^=ơG+[ +TaJ3$b:b]j67ZH18#iDy @ J-DOj}ְN?L)bh.d׈"M( sdn9M*D}o7Ekqo YYjA{,k ηm)@V,)1H`JWse)mo_-.L l 䖟uwldd-Gݞ=Q=U_=-PR&^`nR`py{ )m̤fo9.K-<|AYt oi3Uzm/CcvMyK%D9S^Kav zSMm:.g.hț;e*K\ɚ`Ihe4Xpb ,&De7 VX EG|;t6$rOXA,ʔ rfo:=}P,P#HX 1TNjpf6TrhXmr_9>[Fl_aDR\FVHiMwt#SDJ$)$#.n^%|*dIccq%DEJ1`3O{>T(sTuQGuQGuO\Z27_sHrْئ/hg؅=8KO#+>v%R5} Ϩ{vDeCvނL L98YѪ %v=)z)\oz~-M{ſ7A*b9rsL⦧[4 kjaքr&gZð/ɩ̜?iQ3G#nI_fO :D@0+ReH1=ȗ4pe,F @Ͽ1P?0!hY4ϥ8vҒsG~ [r֞k$y9hVk  eH۽`KFB}ReΓb**H|E̙ڡyk?dΡa65^ך}v,B"t|cbxĔF2JE gM-;l H}x_er][C=^/ECk2Ig s*!L_}`>49}k^d2Zildنʐz R -|38TdsRLX7+NcYqx1TD.0z9' %]b`6DeF@Mʅn{3>lQIWooo7{[n 7;rXD{G?dQ!`!L,m1 (Ļg#Ͼ$mai[ƹebѝlNo$В qd,#=9߰{Pb)1<{8ZQ]z;]j#q,Q-|ȓ9$sUɌ)U%x7n_*:ꨣ:ꨣ:'g`O<yRncibVnMNJOWؚf?|G˿hD;1IzK99q A[?!RoS&toQ$:̿ YM"J{T3EyEDW$ T/mwLggzI!#15]S@T1cKe n db&j| w$g8IQ[\?Ak92cb!@fV 82!ckqJvoq9&46I q. ^Pmc!v=&QɅ]X/`Qǚ#q@nS0h]aRCS}/&h_ W"n|pgNqۛ`jI$VU;ъcV\W 5W͇yd{e?;eyd=W]lO9g%9φg<QLk_mb¤.Hu)IC&3qҳ_>25veTjIٰ?oӝR]~we)!}J( jsCTarmj/ 9}9ԟpeܣ%Z0gcUZD_`>%zrAs6 9Ї=c9s\B$¨9H8\N',Z;gZX֡nSc`0FpjȎ{5WXۥ#<ꨣ:ꨣ:ꨟJgC׬?Ui|K? )7v.P(]~%tfA#6 @ٛ=Ü 0H!㴦҆)5MT1Ld(jb7,8>fnZusEI-c,8BW wN_RV"D I;:=]я#rQ!&ׁ:8uܢkO/a6Z1Q!U%\c |Z^B BQj3핡e˃ă[r0CǦBW  -Eɵom추y<X}Xeqk,Qnx )͘1ߞO_|dC6?zz1aʠ0Bqq=Ea' I {1܇Il5McO YئL렳Z֨碹4@Kf,O#k|FE*QxRإ-cVVy5">2a0|5/H݅KOj&Ớ}AR<[C=. wc6qنJ|/}㍷R4c%Z5Y bɤQq+J#1eZ/Sh!ƱI2O77/XwT]}ې򨣎:ꨣ:ꨣ~jR%ge[{5x[ͤ%|1rxjN?k:rK$:XAR2i\:miMdϖ1C,˖7s]ꣿ>DI mtjdi4 c"F-!@w?qC;cH#ei23,Q9KsN<)EqYBɔzLiVfήkDy׸yp#ZPEggŖk?Ӎ8K)Z{{! cR%a壢X ÆR{cwq/s>7%e$`Yh-Ȓ2uexB(sΐŸW?N \5 ? x03}b1CNJ۽UOM‰0V΅?1s#4,4|̅?zӚ&edDؿIV8Øu`D=n: +Yq߆N;Ӈ*#2 '甥SÔ3 oDU%>f]07^KXއ(j.ND(9=pKmka҆ ZCOы6RK$4D8U0g[lMJm :*s*c|>{J~j_}(,αb"k?К! zMcIH+~a"045?\|eԳ {r),ݒZ*L1sQ̎ĥ]3@(̑}3thmCckT(lJ~2bY%b#V,-D: ZKz/ % =Ye~D-ow.eг< Ɵ򨣎:ꨣ:ꨣ~BR-ı_2\.'Ƀ3{o֛\ {<1@G͉9cN3d<V+D q eґHHf!PQ68p:R l(z%B.&lk!٢EB wgh)@(BkSQ g #h0kZ հ =yuFiN!s!ɽT ^*ENsh.ɠGj^w-*9'D3ÊTɇH)`bF%HzbIL9Ql [9/)sD9OQ*R0Vh*hymL} b Rʛ1QWRrĔk0N6(T0cᏣ`@J.H.Dk(ИC{pȌKP$Q^K*:BQC,BK)!SC{k9GeL]Sd?ՒV?{l电_ٚBkߦ+E3}s=^[|86w(e?*=}Ӛ_!Pbg"s‹e9<1Sm-Y29[΍肰 ~MckZND)3n5o|ô<9gct cB)e%@I-QGg!{~K\hMIdEX7]=&[T#!ؓ5Eyֆ c('>ibspXX|-rtY5˄Rh]ڜ>1~RK!1Z~r%@-ͷw|tǜF:ʣ:ꨣ:ꨣ )7'.Z3O3j|M(Q0&Zp]ba1#5uXXCqP&iCni i2USuF_DbEË'C.ܲѨ t IDATf+6-Ppn)OBU%j1-Bk_/?_UɒeMbG"IpxjS#RMZjvv'i`7X +],Qdd=6BpI=F %3o.CTVÌ/cV4c6>Li"ja;n8ח 0{=;*xag4=F+rH@clFF뚦Hs;c ;O6iDzZa$P&g4N8y6 l'5abR‹[rqzuii?Kg?2wSePYKePĹab!QfTb,/s&e@ԑBZZ_aE82;R5K$tʯm}ȭ7ƒ&10g82[ &[C{bay+2a?ܱH+ 3)_a]e?("HY3EehmCk;|Zs#,iC$3Itl礜bR 8C"L;}]B]@qH_yW4˚۟pqC[kOvvz@bXkO[ͪ٢\A?Fo=AC B g'ʯ7k^uG s1 [Xj4"LuPG2ޔHxnRnmg)b#y^Z vL +ω7(N EĂ74a}3f6lR?e-yj*|yjNdoo2e0f |e, 2anm8uO@ga:;^d%#<`p[F,Z2 6*G) :czD3%#0jĄ(lJœA7;{ #uۗT~\bqz c",խH33Fg[gTDڸeX?3[mﻧo,Gk,mI&T3͓Rϋ>cݜ1 {P8ci܌p/9/hsFPf`v$hs3T̪OzsȆWt?kRAᏘ}'fE|W/n`|aЩ[""/Y~#B,l#Dnjr)XT@~GN-_~ q {FLZEqf*YC D!bp3fl5MzH%[Lyտqw/?an%p>1x@l:\Qɔgu| Yŏ8t55qbqbPuQ.m!y͢QIh>G/>BGycVDhBV[zIjm̃r?n0:RGξiljf&Lw9~}sStΐݭ,+B8LJTZ^"j :*1I,UE4|@}aS N>(+^Wim|)<Oךv|K샩f%YH;bּ'RSr ӸfK[ z.αHK)"wL%=7-o#~(@7̓N6*PpPʈTEJ_0b|`F*BVe_236Hv5B ^1K{1ȑX_.5Af.G&ښ_x슒FlFr%N%Lی>S0cPjjƎ[",8pL˒P[4Ӣq7UɘGE:v 26~ԛ\O"四\LʙC'iDB -#T\9uDHND7 BQLyկdy\pCS;wJ3@m2k[sFLS@k-3Mҩ )lpNʷITVXPocK_[UXq:Ƿ5^ Xk!Ϸ+֛5Zzuyl9 avXLUtf-2_;g 'G|9pNJ!t׊A2Gܫcn"AZv&H*=K.n10BQmB կ19d?  ˳{1?0PP BQ%Pdž2s̓#0ʈ)Yp6V5y 9>ߠbhl'Gc1FJ\T @XV XYO[FYclbBHDrղ `U7w\odR jIA="%)#PIu+9g&Ѧ`3s ' %K :]|$JQX )DYGS58筕r3j!KaLT%?]T L"e6 HI̐2=T5T»:DJx5Ϧ0Ovq2؏B+ڜ8ƼL%[rL M#(93 !]gx+1V[fp?+ZQ.t^w #ʚ 6r2kA\E9Cwu/49T"+sOإxF3қT<:RP}v–Le Z)Ro'E9ɻw՜{G.CL y*oDQ5oޔ+Z.ix:$)lXǧ&TQ#~`mvqTMMO!o(RޞpLp^LE^"2|{aZBVz\k36Sz|-r}du񆁄2#Kݬ/9a9u8"׭BQLS,Is#J޻>vysB): m P bL(I%#`gVN{ a|@gW]2w DͷP(xd )Rř,KQaEҔ O[^>`sqh7+|(NMFZ8phK.cNO~teD 0q/6Kx[hu5`NbS$XԒc˳2#/D}{#&:)~tq- qe:cSj 9g2sgXU+2m*pTp3T< ,^ }rq0_3^S P,vkX.jƘ) d>aFPL.5&OZܽ1 n%|o 6Roۿ;2s$BHS@T!&Xp-0ܗ}~yGz Rl#QcƎWaKqRЙ{û?&'Qي4BԐ fH=b#buF鳕ʓBu0efre;z8G~ՃPNNH?d<tcz&lT #v34 wt xc"xLe7HYiSPS1g {5-Z>I%i"o/R¾I83?"D#+!,˦d6725_coWS|@"{KC-{\aSS_G3!RѥB Q4*(F,ŒT3BƊbD5DӘ!H[wIN:8jYF";fɈ-#OՆ+ܟ pVvL\kzra`f,"7Rإ L\ u<*`1:m2[ތwXv_:v9 #}q{TstMjE[woCm]pJKԎlG.#_a9u+ZGm8Z>`5mj1F9s[qD7ɉ]xos;wHe::VF(]˩^ٻF֗~5=\~BKΛ#^㳟]0|#N`2*=@|6m=322s߰KmJv[bVV1"eQ4,Z.4C厹'-PF`)t0FpC1ɘh D:BZƅ4(Ў󀵯%E0q}1F<9co|)0.R\;*[ !TPvMr@ڗYilD 'ˑ/G*\6WMOS?cОE]Fe(h#s VŵqnC*G,V(8 pϑmD+.y8f?f?f=bKHPX3ʨDٛ+X"SV 8n4ȁ߰O#C7APqyb (*ʃ?i߲.퐓? Klr(1GafDVn13y(Y R3 SO&mAh2qF⣳&@3YX̜Up1$Ƽ+IޕHdޝY_(ٌ*V 3`ēş4`Í\&xՂ?U_Xs=j#Î\޹[|Gq5v*=;8*8p8ƳoǠ[vgaTB9wKC*A[49C6 q kvK5G,Qo^4+D|24`|H9 #o{OB?#ndspx%:1=ʊR?Dwa#{uf9;=fhB.CAUcN1BIRX[h% +r +-} -בHHbY12 Y iڬW1B{r?ZHj¾.,ox7 dl]OLyC@ 9& hno_fGbfV,["k >77l: ݢXseQ#dlXk]${8KEDs"r SkqQPCϮ,tƮM_\Y/w;c 1_qЫr[JN~s=Rqy:. 59i٥3ᄲ}F>2 5`lL%RV9}y֭9mNqփR0re{մ Qd*Uƞ,"\UK= KQW ]Cp}AJf9gq)8'WXd_ wtM hMY£nde+ <-kyn/jVM1 ݏ[pF̝N6]ؑBƔ=$|T^`䢄I7+g_}%a{g9Le6}(cg}_;v140SP):Ù1]%:#S:`?n$ov^Py-RZqS[ħu7%S2O.{3_ܱZ~,5uovJ:THص%iaBcԋa> qI-Fc(:dn&2C2` .Kˑ̩t1ர~5Ԇ~lk``\3_҄5YtM:hrGEd~׎YSQ+VoA+G6ssf׈\s85^`JE'xqCgY{Ꮸ*LGRKv5͢cs8 o|碼hS.\p$URB lnzK+bpRyO88N{2SӐNf},bA"Ɉ* qwOxv%GVT G6o;9KoHZ@%S XtYfΌZ&}}FI'Py8p)W/f\_P*c=eN.5x<ŖuZcgCz힓41jg]"7+"c͸)#rw]Bjf~I*p,ek6]D&䢌YIYv\CHnD*q: OE@t.kDLpMm[0Ơ%1OIꚇ? j\cٓ_<C1 vvdb$beDڟ}nX *Cx 3'Ĭpj+;f\i'F"dJ: vU.o]?qUٮcAqǕf\hv EI6 k9f\5}+ f [Ѫ)l^bʔ0tH#ted',O=Z9NX!QGzӽ_H[UpK-ì z!"1R@v"TB &25DQxCMH #*Kr =%LyB6ۗ iT d QP>"J!ATp퓐G!u i,#"жl')1O>sR.лq~htkؒҀz#oG2ֽC|CwTSO dRk Ag)k$ID+ Uq0MGiK ]~I[Є>h2HF@'ƈOo&2&&"_V(Aⳕ}U mEa%2g &ȝwI'3M%Ӭ3<@zsq50ĞdPbz};L}m4Q1so]4Jcc˴V$-d&"JH% 1ЅsuPa!y2&q^a_7?\rqu-70]DH1 aZϽȘBF!8|\LWx*e(WCv*ٳgϞ={'Z6S֫Hd=.ѫL"Z4! ]Ru[t%d ݮ5Y)3jU4a2A6m&uƢi=%" ғ'LFHJp`j+ը,b~2ϐqhPij/1`%CB(R:T;{>gBvB@R\|!*߼q[eȍ0ozgɞ'ur}mM֋9aE2!iκӱ6`u7j/ 6 ;,>>FWb&li #330\/~{H\وIyN P)l)!ky-^mv(61t$"Ŭ6df\cٮ^;j'芌EaQQ"3؝[(0V: b+.gv2νlv\D(ːP@D)=ڃ`+"}_M?#B={ٳgϞ=߳:ظIo׬-FrtS`#۰c;`<8i߅8}Rh5М_\*lݛG{qEzVHID#0 !PjGU\<ز~|zwogRhݺMH=]uzՎUEݴ,n\m&IEyVw5,s4 ]%Ֆ>`-z OJ2$[1TPkDv J"3s±n ~5 6b#Rh iҜesW% A44A(_v']5tz -2GYW R=@t ?,)糩|:mbCi]1||(r`HN hͲ:ʡ tdvUf &*_VCJZng-H-$^?~ dLd^)>@?~1""(~!.8N.Y>zgxηCvs7lq{[$#yO$\[}Gah ADl"Ӂd8|=_e|h:1* g&x^4<]߾ _w"S I4^uMBȍCFn+reP2]<_c zeÐL1|mZ{'ʋ(rF)Aɵ)! {ٳgϞ={R`uO>Fɒ)7ns'%WL).)[sV 5}q~P)7\><2&ΊD m,rvO/|~e?yw{MAcwVuU!9 IDAT(vf6&6:1HI`2HΟmX^9WD~ǿQAES9lc Wd_oOhV,>" }'Oy)L_?aqk1֖D~[%G[U?}{?<};?y;lΖv?Oہ?|E1͘}&#\>:dE]QS~?<8)l&)aHydu2z6:}6@x-RZ=V.]_+5L&yf:Ka:vlPJ,$P=/B5ͨ.v!זy='6l_W)>RQܮIah A@De :e!| E6QEPO2~ʔhm_ c/!%-З^} XK<3Dqbq*c^CRL]$,sXMh° 6+{dII _8D6}Ub$(=t"(!S%K#|WȪ  ڡ`ʜL@\ \NzP)qecKa,; mܐz_f^ܳgϞ={ٳ\~j97nSAaL݌Lp\ߠǔ*\ʒ!D :`ͫӀ$3z4q!pSG]>tç:WoQ"RZmgW&p* ^o703w2N;)X]ۆAI}\HV<ܽ/=䚏vAx>?of?1q-+>6 zi)j(|tvx>\]9]s>OmN ?D,7_?fq䣿1O{g1?ٯ~ņ()NC3|99)CGzq$&l7oe|.R $̀t*L/3(DJ˘Ѧa,h)Rd>+Xq4-XaI]B˙Q|rܗpٍ7qonHe N!BH"7҆ő x_bĤp9tܥPwK;@jic@;U>8TGeAVPwXj ʩkj1Vlv-F2%*PYm"0--2N'/BaED@68/^,2$a3,Y%hQv'qlmIj`1;CO} kV΍%.8 ֱ!K,ԓ a=:jywYKlj;9z. ?\~i/9:W3+'$ÆwYiǖmZBY6 a^}[8Idrí)ig->x _QcBŎA]¶U6ֶb6s o9 S&#%Ƨq1jK3Bw=( $Ȗ! fcDbYA/G6Z/PgϞ={ٳgpcV_0u]`g->Eg(k899%p}Ġ9`ƶ \VÊ,&f^M6g!S~􊏟,'>Ya[2p2(v`w..`BH& 雏(JSp{JOOP8BT:f'S/w8򪥘y/};GmOvLwz 'v-w|bVwֳ:]r=d.!@yG|P߻M=¸;rղŭf[~~):\{~'R_)=h|V(HZ]Qv.F)I9NCC a jkrJc5N='v%!DBR;ՓFF?9dL7kJpʒtKaA8YR"@Gb@CSB2 x֨%"A%+gi37J秈1ܣ}V5 tJqRIpJq`'K(Qނ :2-]/@&RW$>$2kC^Y:yI6tDymʠRNaְ,XK&9-h.)!7J).qŌwipa{႐.WSb6&>8rH&h}"o jXsW1J3M'3"pɟQ-?%>DwX3'DisVÖeⰘ3+JV5E9lh)3Xr&hV,F8;5d.]An2D6eZ:m6JB6y$8)M[;3A4^4Ĉ r](~_)q$k2 kcJhv1UVB2Pg=s%]ZDApIk YRkkQjlMQQZ}FiJXҼæO"j~vH#N)Znhη aQ j&łA.KQ3 oQDre5v`29 " t͆v{Đ 3[9$b+P:ҥ.f&C0d^0r<=a} a"I(wlԽXk4\:5 )5]xC<&UuhIJ&T:UK+sQ`sH:`sL b B/d:u͍#Utt'x|=࣢FL2 RF%}1[gsn(Leگ؄ Vb6'~V'? +j3PIcUSBf-O-[6`pLu~%Hk(mW7+Aiɍ9M7B(6}e(s BHH 5O1^%2Ğ! ,>{}93s,yXv4PjCb%ݵ@bmNT?a?"e(t~m1/PgϞ={ٳg }f~f%7wzگnWO.<[0H}9}tO!%IO>%k bL\>S-D 11A-(\mΐ9Ygkʪٯ9gzXӭ嚫Gg1VP1՚vsua~2O҄+N?rC^~T#&$35U)% z$iČS>)V CDwj KxVIHuK8)!V5PJ$TODIVR)PT* )c$vkpIk2[p09`Mm6,Ł"8ibUӪ+߰ C[xk)TFzTvcU &)UP52Cy9(l:JMmcXPDEಿOǶaVϋҔyIs23X1E;JX3,@"킇vb$ c^T>y>EyB)Ee&f RwS)']Z"GK޻5t5yܺC8z^r>|vz3ypb'R.,%,^5lI g6$R 4iђc/~ ~ZKVy9;Pj~$Q芭YTh۞@5vgɰPD8 t0˧I:lΐ C4)8mu`Mz'$>|EI( %"%Il}~s=9g1_0YRX:Z€1f[mI)v‹}|yo} $ɰ~OPgϞ={ٳg]byv GA4-L( w,=4MC##Z2ndR HJi!x%e aMfbu iuγ<:bop]cwn:J[pX̨mI߁Ib4AЕ%FcH7lJ3q68QڜRCk4ō9Goc m;$ݛsâE>CY@k @9jb{ ŤdrR'ňJlfߞwQM5ɧ)ˎtNp!լUL"avT|buv(Zk-=zP(asxkA>)H}zP q(,*Qkp H>qcex%OЍ!"Rk2hES ˼3爱b;h9ƀHK-A x(R (R/-R{QDcP)(|ʑ UdpQlj[ӭG)QqLf2DtI8Si",v$xQT0[`ƈ!&*!:ѻo b=&iA78}y6gbjmK~~x9z`%,GnW%4ޜL S@rRȫ2*)sScȥ:<|bׄ1RwfB1lB{P$`0z,.U2'Tеo:*Z0^{S!t1TY2dTUdoD A:|((]M63 F[hCxCd}uós.88s&mIڢ%1 TV~|Tf;x)*ٳgϞ={Gk\}NsJwT9Q1qXKs )@ar:?d@lD:VjEi)`'u]J牣2@]C?,Yq rG,І1t9,sbP, Mr]TD'ч]URXr>jyרR)Eq8xZ+|g?.jܒk>3YE}B5v)loQG'H^atFXidr*`3,Ǥ EDGPڒcqƑ~i8Mc_GO=NT$SmVi )T"E֜D蛁ճ-'[xキ9xoBoWs@^*3eHk![эҿiAv?=B={ٳgϞ=()F8+䞓 fk{ e5nW `t9KS2>#Fg9DEE$J $Ֆdr` }1nNیzr~.HLB]ex{zZMbK5]iZNۆ!iV#,nA"C,9) Bh0ie-96!@1+yGvc'콻dJpvVO-JiTܩvc(XK6] (ɍ)} Uh\؆5C;e%Xa9mךCUw%7 k -(2K&QH@dX3?< ŒMj&Xzl>4 {.Z_)M$RB̀L)$BQR$H ҜOQKi  'S&!/,8zJ2JxB0Qlsa|DDp+EhtF S 4& eq\R$;dYq}Q\F/B{Šo !ِ "ja~]c̝&Vg@Lp` F.Dф6˝S.6+lah_zgYePJJca?^{oi0`b ڏ*xB]O&woߡ?CI;1J0YJ_⫵:E7$:/=e3jCFOЗDo @SXh4SV|:J#r ȝFaK˴HS)IZMg7\ka֎^^TNjȴ41 ceH4MK.OuY0]Q"]uh$!heQ$^TDѴi]͵У3^^ܳgϞ={ٳ=~%*qt[)\A~P؂7xzr!L7f4m{1/&ꘋ)S2k9.(C.N|Mbqcޝ;߆Y6a4mӿ:ajLl=V;!RRg%M=_nfGK@S TEn *4cZfMfS|Ֆ Քv[m )ۮ2LPpگASy "JVzC\b$7zRf N ŵHP\.cLElh|EHCJ^H^L IDAT=I(]1˜8 DJ@RB-~Pd.Zk0^HN3EDCR"7ߌKjp$su_V$&%* ٝ;CLTѰ<\._+]K~>( <Ԋfv  ivU c/(*Gc};1q5S7himh_; RLltOpgO:B?A6/9|wON>Sz%H j 뎲gYfYKzl 5m߿3L9C7)SJ9}ԍD e=*.RЧ(ԡk`m4d+;^ M=6e /Kd%LAM܉1zOh7 w?ßŏYL&dx˼'809hiUu2؅xI]5;囧sb/TٳgϞ={3>,׏ygd-7jfw Bh&Y}3éA6=Vd.]ʼ&W'R> %$? Fȥ%Os-g"?!}"Lk3(ɃZL;fٔUNrq<}0h nH>{ Wȭwʯñ%VʚI^(R:9ΑU(K$ ]7{6t+wd6۸sNq-ΆgwW SuUڰ !.ƈ"u;їҽz>.cU$ &L>c?ř])|MDL5C!> SUŖf+)/2ԛDJ ܒRqD#XhMUA)ӯn Oo:@(~]۵W+TJlo. u=ݰ02;@ZT(23!_O4ngEfO]oOgsfV8AnY w_ڢ% 5x3þUY(AAd{^g}kU)˥Q[/ԦaXVYrУ4c2wtPXFi#۲tqWb.2Ԧef',+˒jb j{ 1UqhU*E@_hI}LXÿ&fSz<#1E:iV#ET)mf" 92$RRODWoPy8p^f_6\֨dbq( ٤-y@2Qbu)"wRP*L8e .< O=f2k0VkqQZFJ-,9js%%! &#IzP۲`qA}w TsuYDg0">c_.bGʁ[0Bm}UÔ#\KZM6BmR_oQ9?y 8Tċ5OG/ɺ=7~mZ48_NW]xMi'5_v4?:bq<ܽuCMiffA}gg]_z7hEL[+Mf}Q]I+MejZS1W_c"z0<_n4j{q}lNI!K&V (LSDB62%;qPE̙K1Y/1}M%mF ՗裿B-$膞ot@5&̸ZӽcO[i.X4SwGZ3+՜.Us`[)U?WL)?ONT$EhKSUh3@=Q&;.xVͱ2DӧځvׂVܫJ1%]1?*q#]*.s7VrG T8p8g n볯ۗ,f!"R2Eʐ"}HLL ,A&\ƚ& Wt-mJԵn3g翤?5_==yqI?gꈦn[ZeAYKis{ZkMˢa@ir5z`yH*׈~WTHpUJH6HJp SӼG#dԣ5jI3C:!k)zESDysl`idR2 8զh-i@mf( c7NaB6X_ (t `TĦ0dJ)ϙ5˜3D)" /m9Hi!YMڜFZ[AJDeC3I^FP"86J[JmNeHDF{^_V;CHjkp J)T6]`*0:$Tdke&1=Z X@ȎӰ:_ݍ{!ɽ튡m~t@ՖVhUh0ȼZ|)3'ݧR+Fii,/iyrUbbZad9WktL-f,);ՊO,~HNg3ʡ!Ui%5jNmZl#t3Et>A/pݗ4P|^Ӟ+D1FtV4Rن׉GkՖE5E+u}Vk<ASwIׯ6t'?^YtU>7*ଡ@Q9զN)A)YsFo ܂$ӥdP9 58߻KcwRN;n("+=>q<[ T8p8'f 뫯Ϟ+fɣ d5Mi4ҧ@H59kZcs" ac12U]۷ K~ׯ ?᧏:S::8XijjWs@T. ᤸO|@Rfh>GdBZi&aQonQR#$"Nh-@mvB5f./`@KDGA{•x{5VEZҧCڕ "x jjՐ$IT4LYbAD01QwH] u]Ɣ9[̾Xa%㪊q]ֹRB4))(1.SKdJV Cɤ\)E`B"ʚYkfAev+{AbM'̚vr(1!Z\c2ܝ.'Ohɵ"HB) @FBSR $3ʏ@ UT_KDTjJ1}<"G^" d:¸?jAkCkfnN!ެ)WRՌW) |`{#,¿W54-S=RvSΠޝZ7hQrpVe|wZٕ1-Zf91}I{vFuqFj k@s6 ń!"QS&o[WTFv[WKn#jڑrBINby@v(4V.3Q5̞PϞ2 F兕SG8B&әU ɚE3AphjIґ(9eLoT,W; dY㠀IK {r 8th0'\FbQ)%%JNReP#V@͎gZa;nQq&WQi$9)aWӎ`1JrcUsٷK˨z1Mi[aTr"ZE$)B}#D|22'S@#JnDJs_̂HIrZͩCgaH=0R߈zT,݊8]31387$I(QbnЏd[ںA餥ӷIF۲=h4$1:A]3ws&s<Znvō)Uߌ}k+moKZiZӲps++ڳs5x"B=VrnѲq0(-V?Is RD6heJ +r-MqjC Qo^>)$F=RVXR/,>r3 L _+1:%UJ1fC$:FXmy09ZZ[ۈ*iB[Ն ]`DhfjiN'k!^xڀDBX[\B(ZOsWq (_UؖJ'Y>{~Կ?}i8poDH1u\9Y-kQ3(ԵL\G(.t a @5XlCmvrrJ=6Ef?&5Y]/3ξ|_1Sp2-e"Wk| lp& kAĮSI[jmqTY=3>4,%+*19`Bӧɪ]-=5\X>qu!E*S*2hF*;r"48USє|ֈVezK,iY6 &%Ʋ]0n jrZ-YM3y Snh؎1=*V8Q(R%cDDʂkr[qnڢJ("hN6(mj5 :\{vk,M3dSF\BKd<]G+Mm*V19Rf׍tݎGb46U+&RJ+a7< _ 3[ڻTw7 T"xY~D 4NKњ1{Q\N;f1z~9*gnJH?8Eʼn{$O*PA`842dNM@'QoY/šˎ7;=vΓH?4o03/ax_5ZL6^lϨ̛iBakǗ\]Rn+/xcyyTiKcFSN\K4!^(q! ɔwQ(q"@"ƜgO[SQWKZ]$b۸A٩y7 ;V(A-Ctgď'e͐2&KFQkX+J#5zr߳ٮyu/.OBM@ײʁ>#30He.>Dl%4MzS#o ٖ,>`.CCϤ>z975^QGdB1 J#MjT[ͨ%s 4es]<9K_Փ#>Ǭh+c!3?# 8h-ۀ%^|Vb }%bgOmj|i|+K8.#!MLN;d1=+8p'o+0/PVlHX]3&61܄'#VjQ7a\%#%״wߍv-o><5f 1nW|bj;EJ4z,JA/j IW/9ׄ1ZM?(ge{^t}xVwY!8CT| W;JէjY_X85 3^r{)}}ʸmc-Q[RfRbYS=> Y e(2fш3@&Ɓ蹲;5Hh  : IDAT; iuɧqC=G L=xʠ(CMJaڔk~vڂ5W%eXڽ5Xeܶ1߈E\{B2VncF iiM^w!qCVl7L̚+}2g7 9a֖v=l;"]v <RqQ^\F񊦮nE,){nc ! (yuXFQaO>,jANSLq >i?cVnG>m#MY"0iE |Zffыs_wyBPC(/s٩ CI,fRYcSZi2]ZJcŐ|-iѣg1evH'TpWv"FijFw(ex ݶGx?l"3>! mY)fKѧ > ܚ18˵Q9( 5C& :ьl˿O픺vu@TLȕCҔKidFwJj.)P-$o}K}{ksF%oRWk*bӞ7$"Q)1.Ķ~knHb)}\ĐES%s |LTSS)3 7nC1zDyu[ OjM8v"!ڷI .IQzfvFk$l}GvdqKmd 9` sb[&vB5'5W~lZ؃b-9yʮ /}!oSRs|>!KEƾl~sLnt&r_H߿ q .2Ȟg:қĶsP wa1!Bdr?۫_ChctE:\'XUGcia"nafyJd \y#m’@gɝ{bJɻHwqjQTL݄9FlfH=6#_8p?L?nMۇQh7 uig!33191M-`4)ebJ  X* pސNmO#&^:V&-)GO;Z=U dϺ_s#t~M3j|pG`/n#M;#5F >tt_G5M 0%1(~hSAB¡HR2ҷϬ05%g/i^sdR&Ȯb||#ɧz2m?&OV#R } -J%O/t3Ш -34uMkH)bDk]܈{1 U -rc:%mOH1~rmMq36(} s/7՚A"ᣟBȞWY|*injƲPFC'jOm&˛1pa Db)Hcz|qBDhLPy8pA_!k&N-(eiZ?΅cyO 1ԉ#לmx|ӿ?~? Y1 Dʢl-~+;]4fS& mx3$G eM]Ȓ.L5uiW! ]]Ni'D]3~P"Ef'Eb>Es*k;2) 1&TeqVCNR-HD՘ْFU+cy_ F V0`&SJ*_uCDE?jT01>wnZQ9s g ^/2 f:oKchb6@L(g*aSR@Z%|ʤ|D:gcSDD+\EK/I,5  /TM{N9)&3.4vAV+]Qi31wB[ T8p8vl.>gb<ǧKz%LLMrnFƵTƥG/^8WأG|ӿg?|YbȌ Ngu2k&dɼޢH-T"HHO&VFI\-npLh FY-cMlIo%Y!DuSXM]F%msVj8He+E;Uu0Tg$Z-u֌>s*BM[77B h)W6fĘgnFS"KKvr!A4:k7ŜQuy黁Nf3f>AFŌBHf2eR7 K&:W81}*x)s&YwƦ|V uLVd2ɷoHK{sqeXReG[:o=q 9S.YPexpLx<M9pX&;B>bG@i5F$+D1-cJX`X~CDpU>n/}=SM|:cYMYo:zbV!6cĜi:b:jh'kV[*mYD_мcAiҤaXy>GFcXKB gd1j_%2X+ ' y_RKK" (hRjwJbL$&LˋbAləv볗lw68gO&̯GՄA"W$vA87 Xm"L˚5)'4\Ƒ>JPFFc&*U4 AcTʭЕawIJa ޵ IFq@)Y2~NoPy8p!BJs. џspg48baf'ԦDJ(#aB6X7\_^C˗㓊?{(!ӚDߍ:'GAkh"Ca.3·.`7 @Vd|oN\pڻd`b&JDqqPL }@cSK#n/(q($H#$ 2ȝQU3-tj2Gk![ڇ#4 Q1.r>$*x4Q!kdTkez#$azrىw:gu1i"ۏdk|!ވ}!26 ŚP{g<5 =ݘ Ne+I).#U$U)ӕtW*HRvb'WH9rdG$ z:MXO> 4s Uk\z΁9Y,DzDr]:FHR'M V`_4S&MT>ۛ|KJ5hCO]ڰKBR2ux9 IL#0蔳eQ6)D9j78N8XCRϳǔp t^w@kC nm@:zZ+2e0F"ĸO\ѩC.zLԈ}{9_$!wX*iETܤ ,7@qPw PG O"2)\4nb|ǐ :NyO-X t'IɃ;5Ji/^!d :pސ*1 Y"&pG$)]$$Z bJojx}(B^W{2&P<QĂBt,!qL*EL ْJRLܯ"  Mf+Tnٲe˖-[l{̏@n˷Μ0%B_ZH 1"9a5woAY>9VR|o!/dm^>=B1HVi/)d7;.KεKnAgh, N9b7:κx<5b̴yV#%1?kxp"q2Y)H\Hv @%t |ZGNHHB 4Q{># A)Af;|HR7x 5hL!X 笜b.,n͝3w̼ e6^*G$+R\CV=Y^.40A -J:h =)Dtv爔O_,y"LJ"$2V¢+C/%V `~-8rJޒ+O>C@uص &٘{{$t&3Uwv)MiwqsHupE"!C2ˏ}OeFrD) yY-W+1i\"[RVA2xVQ Lmrڝ' ƬZqyAK1z7<ڋb;$)E'+L)d$1ZA 9RWd:R~Q#ƢQcu! "rwDJ7cOҐQ5tEm~6@qFwI&C 7>jiD<ǵtqJH PjO%s cu)7߼׮xz9̸Vny戣5d*cC^rd=KwD ø v::W|k7Wv"24c:!,E Z:@ 3_&&+qY? NU`NwQJ4rE"؞(4cv]V9:HÿXi9sS;U|wq&'gܸ~ BHLy!;Ã`)9sD<"B071}U UN'{*S!)q73b) wˌutx񼨄THT3ȌcQ@L*Np*W<=bVabvOewwxT sBVܲe˖-[lٲ)Rt݊>O͒fzmimFiىc٭|`8㳏Мu|ewo*٫ew-!'xrr̥2!En1.>_|f\t5c=YF.be6Qj Ři>r*7S F#PB,Lg9Z%xY#Һnz,c)wUXTMBi$~mYHKn*@/J DNK*kIG}edu`53?[#c'V#n) +rƝjeƕK%/3dU]ոI5|#R- lF`-4OSڽCWa(;Ƙ𭤎؊apxAK  ơ[Mw 2 eJ5iPz"`j |) }NJR(+; qp ]ۆLz u,ߡ5lJBe4D*_|ɯH(_p} wN>d oFFEwʫWyX? {>z4]O*Ke2:2rZ@lMqtp`Λx'?`<""~/UP~4"x{X(.uNq:,prKyV<~yǑx IDAT %#l"Y?>xNGpq@t|e, RJh;? Q)4UU*L>gdJr'(l JZ2w'LNbBbΝBm㣣 IFzH90J67-\>NJg Q^Aq??je˖-[lٲeos:_cʕ\jxTb32Pa2N m'g5/T˂DGʑ5}&] -f(5<_9;aء4,3m@VcA 뎾ޓKj-A:!We@H:4}EVqT'BH ^ Di(}z=o:e*(!A yc[h)A$ܥs- .G ))%|-~thѡblH!/߄Y.8P\)?&BoQBzVbEjNJx- ;Ώ_B-[lٲe˖-f]B{D'v*ÙaL7S90)aD?qGO";s>>\ Lb$+r*FXm0zy )Pc3 z]#&MH)RB$)G %?Y #!=)Qrظϔw@*tn HNM> BP )SV< w;D ͺa|Rʕ+\ݿVC (cع1%xJ:N!VܸR>mX5x=䶢T;;w+Vb(0MiږrB !NPG߃4~b uufV k 5 _JS<.fE' )הbjWfu\Ƶ4g֢9~ce"?ɣ D$ HY*lٲe˖-[ƓBOYߣkv5mdPO<6>zB4?kpmr CM`%I*_;8 xiZ^)JudJ!+, UjݐkPHFK37eI@^AqQM 2'G!U\ }@֬C%.*J-e(t7+1=qcRi)ĨѪCDR ,ȑ٘Ig%$mhlKʃQ\]Sn;tP /,*j(ذ6̧WzJ#biDD{r;%E#AZJ#@ y B*"yRuQ.uqH4)aC)I Fd('s]C{L KtUlDi'RH’$ ZhwShBtԫanp*>W1b3.BZ>y6}B[ܺ ո>DŽ_ߣ(2|vwX55_}ڵkyk{tUu7n7It|}܇gGp|4''ǷoikDƖzژHi3\4 Zj0SPeM÷=k"B’@>o,H)j.Oiښv[2E6K\~x$^hs<z\Ρy\0kP8i) ɦcFmiێKV#&tFK،BS9qȀ ѥ!%Hxn-FhZEh{nR122#HLI-iBҖL#t<\<52h`!.ԡa?vUg+Tnٲe˖-[l%s Yqxtc&yb f:EAaJ*[ ci?!C)-oqaphuuM}_Y^oșF؊b&Qg$qqAx@eקY-=JI\*]_0* $`W. ADhGv=RIbCR٬)C ֫!MP8Zl RRP҄g9!~l\ѝBj$UQ0ɳ $)+̧Vȏ(H=ytƽYU(Qm3k~ȥF]L@H6ݗ{?rADR"يfoB %An}@EJ% ;G T*FTpBш zOIĸ 3ʱ,((=VJS#ƀ -mJĔȴa\eĘ#bƳ mhqu*]ߘBaeNKЀ@cFv#W9[B q&(R'd1B-[lٲe˖8Xg߭88xSNX:F%?)1E֮k\pi{GjK 1XBH.hYΐvlRc3%ij[bd_.yRp( h ] 1EԛZCJBa+r)eY1)Gh)q3*./lBb˝HIJ\A/1ceĺP} Pr(<ѨEJ mIQtl-n\\3H;YaVFBC =c~tDԬ>z+W i}k78 5&:WRH<sٽ6㵯)Fg`&\ ]ZqSYZ ⡊Bأb]KC״]F1*|p<*8>>hɃk Yl62A8fַ8P(!2c B@F LaǔhCGՇ|iH)(_m6],BymeWLc#3&%*^~ [lٲe˖-[~].gO7OrSRi |( Cfxя8^Rbw4k߼WZ9crTlI7(xXicyP'ebx<|w͑"Eb6rN6T#N3|x1BDLh^5<S;R;z"΄u +O'|o|Wb6PI̒ǂ7G9]V(E躖9|w^"z2c_}+<9%,o|3FyŵK\c=x$kIrO'>YzxJ\ z1yIQ2%$f/'_3ϸF =L^e$[й)_ 6šlȳ̬~ 'H^IJJf{rƃ!v|bo}~q"JZS-+SFu"ճ"eDGE&=B>5K!Cn:z ё,w7RVN(o n:)R ¡I@H=_wܿ\Oû_{}mp ҕr|k77hkGBaukZ)E“pDv+~ #,R(2#eYMh_5(~>p㻧M֚r7^fW"feJ3NZr$2^.dFCz5rё,Bm ۤr(D-QYfuXsڝP%$#]qТZ;0! u͝O$tU;fN,-M^N6 #иPǞ.(ic M&s@9{Ud[i,);/9dav9W6ַ.wȲw޺͵)j2ugV5GH]mK$c6"S? k%R+ bL0R"ENlnLJƷ2u'p=?+FQ6sIfj8=YP.)lk%qP F14R˔fc42W(4qa\O{D(*;.gr+؋H)j•ӤZBMub&3 >$r%oV0;H 9g?zi}G2h牘6)I~~neQI 7Yr>zVHB`ѱ]alti{|YҠUBQ`r!5O/#2Ґ ':F*Ѕ¨FLӴ!q;B' ]AIG\+nF>p|}ysAMBǎ"gHd2)iZG{fg)b;.z}ca4.i U%{3F%Ya J)A5PR2Ny_''h隖% EQc"W1O>ëoAg08v  6.d#&8nOe1BW9j8lh6c "?92IlԴ]ˣ5J*х+:ݢgC\83E#r Z`eFfr;bEO!,>8ziCg?z=nzLYv lwv`6L^!YCs-kU.! Me &e='_08-F, -!@?dHƭ3b$,ݚw? 휝B\PR`$  C&*ai|͙:%JO *cdKNOLM"BP}$; ч=D@)b+q^[/9Ys# %@4=N9,TYEf4)G^^$ S6Ѣ6/H5v t-AͲAXvotiqඔs?ؘ)ኜF*Pt)*ɜ,Ȼ*u RyD% IDAT)d/pŪԝ23\9{Q&XlB51d*k&zOC9Ԛ4KNH:%uZi`!Uxr]rM}-TyW~󂷿֐]YV|лzwMʼd2}(XW i(Jfo< Eηe4o6W!bk0J5u EfȬE eΕ*s[sv+EGv/:WMvO * 7GT9SgxŃ55B"&lpp Axh-@IBN2༃Aʫ88ϓH%:*Pd)ŞE6.spi)Up !/{Vܲe˖-[lkIp=/$#DIB12ʞj潜.@d1 .<}pi}ފWy7r Z2mINsY|5ByƯ%qEi#xP J-^zV ZK}`>oٳ9L^ڔȵa=*C +S yGrj9Gv|ue;T)dX%LYY+/$Z%)*\mh9 1B6&fHBH"d4R""Dde!CjTh=.x2 Ppqм;QcHø c唺{z&$}H)B vA>n. ] $2 I[dH@d{M^2,0"! 2䐡%S;rIޫǒ4?6ܱi*˴1䒻\,!J VBX X} ]B b\ I4Cߦ\V¾Nq2TO43::QuN8q"ypկ c"!)C " 8cx\Ӭ;e"b6Ŗ9Y#R jaB2RGDa t$}DQR _)p^G>/?Kc1<{sR\7ψ{ȤaA-[5߹sLe?J?#v;eN lB;ۚ]PkEQLF33vq3C knsJr/T褰Q4بqғD"kGiљ];p\p>wN`'>t}@/^psi9E.lG$VX"mV"H)" ct B‡m3En>thM#D[jߠ,L" Mcٴ[|{sԥ@$CFr$)u {(Vʽ+?#b DF!3gh)$Zh|}.mmr*8pN ',sMyb, bJ`4ξ5c%8pitN8H۲5tMG}<{Y.eȥe$'$Hч4HӬ l$.S,(wyQpyUsFoB_v ׆\/iFܯu߄gOJ ǿڐ犲/RoE*D*p; U DiŻUp8E1Fb@+9ހNH)}04l{GgĨPHc_E l1hd\Г>RI2$HY f!ِe k><B29sh\Ǯq=l&;nL|_YeYۅQ,,犕cن`bED1/|K,Es;ʂp<Nе db6R&S;%JMIw"/-Pk)7"eJ =I;)[)! !y5}Nqt@ %{G״{E2ŽdsB1RDw q7pM!UR&"eO/:^?O/ĸ-X|h"( R,$DzQH)1һZR1P9@2:ގhN1VaUT׿D͖wrΪifZmXK}s@й=,A$#m=D+ xd'ekMfK>,"QHH/^ǍE߸~毎Ax h^xM+V[ˌ{@X׬k4'SW(_o BrlŘdVq+LyBBt;tm̷AJ.r *]R# I0?ǁ!!ffN4~J)Qc!٘FI$)ϠԘKT%8DBD$6+ɱ{s9 F'>HYoɖ_A8zm)GgGW,,CP߷!\j)e%(Q7 Kߐ+ J(ge R -xtz=6RrLYل6nlH!PbdyD2/)C's(ghmqnX+@&r*٥z/XDi_ܱZ>]?aLQэHiBAʢ5o}oϼ/.y& *h8|Ҥ1TCKJq8>-CBńckh~HX$ <"A,>F00lSGHYi0r\WOZ E&a'c.<럌)0|xOcɒ`zZ_o&UfBJЇ_.2q{w,SȑJ ( ̨)WnŐ/9?>yT,AiIu e :yϔrO ޣ"7jZM.I֜_Lhl9e^Tޱ\+:9Jjٜy$E鄋kJ|ۆ97FZ+3\CtюB~[H) :+h%|aD]]+<{p[(z綮1-FG- td' æCOB+wЀ&/7CJ7$)Co4#d+#!t13.v" -Qz !ESAs+F7ޟɤL!bCDI/vtym) @>ոӅW}WE/BYT/ZYr!9-Ny>GaO\5LJ?e10?,sCvutL1M-Snю?C;3d: SD+sιidkNjbp` aH)%,.XQ L7>{̳$!y0R!t[2N\R¥N8)s>u5 #Ev7h?$wg<~O؉a2?"؞/_=@r>e=\17vN8劋G״M?S%BJbi,4}c= Bp]p?XŜ{}&fUyd9H;4`G0%{Zd݆!DL-59BN/~ݐ3,쫿PH!Ptnl X40H4")4 ?b4i98p~+qg=gs mX3;N,vb@k\Xme9ωilnBss(P>P7'ٌwO`&3J1CЋF(ș#!bi6Un!| &g>J s%$(`)"1\:zޙQГQ\4*iZ5Q@GCnJTH^XxH.nϒ)h!2Oil.ӜDb+.osoB0Gd'$Y%M4Rk 3fEHt L@Ϡ"zDƦH)#d "%4FF 1 HՔt*ၤN8d ̲Y9gj\ǜ?o\hctf>@KJOwuKjW!X\*juF,G+DLXj@E[3T!آȅ]L[l˚]f5\011Ww]q՜X7k&)gn/aRWB2ySf{@J\>;3drR"HC ^2 KZ )X']7_!Jܻb5e*e5%Gu'z ${"|į*xE]|vU|ZɃ9q)4jl`Y%4DHal &7SLظַL̔>h V.ؚoD J*'|M!P 5}{O")UA$֮s]LcG72^\|q;>Gs_/CKVÂ!H_tv|rǗSUB#(=ŒxD:(vk56b!ǖvADjjBHx! bӹA 4uH;9^a)o#-:|fkE ~*vk&*Ŋ~ج-*%.>.y) ;3tW=($ mb<[%\M֖kͺEedN[\%j)"ZYpf$O{wXǜE"MvKHp vT)1!<6,T }Hiޜb ƀ1d|P{w@EO~XkZ_%`rDdl#@5IRkEf^)lv )RNXlcs$a_]}`7%M:~Gp4djwO^c<|Ʈo}O#˚9c9 4MGӶY jQ̂P4]ƪW8?aG21`pI0ך2CIb =Ώ~pl;1*!-Iz{sb"!D`VT(~F{8V*Љ;8(P8&nXc%RmHFDR.i7{|ƑXG!t?-ŘgeN r]ѩu=c瞏d )'&4r# R$ROW+PXH2X4}Gܛ>褐RbUFn2E2h!] Fg<8naHCFjr"֍yJh"6'躁#:׏ ΑvOqO>fwP ²8>BɌ.:_%DD2ǞJBF?ūG/$lnnKl \_lGz>D1,Ё(Q.Kue+ xp5fՃJ(+Jf'Q_^B 7_‹M7_dBQ9Qꌝ/ QߡT^`=.o~3kRJH+o  :Z23/,gO[f6r*8pFSR.ٝ Z T,SQ\k ۆaBI^E@S<[]u%w|ʽ2NRa&S-7ɗn(,$@F4TǤ{\TOcEM0 , lK2 R8yr<0jKi"1=dQ(z7d_H]~S_<2 zrBssK#}Z'd&J oЙdq\qtf尙Ak5!$R"]0 %Dx5E CbpG? GG<~ ۔we7Wd§)*_?y0N=tb lʢJ9)Eb qnJ";5o22TzLBVl]MRAL&8's3b" .(1"zHyD d RгPe6;~0DU(!I侄*)&t 4ێ"m8r;-/ѭ,}yiFJ!t5G,by& S99ɎY 7"#JjRJ݆q⒔tTK&ft@ FOH $Ip)K#5sHn:ɓ'cxO P !QG?bͶì$kÇ~ƿ56]ض*se5]װk)A%5U|%OvG(,3I}=IESo1H( A6F>ݔ6{cKpz]t1)f$q߫H!#1fJjJ]1Sd.1aoUs >'chn3&,nnȴ`;ԦuwN.(]|.NWKJ6,x ͎7xIƃ|5(Z(\ߡX %M2d`6qAejR3&ϱ2=}c6Oy.UTMF\<M釚oEKZ i@]Vo,;c*f̖3nKvBrH dUF,\[ksNOϨݎEó8vQ.g|A0nJM *SvfBn+"[(X|-(@K k6s*8pOJӟzݖB*O4y5;O݁L o6yC7`r2->"ß=ç}rʦH!)1Gʁ10EE%6Tv]R KB2E0V\J$$g.2aZ$ғb9ڦE=WŨ 2_ya,Yid6Jen!y1Bw|bh/{L۾ᪿmWHKi&gq_ys;qm*\m}F*I aཀྵNR؛|_v-Z9i5cxe2C$4ȤaWo[2'vCSZ{9T! ӊs]3DGʔh6˦MTXS;G 2vҮga^*KeXi oi|ڵCKe_/舓@zlM/ΰN>n MR 9-ؿ·6? |a"E}Okf당SUO覚TծZa1;FD3Pe6,13͓g#)X;y%BH90#F)1=J+度_g\nxΏ?Bm|>51nі[wذgm͘w.X=M,2~W|4V9lfqh>oHM(T9rȑ#GLn? TzdгZaNI!LJ,93֌U_)n93@!)<?|yyKkl+*j[*+ 8MdQcIb:8' 9ތ49 X8@Y$ΔX5׹!PaV Ox3L2YTpc54=0JīoSsL(6 ɑ.^Z V%*g_xΗ<?g3ܲ7SGxՏ)'sXy~'oG?vwÓ/>dsEOQ.ss{ņb?-Yg1Xi7W/aȔ"P8}>K+=)h䱀Q𑅋TdY` MLl&`R.3Q B 4Ԁ^-4Ѝ[&JSs-Wt,*s;O=-pKoߧH65ǔ/cP=jN3w8w]5Ĭ0d UQa)͆aW+Jgqycb*Sh/`Ѝmhq""Sɲ0}_m;Wxeʐ4"TzwKS|iڐ|tVGcR -!g;c7liǖ6L9}8j3o7J)jSzEZw5\՚,"c_^x EAaMO]ZQzRqȘ2nϟn4d[5?*?>(K4ҀEaH-mh_q˯m:Fr2~=Vv6"moJRoM5JSQrҕCߞXK>rO$bx#(T9rȑ#G[CR뷴5ƫ8!@O s4DS*ϩ}=cO(m> Zkmnqk}qᒟcͻDZ#Aor֠jP(3<85|hI9sasȨ2-5Ag@.ȵ`wi7XL&ItCF(Q,a7;MMY4Ҿm> KJN%7F *tGg-Uø'K5ThQV졘/$\-_V c )ǏbF -)g==>/1<`^s>?]C[/j?ĿOI)Q*uc?O8G 3]GrNd X3{L^U n-AF̎您 `"htF+9<Z2*rz>q eo F9$vqO:yʭ 9%'od^}*׬kkv*:^+K͠GKsD5r,\^BBj:؍{n[v5-(MA*fv,Iwʔ _)_7ZJ[0bqE Ӎ<~ho Wl7ynǁ!R ~Nw6+tKV9rcb$Q4^&#@vn>r(Ŭ*Ŗ:w~?有1y9WlۖzAժ  VK>Z|ĩH}Ӱ߷ xK+<*2T>l?,g9VtcL mJG$rFA4͸ZaKb.F!h-z)Uo@#Íq C”mPyȑ#G9rW=6 kp yNK\Y3[9b[61z_L3{ʞrnK} EKshR o"Rf8DI2J^.@5Zd7SV&`=f$KQ)f$!IzEJ4py IDAT0JcFCg:ƹg7nĘG(㔱X剒IY8)xwH&2ۡeoُ !OS)n5sWӝctqb2rY 9'F*|17,}e-4L;Ҹ8a$g1ƑaĘj!-ŗя'πHߍhmYO !P5;4||zooD"ڀ it@4_k-Z#ʂ&UȔ2{(s':aUO/Đ+\Ϟ8hB#rWX QhJSVY`B!e 8,܌k2 XI8ԓ5  M& $exF,&w4 $3̪fv'0irWZ=Θ9F"e;XKԒ~nJ x"J+MBi?R)aezMS~Xmè"e&ȀH {wdH3q9rȑ#G Iq$ cv f⤶ϖ Bs[v!J$I2K!' WD#\ uxpwW!wh!7W(d}O7ΆQJX`eBH,qbأ€*jV8L2)LV{Zn%$|5"$tȲ4J~9Ҍ]X[>el;lqy' 7ni=>uy]Sbk5=j(e+Ӿl6,JkL:qv"S cb{;XnېRxKthWCqx@GhPb)_e9[u-0`Z+2/QBs.c8QTGˀbM/Znyݐ˄:Jΐ N\όkK"f؅D $aL>O2Ϙkx8)fVcU685=~27C>7cF!̬4< +΍! -Q(bhHݓƈ24Xd^ԥGkH!uwbuwmK o 70o=slpÀ-Jq:˻,βd/3'|a gW cIEA.KdqWK>)Bv3,3_sZ8O10VDpLP# 8)X>I3lFRXpƿ5b xkig\]_1z]rzՂw\wj;iEyX^/ySyw;|N[݈92Ğℕ*`4j>h5ejeEJ&G 4}3]kdZp*sfAEn|W~|*{)R% 9oYSEʟzkʿQ7hmְ >)H D`!2{K2EʙdZ1Ƌa- 1 (O"YDhx:'QE=I2jI:~m$*)ǎOBemέ$..bBPPSF ъT܏Y2J bHPE@f5 nzng3l1~)?NSKN] s;gn刼>n;> q>5 q`nuMEe)Lƀ'a"Zm $yy**i~{Yys'_όY;M.q\]rys>7\\ P,HlYWށLq~כ+V 8lMӖmR̋FZ+WO>VJϓ>W%u~9> hMfCb}!V\l>e7l;4PYoC19)|rr vy/ ܍\*{(2SiCl6|' HY|ǿEu٨i`#oVh.x+*a|t#ΧcYכ> iDEB9bEsPU4~+JƩ?yDcd&#$,wVMo+Me+JS2:љlF103Ni _VB,˙#G9rȑ#T~ _[*#xֳȣemk4`qGx}?4<f#νLb-{u\|vŃ~a4K_bFMdpW#vИM`qZH0FJP1 oET(py`$E҉w4H:yY'V&v=MزzoR)mhpRےVt3 ͔A,i'VM׼$׆G,̜}NO-hX5tccs6$t10_ʖo%RNm=KQ|RPzEǓKo] $DF*L7ڰNnǯv3~I,RT6GǧO!=L5lnW/"HW qjK]0@L eh^R}8N˳w7滿ؿ#G9rȑ# əط.7衣rt.!@>QyҮxbN+k˷IpSTr _Y;oz8y)j:M8Gqb1rDţ5iv>ҳBxYܱb I1}Y - gkO{PSN׫y<:/HTaBs#%V[_}ъW5 /, v/0g!yvqi:#KѵO=yL8Un=]GSQ\U>'Ok4K=! ʼn=ݡ%B́ݸ=)e->4xۍ$(767]9rȑ#Gޤ[]{|)|8X*t)(W7ā6*b|>VF+*fhQc1g |_}Zy>z ]c 6(L͛RW!HmB O.TN㡖,魋!\YPU! :dY(G5U6Φ@b[a,Ȏ>vd5daR#5C F )G[_L:n -ނ_&klAQxlVhi8&A)ZM0'@T_5Z%$טFD:!5U@aj%PxIyPJnfF"B8JjRMd! VgQ-K|́S2o Jny x]2gE*D p0WNBd@',Lbb 4b0͖͞11P8ٚ*C 2UPpp>xγ } +.y{6)})=xŜME./O5e`bl'יȻ鹕R8)c,PI?{1 Ҳ!KSU)jWRjё! k~.s0[~_q3\i=Kz_B\O//p8-peyVR'Rtx|3mW"MܓLz S$AFpΠ؊8mGh" 0؃_dvMYgVV~=} |OgBa}FObvnwf/<~R^0,`✢0𤋮pͷqWtcx1QܾtouPN p3e\~wB#G9rȑoLu ͆v$irn5C;. C)vքNݜ (1!-PPy%Px|7\]]rhهK9.t,L&6qXB2V}=xu$ڐ"ʈ֞d2}h5)g.*ÔGg6|NX50Ğ&L=Vk<}}s sӍ ,v[JcRd̑۞eK 'qo Z?sJ.Ӟ#">l)tq/Tֶԝ}|_Ga3-cf/{$a` {ɌyvWe/cu^PK{FءńTqbJGl3dFbplˊW,md$GgʠFKʚ6"2&}r)UZqLmB!z D#F!,0P.a!16U;fuy8sykQC@mqy[vq o"dL.l&W~nTK*-pUK׸_9PK4>5r`x5iүԓws+'cStK4{!İXW v sX pb6j|We65Y 8SiTxv>y~ՎVTSU0s*9rȑ#Gə#c-c * F3kvj.5V۩Du0@ȁ PvKb T EK/MϞqf^?>ǔ82\E&S.-bF4 F~4H")E3q ґh/sD#Zɡ'# fv-h6(2f9Q9%7a;;2㡛n\^YL"á~$I⢹P.sw# (*#]N̗ƿ8o3>`#E6߻ß,O-yx͡4>gN6H$`$|7nyVnAMuQ29gePZCFkwJD$ (mf*33bB@&JF0(Ei5Vedd-9F$@>hgEfSH9ȄP"irީ7 liNjȮRbcL | WʦfTwH#h ^ylH*ߔ{k&QTtM t iU5E$ѥfss2-DZN\wdžҔԶOJ*Wᵻ?/89Ao o&76XpP=͖ ;kv̰^N<oqFNh>,0%$s8Lധvsʡ6Ldw;-&o r5ܼ)RprYh6rF(Y7t([x.^~ƾaٍ[@ZEW8 G9rȑ#G^Cr&G2 }36ļ BU[깧6 YGi BF3,"nΉV8<'#<#<9g/~i,1OQtIaMUo_H2ՊrdeN6onョrrGz1L*-ڲoa2CPܹ&"_qfbM99% #d4(Yf[*!H:GH%Ć֦EchjvFH/K˒icZodaOHghPdP6skzd|HoJBUH?Wl%Hdf^1хLfHnePFK Jݔ|@e3y5;aa R(P3O< IDAT…1Vrxdf*tT -H@H1dr(o}bм*U9;Y\I"b3jr Fxn[R***@Ju+K'E2%hrΌ 4jIfjQȆxU{Mi8\wwgRS^k6NR(!2o{Sg/0]ʓ[%9G\Z] ͒,yr&8ɑtbP6gطD<eXP;2wN6a74{E2 OݳPp)j W{PQtDX*Ayv8h,75+OAMCq+?;Ƿs*9rȑ#G~w٥8anHCja8P/*̢0 _Qh3s) Kwҭj=zrH&r+^Q1:%,y3o`Xx bF%/CRB]UkE3ؠBkJPd Wzʯ!vaUUq2-nb*˘I5%rڠ9f1*@K^OI4U:S/]/"Bz*?{o#Gf=[l$U -HMc.{ ҭ~ьt)Ri =KboӅydI&3s)07w777yϩ)LIe sڗ|@vh8b7o%1vGn|_$ԈJ02F6CIDT BFȜG0S#LWuY @wP-Ȇj-&f\EjVr3-E i(@d$8ch'2 (*JkLBڞ 3NTRj43jH==zyyJ6Xö .E:nD(&FO#}79qR#AS5E`tB}Vb =v␦sd}3Js}uշ "ƌ/Fh Ht{r8)la⌗Ծi;r$~kXfQQoX|Iq"k J3GSv}~Wp ɣCߔsZ]`Ǧl-W%GrA4 T8q+> ) @w\mִG^^0p?sZSQL9L+%7d>b8 fIcZaxn-2*Q1p ke`6Sȏr#e9-8v'w>*Ñ;"HzSx稰` d>8Gj Rz o~CJxDs4r\(wVC)ijFZDŇ# T8p3%DŽs cK;l>)9Fdf%,Njs({B1JMEL)B d2㤨$2((!.'T.Xcao3~9+bC % 3f6 Zmx}vI uiWSi<;r1^SdPSK 8Т_fK1i̹4%C41"a(Ud)xm.,>" VŒ&n왹4& 6+<о4}FQ 2J./Uˎp`Dz{:އ&pc"'Wq#У=B)MoC@Ȯ|} R8=eވY*A"up/hcrA}ZFO#ĩcl񿛷jCl㈉]-Y] X?}guM5!*C"7'B"Fn^4 *Sj ً~#2LªqAFDc a)ai+ǧ^"ۈ)W{SY2#8m-b89<-ѿ [q"sD,∲2HϘvtnCȁRm=G| twFS}]NͺǮR j|>9L 9Rd|ݰbЙJCSSuhBCL '\p;`*"֨Rdhi6#91vTp`޷ ]z\ot#HY/8\_ffϧ✲T>Ro:+wտ&fiϯ>w|]+J==R2NJiL/wGI"1En T8p3 ŀ6͆9n%N,]O^IUm(gQ:vq"v #s8fn6E#_5yIuRoaLcr pq)ZJM2ɞKڢ8܊)M_"UΨx^-x{&·-SJ YGM /v8msA bZфf􂳓U(SNc21 bh4eBiV3>s6Θ9Ƙ^,hJ;8)ΨtzrV`ErfH(?#m7#wZ L th1#FOEH9,EkpPCyXJA^uey"t,XҾe.LeM 7HWo#O v!Hq^4QCo<#i(("ER+呩Tb ȮW Jz[X aO=(ʩ((կ"oE$A9Fs ̞}rY!)r?=lWK }޾>ӭ̇aLNbIiމ Ɲ/_,_;GNG4'+}=pZ !U>zuu)=V؋WZ ?Z4*O?ĘFDkʣ%g-X!JE*cJk=o7NjvI7ZmԊL߮O36s;+}ac-g:i^QIwےQmN^?6fxMջ0G匯.5 T8p'J].+rӡ͈=kYEQ$&F1}"aL#8M 4#4fz*q%Ȥ)ӧOOR2n[4Mh;MX0- b$!” 8jyrߞyCd&HjkqQUiWx%# Zb>!&(ʢ{@WB0\M^yzL,/jrRT@$WEK3>gOʙ.l WqVݻ9 ݐiv=I1 V#L7c1Fn$ӆb#25v13=ТDS%uȮPQQ9# v(q\c+)c1j`Y̪I\ -`S&Lqg SwiZ<)y$߈ٞ.y /=R|N-]iZBKYof3. 1iDBJc;1sT(MlEYCO9ݻ(v8eLX>9w=zrFDٮ- )rCD7/ŏ`+vqIdb< :4W-ˇ 5s@Jr> AP)bɣE1?DΙ=IhcB A{b)S2]";HmXG4/~/JM$Lzq}Zo7gAE#r\qRMX-_Ͷo_J0L)=}e^})'q/ .|ʾ8p*8p~DZK*Q?>qli16kBؑ=ktRau2,i5Vih?dMyV >BN}XZ qr^ZGJqK,7=}hnEʛE}e+2 A:_x,Tʷ8ezL{'׾wL3yPmh붵2/vkϰ}Beʈ+ r[~,'֗ JJeJh!qb/"r^wN<1chY18ֿMopʲ-46k֫$]5&= " R ֠5FkCN4b4YMI!6MM$LV5I)c(BI32kjWc]r0 1L[igzQ##dyvG N*)/z~F\4 # 0&&A^^Stgohi^c**1R5kPT25?Wśmi(u`+f5Ov4=TV ў=ىb Dꢼ91s[|;ҼD}Z*\p;ܡ^׿-4vVQ9C;pq:<}f0@4Q;a Hn55Z$>,H!ynʻhe0dQHq~T\%JW8UH.(`e_7y" DD@H21ж꩝ *9cpcnBfL3ې d`4v*S޻+ӻQʵZA)$aU0͖_Ю[!>pXYxxc ;̋dǁB;8m G 2'THƑe48Xr}٠dȮ@@'g;;J gocQnufCAjV˔GaK#&o_G҉Z̬`cw.L"q)ޗdEJtWF%.rXmБ 9?)p1OMQ!ЧD1wxMr Gǚe$gRvTs8zIꝃ"P,cԄ]{<3>޻s*8p~m<@4*'#\:dV@UyCa~vخ!tJ ;(R-Ch&-V.K̉> 4c;}qS  ̨VPb4ZD0Ltm$fΙƮSQ^QlFm%y-8)I34̤ZDv$R!DJBc(Tٍ$=:d(yߍl"9`yP"J g]2 8Gkxu$fE#⸼l5'm\^DoUⷷ2duȷ.I% p*8p~nr& = i=I l{dӠ;%yQ?=k┼ !-/H쩍0;5,\M+LG*]y)OOg9e)0"nZ̭rɃG )drȐu4Ͷ2KE3y@U%i]Xt6b%H*Q hAg+(1O߾r]|gECe-}Hѓ6uZ߹LviyU7SORr{W=2Y%*kvCKwBaOKtb$8{ϛ IDATǑtF^ow-pVneG'Wu*Ƀ(IdqrgSh D5Pׁ2963%(͍;81p+R}AHȞ DD0R]O9O2)p0@9C$=@u ɕ#<`bVʼncqR Ͼ <} M._y5jY7$M)7 WK& ;Ikxř?Py83B@@<('U(IGsA.w]_P@&S7m]S=ߔ̖Sg`](O>4ϹD/׷/wtA%.>U>)(j-\̳>qmϭV'Z1Kq/ 47)LӚxNȻFM=1&bR͐FCDfLpG|}$=D;ؽrZ4VY#M:V3vD0BY>kbV`Gd6 2\0! )>^1 Gk*-հFUIZ.^ۇQ]RaC3tu )셥Dz?BH,Ŗ k5eɍIJC^2 ɎB H#HYX.Vl.zrrn`m LQ@qvc"%\8^ Zi%F)R9Oz/61JK-Q[x h1h(49A~ͷ_۫ M/~-8rg|~dnNm*|ԦjٟWCzu7{ ԫ#kP/jTo_'ߓ ʚ ,MXV4g\zJZawSnݜaw^l.v4jqAKc@a?dX ;krȆ^" {{32б{DGd\H>xMH#a"jWO0b;TN}N3ixC *$ҳX ^]4G$gyPo67g[Wd<}c>+(KRTf[AV )tQnz*RB8pό\O^77V &v{w/HeI>]!pE5-恴ht 8TQbU-9A;x\C4c[:l$o;% sح=>\ ,.׻lŨ $hCƖ?rF .KUnzHvOO]"Vr$+GR}H00J3+0bma7noKvr 80đ"C3􁢬R#x{ߗ% ,f$Z$H@g1I\bqmzr)]IR&׹o(.O9q+Haw\|6 ;e2H)8R K++^WIyʁQbi["*(*r_HeCb[(Ɛzvl[OEQw4C T֬bF% RiU [z7*RTR:1yQW=&c@ \מ\S8Kj0b(MQ/iƖ.ӗy;+SD1Ƒ> c!r1ݿ[4KZGv>,iA |>w@f\!zXe4fBvY\)Bآ/r. jM&p4+RZ:ooµ( V[J=È ;6~OQ&V1LBOmhy$)B "gRHr $⚨{!m C1=L.'\?Y#!1;ɦŊK=CqEjד4ӇK2Un/MFs=-|5rnx2>%ũ #1 DԢ(Li]DŖo_R8ũ[IM!#rE詟=|I[_i>yH0ѭ7mX?2#Jx'Ys$#aKH)8*,~"% OLF3jO!1E½ʻL>h4_D9!߁AyFNq orx}'Vzg ')CA25L#NE!#1p9*4־xY]obcf4NWh'wB7emr*8p~fa@e웂5X Α1^JŰD݂ /]xc >lFk m#[H"P(mV=C@F_Y쥜)SD+IZQR2J''t `jNPbv!MeIhg'/L̼w_HbLx= h2`DҌY>hC3DP< M"N2XSSw)Qd2>yBQf\SOS(Q,ȐLl2Ԃ8%9BkD$ǜ37c'eσ2]hmʙv#Ci}ydw||{%xvU0Gsll隁# M=8g E]"3y$&!#Sp3*[N-d0f%Չ$MD狾sjJ)G]VrDR(Kgv\ǁ66vhQԦG CbWlG9KIkr+%xTDhE֊Swo|[^JלPvGQHڏw8pz߆5rCzO>^"9e5SK7#H^Y|4IeN̂&4CGm+}]~֓ tZWD۶ a2&Ӕ WHH}{8S LeJZчZ s;gQXs8e9h7Dʊ{|zu(dD:Aan]BRc,}&?H[.*SbUAG)25=ѧ!LQ!SQD>/Sq 6 C +s_b}zM`A/A Jxr–& XLMw [Q<$ۈesqJXݐ"8O דHn3YqIR[gAIΙх){1D F4}\ .(I B&<["W/(rbxq(˒1Y 9n@lD˴qAԚIrѓ8ڇ͋UOBQK14CCsU] g޲ZN+dIyxE=!w1 n!*1ғ%cȌgq.l/n;B5/Ph܆e&4[żHLh^X(07Wb厩͜Ts.Kg  8mLCjfdžٮc~ wn6 gsOӞ-ʵbqxv-ǏS+eA5+*tC_H1y8~*W, 7B2g;5疛b?lPyT1a+E4#q oZEvq=$b̅$Oq3O91T6RS7|LDw CQ"NjDY񞿺x⭿Ϗs5uBNO4Uu;! momEdʠ͎n7b{eK<~oS4 d#݅A ݁R9 "``iSneVj7=]= ]je2se{_HLO6"OA */4*Q80ڢOFUL̔-#嚾U Ց;c\IG.@, BFbI4@T!`%;N:u:;_K.^5]Qi PKDYRV$F9xKd`ROvlTaׯ).b(M3sRߑGmQbm Sj6灛F uSc+E2%h0OLaw2;] +#z3ԦodAD9C}. v-t=3./8`!:Kb8S\ȷ[z !o<ݍVpcq7!Eг ;B 9%b9P ̪)s7e4~e*RJAP"rG]2*,rW00j7 iVѠY 0PJ‡-fk)kp>t_Lj6Ցf2Y{咱ƦBɅclJEב71DS)1n5F B=>]Ձs*8p~܊ՖJ-Bދm;eJ8Cp4d Jܤ% F+t]YQ2(OIP\fj`U< 7 McY-"uAk s`R@*vTL&׵iXcvݖu% .T 2FO]D>%ѧCRĜNH%…Ι KE|{J-JZI0=D6מ@Bl)*EϑA4+7! bv/7}51odIIS./)l6!wcmIuG%*DU%%\2xÕƬc*l]KGjۧI#r!@-tb5ce'd S|AYF=1J#tUwm놙9QR2Vj]Q,7Ov4ʼNJ1 S3cX[g6i`fb|8\㎻=BL;"OE]QfKJ3͝Sn!]X9K!10r.l[BhM9ŝWUR 1G|c^z8Uk8pQy!b jQ[K8R0rV1£@8.n\1Aaۄ^(Td[ua16 Eb[0XJdT{`<_>+T)o#BU b2y-{/_v|( ŋiWR3 0xbzA$MF@O?ip8p2iH_%Ọ Qz;"Q\Ow0Ah8VĜ)$nʖ:1B,ka*5dLjrYkل(Qdrļ{,ݒ{}!he9WgkRLiE -n!zsum7*SAGn_OkŝaQXTMn17g[n7$)3*>V!#4.mlGQe?mČm򬽠 l/{rzE6HxsAИ8M*6Hf)-۸(NT_|ZZܔ^ 3v=ph0NխhGZ*ulY>S&wc!few qs1Wc F ŊDr ȶߑsWT X&"D)R"RL&H<ccugN7dh(-iGr!B)(_ i!d6u\?A-TߦoҘ:j]28vn;ܞo. tƳU4UOq,* N9>x˾A]~tu'uf ZՒ#_$Ww(\֤/>fjpcP!b7l.ׄXO9~%ͼzϗR)0 ->G| q@D1S37ߓb+TiozǂkǼq%J$?o!3\y ;*T|pYJ.+Ufx} O%OZ!4]7G#8X}t߶־"Q\4JE9BKffZWWr%ĬX7?Z2Fe$.ߓ"K;ppP98pODu $Q(=#Ю6>eޗEwmEԪs)~E_v\jy ֊z|yL;R[fν1S7AEH| S wvG^T8;JtƕdƱa VGv9*5YOZPyPLV~8'RK p&\]^pQ`-szJlW)1us\\>B IDAT͉9m 38rJoR؆>}?xPن{.s 15X?E&N&`_WF#_L[>=e2SG3ъMGKC mYӲ}-kLV@;W,NN躎ٴf}Bč],ٍnó+.lA[Hju`eUߣP%1dR\Ww]zo=Ց M9N-| plC"~Ah8?0528Ɉz\pskQ,~ʒ#vO$&fBvqID??Yz ó~_pv ע^2Q~[?տ|{OwwOO/ zZҎ|(Y88p?$\byF=1|R!)Aը(8XV5O;a %(LO4ඖlvh9iNXT36&VSv:'x{J)[;mHTJQuػ( 8)x}Q@bbJHfB&,p>B˴AiE132gR޹tڱ3j5dz$̾Pi>WaN7J CɥV\ďMS _I#v}A)R4pHL쌘/313nQ4s4V92߱V/R'jV?BL;vXC%D,ªϯ􄲣 A~;VeNW8,Epe̸ey&N-Iex).B8pψ8C^MIr1wxu(X xPc`PE901 +wJ -J(,ꚫùiH; ʒO"Sr<`2۔qm)HIF1lXщ 7RJpsC$Q+eϖdPIb lw4w)$"t 2u:z dKJ`(Q,Z) -{}MYߺ\1^d/*8Ec*}0.oW Nzl]]y.m™孢{)0T hft[ŒQBE5$mcn\~m(e1el"\2mPѠDLS@0Z-a Gq/%R @QlÖv!ebJX:FUv4Mw&;k4OdԄc'Ϻ߰[ؓK*3 ~ٖ3X:WXh&!Rٚ![@*5TQ7_vGl△)dϳx|D?oIݻNOnL"$(_:?ڰudstf>t1RBADcj_9҇{|-ӎe`Q͙;?({ A'A`1,~T*tՐz% t\+C(-J[BGOcF}.W3՜ڼY20( 3*JV\S\*c'B>w4B!`={ȍcJ=gk|PzƼt PAuj'/BtJ7wlP_s[|~ӹc 21+DfAvz4+L" I:QsAvdvԺf6q^O)R*QU˜o+͚Ց`^_q#"ᒆn0Hå-nJ!FW.F\0Z6;f,V*W2K2$3:% =f]; %t5G le 훾}(,!T>,{ЇqĔH LL5 o7B8pLI=UI= c&ZhYK!).5 I"2𥔦knW-:*=DJc;dlʵFH,\({EҙF[XJ>XEh*)PݔV[bN<+L8+bηYcfsᬈCOp tٲhkAՂ= LɄ޲]@=-NdFY)?xnoed6aMs#lVV5_#|++HEpk-0)hTNw7c) 銺r>1/uULu! 4n:Aӿ>tse`b[qo-@)K,SyF* {nSTRI< z2f>1:8'E7g[͔Ob*.niZf?h؆$LXTsT<7l!y6~G +jtUچ82@;bŵ> i Sv'цA%" ietCW͘\1jI(UeQE&pɕJ45|}E"ooKZϸG ݱ݀#GvێToXNQufȑ3Q<,C}]h h"Zi$26y[W CF 49B[!@/ _;~519q;kR^9~yT w,$<f {fx]1'+\n[+U0"( wff+eL3ܤ J4Ji_q[y88p?3Mawk}T P[%rH)'.sZ\Uӷ*:* =ˈDQKq4zJm*nű۵SRgOIqtsASꄫ?xt vGh{._+Gw|eS$&vq8JFA]r 9@хm9QH29 ->M䍩7Qd (3~M A2v9/eφR]_H{ϵ9T+0@ t/@o,?jl˴>5 AOE_ },XNP¿;=싰Nw>Ԧ&]r\"} T8p੆-MxX%cJ*Қcpw%_}n,z/TD-AqHc,YPh G<PeJ.#)zp>+)^&. {GCNeŻJ[ѢAhK@)hַF.q~!ܫ53hs8s/I*7/<'%ۙ /Dg.Ot-T*QLt3fs~k,tP /x?1tB Fݎ_Ї!1I}&wL>nQ||GR׿5m#sǜX 섰δ/"h>O{ƊP_cd[:bYmcTaCb 1_b`Z)s=GzbrqD6n5;֜NjN]N~@Jo_yYEp W3R!drBeAxz~GzSӘq."w~GLa0nJ;NN9jn[AX)JrQH{kwRc†|L/SKKߔ3۾墬螽V|d!v{ֻ51'z01/o__%a4Ӛ{_Gjni mnA8n؅z_x(j̵P_25oX.&]$P g1qjI?h-b/P}AU +<=K#d&ME(q`G1 {Q6tc!1b2na6cρ6\Rd^*7Ğ>{3@a ԦB+X_ޏ !PJEB*=۴X8H9Ѧr8ǔ(X0_te}0WB["?k:+MEA|})2~BX}E>}ӋGS86F~A:cL`G^A~B8pDPkN3m0֍b9i.TD;[| }7ϟNg-ՊEUOʆ<&8hBǜE)(QԪbZHjm!=o2F2ap"Tv12@_6 E+M5DLe!KNWƽ?Pytgl\uPpJ!Zpekz@ MCm`T;Ь!72(]icDA2f5jmlaI)<S+c?)er1^rքYnCrW}l?ݬ-_̞ţ>O.>g1e61:G>*Rks= n٠=o% uV2'ysTa/IcђTb*$cd*_&rbq4d =ޱQ/}ZSjv42#Io.KA L+f1G遪r CnKtĒ)Ŏ!ybI([2̪or aKeFż(2U|w%U!i"@ǖF Nvmӛs40̕a7vⱞR¢LQa &%M3*l!03#q4SsК8Lو%\nQIP1nMni\~ m!u |K*^q-TgL %M9wbb)Z>xf嵛út}H(j~}g, vUnZXW^\HK}rV!Ӎ#=BE3c+T4y-yJF)d-Pͼ4H`x`B. #PY!)-a2Meډٳ ~C4  -%*% :~Ƭa$f*x*\{7 լzKT]瓣sCDm iYPv w#C1bX0cZs$X%Դ,RQ($uLhZdh g<8)P=O.#Be &=Œ_SSJHw i Ș#ݾ<,LC0v5|9O2վa派}f`~ oo_邊P>}Beiy^G,h^oBT^1UD*?\<ʁ T8pGD9k5֗ϑ{yimǞ͗q/%YnGURqƲmF<ud1F(%؀1Bm+f.PՁ欓7$CVK)MD-X ѱf(x)s=RApX9S}Q]gZY9ŠY1:BHM,b#M0K,+̲LOǞ#I}@e+zrQz▣ZWw}sű3z~1TfgrO*qhuSN#a^hZvv#_~NQlkR88f׷ y`d[&]F;|?׈$AQɒ~hA%E }ڢZb$LW>8UدϙlQOecCF$CQ.g8f+5QXx,B%Q*B3v#uc"D)h4(>b T>SQyZf Y(lȒ呔OO XʔYRf,ǘ&"ÌeRߠ{HI۩dߤSU7:D`r3-`k8Jڡ~.0U* *1ή8 g, 1J;#-ׂ|Wo!XbZ)_FL" `[C ?f_r=]1ԗe YD^)AiBE兑7aZPJ_HRpYNeDWK=$B#73 X1XcR[CeT^GEbx8RƄGe-iLHu[W=T,-/;M}*#p,Xa9Is-2`]ɂLC?zgٮ݋q˜#CI22òZp\1s[ĸQ4S $ UU jQ =\2j#0'X"A.$ (,_o^Y6tcx᨞qrv/#H{wȵ51Ok6iϓs-ŒjI}DxH5Y۩ ?LA˛P (2@m=gֵֿgxQ"ץ1ױߗ b;x^)I%$]K5\@m=BTʖ`+({m[(cxmܒͩ\7MDFܔ8pj}|A!"ēV L^eG8-y!^K1L7-6ـxSXeC3vN?F1RK!HL4,sBUØ#aQrO ,,ȓI 1[fb11D '&1g"aWl &Lz}Km#2ɨ8m aIT ,_;_2"솒`.gTGe[_}(bӀX3ib#IG8_Gej)<~VmHo\WQH: }y?r(79œ4ӧ (oI {ی|P@xbwLE:ԸSLj$% eTJCq!G$1䚂R<ǪX'}PǾ0v,=:*ݳۋ ;5^Z2cK|e{c 2,Zi2rtg,fq)jޣF fH)DitAd`3S1c%wq$@?w.qWb !I4ޝ4R$.uS,œ]VR!iiZˑPT(F=cxN,g-R”;jnd(w"G*4A~e0bKeY 7FʞiC?Q S8&PȔ7p*oA.Ͱa=^8*SQmX233o1ƽuapCs&o7GO8]wbTo׊x889uB{iRh%7omCA9uk2^ 1F Qkiۖ*B(qLh4TMXeDkь{|U >zJV`s똡 ba\m"Ztr2yqQc,'pwɴP0LKgll(b G}7fWEϾ~DUFUq%4XXz#D@GH)jPݚ5M+w3̫#>9_47"hB)ER^q}BDO 1=C7L}A.o"Kv@,;T]W m:nKS[ Fc/̌DHC!aelpY߰k*,l;ʰ A}7q3H~,D$%$'LaA .]7L9Y mLDkk D 0L}Rbto]ca'F>˯K#eOYÉ?㤇tF"ðMЛTƩ`feMZ|<@}5ϔYo=.On`֝p֛3E`&Gnʣ{D/J nGP>e`smqqK_@u_{r #j%@w^AS WxSS$dӕA8O9wh# 8p'HSyY;E(-;.ñ(3#dD#:@3#ս>~WrMN)q,X_qԴX#d- zf0$dnoSe/ٲ?>xa8oN[4e'v˼ڒcӝp|lsuf`B;2np;9^ҮhAO#y礘@!v<g}f3(PY;2@x*f7>$m[~u>}voTc_\}#&^|qUI7nh>uXo,cSHrT9~.S61ljF>>}1p Np'ᕑ+Ú]4ܪH]J70$Xn]]` uZhfH=C[O\Yh9g5v"uU^)߇` >$v,yjNkݛl17NDbSz|&yb Qca{$ "9O8Ŋ؀ %Gz-9.[&Ҝ\ɳ+"ɜ_ϸU@$mD?ox6`K"i$ o,q&K]Xkt]d[Ǿ$)}Hkp5GxKWQy<3Ye"`12Pfu< \yQj Rdo1̏kL_y^nJ#Aئ;ݱc]Kj k|xqwXqjHsױa'AB.gjSGX"Y4r5W[Q gCg+ A,ng;pt+Οn 'vgmqR2 Uq 4;al8U:aq?rgc-ۇ9mS`(“diL&Q ѰRTSa8gpms?07=JJYG]nDUaXY ]N]dOֽ5U5^F3?SOcA"gV0idfevpu1'!5|=be5 ed :Ԕd|K1$-2U`kjW3Ďo~'ղ/Bu{Me*1s3.ij}#RľLmFM r,Tu@;2orMqLB;,|*G%fȯgrLNpHy/6}*SsME*Y2G.3*>R۽0È 0)ON0|WD۽SN,N;6"ij~{?L3Ϗu@d1 4 -R@pS0bU \lW[*9glv+|G36@U EŎ`=gGKk?_y8`g4<2K&4M' X7oqbX-qy0@GѺp2Ȅը|<2cޗK #Sިkh/!"?`Cb`DHZ>% N췴wN,XZrVňV,xh%>WvA ϝ fr&Xh@e CHH7ٕF,x3ĺ 'e7+s8pϙ1/=Q}C!9S&2KQX*^ʍOp/& b4sփeQ=x6* ,|Y{DdzS&îWb2'ج0yM@EE[_!؄ UK?4ưp1CYG! L:[x>*Sqpzظ;,P80K\]o0l½&c Xs;A\f6cWy\f\ X_lh,#1CNJ.Ő7Kۢ(wTr83btK*!&U!ulj^<,qX߼ΆwwN jp0h^&F PX2&E[b؜~ ?ÊܮuTV(Op:-T<7,B3'&S{DdxV&,33\;R;no8kN(%cÙoqa_oc%Y0JygvkNj,椔/{p Svrrz'xl"|Jѧ*aG4)F`rNycJiP =Y YuX}#;]NS SQb.!'cL;LnCHGeC,m:d]0YP.`x)(!# aeOkRDߒI241[\hSw0"\+R&KNS~ -lҖT>숽5i#po~|B-Z+_mwKH鄪|Z"eg׬%Uݜͱshf3\p?OPp:㴾?x ͙ !s=aQЕ HOYS8:FCQΌo<@W:г"W0(\نUͱTS:]R: 4{,e1hRF"X%Ը*Eaֶ)DT`lEjOKa;S?ljCWiV.B*Xtn(Uj$>rcDRRV_@8C^Blݭ(]7瀪n2 IDATM.<-#F"FG$7S ]1`_c2sSH|c ci̵l#v2䒰bZL&)GB+ 멼ej9n2" OE#ax#Y T 89Q;:]wb[ ӸUU=eN2iψoyoGQ2;,i͆gOG='gw|Ei X"@T*C9l˓/*GK 6aկٍ[2Kh|5oOCQ%H*kf+}l",gf_\ ozԎ_c $<z6+;j>׌%k˘g(-ci(jQ*aeݍA(ۋtyxrWUley&pK4qP}Uqnc@*7$dM{2J_עӇ%;vEKayo;@TPUt͸ä37?f8p?8Wǎ{@֏cOPt S0 f(*(-E@-.@a3caQygY bi)lD*1g,MztL{a RGMh|L&PqjrSfHvgݑRhI4H/酐y1T3W[EHe)g.);U1o> BJuzرzQZ9Ӹ;qzUCSa l(jdZ]،FOH^uDd9PJF.KD9g<a,#~ {g(m _+MTs!ʆj!P a!b2bYc 8 M"g*LDZLLJGOwgս$v4U)IpΩ0wHb, h>)K6>}³s84-׿=S"ZmD_{fpC$}|aה/0?gg%# s՜5(> wtiz|+մ9f[qXA+6B}]dvi;10'iפ_~Pl9}>%c`bQ7>ȥ&iC9E[ :bi Ɇʎ7fZ>rPyr[f$H(Չc8OU|m_)q{rr"6g,$?ti sbVT&\.J) e YTɬX5c8Ub373]}eμqh)Ix)I Poݾm:y>"Bk􌥧Iz\h +iM2"TfQ=5X& "8_Xhd5AD(x5?;2+d>Obh/\q>~gȽl]b]rq5o8kN/9K=cTƳ-GՒYa볨#J FQ+us6hjIg8sDXPtZZ,KyZgP#q/VD0㸊''ʷ-v?^p2c,K2C( aJUG#^('f7䔱ޢrQ#B 5BʚIb5$B@ TԶň*3etcSFC0Aئ c dW|b*Se*WsZqV#+6qC,㔕|bD&mB x\qhɘP'$ΟPi?`9G#5o-L.e:nd< ~Zqe_I'3bҖюӧ51R>t(JŘy8cƻ L|E)%-8xW5ѕp5*23'T8X aM`܂MShzf ;8F1u˻53 '._mx3mLtㆯJKJ)o>1!$qXk𢘒IY9ϩO$jﻑ8be,9L=L#= Krb2sό\e7U43bĘ1veA*R޾~''e3)pW87|Ea5*O1©X 7 /clu!7圿 Y :܉%HX^T rS v-kó7>b\3C{UUiqƦ=Aw?v LV۱Vvo!SvlfC5@,ĢP>5#ϰJ'"S~LOR)8ޜ7o_t|/׏fO?__|q?_}eRp=ki2 P"R5h_"9C sDXV#<ܟc;~,;YU>`_:nIqz02ڧxsM=80ܢdř(}>c'SV9^0qrLNIZ] d2'AǛ/79Kz| @eH{mv,?1J~E>֊AHF>Y-2706Q[E/kQ5bnJ_Ȫc-F܇*lr?',N ^*p̢˼ڋ}ث%r=E8Na 6 V,}ɬc([q}ih%Ş]NZሣf  Jz.+=k<2(>x(MbupP2Rޘא9 yk)WI|^U|ʚZ,sF#}y=g_ӆ7T"\ᔱCkhPArŸm?>;& $N6E*XT .kG%sS~3|ܠOat]iXx:'({`9jNOi0 *-z@Ψ7a) Ԯƛ@ϰ_{s\/9_&2>l%OJ>˚)mِ2اxs~sSD&njs~ q |]C |7)tg|qv{@0s/}Do6,.qŚ ^7ef2 /DApfވeNb$Qۧ8ٽ5~W mBfOqJe+2J~lZ,6CCO lQ8Kʸf=^I;.s4ѷiuy?od̨L*B H'?hAUSAj"2#"ngiv;ӝMK| g׮]f^g>0Z]f5ff7Ȫ+s% * #aϼ} 7XOOH*ZéP ݨJG;\HcrJx>\UId5qih7:ve"-}}š;q4Н0k|8k8,ۖ;CT͂v1WNJ gg2]R}^Pf\0RH5 Iũ73(Ke&ߔ6Y'=҅>dX'_șo*f2LJAa mjcL=\QGB xpfR<]%.~;{-n]#Ķ`s9r8Z.i\MiXæCiq\,-Iڼ7h!V)I`t)YL $6@Őr5-UhApU}Y{j.U12lff2}vXXțM"a Gud13e8cѴD@brfuXǁ8n0_#6 y vWPfwV!ҷYNd(5#goy /6 \'ȓ 4s@ ɏ C3փ8mMvGToDV$ZI4)m%X v;{Uշ˛F48-@KF˳>OIsh*qH!nFoB5^ EicGGJpb9d5P.jMb(]<) 0v 5wT$U|m}>cNN`j!#eUr4?*~dș`pR;#_=fvÏH4cGQTs6(_`Б{Uywɼ\`|Eer(^Lbx}M "THZb89ǽ5}}xBwZ]HZP-=5s~.##Ka,Q)LBmO$-ٓ#S^eWxz/P$Dc%10-"up|ӧRT="YQ{7k[_TωK2%Dߨ5(`(Ijؙ+$akfyy28. sാp{aI-%1 {?-Ai>^ nf 2(j#l] qwl#%k搲B_nN 1Qqj3)%"z28viFLjJj,:^#c[2{1ONiEڛV&95oKO+qZ8} CÔVTSڟEM[zO\y[kc<[qM7ԮA0wB ?|AB4̨BR!+F aiqqyEFtyJ'~HL44!de1ubx3,5#V-<8?]'l.WQ{p>Fid-+N+O>g3#uM| C6G vF idbjoUNaT('jdUFf0%CX*W2|"n,0TRC􍕔8~tyoxEqDO/8eF2dBOG{^CLIdeOe P5}Oė0ݗ#1~_QoI'X<'iAJ~ی5bNg@$PV5uYca mab^sҀ3372 m\OU8"jØ/oUW*锸'XX7@ݢʎdj{CX}Z-vOWSCּX@'y|g"pn6sو />+~Dvqǡ"ZR5e |5gJy ]ne5"ǓאX__,c15OKA3YGD,HKIqܓ^D0RtY{ٯz)dL'1AMue~Jӌ5.x̼8ę֯-nGD^֜~p`AYΨlcD&5՗؊VD,C ob#wBVKHۖ麁٬b1l {t11$"VVWw 'P9Y5I"ཥ-]j͸&& &;M5RڨP SN}ڇ=-& P6u8KQvp#:}G{uk\3/qdӒ1zǶX.*S44Q'Twqӥn bR+)8c%6Tɰ3,f1OIF>+!rN1d Ci)IF8J; o=h.bE=I-s2 N,QCZ~waK3_.W;B)@V!FG#1oa%; lq"Gߏ5#,,I[T&kxgSybOY2`tJ {ne7=Uy#(CT%j[<x݉PG)ԽV3r#RXI!eE5c)]AqȓRN4fnLɲ8F!䄷KM$j7GL XK)+JoBܰRP`ޅ\ɿy9do/~-Fٹ #~l(KoLu^T\~M6Y1S E ^I&~$0v ̵alD53㘥t^Iӗ(zM `}51d8|-"OSမs>dĬ\r{W㤘~Đax LÐ-)$hwJi[~-I'ŠGO=y lP=`H7 kc)M_XD]Aqㄟ$Qyܥ$]QA:(k&OcG?I={Wv+n3_Vv3-~qHu.옙]PϨ\a3L.Wqq]7MQnq[6CW_ppG,k fnO^]so͆y&؆Ym߱ݵ99 kSS˜)} I!bx: qÃTEv4|>nlaoB ;E}[Jn"|Fi :yY;D>}҆hoV$MteQsܝ#29_COk -1jhc7y`q\Z>2sw+(O;HQمVewdxyd"9Jc.u0ۄU9 V3*(kBP>@b0_ uK$xڦ> °za`3؎H6t yR V#f{bքT G:2"xrv 9 ] ·Ĭ^2 "6e70q͸?T 2Jʖ 8-qr&D>iG+!{OiEÎzXEAqQ6bfkt#c$]ZzPR-jip|-^7qW4mK.GGSO}-nq8/h|x'`NYXqb%+)r6D*!⚝6\v;Á=&F8X0 i^(KOUǿc5t|Z Vz@BYzj w#0d=a]b-g(y-*{x B=j> UKiK#%6sTD*Ƃ8:Ƥle^qZTR=Xm !#qqX,ZpP{7Lm]n؊^%+wR11{If1@}JXBmq̛)89yǣSѝCJ; T"cu|/RmRHYJf1E΃<Ʋ|Hy9s_Fܷ]Azڂ(f38F'/%Ѧ ј4hUYmOo/|H9>t)9WIs+vOdN]V&:2s8@$)G7)E8-˫7fFS%"8OUM߸يa8N93i3yks': +|ήm\NVohGWޞ{4 4̀+ږDH7k5 Ȍw^xfTqv0jT![)xWP[4(yFBcMnמqy.[?HCί aA! iG֫洢!!>ß4bհeyDɆX `KlMZ1+vvUXqJj~(~|"7y6V7*v]X3d-nm3Xȏ,x,>rF GBb }.yE7ad6$凋)RՉΑ3ĎsW:*1EceC<bh|Fsfd Ԅ/|~߲sf"~1ÎyT2O!y%WDzr -E=gE'w>S.E1caU*lH@"WNL1lbIa u1麎(\Iupxm`_.e`*,ty=Րj-17 P#Ԗ x{opLmϣyoЀȔsd?S?WcgYyڳ@l"a@`Ry)l?<'f 4+|1+O6.f_ju*cI!4PAeULa7~E`tURG5WkζOyM]ww9X??'֐,kJ{ڷG%l ҇}c.\fkĜ(mqyo))Yb ,1Y+s3! 㘙-Q{#3Vc~݀n3F. b|+4R(.l-aͲ\hVuSo pP,p!L c6A5Fʚ¬pf0>%:>{olCe&{(4{ҘzNSdUr1ť@[\آvؠXXMfقM,&G7 x+Es͒!UEaiRBɖ9b+#c D-nq[;nsiGg̊4nY!TSXaul2t6R%%dKq}BTŌt _ˬi]rt E+s~9ƕoC d0@HOԾ!0_ϋ SuJj~^*CdI$tDl Ż5ҥ)y7^ހЍ=ؑ Cߪ^q݌JgRgJ'%WQgHt C^ުB-ֻɣ54<\J&fՀg̢UrݪƊ]XܩSA\AdOHA XVGO?? w ξ@at4% MMHHPD?6lBKa3[YxƐ;K>XGR˔]ҧXb1 Qi&G=!G4R8ƒ^Cx{]pwq̰aSْ.AMlҥ&$Jo}׻w>oi `2b5I)ⷪFS1[6f6i\/qSPwPB(de}16)+8ƅi=-=^:daC '|/ZQ@Fu迌kJp9,N8"il'[Ś_rjd5dh!6Sz{owP$*ݧOpY LtC6'TkޏciU88FrM ;lpqGw͌Z12Z }"(K!/%hº_TH1X~p:j;gL=!8 e7)*Roq[:fa_bwJ?d>?ƙC4X;ϙ̐GAL$C IDATzR֒y}"Pd39M瀰K. m42'qZO?` 8b0,9s؎]?%ĨfƔ,|RRV kD3B:nqwߡ. y$&2rReUH22m4 38|!gOrzrO9Gn[sD_q[R}rf, jDLvZr8HhN_WUj2 >o^ul_!%^tO #({*|g _ tNAhcKS "bh䀥9S#Hzz%y1򹬠j5WL#pRYt))g|?HDkfE9]AK~G5ݽˏQlW\A P}򘱴ĺ!C܏9*nV$P+j!h )DPĊO;b"lCY4aA+FFhJGF\ 4=5RWxsc!G.ٌwĐpfl&o S(K6*}J*QMP/s;) mbs6()'! iGm+3s m{%IJۿp2UeVG$`cF^)|>\IA`pt)C/}7ûB"]@/=!}՜+Cp'?]K? vOo1JOR)Ǎ[!=XHRzW۽ ~,N]k<*A^^Η+$iq(ADȴ-<(#EՄLiRpHX55hP<٢2ʰԑU4m.qnK&:d(uz<&c2 #UZہAyE^iF[3o֭UQٮ݂̕q$_׸5"%\Wsy)wJ3tCq7ddK]++mG]7݆`􌑙gTU1 E\zH& }^~D]7Đl6H!Dzi{GqS{pNwDP e)+k9#"RKLcR$)=bdIc&8NҐ m |!})}בhdj9O#:X8ڭԮQ_^i7.RH eQmbd2"3#cFg+kh{v]q+Br$ %)JTF~6lz)gS` y B yi`8B9\;}M+(,kp+h`sp٫ՔƙbqI.7AT"zB[tXbՋD05Z4F4pg$5-k<ν|x_~'jD<n.2Z="tj/בBDsD ̺ѢCzj :iZ?}Ċ! "qK#[T0M_KFaK2c3X%FևhACTE)Ir2eII>HFmqqPICYmHɴC#$܎XqGI4i=)cvDFXGGJS2ft7!v@[TmNB{a tmy\zhZ}MCzNew@N1ywh%^ I?T F(' x Vy[DQj((F$*O7Ju TvKB룣).dDg$Cߒ | s[۲fI&fc2T]p^$11Sb+Du9?_rhd4f۴$wĐFa`o9*+ ׎G@{P_3mͨ8ŒIBc*- 4 iI}G';d\L=8A u=, x92ED #$ Q!P1 ^j5{b7Ç9 LFmpރd9c3F8ƥv|]/#Sx[v- Y~_(]82ꁡN1!ˆf K"4 # HWN^%4ϲEX{l4Ώ)!w~쌪9t#S]֠P|s}{BØ.C#є<;AGggOnr,=zB鯐{eUp׬ڎvPzI.*Bن(lNLKyt4F!b?? Q-[Y`(҈#+s(c.Wg( mHrJnA`D5ZF,}Q6hń##*+) $Wʓk@@K7 I3z ܬ>~}J]1QS #; av\,N/$pGf4ؒ4)'G̫YRj1~y5 B 9Ne->;亼&+qk\ ;֋GD{{|?EmLu(LI(J7d*RZyq֧CUqw!X)G]ǟptֆ'Г9 uBQRDX%.Уg =-ӮD7Ȫ )q}'$$@#&D"7algӣ9eκbL/XvdJRF.kXtٸq:C+_s+iP*J$.O.D':dtդ4`SPFSLYly3VgknݟqctO".?K\n5ˮ SxFlR[D yF4Xgl}LlO?>hѻAfVyUI[`r¸<=V8 OزEB-rJKZ}K"JVqseZ$ "Q!S_+Q-#o*ӤyT^j:m 64HlH]µ =Ұ-Q2\]aU^⅟SC?vQ Ɠň 1BԎ=H }JH^ه( #PXsҨ Q6e/hOi†&>J gk\׸Ə)O)U˝7&sDCr¦mX(-caHxO[4KOB+(<%DFs>@˳"&бm,jf? ' BkE> Қzk {6D]79`1QjC۴,K6eػĸ)WYOOO-~&ĭg4.ٟs!?}?&>f5ǖqH궬VgnNHńba ܑZIӄH"Z)FӌQl*X藁l7^y7,=4ĻG#D \&(Q Dm0n"oV^1AtN<1ǀ7bRiXU"e"29tB Ծ픬_PLvĥ8h}VYϡ7#rtݣz49?oqO:|O:\/%"[ɖ i0AjQ_R(X\,XF#f3Qir΃d;LFtte^>)]@p4(2QdU󟑇!m!<BDv2'c"fI;Mojb0.zvݜFRHH ZP&4(YȴBMf՚@ )o<1vfnuAVM)oܦ53J;0hIT4t3mky08c&+qk\\<hGxsU%>EPAxɦ_55 Xqc4fX ;3E`7橔Pj|CJ`.(J1 [n bh,JDi  ,*!`32q=}J䣟_헿G~O_|J1*CfO?Ľ;wX7\]з-Znݠs5rA1*'cpqNYKc'F />g5ӂўf<[иAmN[@kM ˶s=[DnQVQ،wV6(Ѹ$ńNiBKHan$_12 !t':rQi=.xk m4@ MxA5%toQ9_yN?qE, MWr1\qF+]`QN(n~쟱>ÿkqˌPf.W}|@~CגFH ʩ N$T$$aH _w]4f_͛169:,sΥvІ|]BR?DGΛ@L]Ѳ}5h]gN_ņE70k uŒn + $)u5/Op!Dn_ftAR*:i|;/-BgaByo,ҩI(I{:JS,K"uk:b(= hQo_CoER.Z=sHiBom&&b5ywIe+ZBO&yDz_l'Ba I&H*z:i)ow?{.DP[y$*֊%)D)xoQq@ԉmQ"c7'*_|]Y^ E&P;s P#W! E[TtI3""034tؓgS 4S"1(jpH <)wIJ A!Ϥw*SL .E|4-[:^4lte>(˾+JTmqa(҄-XXcy]׸5~XX߇־R{]!&*bq+DeROTQ.%HCDR`;=B( .dDtP~Eaȋq(F<ϬUHmOJ,הKш?#7a}V$]L~٣(H|3f]\:x I< }߱>m12ȳ>54~K;P[gv8gyyȃ/O.b 2,_ǜqE$w՛Uq$RD#h5,7+?X^n/_7E.L)]YIfeM$ =Po^]HEʍ\Zü/N1< btf9tYO$RT൩EIa]2 =,$@EJx36[,_|[79F{Ztw+ 3$nҪLy2&r'x:߲1#=hN7ɳ EOV#Kweg3%JCV=^m4Z+~g`}p$`Teo>`G+MHjl`U <+iBe4V,W :cӿ?2v a -(3Ezlj2r]uAl=Tg.HW+ IDATB3Xj?4* 2Xt%m_UVhѺi EΈ1S4BcX.+RHq 7jeb⢏5[ls ,'+6v7F C&F'OHbG+R[!O|fy&ԞܽyU|ftz8ETM}v>e5D4I61<ԘWZ(3+R=+S1όWӆv"k -ظ-.8b=J4>zUd| IJ`N 1L`Cd-42GKL-p5)5bL.vJ[SmR ebd3Q54fU J+ x^RhB2={HϳJ"Z)E\J)}kctɭP10_%l_%QiO7`󀢴vo׿b]R:da\ :8OoJbJό JaRĈ0(-CR@RD!z$%B$$D-\<*A(M0%m+7^8̠c@a$BT(PhAk QMIÂRsR"79Vl]dۯwyk\q#D.nGqW ʂѬ LT6 /$!)bT$I6[` CufL"w5:LfF3M8<8`Xpp wc6%BqPhK6ZQ9F)N\^!2[Yh!ZSݸ:x_^nަ~D+MvCcSԮ@jk1❣{Bq. Vh)bJȳc cʲ$2zu[lyNy:ϙiYF, y¸h|*+cO.LՂAu!E44%Hl:.fjwW߬ J;_%ª/SzŢ+~yUB>CbJC{-բӘJT GX!8KԸDٞ"9O\f`g غ5LnQ]]]$9zdAsSN*DUW M+ꩠB )CI?}YoXl6=Ea{ܽAӑ=zY/yyp6M`(Ca  \#5J^NRʻ=.DyQ~ror@ד1.t\4,}b$ss@arl\g&SF B$P|'KwT-1E\ttC+Me d?X;fE??xQ%׷|q"0$|!HfÔnYK $v~؂Xj8.xT̈i6-zm]A)!TL,LmCcʥ 8t5( Äg$@j- *jTkPlO&W:| lچk)wQyF].]Q3L(t} 1l0w =ZDBJûWl1 2XdEVx!c4J 'TUW棻wcj {sE}fKF7qJqiD{sP#$t$݆臆C-o_P;&lxLe&N((~U" V%AH=%ئ ( (H[EJ9>fdH@/0#Fv¯ |ԎNHalkBJquvw m rx vA\?<~uxsE@[h"g"ErS!fd j6BZd.A  B$ (A[-Ӟ=!+'i:PیOƒEK䚨5qk|)\v'&gs|0&TvĖY v-J7.QA!MIF !v}tdt@ȟ|s⃏8LKG5!?6!soy^І2O'O-Oǃ!8R3S~˲ M{JsJݿ|Lo:06,8OxOuXM cb m:%Lŝ7/ӣRdI"2#DAi bY}B蘍2bp+VYndWAC,َbB iG߬֊!׎nY/隞|d0ٮY;8 zE< #&O3ntu-F5È qs b`l~er^r\V{u؎0_a {||MvJj4Z3c&{eǓ=(ח.Cca72(\̐H^"4A;h"dbQuC!+&y]2`C\=Mcd@vWUi3)>dh\2C̏VHi󀣣 @`>/NJ3 YD F`u#1!^);o|A@*P1gk/_։jDDRi0 Br{OIk2K1ΈO-.WlQ>ɂ~@AQ6aӭ^(2m/O=k?Gnbd nx5Gv/o$F<(>Bo) Y$oNț'L}>*(9Ri}GJ|s~2KѭcsjEwyAyț2&/e<`cN[/{\׸5Y_p7$~=Jlv@fbgrĎzV%]qgr{=ڑ(LdZ8ydQLwWq!}CgXID@c$4f2qXAJeIJ ^<~|_Ef)}svvƭeA<Yμa]dylvGs| +ǏHULG$ps"E]ҸAC.1q^R uŎ ];RCwe"eoX%)Y\g7XsXؼ!x٢dK1>e]DKI8'ڠ-bØy ȱq/q.+|L|"! t\w+X_.LkPm.kG\1?m&[GP~[9RĽC?sVG{l趗}O!L)=ey]H(74CW̘l1ymE_|7%{v-f:TI&&: kGXe(3݂~G%ê %jGhqoBLc5^B0Eun "|%*A+LԜQǒ\Y; !SUj4HnqA> >߃o%9 g6mV* +sq=D R{_~9)&v/Q'늨 +#ܔ3KBўB{l찱^PvϙO9r5]uB> Gk4ZIH~%4Jb N:T $7vb+O Jc>xэ; EJ^q \x]ٿ3Aא$ )V$WW)EQg^=Y=q>Su &+De ;,%yV~I5>.itss{sV'w2&jee[7ihY]<ӟRrC޿;ǗQ%rѯEr9>dzB<7m f^dgT1He'ff2.\??'=ꪤ,E1N1]ĹSYx%)MT|nf%&)ݻO}hmR.faX8 4Z8XbZײRѣGE{(+0$rR]r$S6&+p[Ş>w=Oo uApŔbzt9]y +عj SO4͂B{6מv=?4%e67>SmVM4dg_ }/ fn(ԿዐwV4Wԯ` )P1Wl5cџrc߿T!GPjC_, ߺ{'mETB~}BUF bNxmw^ߘy 4/V'/x8}ُUeMݿ">呸L*%3%:~4`drc 9s'䡡 &])!Jj$|hQ8 c֏L _y-nq[9.x#MýQ13wLFq@{Bi[+)dq㽲OGޞ9k&x1JQ;M29{{<ߌW0cyvIPW%FkX )(P;tC&ĄLb:pOX>bv^-I! Lcl6c$`5;f3&ι+XGemtf9A ӋG1z a%iBiNjF0ʐwƎ*%2jv1'f`kRXq tA%Kb.d%7vh5:mQh"J9Eh,e) %hq$6O)'W}-v m駈hYUH*QyH\ T6Ԍ $.pZpt&p~0s܄Paџ`6]l񺤴 fGJВRdꦴeo?$v=9*rjK5~픔0^nqqROض=fE=9лx-FD|)rd0&ؒ6I1>@KB\EZ UNN]dONyyH⩨h !Ű6aC>-*N;f-W;BU05QvlU}YJ۠BRv C?A4@t}D))ɴlC{cp=c$` UAhF֚-nFkf)Eܝl甦&:VVQڂI*ɨ{Cm7vQ%ItF%G BTk>;e?N\5I"&5À(]N Eň0׆hP1Lݜt]j^5Chʒ0fi~N{`v94Z/E*[3-n5DZx>zr@)Х/g 0Ⱥp>b0(l{.">9V3TVQ@{ =#1*ъ'ѧq.Bhr 4R;w 40- XzQ^E3$'jꊾQfY-&k-׹L9dAeŃۖ삣+zs&s8fwnMp>ho܎61љm_RGRd3eK-`)X}Ro&;Ɔ[˫Ζ(-Zw)LJ1㾺!a"ISIᣩ.%Rc6(kD-i;dYUJL` HyE7_v$<pJ9;:ԍٖ,8!~ryOx) IDAT,.(E!g%"[B\jjƓNoЪCLI)EJWpX%8f]ނf%RNlrNp<>nJXmл9]qW1:blcCm'Le9?P)5mƒR5|5+!/S}l>1NoSW{$گ6\ic~&Zq1R1SS)5jKŠ J)e R=K=ʹi@r])<3(MQkplZ5s$";LVczjDo>F[-Pa^tLfG1$CGŤQK?xU__A4bɀ5PشpC瞩 /| 1G횐"}>cp8;,+z\0hpߡZ%C̳glmμܸagWE3mPRb-hcdyWb?tH56Q*}ڒ%/xEq2=Sa,[C(Y6S0q-K8'$M]K[{ΘN甅#L/>7,mӳX.hk'1-Q#Y9! Xc@2d˚:"/ `2'ő=!JU*S+gھcCt)ۮg+.7=j5 F+f OW*2dMf[u$I48$ Ry]걜cCC4z$$DF'@%,N`YG¾lv tѥQHALJKNjH"ҨE S֤)ݬQB~3M3Z) b{bV dD$lZ'/Y M.YZo }N94]c,"gXĒx;ǐ:6nqmg,.1Y2*wD *Ci*)h㫊,2c_3V<0, A$2o>*'ϾrTlIlr&^:5޵A0pe!C3 xg)\!m܎M1ZsjaD$0 EcS&(vd8x]٣&ldYfpX|7]jYtTqyA͍ U-nq[Y=1yqSEҊÂnIHaXg>8e@!jk U8H`)+, `rq`:bv%,4B7t@ g,ɄaXUAѪ㨈ZM@&4R<)L&ahJҘgp#1Vy[Q%6aX2= e1csyǢ S9m<0 %ag0QJ:93-賢 Т^(Ebo2I;ʫTU{Čֿٴ :%Y Fİ._$z#K"-* shc1+Ϥ/MY Jmh{DskO#exyT-~PQq"j[FI&]TTg&nnȇ$7e)AM0J0ES>x2 \ Eˆ~qFb-uDՆܓG4#a}`B{6aucec7jͰX[l&225mr4f6c̯@ƪoITfam>`/LWO]:Sm xU\L:L! WVC i Qo=bBe˫<5o/tLۀnwᨄxQ6{z5oC8^c%)RWPq:sљնu(54(s[\0.nQ9!O2h+6$SӖ^ ۋ v/EGfIyB%iMSe*Xx%·L`̸[eVt%ސϙweЎ8ws#͸WmJvd&`R}SBCtؠsl{<>c oSx5eY[bjH̬ Xq)tS-밤[^V=oq['S\/8k޻G=/Y ~L"1$aMˉ~(" L`DH^cu:Y=mM4ZAe{JLjrN4 ͶRC3dB=O\\p!tC+Xh4"#6gB6:Sºݰł^{Qg`wJ! 1[Kd]EH@]x00!Blp`b4 iG7 gK;W]Le Lpl "rDgG65´Nyx}0J}ox)(Kݓ#NKy8eFi4_zʒy=\4͗u\2.>7Pϻ;ZiJJ^Ȉ,kQ Ũ|_V )a`c&T[X !/@2qPWTizW\e2%KG7Y Y(TTOb"Cr>1}+GG8ۧﳤc3, o(TVxhTkRp1-]*0*a4H׈&IHyFfy}kOLN9w.~l45V[#gQ!L݌֬Ú! lCq$O򈹟e`|/ lTb9|.>`R͊kCFivqI iGYM }RLY 37kߵ^弆a 2uStk@a$LPT)P߯96d5D[LMp5mM6h<(E+҄5{$UՁcO&I2!#XlGv$HED '&f͓-| lBy2 / ߛPF]l@"TBDŢTFEK>'Dej5:(mؚ0%tg#eX6?>mq@o*Td_ΎѲJ+@Kbj_-$*]ݵr.4MYwVpg:\ݒ pk+h4S7o!A:kv+g "&8#MrS#Ll^=)'ж &cRɺ|Nx=Qdop2~-nEv}sN}t>; !5$OOc`mCt|R vq`@紇 ]a6_MYMxIRV3=Ya tZ_Mv\x0?&%ځmG5>eU#$!rp)Ŋvr!]`9Z˳3^,[@}n*RQDsQzJ^_?_h0‡дqu3/E&8Mn୾,ATkGBǐ{Dc!dQhbޝcI8OJ3ū@{:zKGQsڠTqox <MizBajX}˖}9S4XWGc7sTK+מ8xc '\`_b_C|#, g%ROoftɱ*f)%ba$IQ Z(]Iaf^܏*$fݮY>8!~<ŏn^={ :afц:*;o8nq[9$E<}˟~.{h`k$A@%t$5,$XDZU8䔘3et Ӫbլyrz{g~Lb63x5\Zd7Ezh˱cQaxe`5\GL[vyŤU˰Rwm+8G~€^&+C+=T3(+orOuRQ8E2/G'luKAhR$dQRz#R+96<Œ{gOwf_0b-Çf?a sI2!g2-a#~# *Z)mK3(tpڽQsFKؓ?xS~~_R1\12\rMics?!Jb:4;#>}_ӧצ9u+HzDhak,bch Fvw5%)a'йZd] HO}ϙ- 1%> >`l%  Imjs{ѧ >B}]"=tBȯ3^^t_e‹ns';<.M~eBPXg6޻R&bų_9Ɠ%d1'سQ0W?a%=v |}wmUwo65bC?ad9}J}"DQ}p%wƛ˟}'7>6Ԧc(\0 !}OFr mV Jo=9"!z 9r>l9ȧ=|؟Θg5ۢA!"Tnz֌}\Q,R[7Gq[=# [矲8rrvVhol?)'Ȗ-zp&/5N)j#89 cfܻKdQlCIe{}E_HJ 3gO'XkPeQb帞cEX˱0Db ,W>?Lx)?3q-D%L\d& :S%nN..dz3#a7Z*RQtq"@a&(ԆS~~}rh?EӇ\ ~gT-Z+X?sܱ(+‚bZe>ބmIYs q#T-:٦ÒMjpi^J-YLVd?Ciˑ!+Jb"=4MhXcQuQsh.]M Po+EeH0=HK,8zZvkh5ͨ%SG-Sr֣t{1x,t]6lhbM)EwPgP{@ohrw"uflch ,Jk Ј8a רg82c.ωDH)k3>ZޟثOēsjQc˘=PǴ!OfHwFh^;vxT䮽@j(7sY20āiO)S pA;yF2-Jno .٣fxN1~X0P=L/FxPP?=npܩ3!ϧBcQ~9c~xV?Q(DZ[.R$F{Y|jSGʒ9&wGg ؽ3wYGͼݸMV;j?!8 c k-nǍnpgl/~Mik>>b4HJcOHAcOy1co9r$Ga"('# /oI)6Q  R Ϻ7 i\tVgc{ڌ`Uw1‡LkGʙ31fb4*E,UN+?{r;n:ZcZ+;[7z8CIBM9>ŒarAmQT$+wS(J(Љb4k1 IH@L͜^OHՌ[O!n(fsf ԰Ӽfbg/365}"Tz@-3]?ЇH6fl=a, AXu5͋$e9FQ#ܹf^a+фjt3ط(L4caq~b8`-F((RͰ+p Y:׷; FqTg]6x.iPC}+1cQ"r '+OPVp{%Om '!wfRФ+e1&-C1C4+eͯ3Qp֟eloD c;FnPgn7.vD2 +`Ti]]gj&.0RxCvsz s"o2'dmAivIڞS̵x(׊g`Yzq&sdqҐœcfgq&lY&x1W$|mkLC/(3D>g}J>a_2i;tnî;9Gi8U`"> >0)$$)P1T})@YDo$*gl,aٗzz1bDB^.R!Bʔo:(0NVb 8NM~E mx}:l({Ұ=h_<*+G,V1QoRVjpSꚘj?e5؄u-n5C1S3~{3Oް{UYK/'x }v$Z JfkY`R,ޠRI qL\hŞ&y`h6LJ@S;SW! +4Ѯ3Bo=Mpr D#,JM6K{ܻQݨk!-/0ApJ(0a4׌%eClLᅬ҆rL%qtVm9e.N# Hsx{ck2f^}&J6# `MƙLHF6A[Y}wN ½2ɕk,-J!+̿LvS&A2rB 5x2MiB*4Q%xl#_Fxq -|0aG+u)Yi|Prܥ^/0 TH4 'fczLA`,w !2Χ#qU!nغ)=&_P[ *:l=ei MXbLy1cj(5ͫae9 @ZfAdd<(i(U(JWqKa j[rV!ƑNiO7J~L1dDwP$zZlA ð?oWdÀ2,jՃAUլp;w{y{"\2##ĉg{}[K,hVdFW-Ʒ`W $$tuʾWktK/CG2 5(KJ<*ElkgZ4Ο{PC#dk2sVnEWt'Q5'F SZqFIFR_,m}e`G D5(i1*Dž6 C"WQl(#5AψtIi7Cv.&C:S&C2O5&FH#ĝk0FC2SHFD].5n]ϙ$*z}ظf^}/W ^| R7~1P;lprH }fG:cI*ZjwV zFDʶHtBVnEj b˜ [{H]71[?ds4GT}>AONy_"(df@zSD*PH>G%.qK\kSN>ESvƚk{Svw')ԺvnQ X2ZPZ@1LJ{PU8ŷV 1ktwcG%ֈ!>\41#,ZO@ x2 |lx1Ǘr"x2 QddCt1B |k-Lg#Cp.әci]v-{{HW:em ktc]%Bwޯ k")&6>>Bi>iO{džvC>Z1E`lh #{006xzev.*S,z0IB% ŤI*8lz^8K%iU@fǨ|@wm 9!s|wXEֵm޸žΘ?DCT{wX@V4+GJ͓D%\c.U- RwfCQ{&l|bx1i)ѣ&U)ZT,W>2y{ꟿDA8|,}A$zUZk_EįEp![&Z={ h2b{R,>A7!qp1Ff stAC Rl(,Z: !1RbƸj5٦' hIZP*LGPZ,F/,t wD[҅D 3"U)dL~8?wʞ0fpMҒ^}݅)GmYhMh}$׊a1 ' Z?9F 1%VhբhH(ADӨ]bIlN 1i;#N)t7I:á1p(גVWb# fBK;H:"5}:uaVY;ZjBۓ,2ƾP!OVud&%7(" +Nk,PaCŪ[{\\A|G:VnN]:-89qu.wf]Ç4$͠TQK’D%XgilI$zv/qK\=]SRgvI츲p退r>O<->d"O &f `%@2%A:u(04 Vxՠ7VvEJNTt-`i„IZMx<^u̩cm!"gVILH+vrͲЏGyQQD^P@ ^ "*ࢰ }#ON}'6*0ց-WÃc>b|D  1k}Qblyկ^L|.@e=[d&(dT_t ՕZifLsf݌.*h]CCM 2,3jJ)Ib"(4gGX؀/W_BEId)2?&t;ݦr-}\)Ok+fwDq.neLlFϐ!&)~ ]Rw&8Cf h}Cݎ1(D 34SJW"gAa/ !AA"3#Y vIrGר}7DV FąVL%SWRN?z8뾸JJll'օs!D~8 Ws󏉾\Ŏ$6#7UUL.AaB-ZSR- ]!;tPDzG{=bK#༥6`l HkNZOgXv vN%ZRqkb)LQиH|}<}V`%γfHTW1"<Џ7OǶԶuEֵɢF]R;}871Rqs1gnS\!3C2YVvEڰ1ru?~>rcu"`"wNcD)(QF=uҪ HtI%.qK|#[fwgkn^ aBkA!jװV뱭Hk-]l 3Cvz`NPk/ǒ%(ŦITμ{_5T WrŖXucM:JXuKl6STbATC QؓKKC)mZ$R-ZszA?ܓlm!lˆHyaN!%<g9DEB dXWJXc~'2pC@_dktdz#(( qM 1!̤UWPYDWEc#|?9u䃜4z 5V}$(2o16cvbIUȓYK6d)>r/9",m\<\xUx fxtbE֖Qɝ9ժb&oM0>8&2? t8VTk}[nEsZzGI4D)tn1~uD煑 8VYg>lW$&ɨf7l8qjRVO} HuQ Ɨ~WQtIE?BUKGdQ:Rn^R9JqNͅȽqtkzƧg~q""] NW w(b .;tre&7 b w 4a v7G娾Ģda!}OG]BN HcA^?"Jpx[pDfKp),$!*-tCDZ_Su'vFΏdx`&Q(Z0Z!g(o%Q2os76Opq.lzã.@?. |7j5썤#4\e$DD:fEҧ)ԮmRSL3Z :׳0`:DWLMdfYCui}me[S5S#n BJLILe\|K\sTEGz ~ ƈjVCfǷi0M5}ok#(:O5ycreWCIc@dMYb[]!Ai~ĩ5!zji%񏨝34{gL6FSwȪk':_aTBGPWk(gDyQg xI;K3Z^X§HO9Dh`sǕ r)$PgՀ"{GPca@Y?/g"l}}A)E #1ɒ|׹^=)4d<@tuKS="ZV.x,+ K8W Q?>V{Su8P(tJ6_|\:t%zj&玐FbEK_I*agP Œd 7X>{6F ,W:֍Tk@ka:8Q4tq}AQ{^nˏ|EJ:2}D$ɸ>Hȵ>3\H$qJjZa@Bz㐸+è.l#!CG5Z&HI%Y7|zOlqW!y3 ]OZHZ= &ƨ'rDs?q-]آYR+l,'@_ ߰*:肣5dĭ-F-OWMX3<Q6$Ǩ :2I6qbO&c}q{ț٘w`sgwocqW]ڝѢQBf8z TvŢ1HLg-/qK\/$QSMa8 *FbhG^C˵K?Z%bo7׮qUQvUśڕ]Q 26 wD&o b!ׯ^qOVA']μݣjPqs`ȵGqsł昮8u+ڮ E&XxܮB[oG"p  1>(PEZ># @B`ZM(+K7 -L[" S`@| DU&":J)H&8Ĩh[Ы_| (IX>z2tNRZO/PbO0p2{}a QK\( # "|m56b_JВ∅[9^'9DjV<紡 [a om·m e+_>JVq 97o|FQHN_|}>#U-m\cwv79,H OXsFʦ< 0Nz_"I^ ~LdN=n1 m21 W~Slrm'nK΋qBp `q*u5&ޖ%.q#QB돩hr[D!??|_hѽR'?pcsG8h~DZ?^ٚڶ( Z4Y3-Z[!{[sX=Aɷklg7F "YuX6gmj["$}5D41{SE*}t]E)1鈷wx!lj&-;K&a!P4uCu ګN3{>-萼t0HtMNcf :88:s$D>}ߣbSalSt6Yؖ3R[hXR"PQWR竄n}< MWw*rt2úhK~5?9#"h4WW+8iN8mgԮ0R#P%e  )/y=i{] Ho09).6)X_F J.vt'|MD1L$9ZgGIbȳ߷ 5dl^l~OJ q2F+aSi9į:\GXIՌ$Usc!vZZ>&DAA;#xDUF")Gyan0JF@Tu˼iUTBb="Z^_[XiIլ7!:̊ }>ꇜ4G$*A)CUo%Q;=Y-g廎8D@yB=I-{(lBK`oPs}8dڢcTܔ6pf~o^^' ,kޜɵdh9*W0ɧʮCZ|D$o}Δ+{c&i_SV)Dy %eVGeoۈv愍QY_bg 9_2k^bxf=$i1>9,* '--D4bԮfd{d;= )4wc<Z%8$$w~ʏބݽ-\vEJDLAFPhhB  'H 7Z"xk6u'0ڞp޾:eu\sxo) :Oݴ4m[;l&\ E/4NOtLHbR#J 6+"`4hi-ޅ>=8) b8K 0+bdqB6}G~h99?ք=v<`fH_fkjE[WH_Զ!$b|Eq? '8 ^>x*egc&'?cft:Z'_`TB3b FϋJv= =xi 0yfD(GFwQ::=bnuƏ=ys;:R]%F*D 4= -XfU#޶}F%fH*)9n^=)<"k<on?xcpJfES|+77^[vmt8kq cB\'Ǩ't*.$+7Ҋ7'hQҒꞜs6j?u%tN#zGT%fbh(Ql$QjED^+LQϨԲ>eO$YlP1Q:r!߆l DV(4dňA.kTW-^>vQB%^#0NX.>^|/oQ͸go|u f1wM'ȀIG5ybh);L̀*I2=xuT,­7n0H3,6+"&eP6%{+_ݧH,#isnLJ󏹱qx~>(M4SN'G֕0Ql}ca[ãY=Jk ṩқ dLDQ آ=-)q"+rZR75&I)4M1`mI'WAqt!]8D4J ,akI>T"ؘR kc?F8"A5A4"0>0䃟|i|C* ε.Rj 5cѯv!P :Iyd#Nm ZAQT*JR'dd$/tSS $*%u9)õ(4iҐ ZAUص!N%h-rP|9JpkoLk49'9u>HWoW lloruJ3뒘7ܞ2O5DL)C3 "\k ^tt*jjH'/ XIN3vt SWb~qJW dS&Ʉ _" L@9T!;F\ ٔ8|qmr2j_v:  |B^P$yB 4!uSoZLB{GEJXt+bWnKF*ЫSy$x~+W{h6b`>9<Ĕ.l#R++,}ѳB欮z{QkҎw֒gqV\?qc8WP`| =C=`;e<2T1 +Sb D!O<0^eX䯑CMLMy8[`IjNIӑHtFV*MJ cK\x "j0z|j̃g'pv?e6s~oS90J|p3o a~Bݜrfs?9>iڒIfCuN7[Ӕ>d6[V.Us'v ɉ" 'LMzKYuKޙ!a@ƧzʵM-yza,I%2#jo ڇ~lС xvo %%gIJ+;PO|KEQhUƲZ8) ,MILoRV6 ^HTdhY9h W}䤒:r/jk G/5ȚT+IA'bs2>۟CfxKK[X*t5]WcE 7呈`Ԓ$nb{tt]YטdeDNmc9]-ich<$,M SZ:8% &I/W飧W!$fijPJeֵmO#`c TAjq2ȅD9 ʔu9c;0 kыc#JqMs1_1/i*70*FlJ)>qlco|RP3VͅM@{TS`Di>i}%x,-b<1R$ӷH{6r%lMRvz~Y0Jle;*'A@|ЫzRG7k|a@Q<mgDƳnHT⽭]ɽ*-6 ?x79[?:ћABql_>O9w9mWoKտdy&8g+B~ů]EZqX''^cro}D*+7!FQ;..XG&}r6b#` RA(żDD9P{hβ<]%S"7D FjDjRE6`X%e# Ee FkfM La ca"MxDT*%)p\ے`w A3+g߄Տ.`C%mG&'ᅬ|n6^2*9`|>|zbꪸVl*(}*+^ɇBZbT*ZyPܿDYUH'1pxQPzI5y?.XX@ 9I }סM^/|q L?25W ?K]?VfHl;jH30Ebb_SVi=[W7UvdѧD Ƅnw[vTnEAaTo?-(1v&k:f݌]bC>WddZ1PByYF")9".x~1J,& ^cXcO! _ M ߝo~csr/OT Hp0S.tK$$N߅=*$拒yJȕrmITg(Y{*LfI6N r8@0#zevWDe2$7ʮDgWh|2kYwBo5*H0PB.}F7~\^VC=IC4<\ ˃1JSJ)~ 'aVu@JWQcw}n!%~Q1jK׮ΆZ\bcGY79;v]4eyY끜2#ՖTذ vF<9vFC{>:)OQI % $i%ڐŌƥ]isEa(]K\6#׊ڝom ,nӃ&l4rwyl}ÇM-ίOt_w w09K3(8\tߺޏA?S~owܸq{}) ,) W|g7O omFq;T9n "m8AyrUy}D2*W{K[lêx{{BfDSm{M|0,!3Z"Ҽ D< W6`pΑ& [[XgY.WOy6PT֓jJ0VΒĵǷw8ԣ% "1FR%d{HF{/g79 9(YE!ϴs;mٜnєK;];T'n3o,순)\4FXߧE,FU_Z #0<E^P$=$$p5=-&1xEU#&0J(Mc (: 7t]C٬珅i@uT,bH (h %rnIi"<( 4wV|)W-{y";˪"J0"GHA$bˊ"]CsvQtiٽ=eB?[};BV'T7dq %5e} G r'p6qc1 R,OqM?L St6X liC={2% )KQ~Y8_%ߒU.LNcZd@ &8ir}85>L:!>slFhlòSيvݤ )Gn2LS{#~/ .(LA2i܋y4=d`zM-U$%'3ʞ{X˲<_|7"#"3rάve!$V $xC< #p?L̪cgÚxF͸]yT2 qif!YÆb7Fl3H)o¿T]e('#†V*u ]wOgy&~GW|8DK׶yeJ}UGg>+ BpFI,ӖsB^ Ia$:h-UD#KpQ\k|LheҬڟ6VQzzYɼY DVg$O)qXVrPw$VDb;iěoқ4} C790_.Ie+\0$[>Ѭ_KNGa6aN9a#Dߎ6D] O \Y5Up|4}WSIƥb|˵8Y-7v5=Ac1w''7 k1ǝ,WyMZ26./_WG/ ^[v@v~sϵKshJ\[xǬkpдĔd5K0}l͓NN OB Ic|,<{NE $S1bb8S7_ڄ}bD+~܅լN(Lcykʶ@Nk5_B$W0 @O .9HH)1M9LCn5ֻlOBF-$eJ]0v0g=hV~ "%x$~ضBg}:=H +₨)!i}ͪ@L:l!*}*_'l;-@]iD,>PCaZVޒPM"CrU!̰a%>iyO=JZ.]b*/G2|B[ƙfʽĀʬEC4.j M\M^epP|痹qƗytMYQ5ӳ.p !q3*{,twxDo&շwsWe7?&ӆH`|8k_Ҏ9l?wyu2]2v~ÿχR@a3,;ĸ?ݣC[Ͽ_DfdRrwǻ{+v?:7 zb[;ߦY޺4wn./^zf@*R\'UuBVZ~F26msH,eVSR9>ar4s_S#<Pydi\o20&hUMVuޝ)G'GoC*f&>amI%(1vvO&܄~Ph-խNf3>D/)UUɁۣbT$OH[;WQ҆˨cfN g-{RY:-@:r^8vd]W\6jnp/6Os(UaAl׀}W~ORweraܜt?B5S9ڀU ^!ژH)٧eY{mߏH!MC{2ڶ$"ˊE݉2!́&Ů> [=d8Z,rŨ_`|,H _X&4hQY(ؼ4i* {O;O}LE ">.[XxҽyfE<,2hHhBGO"Rbޞ`-L2Ub"ʭXf}E3)^[_i܋) ޝÕUv*iBa/H>m_ ºr闬܂_uEɘ9L &xr{O? IDAT}63.Kdc>]1Qo,⬿AF:1tFWx:& ]!SI}UKvs.8NڎIJKV" :*B:]Z+ǐN?rD+ITO{/&sm͊,H@3ej}#1lN϶g! 9>np^Ԏ:Xb$,vlsF ,;IknC*灌.Ä,.X|%J6)z{%wwH|ȅŔ׷K)-b Z9lr.c\)3uL(CHRK.?/>.xfGR^a8| `2dc|,9#B [}0ǓD-|Yӑq&Fno #0P#Ka{lM,XJxwC._N^?d_? =[5b' 7?{oc뽗x}UN(ywG߷fʛoQl,ocUa )UMNҊ6J[.$ޝڿ&|~ks/*^4[>'1M^}CVB?~ h:t_pg~~6B=2-S#m1ŵ2!8Ax 4 % Ȉ1>#Ze7+\k r4dѶ$:5'K>6Mo^!E|LR` .` ?-u?͐G',ާȓdp N0I 4,S~(Z|רbS't-uSK tfdL{XZR"DUZ ~ZI!Ƚ:b ]N9R#Y) !B4QGxOZJMsTL(RVYJ`QUC tD@P)9\5 fl3Cb%^pkh,ӈ h-I$iG庻~@6?5~sj:[&lN.!ŝ6ciw6'8 '۞BacizdR0a+E 8*_jHtN6v~+w379us:OzvLP$0 ¾뮷iNKITA>+l+3rݞy-у]-oS4G 9]|p&5 PM)MLqJVwcүx 5mh1S +,oۡ4}B]uhU#η(Rj_S;P 3!6c#A+Ek2#(#Mh0v?mh٫S^.VD $nœFK/O-2"JN-fNLaPj_uV7(®BM/_zq]ܟn >>.}ՀSؼˤ<~=_U|%ʷns}xAE@5M0tyEdJV`儨,MR QaՒ\O)MKn#&[EUYkXRW:ËJ*,)T'i)#%V54iÒ䗴@J"Ӽз4QPd&%{+jO10ޒb璉}͊s$4!'T~=(U?Bz\Ufb+ff]0`v6R--fjsnz_;=[9fη}b}Wyq*>9&Zи%-qTp_5VLz >W'[+ԡŒOX9" 씻K\]ElFL) _%Oϖ`j o`Lm|/r*vzרZkIJڧ J,}B db9 ^SJ:VJԡf"W*do~A5ӅzS[U-"I)"' 5uZ'iY[A mX,;u~4G{7գ<ˉA2(" (O!҆{1kI %H%# њ,Ϻb!z$_cl`s6PҝvIƐ5'dpigtEBJM:t{<2BH 1Y'# L&U>GϨPق>zNfһDž|F4Ai,YsKFa5/XZm9.8 B ]HDgcQH!%5}J,;&ldQ0zC!j9i2p`{jJf(P^'.QE)r`Su53vI 4Gn M\00ҔAV>`;ߡp=GmDēۊK;Ce^tcr ݧO69WDe%z E}Lw`TلU>͆-c讋LeHL4-.5(h1O[CŠcu]_]،t%7}3$$Is̴RD{>^yS v΢]HXI [>r|R2H&4GqPĔRk5sV֢@ƀwWw1t_ЄH( ] OFJ_[zȓcj"+`y(vC$aDcCŖ /=+Z9YJ󄄑D!P+M_"\)ZRuq),sye40y#ڟ_ٹ[z֑"T|%3@גiCbU%#+Z!Ox {]ѲnvR`ƪ!xOKٔH1buCiZ!bUC3FOI5F*%oW K7# 3(JFSSJCn;?D猳*p9n[< *CK8lwCjiL~vQ/$+l&G.ӯ簺G:>xiGG||pH3Z4hmգ doG]O[=1|hbM_$qT .EP]XG+ے&!M+BgG!qMkO? z<{2cp 96k "Gp?sA[:oeӮ`(>BZƜ/ҋ/&XQ)TbܯmXó ҥ.} )oW%0r>Vg%0;A< G҈IRHFص?e Wb3BY j B\O7ts4:lڬa6^8XmJ Mĥ-eBg:XԄ(4`UvL}ƫǷ{Ȏ ܦٽj2XpR7 CKGm/4 M3@~֕H;%]'[A{JDG )5Ys@,USm UgJc&.V<㉳,Ng4&.= iO^#GzFMIsR` M|֯Q(dVݜi{`D[1 3Fvv!(*KPB 7,ܢ q}<5)SD4G>ꄪf9~,ߤX+9j*1d΄ k"c6'#̠EP ~ruB$r iwQ"Fih a®'%֖s"s7Hsu7g Tti[Ag Z4H[R &T_duRZh%WB.ol֪SB#TX\*+.Տ}㮃%a`a<7JB8yt%*n 1r'M?0oo}ퟰYTGmDI|=qUq7/[MOXbRNw=Qs l ي\Vd ~<ޗOe.2r$>RHȺ6GmBJiТUiNIʠ#QrB0Rb`uL^nn`dxwq\-8lfUc,_RgzJd6RrxҙR$DK뮢=.p \g)AiEjN_;g,g{,0*=#SBQ#4)&ؠAEr,y@kU0sԾ5fN=wP48d "'ךY+Yx:to Ȃi9ZݢNY4=Sbk+mAn73%XRK%5(as2hx$3dMRh; \bE>{fD!($Zq8eICM8 c<^mЊqA}VՌp1XѰ zZH F$b?&Ƅ'ڡ$>A?b6,1@h?5Q$M1c-BjL)L%cC!DaB\O9n1eAV'&KH#1FGM7-uҩ9)wW@^("*(6zAΓ\~p% &e ̈&\haB rk"1A4DHA#!E"bF)ĦOBK*Ȥ$wHrMral3vNJ iCRcr X]&׈|T~үx?-xp>mB(l +9(m:Jd6 ѓ>â@&cڧh]E7=r[}C}jmlmI.G%\\1c"OU,b`2c%Gy;GJ3=hEt PQBd*g, %C)Uvp+OX%Pƺ%"<&ya$ftlOdfz#es$\ <,Q)"DFL9!u!"SS @BQwo+tdd{`tAqu^JtUnWY_1m|0=k;Ċ+=}RZJb{\fd9d2l; LGm"rVXMᤉ&g8IG4FBS9ybЪC"ŒZbn}e( F/ {;\|OhgSZ3|e<(ɔ|0A 64ԱS hG3z.)ۚlCm`4Ucr*$XlPB-$ wƤbv>v~)%jPV[1㬏p'sׁ6vUg=Vq˼ -#D0ZѳSuFv@JU w=*{qoN#CLվ>JnrWI硗x8iO9MAhrO k/ %EbQDP)1"R!%hb'rcPZ-d4Hi.S xIqe3d2! ,Pwgɣ JHSVzSũ'gW}Z40 0BytM"4i,LR4 y'T#Du^٩;KMI=mSH0ݜ\nyH d.߰^@>"䄹bvOqG+Rn 8އPW$cۻKWx9;:NEV"K%֕r\Vr܄nB$][2 9%nR#N9:yLNkn#.^Čn}du aE;n5H_C]E*H1p =L{q3<߫і\Be\2%qsTC!&$KbA6iljp=NP.QWR.naܜ` V,zWY}J)$gtc\|(93\* @<˕x`EaibI3eꦬ)dm]7crps팁2:6]q')u4QTXI1Ӆ!i[bzx, yy8,<Z4n#Bftaӂ$Q)MH ,1i&(Di GXr۳&v'n[>7P;wU$ %1:J' F9N~ 12W-q̀c@iʧ҆BLԅdVԇd*go]\}K8dUY*Eߔ\C2eY%"\h*P$q+<>۽HicjtSeh<`e8[GmW)Gi|t=Xe< ۵Y PJ|L"QsԆ䓛Wn1(].dF%$KnџYg" 1Tf+5)CM(0;LJ_dh;$!ƲeᣕBRP4ґE:m<+Lt8U:;>:6IϽƆYQV6ڏ*bRX< A"ؔQI`#VgxQt5RY¢bw.u0&ۅ2a"QG}ڡuo{ R|777PVqx4Enn'Q; "IG"vm )K ȩFVbx1d:h$]dt`b+BWD<ޝ&ʚI`t).`)~~by%j@CJuR^ƫ,횸1ۄK&%zUb!/sN#\"6}6{C~4NGbkhOcWҔ:g }KV#H&CBn]t6"$ՊF&5\[茁.낶9?|)Tg3@`~&>:l \꺥m[B \ٹ{;7s)Rc͵m2g76MТpeޞ*O:k| _I1QX8B}4&?:~O۾_Iw~Ba7KHKƪ&4pObT<$^Z=w/Q`X[ E6zcs٘گCE+r]SE+:-L\SB~Qgf2Y!Q hcCFeb?;էQ|k+7C*IKէ?* IDAT.U@JzqzeK8PJ[q\dl?KCC12B; fFj "3$ W'uGƢEs⦄h7ߧ09=(Mi ')S*א2}=~ª[`IF aT:;]th-4EcPb St4mU}V>aWnl2u,C&9Md .%D F?"d ̃3fs9$SĤׁ7S bdhz_ޣ02(sLX:|e7|8kLe8p_OW8LsL1Q"*C،b+sCL S7Hv)67zԮfYAYf..R-i>jp!C1=p**OG2|IT,KtA-sX"e҃yH)Ѯwp?}6Ggw=s9y5>a;z$UBL'0 Gأ7,XaKUr(?Ϛn|[M : O*_Q-*3>`Ga1ص3tNazWѻ㬥)}WU@+hGteABWh죵Tc IB1o1vCeyK{]HҔ L^˴}_gٻ%lL{~ϝ]WcB2.ӊQ!vAZ? Iy.^a6c!\Z d+{'|,S {<w詄::=W_>~ ~9Á"p}iM!&,?ګ̕B$Q`f)LFǠzByc7{hQN^zzicNJXJhH*WfL]|1w+S }N w>U:4Wãyit_˼ JrB[6 K2䊑ŀq>权7oMozό<(!2jkevۯ"PQ}J[s&a](Ksrӓ$#*.ɓ!1F_Y4Mí]q6;Xmi9ɀwfNrt!E$QښG?u#Q QRIi3lS96a|`O}?Ӣ#DVSxlJӋ-\f]RQZr]0nuEsE`" zBd VޅSllitJi&!)aZJ*[kA;@9AbHjb6j$4uOZe71kѓUU8y޻{hׯ歛vI'xƾtV_9Z+Xd]W{_۲74X%R-1dCi`~n?5CI8F0A"+*HXjn{ݭvvyXnwnEgk2#LgdDRHrkJο-q0m}Gw6HHSC$%0pѱrL |R0rCDBE1sM.n3r3B")dTSAI8 .pa̦t ʭQOߤ8cv{vL>Yh6+\ZE|IJ)$lLXi镡 uffvQiN%.p<8uk̾ =~K_dծH1{\Lص?=CNy[ܘ`jbr{W69D ɞS s9D"yk&R YoOxok)kWʦ=elGMˆhMRHf@Pi$ݒzbrda! k JQcR0ll/8%UяnSzōٽjJҠ*UrҺ~h ))0rhΔ8O~1}=zHCp1$de,7 7@D7؇bНлljmq.=` $O7[ǡbZ̘1 ŪedtϕD4b.Jy2 Q c(HBQrcݡCR $9h`=Sc1R0Jqbâ;Z Ġ#v"rn_מf]ꎶsD ˸,hښ @XH?%UJ觮|p̃NH!r+^s}:7'7(ߓ|Dr=ɈyL난1wH)q*!F\E|d 8K dBR)|A>Wo.@$iz3wC`f;N?d U:k=%|˂-ZmaK3 eX\7(_b4j`HB!84 bl206SV-!'kH'd!sk0 ;! =-qj@ ̈g}DCIDX|rSg>4dj q}Qu-HBҌoҌnЩH:(S==eٟp'VnJBkn#+[[-)1Ɓ$v1yfF苶C<3Q!V0`e"Y!{xNU5t>/:FFrH~ X5'$Uylk)RDAx@K_(R+:rHV Vi]R+R *&cXa>!$@d$# 18$$iˆE2F41.ظS݂<*LVV|/c֊2boS<_GԮA!3 q#lZqut+\}ğ|yo5>\}G|ƻwwf+{p^㿻o7o,V^;&Ӗ\$gx !P%E ʇzEI!dc2eKKCj%DW;ӜSv }h)&G&@-&!ADlCh k[G^A~%8plA@9g;Cp|#dH$3XQhB4QrV-heKZXUh(4RPdZs$ Ьڥ4 } S6Tx`sE$dFǿ Ȅ P"I$Jȱq)Ed:c[*y [J> +LwF̮|{:d #' Գ ld*G H'(fMM[mDKAFŠ@eJp3d""QE؄σJ=&W 'p HJF(QQ, iB$3Y D#Htr,D+)Уkx활~xsSӇAJUhSY! &9H$nP*CmYe_`anp,U:5DOBk "FGЬCA'd"'*9aM z!BCB.i@(4$A1RZ4BDAwoǸx۬,Fe!0KJ¸ 6˫l}j 8J$1bCB&\ah (Q"cd)!͈ %bJ;TTQ9bjgG=776߸[L??{dfTk ҐE;lƌḯ.:|tN0r1>;=#´0h0$У qVqhqJ$ыӈ1'\ 'h@D@"ǪL)h>:nAJR*p8hULjk hzDQ!b@!0KJEWXG@PR-P8r!Pa =(#]3YJCk0MvF~AS{s\,PR7dJRFrZ (ewgνD)(tIbB}Yg6!φ.BoG!m.5*c"bFTOLa&渣]+ FBŤ_ ĔLJGZF~{?/~)J67LN G͈~%Edb[^)OcT.'Ĉz\?* =BRƘzqY`/BП-j)f2aȳ=:Eֿ$) )"Fn'\ mF3ȟQ$yS f*bsrd>PjEnх,^nЍTFI 4%. )Eh:8]!O7XpsĬ$-M:ᴩu>|Wxg-Ο>?Z7ң WorNDaFh7edJ>^ߡ LnP/>qk~ "v,kWi M_#VRGsTlA?|y8S&V+t!Y+yNf31R zJ"%̓"ժ{GU_bq J$BYFզc4%2 VQ'Ahkf* fxғG^uܐ$J5\%D@W;_)=myiM~t)FLÒ;/ $:A$})qq<6EOܯ>*&VcbZS>vp!%R!CpD*"%KV&,'.bH4tB) 8Q~M!n:룊XivMyWM ,;FKG!5fr{=Ҥ}Wbu}TĶԦQk\5뱄'O[9n0Fa0ˇA4Qp$z t&])%6_#l[rߚg c#fAEªy!" Ia_M>MTl:{z1;{ DejnH<*,ƯUAQ`%~w}6*SIH` &O>^\2 ސi ,x ;V"I$!IňMAG=Q^tiv(xGd+Z"'Z}0$̌C)+ga 1Ij䌍!,l(`T{T"#K6ɩjRhFأsS#IM֯(}jH01o!+Hշ;`сs%j/)gnJZ~F"b2q@p\ !#V4~5R'Gs3;U[ :w Qel&QS(|#ESeЮ'_GqhwN/iGiGFFRz#uH/'Q)OE;G'ظ3ss|:Hyb~#O1&zhTBHAj:bRx2$Ĕi %T7R$ ݡN aPiuݾD"1bu=P[b6ę&G7fcD { ! ˄rPTJW^vK\b!@#VMM7F\))Ao{o.{=xsH{vG;o^ _oL^GϏ??XO?fݭƵһEAs]23tnpT\*/Z*rmia\s}@ E2, .(ObLTpz&$G&. lR#Ž$]hnj8(1K0'tMvYHgv\1`sM4p0VkF!=Rǯ[|tBnW10V:ӥ 1$g-G"2$k$.RXIielN8Bu@Nh2zeAt2U:;*0v;{D7!49ͯpzuα;:BbCхB^Ѻ%5Ԕmb!;VD%R=XD-k\xBK@ ~xp kʆ[C"]ء *sY^hfHi.f%Ä:P %"FfCǚH(Q]SFʓjRD! !񣛴v¨:l)+tt IDAT Q(PD&}dB2BPQH YbTЩ.dcjyZ╡@]HuLWDyS!EDh ѡnZqEwN8$ >zAXl1 a9ִ40'' Ӝ0iNW$th͊T'"eN{|X^G 79~Ss|*iғk0B!P;{R ҊEw}loPRH)ٝXë-'Ccjf/Hp2tʷ4[]Vr4u:190!tnHKMo %j^J OɄi|~;xLЦ%>_JR.9A5ćO-G?_ k)s>R}2 ם? R93pq =s:&d)Z$-c vHj?~ɳlh|V Fχ;SG<,HmvDK7x%srrZfx#" UwN~gFxK\?$ R"TU6 ֌__|k>drT;WD=,(i\t#=fy{6[c;bTv*!N)%nɟ}% V-* RT{wwn_C ޶ir]t mR,$v(u1m&8jO_vs`ͻ&t iu8Z CP4Z' +JO#D3@kVO[;9b#jPbmʝ =\p=~&9Pd܍~L=  $񴣯1e*vSlBF\:Rt AV#S ނg+:3{'mGӌav2Ityw(RB ANEM8c@(GkBlH+H'E<1'wVdy_zW ap?0eOFHdD;$) EBN I&sXo"Ͳa;IkZ?znÍk,OW3ܒԚ χwdࢣ 3BL`dO.2{5CqB$T?=Q)ȇH\-dQ}{XlO>HF!%]ДZ2=?цvEuIub!ތ].pQZJl ya>$u!$ A͉5lZ_^ O4"O"F LMO!9ߜVB|#Oy23314%̕?ePŔzcY.ylEXLALWkTjFh*.Y{sd3+sјD?S$xhUڬ&4\).l 9 oъA)]2.7[/,ѱr .cݤkzߡL-*▒b:L5! "Q2Zճxb?¼*ٺυJ)Q ŵ I Ê IDOO?H$~{PbP#>RDm[Ö82\JIŤ靧ݳ ("c["By"ҫp긿Ϧ_ ?Zӧa"%4Ȱ?DzILʵvuDOJ=)9x߅,K& _qc"gh[\%#f3~_+_qo][l5.5\[5ho'wo8RHɿOX+_6+nMnхdjK/xg5+__ 6o+|BIH]i|Úh|9VSKLd&ÙZ!)0(]8;'g+(n2*Rn("@뜼1{\A<S`}SOhȫ"?jږ׮T 9q;o`F*xi%rmubZ0 QXV}d"kx !%N[OLA e &opQkDEsȇ@V1Y 5l:ATX!Ʀmj w;{KRG|;y~x7ʳOU-QwޥN)r.-D)%4f P{F7Ԯz$} LZG\soP\ srFF/R#u $C'W.dpQaG3{ۡٶKp#|BHߡ'*B;{l}t+8] RD[ $Kc&do{TI&xU8[fJ6+9LB a=H`-5>}}x_ZFj$S=C T,!`Wks2M;(`1XrFTkܭ/ojm>$5qSh}R>9OJ51 >noB5Wkrudiܣe"CmxdN9lXG%pypd ޼O]G̰¢KV:oSwȞ%~}GXȎ*vZAcHiok719k[]t jJq.,;v(ez^ޤr+oS\tPFZr۷~_ki]GϘE6Ƨu BBՔ)%|ǧ.Ĉ4JBWT3] @4'O *Ms)W('۶H#cO1>RнXҲX<-Uc"Qe`dǨy|Ӑ-L쇔' s=!:? R(|_y4_$'q}bDO;hPOh|?#F#x$ɞ&tHr1}hA' ߦKZ> ԧb* XҘ6bhaBцvإ_kk<zԃ,Nj}{$/ZELTs%W0Bm7 %;fٟPӳ@ ML{ݣ=_?TQ5&9uߒBв Xd;Ý$TG>33K qj`9$\D=7#v÷\ ϯ11#bJTK6~Cx.lY9LvD6(GUhqP7D!$cZ* 3Z}Nh+FרݣkWX l_Э-x'IgsB(C 9ZB( !Z%4!4|ل!hq`>D pI=YHDItBSƝjIҼ!1KP ) /Bv[)$:eG E7mNMذr !$1NS|t*C&'B&~Jm1Z˃Ƶ0g-iMpCnP9RM֒۱u% `R TPM;Jc$@M"m7o2) -B!B"( dJAv6lD,?B40zwQ]dQ'ЧQOU!ą(UN%G&,qɦYPrLeiCp[[i%LN^mHJcutN%3x}l$Z`Sd?ɶ #4T VPݦǔ3*)vY%ăF+1 Y9i }dpt R ,+#oE~M#Y/Q)<yzmMe&XcdN$O$IFvF_GUbאc|z ٔͦaP"5B<=xߙ硋SFL>5G,ݒ.tć{DJ'VfELLØU\ё9CgLhg1V,&-)";ǩq%Zce|li)rx4T} ,# )E:Xe]B/ڔAbjs%-:\݈$ 2Ւ'Tn$$Hˆ~Q}iSCdX?n=Zg"##r=l |L S\ 6>^UH >!%>D`BPBu=:uPQ'A_;ŗ8x0i6 r|M wNГ1tnNnP!jW=})!XmYUT$ёai?F-KWp$dpt۾t6tf1@s^]a&X_0 #zT1@ 7)% eչf0!sg"D!"ypRb=(:@d b)T>z$fF2 k%%@n3 B GI aa-c$ RҐkݮ;)uu!M* g"&$mBPZ! 6\R;Bt$)l(E&DĞ"BYI]̗XXsZ2CRA/ BN{f*$6].[2;HmzUi LrMJ=sY.:l`B#hdox4s_׿[oc@N@_hťy$Q1sH3i*1 ߪX3XZsN/M;+Lfǔg|I܄?õ;"|9UԂp7B7iB~H!7%&ԃr1&D0X1GF!\ s  cq&beB ړek=zE;Md;WSڝS)O5<>'湶Y"'yr4cnj;)WVklKZ&sپSTml}se1ҘQAs]3.|:~$쭄⒩U1G߱v,ZۭLZ^rl#yx6cddu er_kZC>,PaJ,<*UX-͖qMT~زW3Og7>ye.F 8EW׶#%1BӘrař'0޼*Ј+gwǻ St#؆`U`|m`D^Fێ!o^}3#5~gW}'Gu|RP!ˏdxZ7'e '(mN<b eґ13DjD-4k\x#JA/{tKg"G,K$&R]ԂZf8q< O{vb4\`v1-*J%rℏwi]|&1X,)J[U E1QxV;%p~Frɤ9Jļ_8RR,+u-zCnbc 1mjN(!fǯNX$gX|s47Q4VdE2U5<"vNij@JRĔGx q[ הb0 m8\xBp0O"=?C#t3ց*+#bn,l)N+[2ns4YfDzKcI++:h,ݸ% } FUpCΆFF>Z?!6E[rH# /wzwnΏSU^?]=$X&,ݷ_S>h&Z.e%kM&ؑ`fE:{jl8lv'mxYAi`,O(e+xk=*1G4w{J%R*Lte:D,3*,X tnIcלoveOCcBrRȊH[*T~;qOٞ@l sE9e,c$S#oPVD4)*qo9B)(*OXx Z(vA6 /|)?Ѻ52|c-cG0`s$Y+ AëJZo`q cdѶ@"B-ķ>p1h_&m1Y}d#kGF%3Иs]cZaX"Ǽt`0D*#fsl*4d|BchQH +&H.߼cTtqnվٓ p&#ds o%`I 摾dL(xq;\^0}V57hAX[ݖ--db*T(0S/òoKVL1hO,dn;9r:JhBy|՟kJ T?R}0)Er֪J\E2N=hM=sIp,|oޏ !sm9:rڤ[HK8n,x6}a->T8ттJD3U:#!$쯘}F/ad*on1VȄU{ʠ'ǜΏKJnJ ua0tnYJuFuYfI ??z=|- sA-Da Q[y\U{yDw_>eg 8&z&|q cv(UY_=-ngH'gFdG*o~.]y>;1@ΙtIN o? (IjH"58kKR6*S= OX5d3ca;F+VnfNoo~ֵUPo'Aq,g?05'CԹJaIkQ)¡%OUn7T2qMT~O*oժnl>MEXj`+Z*ɯN`rLiBاr_҈-WL1EUPq-]X-{ϬNEGZ[nuUY:岟+O\H[Ga?""TG>;0ȓKmOf9ƾbb łrZr5|F'TE' 2mX ;vL`'W+׸5~tTe#fرs?Il Q!aE ~BzcSFF9GVi͚%7h%11pe?ѭ[PՌ3;_4{8^edhm;4Kl Xß!}I uh /Kul;$_,Yk?4pMTU#y<`:y;W.0Fq&r˦K,JeKU~?/*j,_|PV_T&NgOg@UXGMXspU f5SMwV9pՊ%`He ކj1&Ƒ)8Vaw{ 4 BAA{*7Hs(K0Kk|ʟ+-:;EF=c-bha}b kr:/ĴO6wЬ{84uZ4ljffΓUKX!,B3ӑ .:`<'v))x34ŒZ@)~| 6X=g7?OYU]PM9]i5p8'ErC\NeǚZ~ݫv@+`)qk l8rh&%uyY8mZzG/F8E(#K1Srm4-رBlsFS qGHi'}Kui[=~­[ܴvӄ'Z/άq~JUUT_9Cax^xlQϯ,bj/ -`lC'.X%_xZ,Mƺjtz#͖ܺyᓃӊpO/}3*rRTx6o=B)PaG`Ҏ1oiUͨ7h"@3n"9#2Nj|'WNE!<0_.[TuѸE0FȃK7Q,0ҿ`>[ֶsOӻ{A%9[k)jK-CLGDB0Xq;2r:q>*I#VoKv^d:aeط^1;1bԟҁИ? 2-S- .02:o7p]Z޾@mXm$kٟ49fiSJ} OcnwV,y` tװ=mu(šXth[o^+& =VBp 4]y0V<'-0c@)J8AՓUA%G,n5̶'􊹭*l g+- J,^Gx;q`p?:DcgR0ѺvhIJːc'Z(ai-3g1 -&*n2yd=ÄI @Jk:BK>?{뻬 #/jXU T p;n|tB0bqºfVg,"מ׸5  ~^yYD1lM}K3@ 0fz 6+ E0BˁihLґ1'\iG`S(A*W[p NYDIJjnUoe9=a*h-k7e.#sJ91JLZ+JMژ"՗Rq}z몝LJxgI(& wc_~K̔9A2oHq~_nD(b /ӯ,nDI9?qrQ:S)ӳg,}1.(&W{giOrz97ZKd'nnuKyÜFx` -zLQA82Xkyfuσu@9XX- g'ekmΰT,9h]8<2{Y+Teٓ(e.;H̤)>@3b^s6 |-8;woVbʸy]!ZX k:'lgK % ՚nrnR»g.@)5edpۂ=|? 0|MB҉҅:YXh~8{ &(.C!`)Z\`eֶHm5ܤh཈`۪?W.s:=imy}`^BS[|YX;\2¡o<GLΉ3IߝKÔ'Vpdx<<@ӡd&(#Z#< -;ǭ7x Iv56lM|{ ߏrVQ)>TV-eb,!)LRF&4ӌSb1 C> d5gX܆!\m&١wt5xX &B5QBR+jzY(!NҮ=6D0IraRb1"Qp *]Ue#WRE FFij).Қ<`֙$X8pӘέi{))~v1/heM(ہ4cA%'f 0X2hY%cSϜ")EC+>]}-+m[ }0CҌ_s3hda=K JΑ\"L^׸@?![82殁&hY=3e>399͊wEX{,Üx6g398٢Ԑ?^XqiPsޡk(9}XJ[a3y?Ȝ#sӀ=f,A _[diPa^-csJg,B"4#Ra 3gUTHaL-3.}`D5~C*1cb=&7"ZH0K>_#zE±#'اk_:O{#3Z͸Yl'*2s"L7'8{|)Xlma6 {``2$V#8+IJ`0;[VȊ1Y[p#pX[8mQ?!($&!P&Xt1^x_8} IDATI-Yrd)FH@D{Ӿe.3A Grm>YŊ7es@Xܣ[|DsdfˢYB6QEEX'VvʔR Gk 䂵5\\}R}1XkcbJRJX|DBcz"n>x[pNj;݂]pkY±ij1cb5VY=C~P"xP!E($biHeʞ ,}ϲO_pqsV-/!q<{#>swH'oe?cCDq;88" ", ksksJ3:Y`gtG`]m-*簈ʞvd@yZQ Yóx!sRwoGf26e,ؚ 29fao#׸ƿ\ Jav#K8X͂] eL$4ސ' cLdG 8ᆈ/E?Sr1̨ :Qq47 ✙X0Cc,ZT'k"H@ (<0LuaCiaL#i89swt{7gݷ-I # 0 {͛(vBU9(w[jSDUeѦJ8L2g 804.r;zE[jIJ]hLW_}ɍO~sF2X F >$`C޳B0ݏ B˚F@q%߲h9=,K!Z>F 9WoA1.C:lBKLXf'0r3VV1Vƀ1k= 6v6p[HN1 sk [RJ<-!3BJ3F IvrOVKʅ]V3MTXZvzN:,|?(d3QXoAo}DD\n8o)YP#0]SZ˔rV*D*8¾,9:8İk ZJ #]"D,5kN/t4рXK6BYѳ{[0bƳ4'A7?߾kBUιjU(;`qFA0&Whlg|hޫbGc.mZYI+J"XIGhmˡ?"؎M!Qd!O%mIJe50;Si z0o+I|y\ْ`٬DQ U$_~$b z'149 @Gy Ƅׁk3Ԃ/`_}12<}JY^6_٨( dV)g^*b.1G R,*RB[q [Y:0&p#נظ̠pCxHP ٜM<=s,rtG0v8%&O(DI ~(ZMyN+L&u"idp#^5>^/:.sEW3n/CZ4a-'Òc8Zv\clIGf˜'|tnKNq0^!naBvjܬ1QA_V{7=V,I}W)nskZ_cgћDQP5 +XsI |rVS42=m!DFjmC18iޥc-j<T&Ut. 6,vxqZ0NpBz&`@|xi 5h*L'0R~h+V2 hS5/.0@5s횋~W"#Bp|TxuVt瘦ǚ%189y|6\q~oևi-2cT2'Fu#$J)Rde1*Y6*gW%E v݀)hR"hHg-05L=D`5V[r&՚17{)8,Z~JE(|ګE)ĬTvTl|3 VG(8"z #皮]ʗc'Lg| gEojC-u##DY9W.^-%HT4RSSr>=fPQZ q 8B*t2 .h8M$nWq4e*)@ǒ"\IzGr43=t̶ǔf8.ع$qn~43*BP1\<5Q~ KNms>ng^RB)N,W'H" Yuo:ł򘹙ׄ.Fa/z@XG4fAL}[)Tmps|9:Ccnʛס6#a4F֬)DeN DIg@\]49#&Y|Sxs^|)Ekj)006ަ+}9"D}l@tL6qSwODk晒)k w` 9o \$yq+7|b'$O9-@Paf99@.BRiԴwR{T: gi)A_9Kr_0)CmۛUVlb=L)ҍ#{RbK- ͑  ~RQ1Md3]C݃nRO#.ZT2M;=bzK~gw[#LK3T!2LS\v_(O^ RpF_m0HSIe&DZZ)_EVbagغ!Jf& I#Bbj"9z:';^g.Y0_( Ͱ9;}?mFJu󆟹NqO;buBE&jRJ,7&) &0goߓXm3-f#H#ZytiHUDQ(0<1}>2ZH~-N H |E5 @)=DǤz4#FmR k ⨾#:AI߬͆';?u #RٌAsbu'zAD3tW?xp/_=-)8'(9].~Z_b5M1%BTޜǔh!d k kPbj4ϭZ)0JUYS !bPHc::{)pY}u{=9ͥJ(R,Ar|<)(TEu`G?!'C~D~J1Kxϰ?1h\^-eBWoyq !Lh/Ls-4%\G>fo9J]N5#=#6TYɐ\II&!g?/@bYpB$M%Hb C؟ ;cJ%+Bt {='|:}PP?"t!Y_L?)(QD$&OpEBa͖jUpR~uDb뷄Xdd@IϤ+0~}0w{,0If=2hѹuY[jSQ"]p5RIȂkIGMaٵfKBtm"҂{mCնTLlCGQTT{{OYhL.9[Si\.8.On I܊^"BS44|q;v7\.zG$  iEzv3Gp||\6⎆71!kaYOoو~P`ꩠ6s;!,\(OԞTKq 4K3Gdbf^%QyխJQK JeIDp?EqO;@h5bih 6y%G)$v~ -(BL'3|7$a"g|$%nr5P-jMǴ=X"a (,;l~(Ř9Dy5Y80/6bFf@mj ~} %[cb;8ݜsT2<εw KxJxͽeQ=^q7FvW\ N,ġ` *<:]RN+Lheky|Wx =_79+7KA@rcBhXb8{_3 :9$&,;RxGZ&t>$<9w5oԆ #Ę-Ea{'SV!2D^ S7a@27[()}l-p>oMmD􂕆ET\ ХAJA08ghHH!ZZEB00a=Y;%Ŧ;-"UP~gi|0F١H&R W>&!]ZYm{?-uPTPyrl~Cem4uE W/5o~O;T{ajQCv_ _= {ъqkQ6Y]*(H6[ӭhc:rzvr9~^deξ&-@|Քd8Dc"o-vC^:Z"V05L}cE9,ITT$tq)I\&azk F_+GbshMD8{_an0ڢ~p ч؃gr3-ӄ\LiVGΙKf#DjkVqqFԎ2XDh*JѴ'ł96IG`}O3.#s$ FiHVDZKAܒ"`pŠeQ6wӧA)_[1bO:r^OuTe #\d[h!>%I᧴ς|aygq9qפp*Bf竑KRLV.iY}J#+1tA,iXGD:Hvioop%*Qk2i+V>1VߪFp꒶xx1Y]AD OO[s1\̛CנoܒDhQ hCP3j_X m`in!#:XsD ?by't<<--{.iMh|h/E$ۻ AU.5U^7f+̨֌t2*0FVЕ+̾.#ϐ"ۜ ''C;ӣ/'b/W| Y"HgÕG/n2)Hm bʁ3SR9\ThY#՛qb2'es~_s˧?!31:Oq ,XV &=dVن8&L_F~xCJ]~aWWn<;7?g:=޷*g4,ѭ&9(CiZf ~|Wx DdcR'Y|d@k Y FSR+Q,AZlQbE>v[A>oF(&ȈPeE.ҩ,< )FaB$i6 oǎ5 Z IF*tg@0huX\ofmP^S}L3YMiÄQ`y] qHJil*ݘ4ZO$幑X}E7)2O71l1F[M/g9=U WP"̫ F#x$CT"y-$}#߇ͪ!i$?Ӌs~ X;ٯň vv4=@m?AvRbl~zx%㟰i;~ɇ,~(BKT[>"~Dt_]`,";Kt'!aԦVȃ1v8𫁃-09BJ>}@+1slmtj윣2N%TZ2{a5ޘbJ wNaJA)2z}B+1aQ -PIc||z([GY}gb9o(ϑ#p#Hoppĕf,GRV[jKoCNP2;)7F fzIIz6qa3 NHA#n$Ч En-)N}1G)aJdI|~{XKV;DIiƠRHSUGNS\pUտ9 pdGX|9NJS/3$J"҇e|߉q:rUtxEثs925:TXpN/3=U;t8jbt;^k` YM*tRs9^:tԦa:VYvqvZξ?yr(KU>|tGor!v5&zߡ 1v5H[ [bbQSق,O~9__ix=* ZWqa ]pq'OfqJTlQ3wƿDoU1g~BL^-OC&amSEEMU H*1þq4Iw`ϛsAXF"/U;5D"D =QE9'=m[FklQvPl> ,ѬFC-ڊ$?ﺥa IDAT&c #)eV Ŀ).>(v aő!).Ȕ&h$Uu g뀑E9\RSJ(3CfIcq˛'%9Xr:W N#M>wBVje5}O箱{R|L^s_T_^O >@7B7v=4P7(TB4 %Jͨ1Z}3@b~&Q3)+lQPUxpM*x[R36PD^H)g%h޹N%>x[A}d(/LhJ$Xe0:2Y2 )/S(\tMQ}ěˇP_#2PbHIZ-"F5z}ss6Ѡnϝr+}KnNBJ fkW=-)=mIDD'O8@RUk!9^te_r9'jZ׃yCF(fxZh"W@5.x /_+8^r0cdp;ds ӟ?Up]{y#mPJ8;9Tڠm-Xdh("+wHA-rccsN)J?1;u^z^ٸHxVF[HJ4e5HDGQa׳:>g80ip|UuSXsTd̏9rHԐPξ %}S&zBtLeJ5)6jG/jG%=]t^gg[kUed #!l]ǃ!~mC}{za V[g%N?:+}pBqhpG K%fceihMCδ5yXT1P&,+f(˚T !5 MKd%傣=Il[U^|P_gg[8}eDb>00_Tdf뒍lHuG gb<0ͲOIgIu`%O6lmdkDl-⚪1bp/J"g;mv;/TS9p[\חcKRHzm*J|na+M%Jy"4S4r$ *7oSBHTL J"bDɱ<0{UA vý.e)%(.z~C72g9{fOm)E:;q"}^GH ajy|}*=M P:jU2~HҤ)##LI*m Ff0aЖKhE#EhCHJZ{Wj»q=p͜y ef5vb>!}G*+5m%+gzO Bq2NBh"Jr9I:v +\|rhx-2%7viI{`/=*) *Tc`T[>~]hViOŪ'b šY  H)jT&]QQH)bd a0ұ|-Z; #MAM̔Ƨ!s->MSd#;Èa_m')ANJ.;)U~=¨ g.]tOD*Sgڻan8)O/„V<0=K4)$%6#GzDW2R;wM'\?Xwk7~d4gآA%8wOϘvU.0,0~ʏhc9%RGJ02uOu@+Fiׯњƴt )ETx22O _,:^RO7Y_3JUj9 u?X(N X&$)tХ %y OCJug ݎQvX~߇g[sƏvf,F"f[:[kJXeQ"虢Mbh#1V`ͅ0M~mbVJ@;gt T(jv΢%1/$M"9kF[\|]LQE9%CF"!ڔ|̄ Y l .Jp;',l.[9CfeK@3/Z&ؗrsƢnW޴ t:HBӡFc,*ym4k: X!IV@&EEN`aG$$+`IQG$Qsw2[4$3? JE./G5ݣ(K􈫋sъേCek 8vp5&ko2ꭟѫD/9yTLj.-);Sz)@wttw[j[}1q}vM MR&LD"lIm)%,%ElXo9}OXsd֏h=ƆZ+blCc<ϥHm@89H!<~lYK潄>j~{lC !hRjqh?0j˗}t~CC"(B9ڡArvQ)ׄ9NMF(DqTӘ;cԙM#)hʼnkVnak\?P EtǓ_bkM*1w'kV]q$'3[\_t>}hG;I@x7.JYc(:PzCJy$[EQ钫aEVUPH$!EhfO(t?C1$TP[JQہ)@'& JG 52%5VZxy&wk8хwuOCBkC<-[DO701"#BtPb+WTRcmLnǔ7)%~[9U+1A$~@o;8P¼v"\\l0ԪQs Tx*0ö#(.npqD:7S@{F9 LݮG)Mٶ\cٸV:NsEqA1' >\-W/.V!*0mp3pjbGK#zXj<VT˂rVPJi G~n1&Fs,VTVUppja96&Ƭj S4 B>̈́1~qBA"Zg4aK\ I%z70h[% L*I* Dv R&OKMsNi)Q9t%뛗Spn<<6-B( A=w̚'2|$ 4I#.YMl!Ak?39┇?YYr $zF`W8 );CܡOkvjE@h6#"0#LJKۊo@"4Oqtm`@$O.D،yI4eMe %>zs^KRƞH$!g%nH<SEY[\oӳs %9<>a\RX˔fE]#o>l; ݏnv@^Iq1n ,͂RBrY vy3غ5ACm+/&.Ϯ!p#sx~N?5 6tr(|HE٦>yDZ1;_13\Qһ%?jZa>j]Cq,}^aC΅|* y$,!LF6|5ȿs bZbKV]':%y,IF(Q_BLO>gn"/۹msc2(bT%>y+vn~_08fNV;P3m}7gxxQ'2pG7!O)xO"Jx_ᦀ0?jޜoޣ7~Ɍ1 ]E[TbܫpGQ?$ ߍ5$B11 #ͱ%rFjQxNcv$ ]Кw*w\Lq(SC} u'pg'H"ooNBdOO#JM`7D޳psѧb*x%؅eyoq1ɏYLG˟wZwm!iJ]!b#}3ezNݨ&rܥb9b\@QUy*zBPZ (HCOV׫8'f!6!?yFaಿ`$D-a{BI_/25>vޖٍ[/>c8;e'ud6ִR猢?\])7_UPHκ%H 'y݀F푡=6ę+&PPH͜+F0:ǰa+"2PDT4r1qvq h9s98Y\"t!;tSrTD;oaxw&nҀRPKMa5Yl)`i fѤAp/}=1EOCΠL?mj[,d=c8j{ Q) L}7$=~'p̼Y#dEQ"݂%Zm4`4 zc0+2ॽƀ/$7,KjRj5&dU97zPYU,*p3p#;qy!KR(Ц$x[ Y!,ִRӮۺ 萳$. 3-K"AA7=},%Sۍ\ ܰMUTVrԣ$,ΨTA("# vQF4KN7%˫6 F{|ߪ'HD`L5)wI^AB e2:]!'̝袥btw}S0DS܅tBd6bw2 bC܀lcwI9mAaF$iVkQPnG(bJe7.$M`Z#S\T!XӢ p)=7o#W^}~vKD@+~''G4^`~,v.Ԯ9 nϷ57a0C(X#_ _<&/_cJ!;?:)4<É zPಢp v1#+/ЇY@5LY}H,}Pɖ͜52ꡠ<:QA Epi>yε]tF!=-OqUYqB'jjC+ k7kd". gP9Sl/@DGI; ?#"1s#m9gwb9s ,kjʅczi2"ihOl%R%ncw6+YY:69gq)/Qjf{m'i;ӯ23РNsb֜3Rd2 OYBDUVd\x]ޣ&܇y]J%T v `~./@y)C6R^6M޴ Tm9` BL1߿B˿ =OW~t?!2dRpkꑦw{aB4G,H2B Dr-z8mȬ|B.fD1' bQE5yټE(' 3?;)/zʓg:c;o٧3=^q)8n#xF/Ƈ)D=aڛ  R^S7J[7n#xNJP&հV(9NLUӤF6z^_ V;(S}1&ݲ.qQOQ܄ lbIۭPfDZ!M?' #-DU*.ZBWrMgk.Nȣj)L#OPs2I %OJ1ǖj;&Ȅ + S;a"'1RH *#̐ Qd(7rG&-m|մ]nqޣ2rJ(v-X"t@V\J)NR1H<*!(JJYTqx.C$dGR릇vPO(.dF y:@9ޢ')c ^X&M(du̘)9.-Q!7wHYJ|ѿ4 sk)_S 39C!y_"}eƢg IDATbgg m$"hx 1l,OGk/DѶD}xM=a{-,,i$'C>SjݑcG^̝Ѹ22h%ZǼEHByF i*yp_mm?m|鳖+ #]q2JIMƈzFJ9mPJsHý[\/ ^ ,̘ wJVʲWqʠ<}xX.z~?[vPdLX)aVu(cpQfڐ3,YگB۶gqW.>BiB=m CV)%ԭkcCS?KY]jYS k5',#e zrDz=B)KͅꀽbTz2)AeE6E& H ߁RVZ|⒧"7.;ͯϾ&Ĉa34i` h*9b/6yvowÔbrɛ7;ćG7gWܜRKI)+?e٭+bD3"w.&{U ih 77__|oa)X9[\ T_s'5M w/_~&>IThYL - V~>DTcDz}葪kV~n(n5X]|! b*,>D4ws_+Sf=޺SZ/1WwhY]f+ݸo2Sh#;g R}^y-V9X0_kL̶Ņ~hT[5VR 9eMK۶H)(E p!4aӠoMoZ!dJ[ƒwRno|<}by&"36bVkyxYQH,Vy*XX_5]V>QJPfX(Vb64c SܼL + MlC?Ȏ7rk1\wT$1F֮4Y13A[R,pYLREs K}}tL wEQ N&!Ŷ+r!5LV~;tWƭ<6i-e}q]'mRh X>VXr{LjNOp81PƁwW4M=kQwޠW&te82)$6̎*R耵~9;Y!b܋2h!{R̈yBH3^yRhJS#ŧJ<)busڜL r{}~}v`F+ 1ETy}/ 2HKؑR, wEoѹs}դ­[ R[kݯc `yPMGݞ|GK T*PRrEO6O6x}֚=O^}]ۢ}IQ\\-E_(=?WϱJb?KW+GOw'\s9_+j]_)Gm?ޟ7^㰹;go\n qaLĘ>uk4@kW \MB'N6d*A %ECLKNN"ªqςl-!zݜh9Bn25{#!)&z} qt*_{]:{=eCV Rh*H9a@;h9ȁrCL=v~z^ RMbFu=#0U:.KFD B ifFHtކ9ɤ,X \e R1*^$hC|$얒_;OTYi !y1$#Hφ@QYiJ >'ܺEBD9 鳖X^v{S=r*țJ;j=e1d MO# ZiVaEt>3Cn]RHOwo7 L g)K /yK34`W׾s˯PԚK._ >q T{#ZZ} ˓JKĢ«>ĔRi%X/zf;#W]wC/Im&,ot%@|鳖m~Ez,IӶu V5us]}LYT@[Y%Kdpy}K TJ!0RcsBRBR"P#%&+Vxxk^-~x/`/?}\p}n?;jwI,-~vrr$ ͒2>cAIM71S349D!V7 ?G,>@355F_&iO?xóZ?LϘXixMް^4V3LGh)Rta͢?=N Pڐ^;[i5<>c<$w;Rۡ6z*RnByJ965YBa*h1!x#6 FlYT">;B o[Fx>kXDVd'*ShS[FpQ1b4Zq$(ٶsDJE;~/)9Y+5/ڌQL.%\Vs#J>a2,W-1b̉iڳαGA-1V"Kp3*[22*!cYdORj)hI L_ 36-ۇ!cXi{=fowJX{[OpRkpBirRY.IKXU+=˕}6VO'@ʂ6$ƌH܄_ $*K EQV-%Ĩj#;u *XrZ8ʝ].`);ċQT4§Y>ѿ2䀒=ea薁;Ze`d#ۥ3 h}y_))dDOh̄Sw@K iR$L& %3 ? x|Mch6BV \l񾇜4Y*б)Z+&`Hv݂K^P&wgt M~A8.r)(tMa6 ZJ54!%=.aMWԤhCOʁ0[(a ?>C8N6r"ێBD*Q'T-e&De4@bĻH 1e͚}.i Z|,fX1, )х+o SJdhQ30+ݡRa`|@]" $U\\343rxef UXP5I1"hO)$C2ɘ#Ay\?6FjF-~|r#,+FxKCO\ƻ@l3)r cxvi~-,!bs쨔@IT`9)JaB!蓦Zx`)Ie~[>g>Iʝ/k ⳱6rNC(𹣜>ʁJq ܀iMSdvTfȱ5ґE8c*6L<> YR "Az`m2=Y(&$O^½wYR$) RrDۚev.úW]uQawhgZH!$p$!OY $,+Xkp;5R!<80FDD )'E˳o3١.*4F%@uG7 k)lL1f^ma i,5mVFL_Fџ5rd~YӈB194\ 9QLꚾ9S5YG7YM*I.̆e1c()ӱ0jg?x ct4DឈMNi M@HXG¥ĉK!ӧLBqRdl*-U[X܀.)Fz,>?-9G$ώ_%cE.Y8&fDJ>)VÞ/ -+-EQц}r?jcQ{)_=Úk\t[Q ??~E!Ff.6/{?"%_ar3~-m:wڲ[Ȋ#K#4FhH 0?K PH!zŌ 1 -5}p7ԺB cG~HadүhTl|;oC{x~i[ܙ.J(1:!=$XY ֐RHMCI/ͺ˥(iÅxr\z^o2#!"4 E۠GPN$&KA 6H$%J Գ sdćKlvлUC` N@ؖyY-f#FEP^Q22E"ta1g( ̴ZdޖX٪V O\lh)FDb4ŧB12#ƶ Kٻ!;g6!~!ET{5Y8޲cT׃"B0At2RY>i,YEJ T @z6-!D\ۣB}Tr 3L-PTDy12r&@I(B0%f#q&dȢkI1#x2 )BT>5@I5BT `V/z 8s%İMw$21{bLփk#)e5&BQ@hH,ASDT^DX~Vo/:VloϘL,+gsXʵs|H"G: c)* R\,B0#R1Dx 1PJu]g4HC>z' (stt;Tu_yHlSvaB=15M䞫9y4qJ3T=eH"]EkCq,l$ŏA@I2`g3zb7'oCPimlYRmfu5ͼY6뎪1ޮ)FMFᒠ -˪"KWK KvlC]wl̖Ӕ9M??dL2!eF"Yх.X90{E.v;]@DI. 暔w}z(tKHlc嗸hÚ@UV}dMrYd @y.B٣k [f #oܚS߷J]F(r, -tA}vbuG>)D;\7?9;)S;J=mlIӗ|Fj mY%f ӴDHJK*)O>wI sFApQc-M ugZBӇ_?Xw?^wgWiškëw*}ÿ;1mź`VqeïE6r]vW&W_Ϙ /<] .aCP1[Db IDAT ~p:" yHu@}hCaP"X`G:*b /,.:SF{XUЇY% IsOI9]nӖl v#w 7525f'gP$GI=l7rdH`$-}_1%%1|t_8P NezʌHP&O5kЈ< MŊcɔ3Z! VMs=1eZD5pYF );H9.\JDD$Z2J+dl=bN@R,߹29;^d`djGU{h_p#݊Nhblsvt2* jW'þϠBI( 54F0H dQhADbؑ[BtE*d A%Rl$JY lH(%}BM62gS$[CL$c#ѵ=D%#&<|(ѶO!i3A.D%6L (VM)c]a)] Ŏfd%rr@0!&C5AyaL"%45z=;z:23嫤8{ V!ಠ#z.B\`ݴK!c-+L !: $1fӟƘkG~ֵ.p8?5舘`{/pP*t}޹=RX6$mے0١bJ #l~/DFtZ:]2NhDCAg+>qm?k >y` Y6IԨ h}O k,TlٹX tˎ#ig4 ))DjgkDzkkhV8#Dp2=0fiB~yjc^0RpPWl;̝^[DDJh)$Z7ǝ_'I?o圑B1bNfq)Թ|! s\>v !yj=BKQfWGJ 25w#JEĿC LRxQ#Dd{ꗬ٩TbÌ6J3cF&gI+Zn<s-Ÿ aqԐVDI]Vd5=IKV ˇsEwan!@7 ]VugO~/`}9-5f:3|.~^R_zRIE/A<^N=%OäY&7)k@f !RDI ]s-ƶWg/o8p#DFj8D1?;~ר"HKʑ-ͮc$}0n5g,VVLwKjkPs]g'?o%X WJd>Np' ZFJ(4 o%CCZN9ͫ~#- *U;#3=c;*͢_#&vƵE>: W|7ǿx VPER?ú1qOT)U}lAKM벟?{=>C) ! m23=BgTou!zJmFqoMҋ%)‡|1 )GRo~h,MP`UI'֏Ņ`eCmp{R *BS[/| Y(,8S$`"\jKKZP9!!5 `(堾VTf-Yflg\ϲsi{58ب(8C DflFÆŃҒcwjiʲl{E@&IRzd嶠IX $%!Kϰ\ԚjABH/mG hgg`$ITf&Ɯv'd2[l11JINd Ĥ&M[Csb`,Q d$?Ū*qIhpa'%<TkR *Sl(7x'nF؂?Ad*M)Rd#l ĝS7+S1+2pܮ*Tѥzg4 sKǧ {l}I7{{"g␖@Apiٰyio K6 ;/ 0 /$%RH9dOn:ɋ~ 5CFp}o89OkNN.1.bHBlX0 1|?I XW nڔr:R 9c(Ɣ9??磇brCz >dAnB+8:a%30a}!9 F UՐM#x^lOؤ1xn(_-7QYt!BH2>7#SL)Yh*ӲJ c‡bqNq0E?)a+2-fPKR}"a#ey<<**N; D5sWӶT@TyKg)$b4 i8N)҅-ŭXDUn dd_` Kߍ{F\RUh5q=|yѵ[Vs#v'*/H*I9vԺ '\_lY- I%|]goP^O.[MC_::_9xw9!Ğ/WfBxm~rUR_}W0@ڳ4A#K~|Řc}0BŇtm;SQX6%y=P"_}D߰ywu Կ;?;Y}6CtC&2Ǝ1tg?]+Ÿjx fikvsP xĹY0Wtn舺g<{~^Zr pt fՌ!O6m81 Q [; C*D S1%c`ZrLh)z{X{~rd·sb9FDsiMװ~rQ;$6;w.11,윹8'bXmъBJ6¸,n/F^!zR" YldM֑'**<4ַ} mecB2q,gdQP_y9C3J++LϰV>)bz\K9 ;fd:W> ukRuB2c7S˜ 1zF/wG/A/hf3l6W%NٖzV3s ӿĎ׷X>J۰R c~hѶc1FT5J =aV0y]!=>wt췼y{\_QZsr|7s==B_C?|_&M A8}x)3S9<*e=iDmW)# `eJ ֺ <_{-IDm?" s1}BK愣L+p.2 }pT ٰZMewIh_؎[6ۑq!\+j3~GB*5Ō<[yZ#Fӊ\s\)N[ 1r h)fC,ٔci5NJ 1G}Ý'2:K qGzfLbF}ͥ88=5Ae m9'r(qLu5V2X)\0_:7J$c}scoͿՆ<1O/PR] [2ő.t/Z1 ~ V<> :zX7+w@mʳsJ#(qb="YUB`hE6mٍkkXsf-iD&v.l_ ƴ)Oʉֵ>b{9`]e̒ךC~#]k)GR prtH}^vOWܴd ]sF[O E)~=]?gfUb要SYO*T/C 3}c})77Дgh `;,> ]"T3_# W7 &el3Ӗ"iLCj~j/+_<2}[2_D,W2$ˢrXwޤ}t>23 KbXaa > qt%]"۳ϦL9!2p:{5*(I6LU~ϘH2 XT+(:_,z>z2vU&EuhGz\:+75Bm? ˯k d|;8ej&/Lix] e]4idiZG{Gm41H"KQjh(.ωPI+ScMky"Gc8m34 C]iwA?u Ht ff~vPCm5"KL~ڳJk1/mT*ssI<̚.(v粼2DAh ]GęaF5hrE֙$V(eѺFP42{l)V[4sb'6qj; '+C6"){ӎ"焫+ cjB&I2JDa dJ޷L?1&4qG<:?cG-~_5VfÚjs}11%~2T5^)IIᇒ䟜˶>˚l-+qttĬmg-MJFRXSJ9A'O&2SMw )g|`3\JpO>M05aLJJ[Us5 md]~ps`|(4 %eTp5 ]XAQɷk)|\Ov!Ryáan3J?d#6%~H!(b{}Y5kX};u׏F:x@˲ݢѢ~^(NXU Qʭhh[}ۋd]$iеvݗ((ӂ*2cyb PR OVf`?u?)(je=)]1;@J,Q8^9rW=fѰnv;m^?z1 ]3zo$'kEhj R2G5MтF5`qVBJqϨѤ29cMÊwh?BǑW} r,6EZic1>^G4V25iTl<[UxCŁܳ5Q_VS-@e,RJZX4+ț|ਥɊ(0zV-IA`"Il@7FVQTbE4'n Ĵ/2Ĉ(EF%c8{|stn.b!{vqbثs֤&ƈHiZկqtx#­+l-HѨi[jSI&fߒ)'Dv6\L hbEi$@wX ;6+]Rmz< :/fz)4l{[6jmG=k!:f,-a!D0$?M4))n1t~Cwgesr4,ꆰ%9e<g%Fg %%x “AB4G.V=%y϶/o RYg~B-hT4Oi,'3 ǀl3 4Ո~!1@1&sOe~fzyP3>Zm~tdYO~ReTawN-J4:yOm^SRgQ_bv jA=NTڱts8`!F|.y.5sb5sΉM\3Fo+4v^9"F~Ħ@m3 rɋHیq -0,4MY? #D?>я qL57|~ IDATܝ459$!L7v"aV[j`n%ۖ+PZ`= ;,!g$&P lv+,AC6 2ð78hG _@̚MV)2 ._kv}"K. Ƽ4He-͡EOGdhT[ I^e,Et>IyV U#FHXkPz?ȪXֲCSbwO#*DgL7AEOMV.5)FX%!y"<9̉ot~#cXD5WǠDQ #|H'-1gK,}/PZJRBYzjqƒB$ъ,7\݃Бo!dXP8bD=QWn.c5%vZAN$HJNADJ%Ww˜) F#JДB0F|Hx)Ɉeu˫+../v0jb>_*G]7,ۚIK.1k0E%-VtfFN| <=#NvDM6AH;BnQ[Ts$]`% !)YGzz EPUfkr!i`ƁuWrb #)%*]\40mpiZofx=`#v m+*+EQ3N(\.ƀQЅrO> h #\OmXeʚWwX"J' JE5Z4O Ѣhu-S) !y"gԫ}q< %N9m$!8mNBvaR53;Gg_ڗ ;czS7,I9bUR,(Qpw1qʢ%j]S2iUUyb*%t/6(mr]DҎ]Ӆc,y))1v1EuJLώ9bX }s^]^[_ug:׾i2[0mc!ǘFG;޻>SY$DPVAGwҬZEE43*KA:dezά1 ]737@)Vu!td.,n( 2F %ۇtV3 _g*4D^_ᧃLfw'M7hLC;RN(8U-JKt MM3܋P"81, %G@dRɘ  aGߠ#AgTԐ/81ʔK g4\j~j\@MD1Q*~ԋܜ39B^% s,\<8;Oޣţ`P8,1DiZdP֕-l?RdP臽BENdh>p1۾nDVpqcul=|F8<%y??$"#Լa;teh"B(K? LL>E*I\8 bޒ3tÀQ[Лwq!ο4E<;ݣՂg/iD|vYӪ]ϼ vRFCTtB]B C(J<@QbhI=, ,7ƹKD;R-0u˃%9,ZJk n+M"S*7QU+׿yBj%h%OFe?'iY+Ka@1%*]SZ5>t^Mϩ}۷Ȃ7晙z[c-w@cB@"vdqXq )9Z K[To1.$rV4*pFI.8| B*auDkc9 )'<~L|SYKjGȚsI}1jdDvBtHO Ie!OJ='(L$-s?x/7o9y?{(LwxBstL3jM4|9xcw+oYY2nF3e.^3NT*QԦ>#-ek  H"Vʶ=|(E;+&DEZLi pT1շȢ9E"+TD#t{BT/Z׬iQ)0JgXbQ+~B\SBxȾ!S.o1erPa#tCɒ; G O08A%HړqmhV<%t=K zbPY(\.Z cI@j<|ܷg<\}VJ;︷}R11 0& Y`gƉ&&n !ƽњCt.jbΰ՜@r}xۼy+6<|I,!,}}}Wx>k a 9ARha!YP#4ebx(lJoL޳Yv>x./\aNnby$:&^]\_؜w W#*r[L4%TĘb+D<_r׻D) W}MJ%~&^ʈ$jnƼP*3x Ikt! eYrFj=9=Y))[4D`lԸ" h='dPo9fR2*!&xٗdBҨ=!IM7k9uN9&_%]k}Ƒ<8ejUcGG/2#f>$)%9'/#jqWn;GYOP`:gXJ8zO~R6bb`U&w=d$+I})RRsHNM9ۡy~sSψ[ͻHPxVgFp,Ub0ZrY '7Piȩ~mn4y|tC.5+x;>fݝr\ApM&-$CʘZC=%K$2cY;TUE=c](ș~ńw-ܐՈ1IPޒ!/{MYq3Ų؞]1+niq2pQ3&D q`'1z >TS&veVcBTVJf거.–cx(@n7deqkƔµaaukztL(P nV3`4fBcx^ʽ%ځRJY*q8keOR"ԦLgkS8B3Z4Y"y[އkA"9vRl̅&s{Y}b޾+fNcZCJ9j;>N㳸>+WB峕(Z]c#c l lN' # 検KޓR'*C̥JI9JiMO{0;(0#_==֘ Ow%{/FtEͰ jV!p%oRW,/~{%?EӘ1\) %aߍr%YF0ztte)&RqM&*eb?iQ)0ZSz4Rb%N:PGQR.EΖZg2ߠ P81:rJym&ބzMrBG f9\%Pu6[PhѴ&2bĢj.Qhjls.ٓJƊ˷7/œ}ߤYB Sc2/$t:cړJ#+onߧ쳊vmX94͝oCz!G߸ f%ZVԛWxWc@%L7%'8!" .ZXVj 10fxu}s14aETw<|shښkmF5'_9d>%HGggpM:ء؅/qpU4&rK9K ؓt,C0mUBbb:19 ;.軞e3C%}ޱ㊔Id)C"[>q#B9XgV:+m5J+t/!)Q,>@ N.nPDk Ai9N+r1ӆ9lYOBDxe`%ScɦFajqb~|~ {<=rX-lU9#YSUZ =z [8 f|k$JN({D'@eM3!~AY٩5kɲ^Π(E/RCwinA'RK@M.dRfb=.4{–n,5[XC%m^Ҧs *0ŁkݠnE}+=~ëf>=zL۶̛=¡St!s9Fw5qT)bcb=͝хSU{U*.4e3}ܭ&Tj BMnӚZ9M j35HT cm`=I~y ٖ-^TպV3L"@L4SbJxYxbi8v{c6ߛ(4w:dA2ȏϏ9F$D%V:$R*;Б{hԢ'gW6 [&Na۳Dvd2Zq@ws;KUj>(| y-׏,帥r5p} qj _^ghKܠ<rquTd>Q (C9[lk u]D*jRb" :Pk-hO<_~Es9/:ꊹ{34~%?]xET~ JMj%9/K)$)C]F1wΧ}ڿ>1VJ:|hm/shxqKfȈ5 /R` -;5؀t%bdٮЃp=^1 RJ^>CA*cƑSX79RKUV(R qb3UȺZ)(>.ߪ~\ܿK Z8Nh& D_ml;άQQ5yޤDzN7"3rIUdC=- -/{[C2,ȂA[$M6&5W1L{"22*d-w>{ι aBlnKUR#P$yEpzvrƻ@5)gL%Gެٝy筯^?e:MuK4HbQŻ?}w.?7bء޽ĉαۅ_2#S4(0@"zpl5>ylDb!J~kZ *YM8Y]iJ0fL=F_Ő"a<8qAc>CqLTB!b{9ݦԊFANi8?E5kՄ{@LfSapHY "]$)"bb@V%GG'YC(r/]W^_K޳6-Y10JЫ;f u>CP]s+d60+Mb$| x >#¶]0)KkzOejCEor<B‡jc57>2t7"l\d k3k\="!Rf(I&\L-8kq Zfz{ݭ8 [Ls.{8LJYA9 #'}42HKp!)PiKÝƱB$fy SQM\qq23$ZJ̈2Ɂ4 ƜDsԧ722іz4'X8<(>+DVAqgm|~멍Lm!f"> )!^"dA]~鳓4*QB)(3O{H!ɤ!}cNH| B0l?̮~{ 51]IAQJB c~-u@5(fک25e8FX7(.O~)-JKV.MA >- +/_EJ1>xI 1|h&S;l"'@T{s:!0; BJ͖zM6YAYcX+J*V!@XUcٟqڟ^ڻ<h|38̲9Ɓ7…' &Q%PBaI6d AM 'OLj~JX!{YK?<$(i1H{ -g}bޟSR5 ] fNSH+VC@2WtsΔŬf-}笂`;SV*! /hdD̨ZTcn@6\J!0 FZ7n *?s3[ʵw^~{b`6 .gxg5ap`E,7#ܠsSE:d) ;p颦6~a<C!j9=ZΓ9WRg/~~w/[o|gN]ElٙO2M;t5dh5+9=| xYl=m0ƅWLȵA\x%<cbJ12< ktE/淮@< 4!eE<>=ֵ"n}F(r'а$><]0*Φ)4C#W^ n>03ETЉ6ncpLۏ IDATo80]^$ ~w+9J>0Ä~sF ;uA!W Cu":V[^MQ,6N)G<˱6жC 3qO?:},q."bRF5;w>֝NWdatmgrYk2] UoSJwL$s%.x Eˤb{* 1MD෿ D mKn) UUSU%e.?@n1 ktdaFmL7W؝N=$Gz(ޢfqA\O^t)9NXvs,#[=O,HBM ʴ!Fz3nUI1{`Xؖ9j oǐZu0H`c%臖 V<*VzGe7a—cc@o2rҥj1 }Fm\ :1S<[_gⓕ⠵v2Ejg98&Zr3%8h5g kB?~JU1&)dcRS= ?byl ұ&C\F9ߣ! I-cdJ(Yn2 a2(J$d1E*Qs@>3s*ag`ٺ~}"3ZYB K˝a=Q2+'; &W3}(@xI!"~niΟ[5=#gq5lM3K HM O:SA. rQ(h w#.X2mY xmu^;G|sخt1:ӕzu.9OULƊL&rUEѳp(Y$Фc(\asH!@J@oL $Rߠ*?4ge쫿2)C" fX328  WfB5l-ylG вkr)ԄýG+igADt8:N!I"(6[KFR@",-^x.lY;zN pXae RЈK>p||[\Zwyjb7>89]};1Wh Zjm? [l((!G?;w?v}_+/lRRP8lmY,;YlI8<%C!_ {PM RlM~v8b n 8I5n|Ȧ%mj"Q!zz⥥*&,4 1FI24-RC{8SPSblZfKV 7 oqZ\ "8{kO ЅJ{&aIZv 봏i\+%C|j}䜐TF_*.HipƳ `Dh{Ͳؚ\\{DkqT\ u<{-7Y.Fk?}U wƔR Z)\/ I`EdFa9zT}>l[N0͜Jd ͰBQ.8g䪠u E! 5ε&E8D  cK3l݁Q]O:imC |*uRL(z}`[TX C rixVtKk̐g-e%H})'KOYK|.ITE6=}R 羮zF6:}z1*}18;Z>l`e-SQcI}zR 353.7iҌ{) "DqE l-5Jtg7 ψʧ@|%b47}L Bo.Nد- ׏2.H=zK \*7֥[\&-\[m׸߹=f-5WK^]rx9$UΕz߹-7oRuz?]W/?n˦_Cl·e|?⏞}.o/>l:oaUr~GKÛ3;BLc#O~[-C،-!$JHw#҆0zHd cSH @ʰ7ka}n}e=7L( D:`F YpPܛQ- D3yvVܔE+zZZڈ.J5yM?{7LnxٙQ^ɫSbsF*3b,`gCi)SPY IE ;%{'߅%JZ % l$HFX C#Ĝ-NS=up=s+m#A␬1jG#"ZL9PQ"~H7-3)ȧ9eu>gsĀrPy0AR M ˈCU,N beHiy@%WR=D/(dRO2z \̲ .p(mpy)y&x{v oQR1-lʞns ;th-SC|X }g] E@4A;g3IߤL4}h]9᭔r$ZiAއŋx"9^srx UJp>W/SO+2R֠I*P|`11)3/8Zbm4~TYXo"{vrpxH?t|\ \bQ򭷿Sil"=b[=ZܠA+^{t|uQNw>ӆuR>r^lX5@)@EM!b[(ʔ>ˆ)=9?1|4Z˶mP}Ϥ$E*Êoa Z[ײ=/F}נlό c_sQ 2K,U9ڋldKث1Z}cJb:Lq*6%x+E*x[`ɏQ~>KmJqC#+^.i|^Y dLӇʎ-è@7]  tcg-S-#*z.Xՙ"F1bD$DDO266rإVڶTJpz"D4oύL3H6"vHs#yqb8<֒+.@%W+ŝƳ=r :?Hr$}CɮB"++ \%1%}ٸ6CxP4"6y!8+3~XKB qшaK1E1ч(C q1Yi=R 1by(Lj!zbdR  ܜME9V@K~V}Ã[=~qG6UH o+?"6;rlK;t {e:3M-L$ڿ>>@oa08w# "TuΤ:7]h%*ZiѵnA8U,O f˝pxxz$/3ݸ΂ޔb-sv)eTE󳖲,ziAg\}[,.OȤzͲ7ht,CVY p cNRz\ d :"9'G  {IBF2|SBaO5i$@ܵZSE/zY0e{'R+I刣fDDPd$=`}DS<( p! "bR;.JJj]f)[}R ) ] >j֬-eCYꚲt6eow|BBը1HcZBp .i5;Y]oՆfͥ˗( (w2CnaJ4J69ӒZRlOP)Nmi y4GbDOns2Y%D=kK`T&k3LfWQ 7. *j+!%Bį6,t2鸔_ $ۥ02-\G=FH x$ X׊JY!#W LԒ./M#F㉈2K{ QE=Ι#[L W˅b D%J:` \ >R A!;bHI7^lEA@LHiE"q"/ Oȧ G 32BwpptkAEL&iEWQ9R;m1@+ق rc]C_{ 4M"c}tȘ<ՖS\z_zϠ;171J`bxh)<=l*,h]UW؟]B9 QLxb :긃 4XhBYcdp]!J*dŵ-O t "R#HLR;KT*!(=1)C:JO(sqsJ/A`WeHECA (2fLh>gnQE` MRv*yACՔUu>D I!V(BPJɝ6Cdi=LL4I-S|!RT8dLutbć4.K%G/A!GS(" tQWxT IKrLj cDebj?}aSRw).Ǒd*ŃÄ~ #ɧqӋ@^S ТzT=ĸH^$~bJ"X׳bb\.J@Z^jA^X.ċ+- !f*yQ1Q%mȌ8Fd&EeL.1iKwuUN綿q+DX p(١EoL~sP9WK㖓# 'gVh/ɂL叽oO%)S͊=.%P-iA#yh1C#GjRӃh"d+wv]fŜedݭ-w)L2K~pW}k뼴s%+F={2!>]Iwʍ Ϩ}\.wy}@{7~_enon;o3/Moz?۸]xd8jg(X[YÐB#RjxfcZh!#iG>Ԓ{;/PD R1/̎ 1-n5]G.r2'SN\/sIO(š .ɴC7ȳ@{g%HJt&gxH19Xw昺D%E]J ZiO) IDATɌ,@6ɨ5]ORZuGҵn9::; F\zn'\25R%5) H!l2m6 ;;;}0$IлYFA$!"H*d-1GSAU`6W,]p^"FI2&P@.HQ(I!0d4xZ禍"+y"#|Q' BasAx([DA"z\J_13.y֡`;lfK4Fr ba-B;dʠix:4#Ǒb&"mȚ!rJa8 zI32B4R·s+nH !u^$>J/n[,5S֑Fx溼B5ݡs-1GST$rҚX%bSb(ݤxo>ِU3\<9Zpr|auY3Lv*/_+K KhPIY+t}S89%D% HjI]Cvuz)(5_pz|[o1.#%q{9yv'#Rn@+E]2? VǨ}j췈,_B[]nkvwUA%#+`=De. mz.x0K2&JEm\EI!(*)ϭלjR! !P2 >TS()w:\F2cqU"EX^! W d&(7 )mCIB33S ͊"d0JSt%˭Ǐkԥ8n2̮B"9bSUjM.9{SY"CU{ )Բ>u6zTp̤e"̥f]fAzh>ґx8@[lHA#w*>zB4UR&=\t*6u}&tUt#03v8B'z( DL] RFe\ΒVbcsD'e@HEf@DSdy|^BFb)Rg@ȓ"3ݷdϢ 1Oè㌉X'G'[#3Epc{zʨPdޥ4@)Sq=ZrCا*"Rτ 68vlԆZc ĨHbćVJHt)H!BS-L"CO{|x!>L1r=' aZ̳.SO)%B0TQcVܖҠRVF7*KH, aQ i(JAˊل=Æwn҆Os2]뼵*/L>wys0j ~_ps"FeH6w6w[~pxR%g>Z~7Cڄ|@%wr?} r6 'MwF\W+.Sh3]Ki ,!)~pt?t4k9 |I9$-Tnnc`Q. T&go1\3.ǨK_Myn0V` Xeg̤եv 7ǤR`,B 䯄r2DiMCub:Ϙ *1EMT m躞>)yn3&)t4g](4v`ལ( i|'ܹmfspE4,@GOC&vԔ6 !0sĠ8Ym{fKFBu Ҩ Q["BBKTwSd}QXЧNjYh~-PƎ5J8|^MLO|mdfdq 5|IS!F)b" 5I#1෺:ᤣ-bM KzؙXCzqIl| z6#$ )o}0S.JgSZ*2hy2kR X;$8#o.8(eOB)&(%[P;DYħ|JHb8 bA51)NjPPIdm Y^=0TL*IcrXeƱzsr#m֎6RЩĮ^프BEepp1$(:BhOaZY0C@!3 )Am?WiL z%t9ч@)d^y ycfR?|Ꞷ,"CP[ml R҆;DvnU-k?!) '(uAuH;nTO0[S֋sѣB2Ƴp&de! BcTT3Jq_ ТDǔ=zF'Am5Z BIV.ᭀlu_Vo(b0Jɲ3j%ȸAz W qJL)Yb*[Q##s+Na $Dw=.UWRگ9OX g41)€WO?v6rMauf_q Ve-PH./1YTSO'~:߻=ط:=ĵ)7=a1d #먖Y@L#EOz&:ן!2BJs=޽Mf4=%+D50G ea nv~]rbĹ#Z^sd Fk1yf=-ܾu_הx;|ݽ-P ~_ !mG+K7 ;;S;o!܄vѓf;ė>G;b̄@+l6cv^̣UF"~+<0ta !YJCz\Èk(4]y/m@ b2BQUfc AR]u(-1T5kR1 xt| йlIa^bgo않qq!(ŔXW=N!Kwo1 i͗0Mdg>Whz85 mvP) <ӈ5ɃIXО6ؐ ^㢢&J({H@PR3KL^Ϙ6RU84gCn^_d gp0z9Ϸ7WlW v>bض &TX;: &x6vJy&ed# _{Sb`Uy E=ok:B ;saYRЂy_  -%!E0^G`e .!:@:$]frǔ${k;yI6CsS̫Evc>N;>fےS$!:Mu1F 5s &Lf$kW@#"mNR~Jw[PZ3:Θ_LbQ0džI?cl'L I,R=ePMn\(1Vq.##-;vdV>@lwGHOjX fp/'i1ܽQ7ȓG1H"\G5(? lEͷb?oh{l܆E{|z?|e<5|+/Y+~pG|zeW{=wyy2W/G??TvƷ bp8G;_Z3^an,V*/ǜ7PŝU$؝̙^b7;ʽ{)Wb*ɠ:B+,JmIX9٬!h9(:O :[tC,\ OњQ!$k_9}]6*rtc-sbrBK ,Fh֛M!bJѻdL#O9 gϨv?VHma4kFL.ە(ku"B&H)-јyKQl h t]),CtL%:(YyiDt)ɕ k|XӰbXvQ#Ҁk& VT}Y"Gp"( 4< )鑵%h'>=!E+|[nW~FNf6%qt l zH׬8tg~maQ*n* }ߑ|m[BJ8h ox/QZEL}zd_r۷6B2+c=T%$cufū|RX#PRS^!'4"ow#4F2TDJ+A$ d%+ Rf-&u-cfd (IVnn{& Œ4SS # W+⸿GҊ#HRH2ۮzr NG hzB!3\5JV`AI"l^SʝOWFJ6p:h9%yFJ6\e Es&p2D=U'O%$/5\dYNv%~ZE[`6B.N`jPg)>*?b![&ibaBvвVg&bMx5z-).#SvԈ/+>_ػʦ{Ia=@/^R >;" {l܊ZWU^1Ж//| # }/?OW Sjnn{rksr7R%":B:K 0Ң 0dGb:qW??*m73>=B$&$<t;5uZ"SpȎAB;κ5cՓR`fɟWg KDG ޳KD))JHPN0v9(@=OD:HW.Aer'I|Hd %?8:pfOo|^Vjg(G%ƙ!"EkbhrIv`C)MUuM$u,(]Mp]5kZ@mʵ\>c(f,Mp -]f`),FYQdg*Js1jCʺ"H3$N8#pSk`.ӢGg3 T,v~Es믾MH.?,IL̨# gs?Ѕ+(Cx؄% $>hhSAH,w2KBzh|w b$@#e,f"# X#Ab̑ҖԪD5ȦoY)C$ I)BB b@H#z&X%K>;DFVӒ fw[sӠB. Rym[ hQ]ҵ-C(+ã k͛1?w}f)JiH), )އs ;9m~g?Ğ%,c s' 7"I$VCA IDATOh1&ٺ()iF;DMT Ļ4V[NNl u]seo*~+`p RF1zM|>egwz7x_֍[|s0& "u|6u<iwʃ[͂ޔpa4#( Sf9es+-''K9Eb|5& M1>0>OȬ"QB(d( TRLFxQ:iڱ Ƙ\-jd !GIw͚696r\QzRyLR 8*1fŁhCɃ,UyS#)w'Yǯ^PqAR6a%JH X =>*kH|?Gy/j[ # w#cȋvG#Z)Tŏs$,xe]fn,b.U+zO5\B]~s_v/),WHNڱtcH\cj-$B}bl!S}K TJrVTj+30 8NAJL  V.~!Īc73fåb&fP,;@?!Dtb4l^8ӳV4߻t=.չB Pd߿ujeYwS)`RK/r}ZWLhƋI?9~ڌ4H!WRJLlc )+Wvq$^>DO zUKsTT„Oĵ1oim5cĒv:.iZ;u݋Ǎ$CMF bI3_KMdq73eXZP Ej}\ru&{;xp1-C ^ƦQɰ#.#_7 'oUO(whbK'JeQF" 31| h MY#i`(LlHքݪҀRix"vϵ\,؝nP H~] ^\ ͚#ZK6\`goj\rrܽwgL&3%NONg`&D(aZqlAUWR#:7P@QlNO@@Y&yd2e-#QR(! >f.=JjIH-QZ=#4Fj=Va .@k °\,Uf:0W1@ =Ը6ҭD}f7x'o!])dEƤC߱ku6 QJ!ħ@OK'6lX]8 _ƒ%]2aQ.}Ǚӈ1:dҖH)%E]%ʗqDH\$M+B.E{@y~{NUA-MYvE$ @H C4 MI)(5$#!X1|D2( d\Zj ܋=&<e!Flc=\C%}3N0ik[ʪ"G4Sy,{EܲjH8H;#uo:LvF@]ULc0ddIPO)`2@jq R%ʢX{$3Uq.8o ! ;i3R4*)tefD)3C J)A%Msxpfpmqrz>y}~&LG^s|O^# YZAi fS cfDa*k"hRheYqXs|C̤{'\AD"ְQT!Ay]hs$ޚ!DE"tfC)"7$eI>n"R*MܐSV.Zѡ`nK =CJEH:p\ KM,CPxTKT>$R˕6!)|l$@aT[+)if4A)n5Yxq )_2#Dzr ЅDKf3(1"1c}o{0MvPXY`Ӛ*9(92 *. :Wn?OʏRHFB 2fEᓿXl $}ܡ 3P>ӀQ(["m 4,-I)ҹceK[ !o)Ѻ%5{vD$B ʷs c1Si=aA- BI,Ж#s;gCJƠ18a,c1ZIC[ZΫ*7}{`HY'`ɇ|CGT"ЅU8,{۠CG*HdJJDZl0K%b.F퉢E+$4 jMTXRUGX?_ΐ';A$T_?wW>[جX7_mW|+_Ν;l)מ{x2lŷ-3͸?x71ʰ4_&W\WpJI'ܹ{'tZK1g%\1*^\o5~ӹvF2!-x /Ӆ@c.tv7v1HS b8vӐJC$}ɀTOm}| EZKUWyě{wOߤ4#oH!XcIIP"kS&ϐ:ЧGVHT]H Osm\Q-Ea!\,Rkt="th`4!b6Ł>9B'3~CAxh2şВ̈!2ʚlB+Ph,* Zh:).>,L:`  ( &EIܺ OV1-)%ȉvXv[Q}MQ&֖-#3KxEgVCI1g)il!?{mtXS1CuM-K||FI/'&@Sr.2Nc`Z"CŎXQ<|G%$I(Bi< aG۽WB z 3Zһh?͛(G~Myh7yQX7zl.G5r4AiI$ќ !` K ]*yB xת, {;-ƙJ븺0PwS<`gp&u(5bXREW)TUi.28RG=v۱ QC+-B$oZyޜAd,ZK\4X%%?'0 #sOC4ŚD; \6GOJ 5{ԙc`H .QˆhҀp0?s&;Ϣ͆!@#,Rpv.Fn%$FFrX)\L= ĀH-8qJ'@̜^6܊C-3~E7 "Btt9/B HGXY-V*`t VhÆ>}Bb BՑR !ydcCR 64( ]Ⱥ1C8"Q`Y{%>>(UMFz!.=ZTXU?|TM|Nc HPRF' w}R^/Sz.}h(5eL|hҸY.de~ |f,c*`E C#iKJK*# -H"gέ)f$Nl %*d3H SNLZ߀T5mh.Xi#oYt >AJ w^ԐJŷB Y03z+s 'CKD xkz k5|nYy0l,@5!VcbwB 4~-c2Jd0 OJ*|vRzmw-~))DϓK^ i%\BDǥZi.\2ܦHHB?H1>>L"C9nOq"3櫇_UZ8V!#HYF I-kH1_tAa !K[[ %#o+qI0$f&Bh}innCtpeSz:$űVqszױ-I` w=zsirȬc1K{L&ŌvK:Y&`U "%tְ@e$@YI>έ":ty6$Dp1ƒFE,nbO}Ho:MGUXɏxxhk7_1K/3ݟc;w ".}U^~E& ը7K40ωu) & Պ??C S? (9[,X׹przʍ;_4RKPXaJeFJv!W Ue ZIm*Zfp]Cp!u6Hq$2-k#4.#S ښޑHAW%%R&Nu{ue*V_$VYfvL]d8>DRrhEInH)qǘ!0#J^cgȬV vU+.l9֊n|{,1 hJ*adE$cwtkwÓSZdlӭ1: [RF/_G';C %Ƅ/Z [bUA;8N׹;{;;ٝ|n(2DO#B0By|rl%&Ք(C)c'.v[%R.kOlH[L9ؗǑ #V2h}@˺(5V]h=SDmY0eɮvEP> yE)p)*87 K}ڟ"3 )"{&{033NHT)Ewn~eL" \3RXƦTrDjSk)tEdj+^S1BlB$C . f;IJGg%v?$J.X0>"Eb+IQBxI DZÚ_ H|r&>ՐRJS;bnwIɯ[~YӾ9[U\M!#3+0L H̐""Bl ەXu{ݽӭzg $Igp9}voCк IX\HU Mp1v zLoHA0 ,Bd[&&Rβ[ 1ҹ)E]*LK yB~r^@-$M%$u'W%joBbw TnJ" 9]Z*A6 Fn3cWPh>CyGD(tYBIf568v##kJt{K뛑mㅢP8z7~VƻC X4"ԛc||CVSQh.jn͉q~AtBͅ <{̎=Yb?"#J2rT4h&h%thR@OI -۸gݎCB05Xf?]݇GށbsAh %>8\p_unY'1}y`;{=<CYyS>>w_ DBHt1]3dYt2eP%f"ܭkORװ;%7@ K+Wv( 3.ʱ|8ZKe+ @(=lSЦx] kCKCj+o IDATelL$a Q0W{ƌv .ܜE.T]`c1`?,2~!LƖL,+m͆'E ;!N@!q!G8T7+~$%4<5S#X+HF)mG4#JFd #;zQ$հ }!j5k|vnHH#mH"ɲ f&p\jH9ꙻ*(Y0%Jes-6X(CwB0 T:HȄHLr{bQȜJO؈UZ^gBLd5^{J(j5e/c_bGɗ~~%..1_2@t c Y-:g;GmcN)uE 1(>.!Pf^\?)AG*󒞒"] qB N:Y1'R06QC I5 "ɯ;_S-|N$ĂȓJ'Fqh\Lɯ9ze aQpt{jf` ]|@@2mf=>^"X!ئ_`YMJ]v۾r/$Pה:% !GrxS[!viAdcb9KфL.+qg@aѳ= ]$M޳q"J< vH`d pαa@K4kRL[;TϖD0 кD4AXϗ7%$eK{pϿϓ)~4>>Hj˾}l4%ȘauFL@,QJ)ijJ5nqws:yEYo|n5j4V>y|T]asկѓcBy@t,3XqRCpIvtv}/_IOVW(B׳Y]mt _+a2F$:!$`:8Da# QV5BeH)oyVp~zJk8?@kŻqzzN[֜bcZ3;V ...zm|E? l[6BXk3./.Wl M`׵lv+ttd*\ z2&D20:KZ8"tpLhy$YKzC3emveP`D iF>O>lQ$ Kr52K?'Ĉ Xr)1 .8ﲶaǙԎLKؘj:<!!,6[RJ5Y6}uB&Rl6~  ,( 꺢,j~Ьw{{d $@D#RV^&+ yy ``R5ʛ'ƺ2<#.:]'؏N`v%Fk9ƘkWњl$fn=-pC0P 8nd\AX*õdXs)ՆOt?[߾GG͏9;[!wAsO1#tգ5:lU  qc}OhۖmB7oFx&qCl){#F&e@d%; CH@i]B(6=Ԅ}T|kذS 7%#(C\1)=;>ݭKDܣTwع3bE r%Y60z\ F"Z r)fBpXd׋^lq&VT84dR>e 24nF Om,i\?RR6vxP"F~h;K;'}(uz3 Jh 6ps<CRt\-o .?jU2Ğ,~qs%u8 n`,9 h@43zDJU$Le<fE_J|{ QTp\C }ߧyRe8ϯׄo[ʘsN@%:dBq1xB!Dg0F=Ȥ4W:"ŋk1)%l~~~\}k+9opVH!ɐ$ns[)[ A3,_:02c߱.uT-H9(S[ $BRȊRL_1i aDĺHQ@w)O5uYR9]agzʲ,kr*P#9 > փPlK%W._B ]L{k{HߣΧ|Wt6%@۬ivtCLŕ>Y,|wE\8T6`}K,p^Țe~LJ.SZdZ& i??$Z1'莼h = ~rƔtdI9>}Doٞtxkz6~Vͫp?[7R^-r+'TP ͳ"x|f- }.cg%_Y>Yů1d9wYs.πH{~ .QN#]hq#n7rRHrY0R5= ;Qj ɖW-5EVUڠC%'Zm5HMvH@h&s|t!Ake-"A5c-{-#)? 1F>~|.i7D8>P%wZo2!=X#yd}|ZIB4t@]#fQ!K \1_Džkm8g>'/& }߳\.>`mk}Eh)1{h*Wk,U%*!3w_O>ʗe'/JQgJ}IevY5|)%qrxVOVn.`,G,~N|]l[QUÞ sUF3X uh|uicvM{E;)qP1䘉@3㒟!{;{[x~ț'HK;(O(|JS{_~|AV8<MʜsZ2s:JIiKta bLgW2\ XϗI6Cnq#3S9bN NwYJ[w!X4Tn xJ=P9a2SZeo[!z%pKk)ty -[ Q@p;k)lJn4yZYYq\pL3˿ޟ@Ҍ -/)=J%Qj'G|pdK^[n#dԦj2X]eҰmA)Ӌ&|c~W'+Bhd27&:4/vwk qY$\ t!#.X5Nd{ty}:Q  %ȄĴuMpcH+ѢOhvDAFE"F]!aOuF_?b{SZOY~H̏łY=6>Qb);eeZJ̠~gL7-a5dO0 bU9( rwGy2mg!:y#͆ӳ3N lDeg׿g-~%szʤ) >;;|[7GSy`{do8yg g<}#L?9D[Vs~ы|D3+&D)I;?B> R \.#,/ayǕ$Y>& \:hZT:Xv)HA'ҹ!oSWTߣg X!8u܄{rML'5{ YvӆF@JDlF5Nȭ$b\le"Ir+]j&)еl;S]bz$5 ~ /WA;mYnyk4-={OYTeIn1;)]◾F8|IqSkx{Ky+BBdpXO, =.vd z$:DOclyˤ ?`bf<-1:VL@R_Ѩ0ʔ#OJ\|e+t16/R<͐#N%2_@߬(tINI)Nw+r2)ჇH)98ا Yf p% Ptk@6&8{yw8@f,[<2/_2aFpU`F@ž1u>b~nW9{JR4nS{ff|(Q$Z)tQ8OExgy˜V@t ?xHY, )C<;N:R l  @SiEYh&`BqJg"'P׉ݭXщ>:Btx$+vf}"H9eG^%.60؁ Քj {<|&D.~曫Tŭ🉙<u)ԯi_\{/ME_H[Ϩ-ra@%`~ BH#)"3pENiC" `;k?C#d7%_P(WPq򐿲<׸D|W-q$j_ k!g$Z@J ]ғ_=/ TFDe"rdh t蛳N |brd|)>6_4MzS֒|ɖYFWѝƀ Nƌ]baf2`{޲2'+NhGRv-RJ2*cbjz7p^RCChxr^yHrνOߥ0B2#P"JE}0iuM/p!v BqUPV%٦գ1}6?)_u08b?w- DtpFSiAWi5GkVCOEw]>ٟ1?CoYyi]),tĨH[&y 1e@nnے)?m RQ#FKvC?w{}lW=A䱢&─@%l#!/x%>L2qTQ Rpj=Ҝ9\p' dL9_X2bJ9ynq)T}zOKMi X2}%&ѵ+ cnbȔP=[`,g܏A!%8 SWO /)!1^#Rd7yuz{5s)29A"2t/LIv2`BJRyKR }bEU;f9`:pyn;JcLcvb^aHuFlh}n .kk+zi4eUnw8gHx0Hc4΅kJLCI*nLF2eP4>8F Hx6b@΀`Ԕ)bpH H%JPHOŗ =Mrh%1"X <+D-&qz5W0kuCwKN^T8RZ~B@k|/C\t>b{ѻh;OriRpkgΒ<7|auu]BL|=P< ."!Jp:%TRQ=MN}{='p{ %ZI>{ ~2J<] RV̶ @# rM786r &>pU^9 h~-(B1Ղ\%oRJUN;JbM]v(eӱHk14vl3hk*% JbwQ>F? uc)ry>ļ.SY.XPkj2kv*3 v(M ڑt^vǯ\m_hQċ1yJJc&ff;B aVHr̀ MUM IDAT!%R( IDK-.:JStaxf3\2HeEYU ޥp,G1ߟ㤔,"alL)瓍INKll 4"y3Ć^QW)uyRȑ&^*B vdɽ  ɷ X-$B3%\vd=W!=6LEݭ&ٜ]3݋^J!Ȥa.,rрGB@}YtՎBЅO|xܰl9?dR3֔yZU:PhIoJ@ O뎈d %< J뙚Y<#ro6vG+(M\TʁP6t)G) 'U4 F,>25e&Q23)Jsɛ#- 3Le)$Sݻ k̈́B}1kX@¬@W%&*% 3J)Cko|f S*/%An  CjgjoF~ 7 ,7v WK3z Ia /)$'H&lWZ/?֠e@a$*7~x<0G tc7Oasx,,'PdIC m@ɼEZGp,X"&172C.2fIfJxņf׾ߦkOgd9'GTBD9Y"s3ɝc"ݻ|? X,7!(dypH9M|;.fTUɯ}dIEa=Q2E;H re64x.@nc@ IbqjV?K_&8G041L*53Ebt|r'L5w(_$C2&#hϗ0hc^Ɛ!,3\{tPL'#OIDF% } H^eԑnX}!@@ZzvH!LBAg%r5Z!(UQ@P ֳ.'ϰ* (\ t 8RP%u<ٜ(2jˆLK9J;%x4M wH~d!sD"݆dƾ,LdZhR)%;t!]1%>$i)qwSEƿ|RPHȅDHAa\:,Iݕ(a(?$ )%Ht UIY8AP9H H{heP~H JsPdedK=-L ֨G!6k,k_;z'?cvƗحZ)L *(#xL|#r%"LFSf%cTb%ћ/'Sd Iaҳ0 #GZiI/q.P+Tj<|6nE~rp&qlI!ɴ%~-+'d0b 8׽{bVl 7 q1c@t;dT hQ7A>xX6 9A Z&p :?4m#x*gՈKJQn؈;x}Hjz]1rrD^ǜ?D~#sDa3-d& z4aRrd %H @J/s>:tHB~e;쮥>F|tCr"TB"b LM ERfJ@zr:\[\HZhH !a҆X6Sdv%$mƶrodBfrJӶW;2Y71Fތ$A3S-3xC%.Z@.􍧢% x1ьW9Ff,%WԚy= jLLwz&R`&*)hƐ*%4!1/=o*Gi?!4Y@ @taJ;vZ`y:E! ċs_% D1NSz߱V)QX2es`lzv&eIQ2RNPRRF!!A1T9̤HgwlWv5ۆ.4 Z)"C!B uJKBL&T͂Rݶ+RBZ2S@,{, fnd*?{MM~޾̱E }}7{Ne_H `D$w'.!"̂C|#Qt5ؗ$711b`>H}9q7Y~]!nR3a.v"!x\j\ 0BbEƫ6o=!Bb$ LEGuKlUz#鯏N!)ƅT`#C٭<ͩDH?&c3$S]<2% %6h2l6Z))>8aydYV67[b/" WoTCH)sh\!:bF[oӟEF$vYN.+{?, )n@|s1{GCNvwgdSt9}~P5~|xSb'O#prr_<:n4R z6iHnJ(v ICb |`dWqAJ(}mKcv> #Glx,of8Mj3Zy? X/\W SL ;3q%2%DP(A|fJh:! o"Ձ($H4RZDonY.%$!F! $hc |Mb\ՠrJĠBaFE+~{3 Ӌ-6)bliMɮ>S]Hv:@ifSb;awT5}RZS55Yu[/6 ĐC)19^JB]VGx軎dLt/[H)Q63e7 gB(QUR.|E4%T02eٺdtpb^Oqt8@$Vlr\eO$+PZ#) ՟[Ffs.mhSڒK f2 vu 3bōg0g 8::S"d5_| D#m maꂽq!K5RDHĔ%!<*"!$7)Ɠ"$ܲ.5{ v(F10)zp\^f@)"ZHdpI !|]ܳYxDR胂ɁpuT[ hD# S0g\EG R*LpĶGŨ6\rr|pnaܲYlghGR;X,.R#kMfM`W8zbBr,RXOxJIp.*9fb~M<%t`G͘SIIf4luF'M;DL5mdd[ Նp1q:BeNk)DaED ZDB ʄ$DZ*ъOzh u*)9ǟy !J)1%>#~<{wZ]^XyǤjF2{k?=G[=DqDч%!A5ӇIJ3>ϲl(\X/\v"6(e?YN!%zk-QԢ̍Ъ@I%Q8Z߱ Tx`]P$$JV1ٛQGSU|0#MU)bTĐwzy"CO8jD40J#AH!d;I;ހY1 |L)+uV'ErII"QCZl{\IbkGkhQSϞ"@[!6ķD9ՃjQC੪* S9i&5^\TOykFiI=ʒkfY5./jwҊo ;D*7}tEZZFvƱ_fu d("wUDHI[ yp]YD ʰk*">?2(E]E_>%BA)>og#LixzEp[rK&!l[hau'z=B,vT!Ds|i%-p؉GĎ1SjW.^['v=6l0z9;~Ao'x˨B D#G!aPJJ+dQ5)֬s%ͦ(ۑ+-Vxv΁)"@9S."ߛ(XI4\SWXIGB#cSտ'?mv6K TÅ,(???ցzlE b72" qCt^ Ă wl j#c5'Y:CO)A'z϶ >9e{1GDPPP!DHa2HDE͈ VٛLX '.&.6p5P+W Z~/ዏQW>5R}YӅn` MhN޴0H3@2G5S1]97qAҢ@iq1j@,,U1brӀ8dϭ/!R좢ah]*l@KJ3V#,}OX}Bm |l6!FPI#dVbH (UQ  k1bK`~A 0%`D1*_, (>39 /W|ŗ5ÈfҊ,Du%KsstE7u]ެ ~ L63 >01CH Ͷa\#E+|v\Rc*s=>zF圔Te{PƻH4"Lk%kp $XB$q-ʊ8|6 ԩkK<'z0_^٬LƄF$ߓh ▵* D uO;Bيl#)D|NnmxL&Y +֢Ehq$fO;˻l!SRf.+",֖^gɦAR bx!pR$iUfW D{R*`,Y/S,z-i߬palkc6Sjt_G&P(-,zvSvyPe3&uLE$QS<=~r'6KJb IEoY%VkڇoS{Lx^c>%g)? 3TYxuqd2%\d|зۓ/lYٓ IDATB UrXqgKءRߓ`!: @x^ÈBbRiH,1u"ф_|e05R@}(Z PC'0NIꌮkG ~ekNcP  2 !6]8*mlme#Z&FvЄe/HUSS-[QhjhO%$Vl3_O$@A10_wZ)*Km }\R(MJӸ/an|}.} Y&MxH7\vW 9s&@s OA6١ } h}3d; B,Ƈ}6($HI;//i+Zc҅U"Bb. %݄pWiW>Q26I ر;JFZPX=;rm%{4pd73R.7 dߐH7~+ }~|Xr7Oanx{/u7xĔ裣~xoFЎ4`"(hJUB7|8_?zh?ԅmoc^쩿X#o>X5<,0SyV>?x1$j=m(KMG۵7Tk!_KISብ8*Z7__?}L-<ތ+z>]r~x~f7( Y察Ώߦm[K5oO8Q꯮a;Hy>c~qto_aْw~.Hx',/S>ŗ'⟲)jcS+ԱH猗G"&9SB I!vT!1llzf{qv Lj~iş/NB$zȶGtn`WKHPQ0֊^:p /D` VTD )>D~K Bf_3 PRs5CJXғ؂Q=%Œn[zoAUYViXH'ŘC3E0<16DUK$YKghf#]>CŕiJEBI SG!aC9Da-E1%h|NOriqFS9F2IfZiM 5݁.qq7гCJH%ylٰe3A4HmDĈaR@ځG?V:]3SFt(#37$͊%D )`KYE@@c22Dѹr-WQ n0.;c<sr3]! Zl]]V|S(Źo1evo'ك20MpmKdyY8\J֊2 OlLk›MV g6z`$!{nA̐=I;Oc(OE$6!sh Avsか%2c-ţa~&يN̨# ;!0 ƕײ+;$ѯ/l 2]"H'8F{|H!pReiG-1tUUQ։ֳ vd(j)ƭWCzkZ,Q(dEe^uBt$uU"l EQd`2&,ƒ^x% D2@ 7o<{)Ub۱-[K0By5 <Z^o>,{?-* T VsXt_կqBЎ(ϧmHٟQpӄ B[F fKw _ޏKA=񫎵1۞Qܲsc]&֯jC[DF%R" .yۃGU{ɺ_!U@߬>ç[+-&\WLުه袟3fl|7+lQ`Fzg%Jlpl ЖF)g݇ɜo/͈~і7\bly= *g+BFȒd&hn<*S 9u&*5{|tpvͅ@ۖg?X-H2̔7RzAQ:QWhu?? 90A3%Dzl]`9dz4f}5Y5@&iu/o<<e w389Zr bLb4QhD,#E]S `xI-:* TRcLct|6 [lږ"EU`E 37&IcX#,4o?\vDAdTk)m!B;̱8XChiQDs3vYidUCcJ036.$EkĎPWfo N)R%%@)+}t0ZcM9hblxxV.nBP<`6"˩wjfT3Ö !"5Q*74]7t!?s]t<f^Ϩ-h.Yɻ>UFhx!tbʮ6Md2޹ ZR$c)g.MhS‹I+ 9}vʦiEAQ,kFu^0FR4=;XQ;,.>3ь FtâTthT Պm 3oQZ_3Ҳm:Hyz'%Wujf#Lhٴ۶ MR)f/AYUر\jBBhbP m{6#smig靣0łqUS"yOL= f=X~՟_`z ޲" . #hs?ƀq3Jk )n,sQ }5W$`2U$*=urR0;%@;a1ri4H$VS^E$cthytx'Q>_GCf`lN-Fpr ۲ =}P%)E~JЄ FFK3Ch({JfS 7ov eE~3:(e~9t=-^R*KPGk4J ێG_;Pi.+..n򸔀Vbh>ƔU1f<.9k||r|r7s/7#K%ZR} ;9;EUSnB0<֌X:1Z ުJ&!K~U5ͧl-DR5 ;/J RpKX|LZ} 7=)P!Qt@޲vM*YhR"JA$A Q}~z f:B v>$1&^yPdBl[oRB`CKD}DW<` Rز1e9BlHHHƸWi\96\ V_ CCA H$k1q=$Uct1eT4C P s:ŰJv1A]W8;=ck6B;Fj\0Iͥcxr ܟenzߓ,!`̌뱆D%cM!avHqGI g^3f}ǺNrVB3Sλ3]h%.9T{\t: 5}ic -_Y<;z cAKWhaؓ+ͼS9·Ctz&V6>]Ra#_ B))ssCKh[ ]-y93v#|7OV=1hQ~ XV%)y_4ZArTq١KE`l$GbR @ku<=.u($#Yӊ<f3h1HC7n !Q8_C}8omF6BrTQ[ި<_,-I]9mb_Y2G`]poJWU'i6Kk)[.LaV/4RJ<<<#~n!Ihx}S_2^UE뷌̈́R Bdz i*Xi"+ f]er%DKު7~+ʑp)F͚1o.jiQBȵ'xe9ᆒyeIad@,A%»%E^H&>$5pKIpjH H"V \|R0`"Mv-[[ˋ]B*Og)fr~?QBgeVC#B!UW?}apеkxw~=tr51 Y#i}ѵ$ZG) c,QK݇؞jde[s֚3³90کE?4MtAwG.FH#3d_嚳ygSZBJjDȒm)PmLmc!+bs>E5rTN8JNQ2a`tT1Co##mc.R$iE(-R b6*{ԺIGS0}R"nZʱE={kIe}G)WREe&]D s_A8∿IpB)fWfVhO_efGrp],@'Okvk\QVt T&md S)Da( !2@[)b%%Iʲ8!ѻ=n T!%"&exb*CUڶ+vJHr i41/cVV{.//*Opt4ޒ(Tdh旺@coFFH."CHcıBma4ۄHLO4"@45X-A/3ȉ5oCѦ|5mj;8(i0R3f^R=fGoȔHMG/_=auqr+tĻt< ueq GO^$9yg@EdQ]%0P=DWn[m U͇<=//2eǿYCG p5^&fI:G 1HV),l5d! GcBKmnb}*U39,.+"}80`rF}iWI?=Cza) c^FR ""R.t]G4{9X8mg08yXW9=Ӿ3)t9MbQbrT7-JS\_ 5R(r,[wWn&(f4 hYD!st^HH`8??'P ”@;3#~IO5w[cB_܀Ԉ S5aO$ –Gm.(f̎(6=*h:ގWR7zN9#K4rJ.HfI)uE+[ဖSIS%sQbn:FR䩹 DBdC7;Գ$Rˣ̇tӕ," s/9a{nȧ~$V5϶YVRP)Q-(:unHEe8iѹh7ى^Y߰ksѓ38_6q Gcj\|>B9Ӿ9#Qt3~v{όuUKćRedo os GD1&Jr Hr'P֨*&9B(ȓ>RTUEUbLH-N)FQL#:2nlhg4̵㳭gXW=wC@JJW(RJahcdP (Mz1閆ivL anJj-^4N~-ctlf2;z{^DMT,̂=ɟR-gnO}̃e,Lxvaǽ=ܥP\ԏX%)'ؿ),Đ#9Tʢh6J!ݞ#'X]sB m+b ܹ?1GvnGJ4itC;8yo}ᧆ0NK;yv^qZI] })Pq5{*iRaeu4ZL$q3fQ < K!>90vu@8E߻ BEOH h$ \Ƥz;Γv׾Ddv,'\Zߣ.fuWKrhe` 9"TPIZ')XB7 P -#@oH"zQ{D+MJى䑌eя5!E1y5 8RR1 >]CtxEcm=1;Q:"U3,me uGǟCCY]OHV!1J6WiF\%#{z3Bz]%'Z>"RFM@HHB@U qgL *M rr-&+Pe&LdCyr.fD@3-Lo=S@=ГsBIIJ<>0H$uk2e&3q QI͜E&-Rd| d | `='& }]OŀDMN %!e D{@DLs"TDӱ?a:AYnU`2 zV!@>Gn>#i@bLDd|V̹T'hd "SD i ?(dC- gfzImZT2F [X9] XZhKV5eK:S.W$&j}Yf_~Eu}\o jdRH%PZ1y ?{~c ZK!rqVJv-Y)dgrxvN?z_ `,/eFy`LL9qAԂZLdR!*V<5Q%!+(_%{iҏ>\nl|{(di9bCHH0`Y5!p4t(R2|Jց!9*V,-ZJt|ItRp228"-;l]1= 3GVg)YI&, m%@#D*LDr@5M$\hXtLޗgJ%00OSD 1B 3=/Z2NHRتnaQBR:U@ cC*Ղ*dSe*~% %EzJS(]:)9 =(%ѶA EF'leFA RgpѢ"ňO!Έ sTSa#T44#ϯgs>b2ᐤ8V@t)S}S% } y}@$[_qp-Hԕk\I% YqG0>M'3&EVgsT1ΠYΟ ;nzڕY8}fQ8y? o؜1UM?Y_ ݌H3k46qm-mZs)Ȥ((Q#%&IZaRLNBQzQƧ]* p4-mX.i昀JQ>&tTR`BiI?Dak[Br{]XS!eyxđ(JI[w9gТ+%zGjEed ڣ2fR".kڱgl'cږ2HYdf7;A%cϡwsM?z h9_1R[KŸ{qcF11 ^-cꌨnvףӆY?@ bsQ2gW_Ӛn%kp%ǴE7csB@ooԈ\'ѮzI;]IH9RWyRi* >d?!O@Џy"Adc 2j9bQ a"Q| ܌Hy{qĸ$1J#MJDQqx8|-$IVb)>-㜄B2#Gܴ<87Wpqê@-.SRZY h+o鎥h)W_( IaXn >+\uKScQe 8qJJb+b2hcj~Χ#paD`_K(2Ͽҽ>x`+z)?R(fIkq޺>Dym]),2 em5, Sg{!m@1Ջ}^30)VVpPAB]"{w:!,R::{C$ҼI2ZJd~1kj_qwa0uLX5'fE#c!%̙Jl!9|,m=M- `LYYZh:!ه dV,0aT08OeeN? QРJ: ]b XgWKCѨt܍LM.&KjlfWA'Ľe HTIL 5m >9Bn >g\ `qyu t^YFZx~bVQQXW%yº:U->{0?|4܍!bH|2+ȭf"$O$6}< RHZ23s.˟Ԡ))rb7)g T.GjS1Aqa> `UU:rGWDH"lBǢ_53c -< A x>ߞ/οgd"EMHpݜeYĪ`l#1׎-c  ¦ʮZ~CDrbqHLI虾%ɅM6+, >IH,g-'5фXqu[tԲU3Rm=q&d$Rx}uػR?{{be.݆G3zI9|x0 Nb uQPIq7`.Ƨ !G4ebJPb, ze*E=ߑKp[kӑ iOfF`F4-1H|G#==}@F6o{\ 4A}a-y2@T$xp9Lq5([F$H=DFX-V )layfh&!aFKmUrF0!rTxݱhHt%q^ R.`*0P 'X/b 'hly9 .>z|p$/s=~<)O|y,e0E쬡2M= }xQ)0#%IWhXGɀd`P#=1*"8%J`_5B)I]yZr+O}P\E} eF UFr6@}uE}ut# A/֧ċlLNTe.г'ĐFt`Df쌪|[翣ӿ ΖWj2R ZR=ӸC1dD`TK &U=X qB>T| {jdϑ[lIAH8 >~i>N UaCR8ܮtsE"&z0Rʼ' 너5$M~cLN)$2jtT(/q7%V DKU֔4mCj!a4MS4_/QG䋢ێ±!(2n*bNTMEe=SȂzie>R4}Xɣ+TB-f%MScd0&\2!Fb?ABMu4Re*يʜ jI6e$QOzЪ0 OM#`lwpqr׆LD8fd|23mn`h@t}!)bi 9ѡTb/1C%-y03ݞ3(WEgP9m5C\- fPo5'ƈH9T֍ BU MPl;r]Io9[>I[ʚ2vD ]UH=D"ʒO@qu!*b$"7P/s7u2,,Q82M*R^0G12rgļ#-Zn.9Dl>ģq(RGj-!9GǑ,'iL4 A4'"V pvI_-LøgO,k^/7H"aC/QЪdE[*Yљ}tTH,>5?JDF;Vg휍#+o4& sq]yʩ!{ÀAcۖ,)px=@2AתJ*tP!Re\ bO?nʈ9q$TJ6c*\( 4emkudJ)`O" ۻ;> %+>T&RBάZ0#v\{ХM`ʚDZ<\9R%eiXniu>MqoQZ4d@ Q`dh.Y%mؖn-6C 'JZ bi#ՂV+VFpRY_ه71 ̰g`)dj8r,Q#7<ʪEECM“x\o~ǟE&&;J4FI̼$CttǨ㊍@[9% }Ov'2gZN0S}ʸ&WH]ÿcfaefW{>^*3> ?fKΰ3S4.]p-Fx2|lbD^-Nfѷ{qL=r6&3`s./1BPbIJԼ8YX=zrغm j>EV=jgqIК"c9W>;x@G wTiB*gk* 'OB)xF"镣h|K1TuAq! jd\]:%%rG@TݧLPU@IAS疥>a+_po ڕn`B`HE#9d,ʺhdYFds|-H5 , -2z㖔H2TBK5'mǮP"!%QQ2*Sy}Τ)0h =->8ǘ{288m (~#dZu5D߱7 DWƒeĔӁC:0FWFSr=1=~[wtO~O?xFj~5'[m5#Ǝiv_}wq xq~AƳàY+F\>Əq+9@X֢BHU2)K-_1yP"d֞cc E/חݎ kn*#J%>MyF1ho~:?C~;ķ!v;?wdӱop=D_a.ɯ2 Y#,u*F6OiDEpH{.On{nQRaW5iDI#F708OmaUq }w w>`Q+N*Ek 5u;!o3iO (TLBsn^SJKx~H3/`Ϲp)%釄BΙi']B])l?Cv ͗ ~R;+Vg2nOFbƅHKM1P[!S!g FTQe(S(ẃ?@UYfk}Ï E1Ě|b!zS=jvF.E4'LI8UqĐӌ!s@;EC՟`KYMchhO#\Bے&5}x _9P`4_ bG-UJ$ vxՒ$KUtv@Y\ꖌDZLQ7ɱ<\sa8lQl\>2̬G킋x%V 27Tzɪ:\f݆19 Iaw;"K7-%%jMgf(eG#MBLb(/Do_%BRB ŻW9gFhN aɊzёsĽCOMsc0xEr4?kKTOrxsYDXȣmK."k2JI2s~mVpɱ\/R䜓ӎ;ݖ *YX'Pe;g *25VTUW=)6!A/#OG]"TV36j@PbSrDtT30l(!9N?a 9&LyCB3ruީ(63.}_Ė9"\4h)8ā"1c#33ώƞCBOD-UaV~]1]Sc%5G#M&w[,h>jFG'Yc~:1fCQcKcYЅnI? ;:eީ@IlߐBbЇ6%OŖOEq$!-DȄ)&5ߎ܇V&\K&xUq=(*8m^j쏿P]Is"̌Rf/I4#Ҙ3_W5qOǞQ%+n4{]L܎l@Dgǭ9cVeAszԦ{AP#U]X.HI܁SU_U\QZ!$o`2̽~ibg1Ĵ&C@VϏB>'fOLFYq[*LW*)k\a᯹[We c:oV$-abH"]9,ׯ䢚UZcCˮ/FYu??ˍB|nhCBPMHq7cn䱑#apjsK_s#BhYrk[%-f㖽'ʅr/4(0VtyE}KL،7-4q7j@H!eaf쀭;[`h5}s#_EEoq#w)4nx~#b8px#Z(vq˽^=9B, Cva#!!Ⲧ-1gڴD1 iĉc8~h437Z ( ehch,K#rPY%MbHYЌ H6-c$F !h4tU8rz̪&HbzQ^׏{{Xe?8F?2āo_|1ŸNJ2F$NdJVhrk+T_A-<كꏭ  %=ϓM*( +RPܽ,NSS2ȶ}t,'zRcŷ6u1ɒ2Ve}-S"ef:-fVO<[Fn-=* Jz4E PoN 5ZH]5rN|QE5<DZHC@i5#V/9;;e {X3%ErZo/c/Hdn*IZhSCw#!&*=@ Kʎ=O[Nsz.m{]I: f<9b"!$v6\"&-!%4=Nb $_# %K@4k-Gژ=Yca"cܧq*!P!)0FnEEvrwc=9œ 18}o,vb[6DĈdU j%ȹA[zνgdp(q`hʑu܍ Βf-H^qda7UIB,鹪8i'S>:W <.IVp3f ILtѨ ,dC}3~+KdZ*>)-jysqG5QDY)8oWbᨮ9h+,^Nl͈|o9i-_WO1ڠ+~LcJńK#.,~DV5U\kM=9g*]9 c2L_?/ ~.r'.JПb}oW0p}`%eNk$眒k5F%mp $p yE-5Eã?:qqoc2=DgSyT Ӧ{j$YI݊7kBș~ 6ۗmiCwȁ%+6 PZѩ%5R Ïʜw ?G_]_#ZklU3"kAm2.yCmYSD""bTZ3TUzHXJ1PqtWy)FQ9B Nda_zYM='+I5HdI/@]T߰_@Ŋ8E19 2vB`a$3)bS" *E.J}bxywa$r 4"v~MT$Ѫb-c*Fcfr~1UzϢ]n$GqvbuW1Q|Kr}5)LhanTTuk*U)*c@B%4 BҵGT)܇2wT)@@g^` )SI/߲Gl#/P" >ՎO(dhł/,*VЯΘZ؄5jۑs,>z|G<B!59oON2^9IxiFp=%z_هđRwNJ+QЪF칞6ӏCSˇ;5{*!Ia }{H<@JbI$W[[}-V@`sM#3Qx =}|pZ c:6SoXc*^m"qK25C Àb;~ Zzsg/IA'Mo K]!5b6sQH~(Nk1 F_;&7zJTB&YK 4b%="98)׋'a6+]SR[ߣ-bEKE@Oi>1|NFc:COV?i >='*aOEI.:wK/CNq/DŻKKE[ZݱqJ~~//ʟ~p\gK m%R*!'I? aG\R;^o_q>'<04DhiyN۰.Y[z7P4Zce!Nᥐ*\/F !Gے½qSI?J**Ӏyvj3]B rSV Z2%ӜR. A(*^wI)ْ5D Fq <}c)rgcqqd)WԪb;%P fO7)%Md$⥓S&DsɡH]$Th֚rEuR|0%46)LHHv S0NW:g_85,%JSw [-"l2#LISNر{(ru!L"FG-L89*1Q1lvĻϱ\Сň P_iDN/5Lwa96X#zI}/ -LYFdKHr=HNE}|%GZ˯_P_@ =rBO\'=x`/neXV $(ܿgrnOʵ~cH Nj҄jOVG!Y#O4TgGO!1 ɽso{BNL#<&yH1{x5B`6O~!g ;>7<Oqg/_|r#|kNyX`RQD8r;^ /&U|65mԬÚD랝HdH;bNI#,\Y-Dh49ic,!:RLHfUTV2M7ɏDU8WRi5xc縊_!,)5RJR Ck?T1Fa!&"IBv7B A4β90N7NO #U)Nr />{%@$b uͮMXV%,l7+ G93+3Y}2!QU+^VHnn!~7]NG@*\DNUgi{P?S?$xC&`j0ސ[&?f7Hjh)_X S 3ڇ'ru_P5劮gl;R <8?HӶ|ZΰƲoʀ IeV2)o}O?tP%<,B92SUgmbG0kY.OǦ M]QqJ,VZvq'4d20Fa%٭;mZjGՄ[v[̑ )i6Lɰ4)ЈiUCOx٧Lw x]ONr.~9 bC_bv)S Z VVjYD9>2g{ y S|LWUEਟtᏎ.ceU<|G4|Gc^9K!s%gaKPLa$#{i۲bG (MۼhȻp1 5W,%{ityέ; u\Nv)zUe2.N\لlҪc6n;{FvŃ8+VV∏qMkϐ3x%(gDP=vfRgCd!eb+|o--J^xn^--K|{BrXPf5Rm6{č+S}L,ͷ*%"˳z} D|>lb̈́\n. s;*>NYBAүj=ɗZQ&x`%pF+CԙGhL~/ω1{?V|5n!ăT;}bBfv݉ IDATwzj^e1-aBC, ZB1!N ;n'B%,'Mj7H|: LVԦvz'бD $[6''' 302y q@w%r| `4-9b+1 "%,0~ &jcKC#W0#$[!U ɑ) JH]/ %%1C A+WXjB"@j@HrȤiښK-jb{=q 3C~>fxS,LbŢ Mݠ`=[P˺$;*A4JZR x) 0,,rC&޶,rYb~CW`N(b e -网x]!Yk\\ aGZbYhfKmE醬4T)vw1k8jYaDaiϫA+hL|-UJYznyvI;^77d)H.'rA-SN;G{Ұ$*T-F86ld(2@CE͇},'2΃YCPp8G-~|3+O;#7 g/0]7 #dSY/p0ޭIO);+VXv,-!D]nI=ÝW9ox?~XGϨobw{#63@g5!%ӈؒ ~^6)ߔ`".-41]zeYu]K 0 9F4)&RJ,eC 8OXG7%nn8;=a9sBf]B@dI5K͝+49E!̇0/XS"~h `:jz(,hxېD"ZỸBm "ё),x%[Er2oPea+EtB8{B}S-P*RfB46^aOf< e3x=[__=k5SadXu-RjB D%IÔe]G8{<Layڮh<7Tˮ'E F>EQ,1D-LȔ!E\bl`5QZ.@]yFˇPXhz}VR N*YPחnn ɡ? H塕}b !߹$vy $B1^m8hJ{vuAWj\O(S٦ccX 59zqFnxW`e(9roQ"I!"&|t$2GvҬnCPH7 e=PE=1nD5r(=ÉVwyv ?N!;Se2kArv&yPY>pt,^蚭۲2 Go NUBaLg', g"[(y9,)ÍLɳ4c+!9q=`Y1ā)d-+{T 3K6su&#kj.Fyw8KD2dl,<U#6_oAs^w[k*U?44%toIe_.}WI!UҮ^&Kj8ϱʾrd !Ub2b\vW2J(fG̉u1 1Mʢs<H*n**gR =&COzշ~H^|_vq{H+f6v-lT|\- sP6wY=0wy*G%˂O@ EFRҜ9C q] d|ΘOP/Ļց-Bas 3e&J^T&9>^v<;'AW53.5 CtלyN =!yԺF iy;8SBIQYn!N9cEo|Q<'&tgBRA^Q1S ta`7LXUdw3id3gP, {6\>& -EJ;'߻DXY2$ozBOwZ͒`F1UJGN8TO;z_!֎8DI1O gQ;L3z))`,PB[)hUSf-AP#B~~c%g>FA9!{YJ hB龐3{UE? 999V5JH꺀\eKb+[{$*d|văoYu1BBnLMe=h!^SdH/'lL*mJl( ͔=S\caD5/ q}54 ^h 'Kb qyf?iTaa4j9~Rƿ>{S S@GY#@ na}ώVvsEuKrHL d֥_F÷3j+l=a*!]BձТBjJrf_w(k`[p,i)sTֲXt,ڊi3Mc HFIzCe)^kH1"XSSצP|qS.د65_WhZi‡H]+0 svv/J`(!Ir/RCDJA' +|ܺ_T$eےS!%*@YIFmg3b!Q\o%&_e@JcTsR[연trD0TfFG 2;爍nѲE+DU*m,_T ykLh- K?Db";ngٔ沪8:Z!E\=eq||bѐ_g PVڲ}%%P*aP_WD Y[uԕZsMv;R LHUY-+tdĐZN#bn# MjSν%Y΀(Mn!ݰr#P{%/FU|dV9Pdq.LBMc,]UbFzGp5n.s)qd/עɑn!h>[sasrxƷދ3P^x'&̡*q)vCQxKH؇qKĥ'<>__nrw^fvXgbSI~;yhi0¢fg+4H9S7u[9H$13Eb0T#E?3#Yd2nٺ;L(?Jb `B~0kCjR Ȟ`aifuf2p^_PmfsH<̡>aʌ9s JKB (-=~tN+JB C>lBq٧qy}1a,TE!:[U l1Rw ly{C#bLst-Pw5liM[٧ܧ@&4+1M(-9:(-/Ԧ01|n )$l "FXchlMg[(a]9gnk6+ K$$ObJUhY)t ozn>s=R)G+_D?]7j))b{q9P>;w$$kw.,Bp"4P]+~qrs -"JD|6$=1l7cP.r$#Eg$1 $=.K$$`4$ }N>trdo89ҙ='͞ʼ> pPh+SZsxf_[d {Ay@|J #%V73XF &2N[3{>Fb\T3HH\ƨPICxar =.xb Xc.af]w473Hg٠#ryp0^+ŸT-I0b 1_Q TvQ@*cbG4fP9[*7!Dib{?;2gcc,R*$t]CUUmnAӔ5jF(uԺ9p}sr֊3J?Llo]okx( =KKǫ^a6B{5QS%2/A-!*rIBf=:ِ jf!3Z b> lLG6^9Ը48J,q(AE@UJz10Se8^mzޑmMjOٟ~~Y1ttrnrw{&֚z)`Pۻܹ0x1ƍ(Iڑw3ĒH $2crqi m^^`Ēp{W=r>-R#XΈmC0 Lt fˁ L2ZpZ? kİO>d0tnŊz/O>}jܞ渖jIو2u0LLa1cg -hJF <蚑$W$ 2BeBrHahiCk&vE'bH-mRRW_~كU˿S12) `?s<>$ZIfS5 8RU%ӹ2ZB,s2K\JGkIm( lӷ7#1YdU89I#ZZ|WxsFT%Ƥ r)jBUn믑c|B^|D~ +81l7ch-_e ysıc1F#Di^3 RJ\q9n( yQm"".uM]Yb1c|BLh䄳ӓ; )YY}x'E|'9{ %4_@>4 K:qBT3ZcM ~"Ls\2aAWK%fH@+\͒ҩRB2mt3^e5 "݊%_c܎v>>#4GMCء&@[5̞ۇ~>vJplOW ]ۗk1gSE _ 7|L>'}9bHca!6#6ގ qJz[ 3{H!-S*RD4 !f, K;τg6pQS;ÜXrtPDN ۈ &\r u`N׬ M0\} !y8iY*۲^>w^p;]֢Xc+M2suh YˊZ*Z]4}Ll\Ղ#+x܆];{{Tqd{ΪsV;>Ϭ^"~o_DH^B?|1hInNhQE_(,̊[wKe75CҩCj`nI9q\ @)qZihYo rDR|\#JUezb?[H9pdY#8;8}(6nC;49 -9@J og%ĪJ0C^]sR+IIo~+\܄=C(<SOsfBfY pWb`G[t6qj7L FE6E =s,9YbKe.ДilI5&.I( bʜ]Dk~x#Ukr0sxї_l*w7(g^=Z (Y<Ō|i.:z3 5^!^Z*&6SIT+ۯL/`'4})iƅJw}bz\GˌU*c6# |٧R56H$KBLT ilv{Ψ+AJ5~OL 1f|(̥")ƹ@Ω9`H|PCrwT~G_B}LRc!Ҝ a*JDXy>l&r*7_ʧ(SXQY @P趀J@bFs9gƙg93ݺȶ_X;u]Z.iێӳSVM4P<~>/.OYX.RS)HXPw-G oUV$}-p0,y3F g" 2}3Hi"RLAzDeELq%'&gg'o֘ggi@6k| ]7-?9YLƧDPu>)EJ fɟf^:E ƇIIΖ(kxDΤ0l헷|)w݂)rL Tp@4cOQXH+k[A2E{SJss8g!3BGؓf#Um_3;n5Ow\1qlM1nfe&/_8@A *$h>xa*)**nY؜Pr9ݟeWe@щcYB]d҄Ib WFSKP+42SΙ`Ţ-Ro@hpkl(fJzDN谮G;ɓf?m ]xSaQ21i,@݂e댪zѐV'ۖ1yƙ)HM3Ý>ky{ݍ/>-3wSj,䤒V T1Iip~zr* 8e*u`5ޑ%>Gȁߓ=Ra G:mWD1ef7(1Xp4(Qe 018?}'?*ob[vaOJ#VUm'Q h׼}[ZaHD'@]OܬVGM_h(Eș}ħi2vk a[*$to9'jFyf9@@wOۯA*GC2#(ht߳&=dsF3O1edej&[M -W - F$hAMQ"YS >άű1GFVon^~@fJqsɔ.,K$戋#Vvo*O[^e =P U^Y.lI*(QJaS-vEN'ZJ "-JY̴UclԳ7=Fj>}|O}m]g&O BKVSS/e#ʿH7w\/^k^JL!S:$WZRam #%:\E%we&I3ҲPo.nÓKٱ|_oiUQHx IDAT;ݎ¿P <'g.K}+K3O -fJ#HR1ꊂFHи/5c2Q}>2 y_#GLq/9k?)(R\8%[E¨z̊fܙV{Kj8>Z175Ȇ+C~K\%Vu4e&s5rp%,BHea#}_`l,!̥ ~iDv7rv%3vU U.4 9GJ%!Ѝ0?[}ĬdN_ kR3:M/}ʺMc@T)#Պ)4G>gL@34HUB O x?%F./x 7x7BR)t]rûW+3`[CohҔ-'<ŀhI1} aO*s1BK6ABw6[}3;YOIP+>^|5Ve.:WmO}9³Aue{Y`^Y"E'GyCɄٿAbU@Zmw^}ĜX+| m%gTunZc&㶞7=Coǂ\> |sԞV* <*WvYL Vi.\V+Ѳk\[Ѥҳ 4Tt{;4%O'|.4$&Uƕ T{;Pё?Ev# Kx@2+:Ѫ]sW_NV.8+L# [zPJ"H#ܒjPXY, Cji6l~ϸXq0+cI773X:P9pιS>cuý_cE)k#pV6aρ}ܾB2S+戜ӧ77$˘xq&Drka9 C^/HKBѾ|cNwU;e(S-(VD&ꁛ6#̷GSyfC*$L5RWoA譕Ͻ8sy7\)! \XK$5=*HJH"V3BPHMUFj< K'j%3-JCٺ]9ч!>qcdD(\eƕ ~SYL|Gy*1ǑnUJ!ĺoAʃSAc(Τ!zFYg/SFZI@Wӿ_1Sc3U']_)d~RY230UreG#JuﹼZn3%QCc.}J$Zk"sD(A -ih-2T@<H9&"O]nkY1CaG'7t];[9=jBKҚs"$1&Sm R(%P$cLs*_KZYH=N SgZER%%U^S._o~a'J - Kr EM}3ŭ?LLN-X/؜Hc ed%Z3Wwye܏<+*Y=3S _syȉv?;kYF̢O6a! ;S\_,۰R \PawoΘ*{U_Q 4R_Hen|)ӟ!~u+' bܻ9OXA.2T{_Sb9SZ6k.v|G<{55??z_/gq;=(p .{{)A Wv~RBE>f!G1f򴦔\%i >1re@(A5G*3/Ϟ v M}~ah Yb\pIHu}]K4,\={jߟqifxa)1z>G-#ѻ()D y}_zs)$M4EC,;.*41^+B==FKZŨt9m4zExPcY{;\|_ݏ@mW= s&˂Պ9 ւ x;?9{yhr8S{]a_W?`8 b[Jy~淦WbΐyaeAfZlb <[192Klػ̍ad3l(N5!F1;[Wցl<?%C,-d\s3VoԬ3JS29,F,kIa{,!mF2_ul,uIPa`Z+>"(bGBbR`e4?w8O>g`io>d_}Ͽ] hZVw~S֫%vC)9 W1 SXEJ -&6HȹJkgLVVe[)e EMsh)(IN5")#! B҉]2$Enΰփj=cjX{nK)z'k ty/oC)pyW\KNRfg/]#B ?|Iw9>Zu""mB~;r \XlK3[ʿEddX_UzTn0"!@~5Yg\TO̾w(%>~%K}3W]=EP}¿܄+vѣ S`-0RbmkEPdO=euZYS,DFbwOqӧQIsvr?`g4ٚd>VF) Q=.q>2@UUjU%TLEַL7 WHh!iU˘Ɨ߰[ ^#&PKxMk%13c ՞$-@gN !$8boEGK̻%]`OdWp9WQϑu$۷pkC1GTh;X,g #@Ir#3] to< 爯wz0߂2[h9A )AhێR,φk2" 2#Jaϵ}74Ȃ' HKwBr^s^#vKvk-ws;:9NoE*YcT$UHɳq)}3V:; Q'\rP0 ƨ#>x?ӿ gV@mx&%Tofbxz6#/Te yst T .7h_?]0ƃT>_a "g5֭cr-Tv>At ݑ^N>/#4QEٜo^ιRZ*Z=Gg#۰qf~U6=KB1Ҡц4Frz 3ɑkİaȲ@^?C+l!ʦtP3戬D'$qaG_.GD;aDI.W!S[odp151Os=ʟJ([ @oSZ*%g[RIlX'5$'@H#== ޙ!m=_;VNغkBz{_ps3{nժ|_mR)GVp#nc%1sKɊ#uNR1.ji)4.rfl. ;` {^_ )6pwx52s}/>g{.ZjZYÑJyc¹1n_o7tmM%Sz| {R_sEM.W*( &Wc_pp~zICNRIC_1J߾]iC 7 9[pΎYU$ymӈ&].FE:=tvƉ:_z|tcv`fi.97iC)1āXtPX2+8R =`dݞ;{SMfX%kO+Ȱ`pDmjX0 (Lo.;37W9=e#jDdI|~R 6hdS% ?OɑqxZ) 㷭8$6{=ߎP qttTm:2y`!q:H8" TK 15{ ՒZW0p`JTD$BJA]P@j]aU q>D:c)aF(Jdyͪ]U!U}̑F,S"@PrA 1F+IOXS|!SBap{(d1j˪#w4W^N,>B7aOvv6O,Is|XGe>C*DG12GHhofS EӉ9+1*Y 9yP2ue-x~BDZ4&AIF.\D*j6_IMHLՈ VA"=էM}Kz2I 9#rB_>C<90 a&!CMN?)M3cqt EhVqf~[~F* w:>mcbh9bt~27(U}k"U*hva4/qZUG6h"6f5q?f(0/L#f)3peuR TNޙ9hMNI$ѷF)&_˃ +ŀ#AzR/Fm7ûD,Wh).nra5t1J7,~F񗈰4"P cگ@~3ʝ{#=xo0}f JKA!d@|g6*O|6MMH/n{y q[SSyΒMF[HLChbo/XXV(ܝr`On%Gݚu=b^YyB̞qIʠAIi$AV}39l|FH)QP,ۇH!Ѳ*J7xR@K Rͤ)NK&@2WLQx' G&bz']CDĊ&`T*Is*nǛ%P#h A*K8V `׆6Qil3 @W tA.g4V{H,XrSj䱞JљBwYo :\Q`J`.5ٜ~̳$ZT/i \#t e\ϸ!%zdיѢhn+T %%2",E)x 31ʔ ErR)vɨ"PJ,x4,0XRȘQV21Ǯ ȅp53l=|ⓟw~}s[vr#3#oI'gy8TBO I˔"PR^dp#s}ЍD7,OZ.b>szr']eJ 1T<BebJz1_yxc-~O!BJ۽9դ İg>bF *_RTe%F?=}j 7ϠξC^!tZ|HI(G,tD%#LjCBV(#Kq7`XKA+2mxN_opB'5=/(YJc+WP[JE"bXcS2{P(UW)Iʉ~h;9iMX2a jRjYׄ}{Ϯw}D_,]sDv)~^g)<R @J!6S0?A~ìq$Lim݀͏Z a2U|,Rίȴ+HYpr~G[OFt#۰@C3 M"q KiXf6ijNY1%}<vTܲKeo xWIчҐR!A13n*rA_c9fiWe!9`CuyfavwUh:='98F~En>hTCZjKM;:tGsR DH.zRӎ׈4 =2ET5KA&+QQ' 1ezŃM T;6t9N. \-Cy6"u8 k;²+[\éc\z^zOo[s`w1t"M%z ~1H=B/,4: R|DS4ivD Qn@$Y|OXnXb$MRK#DDTVhi3`$L$iJ !}8n !e~a~T@埜=b a[)BKUMLg.vGK}@.L0 TUjS <'%V?CĤL{p5 gOȞ>U9Ȑ e#Y5[HVvq9\KD!tU fI[Z݁Iق=sF0cˀbnfĜh%6n|sܮQVsd(-;7 , OS+ X)(Oc[Z@Ȓl(GLd#dV)GFǚv1 k)!ʸJkl*!\_O,S&ꩿC+[13\Zc#7ነ5!;8l.EdYuAiEwd9=>fU1 |HDUWT <ɵdnny)egBA)ïT, }1%Twu.P;L裡I.1` VTomܖo)+SzYih(jw3ImqWJd=sBG\eBm=PE lCa3k97չ+̂9{yyd8\cKQ=Q1œ!%^DVt]'LP`ύs<y2$\*2# 5ET(&IİL_@ zQ =%2J='<31i( hBPRD˄5w*^%pU&-<"C $ID,Pvp=4 >$nk|"9(MaKD)+`44XW_u1Ҥ+(AJZ"'NJ4x8O\~~E [v mcX,ܹ{|1<̓2aU+&PI9BD)Eq  \mł"#!P C-VBnBB9HÓQm4-E)T QB}+RLI߯,% Q^;ɐNit&w*/^?I{Hi7A svOJΰsv7۵ _RTE**HK̎AFZ(Brl>Sbв&]/Ͳ@!2#%"xiݎӸ#T6}" Ŭ0%®Aj "-Bkl)`m5P( 9 cph1#$L걮:l vtbA[Bx^[K7R?H ?!7i/sFL+^wN^^\ !\_]r(Wޣp]עXoz?uyK9j%l3F 5&A*#vjLD#^]fHUmdYM=i7-#$p13ӊ*6 AB JljC-("e 憭ﰭb416p3z#K2p'KΒ\>k|6ӢALpbI%#sY&t,˅ƿRkoy:,5cCN m+w_8ĭ@[UʔVERjO1.'*XejK.1(`D,e5V$3({H!Cf#s "hQK&7)D(KkZR4|\XmtEs립$Z%/؅Ǥ Ra {hig }jW$\=~AJ4;Ӈʎ0FZf/#[PW&dtagT pb|Ij(_׍Hwg#nmcc/43veYt]-:F74b CIKReU7RJ4 UR#7%XВ qy. 1y ߸Z0K1\@4hԷkH!0t%T'}W4ha )X m$}bM<#w5J|J,w|Cb}64>W zHxzF9SWKX---wڌi \FZ$L,! ϶[;Ng>Bei$+cc'^D$r6~*XQCPbĖ4͘RVYbVK ,Mkxѓ)6p;a)A]DK)ȋU՜ 1NCMSJcLR݂ս %"%\N 5]fk|)9S m[tH&JP#~up:U҃;n681+&!YBV?+@Bp@#d" Nd'n'k:ϰF.ֳ9Tu'g3.[7ZH6+..{./.1^,kVG,e%%0ruyYd{+:# -Z1$ 0E1O#aD%ÈC a -> 5֔r3咪fxFkEe-aN} #8 Y.Z!g\J@ŐKR k+ޯ{xh CT?/4;[0A)??H1Ƙ9\a1'|'ݒ4F+aam蟀n`&{,+(f0'` ]]ӭWc*cs-s&%ȸaBH)0 C%n@o9)eHY)-µ_*uL| L)f 9GS3KK Rg*հ^v9v39fLD#vXkYTUN #Jj$ 0{r q} ;%EEQE|pxfȈ.mn7Çųem4+C,?{/u=tV Q/#jQ,62 Q\J~y0RDdJbɔ(,H .*QiD In/()/AʔBHJ3`rISIKT)0ʼn]nSղCLw\1 !;Z"iup 2>%|(Ї=Vո8S;>[r=},)Β~C'cNxS?{#[ D!$` Nei!MՒ)ֶԺE&U~,C/2i~+Qn-fBH*]Qn&V!g1#GGw+\ŖJ-pN D[O+'|n%#L- faiRHQH,u@IhQ@TQ[ !zKy#VH+ 4ygrI^̑Z*f]w @)$ڪ|!lʚV.hT("W)s{WlԱZQjb*k #(s9XLw#uiuȥ]S%G D]ҫzIVHǬ0",+$[r?# C {w`+w,킓H]I12s1t>awv+BmXvW1nd 3o2ytn-EaslW<^!l w[nm[Ӷ%`Ro|K<"g{;s5?~=aPh_QmwTWW؋sn-K8>e:>aaC -X֑:r;#y3Cr] Й1r_(6u-)#1:<GH5\aFM%&WT) g+5H ̀ ^l,^"{I1uEVh./2!DTX)}>̟YbDٸ"~fӈx.7R)"}}ͯ0%H c~qbsA>@,@&Etty޸C-+6y;|wy>F`jIua}!,fue9,72BhAM89,Vڠ[xۖi RJlW5<{"L!rqqEж-NJ|=0঩ȣCΦPBJf&b ƲZvTVbƛHhYPSX?B l7W9:>fۿoo ~H_~|k]o9\]eZn#=p>[l,ڊudVȜ y۠T1'yYcr)U>GГ7p 2McF!H1>cBY]S2(ZPi x85z.0{h::A5&$]z(C BV-2 rGr*.g+^'G>dd.2Y rePlB}ˇ۲{aL]?tjYHB >`yO)9K1GUBZ(@Kr&/! MaQ7dOAQ@9[ٸC1Rd+)x&k'8!l++ tNLieGjVVG+_ .pqss` 8h{! [~4zt#5'z#߃RE^SرRDPyrD?j]'T!gxy}w1ۖ J7zTNh$ZTN8!@ƞea$Y*̰L'u4Y&dOiuE!SiEߨ-gb !Xbbv`GSS7b5f8NW؋fuI `hTs{`D &$觽0 IhxN>e> -vXBv?@6&0F{p_~QRҚBrlP*~?b (jKL?{)]W{%2 %7ȩi/p#9 * >=æP匝؞JrVss&g3Sp"rc,KgHu5J vS?͒*ZF| Afc&_6 #ytGY2/v9}?JBҙR1-N/8jV7uH{:ݒ<$P Z4(2pq& P J{(ĔC;;2)mLIsN4%5#wŲ[t(1CI92KHA! ky[) ru11LG>&L[Yw埼ǽh0thPQ#(,29"ylU{tбZCLcsw8H#+4%:dR٘ IDATj,}`$@^Z(^֎]RyR4i~* E.A hł2Z bdY!ӵѺ fRuib5 EZ'v$G#+M(eΦ̻e`rpQD ȳ.`u`"Fݣǘ3З%INǷNO6+c0BEMH<[>fqQJ0dF?\$aUW(^q{HrBGr|A$'P 6XvDx~EVΪ7'g7m'Tei֜oqr6E1Q CPRP 0 Bv(%>E/#mbwd]kX NJ;C ֒oS.~9β€]kLx?0M,EvlF[њZ2 j6ɚ9:Zq8]/+JD&iNdIl!%ލ9/_<2y罷KWCR4Gbۣ9UڱݞsvvN, 0 `#-}"Yt bDSj b@INMU:фI FG3B||xlָ87듘oikTF3~-LłZRJŶB|YaI2 Î0- x70>( Y|_0@IE\5Vj|O[^Sfh2 d=xdPQg\O"a63)VYkMWgsO} ׾tId= P$)&dX: l|iXu)Ha*%bR~e2Rh #ΕaHR"oBήeHFn-{PB1}D}cr7 a䳬E0x5R75hlNLǾw._(!bx0B,#;wɭ\Nh-a㥣^[݊]ѲcFq klsi_yUYJ,J)P( 8[y ;l1~:8XQYdi %`;^`TP8mIBbzhax㝛}^|FwWǜO>sH\ ;4Hzzc-^^ܥXla NcvGgj4}رqbv54-a<EA!69"-? MFnҀK 1PX]0 \E ,X 9|fUNwtC~ (G-%R7Uz1ِ@Ovƒmd&VÊJ+*UV@!8WT,Q$v^șWvq0Z&To#F+u[YGi#GJzaYPB閅]ַHbd;cS q$<TP@![TV1]k92z B Q@ir/:Cro&[_*SUTH3L(2bk\8n`]e|T\cZe/Ps?(~RkDH*] 'hxּA PXPHx\tϮEr,>>6J|HtD64+R&cqݡ@Tl\U!;D 7ҜqN@n;~ . o!8"F5 8, ;zꔘsα謤:@?&oɇjU6!s/fGQ7|_TA<8{i3C9BP5e$Exkm\2d5-Rdg` "pIFҼy(c٨^'Iu#{o cC߳8;50y#pJ9n9솁Y.׼|9)`瘦hMW#S!%vṄp{:$MQ[Ln$q"2HSQ.,vYe 18=1pf5;x1Nٲj]!bEjڽ(='Tt_,oŸ4eՌH|乸PizLSX/SqѢ(~4R薊=:(,?Ъ%5+[>X0'~,E h矋e/>`}va @˧i帺P6kjk'79AK͓C :e#LslHD{2Q&ڣmx$wQr >4DcOs JFdX0 &qOWذGm)4'!P@r4 |ےeG U[ce<-1!O!HǢYg#V5nӪ>̑>pL&g,ȱã} \'J!ϝpsajڗ S¨dbK9zzpd2 8BvlK[5bm9@@QܔR;?ƥһm$Z λg\ԏvёdR 11ę/s]RJ*])TO20Td!R*M@lLEv#n˯~sd OxUvJa)?׿.}2zn%>?%1"}< ,od |:,HjY+dYx#{?`#CBi \X c#ZZ;;CH8jٻ=YQ){FGu4Y.aC%raXuV2g|73P1#ٰv@fnXT ӁrI a]"ܶx$V,ivQV7Y}ܲc`^3CIʢS& JEW_x}ϓ]ba^3?3Wkkl]cb$9O #+,ASI>[t #9K$=>¦ioWn!;+ 䬙D3?9BsZ^~J\05n<҂g[W0RRYSD"BXrP)%yPh$]a1b*2!Г}&L=)%tM˲^%bml}dz%mZڊ(yCUTP?>99d 6+oƶh4 ]%6^S!U)lƇ{x.M o]6@@kE-A׸aU5VM] 'GEKviCN#BT4e.p(4k\I[œ'r7J/cldKSJhH\s,t@׉~ f *E\\\蘜 [SxXsF#BȴncMCrV8`pGܽ}aYI>A?s6{[8>}O.Ɖ=9[o_c$Ǥ%/οE{7?گs\g?E'[F#rDK|a], Zr{[rǾM&ZZꪀ0UU;|ݷY-!DUb"J0UJ !woBkMqxr~x"`dXmw{gGbH3 R<#=q' GF 5v䜈9ti2  N'VBHD P]{2%'_w $X܄UMzf? ~7ոsrJ}Fl]M|N`VSQv>%ITRhM) O#o o|N|w̱):ڐP pYyȥwpC;aVF=ab+4qN[!ZԲc2͉!H{ۿ?,-I>#yEqtXX1 #u]%ZV&D0ztt0ÀHrF^g&KR L^AI,UZB 01 Ɖ1˵;o \ at=-5>R>[@O)L|qEG|8邘"*`.:8(EW~nwN{3m1O~|{DG~˻ҙZ#n!+TG8ېvAw HD3)h+4ȆB|G@l11?C͜3;o4KNtz&ssg|f_fd3m~$RK%073xz]!|tE-VZȠhxx~Vr*2.=q{Pr~;I\28 |i6`ԖԬ(fA̒~`7޸O׾t'{SYR[YşPw"C (9 ՞V| }͎jwtjV,iDMj~Fr.d*]MmLs"LzC] q%;LLhi& ~9i̒%峳-?s\%!9JJj%xuq.RiK,lQ"Ӡ(9)|O\YYKPӔYњ9'b1Jc%VE֣m\pWA%|qm;W#0b$F>ax{p&c–k_2G_-ɶJg2ԕM L¶fӵ>EgSO1ԐVeK5H1R!(I&whKpYBWbE[< OA!!gU429/V2;D 9 F`UdӍo]NZ#< Z#,XJߗ̓9q7gJ %tW@[P^DLsM"a@>BZԁ9 :LH+ڳw;d#ap1IrZZa +, QUqvԪ+*Ud.mwWF`Xv\JjpJg+ZS,8,'8?_]q{GO3(@-*,qqJHja%&%e3V,;bP+LqnbOO.Q0;􎦶tFV^%\s`Ohڦa_{( 8T$0bے~ 75jDKV*q[-џ&B_^8GL/f7M3|Wf(*i Y2(ꊬ I[t1-kv `ńuyF >I!kw麉&TٯѠfʆ.H}x !7[b(|XChu딻wu>Ț- o<*cJ#Uݱ zR|FL%`Gj-bT$t#?#l0 Pg"9n!bm~o<9Y/OrQ@J2s[{_%}!?7Oqy^?P%K[~ /PR*n-,.aaF(~B 7]޾~mUWɷw!od'ɯ|o}[\_pS/:Umk"͙f`cDE&LC32#Q(EԪlR¹1V ̲FHOĵ7r( *d{L-@%f6.ɋrOP g{\|SM Vֈ"P]~'{TTB&B\-s~;Ԧ)cd*&g\e菖ն$~pڢ>mb`nևV_%hʐmGJqaO̚2>eTJ4)]Fz[W3UUaGw' uuBШDϝiN,ǎr$|W ElnR] &-#>! T1VɟB"ZswL bŕs|iHrd'B䌎ʍt13TҴsDG䲇(>In"`*4$1ePnYWQ& hr=1NnQ1֫F!S'֯P =;b:g76ZC8p玙3Ŗ T*wH_~K1G+! [&&=&xRbQe{&f"R-bZ;]uW(iX#G)${cwlD0I*U̓Lm[eTyυB \7V"}sccQ̟^HS* qX̕>@\gBbD6-: ʧ1 2 5K=}Փ5e?PG;KYtƼ|JJ AjL)1W9H (f_ZN I=cnJ)(dK~Ñ"MI. ( IDAT3L sO_nS7r9yDb?KG0:Sd˞ݸe=e#O*6(5h SBkޛXv}3M1ed&$dMl$H2llC؂mE { /{{j6<BCww5zpUw931gܘ$2`Ȍ/9}!$b($4!L~d‹BV?H wÚ:SXӈ}+FhYQ(Q5_xR0 tmX99]17 iH` FNkJq-bG{~g!w))/>;ڒ8>}! 17F۫K._<`7ޚ"=~c^|A`;'|~'F}].HVz*g3t)0 |p\ oo;st]Q&so&{O 7 mnrۅ-Co)$yT?&j& Nd.UHX-TPE&s#BݰXyeÈ:8R@=ʻ t8xHUb45ZI HG8HH8!KУg␙ z`lJjF$Y{,(?M J_"4njad67_ aWG4H l nMHj,uy,Sdp~K*`p18@H}/K @UI!4ϡ@+?rZDR9ZZ*S+-,ȂRfh|كѱ+{b`,Ҿj!(eQyPCA꛴|lJ^`×̍rb_81RdJ(;&%aJ9CJʔp" Mn $M9i:jPUܼ "_RJ4RhNyihI!|W~o$Pُ20l [eI1Szʔd7wؒSz#)wPJP1o6>&v =ZΓ嫅O!\]G\43gHYޡ(ɪЉc5O_㵣<o Ngyӌ .xSwHC+Tਨ0bL4a%Ҵ(boηQRA"{̀V 2ldfC7)f,TY23ʳmc),R~E 1( e1Kc^ KX*PP/8f'r%CJ&ibH =[Yv=˲JQ3.TxlP `eEJm Du70117ͳw;>W1FW,;D ҳKbQ!QzcbBeIw5AVG&JOJ N"}7+$wZTPI !V' %3AQkf4}nqkEψ$d3LMEи墽`j%Ϻ=W!UyWr2̍k4Ժ41 'cB(LO!$XUNhG 谲@ O&/)f8>v;@DY) ܘKw2"E.s+DEH>(!(BĻn7*"}fJiS-#!Z4Gȫ?096fKLx12%gtCNs]@^G&H$ #F6Gv7!膞( TˢKQsׂa?#N"F6ԬQ/>!f )(4N"QW?&ĈAO#\'~߲}fGAJs/x{ Iwl!AڶeZň 3ך,9XTe;k^9.0FHcCNHn!kL.I{PY$BIɠE&'$ vk/b${X-ѳR2߳)7b"qcsrR=*~R (uv%a'!j38%|wQ"qx12&׿}uJ+R+M#]K; 3E QCO_5JD$)6q|gsg/=o|OTFT[B nϺ=a\pRcE &ynUĨuRVx؉Hğ%ϣDK:9;5+RD+F9PRLj$cC% <ʏGQa&Jxǐ4Qix4AJ48 "2%kӞ@80&Z->y YpTP %iGN'[%}.ݎ^f$mor!̠J7a_5nNe4^=#O)c&rAz-+ (da*,˷Hg?",~@&yy }q1Y2?39: k9,n{ fJՙjBɌqOMuwdFZZR3Ǥh@1*]33s8)Rgُ=7~UόR"gJR<JaLgvDL T?nty ::઎Xpt^_-l+7VvG o=m Tޯ().X cNp)y2|;ԓ%nTb3ZlBbN/OW_8*X!hE.}g|7g;f&) A(Zx@?7Y֒H%sʩ1{ea#VӤ2ޱ_7wkڸgР %$x39 !ffTL viGe* R) cMLW,uADsƛԐ=0͆È@!9B9H!$4]12MNێ/cg;"R^IH82' >{ǴEQr:+xxTǘA P>Ds@۶h1R博1X"q)a~1!e\t!`tsҨ"i0]#MLb- EOݰVX !3FP)2Hs %S8j󹷦$ ijl) ݍnL(rӻo{#]op2"EE.A*Uv 鈳5 (K ( R"b<FBRM Q) uX#DԎkMZc/_PŸ0,WGǸ1|ꨴdƢєF eO·'K]O)CAAf0TRAY(xQizZ;k% 8Múwfr2IJ/YN e 'R|Bkd8:=7׏H)',K!di&栏dA!i#q5IzkbY#eK/vauH vtB:8f,Jw$-P d#+D89s0XLkY=^1_y9[Cu1v DΓp)ЀhD~E+-맬sP1O?3D99;7!>4_\=qjf -+*%3C6<}z9݆ˍc KN3BX, )&|u`dϖR-wɋ5}hCrO\_@x'$c]C2ԞCg01҅Dg`gG5B1{G۶\ל=}Ʈm8}|'1w|? 4|^B!HFd2H1QoPFmY#P>x{lQ =J#!I T'05IXb0&! t4ʵU$@9Y (0qRF_}`]Ze{ls,Jp%|*1SW]eD%9:kdqb QvNu,)dYBa9lfFdJ)\EM/ W" EU@4I3)9$1$trHp d " ( i2׈<$fd2,JLcOYT Q%8>vQǖ)3UQMlƘ"X3Ǝ$bՀ-r1 GH1?eT$e|Ī\]3$m7H?!m?B~7^ٹ-/4~7yfw22sԴj`3sXSX*@Qyg$jHB7t|_0F^1Ȑs7h)C8?"R(ziqѱcsb&\CiU]623_=B* t}IA3J;g*7yaǶ_yKF/@e9ӘE"HugJ)fa. (F#՗OXeSr LK-t?ԯ_Nl(3BݟC )п$K,B ir4$~D{O [)YEDq|q yBZ)p1 ԊZޟY!QLޓDJ*qabwyy={:5$kO0p0e[rEf>*^GbGYem8kPR27xڼg vQ{K YA2`/A)xk!ʔJQ3 =uqf3#:be qztb& z5{*X*JH>룘Y.FTD tx dt"a33pwi־`lrPnbnI T`0Y]gȔ ]u-eU㜃t͠{b+ӟБ%KlF% 'wqQ2G"['|Eн]Jqt-ō i뷹8OBKT5!Kf!MB:N^g+ IrC |@= 31Ǐ!TG+}6:K !RUM񽏜~"ټhKU*<)y7I)lv<},yOx $!)lAv"e"l7`Gڶ#&G1fb,!?'g{!o3{>{vZ$O |HC?9 88y7?(mK>{JU!86WigW󳏟2ij&2Y2'j6xӭUE,FP;v]FsÏc "D=`R3)1۷HzycHW(s`YԀ*3}.EL_#zS,O𢀐yXe/ IDAT^\ъ0mn^K$_R33'% .$A;_k nHk|3PJ8bcd6 B#H!dʩ O)O L0##nKy-9f$!&$QȆ>uE3RT?FJ =^ h_pZR"W6ؒY2e"PȡC7[lQWpͶ8bIt* Rb7 )W"R0bNhcQ,%N Re9Ǩdv-0Th€~xmP){Ǫ\o)=aMHסY,Ih$!*Ԍ$oJ)RC$EOBt7gS-. ::e=.:K. |tTfU-)l7&mugy=7_ٻ=KvlB@ -uRZQtC}H?SR*Dq?!Nl_#UMLʘ"6fbR 9/5FfB"&g)0>P[RM"7yYyQ"7\ػ-^Ãj$ز^@ wB4 \)K3k~ѻH$FdO> 9B2*_wV/y:JfƼ7 1.8>[n=?H2(by:cy:#%f';Hs,(6w/ !:#RJ]PJcǑuNH̵=?OykYMFT__ ~xCjhz';>X' \f2Zn^k7-,J!f*!S#TăNc$w ,B >{OJȾ;Z(Y*%.|J36 ~IzB1_8?AOM"V 9cfRI$&ػ RAH$w}z˃C=(#bþ7s5` ز;*,L:&M*tdORd3ب0⊳/yyQⷾ3 1:iI;r\89FF?uYCy? o9 ĈL=kq)t́ԓMd#42)b&@҈_M]>6̒E0K!z|IhBV5kD3+KN]\B VR UIIJ)smz޳r!UVYB:'!`Q,8,G3{Hql{ g, Gi r$n|% ZF6m X 5ٳۆH|Q 1"d 0Ɂ5iش;hS`SE E-Q$1]"yZI >l NE1Í#%uNPVb'YJK,3ReG5)$e 9wk+r(Q0_.˺" iۏRh4IL PS33L)hanE=4hn첄l頤bZ8e@5%?d]M!7p/!"ybQ-ǀ~LU|%?|O_<L߶,V+wp)໿6:" }M))MS//`Mqk)# &nkVǑZ,Kf{>g/F+׭0%o>yGOo{ÿ)g6P|o{'\,yf3Bpt|.lŧȏ~L1/p~@$:ًK_\[_l~\{we\Ł>DԺ$fPK,)bj]oZ~P#I6 HTYJXCJ}̦1T"J -96=9./)aJüfB:֤!d&-D" $Ⱦƹg1  Rt EcJUbf˂aϐ!]hhƆ0f - 4^!PZMEl^Il5\.yF%&"}j 3's8@2P,whN@/$Ut&w<= ~"IDTt.,، + jy]6 >?RmR7KXXK*N!knG0_Ի- C^Ӥ3SBF17 ,8bHrƵ" ;ZqIJB?c:*t~^\I8I3F* 5'*};7_fh9q蒐]#xsPX27h8p':Bݑ?;| m8=ˍ[*8m!Rk?k^n)،_NyOv07ajHpRPH ᶶH 4]CCBAw-d-i1dfnb#*h8e<. $p1^кD0zCU5h={J]rmR4.#вm.(85؀tJ$cDNz?){}ީCaq>[q,9Fh9!pη> !4 ǨIeD5/n6ٛK^o*S*W1cYˇ 7:眼~BA}|`)7VVۛ/<^'x) ;_Iߓ^aa~Sb:ZSEzz?Rxܝ(XUr`-ǶbK*gss 3FB ͓{QH wƽa@=LQ8R՚yU xDIYB`~LGE:0R}41&Ym=?5N`$ml=K5"E{wO";:?)+N bTtɳoGf@4!{+Rdp#{1#5#Wnd3(,1"lK̬rESQ8>{'[}2RNi. L R%םai+ڶ[S,|Favh9 g0d=2JX c)oeFGZb{qOc3đ$d[cdߓ\L=$uY6efnG,[>RRȾ@~< AJjt*}ٷPh%UiH1Џ2|$5#}#jEט%jKÚ4ldYQ0K-^PApSǯӭq#@WT!yoq-V~v)jb@v`1|A=AZDf8pvԞjJ(H}w%+yv5[s|~ΣJ]`W/E>,wb%&է4NσeN%FThoE!|ALэy!xC7Igv \; F*Ea4ZѹLJHƑ,x|Z&V^&byJ%\ ljl2H,*y(a.Oq>qC'^$JA]-@Maxcb`_s593{1xIfFӝMA2^jZkc6p.̐8fIι\Z1y]bZM=[wu=;;ϏGD(\n13Sb (q.[ǩ5@Y) MYZ}Jzx`Zo (qciN=#' FKբ(L(kD#% "IN9F'<ӗs~vAdn;f#OFJQXЁ,Ib"qb :72=;fO)e|drCVKuR DLq(p\3[UĔ֛ocٱl\]n2T&%< 5u]Tbt+Dt 25vƪNqArV\o|{׎m _`R6 l.9֒n? 0LŖ99|ɠPqR^͆5cqpҐ H]04$=cT53)!%) pj:B%WSʠWLYJZ9.BǐDMG x֤1R\};_bG/H շQoә_ҭh}ڻ|^eF M7y2tx9)Q7\ WӵH)[ ݞ[cef`> f,j辄y(ҖB+h*9F%nK>et-D?nL.v`jq&JCP77HaŧpuhF"'??>|0{_R3~ݡbjhJ+3vnk!zv];Oo>DoaEI)ɯ ot{ Rb4OOh\ %{Y hcRUh-J u?\%U{N{^cx`QٜϹe~D&bu{Vr$ 9K,3i׆7g|jx>x5<3$W] MonpaD@! :}9`h+ObGUD >btx^Ko M")L5ZaŌ]OdPdQ.vɓcՆf~Css,%c|M&7%dvn g'y-{޷ޗotxʣ϶1Inm7d?*rdz!`zi)3:nA(ኃ o$xngZb{RI0mBJ&cd%ab}nZRu;''̛ e$Zˉ$s(Ҵ4~og~$FDH )"f،xIƳ ?B^~#y|qA%NO ݞkX9z}dv\]G~WŌ(Y*ŭd\(cRT,҂NOb`ƜPPbo58 }xJI)ۻQU"RK!"2&HDՐ+Wy'!egA)gy){%.:fI#X뱉'Ρ1L8:a.=4PL(0$zPl55ZHf1ȗl=692s $ Y1k2VǨ fCkɋ߅ T< 9!0dBG}6eQ6/V Ŋ0OG8Us؇kbL̃ E H9 `70мBh1]. fl1#kS/ }d`SZYJ4:?3!FF) G\ ޤ!· 14ן0%BV^/  >AUqOֺdfZ6v\x}33ϬCz|`h8%ZcLٓ3)jqb6?[Urk֐\$\5ٗy:>8bwXG|>8I-MZcͰ孪H2|-sR33-)%ءSEwA||\5Q*2}{YJG@ޫCV~SRpb&:&p8mMH\SfJz?܆SX?H;uSH!ԔսvcXܙVJ},y0ᓣq 1be~h?Eb@N&:#8~z.FRfNM,uL#) fa!Z~w-&?/9MNQʚ Yݰ|n@sqyrO{vgmZ'M颜~`Bf 4E{{-E6(d|$Rl84 cHHd"N&/SWlPnNsDSYy#؜NK8$Ğ!dem?R.v<:垧rqG?%oCVKkj*b771=j'DzEkYϟ-W6rNLHL}mEKbdt,ٍ#VSR+ۓD66@S\ ԓt_iZ=(JbDM `wiǫ9yn$`gKtp#cDE,JbX) IDATןG)$^UF(ѱ|ߣ==:f8>a8\I<11pTޡ:FiskWq g%Wc)FZh8/' F QcBM0]OIPg?> bjW!Q>xȇG0@6Ԥ۲=$RLI>M#Q(*j9֡(D"2JST1dLG". I 2 388G+7d9l6c9_PFJVsbk趤d;L#.DFH23, 7nB)}ӓïkkǫiÒߟF ffu@[d!(4]߄}n}~0ٺe6Oc7?D<-ݟ"Uv'd4)yadvPӓa6|:S De~~F~2g#Ύ H~@i.F^_Q F!6gF` wh!zv,Ypw-n0S0h!z \KOR('pֱmH)7wMB@-'Ѥ+T1`/5f) *̭DIR#C@$"I1!uT3ayk[gSȲg?GU1bƞ&K HBS2x@GdH,/ JTF#Li͚~ˆ_V|$Bs5Þ1 .Fo۔wn:П얙ѝ"CҴC`s隔5мӾm(&&9d<§lc0s#4F#2ET"@w0-"8D (*\="zx3']f>UlKgdoym09A}Ty?j` }}ociv/acBrخyԷ'6 !szѓ{vV(<s:,MR /\OaQGM3JU#D><[ noT޳[0Ї1ZqArҊ|FT/"noAֵ]3If?VE?Dd AG|lZIEcꜜmGz1zK)+97o!HUd&GvU"{k[!RbB O TM~=m%S}`voq'c{C{ڃO_/˗}Jl{+%RB2('lZRQ`Ko*mB+u\l.q.`5%%d_5!=1Z_^!dOw<.K'!3iEJHSqP-s{ ;e`JLQ1A\f:^fDbUVDBRpDIm܌yb}HVfSBĄ*p!{%fUJ`@$k ѣD AAkIǗ !V?"VwHR_?c>7Z@%*`$br (}RPH\zER~ Y(Ɯ,<1%<$r @FoUP`R5h(DsJSd Y>j6IQTJ$aYJI# {Ȋe3,dB")0&ﱥrtt>nIDAD\";I( aĠ)'*e(R"EnhRDGD8?Џ>Y` zSC-,J(fEMK%5Mݕh S)-"%>YvNo|J#vyL13Z,W %=G&EBLx{8rV()b`/|I{||lF~bI*l.zb PUyb̒%;%rHYH*u#E0l]MZh$47zk_'?0J)y}0*Ax1(:uT{{Dy b(1faGSPٴXvpD 멊1Z1~{svBclC$Kr͆'G3eY~ csne\DӦ`}I%wr HGG *=NX~ƢQ(jR5vъ<Txj8Zy`GTVWPH~֒x|L)sxTe"f/iHP&ɫu.o=U]$?yAˀh #Qs:qz&F%۱Y{A7afg ")Q$IPvoSAi0(YpZS j%#~Y18s:'>ǒ &&Tj9**RBijc0{X@<_N%8n2$eYǀԒ:Ƴ,$ZIL;?.yV@3ØD9$vOS<ȽeOJW qD N׵}fiG7ѲqbLIх=Z4$q8Q BR{*G}̘Y&* IAk/4Es4In"ER u%}a R\O_}U) $.2x 9#傔-Y@`\);c&.i#Y҆]cņFLxxAZ=ccN}Hߡ 2L2$P FvggD[~ƭٻpGJRgclbq;rڞԙ &P8"Xe'LjiyF;IO N!&n 1S[&$~=PPAc0*3XQLlZX,5i)=S2KZ1R ߠa[~L \~.W3|**ʤPH iP8(u{rrMũp5E!)gUؠDi jQD˒B5AHMJ$HI5}'0>*|D)R@M<30IdSz@+P읠V!C" #x5"\"U Iܒer2Aq^R``u0qQ<#N*bQZQ%B{Y7a+zv`9ר`p[A{r%г;B lO0L,J[@<{_6:\0:[UaÈOT ~ ח=.IDv(r`"Jg0)|݊[O4!O$EQo62'Ĝ^RTkaLXDRyޛ}ĻGShB$!K8۠rF_7m‡*!E Rdr_ަ%ʒgypBh笃 #Uʃn΂?oޑAPIRhJ!A)!"ZKL l#{H8" Zj~ TjʹԦwѣG9jO>w}D !<Ϡk=]|⬧*+G&ʬ P̆᥍oLO>!dGB$Ch >¼Q9G !@iMB*RJ3%ҚDyQ0Zx=[HxРdJ ggkdt*fL$#\pSķw{llS6*!8ɖr잢Q)+]"o& H̊F tM_?"MtC;olSJDZ uUeqƞo}.|u Ov@m)ާz`'%D)Ѣ(@ A[Mk) 3P=+=uOH4ZE@=QCE{gIU/ZX dAYᥡ#>E(R }G=>\w?K =! dزw;B *g!omo\H͢VSՊ ($! o9%KDfp-HIKOH|e.U"8*O(UQy )s^˲8`U11NA};Ia8IDC#(hFHezJ&Sٻk 0&J* KLy#_A)^/ϏP upٞeYA2K.6lkڪFIzvr|!,QF1k[ad8:ʪ")kF 8U11knX%s\W0RHCy:1)ǿ֐W1-T*!8}O"bĆ)"$GTtgp=6J~Sw_w3pb\R<g;ϮwBӎ#z۵ҒZI(i 4i$%<>zLqbP(UBЇ_X.&|R)$J ,LYv'"#7)rYR #ž "a!M Ū](M%x<]\OK1$W;|"!f bޢD[Ju==1A#cUOu~Ģ$,9]-^j< d_+o8{\tnqA7df R"CѺV* , >C%EREwqϱt\&dT0OH~)nWbcfNJ!zISAQ"٧v)<@FZUc%9(I$E,=Ị' UI~#:݀q4fD!vPDuUUA%NWXUA{!nj<^O¥sJ (dK{g5JJU\KRJeaba;?VFjV7;@}jSq=lŜkD}H3d?Ӵt吋9D,VWu7E>2c0$^DA%%'*21n˃_{~|_^P$k iEgu-w{֛KNOPIq` 5ybZ*\Ǯcf,Zq6 -b)2kP~G_J+0whaH\lUQ5FFwl▼\pmfFtIA,Coe &-JeHJ-+MH!BP));?E qsIJZbT*Q LݚO>-󇼽 w#w ͢cF8"O~; v+Z#0 l7(ƶYVY8(-Ue8@! })G)[=5s " z@vGДuM45cTO'13=Ibfɪ U! GI(f9Yp{x+H+]/׍T3T[dT{*u# UTQR%IS\^`/0ZW+\VLJtm !w{TԺ< ñɕ28&n.3Ά36n=;b3!jR #tyY4[+A^z{n Sxw IDAT //I-`V:f;rG}p a }x Ii0 }SZF)Gh4&Եgt#UP{E.&Xu ¬Y)JuKwƦ& dM̷(s=C @9oa`Zg:BZfesow[ٗX{m)m፯}TtI- Eİڱ"$, Z瀍DL5##w[.5WB"?h$H{nk(oJ{ff 8C!d$=#?Gsʋ3 Ssk%1f MaVMOݶdBRpq(`RJp1dy.H% *RHGŌO>='Qt1\$~ ["͜X<+T܎p!Es@ul 3za1_P5quuEczO0ǧw9y/"rXCffJkN,ėcs`ۖbN}EzfwnGخޗlGPTU֚i|{`ܻ&~ ?ɟWo?>'.g%,K\^]qz9y8dM7PٳҔ!EykNL8%K^AB)8W@ʛ SwaJ$jEf))1һ At( 4wp{\kX!ZЏm-f펽FS7 }OQ>x4hAIf"츹 n91FT2tmy*Yc1Z~P֊.e* "Q*\t =iorI&ꖵƧ}OI^P a`kTchENŞ5gQq(Xۈtx Dנ n`)%n22LD#?Y%’}cb`釛80F:a&91gHJ.bSG_XC _U UMq;$U9d^_>Rw>qeNL0}ϪƯWo TYBtXkYޛlŗWlv\-zMYSwO~TUmvkX/v)%Y#9Py??y??yF?jbl4ኟ#SW$BOhΞ^l?UCYDzeYz[vKSYhDÑ)B! 8#h'3h7Ph Am*+5oܛy3y=g}^ îE # ƚ^:!ߐ=g !O+~˓ݷQ;ߏBo-{_πJI'RiTeSDOSK!:`Cn^p;QŒjJ}7JИWuU(TEt4 1{z8\/p*|;bt1{Bn/vرte`=F.!  SL h8op̶yK CQqjKcv,;y bh%a|֑s˃ٔng D4t] l!5[jGa"Q7CT F*[@w+?FXKI}4o7|RT6Tv!do,++66Hy/V93KQ=>\OB~~ƿz$C>lpj3! [Ç?0|=ɄfO=iR|R !'GH)QZ2=8ROjNN&5<%IFtPR,)!n)tB~:8 #n1Zgvr3R֜귰JS!!!g 6N`#蚱)QgJIsr|z^lM'Ì&-,9c~581ЋTxv+,P"lҚW@RLms)AePcC %aI&T<'lBbelDGOlA#-]ԺNqO]\d^֚BUKvT E@DSwO+Sc y[$U\)A?=RWUo4I$v~?0#c hQGL<8n"v^@%qMH! 4ܫsTY H ʦk4 8Åc 1 u+k9EIrLQiOy> /NAǬ:w2yP5PC$|9ٯfWk79,ۆo-!lOć y&s&X7>cmc[)\/VLmb+յ/\`F2X|U1VίSU5j$RTHihJ\CE.͔.../޵v q`5 Jz-唯˝ 7SL O7_x#x~c~_[Sfm"yYe,~pÞa'蝀Oa!87X̰VӶX*OԕacP|UahS~bb7}#?=?CίL 6y4wͤfG13a E>a"i!ofZ 5uP؂}gܰ)%USanfԁm~`EOרv *QY5!]pq=>FG.By3L yL>USJ"`zxEY1(E@xsFS iÔIY-Sg<{8)}D;~eQ뒯}X\^=^a5FتEyiMcb1qVknOatLܛV;dgjmPzND=aMfJ&۱"$ Y uyEK|_YQ]tc@M\s\0>19J (y2"ak vc27D#A)րxYǿv'oDꑲB 츣ќ_D5a~L`, F-3IGB@2IBth)ϫܔ =Ɍ[D[~?Z_KH QdO!Ѳ%T(en@7Ub6t)k7did~R$WW]7]L͖n'o#R$U;8mfr_qZt# !ȠQZčW5i -) Dgv*л=bjX15rDd {>ઑ>9#FrfQzNKGm!Tcf&)qc/2B&;15(Tڭ$΃PX1}9`g**_>IS(M%`L)` E\)I0U>P1_.b&= ~nnM32:xȾ J1$f< w>VZRHK:B7(3=.O!BO2 aӯeSmgCR3dZ(D4"aZ$l^rZpt6n8^TgS8A޻<~wc7h]^ij.?1%~4wyvP2Q^>,?$>")Cwmf {.!eN@[4uAJusFdSZ lVT>aӟ=OOMyziw$3$edhXWg>"-sPc-)=B@&T&)%(nfe۳ZMNL(泜䱍cԊSϛS!3}s!ߡ%+8IQ,8s. H&56SfQӧ>/!L"{2-IjSRK%Xv{-L}|Po?=)}4GISB:n:{CY4^ r"*P#5XDUH.RJ1[SPDJUHRČ9JH. ;ᣣ3p9~ )0͔Qi#0anUHݎOw03vqɾz9yIG|뮗Gm=9F!9ޝާ)BZx4n_;cJAʲDOWp]DqsN[gt#tMU){AJ5~ x 4;hod@׭,oy޾I]c xDl;λgn|&PZdz}h\[=?\:HL{'iC_I$~39@8v!K*d׭%؉zc1Hw{IPWgWtaD(,/ő1kxc[v}#gRuA(NmE]⢽i{o. Bˇ ~).;F刱q^iGԱwc. &/?)"uOTHΦ2AYP%)I,5N@(AH b"s㓁jO?! ubq2g9r!)MIep7"{ױl-II}H<֡D]%5JDB ^;с)R3$ r%B ̐(H ;kBO3b=Fﱶ[:K~c"FͻQΡXs0>q'w'ϠLxFS::<>%^q.Q !#M'{~ճX.̈́;Qj]fha `_ $ mTP|/Qm݂;TRkLm4I&ZdNEI ydJ1S m\]DέʄUE͋=ݚ5zB=r%M&8D%sU2 -H=;)6 nO< B?)bǼ:եڭ9.ՖuHƪ:6(MJ A/W)!M+HtQ~gA˄1JGD:JUd@^zH IDATqQs(+*mht61xL JSòUtc`)^2 E3iV$]hCsq8|tH3@!w\GB cd2 aޠ(fcidCodFl$)IEŨʮB B 3-AcĹa!'ޏuGC2e._~X*''"Q:AoOi%H !/EK!H `Z3MIlAp DE9Sѱ[oQPFkdQ3ӇwاdzM!x@MAI.b9O0Fq.Ũc t"VMbzf zHavG/$?;T +4kK|0UJr5H!O(3Gn\ ϟ@lak!R"w6. im۳YmF3:K HVJ34Teۢ :C$ɽt|!y{&Dck-Zi0xACh)Llsyfe]ڂVwL&=Gݞ}''?絃f^X2$ }W4 n°M,>Ek/l] aVNȔ1EKK3pq~I3o+^AQgV?ӯ|zv7#EوB#. }@k @,j0qHXB>L0o3  @51H-Q"l=:Ez%ұ*6Xck;eVԦ eܰ7=>`b'JS{K!)1KpLLH@J C# B _}̮ I r ;&}cN)2; UЈ.ϹxzTw|cc.a Rt`Rt{X!dQYpޜH q;3(;P2y9]6.; G1"j̋9%1,RH4h_װ(M=t']4 < DB P"h1W<,siADAZl2 Q$쑡GFJY" zǶ[v]0?;W51-U(a&4SHBUI]D1:UD@ C;G ^9je1hvanç%[r9$ 5CJ ]S ,QuC?J)4No%w1"S-^ #+$TZpTܩf P!xqw;W B%iKČ>jno$&CbćDHRP)yfɅ1d'3\0 \[CS5TsRTpZ3Ēv4lT[,SB> LTܯI+PTOmRBq,scG]ʍ׸chFbf59QY:bBAPkUU1%ț-4Ob/ڬH?O~Ҁеri'zZ0 #}?:( $s]OQ(u`$Jf& N9GF+RTUMYHTw\t8-v}rds/͐⍴f9ȝT@ ̉ QQOz y-,1.g?38=jI.ٶZQȱ-z姹)/9-ӭ@FdS}〼zFX8{D_֠f:D/" v-I$( *Jv@Ktpz|L}(-wl͉qGG 6 iS~h\PJ`|Of^pO\]\o!XC4Èp>?"8Gb_2ۧc2S:=g{K&'!fvd -썧̓cX(-4OH1~a@W$0?p8^ZAУ-PKF,P>?E!ޥPn∏.?I-A&x緈]1iH:r`,j\D9Rj8H(0X4V -D3ڰ>Hnc*#j8 ԈrBD6HGiJ<7(+-a).Ɩ4 ) )YcjXRO~ /V+fv"m7yla@iJ^c4S&ϔ7ʫ"c*+4u%[LJhǫW$)yhw,_y I:V{dkϗo=l z+ ݪ_+Ty7Y9Z%GM(gkY/Vݚ>E,81(*YgOpڜ` IL&=N2;5}.?0/ esuth}2S` >#- fXӹ$Ӫ[)R-s4:)q uϣg<ẀJ2֔]H#(KS֔ھT#Hzհs=٪T%o&+ߓĠ"n1"eY) =3#&vH9>Cw6qe,LOx򔚖oq}4IS*al]b3s,ul鬠y2&XQ!|@*A|VU+Rw<* ȩfn mPqѽ:S^'#ˊ#o {Er1Q  U 4C@KCU@aBl wZ2&qH:p0~ٻJHz:P"HavX.Q}O4q'G̈́q:5FR]Ɓ)+4Ii|T%a(l$\؎KhYsyHzd[gjƖK>ގhi 51,(MG~BJ1 cI$GL=-)ni5[H^3DI05ޤbZLX#Cu>x4Զ%p3Y2VB`*4jz1d9pMC!F1y&QeԱo{Uݳtxv->|rfv̪nNkbc(+Bd,`R B5~x71]VvU Σ:uD9k =t)lf,;'vr8{4Bě!M<ZM\ O?S򌝮cc@ļnXPRR+-`uE"=-R$d9rD%r,!x#ɶĪED-"P<ÿI5$J"4@뗌ES)ɢܭ*$Kz PDŽ#{< v0k-7Uy>;>miQXeȱw;~F̬cH]t~O_g\_wm8)E$Eϗ)_LIϽuˢ6 iB#XyTu[CRI19L0L&L CuNd=2Ybrr){b7P_z\뚅=TխxJx<[6?J5u]﷈qVV'&hT0#^! %!IIp戧sYbQ4ibOJNpӿV*- ~sk+ T/xԺ^Yg muMc'xgO.^ngazVw7su iurܲ1bQNiTE;tXumbeVNv}%>zՔFW%aEI%c(fE`bS"ưbIzS&̈́O71mHnG2^D?z"a .T6=~M]oeٮX 9O Iu Vif6d`YO=yWBE!{bhg'y~y"/j郧Fl-1F{4ofZJ0#5O3W#vXư}c'#%eT#]Gu2:KޛZw^5|sʬ5ʮ2ƆnhhB H6F--mLخ*5feefefdDLaMڰ+SG{߆͚w8v$l VgԎHnjA-h(lp2^m2͘˦ "}AJc5".1i2tMt1߾/|@qHdfUQ$^Vnƀa T R7IMQ"QXKY qOL5|7^[O3?Ζa8*՜ݽ>l܌z {eɕbȽU:@7µw໿}b ^a~'G guESHCūڞ{VB҈Uݱ<^֞hBUU]bΟܸvn]39^=칶mNg}2!&RW%em@&%JBжm/{&XƱ䐩GSMk0cbf׸ґ^yzzv^aŜ&lpg0I X[ )$ w3wUEba߂%@M%ɊR?ݹA~Upy_cGOa.+}}"7K)n割nI6}SOO*QcDQp_"UAdP Ѣ"zA&Yc}([AB=:m K0ds[\yPɆO=1l(|@oYO?n/[1E-pDi >PH҄!>TBSnsѣQ;-iQ {w"(tN"i.ّ#n顟L<1"@+I#NM#NE6 |IlB @gkh v8k2e\V t2\ӘYsYw+c|S)iI? &b\^cF@G\j{RLUL&Uz rbIfJ)/N/$IK([ B@o'||g$!-;&j~Q?Dj]jhJRKQ!H2p+#gioZ9ڜDDXsVk|;wwxf k݊$,okOޚo~yޜ-g#{_'__o[#c~gw>oi6~o~[;~_/,ܒ_RbW>|N5̄ooO?Ίz*$!z%JRKIJ>:݊&-@i2mCsR [IHAȂ/^tS{R]L-2k:P7[q:!2 sܞfb{|w]rmSQ|;yjCWn9O酢&)l<!c;e`\͋0p<}hGXc~ZqjVB):_DT\;AU%5ZP+yMݰtԝVv#2_2JeF6$ATblaXpR8%A9 &֔E@F52}f07vݩHb>B[+f!&vF!M^+doЌYАw IDAT%Y!JD,wj=J3¤!1ko~]ʂP1#RDџ104CD^AoI1=KBn;@FDTJ81SJ Bv2ࢅ&$ 2lcUl<0>L,*5Ê(%bD@ 7dl0&K6J $*(a2rM{|rtxׯO~,!"H4mp4"b]S-#S#mT$02mnHgAD~N?Cψ֒ (!z )觞C]'NT$XHZКFB3; nXeLY5-g vwxy[\߻v>0Y. #eƅÖ-5ƨ|oV3ZQ/;t}tZͣi<#h@C +Mg]hr+ Nr*eQl!Z t()ŲcwX%hQ7ܺg?Ov1D9N9L'ca Ǎ'$EHC!t=i0c W)cgBVhMEݯ1Ka] K*1$h! +Xu1KAIޢ[ €mޠEm퉄 F<>$1R/V"|I Ӆ:24]rX"2֒lBCW0OUט dl%nkdWz،)RmCAO .~фjuZX_Q*Er|[i>TcFdt?8GDD4,HGZ("}pj p$Jb2#)Z}!w+TIdI9jɋijwgwgL 7恞݋KC~A)6lGs4i3Fzca4V$FR;P >㢟;%~ZJ\?-&KSQ>z Ź/x/x' -&Ndf)AJ czt(ü?^?@eJshJ݂sT?}>WP#_|ڳX]W8O_{ӟ~^^C"_}oo6Ƿ>;( .|* C|k+洙;;f/>%~xf,)_= ʿFjCZ΋gzs {^u,n׼C\_15f3E;6lN.ÉcںddGXO<U?| 9HlH df'ipn=tI f3yq#SCqo1{hvxqw5o |38zWynpHy1su^9o RHYz%1FBjK\+761ڳ>><ߖ 2Vⴆ3ͦ%x:f2l6̗ %{w[9 UYʪ,Ea)T4Ę: (('Xz8{5[X$5Kw+~۠k߫ (݂cp6 PVp7ooݢ9W(T"a% l)&fPj@>EANI'QԱJ.JT`)M -ux<ڭY{V=߾BJVT DZrJ{vƢ_Ѕ< $6MDF U2aR#F  U2,64h rqwp"]f{zC##j %:)iAaK+bޝ12KDQ1˦ƹ$_x5WFz2KJ2\5ᄦ~T0G #јbI4qɽF)]\svzДV3 *a#4sW:'1M9<_py{ObZEl>rvvFQLc!>zE$V T@A+oŝc߸G>Zː9h6snݸw\OHEڍaodw#N9]s0c4Ju7h^(˝ጱ)@Yxf> ϼLHp]i5ZuA 1L&cbc6BVu? \x6~msϿpN]3O8Oٴ-uA #>x]cRYo^itESaNq1PB2X~*?E]4-f 3( Qjh)/ЪD(Udth9g>?[DFɥ)X$':jdЌdj%ύ"M9k4N>VQv%*j/s674Z zJ{o7Ǩg%03b~â=Ɣ]ŭ,nN?UA!`Á!0aYP%.9^+ 6wXa'Ќ̘+G 1FO"pl '\SjB#%EQJ['g,9ޣ E4?0P S4!o "acnS$%_o1|]) LL,YO(wHg+WO~"ʌ^'=CSa7T5m1`eI}7o^Yoo"c2\W=_oxn+dherX9ok/Lk_+7_$_~oq|Gǯ:}t9[?;L1@J|;ɇc}isjy3W>=ps xfZ__ޘ wJ)y꣎^OD<AJ Ư)z)*б (-UfT^0>̻,to*(A"XDI!c$>*u~U 'ZF.&+{T1.=GJ3-v{=p}_}[(f or9 -q>G7W\"s!iCxb<(ԨbHkR!O]Չ¬-VM6X$,wmg8[(1I`!q>]#J Q`GzpEȲ {Oh[r}:4LT"K22q  SPuѝ{w(˰ppMUMIR1ѓ T۝j=z.v>壗}Z_q5.%f]X% }tѲtkfۆn<1J{.AVˆGAئ (uzȮ jq{J{ǒ٠juTlM/<i) nC'n*[YjU&  uT%pccd'\eÚ%I5z`X<)nIwbsO=ш[Sfp0WA5hC,'PإX- 7X!9l(S] ;.77qޱTG Vg5M]D8={t\r ='4ѵ1qOX5^sOR26Ӽae$28Ω9foFlj?H7u UF8[31{>4PR3RSJ?$ĸe#Eᐶk9;;CJؿfݰ/QF3aPF(w)&d͈z~-lg~r+6׾N eEEw6'(+Ń$b F*IqńB w`CNO3Σ$ȕ`2p2?6V>V`Ci4;2ToJok80j5!ܹ0PhȨY, vww }pS"z1'fӗbZ s0@ł?|bA )<3a(%ïS5Rg8ktC cNh1 k$&[tmfR eAG\1fHBQZiE7jĪ>PV1XFdטgI;y8tE TEDzi,.5kW37!><1%M Ds" j2%2̊<ѱ5g:BF Wp@.A OČQULo}n8+UVSnK}P< ߃I3%ʁw&~ҏTBmU$F2x-;m *?Xt0J*fvbчyiq~`X8%TKxT-"5?O6=V~E"QB(R2£v"lf/2R$RPB@Y}x>^"k%I:g/5d%4׆ѥW2!P k灮LgcVSG,VzcM{5L2#5IM7oqXλ3c]ǀhJ,zHWɱ (o< wבwPEVk%!xN6.*i0HI\ZA"afu.W b"J[2'ۆHgU^M>B{W vٙd\12p.,߷ J7 YΗUUbr0 !A$MSK?b}~K]<חkB ]! Y'K2`uthYY'κDvd:w(3zAzw<5 1quTLMb_=2{os8?E|U:b$ )4=C\A栘2kYC5,G>̦iyoo!: ʲiZfo>,"ЇP(4 I!TW$  #)z7ݐ{wO*QyPR>t<*Leo=tGH!{ӈ=1Ke{U D +! \BzJ)KQ# AaF[[?z StABD 9˅+t2k>D5a/_VKqɛR[jBD %Rb%Sle,fqBi*8&vLc ~ D"FKXW+- ?EM"] S"`@G,'~@/@wݱQ-{%}z'( =.)^!= T%EH~yNKJpr9=3Ӎ 9Rfӵt! = J8z|4tw1ER39NQB36'RH U#Dƅ%mSC TO1fȴ$yRQ(}t fs9"{hrWMA0!|0yKĊ J61,}K=mw2`zǕb 4)~whˆJ DNw\yzz;ER30hzL)h(BAyE9nM=>Դ#6}*͸-c8^o!Tn"X{hF9>eoM&o{jޛP<迻RJ4~%ZHJ_B+DJ#]a \".tۦƈҚBir)Ǖ Z曞FZ'i y]ȂBX6H)IĬ"$[6r%)e~es;-}h1ыKNOMv10[u#-%b+I # |KtInx{Tf:EiԸ{MhI FȤ#bN]JLfI˜)%H$m(MZλS*]R64EZ AW +ĭ*rmn4ymlSCϘ" HSwMG7OXhC$C1λS4X3" u5E4b.D( 1"NZP-]U@ZԳ[S͕ƈclSya9RK\誒ŏΎk e9`npt}CR 2J#0yM&A״(i kp$ 2yMXiP>K_=E Bh] 19ݲ^}U>OH9n%eN7V\~1(+0&{8YV@[wlB"!yNzrp դdu( ׮+-T,d< ՜݃ԳvoCĠ]#Y##\atau1OFSN+Bbt{fu4bɖ]B8`6pLQl6 vT޻ݻG>Rwc eYpzzʽC_;|Ȓ`zie( ik-!' >Qi"?gx 4M6k+ ZKVmzHR3czzv )EQFlK/| $A)kzD5ȈGs8WŘm]!bhEJ R H.: > MI(UƆa:U pciV)K_k5e9&\cH_"0%.W?]! p uA%7Xh^a ep~M[OHST9PmUh߯GF"9 G%!&xp§k>bهrˊ# 1x9!F!K*{!|ey9<{J>2i* ((QRNKһKvá5ɾAC3bVP9iY9 ')vŖ(P(*̨C  HLy"lׂʔh%p"콀5!ZẀWoe@䁋d͐mLH$=D U$)/"hR9P0%-ecBlPS]"3[[oK PG&/JKd%'#h{af*rgVo\n裣ڞBV%~ZKR |þ@H?ȶGH9BUiǎd4 TE=bM`MfK 0+v -k$ڈcB~O$PS͐R cf)h|A?'A Ÿ7؁8XukP|xeg>?w_SW>Na$F>yO*W`/8mO]çr{uU[sP0SN6(TkoS0+gԮfݯ~-{Ma'YLy}Oo1h4juBcgﵾNJBhU"F -G' $!ed2їȣ%yπ+RjG*9FTF]$i6V@ Rd+אdr)>Ov #A X=y{/@xH'#JR$ȤBБb.P"pSA;0pޟQ,!QL k- r`<-;ԙwɌazb͇%M t/!f&PWǐ!eoML d42EbF1f"A=񵑭-BBY*̀P>3kgf/p_.h*&hhD`=_cȗ_%~IE cާ:u FY ]S Ew) Uh1A"ƚ=.%FGQok)) ! !d!`w d|꫟GdxeJ;c罃 LTl; lNZpA"m><{{ 1uU$d1厁" &1 TjA".$|021mJlp~M$ RJ,#[(D# =٘qdh{.jj?ϒjfh֚Q, X/7 8&1׏x7ַūz-( 1Vk_C)͸epQz_Rk4vɸق($Jb_g7Ǹs{@ϰn`SޠmaKV.' %,DQw"! RJJUja eXQ",̔@&ɤGUhYK*P(VgJ%vB<2$)'B@oTukkْ4C8Q (F)dkmحskhvJٟF07D%wObONzAG-O}u춣o6teĮe$I:F(!DPf1fP5PHeR+Cԃa⮿*t5:$BHǫ׸*| 5RXS*FjZnƦv/莱SГV BG5} [q^YtIVWR13 U۱5R6H:Flc$wCXvi"ߗ{qRULJ5()) T``6$JU,%aI:Jm@ ,J~eWN.!P? ԺfÖ)*9H -o|]ӆY+`2Tf=`:GhoΫ[c_Jr:T)[1Di&?l }ˎ1)Ƭ,ǣklܚr<:^>ѝ]~_c1qq -oxg)yfvNS4n1rs|#7"h[Y=4Ԧfd~Η9J5\ڬۜٛ2yaD쓊k8s^=Ϫh|h,n{;LgF^]k :O1 RZb`X3̹X,خ:\,aZNY[LF`<6\V} Ct̻[ =VY6+}hĮJ٦%bO[=!S"bĕb>[79j")y 6=݆0f3[ʀ m)KZ CJ<S*Ɂ$ N(CGJd |vDF4CË(Zyfax c$Hq>enz֊RKQJܢF$m7iCqP1.H(UIe(lb^CQFcLJ1&f! )DY{X$ ?/:8i,6j*$ 2RG=QxʰހhwL[?)PBJO(tG |z,&F>;D“1]GVC1Ӏ։Js9Q#ՠ"@sdrYo߁x?J-PR!:XOLÎPӀ -[H'Py  O!:"buĨ,saK,m |f1#z\XiPBw'BjA{#D$C"ҹc+\s:"PTꃝǔEIB4RRKOp5ȁ?(D\MC+] @rwL7BHD Ŗv>Я4F LGx2A7sNƺ A_oOvZ>W )QKAkIu\QC?8ڍ1q3])i<~y1.{ ;)?)A]5\~ko{ˍ+24Ȑ?Bc2b&5"jKW@9kM'ܾ}-]밺]7`!/C/1Xc阺h/hI94bHwzP5=ۧe|M'd|<מęVgb=!%{2XcQX&B`KI<ɘ۷nq}__ijQea9)1Z`G\1M\Nxsb2l?k%`c+4Z J"; ޔSR 232-tl@Ř"CCfm OI > ڳw, bH!efg 9Hg d^+$wu:J/.%{g(0^bcʆ /|"}B.s(tOXi>|/Y@K߇ }PBQʊm8Hf]Z1-vi=J8\Fz^*:,Uuu/I^) dҘTd`2yG?Jm[=Z aA*c|*WgP sxӅܟaIe)܆$H05Nt"$ExT]ETyJ'GO$=l,c$[DYpt{j?blL==\+cJ*Ok1aE+ttԔI1.kb1,q)5p}t-͘wN ~l}d0Gu{1'И1j4SҜΩTEfRVhr%)7W(dT99bqs1U3_[7vߥ7e DsMks! TKC~ I_q=U ]Z"4]*ѢtbYCBD' $D 1,+6}jɩ6&>|f_JYN%lCK%tiC#rE8RTA'СĔBc$&OcH!.BưZ/1}D )kǼy|+[|P04Au-zۈ$[(*(jt=醄"$*G:Bt'|tV>$"R c9dht bȕm''O) z)>!RJG,vG mrbtg9i\ M@MU w0GX,ٶ1F I.d3H9!|Fǔr FMzuH!$cdT}T!?3HyYj>%~N )r=?ہ#Z(*Yr2H(;xH@ Q9GywJ,ZhCfM*ZbL[!C(:7}@+%rx! uag%-F'zB>u/OICȆDo > !>i!s\l1E6cl_^.d~BR$I:hb/)S3帹EOv!A+0iP5kaIIbD msB ;;>ŸS>t&0OԶdFT)L|wC&ŀIx2 p,8[,88%H}y}a8E IDAT|4зnZn%-x}ވQBӟ٬5nI@Ͼy{-ByjLOrmyo>mǜnXt+o{zOw/ ݿϘ 'KƯ7>O.>{mFCtL1w#L͈8YakhG_oLogHv;"&+xՓY~>}E>wnշ9 ud.)/% 7N+A1sca4^€\!!`ڌ4 6[)''g DO(e t!9x|L(lę9g1!;F WGoAJd14n NsPzjh ³=gu#<|E‘N_#|*aq}Lg_;bJ -gHGI[SZko}%\OOMFM?S#M b(v56Z =Zn:W 2)v[3l &%: ث@dJ#QAMJCYUJID&j()F{E%B\ =x/*BMdNhe% q'AmT)HB L#!E.2C׷ f(wx߳-;jZ` FaG#$Z'{~*ň뷬)! *0.۰fi( #kG<7~+%cCD'VVg^$((SKB(@av4=#! oQB:!l"]&ļ  hc+  n)XテZz7t9-OK!mŬ'h]jȩVETa[.-]}3nX3\|EHE.@㣌ɘ"mJkIE0TG2,ک'j3ӵRv,e!@$)`.#-[q&$}\SV`5Q#U 0,+҄!83ٟuU3QJ*{|8~Mf[֒HR}bd4}F+CQ<2[; UYtf(dnķ*y"ڀH)t;5(m^#h%麞l=%˄iklak*D=qsROky%㼏a14Fv'g7y]kx.|@@J"p=7_62=Xnݺ5ܺulOH։}Hslof rq\o٣3R tlڇR#FdE2SXY3CN0##H˚!"ۜ|O !;6!jm)0( C|z(0_d>+YsGrAO4rq`}xoP #ɨb( Kyn!l{et)(5&a5W{Y;.op=]>5(^aqGǼ$@Z7L *Cf}{1 DVZn7iDxc@^p2lcOC蹂 \GN.|DW V5rZ@#!(mŨV+?F5Ն} Kb~/7#;aWaSJh>b{xf,{>.:#-!~NOlYʀiwƒ>ΰҲtK\tX٠s7'HkDYn/7IY/)ky2>~xd4@02yȂ{cǵ:bP*uy$\iLG`DiHP%워)]YY<|7RgfILxJz%5/y6o>ߺ=7ƿG @my7}/{oo'F/%PyimT଴XeLue<>24bgٴKv#;R%Ji~ſ/>e^?瘕H/(Ysʾ&Z-ˇ.K9wňw1OmO-pثx~%j0wgɧK+l|ʳqVň ōkh]łt=;Cٟ|oE$zBUqtn83jnxڧ/^I"\?'L77b_<q~H9o24[o9ێZ0  #-yfd|a2֜o[ʁQ$̓!! n0g;lA;[>x@3 Yrn[Ϭ쩤ankDWwoO"LY162%ޔR bK}"G&Lk!9b B[tD $ܘz|9GEإ\RhlY?a$1'L#O }@$H|S^MgʇP]BrxH20A$5"YG[b?$f4zC i0)VXeްpg\[^}SWV; wH31cJm9͸,3CGe%)hZ`EM5˷`hATfos;Q+(q%.Vj )[l<.%Yu[D :AW}+ǘ0< "@Jowx>#C{EJ] ,ܜn8(qxD@ 9o?30PڂłތꂽѨ@J`A|=psys6]`O)m vK,V~4mF2SG,Bf)M?HPJb(*_|O9*ږO݌X:ϢSTJPOyPݶgp1hÓ29D&$X%9}D{³'w@薑;{NkռD/q,ﯲ띱N1 ^(XYV,]bfIRrzZy{}qU)w"ڿC IA15uO]/ _>yn޼M?"n"58à.*U@|w^l9mX?]2!!SRI lkcZ'[kYzLgV=&0*F, .3vZM;8(LA:Hxd3'" k/D9d̬$BJ9̧뱍`Z(@3СG>mm;wnq=zoZ+\m uF?/yr}HۏMPRsayU.RH;!IGGW}GB am#q\)CG 6~U9[%K[Ǭ4F_{jD98z%n8|_SITS58PF&[VYCW|w:pRW7Xws$=S;f󂩝\g9re3(٘d72,H+,T쉣 c0X( Rc*Uqd\"႓!ZuD9Рx )4"+\TIdg(GϐHwsmRT4ʑC$ŇAE> h%0 y4b\mbTM^@հ滋7 g<=.= xݿ102#RW s 9o߃H#?"%TyT$yi/KV*o7 !2NgMwޠ?~03nF(-H,r>/=i Ŀ ? lLF"9YM?j3pr@+~{|a{hw%fa" *0)GmBz_1k+`1UM,7& wo2ՔrAE4'Vo!tN{ [RuDW>yx,-!\d+,U ;.1cQB5L dߡ>u>%f?  }. ls凡l{LٕdkG'3:HS3J-̄^*lݓK)uAe*6Pk&#&' 2v 8>zJ5PNa^Y>Y;ȟ98Nir={NNGŨ 8>νOxO<7I|W%s6+Let|wL0m9 0ȁ$aHiꂲdJD%Ѳ<w2Y)CJбk*P%,:F!vWV2G ã!Ǹ) DĒ|C b!H$eY"`[Rjݾ9LDU]G- a3;!yjY 4[7?1HI7'\ЯKgUNB7lp`%eʱT|c *bdY$lJ-\!7Kzٿ<j;v&}݈;;)K4dv}c(IRN9F-UR[b(B ݑR0ݏ``UBR+χ9ٱz#Gfٙ;ׅHSEM6g4-QYIH+H hHafn leX.m^wFddVYդԆPx#k?cY G1&vCrRRR5`~f|VF\O"1 D+j*HAzFѣ8Fܯa*TMmΪXW8@`UۋwBrٟwhو9c9)N9*N_kY"&7{@K#mʾHH OGLQ,f˷YYWp-J~@c8.8]{'I"BI%3%_1 C+K}3pGۏh1m'݌Ǽ ${sFK{p~w(2,Bp5I(bi2 W&>,5rd)yvuάqqq'Biآ9{]˽k_)Þo̪W?*P9)M-.~ӎCRJXeW/>Tf #~|SN;Xah33GSdLFLxBHHd;lLbFnd8=&5Ĩdݡhuz& $H/<1)""r-)NQB DD? )-[ʀbY/̝LHav;}p;Ο>a){!0g0RQM (")xj)OqR34KD@zTby Fl$Sd+&1$>* s^tAȚ]k*rE& DqMYrXKvILo+5Flh{jC珹t0ea޵T^:xuTUj1,ʼɽ>wW~`;!ֵ/ !VQDjcDwq nw=ؚX.g6D{Uek]@JIUJKkclR)ŞZU၄#@PLScbl@ 8HT)*|*U19M^[bw2{wZ kvF}  ̊Gi hF\,-y C9%x9AMƒB1[X"zpvGPX5X,f a2KRH)ǚ9!Izײ8^rOp]O!%vUY֛oS76n)\p̖35"3 fSJB^0°w>G@Q8sv ؍v6y R:X;e IDAT4&O17Q+:x{\csxіur"fAYԨ fw#ui)(pcCݿ@೟Ap0_FqۧZ@l'FA%y.ɡi A̞B$R‡.g7"DlDiR/BxOaEf-VE̼$g9G2 rOagdLpO0=jЍJU7s,#Bt`$ :NW D4]5STf +sDRjm ~%Pq1s*[S+CCrh!gΪ{Tڔ!e. 2GKI],Rij5V>ti.by&l8&N$233#yw "ZAWp$KIS|n+MZ,J#/2/kGǵي+-a2p֞ =9A1=Ѧu`L=Ae&Q]4+Ԕ䬼K) 8D")FjYйs; ρD;$qѱu M4azVwnGL@8A*8_ݮKxhbْP)Njq1v EƬ[/P54o@{[a6 |k8PͰe=l),$DFrDHETzFFu܎Ow3Ԭ%w{4a3l9h}75tG.t10G;wcv㞘2ǵ} TָDJF@4LO7+#A®XoHC/{(4{V9?dy%Uß1upܬxrUg[du$P Ȥ)ޢoIӤH)d B{*]~R2UZR:?%)UyaG-bm ]G ="FQ=~[!#.9N+Jӗ/d6s(Є9t}?එ |]%fYKsbb$3Jü;a\^iΉ&E^9k}hIz5jJH0f"-@}e$! 7{uE.be0IFcG\=ipYBT0Ҙ9GJ8Q #gUI<9yb  m'-Uڢ7,itUeN$5y7ڂd4BY4(m@+F)Z!l.0kHW֒ _kqeJ\a0$æ|Čfz1˳U UgD4.Q#|Da !C@j5 {|0ct0a4sHtfDoRô@r\ <% ڴ;bLu#&*1Ѻ.V3oQét1-($,\ge)E̦S0ud Y pf/U0 Q5IX)QĈt -Ez\u=S)yyV)$j!Dsg *Ss=rGQ^4uKُ̆xE˜Uҋd¢AxwQEDr~N#V+lH?T58G)B{0yGLkvIb0f Sˤ֐Y/GpisbLm&P@[J`b21(Y`h0 .6!DYh-93mvǟ\ap8W l=T51`0IbaY|⋏\s~0v$y+)~JA!+ JG 'TGmi8ʼn=s_!<$$"%]B8sz#FI>>{~[ŧff&]f c-}? @kM۶}=k P rCk孱#1ec|%ɓ$S]+%rfAam5 ȐzD,)2j|$sPMXBg)K@NI^%"EAJFӅF=g?CƁEØz0Q`ȓ1o>)BOxdؚ;wپ15Jj\nĦ 1 crb}y}qGZ7$# H|oI%ɱ#y j|GϨ̵73"-'킧aJ gSQZa%V 9)9|"5,Gl7Eȿ{*g|_Z׽-ӢI E-~J]0},9?8}RQ(QHr;? 1~DzB#+Q Y@ZF b iT2%~ǐ7H!"‚ZܒSHG +#D`YC ]H1Ì snrk̘PW)Ĉvtf  lJcWJ6䣇SxG%(HyPhRdOȁA4BLqWvIRm lQ% bUVK|Eg)|O\n`pr 6>=q|{ud1Brb%*by\l-=3HBD` "9*Iaѥ^xxTSx,(#f%8G4_IJkp$ݰ@vY҂|*]&e '2"N"Nl3 OuhPhJ Z2}-*rUFp!W&}œO!8'h쌿חw4W1EMeqQaUIBJy!>314̊csJ)^%@$ms20Yj~xRӺlB氈("C(4Sx-c}![b&DO fnS@ *_6t!IJKqdo])!b$:*L2UrUR^=COpQ6fIߣ)B|[{>> 4UQ% 'O[DR$Jpߣd('UL(eѠg#"&YYX]aI*vᷟRV|qqFz*VBAH@z|a;vT L&b@ #CbwGII{( m/>8hTBbBzwڴ{Fmb~D7J~9Oa g@*= `yJx=7:єUIu u=eY2=J)ʲZC:" ./)!)r]kRRRZ>l5ZY*]P% JLL1o)Dnf$0 >z I.Kͽڮe#1&D~dl89C*tE*v~ 8de 8OW!EFs|:&ƈK %t[lw9Fu"m_>"h%iFǛƑy jM qynX?!/~0āַd1\B letT%=b֢IbԤ#38|9 cD3DyQ#IhRLTFiILZjc7|I®'aP!/;49>%.+ |JE˩9xv\GSt32HH2O)ч)S%4RD§4nSz󵊯w@勶"㘉,@"{f+]SdVI!#szFF]O7dQ8;1wqw}|cwp񫭥1?̝oX;~!Iq]p5ΊLa $4)ZB2āyѰ*KJ_S~a.ћ% Pb 9BaOOʩaWޮ"oq<\JBE@L@17 Qc @!FO 4bVpiaЕ4B";\FTЧe7yâ]QkԮ)]⽤.U:0Os.^V+3& J vEהiFs\a%1EtUt%lI=;1xs2˻S5`ȩkQ̚d= GZ) /an"H`,{qf$ ~~8=yS,Oz9Yrs)5eG+ F uy %k ߠFطD5q2/tB)[Bi !쁗,)%jD؆qy}~]|IRo#_wx4޼KR@(<َEb^ъB63M@CK%c8bn%!:#) J1/(ՑaRb7T.R͹)&ɴ$iQ'z,Qhz]r:j8)itYv)Ijh xY  %ǧT Q γ775Ks!8ndACҤ{~GƎlEUqtbjP% ˣ9qAQ&ħDP>6&Ϙ(YrY:cyev wa)TڌCO|T`DB#ЙY)9E<>MffZK(f' aYXT/:T))2nnRӧ\\\prrƒP57Á((AN2ep!"BI ?^b$<ϡd$JG9ka_b bj- V,O) <0r3X~'Iu3RObJW-FjmJDA)8'^/׻)rJ}fX,s1cZ@]ּ3b TuEwoITf6)~;/vnopxw|wލ=Wq@SA#cxzx6$M$EQxI&9f ]Z0R juD13.H[a`^ۯT#nN- Y)RT/u+cčO$qp-~;C1*irὣ:)u%bbԔ> ȫǬ)8|ܵvGu!y, JVw Uf)"iC2mr8†wTvd֋}tFp :捆`##]?pkyJ҆ H. 2hߵ )[CFݞ~2N]zGzKIB =8!&hC8{=ホ:vmIn$-b;&"B*D[L F3*nffG "Y~4VF G?o/ H71-j]1B|{<KHQ3;u!\(@QcM}ė3F͟<ߗp|Em8m$b./nE+$.L~90"t¡ Ja@hbp+JRQ@Ko\)S`oTNnu ػӓEȥuK_ϥR/2 ,%CX,iH$cv=R佹B@9({"NDntlhJQ1vVwO)f?%tP%.D)F!GIO>{4 ;aPIOsdCMY) Jg2$$)\9.8:6_M\Tb@1(Uo1#$%bJ#}'0޺ r('@K,!&kHUY==; SqGiP QYƘmϡs\>%- IDATfXp6g (A9&! A"`I^ i @Y Lj FH<14oG N />BKrtU`'9'+|5 cXhkK?8gכ ,K)(d)zPT7{l3 @HU%j0wbCU4 Sϻzzf&*'UJK>ݏ|t~'29cħ?#=VTevr޲Z)Ϡ?0V\pc7$*1pHc3|H0r!F!SFѝDEVv}h20 )Дlt=ܵW50@F,BOssHnZȏ$_378:K E W>: #" W*icf!ހ+ٗ*9*NrHPx7ՙY/~.pAXgB3 -A-`R5="kX#s.I_.f(fP!L%h]TDŽ& )NF74::#O)̋%Qy2&bb[*nym&ٶYkI,0;%?95K]-uXF@55#\R\%cTܬ(Ir6{Z4 ޹y*܆bUrw<4,⠄-=NšH0%׾m!Z1c<.rʰYb(n8hCTZ? Ѷ83;cUadUW:߷"OOxm tT3)Rb/INKz9-)3'qpx 4?ZG,*GP!mӟ0oP' <\I>qh@/%#dD x0{Y-^cDdѩRbey z(`ݞUSRT٣G1qߏn$DDA`fO''6w]{B1 o"¸["DK®Xz3כ K|P" 'N1׿3E?p?e= ֢ǖǻP>?)gGiw{ճ#G4~%.8^_wWgWo̬L$/V6@HsJݠ@JHz HMI,. <"ɉYH"<݀!^Ls[ ܖRW4+" 12"@UK$hlMDD8D=Shg ?F;My`e#}xT8CȀOj=CMlq,V̰R2ߠ~V)c|\dkKqו@`% |〘ɋG``qsqoBSPaϡa31k,t`2ba/9AEJa%,!V }s]ˆA!Fta᳧K,{.9&(rKB}YQqNiƐb`sMGxˬ !'?<;)\%HY4o!w)sxg^?k|'.;豅gR}$2YJAB\3ZǍ#(CPV*O\Dܭ椿 RV m{fwHl#Rh'wf 8Ѝ@ȑc<=[&D3 %_$o4U>Ƅ{x&PEQm[Q~gl>E~?x~G`E+oz}$DzH.WKDR@'yуrSưQFc=@.[kcv]i׽J"<ͪ^9) fn(_,Ʋܽn7E%QDzbYQ2d$AAKy ddxؚ{cy$hnZ~n6IQ2htW[{,1ܷ64U SٝOM\u Qy Thz=AXV51@A4=9"":#6X>|ӗw*wa1(טi}K\IP  씥[R2G XJ$NAkS)ϋspZ -,qrY$5+ ܈x!0e D4Et1Z#$Z*f%>QPãY$ a1:k0uL!P^J{tTfN)opQBFl׶dαNxlJ)]\98 yiO{`/{<9QX,ocWf2 a'C穒|ڎYCǛjHvoTL/DfN"&R N*xr T4bihӫkP nH !FNT'Y?[d~m]f[WU-qvP9g.5uEfΩ]n6:-K SL}ɚպK)Ȑo6ɴ90cc ǹ9=piϕs0Wx"{mCDmlgi\M.6ϼ^pKBL,'K }Ntꝭw*!%RIBN_]rcF[Mɧ$ёcDevcbvRGKیq1Tw FJ埣Yl(.u<~&pC=~oqu>}' &ԁo,kvtz=bבeA׾^Y6 = ɋtbGRi('H^4L8xCxx9D .Ӝ!p0&,spKIA@'hm8'2Kf6&ƖZ%s0RD#IYx0E Pcc"CDl9cwyԼ8ݭo(-yxZQj mqU>nyu72O "m(=e?FOT'"GtFiC,ww73휺sEQ2eZw( Om.;f4yږ-ʲ![ sIR#Z N V8ZbRlt>~x!N?1 z} "ymY;8>zD: EkReg-i;X1Fa[nQ.#)x31 ?>0wYTAʡA |@Wu)px+SrdҰj Љwl֞SZ&yVqyhqbC~?<$6j'?B^yKtܟz(ŹM<̐ݽGcuΜ} yF[\T(FP)rb*FOuQfy1s"fd$^_tURh}ںA)#YM풅J?t|Ġ좔/Hv+Mk f.Jf6KskAMS=g.Mi;Z,{FC=`Se CfnNKΖg9h[PE},܂_[7}F ArfO4L!#aCK,1n]$hx9=Tf;kW,TEH+/2 5DO. r]^ Ye֯t(ӈrD,ChV,騝?Le2=1U.N5j*'h|Kj\L!,3;O t{V#3;r̤BP3ݳt%9u@RI%R+0ott-]c[,o2p7@^v-Yl?V6ayKV-`ߋV`^;Q-ñ.OBږ0Clg`f v F JJ{&N8߰.WF5jzirCa)9l{ttii8.Ej|h<*ăɄ`(r #qH\-"[Œ&ܧ"1obM,yW?" db<` ҥ|Z2i%/")9En~w,-=C_!D+E]Y -\$`{~8~f/< kgu؃`\ue]0~cOv;;]~×_t BͧŏLygg1ōM*[9AP5 :wf]6 .1*XFt1c͂q3Ή#1z y .yŞKCC&dY}ĭ.&{Ղb!Ôɂo1&4+Jԋ9e|({۷v(ղb>  c 1\t#p[F\Lk CG<`'%w tQ++hPy^ >nuSũw4~n{wq>䱁gJ t0|?9DT"S9⯳Ul'>A5gq.rm|I>{S</ĝ]n͟>}g_@{L/ѳBi#F]=LJ~2v%s~걟e`։:W}_9;ַH>~GzX/֘TvJ%_ʶUcJU TFQpwjkFaga &v1:@ jE#r2e Y SR m`)[8mh1BM F)XilC=gS EW)|t,ܔA(_eJ=eRgbs! aIe?&|R6;R*0Z6YgX\wh6?t ɺAdh4c(%:ZEV!dF mxCc-D0Z.*iCgC@/W)Iy`&,$*ـsˌ(z눗p /wn 0ԣDCĶ*nFTc2 :bۖNCg8hm@(ɒ"ꔬI-g{߂b@\xrA\ɂ] NjtG /h풅c~8c8@PH#7T g g=*1x[fep$hX@$pĬ%9w Ym8{i䵗aveq)s4Qr>^yeyG7]dN.;wYXܦjjo K M.->"wҺgjBex:Rb#(4!ŒFNc;#QCEÆzhaVN1*8Ʌ$UwD2ՇѢ1uac!S9FHm} QĸbG-Vx7ç7˻d_\U0#,o.96GUAix '!v 8Iq8btM5-:34#I󫔂ƷHc'{05P-ʻ7^w,1ce\D|xsb1 Y ;4ї]Ng6#h쳳#<"3,ZR Rj?`f{Ft.>~A Ke6-*8om=ATsOH,UWq#FUX{]isn/ob=Rk1evf&H`([054EHݵl|#SBk-MdbS ]v%ORM`tt/@d=|Dx3*i®=h蟁"5*H2Ɠhk \1jsܶ 73DgẋhYuNnʄ,ws4]!oBR\#S0ecd<Z)#2@ T}Bgh[wDv(b JA2(Wwo\4Iok!1Ng6^'7?%[W?*ߡT4dxceNQ1"x ՒB%ϰE6PVdoLZK B)D-JlHaAlX9_zD!00:YIG V|=KdiRYnadJ .̙)]- "*N ps<6| h)Y/8=Ce.]cg>~O&kdAlJBaaQieG>3[gzl=P"Fϼ:Γ{fq%Ȕ!og)PF$˺ZsySe o f}zjo#U[EHieZgZ-ePȍ$'F KGly4) F#trQ`9MciKSFgݑ~FDȓ\FruA2,A*C)L`W&7zhgɂD@)V Hy|m IDATӇA""B4?K!12<`:}\,ݜAߢ"I\¨?NՎ|O |;=vyL^aXt9?ǩ)x c^ޥ]wo0c>sK5Zrch|kEwtI/3ŷo8?x?_c(8< ZjnnSlv7=u>}W1¥O 0PJgwDL)"Bd"υw!@,Cm_ ĭȻ7` x#l<℀iLhU]1QZ%ill0QNSv;A)Ĭ09E b RKt J2Ilz,Ny p1Qe=CR1nƭ,UԮwz[^z6#2j616rN,dNzmvyƫlbggYzlllptxJdloSV.7œx o m2KkƷ,]K&*ҷ%j_9Rc@JPNT3FV@F(fa6BcV@E<9v,1s}<[-:XZ,4ɯ8oT~I㗌u(gK)f9NB\#"<> 5d}%Lgd2j[VH b9N0>Zmܭ2F+H1z4F-uJ' 1%QCF՞6$+T7\C$?\,CTYYЊ6&U#,GeD-VSP^dF9߻@b]A{@TU(}H%-G63.,sJ sKtxJH2eJtW`EF6/Ն>ITnFj=Ւa3=2!UbK٭v|+N# hg2UPމϥH$W:lE}ogb-]޿㻭LflH}'i:@0)S]'oG-e#`BR1 Fw>c9mLݒ\<;ص!ÔދlvcˌyHR{]DD֪})4E5٦Fa57ʓK,fY,3-֦|px\,%i[bZ1?\b MNd9$f6U׏w(6T,!TLjI!Vh)+KU5&r]|u~u݁rLG36u^=x/^< Wn \_5[)l;fykH,F7~;Og47f7ySOpgs{c_|(4!h\>yϜIc!yc%gYKqܞ%>_ܓ̻ !GyD'}+oц”UPu4R R\ISpВeh &-.JH@Z,'K{tU&- a(U]~5EFI$()VH!G"KX%0am%%6 GPEMsl C )rddw.)]%ec _Reg/ʬIRK&nUnns~{t&K8(ؙ?zgovkY+sǨ/xÕ4` }(`n}Qg 'Tnt]|vޥ*[7x6.6)%l uTfP9? v ^_T>UhH@#P=F>݂n')Dƴ8ϬX$"|3aak U Q v-INU([bp+(`Li]Е *;d2ٴMMUK Hi#F6a "D_$ PaQA3RdXi촂tMedjntƍPBI(uZ9h"Π'Gz|LyV,< E/"NPѝ6gZQ:$liU&4cXGofu+Mn,bY;KNҟ`E8jV%Vfz]/ct_OXgwԮ†sU!R[C)24Jl"3t[h 7;7)ϟE+sE" XxCqE"B1 !'DM+)^thAX9RBGD "ziAef 3:O!B(@=Ry51b RMb(ik@XlBaz+Uq;ƅWȂb t)J(}o8UnFKCGwB %=T/KjBxk2DOLEaK I\yvLRB3At!_` d\ƠV#K+ ;dΩ]HB$o%Q *9І: A2:C4ewJ&xųؙA0t==ě5(m"Nӥ"@I|GD9UpwivkjZ3ߟc`5z=t#X+n(Cmkh\ T2MiȬ,[rےy+cs3\6d\cT5ܪW56| o՗~oy~'W9vʬqsç/ W^/'7UR_yԇYyy[ Jh^=z/^ihOo}_}f]]y;3O||^%]o|ߺ;l6GBw]:O(5dHil G`q }L4Qv2u[IF^zECL\FN +D70wI9bVҪBL6D:eJ)wRr(hE Hr?0+4*Ӵ>`1EB<%KA Նm\̽6fAI(b[j(FYb ϣ)p60W]m[ZgWFe'[R%Zjжń0R(7QB%_gLb"ʤՃ䅣ͷ#DžR'Azl[4!Dҟp}вh4ZG G lm}zި@q~TC*gdzs-y-։8qLJ  dޒ=KDೌ^:/_c& .}+GW_Oztq}^|?K?/^ ~W8׿D!O¿܅O.~A78;8Fgռ*җw/qԎyaj̧$loyv_ɵDZ6Wo?<9vo>˗YYӛ/,7,Yzw֝gę :|֗3gAY-scH.qm|-M.:͂M" d|T'$JJ2RɌ"+R%Zjՠl|bE7&1HRH;jвD ,P*Z_c(3\Ls$.|hNK lJ/(=7wwiMӛH@yrtxlڰ# rL%Gňk1Yi $ㅅ1㧈XG6Gԫڍb|Ć|):ZR{wvG=) SrT齏q˵sxqS <ø28x?9|7^de6WPG?M4"7o3,69׽̅|hxa9.搵b),ns(!o}\1(,m5:y,rgױ!psGJc0ݛoY m8Tw"(A. rS1j:T7e7+vQ)i҆d9P68 Uo$=_[I6$_e]1x=e(" lLQWZ|ĄE7:FD ""*J*S g|5-k%x)68 EEѡC!k1ňwdׯeizŠ;XTtOOE&Hem6d_/tpiW6`_0$ؠh"9HqNS]T _ŷϩab (>k H&1)CZ6c٭*#(+؂v#-λ]ځQ :)@5ݜQ^Q!J|pã#ƀ3(= (h-!K @>|/Зϰ `AF2Ȥ@21]b9^V3(ȼ&t$G,Z))qk:AA>ߡ8aψ^tRtTdx,|i$tL+LB댼LX\RkC@U)MwZihq/3rpy%?.B(Hvr$|,躎٘z ]O{雨߃wлW)& vV.BDB&P !` mɥ%c %6x 않q.ii}()l#r8|@xu}W4WRnZgC1>.Mb`#k=)xt[zG,jV>Jhva'CUS{d'jkU5F 9"W7wSBrN` 2x6ސɌR'l$һO"zPJ F#vs?5NBg#/@B 5b qqƘ ʸ>[q}b$[dBPH.lٖ~ |i ~pĿS W<;]s2$˵1_J7lL<)۞itMt=~)Gπʏ(%2v==Ń>}bFzʬ|"P)8dBSHq6g|2',N6+DDJ2M fSdFKSh_}73JW)\ukW͗5Ϟ>,C'g_z`TD3QzAp>/s:.p珸<r:$(b&L]{:c}D blK>}TUб1+k&y}mh]!GgDM /s=B|R"yMĀ".^71Zhr]R>9H!%<.gWZ=&9w_}ߧ"hQXw4vzBƼYW/g /;nB4dt*j D͋$!#Afi%)!&fsLkRD$>oPŖ%IMoVⶉJBRբa^b$8GY '˘=%j!ϵ װuFR` Dle ܎?"%OZǽM/#g(v{?K×B-s:ϼs C Ox~DL+?hέ$uNւs ܻמoxE],' |6/~??y޽Uu<:%c/VcrBLmO jVWA@fC&5)=;br}0ǮAe"$iw>t筪{-bbPTZk{oS4#9DŽ f<&h6sEZGJ !zE&,RP{xZ-H I@yngOJ$Ș, Kqư-UQ2Õ' 魟J2ylEQ=wύ"x?{ɳxW Yw+_>dhOXv zel]>L#ӓJ(>[HٽʬynlsCypTRP Ia@Ƶl0$zw9\T(]1Q%|=~ R y_*^ Oc;"(I9  hxz`zD+t=YR 1W4aslVI%+<|0gKѢͳ>IV\'ҿ>zϪk/$vH} onyy:B+ ˂e8m]HXG.=bx(A#]Uɏ5HDLgNR +6aMZ2Y :a$Ux #rj 6Ml؄UEdr7w-&=C3K,%!?y ^V+f.RBє8A1bgB, 59{C\n[- }H*wy# Ae]Iz k@EGLy Ddquz1bmi)eb3?pLמc-Yu>'FO'O )=1ִTI{M!LԲA_Cm}p2+fBx"˜JёzHjۖlA{5O(! щ5=y!2Aa7h<&J7!"X EojscWH!&c`8mG(3ɣuDƠHCD CHIܲ7bѼ*fEZ? ֛ b0"X9>9!@]dZ%aq3~NWsC_yql(%.Jm:cvFx!ĐIkċ_}77j\/n߄&ɷYh! ~MEe_~w;"xsϼ"VHFQ=`^dzxMo =ba0?aV{WW*S˃&;y |*V>͊ Jj?ɛq>{`aBq&Ʀ0&v!.FTlٖ-Xt} D,&x "݅QRc[2,7;qrȍNN{u11g vt\bxU`$KmjcbǞbй yV=a>>`SB-^eȭ_C. YEnݡ}6$ϬLq.L1NIlt8L7m} bL'ݜ+P| GO^DrU˵AW5r5G,N! ! A$CSb9:Όp9up%%BJFFHMg9xYseb;1J ˀIkeG5#BJ~2#L<$t+̑c{ W"Hl03x=s>Oo MtR oEQ:qK'f>g@kl6ettl*#wg;Cү~(o <'W?eTM|xL:B܅,QI=ShJWhbΧҦA]sM\q_JW nBi@Hss9=. V\g}JX|@NqeJij7ayOeE"jPݜZ%s`Og'> > )~eVt"Q Ir,C~Õ|~i0{}tӹH%`qB+󸼦vXe5+ӹGAY߸t]*9Ji2kS-!tsM ιull#bL!OZ;*iT@XG3;x!B̏O%P-U?b+X>KUpP|]S-5PR>0.CM{|YcC:E2>IbW{|xsJk[>b\fܜdTӸM̩jni%?_sJ]9`qQdHR^}*{l MTB7-([`6ʢ[[h>yBDg{=Ebn̆jF~'?'_-Lsou=|(dm[F(L]s.Q JZ"ӊK *ssO'{:_8_y*ـ5Nۆ )$8QdD5fKC_׹1Wl{O l9%Ccl}4ۄGx. }7%k2EyqlaloFwvv +O7%)q1F5;κcas{ڱt|f|I0`ypqZJrhg&FtVg|o'^i{G)04|eNt~wp d)djf yf#B$F)EքMW)֒Qp!6c&Pfr}غßF9²;Ez1*;Z yj4f6 ~]l1OAp%N-$s9@DEhrb;AQ AofEt Yס{=һ q4% Fn4-rBV0fDZ]4y'/2b3v(P5J L2rf=|dZq\BG=0>Y4q@K^"Äd\QsYO 7a¼6?=wVr-Q 6:B` $-Oɷh/Q\ȸE~!d ȨtMp^`dD> <Ϩ̨$j=1qBGtGFbǘɔB!ԹHS M.PlM`5j{,@kNd^"EsLv[`"T,mclL'SJIVAM X@tdJƊe[cf2j6 ?elsc^"Mg\V1`kţfOũ p;3K_C зon1߁z6T8$#. &}?'DG7 IDATZXr \Z*ĄOȗؕM#'8MMb=#%gWkNgdR#Bp8@h*6l64g))TJ3i,l&)A_'SX7p,$A^gdpy^ <5bP,C B T4A: -+y$<@%O˅Q"C P#&|x̣TH&'m2erB_). ;?N ?tsLԺfMUO|Txv6sL^wEN#F'h O}ؘwی)|rΆ !EL̲ܒlf2)4)~I{C }6`6:p9fQ)ZY9TJwOuYD}q L$ JƐWMIZԨHk Urez6X˾l=frR]Ctؐ0L:>}Dx|} !H 'Jrܐym}d28Z˜Q6F6 #עB+02Gz-ʳ9rj[pHs lF[l >=չBs֞bSA pg}KUS Pe5!3<\!?:+{/[0 ?h}W\*|vENסP/|u6OYv :ӓP(ݒy7"&XFYconhlgv_*,L)|.- j~sҝ/ ]22"F:g8(e.Ȓr%(ǘ Odjc=hOw. O^ik#Z( Pi'\. M%.|]hB='.{qM VJ)1*heAY+EJcc/uZȌQ9b&yrww\2(R3)+q>'/`cߗH0zk SD$X,#k~}͎uܖUv~l _ .&>F"KԖB pΡuF@)Ik Xg>4xŃ & $C)*F!>b}KY3xYRVZ>1iUF)LPJ 7+KiY&%t]`bs &\FiudR;5:? *EW 1Kޛ@9>f٢eگPޒQRd9Z+TF==0뿸lXDD!y k2G>+/5i}s,T$% OR$d+U ~sK,aV J@'h<+v| 't{R\Rـ%HU㇖>~ lK! Qh! 7'N'"'ZOd7MsU&AVS$:'71ۿRg5*uCNm4}%m!QJ_44!:8$(cm%j"I֌{a7T"޴Öc0;R%6xH=N^"{j̲ycí= 6ŝcyRͧy>Jvx,h8@S+|i~gS TnڞS &i\ڭTRl=PL CqN,WgsTFS6/эƬCBcdž?ऄ ' xv&vd:~WȬ\\ oT\\b5{oOQB1.F׾ ros_TƬ48WŸN!q6|ט3n.^}1r,ߺ m7/z7/oƜ^gG]9.ؖ\2k߹7PR|v3Xc9ǜv'<WGW%zOUk6'|׸6ܘ+j%&nIRc@)MB2$DM\Pn0&""Tݦv.1B(5xY]l+fx@+CNB&~"l{˲w;!*XDRjjV%K-F{ / 셽7[/xeahVvnEXd͕Sd;ɋs#22Q d ^w}d Ff|udK4d*p+( :2~2 tyo:,$)|[.ﯖ@LhYR90%o%7b:BO_%Ws yG|L?+z{ȗ}IK--m޺P|SPR Bx٘HRn#RѿnXrp"[RX-OHud䠚1KaMt MJJ1B ++#7[0`ޑk̶ `HLo2bp^8fPȬ@d^D#B0J=SdrI**Q5۸dG044µt{t$0O_ x̴czx<{fqH.hlB)[ OߢPD>S6`T <`U$7*Jlۆu"`iބ@a0RJ !iB!EbxҨ3cnT?i@822.c+OEv^{@'y;(s{\ t=D B BAc"BjHCٖXBK[GQU\ɹ|"/b,rU}I]LY-̳HK2PHџ _Kdwxm>s]F`)4g [ a?AFM-f<1B(4 1MX ܂Gj3DB 1%1KI~O*0)o͙Sݸ5g)K%W{~>XdrnUm`j~mJvS瓩߯35檜\xPԺf9N.|^0\xwӛPL!u&6VSOV TWh PBpfO .-5rTcaV^f*A^(JI&S"7wQ΢TVgh0kfH!iU>c m0) f2Oo}@qKXYPg_vLܓcm!KȤ`twlE'sT:Mf~.JOd|d/$aw}vn WkH>G#n^w_:=wVwBrcv _Rgk9ݗ˻\׮lI6s拗Q*qh y1+Wkklv"yO7~S>iB g|j΃B(Y<_}+\jNQM.dzr/<!/cj8 щ'FZ\?I{[QHȰ1G G+&4Q(i#:R9yl@MH_`ŗfAZ4ā[8gP+j8Yrs2g'H6S 5!kD!KQ.uOORLlD$a.l(J2]R̐*<_g@ 8nq9-r=hE32U뒓戓T!s,gL)^?'iv\X8ܤߡp@ -ڈϑ' tv Pʤŭ M@e 2Pz2%6q& F#B@{bv}a ۴HkMd&1%3=\^ɄMRpp<-op"RRd2TS;6X"-L nQeǤ"J(ܧhc,.Z qWT04hiH$I[8B ؘ~l?+[2yL#m]Q(M>z)f a QFBFd8oѱ aFiֶE<%0Ĩ#S&* TJ=ol{ˀb"RD(b t vd"2'#&T h`12pe1t= k=yv; tA]϶PJBbmȴ3g#BĔw_/pmjjd_$k(=SE[ ^>"E]LLd +\R'ϑ_6@J;gLWwBR6"1-K/o\ݻKגMp>oq E\x6F0Z&}L@|&.)3|LB :й61$:m a 8Oo`]68ҹZɌĪIXA~)MFlOTDYQ^$I~Fl: =rH ~I;ˉ˜M ^p^䠄[  +b}NgS*3r[q~>TtuE ; )^gB'wi*]se죍52*~ -$.2c=fdF(젚`uB֮W 9 odDc6ޏ=Jh U`E`,G F)FdAEo~&,q~Bzx~UO(vT?ub>scO1cֵliV'P@f,vd+q㼘Ԕ%33#W?MKno}G$p֟253rU )`CE9g%O^ϩ9G dEJ2]QO 9|om~ͳ;.-%/y1(k|;L]>y/|կqc"_e>93?;2U=sW}dK{p&/KK nwn)P$%fd}$9V %d(hB(,Y% Mn5%W!`Y6yvS4Hd5RA!+Ⱦ'k"y-\ IDATWiEPhYM_Έ{32'NvX1:btYCH@YEPɇ]bcP$J ֛ YdB)JlEoó,Jt[ YKӜgcptAE)s"[,n|\ ӲMȔ[}xa 30E@.WHqCLF*e!#("*DJ%P2҆[1 .vt${4uC9Kzrfy>?"JI!B$Bc Z,J1 A)G/,2$$MS*dFjE-gdJ( tCO1+L%>FtcLSlb$!Z Ib.GfB?CHLXbN.󁾷ܿdd?E`fa JE_w. 8gpk.]gF RRT%FkNON1 m4A Ѻ$W):;o1YS^|plXi\ğ?q\9%^ag2 WJO5DI$On+erۯc'틯q 1c0ٽΒI\gɌH+;HMgܼq_wDY$@"9r;heYu)4,yJ 1 ĸ -pMIxlXɃ;'F ul!3~pa\64$F\ ! H\ dc(vM ".xqE{jF!J8 Eć#i$;VR=>?he:'9@Nc|i\(FsFJJtxRR(lʮ߻`7Y&<;&C 1@J.xz߳K.̳9Fdk縷ٔpx\Kq wF&˟dp>p#~`4KZdTaZvYp<2%Jp}g$T Lg-fR^EUm{(K""E.&r5ˮqJJӃ܂N{euY>r}HiKro:G4ENYIW Ii*'e1lOis\+&Ȣr N4wtMI\'}Ct'3tڹ՞L-yo{Y[dO4B*]CuN )5Wd25HeDNYrF64=j;'8Æ愕]3˦ܜ_6g r]~(ݣ1QcezH tku=d5n5aڥ ]Q2LLd4kB0`Y!QJ:K4gKi(ĘF V Gnp |YyGR 7Vt=Is@:I]!Ds=a9,-W{h) ="MA;rjn`jÃ]zǞ (Y^ hRUu];ۻk)x&~'rhE?47GT-֗xtl|==;F/eVbC↔ ZCmJIqC[Lvhuɵܘ@!ty=Z4a3~I+QrJ%jtrqKxpY!BL9'f؛sX-{f5M|L0b >YRHMV9(.z@7*È!Zڰa]Qd7a |?o񔒺C4AP qѣ"&ykGt0U!&QGjX0فe1b(ey4%6\k{00'/7*;r%5KzгSqz''RJo|7Ɲ<.o}~oчEKAi>o}_M7myy^዗_8"v>Ls\R]oeZoZhҸb$T&y3L2!&Od6vr\)} 4 rc{ :ZdL<=A|60CnOgs6qM7t87{E|^rC+9B$w!O y`9C Cƌ+UZƆۛwi]#C)4=fvay C wG09()[w@",DT(85}%%%4(S='v8wLp,C }ܢ)> 1kT h QBk|uM:vrJÖ\2Q$tͳQ8e8lL1A k !St)iWktPP)po"ȤBD1{&M`?EO w_%8Nڣ>A 7qTGhۖZ@)jnpla `<ȌH%=4 1Bl")ZA59DX`em+K%;ת%L*ʁ0=Jb훞F8C'^ F&pzM۴I4}C KT,8H߲9 Xq"@_$Bf\)q<g5 iw3Kd\0%FJTmbL1Ƞ& !l:|Locd `и>elF#rG_.կ| bdƍG3s@]5,X3ՂS*R]3 '-{e΍-lgcW,iڏ+# ;Gu}J+h vBkS5wMXڒBi-#̏tZ.UW=U7Ƅ|=)@ 廈OΫDUؔunq>!|O*ٜ9nMi9 /-c/S!B B;Z:Weӏ|M-#F a`KoFo33 /.26/Nּ68j$-0UFGT\^#@U~.Jdum;0MQD_rohyMv8y%!rr@׸x,'ѓvsz0 =AzP@2͙x.{\?XK!uB+]Gʔ:O4| ' y9vؐv|K.}Ld9TbC2Z%U $FJN"7n r|g?훿/}hK͟ww9ЗN CHcKʨz`)Rxu F; B˴!RP L9[#%n)|!/KpE17v`լX-E*8-Dae{5tt$ǖl'j H5f8aq>`ٸ-+"F0Y, a๋ZÜga{a 0=' Q:cZ lO.kY TH̱тI!J-bd LL Ώ'Bi3hemeRS9ZDP:, eVDJ |.Zd,>lҋLSsB zÙGF:F۰e&9uH5@mhzKR p#{RWI'z!ZVنhS*bMCJ P䅩gH#Lmx>&]M5Mį!/@B<踳E -d"sv<^7l]Ip(d~qQwD:2gOT,3Vur:(pdH:Q6.|[ӗ~hfeb4ϨgZDRd Oed?}qwؐf\CSv0*#5`4I]IS 2$C1~?̤1y g2O*)ٴH8ǃkCL0MVK=f \yV'iΊdC6vKR0LI "w vb}QTWyi"J'ܟUJ3V"ش ͒.̮V,3 PJ>x }Og;zoH9Q&&Ltg?ħf|P)RAv}E{k{M}=79\%-vzd.>x2* 6D b+T(H $?9i/쥷%7y\kMc+vj3 @m . ÊvdO!!b6t;_X4xN)U$<;jX!~تHNOH[SBůHGiF:g|Dnc92~SG .()Gr_=g!GE!d${"Ay14jZ@ܢtdn 8ԒP$kD.(`\IN1@b ٤B@A*K噩 Sh@)bR3s >@v #(yI)^xn HRcwB7x,iGyIgviKɱi DEqWM ӱe<2ԕW]WJi5t#ȥjI6?ߢ]tZg/iU*dFG ,3:puuzv 0} [gw> OK Xpl s nCm.PA4~hmX,yt![??~ Q*RtW2>>X,} tbQ*OBPu2MX- Z1lA*%o!YU*S`X\BP-e>2\ՃQ1҂Xܢ"l@&h{fEEalՊR6tAGuxD6KRR+u VO <Tªwa) V`=C ոa[\I@Y|$y`̔+}̶<G*9;o0\}6]nv̐0:Va5$T<=ര MPkx\?cD!,ߣ{L?|W٩H;SJTv?y(J t?ʺ.XcǧO.$\bg8e9~;ElÆV)g6yf7\U p{x|U看9 ?oÖ?7U j?']} d*?rG!a>.¦ؕuecNv(o1ҧvldj@zTH.3q!`)]ǀ!J=V+*Y&*t=@Q{ZR!v!ONΖ)+dq oh7=Ήsb?᳈*ု<]p5vaiZw|o)͖;l54L]tɎ(̳B @EHe{-ƌl[kCs})f4P Fi3)߈)?(#*@xطHf&5=Kjv9;Mҵ*.rh7W$P HnfإD%Ҳs ) !B\xo;b=h#v!AntypY~q6'6}Ę!C46;S6#|ƺ8|l= !!FVܲG\KΆ3S֡ H7%8kqi^0$TIU;0.gA. r 1qu,~<%Hdqа6L[ԪN%%UɖO7!hV14~N((v(ǁAhUOlF= ӥ>#(;<_!dǐCX-8)2q% j; Q9EƖ>,.H5JU͛~&}S1ՖUd ~l=0蝤 37CX G%Yd^82"$|'E\P"s<$]Ɖ4'$){גUF{r"e)qjzeLKpд*)+uNHm`% z )LDÈv*g4"u}§H=Hѕc 6 hT'|ǖ~$6y:YV8㰪&a( a? M3~2#O2I{a1bje=4u6rk;.TQO-z o|HA_1P(TROvгd7%dI k 45}?je>{vkPK[oYl&p >8 O`u>B\帼Il[E; t:^+_~_0 7_yAhl;oÇ>PJ1H)Ur%XA1Ӥ*+tPBR&WFRPZS^צUQiT5P6l @쨀" 8Y2hrCa;BX1$;ݵ2F©j  b/wM=-}nI#*Y69d CA³`@Pcj `Jo%)Zۊ|p*X|AXL3d B6 z0].ѓ3cGl/kKv,eqahY)6>RRM+bI;y>}ybб @ߔ,`'i Q{94Skf=.lJX]ħگ T+ۖ`T)V@ rʁ$pEi Ȗ>Lө6T< qWct!ѧ@=1&wYGXeKGohGΐG-g-g8 SE5cfјX&]~.G%Ԏ6QǷLD31ΕD+og;גb9OM к(L֘||:֣y{i œM>pb녍GR%u,X\;INz s"!082XX?nB{~O$چʸkF Xl[:>m?9vK=+[!"ĕt1 I[$ ?%#YCE !IImc6l  a.D]PB4TԠ sj3SL[~*Mş_6l2 _N{Eֽ⟿/L]o~pTsխp7}{~֯reE~{cZ9U͗ꚉ#XV5o0BH?ͯ V'R.FFi&혮>Y,%1Zs\/pGf0YaRHSgG " ?=5iKs1P59tYPcafLmkIɏ#81),wF*)e^%hJ)RNB\|#i-{sO+ٔZ+ $R(ZtuՔCE. 2JUGV{UErb Nd1-͂L"$ad 1fޠ8adJ`#AD)37)g4!6mv2OPLjPR( xgUnJyY}H Y/ό„Ab7* 9j珘L&,s. m2$EOfh2!fR~T >[5c܃ ЈR&)(=ZktKMKnR`g#T\tA F+E8;;p*REoV7H̔(x(unZ5b_&V,%@m!jߠ&Y6mU:k1͢$e4Ԭ9"PWӏ~W_bҗ8M5?NH{AI%o|!?$]ݷbaSr]lv-unW^%7 rμ[y׹\^xENgTjJdnη )EфPKJ@*DbL@T(tk Ak|( lBrqSM8OLS<} Bқ6f%`ʊ-{S҅)wZAW~H/qc/1ҘIVco ,6U%䄏eg=]GǹDZ;O#HyS6Yq qOP0nU D}?}N׸%X%+KRtMq`&0ź!{SǮf~Lg׎!Qc88I'S,ԫȠ,AbS6ҏ6sZκ„|ں%Q\'.?]Cܱhw}+ $$ud*Tr_lIkא3Z43}7V%J7ȫ!/Ib-}1cWM. aSN3 ;h*h̔WebO;츧->.A uScOUOS*Ikj h:0Ā zXxi6r2DbL GCSKEeVS0³~c ScEl4$rpdnBxih$@?x(VhH29B=Y3ԴpA\>|"UKP7uR.w MCm3%}9C*tA}pOh)]KbQu9ukR2$7a 2N))^QBBgU1GH*٧+kqVT&z#PgQ4y7 h15.4ZQ`0q5}w7>lP:HcrC%iRIab vQnZ l ^ h Ж8t r߃}1%.;GcnH@\h%txc>$\Ln[ae?j}0䲱.v9/H 7)Km+!HPGSZٜm^撣Y9B{·Kz_=N+BH|'ԓU&\ ggbE[vg;x3N+:iCBHAIiX 4J92( fUY΢z[9QܝO=y?}}`B` 7o.Ş;,N^.U )B3,x%BLn;^[ @S_3QJ45YE";DZ:fn֗XS}ru*"7, [y>:#(0ptsU ".Y)ejSt~9 5Ue$el S-M(E K84r+"V:v)W3أ+}jfBKYRsE#k'fXXOT͜v.^'r͌9ҥ=c#F{HL]k*R AeD Az@m9 ӪT%@O3{5s3$¶|<:p y\7/V.ŊiHFn(pS+Bꊘˣ)f#[4D;<ov 0:q} #)Uz .uĐ B uG3QZ۶|YkN4s rj%]SYSHZd͉&RZANk&m;a h|2pob%\75r }#,D/ok 6ln~ OZkfAe!kuΦ̆5?|j}Q_gkm |>/M|  uojD1bǵܸ46ּXkַװʽW]ͫ_>rXn5/zCwR%ZYEQ&GA[u Az~g`~4a8 G!w]aDLrjjS mG00GnN}õ/SrT?#172nf:sd/hMCZcI}tyw kQS3-=hT JT2/AMǂr2!{.eR4LNhrD1朶vX;"+]rF;yM505zc2s:'ثs=zNE/Y\҉4Vތʩy&W?{*VL-\{*]m3ԺffO(_w״r#v & {BKL%> #w %"Hؒ99dr|eR0ʜ/sV~Efs803S1}س0蚅; pu$(%y>)Qy30JC*S v /jTҨ% xR J;> ”N?1\˔s(''FWʙ=. TD sb!~`cZNeAlnh7qTD^HwLasz'|B-ℭ~$/(N ЩuauMa[. ~k~._6 Jb=21Jjhڴa;ܲW0\IU eCvpxQTaG4jL2%Si3'wh-,6*LّiVLYac( Z/N (A]\7r94*If"iN\R@ȓʪ')'p"X3R} 8 IDAT9 3u$fӭmV->y0zy7>e2M_`tZ'c X+lf=w"STφyϭOG 3^T`>\Sqr~ur%& vhc. ;aCA2NT&>$@ 0+Ua{ɧ;߱ WSD7(0jB#5Tc_Wӆo= k,O-mH{h="↔/-W&f W٘vs9+tF >ѧ[Q1} 9o1wl֧8XEZBr\i%2uSВǠD0|RhjQL]'D`0vr([,Uѐ]R$UܒJ)īL5 $| "V TAYŧ[}$40LbQǿ4Cl} }kKmT!ae G\pB)c#"R;zV.2׆4WCfqo9L+؅SZq 3l%,4) LT$ٳr58 3(%1[b52"qѐ۵\n.93G\G@o֜)RsqΔ;{P@vl &WhqP z lT|LLYڽL\a+-hNwtk:BM=wC?"W IapanR]O,f_0kZ_q|pnBJr*%ZC5Dݣs$I7B ̦ v] g3&˰9MG߅nwpѨ .!$%B31f}F_#>@U/B!_%6$>X̍(yY]$>#/0FaO?c~7zl6%rk BSE9qtqBk0k6[BT]Ϧ-]\/isE<&k49FRդ XPVatQAك7a7ʳإmHx iQKhL{*3E ۔am yΑaH"gpXtKB&$ Q/Œ ͖[\@[0l Y^͗IqdhsYtez|({QK\drpծp+;% pBPz0Ƣxه(e^$QO} 1i0,a{E+aK6qB`#.q}=̠)c)Ɵc7t46IU~Zf߿OP$D@eι$r?YZw9 oCy~tcl]h5}9r1<{+B,+=X|BQSAS3{Ž}+Ž;`bش;|?a 5*G H`+~lK6P=Zh{_ 1ʨ ip0RMeJT)z 3 q`臈JMY& ipO{`6kT1սM_/耭@1=,삅]$_GDLB`j%{$2'պ=htS2%"$"霪3Z<ɒou|KO_SFǚ v(E)2X L@@+i5S&ѰMlÜGc(Cg{G!G͒J 9dһ3(t >3kzod7R`Q+!)|LGɞe:fPw%gٲ{pյ -h꧖PO&EDb} ئUY+tor!'SO~m gJrR=.jhLn2X|~/ZQK6WLev:LN,<г%qed#OcqzÝ`TB롃GLTr/z26ƅ݆/6uiKWhf9d 02P?0{5N4252ɶt%(oHlInk3I^7/( H"j}J|S$kM>z<dᖻ"Zzձʄl-Ղe=É@${ 2S+4rbN""Γ6i2D0\D1Ɩ-$1JdоPF]D,ʢAEt Wz3r`{CSs nb6KvWXg)CaЅ!~%fߊ)'d4 =؜^v y@87E6lۋbJ5H.XWSikKm4f‘;|8>y"28(i`{n\~TtTa+k|̏Ҽs񩓑]Xc@mI;t]髴Ŕ*C8RJc)y֣)%j0ǃw/%ثqZ(@]KTg2I?J)43clv;b#:9Jd~(|ʬBβBDNfKL~{e3]c&:󏙬>W 7cq^"ŦC2b؆|u8deB{|rӠgQ b# ke`e/XhEmlS&a,;ӭ'sT$Q^ %|j+Ttk_Uȁ%qlÖ8z9ܰ}wCQ<*9n9W N uGtBYw%h^8x5&g6\rrzAϠ>Ss 6仼 )kHCvs7gbNUR,jIZԘD튿$[rTؤ^,;>ʍgYw-sٟ l\yش-^?T2 -Qj*r`ݯJX`%/1DUL&/a:aWR`(ٙ2ā`'FZ\dO[ѦV K h=pa+s o?QU^ڼypd9cv[/?y}|GG?DkeMS'F796Ͼe2WЪaZzr) 밒)9lŮL^d]GWOS?}\4`nأg}Inhvx ʐ Dc E/&#s)|G)A}U16jT8[cÄ9~'aȂZլ0;G¢}d/ii9'Ga,Iݷ#~0EByOz}?E)yaa吉CWfg%P H7b__XI8>nv@c+vc-h*gaɪ"s6TƶS,3]DQtGML>VH[BS9!F.X,qFQMI=4b㻟{L5Ua>%=(}@~_,WW\ukR!.7lbGו=Pb>VgC2ZMk0p=OEaW4Ä;W,uEHddl)"g>I1SKm-uUyJ ? \\H)q|tmRԂS5>Ɇ~`yQ( uSثv 0gAk)3aܫE4u]QUf?eyo;CeUU=nnEQEla?ڰ70A B)ؔٔn==UuUVUV1ݸ}bȩz`psdFĹggセK8z45\c1]p{^ݣ,\X4)U6lpuB|">VA4UQpttăloW\ƹq⏈DM6;)۔",/tpfG6}>֥d`GC\i2()g×X+2',CJc/c~@A6B;&{WP?;h?/#1FtGAYNuiә˗_K/~:B 7yk F3#a>[vrNxVXk=I"GH1p0=I'T@_Ȳ^u)u>:OUd?{N竘"m8j*cI!R{˷2A%'bbTpIF "#5%]X)%6s9tC.V[fQ1& A˪%PH47.C M]LX)-{nQ1pfhaB@E/BȺmJjnױ9x8eҜsZ*jjҭ'c{wJt{L("G!,z,?Ƚ^ 9 %pD>~Y}DG XYla7O1}A;fфo%ef ڏIޗ~IͣINKp(C P2Jdz=?ZjB1J>ބltNْ)ǮJh~l$z ֑<'HW2.-_y`Ο][jCgK\ݢQ[n-nfCcRjĞY.קؿ'O,PȺ'|0aablk̛s7Ȗʔ +Bn}`7?O٫c͎HRͷ7~cyn?s,?C*s+/^y7/]y&.Sݷ~s+? Ƿ_|7ܥo#>q7-AE>?)Ϊv [XKt}V %K1-T}+(ݻK6Bm8og/l]Ww{ϝ}_m.)*B>R mȎk(MTg يmUlи4șcJ-]gO!M(!Fɚ^g;Sw놐1Xm mqV0 J*hTbWw23萩 Êw|pgǁx0˕%\`&mR#/)!4?P(Nʅ(cIC{7HFAגr]:SKPg/E'BI`r +.{7ƭK)4Q8@e<>[Q]B9uvH%(D- &>^çWsR;PA8A4Z>(ՅĬх;ʊMgH&y_KЌH?I5R-6!fc6taE29c瘽3GόRzjbceͬgh pNiCČ)Tfqum!J1t.p||B4\ڤK(5HpZ>"Cޱ6 G=-ci^M9Q2d8s)2t. Mu4[RcC Q,>uD!yv-51D\ӱ/ ![dd4jCeZ1kc1[702k;#Hg\Š,N|A$̦'(! &Aw4;%bHgZVy$҈]:!Gk-:Ѕ!%2hΰN [0o[t-KG1bKEb0C cﯣ&u`%ըn>x7[KD=*!!ňO4Mt`h_e3_-xWޣZ{i UUqb+4Da JI0d R+픙]Z A"M ޑ8]).2 cT'i$Q.{c429NӗBL#RD! .9Gs b v*'Ԣ׭}Yܫb֦ۮvj|uG2u~cj_ebT@HlS$-B$Z c1J|e"Ճ_IB<,}q1A"YD^5be~K+m,g;}SEG::Jjb Tf͊w#m%"ATCRceJ#ś>nD*UQlP--ZV~8u^8XEGټ&Є#kg*`ܥ ->chXf]ٔh,:3dsR,󘋭ĵ-'ޱZÊ>~}aOS|>4G:66]2b Th%Zm Cb8-_p!˩')'u ƀYL>XO"6! 5`%ۀP-bƐywY{QO- ^|tgh9ykrl^7W?•_|pT~ɯK n{_cV|Oe|oS??|yfr?ϴ<7/k}!^_?|lj)W+/ /c`]w37ab=abĔ%&֞\4a$rh/|vhk Cif8bՄ'^zc IDATW VjfCfT-Fz.kQ UbĔXՙA2"Bzo;ZbTK ݊Rg¨,I`$gmyCXv+V]ML -CGVAPBH)DIDxiڭhBDjÇt'8~UR>M,\?*UP"M,ٱ[U3.YaI3|g .32Uh%9Ӣװ$&;jR~wpro"n'4:aT#j`rQ1J )o2$HK)kzNdf͚u7graB7}m + >@':tx.SD %8֔s΀B15cɒr}{vD2IH PJe[P u"cU~)dsԬyR;ɄaQPMK8=!d 14~Q{Ff]vKF:[mӞdc` "}$+ TT-BMpU{YvDD멃<l`8:-dvԺo v.k02rBtX=fdgZf?әRqQv0B%stx$Wu5kHD|*Ȕ[trxgs.avE.rh#pu\ :;X7-%ǁbX|L,I"1_ &k0D"pDK8YDŚ̾ZIE\~7ڤ^y:/0z 06m0AװEUDT5k;kTFH2 D VBA㩴`^,TCҷ S S[Wj KBeaXV/|շ[ノwqv7wQ@*!-(˂5ʲn:whQ`bˋ!Y%Vsq/;VP=K)6p.|`-e3P<y[NLqs(TɺddFL%ILl!G1EĆ!*QV#1,!Ӗ.6,Ü:Vl*1 &>Z% L̄;Oe::[mn'L#3a!ڊ tJ6$\C%) Ks4 A/B3DyQS>&;@|cv?K$Zzƺh,PbxdHKUm*hC Q`a$,ͲG! i4 :V=)ۆ_mlðH) UrBH!IGA|FS]rCmd#Ke\옹$ZfIEcxHE`)G7"*]eC5D ˴$0?JS,ܜ&0[yjݶ \\:y>;rq Qn!?AH@+Fz?,Z?\ hY9 ł1,OK룩 ?i62c6 ҄\}d0Ẅ́+z²l56Yެ:D̀uEnCWR%PF ,ˎT 7uh_,N([ipAɮclFܘ? TYIgtS*Y3kP%k:K?CIo6|x(|tߧ܏#,}*SgW~r7_f>4G[׶_7>+i~g _JZq=> )uuɽk?qK"LԊ HR$Z8@v- R:[X(12=q";-nR,hE?x^Jd0o|4 Kvh9` >RDFVMDm도2%7sSeI"h[ 桿Iٙ]tH)1a(crwE@J㢢K"qΘvahJY@|ZBgc##)稹rW#W'<3I=6m 6,Cq̬;ayמ]FKs/|w . v?{710mNS1g _%"-qpNIm g?FںB\$ F(DHGQrHr̴Jmn/ UkѷV(61>.?̔X% 0t1MN2g&gJ)!<FvxQL5!Θ>Dr#R>^Kq!( E áceAL5)-$Eii*B8 -pAR"&I ٯEBb…"kZ";jkC L).4|rt1q0DfÄ?vY;s3}41,cL nfiwJp0Pcm5CqۘwugjhcusT-&k,3= eц(.2I"V݊&4HfhIZ ZR` ,]Q̑9:-H$R>кD\zNdHA"(O-2IJQ`9'#^$02 N\jTA<DZIvW5;;#G[!{!=HlN(LA ƣ9 ٥{` Ղ…Jh:W#uQJYW> w߃ G[.ihLԈ x'Ho{lj|;' zRЦX'dl$:80m#Z8bLL.Ha,d] qy b&RBb!{[\FOow'ȋϾ+/;箓bD+-,>D@Ƞb < 7^=%ŞK2h H%Jb&XF$gKb:"F:;+% ,u,㜓]t!IOՐݜ)UqTUe=AI(iEˊYEIM'ݧ gfn ZƜ )1rJr/RC.J0񓾅|PKd@DŽ攰h>jb:ߣvaIC0Κ=)3dg7|GLe^ k^\p #6t 4ʓw7FWqVeY3E_!T8mIԷ1hу&%hC9M9о * gc&/(Kڐ6NzIҞ6!H0sfج 1$W](RHyH-1c9{/D3%2b&DN-Ղ$J)" ͏H+UNXkHCJq^\%>wwct'ƐR*Dl`qti~ &vScY L"m&D'сFlzD(9G\dY`⤛2mό*/pq5[9Ј'?|-tfYGOu&1 QR1mY9NjQaIiRehYI݂Ez>rpEX T>5~" s7nS്댵u )6hq:'20A OhtbGK{MH3Y (RDIé⤭xxHd hCllV> )ţ߰̚!Y7j>qcn )'&O?>}KaF8qƞ2Ԅ@=UqjJ`AI l zfݜ6Z(Q@1ݺ7 qkgF?H<: cg2f\'66y}_ w.oqc0%Jw~Q1aXX]g&;dyec4o6&W_xfHE4q|qx@:9"Ύ^"wup" ͘!.QTVL{;/)xk?([IfVj@-;RtB ($.y hd:[7KZj)RI2)c$$71|3bf66,E(qdne0Sӟ8t1h+RhA!:;VZRJR3#nAڳH# >yo@;QzMRf<b֭X9>y U21k,L+ihCHyD 33^/Jd) DgrBUX%ur4H+b4(6JB;w0 kSH 6X򉻀0 SI [E 2AY1FI*kCjP˄OLc#BI,}bQ7@ݛ{`JobueIJUbDSп@(icKaeY"m“"TʭC56im ֤#FkٸDj.1)`$ml}ų/n!1+A#[SQ%C!)mm mL7Fa,ƨbo|p q&; D09NF!|ory B V ks\Bd@yH8 I]?WTbGv@c7dP 1 F^SU|E ]e{p-)!v B#gU&<]"Mh8n)HBG;Zr#mOK2P|"r"`XR$8h\0oT=;:inmq}۽P$#-JH\h[U;bgc!,ge;g KXPBFR@ %h- 12rw-9[팵-&:'T ~'$w)҄o/OnJJJU>-q Dֵ"yGLfPR"6D#Lne.AC/򇽾wV!%1> MWw0r%5CSq;of'O;`7F<Fk۟b͌qK?xvG<@ /k/W9i> |~ue"'OgWnUnK^a:uv2# V@#i[BJ|0í&D̘J,/}H.f$qR22F\xߛpGLMUG*۳mD>)h薒4h,8&W)u2|"/-/@Xu N>=NHm1/G0DK4Ou1> f2B@S?{K˰YyE#Rx[w˻_q1ݣ7x%.WWxnU}!Zd[]_g>{/<3 #DMD-Wpx@}8=jp򳰳E.'.Xis_BLbSZQlځ9 N߈tIS⸝e PjcѳKԄE piO疄N=(]όImr<\9TzDYl!9(Q@Hkt'o+<?sK9^RHi(_;f.^g#Y2wsBz2c5>˭ ۰[֊5Jy23ԢR4mMgIRvX.WrE8-z:J5% IQ#;Cb6pD:HP9VYJO{fnR!EL܊W?: =_7/"x$x@k8k eePZ!§H%)B8-Z)(9@~?3G/3Ŋh(%0F"Ѷ<]ȭJ0p'gǨ匴}}oCJ 3`i,,^ZI9(Tfs^45YEǤԋH de$cJWCe!a1EGm?SL嚀7-!=bbhQQ1612:7Y9<0J tV@@y#{eB'Л9'&)&eFYzHjd( T &RʂBq]@PW*K+ 98FZRz+(luNbU>V!(1b=#_g𬗋y qzb9~/Q !R7)KBC(BZݧlSâeCA' BSi@9v^KVxEXSJS!*Ę7pZj #-e@ KR`e#mX! [BBu,Si,݂&c%LQd>.R+5A:;`ՕڂXT6>`p]Be&t$ Rg"X; )@ :J=C'ƈw'KӚf d>f}oqVHp\E*?ctqv\r #ÆPD)d]gLM94O1" 3s3'0EigW.[1D *UH s ?Ĺ,8U_\UhCy{ik? >~v@HqW>ƿֿ_o_K~Sٕ! 5()a/mE OIO||tD"$O'$Q&E:?FBsΣ IDATPko07^*q3q-7 q+ /q?_w jsV3\t8R(E) ~W( ,H\ Heb2rl5?Ź2oEfGbH{&bHJ> HahF @ GЙ΢34Y.;X/;~}ݼ˃&~ `|GZCZ*=湵iB>'!" |ޗXt3.)  Kë_ T\퀀kg.Ib ;G˂{9]pxG(K58PaGb>L._G\KgIFDްtKB/JGR"&4>3=7jB53UBUn!bD[faJtCxHG IH[&h7HA)Zg8R0ơ F{=lٲFz R`BJs9BRqQGt}2tYVTUG'/XK9cP6`-nF!-_o,\=CZG-ZEE!!7gDI%NH@n[ˬ*Q¦!KbY"BJV9ŌrSҚƯrg:w!)Rݓ-upfc-аZʗgpVx-ܾ^7i$63SϘlj0>&{E|89[S^nkCNf 3 X[_cm<{֔VpT7ZЂ渦zNT9Z#oӌ6G>| Ȁp!EN%(Yctm%abn*Bl$MtwW |JɈb8d\R\NHX²3QQ#uG JC^w24MX)TEeM`,0bq|j'SDj{tɑ"TzCDȠH#31l%AQ/jFAjKtEITV^wÝVrk N=2Xv,l$@b"+rDOz#MB@KX=sPD.R W>~~!H cƆtm@)@H#eA:zq u&Y(ca#_{Әwog{wg=3{&%o"B N$9 $|$=vյ볝p^&ejUU,^|xc'!)8N>>2x0ƘkdڭihCGj0TaOD=k5gK)q1 ]f^{P9UYa'09[b&,PCX[\Z8b؋q=>޾M zͺ٣1#͌2e#`?ʻm֘B1H-Qz8[-hv Xׄ((GdKxx[ yILT# JX E=L=}!0Φ@e$P5+aylrʰpFqamiT%! 1˓T]良VOcg.|gf`9 $w$P$Pk *ȷY+Ws8M:0rXaB M#iȟ|M,})ZLp` '`ٯ2 m2<7^Gn\Ii \!ԈI~qPrG_q&Z""ɀM~?˗W8x{YnNѫGJ}?H>6\ݏo} 1Ѝ U׌/&XocmG"G[klh'xI[{nrY6'Skxځu\dN_@dG?H(7n3=?+zZ&߽B>u8c痢lyvٳͷn,W_ac6⥋^:/"޻'a4how\,*_7b:~kןmo?_:ϯ .tm/g?OI)ŜifH%Αۀ_ܦk0 L7* )%;:s/gdYX Z#hlh6C"X+bDa8vy޴XL9ل>$L]²]3Waq +9|ysJo]p0]%X) ђC)"eZ2?̶Q>K!G+m B@;3S2 \; lDL6Pzeį뿄 />G0CV=wm/QUѦz"{eWcs:}Mom CB9GUdlXczzB,dΟ Y=1Ń}F I/LϹ1:?*"5H%^}It /$qA]Le}Bdϙ#=b'߁ΰg}" Rpr\ǭ*ޭZp=vcԄA6p\c"6gb&Y&z^t\*MXMg6J/|[<.C(DlFUaǞYnpvtU]KKÔBNu,+  ,v@9 ' g˖HSl:DI[=BH{9&ld3fL],jlcY9wxEēKȡ2Y1KSoKV$b)۸{d5<ߢ#0]Iu>3C{`4ce喴M?J^4>繁:KKtIdV\uñ4!|[-!6-v7R15>=?tTFԎݲHMKziU(*ZkW}( MVrAp7!GtNe; ԡ<QL#BOLk튓TX%$M*+sT$U=t&T|'"QAFTP'wsx_}˳49M=#[tvI~pW#]ᵣ"?;ĥY./{˭{>o]P\ZZxMZSOo]bV|6_KZ9>)y.kde#2+ʉ{b'y~ےL>u_zϣ \g_s积{A)s YߟOhC֎H:=2*F@ I?h$9FLG#)H2Ywg{Wb`T(͒U/~s9(<}("Z ۜ Ỿk'X䙍æ`kt-)uAa|7?Js9.o(12o=F>IrLl廏-vvvmLqK^ʡN|?M4Ȇ>.T[ Ƴ\I&ܾu(|OaH|SK&!eL&c.]?_s>{ÃF{4mǫWy啗t2Jyƿs.??]M.‘eiEE#_W^odmں'~G?W[_>OYĐ1yf"c6&]Y~fNu*fc'Y]=~ jPX|gdDyCg]۱\n|?b4X+-/|.l筽ex*5sTa-+閸5H1hl0()dE>*SaV8JA*12U$Q]wc򒸔E")TF ܩoo5CLwh1aӻZh]OڐK2f;4~H! h#M{D\DhI99{FLmQZl">`":H/Ҝ>S;oB+;}#8=HhǎD$<=Я,Gwl`LR<̻#wDҧAnhbCg$_AK=}BꏆhWSf@-YK4LL>R>z| \]>?~vE@fr:]  -=X۽S-mC;MHN *)aY[(xLF¿L1?r|p ńK 4啣PBq}*gm7#ҿ ;Yw繵|[_gw0Z'_ܥ㟹}3w^0o,.1g_LvHyh`qby.ҳ \8F-dJ ]K%K)uFe*XqpR4*wړ"ɠ61@"!E@+= [Uۖ ܯGL$-}A،54VqP\h\@av7gf̢r{>wgyf l7[w~6?x{_+h?ykubn}ss_ v߼{2c:C{2iU<),|dA r kz2ae>xclpllfw B '6p=@SDY4='7[SVܫX\FE)&tҲ=]VLHAHl9!̊sTeNsaLc%BIw/\{, d:p#~~jj}* /˂χA1&/VcbAۻglnnpynz7oK/s7 ,i:-H5JvzLAnj~ L{=HWXej4”IJչlBƳ3V\ ggSW5m\^$%%qw5.GK lMjHlԗ9W,WVF_w46UmoPWw~\޽>teJWJZ nqqzO)Fizb2.&N7Q`Դܽqjk,(Viydy/OrrE ̷:K/݇Ӹ!w IeD*E}Bq|jf•U0N*аP6Iۍ)n<7Iƒo[`*ҙEǼfS sԸ<'#&]A: ,Y&Y-yG 'Fȡ9N;b|=%7Q{/R5{8B`Cd{=ݴv =3Q MBZѥ8#=ie̶h| Z2u!|KJb9BzA+ v0u6>&vAXfJg[nEa0{ΫH2v`f%RL̔zGST?FO[_TQ\:}:Jn(&|C )gPRpAO_8\^@yʶW6e+ϙGk<"J)Wg9_pv={a.קOحjS ^@ uzrՓ@Ǵ%s*J\q-Z8kg1fߢkToquv}J{H!xh{KzZf81$o@>x ]N:]F8DS)z,{[TN6o"Hr4 >R娛+f)ꩇ"Ddؐ{)t8sLc+e96sGy&)$[6Ȧiت6iv2fTPTHZu{oDj._[0!8ùǐBJ::Ca;5uݰwpԚ; @!3I+tK]Bh6mL pm|G =үecF2#j]sXW MH}s5Z*DH>8G1R%Ƚ_ ل nGGG/ |<RLf3Q@Hծ;=!WҵAkLds<׮>K#_Fw!tØdXnDI>aC/LPDd-hLbK x -1"d=3P[hk +2Q! 1ry,L;s%MLwǡM[nxd4^0X|bkŪ[9DeEF <Š~GH_kx#9VOnRILEلuY9Xc*Ε5ﱡO2O.*%B%x<}lQDAwHmbFI-)T@ SzNghm#fJaDNWXoYB)<.LPJe2y A̒Np-J*zhDXQB8'+>vBDhhr-'?>FeȶBz'zFgޓ!aPHtksn;䊋rY#/3r VݒvQUƑQZ{F vJOV(,#DhmྵX4Fiqv>"Jd6F gߓD5{bD+%7d)ȕN^&cIBR h@:\cY[2qA<ĕ?&z#\,f#u'4mrR |61PEbڢ $IV<ڦeqfQ16h\~Jף1Be$ _0]ߧZL{Ï.S" =&U#Fr݃esfZD"B ȟuY j6)S ps3(aӘ)zZڷTD=!dr Wd2!-Pܻ|,X"EGǔ=9c]يr}gl~I#'Ą,ߠv 0vIHRxVSQe|Lhi|؃vIJ~7";4vPdR Bƪ6s ,G.˥aPJN~qȺ>S)1w0Bk|u&hz"per>[)">tx߱M ߍ5>8,ZH.c.!k-I/]zY]H϶>;{+D|+`oѓBR$[@m;L/Ĵ|t6F(y% ,#:<=DZq\O:b^c(Kf[t>)?0DJ^1bFDLnT."'71JDϊqɤl%/jVa'/>1#זL>{C:}. 򉩦^}oQѲ_H Px/O!}++6K$JDpĐR|'' pz!z,j!z cxyC0!NƄ<y)0+LhLc2&jJ .9yӆNt^uOkv_Tz:v9$hqO  $k<><*;H2#I>}8RN2a1`=Z(*e0bX7|G&N 92#P㣥GZvx6d$ң!3="jOXN9BQ.!y'yBPk~ I3s)n`zmaX n ("Ao j_Sԡ>y/CƤP(TX%ئ-9M^S_qV XvRRVɂ٤ԣ޳tKڐsXգ@n12*$#3E7 *1ࠩyfYQg,ߵzQ'b2O~s[@yo-of2'?v`7>reDM|E菾F4|k)U<*9{ҋLgc޺qj3W0ݚګ7h!hZ$X.Wt}tRe%M!U~QlÍ6ɛl)DmʞāYyšrOH=Nxɣ!%BuDKIKZ1i\1El,EX%oH2 lnmR( Jd SCNޥdH}\ܰ~N*X?ajIW5nݢ/: V*pFӳTĻ7{wt Ug@S H :d:crִmRAc5W.0(16NJ6* ۻ,o,E-(fR X; DX6(r :Ilq6fKOV4vIBTjB!5|UbdHkKtohM%30*ŀk"eMkbb~'bDXz2nmpPsx y.i]ñ=cQк\A_aV,U%zűl`T$8 9!&\4cCnI K^V8S#vLLA ԨEkE É"%'E ǑaY$0rvweR\@ZIn"PA*fͪ%`}j&>Z (cd@8\ԦF6 HvFs2H#jJkIjlM$*C=rt{ljȶ$r"!{yc&1lхaVOL ;V+ZT.*&49h֒w}<gq qAx`)|pm ]oRc331&w)׷QljHL&= QwL/z|Yaj{!ScIR}ÿ/ч!Cڤ( V=R&Bmbi{]HM+!"W%xI"ckŔ6fj|L=fB? TJyQ2ɦ|Gx|L8Bh>yBdIf`o ̖=N2pC8).GG D|"Bvw{L q+0xtHf)M^ox!az DYˇ7aGw_ݿL&g$>#rtLzIX(} d<>ĤM6;\>"Jp=jn{{]ryzeկq1{M0Ę||!b ȔA gmb|dsRhN$AT#Ҧʁs60~I֬ %o EFi(')1 |O.mj&:E@f,ICXĪ26`d]BDlR'w!%1-f+킽Ryvၬ^x6Zl> }T s7Ly& g 2eخft^^0 c&Z]=fYӯmfLǚYdL JÝS\t Qj46z#!y )126OLB%k+M1@ˁIRr$4A|vK:oQ"ɝ"5-VR!D$4Egj`$Ǥ!Fv\$paٽV:C -rhzs[7ߺI5ڮH0B"$&t]=o'6B!zzgm۱1Qe/DDHa4Kmx DP 1dQ) ɟ, Bgi3󖾷x!O<#x:]7\tαvLEi| (]|9"/r?? 3^9snb<O˯;7ȥ8svx̵W&Ȩ箳Z,Xk >O#bśoE\Oΰׯsxx+NUUll#&31;HALRB/k&e-z]׾{k)J%_H`MQ"$>ó"*G P-*.&'O]3 EIt# Logk,U8N&>)!-]\ _cZe^,y#CJ $I)mGlc@^d9r<7>D!]&%a-uӝb+8Jb{Aa ]FK~jgQd@EC-uĮ4YSszmOFG,WM'L#+!l' ?Aa}$1K,2?HC!<6y)WGlf6.xH |cCals45Z'-FPZC[Yܕ9Z1z PRN#khV\E3HS;k&qvBĤډ02cvΪ]ɖWTSP4 yY24zF$1QJKucz_ˮc* #z8rXZMegqPK (AÚirfHXm ?4(va4A.P"223"<\]q#RWe5X4EZ{x^syW0:F1c$z!!$vl#TEV.$v>XPhJ-\ Tz*69cHL11f4 l ! ]*>aTXcKhHW:b{X="?Q`J:/iw3 #2ĭb<; e .3 h.к $TJl玹Ƒ]tec;al'W,{p5>(24zd"T6!`}~BYJϹO%% 슐Wj(RkIk,>4uK(L>_lVzEF-btcBg{oU-8Yo#]$C *XTtk̫-_4On(9pN ֈ;l/\@jǒĘ.ט/zDRWJ_0OV!f?3E}{۳/|8ޘ\_OA*õkx}dK51 Ֆi}OOlYhɷ9 =֮Dsmޱ;e`HH~$J(@JJe@Upŋ ֮vCpW]04AY$z me&Db`y:&V!cug'20ٹW8Gkżap~}~*/2Cl,SIi S$w#h|DB+BD%=⣢Few[Jeʖz<&^Ʋ,2$6v-[lfJfՕ 1x.u7|vX)$a$"*be}u9Xsg3C^B֠D# l6CcOP7cA;BY_R=XF}؛PVxx/x?pFn,.X<\|`7f7Zum$QQt,hGӨhB.ihIj%RbUR Ad֗>yI#QVdz2$K9"%DdNWGaI9ktb`'J*aamIE#m3J<~LLɶJ4Z)wrnjO!.6]t0z5'(erxv^tf-]"Jc$g,-n% g_S(SeF[n(LܿKZPHބzm7ޫZB@)5x9??G#QqMr̺[X eQFI HYҎ%LV(G]UtI_=k3*+ɞgKҒt #Sn~ -i~ IDATiFkFuͨ[".D:FuAa5PD:amTHQ2c3B?B쎡 s+WOafEq{z)H aS0\NJ4bdl:7G*&{S~AWEzT0p00eT)dpfR9_Ɇ.nNgRJ&zJtk*х 6)14`xmCLܩ§1#cZŢ!Khgh#A9J7:Xc2.)% wc:6"((PgQq?陟R"锥g/"j^TSdgh{ T imϢu!IơuXIBϳm隢iҐZ}g))J]ј1c;.ƈRȰ@l";?!qt֟҇ʿ ElwE$noOۗ*u *BO*8wgS)V+Ud}^!ZNoqͷ_ə8TK_-*iR(hRNKc҄! 2RTG-!M)=؈/Ftc~;P@eYYR>4)e eixs !%BST<&Z?NWruxF"<$|z?}K_3^~䬔x[|+T,#xK@œ_Iwa[qr@ XۄjHv5ܵT$DK4]?'o!@c?s+RDaBr2:GCBJ@֪D${]yϾ1Er}>`T#%h2:_f? XCf@Nb L^ Zx|atiԁ[|kH2cQ1/>d@G$񫋆k&; c iK%Xi )XHc&,0ί;'ˑ(&9Z9H2$=I4+Ҁ P=GHg!S`zbJ$IhQWm !_kf݅>ቀSNΦ9N`pqxvHXFg<sv~|GRdh;_Hm" 7-NK"'b!3LF8?{~'3&]\}l9&)d8P:(Zc!@ίKzM(9. j–t7cy}$f0DxC0cr\$)VƁ.Zʪ~IL13tq )"0H VnÊ1͵k'Gp}bEkC::,3*0: 6k*!~̍zzs ܼ)U\[Fl&Kk 2o= >i [4cß>|+Ol[!1G V%(=)>_~R›bRM؞7P sredz٣(2%pV8@B"&Ǥbt'~rGR@f!Hn0T$_2+ۖmXiDHU֋ iN-. P2;%R~ӳVW Je~_Q]l* k#Cqs=Rf°lWT?A]z"fG!m;l6VYfR@*ݐZ7G4al Ř#FTTzAYqZn083b"=6^qlPwk`"gCd"ttKK7P{ ![>F"B J]b]b&RǛ_q;̈́Ri&V({{6B("J(oz͚aa-4޼VsEjzS#U"& ,]0KuT?)A@ԁ8£@$MX$R RN_Ĭ@*< =,%+-OIΟwYݣyL]on`!Nv1"Dz3(:"R.:\O5yD "h4J Zά[cgevYч](9ep%kO{:Q=b( 1 Hd*H.F;OU|sθh?3{{\4F8cI!~A%w飗ӎlQ5^6_ߠM(>!|GVCetuZLxJVQve.Bék *0!(]>oR5ْLԥ1)A5[aaHGhAa;~#|N2y6җ8)z4aHQ-Xu ՈDKÖDE--YdsD0q ctbB*4rؗyu&O VF1AA _>%8 e| :VaE5\PqQkZ$ ѢT hkpN~&%&|OGڞr\n7?S+qw_;)C_'GL'x.rncq~C.N.&%74.8k|#]Uk 2uZy:`dFԢP_ѪF }o'1/Ie1@4NB<3^@;\9cP_AFѳx[Tg> wLa+*5ƫ&o.vlp\3ˈ1 #3"X5m>0Xszaỵ!tE"ӰP=.}`X-Q:QڰVwNהZPC|h"pE7&Q<)(#;2hY-$(,̽>\EхO*[S:;ȣ@붬̄ۤws~!ivRM]^Z[hffR-D-^p(7YiTyEO(YvVl}uZs}߀?r8~PFoZm!Q A!EY'?ӏ>ͬs]'99ubRQL-]e6L smY&cZCap\x&%Jl{4)Uy*CGbsu.\t4FS gK>:I.: }-MBh[28C.dFA & bRg;S XJ<;3ܼUQ\#ט<˹nH,݊[3S>|̍6~wӛ&i|}>Cp-%pC7g5:PMgl-4>F>];>YN'&vGDUD&{oOk~ɣvj*`#KThh!h@4.^f^} .=noBHh#H-q*N;<tޗ_V2?JUG!E H88[,(OjLa ~P=}"[O~DZ,z2yS|Q7EO+j]1+ǔ*$ x~y> 2ʖR"7Cٶ(̠I^/+B l܊`.S|}=gO3WEAo--II##)=#TyczϹxآ'`gG *3kj+>%YBSDY c~̊ȍ1a?V~Űd4;wzV:j×.vDX&eRQ |5o;ǻk`_ʊjfT&t;KLK&`wރNV";u}inM[ D-z'.3\$U`Bl:~|?>>+K OD EBOe^]>.<Ǖ J)ML ( a68iXw!+տBJnb1 _/d!@Y_J]rsa9zwm<:?4}(t{l%Ą+v`39/6O[ QJKSPk:M^DžگXn_OV JheC+ `g 8@ 0gk,(f^;}]6ÞuboV}|d6ŽDS*4}sE<bO[4l?C՜߾J G1yR(qz¢;cN1Jsc1xx r tbxm|=@Y U"U;֜+϶q)N\KmQgs(Yfmzn:67ט=0PF8xB,ʫ{N:fӴ~U- .GΡ"EX Pt/Xg R7`Heg,YPj0Zqܽ;t#8=A_Q߼|O麖2u81[79>+~1>yLG51<:A*h_05tjp&![oPku~Kg^lQnD *T5ES\1|!;*OreOdBa״]GXFx $VIES:@r 14;_ɍƯX{nw [EGH\BvP;(&k4rt!kSI(M522?s$l|ǧ=q)})fO9Ac4TG(sG#i8\g1\D3$bgkG$浛USV/TM4QI%~!Mz> htE}cjcDRQR^dۭyWꝿb4_/On;UKJY.GwϾsv }{eͿH-4/uLmQo^njݮުOoiS4tnwWFvL÷,)!()CNBo֌҆L˿}f\)s쐝U;_jS`!xj@ūN6v7VC$6|Y+$iu>bVqoqaĖadTv;(3~]>[ dzjak"+޺AuzJy=&nlCy(1jNJ/уh\R<\.[OgbE,b'c$"O :,ROR5!( -rl:j,F+tPZq&)јpds4ˢ,JzrRDN>⬿C epsDL?;%Zc% Cc kuY}Jx0Ml+-عptB`*hQtUB6Kw?h zB g=ɂ;Sr,*Lw]o6l Lf.hc*$c;O ]I.e$\ wa*H}=P&Poa;Ӻ9 -N!alZ0xKj=}˴^ISS{vb*<vʞI+$FXPWWeIJ| sbpkt9Fgp~T5{2҇iZפ7ޥYV,h,Hj v^pqK D>iTi(%\buR:LGH IDATO! d6_{)*SSWQ%_ms0 V%%Jf /tsMmx"73uJ#AA0DR̲lMǔ=]rwJ9_uSCG.ӏC򘝏ݥOiwJKvôtABQ\eC:8&NwHL$!%j$mzu'{$ Ƕ f j*deWoL-B_C9y1 LJ~8n\iZ CޙB h*.EH=vÃBlf' B|B h8$% }"lTDȑ hIZ(b)͌fi,1D~ռ.lQ^5˥گP"؎Œ[~yG{5ݺt4{5%j5A}_c$UQoTk<_Z4c;&Dυˀ_ &v`ӓ5IE5o28ra:|8EGbl\o_2<u{Ao9~Tѽ J6~Ӓ$('R#a6DHJPFPEG(3׎c2BTh ֡F84Sy"LI.j(ڮ ! q2:'{4uJ w,b pQeQ/Ž..6+)APb)%vӆF՘w+鲐0*"47/l w_zf\zyhI|okg J#N(A}Ѧ`VM38 IRDKI^T80)L_/ w cZ4K%Sڅ$W`v I2O%2([` _Mʸd& 9ƨ5I.{$(dSX@oWBn:A'Ǥ!`0d_P mU .EB#Vk3JT3unCk/np%rTww 3/麻gbZ0;jU**J(LRgqUD;R)bNJol*iJjcܱ/rRao)/jL J%fG4uEaScw{eY!ۤhad>t aرva~j%`4޷4&RVldZtW%Q&"{aJ-!_MC-$*'#1ĐvBN6Ui3Her9^4CHnظ-gzf̴i l6e)4שo,.;bgh C"Me.\N4f٧#*=a9 TMNI%DJEئ 2I.W["BR)aT[ae`1o0zLpC_QHy,{Opya5ֻ>o~(xo36,O/X^JӌG8QxDiVΠ-HN6Ii1.QM%=*lZ)';TR!ꫀ.1,זvEnI\+^r\ETʓıg,R !1uQ"fO bߺCq,*Kg+\H쳯\[?1$ ^蘗4fDHRWYȖ3g6xyd7c &c!+C =ۢkdsAZ_@F)QgGÛă[| ``9,Z9lv>&ҞM\#F;%>37gVb hAE6*Ēt)++ M]X[༣]nvAy)2`ƖI8w=ԓ@VRTw 㢠` #;Y Le]Քz;1]#`w+ }=m8[1afOۿd/J՟Cu9ir/]Hb&riR4;X$:sEd>%eAp8D;T Dʍt p.A4"غs!8KrZNٵ14m|!`Ct^yh=on3''_F;~p/-&ujٛWZv1I-s=s"4MSB !~FD%AaO3d}JԖWO^zNL (r;o)TA{c^~{))EBbߙ@`d$|MZ**@ Rt:Fi*SJ#DJdJdYP@J`@f!& OPhF)UGm{|l۶DȢaӕ(9*=G'$yP|fGPA H .ve|%"F#j]1xjν)w;|\1EzSXQTEExH{B"@: {D W"5WwE,H|FҊHGG:bxPCڃ,9귰EA7KM9gSlZC)w=ۧ]=K>BA]gq@f%< MBhMu$:Iz>Xq=B'BZGD;iCHeR̸dw!L&UVUUmfC)ͨ!-ϡ*PP -lfz,l^)@hBC bCJ(<\$HyLc L+[Խc!JfF|ã= }c-iR ?_@:[S.!9ATE)0g9?_Q 1ݶ# !XUOK{4>IjLY"d¢b n*B%,:/$^(P2Q3PxeIXVÉƛ<'\qN'Y6,;(-z4o"́$:€O> jZ13T C`U-mq>J3p#xv4盚M=ʌGYgzng ؛G@ﷸ ΰ]J:D{'Da <͎H^$.ĺw.$69SeNy@f['dr#M@I-^9,sD&( CL$YEi!*QI,pC5hŦt@C ۀց'șQK $)gs&Vae)(i1KVRȂ.ttHQqقd栖ID6i=J 75cC7}(W@ʔoc?2HKiytL0BZiþG C=Z}gj]33σ UcyV>~O*j=E 0Z-zBj+eu`J,q Hb"D BBBsDTH OFA+FIFJ#q ]ʟ9}*SDͰCi%#%Iky)~/J;&.XJ(fF^Ҿ z9 I1C)sz߯k{ȕd&nd (MId)@%>͈h0A[.;Ű|p}6':4,E9 fno UXRS1t= ]o)]RfSV,FK/+c _Ji+u#[R/^15: {4a97Dͮ7<#ŀOlmt9@$DeJ&_MS!$[λ+֯~[JKeIQ+&'%ղb΂jY2V{G׏82?BitF5Hibn@j1]ہ%6LYARJޱ~c^5 ֳ3W4VC9*2H]fIM!9Cf94=ƫJΙ)0zd8^R@b@(E}JG-%Bffp6] e>DK٨11b~d,c2wYSS˂ke[Wb=[S6[D ]RyL,O ss( ]7;c/%Kfr1HBiHaAɄy]vc(kP>h Ei۞qWDT:GZ`k'y3} tH5Z3pzt̠fP ,)$m XSR7)~|EH1e6D,"9(%uN 1JCk;LO#M=RY?D.A)s+C&-4Cpt#Eju3 ǟC-o ΍lʇ_H?/~I9tn4;l=m:TDe%E]Sz*UbHA &=Tݣܞ({&^JIII*TAQg'{́Uo[JlA$D =76R[zv01hI CDλuf l9*b,O7B'q`$D ?ģ$7 eewĖ ( Jk<ԼRjխ qТERܾ8qP=CQ_}NSC w!fv)o&RRqOh]Q; 4ʢc69帰~e4ӢhgmYARVJ!F C ib Dw/Q3.Q* Ws>gعe~F}TNL* ]@jVR,S6N9>)ebR$@ )##dBaV"1zLRw d)~8&hJd;^ǀ]"azQ*[Фƃ57ȃ* *"NFfvqyJ}|h1 DJ yF!)TӺп|h|;݁b}죏pN88dsȻsbBnðY̦?˾]S ;dpD<*."*42_.)F@0Sff.Ѣ`w=w:LM &HJep(eM-AB#H)Ŏ>(ካ.0ў &%Uwr{$==|T@? НAghRXVӴ=Jg$J ﰂ}3lI1 E"mvo N+ %hܖ (F:^&2€;ߔ`7n"h }(TTS|4F3L̿!oIP?e8yXq8ADyW^qmn 3;tsh)PiT750WDa5qG.g$!3rTH9`+Fs9zRsOЛKc>i0Y j>h?^UX_nRr 5ChU -uUS){X(jbeW,;!%8Z.HŞs8"$7`MŠ;zl e)ʍi(TEkÖ>6(:ٿMio%/UEJK(Ue?2Rba($aMpl1ʒkhC>T&qE[~>u\n^|((QP֦lY IDAT?b7kJIO8 >}))(ݢe/ϛoO9Ph״> ' ;GTȻ{/?8فkw@S"ʝq8Oahd{m$Bc -;J1!i}k!*6Q-8{ ӳ:5Vx=zFϒ6 ]aԁ* UJ@e,dY]qL 8`51bsjK:XVgŔ!4BL s1["ǨJrzoN%kZgb#;e^1+Ra@li.Fo6849ޣ׍8VRfO6rw }j۱;&2~AWzՒH ˳M~?x\H1ƒD;g5+ ˁVM QrZxHuqbQY{~07?m0X(D$'{1v HphZn@,&·qM7?Ӻdw@ٳ( =eB!RNNQ0xq >6[v3t+ ݔIW*XLjcQN7& UƑs R IAdg,.:> BqݡfvrJ1ɾXQ#G& ɯ|Utx_9w_Y;Lܩ)- e)%DXQ~b9Mp)0'la¢ Ԋ"!|oIh#\?DigK_=N+\bG 9d/$G#vr@Ĺca?EG/_-)=y]7 }5)_|ӏA{}jb1jI#JBr\`#&u"|fǜTwPBS`; j.0*g2Yeڥ QSSJS3h 7MYƫҚR-X|5baZ|a$rHg !{$ZԪ>FXv#*U !3OfR3 v{@'VPCHIYx;*)T~GH>vzLL*fA[R,M*W/k=3|t3y?p9qo~3Ov ?sO~+o&+IU* q禭z#-aUqRF1/am=OER̹;8fh) @Dr2l@Zey| ?hR BFf1'4W;~vw7q<Q CբƇDbhwl,G[T-L'obő%\id}i{}8a?A,?d-hsMLդOܫgQ>}{u=2Bb9px;wVspnK~ B{ Ur:9l`ƷLx$x~~}_FHCp>&vNUBJTiv#@Ze"ϐWwLS$zbޅ 13%BtaN)4ڗxqL*BWJ-^NDFµL"Mv-#K"i4}B0+WT38nE{I2SWI C=2ߥG/ÿ_//򍏿MOGOãgo|wߴ(5$XEKGE/Kt9liÊP; E= z4=lP~LDkIѹ_| @ Z"чRߙQYJkkLM䳅P2'HҼrbʟ !EZ7εY%$g9ݏT!sW >/eѺǨ)ˢԼyH{Ft)xҺ\`x/v‡+>%@{wtzPV[콥 ^Y*BI[ij_=F\>{Ka::3|W?GD9b'\vO醆o[]ͽ]fEɐsmه(.WrJkr:(芹r[ eyxм$I"?O1{{vba0faPb_Yt*jRKb$ٶ,%.8-}  Yrdjb ^@"(6Ў鉓FO:dx{[ I:7q)LE)$VnC #/rږ:@6oOhVn؈7?f]mWB ƭ8׾cx;GG+4`2G̖Jy$ZK BjK>k4z(NJ\H%GFc(mlhJ# +{Qumd [?9@*S Sْ |o@.teUpg )6v< JI&{AQV]}]p-Jh-"E Dդ _}w矲.I|JHc yz@h48':yN gh!QpH]Z.9KR)q<6ͫka7[`ĭ1 eOQH-hZ-@G?8N?a?1{O4wɊ7_`Jƚ3>{)#|}+P95'S)ܟ;]KT|n/ "jvI[5C} 16>\y<|مRIĆWo;> 'nV=}|t<$ɶUviyf`%%*i+v@) zX)@f 1Jc.KjCPYyl愉naT Vz%pmI}b/ vwQs#OIuvFY~kLLI?9 1yWӪ tjBRA}|3LUn%xG>mYZIய[m<H[ Y  8J+8:q\=xvR)U 3G cF4K NF೽{ ﯎Y%wlw)[;%1 x\t$!yGBŁ]Ct꼶 f~Y)/I 7bBA[O(sХE=U"Hq;BbedxSI*]l_SiIThbKQxXRMJy ch}n1f]޴qVGMMf|C21i&cus; f7Y(r#5)1DS_]察cӗ7?\={'oS>zs{`O8[?n؞%D&-~|f 'HNqDr@DB+jaR"Dˀ=Rl`3ʼnI}:HYk@U ;]P; />csM.5yr!еw{:_XtSJaf'K+R=w *b@ُ-l 2PIDLOȬnt'a6F ~9O=TX3ļK|J 'v%)A#ұ Bhxb+^c L ˃}Jmo6Eбz:EU#cсF {n snM OB X)RD!*ٶi;k9>T2W_AY˘&()45j VVXU5Î^Ce_=A C7@uc9FY7VZ&z螱s{ ѹ#8s.a=]{hؤ-,̀ܯP)&:f3Q9 #F >#۱} 4i@ A=2z@0`U8Yw[xGCǝŊm)dž&_:{G;"Qw 3h,Gqp; 7K? }:FPa88A@4ϺnnAJJ tc~(ՁXp##b'9,@BD]l:k[)v%I`msfZKv`9`i=rEm&DŽs#AR"E6L"_C̿Jv^xօTL]y"Q 2W )9Y7(0Z"Ĺgb$ZF#+3d,5r졮I 6 &$"2`W"Ȳ|.=vO[`,)$;`$m%m=cY'mهݰɟi4 ٓyZcu+T!rc$)'eeBc$mӃAJ,bV R*Bpݐiٯw!eA׻j`*] 1!{3@"Y!0#[Tc .uOlT ) wI?wp~D1{^1 H1p)WF|Ooٿb'wߣ+'C8}fѓX`bn5_~}t{F$RjIk[ݰa9|=?QǒGKCn*)dӋ@pM&\0Z!HdhA#@hpVE )KT +( @L86%aUnctCAJJ}SUy;G 9fh|$!هHI9Z)$f3R ܫ?`ʪ<]_Z"vPA m ?fr+2y{ :U 16Q _΍dwj?[|2lג@"$EarJ4q$Z6 nQ޷řQ +J|#p=6Md &9'h_z^L5%mZzWY>6n)+fzi}QZn0|[cKtyO>eO[,3V1;ћ:p~̊*u"Dف3|T(mHtd fZa-~p)!qgǁxr+֠vf:+&EBH2 c`6% \aFnZ.!'ōl$ȓ; }-؍xW$F >xfuY~1>{ /{o+Iv}[.w[UɖzHaƖ 6`` bz_d?Wx )Y"E6lvžÉ{oUWU/1L u3fF;wPwY G;HtG Z(,Et1LJyiuRZV5M.q o1׬0B EȞy2(c0[J(iLb7ې =!M?2I 3Rd'c:޲RN1eWٷG/ ҹDn/rOxp#xG<_S7h [K!)Y8 \ YE5—t@4="lI`nͼ}*N%$RIVfcŷI22pB 8!}1Tau2.M aMct1Z33d0<"FBje }nkۚ_> B s0hYQDpn>+%ZHTn++y)늒YEEⅩ٣g٥Qm?0:w}%W0J`+˱T0Dn̜_ZR2s)n%7W,HPn} ,rYrb[#˞B k"`  <i6h .-Y! Ip_oK[t/o&_1.s.- U8{vMs6nZC2x0Z3J#gd!Pz|>:"$k2J%NH#[JX 99ܻ fJw"J5Luڴ1>S ?eu=ۇ$%" C5[eeUaL62*SP9e&&`[l_3l>hD!rlXBдUxŎOS-*ľgu H}" Cͪ-וJNLLdٮFT<sLy ˺ݢ`(ac_̴ R}Rz8`30nwB́Sܳ'xĭl}ĝb'}.MPF91'&4,͒Fvl#}?1V[1 $tQz^cw(YUQI}au8O^aaY-nO&Mt~ .n.Bym堶 d%ܯ JHU|$P1R4iQ{A*E^z&9/]5! v"Jf]IJ弤%GkƍퟕwkqVAo&Pٝ5KӆeQw iJ#J#B9,jK6(X}rVLo۩.N;ݖwEn$ls)&%E2kfQyb fܓ'ԄÓK G&8j2 i6Lv !o;Gԧf8e;X0!\|aċ\aj)S5 |5<T]$1ET47 zR|| :8K0eA@l)ʄ̨r ͼL3\?ޓZ;p\rLab18l.a7 UўŪphEա"|,r1 RFđlZ~ m`E0i-xu Cx,jAb fB/,4 bv ""+hGB>ǥUCؖrꘌ`;CJcH M*)1UMZyeH~9]w{|-ja[SFȂUJU( ^7tTTU kYRSfUp? 1yTRlQJcuš=dw1?x;iN(jtGp<*.B(tE_Xd.0T"ƿN°Кwwy:>+_/&c\R4KP hr0x|c@Wk.V~fiiXY,L4rfdr h R Ig:4,%Z dMWɭF~;gȪ!W4Fp\-9 IcbMouMzI>z1a|ΒGZZLÉa>ɻ.ϟGȉ>KTh!彝T-B.{t a$O)"uj[ʔӍc8ALJ3Z`) T R133$r%?\W-s)L!-pLIpB"Fd8b6H!`T|[u TDv,*#`&Y`F #SXTt\ Hay>U\#Ke-9 шiKЄTU/1Fo>nWkmcd ),df(г_,LmT*pp\Yw*k$  GL25{E/O!'ap{MRJ |s?nQjOZU%8iX\ Xzo3]!DB?y?oNBbt}쐃dW49gPŻGHY\P#eUR0HE[œب7 VZ|>*+rɑAW_B\o|=tȂVו+*ל4q>r`,$@W%Jf0+a[n rqx1!ld4 ԋ+5>|]P UFПQݣzP&:LςZ#U͌+W+#AzC5>-Ys.nY$1gvtZ #%iӞ6xhE'ӳ#- )f/7ZѶcRd}Y;F8Z,0J̽H9mH%u6R2k*Y1Gq(Nn!oLfzә3>cOd2ߡr,V6PM*UIvjpt٤VYdkwre: \!`D>B+$cD{)SB!DLRTBjY57HsCWW/%$FUHo`$J Rj *_$o?P,-*.rjկ "J uU)EK> cׯH-GlO駁^ -%C) 貐)**hRܑO#!uX?y_+$o!ӛ߿W&ǜfV=5>ER$H#|6'R! i@,!:;0j#ͬցV 3DXPIzaq_PFM/d>\qâO7'VTBEk,͚r:ǵDO /(]c4%|RHVvMg;.9iu[5DR`%C:*SSE%*] RnJdI*tH1b~|FrIDgên1nG&R$jf{L;2EFr ui03nrL9$DF׷ɤ39;Ad&rsKgIyND:iBL$(OL(x@cKBdδJ>"kȺ D9\tc F5IVT0~1cdwGR$4z@SI o~P(i_"I#.-DŽ&GB01z.Ć#Kl>۰ߛo)>. >)+=DD1m`8Eϑ.fhFԇjMjÅLEYK/"L++*S5{܌TbkE#2)R"Fp)zfIgfiDJPJbd-hV'7YF:ڨff"bK'lg93c(sƵvM$wj~۔Y3)M2!嘨p(Cm nZ}{Oh6D (%ƹ@aۍJz(ea-ԺFXTlS Gɹ442|w A1$\?;L 1g*[#]PQ Dc4T$sj?QEǔq1&RĔX[!'?].KH.Ed#!;r(>gXT.e'h3*>F=_S)% xrffVRa,4#HPk7V pIX%O9|(-+xʕ,7 VfE0 8yxmN1-}薅^b[eƷ#3! iD1f/BJ^f~;Hn*O^9YS@90y;\ E9CN)4cP1X,~\Y c/ XR:76p1]5qȊ92=.=ޱ:i1VArl%-dH!g ^ѧ8q=קbե:(6=g3L2\ z D"xF|@$V[Qn@'e!ކ&m ZaE "<@) *A0K@?uC__l3jUX^sT>;7__Uieػ=b"L?3@bxp}f`%8AHFZX5TuFSل1 H%;iY$Cֈl0o/ަbQ'N#7Q) m%MiDCU[& *)a^h՜|fn"*Vo`Ή>Dۈ5!@ n(Qߜ 8ℑ-f0őkw{wS|u-y<*A?cL^ *;#kr'@Z]d|DaDdEP/8AvIٓD,N#,NQԴ4~Gֺ41ld !%sr؁w6 ?lF;D#) u5] \Pd\%@ٯD՗,Pԕ1p4;!}ʘ7RNNsr5-*5TJ`Հgu;lR*+J2orJ s!>iKhoBimEe甛-FRl1ZIH)qH@e9eCSJ܍AJ TVn-ےX &f`ָZ[{IDT'292)rԉ\}Q\H  9S}ypJ|R3?#"zFD]ֱ1B! K2GV#\ M/+tkbp<}A20޽ֿpAJTDY_[a@%2x禟9.B,Z 7s%HM0#m|s9%VsZdmYf&~Om+ھ$[SyևkyMX$R2'*lϢjuJ2zȄL!%Rk\. B_Wy#J3^(*[6H)bWG<{F{&ܞakK5 ]vAeFDwaܿmwk93EA p4Bqh5L|wɔjȣDŽYX3La>iUKΙڲ집>ml7JgFc12#m9n֬hv]>N960narU ~JS\ se?AM4{ݓflKT2}rW(J\z@J Mfɽޝ-yv~oK?)@ɩ{)Hs;д6&88e&5dx0x+I[2wܿ+du JW)_PXj vXy1Y?C&ewQ\@AwLgZLiŁ8FTs hYBk 3}(؈"#DZ_z3/ƽYk??OߜO@ޛ~i]M5➫iBIapך`0:^y+aT6 VҜ Bd(`gCbȉ/q3ba"C~X/Q-%#N!cMv!$'1'ݗÄͶQߦ0HS.ҿ)Ng2aY/"i>Шeas4 )s=۩$Mqb?@&iH6%G`7׉Vx0>ٶ%haFsi",<{q=}κ}mP%9DF0W45.zS0#yؼDr1s 䀑+ 8j@Z(3GTL&!@'</ͪfED Aٸ^ M-X!'\"?#GGwC[p,YZrHR^bc.$)c$XеFkPWd)Ek_I$sk6$hI <ܱKp'Ȁ<sӹW2hcg{G ju )$nXƴPՊs::7ao}R8<%^aBDj֟GU[)4-ҽó-Ԍa$N/dU x1R~jw3trH`ZwxAA0GR1v_'8YB%ј{tt5 ÇcF<%CTsĨ>H?_7{ IDAT_,38wreM4d +iϸ;^IfbcӐ>IEEAu78^A,e t&DT MjV4Vrg6%*Kc,.M1FQW_|hͬ:;v._/0 G냯})`yn8TKfrb>#.cW3C(@zV4~D*^OmGTaBJ9[x/{ jPT}ƢkĈ?@#cL |P-Y%t !c:" YO %4 a@5 2eCN~G-}k"B G۰g F:ہႋ<㲣-fjqF,o (_u ׌a@IM#r20z巭 cw <{oTYoo hmij \ V ?H4QKUȕRx'?)w`e%HuSoJ~ÿ/רٻ>>ƥ-ߓ?C0FȂpKnu[Ht_]DlG:2UnfOT  b]m_l;2/7(A|Ny}SHQXNoHnmHbS;b֜w^RIQ]6>SY|Ǡ,~eIe"|c`)%.KR[!'U+h_DLg5ceɨ=~Fm[L G2F0cQj8"]oxo)0|gU& ~~1Yyƅ$C8<&<ľ!: τ8=.2P?A[meci㹻AsF 薔ŀpY` U tJg,KȊ@m}Jd2O#cex }WҰs׸8!TaalK2)gjjr1]^cVnnX$ V !<^?|sƱrS}{翸?{k=>c{aɏ5t.~O>q f ~sܰ|0{n@ʒ_g C9@HS$/|jU,ͫ,F5~Hig_mo+TM9\Je Gc q]Kcyfy͠r CoLn]ϒ9fz\,l}~ 6,~3ǏX75["Rc&ZWn>GK:_>zBJp|MUo礘1RNlZUb.وSb\`-ؒr&9uxL'{|2dQ )3T*́UD.~X7io!&ڐ3!ńJMvm =\nwiYw= BT~W)Hf<:HM0M  ,0~C~K/gc~2T='犟|c=Yx9Vkj۾III]؏x#F` yhdjЉ%rR{M[ǟNabD]+~,ҥoz#-nB2%GȎԶ _H n߇j]v-B |X-J Q2u]h[XBSNSʣ'v{.7 ;x324$!W2}%tai(Q"8lxˡ]R۲kIuHHLeؓ*c&ġm"`eaNi!^&ytQcǪ;]-日" ߥ--fe"w>W\()-]<{ dϞr~q[0ZVV(}O2 P6dzZ"TQ$p!1:/(HbNWg+~y3xl@e$"f**vC'u} \@[P$H+HS'̓y (ulǔ~ ~)7 )*S nAuհZ/ikHs:>cg $2-^j_<VLQӨ%RKUBoŽ>ǿNe2ct HoꦏVxXbLx LY/-YWh}̠jjK&_/?ҟ2gϯyܡf\:tǂ%Y?}0.n9hbK/G_b Q } 9̂k hMY>\p2ĿJ`ˋə~#wY=k0 T:RxGr.@']<nj=U%9>,-*0&ƳGϜlX"X~x6TǑ&tc$. FXNU"9wghiظk0Di Û]c:0U'Ԫ_҇߰ꈽ9 @Ԫ:DJ1K@ ],[=0w>3CEw\nitu)OX,NIuu4kAaҦ9BEhfxlaْi涧٭d ƪ"nsgwņՃ9vi>{O] {08}^a#{3L8>?;9{8'G!9sJ3rH>hmgkA颥^{gHKx#+)2X[ 3 Y(~Us&qqs5 f^"#W㖜<1%*U0ʐC9 82 Q`@3O3&qTzCM@i4o֩V(x54] R [b5ϚsVA_Oab*q劀DIAU oTg@FcdpΑBDj|PU-N <0Z@DNRu$o&OOOZ6-_>)8:b*5 u]Z̨Vi'Q#G9_\aZ[0R ŀx)?6TMy{8WsNƛaǂ&] 5 &ɷcihXE`/@2'ؔGpH:DA?'1/' e3)s)#Y݈T *KUUX'|^aA)Me5BdDXZ+0HxI<: 1dHMe As8xBH%H7\!݌l65aO?^||U臑?1W3~㿥{C>8?g~fI%']3ݞ@݁#O}knmluV5uU#C\kqbe W֙ qݦ+Bq;W/T+è7s# *cq޳H8>$.rfG'Fw (i[e yG ϻg,삹Ywc)j v۸5_>MZ ༾Oٔݴ/-jBUd1&P]Mj3c;ˎg[|@f7lx1`E@ObY!0W.9{ 1|1ŏsN`TȻ=C_lA};0oPa&[@5ZoG"#[r}:Osq w`e4UE]+xA7aHI -Jc|s0BZ,ؤ{W8"g9#'3.ȽkȮA" rȄ"p#ӿr'V1;SUsx^m5JJR3#a_ &Ӻ(PA@6TTD[ *-2oJMR(q^JG ZJ(t} i@PXf% 3=ce-glS.=ؔœӲ8q9 ـ?VpӨ>UJC(VJ!Fi74.MM)WÝ?^oIij!:!T*D"b6,BiJc '5I =%ֆ ]wf3IFk5[Jz("ϓo()EɆ U-#gP$e؄-q.Hn=yCp9\@[r q(مuhq8JH;ȂYq9^\Y$=7U'\ /BnK(}2 ruK2<}eC<ʖw~Ozl[|)XY4 *x1B!@sɗ}059:KN`[+b.'<ߡT=1uIn /.x@[zII,CߓHTmM̒gSYT^_=cZ5G4[P=Þv|~)^&$7?%ټ="G&+T< qtl;9?[&LB} PBD;CB4RI|H._I\Ϯ Rgpmh8I(G\l+:D>Yΐ"SlR x V.Ă9$UeG{-g_"3|S?.KVBO?hO~o5qBNtYbuCΉݸj5!g3~u,ZՈ(vRJ*kچ1 ѲG\cSИ*7%19# !XII+0= "kݳ4M冓{Vq5c xȔ5 v 5dx4S*n==;m6/cX0s|XxɅ$GSwF/cY"njUc| n]Med"+ԼwSj.0\Hg|gz&H 2E*ٽveĈU3e?z;ƍc\;.^a+KV}f0>rO.鮉?G>;G}1j! ixsݍC DW=I%"8X>j0z^f-2!d0GVFZpT/>gYs6?;pJR(_%K I#gH7R.)YRJjk\j)cv_{l 'H.!b%kZRqO t],b〜e(+%BYQgY;uR4!2t'G$4u#:K }*)$!o?sD xki^ U Pޔ\{)+Mz@;rQ K[zZcA{wɓ,GOR61l}ldz{Ɠ_7l)ӏ,`F~]q)0D m48޳HP_|Ay+RB𝿢(eԓ$vD@_i 2hf*)sw`{dt`dUiA!*~}@V%$TҊ#.Dmff ~@U`Mպ5M1!692)a%O.189?3BJŲ^PiԂH්ydcjɒȚ2>6AQ1eY0$/)`i-gVj2@~W9tl'ڊxy:ckZْAFCK"S9Z4XQ(ahՂ1ujбuk|풕)APoÚ17yF66 dfbZ&|H;g$9ƴԺB q[rNe)M ˉ [A .JhRDJϑY %H$8 F5$2dKL698ĐHpauo՟_.?ö>(GOx{Xzϓ9$čn<`$m$5yܶ$z )9.+ISbv]iR.r8t֖JW&gR h4Dʹ|ʈ碔%L+J%+kp+)QZCTsQZ40`Bin%B@k=c4̜.QR N V9q J{'D[D9+v1"7*rLk#᳛gK =B IDATv~K_hK9A>uϨ?Cd"Lli|:JPQRo'?ʛù5U)1qc'5]ʤ b}weՠ8+L (G**($9Ł,1iIt1g?mCb!?Fj_|ſ??xI3Ǟ4<%2Ka~u&$||,yKUH V`pD"etl Y%O^WIePzL%*EI1Y~=TTD@#1L {10(ٺ8m !pu}M[tfv |TngtkXx%35ca%׌q2*Yq gc7Yh|r0`N&X#<j{JH&_R*cR*J@Jx3WbK%3.œ(a5UE1[ώĹs-39v.< .,X@C4 `8p^R$ii ɢjy8ygbw a<:?`lZQ c Ro@)!G8W5ߕ6 zVvE|0od;xdD0ԲFIR L S-(hJc"[WKASRɄ8@5p>!OedF'KN5.3sSVV<qHkw6Vγsw!!R@+p|L?#O9E3B *OAyiWZVMֽ&y̗ŢF/ _°&% s]tU74mS)%jh41C&rHϔ80:͉vE7ɔu8B,1jk%'*q>cB)ɲѴ u7kN)î~ڿ\34 8H2Ŕ}sp^1ƑߔIG+@Ω.f1yJPH۟yj~(@9AxĔV,Lhh|Hh)n%7:7821@7\˜$ F#jv툧C*Em( rSQ ̺Em<]2SaD 6 !^>>A ^75>)/f5Gz2( R͌ȐG̠ޣB^y>y\$ Ƣ"aD2KQt;="#s"$~;KΨڴbF7H9OZE ntfcYǑ'F፟ݳ@^p$ 9,,=ǻ*R[=g& ~C jN0VF  AIQ1 ;(?\zWc* cd^Wd{dM#cL 1BJKaeK!BE`&%{c8 Ȟ?C %hr‽HǁtmQBhHi^T-3' 3WÞ5x҉eERdZD\|~ųϞ11g]$fHkIU2u]sp=C-9'p_sN}WHR*Id+DtfNzb|Zմm??- +{D̑'W5)uklټՃ圉!BQg@ptġ#WA댑*nj~E]*vcyVrdi0-Ez 97HD,j&7DkrofA! R3ӒV5!2 n{279d |~+(6/c_gMvzhѲ?o=TX|bz[R.o)Aʂ$[iDDrzVw 5ib^zyׄ7&)R8uiRJEvZf+КUViE≒s*l % [+@+_b ը)3m$eqf ܤFbJ޿jI8-sBfT zI~1.\ iV |foQ}d ^@aJH1&e̱R"n4NX}^6o3Cilr /vTW=G% IQub2gDT5M2[\x?d$-- ώ͸aoٻ=uC,:ip!pT1fB2]I-kRNlܖ!3fvk-rSJ(Sa럙W,{a:< +Þ!Ĝ8Ď #VkؕCTDꏡ#ˌH#!>rДJ!*AʒZ >jLɣRpV3maL}^cOyTu*9r&R_nS&r!=%iJ18ܘ^%UUáF+Ժb1¾0S>_#mam9"7R)OU [*88P!`MaUڪ0rRpWJYX[quyaXH6[Sӳ owѶB~bH>i,<2?/|ݏ ȒC7b[ qL/=̈zf>Ğ!|YsDǺ! sa`5!΢K9 q;\cA(50<9q)%񚵿Wl7J$.I}<0+ K0REa5qRKI)" FidUlHUT߽́Wmtͭ 02 a7BfQHK0iyǤ)@5%KU-]-2>sWRQeD% GcR y -3=J3<vr|szfRI1ɋZg2Ą%ϿT@x~ԂvVdkcqiIjTEaXX) uErwd+"e[FVuy'ΐs$'y<;ca.ЯO:OFAМhmKUkEk0Jd1ƟU_>cY Ժ _K*bʾ[6W&|˂} $x0X)E]ϙ >3 +J7ir )0CJ B#4{.MEkn^Yþx RJ2d9*t{n #Oh9װ<,ǧeWwAE:FƗ#?{^D[g!Ѳ"O|gղfbQXTKdJhƌ}@Ec}C)B P~IV0!<Vʒ}rxoCfY9RMrbdڌZUԪ[`TbHͲZq. ɱLjZp5 +;Bvîx&GJy3.7gh%iMؑsfnf$sbtKb-/$$,pid#j+V@~yxIfH$YYU?t9Q$t0>#.t8Ћ(ԙ<}ɭu)!q7q#3D)9ikH}3&O<߿#Ec nA 7G(¶Tu ia[fwÚ1vTff*&c )U>b$&rg-W C+W̛Vő3ِ`8efZS;9$3a1B@dW#Vy ʓE"hD{33T5OEEe'%4sk T͜F54NfVԄ\:)GPTXhء㖴84`O9xZn DD)3#{ںb6VbxAʡHdd@E|~;%3HxUXuZ.!˹P^_R"X|/a!bH(Y.-UeBbbTMW̍&bv"C]!nY7H(c,IeQ&L5꾤R5R TV0y۽q8N1N !8DPt1}R>AA}7]2-Tȋ_3cxJ)8?O}%=bu׎̡S51 3F1f+y6%SP`&Ka#RC2f_*Wf |1-V0O%0׃ք1:&0Cnw 12lA!_)6?@$L=[B =Uehg fnpHp}I5xǞ,ZWH 'R!pKGc![3)})mƯ5uKs\!$lܺ6Pyxt91?ܜհ rf28#dRD̹d,_4nX/ W_"_^"#>e18=gp]; N,D]އ 8 HxS^~uxzq\:sPta|fZbr6HQuL[NI^!x\@o.X3pp^*\ q@&7)A_ZjB$=[LmfbILA- NB!e_/3@%9$ƌB `-HkL(ʵg@LF # 7`I!hqwL91 T*!ǮJS-'#8-Ąɽ$$v'fMOlR"VfK}[~{:;{_8S134Cɣ\X3L >3Ł%`/*hS#eI[eiMM% V})s∐Psj}GOʾ|ݳlzgfA/>kfzL,vϐ^U8$^)Nz2/B9_rUHpRfNR >_92 Z` ;fŞ]SUT vk(Bc'J"g V1frBTTq}DL%z&-B*]1-91EjUcfE t@.VBz }ه$Qd/  'Anw}S)3Bz.9_Jvq1` EԘVůIdH:*d]8cptJ(Q$3rtD Dx+mmI̚՜F+FXP&3Y@en ɯ2eFXd..)~FjAi5UaHdv2I"K*cf4g=XW F3!q IDAT)1Vh٫0.V"ܷ#?7/ք QeDҞZLQH# f{09ьkh7ag#ɒ> Bsݿ[3 Gcd5,C56<}tm"IejR%DRr21\KeRNXeґ e$޷F[=H,F`#CUQ E*J*D2HR82\9pnNQU,aKhU?oHR"KUai K!+xpA7㒣\ lnȍku gf )17 g7 e&gw/)AݽCj[@ IDrpB+1$!#+-h0Y]ѼxFyqٿG|xhv2ϫ -$VӯnE,IZ'D!]n)x\/֎TT`ubR75txᘚ GqDK![@`I/ۜ1-3/HM@"' IگAoZ3 n)}96p7on躼۬86 ̪ܥ J(*H -]RY\t4PW}uYBúd@ JPRĔN&,31c(D1df;M- q(qdvϨ+Te /WȴdMzSCR.-\Z-N|\JrٿR>?=9]ptA0 ;}5DH=]g~.`zX1/k 7JH ;[,q-"R= Ye?tֵtѡ:db' +[+I5"Gm0xӥ~pjd%YGFQJۆשrgMx&#x6)dj3ZMs=Jk 5W,5t12q1 [cØ~=Y'SI-yx(T%QF( DZϙsBx>);B 䄊 ~fB!h,7e1)@A؜+!eNbɣ|$$Cr  I(J r[Vy!y6a0'n/[mhy}b4;'^Q-pI7J8`q.teVq-Ra'L(Êgkli߼;d5\҅J7V~HH1#" ?ܽ#@8n7 k%]x66V V jS`,%3xkK>>f^LTZg@PKDaQ ٴ&f^2u:r2m(l\2|>u!WTXPWgܚFs.jIuH*o|$I8Li7һ ([ HP2bEΘ"Ďᓳ kOM=>w9Et5\!QܯbuywU}\醓IQ0xXc(MI9iZ9t $QZwIՂƤ-3fIJ6vqvv lBUyX)I]ve宲gīTA}vqޝa !XT+l"SfZ^S FX/ѩ$@/ Z~o2Vsb6nIjS kbTl;ʪm){IZmwyML 6)$'$1D&)r031"^\d' ^$5 />9--U:3T2r JLJ3i:GxHC꓇ v_/|IG',9f ><1^Q`i _[/Xc`ЬV[G!@ 9N7{F72pAsg=,1*U}Aq$/k~Hn8HܛqńYRHj;AKîZXeU*&r~vA{"@%[T% }=y[ѣjJa]ks& $JT{PFaE ɚ:{,O0 >ox6fN*?v9rf g붣ZȎL6fJ.FUBs%__WR$ @-i$#$䍹R * O;^awNLV[~s8E >>@sȍqk,y~ƪo)UǢSbw<{T0 A>-,=VG𸦬 ..WRL5V e9,CA拼) }sXRUߎ`@wY$Fo Y߅4ݚFOX"v9Q}@b}̟*C'|P?}I?F{MH17~7 Q=@B` : };FVL̔G2HRV)Cnf={C-"jHrO8N]b5.ױa$Pa,R&\aܨT\Jcd>wWB;! XbJX; __y#6M_>a h24ߢDϳoك@ٗkmBlZjCIYIX!)ƘQZ?_{HJmR4i ,t\.2s4~f`yhFCJ9 B#& [kR5$C<2xbIl3= {Y6;7g󪧩#Ҵ PMe3l՜SN} &P"qtz4Ԕ-qzzd2kfȋsW0` D$჏>OZO .Y{o"]| c+(@8M<]^l_Ϳypz?"Ew;P<@VcB{G[m5i\ i4Sfen׻tLH5BPHD) ݘ)1B*Ⱥrw/VO^1pț;f gkv}֖/W_DŞ}bbjUљLHsڸ1i,KJo6@;[hF>ߣw'|~֯*i2KAU@sMJ j) b!tAPMjaqNݮ~B3lCI?9G*ηgY񴱥H ?:3#S6syG9Պj+H9IF;x1ٞmoJ1~\VVkTkssO3!o'.%V#Erlr8ihCN,}k>B`:mX{i^RP &U Ǥc$:wZk(8{}NuoXd "(dA"FY6zdoq|aH˲`a_^h k *?4;YNNO^j k:O SU%䅇{R᭽"*TwwE ] @e@r9DPu=qERRh^V8(!@mѩ5 C!* 6PQZ F pHc?/gŗO^{#|?ݶ#9ĠEΈ}O6'Ư~^&fr]Î.)J' T-yx_p(t2`]h9^ȆBaֺ&Pom&ksx!)ɖ% {#9}Sd/3p\B L9&*.K.ڕBG+ve)%̀25Ze=v7.fS"Ph 7,f%ZI4L8stCޒ'x,8-OuUjX.DâX@n5UTAEtRyqHl`9\vWI)h&_!C 萓zeHCBOX}v!/%nYnl_ń?a N)| ~?$5Gl$β~6ցȠOn: M9ц^vrWTHTJq8?t[<q{J-qbTnsB'oGQ hVZ檤Hʲ6{FeH[no^BYw֭)nnzzq`o=q1{w) `R֣Ty\ Io[))h^$$!_IBA_l!FA$ʰγ0 S;"a/ã_e@Ӕj ߁*aȞ>tE72:b;c5YK>O QD}p}2fuCxoD$ʭx{?@Ŕ%EnE-mb@`tI."7=0θlxV5m`)"6Kc.w;V co\tj%%jNefώ""D&/"0`kYRfY0o$-sԶ6J&v*"cI SAiJobCc1l9i-2-'G'iEPkү>wb $B\+.ڂ!NYXC5BTڷXn^Sd#Lc/(7O"s0;>q",Q+k*7iXmߒbG]س ;yUn5 ,S(|NʽB :c"\\^!$Y)$ (mB9],!Ad]򿗅m1L?_]Rj0Dв6KR]ABE"Zo72 ^CD?o|8Ó+l}ͺn)DŽ,%@j]B CK_ n,Rh5=3{DŽKБ}`0nM$qBCq~Lc2{.E 2̪LHIÌ"WqAc7yA'V~̦yON%cD`Vqo>zixu"@ u4.8,uMN1 eԾ9xsе, K-Q̊ ^(%)E9%5 р (ya(Xm[n虘YV;=]ر$JQyt=BTLtߨƭGo)(j+H4e"2 t>{Tl °ltt/. b9g_^ #=B T.yE \|yIХB4a:4AL.%`a czYw!nXrK=)yT?$%{lQv.FOHw,#PAD)}+S O'XwBrZ߿|X[&fʁ=]ԺS}|4ïa'b/|@y 3RъlNj@KO$m/)2* Ru*EHpW=[ﷳ1 #M77. A)]p)?>̍)؉/H!)T)Bywl}1ݞfdto>xfj"g' =0+3K͇Uv1)ˈ (bcO E18C_ovJR7%OvT& Qtqmo՘J}])%ߣ4ϟ{?[?'6fkJJ W5"y|1c IYJ [̵ +PH)3\QRQR(1N\mUWR_%jPׂE#2"e>ʒDB TG?d摀Edj)19g VO/_Rvnh"G=T ݏ>tī!zLpot">do9ֵ{I,+v~GLߩlBV 9GLd|36[cr ́=$^s_E6vۯ]5s0RcA zX˛ -5U˅JC>8V&jNa<\{~Um @;t%Fdo9}ORIN0>]aTEU3-&&Q@c+J Z6V"'OTi*na9`qޞQjQ)-iG"s(N-R150sƽvmNj>rM6)q^0@m!M#ly  kh,j>h,R(cQQ] PO-t4hj&*pc0 ŧH'=_0*15Ÿ'F;ئ!yl쨻KuH?sT9G!tNBJCS $i6%rzpn(,FBі CVruWkVn9={ָOcηE67"(J$s]2TX b%mJLjHRZ *ﺵ .39{ʵL5VᅵFHwڵ$pzяEƢ Q$k%NǓD`կW:8'dPtɵ4Tְ XK))8 Ym,ՖnC=)N #8^ V疲ԥ΁oR"0h Ő"QI`LB0 %냼zG,8JF!KEDa QB(;$(AkHUҞAHU'US|CtgOO` ꔣ|z3<(糟1~HTfNU)mÆ1Z? IDATՋ͜aSqDc2Dn KUcOPqB ۴ p ɒo*=VoBJ<bk&fJ4e¡TU ݺkJU 99* D/؅ 1%J;2%}aB[뮏vp$))Qb6Z"PXQ)uVɬ lwk΁7@al^91o*}MyB)r6y[41Z`.|;%Ρ{]8|wǿ'뾡\+܅ ""ǏP<|p 6+8cI%vKD!rjBSؑ'O- +Y6$~9B{ #2gjT785mf/x|uт4y%d;Q-Ǫ\lрH]х.S :53~# j=TS3}/Pb[ֿaT1C>\KbX䐣u!W-u}B#RsۯRj:L:ʳ5MOk˒zǣ=UPBs9\ZaCuX-AH"ekDMYYb;ͦQЖdJ 5-bWB6Y*DD,$D ;b-.BdZ''/?Kwr3f %o}2{u)Je'u6ׂ /e{'n> 95 ,bMmxb[`{stF`"%2du)CHom+>aDf|G+*e"'ŽYdQ5mr *+¥R k@IcH-=DD0͂┩nƴ+(xs+v+qtOzQe-2vMBRa'+d74FJ(j]rv K"Qd91F6>#MN\ŁS=mq9\W Lߌ ۯse.)7N UwxSJ, )%fDHPZ7Y=*-BdPU߹𓤽llo7&@Z&Rq\1xHB"4I  -:h!4w Æ .J*]QNyL Ie%JdY6!f+T2+fz$2K̓L3h>ݲ.$)7_W"s-RH&6oX14Ч@윐 5"B!"IFT$! -.͝OxQFqqyݪdrjD?OifOJ"Y9g (eI9̨R%_薨a&5HDyHCԡbZ6`-Ώ A ݱm15Xk(JEχRTuȾ!sRJ f@4m0*adf =\,Ii]o ͛CtmtVv5ӓ.vlu|r TP!Qh(ӈԉ?6Kʪ &d-prw{c2K9b~-5VT7fAUMO2V)Z/H0q;laPF0(+Hޠȴidj.TR,TbZ:hw)}$ƈ̀Rj߯RXAyپ3/V"FbH /S44!z<B$9WED1-," xpeZ"Z`+*U4) LF/(;Uz`'43u? ?[YrA9.*Pb`B[ΰ˨D)5#V" :K[SH FZ&iN.lo_z!%[£)4[vɑaT4>!K5*{ZƒRk J:͡ !kw0y)ڀ9O}J K|hm)A 9@a`p18zHpR)dEA|!A`p5m--4"}\f. CzKr2]V 1TaIxeU0?f(&fKx npW&.x(Y4y=Yh)tT(u" s8,$'T%"zŐ؅l#Ѳ%q,kV-Uuk.} w w4">ۥ~p9,^#; *tAq86{ï~* :Q:^ޟk=29}fp[ O)s+$Ȅ4CCntM& ʒ(xPZkFCKk_3gkj]vfF&pj|J,Ⱦ:VRJlѰޘM; T7Qk7XF!aARt"%|+&aCpI0%Lޙ.#Aw5BLFLW%%SkYbQr|;%::`گJ o={?;>Lmϗy@b7TTp gДn;_6r.OFj]a4E>`"i@B \;:OJ03E+UcXPO8.|auUf\ ! xuK -8a' 5$mzJ=mp!|IhaRhv#BJmC710{ՃܽOFO)ݛ_A "pPRppEW [\>}!;R;ΌZ7,C;a P~eX=A49g|O iS^ktjiAd !i÷.-4LVcؾ@ wysjT>㬽jhʚJTbj e,dQ$ Vy|ظ-OIIr235BfYcjBٸtxS7Z||%Sbltq}ȼ|cEaK%]j`DϗBSaf$ւBuPH9uHQPfBQ۞o4ȣ9/0Jeu.O0# 4H[0S1'軄PRER ,SۆI):pyNɨV($$$\D0tkYGڄ61#ҵ̍{!13ʅ}~1fc|p~pba~|f~]Umc^ BD|yl:g2m|L} uw5_FIz&$wq[H2$b1\~JsP"gW-͖b!Q:"ȁ4")%/ HB`ZF;!Def{*-8-]߼U^_ἇ9/>Lco<7jHdEB~ ٚBF*SbDZ 51Lкb_ 6/)?ݡ㏨gpTB~̮%ljbC IzW%"*J2cU$E=[)YBdotCz~} F#ki@ET8|\_^& ")?GױK!3E MmJz>TjMyR0_LX]mr IDpAZʞjf#66j#v]I4#.tDו@=[5 {@5$kKwqq @;.d2Jpsy/TAqF<bl^3% RXHeҷ&p[V` BPHZo3^(%,e,b_-݆|FHLك֧RUĵDGl6 .7[1$P9o\s"R}CgUȟ@g͆ǃH ( ^ [lJ9%KVݚ ^Orp]A,)G{B.#+!{0Plf}~'>~~u AӺ.@yoңYvxw1#2k",R(I-pZn{a^6^=XBKݒЂjHkά̌x/΍ȈȬ,RͧP>*jiW0r^_Z) y&ziPr|pe~n 77h}H*=y3BbMܸA:Dqh\LrYU8J/Bu}c#;h,͜קwo]{B#N#>1 Քɭv0ؒ{ #zXBc3GϢ5U7oܸ&g=Zjv)3&1&q )]8JUT2!Sn9sӸzl#p31s@q|-1tq5.8hm8B-  |c"0xisjEwjƗ亢&ԃ䍭Wxh[lmq-j|O=t_==d&H)Lk3I! 6$(>F$ޓ|O>1RPKm|8#Lmv~uaC)+Ě$.$zIV,D@+&Ih)PY[h[TTUIQxXhmZ6MfTo}L/EH%x(a@5f8CwO)4K( 0ŐGEDʈգt=yiGOyIo}6ץo PȔEGϭ~JGk|I6d5=5X_S*Ѣ30EF&f ,O]S0\7`f{a1Ƣtl aAa-7PO؂j6zVҝ:-|}:weRA ,XE+V;+3+J37e4F(Iܚr"gdnrs55Z\0FHw[d ԬB )+r U 1@h|79(*ħℝTcFg+5o'ϝ۷S^9nj4KK, gFǀ̀H3\']v3̍+$+E@?wA~6ϳ /Rň&* #-;YbfBs ʾ5[H\fgK INI(+!fs[[;J%{bK%,S/EOr%x݂G gcF W Oi[mB3sv.J(I1%zH%*v_”œ!t7i%^VhLhX١d2?ǦTRqar `eI:JH'1JɐwFvه'#3jop*io,L-āL^q=͓O;29#}# 5|fa22`b&lg[(BhQ-*K=^* z5cUv'}|%պU6Rg\}A+La@fP꺇Tv"L.)!rЕ Ak{ٟ4Aƃub_BxGK E.M&>݃& zыr\?BP)dB$҂Pwɤb>q6\?/$P92d!Vw!"mw\4iJQ`|}WPa'_j4tLlL0?Ȑh%椐c/_Z cHYz7^oN/_MO)л4M5U|vЯ oO9rbL3VOy@O`9-Kg+yjhuԯHvAB!DX,MiV%)3(HP wY}y$ i߾wg=}KRhflR}? W_:zjQ}zfr䌃v5'08YК.'ghQ ?#k8Oqэ\lytl܆5ddL91$az}z/Cj^┡=u.G #L:K%S=/Fݣ}N bDA }!Y 7;T/MWKJ UP8Hցa豥2(fS(ݠ4a]{ODD8-mX|H8>dk[<|$`rh%H)[-(Ri떺(cͥ_h\kG ~!0zRMzv*ieD+)36n~b?Hy*CplbTHu#qhyc uiPGG?>;0{Դ}g=aE'%, IDAT" BtR%TfUa;"L`ٟYmޙsz|ݤZVϾ1 "ۂ}dF>9NwדK$Wk5,y\?|!h-Dbne;ܫxcr[rKj!@o]K4QGrʅCg`2<7Idмdmx`/ٽYILaݍ߶ ZjU$ *\%a0*'ͥ{ #Ԓp\\Wg~J!)ՄI&fQ(+G/*ns)@)~>x0`bs\8r0G`c$ e)w-Zd|}ۍ@)/d y0Wwfg_o ]֬|YD /)&-P.|6^!1+tub՜RTABՇR.xV]E[Ⅰ07߅$UC'YԐYB`)]ݍS"m;mME& ._^Rp'a ߆~X#d@Ylpko+Y1]P>͌nS3ejl܆GгQZ;ꎘ3AKAy||pvG#رY`=n~jXEB ﻘ@ε[s>aݯëJaU1̲)yT>J"V|@)F ٶ7Ykvn~@jo8 N*8^EU@_i})ch\a}J:sXc ^T[z`٭hPL t#Cjѯ@4PlU;hS)+L kIl="u\~#Wso4KHR򉬨 r~#ܻ{)m_6Vp0Qhirʲ΂f ͩާĭIV:$,J Q v~1û{y5"*=ks3>CjD֫=@(kr&A؋A`T >ps_2.0 eȤf:\p d@ ͢9e e*pk6#ې?f ӆ"3̪ߗ떽=)*I#4[ÃvL:! _~ާڭ-yAGM'1zrUpJD%~̢?"Nʂ[qx[m8< }>8W+S)ljZ&if`dALJ޾}\v [c_ϲmoCV5' PN eЖww '9?>9Ezp4lo[9l yFB x1гz'/\O6ɕyaDy- ^YƖCρ[L+o{:abR~,d*мCٴ<:nmM1pajƾ~o>kBw]&9A.RH6;<-^Bt8=&a>DJ,1z*uAqzκ g_qZ C}N]C[_ ѯIbAB9X~r#R2J׿°O'lp5wLqCm')/DB1&//rB !t@й>%o~ a@$syR/!4=J GE0wfS\i2eGDjȌ_}|x|Ӵ>zT?{C幞-,RY2/ظ 1;>yÆWc!ݢ7z0Sߺ"Ͱ=B A3rM86Rbs2H:^QQhI6S &ƒG%Xd"WɕMܗW!~W#x+_>d% f֔j^UO59}|ѧGu힃U`5F$Uc=vT*oqrX?{m䛣>t?s5NO@ a=d=o.G# ^cA~^u=P9|rJUYJ\_Xh]t c'fy؝ Rs,tY }2)ʧ iQChJkbi6Je)DuF6q jwsl7LMCCǣ.tSLa-F(2 DDuS=Z̢b#w)"Gtn|[{SJ.0ƶiY/9}|Γ'c麎I9a{wm %4N{x9_&9sʷ>r1$dvfӓ1ψM@Dۚ"l\ˁp,(M2,NpcgTjG+$1݀hoc.?į7<1Ǐ?4[wgG|Cݿ~{A5lR2z2°Cf_QsVo;YZ-H LStOyZ0lQxed k)TAthHӐ(!'1omnTd k-5zҡsR1\Rm }B(|t,s6qa`ŒjѯI.>f;oU6ָ8Yk}5IC|]YuˤM<; ǎ,  mdYei/eΐe&O#1ڦ|5{tvfXc *<ΰZ-$Pȷ Fq=<yge-C\[(IHK9;]p"s6~!JΝ$YQn,IL|1Q;wĕIzHi IjmgnZJ)wO^G 3?&`Λ5T/7=K/WЏ"+{$#F=lڎs^yQPnH12āLȲ- [PĒFiZuѦBWY-!y $PBRld'9ט7A`Trwfb XȰ"O@)u& V R"'v yKیCa1M2iPJugǴnʰ9vb91Ln Lnd)C ƵLt׮flfJxQ닽EZ۠"[@Sr DY%RKi3 ,q-}X#QVH4`td>Gnrbip]ɽ;=~w?׿70I=46J뙎E Y 艋o6$IAf "GQd wPJ2Pw@k7){Yd!mJŰ%-S{YV".!^YU3hPdHB7AIINl)hmTLCkE&(2k{F61"W٣{1|{n7ٺu sLo~o~&^TYYI9p4(LS^<k/eFHR޲7T$ǫ#f;ո" =#\&SR+6M%3ݒv gBS23=dlV5;\3jlʿx˟=tɯVvB%g:D.BE S!$ڧl;;6Y +@F$ I%H2OfxrC P d2QCLdϖLwxG';02ҽ_Vъ(IAg^p{*Q*]Gd\;m\8NԫƞUJ M. i5a6cI<)0Ҳ ~!HD\]BtOa^n#JDD")ੴΐ1\{HA_3/*^4*;z Sodr*oy_swQ3DöY)H=+cpL0˰W-!`?q[:>off{~u[mL6zNmf\$KOY*YkU%.ʢ^qNǯRX#(6`Ӥ^]K%,6Fϖp5pz ,یjc氡٤ 8mfLwf,tmd @WRni)+Y VMJTj|t[GK-4TDN~syND4fџ>7=BcA ,DJяlϗh,6:۞%.t|.uW߽>gÿ^V_ZMa1)$}ZI5`=]"UKH>#'+EJ(&GIwy@ EK2kĬ$o=߾!zL&Uߕa>u cب0XڣmHJ8okΚyr͵x/ /S. Vd2Cõ Q Sqa@Ks~;--.y)f_t*GD =-\ruꎮ KtnPZcJzC0I&@Yo}[ ;||lfq|tjg wbtF*EVr9ܽM9/$^K9 ~=P$guFEhШ[bsL\? 9WQ"G)I[s>`t6m!y!#JqCQf֐ٛAGNYٸg[sCYt?,UyXk)V9,O2dQiMe3]PHKzBT,JDN8Z9: L'Lrޥf9>SSگ&Ƚ7PB#׿ݹǬb5[0 J~{5 hIeyA Fz7dxPνʳ%H^WCfH-X+֮aweߖCqk^lFŌ24]d~ȻjԮ$8 ܚ4|195"b 6K_4ZY[l 0TlgL̄ H t2M!+ o3)W9qr|0lݝ1Ú %FV>df~-F}HqUޣٴ,].FvmBtoFE$tH<VYnrr^֏kG#90{`bQfC~zfY"%@zVa+Pe +< LLA}.BAFzD4N7ul}DIIQLD+yڨ+\^@ d$r'^c怒\]+^ssV)5P͆#bkoSMX%8,Mh@pIG\NBgJ 5 HBB W؄R^L 1^z PNxդ?r#O Wvs IDATFs 2R) v݆EN{{+_haZ u Eddos 6~AJ R" 7K1 4+Z0%G xfaE^=CW_pߙU^[el֞fUdZ5]h(pA`ń&Z|ԨѺs o>aE@bU"p+(:瓜HVwRxJsJ-ɳ/7'%ZK0pmj34, w*KxJR&Vv|\$uAB6ۂ 35F<} LJIwu#Pe%w8@@9)ێOllgB>1l5':Vg8?\l /sI)1尤-.H*= ccQkq5VMӇq-4C)RTzdykQ1Hꐮ[$FQfX%JFJ@9ED,is:&R.Ix.y1mIMAֶdG %q"5݊v5)iiK&&1m Fܡu/~ǔIIIif xsăCf[u쩷R_ޯ.ĂFd ~vT.c# :C.DeBA('%.x,JI$FtLoH5mtPMw!X7VMڧ#:L70 4گ(I9;[b!$vldi\軈ӹ#@KEY( Q\%0I}BK@E׀0M\xI HlN#DM瞲x vJi:2#|3]*28ѭ(6 [[9z$v("`s:"Cg0 Q&7_i6-~pd4`胟 M`moojK?OxQJuZo3+lorrvKo}ل~kԚ(fv ]j,ipw Frk AwkxޑgϞ>x..eZ*H)ȌN GuU݉NA}NQ.GOfش*O+^:M5Ҭ+!p1\Iy;;!Ps7 $@ `@AAiCGxAx7oe%$ELzs;ɋs3'tHx"*o{}3@ZSгB%Mg)"h@Z|q** KL&s~7xoSI0fM1KŸ1i˰*Xty- L(*0gL=qOD^wf`+<p!PIՄ("3s2H˰mT2ȤA~lE5VE.#9輦^R͖}bqq1 G^_וG!$Zd:vIRSbH=nM؏%Ai@$]*cޫ1bJY # HR$Ⱥ]qRkպC` h猘KJ2*f=>nJT iO"Ae"@&dB`fN %ӎɢĎyBhEۧX戽itvu햸=D#aP5H݊@d = @2/[cjJHBbQ5>xھ~?PZ>94 W:1܆ޭiQه, Bх2\ʂNi9 * ت̈́B$/yxzN} IPa )Xg|bOY(90FcK0sd }]*jĥL<0BPJqEy=1 ً2@&M@50)Aⓓ#TRHJ_)X!p:\C-kqL̈́Kr`۷h)tgIK fozΆ^#eG3PP?@8…|HXZ>KdOjbic@>GGu=>'6>EBJ[a݊ҷ`TBd`18!>P.aVH(|GHEG&:F~ .M;O)iH]הL[o@~o-e))($)3-d 3ێw]G1Bz"X 7gy㺁ɢ 6nrXWl&Kc n7UJl[[FŢX`!=͋Yr6TZeMb-ÒB42^!2vzw{ENݚw"ctY,(yҲWY{D$ι'P(WT#R_Ħ !Q9:MLRW\ l63iM5bE!O wry>x< YaL-5>My[_㈓R1"DR|D1AFL)%u1"HOsZ,zc@ zM#r]) lASRIV4uM  R~~VW$JX'DyIҐH~_2e1($1 D I*!RGuL-4fgMD"$("[oXk"Qy 4JdNmzb=57TeA; ̧mXnbj1R()PO%2DqDY;7Ax/V1$lyO_C Tm:)ڐ.N:MܳTuɷ]~ßC= TW=kf15TJI\ܩ`dVB`!1卾KîA r% |1u!%q(u k4.BmJ["r!+N 4/ [F^]˧R!eDZs.\?!@+B+˓J5qen]>dpJ8zI*ƄNxH#ZCL ݇6MAYK;vF:'zBsc ndt`ws !i|]Ph)3/7ꈚI2k(3.m^Jnh;#o>dsgn ~`F*Alz{>cl 7 V a $Ipj=ӏk M}a.*6 >aC;qlq5{KJn[܇(%X BSУPh ī,OZR(,! ;DF7Az ^1G1&h@@n)ńg1f4CH9!0l ZeFF1QKI)}!+DdLǿBP E嬦)Rq>DrzXQPT#g}ݞE MkfvNL1^>ߥTHp]`|Ã6{@K%Oy\7gY猡b)%| ~$j)Sct;)D@^v7T.Jc1IJx΋> 3%Әxi{*7{z:hcGfKUxGd) &2x"IU^G*ǿ|kǖ~&tRR" }~i |o)%'zz\bS&K;6B6 B>4(rXĤP, +m8E!JH{z?݈:ˋL+UN|2Ұ(T{T EIټS[}"`;v //+%[hDc§H#iɳVUJJK]S&=A')7?eo|k!9#|sf0m7:Nk -8b#@Gc.fM^ѺiZ-5RAl8AA;ڡ扒K3D296]~.JlQb%1ְ5mv([?$}$l ]@lJfZ ¢d>2j! eV}̅OuI p<Ê尢5}pOaS !rcC*XPq'O)q`oZBn#<+0*tb D.ߍwGs 2*dnJtw$C {X&lcР{SkEBxrD \Z=%,{'^_BkKr#/>]ףl[߿w?9W/}f7M~|~AŻp# u0{B0zuO^Є_.^'uXg"?r;䥧H#m*R|L<# B$[bѪ561Q FJBbp{NGO4EfOM -9DhHF#3s6jYP (UOifeCjTRy5L !Lj 2fyoۇ_G{ß{^zh2 rf99yW)Ze+q 8UR] 9L$λ% GPB113lݵfe {mN)2S 4n-(eEis R k҆Bye@<຀AH:38(L#x%;E0ddec%K}J)!Bݺ)!ENeq6sf`i\ q%?q%`+`j#avj(!;%JU]]w(!""&Fn n@JU+(58lyU~?*ON O?l'?|Q aV !ʰ?wď ɒ?~׿:,[G>M%+ƨ/J?j=O"FIu$2;GknV4x2@(G!_XT? %o<>#gF*D&c3r<'T73x)YHE(Yl@?>Z\siBQȂmeh&LY"dp Ê5~}qI5Q`nwn!B,KL"iR@:#[8{v0)z%.`Y{.݁KpQ^K?d['JVf˧*$^t3njb ި_+329U5/,9Es :(_yEKE ʠb񊎦QA|Yq$r:h! nj + *]c`@ M7j*#ьqT AH׭4Jv_=Xꗿ\l gۊb-9\0-&p!:́C>tH`ĜiYa7ŞB &]2*SffGI(Th1jA4tesDطB6y)@rxrt:ykQt݈0 ?Ш9~6EX.ގ^ݘR#ECt4WGVumQTH-va4\?р9kt()tEΐB`e>DH/Ѣ>!Pq;cZٜ*A1,b-v,ZV( ಔ.AK*xjX6VyKqHF(醖޹Ş$Ŵ5}l/񱥃Œ#hҜ-M b4o~=?;|/J(ڮKXo7NTUނqp7_9Y^|)!{!w႙x)^!90Y,=grK?;iF-Ϩs>OW׬øS$TLMN%fp2#IeDWRt6,O#ιX.)ٴ,,"Dr{bzi nb1/R 11 xAL!ՙ9FtgW0b4fFaJ$*CjCK|ܬʂ.H1r!|=r2Dr\ EgXi9nxICH`K IDAT!.C#V*UH %dD{eoiThxrGBte;QbKO&vͨ[@8x5} 8'ĵRbo=Zd?a"B2HGGЪҀH4Ll~^~\ J(%D|P!&v]q#_.7Ѹ'2KO}׏o_~oS_b&|1)`!0$I v/>S?+7}O(!>Q#' ցMK hJq,glC\\^IW$,%VZZOy-- *Rˎ=Su k.k7^R6B1ǰ"2g|/TW@/+"=iw>p$Is!P芴1P6_o.@Kʢ;c]٘٪bfgyz\ JP(Ei I%"y=73Y]/w_'+#5(LLϲe2%Ӣ)Wj2tlӊ #汊JFo=m"޿A41J!7Gc)%^q>(ʂtۥ X(p(޽v̋!؋37o r0g`b,Z+5xGҵh.82'9~e)sr$ &"F `#nÇߵ^_Y+^ܼEPcx, ZF!pا҂p} A9P,.!fVh:D\ܹ ╛Gs^ogO_x8!ňozbFk@kt /En߸vѳ8s]/.}֭[m?ks~ [mw@'S iCU57ly+EN׺$~RBVm;B5.Vkѽv Vc=M-*[[6>E\lH^LsJQ6 0,7mwc6gntC<=kgHMM:kgxkcٯ&UP&)ܝ`aR)Ѫ` W9o^@@q,[b|/}Ɨww=ζg+r4C'>lidZzsc``K,] IVTWo*]rz!$++5oV lO!eF7Զf{6횣C /ڎӓ BUsjU!zA rhJ(dfiP-SM#*ei`Nᇆq gq$F7#kcOwT RN2(gRc!::'rP]=;a TCfO$rV<4i8:^0} ~=mt9F xwom^1P/N^ݾ˻wCG,[ayϫDU#s (n׎չC* E=>Oj4V <\P. ظU){&&,XpڭÐ }om;Ql\nȧg;?c ~J?y/(a8s1^|',-5+DPLI KC8']?@G)+]Q<[ג$,}fńR}aQMYl}ݙSǔ3B1RK7,!5JYBprd:4]q0vW9OC$R$%|mPYUIROZ% !2N W_)_}_ sc>rZ]{@!53) >fXQϱQҟ23pba iBS|]Vۗ!; cl@[9C3  ď Տ&ſl/Rd5)$,WU{80 w6)uEk\rt;V {LmÌ F(h .l}ǑYD~?}FZ1Rl);*IEC +NBQ2@WB#I4o\c rdO1 }/҆/>y,$F^J)S=a\TC"}OR7T11Snie$" D,PHCem\TBaE)؎(ʎ6_~]b48Waյ??{_#5;s'3N9,[#ᰙcU#Ч1MD]r`$u'Y>l !7 TuI/xΩd`} bPMb+$IˀjCBcfƣ&Gw^}5Dhsمy-ށLR;2 huB緬zx;m.30줉 ~ •^dIaG&1_/MJ3(N/-ONY6[ xs)iVEqքadBmx0hG}x?Kw7ps )eԎ2 ѐ|/nݢz.K1Lx饗?|)%o=~˯};''|{M߶|yΏ9{$C+F3-6n{j[3efzZ VJb"y\Ƚ_Dt/CdhQ2 Dx~B!|MY >^_Άn'-۷)fRvKfvłsvG1RVY9cBW=?2 wȃ6E왗7i/ 䇧ﳟ5$ ~cGeR /HR=I" apޏq*{Fx  =}ߍԟe~K_bǷ@_".䍾< M⤹Y;20DqV%(Y-xeQ3sjg mᅫ톭rT`!bI۶<%61UZ]+,FFm4Q6zUB`(!9(v쯘} IDTFrl5pTNP:7z]p8fRH#;eۗkoUɴ~>:yÃ}D+u5N{`ꒌr齨I awźCrC' $vxO/)iGjj݆8> hAoZI^+xgz\L\(P;E)QASkiSGڮp4FʵpP3NV޳2vs? س{:Pg7);qqd9^0ƑMҺ57sn)i윋햓{h7cV:eⰬTsu!. ;2paGDvLMZH)ѧ,[q Sl#1Źe"L,ZlK') #'˔X,#A .lU9 wYHՎJ9E6{äLH5fRRR|1L1`w^}lSUh9ߥ$$mhVjfvDpYO1Xe(EEUvXkI6 %Hm f .7ڤd=2E vxFW^b ]8mgџ9O,'nKF!SQX7 )s4vssQT(h5=! 0šJZ6nyM `.WU `u@0R$B2(2ˠ'1_טObriԦg9I{tДӼ鑟G#1}hUO$/W} a)$V5:7DDѻ\ƁxqK7I&OBidRNRQ~O}3abW?M-eGYOqpxL*,w4W3:O!jRC'Ja<蕋RbF{`vcdzy_"/} jVbݭ|̾|bYsW& QučJjX54RԠ c`;ƀ,%L`ٷv[z?Ū#EM:~%#vbv[CL#`EbM@m fgh$T_ cfor2{U^{|r?Qۆa.R*bH)D$R(B8҇cM~e˲NqoٽjYb'2`&DȖdӆ$x`xdydh'x Ld)DXd56^w{9n=q3eTZ@""DZ13z\ji(x^lfnNtv:nSh .KPh*j0)TA[o0X6:G ) rs{Vn:'ԈT%RHC`"<->}Z!|U %'"1۳,UEkB,Zs@e).< ֨) q$A$ $O$Zrm,O @*lavKdX^tt.9qEbJjrzr(:Cp&Dnc"1+.̄u›_ ;^q^!ݸ#RZ N4$Dp.ͮi4ZUf!eQkm٦E8R,8uL1PUyBlR֔NtZ75D+[f閌a>p4Q-%Y&fQGeMS~D#Q8!HJ5>/9ZFON-t!Rb%"3yPKO\,#^X TEɵv=adq1gypB4,K2&6,Z|&B  XrC9Q'ɹݐ׀nd *us)9F\I㼧P%u- Y\(VnJT{ lB#\&AHfy8PˬIRzaN?@D4`YsXK~|onNԻ6̪mڢe[6%>X>6n##0H:m 1%5.{&8?>}W7_2-I(jYû% 5Z\?d3C ks}tYQRh$F̧lPWXMr.ED _HzUPS>dp=%R@ Q"BAt]aRIJ1sb\SME_A4T`+yd1: .z 80)ʟhB!,ݴ.&wu*-[:'`"qU*%6Z23[J3jnO"j"J<0FƌF!$o'&_0r62QU<vOFP kGB~x .wjjU31#;Xp)A'Flr>#`]%ꀋ.3DRYK(\J8LW(""<6+0eFRS:^V"閛0i״;/x~_ f,jk{h}Fհ_ӈ RGK"jC-/OSWO%L wMHy:Y(~ffyBEYf&hJY##R+ڦYO"AL 11\jprՄQ# go;#7n ƬWr"E3@pz113$UA+jQtBBJX.>:N}I*^i}v$Ȓ1Ĥ0BֆB* - suF)EGSn^ޡIm.\>Pjvq> "sܾu#Bhܾ{k0 ,SyuB&fK3]E1z1d QդjC=tM;y JSĘw}?>ŰLdfuBoIRTJQ[pslgr ɥx̹12E؁J q?W i%,2gZ} 8c1QSPۀ9#Pxl+/$wX%A_cq3L4R4x䝷$7 hjaV Ɛ}aX?^NM0FSB(9?:F)A;ih1 -lb[FD~=XʂfFm+v-aHM'2-5FWDk=.L'ok!Qr= rCES$X 6.bATA$tJ<~ xfCRDl0 p찣exim⿇,tsGĐ^͵çV-CL(%#s2*ۭdj6Rc%xjvoi>xYF1cG|<{NgF 4I'dBskS %P_g{UcR|xqwė>zh0-7ج6x}?Cysuv]>?PkN#5Tk<2̓oSg杳1rF_2q}(eݍ7kjVÜ!+1 ~}Kܛ?iiUvsۧcy@̻9Ksܟp{zRHŖ)Bq4t 6=n3|ί?59 lBy~i H5Xp|*D^C$=\ -_`JD.F>8|p_ 0="U$`ݑ`VLN <{7>K]o!DZNhQ $(LĴTE (8O1?YdظJ:" A'ƓZL4*F0kw9*I?IH!)J!1R>uæ̲ )P˂TlY2%%O9MRr81- Jg2"#LQB3 (Q x\r1<yk){=O&/=Wt EI/ݗ>O !$.Jǔ;;ru&"kIႧK#Т- $""DJP$z0<ո )pKٚH6Ęǟ٩6&T^^BYIև 'r٬Gd%Rgv)Yz[D]W;Rf"1wsK`e;3##]iiFklTH8h$R F1d}I)˸4DW͜wtϤ/Jj,Q^$)it,V_h8=.ƈB&P)W !ڛPQ<>?eL&"Gȸ(٣"&> .1em18lLkPEp;XabfuP->D<@$hK050Y +2K@)pHmDoJy$Q82X zבFܽC b;0[lt^-%JRd`VOϥ,\Ƅ"1&D3#n/.X;m( MJR}JEZWX"S{}J2kSOѳ\^0#Ї%gd=г=DJRBā$@M-OG處;Z#ҢcGTNehV7ԺΙm H)e5.u hUb EpD ĭ[`VqZ6aff"eHF?p)S~}Y1[OV}|,ܜѓ=K,֟uhi.46MວXI%yθQZ2C?s Tn{t5tW#ܗQ%!v]NVG!?w絭t;_|~ný|hS8%Y'&_lg)g|u "'{v-T|s>zwc94W}[|uC@G?`[\ hiwˍ|ƛ4`ϸ`n˗~5pARoeAI$CJt!] cJk3 V$X Q0źU?x2 uQ+"lc ޝoZy_!!^grWP  F7[5lOHjT4L:%jùJu|21]ߎ葶g#5i123I "%A􂲐 PhZM>)n"_Sĥ T% G ]6MX+7df(*B=r&F&BUHW찗"'!+"44w9?>ŭl,<[&nσ>> INઃ )@hgt$(heA-KR ܒD I! U"XH-स^$#4Fj_0BiIjpQZL͔RU$1tBHMH>E%pc b4 r'3Iƈ@Q\t5?ONK7rs_yE7:h=ԉ%tc <]Z<-,.b@@)  O ο(ˤ$`eU ݫSV52DDž(QH!F*Kk ezKS6LkEYG io/~PLJ$S@Ѡg )E%+))W9X SY9e56(!N96 L̔1aͰ6ZRIЪ||&h8XTx;P'O@s2N8kvLce5@  xRTӻ)4VXl/GDcKW@B+Mss#nyk$U56ڗvQhi(TIJUqCZB1pD4lĞmDUP SB"6fIޏ97IeJ FGI*iiA[aYd'Tf02K !E_zG@Ye&?,/1ZBKCE%jآ x. 'j,pĔQc0jEoHs{[{KjDOBHVn~VI Jk,3`Su,I?@k(nLJegeWRH?bE158X$~wo Ü߿//JNSޘ?}M:7_|OXrw%kCݳB/=w}>8:/=ح.8OiL|>ۯ|~-~?;G}7_7GyxO]Ze},r{gw{ZIfT%0UBxTB`Y@Lk2&UB1l| K_Bʈ'q>T%AU|jyڑ] )EAD83SF7f].UPJh7'a>}R`5oi$(N<Ŕi#6y2v,+ ѐ *cΑ.y?\9_FጅEO*eR_+,aޯ k (**Ǭ9_/|.Hceލ=*S*Ub=\ l&['H$NY*eZ*>7 >Qi!A*=Cb l3*H3) !}Dtj1qu(V~0UMed&BPÏx"Dė?dH=fm#k$ px]\5`.-z,HdY "i[.efqjl`'D`Y7?Ȫ !V?z|nN\ 1ѥH|,d()+ EqJJ{Bϭ=$Z 3Iq z)h39c#a %>JTH4jIyspk^I:D"6, ]Q1 ܂.S4 !N C:۵Q0tYGwk{+di^qZO0!M1lڱs1&H4%I&w7 l:6$͖h1ZbdY 3q "ѪFI-Q)bo{'k~>8q/IJϚU+- (G7C Ԫfc,"?LRiXA 2+-C4HO6MVEkW$1(R%@~,>~6M3a!wwx[_*zpbt it"%i"W1p)c`Vp_m/#|9X^w=Jc\b T! >e:l\1]zqR,huC0}%b-SHaJʾa~S7žBFDt%> |rk`H%" `h&tAReDE2hF~}4I C|'}c#oNj6IZ?ϔfex[y൉bҼ?8NLjA]ʵvjF,6dN+6PE-,;g0՚#H 9)l|A!*j$q9+&"$L&-mS-TS URbzNGKs3g8c1YBJFJ542u&ݚȣ$'2+7C1FEYhK#jf5H0%`å縷!Ғk0PkMu~y ~dԺz}Y1.DE󋅊HαqT(X"qإ1͕^KίX%a-c}ʌuVl#C课E$ ʯ8}'IPd_)Py:C@k6&Jj^)9(aRL GgWn8??Jupo OS4)\|Kq>^k_G?bHcpq?_e(uk;|ٟ[fY~?ϾKijaOUwf _c[4X 7&o<:sMq4Ex [Ρ#)r`6v{op!ڳYZv>_vc9tJn8? ɒ"+HٟHLdtcXw1d-Rb hڹGhS&2kiuMJ7΀$2}&A]{)?g@ E^c#ߗc:jo|<#^z!F IDATjBѹlNj_  XFz;t<&U.{bC]A¬P:VAȣNDFHSgwW+B2ܦ.۫ϊ鱞nm0TV3-F.=i.~ q{@k*U׎K7' HH%Af(R3-v(SD l"XCI1!Y%)%VGK1KR @ z pQbAQ6/ENRJL(#(BЇlQnu{<>D gxQFYٞEU4B&|RT tEK&~xdc" ;dԱ)7Ŕ%' ܉vHz56&5HwoγIJBХ I<+M\ua2%ƵYaė3}M?9?&kx|p6G?x>8ڍ=vޜQ)sAHq< ,u 2lNJ9)%̺DH1Xl4J>\,GB4M1& Gޟ#,0bXu,-:H>32y:tf _F; jC'C .=$ۥq!JjU!!YIta"մdc`,f^Ͷx&# e1!'!%zUY0]P F\_j'Ϭaؕ$;f繦EJ1;u<:E "r%J EN'"Љ} DJ6(SF#CuA[%li'mPɒj)1湑d0h0!qiح1LJVb\1Ls6F=};DQ ,0ҟ}>@}7^ůI/cHڍMywY.lřMLթfΒ{8/$1tFJDGC{=mJc@yMrc* ZV#1Zu{{6YVkﺞ”TQu~,gd !F..B>;$PQa#pQkϵJF \obi\11glW[d51q6zZ٫7i {\;T;.1,{l,W+l"̊9@O[#rmTDVcnD>ycB|L̾iR%P9 , ^*i.D؟DV ;ǿo%5_q޼͎1)j6 ><`^߼-7oQ*%c8[C'X}Jw*ܚޠ)J׷Q ͛wx4,>9:FmCwŽ_?iSGcjnt#nUqҝ=߯୧s!_ Njj޽ǶA2lQGm=o<ztP[ꓓ9U%02FIOkSf4f# ysݔ1hǿk^Ә_.J d%i@d۱/!ur4\R?YRn#!L)F?MT_~u,K`H1w:2,# QldKRL{KuqH؞0?yJ3_g>m|xܨj(n[jBgOGrc׽܋ifj)D̬RWhaGB/%?Oi ~r[,5yAG!YFG$;O͔Vgp|DVW:R}2Ӯ 6d]4.hYpv3 G "BF9xtt?GK+btnqφ `ᗄ^5Sb5|8"r7-%dܯ>+ך? 'E.E\vg>ǫL< O0W** \I8b6(JK4]/5՘/ǏeY~9gedfebW6#ڌv6[7hȁD awOwf uiqnDb0+$ x/"޽}ͷrٯBZ:5 =r\#H)^{UG89?{)4լdv(Lš?k)DR UǠ&PM:csֱ-#6IRxD73~G}Z;$S1 f'hfaFTXِR+-sӐ !zZMυMkI}:Vk/>1'm(sIM4b^vCǡ1%!~x~߹f)s{qI] tyM}ﱓM1[Pж# ^yjc-U~ -X} 7g`kPHzf>nH" yvUI(ŲjX'(fVtG֔8XfuњBV^|M:cQ,X% v`cd}t];3Tb \q̾fDRr*({Bl=_P<T">c:`'+ n#pν`fl9vZ?wngOhů!T3zN. aK/Gs>]?|{wdmmOZ6P9dg!9KA1D*D ; 3Y% d? ^^!l{o=>>C>!@U4ߛS^` FZlYB%cHF)5ʝQWd uU~;tsxVJLWo"~`9[B" W3} C($g Q4~쩽P"Lb[B1 U23 siꚽ1JʟE@(x['sꪡ,KBS UL`zRJ:{ !?/|Q -O#nVdU̓czCX;RږnŞ^CJ}cǟ oWT$Āu|{wn}޽> Ww݊my=d8E IkJ[Pj<$qVԺERc|2+)rnHoQ(9\Oi\X%(ixoy?[q,1Liኾ΢Ph)Pb{E ^GQj R8:v%~)T :3Da؏6KޙXqcwÚ]MǼϒ*n<_6{߳'F|INDdp< QDk>%4R$Ȅ $16rcĹk5*)'. wc !BH촠5 Tܮn3K\t\m)Cb̶q3yri{Q4Mā6&BЕBN°,K ]RȒb |0Ʃ R^ݫ>H9,ﯩ躎gx9U9nǡ~0- CM8&84!hnYX*JU۲!!?^> 71xnlw°؞w|*XޚwgFWI"b4Ù>hrLYݳ&yW%@*RwH#)&B<&n3d֋!73Fze #~tFZhwa}}3Ow Y5 堎!qEJmGG 4w{!D ܹɃK 5޿$%þGgNH4fFﻧRi hfaoJ"9&L箵Oi:s@i7? 6ĴϪ hH#pU{}޹F8 -_?&|Ai.n19vduQ zY*&b>)~cCMҙFJ 76ZĪNО@(bh̊q޼n#'}+JrD[,Q),#-Bɟҳz!6Xt%=='\kTBSZK?aXsB(9RK\O]_5/ CQ!SD{}_R~zr1(TenjT*P%3Oǜl5O9 o`֜ BEg5ٳ@enN.@AJ\Jd `"1W6ߕJ6~*nJbeH&̘s|Qso.䨾˿ƢvmI~ior;O>W6;|XCG)+mQ~|xw?vcۿNmf|c1yJSw9$8ݽۼ>[g`kO[s|"q`>yA 0WdյL"w?E½ ~u~|~}׻xI΁SkB9&q-[NN_iÉ!fu򹐠2d`%.mCeFOiC7qdԘ:˸v uz|!Hs;N3vҖZm8^ZHʗő^駷KOx}q۶3~m.cJ]Rƒ6~[RhJjr 4"M^l1+_I"Ff*M$ц5e#m Xfh *g&eqخl.-) RBHqcu@]5-Uqyw%D y $"z"AN+S֎zv3V# fFDj"EUEBHt}FKD!$K=[.RRJqm4i|k3E;!sHE75<粒7L>tWRKK2#>#Zi..W#mbKBS`|1/GŧO$6XOEG| s@PG61йHXp:Ivlݎך{y lcȶ)~e{8*)e#.z. Eڰ E٧G{Vħ؄B0+߰‚N()QB%fW }KIx=2 D(BkA9L:Rѻ|Y= P%eU@ iVxlGaKѱDKs WCxmiO؜=f~\xY}z2ޝF7zv;֧[^Xg99M5rPF()= {slA l I[Db]05R"xMZC`Z R pXKWsgL h*n"*bv.R|ظKZ&ల@%mQV!T" !YlB#l2Ud5@ծ)#i3\K6u=JH/dJ) j=Yr> Aд>RF{vm΁`hQr@^y/*3s"!1ťuCŧIH ppwS KM|QVٳ,FJ( [h֫-''gl7[Mګ2P`KNJyb0Y շcTQP=FXj݀:}x9S:v[|8cm !L43/p-12J޿*+ T׷FFA]L}$_h{w (ΝoWs)9J=.o=yJsq X3o{Y^` IDATl43j9.h}m xɾ}?"k{?`fKd|;Q%| m!yjzV*4^K2dPS^C2Kn:,1p~eySrr4>&)#5騊GJgʬUJ)PsTIoQPG7A <'c.VJ^ӣOև9'Lе;?SƘe U>vl6t҉4d0b6ߧ7~X@Df 3=C;XJ=yb#aV{@D)+rC.8V*f ,{}rǙ`|~:,O>@$MQ"'.3tSJ 8t qQ[1Hч.KЦ[JU[I;3. &! "j,BH,r44؇ajSbIxcjeC|)e熗a=WÅxBh5 #3P)D_ -'$Q\%{2v)$BSY*8_CLDHO):"qDi ~p RQc 2V)+vPW>dAb3 O fME-B$a{mv2-$BqEO9} D)3@4GK-(4h螑:\ُ094G7%4߱uR a`is&{MvCNw^D|7O~x:tY*4 !'=!K;BG|4 Rg bfHIhXX%vA2zOzaFgh K@bW%2sU1%s"z -OTo="rW>:ϰxyBWd5 VYy)4P9C`@`}b I~n&6!)d)Uic8PEa !0Ƽf.P$"gp#fzHHP%FVcP% $t>3\llGD1vY *UCf4_{ND1e[,#! ()f0Hv%MS3MY=ouݔBA٦S.%T1svFp9\0(Qȅzˎt43+m#p)]{{S|AZBj!xPQ8C@tG S#&8GQ!Beis!Dn+MahQfO#TPv̗5LSuρ/HR|@3x?!}3hW;o߀J j8BwF׈bI1K[ZWWJk1H'}d=+ٳոų ZpfB3y3au%FvXyB9  P $~bID;Zܓ4H -0Ŝ,$ja!02! .R3 #$YQNN)Q ]~ޥ΁?5frJ{{3~CԔA0 K(UŞ="A!Dw΋1uNV2οd !0ʒIhf zzx>H̀}6C,Wܳ:`ݿq:[G/C\+փ'Ā PWnMe42-M]uI#gԲFR',O!;-QrIκ@"%BpV,l`=!y*MK-E$@J"&EBOm(%Q*aTA*DD5g3}y:dħ*o|$b?F#~LϔQeQb $C ˌn;,YF10RHnm$%23]S~M RIR$ {FC@*Ic u/&#"cFsyq[fКTU f$=[C*C+0+D 1yH2X+;#P,f9/ZEߘlSDJߴ1i@iGRe̬41RJ0Q`eddHKR}_03YKqRT;TȂq:k*DXCC-R1c0=ZJLj9Zbځ(rthrAxIc*IVR|ih૖Vj=11-,lbHBҎ=;ײ;9i/6蔐uCr"I L?]Za_4Kk>_v6{jA{0``y^5Ąt0tcp=( ʓ.ok,T3M幀zn)l2J`h*Ĺl!(8P +J0 J#EBjj=GaFBO:1 :"ZJmtiC D)j٣uRq $jPpLd;#E5loѕD(ي`!)g,ɦJ9IT97DF6X>y4T 13YKp/B`MگÓ81*CH h IK=tB"JntX@|ER( 3#h{61tҢ渼ˮX+ow!@i)LĬ$d*ݷ{z'/>El׈[TsRY, Eٰ4H-)ōT(QPBRNbd5@ VΘ k˚ò!*x%YAXN8:GJƱ+w(TfrlWe_UL t(&aqF)œ1Ć 43#9(e=7ir;P(Mi 3e+sgī1XN`:K :pӁR L;/afd6BUh B7x]NuKmf"q~QߗTL;ZѳH!tSgg {vxGX?ǠI]| KhaqDj߃/EO$ I 7]ݫTΫ4m(tI n0ydoUK[8\3o'铦5iغ-RH2ott݀Da+K{5+1R0eQB^K0>qAwٰTyCrǪ4HilMY()9m+~xIʏ/kۈ1: bʄ)# V1J(D6uס^go? L `rlyk3(!G&$+Ԩg<O ߬% 9/ce ޯTOp$QOQf Bs֝|TBxLRԦM߲/q>F AIQJ6ZF HϥIaGYd$h Z#"Dح#G=0"%+{,pHU|qs݆CH/\RX*۞L\RV4!D)d6J4Cb "g(A{ã%Rb1 HC>:@Pɂ&"&鴔pOkuLĎ1p)WsGVoSg|pNXM^uGr'ęX~(,oS0ג>)W[ݦJZ`(W+w"ٞ\/Xo\\0VGW-9~63BRޚS--G~d B 8y|0 hTU0 acUDt#vc B&}'2df8JAdHku(C֫`D_/?-эXe)%ĘpMIHkAȊE!Rm!L4FQa:WЅA@Fifٵ;L#FA$d@>|L#SVgH527 *UvkNSv%IoHA zQ)Y=Z߾*AffkR2l{XF$(jTslALJ1 S.$-;ƭ (|AqDɋKN38ް/zO >98F-H""џW?éu2"F؍ !%5fJ)17Yר 4mqa,GᰈJpլ]`u ,̂pn>%v *E;b:'1US@en2O.FZ4 axj(r%C'PʁJ>cAѡȁŅD%R4 >: ղ NǂmRQ(C;fZ`1ohf%P+!ՒJWtC xk_Fh'[pdHCTc %}ءPԦ&LdECv 1}t$\[,L~qߟj`T i ,f ~wy{$aYi\*֯$P 蚕DHŜ>#_5|iB)4 id<>lw%NHS5%Ë Xڗ܏IHds㋎u0$kVڜ׮䃳jI84>eMb-=;}әcMlMVk ˑ%;$$ZdEN1AHnKhK-CsfWXxϽUŪ"dy[9 R},pev fU14I7QKVJ4>c 4A MT cw:ɀҵ&o(L'& E3R$xz]QFv\ʲ|4 O\ŨOo'`ڵ;ZwiFAWu)A"2,[ͅSQ =d$BhR\5LtXV{!zK5nɨ|BHFE9=OZ P3,J8aV޳G)osu}{#g̋8 > V*!}N؀DꥇjҧJ::M 3#JWa&V\ʙĈpu 0$2T7KA 12pc@YpO˙YKjh Djt.M TU?&-W8⻘i$*P"TnA+JWqhaQeTJL;*[ ~NIQ&I48ql^!VԴႍ~"'U9sxBmJ)RePB`^[mr'gj>* AdTeâEp3Ҥ膵9AbCGy u^,$4mKcm(HM5e՞Nr 둪,I9w-4@S[&JmEdu'V?f ɩUC!%"Oqkа*g(ZϾpgvLz}:gY4LUI= No"lU%قA͢\px6eEoh9J)}6ZV%u 6׈`&i"Ipm6LՂ/} S~i]ѮܟU)-w31g" \;.f&L9s>rNkۥn[9}vB> )DXPذTL80e`4*}:VO(8 ))eU6$٭Kv OM\$DI4R ӥt%GUO@. g|x63GFLiC+:JAk5$> 8"}R N1C:\+EGQȌ^/ )`8豲g{lMtOU'J'!$HJ@-T. z\'Sgq?0OmC C"C IDAT+ߜuFOI{Xb Iˆ-r&9Õv~O 6 Q)[[?.JY@#jR>$]&>=9~OhZjgb ,βacZhtq$@_(9LeKsa<==HC:xg*Cvw\cCR'2e2|,T'1H`ZO|΍<ݛWXxOLg'ύ@fnbaB}*/4d:!)' u;_u۫{~N_;>=,`u+qZFёJ  RB7]{ۻ\et!={D An2k\EL` ~+LWu(![K]CFDfX2k4`h\;G 6;[ k`|Bkr\s}隖*cJ~oq~8OI ~!+ K%5dDk2ӄ[^.xp!2ΥG I^޽u}$2xDvq DXk,qGܬD*[^eYXA)Zd;|<[ΞA]\zaw~/#`%Vo!(Qtj\wȓNNI;cqĤἏ,=c)2!ȥ -L#a g56R9 l-nyr2y΢*bib@ﺨa>]4US2U $&^BIEϬ`ZgAE_yΨlBM,u0e mQ*عC۶ZA'0cvFW!F> 62>pj-Ahg 1ɑޠB+IմQmk6%ZG6^-OfQ'c*8_K05CsuK>nv9lHzCd;?D*hNKۍ-^$;ɼ#Zn=wݗ'@ 5"OOo'ύ2rAhjӊ IC hu˄Bno5$H" z&:L(H6E)Ab1C؍0ސꔹ]&?i#nT#X}a!O5h1fi:֨`CqcH(Ogam"ڑI>N!Mr$I[ 8 GZzw9{$ba#q]¥`[D $"Y}nkα*!P-\Tظ'Q1w{5g+$fIc؇*` 0%`2sS>狳wPJWRڒiR@">Cs*5#֧9gAGxtrsqJp25ﱱ1JSU'hl@JI:ޛ33u|!͛HnOm6X~?ĝl8<~$ BKv@%؇ `O 2R1,WLJ>:ZL)`fer˛(OF|/3O&% #J䃿{_s;ԍHA/gk?Xy{x#T=>TO| Ԗ@Fw]1-=.!yg:S/{~ }00򐉻 ?׾C=^غxrutLDLo`䤝痌+ %brf (K#w4t$¡ű_MJĕ;jy\ro}`zb^E,|!$wG?J2DIͬ3+es[AkMDiR c_`Ѝr%K {uB e~>5Ɗp6LDYdHe vgHcfL ^YrD1* h[L7s:id*lS%rMYA>\'z˲QP 5PD$Z /|>BDiʦ]Z HZ|yM8CET)Z-X)~H)G:D,zf1YJt3^gG>$VmjIw=AT0GWv?Y:+1=s'`a)@.#ؒHW̵d!?bҽ?w-Ν{)zrOmbktTbkg>w">ϸv7wyEem}ȳO?I^tɧGNY4)!x_G~oK/!@H2 =\tYUokC?πGW/2i^o[[M meZX4 lH|0X  ۥŋ"xϼ|I~B@g^D<$=|V'ì>ܫd=`Z^GԬp;()Y4~YKh} l!Ș9!x˙ܲukE;E)g'&N.FRzёsaa5[JtT!6~h\h|FC݇95#t rD).[KˍrBGj9VelZJࣟ !8%5҆Zq 2ŸlʱBpM,L!7Ьeh5QobCdعeolvl]C˳ bDѿ>=# )TheBpl\*v_XVyk-v=r εQR*&H>b%y|ƍxv4GOF)kYs̈́ҖqѪy__CskOQz:D kKzS=RH)Z HW#0>Ƣʔl0$HEq U U=Ŷ;/G(<ujҏq\w߃J'R1uL>8]"_{5]$x"@y"!E!Ц4A$jb^{ Z{mdSo/k[|(]:ڶ!m|. Id~A?M ~1>o04lH(@y\2ف@g;lع\*ՀI6D>db`={_D:Ss@Nq%t鑪&i;caڻYBH2],MKl\+ \02UQ僧t%8ȓ/i4E Z@+6$: >Fl*è! !oǏ/+ zM0"A;(a0:o}d*Š\<|Ppq@4 O<63#͌qU"0` ̌*,pq6i 2ٽgD nAx*ovYI%Z -[ӆ=r5j[7*²\Q|j2|V,.א{ⱧkncmJ!}pTNh} 'xxp:b9OcBc$OӖdy F7}689/*f1PY9XZ49z֎Qm(Jt# HOP+rKq9eeHHHvuxCT!9y%Fi5i  YbJ+2FyC]['ˆ6$` -Rt<ӔeKպ6! Mf ;I'U)fl荛 FkҶal}$mki|iq5X(bd0$Qf$S9kـ1NA&ғ񶕗ɲF>Ü|f HLbE4ŜAJ6 i,$VT Q2H˙h 7{y*\K̵K^A>|STaR8 ۤ"E$uT8: r%1c@.-T3(^|E~_x/}z"밶ּ\k PJ"/ˏ|^}+~EFdlw̕7W_7yk|Da:0>aПɟpvk_%Bcn'X0`0X/#d`7 r  LM; 1mG{Ot:ٖZԔMI\QRG/[Jxa%=Κ v–Z=$Y[2Pt3LPm TsPфO ˽T5ŀA"}X3:ҏh: %(O >:r!z֮b,>Dk8QUF o9(-KJ&孓p |}PLa:iA.#ZZL%<=I}_e'^ u+4F,Mō4cv HrJ eMcRhLA7Q տ%xbQ*ykG8T/%=_|/9r|2L ]3_7_l//?|9{:&7UaBk C+үVANž,BXoi]\XiQmJMG鄎J.L%$R,OZ>xF`TgW3`%IZrA3oWh H;"&eBxQ&2ܲJwnjBHA[624yB+)ӽ{Ш@ldޚF{ʾ<ݥK$$U&Mnߡ 5Slh&ZO`XIt$2eJ ԲYA TJ}\5B(ٜjZoBWwIas%4H^~/~1Ϲx-T:"*\µ p"b@<8|id=4P]D߶ K̥ҷ+FTiV҂^3mJf!,tιQI9STZ3wl0rFyB D z/{YӴDyɇ`Kܪfjh,A%) [ϏSPAa(ˊ|FrVe2U>fx6ृ^B%;R ~ҧc:va k=%SF*5'A0RRhYrzrYtg+CZH$ZR+ϖshHdlvǟ%^#ހ3$41X^G*a]9k7]i%a!0Gn&"vf4 tJCB14-" v bLB#RJw֡uoK??ר/ϼsu͓<}O'Svw򕫘,ȣ;/ϑ9Z,''>0_L&89s,wV|g\= !].X!>K"YY[lheN}qpDhBSC'4K 5 5.@6N?7Y3ׇhPQECtD HEJ#P45miYL*qvKIZI |tXPPz a oHeBY9 Z<`Z"L/2t I/296B}`V/H,)II[âeyz)i"I2,%?ǭ (Ba|p 4>pV>ګ?R!GZ'>"3;BGZvyl IDATUn,#T$8ãE6 <3HҶR"DF=}KVpa2oZR;ϴ%3lml`7 M1Fg21Ψ !yjH)} 1\V+#c&|4HE6U_9O3f%$g:~KnqO*]O|Id7sy2b#r?C>o6# zmMNqai ̯/os3=I8ng)-mEM[Lr';sӱ["Up 3x9'G/gm˼SڊT%ttQN/}>ݰ, 9}rz,%3F hrF)IpT6&zNFwhjU E>"1>ȧS'1PG0Gm&(Tߐd]20:T4icCYǩ?-߰f>ˏϼaDTBdg]} xi"r)2D {Ϥ4>PZR &Q~y;\^BF$&pu>VѥoHA=ɯꔝrҕ\ <;l{S «7) x)*֙T '5GVh3݃;윝٘k16Kߤi^ϯg:* UNsezklwRH)O>FN83|6+M\` KFI.`D !-HGD鮠j.aiO3YUVi1~1Pd' 6 O? HG A5BNLݽ9هae@a-D&S2ې(qۆ0/=Cu2z&"zY@G?9 R&-VjW>.5 ZR卛Hb3%OcMdoi%+7jj֕A4*pkTHDrQb&}p9,-%RIP" Wx"POYҺڗGt =9cT1k{ M_ A` 8 F+:K J =zu?wv:.qn޼-tgUM۶8w~={4޳>yvW%W4O{Xg ^"}@Z^|AwؙO./oy[1mf ?;G2m$PmN$EnS7KqTӾ1P@QYCa3.mL# :KiuT::xyQ2U㓃m`5 :($#ɧfSBL[Y\䷭B,܂Q0*SԴ֡`XPVe q D&p<g(HUE%ßus\J1 ;bDqi's NV#K*Axgd}=8U6č^‰E /YBYʖmd},߫-P40ݸVh%1Rf]}o3s=@AP"8 HI%ْU.)9T򒇤*!JR~d8)"ZA1C|:t4*^]ZT6RxU6R f!5Hjv?urᯐ$!ׯ>ǚI+|n_ g^~7g>CnsF gzgIW<ͷÍm|Zow/<I.'E'|v{ҧ5Ixc/l>Í5~xsdU8M/foo_j_ V6gzF k+Jxc>z׶@˳嵽7o/ \`+E{o|f $>8APAcH1@H|Y8$^X{,Chk:b&fsG;XYU,uh x@ m쒱7#Řk"Tayoz5|=s!K89XCYX ϰK !>:+ +4R B-@zyFK֒[P <*M|t)kYX4@ IUhd&'̊+I_h(<$ mAzo!P"s:OEvZb4}m'Y,|K!C͑~E+ W%ͰM+W)-MZKx(4Px~x5q F Rm"<|9ɩI{~K"6n<<`>K:g^TDC4]22>N]wc8" tA((>m0W=^!V(aTMlL4DKry ̦96TwU^)!JIZ<&kr> Zױ-q?AB"(UFn2*S:/J!HㄼA_nј &FCJH`*z F-~Ӎz{!!<^BJ<ٿC58u  [lg?BV]6],s^}U\>,ۗ.|c+̩[/~ ٔ+W.nߦlZ'A5> ycpM~wƍk7>G[aa\tDC+K-jj\pn2!<;چ24:V7Q-QT5bL<(* P~2_£j?T kPNTBXBLXyΰR,CT-NwNXøKRuIa "эR1 'b@ikQR" ' wԁGm]H9x 4_ۈ a3#JAaggEH͜|y5C h=bB|!c;Ci%=fՌD2B gUfҤqOT ?HOTƗ>p@/# 796\3r)FtU:[}sDNqx.aC'D2X4 , UFOYVTbNTEdn'L>OBig ܵWjR4Y:F*!xKu4$s,j!(ʚ<<0df&K^iX(,A} rclkHE9$ IsgM!)(Y9EQ80i-J4_+S2.F{?5 A@Ome5f)yb|83HU|ċEFZ.x=}O2J^yi1>,+jI?w#E/w8ݠP)%xc.Α1m6Maol̸s_ f<o\*5֙sNoq\_㧹=ߢ|O@+$ g9‰xmiH |uBS;ѝ$eImfUFZ4pcRU HiV2Y<%Rwj6Ih}C0*i̕^K%G h&UB 4C{ViJ圴Zi1Z~‰Fd^19-Ç_@ l1+}?b RˁDR,Sr3'8M|?X%D+ՆMRߣΩQb&[ Փ#[4ģ9:6 3v8\' 2ָASJTGU%ԡd2'?im%QfB-4"uB`JKޥ[ L #^߽gc[~7Lu~uoa8D{F 2L R(h{fdLv:-ݺFuJ霼*b,tZ{/5`# zD^L/.ףHZ""i Eҭ-AmWe$ +EZdo8Rhbt=|5d֝@ bakKYԢ&KC H:( m45Z|)8ՌD EIYDe5XYeG(c.ܬ IVo.]‚"#],ʊVA&(2ҫGULsQ{*oKwUS"؜HQR1!%eU5N:fuw\L4uF<^8K7Y!c^}v|婕՝7O{!wY,n.o8A bP/,~Naw&;8MkC:{I!/rAHuT -I/\!Tjaa^͙ dZ첫mr1=1^^:x Fk*eZNM\tRVwB+{'kRj, TJXK[0J𑵛dڐ[Yao<<1h=R"`Za=Rv)ݕh0[(£G-Ub\NZ[6,'a,ϙRTuM4UX-ByؚOfx+B5X;Sg(9uMɀff7}1.f9 FŐVbSF.{}6'9]@ vӿt7hxmAmf՜^sPw滼p<W'7ٿ2/l>M/ҋ; 1*\4|sN+l&>O>$wg*p}~ʴ4V?&x1D:Pk ːzؕ\ .0PIQ(BZ(JPG4F{ 8$v舓PZ}F(gh~9Ea i71"ud@hSN' l-Ʊ_ZKk )8A$M|YDƳa-ɒndCcԙMQRkgN<~p0(Ai H6m׉LMZG:BJ9\6bVj(KҶGx:f"x<ɪ* IDAT9sga6@誧I}ܽB,"jc#>[7"8Ia!CY`fd;7آDOQ}IqRַة*YED,9P7zؿL$mt(LߗQe1Ԣc=MvDY,1w鬜"mHIִ]B#Tr úvrK]2}Dʥ'XC!d Xh$bא]d3ٻIsuǟfq1"/$.88\ AJBdu]G>yi>ԇ鶺~oßG?n8oO_4vУ϶DPz%yV5Wf[4A 6A0p!жf/"L6O7 \1KymbѡCyFj2+jIJ H TmNGSUT.Lwջ!;HckC@Lp߬NLEvSF$A^:ġ!1tLO_@6uzFir],l'% H*pmRqX[€9"4ʊx^YQ9.@a`HH TF[EM25›ISw9ytNk6U\PI:GS,|rh՜N^W,X<]C6 =c}i=$-svCY~D\%,,D*֏%P* 6ksǭ62jD+hx*hm~5_}PUA7h<[?vOӛ4Y9mƟ{b4TY9!Pe]si&4^ /o܉Oҍܜ՝77.&pg U\ :/y_"Y]c@) Scއ~i>gM(uM7h5@`Ph+ ҹ<='DIr#&?g,K  U]ACo\cƒ났V[1Gn{CCYXzRi[O/e{/X^Ԣ:g̹4ɗa?s~Z3sľ:&1g.N?)\.C-@ Rt?V.HG7Uw{~EJ$,ر*F5ު@kщ HrƬN b%o^>v9u'ihcĿRJ+@P ϧ2䉳fƋvנyUB`%o  >wXTs*Y柼O}@Iِy@[˰OMO,0T"dzk >{ϟy|;{woKYo߾\pe(U}O91~8oԺ$LO.2+4 }k_ȿK+HXT3=ň8ӿ@7HؚަvIp OG^֓xcXy^5ATfrdY:"VuIV+ BiF҈9D0|^ۥyan?( +&A@M.j nJ! TD3s,Y3afg즻Tڿ/@͸'hG}$.G'ᄒ)z^I1{r5e;X)$ y{KS0ɇxqiuP7HO?s߶YQQ= S'# Sd;-09KTMߦlۙY·%%[;Բ|r^9zt>dz>FoWfs z0?B\ mh-0@5&,n4{>㪪R(M%5rLprs9r6 XiU{w)l~L]#o_"sOc~kK&՘ܤҿ:(*jQ'+9wow%)GQ 8ufӅ[/2Y #|w줬+_yN GcfVO~`219yQ#$(_/Kˇ?a> `4k|vTš6v:w61 !)AU#b8fb"Nvx!lvϢzXK+$/f%\e-8K$ɠjT]`dQ"p7Nì X-19 t㵒Cphy4Ѡ0b6M /ѥ}т:H>b/58ƪŬW!xý!+0kk0,cTg Z/(QMГ[l@csk 1d=8%ef rh/ I((!o,kDLo.)j7~lmR9;uxJZQyZ| )%k1ևpѝyԭE7[x@4&f`-a^P)rLs<(힧 _.ik+gf sc0H*wN =%\Zt \zS1 JFz<]z+EQ-4 m{v@{ g^|-…8ISv^gh%]co/3-'?*;qքuH`E^ |ԧIQ嘿/gvU?Η.%PYé ~{KYe4&$/֦Bŝ|_ʤ(3p3$]f E `[BM>x 2&"Ώ& CRZ庣)&2 Aln_^}F^.Uy BR c5V3JP~Ctoиt 5ž0A~iFx AG 15y925:|Ww7ٚwc*" rנh7xF6rÁœ͠M"Z~~x\K&{%|*kζ𼀶!{V:r <%%EIp``X땩; \޳;=Ed)2UOpR駨69s2ʪij XHZIӥr!~5+]/JH·ޔڦAc Wnޠ%X!XE2 !APUղt;ޥ7 t䢣]^XYk5/Ox F)uml#8!GKEAHFYfX%HaFmRZ=nBD+рZ}hŢf7c>z#*KnǸ”i'&`d*P6H„P<|WU0?-%eQ !t% WSW)!h ^D("Q9^K&aC<#JU- ]3B??Mʹd` 1 @G8}:^Hhu!07޹yϟ%sAV+N7'sgg{p?GK2吲膆H&_9r]b) /yh(Z\ޤ7Ѻ͓OpTon"I/ʔ,ɀs3Rc~Ϟ)rC*>qZۣKo3}2R*'Ѷ&Pt.Eb82\xf<!Ostt*FEnUZ~_!$ , _ʱ^G"U~HS̍Y]`3/pG < ;" CKW3N1Y+ͬb2C>Kb)ah}RwKHu@b)'%M}(GU1O!ߤ6A7*b/}$~L(Zf "c?PMzl676\qek: "ݯP/{Sv0B`$``5ȈVh[QUOG8Sjܧ6_ɍeÿGoOT&Bk/!F9'7/ MaK~C_uJ'b<uIFJ44yihiHP 4:Ȳ1!H"r.lv(~ZsMk@_L*1TId5Z[L <),)j\/(tNf *i:Mq.ۈ<{iX]A>,sJbq r]NR@8f[]V2!#=Ob8g^2_cBotmmkpi"=>:h()FBn AD_ ]|s!1k{GcN)m5Ud!u*bF:]8EFXY+<ďC\kQb sw8݉TC-ZՐP&jLo"yDHZ%StkEWw6Y3:AŅd'-ڃ@%VNB<6v+1Y)C_azګ0b~uI&i$q@%` B[L+APў7L0ߚ%^(g=j9bI ZR%Qg=UV# [$uB0$'4$3*b e BHgdV " g)j6tLD#pa7GWAt;\iJa.E=*V﷡Ha!c.Z*]PB+I("PMi*jϒ@x(p2(±zc/cТ@#%>q+׸|*l'=}6Y6TUEQ)j⠁R򃃳TLE٦KF,Rt ~mw! ‹}|_я:( 5C/H!QCqdwΘ2/i6>€Q Q&Xv-+}d@7K=EPzmjӰesk6VklPw! |s+q p^/t}Hx[i 3蕄VTՌ쀅d5~PJ>\ !LT5b ۴{"GVìfkPE+ HelM]Ú}[Y Wy+=JV(Vԕ~{/Hd+@n:!N\^_.( -|ܮ=0A>I u9BbBzPAUFQfE'pg!՞"TQq)1'@;L(k%ׁP1yv2R(&E^4}Xss2 o6<݂9!XlPChJrwgʂG#Tinvx{niXmZo1gZ5Jj0s"6g,TNS ;Xz + A e"x](שn uҒyȷCAYf(݂5oRAzBt= |)?>J;ִ6 |p̋+vE6dCI]׸vOV3!dNn 1t)R{wq$_~{?7Jpj]ѻgI@ m.7J($ wݲ(/e\ s4/Nm0#9| ŊDCCZ'fc#EJ\ՄFh1(%qC;`K m!!!8gu|Φq4E-)V'?B Që 68 !nfkOَ:mAaC"4# sp:f'˘qey6ITB&h/|/q" m1%})_vhT D]^&&8[| BRc<`O,Z VM i beYEB0 \JIDZJ ( Ub(tkKF*sm{4P kPxđoaW;tϋAIH$C$1}{ =B"ᝦk "Q9NeE)A[l*ؤK4(SGǧL'4e" ^-|pff mqxxҊͦ ?<јC޺}p0)c.HؘwlXS N0U<5px׮Qzk1`)ԴO&RY-K$dI5pW4EKnѩf;fv8AUus>!$dB2*="zhzʴ$uέTtFW{+dL.3K"=`j:|wlΦZ#e $QN"Ȧ܆մG Ay:VL0GTҺ[Bk.Y Dďg?dpsREi)套 ')sE%F6Ywx~:D5 ȶ&li!N 4k'p͆ %1!; NXe-)d 5a[RsJ?4ǔBbcP9fq#1Cc_.$=k|*+7 i݁Æfާ"cZBnۆY^zi[B̦,$) z MJDn/$m ,VɘRrE},ea6'Kc9RWhfko_׸W[<{ [viIJV3Jj|qC4~D0`7hY}ֵۇ=;C/(gqsnl%3'cڙ\=iIfq2NK~CNORduԸH3kRH"~m7NuNΕa镠MdH,#G^L P"-]0 M\&}[T2Y2UҁI/>ГmI'=g6`j(e ǁ$Z& tv{OzV :Άg=x3~w672<F;!ch͖#w78 ٚ(e.'_!nk~k{""HM}4wmBbKw!Ṧ{)$y ̩ǮТr!yI )G >|~C C\`/%H)"p->coZB UpPY~[>D鍸8_g3zfsBm\A ?XXd*H*8@%ѿC{9f/<>KPl7u_Ӛx/g` 0$y_kY+ vC6LC `cJ' {6zxU:Sͣ:zT@9AG mƼjRr Zi"M$=eb:.C0\lLP9ZybbcgU[TdQJ ғ% K0xCeNP9bN+ Yy Vx$у$?#nAE[Ȅ|ܴ`kv  a`Y1tVIJJA֊[5UK);w]l:H Z+,C*u)q7 @_@ !)GUhL0W+F~O ITJ23qCܹv +$~ʤYVTjB][-K ǓHMT=JHZ=QxRwZFb֒d>#߻xD9Zנ)|IT4tS'(uMy%xkGk6v1΢Uz'-IȆ^ IɁ rLGFmO@2T8xDI=p2˼`"ѹ3th q[f=$ 3$*1hE6IH If@mҌWG'?#D L}W/)Ӓ$ɢw8k!] -5#>Džey_PRS CcȺћi3s3حʪnUQ5EU6 XKN<|d<sppx\gMM9$,bsg%Z%@k&xEs'ۻO+ pt`qIJ5oe_GZ41*HOg c D&tp11;  3(Ux]M=B΁x%O0朶mZ y4z$(eEP%;ZH$*JȠBh2jb͚E{΢_R)?'gg]By( Y16rKP<aGHb7B`&l1D҆R:E'$,x-'G rqJ\g3bsز&#cw5fH:KY# >&NAg &|J3=19:vd&* ňi6sCH*%t#0S+Ak㺴Rc2JskrPs #Pt=(I %)d`S&ڶJ!d̳<k] Ȳ4MhEw7' bOysrv=RҸˌYEX5Yl6 JEpTchsZ70lxl޽0/~]_GJJwlx#mo%P=O%>VP/ Il(~-dsB4vsW&QͻLʂ*-%௟&FI ~g~ c6UE.VDz?CG^p @ؠBAa=j}X- %c21t>}tg$2=%)^|rl྿Ә-AHg# w1{8XkN/'d&UmJ嵯+Ւ/6SNhAQ# MCSBRw-7ceI.Xb$B WT*5~삠H4E*0 \HՖ.`p(ݴ?+vidS)³\<>0%GÈ1hBܮ<!p7PM=*U[VA62%c j[P3,]~F<ך7_so@{Yz&"ITo-k0c ŨDOd#.m݄I]J*UE@=Vl0#EB%`zw7 yʯ9n%eLWU fB$de{x\Gc6llv()ex]_cWK6t}C:OhJtٓS2SShl[v8{@\$hD;2n`=ÒP ^s!.,<#M1EjU- 'іZҗ+ -,O|J] t@ U•l"0#I E„bN\Ebv IȀWBS0~`T{|I>;7^GdhCs$0qcpAؔIsǝ]/ZK=9a% LeloZ6@ @$Q"Kγ"o3lTAxw'=X@uXˤivGwk*Ak)N$RhYKr }:(rޓ pDkrnn8VUw,W+=yǧ'$Zs|`>0eŸRdA3 T= Li4Gohi-> _f^ pFX2% H2Zh}dywL!>٬rdbһeYIE* 4~;vHK{ 3 ź",daAC]bHvo Ć\ȩ_.)$Ռ5&pJgAӶ$ K"A@>I*n 45HuBDB4(AS(&:c eza6zdE@*TNK*=ܻXoh]zN3 D9CT3d6WZ@&~Ptb)$aK:f8~@Sj Ry<;E!8O7T& ろ풤IUMdH:x@6!_#=FxG؟a6IIE[puHU($x3Z@%C Y\*'M%MP%o%,1⣿_{kEۮY+Q"z|0;O.?;=0@mp2۫#R(P e_~Y:V"a ]*B&M+6/Yf b(- [,qúiN5j/漧َTeҊDi6EltR?{˃eʑ*$E"&(JƅHG{m *qX/8dj!t\S1] gW^L;}5٘_*̄IvT *={=R[D#ڲ$&BЀ$ud*!@0gg, %K8I"4|~K.*g9#yWw{9"u6~\p0r>_pzRdcTl99jHKt-?`'$3A%}RCJUhN`ΓO|3!7z IjQdDG;]Rۚ׌ԘL1̱C @h@z&w;ae=lhkIӌdbMCJTdp~bX56X2Q˜$&0`uzN>ɑٽ6!26CEbHȮi^z}\l%4永BD@..8714ilzRɌUb1 *uA:ԜvO#_08$ȨrhinS<=`]bB?Jʀђ T|XCaVrRp(9A29(nP%ןф7nR0XZdFP2m=)Y9e"UE w9S!xRq--5A(:'eQҕ]R`&gyJ\3$D3SGI #8t}OQ`=u(amk-u[ӛѨ7-àR3}d o`gt, opmRPRW9EaDO # &$62V9,Goj 3!^E5DʘNt8*DrRczi&{dIjI>XؘGCBf7dk߭.H$D ނ,M8 hP[%A 5$Rh6fL_$$BqPaR9 !/3JYt D&p6`^0O'a% o?T<`RαR1rPћcΨGoq6~d-s5ZH^Zg 'SZcۣLD'SDycDsse U-+tCYw B1;?bn?ɘqC@@qxHQNsp}͛u$"0.Dy$2ep[j{%mً؅wi7ԬNJr??D5c6kʤ$qJaypAwt 6$]TJj/Xl rNv%AcuZ+J uݱX,͍}<|| C"M;]Iw0D'-QRәaOٙjmP X8,k&|G#)"/0"a!؞C 9 S@籠G)\xVo`|u #D>El^yQR+l ˓/o~H%x!JX_Nߝ?aúp.0RȂ*)%+tኯEV6ODR ZQoV'/fev%ϗ*2qMO}{>;鬡a:)Q% ?Lu\!x]:'׳w%i5_ >@33F (D=%|3Xw?GP(h尾)7y\ߤ[^{ گB*Jy6O㢄s߀I*AL) ܓ%Mw7my IDATfWI#W:똤 A{B ]KUy4g, T*>ڂZJ*e_G$Lɧ?_|Ivﱴ_G~{+ [Vc{ "<XMI?wďom ?f»>=Bzdj @1:HlaKg.BmR)Ms*(|& dL|B`e6,% p+ jp>E&t"qɚ̓ЌwZ0 7M~>G~ 0uixcxZ/9k1 :ɚ9i\s8h8qC8R@ \BeA豲JAb}@%8Ny!dhB!8 b8_DY7Xv`Y3BqZz׵Z,N$MKB uz7(JYG|bI']ŽwgY^/tAx9kZ76z 9,"M2B4զFV,/Yo8+cZ|B{=A+!X.!@S1 <Ir{ @܈{X5s_ Q")'Ws^y|=U_oaD"9;D1+- <Ȣ>nw SjJmGQ߇ 81h}:M bYY<&DPrJPiwvrQ_ O >G}Iqp?'ie۟e)ܻǻCpc=w-y68Gc"6xe)b`J@H翆 A*]`d(#F$0 /Qf36w8+X N i]OG798Oh͎ox>lwR4)bx݂ oIiE Z&4K[g#vS!%BƱLsHR b<%8-(mb .xr3J&32)SCji:{ c=y>a9QL*n1:G#v 4Tń#-.n?VXmщ_H8+۰]n}JHɘQ2gUT$WͺtA!{Y&tCF@轧 Ks~5 hFeY>Xsm4Z]KPZa͛#װn0nM}d OrـD\*-3%0akqkr))ߞk:H~;qN] I4JRFNȂWʈoԛ(wJDe0yozW=<~x0ARXRVl@>TsR.Ya!Hv,oփ WJf!Zh&錝|R9O8^j 5Lcٱ?z8ZQ$MRf;u"B2 ,I*öc !kM}44#;B,fd`?az|##1`Erb;;x]--/='OЩg!J(ZAZ(W=O((պEKD\o?L8!M̆εW>0\W}럯6yzQ6s$d'# UL+4Ro+/q܊o:&"%]hy"z 5Z(nTK@ROQM DA/ZV<ņC֬geףN# -R-hZC 6u1pk8&9!I9߀lMx1Ig9 "$ 9Nؘ2\SD%4s\12Hs2Mȭ]SQ`KƼ˴(MVy MRůawhn}cNd w)6V$ |`c[H'  _O;JeȋJL3)X/kLj̺^|N@\k,`o{Z+F`D-7<3cv]",2u;;s~?z~_?D+o?;wn"h$t"=|;_*(AJNYۚcp('V[i-D(:Ώ !0۟Kz!H)·7Y;U'CnKDo#̍^Ca |g£#nAl lKKQf.[hƥH2FIh:a .q)[,,xg61x ӻ=T ~@6KvA/)Yg R3Ti&֏^hR͚yfUiBgQ~15900wnE.4VmB XN N{ÜεXo0Rce0Ky<=r8 aH 7{8'˵|&GgZ\%Y6![giG4/yv*w%;;e*c9yK&'[vUjDA`$ 1BT6[.hZew )l7>4 ȥ4JL:kJ[4}L| F2oQ06'?D>B|gx,1ȯy4NhP%QрA Xid-GKEx< B-dzlءs%kchڧLd؝w4fCco9Wu$8;G6Dak`<W<Q:IqD{C"ƒ.囔I|3t#lf H Rߴ"&0gmHt)Ϗ@2+YzhzŇwI%%sk\YKh8hMWo!t'1 /oIŸϹ;_/ɓ?l߲hdw >9= |MtKdB!1r kvE+C.K\ݐ0%e2Q2zT ®7~)"E!)qh+>߳[q֌D_ ,`/7hlKhBJMISc%].0i|7!;I{vt+,yOXI Ua6aDŽO~CO?؂/y4~FNc00uU&AKͼsPވw&y<`{_˲+ﷻüd6L-QeK2K 'z70 dC(6-XKղdfEw΃}ދ/"ɤ,Zč{O^[> "`UGқQ z5ł2/ݚ2*dѵ 4kqyYw2GW)$J1FN#v+ !"w^38"IᔒE2Q1nwX_Z6A/C|Sk!9Z*6FgjиR^Ejwo0=MױˤIyz+߮E:GMWBզKچLD ɦĈS1&฿w(\p]QMeF{RBUiɒ{o5MW9vdͱp b`Znisl@{c)Ywtg'N_꧆ w:kHEs}>~X/Pqz@1Fq`6#d}`^Y=eq(e(bxR=5]䐑mX!(j=HQ"``Qo|]yuZ?"x<}n-A)j[8y$^}-!#_F뛴jeӶaRQI6B 2i/TBI[U(irh\11-sl2˘s:I.Ѹ$Fϭ[c1(Vb8m.sGZhFr%v-TfkBEb)U{iV"\M̦j8Re4Vq$=R!eF9~m(%hIVY{r9v]3fلR 1F|$ݒ IoCs ˇdWLDJ)I$FL#jDmͪmSI@ TԮZ*FznmM2U-d&A>zNc\q__pQ7qw}Hk-E AK5 ⭷ǘ9Wۜ9 K6,P G9QK*ْ t1OZGlD2\x#LD&/9k,;ˌ@"N{?cMi_3Oy)|So=O!ITbٟ?%$S93ɦc*8:>~"( sef{Lf3 yB_-%Xde"hCjѯ|4\ G<%W-~5ʡف嫄=CEwyO08,m琙Bq|oqk?çgn?}?7n(O?>b{5 '7?Y5w8{U^'71^~?QJlbu]@i3 (|F& WX-Pc,AF:N&|zLŠgK < o{Dҿ},]mپ]q0 Xi9=]Wd#u_.O oi]Gp\o"+R*RMID #SKL.Q&4''5ʉ!< ~wpZT>w5ŕ9DR46:ӳ3voPYw5;%Rj$"S9ѩ&.Vzfb Sb؆JS;9Q$_r-[ _}s? <ɋD]~B`ʌӓ%rAfB iLo: U $3κr35[!(˂r B3ߣnZ!/4Ǹt=<QU5fzFzN%MZ'70"CFCuKYp8>Hu\}t1Shb"ů*(y]J_%(Z0c\h RtI]xתV/Ue /FHjc{r!\`滷~[~BO1g)߻]/LA ywdVp&˺ESPY  IDATV}҂*A|L#3+F\c=Fz5F4W@·$wB MkLD'%!DHm-8;͎MOWI$Ȗ3F3,},ۚl:=!/ڹ\3!9D+lzEm#$c3fo\oAgGǟ"Eb1kUiSJ4&&aVdW{,uy, (u1L!,8נ( .@{MC2nTX#|aO]9f UEs4Dѱ-j&MƔ-N`'WmT(PBCD)+D"Kƨ@?^>:R#+n!zez4#4륍.~{jfr)$)E@"be74]Cc?:{ABEKU6̷da픾gy0cʓ%b0dak^ei~YDz ,?h^ h"B a!̘.t$I`_Aˎwޢ#)s);0&b}bYCS*H&2\!^FHPgt2I(dEA3*3?x1$ `gCOZja6L̔S%FtmGӶl[()G#YAXu-`$׆vEYfyus57%w"ZJAzHNmJ&=I9SF<s㥡)\HȨ˂/@a 1\Z(φ-Vh8b1ǒLQuΪ5c,= /=1ǀ{>X Kfj)RZ^hx ;"D!M!ӰbZB>U@ ֪d ޜ)Lj{,H +%4[NSnOn&P|ckEu𐟝1߹H~ߺ:k㭭?x-5?;r~q@ཽo1ͧ[~}oz# B'@ҟ=e% .3m=F A\[?DLXͺ_Tdj*/W#-j]r /0!+2C E(/"vyO{ >4'pZIL#WJl%QFjrT=nT-< Ԛ |#r0apo}qRKE3B#h-yEub3G?D qpβnd'F̲|kԈZb\4B 1 @9Hr3\z`i}Kr&zLϩԠC'' VRWd#<7'Vx<9Y_75a(g. e -EEhfy}F#{h^ybk); "O4@aV4EAM d:>9zqFUNɦsF}X Gσ&Qx)R%Eż,)MA!:P:nR]p֟!01SJ]bc"Fdl.'OG3O EuY,W-BQTi5Aty΍ 5U,6 Pa#{ňR}IwLg[\4}OX dAw:Fh6 mݲ=d0NFhhժt]$i!,OW_dgZ rw4]Gf #3IFЄ%Bj\"U(s2d \01-yx@^?hǷ|!2ǽ~DBwLd Iq`;RHR1;.KNѲGOHUh|2qrA cWRJ 3I K"e†~ch`$;f#]%Q0>z)8*ѱ_ -]kAu%Sݽ$`# m ~-Epg'ɶTy98 تn<֨& .3F/"3(ph^\ Ux/RC IUTs/tmfYN$H upl u+]\ߥ 1Nj !22lI`=:FRUނbRh\Cjm,mKc-g >U9LĦ@{5g6 ;8XBzKѧhiU/ )"G6~,mT/.> \]_%LD#"d+N|B]ɋ;U@ .sr @hi@h }3ehQ8\?2#`޳קkLd QbyScFn.MV)-m_P)C)RBhQ01#>Z  E{w;}͏{()%I71|w'O{c6lqy^f#ȢuܚS 85Ϩw!56B;\-Yb!9\`H{](72HS())4]5u7m 9w,m; ]dudI>R]BFI:J*"Ͽ4-֔њq\帽WozDŽ~(rĝWd86AsQ&c,sDd$AJq^BVA&3LfxbtP%68*5cϓ^te^|D;&+#g{C+zZɌ3cFfJ#`)}d=qc&X"8:J5Wʖ. @F9d%* ' I&9\3C%5{Dd`&5fBg1w)MM '}lj/5qk伋J9=:A.62qlҭye:YKi>hQ•΋SqRv8Ғ{K"D":dEu[{<\#D۲^< +]΋׃Ily\{șg 8NYݍnlN!Ypk}wӊn4C蒠32cR\ )GRf&lsTUZJ!-=V%[]b$W) g) `?BK(E) (Qs(%0w֕hn8=Ypz|i?JmIr(EgjZPqYe-#rdC+&q;AG\QDĊDd8=[0FyqxIQM#tYmjQ.bl heJHB4jC_Flm-e>3 SQB6Il.x ,$!hxPλ˴ (!)V6#0֎\9-k3&IRWUvC)sD31JԮCU!bFrʚ\A1&i-w)c|:JB '2\PDLB㳭זeѲm'ܗ UW졅bџq$Ux+!(DVrtx.8I{k<}csoA9k.ȋ&Lʧy8%``"DVjb3T ];- 6XdR1W15X;A5pE <3y b:KYڦ%8#UIUy֊<1kW!:DXHMR @%$MN!ehC2Rck`$#]TaJ@3 ILJ7*3aHK_$g|Ү,6:rޮ9n=THUPOk"?>~X_uֵ,aѣBK w~&p3Fƾg8Y6gmϋ_?|k?!py@ubu1kpC+w_bLF& b|4/iVj[{0"|GYst5xyOK!0Zg:Ʒ$4Eby=qq53|pw3vv+xfĦf615yD'2ɟN8G7%ބeays7y#GT~~M&\F"LI MCr.ZJ@/-*sf³R󞺍-99>я7nlԶ?L@eYU|/dFqB2yxA}DBDȠZa'K[SN'׳* ca=qՊm= _$]jfv>[½LJWLjf {uqgin1Fa|ȍ#70 W+JW"):P(Z:6Ԉ.S)i|IF'[R9AUbd%BT}Ghjɍb-3=Q/dvo4sNe;vѰ[9vI'j);̎N?F.p9l}WQz̔6t %6}$MN99:]2T/.ʗu.)tV>#S[c}OzvC T(ɤLBFmX-#VP䵻O3l7sxt9i4ZKd5cwDzM"sj'BZbƒaF$}PJ`g{\,47E9*"kT<Ԝ/R30#`M*ǔzꄍ9ng/Qͣd .L)KIOG,nP_E%cy@#'稑:*Ӛ<6ZJu'IŘ9aGڠb\b7푢@jKEh^D<Ozmx5Ǜ cWduqmjDb}L[%,:DО$S%K\|FgzSr]0&_"9-u\\8]GJrbS#m>0zuc4'}7IO0+$c/mZR  3T(XPv"(rC?XWJb׌Yq3ϝk^ 1z*I2!kdzj.3|zK D "ZDvTv뿘 A6F_MkW4z*%/+XS5!t~ۢwC\ /% ?+JIgc~kg8W~L.8\t^&]g@N)"*)$߲K  2":_6P) Ԣ)Cr /yN-{y1mRt>/K:SEJb,u Ԙ,HH ;tg,hӶqwWMprh%;dS !G'&q5qˡ]cp% @گMU~~̳A"15kJ\ų2M/ )ԥv~r`}ϐ~ɢ;v 4d$@ G$qا0(,}f{kN"u,%+H {]W3]Jsr\b}v1MN\o""IYl kuJDv ݂e{{7_vu[y?%ޭo= RH _c=ܝ&loxs~卩~B;W̫!\A^C aZ*u_>)$uyD qrhԮ{Nޠ} iC-E)kǼ=ak|& ɈRb}Ĩ'r9|Ӱn;hppj(t {nO+b$k#=w_}^ f{mCxou=Ljb:mcklvD`c Mn%Z ”gld2[AYB$fuy{ܸʮB%7"(U^K.\m8h_|tOnX|M}&|QdUEXӵ݋J5,ŘqwD/.x *5 - |^cjL\[u˰ IDATGlߤz[d/?}K[NM,S`(i ٴyYg5iAi*NϰcD*'H2ϧgSJS0;y@HMn* }Kۭ0f>I$ijV ~)+uƸ(Y/q(OV7-[Kw:b# +ycv>=ai,3jsf!ohkXc~›1y5 gD$S1>sK$;tsUrgy{Hi2rcdjfCl| 7}v=x`4RfOgORieb{k֔},Β!9'8>9nVvYbSULG̊hBx[EF۶١o;(W8Q@2~Hٴ2OXѳ?=sIE&oawl1}]zUSJ 8P+mׇ i5nJėޞi{pl8h*vDm#alڹ H==QpQO`.ʝ|-O` \D24 #c xgB+FEcwغBmh|cvؼd p[4QGQ"TؕfS }#%b#m(ȳep\ܡ#pҞR/%+LDj_sv!zmͻVk*T=c;GϺCӅhh/XzԅHGi ]2qY-Mrsg5Ղ~IњbFY̫%`GkStttĤLܶco^-mu֡5KſA 19@ʍۿۜes4'M?{|^گatB_1vޱg@dV.PK3wڤ!(έ/]ﮯc2 5&ꂙŘQiavm'4,N@Xxۢe;'/z7ݏy:~Ǣ+^۞s˅WJֲ@o^ ܗlrslwGO?fv wԘڎcuCJ@b)tNcOLUf`%4(6MBm iМT<|tHr?Cf76[dL ꑮiwoR9?H-Uifׯ]MK.GgI eTo"NOjĹ߻7" PE134HsH>"GzN8""l6;c1;.w="f򝷈WKڦ%$3k<%r,:6-qaXEA8aO(ʤ;&qNt>']r-L=^Brk*W9˿?$OGCь+oKxF*Uǖr!Ѳay6 qId 7ʽ|MDT|_g+ƜjJL""1%Ĉz[FzC`<2}}ʗ&Z)6aLt{s>m#ʢ`f/67ovt}UA_' QnbYwDnU0\/xmɑy"W=ca{k,k$=B*dJ%3a,VX+>|4|L5hG((!$&: 7.(FcQ<[@2]jNGUk}LFaK*?]2-ܚ Q16_}fQ=W7ϭ>](Pؼ=AJ[UjIJV2jZ mN7tVQ4{*t'j[bUv)i: s0{bK}Љu}kTU s_=bj6i8<[Nvݍ1F W-­`_<PM 7nɉ!22S665>bU؎ :P*K։/g?;mGL2DxQ{YBT=]WV=6:O"LPHaӢ/)&V1R)qT,1M_s-YJdt<.X9tvlz޴Beߪ7[urĈވvokTjG:HMo[&cԆNbtD|"3R$$9jQl }~GpTἮ 4%zÃw:Ɯ7v{%1':pR4^Cܔ46rpeL wQ*ZXUxy ([?4`gcη^ιW, 7U;#MïO͗6G17UU_1*ctgU5(>``FjZkC$io)}'%9|/\,9UBK X#d8<g ¿O>g\:,kYG/kjZ\7G}"K/#`B#-hUJ}Yi{atB޹{?v+_EOv ,7[ӎ[V/?8b&װ },M'S%ZGJQ=0,Vk/1K [%ZPL nO 8bs.4vNl*~/fLȣ_vEP 𨆑1zFaFc![7_!ǿ>,HUro fmvn1m,Y-ktԔEܮ A!qt5 !V.,]h)J|1֡ GaqG61[ג\ͧXZ)y.tk e!˲ջ%wn|y=Z,4.I ErMo“y+bI}_5!FO}] TJ 5TcfBԮ=:jU5<'R%M.Tzۍ7ZstLbrrh2ytz3\g4㤽l: NTP01A+.fVN..Z"""yD|"VlMȦVB;6r!Lj dxWwsL^(! 4 ećlz8:;J]z΃uC Q3˦M7W*r 9j<>22LAGp0"~0>RiBŹ8g$ wa"JU.wYZibU]숟s@ש;gauEoa$_v&srګJ=>x98^ЛJ.]x16hpWsb]ZyIbwIV/g;d&B `T J77^-đ#0럿ʠV٠4*~=fԘ#QliQ\vt0=}'kYѓ]@-m=b5"2Ƥc4:!RkahV#L#&OJxi#)v3XC)!+5jOQlF3a[ZG.Fx|`~ΖWZZlH{}q>d3q{pr,!]cY%vkLfOA;*uS#]ZRYF w~>|1&s,Gٜ:%/T !#]]rzR@ljCGK ]èjyהrXc}rRkV ;'(r϶7~cM4e ;lRYb)=wXkN lcCPES9b"~ V[QõRI:;!'ǻ@fRv-W4'C4~С1$gpflfٴKN’Uj3h+KP6˔ nNҌM6FD(Jg3!ycZcMp<Kf:)TuKa亠vk(^RqefS;\<:A+23Js.Lg4GH.kHz*Q}y~"`ݶ[7;Զ5F's$-IsM_QI4'HQLj Ptc( )9tΘ)~.n0 -%![|>Qde4K'*M%mhΞgE@Fꂦ!8N\xI{⥜Ԓ\>5~)Ld*5 Ym0bP CK-~:6ǏF}^.{a+͝xy4LL2U9t7G MA Owyo||&LU|4\9 wIWxy^{@a"9XW1p"K&,:ywLk*p3o馋K;C:i2?qM?X:N#@m7:ք?q%Tr IސIddBUaUT.|RDN5LOWJ"ʴ( K%%\h3ьl epQ@n<dgl8Y g霆 rV^x<#x&kicw/mO#(mQH9~DPm5k|ۻ߽uo}O4H@sŘyoLk}kuhgCO#v?8Bbb-g,CfbX:axh8/p>es2?ZyoQVtd:gCdƗXe\!p1KzW_M#,d}LtmPÝKؾY1I%+NQORE 'Ad)4qI,z jDrM@&`r/"G>~y4d}.B1V\yP{q38rcW\/yHPlۗ)jlc<2hmwMT*V10.=,>EkGfoPOkc>֟A *OY&1"RM&zd^zAX9ڇQr ld4Jڀ,VI.D$wFA"I LoO1"%kNGB^!e,/0GbO [bLZShP%]"bz$}M뀦r`9ry#,4͌7660y2ʵeVlmm0*Fy6<@k8$K?7&c7t]G>tnTnxJZ11#&LFH4UrPM$w!hAs-{9'c@28=_3f4`!6!YD&VaGx ֏i֮;s #;a-&&`s@ҙԮ#[R[dو'Y\F)2e0(R-wi:4a98UGfFp gIYK`]g*_o3ηgZ}!K-/BdqBd2iD;b=1꽖i]TrwƄnK\s-4jiTcL?BT4ᇙ9FXpֹ1pH-}18#x#@f'^v aş!>&M#Mުd |jvd4V" zah?5G=z*͓\$$a IDAT­64{r1(p#~>ྮ? ~)JrfY7vm>=CO b`V^r6ճk\T^1F01<&]k*lZit)uUVldԙo Ѕ =P ƳB5z$EjpC ?G$MnC]je~ U`\heA,UFC]SxD":=QNY;:|>`$Va⍭|ugِ@ʏ+ER.|3 RVPZ+B tam%rSϟ-{:=LD[o?=2e'?0"ڭbO.RE8捍{. ^QB"ЮɎԌ㳚#ַ,5!@,z~JTʰ3:u B lq6&3ϖ8]FPQX| 74zsPz`8ȷoKDPhT47^~FdVà%Q\O9\Q!ϬЄ,7YH$^1WY~9+<y I,ab}`(Do""z") f,MDrR%y x]ʁݢ KԴCeO>.<:wym^gȵM/0y-&͎iޤ3cz@Cq2#0^BZzfĘC֐p:K&n(ZL݊c5"y>z|t_\D23ow`HYV@ԹAji/!59:d+C={1ƙVQ -aCG!x=dܔK S"m=9ק6E_Jh/FBpYu+eu-]HbA(m PYf[ 772 IY,}ˮ얗'o^;?囗o!vɺ}Be(2r#*dt}KԡlOvlIeW "+`HKc@3Ir:+DӇ=X2H[cs4<}t;BG,0 :}O[ƨ6olJ.DjWU5I[FB#gPW$^Og?'UqsI4ܦA{rS,U.?_8Oכ@`nx&Nw>'@|_:2AZp ?Yr{NKȩP蒙!~1g@ʘ( 9{:Z8|op܄vκD&vp'i1"3-CpN4! h?>j9i>MN-:H#ӞoޜStaDv=?:x}|}﫼w1[7gQ"1 -⊮mf41| uW*~m*Xk:h~u Qz6 fEGӪ#CG}X|\,z$76z㯽A?=3ofקzt5/o c '5 Y^Д it!% E;Lk!$xZ!UgZS+~盘Ai/p׿R&iLC]`a+Qho(܌ZWEލ XdBÍٙ0)K k1BaEULUq`$2 l, `$JMI*("˦$>]a>i )Qd:)mAf53ƸسlPC;CG턑a?SoТ^@WXvs|>40bB@Zl#lsL֯CuY] 8;KT!rϋyt-OІ@FIfjXcbϢ[Pl(@r1/0Rsi@/|1Ie輣ߙ2-J6#F0G{(tqh9*vsIҟ{'ƿ gt@U-`D%x ÅDIf4!ed:jGIm"Iig@d{rQD0JX2_\qD> >ܷU2u_R?B&`#R3:2/%P pF;XsP.ڢb<#[=f'ztI`޼m'C<\,5`M=i-Ԯ.N4uA,YUk<}EEi5V~VLq )T}s]/)څonGa]ċ3p 8sN@蹰 uDYts-9>$\ Å>U2]êK]]^ۺͭɘ{>ӶKZİa~YS~!a0&'(!zFOKڙ/Zt!=3FwxXc/V: !pA:dHU&Ggo6 ;誆}e|Wد6>zg?~ΈDSUr=A[z-FD} II%ÈfoĎy~H6ƕY>%mh,6(LR!Zl),.h~3g_U'"+>7)L6%u{1k-? 7'BZ[ ["bi:!in%?>s\tl|yuB´VQ!4@f1;iYv:2Ġto=vwb3O@hf%&:V{ F4ya1۠8Ӷ˖_~~?{b&gO)?IUݹKz%"7^a:{{?Hų[wYП3>@Fd-h;G{CV Mqxtx_%>:cwm[_ˢ詉ѣ"7Hr)),((j>5dk-VR IߖK%m->Ho!B1{ZMDRU8?YГ<%JDj_>MxI1RY*xY}ܿ71;7\&}Izwl`d4!h>R1+&,Xq+5#SЪG;Xfńt38|pt+ Mn3GWH@+K%%k".@ㅥϓ'",P9-c]En31Xy_SO`~r5]d.=]rFHt1͵Q "#!@"fd+F6l$\f͉ %J)*XC5>y)pGLeVu}":ȥD 咪йe\t_ﳜ/$ i0v4r\!BZ|^Yv SW;w "ww_:o.Qti >gDObbį'TacD%x.8m-u,3-J32Fu4KZibǼ:{=UIw/xQ3d+?0*q*d<' 1Ƴly'/&&1_13f3>>9-mA8Ҩm'wP~VLL99qˬ@RчQь-'3G!!7,  ;[۷?}?{_7^}/|| Cϸy{;-'ߦ纣d]7beT@5[kDy$ ߸1{A>pu_qh 댛eG/m[ awRQ]W·|V]k;'=~`؈?Ҝ,ʉkYOt~r?7?ޤ,|#"M5&86dB0[+^^^SxaA!E)f5vUeL^FDVEdfUW4Efd!}3p,}|n+>*-jY'4h~L ].Z8{v "ŒgYK.4 XfjfR9opRd#=ahl|ؔiS#dBw9&L^}B2U-4Eqߤ,9?-ĜA"fKCs/>\(a<څSgrR8gtZΆ=M"9?_=Ks| -yyl8"F 1n8kthCMݵ, Ԁ\֭rQ)!>=ק_漿xce&ƂqJ0Lig"\dL6ᅚxHK2-(`CaYdJ̑4+jѤP ^4up#-2)$%)ҵ(ygyX)t/%׍Y(t lN+hƌvɝ@3.ٜnZrM\RDi-dRĖu]^iN1X[wR@J߼ <7 e<}$ARj3>-X ;lLo,/B^L$ыsFJ)E!~dIIH˞C"Ĕ2LWSۥKZD%)̐pmEJ=+{WoDqsC8?}ߺI#KQB_~Hb>'AxLDVӃ d㌮yc19G@NEžٺ|3bgk*:Imrc|buu|-6tXo霥 l2bJqo}J:1cmo!SQJKG&Cst|cRaȴxB O&Cx.t]J߁8iY]y\={R2s/W/N=}=v1tUϨ<ꬫ Msi1uҝ~ds- ]qO Vvm*I)Hp#]w|LdGTrJX ,Nt54epRקn629ـ] p]d-bd)߸Uo_}G?;wͣCOi>?6?w~7'u!dۧ?) 7 ߸e|lg#}'yaym^sw8{Gg1w&1q;OIIlXq>M#}/dm[-5By o @%)Z|T1z%Ceh ON__ܪ&B{aXDb^%A\"UϘ1f` 7ԯY)ţC2CܽŢ[хk12ÅBi%h% 3"3(kHyz|m,z_g{o!q82Qj{BRC(U}'( R+' qXzMAUjbqlJv2:Y:ջ PRʓ:1 J=+! Ԓ.y,:;)nioU=pdR3=;RfmWSBlahl1+bqphO)T\!ȍUfQӰh=6Vђ IDATغstŪz@ cfl`8^ma,1PB S<)LzG"n!|b:)Qź؇]E C##M̠Q8*eThq|rd0PJ 6rV-gh]R1dC-ɔ tUw0DԔΑC9)Fc]~0=|:.4b8GA_}h\21Wemm<"тW+L%ٷ.pfm,!DnSoYPZ`M)d_h>":.Cɂ8FP)?:A%$6l(BbHT 6 NȌ0 JH.P{5 Tt"gǒ r< ɇru9#BB@ტ-Mg|`$/C<_{콥af`뮐Vh!Qqlhb$Ʉdaᒻ E EI3SΥ`(<Tv"քɀw~k>C;zyhƯpG,BB,]ZHI@p.xNBsb:hgJ,%n3ܳ9SP¹|+*N}2+.V H&$X=[53IkiO[Cּ}3@3/ZP1F#)u ԏ%@41Ȳ8œQ[ IITzj;Ѣ0>J0|#2;}j^mglĸKr3:1ݚ(Ȑ`~p!P2ޝzӤw q::oSBN >2_Zv5M`ƍ e}HV=&OHCUgL];mhiÌyQ2#*F*YRP]Jצ @+tTO8{:iU ^O N饒s/'5 y^ !(p*Q#hTwis(@ 8eF,9i`6IS-.^9dKL>bidn 8 k{!){0򓣟`~UƝ-:gۣ!w[ bŗE-U8IJ O ߣ BBbd`hW!K"N2jF#E۵8ͶFDKS ١w.̍+Hue)?bwYt~"yO.QhR`` l½)Z?yutFw'wrT?D$kg)D.o#wTN^zV.Rc EfՊb bNZk+5.IklNt[>"$S%(sT! (26&dpQ؅P3VJIhdCS19athRv2ӆ<>j2I6زQ eK"J*b8  d|n6Hfڰ&$o5>R5_")6DZ.FQ˾ѮyۆwϞcB$+PO1P+@s 3P!G)hytmSŌP&R&J`"b۳.3 &&)a׸`ٺٞ,U1*(˜!snKDxɒ,\ >VIźv.&5c1iIE uS<Jͻ o"̴FF5{3MoyK;ld$ҟ8DgW!rR4PҊY/o A!B⠨QHt{94Z3EHa'L(ϷC);ٻu1Hy 1/z0>^; /$g`̳ k{LLyy,ݒh bMy.]6)yyQ(}·\<&/a@SҸe .PBK㛧UBhvY@IG> ?gZ!7&H1uw`z?'_Y$nGEɂ߾y +:V|z<H،Bczw*?S:_()ˀ0 p>5vEX#7…7||t1`]ĘCbP8FEèPʀ4%Kqzj>\`Td4f9}m༰@(b!hDd-tp0zBg;w(aj>=$iE{O%ONʜ{) _?Ll^ϩl݋Ǎ+ykq}nkoͯ?kǷ( |ɶtHф 12rȘ)@&!D'hӍ/1l&ksB%YsxeR \Y[C3R IgoN#J30Ҥ]$_0Oļ&o^zt IRފ"&ÍKܑEW J;ǰ-/+Q.:=ѯ"2Q!W9|%ZJmhu g̝iܒ |n/ju+P g>EEH [*p6 Hq0/#bB=#Y5S;eD]99  v! ]x|й7vj\u(PcjUGF2`8du4ZiCǴ߅(!肑E`^MӶ1NZ5iӞH*%'d݂N.Շ Q7IQ@.5AvL'o&oY9FJiD uR @)m)dy%E8[w(3ӆ 9\iܮCң" Ր(רfEvΡ\1߮1a2Mp1*B eH*T cP2"HJR_NH&a X q؝5 #ce?W21{(4g8Mǒv<#TuK׷"]T(Hc{Ն!}x`!M+ @I24C~NkK#{#2VHrcFIEaOŦUݴl[9F)D\&yi11B$LXHPO$2L<TJhaT ' ,^ھ|GY;TZϐϱؕz7>poK]1¿-wo{<} 3ǯ~k5/oPԓkL}~y^Dd`jDfiACL>΂$ijc9n@Kw)[`kq|"Z+ u[`'.[i/|?hV<8|$t*2T~{'teVQCNftaDHn J m:nٚ b?#OsH89%R"xmdڷFX&G~ޕH2vu93V"nGx 7>| =aU<*!ƣe :Є󆓆ӹJl.Rd# 68 ]2iK35 L YKf-硵:T ݄:KU,R@ ^F*8^{}go\@)mҦ>(0S>#h;8qDkv0]D+,jK4 YH/)6I"1~M#Z`\ &#Q56d(h<3E% w֜MLҒNXPP պBjP)b|uA$\ptbXYA)F!1N!! $W2/2(=(\+b4 LAB0 o%uR*ؕiRw &K~1"C !HG[#MxR Rkِr9&EJիU@B\ X* -#^yRO L].8Vt?;zB&]Xrchwh!"8ن@}Lccډ<#.׺_'ٰ\@)@ʴOrZ##u\hǴf7*1ܮUHE%/|F,5ƴfXRF8"@׃Fb hcq^"~t gѶ B4>>ji㐉, Q^%2G _{f!u&N0DN@e m NRiT="4"RDڊ6Q$ X]_}E83BL&TFOͨu=3dɔ6 8>]U!Fp"Q^\rfBQxy4\ F#h;f-]Er ;y2̈́ rO[!@>!;>Sw )q%HTZjLϜB"ecHtTѲxd91?zOZL.NJY9eOq 'גzy) -M4HR%?,OIw[Hί> 2:%yHNAĐ6Zf̢;fݭ 0F<~kח>WIp7W.CbH)ήB|S(n1v}tQ,:O_ox7 xf܆QJXamM[7 Fqk*fZ/gՖv;L%\KAЂ \>sI$bN r2'TB ɺRkeFZwU*[qkxebh ',%wG/黜vk~tmYۆ K>\?^0'` ϺD磶`" M¨'`2-64e% zwhyI=hǝxnayY[quYZ' V:s*{zc[B=-*u>Ҍ h!5{@n3+9Do13?k+F;hDMۏYd^x`BNS1X}H 1jm^IT]b;ghBuc'YCB>pP*heAmtN;+P>!.#9!.+D㐍% lfXd,<2(S龉,7^ ޵.nu K=BFC ަ՚?xuRw햢( fz6ș熡$ʞUJ2[:.`H%Fv9bdkB|m[S +Wn*. i63"E{eJ! $[ZРѩ(5YLh"]$Y01qg`f Lr[buyɢ-πJćAllK{>D궗^ɘ@Rgw|ոrRREr-A (D$dݦb I.2ω-L#thlGC <5r%Cpآ$M.:'AGBPHA.Am8L xD #ǗQN7}P-.}={J(쫋GFQ EDFG7FR ugw_K H !0P\d.4%#樭!ɍ6RF3>jR_NUc2أCuIkOϤLZ*JiP"й$UۚJVl6=y.kQ%$v\gha0J"l+S'IʧJdлcg0MWsV(qvMU +_"JM"ЛO2ElA}I>cϜ҉YPGDBqyjbq-Z*2%&|fe ќĹ2"lbۉmDmhhm{uA\(& g(ڝKARD/0=S:m0B֔R@D^,JIM,"H } IDAT>5Ti 00#2Z*F(ň =],Z*YIitK ✠jlRaz!5sk@wtBtHk7f}DDSNbS0RSqct)$Y M^Ɣ]  T;QD?9{!F-A% V\v$&t+?ͫ.QҐd|-nֳٚI){>Zi$.t&⽟7|T٘qZ1c[7LacJlp\=&>E,`y|Pɍ{C9eЬ0Ӟ@TD xZOf q>D( A$d:"ΩٟRCty,hGA@A"k7S+85W'6rl%Q"uU,KvC1N?CtߛqUN uXe0"GXDd?i1Gh֊x1@D õFфwYU7~'8A|(_5+_&q|mo!'l,rF(!9.kCĈ@9GFMg乡n-@edF1xe>"v>K>z3Z;%"R/QlB("R QDY}LYgc:lj$jQ~4^͸?bve 꿗̊S '@!sXhC KͻAJ"mR芍Ǜ>oxn_B KXJrQ4<[sFnRnT'2RBLנOd cA)ތn2$QLtJ Q11nc3`(%/淆3$5ƀYd=04CjVȋ)n:Ń8ġ_>!$5bwX ICѝP$Otܝ"WNhݖeeٮ8i@.L=3XF+[VMl Hs>c BR#c'MhQ$Խjgqjٙi|WF%~u5ô4 \*ygIBD:2Մ/N_ՇOmiDxaB;Iwuw?)l7;/!@dn Lq!ybhA"i+@HެE]´] *K}[εEϷ"e(!z8񮡔%׆7Y,u+|{.mq Tdo.C%Au JwDž&8 Osy/-)?ǣ##Ŝ?d 9^?|pozs}fDIv9:Jc, ߼%~7QbCRp $)/ziE5.u\/ޫQE1z㧬vv"$g}inK"M >؋ԶӸp=;.@ gov%L  T g~?O=7HU[6U9=[+<|H_A"oJ,OEkMKKgPR3qȢF>xWt?`3pDPF17sb %G[᮰1`I 'g ("QRX*f s*):\ӈ:rWt@O$aA\* !ecPTLs&لUb-غ } EA$tS肂-!F gf,MAwnUcL7(n݆~o=(H#CKɀnqLcHS_1mhX*rP=#RcN8>'gq0ٜXkԂU/t'HL Z6 uƲU_1#5X>Ut*4kъ" { J v{#V]g9@!‘PFd :Giy"/aq 6Gd딓=:t6MۀyO~OXsaZ1N JO$̷[KIV`>,Ɍ2(!.K;iKY"Gl*W1:Dc` 0@{gˮN'|F ␢59T4Uңk?L\1C[ѓ5ʢ@ "tVѠ(ѿ*Tw5Z78̨@*EZU=mLsdm BDe,ux -ebňDBD%.~kOezmb),d2\FX TR)a['k.{&'wفH3 b63|ѲD"mp,$t&u a Al"/PE(doS 럃RzszwB1ъVXVqEr .s:ޗ2S̉Z1Dj_m21 %9Zs߇ %Q+6*޼ǘ=[kS=PHaOjI'0Ffċë}p%~:!γn5'(! S]ia(Rzͧ;yǤ hgK!* " 4OɞxHc`={D(҄4E0Lz1dFIC&>g͐Lz^%hB9ڶi0 !^#|gR21ҳp%wH=֌ Ɉ<Aau:/XBFUdEM$]E瞋T wDzyՋ"׺ XCW>^L#=K!l#6>L3t$=ŢVBypEKE+Xd)7i`iܓ/J"3hJ(Rq7-l`lC4?K ۃ1[1J*61âBAӵLKL0)$lĤo^ue)%BwH|4HӥES3?lhWGI Һ{+ {^T^xT8%IyWׁUzgVD?M6(oDprϣ6wO??|l\ ަkV|퍫"f+MGņBH2&U@pp}aMMs2W aGXS%IC\қ>2P(9#+@[bL% j .d}[`}"׊3nNyT.?7ѓ-W"w$#&i|L G% ,mRQUX.)UqE1m=ѐW_y??څ ^$uvmc׮Ggno\ɫX1[s#E )U'SM.? +h"KZ<\cE rE;;NR/5ˌby|gR2Ԉ.#E>7D L;}. !Z֥Tc%rK l@u zv;kS{2lGXPJT %OU?>q nvn!Zb{ = AΙ MUU_*ddT}rhzcA2pDEK S*Ge{o-5#xzxPu&LD:ssuEukl$Y  > )xGlj mHɜsS TZ=KLvKu4 @dA/3r^ȷvnc2&k0#?G2Ra|ltQwWRH),<iz֜RhFehnRA~=XHLJ u]+ Dlk_} ˔-4n:E <5=ۼ>JP)xGQfQ9! D̏W/Nvo0:V[2c Ԉ Y%͝ޏT8lJ>#- *$\)KxWSwS| ɻ+ 㟸BL"7de%| (3}mqTO9+&RQMLjlWӆ 2s ɄbXwK/\~YdՄJÊ K!ha8wKԔ&qV12;m2]pkyL9@ڣ;! <0)ƽՈ'/"iRʚ XlI[iOTLeudly} oƆy{J_5~ ~aVbXV+AU)_Is;x75޽ o!x3d?E}ĺ !yM(&-ұjIX!jp2[R2u>!T#0Mb|6yv*{{X=+bg">,g0B/v (+.Xiˑ H)jĦdrI:q!OZV 9J(QzܽӹGiº֖: N5l_ϥcag,{7o;>pRd".fJYןBQsڨB JWscq6f3ߡTeԌwW- 2QF7ĿW|MV]䤋tEN&G 㬃 ̗~3)J@Y; #n~TJ`hv_)EK8des=͋}x09Vbݽtzxvt>6]Ox0=ApFl:gwM 'j>]XmGJ1iۖa5?/\zߢiOI뿌p?˗ao|ׯ"Ervإ'|L3vwhV5NJ]G$J'k$@-@P $Y&R@i*!hq,s;ccg M”XO12u20Jϲk$] /HH$r_A=Ԗe(5ThҊiCQID%F fgꆒZKY@))W3"J HI&#J$&*&)Hy`ɴFoDZui`$#QJ]ax*vѱK~h/@w1G'd##lJ',' 4{jO6%DTOVNX#0ˆ(ڴvznyѧ,B}O<6Hl@t  >V{1Ĕ0MYǤW>k0?^,Z6|coNu\ۘYuY*!90Rw!e"p%Sx}gS I)3Q~|ks@ U쇈ȫ=HЮEH)41 BR*=`3f]PFZQ .>3³#4}V:j$o)s9=3,;4 u'ţ?2$Ίi#*+Ht Bfj]{k:pH@+bڝ))- lja)Of$,klXll`w(lC ISPzx=4iH_{\9b#N~ޢZ@1pfYbR(NkA ĨBqo*DrڀMV3D]*OUiELc֝C6y;lo xXx0A7fKo1OaG\bNp x7ޢ, lwϧܸ}[\"[[(@"#3J&Bvfk/#FuXP `e2,r̠ :C-6VlƪKFp4y+^75]e!,e$IHMns<=̿JP. mIXbd˘)JPIA ӅMB>CSd'jhV(k\B3`&RM:LH%6oX_tB.Iاx cj:'ώ%jBoh(0c5cZ ĔE yv> bJXhYQ$D{`{Y7$QɅ-;3 I^I1)]W IDAT{0HeAFsxbC{ѥ""eFiټ`i0rn^\rqؒi|B'@JARH} yԩ(cKM׃899Jhv}<^eBQO~^@B$i jt.%ȶA'ݣJKMJJ 3*Om` _݋DS*b}ds<Up QU BNTQ8|2~cy[\ !6.]@HHD CSTIMu>F]S ::4KC(NR!xH#=8JSݢIN:lS9Lty9]([f͂Y3g.VK9&?f?m~u(dFK㇥e/"$l,fߩBAf)("-!zY Ʈwl[^=Ϸ ^B f7LuEUr>E/齭fV׃E Y79|=#{F(3TCf G[Tf2 o8l DfB.sBL+;(DL#E,QJnQMԇC@`QW_#Ȓ@ZIy Q JG& ,FFz$Kjh SFK;"RDo=rB %n2}bYbVǘ.?sw8 4Vn@)Q8@+MQa4Q+DTF$yiHkJBx^!tBPkdi0ƀݥru)z@ݾؐ%,a0 Ǹ$B@"D@ *SPOyD}v'8Va:k&%$+-b䷲MلַLm<"@+Ff҇wž I8Zocdj`E M?*nN~%>RRSdQސ%3%$8I&;AcdzBhx41?d .poMbO VH%.$Vճ~@JTf,:c`dH$`&jxfy;7fsːM@rB `yQ0-.DՂm}[Jx xbQ%,z<' Q%3;}(0+wDg $ƈmx>z>5A  keWmW{!5}H3pE{Gkx)E >.5\f,XMy{AS~F+(H480̫rv}5E j:KKxb:@  틖bLtEb7>d RRĊ22㨙r\hBG1 4l:vsڞ%uc$6PDQQ'k/& dJ$`wt\*Pt>-CtC@3K z҇si/RޫE'CFSN$+qI .ǯ"1L'id `-.8r)<Ty%!hq{bLݢ@^k1GBhr69?d:uv?XоxEFf!QB"HMq ΩÊ[34"cDZG|%@d3*H9DPCl EN}VEkX ;k [>~\ dz?/Pgdw.;d[ynו<a"x\8>m. f>2Vez#1 #-K!@Kx=@ORl,[xT)@͊Y!(eSNıCς=[@&6S;o%EJ VOԝ}sH{2c'˷%kd-Ʉhx)!O%P$giت"[!SS%ɱz!">J]+ y^%S`;=i~-WgH uU4h\Btp-Zdu3h&:F \}qU{D;`F""t\‰H[V5c1S;!H[| L^D)Άc2Ȟ!L͙EHH&[OHgK u1 V#ŝPR)szMܬ|njAHNo!]{΄TlӢc@ pv !BF aig[|7ܿ+ vF/IK?Lzr Q)5G-`++/FU!Dd֭h⒛ >;^!MdʳQV()|0È N 坕dꮥչ (!J30٩ex~ky|O 2bmF?| osDDpsVqf璴ו+e_ٞijDЈHv7d!(<(ZJO 10m!@2 mZS.Ϲ3mLJ:KUܕt A˰?|Dh_5iE>zDpi,%EO!~@dx*K)$Z(*][rN[6M5KUH)A26(UIjmҊ1uZp%HOMhGXiMgtօ4!\1"$3!HXd"׆xGw(+&Ғd"u#u̢1&%Hl)#5Lݔh4F[KU@tn1yE3l. Gd;q?%h"{T4#C Y7l?/BgSzT&X>wbQ:cƌF 5XW[Da3B@9|4cԌ!$/2O>J\`P ">AˆBhP. Y*ZoYb ZK<0IOJHgS@H^g_cks}.]Dx \4Boϭ`e1xz=4K/pZiwOg|vw" \9dksx4`<2$5i4&N*|"<`)EǽmΓ7FU:^ߊt@WP?FoP%^m&u6)bIY$8ęym:n#m<#pEb*. ȄV.|,BZH2-m1-PR EKTŖdt#@.HW tH`YGBDXZiO>h!cAcz2B=ExMa6C4M[S4h&tyNi !xU~aB"vδ×\۷nnp\.oEt7SC~ Ԕ{1ȃO%Pif+j_{zZ8:dc4`5b}!QG@&,qnXz]$@( }a93KӅ:,<$I YKzOZTT.cWSD^˿%yů{,>mn= -$)q#H7sM1\M&.:4L')e d t-/e޼@6oZKli$c9t+ W!ek!+HG->UN[HB[T,g֔-[Ӯвe *Fw\! v'Ħ]Xg5*zv&INXF!FE! sʌ/lgx՗P薑Mg(ePJl71mGXZ!6)1hRod ȎCDa$K VuMuV5]o??~_~_}%'*h0;(m{{R ?BkͫK׮1mksګVK~G UU¥ \v '/r*Y%Mڧ }F̽ORtG&'=$G2Yڧ#gT=z<O:Dz𱍞ڇsMBl$ɬ DNň (F1%RP\ E)*JCv3+`G_BO| 3-vh) .;|N8_%4(O]fszwބ@Y$ײnCtTbMv}Hs!| +n{| (aKN[`_j̪6. .ssuZK$B(M{B|aK)FcMM>S"p%E wG,ܒ≶Zٻs>X5f䓙̿ӹt| s[O?D alI(!1\2Y9cJ*/*k/ 5sd0l}6MOg7 [vT!&@9_\βSN7osP*ԦRe̐V0{Ba9鴔l鈋;\檺oWn[}B>|lJu՝IN]5lm4 XQZRkщ5#"_|OKp"Pquϓ dR#aiY_N%){ S;iy}LE W y՝ƛ_5182mZD,B`}Vz:*Udž[_F2cQG>0(ҿ+=/Rѥfh&L̄pǂ̹XǏTݬ Ff{bI*+7GCFqeb$,5h%]%o'v _e6.X,2c# e6֧I9%s]Rk9iRF LR:*M 1X:櫸b,J8-Qh+{qE5l)srxWr .$P!>JIS9I*2xiFl1!&3} P* BDL 2e++ቯc$ !*FS+$Z ' 9b _}/#ojW^y/;} aP? oǿoc:OtUU\v,;yb0Ys)%ሟf!}!~g8yX[f5;T7y߃.XaY*_oR.?#HA4W wm۞փN(kEΏ)Ss޴FK$ǀ$HCJj):JQRфPkBz+%+%Ŗ96X>AWÐ<_+ƻϽ)ZGw%Դ((o3S1u0|ۗ.K/g ѳ3vv56G0PϖeYo#zeȈݥhh1 fMf00 saΠFXQ2#R8j+dd w=$% IDAT^[hc*s6\Ǯ%[ TnCH€ 0r{ߡbF3ͳf9J6.zrDU$F Z^?wT%,;yOi8' J+~`.QQi;\4 'GRW>V+D.Ҧ[>aү2x=mJ{7s/@?&{uoVԪ,_C^ú$n%LVz$Pa)[3f69Kf^<'EA|y+S9#cƠMN<97{^8Fb+m~ Hr( PXoi떽p4 h#LѠ~O%$mJU"d`/=ɘ]k7s_2bcOiER([CH%b ep*R`5FkVA6"eYzb~w@|ψEs.8ItBRj bdsJ:;Mr 'ƜdL}MHkZ6hWw{~Dwovx Ŏ1k4CNDI6Q65!Sݜ8J k?=C؈ Fe{l }DcSs_B}k]Ek !zVv˟ hy/8lI-~J-tgܞp98s S21՗2w鐑Irs5BDl3E%/G!?O2<"j) *nw CF~Sz\Kl@ɕ^}Խl[r~2 yul*`<9>xcm{rCI抺֬6=0u?|<ݭ:ZuI(* Ɉ98uR9ލl;BYC"|^)5ioEo}{Ș^~nstx'ƫCZcT*"mchV0J&n}c㿬󄏎BUXa2&:z#wb.PyNo BIU$6ԈݫXp Y6Vq{<ċ!D$?ήusrYQ隝rWTS>[X>%.Ȝ. OCwܜFT5/Y!$ݹDr~:_uvoBiI^@BPYbJUW(fszEW_4+/$)P"M1*\[aF0+ XC2ֱHwd21?U 7A@8[VDzd"o}m<Fk!W_1w=%JfL?RrZ{>GE5mx덷(%;;,s5K#ʈt)N?^qG qi-̸W0//x1p6#t{db*rre{IRfs)%J֩ FڙJ2JIjYzh{H 1y[., 1`g?8596P ظ .qX)Jh‡T Wy8^%[Z &#$p$CHmZ:#B,†=W0c3GQ}>]6]Z߱^$HFϛ#X%o~Kի@Ҵ?( '0_@erl7P<L[r]ܨ?y!Dڨpa{Q 6,׼rP&7[U 5~nj7Ŷ}ԇ&#@ -;.#Kmhm2" RΡbRm4hDrL}wǎ.8:ѻaLhbČ3QLeH*HX1V1FX77[isxT:埂q@<}J^rC " aJ$C MQq'xHOB\}~WqHCnt ԋ"BL@;m7 c+pܕ_\OHɉ"?YVkkR^Fly^94eK۷( 7rqA:˓[?uN[sr &~Ba{y>Gü'! )Xs1_B{RB# bhz[C ཆxe )V5P◖<RSI;:9g1.2. a# >~*p#8x'8O`fq(.$C.&| ޱiIzBk|+K7$*>1'X7=0 2QRku= 4=Wi:~\_OJ\`njuHk.c2v3Ʈ"L51vūz`*DQ<ЄC~)&..ƐBF'ύW" !2(  $ PrZ}1HV[K]qH9 ZLk'  5,p v=[c Tf ~QŔC )0!YAUN2 i9Hk!apM|&tUl;6D1Z \P2OTJW<1N"Ʌ XGi]߯Shi4ZS4r$@h κ[Oޗ\XL0|pQ}ďB*{Sd Kº)&W|(s3So#:ܹM5E,|8QdYs=szvk/ƽ{rp5?@h˼+QJ}t射 5!P" &LoW= ?_spoW\aRguƛ_u9-A0} |R*d1g5t dca椛rwzA}6v(QUjw> Rʹ|rSե>gPE"6v4d$Tl H17G!` $X2JǰFPJ9?R^ Q tQ[^MxF@h֙8S(?\Q޿EGg[:}!i0%$|&c1ehz_"VG*qZ(D2!13$͌h{5pt>Ψtj@{VÆЀPh,@{<4z$/6˳Z9\P !i! EF{ [yBS/0Y6nN{LIs@$w &P{bS (!y UP(Zq!2\~t{\Y, Ɉ1$0\lDZ%%4-S @q&&WI] jXsҝP-4CfMZcW8!0|vwLBiC&(eZ`racNg}R2,r Jb}/=Q r2&e9: T2bl=1Flp+(S6'Glӽ)TaԬy1P-[{,ax<sͱcuP@ן^6=3 |g͗4qPH'c~wu6=Zs`fh.Cُ1+0Bijɛbk$ F-jH@8 2Z)oD 5R%br(#[fGa0s-{# 倕H&GEk8P&y<2_47 d&CR@ dzWW[!:n<1QZhB sߤVl 4i=!5bT%3qB?`o*.@Q2I UJgf4R+[d<4;y#3 B)]DsHOX~3D=DMr\p̙"MFQ5l'C zΝ<>)t..p.EZIrTzM}DdƐNt쨜#FNy 6TdS*ϲρC QHr3 vJ-@:҃ss .j@F xxn@d?f:=I2wh:ZpmdܭoQ5RJ } ۬0LJ9hw^#{0 8_MLN5d䓌颦dlr~b7aqgȯP P`~.2?`,Gs9[ ѣe2RHzӏȇ@R| ]H -&ϊ-Ѡ08,XX(,#2uH/@B \~ 8sn“2HuZ򉀍 Mw#\19 8tul U].1'dgKz9_ڝ:ر8鉌@'̜_7ѵƩRH&fT->`B͎9ɋ]ߐ*huJ"L ق6{c~|o*oi)Ir3Ϧd"cYنY ;4ܪx!笿dmEnKy2Ɠ@~4$jEbS*HP[Æҙ C&KZ68gb#{fd'n_)%J lze,ҵTOo /}{g&JW@'#@zw*c͘dtF&5[#5@eJOן"iΎ>a}v9=z'#RAMP B&*ҠEQ9ZjXvnދ XB4L!qtVJh4TK/i#Ѵ?Hw&\e`" % ɅoFrU#mqppQGK{ރ А A5hVzVg.U^,yyr3(E4޳6`=EȄA$k&`VWKvw' ۋ(=7O*:̪Ww&q.b;6L$L`bd)jw 1tR B!on ^?`ͨLKl\Ch\_]xⵝ6"jr[a\_hϗ_ϔ>%fK\vכnn^(J'=#l'!ԷovH9A0Jmqɨ9+L&'5vƒ%c$S#u5G!¢dLQ@(Xszku@ipr&-=)MD_!FxxH\dÂBzu~2\Hme>:ٌLn۵%]Y -ZdAҞ8Ŕ5' 0Q5R(zBkd CHAv)UG1{d?C|~d:#xC_L@(^L0$v4VJIAvrF%#|O7i(%[ k͝\B"L+(B\M>BԒc[χcQ)xTn3vQK;9%o8q #k(KEAZ'۠"bDDG]͘GNDXmo#t!Ra2`mȥ%!JlдHH' J)28z9C,l4t}}~V)ĬBXO<[ ^ TlH%=yL2tH|=e*c虺[! Zz;gTUMGp,Ocnɵc#p*nL*6M{glghWE|1_ܒHQj Lb11 br0\;ΐb91Eņ{dLJ xx$hXw7ˮĘHR?>ZAxdH|1S(=_X)d"}J E`M'"I 97!҆'2!F/r1b]yfo5Pdlqg.x==K XI]D]H,wicIw&nqtN1^I$O,!hnFD-07\ٶ^xY tcl3#K93K`HCm*6vCLiBl\ (!G&hDrXZ&3X!2ipyIp`cPz }tMefŌR?]xѐrBXYKLE;oY~s C>C*>ޔ(-:FfmS W*)Mj/ D>px ?Cza^ &."` wMr>5;b^0D&2Qy2gzLo:Fcm'܂[Gq{ Ђ%M\" RPa3aqBT7 [.jz(ql۲}*JIL.Zy,A7Wɓ6mON5_hCF&*%]AhgK\hYN{3Ef 9ԓsJ@gL$6Xmsֽ r`b+Hڣ{}~ݪMym!M^p2n\t4QWJX{O;؋d<1+J ̇ g] $$}V‹_0Ok˭3?׾E7\%٬W>:$o|?C k7bCȎ'pv 5ڞe;vX!R-3 Q P=|tl 'FHz0<3 䨙mUeEd{OTLh^0)i6(Mc%.̲ QsD\&]lH p)t`FRfhilG32!n,BCK,[퐩s)c[QŜWְ0Lwwػ{wGQ/12s S_a.DO=nD$*MSd(̗1Ї n*ƞLۿ 1`"6M뱣`JUD"ﰣ^Lf#}-b1$s+(._$6-8kW1O".J`hTv覤 ESkNK9mcOE5V{Gkl 0`a6ݫ(2_H.@i]sw%0[uAmcH`S j[g=&)ng a~=5$R5wŕ5%?;ѧ | aebDn6ְizIlQ0PDM.d䣳pq^ȀIX eH wS 86* !@ӌ#8J~tϣ Ϟ iǿGvz%:>;|o}'ď!L' @FD'Lգo}|R҆6Z,4rt Ć:"H$!X~q#avX' 5Ftدv|˝*iGl܊ZW*Onۜ da¾qڞ3tK*_ a*+Gb[F=nX6 8EJR]Ǔ)C(*"x6IjEaE%W|Ny-?E>D}wEQ*)W"DEM<]#2Sz_i!$E2-߮t܊Ğ"-#{NEZƻ頻brn\J XѺ3d4!>!?Oz2$@DY~ F{."ZV1KpH&BvQ2"ED82=}N1!:(Qw\|DE\st jtʲ?s=npث^"yɤt-QU&+Yl3{?FlVd#㇔n>XJ+[ߣGM>O~G9 2O]jw9(na?2RD m>{l >u;zUw|]R>f=b RUsL{w9Z`-CLuyK;lAJ!c\G"(\^H:#Ha$PY6uS)RHY{Od+v lD.6&7p%-JA%.[8]Yqȧ D0-Hy} BII<{ZE=w飧 kwY<|DGdKwFYϨke#FxޅԽ)gw%o;Um9q!?V4.*1ڸCΩEdH,JG@KLi#rP޾xu;A;ZJ*VLnG=>x˻h//wܫQkŎAD}pH=2%Zqڞ -.$Öiae=8 C E n{ ɬS݀\+!:Țe9pb(Mc41кmIs=1;VI4\JS ;yBb -,Hmb- 61SzBZWw(HmnHGvr-Yږ,"$ɂs5l -qwѹudHnl{u#Ck..~`BI뮶|82~|~!WC7~߾3ߛQJ@.79i/~?WK ]3gS3>dy@(UE Z"L E6.vne=v 8xh#TK*є{`۬p;7C߽@;l\~ϝ(!AO Tw_oL/0%W֟'4n|Y&ҵ"s7\F*دwŕ2UpsjΦ jRUd9GLj1bWALU }#Ȁ=sѣ;9.7'ewo5%r.6 'kobĔ}C&?~=}uuwtC(Eo4~«d̴p#C>3 @ B JQS)2h)אSRe(}Qf)MQ~d]]):籽4avƟ&&x.B$)%//Ax`@IM!JPҷ_{-mDDzocl8?L7s%snSh=y˯rB TFD5 `1˂LBS36,H/1f,i]-|!UDlМvQN4ۧP;hƈL$g !C4GlAg2| 7ȗ.r.&g32_)1z ?ޫG40+tw8r"!P{ Ю bWnXrA.g֐NOYi"31{"MrgQqΉc y|D>vo1p*0'DN#z5WfoQCa^{ GIyL-7?K~gQ97cS ea'ߡ|!YK1hz{M@,Ι甔\=g|7 SWY&*p琤ق ȉ/u[C]s(/ɵ)d᧴~Lj@';-g]n"FJJi=zlBUJ %d,m`Zj)՜Lj7/zD#Y~`9yus F&2p,,A"ش,dJ[pJK }_<|)ODyo|[pk֭hC}ԣ!jSڌY3л>nbH!jGp]}t xkg]9>GZE3lέ;~U7@ Zy?A`8N~Ι1`ނT34hi !(Qib7,*Z<W '?q%.vԧO(So:֗yy32Sfõ'9Zۧdg,Dž@CqD*Bp!y+kɵh)QF_Y`K Iir o٧S= (hlG+8SJnH+lWlTmil\eH"CGwу9ܺغA/4_cŊ\2(X[ѣr\3ݭd<.61ètJ`R%ҞQiLr=2if"'${ȍ7?F/Pqq{xCj3܌@rstK"R!!g}:Cȗ4ܺ5I]qP\df1_pV:E=2UR ]U69qcD]F 1X *S0Zmpx2^e<β 6X: ,h%9Lj0MH / ;|q"_L!i]yae/|k&Ci l'%HɈ7->o D#? 27iMoW }ʗXt,_uvsknޢ| ӄһ+I,TV  H>9KY]s&&sQ#ΧsHä`M"[%up1(g=P4lJRyLsRZ RiX[f:vȼ;;$B{L vlA\ r n2e8%7n|/3/Pov_!1F6m\;{]}u".[ܼNM0R-b`eÍ(t2 !0_tuCXkZz1* 7eT˜L[*FhGguAsn|ԺbW793,1٣, ጣUK۷ݔ[PTȧ$ De>(o&x%zzLn@)Ob̅ kѪ<ǨzFhܨoRox]5~ N&0X P3dG~ɝ3.#&w>E}!Пux{̑*)3+ ,X6vF߱裏쾲F53 D .#SiiCjCwXꈘm7 gR,mQ^zOox_}=?d%$Frm.]:$!h\*Z*ۦPR7)%[HJUCeich>,G RjƪYv`VRLÇ&G"ێURy:qf. \Jʎ$pf@)yiHx1].>A @/˰Vs 21hlݭWȯ߿Cg{?!W`"4nZ̞ Վb-63( 6gc3sbWJB.FHR i$*A=~iefJk<;1gL2oYT3Az5 uT%]zG<^ن( ڶs)klFIr!ZBqRH\'u>E")=`=bÅW5ȉ!I'Zo]:({G:jS>0<^B(#Z|oRp΅G6)Ҕd<,Q,Zٖu fs)=E؞ݷٺ6IƩ"c z"#@>-j ܷsC=;Btn ΅։I){KT'~Q{̼[ۖi9BEccG[JQ(jzQ)_o&{dP ϏA O&)l 21鵈L>3|3j,-ҽ-YA$%35#rc1"gS2RSθ1aw4B)BUnR9gZZDžrbJ<9g l٣oVDZ=؆*ywΒWǻT:??FCSbe&`$ZL]_T8g,!O"-;y}zu?"`z[.773JJ+M\9hWl?Gγ?,қ!)gddմwǛ9خQ'ш O."eU]NTvwݡ䧧,G#NnRيU޿!U9O(eFgv2:Ѕ>ZH8+FKB\Jܑ1|>N6X)o ֕aPJd0?!u=1VasIkd/I 2 Th@*OȤN~@UxIN: IDAT$|SƣdTʌU"HVmBo1#nGp/*J -}K޵Pd؟ѣ)xg{F0 * nKB0IdtumRm.R \\U/O'' BJ{^9Sz߽s,u$jªӈ}*b2Ѥ[G;6E,UdHcA#(`l &`P\JƢA(Ir`;CfQqۻd_}8=F䯩GAэ|FA&(Au=?onj7j^>oxR?i4a%O!^eg2CI}CFG =ë7}ΩN3MPw=3OOXCEFi!uJk'qX_ -g\(WF#6! 2zZ$=Ƚ ;/C}#i@GC8sMHĨ'8c^/W̄Lhm"%V L=!?2ڤ{L73͘t\b~_,A6H)OxfG&#4ϩbצ(AaϙsZߞ/m\FdE2,@B!JD x]$ϖl= ~6A?(PzӅበ7SdW 3#1~Ϲ5cУS@ ԊLh&h`HIw:쌢,ywɄ$#"$D o~ G_RD)F2>^ѭ&D=f hqG6rqq-u4!9F$ 7VYo3FOԸ(HpY-0UIO='MQ@LrH_+h{uVpbbB>2-1H6Gg[[+{IPd}B#$4nii96oWē(kwIym\>g`q< X>8ziEu1r :vV *ieO/BoUi?w@`d%C. zbsfױ.XD2 _h Q"u_7ԅHGsO6{KqU M)/T.48o12CitJ*v\v#wӗ,>yͷq}jnņ(x|!2TͨA ) Uoɷ,Wiu,8\>rQHa* R2JZz")$,Q}A{bj yގHՐǷ}ͤ 1Q`b}ȅL #CN4mq?P>z@!Ճd6˭[SZ%0 !C^r͜:*+#:CAk|Ԋq). ҤHz/`oʟ4licK@(KV~Az79 r1jFYC7~Ʋt.#b {UͫC4 L=#:'%2~a0҃J8^0y-^} WĿNI#B1$Eg:Fy}bF@ĀlNP', N(dh5]]l>X4Ԙ4N}IwԌ"P(.Nj>0.4}͆YTbHI u[]BY {w8빽m%]X,?[7_᝭)G+xHXc{Dў`z>)0{.m#tF|t8yvB\ 1#VuE#=Hc"1r] +DAEӠi6!rsgC{\8A q2DV_8cs;g+t2Q\Jie9B!=B$tɆ٠Re풶hQ5w\C¦4dhpW_~q s/S4F02 d,T pQz G\V>Kr!#vy!pr"Rd:#jI=JI߉!:ֈ&Y3k On$ xǨ_#m 3T 50E(e5L QLdИqh\G<:x;wﲿ>q.&r)H:?S^&P#A.g Ό1YV#N8+2|yT9(Y<UEA)rZ O;הNP ~*QV/*q Bҵ+TrD t\Yp%{]6FAEĈI%\^YW TdpU'w#e 1!#B-2;5Eؘ`g3jrsrTJ7D`1wn-+=J(J]AlkKe %\c6 J X̶BR>Y*22c3Uh5tGt"% dTӹ|h8mSQM^MخJre8'6ǃ铊eC?%iC MKnIƒC_B%Duy;ć LO)^}9`am`3ʬ5`x#qpL8nF?RF\0v^^ik `Bdai584.1*/(%1Z,JҺ.4d2d5.4 KөH)Z3z_@+@)E]ec[QQ&9E5B@,ǖ^"ݷ$s-ß<gJ..7Y٫ !n缻$Et?u! o|EDi&%C Mk-{6ӓ;:x|):0/ F8<KDTΰ;tt!8pnD RTQcGbŪYP-֛%q+wHK ђd5eUHK_ G9Ǥ,ΟQ.D.pTb30x^ECHE,V+)X)MiFQ.B~ySwB(1e)0ǘ՜i$~.8 m_R@.s4j2!XxU( =_砅bY9d$pk|㫯qpxޞ +G>-Q&C &P PBEKj2c&"B'iچ6F.5iA}ތh'%c5/Xay硁 |KLq JcFƂ*l¡'`jAL OR1haJ]1S eW4 O!>&;lLOyZV_8H}VkEY >Y5ñzqRI=Jx}VY{eA}<&)vwhʊȉy(|F[zX86,0Y< %Q2Ǩ o#WdrAw 10O8}œu yZïCzX] -4Z2?Fp"N\/1LBEe}J׼9坍]vOEE,gB˞:jxa-j!1a֝sB\^zzo|Z pr"g .oD_(ڦl~_5軟@ n6#}3KtTDigǽXx2P`]+`tNКmƳ#r0R<*V`gO|[w4tDՊO>xw{|緿 "͟[u?-| _|%*|٧losW{4mE?S[ߢ*+8:>BW_}7| B@$^gxNF c2ə hȟ sDMOX^޶``3qWXfJJ()3iu!:#bHMt<1CDOOý=L!b2aj0"@[lDA(B Dyq.?OfNs=gݒr\>bK6D=zy#PѠP "BF*]Pr`FDҸyL6Yxu~m* :'y| C {O]uiȤ{BiO0\藳#C'DDRrI5ZZg٬1} S,Xm4V#2eҸeX+wݹCqK!=zm5 H Z+`e##ɵ!mtEąmdSfL:fkܸq}}S>#>*S6Ǜ7h 2$)Y&%Dz6)8J۸IfĴ%h|D;C n"'سgW>!FBL&kR\EI+P@S]kԂ9"BH|%4NAlJK+#tF&SG/B"O^RW!xKz2HD1XC)Ub] t!ІIO$z8]{E6i6+)ާ'n!6qt:+"PBeϬEKA)aP>pf#wcC +C,Gy0 =K@K[C/u@929NS3bm@zR{蕥ЃTCHBTdޔ]8[{qSȧAV jg9B|=*C}D25R/=\ע~Ih4ú\)ꨈgwLDf5cuKcCAKrպ?翿SyJ^98Vy<-OQZrY OrFfiv)IFEҧ4IA1q=dCɜ֦X*ikvGtʂPyJbB'#;ɛ.lc^a,ZhM].&rr$)"uDĢ }: TS3Y ˲ %_n\/5-)&<䙤+o IDATܙ .3 +4 cV15\ϔoO#o#kեwyH!BR)񔀠T! NZ/ ʬAS/rexmOܱr !4T1h%e =D$GϩT rr|/[]%l"^{ j\%"h926=z3ܓ{KX7߸/0#[ބr0ciCJ@`fOŮ'!@Q`afO/YO "xmY< 5O5]hB|9{v,*C& UUx:465F&ɁܻLJ|."(#|wß/ ?୷?2ڶO䟡bk{bg}xdA3f[ܼu _x>nL" @dT=$He&79Epo+p`\K="z <`!iΑ#t'I+1DʦdY{Ns!&;(# 1IyeW\r$}P6[|DGTAFm3!+7diL*9g3]&ňΧ-u]`T#c)#,=̺%_)A dEi_9CJ#IK/2kD>TVIGq-Ο o}h4Ωg9Sm){)|/I_K>յ\F5^c@NZƥ'?1$~r^,%7 Z'>suiB?0{#=c{ns9ŁV"sL) Y KH !Jwa`fG6G ZD{!5T+wѣQ!"j^\H" EjEfܲb Lc!`DI~2(N.yn@\G)ʲٲ5ߞl%Tp<`Mdžeq x .:'^)+Ʀzè0;LcF,H!gҰ@$-(#%(ϰwͿP?C~ )F 1E^C=}š": Oz\'(TAID(GK1zϼsOWMfS!;?0)$P4=' 7xƣ im@{-]bi/96 ѬNv48^w?|]cȊ&iH^֯E!_:5#ςQ=1E*UsP`|TnXV5g` gc%z](.JtʤD?{UR3*]nO~^_d8f5dm%$>p7]:JTn˯Ӈyu1\xnI_ӯoR~Br;a 7^Bb xGL=Fs[h+F!5;OdȄB|BufFl_҄4TgxF;fL1/,ݒ>@!9HknL <E y]VZ6JE]6~w|GsoG #{@b$J'J!$Fwp|/>؝2z%B=~r ݽgܸ  tԪFKxeģvW'P }cw9WZRkI#.&ʠH$%1UXIԪb^͙6H*>O_FwA.uA%ּZQBo=bVYt~}+9ETkW)Puk#*dM&ubhO\&{J%ٙYtA%J`jEi, tZ/ !_o8ާ1_PL F%w?'j G6;&6kl-P?AІ3պ(X>ԏ80_0_sԿaI=[B ،9t6{A^0*zR Cpwm b|>]-x}7>xEli:Y$e,ϿAʔP?+EHteJX6MӠo>TyBls*=ܹ}čdO[07^D.ԧ]9z[ɘ~w~j@W8x'\B(V,]j^^NGfQ?tl RE2c:ߒHSǼ1s Ye?q+ȇK E!K-E-qh\{r>eۢ)?~'޵^~>OS?Z7x~}}*}~;ŗ-{{s+}~om׭[*rsfucJ+%ڷRc`S޻ Co2,^-ewZN1g)VTf!(O^)=텈ćTA6H$c'cFxON;vKTh@w$/$;P"D3a,ї#&xʐk•uHKvH c@ah0<+UTA$ɖeƬPjm1[fgB3-U -iJ[/Ǖr.u n0/o,])+sBޒ <W1cgqcN <)$:aqmjE8I'2Mh8Ξ|B!8Kełxw%=<4^҅+v5*qGOjU@~ -O[[{YŘ1:Y݆F;&1{}]BsW.lXv9H˴(hh}NPR1%syͽG. ("qDoަ ^bO@-{5@bW;ykoBAzO:e߸ȦpxՈ 6ApHf@ wo!:y}ìW*%8#G4`B-1RaP޲jZoIjI>CبͰ!1a;XQIɠűf4ZQg_ fL* =.xNϜޭB,VBRdZ­тu?,jIV0K+PS(oH 0~S7EM#C>R P'QXa~)mOfJ&0 m@G&N뜵KZ'Q ).س,d.(tH{xL"'m VSjru{9ٸGSn*'{Zy!'˥0B7oN.RȂrFtm1 L)FG6@*tWq WDcHZbdaf%N9wYrT %1 B|Y AC3JX1 8Hd'0?ѤE0{Hj$cL~+Rl3c(OZĽDt9UUU&@p-MHRKGK}?~׾`?p~lMJ8wߒ"[/hc|hX%W~"{5|yǝf̛szgui;D jx+O-p *"-HК X>dī';Fzvo]pO=yNg/<$iI"LD\rkXi"AegRHR8٣ju{gK=CH-sD#1<'~`,hh>N9^A.)FO9@mJ0 dRX܉]>&{ W=!y4 ڧmhhc7vp"E NJʪ`EjGH 2 9H%8//??_⭯?/;Teɤd?__/,ٙ?#NX-99;E>A=p֋,K1RUX/}ױ:_? k#ܞ̋9R )::(#?L3RҪC\' C UrS7؛L8\y7$=B Lq{%o >FIĎTܓ}~Е>0 KN(o{ I cfŒ']۠IP *SXtc]X#Dr3tMfŖL"@pH^q4QXb|DdlzQ8?+&ǤPL1rLž4"KGJ$H;pGΆ<ęWt⸅Sf^Ñ&?GNk)>$؄4:$f ƢƇpW:iLg9tIt7{RJ;L_ [/%wGWFz-<ŗ{.ݐ@H[k@z21 jJ^ ΁QB ^)2ut<_woý?{ +M<.,r3 c4锪*@DP"ʒtJu]ϒ%%ф劾 . 4MOZ}>]f9t( (ʚSj >+!l}(M&ɡJ`VGY1!`iw'3J2@)!AD4LICk{ttR'/edϪ.,\LH(dR\vЌ d'1";A L',ˬ+D%e_DzcθȾ!JJ!W`n%ƲPB&q;dD&KPl;ŅT3odh<$?>yVÆfIz訵1J?hmwHtY+@KXo(DCэQ jBE=@l qE`{(O?gb'D~; $B)B5atWB'H@) k4 HHϾFBRJTբ ՠFm\LS~:f>{ypt~g'rsNq.XR˒Pb*\ii#\ 1>[!m`@J((DjqK}/|Vv["ӸC߫+\A e:!CȄ/R\R?t>RR?wSl]4zSDK(-5S3cQQ"a&n"ɢSǂ*(d.(dE3 ֛QJЄ +dA&Tӟ{q"E(4 ,H$+4.ńƚQ]N?;>g\1L Z,!VLn 5 -$W}x0v*]SS 3XC+AC[A̐DM- z:YV%2xbTBN>ozjd95bKKC>K-`RR$->FHiڎÃCv;a*QJ.쓧uk{|PRAh11ܚMw%ZZVԽTF%lz\!IQ)jxT0ԳE!g8S]Qaw$ueJps6Їn뵛C43=t%DOL ),"Lၿt:λ+-{cjg$/' Ғ*vTThp-\7G&ؕ)SBJ 7.0[2s-!ŐD0)Q0G2{*L2&JiP@fPؓ\b: $̭p;E,7Mg#G,/ 4c0 EJ!t(59m=΅K&%x5Vҝ3lmGJ]Q1"(~@Mv ]LY#O;p|7('=tF=2%A"]& [;lAxj* V6mn2ȼt6!drdp~v>B?+_ Cjܽ>ί>9d4REBL)G_tR `d'9hVmh\6<'Tl8!Dbqmb>ltXiE`'[b ^x 3,q12v@)K\5,H6"T* #xDM* r̀O5}qq--MӳiZˆ. Q["L̾K ȌRHJUbFc02 1ENc?:L.NL4a8ݥι:6IJQI_ZDmcѮQˎОΎ)"lE E缎#^ 6x *10h>9};G@yH"!Pꎹ̓fĔh!aj4Uҳ1)'()2PXVJvp~T 4$1G2R3\SR,V]G'&M>K>*< &уC7 TASF;C\a}K/?QC.R#f4C+ة׼PJPXmha:VVgfp̥ú Yl]0%VJ[CD$! l20X#^a$%DD.a@3xa'9@9Kym棒O 6a}}xs: O]OA:vwYFt2alS޼lհcwYl&}t$A$QzӠzVTYbyPWS3v[S7MlR ]Oi(ON!xhDGa4"^j\!qJ)lEfQMB|u1PB2s-{GOzj]qM|̷yFivԂM H |Fhєx!?BsUX) !(3rmAЮ[vvtP-JUk /5*hCsXKz),b@fl{pG)EY51ā>tlE]3T ΋1qXaCD:y)28;R̄FDJuf'\@ 殎AĒSхz|גIa,"$H&ƤE?CDK(`ZB,w]3%A`$7%GKD`VgkFVmH֠ʬF [FY H"Tڞ$ɴlUJC iuVHDJIB"$IvyE@ oF-v]r`1`P Zȱk*Y1JS}hD.tg݆_ExQR HU=`$b@mڥ[XRA@K{;/%/rY_=/;uIY'/~kGdtxS>zJ@wG+[k:D>F҆@$3Dp/#z l܊ sH=ʔ)YPP% ظ5ǁnޠR%1xbجW-,H?W#Ai\=!H~4aN)ztR]cJ[ǼNaP7BR.4ҽlkVnM%FhahB00sJSmYЇ-57M*{# zǪŎed@j<.Wk۠BHE@ֵ_o ·3VWd~:7# K}ϢRTQrJD$/C.,D- ;!2KS4 aƯiC"!JJUct!)P*Ď'eI@GRG!qRHˢoɷ8 CO6ɈvJ̔)P$HRs)5#ֻPL"#Bćf b"'v53|aω¤i$ZZiv'sNcUsb蘥)@+Q-u!1sKjpAz &BqkĢ@(sw" R!t6+ n`33B[5زb"n|#|[ܹs7'':_<կ}73윯uym:^"+t:El|o2>O]|ow6M0o=OJ&u8'YBR1cdPsj[065e~-;gS̑CMrU$C!#4RK/o@~h7vu\"2#;ayXNU'2=>kRՀI>Ffr֯Ls. pmGK %`nz IDžrw)_pLGLmyq`9a0hMˏ+$U<do+_Q)'~q\ԐVl#d *kydC/¾˽ptE{ʙ[¢wBg]|! b}NN:z "H i|5X?*o  5ca~;b:cRм}Iz]uʅc7bJZ%zXd`ʨ7ՅWղK 15zx|T.ӛ 3>G0IMTNOL9?>;#t?>{&Bc/?xxdIrR`W%^Kj6E>iPc1hF HÍRLm!!6g`utcZ\Yg=zInٴpz~qBmbsNNiN0l\8^BNc>c7uݓϾMVB212 Nc"HCjwϊ"C\R׬B_ - 3JQtmNX{ţ=䤰bFJ=]ڌ%d@6=rbJc4@d9lڰXLxR4RBgH1CDMwȷNv<(*ς.%# P&ut,vIo=-5qe:B閷,"RdjGc vB`5B EȾ9,*u;Sϓ!Wx?ݎL. Qs鰦{x9EF*!u&+4u8a(21ݹN:="FJ\ײ#wT94 }'PBb{g]OCLՊb&ox~v{w;HyS}^,oOZSϹ;gn1G6~O#$0Ԩ"#-տ+!/0J015gjGF3Ģ?`6yPRpmkɻ 'G8we~T(!msR  r ۠O3kePRDJ-/;҇2#O UFp%׉9?2h!ye޵P)q&>CIT5о7Ȼ ",YyW~taם'NBhm^Z?5S.-2 ׿6Q3V m=KX!g}adfIc}3Lms"[>7 toC=$uxXb+K& M᧫̍ Obl Ȱ7jkԉz:=2 SGM`/Ë٭ר~JŘHKZ? GmNcm$7/y~7h\ Rw_kuI\6*4zLgW!u4fdt?2_y E&) Jwj2EZ,v)3ȝZcTf8r'bsB8ІВr`YP-;.z -9G;̓-iBt0_ܥ?g \hveeyX?`^^4dc{`}Ο`zA%^$u`]DJE&K^>|uF7ܩv |/O--D3Gg p1ш9M=c1y~mKs$WmCś2ySB|~%LsH`ٟ,aA9"GZ2?F@P_`$eX{t.` ly8}LȞ!:>PxEc.*%˫ʪ$ZK_. Q2ļA!pOq>#"ظUi־R34W go:2>9}'I-g$&I5үzB#=I < h)<*#@JU|$X#hBŊd[-vxy}d gǰh 3t>W ]i*8]ԄYڞ|[xv[]<" g,MZuͶaZ73&*l| >7TJӭUfK @t E㧤Wg`}F^[a,XK )kNmHJSEx0Tu0 XrUMMWռش(-xqzŊr>}?S>C=~ _*?b{k;Ͽ7M~7B?>`7/3g.~ 3~W~w-- qxI!X\O~mQ9nxh(,R<ω(9W:zRZ4'MabUS\_򢗅,I3AXO?xif!#j9jݖc{=I{}s`nS $nH,f3a$G}F|XbT-+2n2+;BRs/rRbgSvu7JԪ2Q)b*H|rW^DxHij.Ž8|7rh"淓KqL,6d؅' r#k߿[Yl,2g=](r*- >ſx5yx(Qs;+fdNHuM1!gȑFIJQUOQ&BGP*E펏*`%HzQ JjeX ߡbj*Z&|VTnC-ٛoBUa>'' )'M?lceʯYCpq(^_)':/2>{r%Sh2C݊_ceE]]H /-7{di(!aYٺϻgqHDM@U$y b-iThL#g>Co6؋snv-$[S錸8` !zq!$!8L#A Pj%R",wgqpsҟb@Eg$GH%9Mj`$rj8^p10fVAb0IEE$nb% 2BHHr$7zGEn[BJ4gkˍ%g<>͒.a*[QBUBW hcw ciXYsb7쥈L=Gu-dy@d\!݀OQ(Hɋd5%J1dhhbax.YD?K0c Q7?`woeYғ񅽔tzu!kИ"Cp͵pʭ^b,();}=*jTc2 )C HUS䟘=[5Q+%@nmCHROzWxXyٝb1[NDs=F!Sv3zP_91 `K >s>ATE&=TJfAknDR5êb1j4*Tqhm4QM@ȹڋP$G%pqo#gM#4:+ӸN:H OJPH/1qOHdN;m5q&Y5Jn6?u, \Jr\.1_:hR"R.vdJSoc Q9étQSIuGck}nf}pb\VӔ5˄cH/RE\<'R ^aThPw5~ kwq|U NEe!C4 / g+*#:Ҿ>sH_i tm0Ө۰;~P#GV?q}2.de{OS7o\4Ȅ@^qlLJ(f*6$pjB<0~#)yש&fʽ54AtE'^g'夜I7"CDq#CtOHʅ}璧=/A>RR0ࠩ'"4_iH t1zj-/y%{? OzN\*s/=>}Kbvr~×"'Kr僭.\@ $nZ&YVԗYkٛmڼ>,o,8 >%"H #vs>9&uGv]$g*Ee51&v]LNP׊S3V镇g(Džx“xd* \q=#oHfݪ?|W~T5hnѻ)$2-y#QUdnTGL͌fTY!s.ظ!yȸ4DS:RXD Dž%q`5l-CH0hi&C ,KWXqYQBQO4}fek6+Eo7ͺ_kѤStNg QK_.b/pgIU|\Q]be ܫ^.O-v3eglZVԲb_ͩGH$1jDkpޯh-%bT`($%2M)R3xjaRbZìuS+@J0;|0w#0OY%G4!rv]9L#;K8n2]r xEFZ6 S~0vɫ!YUȣ_crI" 5!WHv!H[^C\Bx9ШSr\b+-E#F4X%2eYڐBx;#۠>{}UZ&ЅJrV~+d@( 9D3tSKvXbw +WZ&a :16 f s<|]hԌe5KєCjzT 挵S4%+A'?yA: SBك; %(g56@HImjE%˕R#Isd0HPfM&^M +7 }BH! fc$&ǀZOw%Y/_t}%~ ܎^P=#>Be-d=2P>CLt]1KLU'PB(`҆lM"tb2\m[P B0X̮ җVog]THK&i&LN^=L͌"!S-35S$&&ZDL䬘=.-;TҲ{U ZsV9"'}SSAwM'l-'/.ضYEt7Ky+)dSBW͒F7E7; Z)ڙk>֯$[(D-5VU "\[|tfx ,_ZOX ?]_P p} --.lBHtxDJI] 'e]&bcDO@-:Ein+Ob*J̫K@SnO$vڦ0 3ap@Dyl!^ЯִêG_c>Irb.h?ivaI^!5|館~eE,&Ĺ!oϾYR('.ޏLQ(#f`]z>VK ŽK, y,l#s;%gIzC?hUE+?Z-L:T Ww {6\DOAVD*LH8U溘c Һ4:`Dž9% 6ڈ~S:o.˃iT0R6/Kn}{aZ`pe龟XY,UU$9IB|RH&{LY쩻LԔouB)ϫv)͊$g7Vۋ1 ;2.JWB_tyNX֯|m 1Ҽ?y0йѬ} % $&J0X<ƈ~ H)C‡* 3R%ɘџj {6sSa|~\/J`ڞM11U3e+/Jc5ߓR]h@'(!Hl#5S=O1&I2%`z/Cib41fÖamHIvDO)afft%ȹ;Q5etaW)~0 2^:e09ռf"O۶9Ī"Unuk|e 2 36)' a޲.@FZffL`Jpڨa> q`:I~Bؒ% 1;|ZXV|%SQ#E+n7ж;I#b\;pBJ>njVaJ#(QR37Q&EkViL~r072yd'1+B Uo&g =EB޵A/`!N /!jآ FZLy{56D…]pQ$mEM(X'fV$Yp9-_O_cv]zj.%(*+Q!4=-5^DX(^)+`=J㧰4՘x^Ũ@n (;j8l-nւIcI T,Tf;H@[ZPhTm4>! ;!E%]Қ BQ !SK07J{+ |$wv} ʕWءJ~ 1(Qۤ!.ѳn {,$r1|gf@T&Ƃ-)s&Fkv" :Ea᥄4ԳZDTp$T. GƳ%PУʇlYaf8{3 ";◾};cޯZK=yߧi jRjgٖ,4^;m4UpJk& rߌr֚T B(2% oX ezb^!ؠ1m`&pY`J{G:53`DDZsEwZ21DbfJ9Sb#SUvױ:??cXΗXkqYժ!9'= `َ])FRJlC⇛2>qmvXob oY053?"&9n]w_|b)іrIc^K^ʍϜ!pGLs@@,hU6Fߟbbf$!BeA[R(YR}c*#4G4z޷zwoOZZj2e"#`JvZMQ4cDzt-T*b\ǓXUC#8+0h I@/J:|gKIĨ\r}/mLLQ YX";eK8VT:K_O;? q=T+~oʗVL uU|_e2o~'?zu``kj!G<gܽvbDJE|K@[+˞RWB^uX[3H Q" .!Bcƌ?+amLl(Q-~*k?fe)FojrHAYWͶeSӆl5cHg84,ޭŽ[Ӈ3VeΉ1Sl=n}J%|^LfnTLJUđ" b}|2TJ#o62p+ΞwgRU"wL-4(T }d9NJUkSWDE~C}ؽ(4VvkbեFrJ!X}2(]̮Cԯdϼ3*L#qΑ]![;]|QyD:<( Ak)oI0+UTLD\t q@ CU6|- 1cI%@LtbaR& , 9;6~T uc'ïcG+5Y+!U*–mزu[ghic{zWP!#۲s(#.rm*҄XJ/"}O⣇Dõ{K;%-^03|iME4aء~] T5-r o}xz7NKRmS#"M?k~dF)?zM90f߸ k[xy8a*5;qd$}@-KbV^)&HX!G͚6?ZEJpX_- ˁ>TSZ'cǜh-9[JaD/_3%VL9Kju1^*ǝ\\\p7|J,"~Cr? Hp.m;T-&W9C2DJJ9^W6Z,|ZhPj qLHCƗ䊩RRԖFB,i. 2^"GI<̹ud0YHck i܃Cl0Ȑ79U͜c3s0]m1c|}ϙ?EȚJ[*]'mESD䶃"/i F(ռ~s]nCf"/z;2OH"s(kH9BBH[HV?ykYy>vdžK[Yt= C  P3B?.ZZ3#h#).,Y.uΉ8U=Bޱ^k}L+!ɄY(w@>L"EGZ@6"_TȢO??/'ٟ)>DHnǯkwbɣ/?roů$&i%@$.RigϞgǟs|\jFc?g,5#+Ag1yr:gڞ1()|F!gT*t*2JhLr\*ȉ TZpV<+Y 8BI2`ɜpzI_&{bREn'qi>G<<|>%P9yk9F=n|"~Z\Hn1-# )woR!FBHZγg4Z@:) ҚzQ-\S3c d}_F m79~r+-:o2p#;\r9KTp(uZ1+e>Qg"fDiiU nȖPJӣfGP SrQ%Ffodҵ0!1Zڰem/5՞7"0 7M|2%E|:%єxc0-F~138Onj1RQ\ðYED8i#Ĩ4#cD/^!RHGaCZyDw+St823BG2QE!%4{̋&/>'Lj@gd7c\HJbƺOFA)"$tb 3I4Z>]9"d)DŽa4%Zq#=Y(6P!_viobDY5,O^&شȞK6bT-6H `[.+FoJ$PT%RhaGMvLj|HDIJj@'njǾ&[=S.5$#!o7v@_RowdƠb{qZ F DljMz4Vd0m/vga&s*]*V ab8g7iq$ $qĄ\6 .Le&H15'E ʈB l.{N.ꐘl: !=6ޕTTZ3Z M%Jzɣ=D Vj ePL`9M%˃gCIHLvvz zNc :ZPXgP=D@Xr.ǐpj z|#s dbΝ⭗W*(sM?8νtr9GWe_2SA ;|6"# WdơgoEnQ%dK>>um}V>.ꇔ;잓ak7DhY=[ CE$^]!.6Π V5 B&I I+,ϮLs^:ؒ( oh:#~#@7*t#HlIJ$H /_ҽH| Y,τ=\_( s cw`/p7[}3R<|=տoyf?#U/''ٳgHBx/}k?O[g`>"fwd+&.beT%(,9# %m<ڶ]%vW*QXW-38g4KPzI)wiK.`5`5+vbbސe٭WJ}tl̆†W~"J"@KO%JDyܫ'HLjL5ZRe8u;+>x}d!8m\==_|c_]|G^@/ֿ/Y=8cU^f߯gB_/wǬldQ.)eړ΄_o~NB0oTd*.=|eV"FlpJ[Fd׋~ 1\}%<5%̀e;~pØW$2\--e^c3KÜ7-?-osH2Ͽ_*=ŸYHʢb4o>'u{v6-EdToI2qC%"N"k͈ed #Jjx1F6Ѭ󴸓dU$M]@11;<$WzYJ>-MVa)[zO7)] IJ0"OU dQvv$֤" {q;UM^p\P%*|Z>ӯ|_| Vԡ~,}ͬ{ii~ڭ}?|'h#W~ƌL{YX"# =2F(q!PQ6Jpe9%̹0@j` +cRD4ߡR?ǿ1A H,@)>Cõy} iT9|Q.=$!rbKɅV u}l\5ngVS9˫e%|<[2%)UAP\ ap=6/ ȓB#" k )Rh. )nw=b4&8:ѢEFY\R(_15[Nn"mHI{p{F3˂a.>ͧ'/l|ah} )ʬE>)Ms[vjV! q^c vj4FZJ y2*Eg-si)(̲?fгg[ib`56C7n'0JI:Iȣ&`3|GEɣyjuFqJu'"ZVܛ2}Dq@4if%RK4\{?!BizuD^5 @5;y6o~s 8igHֳ^om, ~2e)UI6l䓋.y{6BŌyEͥIvQE 0r֟-xvrߗ*Ʒ1>f >)Kxl|Vspvr>^q\ RbչᄍߝVɲd^rꔤq?֍3bґ6x&2'} Wz<z8J_>|'~niKC 1j)sdi:ƈS0AöwJ)|ZI[gCxnVe8R[Hh B6M u^@˖޷(R6"h>fKRa8%auB p=u=Ao+yƹxd_.B=|fc/ÃoCK!<="f4 hi5\e ̿~? rwA  >~,(swri 2qZ%OX! ӿ}.傣P4}%c٘WBȔ+cT*S~tp]=7u%?|3;6y vWRe21}l47cꆹFLҦX}$$}X>t}K8<>g?9uU?I0am{I&r6F@ۑ~rzz+ZPY I3/W\(c/-hqbxIY \jFi:$@3b{ [tM+Uk-r2J|LY!:6o1g۳/٘@{ 1` 8HRE`GLDJrfGvvv\s~w[8g8Qwf}5O)A#5a=8=3Mݴw_q/M^23UyCTZl(DM^ܤZc`cV4볁a72[!{\8h"ހBe c\ ^n5ZeK{3puJTHU1%XF72IVza?$CmP agAg#~@-kj.>`(4&KKrQe IDATUlPBl%-v83J kj!R坯܎wrz~<>$ξDXWRHVzB/9$ YLv\ co\hggw|t1L,$#@ SsX޻h x4J%%Y,Pdw4ٌHjY¤2{3bgrGt%h/H 6NEF)\KBP+I U̵ӏ 0X\O>؆ȸ:$-WWWxXGsG3Y!4m۲n,yGTMͥ%S-}~ilCim(grcJYRd~ ;bP, MO=0/ NS?<-¤T\qU5C?_%S8kmx[`4.X6jjZ\T2#ZZ*2ɴcy@A,ꮅHɷDCЁӳ+ IZI$r ŅdוA(!#?|J ".Dؘ >:cYSySS2g_n!J5;uL"m&# $2cJQ(!o~HĈn(;.cu;. 5˖V)dj8zs}#EO'_ GU,jZ6o+^a$Gadg;̱_-(!eicGYC#@"c\}Yg~}`y<`watI]xLƝs &sz+1:\-" Ge)ږH!uNjVz޵{MBD|xSIGf vť昒ܧš%D$Z22R%M6^}{x2L4ѦJ4'{/qd!ɥ$5͝ I9ex癇h> !|=wK"b@`W MTBFFӑf6Ɋ,M!FyX=Yp(/ -07au*iDv gkOD.G__QUp/8;+P@#iHGh!/^f }QE INc@c!َtؘHOEsFgndZ/6z|nCN{P>|h*L&_lyB NRTA} g|tYGDH!eji8ܻǶo9=?'ȬiXfe.u\]$ yH2nŀ)<^BD ܂BN,M#gh\$K|r]'oD2خζIB y^jKLEų k#uo]bFB]cط `lǖੲ|*EQQĻhhS1ERP UkaoL"`T 'cS풼 A2`' !$9&L蔜JJE 8JD |$.8Ns:ݙ-|b%$%VBba7\ oH܀ɧR eV-;pТDŻJN.y':~YFJ!U9.c@2/,1F l.&X", ~$*1fJ̎qMZ~ņpA[2U$_&k#PW! s 6ɫHfPS8[ PR ֬3R )C)$ pĖQ0b]O"s.̔d=i=>:vѓ7 BP5 ?Z0ߦv[\k;TS<#T%}Yl qJ%U#D 8pc4E i/ e`PF-J==I P"5>@xG^(d39 ;>Œ4*2U "`+r%#Q JR*48bP {DQ(E5Ze2`Urk92x#v#b5+U#k0!Zδ1ٜV-1c VcY\eNMR#H!?%7`e\)j.h[$EE ͢ K,t`qsC>m~],`(KN?YYRjYO@. FFFQF4ǞKr)Q,9::κY~ G{Wh|P`#@)RI"-@ UxA?\p:ҺK*.FE";BAXk&>:v~Ʈ! ;ή.m:9Ō,ׯUؚ [rsX3DkcM "ZmkEYԔwҎB;XjkMV3-۱cGqjH Y+I?XKL{*-]6`}VM?*H,!䅢Xzj| kAt]O ,MvLSV7~,cùؑR2' *LMLH2u)ROJʛM/{LR~Jq4/韟0"Mh6G?do[0M#Y ~{:Q+ 3@_$^e{3U8KF)f=+ǭx,/]'铉r2,S*I|YM8F 3l} 0|$g}ᗔO[ w2J ?`/wغoV_ $PDD 8bѱ5-WfKgl0ɋ-Hltx"*Oeh2P(- ML~OvKƝ,7,r˵Ϻ!^q;KCQyF$5 x&_ xa2Q-kS֛`,>ɓ<;`J(DFBlaYޝ 'gg#GbA vCkwt nl,t:x^*(8J#T4v=ͬfWB {/X+rsi<P- T9`Yy2)^z]2K5t61NCJ5ø I&X:FKjۻDjKjZJIW&d q_p5l!PdEZ 3&20 ,r(@`0\B$jnr|H̟Leʬ dZ`"[~:k?.~Ow_]*#|uKϭ\*)%BP8[~Η&@ GwX,rn\oAgMB]ؚk#+$9hwzͅa)Db8!!%,X/nS1Ews>лZo&]W٫1n$Ļh 5ZhS! 3ao~f@"cwfqʱ5;.(ujn'TGLU]Qe0#|B A.$b_9x%x>v 8䋈o_8rgK)!ܱӂޕi,ڣ1ܴ9KL.Sw~5M6GV\bb`hR8yͪx1tA xK[/_#%}[;gRĜﯖ';Ʀ:/i]S*@PY^sP/Sr8q1-kJQR1@>O;yG7K12c>I,D@J8@yfH`b_1&ٲEE}+"dдDDĢ鵈/GqC7jNrŊo'_T'3ISRIrnIRV)܉@{bR*Iej7$|,#7mT%#'9U.XEVd  LjԨet늕8@Lhp;vd)@fQ}:T#5X_3P,͂8[ CV) Ml:P)T.aWMUZ7DvH)i S“> AQ#yi\@zs#"@0#Xv3&4R" ZļW.vPֈjpEF J.6eb:DRJ7$d? D.`Z@`EI/2(Sެ׮4pFUd5{n ,J $o UE|$@ %K{X{x9<$YRKA!w?V,nrƧ]IRL ]y#)#q$O@d@ZOX.JQbPrBq2 rq2(bIqir[%cJRTL9ӅuhK*{X}!{.ljPE}2TT".$2T L߷;i` 2nh럋vW|rcdb RG c{,f#9V3Z0ɞU4cc;X؟q%U0>(gWiO-wtIʆ$cwg5ؾVnCB F!$JSޤQ$aT-÷~"a> u:}̰r=(ђǞ]Ƿm/? 5BHr8<#cbl I2 /2 ZYlStkGb ĩ4`c&2F,q(QUr10бg(?Tv/_2g]=f!RfY/ 3&5bð%C9ȘGE5lgXiPzçc94 م IDATɐ8J$ґUFLL$@c$[ief=a`.mGlxpl*>tIKZjQ8Kdی_ʯPY-HM@ P?<.e5Bb*HJ+[rJ()5`m&hu&2SyzMB SG1O!;tYق_m~,s>aEK/Kv\Fu&3Y6P9I8{yW=+Vz஌h7jº#=g%ݎvPRfL>DbW"N 8@ R&OA?8RxO<[tͧSj~TP V D~Ss#!4R(bL>VB5<>$׋)}=fYˀJg*R.n6X 1T%kYË/غҞS%s)Ǐ9[ ̈́Hm|>y9Ca";;}ѧA|f6r*!2d"t\J!JXQ$bڧ7KDY%}Q-FZӚc,+lʫ.Qya9.{`㷅ICj 5326±ܨfIHSzcD*-3]h6q# D*]Sdݦ%/>)ַ'ˋN@;G<-]܎! XQQZ~-umkN *k3laH%>:8`DaY!'+ȓHˆD-s5IEB%Gcэ]?"&\1}(rZy-,%t:A|[eHe=$xY yîZ&J D4КP PIiIR TbCAˁ$2L=>9v94v6ê;@Xb}AG{> $PX (R$eI?,yIbiy 1hs&t=_kXC1nr@8H:ĸ%P"c R%ZG)HJ9|N`o4VH;55${}F!HZR\춥yvFgH7-E$Rd[0((j+S4GE3nO q#3ƑKwdkES􊘻We%Tڂ;7j񾕈1)MV,VEϹplUeZVf5.V^9^+[ݢ.c;$eO)_R}rhUzkffq. VXir p \Uf.1f㶜 /d*SHUX 3) ޡoH]*ĉ_a9`^"P FD'p  CYtOr,5 ,s>Bi%Kd%!wtEۭE4*h\4 ZjWШF5 f4x m ;U2T23ţ0|*ߚ1ӊ6{U&׆9;=g?CHɝ;GlYˎ2&BDz! \"I!A`JJhe* \+RŎ#8+|qd8 s.*U37IoҠ'뷫q*}gn2}l}MH[%LgȢ(P<ӕګ"u#g]r>g6XkJ^sfA̙9c$Ro݉CjI6$[&_J$D3r4\vkv}pv`7\[vqयVsIX~ɽW1!LJ(S$9Nx+TYe&L1B;z~[ITYl#ePR0'e' LH!  ;e>Y菳Dů}̓_/A,D}E r\Qo84vO=~t,qO%kbbX򋧗T Rܹ`cOŘ'LИx;R2k'5-5gizUb1e?fG7왙=X|nW,sfv@_F)v߰֯뿹rܩ0"H{%] !'Pj $1Tm[ģ e 9liGp^؉.uqcBއ>ŔI2Cce8M,cQգkSȝySXZo?H=2 h'KWkLmTI )raH~[Dž9^TRs> "5FB dIggk$+S̽O∑#sȋ.> y'p[ )s=+*KFbN׬"IdZҘF@:y[ >*hr`Z @OC4+Y~|'xy|q{N̙" T q/R5/' )pV@ &H)4[E .2 O*R]}0\^_@!nΑ)ac,v8kp٪aHiz&!\ R%g:)"#k\䋎}wl;" >D >oX&n( #675X7xSA]f-Y5PK\eP>نj9j_s{mFyMIVb!}q:<`5l^ dZPӝ)i$ z_~c%[CeXda%MEΆXi,f8<8nyS?⥩ӗH|giV Lg3.ՌsdV80=\&S{Lp:JhO\ʜm>Ro`5fݚg7o=! Z=jX. cifZҧ }ZO{ChjRDH)SIIm(]bQHA *4. T{\ꪺzժaa8'es&Ɍ RIr? .D+9cA.kT!웬 #Z,kyi8:ܛˆʺH?Y;.]o`!%JTc Lu$pƳuȝy,&+>rvf5XY.D׏9zħ >lJrאָ9fX'NO/xឱnVEO,3b()p1j\_rBFc ( '_#lBI H9 ?psfǯSHKΤB?bd%[ퟰП=;/w^ g̢| 8.F1 9O{ds4c^K>X.$nYjsKW2}I&@dC7ʬ86yŐ^J2FhOP3 ،/JyD֗Uk'r1cn;Ǎg9CxS״~?zf`Qa#s*(̪;^ظ8CFȆ,)'O8;_}ͻ{Ow 9w(Y;nDctk+;XRR#uLM`I7~('ݏ9{Ss&L砒j~*: V I cI$2y 䴙Hcađx o{A5qmh[IY8F\MW{VԂFήSo+5m]#°tql+Towuox5-? ~w! # RjT@EpO7?أ+[㇤df| M磰&\ۤm =BH2<[8RCX v6 ,1:XKĖ#Pm"(-Jvy.]K@kBkPm``^FNu#H+d6у=6u?#á]lslxi_k# CKfI%V(1Jifb&r5, =Bh!{)u~ Twq9WLJQn&+@\nb$(6訖q!V,oɑuzvH4B!y)xB2?Ub Rhj0ޅJjR.!O٢BN )uab@Eiz::p9^i+~z0l]Ưٸ翫7*.Cd?a'͇(SS 8GpڭbDzREMXuwUWL˙K۔bQޭEn&P|JVg뷓?cx8{죄;pRf.rh`ḛu LڣћS"'X<v;<:<|bߧv`Y%Ved)-{nwXc<ލ8&RIc.0uPU-cy0|P깥Z^HTm_FHv+N)!߼~CʞF%Rn25!V~&(*,LJwŊO?}퓃c/l$sXȈ7ӑf^-^B 8~Ȳ'@LBgUD6)KkXy5w_5^[ T&ĸvt7nx2|cF8Tڲs4H)t`MgMZ*(>AWS^.ra$K}R9寈]?11BY4\] uwa`;ʦjU{O§ 'P&LΘe W͟'t%Ƹ#D$YjW]  dFCnFk|#b $iA#tZe}Nзhc3m(L+2qia3ZRn)LT#5P 11za}H̑)t>1'_p?#f5FZ|I)kc-R(7EʻQt~&V r3ۓtcVd e.^Yi\~@|{B7TҒD')kQɪcM?G*GկhWĜ9~0)%N 8a^rF;MPJ A>eο z;HH*Ň>oj,BʊclK\pUƮU\ 03_m3\o/nP9,8?Bp>DG,:n\~dYܹⷡs̿~|;e6\"]$ݸRD:0fڰ!Felrzf%9{WƳ:؄I#ѵ*ӭՎv3[̚9dp[YaX=v?9"  AޮCgfI7*Ƿy[ r.\'OprzsP[j-%Q(*NwEf+. v"lF/.ޒhw3gc%>s1B+Zhb pҽ`F7%WO{_[.w0l" D1&dUw4FwJ:tM+UO7;ZRZRٿRB2S ޝY-F)g)S|O0wňK/CtU`අ4109J ,62*bȮ\B) e`RO : TDAEy/x - 3+2qpX|qq:ppy$8e2a+c$ML";MnH B2TfJQ!kmPӿAY/1\{π]',J QuA}Oc8T J|,z THuٱvd], ~#`mf֯| K^`:d+D9 ɠ?YFAoUI^d+xWC.*F<_Gwgm^("DOU;XƆ% U[ȸdS X (d/QGRN%8wf6 i(i~J:c)N2A2O.}n\s Х+2آ\ J(Sx-2{jkĮ,ޣVƝsbw1ӿK;Ç>d#ϐ?SƒD*⹙j_o"g8/vC)5 k_89~9'P)˘GQ\戒i5B IDAT@"dL!N3jж.yV'#bLPB^#>4Ňl(Ԫa.9wgט, e 3b!%|$)ySy)H,Fdud{Mu#ZUHx|I JjD*󐒚åS)o> k:Υ_\VQ8KpBCVq!q9N)oHFL`јjF#5*"߬`+·S3̫=h8E|y8PsXʄ:xk"3T}jܔ\ ] Bh­ޅn}"Ra N3| *)ɯUJ_Hڂ䪄8G]c=9g14$QRԊFB,MkF(6R\Ekܖ<9e=cVT_R+OXjCХ5Xa_lJ1-2KvKŘ{B|013fz.v\W)uUREKSd{>`43돩'%m}!yjCCL<9boX_/%(tH FOvQk{ BE0lgF23+ŭ+U3![Z%ilVnG#8OQ²oa ^cL|9"aȌ+ 92j;w F޿@H1Og<o|,2f'-.Ȱ ll7a=8j6UDH1ۻ9fdK2U 0Zh1ʢB K#VX.{ݳOhoG_c-'ƄSdR"L YZj) P^ EIbd-$ ǯG9ߡ5?ymAbTZBJ(Y.izΑC"%\l}qtAq`9|nEbR R-ى 6lSҒC~rXsk Ì3IvZTǀ`nl )JhfAiBKC֓@'G*]| enDJ.xQypf$[A$g'CaY#uPV7BX>jJ`yiYDIh~ٕ2a<1)tHQfMd\% uRcdUr#HCHCf2Hu<"ZrC:ª.t8L`*EmZ*y_ /V0iƥOa'nĔhh%UW *S FTgWxqr-xY_{>ÇwƐFskՅ!'!#]0Ҷ5B82W78yTYr(;%{g1Ej@.BKoc@qwݩ/<ݖί/92TCΉ!:\z9&]%!U Ux.rfJZuUP9Sak^ >J~?R zF1yRY҇K& $yrb5YKsHAlHԴ,$a xt9&)1rWDEhLkjPɆ: yi?xrl־O1Ǖ^}zUYRHdw&ˈH% ɳgt c:aͥ("pP@O%Gbӽ%H(lZ/CJ7taDž;gw[Aog 湅]ȸXLK]՟;9oϡ|{U U%7>9/N^g O5m)Y!`]̂njh*!Y h )5sZdghcnDF ?;{L k./j1' vT_Mҭa@T =TgX;h%{m֖jѕW(#Cܘط#>H9^ Cr]J*Ǹ *Z**̕1(]d)gG7to,LZ'DQ2c*U+)TT j|L"]+ˬ]h~6|@\}*(T4jCV캎/aKpH)%yT !H!՘RVqj*_"H7"]h3x*MM{]K;U%!zc![s6qӐwmx!O1E0xp€VQ"!e$%LWHb* CH1dB GH::DJhЪU R^g EkffNgQHfq+ | v>qQ{ gO%FJ6C8aA[?<`X0/"V S!Gώ-Z ܡ60&is$O_) [NSbTf\P %\ͅТčy(%m<@KKFB=PLZP銴]B"B$)(%voihkX-!0Y5'~ޓ -rAa~O Apl]䭩n !84CTeiŽmeR5jr2H-[g$PY333;-hur.3b@I*>ٺ }4$xp5Kaデ2'o ٜ%:V5H"Db^mmLs|#c9C%0&|?))O{ߓ(0򪡛DDe:aGJ.33TfXc |LyއƷtenYΎ`XiI)%`͠X s~},+&Fu@ȜZ,sА$y5-'&ҀASëc"FH%c'9ъF`3c_D S8-ƀ_i~ Cz2G& + vR})}]SHK+ URq;|ޟRī"M:@S řlÀ's؎@H2x_/E$D{yAJ(&ʐlɎri&!O(2)dq8u׆1EzQg) ׈=dq;h$bOӒDžT+iIZ7ma ]ATbRf|Ga ]&p(3$k6&BAn^Ŕmh{oC L reBsYgHT$&FRHYW-!YTLOǤ_5f=Kor0M\ HsVH>tꈐ^c52J.-)&q )V[& IfᙀX*|{i!A!tVn0 a&=hpaBZ@(ER%`bB%JB"/+؄I0Qh#: {!Oy,CiO t}l>q^BQ(JSe3Vnv^{m ݚ6l-'r{~Xd:l~fBj"/wl0f,YŃl x>|_^l`6tW|+@z'y{z}`/oʄ, BDsR%^()) {Nr'E3݋7so*Ͽ<T=Vs.|w&G@[1 "hXov*ݪdb%̮1bf[ p4$&&2Qh=øԏ#szZS%.|b`|7=0vxZ_ GƟlB'%s[̀a4M/3q\ <.t%C9 =Bu2cS!|[>XF=>8Wg+* /x#SX}8 [*]W.ث瀠5s\L &Ɨ_oGb!ԧ?/n ƿoD;T d )2 0Sl@O )Džл5Gv39!FJh0bW5L%_]Ntc7cle*$%,=X%|)m還7$Vq zSqs 3Yߵp󨙢Ss--v;bu= P>ג9==1~2ʬސǪ/_|<7B fR'-*/͊!x6kT4>}SŔs]L# fzMܮvyR3*|~}p $ Mi'YDb~.e@O@vjI&pDgI <-i4z?dzH=1^2< nd% mby dhic&wT>FO)`r!'aKNig4A:dT.}!N+ >cX;I+p_LhPZD+qe("_u/:#F+U-]cգo`b*&'ظ59P 깝q}%JN/|BnGP%< Ȃt< [Ƙ >*=KU6_T%anI;_EVJzB():BQQI@H-P^VƘp!bC<®?tǨa R)!BTL9 LE D($^K*r9Cz#\'VQ~ϐ?=Qo`U'8obǃs.eUH K~ڞ-kmBFnIRP37Vqor1 H0`g:`Mkzq?xJ5lihfбΰV= D #~1aH&ي :b IDATM| ~J"BtJ5,V!$M$lS➇!!{VӺ:͆zMi,U]cyK}z}H!Mf݂ qΡV Cb=D;1*{:X7m[XΧ5w#>9'[Կ06Bl>D>i8*ւ5ia%ŲĘ7ۡA^n߄.uKon12R̝8g}K[śuE"2:uMS~w?r!Ic“.o\1YKb4~G߈TL۱u;@nI*j3@?jcJ)URjl4Xc)mVj5#c"drM߿x'k|?;x_kw~¿7Xl6Krǐ#JjJU'24E|'I%RYBJ#07jJ ;oqq,+Euxc뵟kK!{ )̙11I"i*YSZ}\@B?S}]>#V ?D< B ݾKǴwt'$С me69({fFZ3!%rOsF+@`ӋWBhe2;b줐f.HӤ63bpڟf,אBчnm#b*2Ab`e"+!k 6~ ^B%ՄG+p73x'!Kg>VLxΞ% [VuYc8,f(U.O)+Vr% [}sȊYh! th<%}rxmJb@(Ž=ywd̴Z|~x8jexc2g[nҵx=,w?2rZq:isZ\@4䡄Ьn1 `vKG;ՔblxL,!V@dث!E]ߛ)%U3bd$*x,'&yb 3^FRKM{n*a8?ʨoPDuc0N5!F~I":YnP|"R"O1** cVJΉ :abFgTL,}hC.n|é \=\v` tIY\u7HthRt#K}M58iܮn#>nsVE_^GKyJPj mK/ kfOt6T#7ْeŜ}99|4e'SP䯬`Љ,ml9钳 r)BX5FWp857"*]DSBb֓|_Wn,lDDY=\L+O43JSX'qG#, zZ)qEZ3;Ӻ<1 RfI0LN()9ˍ5g爔0 B?E< );ɮ,="uO#++QRl/f- RTwWw5]z2.B=?H{v| G~Ӈԓ;KfՍ %W+z1ю^dޛ&]+z2 Ã~8~V /@)erGed_ؔ Cd2(JKo;GĪEÃHٯ<#")N{q;SPl޾}l9#[w_<8"5>g%pƙ `"flԂRD,QI/w?C0q@i‹o%i|9÷~Q븡 J_;lY !Dfͽ7+%<2I%&bM4.",]g?R=g M.FvZ1 d[[n)g#> Ѝ)a}O]RJ|O% (vDE,ې3[6G)yczY0Ŏ.4 5eJDƼ2I`YVp50 2^J*=OF#?wyc 3?>*y-p4kHyk53L MJW-Qꐵ[_Î)Ч.` q!:zaedކ\CJ1{. ́ĝǁ2'bQ,g3\P*K' bOB@NBc qiR u3HZ2OA a h&=R_MYY25op>|x4ܪnsM:79ns͈ɞQd&_PbL]8bH{uN>N{ﰲ eh]{TpX atBˢ.!1<ǙxM?DS,S,T\֛H[AES +}Ҕ,UA $ɯ %De~GNis&J;nd m) CLeX, kz F|q5Wiņ1;ѥ5ȵBOefO]Zac/y|RQ6ğ:g98DIDt*"ej*CwaR 33 XU*DpAJ,=?^/-ey̹ 6{j.@RPS`/sR԰W< l{'= ʭN1!z/¯K1 -}ЧzfI 1ܣlcՇ{;vSU缿QN?kiq_!OE` Ig``# n@vIR!퓰|C/x` b`ιxjObg2MtC߻{bl2;kH_D#(jUϔRy5'IP dokVo<*rS\l9uPrzo=t9f`:_C! e1b7~4 G8y6ՊQܑ﯈M۳i_ 8Pi]Q"Ebwx2匕h1XV8\3FS70RK7l]ci8,UY%$K LtIpp~ƥ0 %Ⱦ,7o0 SK #JhZB"Uvã1W̓AJ!(͛$4 9CȠ{X]p3K)hm?7d:KwÿDrT pNH]pPd6`Rg;*}3Oڧ%saY*&\lipMܘFt_TzM\ `:;S/dW % dH)jT (A?|=.+-E$pex%Zd"]kRg)6Id{I.'GonŪ꩕CVrF``[Dq SD0bՄZPG B'Dm+,)WC*Uɖ.9 UbUR%ֿ3E>UG峵uk~1d? f^޷7ȅ&on 7U*10EYZ+Vb"'kAB>P@)SSx^z^ei $Ƿ!AR9pqx)2KXL`DT*'sp.Dw]j25׹'ʶ =>B S7GX5CO0*'?a_c=|ѣgs["*u)he ^#DN"6cIR%*/a΋H1}op|3Yr;k:dq~`6bE?}X,D"#VQ ').:e](hFִ݀fJ#Gf8xm$b==f^sl$+ťlrtVSQKr:P5+ & w}N1!#q9 ML[-ns{bfhnZ>v) ftk%Dga6/mXU03SJmͦ,KGsqzl6E)}C(ǰsA |g6qރKqIr$;qDR c̊ 5eiOjl)J(JD]|IޝiZظF\%N8=?gsR 򼲚y}K4;<-|&R*܅n8cs=e]}%HloOe Ӗ ۣu iEُEFCO;nǛd/iޯZKH kj%kYlIA_M+ J)`eH]p3P޽|)0CA({/ReV,G;$bUy>I82֟?;jb>Z҅B aہcD|0 )Lyq%Z+$BJhd/]6%))R7Oq؈pM%J"ጝkƤo[=.RWddOWd7`W6h–i` vC՞7T16D|L^]y̭N~aBAiבfmjn}϶CfG;Ѕ7bś3YDOغc,tq{Dz&zΞ=(؆,{,4mf@DOU )39. /cdyOt#&|oI3-1*0+l|.4L !g)mhA& )_ˌ̊+ruaaτe;\2wN-QJ1l{Tyb_2a]i|iˠ ]\Om3=nBWh]k>~j?Jtjv%JI<`N9B9( .Jз i=cn!t =J(bJ˭6' 8bs cKeQ}r `9Cm* QK%K6 ˾Q\ 71A[е 6x}L:9 |3O}ʏ g7?}b2i /0c0/#UYN7֗޽[ٜ8Ĝ0жpa!zx-CiJeU4T&eT +"9쮐9n9i(Xx3Ф5.22FAa5IŃ9;[Zͱ&O! X%ظTdy#_N;@l£e,lM&@bDd)#{sIp4Mk-*F.2!" VUA !r}$F ._ZY-WcJV[VR۷JV@%w8c7Cfٿ3y%,-wbrڬƢ"' v墧 *h/?Gф,;xk[(,u:W-cLՍo!r;5G3za,߿= &H|40ě/B4Pz@Lw)I=VYj]5c6Kf&`SB#WlT RQiCǀZ3+- ]dyC]}U53S!``qkWsG~z4VDj)b6J{6Yzz >9F4{KǞ4>13,!@vqkbd=},$arȖ_燧ZV=fv"h\C"⟲ɳs[vَdCyeMf 12a҇ ea c getp̢\,V>K  )03Svo5bFW!:?GDɞB$ cF&M3oLQ+*L(4-a ַjd/ѨB+擒0y߼UO#eԔBgsjז qB%QH!xaF*5,J"S#Z=$ H4ZkHCHZל=L{K)@̴|`iJ#8L>(ո}tt}!wG=ڰ/iv_Z1UX1&CW4Rp ,HøHʑJ 3RyH9gA9f5Z5(]DyւJ(d 2pA$2fL2ĨBZ2'fBG"9ATcZgT&GX;ˣ64{sI%͸#H)x5Kc{qKh.+T4kw>.F|5nHWea,BZ ,e$ 6mFeǯkG 0UsrVO5yK!PH4HIdhTSvͥ&G;nKHq\N\&Z.t{~d&fsC ,Ѳ-9'(Bょ,tMj*u=}~'Gha6Z y~lw{yy4MCsgE>7,.+UrsWX9`2cSY|c=F+i0NRFǽ/^]n}*iA @P 'm_2Eq}sŪ4J!?(ztCzO~7QVC)gaZ^a6WdkVjYHeg Q ŪH3.@_1Gwa,V{D5CSJbjfԺaR&|3f4Ā'0ɛ! ԡ&|lu:lH9bƧx%f } nzeSFI}e_P@8~I20n)gWzhʐ-R t˪"8/.Otǿ`G)|Iz7npe5 `nKEe 4DLa&'rVRꈭߖM AB#:g %b Dc gLI"ivQd"!s/B E. ^T;ڭ~v{P+Kf!KE,]Hř@ q-[ t .@ÚLfwNŔ>8=S=}ս|) ~J)ॢVDyFOStɰ4c|uC׮4j mtM6.q.%\onV%x3Ͼ"c|_͙|ͷbR&ѕ T*l)"q" 4q 0v;.5ɪ3e@>[Ĕh}nhSM4Q 5zIfFTS|>e:ipy;*J·lFffDOY܌V<==#pӤBƴ\F>Bjd5FXiXTK&zRle ,2<#kH "vjAG>Gv^P)Q#X`U*3͸yDק-}xW+M(+X p#^wCav[#tjja/n|/h%c  G@2 ^( %)g9Ŋ7m᳓#`nqR(6Գ:_}TaiDK2QM6@i¢fGؔ@"^ns, OX arO$Pw2J>,d:nvSMF 6H !BV"9 *P]hmR9icD4iW O/./ܔoMỦ8>t),x|ds $OxIiOv-y#Ez~]8_g^NzMu/W1/Mxj\0^:v|8\|7S!LdbH]zB2Snͅ; Qe*Y}3@aTiUّbfH Iғ4]p}GiHC*/x8^VIz~[`>?J< Ғoȝ#ū7CEy=}$U(3s60@+M-kJ0nLN%O-lL!3(FMI.IVHMDz_4pT`j쓠OZd2Fpeh'Hw~UFk,5B ّI9. =E@D#tR5-2G/,1\ha,Zdrڟk!VZ METܪBG~A]58Gr.P'IzV@ٺ gHZ1AABhxeCRN)df} PRB)^q+_J%F _}0Щ0C C"~V1%[ Fܲvɺ 1 Dʂeb̭*|vAMEeM F74AI]vJ(j]6yB ?.oPh,b v!5q)0_{orv#$O?+j$Tn[tQa{DrBRGJͭe!IM$i\o ȘGE =ٯnO5A戶>dogBB\sg Qcl8-U:M;&pRU̙O5f {L\m{ R)&Nfܘ RȮ-)hn!w0)мMVo6?%fΰaBrC du҆Y-&SZ-1q^p11RɚJ5|Ri[caLi n0 D̤Z-Jm9.7#PL􌉞 GgZAT{}a1ń[u`-;y{M_ fN93vq3pYJ@B"ٸw)Y<~\LvؓrJhBL QVPiN 1w;AU*FdPYͤ1nȒ<2,/tFL HFFc|?{}]^{ QLD>&+Hot]`T$dGJj} Z4YPBJ.1BFMU3.v1B&H!cMbUX ·S$Eu6g9 KaŶ aH]R'S9RAbLʹ$f4otP114~O "F'OjtE̪:mn@:Qb_0mv<3" gWI&EJ\|`{D Ϣqwh+Aj\ĜGEFLO/;ܝޡц(=b\A!{T0JS8z<֙! L8ޜ~<$B^ç }$8')@+7RN 592yh!pLXCTs o> ~"qjy=n+ J2-{9kPd aڹe -͕sl? #D99jEgA9,_a|Bђ%z[F΀x#DzC*bNPgj]s6ΑKR(fN:ĬbaU:biWL(:yؗI2yIn}Hd_ϭMߖ*V. 셢U5vQ:"G5DܵuD`C{e9ā)ޕb㊡?NZ)Kbb&W=C y9x]"`GJS;inG]L]9%nc+bw7ix?|SFxQAXs@Q캆|!v H-jN\ljX<_pQBjrSb -['+fa@Kp֕ .$(61UGկ=6ZSBJKl#c`{.P#TDD @ XQ̭pRU})}Hlg H6h[^i$JF1 T2UjA-YE%|̴bM] VAr=giWx޿\gn$Py`C">&D}bE8\E(m݀&}P},!= !O|59SrV@ g9BK h_.%%*Y8z6,H +)/\ ꗕגe";@Z i,d"rHY|甇돾?zW˷O>[BvDHyBOPYsds.8Q"+)ޓ2q]AK,8tqgYI6_+SJcTlb U,ɓ ,m`QOKȊ/ n8FE]Uh@X"!"&TR\h}gM]d8O4|O1)fSͿAxo^7 Ue*C3=(7(F͘غHE>ǎiYl2( G 6,dC%?QuIJ:HCH.tHO?C9<&'RuW"u.7gobDgW.MCD(iMI5 &B8Q:m9vRDYK633EcѧUFˏm\bCbx+rM&,rDa9ޞ _#D6fzU`QBњ&gf܂YC2Qc^xnUppg~t=BwO n??OO ̚]PF!xiOs RH3=\UeTCZ CtI# 61Ӓ!&p>qq;6pQKŇ;)rN2B2TڱE06L5J #舔0bjA;Q%2k{ξO 举ek1y.mhǰͺa]I2 1g^xz Ó;,' Z} |UD7b8e VЛ暈*^#[R $5PP);.b"F*>X|T6ªקorm.$.+&ՔyRs. 8зLu(>jn!rXgHQ@y %5EWlaMT-Z*O+DL  J[H]ڎ~x@&@h)/IIdj Cq(hN~YXJU3m"3S9:PV Nnq!sFs{zw~X4mRfd]5#H: Oe ~,HoADZ|'wX6o}G{ai1`ͼ^Ymae[I¬)y㴐LY1f6XHbLwݕ,7ءħɸh#{B 1GvÍ[V\22L)-T +:fiWH!Y#q-Z|#[~6lJߗ b(>RN^$K6)$HH awH ԘB6Cўc$ID&筐kwrwr]p6`Q#ƇOиxgnpOs 1B gl^QRhmho,+c<$P)$%,@>"o?¬"rI|7b01 Pi4~&N9|$ p!] zOt@ FGcF7, !!o)ܽKԗ](yǜ)W#v\m;2[[Ĵa>`e1z 2S* !N1 FW\ vpƽcU R`;!<]Jzpؚ{SF ;#RLj~|20t-[4tα:nLҖM<;(޶/N59%Dsv1~ds)%$9i̬܌6/%WQeܐ/eVS$ X#uVFgʼ[H1~ST8QX,$Dd&]:C{bhТR"I')$$kA1竔]رMcyˌWG>TcȦ%um2DFbkEDdzFﴄub27rl 9o"9;Ϲx_owέc'`T-XT$z_c)CX "("A>۴å\s-Er=q]sbkHlyϼRJHNQS6;/킉ρkuD-kle(׃ꈉ0Ğ[Ӆ1BvLTةSkXkqi'~z{9'qv:Xԁ xDZ? >}v+b3p #TB?o.Oқ1ߑ;k"6ƼBy9͂ӨMZ6 1$z;~=.~_'#9=Lr3aK" 8抚>'Tl {ꐹY{.}! r/lBǞn0!l5S*lds3V T<_| 8!1>-1c&)-ͭZ{|VB5ɄCEٰ%/AO8==ۜ #_Yy뢼SBRĻˊ1"V  9gTyǾyw\ݞ WW`PByyAI\hJy=aH_˪2ᦒ@JS/ˢGR) x!&IdRAeTPM5F!W32o$٣ wݽNotB D"z&L%jO=IYTGHBi2mTe:k Xy|4zOgBt˷bZ\k9Ȯ)^iKbl!t}O*md{O@QX.pNcIC9$G\}-Y̆^hl1{|K]W1paEɣjӌQYAL! {=!]JHꀹYDžG$@=2zt<^+b= xǛC#I]+kKĽ /R84"2=K!Q@]LwIbC1rve wAʜSa!K)w@Kg4\<}FcZ)%R \ ńeHDwvO5d@E$RB.! O^obDD|#ܮ_S. t3ψ!08#F\kЍEL@@%u,!;c8CJ ۰a(CP ɐYVXeVGGJv|j%_Sa Cmc%P²p҆}ܡL͜ߡlY #>?C.%ɣ%Kv@.o5VUh鞳%iNdtj!1"aܘ@qt)X))A%%KrE sDMVV|L@ x}OsХ94e@PJh]6\^a^&$" U}@*rTwu!Yv%bi朏Ok3JttXwcO5çOn@*]Ĝ)q#u+?cL՟1q IMfJ+]" dlIyV5+§>4K&9K?,G‹rmؿipY{y/N91RHjU||5&U-Zy.chixmOl>GZ5,윉х=9s^-4j)18p6j<(#Y1lZoˬLl?IZBpCG"C6a濸&q+ S?I1q3N7WYn?OH 5~h][6' *!^_,ȶbR+m"Ni=*)#}B[o;='Oh" osՖ^:~%؞!jm9-€՚0⿯QJs~%3)%i"jG="g|"Df P%RMI`̭J2z.trtqTM V#o^=ǔٵ=]{1g H)cT )CeL*51%?xH5_Qi uZ\b2O){Vz0\U篾~'BgCCb&y4En  8QehH◦(`HMz,H!C"Lpxm9$HdYh2frR])DISV)92K7߄_g/=C%txxkx~V7HEF{qD_C@)ZW:ڌ֞tM$Riŧ)|ȄnI)Fgqﹿ{p89`"vJz{i%5 ] O>tq!! \T)#Bs%.6[@KIL\KO([һ\=nE*x3;\͡>$U%<FO h!],^_t^.S*`姍L M25)gb, y49#=BA-Z$ZqڝLX0+*S#XeQ|a5Dk?%,Yalky~;w?G+ я?>?.nN'( Ɓ()s%VjR pHpi\e.6[$[1QMxslYHTґ|+,<Dmh! HbK%J %$gG~m8fK{>}(RH0CB8_qLedfEO#Br-)!oȫ8fh xL2' u^ J*NLL}n -J@I@RZ2ԑRb&$Aˈ7?ެǖL{{ UDJ*IRnEÀaþ×ܾ1`0` K5JD8!3w!5bE<E T?$scE|AKMMFr]_.˪1Z*A6$=", [VIdvaG 4!]ɀKhR>͉B|:sq3µ{oRd׼>T,8m^I'&5T y)Rɪ.,'T !"xzf*24nsYY)g\ haPBffʝ탴*UcE<RBq`9r?ԿذR3SfHXfna 0ŒMϞ#)h]ZrH!ːQr]C% C۔||K5c4~k fܴ{?IįsރOvq`3QYE>gD: Jp\/z?mspM 1B, ^oQ =L|~v/?%"YΡR5(ʽۅD1 㘡 JC]ߢZǁ疬Xy`=ʒyĞKj5J iƅ`guCPU< &; ѱa5/O 7jE_|dmnL%rT:SQH)0z  )j]W,Yov( % !*nӭ}! C/]W@W5dS%ٔᾍPOdUoD Ae ON徹ιHnt̹$|Ʉ,? PI* Jȡ{_RR#2Dpj䠱L5fЕFiK+ dSFkq[U1òw㏑CO‹^}aJp+PdJ#p<]7|\/d74dhU)]_B`Jf[b[SFt-!AT'l Ld@ lȹ\t-aY]P)o.+<[B,Q rw)(PZfLk펣 \DArw!׬"7SLJ{,pR@ .C]k$j_H_.#%q̨ۖ ]xlr.kؔ6t5:BStB5@ B d<{=i?esxMKgCO! kDf,|G@SP>QO)<_2Tw{cFx\nJ#Y *(OҠQԕF"|r0T, 0I,ϴs>>s&9s rཿ{pp !oX1Z`<5.=*>i9I*eGЖJ"&cѱlڕ D26C!aܐ1l@ǥ6zB;G5%vѢxW^.-`,fTiG{ȁ=bO+9g4c$N7v%JN- #w<>gJH$X#OU!CBbJI-%Ȉ$9Egy!Գk&zʬ:*#b'UrdAfR %^<]x8dHx˔u]IkPLʖ5`WCFKCʑh%au_ =a|]=ZT<bK8S3He5eGq[1~>P%&c^pG\BL=ͨ늋tN;ݒ6u"^d& cY,3L?EEj!z\ӆ.l>vH!9)'vIe Q9Pך*ű.{3qѵ=]ף)٥$#챁Q%ᒦ5]G^U ifC ++sm忭g1rIjd=C_&y)R$[990, [@c`Z7ykAˆxD칔e4)s LdsD4UrΑq31z>#gJ)(ic4uM=1FMaip|_ٴ,`4E>y-GsdZ^7lR|Zd*Q*P.E-RE"HmTA~X]z K 4LT3ESUp !p.( Ѻp1U]Q9jKW#O(b*H4IѳZsqqb9ަn Q}⽿9 _>0\n臁~pغ§:"=*CRsbT$ܦ@2I7)Eb~~$3RSO42 ID[UqPG-2 9A}-5VJyV Ѕmf"V9lcgfB͝SFߔ$e!=9R/+}J,j3JZ 'd$)K1ڔ1h 2)0=[{aylzWQVӺhUB"H}dS0V!)޵l ΓĎl*%jQ3#cxR.60nb,~A'WBZqKD9~T!X]H0E$[=P,͂F5iCo9.Tۘꐩ[3VnMyI7%xIΧ GIѲT[Y< WF,boMrgrp_O*xk󗫍_(Lj#׈-xc% Q]hq`'%e!^@p!"sUM(=M1aVUm +1#L%!IFJbQ  *0y!V.qX{P! 1U{^gggIЇ2"Ӹ+Hʙ.©0آ|1Rb@GuC^r TUO~5'LJEU].?ci;E=RʢlŠX# L&dAH/Fj4t|E]raFXP+U#S5v1&9,LgSSg!%ucyiv. ID'M!J=f.l+*VΙf|N4:c*ɲ9sS}lwŌɤF LW.HBJrR`r&W5J]/aٌ1w~zRbPn0Ұ6+i$2G'pݗpejE><7f~D;BR2EuG LjYdbTP* Q0J%d4R =`XZ,!vQ-iv :.d[JM>O)Ӷl#sRHI"uǴr=A6!E(!Ѣl. O~1ܺuԬ>?eX}z8x{ڷ/i,3 =C5wAa?rNڝb,$*`UYW/L_baH$+b5!r&T]FcpF*BEV[bN{p0bDƖlO-VZRJX$']hiT3FB 7u #~%%Y=÷S q(ڔY͡9BQac*%^KKH~G }U<J*!xg T-hL&I6,J@80e87U;!&]I͚;Uޘ3DOjZ#2KJ9EL<>;bd*,X8S A2ZؔRCIcn{]>NVk&b6́ZxLLF5ЕFk,ӶE~J"^|dgS4'֯ن-gՖ8Iumjț(&I<fxR{ٸn;&zFugfL켐r^)* ȦyxB+~b=4!4e*O1`u;=pθp%^ \"|tiUyT*?%KQ (6(#*1\߃. A%5QHbeP0BF>u[~Jr}W:*bH@XE|Uʚ|6')`́|R Z鐋W.$1g· MF]2wdԝ_:BE|9X,!bdy=*2}\ȬXӫuwԍa ˵+Ժb۳ln3ILgY\LF7hy,rq>qP+rOo~+!n`=~b3LݘR׶X:|2c (C$ g1Nz|xpRpt0;+߉@Oޗ%Sߐ1bz6~G;@4>2 ~q.gޟ1'L tm`D_ L%9רGɄ2WSL4J'筽/P4a.k3#T2}% H E%ɍrDW?7HSaN^-A8& j qiL$ dwvnlRQ#ѺpEύ (t(ŁsRt--"yRz^H#u1{ZE3#cw R R~4)b:G<ԆᵒK$b''B0bTqA_1T,)ٓꄜ3`{ 1;)9^S IffI[*Ush%JdV-½'0>% %n!`lJ)>y@Vs ~legH$'E}{2%<#!yjU""#W$J" %}_B|ʢ>lTfn( q6?oG8R=Xy9{(r WddfhFy!g)q||J431 r!`=cD5&SPj) uʃؒm'w LZ8|lgГrtf칬LObu%{p+3  'wTr.?3yBv 5zx0U|YkW^y!=Y82OCF3z(*]hyy.lPZs9e|=+,3cбqb,ja20U2BJ< !1񧟱k{2U G rT18E]SVkhiSCN %`1{>Srx$TA C1//6k~JJV""&TǤ!ʿ-)$ZXn-0EO4tu(RF*q,̪)S3!3c]jkf|z1KĜYձLha2״esSW.vzyv]O? n4'v6Dj8[ ۓC w%<&\K9^LVsRI9C->0Dn =WٯA-#Jlh$7ufcjH]$2>EV2 O7'ݽ5;?{=BbFGAcfTml8a*Vv 1EZ:%-HvoJ6 CR .ᆁCߣGFv׎rk+*1ZcE)Qޝs %GRJTLR.o|:Gu?KHfKğ3͗Hɛϣ#М3 ߾Glی,1;'+,.Gc-sY-5Y%HB1t-'ǫ׸?!OJ&&D/N_5+wƎə_{4K\ H\.œTpq(zAdn$35+7gB&EȱvkK)gqݧ5/N^ wK ]L Hq .]Q%\VsJힵ516ÆH9.@GdRDFl0gf,1Q$^ad m4,]+)P \YG}"ؿ8"cbxP%PXH!*hۀeQ-$> )vŎQ~; (aQ!J 01oF{::ib$x={t.aR){ȣw@@ƨ:yُRR5/pA0`%UHfpJޔ!G%G$bJ;2I=G g):i4|4,؅<}Y  )p/Y1Q M=N33社Aƿ-:mr6G -1Finj8*˲:ܿK@eLi[ϋ/rE{ 'R H5IƜ(U61l[I"d{XlRߎJKBժ7 L~B?g EZ< L͜[ ǿk,|-~?`R?w18'ԉ2Ljտ׬5Ga>`6}eڮguqAJ`k8(iB]{?'믿|@%]pF|nAJpx8Žܓ+T}M]3,=}wCG%0示I" ܜBPD鉱`Tb"*<0$DϨT>Gѓh1C(ݡSa K9H!8w9jY[4h4. l ܞ| $&f {9`EMȉߐFPg]{z(ggffDpO'?((j/!;I߃4/V]l KY>AÐ6 Ѽ"rO^si /ΏHyw-4Ưq2s|VSܹsauxuE Ji\)uDBإIdRURT 3BF BLhW[6-)E($_˛A>JKt9u[0i,Zb s\H(ZS)bBhɭnpǎ#6g7 T9aIߓ))01˕j`!^*X`JlŸ()%)[%p\'XUq\`LE&%h-QLs(/+bCq\r\;(dmXS]R +US˚㚋;;&MGE qpgeYϯs;҂HiZTWbq6l?7 s4 tr.#s#J(1) o19JGmmAnYaoW71uP)"ɴ(z^hndɰ)V(mlYG)GԱ=.:ZGJJI%D({4fvtN)ל]\9g.[&u1iCU̗V^IMulv[nMj !I],v֯>pREffA Ůܛ|OJɪ*/2&7asΑ'1VN]ffgs~K;ޑ3]mm5ZI A  ]ו|D+% *%lSo6-]Hҽ2M𾚕rF GGFF#KNM_?gݬaȈ 3+5YY$!t-TJ 鷎802r 'Ҷ#tŲt QC@anZIKczr.A@Te%2 IDAT NG ,Yp{#鈈@jAHrqz&'m丂M22+;p=dP5!<{W 5bsK|ERlo2oXF4UǸ*)IN"'\k^ƞS@%23U$(E8N>*yRO0biQD5"'F$d~ +e! ^qH9R\5,RBqX'`oCO>ORO>Z5Fǒ YnݺŁ[-jCZ j#D]O6 J sOwobDB\&Y'] Cg+V7v`ylrʝ.ӼP˺(%Xy hC@+ f YrStg3P20 QZt)Rǒ,I"adE=>ji?f?Z*^(QS(4ZemK(9sr`"%gn9.=Ɣsϑ }l>ѝ;r;S Hn@؅ ,̂!чӎ e5EG\*ArSdd*Qw+b0$)vCHpQ6vAz /K)Iea,ҳ爜Ј"`C_٠(1eޑHki1R~J59SDJAeއLAT֣ix  G) ئDGE-L #k Qz9OY *!9^tbl~IC{|9E+!d\JE׋ $H!M1Fls 0QPYEeƪ~~נͳ*LOaWT*Niޠͳi)b GpoµPnJ98Ѝ,>ʰq;/RBS6+$bp҆.O=P*)B0WB Y33 <*Jcc8:/>R7*QUŌ;V4ÎJT\C,MlwNcCgK%ľH ʋČkA{BGz m(-DKJOwd*cr[◕(" Tָ=J>Gg7tAf^o"bDf"3 2L|J53R{Ve,$l% Q1G2Tl] qIa~?>/~]];G#[zo~ 17oN۵|X; y fEO#]MK\L.%!=kmE] u:3ej0.:Z3ܳu=8n#Z 2UH6xaH ,QQ]hsԭFwz*I?]x{'3} P45cpt]d{1} @(IB+ţ+4`sv+0\r$")q.q6LjMDq y1!%R L(`oŤY`MHE52IzjcS3W ee<>HmhIg<]ShLwz' % -*5RЏ7OR<4q ~ BKP.v!}WѨONֶVU5]c1*}'i\?K= VsY7$@WlyvP!S K!ZCEf2ٳbr7^BdƋnJ2F.$Lw Ux KlӇ1>̴aVLxXS[ q~Ld%K̆7]RKaA*5LLfc2c"2EPMeN;px<' Kklpꕃf[b_S~<.t= # S3eMĀw2C6 | y}V3 TΏW6=k|E MX&#W@DXj5) `8̀9vOuO T*RI Yc\M#W5jDVN&-3:%bj"DV||=+^&p|Nqqo_vg8[}~`'C,sG\Ȋ{!F]MwۮeZ~j**^<Gm.RD57Fd2 O*D*4 %b*rbd. pD, J H,V#*;pnd WʳԴ~\k)TJ; SB "tV6?v\e /?hr‹̳y7xWpӆU[qx|۷ ~xֻ{_"%Dl2c\L6'D?c8(繛կ\93ϼl&3ai!kK]P$H(Sڲ-l )dmOL4aX6RSP/D#;3؅&45vԱ.e̛Ԇ,Az7,]L 6\\5+]b%+l 1RBm2 )$E{~<¤H,CECeưRC9ؘia*x8Ra&L̈RfR DQ-u[Q+UIeP#аr+B J"X҈U[?6pIeŞID$@NEb!'w{>mE۳jώ J$c d~#$#1L%^i<$^!L~?=vT+%q6Cs1"حPuJ Ҹmf3yUz@lsu*ҽc_ P-׬5WL׵9b02ޚޟԃwwsγ;HP:cMAebˈ改dt25aCbeQ!]cc&djhq>|P J!!taed+Zs48S91Fv%8׆,C=bͰgOο%+cH"#5"s{Lklu )`/1+MeYҬ:_G#n(0?a0#paJ8}D75>GRL=`$7a5 r.,C^Gɫqn1g[(cx /PJ5`pciQ匌 #QW=@ "ZP--#3` ֑I>0J98/x.z.mv"R55PL'lѰt:J ߐ)2L$ ɈܿkW(2 -n\ȾyX/E1)DhmWTnEL)E}M;(cm$Pyd:@xX=\rp\Ou 6RWiQ+ D%EbdJYV`|8K^Udcr*D" _ 7c~P6XCa"#{= u TҬ y)KDA?2/.Hޫ/'I?@w!GI~HBB,â0jF2())LE)@"PBPT@bG~SEɗdz_,Vh<_12*0Ɛc(QCK|I:rSCn׻d݂Q-h]SSI2(x(|:BڭӦEisF+B\HB z66E(*]ηw.\ȳF10 bng r)ZMX3g4=3,H>2#<"r;MW78) \%):?"t(QT%U\Q[B"RQHCcS6ӗ@bxc(٘o9Oׯ\o8 ԘADiR"u]#$KVjVBlE mR-ib ݊t=RKBA#3j' ] ̐Yq Ꝁ >'x|Cq grI$3LC֖ %z#3$ROZ[`Ҝ?D2 GL̲Ϲ_;dfh=CIIլ>X&I[4.d1gtl^􊪫.F)8F QRQSSJd GK-Qd5s=|/=`Ɍ. !!ׇ7Yێc|Ǖ&}hNVJp &]b&yJg= $o:h%!QyFVϩ0L׻š2a~u:B =T-eq`sgƃsWhcB wl w6"f{p̭0(4)5Q@V4~#b2u i$EYE A5[%>}' ]\)!d8!JF_?ݧ̈́={^ 9*h|Y.)[ǭ'K$gmo9lOַ7{!sMBa]0RڜЃ(+?^ JDJ RȜ(d3`mJSBF7P7 Z<\OT瓍VQ$pdray*_<_5ܫ1 RuQ!A3X%&״U͘NGs.mmA 抁^yĿ=pڮdm5:]*W1#vWZIΝ F '3 =!ːo=bD՜;ydPB.A >bIak=Z]O&y% Zv~ш0dh(1#W &0?D/HJRx[hCtFISBu-]{jB.[|ҽTtYtkt퓃7Nj4{4y~'zgqpE\WQ J#F)v&C[Qɖ)I"Md4NRukj_ @ -B ԑaqo 2 N4">A-3^ࢤr+\hE,]h "CWWG?Xe`8=īwOl:_+J!?$uSNz۟=9B$~S,~rhgدv<,,7>"(DDO4՜WM6ljݏG ^.w@aVVgoa~H}.&3ba{TcEZ7FRX%[C({%xOLXp5miY23[x7?#řňvv9sx49<dd:#rl0C*p^V-um;bFIPeߤo/̘fS6-&~G[u&bOH<1(kۃ h(@vH|u"wb\W ʒy!3ͨX:&˓[Qdtֲt nAml=dCIh\N?PȴԠ IDATEG+By7uc $=Y"GKk{kȄ!S9BJ$C' 1.%`Pdܸqwy,hEjϧAKU6wDŽ8+s+7F~L;WxpaYp1F̙O!M(6P=Q#iN QJH6)RJޟ=P| b\K rMCq|LqpDOvtBf.mmSoMf.|ɹ?j{$l=9]2Z7[sg41uVq9> 9}=BhQ:8vtMRrS?7EхȿVˆ!zRP|h;O-)ȴ,''@'k%Z5&q%]҆lb6t^sHƦ$z%DXq 8Χe>QƣklN~,S7!'V>:1hR֟FE$x0GC>J%@nOR.J>>ž b@ K!2iKvNT`& pȳ'z(<+: hqF.#jYnDُۗ5@1zvIk[t>QB149Xͨ>8W<\|)"wscñ;.̫_{x`!dE '!K^R鄯~ w5W\f2p%?6ܿ q'R2#FQOJ.)1󾸝X.x5X<$8NCu#fxDjZ27 YK| 25d QTFtH 1Ķ-J*zʮB3JK}jW!H%'50CX7%x'9R+l $2چ'2 !$*q}:[7Abj'kO;! 8"~#)#WQF:JbLMzlO`+q}Qˑ=zb5DnN@ո#B7eLMs-2ԣA*v]Fqu"_3Jr]itܩj}&ʗ?w?Eds& \2t+[Ң*{ĉ@jbt:ck82 Pd06,ɣb}."[.M|DH hܠ٘M&8cRxkɜuHOZXOh'eZG>ps2d,s#c 6vPo4b4_2KYJS(Q%DA;킪[&-5etlQgvyiܗP[Im%(eXO, |  ѰCThg4DaGy]-kwsL)YO")M(#Yb62@%GJO/b#>Ϸ P?poܽw/n4vB?4Q+|' )d|.>]b& XCSk{urα)MD"#Or"#3.:9k_}lpGOkCWկ}mxϾ1ߢ,zxamKuֻ^{^Eӫ#t:!?~6]\FId:d2wo] "^"5xFpgl$ˆL?~ U꒫jzJ{d}oi=1ȇ,,B?F!4bRC5-lM gwу]:k 0L3BӅmx<ljObdiԈ(:և-z΃pXFsq840C'S 8ni&$VaC{n'pcop2-%wޣ@%H1%'i*vD]l/1mh-5y6ȦKd>{k:ߜ>O*Z)Ԉ䓏 6tȄf6S:QӰ"#gS%@ H$۴OV2yRs90Wǂ1m?{ 2#|2,R8 C1Ec^ж<lη h}C$2Gϗ~9mل {>˃;S ޏѴ ppg%oe=_Zov^WޞS KRU ~f )Kf<4P%2Hp);,={m!"uH?$H)O=!r3Лd# kW;G˓Nb?nݳ4m&fVq 'Ǔ5D/¨쉌_ԇV:):G?܊PUT+g7xoyo$.pѲ 9.m' Md3dp3Y%z g0#3Qh,5ioWN,)0# YAqʒ!r!ZYw53fybt.횕[c}@98 CkMnx"(!'2!Xu~Q$N;w9z9YɕS0Q]_MB&l¸gM& gqOH@iCǝ3 T/xeaW\yn%o M-XK, b Q7O@ã<,<_>qz0 d )V+[^wȶE82&v6GNE:dwb: Ԁ|]1Wp3%(%MV%DcubJud gz0;frJ4'Imd#4 :pRaT (u <-UWѹ\v`:j E(Dr~S^9R u[Rf2_+|R󳊣JrXwW[?iDhB2 Ԁ`A * Ѣ]E66Pfi6rKO4U'޳'Lʓ!? o!.OܿC_׾Mzv׳#Qxi.$jΗn}K;j&47GXoeI'Ŋ%gtx1kh#*=<^*PZ#hq ]J*SCI t:$ [5ԶAEV " #r"'վm2 gFkQ (97$,JHČOkSY`Gt>yw'?Ҭ[,Lϓ]!_ I. fʤx"XĈ":jV|q{DGBf`ҠB M dC=xc r#ڎbOi|8t KhRL'iB"bDb<3NAU$IϴL\(RKbj<<GBc.Ⱦ!k Пąފ mk2Cq>etm dVɆt H,;Hx's7y{'h쾳Gh ϓ sMdH5>W)'9GH^%ͼc}r|{*xLPFѭ[ϼ~[o˽+t)E:{Ґ<[~6;=\8B(حC"cI#rE&h١N^ѳVdRbtH!6z""tv m v`J˧NgE=,!TITt:mF >s;0棣r&0]g|u*a%\1w=Sء>8Y3s{$ Qθ=B {7ɳ7o`| !*hl!ybFqK;8p}QtMS2W횀'i֋:ժ/o3DRH) STs8bCHL(d2]S*}Lq ^ I±F_'#yi*ƀ qm|&J\z{98#㬊$y ,~uʾ9f)2ꃁ,)\M~cK 5rA mQm-*+ ݥ봣.7t4XsiA?Xza6Eڭ12px=&̌5O$kbP+!*P@bE$Y\0oiȵ@d!@%ugqv >d-SxNs:XwimKZĦS 4VHŽsu.-N6/_r(ΥC!{$\(O 2s? Y0UNkȳQ&P Û"5 }3H6Rs{e2K`<..?-LXPFQ@ ӟs* WKq_38Kgd6<< B2IpHt!c - 7dFtAcc`Ro#k/xx #vhK0}r$ YVAĈ='6 Q 9Nj #4~6L JB&yoF']l!0oW_ %لvNK~~>mxhp+/D v4ko~h{KjJ/ʂ--ཷ޻4/ ?K?=8X']<Ҍ& ]Ϻ~E4ſ*rPP)$ &1H"21ِtCI*2cil1b,B[m:"#-!8E+heZ7'[K[t}_Nn֎l 8a4F YYjH&^j}(0*m.0"64H 肣9Oy7=Rk4Ml '0̅@ !R;Q|C:wAvH{G_+qS`\ 8pgxuߔ?" rU@F)1҅PǮۤכL8iD%i=`ѥ1+2Y0P))Mw.wf@~GK 1D>}z &O[QIPTl#$ u79-H2^L9l}4\&clh<[O4/tyȗ+矻qK E Tz}$ԠLDGL)[j 3ӥ Ԩ<kVMk=]m Kܘ!g'Zj0Y!>&2SPUh>QkiT|ghX;(!P<9T'5ǃ:?-LEQr6-zKRC>F3b[6ɯĔ ?Pl[G5Z#Gy/t)a0Dcx匥\ 6Ŗ4iq:|3{H=JY6~3Ph.9E蓼Z=ysLYhuJw] u4cRxaz**)( Q vpXbϦDQvvhQ4ulsF qS+64.gVNFJ8ۇȽqjFr) Jc)"_@ 8 !#Ens Q>[}2M5N1mD@]N4!OԶ*,}Kק~*+&;B ZSB|,f_]יw)#2F)JZ=ثۯ~Z'Gq?e?eyXj-ٲh)5s#2*P$k(dUDܸsBl$n AAܩF#.eKz"k#1Fhpѓɬ`F=}7|.'YK %q.f q h9BCZ$~"b/H{V%eYrx#9R25U 4 o BаFhŦ0ɬ%ƈRe uS}-g|Gx?9F AO?$> o}lA.1)#bFT|Rb`ӭ9oغ A2fB&3=-.: x^%FDsz}%$Ҿk$ǘt D-YuJ{H t)EV@*K"%T-*.{M9=kR9^BBtc:fۈd?|L )D<&{ L+ab]O""8fI&7\Lrۤ 8&((A{i kL0y;ErMeҋ<~7?'HGDdp`8%~ʦFbzJS259/nΛ>BdI&iyy(h+bs-+_ꖷUEG~t -Ȓ!z"[coѳR7d*|C@߀nEw_7̎Qc<Fg{FeIU[cބrgp`x6%]IRY IDAT>'1p332|t(Ȕ% B *C9C[U m_ꈑN _, C Ɂ9`d=EnH~w[[Rw8#s5GNL1ՇH0' V#?D|[,|y:?!B[_+ۚ%c ܔb`/9kN\E7u YH<9\Fj~)K TX> 47G b~Z?"EF60(v!@5uZW%lD㳌` `2cĨ, c7A#uUv^ncfZW>x[Cic{NܾjS+y?`>R`TVH`IV JzYtHqtKR'ݠY[W~T !fS)GCJe 5 @e$7ln HJd&n@KoX2"\x F4(wŖ`JSq]rt 0BQ_gh HDA Q^7?> ux#maɇ$t= VXG}Y@~>Ɨ7J\j@Z:=cwhty8L&fHd!.ȕ"S "ܘh421&Č҇LeX ^sч}O8>I 0b%l3&5#WٜSsoyUD(^:eb |U YdGtv+W&fscbSޢ[LIKPZkRT]ǺۼRS7GÖXVZ4*#S~~W$W9Ss1g>5:CLgh^TGocyDcU &)2*\0fg~o*Lq!Pr!kƛes7qDMKхfvJf +B+1w_@e8a 1NQjX_sᣧ%‹t+:B{K%*fea5]`E.T2o2㣥3v'1 )zf׼i .v5[D+"B@eqS <+-1c;EJθ$W9J(T{nj߰9 ӯOi}]K>[9=/VWH93-5_}!!|)wk oeh\CNgl뒰C!_D(zm*Xs5>|b1CS@q 7O|3OW"swmS򔰼H  WM'jq@o,}px|k B E B4Iyt&~#1%jc4rvPq`mtSBM2ZwU XVX'<;9F6޻|[!}Zpy yImQAkI_B'\~%nXQUe%W9ph$P:DƎ=~x?SJsω(æ;gd2.BBbbbf&Gވ " &N\J֍ZBhY+8*=}BHxjAB g| ]c (LyO@8I! 'W%}1zr;!Ρ92LOl <"H&F($+sDJŦ[:A)M9^؉ N3#pch)vA_⇯^ b$jHwt,ҼB2E{F;t!n%ŜQ=OKA ,6r0;J!Iv<=墻.[ܣs{[u[͔|0Ⱥ;Pw='?7'oaMLfK ][xGw U<|> ot 9ӳÜHtԖ%gۤ"Sڅ{z.*|D=bӯiCC6T lt"=>VW# #/A@P#"BD<ǔn-5Mhn%4&ZbpKzch LB~b ~_jG靔ZB+3-~]I57(7h}Mev QE#=t P1l=IztMol7:)4௿},gqfm$;#*M !2*BV-E_yxYHNTM`Ǟ6՞Vii,Z+'ޣޅmUrt=!S&VRc"D]v=N~A<{ uG)Rt Ŝf1Lp\K;[ix(tv×!byA1u[?O~^a-Ju{|!()+H`ΑM.PB{ICw\vkPzʢ8f0RgweG K*؟'Hdz36фڈ("c"D Z 3Swq)u,:cIrjQ Tz\"Jesh/ t(!#| ! iYy$f&c' C^"깷BPJI!wrr.}}|-o6fjT'6-co05sЍ*#DWxh644mM@Bg4r[B$S1l7L>h}I!:3mcѯRHHC>Vm伮 }i]zFI#H@:M}=G9Ŕ%۟xxwyMX>t.!"8;]ѻ}Ac=>zݸ!j.Ҵ}DC ،|;!O" Ks~Pl5~#-\sYKJcϮw{IGNicUB`{@ )%O-Nm'u"`Ty>:VrlRm<ֱ=O-[2nj ԡIH$is.؜ع$h\WPP1 ;A \>q QP%FjHwXo\p\#bdc*M\ц6Wc"2ƴg,# ni>1z)hp|H$K"Hj\x p&eh|D+1H4X.BO90Q!wD$MOH>I/Ic =;g:Fe̋c&ကZ|Z&?gv5KC!4Vt۶h!B1y!4zت6 }Eץ ҤoR"A)BA8)BeEcie8g-, aOqi"'1HKh|K\쇽|=-`HZnmMl}FV=#}VjihC׎Û#ykL +ܻ _ox(w?a6)X+L&K$Ah.ň7|H"}ͪ:5t}8_rtg£%59֢&Ʈvo*6?wrh׮f6,Jh$r jKD}9>}ˇ.}Ie(@UٔŜ~oZ"8@"FQgt=}svB~vFM.iܡ6tu\^>&Llc7z&9|RĤ?%ZtB.&+CYٶC-QF'hBY] NiT|Ɍq=Ca?~p?yl&}æ!_H:}L@FqDg\֖G7^./ޮ5']`-hÆ5Shpt8ɳK\D1`pS +>W 3QfAGh,9W#/(9wQkMsV Gp\R>hSvcWA[ql&gwi\ͳ)VXmXj0 8ti.8J]"8ztp)2 Ub%=SX5csJ#ͪeرe:LǤ۸T<^Hc]:TܪcHLBH\lAF2 .ζ<>3f&,. +LtoELOitOǜlS "wL=ǻ~; O'opN}El+HCL̔8ms'Avڭ %цĐkP7X;ُ^d8o$7^'X{Bަ:с4[ .v\Vk,;k=u`Vdco;&F Pw>L޲9` W L9.0}e9ewN9#I_s֞Nr6*m|ǬDVǹYw!'ONp7W{v{NMe<綈wo/Qo5?_)Qf6] )yzr%шoO  x JdI}wT,&-99]r|8Kd40T~M_)͈;duqT ]Lj;G>B CxXt1՝8Ih;Fv#/N 㾿׏~`<[r;w0r}]N׾+ M4/$QdQ9!RGhu(k}pN@ 1TT B Xe{G+OVT݆59{Ƽ<@+MoX=$TT`gBؤ1'B1{F*&L-,oÿ&@FV86#8H4u06QkLֱ#Jd I.J#"͒C#'BH 35_ K}zOh!B%@J!҂dg󲈄a$K\i5*iPҐ Ar: z}45QM!x[`I 1"S6Fbg|3Y EGLIҝ!˯}Bt@Z .:Vԫ-S<xw{|*c@ׁ_ユj@Dl&w瀏]0=U\R5A$b׌%TD$,d &`:/r]Z~Œ[*jV)4ЖL1||B;te/{&uվ&iHAP12#_&u B %% 0)q&Zk6ۚjDd,2?ycFj`{goo#XY۾O RQ?gȒ\\\\ryzIoLHVݒeS|ku#=T%Z}>{;. λДzO)Yǀ`iJ2$>֜6g*gZ3iVX! 2c[{b XR`&%JGTΰ23P_#5  S07hJͦ %>!3|[Ff4_2c*g'y@=J*fA6C iU= Iz43%J*BCWGZit䲽3e_/>3h!qqDqGEdB-r)T IhBУ&S̠74gU DS, t9wdj#\"7~!D4_RS}^g֌܈ЅGԮڃv@r 9g֌w L.O}Y6XӺFvm.BTt)꿛!RS'~=DעN_?K}"K$^p}8\̙ϧWCd0ْd&}l~u=OlԚq988U)=jWכoxV#-G!ق\$kź_;=N'F FL飣-ٰ&S&뒯NO\<'\_JhlYՔ9hcu"cloa~K T֒0ֈOD3dC|Ni#|VhS'!M$DZhY]!73-"MpKUatM),31(A Ui(S&=Iڮ1F c4#+tEkj. 8$S%yL1,uC]=1vhqk]?h\D!+bAA\Zdl- IDATΨfq4cG֜ԡ&R  R[2-1}M3@Ѥq,qzq=,Bo ~\eQɶ_yJ^ k$_8 BbɅ?EHqeJuBwfgpX 1sWPBbtH!IB a|S '"pWF0? C!'(v ǽS.Wis{H/zzS[\)TH+shxC2*#9ZtO./RYB>䯿1w]fGȟQo`6Gz:Vޝq~!DR',*" RU!옋 D<{q=Zs(|bP~`T~Em >X'S]D\ZIMfP2 $ɐ\C:21pцew 9VUI2];1F~0ɭ@a-c%Θr8`޲ܬq|<тZ@H=Ƶe9C)>#5RJB)g~p엌gKV52ɡ% 6b%'O1FV -FAW !$#30;eᣣ%RnǤ iLꞵ < 33H<RXhj_BC ; Iɔo8sUrGdL#5oX+L#5 _#/?BP_1!%=0}z(0 G4 1WEb 0j zf~!OkNxK9ĘLN-s Blj&]4Ox::pG B}gw-_vkiЃ--b%S7o9oNi\MZn=06.i͔y*;{иNHΑ1:&j>rSRg-VpVF=xct%TKFcW1's?g+{r0^}Bе=?I;LJ-B.҆”x}=%64; OO%2G}uG7(FJavH}d]p1!YXS =#=b'`y\=&d2hEBbknqEvĪ_4~Ax'>MlFPT,.L] _?1@e|olߠN#$M)Z܃Q#*#2 Q8!!/us!$*gs$vH:~":oFoygvsc^F,F/nuz%ۗw-[h0i DAB#LbC=e^q}tsѬ8ϐaFIQXeQRoy9M"Cw}%L58i%GLh+S#C". 1iu}@JH{ck>BHl,A B(pt&mɴuUA Dh(DJ C)@ 藥182\B)P.2))dFY"P:HteWHȌ 6lU B!CHKJ\h铩̑%,wR1 PLowe*G^"G1ӈ!#X|v DN^!!"C#HxVC10@ Ÿ+lȖ%C"D(Q׹~;C୯#zpL$ZvlYsƺ_'S9~OLk7 1 2F6X+P2%JK0UUI.`~Cj CS 1 -o1 ;QRȁq><>msǶ_6z :zѱl&.\5>) B ML4RcAG4L씋]΍J<[Wsz= w LZs.%~Eta,6KrR ZMZd31OŢ\CZphh}wS]Vwfw4~d =`r9cJ'VL`Q@`5Sɐ1EKit'@TX1ȍ%2Wrq~#fDR"*EOR/iumh|g]+1J*25GqwL-Cܐh.HjP$!D9N5:E J{t+O/TokFuݓ6nzvн' M$ڛ!~ #W4sz:zbLyv1IԾ7lr#Fo 9YY"^-:bd6FJ(D??&{Yb/16?#Ro0_֫ `11t173ɜh`nH.thi025ˬ@VQ5 ]3ejfRZW#2((+.s6u'}ީ=`26̳äS6,9\*Ojz̪[y2L#fl$K~R3%s).B^?E@~_R֚#޸{BwڢO6+\9"ܹ q)ݽKd]~"Dm3KcTu1˖|@ ĠŠtEf(ݑg[L!x؆Hf4`-Q^11BKfPPst4y^XZ. NS͙YePL4. xK@tEH2pEVs{Eْg+'Ucd19H$L =uч'Ռg#roddOo3L Dأ4h3l`b#Ft} ZB&Zj.a&S9H[Oh}rku)S}@ kcaI!c&Hf3;%r]싸ojՕFU@$"⢧=udr_yKLcXrGޣeGj*YsD H;7𕯦d'L{C"ɋrnjH&#!&+Z%{""l XwU_ER \_kSj?z`}^L 2WSnسomJv>&#47t^yE%NWB0#r!dNQBӸSr: 4ۆ5H+ɴmM]w,& F˷EKW<O\Ir`iVG*ԼtI6-_^ڸv_%#J).(hh06=вQ،Y9 λynrvJ"kqY;E(#?) :Pi3фd\R|Nn-(+H7gl&{rlyek*{]HZMKS ]hdF\EPL&(k }$:OYfсVF)|i0\H6Rxq']nYyH4j;)&ˑQp]4A"L *z49߁ޯFn9w.8"9F(uɩ<ٳ!Hwe@ I)apD:#([p}kzY{/uෑAVXԁ ٩Y|K/FAMhYˡY?S]s.cӭh/9lS(7OV2qGV]I};@@MaqAߠ?!Jgx@֛ )%qAjΛtn3{%JB#l XK׵ %5m BH&9J ڶgm3*sfvBM]7uUn- .̈́bӤB-S+~De !@WdYvuPEFuU 1F1|_2!H 8CFWK #pnDʪ,.lps^{df-5>x]d,IJ* Jڗh8i~]6b0c<'dˇP@lPu*6p=_j={DTmk-R:xssMp$Z: E7GKVV#g3/*|@ @ A \{wӽ+/tj*eMdҏxZKN*Fۙ`#[W%-Ɠ'yz:Fdʐ14tx6vekat@5 @ъA % (7 I1c O˂i*Hpbd|p(IhiG[Rpxn(CbmA] M/>Tg(%kJqK绕?SC eJ mR2Mن]QL㙟L'd"SVݒV(KuP,6ttP{-!,˗1 Em%F2<]bF&:Xv%crp1 ԂD rg]pƆʮ>Pk "J/!]mHdpPBmɳ'<~bhxݼlk_o~mؾx'oEu>PL&YEմTƄ=]ẃ YG"syЯ.,OU\dư0B3j%BJL68!-QBӹ_bkֈV1MS-xQWd9$9\-lD*gS^J(6MLh\87g bztIUԽnazHOxO&r:\4x#PUIr8C6-cu]4=uͯ+)j]6tT>**C3E2jEY7 \gϨɀ&񔫒w?a,5NllM 6{h'Vu]3ݚp> ) d n '+ibm<-9-bw|GR_װD&{wEH2sp$P$[RIֵcA7) ha|Opm` OtL2#mEs-qڟc3kN1~)2@8бntfc??yO(PU ;ۛvHp}#D26ޜi|i|ĉq2C,KvUd΁،Q:pbj(gydZ&Q=Б IGx6bO-a5 д?'&O,mܸNHg6PÚ\iWFEtᚓɄcP~Ew'ΡPB2"D@O,Cygh|$Ȏ*&I"³h=1 kj&yt)Vdm+Б)NIvj#B_y'ͰuG1R4_.C=``c|J0F,Y> 9fb>hR0; phUrY3ε,|w(bݛ7H ~ rhcL$F˘z)|GLwD:O x?w!H7)Dh5mD( mh!3QJu, Q#}%Ba]tBs6A原 ]}q!LIUau̲]^2 @!sFzBL?:0Y7G)4A.stDXq/HeUrt:f8qxt ;[8mQ2a V \"DTB@HghIb/5: @\wSx]Byl},Nrd͑Ľ.?_j|4~ #&-׸oog3Rv6&6Z(%Y82' <ۄ=oX63֮:9f2vK ɱ%.^ Tf`Sy}4ߢԳR5-5|o?'ؾIe9?A_<&hƏn:XllmsV Fڪ/,f #P %I?[7IR1=/gL8)D}uc&c.T3S (C2cRM4`'k(Ru^,elB邰"y+_驋#8Q;.%ŋs;C;%Jڮw$[T_?yOWtD1Hl[~@`x~4uFR53v&lRA7vmIX5 }*HCK4[Et+Iu ՌL'dWJA14cQakD]_=zqy}:Wepa0(:װ Qp#fv : C=;J8{GOl螶9f(3W^sgCp<>OopC=l7i@4D-BB`,r}ǽ;9vk$ܻsUԸV`х8Y>~ofgkUv/>"ݿxv-C΂ /5r!^,m66uT \߸i,ij#z ;%S {VmG >."oPFdpgd969ѩ@0I7p!z܃i/qnUQےZfpB;֒@4:ZL/lIiƲ]Q5 4@ A-BCe+)%IB!eDz994DZglldƩ $]]g IDAT1i`O嗿2N.= wɏ-Kfn>x*WRU%7oEuV-)R"_ !] u )-+0kg}Ũ^[9۳l$6 'Ԯ2elP6tiOY+w|>[Yڕey-=?WЭ \밍e&7|ÇG|2wR!>#煢t+eccĺ[r>x)*}ɕ6(z‰saZ%O;5/kW3MQGEMD K͒oQv &\9'SZh\l^ZvWpj[ߛ:PdM>tH,]1I̡q=ϡo^ hH|~o޻#G7yE8wNTO͚sʯZJIFÂ"Oyxloo>lC\ q {_s|Yd*e)myb X Bo 1/(tFq R ̈L0X<$b`tg[½W(P3g"P*aV&pR IX+~%`ެlL'(!)??eݙ羳5_#i,8r لD% m6H#\((rop- mu u)8 >(TQN nvq`Xv+:bEe '᠅1M=@*x2)T`RĄ&҂^hDaFK} JV@*Gq-ɴ#q-m]#d +D _KM%ft! 9}C X-|ޡ$Qэy;$w&CI?Ï$Iſ?~l`> l6׹;BZш`,1r&7iN1aY%|.@]:c#D v7_Ϗ~6j~K‡!f?@u, &@^Ck#:H%mm-hB-&<~Ւ`pHi v̛&Xvѕ !!~e5; Fiγ!G1vi\M*[Q]^~*%wfM6hZs u|QrV6{{ ?;`=qzՐTd@H8X[ q"ğh+w̚#%oa4&.9x^LNg#j3gK1Ղܫ_G֧oA=5 Wȕ-mC40@ #?ud{0Ng*R⹹0 -ndLjrU02cRG}At{|Ю[4|R\Qg3Rwj{_쑤d@Yڦ( NX=_qMqW[F1:Ѽ/̯,f ݖsMѹbXD=uuRBѺ'B:Elli}Aݧ">b~B"noAp]K={έ7JCס'4Ă5bo~p)QB06,O X{O*s9G ;lЧDtV5g;mt2 9Ma=lgxO:޾E^WԹOy|>H dsR[{GⅩPt S6d&"Dz0Y4+V9߽ 3JbX{댲)F&J0Rc/H[JU~8*DI 535k2eH# f K*DrUnap }'ҟW kEB'H D'o|IJ['XIɢGZPbbdʰvk1ˮd+flƔys 96Idѭ狡dnnOYxkoEJomH(?<&twB$yo[r<y"0Ɣᐶv|c5oj'z(+j'}_?⭷1F/ %y ~49V8Y-B DG\H.WAXM}Rg?%i=m md4Qvkj0ld.ߕΫDk!4d/yG4\I9a "jzrfah9XRJx`F^iP'?8_4BSlH p56#Ӗ["!A[ikV!#=G!kPWT)ϳHk_]^(IӴFhh ̀Dj|ifg'+a̋^yZq{4z&BRHnwh]ڮwCNhӅO@Q}A}@l]f[S(c J );6dY`R6ǏyOތQûъGG s W[1go_ъ%DtUlSE8@5ҫ39K[Zb1Sꧯ+W4lÝjIZિeC4~@7rxHeovk)t /$۷Ƒ*8J(nA$O&qz-~3ID8Ÿ/2"k *MD$.u0ЎdbH-TDieI~Sz8xJ!{/?}|'!/Gq H&&0뻬ي,KnD 2-5w.ˌNȄt+ˣ=!H{PBqkp;}J.D5?#dۈK&s?A׿!lw-B1›ă"Ϲ!?{@lЮ?n+蝰)HUF*S*^Ob;wV[q帕 (/:V4FhձWYLS Pܾ=a0Ԉ Zd!ڮz򀧫=ZadQ 5 5-+wgCKM3a2~ż^0J@8~86F (Iݙ$RS8f^2N6{>un"erhuMeԮaƣuUe'E RSx(@nYԿ uh~ARDtAˉ}mJW:\QI%1x"uyzO!Ev=dխz-sEF+)ʢVUxR>BHISƍ4`}A!lJD\P&gf(Bk0hH7(6X uw񒮵 61HOsק\:弦> O?Ow17$< l;7_'^۶ @)N<&u&"\x6? EH^)pya0N MBmK0H )?+v mm_5>:A jƼQ@, m22oAMYFKSo_,:P K~&UW9uFHh֚G5)(Ҹeu6ɈtږuŢ[Di-VIՈDD`4ZESζf)I)EYa-VŽ<*ڮ_Rx(tQRe`e/;.Z}n |p/PRF#^yD MRfl2ЂYywMxcY'`qV 6ZEY7l*lL ͈E7g{\ i%XK67<-Yhdm_ps:ٹژs# 7<ՌO㊴H0FSlg `xc_="ÔxC|cI"PB1I6vq{He/75z9l|X5ĤeC@})׮]c]>Y1B{y82`5@H7>v ҭ9nfmye[^+φWQoUa@"!z@Rv9nAc+לTgL' [ X'9JHfHjfq4kHC$R Yx{D1*#HyzZbom1;y7Ir'x &MsSvNqME=hVc[1{Δ4IQ^T%]1f m4eU2;ɧrp{7yキG ?97!#5uvYL:|/+ E^Ҵ^(9!hB Py#%WTEdX}~F(61JPxxޥ"(,MؖTm`d/_k{ß^"NKyO~fqdVGe?U$ʘ$#Fi2K*2 9uW#TEzz,JJ ?`m. B($h|s:=P)@Ex24 hLzP Թb8<+v-:FsBRnkp:4#Z_Ӻεu)VlO Zl?}к?Z1% 73i]qsȪE±_?{BR+_Y3݂e 7TUӮE% Rt%藄D0w>a:|'4t!f+?yʛAH&rmZ崾~o*N(Pn@]Nz;]S;I*l+6N8F, /k`r:xR:\lAVM0lm)HٹY5)GT]uL$9`<(iJ^XRʐ2T]ò]1g A\MVK$*봝HTFOB8͒KUXw!۠ >Ftpr]p=]wlj"R8h(HtBf q]A!ʧNOwLdq=y<ԤJ,|ʕ@@Kqq (6MWzJ( c漵F({\g !{8pA6NQFQ-kV$!6oOEM%tmGUt\T;cI$.H-9z~HfJ$y}n%x!7ܸ˨#ѧp.?_"[:™HHR^YO+l5<hAZYv- LSrH\dsCnJ_@)Xy}"/.r)6Xoɤ&Ĝ ; >nH0 Ş@5{;v͢[Il@ |fO@oal|0Y#$OĩfD@1c4ctH#IlM-?COWi ]c!ud4`$)kb&;׷26cxDŽ)-t<T%+]z.t=\4^Cgҥҩ=lTJl{~jF%d&Ǩ"55ξֽF1% =[(qp!:yM2uS ox-|f"BLUvgX3w̪[^iT~YH-0v)6 kAs`ȝ,MN,}ﯿZNNoG|HknN?CW;ݔN*!qmM!Npz?##Ƶ HP'h<]1_؜ / -n~:ҝaEUFHh\ͺ[1kOuw+[G| :IukdjM"CB v ?!ޏ ?Haksr]駟sM6Aԩݒ|Ys549h2H!R#v ٞW>`rp-4Jp2f/Ȥ+O5YSy1FG}I0`ݔ?h۷a?_DAo #k,ҫlid]?. U0V-,&ORX@e% ֳa> HًxTxۧ8e ?6N[E?_"Ujl\ǬZP(Q`TBnGɄ@ɺ}>(ȵHIqD;S@Ps!6$Fhis̻aGM.x$7(tk}u![ђС}.w_8SrQV[$2cMxi:5-@!brtbcƺ׎rPZaRCLԚ\@m:\݁D|fB XIO>D}+b`FL}Vk:z`)k74~S7q/9<z9u ԫ9rݻ<!PY;#)[x[K](. +Ќ(DR*0{Z di),3]I½*H"98fWyBV񔧔E* XWxB T*nFAThy,n8 ZQ8Uu>Jt⋏,wχOg9亗l]0.FԾaV^u"R3#FfHj՚y|ϳRkR]@b ѐC,!K/<:1ogU(0;"J+E;90l\-p+HNZtuc''QiW0x]loŗOR~ü9~@s|/"Ϙnsˣ'ϸ6aI[ZG>M"R~2${'ɮwZk7 @ADYecχ/px <14F$boѵzù]U] $ 7ͻsY8~qg"нh\J%oncdj)Hr A{ԅs82ٚilL`:fO3Xښ/ 6LVDIEry͊BH!)t ωDTc7t47\'yonS-̅zM(̧S\\ Vp*U)BY _ 1X$qĈċ˩䱴_䃧E_ٕMkE@rѺ{~H41M&K&Py;C LJ% Zf4eJjC#ɄT TS@06srUa5B UIdb%/d*Kz4s[:gt8ݶ< ˳O1Z U]].|9EMߛ$tmKd*L2fR9 %ň[o}”eC?"OuI꽻@8B !Z-\dq<>J r-9"ِ,KB%9tWr&O'SldmW}0 _p6HeLJfٌ2!3'F=m!}l25?;tZI,HBe"5""+@x'ַ:d|@Rd*g:zi1"^RңcOC"ic4HI i #}oC8.^c٭!nSrf*qXMYg허 +[ Zpm^l=J XgG3xa-`+)(-G>(hBR !BL .h|\61SPz6vsW{2G.Xrƅ Nv1KD E QPttf~ځK0C v%<%޶PbcSaFHMɫLVybuGa)Fd4?}+QшMbWH?0۶G@RFjfr[ A4 g͗;TE*|vi=.eA}$-45S*eLIUb>1!V tQJA N %{bA[wJ%!(tb/K*bB _z|"@VpOJh Ċgu: Zy H4Ev9=#?GFQg|/#:q+Rg{FfIq&Cdc(D +Z23|6b!/]IY<~FwGgO 105tvηb||hZѭCZC-5HIL Fퟍ|H/|:<8;/zD>9Aq "oޙTZjlC*!Gxб+Vj/MM~:'x)E|WJ*fL#P`ȉk6('â:4݆Y&C頚w^v_w)!#];K+zYuqyJFih6 a7vGtg J%i`(]/VD!9#[|}F'2(m&,)BJOuW{AXB bbJH`#+BXTPU& ${z^հNBNvT,pw{sŋAta˦_Ӻy>cUg`"W#5Fjll% =mٺ-o>u J(412I{Wy??u Nsb|XPM+w\>d~oNy\QLKeh-3Q6I9&/~4}u[ѹ&0?)>x/u_{{ azv#OtmLo]dIrEJ&C0`Mr'ճA4HIQlpѳa+#rGs lWkgg%?>I=I6Aƌ\Ut^R uv3'"SD5\䎘 >7vCAa>'*PP< :J@rU]'[WKIf*|Em7cbN0@! P4wĐR1bnM* ϕϸä9~REwNɻvh! [JuݻV E&K2apڹYvo\K`.W%1\s=ȳ,PFB@hzM,ZbcOrE\{t4xPjE؀}Sw2"J?tx; ?H0[ۢ!"^ire" clpZ'FnF㚑{d[C#}bU“vC[o8#b%fFO)dDFOG4|߾HeXXˌY EGYW:%dE"yR/eUd)tE҄}f`%'g/yv\ -w2)l9vMlK;k|}'Jj 5go'ĆB2{>LRH)ի X5sZܔ`m݆]1c$όd^" X fD6m(f"]"@SKVNXYZ9<]ޥ"!%Rkq)KE6/sa>gMBUiѼ 1c@GrP`[A +^$ӉaI1c\t25m}򢠵[j >t\OLű %JOwh)1Rr hi횈!~l9%/3׹8llxS"_2~X%̐񌃷"H-9898Yu83N $lZc<* ܬ?)'k?3hBǵkKz%1L3ExT;*-"Q-pFrT*@oO|8(pوSOQ8RX.xFh4Y 9PyRJ JlR} d =MsAD)[+?\h^iC@P sdឋzE,lhmǣO8_zf#TUZ MǽbN3 EI`ho.`Ih#d`U!T81F("40!$hѣa)lgO<|p/1S{@3F0MX  !.z*]cC*Eζe:ϦO)R NW_ISD`'#Wh!PWT-R]%[ G∽#}woMA$K7 eaDR@H{&ٌ*dR@Y@# |ދa'eG7@ʶ멻w2Ÿ,PZ2aʡ;fm7Hk It bU# ѷu,!&㡺 BFeNQ==~Dャ}bֆh󈷦o]5~,ftL)( =_VbggY* [IuV)Ss;Ҙbv;]'LJ|ɧ8S셤K1p`8,(tIj4t1PȜGB ymvZF6kF'#q~)0?";[XRL?|.Hem\KvGb}Tޥe;>N ?ATfĪu+ 헴|p'@0ɦtq4gK ،8ʏq1(UU#I4LPed$чOi|W,ÉnӃ|H.&9H]Ea"pdUbIو%{Z%/89=%O7ցlm7,%7|R\T&'}ۣ2Ei26~V{!Q%5Q:&+T̙`\r)!R>Hn*]_/ųCZWlӒY5ŨhmeX}!z Xz61yu|IȩTE=4X =/ۻ{Fʮ>xXbd&!Ʉ=]S`Y+&D,.&A~Hm/.dxF =Fk&jA5W˶Ԯ[xgi ,P(l8c<% g?L7=ğB5fPyӇ$pK*8o7p!-kmzjY3X ,&(B"*;JR{D^)D h\8DhPRa4 P烬'9,,4Q:0=qى)!ca$ah m1*in:|o9zms5Wl{Iben֓8d u:RV$;g%;IXZ6Jh'GSۆk *btL`&t@P,E "J+Mkl0YHJ>uȨ̐?^$02(%~1bq }p "yCb 12#C~x~4|_^OOϷyU !92acצ_V_ LNV*N&٘d}s\I}X]뜗v_rU0dt w`b\hMrbxȕ1gկBQqH5~]]"LE 'L#r:6cfGT%%ʳ[.3"|ͪ_ˌ>B|슏7kGߌ E Rί1##C9dĄF~?CcnvcRn2%u=gc~<V c|oWǴ;vyb&pҸR2K||mB)]ۮ0B,lS`sr.t ~O(tdH!)#b۞l܆F蘱 *٧_#+3lh\ =[fto9%>s+XGFgB1RGλezILP덄V8FGO&5a!^XI5 ɴbh1"`c{ 4*%`K3=F$FX>\t^4'I}u=d <=EUa@%u-g=~FdzW<ӓ1(糍c'0=)4RbH [4XٚnM&3EEm}G9%6ɼuju"c9Jj} Gy%q6MA#I_.e\8u+6kn>zسcC$d򻇎e{{;QuU1`_,~A?$"c-ghq3M[E!TcOFA~ lZh&z4%3=G\#]4؂?ck\v$GnWg !]l%]lǹk&z0$42ӆ=c=# %MFn?=~T;S3T[W1e_9Tpwm,K>>5:Ę|UfJ0wxit$:*Ɠ#֛ Ф{=(PJQ*EvCؒIcZHx%2%=@oZ]QFT%[ .@ u. a \{?÷^ϑH& ᭖XBj9"r۠u@l/TpE#Q{UmhZsZLN1};*!}+[o觼njw8ߔke3B |Q?&ÖBbd۸f_RLIg&:,{.Pn p&sU]r| \tЧ\ IWlbu-Nsѧ:W9=r]WdVj|vL9l5UL&3Fy#Cy]CŭQj.s%M0J}Tޱhmx𓟼t2f4>D ~^>D:=[۰LѵF书k|ebhQ:2 4p@) SOG$(QBȗ[q$p-wa-Q%E!R1BIrqV_Au5aL5':~`ϴA O6{0J H4Ӹ=fr.mdKoB2e)\EW8RrE kǀ Zş}@n'!ra._Dc Q\p} _Gb-$B!DJ52|Q9~-Dn>tt]I>:jb14cOZjJ=29U^4dPFMgI{7񩓒h2-4/4i'R!#EZ%F0g,Eq$&/f\pq~IYdt~ 6+=~@8y@pOG̋X@Gz6dE&KZ ґKAi<D@@N;@@@JW j+b kZ5Q+ֽ 8oN)F :uJRR):詐TzXw`dk $5 w-}K7a ǥI`Czu@*n+C丢:,l.h| c|iZB;X# L tg ֱ$l 4M2{9Y:-?w,m#H<*[@``jBUL)}I.eeQvi%DO|]ς$ ~kaXty[Fq6e8u&?P~100wګ*B~ KqEkDk)hzAgb48.iC!$ U*Ȩ/-s)z\ƆBE! W'E D%$5M\_L |Q>5f3}buciϝH[6va~k= [i7=e9AC!j. Rx8xe!x1!>f&޻|䌦nxD#3!7'P뉞2(uE☵]]&R {_QG YgՍH M.sF:l֗Jpե]xv[.=y!".R~GvHr8lbd8T+}̪)c=&7r%외s{ bbRN! bX2dBsoW(!N8;dO9= .~ /ǯ48غ,~E1x J]1#N3i8* 1u[ ]05xH<㘵<+IIqavm4x%iJu5[v5;H r,,>}E!(l[r)1WPGUΧwzҔt ezsFYeJrt6tбڒ9g9YDϮ}6 I6z-oppA 9o-%D#z Pds'Y1W4+^ݗݤ{w! s*I%F$"yE,ĤZ1tZ.ڳ49 Vh-F_:bY%kzOA\ ~:Og:1;5,s)[]ZTr*1ʴ׃ ixr϶<ʏغ0h%@JNSj[b{)UA;HQ}sH*D`%*qѱ}n/z7w;Ȫ~reЀ0FѸ96.Ďqfڐg =RI" HEFB߱j!KÑQLcUaɫ@!q@ 7?Ru LH(-FAYjxN&eT8-21~"E(c'O.Pٸt`c=54.bKз ! ( >FX$32Xn1҄Ofc T4kkXw,m:xFF L U[S|  ^Q &3dѲ06azJRiR:ߠ/#?c㘦WKEjFd:3LןíCKؔ:M;731m<0DqޢF2sBȔ|u}qE9phQam)TAr3O[96v@3m UbCO[RyqbO.1gK ^`BR=r!9GE2 Xu[vMQ[Y.:n_1\ Ȍ_D<607iH̾8W{#abyUD zu(1ȇʠw [?@P ^+df ÐOHܵ@$//ЃO#Qad#RSz̟nzx2e+EOsU!G!Σt:jD"d$ 1">oQ~w?;7\[g28!Eyv@&ygR LD ahCu$Y6gf,24db c-4KTq5v4Y6^v-I&z,SEw&|_ |e$T.:xKs>"a o.Zc 6d-S)B`woG.XrR鷌to0|df_l/xeIldēƲR"TN<1@>ˌNX&ٜ7,sBtkm7:)IR`dN!3fZF!B)ew?\_LT 6=L6&B*A&ƀ R>]܍-H~3xzH |`^ :c3nŁE'26Z₽5&X˥AHlv?GDhm{PJCOF]5%sda4I- @Ka9!zGrL$rVCiQ&t 4U)jʃ1`FB sỿK|{{+&Sñt4^8D"Jyj7IHU;]DLt2e[4\>my|DIȤuV <(5w8Ϣ t >( QW`Ć[ W:DN{*Cʊ϶6G)}(#WE@DE璍@ $@㆐S=M,Q;6Ac}Q`r<(NBLAқR: |TFP(&yhzB*]u=b ѓˌҗl햕])GH|[>#="oMh74}AcW"dmIRBDw,ַlkQ)[jqK`]_b4fۯ*#XYQ_22ۇn,b/y"ka/ϰPBv墣v|idT yti|4?0\kfdbMAї=)ηQ,԰0 )~ MϠ|vj/}v$/G >ʩ"hfGSZeBfYt'uDG$Ktx9zG!bC@^NJ"x"QBp 5޷{ď{o>|x_?c)sTK̓{az^vQW/U](iҘ1EPϱ*B?=O?bl~{#~'?@0ʦ$%*&~2ANI,Ԯ% @JUÁu @ &mlj8Ёh(cbDӀO4)Ey13I>`{ -JTH , Y`\s d!R#7\97o#pz["X~8"ze³#RF4apGn!BbĔ%˯Axnkv#Nɸy_xͰi2S9J si#GƘİEdl J֧9^2NVA:whPI$߸|Ct#wGQ|^!٥s"#%s m0Bٝr6 1pu~zzT_}q|܊[0#vk7* . "S/ R2d ضyIn]_R#.:SbtnL/K,ľO fL0oQQ'1 acdٝq5JJH9>zJ]2}&fh؜oH ͦi`I)|1!PU*Y9Oz%A %Fl1!礫!Ҍ vq-bAi# Fe)+w*4Ad*g'vy3a2D2󞥝QJ&F2`F}"r$m4{\Om;,Jd eH%Ϳ㺀/1FZ_?aC !o?fZñQ;D~cQX 1< {hp1vk`2`Q] EEC%d+ 7o}8yD觘7&ٟ>gSOxש2mC zcH{oR! =Yhݚ/HҸʹSJ1wF8A `$C4ڭx% 8'67v1ILKuhxbѯ݊.txc&$SW޵R]o&(Tnv@$rJ[%~C~CQ_"w{Pbf.Psz%svg/$ϋYq%?O;־ƞ;]Vw9U#w'>{a<tP:%w^LR[)LwW҆x!d"SgC*ۆHاwIPϏfS?3?s?8\?$FGޜEFeDW#ƿv+5#1H:itiʃKz{ctDe"[#˞Ie2dzbJg;~|~'4vUFjle IDAT՛Ꜻ/Et59X).0rLXď;871FwIH GKu Dyέ NfL~r4]J~^q aSRH"kݚIQwB/%l7J(r!Q,dtD Gw~\)w!8BD p R ~ן >'`ofw?f2{}B^d}zH{{o#s``%KrYjK! GD\HGc$RUtHMr;oY*6UL'>^Z>_|L@iECk愠iřܣJ CxmMf4BP7Ȼ3b{?r 6gi);Yʋ#}N$9lZhcGTvkl}-u*8>#\%?HyXzZuUtdQ"γef)v5V@ t&SJ|w-;AqRoQ(M?RH2mAJ%Ή>8I?T\9S.Rsc\hy6(!Elu#{8hToK;yaf\'cs>2WJŝgTJ~oL?'} fޱ#ҺXdDZ;ܻ9O > fqʝ;gϿ~?IHz`O{uMj4EpkE"1zVܕ1һ*l\fݤgvI>C ּ0VRmEvFz:mO_yԮKUׁxzDed܂//N/-o?|u)A^>^?17߽/)2%l_xd7οm&1>zOTň(|ktM˨T h9Ic r@ʴDqf؂ {QDkND[Ci% 铴 'ZEP$lqyCI^#&0nÄ"^%(fD"n/.o~'Q*FSE#ޓ o3bCJDK, wv#63ehg5(t`b <}%ՂE_Q8K-`9kKDQC׌H!rlG%w8`و̊TP0Eԋ"rBI:k~YHL%#L01Wc?Yvi^~,Fw2?x^}!h!(_'zsܝGxt/R$i)']䰉%2)1J+Eaא._/>zNZWvڮoM<zI6%ahCyW7;Gaf}zZ,b>lb=n6FfR2n:?B(1"  YyGO/6ޑHj2% (Lr =Nn&檬kFxB$0'#mݡbO'W9>Z&zJfy - qF~̙Kta$KJC ~ӕhߝP"J=b/<7?}ٿ:}BtmR$/W4Ag;ATӊ64v', ܵtKu,]ޡPB ]RK-r1ڜ-'SM["{N]N {-j5R6,={൑2)Y{C.qZT3N|6tu7-J@Z Z(~@/8?+he(TAzVF GokNC|t̲T 10w(՘"AQǩvMmRJ g9g/ sUP6XV{EGGKRچ2Ь%s""TfL%M;&u6TlO]iQ% o9ugTnqԮ-XІEoX@dF(QŇS}4nRE3O UI$i(^yYYn^?f7.Ava';8^=rQRFKE%"xc4C^EIN^6!,b;,%JGy6"3I;|ks~w-ؐ,d;4Fe1aQT\hTǃ+ =n)'NpG!񈭤>ء%o PWoVN *䯡>$sҰ} t* b׌@`HT<ϸu]ӏ>z&3YCT7 #Fx3iw,%q5mhYPxJtH3>+BǎQ(S ^q@jRa<5=*p 7&WE.I C{)6sw%/Ⴃuvh1ܴ쀛UΫc\siw'lC o[Mɕw,Q$Fjݯ8zXOWDNcNSSN^&rQ࠙\ō/(Ե lOhĴ8o4Zs*15nE:ꀙ)d%׉d44 Ec@گmҟmC+2܊J9)Ġ;yq`'v4DRW[ҝlte1c Lg# d ]JͪA0ڛRFէ fpxox2 P䣜t3ut2%27޺atB^4놳|޳kB^r{Z8Ղ[&+-Q\`NII)IxA f>\ \n\ ? r8*Dyl#H!\3I$' qs{L"h~xl֊L d%]q{ȲO@<F'Ѭ=ADdBz H`%fce4b4GGX]=~K)wG(ԋجOo9cCowpcDyd><ݐnʯ>tHgȬBgW6tE Iw{s)+Sʅ:CL+u9:U.!p"J:htJkZbDA*iW Ȍ'@JHrd&,/C =wTVv -"T c"Of%F!BWIw7m~ oJ"b(`f/&B'Õ]Q_&_|v6ŞE>L\>V#̾Xc}LXg+F">$A` Cz"x2J 6QbcqVS`[4V+Cw!}s?GG?2Ϟد$P26fAx:$+ϑHvU1np>[6Kz]b'ئ5}ুBJE=cC@06TN F2Stg.&Twz!Z #.KLIyO_ kbD+@2-(GnܼM-La] WKb (5}+%Zx^49*|؈mwDjiINǒLKW[x[|8a `PB$ӒbTLY] J."4=Qc+=~fh2$wdC?{_HZcW$G7Lޱk}M:&fi>aG Q]l"O )$rm;h]qw62.f*Yuq8Ĭ|{ Z}D5~Bi#Sݚy?vsAĺI<_sbC7bڭY]J׼C RH|p̄JUfiZiQrAo ."+A\rӡd,!9[к-5Wj> r|!K;llY!(t9ÅtW|f& CĀ Z%ͪ n[d2JhZbz+W[NQJڈ#Q?e5B {kY,VF [6AYYzϣ_gfx+&Ldf\k!xλ~B8t7*bͽ5;d2@)$Yf0F>D<9Wflڴuc;s c&"CsUD5AYH$/3kbލ ,\>>%B%l,F݈BWFu{:BLbں+'v2T" X2=|DLCY:18&R F: SnIk#( VL0}C($n_ 6݊Q1SSIڥB(-^`]Ħi}ůkW݉₣ c3b'Sc'3OÄݴ!^' r_Ci\CG/v_7St· gdvItN'?}HW,ݚ]2tfDH % b\r#ܰ5pL̲J]4}W9Xr߶cc܂Cn `h{(1#J$\"ZyJLFz=}h1(2=f|\E@QJbKcP"cҹ߭\ùd:C$#?Kn yE_6%?']bPF" xbn|r=dl&T"HmYϨLm=v-m@H; y< BKr))6QC)@JE !1+ww@d_|AQ.o㋇/7`o3hǘmvq.4Pxш9hϤ*!`}MmW>Q1XP1H~0dSk2]78nOUXv͸yD"}Oߠ)v0P" @L_Хy귮߿#)YB9A[¦78?9iZ"-ER\+6Vד^DyjCm{E=%48 mbȈ§-lԬ\&1}mn31 Mm^}MH:Uxc"Ĉv6]#{THm;>1\K:jûY~q NH P8pAJF"]IwM7@_qͼ;[ ɽʌ8'%N4Jx/%K=R 2msqvJ]2fH[B$R'uGx5*| Ln31S|K2Lo8O_(F WSr3q>"' S K^~*S ơ-&D:H2-|-THd;61 ˸D T] )$J*bW&cڐnc7sc@KEWYHjґȪ5wPJʌfYs w߾:®,وAhrNЎJE”eX dd<ɱ'E,3DoQ\1yJIFQ(xE; IDATe>6Ǵ92;I6d (5t=L^ݘ ҼyG:}YKM J"pa؀#6f%JdDpXV [MDȄ&z:/1 c:2+w|SkxQQSlDe "*r;$h^HÅ"DO#V%1c2- =@+\,MQQvD6a , G)K]daY"Iʵ^.xm*nX%g @/vQp9eѕ-LO~OXpѱ엔bbdJpzޜ(ruy݌&C즹sq v*<r㐀z+!2v1*TOF =̇mb! :!oUE1ÊHKkɞάӄĖ 1>`7e%w[P)`'a?a/||Όyٹe;PCq8Zr]Pk}a/xVbiC sݒ>ڝ1 Xe "ТFn{1B2V9BAcɡ{J[F ¯F#4 B^]T `$|IŸI/yڮU!. 1F!e=9M j8,MsN[ATCK ܲ)Zo9SSQG">96~=?g/hzWܦ(,ļs^"+L8*|5mݚ]R*:c^T_ѵלg[荹A~`C* g` vtu.zD3*2ϓiPH֎kD$|uszJ->Z|<@3VU^/3c4_v5eB?x;DO,o.0/1ƿش(tFp T*64 6Dh\`$𗜷^$}8b:FT@" 3[+DȑGe`h5Q"N]]p,e1Zi*]np66mKЌ1ତbP H 0 M.1fOc @" `C[]M0~T1PFH!|*|2E($},ơ' (11}BL);Ph5AgTjBaG1lݭ7\flvS{U2"#Y65H,AX<_댲I..&!VۭL& ZrSS3s 4.KC-dCj1أ#W9E:bօ#>Dz`w&qs ]c;cbRCoKVj2Qw=F)foNϾ Ŵ72}b/hB Eݣ_>$;d|Pb@7 6{"W,O<8iYא3~nbTJc5_1_n2C iI9c8-nM;=$D9PRBKW6ɰ#RC]_l[Nm(!{kۆt˼J엻:-\c8I<#\s'#9pCʞ-x!tvEsVn2\+ !&e +#Oԩ1Pf4 L 5jrQbd> iND"%c"9ήY@)kx?ZWCDQ fi(h{zmY6 II))ϺQ̟rvTd7GKsɴivk__'|0LibTƎ!dk`Fg{||vwN To6bk06;L3uz:J!&1?F:P ٘%}!Rڽb˒a{. 7[ [ UQ"Ff@~4d'1(_71RoNj[!zZj: دޞq _9684ܯb/'W9ZeXN7SZOʱHLf ?E $!S9p(i6{$INFT"Nt!6ϕhlꎮ|=+F.U _ I Ԭ.0~ï\ \Iy&T_%6{]C6i1i?cVBObFJA>‹k".$m˵a, Ss)AR<)THA?- t|TogbIv]b\T=ڭhF #Z) ]T:j}ãPK߅Klg4 Ei# l6c ֟v hS%=b%ڶ4k,=ھdf'̻">zz?b7c#L*o/F7f[szF<0ծGG.Wu-_6CeaLoi|1U_}왚x%6DC@ O-qg!8G%`$s(dI#DOD69nM3Z8D I.tXg'WN6aDu_#Va=\ߛ!_-w=A_Ds#C I!qL>|}iXKbRLFxԊ8$,7!=b>?OB><5v_5r!.(^j{qx !`*b͐Ұ7O@!y,( ĀRA7-ˇ{ѕA"keT&G L*2V)KA$]tfV~oaE IJ43VI:a&mYxJ HI!Ag`(X8my?dmg;LR"t-}8kY!&J3n~丶ŋwoAa8]7{o{Vn78S M[$0%9NWrd|zҳp )٭ ѣc> ~u&QjI3~bhE Qnj0Q.乡kV9ϘL$Z!X~kdkq V'ȌImRaDEe~: m˞ą`=}+ێ,\>Zy@jCVxL"%ZfdD$Ay ED.:Y^d3Gv.%v ?CD^TH8 :oW=^!ňI~{d%Ú79enϸQ䠸oX.}yٿ5JY]R!3xҔ6su`ېu]b+>Eb>?4jf #M{22} }]lhPEZ8faV>j%4JceXw'H_,KA)^i|FfEOqUbCݚE7z~ &^qgtܬJקo Q)&͌E;a\?H(1ARx|b: ذA'߼ )Ʋh:.#09kn]u&g*vft5ڭ3iaN?c.VC~;ĸ 1 QfC`*]PJ\J΢ ϼ1#1Z)rJг _9=Hmz"1l-F;b…s<z!VuJL{ ]:xg.SǶLs6+)nl/iՆY3Lz&IvZL[FnP(SFysX>g$0`KK (A*Ź{ְnid`OmZ"4nӖD21` \ Dk^)zzHKJ5Vȵ@X N:?Ar]QQ 'g&SSEc65!z TAxQMWG-l2뀨un V*HdSv(v?o,l+OQV3d:;\)­b>mAzwl qh8re*PA‚:T }Snx$pGk~x1HF,aμn{m ^/X^F_kGr|OW n񑂕76Z❁-ԴUJscǺڦ% _yZ76kE 15A# F=>G8ܠi#\J'AIVn;Z <5<;W+#aè|E?d?z}y?׽AY4IMpUΞFu 1-;;~Jzj'nk~Go}_w'C+, 5ת W"í1#Pw+fuڠij[c7XFMbi) :AX-WAheR{HH\P;.zB֨BU9&.Pe9.U$N5F\3ure-mh؛5eJٜQV\gMv,ukye:r"QzQ1lZ4$6RB$DTy5|)zٝQ`ϘXN=W0ʆ LZ&?#Ƭ}/>NWOu '?cGI 6Rq v&Sҷ~l$HV|4oz8gޜv*? eX6,ɷ? <ȍ6Gt0ʰS;u =v¼CPD,aaɶc4 |K1Kydark6xb;\D0ڠ\g (Y|]t iɹak0N1C:Iݡ4C(l1N`Z+Weks,t":¨{mMsCU[FV 0c{H47&µ Tf>e ky7}ߦ6VdX&ȺԿ@f.'S9#mh1UhԲn5tg{M<.p%<ȢCi+,GY, C78ş>/M%$ͫӧa~OiKֲu6}ubRqDJE#xj 8[Bi #cTI$N,J/i+$ *M^ 3pXU!da1nH͜sJW 3f[`#F[PPH|%(r4.4|28˸;@$jd'<SZiֳuFntɞȰK?2n4c'4K%g)6}G((G:J~^V 7+p>qbUMا%F5ª4/Sr%pϰʲ J3k[(LVUji *U(wsOGB"TǀJH-Yտ?G]]ޞ扩Bȴei2Kzɺf /T!~T0pu!,p_`iy?؜OL6G<؟kտ<KVE9* ʰQ)9|=hÕe~j`NFYmc{%:TRvLɩk=.xg#l~S3CGc')Z)6?|qTf)tZ1+<8s[G,ۢR؞f.ދKDD"c t1c`Uk9|OC;~s"&9`tD dWD+HNi -J5(5N-TJ >zRl1IqaT{EXCĎ̀KڒWL N?&`+.k,ָ$c9&_X;цI,?\=d1t}Jc& 㻙!33? E;\.Y)niHo0J~;eKtN-r2L K ax?6*af!hc|4aYֲuNTV0?t;FFl r\RE(d'gaٽW9%z㣠.7Urޭ2J3̶9푙p%*22sD67yBr 16 \WsUZ)f# S;)OL*4+˃\d-.GU׸ڥIS4%,EKt1t#ֲ!N]XsBl?qke\<{/kuWpKR#h4ffkc ;{x߲yvH8b:=-E{X:HxRMG=i~ o "0<4!F ٹ|Z3l3(I{fpSZ%?  Az{u,$Xm)Y,(``0c9[krAd /3Z'q &"`{׈~\]hKiJ [bɤ5@.>`[  q*Ie(,e=U/^)glgs u@.xLI%$:e'.VJ) hjE(ASDZ(:fK(ƤtBKRw -J9rwqB>lb"̏ɀn_GxW7~>ȏ'|Mī?:Jc)xNw=B_{G^du/A Ar|L*0 bI Uch Pt[4RND!88 QP:L'25nVZ)y0_Іq3%d^ɨx}WQg,yf>>^2(>,V,Jb2mgYz :)q:c)m#M Q^G8%jYNg ܈i{@6*WPh>ӞUN&&VAqŨOXjPJⶂ>%v/SnJӿQ8>vtIZDM$<4K63hӳ~-)ujpLux"n:U O)(u鰇uKYVaJ6MF.gy&AWR(m +9(=b!2٩xm.>O~yK_XɵKA)&\DF>Jٌ66 {Ez.y|i \1ci'?6dȳH;m7ߋJJ#4k*M} VlV m]#"Q_}ۧm\1v!MSQB/;t XA\[19Ay撚[91fTA=g6U,MuĠq.0lL ]_*T81U8AQz4eP(ra6JCg3(L1!! TixihQCn:,jfFz6ݏ\cG 4ْ5OMĊoW iMK)UUj٪qyz44ĘE$èՑ_]<%1Q5quXpFA`oХe+7׆-G7 Ʃ؀r[ ;ξ 6X]lCa0osGdm* ѶGi AUqYˎ ;Z5E'+,|Ea!jiB:3ɟv j"-6׆6O>4^sOKMIstqd+j2ЪP%2㰱##Mk@0!Ι uQ@7zSچzb15FZ|1)+BIŧMbh1*#E >>eu, aeԼ|0<,W|I[o[z;y{˷w?B~^|z^QoX=G45 RBLzu0Jez趍&3P},Fx_3ig)p iℹrI>ԁ\,>&FRn2'C$Ӣҹ )OL J@$ۣ֓b@ R 㜩*{8K6@ĚELYL{F,M8 P1o+*J Dc0%C*y&r˅ (IRa"7g)QY"4r:Sȶ{4=GpWzRBRyKh]:&F*tRm]ч߅B+%fԝQeHpVAkC3Zioι"ihdDJtcTJ^\,Z:)Xw5Ӹ֠hF'X_{c9;TP uctK鮷iAGMZ=?6S3#-Aۨ=X]гHdܤF%- Q#Ta"8TF B%/5:7n'}rj7" wf=YΌmʕdq%f&KH2:ݷ!&ԡzsf6$DKVGo-y˗}ٗ#ٟx^Ǜ&|}-=A~=濁y\}fF(yG܍Ji>.KzqD9Όx4 F5]w;/NkCf[LS,ÝKqqpkjB+DZ6<XQb}'A\/Z>1v]pײ1:O?Y@OEX#PprJ"..0m@J}-4I^ia֢c (g CMҵEgP/˿McT6b#3PTѳ#S? v$Y <2i#V{zR6a]MAXLkW盅НMj 1 ԡfҎ䓜7  ~A W2&\dP'VedR9FxXN YKM9MlPf}Wr2^Ja`^(e)MAjvsZi"a=fpc&qmDHLcՒ93Yֲ1@ 57IȓlQ%҆Ё+%=;Ġ)mK5]cEPJ)ֲu玆᩹g#u˅Ѩ(=Ղ&=q be؅sd-LҮZ2/J0:)@;k\Cw $ۏ4oXe*Xa|Ek " 2- ځ|v}ʷ (6H]iz.m`Ø|iql=tAp*`Grw>8 +P~9.,m'BP ny0]J6 %1DH&1]CHcR"Nml,Xv0p/$)|`E!1tDI쒿d]ԲiҁNlHcH5Si&HԜ= Vjyv[fsE1%7 ͢+%1pVhVHϫZC,s!@nɴgmƭU)}LJ%&uiKIM o2&F T,  PYpEv|Bd繰khXeyw Ml$E(--)Ig`e (O Blv*JWs}LD 8#g@)hHu -M–Ǥˏ.xuY680 uj$vQU eQȸ$"xX-M ĺ*OHܩ^](ٓGvUj |}?|סb@K$3z ߄Ug~>on>>|x۾|=K~_wW o2ZKw^]'9Q[;<_r" ;EaʷGq!Q㣐; EJ. e7-ӺF1M1vMnc$$}K XA2PVh쒽5ruq`8{̟N+79/>@ԓ&q k 9x㘵zqb@4C;ָxi;ݚL1hc'n.'#7ĞP.ϳJL{<^WCӗd` ,}sƦRySڴ=jĔ` D|bD3K@0%HU>M Zc!V;l%5^K9J`TZ!9c}$FUKe'vd҄3E$ >Z"d#hb{sRi ]03nmԤ@#M URع3 +˕ b$) ]P^nE+Hx\ײ"JjUdKJT~W-1ٯCC PGmz+"FU zhLlQxJKZW1-Kۧ5VZis[C0OI[бNCǽdɾh^N1ngh; H1nK+|S-d~vP@܀Lk֜Dw`Q61 cKUG$S 8Y)I~|bN֞cͲXH`?K8ru5էx>PW\z 3[XnTQaށMV<#F_xj"Bgʔ<,JAfSNY@ P]бEODPĻ)2oT&\YJa P k-{B]shosAGgb>)J*//+%rgT{=tƼzb:M1#A>[?_o703}/gϝݼm_OoG~H?T9MMVs>F'c/zq39+t~|bFl#XgGvδҜoqu$ɏfGF> 4 tJ ' [oQPGK}£WE_lq#~ylߪ!BJsH@ƛ>g"W#a1!ThVW }wDj cJ.k<i2{nmy4c@:]I%µp=mJLct,`j#$)H?Q>k!JsQU#0cvh|JExgƏ1i'Xe*r~aƟOyηy(rSb-A(ܼbf?0[|ꧾiH/&< B{"ZT๧ȸf ,BJ5^@oNڐ''%(u:RI"J2Ӧ`NߎB--*O"-yv3}O=MEPn4ңEϘ6iтh92C,U0\VB/bYI2}Bd2}&qtiDhfԷĦ@ľӹʴRl\(/Li5C={:pS+y ( v?5n;_xAEVyz97HwoRcJASsxvdX5M9*?i,0ҷ}Jn @g31|(dOQ3e'WDW~ȹiB׈ڐWzl1%,YF;aIV;y>Q F*ymcJb%_%l](F%.(z0N ~|G$< u2]4W1 RiB)ͰI>Gc͜ %BARPEQs(<,¢;߶L?zb\| aow}Q”r,H)l?]sG{0ʰxԭk=wvc ҌOnmizKjiEV;-5k DunPkP{W`ô2׸|*Q ϭӨ /a'z/vNbP66l 7SZTMM])iˆD%#fGP#ߌːL8e879jjM7MDƤV,EV3Gm` ThY `ptY؎(G]-դ]ˏX,p %ʯ^%Ư&o`}c /?_|'zR$Κ[KoKЎ[s^8eT6 Gʢ\Gt8ZK9ݮ&6L^mik4ّnudlh\I8Q,dj. IDAT|l)ky?@ԾbN v2{SKBב?HQs3 qClӲFaJv}n89mC6MvuV 9Z~G;X$[eě4Vz_(&yRAml2gnc7v@КBS9L'kv!7k:F3nv(lfGڐBD6M^=mIhH^\j )*Qa6bHAZP޾Ẇ>4eYyi~ ]-9 R.1RVLHKVf54\^%yuEѦz:t0Ba*+ӸӺEдZ%[=LMKdzq)լohjj-Y8&c$XL*N|+n +*S AX3=6:O͟d[/GZ>v|l=YVk JGtE:[!(fqixX/9F VEo/j.Y⋾ ĥRJ)_<*>z[C]4K{jO|W6$%iɪӊ_~sΟ?~7rP_o>@I/HF^CL3ʲU__/⿹xMn9Y᛾{Hf\gBa_s$IX-ӗr(NRXr(ex7RᐯK]__};q DVDwk7h,үb^G1(,-]jЪEgy?rz{샼]?ʵm[ybb#ӄ6rʳ&_[*E=3oFzxklo_sgHAi gZ+f͢JJ;3}_AM_ǥ/?|׼ 1DUt ViL` -#^8Q~=| }7 >ʛ1FX8ki(~٭'Z}[:cie:V[;H:@r 6 a9:4lq__?Ļ_ftUt@}bqCNٕxC_/9G&"^!R>5H[4NJ dc c%G9\WJYG`J I "R\N.vuLPdڭEXF$ELIò\ҳWzLK/nc,c3X]xѧ8È" tT6-dLDR(.QFps v78H4W\?c \W\=w ) fϝ ߸ztF faK_}μko T*amq,،ҫ#lX:=J59TWWop描</.7?{ 9$ƎCq?8nis٥5nt~Sϼ;aaKFl)XS~v,G %Ulߢ JU39>7nK]z0 "6\{OOpJPd[ rXVWEWcUaǞXλfE.|kR(d\)K^!$O6[bK|\&=_vFD'G| "~)Qrc-QT*E2dҥ;+VPUU|)$*8C5eۭ?>[F )${p֒(X_p $ Ǯ'F;7kv|Tzcaۆ !%l|"zX#vE{ik~ \W` tZYr,-4uTtΠl#kGƙd2I, ikE/yRX#0#mVfVb0Q}9v{ͪNVG'ar `K/-RW{dB+^4]n]q%m@x⊶-U~h˔JGƔ'D3qϗ\ K@aS KȸDrL\dgYN#.] n9 eBrɖg%j(-f+6X:Ư[M3.wߙO^gp6q}l6VVsi(5- @bo% (<[RY5O`㧒tnեxUSCl 곍=NX@ŖX$%PR\1OR2é ]hJleײ3C+"TmnI6i;E[UXPb<Bh$=hGb3$94Oߚ+uK %#0(bRdiZSJ }I[P|$|1l0:3ޟ&N,^:@X_LG5'q&θ!u4561v=R^ )4'v?<8Q47pųI7}c_&!_( sLl3[X,].sNCHm|e]oBx#|#]"H&)?';oAtvmǓ^-_eKN 4m쿈yçN>u4662f.8ιL1\1sNߟf~uڅ|n;~nm\yոn|YW沲pOWg-tdT;N.]&c6%Wϖ.gk)z>+kki?%ƌbeLlG ߡ8m;c<Ӄb6Ji>N퉿Z{܃j>l9u N/8Csc3;KYNpz6{qM7b!fya!U9λK/q5jtKТ6,_YaCK;* xw[QGa4ibiӦFk]Ⱕe"*RI6?ac#PYb9K?]̉gEVa r3C8Tz&M> xѿQ(9}]hmmbܸ1,]Fq9?geJFX ,mK&'hon斫/ǟ?B9C}QQ}?=bxfN;L~({5JGG'-bd.b RtIl>ys:::9SW7&ƍ)Wub2-, KROHS(ҭ.Fwygz* 31.nX E8~2CHc~VMr፦&5OPP eQb>c-UB+A2|6 Sle D=S"O\`(ꀆJ$KXI8b&aD`H&Ȑ j"racLX$T,¢M8t)YPAs""6+~λq)n v)-***aIh ;ʉ˲r2D*9_ƅ -Ty @gH;ZИa R'o1rjEgvb=zo}s\x|p!3| œ9Wbͳ|u8 ̾bWμ?1<=CRt*M|SʅOW{3#?ʌ/DԬ+.]xM^.lvdRlI;E#hSV_ٞ7D_!4t!Cl 69v>7l6}wϷydт[ ŮB6dz.z^媙p#SyGucqJ\ \w8_|#k9N&G`#I?:wܙ?{˯(9Cr9`|\eȰ:4\8W$qq9<: 2aIJ]w476e^m\x l9uKm97_ߘ~aUikmm=L3/8DZq,s?PW\1f?Fs_aI$?c pp(C??̩gŋCAupqohjl憻"f\|兼?<RPth %j2u6WY34W^y?WwG`w6;N@C75i ?"^}5vsW.:g&v_gwv}'Yc,l7e -#~$t3e?=%W_N)vL?{/̝;c } ,O L&?緿-3f@J+v5x~3fs#d9ؐ @lʍ]8#O7-/n5-8 blL?=c/c谾pXꓹ$۵?!ȖJY:Bcl @'l u%r/<jmAZƧMZش3dG\*ܵ ɫ r 3RH\钰4HPVb ;vtmtE]j!!= ],¯ep". -,*Pim$m>Džj|>cyTy<A;Zbt(_*1 Ф1 m֟!Vj닾!%$P~ӡJsEh h 6PU/NVMѨD3"|R@M^iZq,$V$ăX)|>N`bu%5Kp,9zEG.GFZhduHHUڡ, |ݽ=1=]m3Ъ!,tVl'U%NJ'Ow+e|г\haf鉮WKJRltdtTnK0 @\ڵ15gv,1#I$$λxçO~ua/J%y+`478 IDATl[bQ#z_,[+W.DX+>*DI 契~-mVA'M#CPq@*xΤRk7PJ³Z ˲K%ƍ"Fn_ۅy˖,1\v-aH] &m>Ǎun=f[qߝgƌ 0a"A`2azw?0zgOd'\sQ1~y5k,d'PE *AŔ߳EoΛ춥.>+(B3)Ӷ@î{{oc˩[2qn܉6֦^Mvm[>vs|>]ZܺsVswrcf?pBM!Sw܊+=۸Ll|9ض-IldhXgӶZ}y~^ؠz;}~/U*i0({&ti+ dr d9&c*k. '` vBC;АW1B Dlrmk裏q-1cƅl<|}]y5P7t3z J+"\EK@DX:{@k|j\Ri1H*|c_u=>p>Ϝ @Ft4gHצqF-hijz*~6o.}oqy2aDDlhH'mʸId1'˙14P ׯ_Xb"hkncQXziv,Yラc>/j?.Z_|E PC)vm7y8XC^LK*7$0Зb„\qe|-}ϽtS\u%GÀI"-dE>?fq>OX޺b Q\z4L6ﮩft:..h~%6GҪUI`b5|YH lhTRTUkF 3 H!I)jj*JΚP)$*xVR\6Lv)1~]>ktHY@ UkFiEhBMx ]&&ő>^ZF"qIUTX%h,4TX@6|v.`)ȃA!Т< Yaz olte7?ҮZ_Y%!ĵ|RB%Ƀd3VkB"FKeژh:LDK Ȓ6nIME443lP&ƠŰl1 cɴ"5N-I'^mcPSJ"{!Edd*Owh͆ ERUUDFu,OE5 =n_hJP\'"P kX/V*gJ H,l(1K`M7eXWς.HHtBN*D2abR7 *}*wV >R.);h.( fS2N⨣3g1|0ƌ+ z-1Ó˟U㦴,#(b ~JKM.#әeРA{?E}r ǒ'Ǟcرc;TX2weI^f&BUlgaC"ܳ|l5eK^+<90<*`1qǝR;0a|ȏBghI)^T2>o/;҉IVlH@l^<#<3| hIuCtb ԒL( Ucy{C{Q1v *"C+bc w}83JnౌҲe՟nVS/>| : u0vz9cԪQۋcƶ%B|qu)vo~;G__Đ!=|ͷ{'|{` C0n۶E2lTN~\6d|66T|Μ+9t!=~7mTn:˟k|Jq`1m78 H~gy_7ۣ_qx?0[VmڶSw7nйw_$x5VL0o(3 "D);~{ %-*4G0 m,Ú楆P?b#\]ƐWr]<;I98bmc \E'=jA%,u[#lӱ!E٘!"ő鍀b MFQ hY[βg>aiS*@FbcLpGWKItRX]\dP12QZsyZtd"PF@_x ݺD_KtlokvRᐲ+ukc3bĈ-l_6ySFH:5H;W2DN~K;|+;2y ,U[Gv- a_g32xXiBqӵa㉽FQ#:ZY: aD" :OA( RD 9S6bm/ $l W~߻K`] H3*A.xK؆ TӅX#D1qrO m< .+֕]wv (Gc e (S%:X!G%جa/i4^wNw*Qߢ˗X|9cƎe&YdI23^z:Dqٺ5 @1SιÏ:azFM|M\Qψ1]Bggg=zG o"ۓO{whl;CJZ>[ lPaW8fѢTW 60&"ȆY@6P5#s-jL>iΐvҼT67B!y/մ-fG (c{o{n|D3CxW"801M+6jo:֤'n/=2{ ;#_4x` k ]^~vrQ|#1n8f^9\άKzj3lO>&U3T䧰 qsUs;~ >[~ۭv߰N;ꫯm+_݉mF&3 ^3ʰq3p%Ϗ.#G2dp~ϓ+r0z-YN}B^zi R?<˖c8[^g4M4Zk>d  ]"Ӟ3Ќ0$QL.k45,z'o:`a!G&"NҀ2zölݞ#˗/gq9r$?]Lg&%%Zi>#x2u jPo</ʨqsB%-r0ķ||РwITV.DD*M0Vʨ !! x2pSeb ʡBPK=[ԐZ@HرVkoC#Y]J}~%I: KЁ"Q:@ lV5aoA'K0窫pcV%5weg{Ϝ\7hU9 P3/(8i" (C^xVLs6خ~l6=N= 1aU=ȃ}]u+9_2b< N?FN)ÒjΟyd|3/1цLN<v}7veN=GeO-l<;g7~p,DKISrų(EMWvf]pUxE9[Pr$D: ?^ȝwC3%,M)$P.<"vsvy2qϹ睍Ss1?䒙P]Sp8ܟK}g}._ck=z%sf{u{a2~=>{i<'繤i8x?aty$>S¶;ldwt3q;5(|n;"ˉǞˆԫsB0m ?}+t~ϭD&p±l(mXF #⌓Φnhvz|=}eǯpլukl[[_X}[ٟvrdd3Y<\1tvfijmM2ĒV* %Fw λc/N=O:n<z+~!w8GR3̴mxpEr饗DC~fy&~y}8{,Cg{+5r%`კxZI~Y :?qN3bFm.ǟ{麟32Cu4y3ϟV`DUO>=<_J.'ϛ̀)N֚Hr\yjW:no!,\fwcCv[ܿ[Nh)A\="5[:Ðy筷aڔL5ևo@3xф4 aYv9i'Xl~@Z$$V|\HSc+':QHc(QlM/^R9']*kVi-3; yr-tc|!a@ ۨ(^$JZ^K6"ŨHBG$4C6 ;M_k.5h]2.ڸE߬s>^1E8y T_ i30QKN! (V6 ֢!J2!P.Ԅ[+ַ|"ʈ_[XXfA`hX fmQQ60Zf뺾Bf,\hдۈt$+/Z[Zyޥ̺fRx8RbL1++pE =A$$-icFZ.vD˯Y Ph+nRZjX q-lf19WxyF(}VͯQmUd# |+i =qE Cq. 3ԚNn GD4?gOZ9:y,a. lvhXJlT a\ jT@зe9nO**b 'p1JTlMARķ|*2ڰd2y\\eYKX\GI&dҰi;"tKw-N4]٢gϬ;V>Q!}gm|eB.*r]I2EA_шJ ϿZY*GܰcT*W)!6PJWK*v0 x_)K1mvҖcvl$ ,d5ST6翺 ٰZ\) l5^RQ>-2С$JEM?BRiאu!¢PO!\_Ǻ2k R 2&X&U$IJP5r#W0M)F2*HQ8%Pu1 K ÷$H鐴𭘝*):v%]]Q*cF :)骅LS DHV֦ (58t'Ms?VI3ɫ|lKig{HaQ"/j9P*$- &][8z[o>bqٺRb^z5!&HGm%0F`)MC>读Vt@gHUJD dM>Ҷ] 9edL/RZ]J/ '(Ϯ/B),Ld%FH)K 6l!mES+cmh:G}~%Aɸ *2dvA1*XH!vסy>Bc(E^@XHZmbMQyW WDS(ᒍ2*_]G RZ"a'tD6ʔI*Z-UOt1Jxo:x:5J66=0^_:(J9F %(45b6%8#(=#T6BXB# -4k޷RH$wI[+GbK_TB/]=mBH iLk<-+%vj t.V)1s]Wb LabfFQ)JX)2\BUbIG3]!ݾ{"2حQPAgA[S`KU<_"hBzׄ@t\ Yk 4Ɣ.C+T CZMD@,+W21U ̂RnA{1ys%^KWo3,phiHJ!BZ زhڢ-Eۀ`oӆdC $,0 ("GWq쥺r[l_ܛUYY]5MFuf{fd܈/y{rX=hv3j5E, <8Z0g䥥<.lM^_RDށEą[vȫ>@D  00Ý^>R ɅboJQ+Ra&ӞQy0}?#|(s5d&1bcDXKM\ >xNnՖ|ksJޑaT-YjꌑsNHh%j C6DBǧ.XV!ڮÇNX%]hhCs9ZhLb FU%Ŗ%J9:j2Ę,7RbZGPC(v=>J^S;ZN񕹇K\*[k!%K@JV !b+( cԡNADł G!( ʒ64xٺ2k|MZ3^}kvd,Y/@iR$p%ݾg/?w~w/QOF2{gN+ôӦJ)>5m[\-B:1B%UT!O> 0JN嗏0_dlUB|Ed*(TH:nFGI&VXvŲ1Abb2Z,V,RzIj]ׁh *y$΃AĈ %?ŎU8G ӅX7"Q}@p8.^5:2&||RV3*P/Cs+NG»yriz E׃iGCrqhI1ҸSC;K;>sO7g,2-S6eҿ$RM> Lf3Й^1dcuA EKvf(~ WYa#dt͙% s79`6Hj\ ж- AIRju:~qD3B|vqu(|D"Z10B }|ZGz=ܒz&vШ`O@&|lmjc%hwK#.tOEdgU Ild[~` !kl>zn}* 9| # > sE2Z+v+M[{'woF;k@iLngV7cJ4ž]BK2g+VQU,)>x-"'cc0 MF5 !ayZaE*8B ̈ޠUqӟ)3WGAyCk4C;$tUz cXr,P  ۡ)!s=ov,Y"MjM%Maɳ _/g V34IidhFx+'O U\gBGD4[&g>TE+nNEtM*eV5*K+X$P%}^-pypyJ!s#2]]am:L{ :#HB?"Q A#ZaUGwUCb(6~B)b -t_ø羐.UC_NVJCG:e)LC^F+M 7\1Ph"כТ.>sC@P*=5jko1+?#v^"}#?55 A+i z^4b&5~u0"t÷@ &HT)ȫCT}D˷qR=qdZcALgݏ[eT(fm]V Qx( Kb<=aQUܾ}>I#1h .6=[оQ^!C *59_%Pi-\{HA(؛~}}Fz̨[2릜G,ť:\mHBt!"`BF~@w`"L_7ۏ0]B!Tś >|DDCCNVq6N:M 3 АqA,yi*@W+nTeu# 3}P1T#$u;=iM+kWF菁`$ sf$'>{}[B:+pgh[ǻG{ͧv'ȷ|錢[΋LgΦx I:wۯ3]tP ,76if E D'HdqQ͎׌1bLbmF)2S/"?7.5Č.763dW094aVXPl܀ ^Gic~\L ̀GGO!bF1.z(!79>~.exDQX6°39E1sFk@I@@~av(y8?Qd*F )WDc |zT DfčBBE$(WSĐ=G@(Ek0<ӆ;**M bF:"xpha#&pB9FJM$&4=xzu%ݫ21(1( hT^')oއPb6'm@H huW؞r5*b kQ\h9g8=Vb-= %{O`Avwc딃־^7"ʽ{̖"}ñ=5 |Zdj#Cx:^~IJz( B D<%$&"M sMQU5A<crcbD2!H 'DzS<-LeXe\3+0 iCFTcH["O=Q LjƦ#::b@QТ|FHTM`d<\GI5O2jNabЧ\$_3/F CbTA KY0i*n 7b8~gsG W3'#UFٸ |/_:<|mDj[w1/Efr2RtVC tJa ynzn&aQPdڦud;-YvˋM DZA}F nF{ @%]gNړv.G0zH"u52̫,sJ,3a+Ol#C3dA 2wsخ[ 9( t ?} BU쇎G# E,o-f4.#79U0T0+A"QW!3t%i.Dx2e7P *uV '_VЁА2;E${$)t$<%%>h>MSXɵF nP@M%T.U* o^cUK$$^X&n[fW,$$j+99EDK:qzo-j6C F2fdXuUF#۶cGy "lnPF0}P# TF^jEGhwh&Ԅ VguđۖL*Ɲ *Z5]h)ur\J,spgf !` C>0 % <ZdckkǿOskVYBe%s.rdUƟVqGL4@ ffmڶb'cN#Ƨ{sau*^SW5ZB;65ᐻ79hbi-;?|ۿIud%j]D8"X3t;9{qIŘ><%+\xrIg8]Tu lY!$Vv]dVlB2o_G喔zĐ-ޞ^d08<|)c5-./$p90yW-[tie?{լt_7o~3r bhbA]LYo;;[Z6fHh YDhp>."c;(^9Zb5&_6+DrYXuW|ݜ7g@҈hald ̀W9{;  x$ jT4łn|'R'N_G @!\ @fOJ5Cx_CYfyOt"r8h"oCb5C2^<8ip}\ώn,1"[0fI 64g0ڪ7Wyŗ[lTG]bR~n3E m8iw Fv̍cXY.阓xrE!08xDuQU ř(ciÎ`.91A9S'E~}|)#Gq{\0DD28\Y8Gun+vT5 n~q,QSt.dbh3%yф$Sr 'D"HTd:_kWn(%);2 B\UԡQ71D1g)B %Ze曌]fuﴪFl8w6 IDAT9#=|>*L|"Đ& fGѼu :}^!іԌgYlnJKq3G-+ mh^bIPɝ 8M3w,[#YNrl rvL(yԾ^_Gm`IMA6Fj&he5V.\ ԾpǑ&tcM23!0w6D^yelۙ*S,\@#lÿS|ۿ_hƯ~o&?[hcһ2fA78[=E4 %fHlOdw+x=" F4Ռ('D XƴvHE'-SWq2? QZW&,C F^q[MVUr~͋lClݙкa1ˆ^$H]r:|}R@">SYɋ@ʋ+/~'߻SKX)\ 2A66}ek<&:WE}ՄI -ƀ)h"ႱLg9DGf!BJ<1*M'^M7:f >~IX/1q|8C.WWHwAisU4.6 螐5 vn--dpaɧӍ&Fz#Ef5e&,YÅ|œ'(PWǼ FJ#߿}תMc\#\ ]r|(J ~+DɣVW`V>bsAZrq[q<">#l)!j^ܭ\k^Y;w7k i̴]Ŵ9bm" >kA\N݈;qA9`s2*QʠmSϘmp)DMcܳ;0"|vɹ@sn #4´ ,@"]XuozYY.rnu5QEϽ]R$뜍ll ߹mݓiWhdž qmur8``ݬ~LF [ܢ웮`3b;,9֖Be R Z16\5+J-x69i K7D@* N=wB >']\}E Spn>rsnL!ش%;Kln|âQf;䠳-/ s&FLD@k__$GMk"܄JƔf41 =Ob|H\&F﯒y[{yoqbo`bFK;$UävH6W:/(?.:?(<hءN g٭%UUTe`D3M Ut6Ŋ v_ڢ, HϾ}i2o,^g&3A,v6O9|<*󏑽/!¿^sx^vI:ZqCvTk/ ՞G4@@cꬣqq]2'G|~WarĮ7T]Lu/wߤp5QeHo]vbp T(#ĮhF&u۠$҇(^ԝClf= !"|wxjހ"*bG*]Ke(| }02GO_~|ˋ={ώ<*GT7no1YG1Qk6X ABfj#QpKQ+bzgƾm șEc.qbÀZ1j {#g`Dn)G6Fz"Fuh"Wam|tsOke{t} }%@kj|(JB鈋PaA^$6S.!ݜ& v[ul1YDi׈.:tr=Eޝfܣ{K%%Źz v=>(3ntj(5H1zQ^HIfr1?LEw /n<HL[\ tc6_r0]`M.m"]7Ed< n7*O;S|L1| ̺k&Id.]d%2I#F jb ,ozw1[xW6o=h_׿s& g?=tü '__җ_a8_*قO7uk /[^g~^ed9᳟ 稪[y\1P%V,l 4> 3Hz~sg 7JڹyH0um]W뺨 G }@uae ÏeS@pu,w?g:uM.SeMhUb`101;XRڪ#+#/#EBi@ce!נּ8uD.(`29ڣ x=t"1ZuhY$ϟ,Ξ_+Vӵ#DLD5-߱{m'ه?$~Ѷo|ssD)QBr¨'lf(KT` =[*l~;1xXZ8N>ɓJk@8>{vƓYC'XE}߄!td6MJ=*Ќ{wcnASq@p(f,⋛X vo˟mLy?jx鲡]vQ˜AJ#"%H fh}J2Vas4 SWdhRA\cǩG_RieFJ-i낡\A (Q9XeڠT$JĈSG ..̀\}q´➁cq TG0tb`Nʶ)g"/rZ<$~afyY74_j7%G2ɐ,k6.1J]]$Lk8ų@Guh"E7 )٨AhᤍTӆ!BF.ckTJZ2c oz=Ha`,KwH F6#mPb)GL -U[!w3hِ\+J]1ΆʒkEmрD&46c~rJdE[)!:6Bd|s*xhC6 &Fn 4쬹&_!g"u$h%XAbDJ KCL "Fü5/w˟|Qs? |O~7_|+/!կ8{_:pb|+ΟpcOɗ˼ /*7n}xu(Ӿ]`,ܜ=t'p 0&vB*h cn b_k SrE{Uy~7.+/cX>{_4ҧWWgo?բ(>bG`G (E MhڠTu>Z%tu4J$uY$plJ)ȰD@­Xo$ "ؔePT* la*"e9=[Ƿ|wHn X.Ȳa0ܫ#/ -(C$E@ nA{,Rn~!&P\sA @WXgQTaq{D++)Q*#'!ZYjІkۥ$E6`EP  -|zlz҈unG ̡9ʈ1u-6K'pF{3~P2R#l1OtCJ ,#t79psgX״!FڪE*3l~$DMhAu@z".l r]04#Fل/iBͲ[y?dQoX|]'DVkBW11kyShqFeʆHI7t{h ^lĬLkׂQ- 7G䓉LQr&bPTGpCJ1Z[f Ec Hc!h,&s9(-֯U*Dr&8C@X9_buh2Dkû煛{Ա3-Lep(4H<7U=Wt V4AŦN4z oS=nN߬Jh=ӯˈE+ ^/D(K&EG/a**؝nILWld[m2=t@]tLG[*A3U/2Мݜ  MSho!(<ѹtO#q *h 4t6b` 8qri.-RN.7v :X,~|>K{8-lnd*#S_{wcQ#p+$[B7Y ,2ȂM94)W>y$tWU W]x꧸s/C|S/w}y>=Nqou|S<>u|>Po&~|1~<>Wq}.nN=ۿ?Džs~OCnRB1dF{SOn߈/w|>p yxt`2OsM/:,hj4.-VUbicԃP$ac]m;_\'LӽӥQ]^ .#^Vc);=& }}ce-NWYKdWQ/!JWQyO='@lnwD[9U ݥo|?o< <2&ei\7+2n**NeZI)-9eiUe76~Yv:QϑN=C)[إթӶn*w|A(엦wcN=CaJ׷NizPhYjʦ5;ΧJӾks,Q KԦq]jgpn$ׂüЖWdBP b:2ݞRĥՔU`ͩL*kcm߄ejSʴmjr2h4n(L̫*+%j c"̹!!Rp2bvljv{͙=rIH|5eDAei؅vuj1@ؖv}Uy r΂9SW*͹*K}sRi LWEY3D #QM~PY;77(QhBnRNsp{k!6ȍ &Ӷ)em̘!gYgUs[c.3w:mTߔZ!e%Ae6o*J64~IHYkڠ2byX/ ,Ӿʴh{l_ұk!zsʡ1Cq$ksƯm2[#x\˶V`sJ9!eD[a-'gqLP8BsyϦnl1e)w*KK}Z U[ R1عǖae:vgo=5%SӌV%5N3Y46RFTFVǶn8%s}fZ;ɐ2!\a" l!ԑ¶H Z+Xl:-R7nai\Vݖ~@ Pv.!.}=CCK Z| Z [I.-L>(;]p.&L]Cw Ȁsm!޵=/vdڃk~r5dNP6 XB 9@>:BcIDATR_?IENDB`070701000000CA000081A40000000000000000000000016641340900072026000000000000000000000000000000000000003400000000gnome-maps-46.11/data/screenshots/maps-pinpoint.pngPNG  IHDR*:? pHYs  sRGBgAMA aIDATxw,Yv *zZ{UF llMbl˥͒44ww8$A h-UUu^=S -|####2#3#".C(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((GvTQEQEQEQh`6TTk N((((nPQs T[nEQEQEQEQY s*L*((((#+\5NIEQEQEQEQ qdˣ ܩ8((((hyE<(EQEQEQEQȡ,⤢((((r84aPTQEQEQEQp/X1SAFEQEQEQEQtJT(((((;s*r q#iFos((((_NnܕN܏NEʝ;'UTEQEQEQEQZa'aǭ>s&Mf7v|EQEQEQEQEi܏6޿"={A*#R6{V ((((J;h$$"Zfmu$mWl@!UTTEQEQEQE9FkEl} N/bZDVJc7((((4c!VC)V"fe+"I((((smLey<'HQEQEQEQEQL\yƍs㸬aiF^$ھ=r?ٮHI k䮬uQy_WRQEQEQEQE+MAV̼L+<:LlT46%'\׾?yEQEQEQEQeo;~hREQڏaŋw3Gko,Y8TbFZϳH*R*BAn*T*(*q(>UAb?gh[嚏;- \P}wrU1fBW~W=(|>OlV*R*(v\q5_QE= F)kyT|+hp]Be;~fy,VzGGG?nJEQK.SRQEQ9㚏k(^YA"'YCX-[ii;bA 7z^4k=i"EQY"( pWW(JghWnQFF.=w o9*kNjoyX(vU((G +r77Zpێ BVEC[9{ TL66A++(mFݔ(rk(GuRI&g TV "%n>^nF.Fy)ufB *#xΪfQEQEQEQEQu@D Wl+ZpXDܔS]jTj:&fb7sa6ډ&m((((( q m}u]B "ZzM˪y~o=وr+[ /}EQI$4==M2S xOO?~\EQEQef)o+六R/`&/N8-YيHܗ"d+Pil|Fܭ6]ݿS0ߌP(Dϟ_|-h[ēt:DDPW5pݻwnݺ%B%97<;FOgwyP΢};J{]z!-,,sJgϞ{kZ+&yK}]?lKĺcngԶ'NP__)h7:uJLoA~G[((J{v||25::JOWEٯ,..ғO>IXNoR'@pﭖSPS5h{vm>?'ݯ }sm/ qo/^^ 7ڵk- K&-gTTր{)_x!"W~:]|~k?-Z|} _hi9'BgΜu ߭*؉Yz,ߗA+b\juy7zgvzvWE9,--իW00̈́J\?Oi@Qp~~^L/a?[-JOl7X&y*ovma%wLāR}Q@zA_qOf"}6ݼySǠBKccc]uY*RwUh&R?yF+M/!*[_ _oLk_ղnV==$6FWvEw+ϡ{O^z-ɷKw7*1KX`H3fNV&;S. ),tPvGG3 #t0{khӑVB|tt HDNtN~H[K/X[ X@~F`]Lu t*J$pd-(e __kj[._QE~3iCɢO~k(Lbz!ϷWxX__wwE cY|_>m7o9*7o}*Vϊ 3nLwdmE8rrx>P N: !Tb@X>݊TF l] r@G h !0BL(/,b_-I*jh1L*T PuWb AK$3٘FooHz4˃$2_+CDMu2NtaFNt*@b/6\olfrWEQZf7QSe r _܂8B%gu3 +V"G<o 14A?&I(qnT]Mj;YvwBp&TKtxr:"_IɌHQo_W^ DH J(B 5q2a}`BV Tu `ADۄ\M"%\} _%aB%&pk&1 N&:v]wi.\PW\LLAX_h3 ["o[ wN7:M.La dl[c(FP, UpZ4H (@?}b5niq2B&ѯV)Ddf7O9*7S$KQ7.@gl\UjJm:"q@" !tB%DBZI(ܝb`a@`f/*n Ph0 BŃNQ˨յt(g Gt:q Kx?:)Զ xpB,r!ujt|qmA9J (!ׂQl>zc{ҝmn ]6ۖX(7doLuI\K s`hBv0aFc[!V)$TbmV5Lc? % TrPr| _jm! '%58^Qn0 `8O00 p2A2$ֆSV%9?萯m+T„; >Ju<plZ_%%:XkUcB 2ܗXOIiD6;Bv_ B'%R3̈́Fzt Lw~GB\G%J4bm"/J8~`:A? e80@hpo椬+9pv#.h3N\sp"!I @L`ͭ\:ecV?Gx uENJ\⶙6w Af"|'Ry@Cۍ9VnFaX'X6&Ӱ F1k֫ީuA:oq+vpwmYq+(T+?}v՝^?(A_^cFQZ.OtQga,o*_'f ;9SrvAB8^p!L?%\2p 1 p %DItHCC3:*p@`M7%ܝ 'grLmTfBVUvm\* x 0b%pnvqGg3nG]n/UAwrA 1%"fB% 9l[l8۱ܔõq0hĵ Bx_Dt`Ej;S\CX/㺂mvvz7ۖj(J`B )\g i\{&#Ei 0ы~oC砱J!Gmf"79s7쀣r'%uWPBD4\O( (G WT:n]EQm ^EQhk>(.t4( *PNJEQE9Zk:*EQvߊ(J[9Z B5((7r((DJEQ bTTEQÅ+TRQE*T*(((((IEQEQEQEQEsTTEQEQEQEQeQRQEQEQEQEQ=GJEQEQEQEQEQ#YL'kZEQEQEQEQe_bG[x$ʕ@JVvSy ?"0(w8e~*N! V-di o$FNTb=G_N$T(!#;"l7Oe4Zd*U%˦2߼C^˦T,[dM&?ozo!۶ir.% jb'Zd{w\s >^Jn-ҢB!//&/v-r÷z<>Gs ӽ^/Nև0s*wpT)KextXf_BNگp4FpDs<+L"(V@duOl,^M@@>Sܟ) sr;it=Co뙱H4w@DCd?I6dTsYkN{m z|ioX]ŗk +̍ĿBN?K3iJ//c?~-,9nyמ)g(clp\J9fxyL(4>Cdž(絨lͱ~ĨxdKyyxfN`|LG2Qo?5dw4lOJLg:dߴM |(g{]m?-PzaF<huJs4?Zi@x!  sfXp6c!BE kBe0"TRU4Ӵă2 23<$ ܛtbJEQ@"} X:__T@ ix[/|T*a*?-^].iKR.?2o 8. |v%Wdgagp,$`^Dz/(v`` =,LB*K+;N}E8Ko`ΔbJTHP'np:$%# (P%iC Froj2{*t,&"fʼ_y9m F: `|irɃ1/}e~Y#IR`a',Q'"<Z*PoPɴEKGs|>k=^7jqYs_{ Ep2#mcitl`j76lM^[n@LS46n q񈍖n'O!Z7PZ\)R8Cn\Yy\rQsKyD` 8Hn揿 ,X!Pq^#%R^8)!`'!~1(.(p0۵oO8)YȉEc4<2B}"Tb1 s;0\:,W`wWig#ǣ!mМ׶_9mp RHMY;E V|;d3O>uv+`*a ʾ~-p:?L&Kr^w]zhrr^J==1;M[x|uEJ/!xtpP3HYq-ܐQ'# bq@I+L2AN0 ZԀ!R!/mb0p~^?4#c gB_b !CIcsizjP|cdxof*EDĂ,v{ y+攢Yq ~&Ҕ<~hB|ߘ0 SZT XtVr?!DG>=|8qr,LVim>KXS8)q`5xU8F$t N:M6؀B>Kq977~>pSbP+2zN4iG!/BE|G![{ry#s"*(±c,g"{ I8!g;. bf2ng#"R"MI6p\m>I0A${Ti/ U G--bKgt[9VQk a^/bD9@psWee2Jۣ7.e9LJZ≿0+, *E7nܠӧOGޥ~H.\=qV^t[*Ag!$Hd4'%G\,2g—y fX9v,|Gd7^s 7%@ a%ؑPHswoh$&qX/,w`WJPnQk$<¤'ODv=1c2, fCA\];HHS6"|V<=GŀI+!Ee*NR xЏA*y&)ha#疘hNUl/GF9Y?2[E4MI巽r^MOnYR0ol`Gq  ]:Bw /KF(382J޾u,6C3|x`oe2,^l;DCT)$ͳH|X 't#7MOO˗رct% VVV^9z̙3tĉ m&-%ʃ,[ D>$Czd>KV F6U@32 8ZXcpUv,%Am:D.*BOf!KhkR9Bܼd 1S ĝ/S=Vw~UH:(y*wRXG[<HPY1Qe#2CO//D|=@/gYѲ Qnt|+ 2|yV2dJzs{P^P pC'?=+I =T2:*#WMJ ̤(9vAgzfnV]gjY\]|ϒ/C]>i2@EbdWu) sK9;R Cŕ/Ց[?DuvqU:E;v l{EciAFIcs 5I־{nI<~\ZZ{L\ַ虧~n߾-n^xA[+TiiEM.JLhrPmg~Jcmiʘ<,)Se˘,,p [m+ 佟"0MmG4L8+,ΉF1y*`ZypTzxl8/+B!e=n>ˀIe<y'JÃ)Z?M11CjU@rJI2V_G踫p!܁ Q|&Y8E2` ݷe|h`er)b`4sloS<^arg&J$  8EĽ(䥳C4Y-'Ký48H(br@YlhDLStD%2e^MS(ʲ>RFBXL b%Ca17+9$ԍ"O{@%DrMGԳ*p߂G:JLAlX %mqqx0kOP Cqp(G)s&ZtQJ^N>=7>$EJSg(A!rnq!tF .L&`VږEOͭs_7|SrS޺uK\? \eĤDn_x5zgࢄc"et=Nn A!`Lf&/ o@z;? ޞޖ:Nxg㴲@$:p|l^<AXM/䨿7LwWil0BcA:1(?,TfԱ^'r|ɑRkQaMلJHr.\I9ޝP7/eO'b/^ !Ry(Ӄ {r3>V nCp%D֐0u !dA)aUɲ@Y̥ĀqqmjCVc?:Z->>EY,:H}70$[*U3Y'b¼ ǟ&{85~/ m|S~:]?L|瞣 XOd@L$V*(".ʠ]:.DLƤIɒcӜe9OօKdjR-,((2Lz6^'>DJ ")0Xj=J=&Wf}\ 4$Qc$3;Efo?ݛ2[4s.&)_Q*~r,\9#{Xt,= 7F|7N Hp?%ҦG4*gD7(81K녈_CN>KfM*Xd Yw |%kp|D'ɟ;/LHΉ*T#)T- 3 >pnֱ%!AJ')‘>Z<:$rY8swx`3<׽ (<,J>G+4"@O]cad[O.X R>, GTCtz',l`rWgE5EHG7@XGʭ>ϰXMzLGp{Kc;K9.]IPo8y|z|p{_;._9&|]̘PMF):M'.__OR2+Z-qz$E¿mȹfpR"򠧧O ȹZs!\{rjJOX''"4;wNBs_xQ¼8AoG?Q FEp8)qw<$&T􆋲rd2ݼLp?,#a++jث\%J RY!m?h:]lIb"}靆}<Yl.!n _RX'8$ 4])R,s;k7aKâYB K>P?NEݖFjӉlmwh H Em]rV :p'VGB=~qV.\xAq': BIáV];5K7G)wR*w /_&9az;^n=XƽEpͯ%XScT.(_i @9?6TLw'tl(Bg@_P&]X4HSmz> OlP )x 2'uU <O*6@ˆP`0T,dkB @9FƎ\D8 ,EY&ɋ k|HԆps5f ã"]8Y|ܿB8br,?,Y,Ļmg;Jتj8*-D~ EY(Z4uD>jNpK|ň?Y^C"f WHcroLDD|xԦMPNP d2U OUqGt_-h7@9ZM%/J2OgN ڦ$eskYb2LBe!$RtE]nJ6Eup* Qʭ0*:8H&w֊cx>ן *B 7\\*N6X;!"( wC[=]fqwK'O0og‚UZa/WޮuU"Vo'}YI[)pOܶyWM)~E)mX_)7U_RݠDAjGI)}r=هwK!஫Bia<ړy(**!R}Qh)h`Hr+<8.pCQa!!)^{ Oj6L`XCd  /Ӓ`0{6 Elր <Ƅ xy[*ˑ*qcE]*>=vW0{%׾pprSD(Yz:ݸ{n߽+uFFwnQdQd 4 I#!}ɥeKg`N # &D^^~<-Sg+ 9ɕGJ,h@ E> -Y I7OrI󚣲8ASE5@M`HH0_$yĮup+DVi{KTZ,ŏlru\]Pz=Ǟ=ȓbU=;ꁋz>y722p eѧ| YǎM$! }OBfT:K% xh4͈}~ W^qz^Zdnaawyꩧ佘Q<$ dݻL3;M򂓛 }sX ɶ'⋔ w8M>_w!|l@:AO*79Zm$\~:KޏixN!I9ygY qw_pf@\-oKNi8\1Fy[78qǐ{ aaCCsqJNq6LA*ˁ*1 ˾TWE>6pu0#inֱ+?ox|<# 2YĆdƽu-.-S?AOr;yxƪ[qpIOSXnjy="\GDӁ iov>E rnQɒE))@I}>ꋘr. C4P/wxV^+~W0V,A>Djr?7PH 0D^gBPT*K;&awnc2Aו qQ,R."(51\َӶ;>wX `'x!"|ߜ e?OގIǹvEa St߁}?"9FڍZ,)%^ozd!MPyw?%6帯#/w8ܫ~_'_^zI}cmPx\`'.JryrQbs]2A2P{Eʞ7Bq)I&e9 K{ 5 J ꊓL1#G1Of'N]J3cV&S2p)n2,&6<v oaOOrUnL@rdoɷ(VԥPR57B)Sp\}T'RWoShbB w}sR-4GU& 7k!b\pysA>LbI1s@P.M F<$ 0hz8L8o}lT;F׳^:@\^B oVF(a/P(&RPOOY;?^9y_J,% >(εkwߥ{>+"w ,&('/ƱXNq0).t Y}.Ht7ƕA9mOG&pu;yor;i)#( dv@'ch,~bS/Rg?$"EۭX0'(t}qx XACxr{h?[m()\N/d=T<%:ޘ"y'7}a \Mȓpʆ0cA vB$͓D,{X |q5WWW <LX @ ix]g-XIQMr84ؕ:ֱXXIdVnS15q;nNX7*h=sΜ:kh2|hiw8#3YDܡ 2ɖu?  @o~7i4sAh(S< Nuv CA*sr֝) x{b#h罎FpkaLDRB+w%f yg䖛,IOfx8J8*;^d !=CǂLE(= yfg(DhtGy$4#8M3i)TFWFVH+pi"$Bh,3gVgb  <ȕž'Ģu wϟNѮu3=8O>k0:,9qoZ g>4O9áNfoNޥsJbjسwP]ЖQ Jʖϓ? Ј<1Lxn`!V͝e'M̬I12Gadӳ8+*Up:8xx&}T5o?{R|'-I`d\ʯj6Z5[KUJEƤ(.:9hP.prl 1Wip`0lcawb|4uL,![NёQ:~예c4̝;BSX'J\/2Bv0vTtKyHC׋Pf˦%էY;-x -<$U|:)"\B"rEq Su՗:F{BN\As;,~7IK?HQ贏'տw^J)<׳yE@żkk8?pQtX{Xo_h9س@`s,CJ[|ݴPIvjlN+og .範E$%rBGƂ,xp>/#fFEup$J&JxkK(b<5U;*7_-Q|Ȩ^\$}2C'5ƒ&e'dGdvl'J)*Cq?篴zo`3q!W/GNX1ֱvSXR<OI!`8(Nie#I0ye|XԥP7N>K["~P7")o<g ,V 91`j(Fw)ǂe [w@Tə3;oh4 :řIy=xwjLJё@Z0ɝ"r^_P+(r!|.,8BwnuT\ר}R`znwx{@=)?3''|r+%ʔ/ROhu E92mSpqQb*Z V}Co _&rɼ| :sliv{gs99[QNk8qxLXȃ|,4Gb=Mٙ-X^ufpIx@wOiuu.]z\ , 1ـxwxR"wQDĪ*=} ж U Vp'v=Nچ:S<~q#.!)c?)cv`GGK^40#d$?lgX8NJ,q\bae}hDDnT;y8#.]&PM6o_ϔ5B*̖_J;h3-*J u±n1;Pgop'fAl823x|:˳7Y<Ű <`AasvA޿]BI grUѐf@\.#f`X Mx+ ;^psդJLu"MᆔJ $|g:#hTX6"/n$.g)7YXrg %*.͐?n8f. MT]9':C<Њ:9L[tQ¥E:ix zIn:)7&m;Ibq2I9dުo[???8=3Rޣ'/%u*]d2UTǗu(^,.Ĵ#X")CL'W)DĊE>C\ BE]&cjpF`xr3STZ^@\±a<;͓6w(l)Ce{i\KC47@;)`jM(礴m8`NMU;+ IT=(r }Qq=,VY[ .J@܅n0́|M_">(wٜ#*Ckb Bqs ebT@UȥɪSգHJy.D>XsXXLIo3y$OeRUcb'J8 nPrዯĝkbofIND`s KnIWo`>{8]{ߣo~Jg?s,nH+W޽{|e$ /(b&eJ ( ѭd%\B.6ݪc{|EY0bcǽٜxHR *It8󐛒ۙ#>K^yӍ:8!|BJ0wK{͌-K}A?-7eC,Ak[lD [  ^^8-PdO\VlvT\TZ?M1(=ԭJ.@3"Z$݁9OhzzZ#,|DpL^t.ӧjǎ⤄A:9o'ܮ朄&⍜ #',+yh;GrNoJqB U&B"݂_h~SHqVỷnm2,iX\VBX/0qBo3nƠqs玄i?9ZX\ ϟ_$ݾ}GgΜA^#G%\YY}(H8]%4rŢuSѻ-AC6%pnuaGF"> }+,oOCm泄}~y1Ez"rk4C-y6+=K矠c `Vd%YYvm4|S9E 󏸃nĩg7w# *32fɰO w{oLG q @N&$%\EXy+}O"\:'yݷN `00RTvsU;UbRKeEzx{`{hR! &R B6 r ,,086F#Jțan" wn7ɘx@F!G67F;hXOj؊~!>ϋHH'%?O0yVrR~+_WԔpr\9JrVX 4"S9LNd޼z30qcHͤiyQs#?}pDL:ٱ=E#oCdLQ><}&8C" ZS!n6(:v9+o|@Epbǁ%}ܼ&m>70I'dwS9%V R8d`WӔIdHiN(Q.}RyB} JmK-> q Et"> nWhk 7PU/r2K< $j7. dzRXǰr u%O! RWh:AxR \?t,rpQaR,(^ ER=Vɦ !_%9pLq_(;lR!I!74FFX8Ɲ:ãdK_nǐ[XcмYr"춻 D/tiコ˛941'*O !ݛ*CQtTjojbz0bܙmo7 ptb_RX'JXqa! ;˔I!vp_WfHɉŇN)~&&r8j\rPo)cs$wXlYei*drP\KTlZOTr:ul) pss.B1NJga/(G\=$2U7vu$!:')]\(7Qr"3kP[C^/9,-TR%EY9Nl\0>|uBaیg!‘N">ɰ _`1Tެ,ݿ_#͛{yFFFwޑb9>DJÏ=;w^༂'rQfi'(rľ@7p>:F C&brQJLV@VNۃ7q v$7/ {"SO*BUm>F~J_Q#qkwqb:R v u)u+l6_aҪ<D4z3d MOT Q)؝rPk_Ut ׇ!, 'f"*JaNw|̦巽m ;T,a@ztB1x-$0o*٨ 9%W&} 8Ue-=t4aC-.J ?X[S!v˨LHa^o^8VlCG$Nl(bz ~C8qׂf|[T %=U+oX><*PaDgJXKȒ7Q/%.s3Yp'w֮:" 8DfQ}C"VNۭQ(I\Bû2v,;Qņiֹ<)T*٬FhkHB|@wE}t_pAJU@QLXXX0ny@'>q:qnq+?V(ʰ(+Pyn u1wY}dAm R26 q:x/4(@Q^`ndcpx&=>]\!?]"|LQ E QNŁaG/h->G]T7E, 7|Q¿<1Jc` %pC,:[_L)*˾*j*H +?wInh~7-  V!*}]rUZ|%o DRBHl#BƯ6(l*?zBv!NHiX^*!l&S 10OH&$|:},;gb@dRY_n&.9)_zv-//s7xC?Hx7Oԧ$O%&y0!RB =Mem7O.\ɇd cdO8ص L&ꊸB|]T&93ʨu|`B!NR\,9;MQ|! #ʦ(¬٥lRmNq2="4 Q<^~@8lew~ !;-#t~J.'\,ң; q(d o+,@*T}-T*a!q(zxOqXndsE̴=*-o4S$+n WKap3XyCT!T3+ |B1XAM4eiP"فg+"rF#p蘊sCl qqRBk_+G䥄k,t:%N*GDb>+ybQ?斳tJeOQc`bbmկҫ*BO~cgrrqzꩧRG6@m,e({MXO"/Od u q; ʲ,bsZ\A>I@j7ܮɼv9{Ha@D_T/$_;_$ҵp*QP''}8F[-B7 "2a$V/e*; 8Fb98^)4FҽAg[۵to o s2X',tJ/P{%4]`gwy,`r^b%Ȅ'C>ˤRt^<3AwY@0J ';4wF£>!ܿIƝdSh!C;x=`|8U"R+DB,r{+`<)7(-}55;M/+6WȥT`A,^#0<"I2'1($Έp[@xH&q|5,1s9*;#x+V&h.`Y)Mq.7s0d';KeTRQs$?ۿ$Fd`]눔fDžZ:{C -Pߵr%<p p=UqQb`_wGpDOt,t)dq&9:hCLT[v>'#7g7pC(=L'Bۄ(B]+Ŭ, Rm:|]\,[ý`#gtqZ+W86*!LҜxJ"AޜS9)'#hxY+ -s>yI{jT59P3N7r)q]rydܹ}~B>}oʶ7!r}]t}򓟔J޿(tp $,'d{#;H2Q':9CGz$ K=h2UCG!- }} g)S)wsR՛I" ,RǨ0$oOHƒC MݸL;N C?vXvgiPX'ZPS'(>8@ý\JP(I:hD0D%2} +KqEQ6}ȬϢĥ[S`v"gS;<|,-J!x*G.~&?hawy0FhAFǎ]˴2xFquc,P<4eYj9̢x:9_`a.UP;;+ࠕT%_P 1n ڭ9sxFO 5:vl2pzDwzO3g)I*PXAT{T7{S ,d! 9JSJE9wCTǗEH;q8=|wF/?9[owxR48OIO}{;88c ]ZZ6H.^'/=F"I(k>k̰1+m+-^"\.O~@X䤸#vSa 'XGA/~t]9f VC@{Ns(y' ;Rc~duYt\ YMD @D.ilG4TŐm!::!Dl;|d. MoPB!Q+Mގ?BZZ_3qI9~&){*yzzNa;MxEΌg^ wy j7 ; \*K:HiL,S(F*Y>J5\QB> =xyY=VrڴZ2딌$Br %UVx0hm@9@'DN?]!{ ^~EAKf}v#떹5;y>qc6 iY=F5H=( [$~0ץ1 e뷁涵AI~9)\/Te^ GCD ٲr:Lyp|"EMP`ш' T~+ZBdo?jE1Pv<`amdV2?w~c2YW_9zg)/ӟooY,<ZvU wb6 m|~Q!zdheut=zg(]R0u$Kbj'{\GK{JXqN/cMxΞ;G?{-b׎1'}Jh%EO<$}'0߿G_ӕ?SY>@I  '{7oP?=}Fy@&=N6u3Ss<)H0[ͻíKK k_䖄2%kgy-կ{]G):?}Rm-7!<1ƍYЮJ_ &4o7Gh,)|1&y< нGRx<OQcwܘ(#W̅#'r<^pyF տY@dVR!5G؀ QřTFJ,Wy0r/yX4tYt+z˹˒9/\rBh45#띈/˭,܀8([3&D6þpggNOݿAO+KT u!';"R9UTؾ@bg*!P,']~)p^uy)pu)s)ʖ։IfeNjZL 4~V0ދWF-EzjkFenyneukiJ:IׯU(JYqcUFW/TVkr%Iɿ˃|SGRRڬI1`۵aj,_ `|ۣͰpuE!MūIZI$geO[&j*R@E o8mZK=Bo\." ?zDs3CL]qߺySo3sݺuSeE< oS4=5)mA:T&L8H_x4bfŀ  qNMNy%oK/B#ǎS,7$94}x*٥T~=b'cһNlt6';i[1Y*,!ϓz4L}|}8!apL"O?-saaAnyݾ}[DgyFW@`#-á@ xs.[*F哧;N*7Xo8W)b )08L`tnMn#Q 9+Q>$Q6 f'J?Zc)sbCD{4ܦUi7%Zm< X) *IeJc0G <)WG*FP^T!hF96@ȭvS wBU7{#6oy>D)8}uI\.?*<}>4'Yʖqjֹp IQa~,a844@W^ٙJ%!KK,>aȭ_rW^yzI[\'/^> O_XOn_!ĿqHK shM(_яvN/Ih/ _\Xa"I/C&~Oܕ+]kpl{L TslyG?&W| s'&xOa4y]!WVP,h8f8FNJXDNsEy 1,mɄ8\w{#a1sI"AEކ~b.BQ_},b" E,& 9[Q@YIa~\L^oYBu5Xʲ)pwsL"6'nٞh<5x6OK;'sT\!?qNyZ+NyWuiֹwg y5c3ܒ,5m;¿4cme}Y>-lDB.u㋻b/@#ǎQ06N=.B&̫X<,b!n,E<^oBe`wùG ¼9pktwsT v\*(+Wq0]7\gqF`tՊM/mZ7:YN<35ѣ6ζz 5wdho+ӀuoE45p愅N)׋ƵvE@In1ϘM>/B"&  nQuIH"#Us>n 0U׭+0iT~Ȑ8ݻwGQ:}JD@,WT wݢ?6˚*yj/ĥC#96N|筟IK/?Jh/}J7^~DssN ']b#etqJw8I+H%u)3c”HDcxy}E,ʗ^yٮH>42JNX64-/TzB]~'駞7nS?yɅ Ǥ?^iZ( g~y )/y9R,|7鳟>DZ[n*%ʭ3$ KpTs\3Q BB!N:N4T쓤b$<-J5FQe'[.B( G*oXV]q2,8弃H6_*Y[yqs ׷seFae@PgEC\ piG?&7oܡ'^|gWeaRe9nVGupSs9zB E>qa[NW?M?y`>33#,@oz縭BiB/"ݺ}FFZsG?qIɼ( %ZYMc,jϜ:K_Wޗpv޿,s$?㣉GRhf) qU /;}8^z‡^{MDu܈բYuHTJ&,>bIš*$PnTlNaKל.)WBm `,Vx-n8g9ZOQ$1!@ ,:;\&%tCXN4 ,'ײׄʕbW|c"T(Z gf7\n#Ⱥ}OUy[[ˌn=UJ<.mw<:v┬G*1UqM|1Bޫ~' _}7~&?O8EnR:wjp-m_Zh/e(:#o@ +J3K`2]pΞ=+t BdJ </n͑2 )[ XgiLpE$#ғdqYT2_*^^Ey $ O&] pĩŴbro+u3oCoߑ/#ǯgB苢o͂svvX?~BmK89.i$<+$iNlU*HI8)$ݸ)x0,c~+%kJGTLTl/*T.Rp~|+I* Q!Z]O| 7ʭN@jp5gnPlSd,_LyFߠS^xv_SmT=Ugq͈@\8ppu $BSɻLt\q+N6yC_ Tܵ= `ַp9vͷSeUԊjTJ'$Ij{UBab ZG@}Lun98V]\4_f_}\ ;{^ښ/3lU@5sgwHlUWiS6;wNu5eȲ5L'NWennNr&(rvnVįyu붼3T`p ++ Jg">wFOE9!5 BK|Yĺ9sX|F {O<<  2%x/WEžf pyI:{Kcn_/˼яSgy ]:7,P.@W!yvۊyB .(Omn-]: `$7M"T#sKI 9\X]F"aE+PI*m2 ݻC[םDfx}Hu_aq~;QJ r߉>|NبN0+Nj=#A=TFɇ2  ^k7owi\,2:bai |yG)r iܺDAmZ)+ߓ7KT4w&JZDKp0&|ccܛʾ,<*T*ۄ[XkQd*pT%=5;޾(-M]!hϐt;8:<@(hyA ;Na+>Y'.`#*p{LB!yY(G\!Avʩ] {uɡG< Lz sf̈́ڊV6hM@s\p\Biա,c3ҹdHΦYgM][ WuFlxuP(1KAqy1&>#"֭ڽ8KC"D(ęZuB!fhMkEmh ]ua{JN=VC]us44K?&-ggϞ;K~ /Q0…W+m%D;ޓJ&JѧQgp ^{xx e^%IAsh\\\ܓ/r^ziqiM<}p*]x~] ~,`PDO10LEy:}}cc'xqx5@~^"}/iG{yT*=a:G5"v+"%@@x·߿'=O>)'!RLψs;ܓpJ>Ī(`(n(' +d޻,LƆ׀, pP& T9khRC"L~5es4*MpEyϓ 8oܾKSRr[RF|7+3;?b'wo=0twȊҮ*wJJ*#WǫUbAa|Woo5E^*M WTl3*T8KX<2yJX»WXǒ aIEv ?ޠP TW:R'8SK;--uX4HnܡE$Aia YA'Zg⃡#g+Rݢ**WKцnJP/@vsC7X5X'U[m{+W [ɍ2bs5qn*Tk_Zp^ y#ݐuBa|pdqJIIS2368*] 2w`u- {rY9;u,-2T"ζ(l۵--Oaݞi85qT6Z%|jEW, &PruY)#z㍟нz"K/K~0@W?N7_ǎэ鍟IW^zPKy) aBy[W^]qXwxI^Ga^7hfn~_gu^SO|:lΝ{L&xY̌rMo_}Ow(eY\Ani0Zi׷AMNx1u\8{ ygo%a'Νѱ1){^fYqXYH(!$kwՙ,S"_GO 7L@lGrABF\3o 2t9[s'-f o|wA l1MB$߯Rk٬-d"#I)ppꊕpTvZX>.q.!ڦ5DB1i >";boJ*:*T*ۈ$3|0I e:RTH l@܎N8foQpi2Km <Ur W%IURKBS@EP58ލA x%느Թ\ZH EJPYu0nȰnNT']kkkCX/m3vHi'|6j~IGPjBJ!,n29q]s X. gWͫ;4ӉuME<:{"-8曲Ϝ>)pL휇E4 {!m5D^p_)޻|amy\?symG/L433MoߢW> ݾwEzY m=<<$yO:NcǎK8]:q${|/O)zݟQٳnMO?8:}/]߰8L<2Ŀa"14cWƺ<"eߛJe(W(uxzXs݀[w 7eһ+a'!?};|]/Kn(wn]wQz7&ȼsj? CN^gV8N3|@\]W(ALir.#;Vyˑcpq*{j 3pJ0 t+ Td!O pHS[ܯi%,eB9/%IwLF#:n 9yctdR)Sa# IdnJcdL}0,* S!䣃[(Gr$JT ,2<Qn0q:n=,> ֍:c<lcad~2EbRHHBg%odB=ǨE}xcjC2 z `P=0k+b9yQ⅋z{(mPi߶#T]GYȌH@BZ0׉UF#ں4*k#5 v5kPдkm˲ UPc]5:5*׿˽,ݨ61Ьn{js78'MQ6--.TFC\oSB BipݷOowݿyOkE[P) ]MߧkWR"".ʞ>A*Y%JFFFY.T7?%xb'?+W.0Լ*~i߻K㼟#zXn !,V,ާ pYl[`̓R n\SN_p޷ ʛKkKr%f܃LLck&&tqhөSfBe+,*7:4mG37Suj ݜFz5ֿf j3Zn¼}9^XXmsE~}޻'nFxE*b{wx, .Q~ |''*nU+,XOK[16:FoS_W>MPp'Zv*JO\i*T %>y"dd M*Y3a+Ot1,yݺ.i#ݫBI\D㖎j]$)SKý ~\MJGf7Vn) J6j&-YksBj`@tt]>:6<8N >_zP9{,qIw6H1BD,Ƶ|uvv?QYǢ=U1{x$9gQ,$ h7=yEՕ _,MNIq_b‹Ms4b};*ܬ—@\*D%{~vNDjTFh? zڕLYd@~ 21ZZ^~RDo6'6Kdr5Roo(qԺ%Tqqs "*z@(=]Nw-0O! (q5XhQ,'c R@$-/:d s!7J10NE% P &Xa{Gz'_N7rӽk7쬈[q\"q+D{9_ɱœe-xH?/S}:1 n; @Gyv9c &pR) *ˑ*|H%<8-C,xFN3ڃ,-󀨛u`Kog\1q$ EHt+ e sV);NH +q3pa+PS(!!?='CP~fBeBaVFVڭxVzQGeר{poשV`޻66{DJhׯQ`e4M}Y cU %W6( JU^G|P544HR@gl p[d=Gq ܗ,Fw[wLNNΝ;9 Ox977'H&(HлoO1$`6Da kKƖ:o߹Q2j}-aFcN*; 6={GGLSSt)('O;ߡ%ND۔cÑ0ɐvA>j'(= *a޼ ̉d^̙)Ad/١Sn0!}MZ 2) Q0aG&7JohOP(TpɬÁL̳O6*o3=%vO<48 m@|5!F$FQ I r, Nw`܊'C}o8m5ژk+]1/=ۿ[Bygru1!}`$!w@Rq7<@X^*L H K b, A Na\dC322¾R*>I#D$,`_ZCy7н#L|̹Y2GRaM$2yB#7N, 2X Eb"Ԙ,i쫆Uaਗ਼* ވ5ϛQ_zyjQ7*+"NgWx4 87n=kaw`fW4_eY{)1N1Ws ǏӣGs{S`jX\^Y|C UN> pZϋx(   'f<>pNUlWЭ;*f5JcʷͺXtծ;{c/B_m3N— _|s,V~TrWMgwaNo}_+_,[*)qBH~/5,$_^y%GyKܮ8@/=xp_,b03ijrZ#+KN|D6<>L?}i9&&ExMZſ5JG SO=bYPDډ DB1 Ϝ{qQf{|`6dC>DJq =R۝見-#&C+dyd9Odb¾[%xѰ^Ûs"lrަO {鹁A HI =w "@! .~,L,v/囲Pz3){Rp $Ε,cI:poEl[7@`/-M}Hv!)!o7° IM2=ՙVDa!GQOoE33+۶(\e-wtuh6[qq.ЎkP+HhQQVEi[5T2; ĤJ۵f9gmo &`Ĺk%Pq\X\|N'L#/3:aх:f(G)29&iqb RC(dO1|˱%Yq¶\^clqknwg>@:?|!9ʁ:+BUV&,8!YiX@+տT'ۿ Xh2թ]r!p9@RO7<~\]YO?!ǏE/9vK ?%O=OLrWW/,׎ɳgϩҲHTMLj}wZ[gY\2iljY|3!'p'>8אкLZZĉcMJJT˛Cu\ʒIHBnx u.B&̪sE4I`D'YB7R Sb% +-[$ȳfw1cN GH. Ӷ5`7W>H}i}A,H0\w1AIc246`òOdezR.?# -~Gz;$Z^%{p<V&]'i^{Z ]\]4֭_ʧ7UyqayL􏫲vB?D16KOg~)!P!;zKNQy9𒮮-tf,୫ fpB%7L%[(CWYN=3XpԉW$3}YP.lD1Mp#V`(Ȑ]j:&W<4Ŏ W7żxJ)俦rbˌ2Ѹib}(*E>?{[{ߵ߷d#q-k^,7k][Rr3PEG Tv9rP9G"i `8sSE{K Pl1SR#U @s2'᾽Tʵ,Hx lW_P-ؑUm׊ЦZՕ<46֩|n\pZ $sk5v),(TSc{rZҷ-~vw*-(ihB>B*sYPf+NM|\ruرSWaJ:3d69#a.(B#LVC#LL搗_yEGG'󯤮V>.}YKKASS208%h{}B,\lOk:66W_{s/nٺE~Trǟ|Rv'W^k0gTTVhٳg2$ρҀϤtm~f=TƲ L\G?xDCX8tIy9w8F `q"E*\-cD|3lD@9W1mɞ\`$RPh8Ϲpe,m}n{'^V)vӍ,dDb Φ5[|$༻rn2&ggt\& |oz oq:,TQy `N~Ɗw;<.ޮ #R)ˋ ^A% þo_d2 ])r8ݷR+Y/g=C82a JiO.pдev䲘%8]-M'2;%6OxnLI[2R0cx͠׭J0pfnX>AeRkd&1C5n߷Ã^wS-k£3@3:gɪ mT:oeoMI ž`&ݦՈy=*ZYsGs֣X9L$ZnLk=w@s)P60Sx LuRwlyAe`8!Y8bfC?^U-g5_<=7+ (RFC2Dɨp:>NGwa8я}w#$kll@yRK@Vk3~(us4ž؆;qtvuhR'T- LMM !'''n̋Ԧp<ӭNT5ɛoLاm;ȓv\|V\wP0o/TmT{6er..[lX(LS[^%R,`KC6UQj5a :o 4W6deQ\oj0mh:E&P:Ka-|֋p!Ͼ`Џ1,~FhTUnOX3(*ِ}M+Y{\7cRK・7*#ɴD2,Os:(˓E^y혯:{4g KKjm|R9?ŐFƱh'RY:-ۻ 0nN@fb_Y8Q}י@ 2iGCfW4dBhFB;?!eVMT2pSSS7[۷"05Q(~.TURuG#4:&脃t*C+wڥ K;"ܽ`[uq0KjޯDrO)L!5.]kC+Cؖ:::dy%F*s?/۶PP}k_0P;X8>>q *yZ9sqSՐ/k&z꼎g$e|Zak駟V5c\8b,jƫ/kS*y{iSGo`% J%'sQJQ$wHJJU~t%K s )iB|ϐD,U̳@ CbKŠo$milxNG%(N/z}'46,i<bn@P Ƽ?TBbOt.VI@&\ $_WL]+sH!EPxT\}lxL 밿tz4TUnB+71vs*(X85n7rrx<5p!*ׯ<LЀb"p2Wr=ft%Q#: `u3aHBiYq@=yv0 oa8ϊɧأ&qƳB>lVx*GqwwPYFFMifBWTY]wi!Gفn nkJQ;t_aeyܲe /XǞLY(1!23PE!+5}nn &7XV FͰa+CSX*I^yfMH ѿXXwezMrӚ^p>*QeU]MR=^U K>@ࠌ( E.1darqp9)r9yN[!nilL( C?<ԪKU%MTz\ ,6V')7L- ^ؐlȿ(U%ӉೄɡPXF0&/RcP\={#o z^x: ܳ^M`0"pu=ra1{%4x49NUAc{33x,87GC+ʶU٣E^9u45 PͱCyyBɩi) "YX^yu- K-"Ϝsʎ}!EqQ5KÝZ&ËABZ omiiF{׿PPiiǚP@A[X!1{:5_*𓪬t~>?U3$,]TճL"9HHl?cdDg^y b3Kgl69< |-KxfJ̢RqoHΆqRq!"FvUdwJ݅ˎ h՚gJߔ<.[ Ҳ4&Vy #54<~!6k[Ҩ7q)H W\#f<$r)>7].0Qe(NC2E )= ֗KpΔMC%[HmaIʽܩ ^͏^@e٨aRU7d~$aٰ*-I"gĸqUMx>Zk'wUT%nkЩB5i5YGw[e֯wQUϧ()׼od#ai6Fa; 7eUf[;slTx3, %N!~(jTZ۶<I"ԪzRCi,BZG`zy_o&ehgSzNcGxk\ tML(y'kd ЎF+z5:RcJ/-X HSceryYCiyYM7'ggp׿Vo!>|7*#h?؞}iMy)$- /_,s_JZG[ƶm>GۺͶȄP*ݶMRUbd#) YAg[ r*GhTT<2A1fiNэ.,p1.t1mmcBqC _@%EC逄I'_ ~q=)V.d.쐱%hnv<I82u|•uA^_,c~s8N,@.L/ZS|%_G4)Q1NIJa{9 !D0M&cu.ԃLxtc7 Ֆ~!'Clŋ0tn0ܱ!b Ih~P!TDQ ;a z L͌lXBGn22VaϙHg;AtVx=o96o|oպ͏Bf[ĝ 0[7/!*=oBXnׄ4w SC00Ś3ғqDM3$ P[ɄjJFg4+rA~8.n WB+Q)$tQg p9 Z_Jrq߭Vwt?P䷴gօvx BU2׀kczgϲm VE.14 ŋbFoo;BΞ;'w씿;G2Vp\܆.9^︎v}c1lvZݰ9tLMˏ~=iߺEmkאo91kaa\ܥ#8ZQj|DnKMmL4:3,["- R}WX_/uhoTЉ-]g4q-1ѧqRmpFP0IsQsm΢ TWL~W_{A%=BAǥ̂F@" iT2 U( wFPOCk3g+lxfJWym i]\V-/hzXΧ\KitFak8%" b+.{^G.D]VKƗRWdqotĉEHk?eS;kfkkFa%FߣMR<~8ZX^/uscp51W~Ņ3GeLg]#*@tc; J@Iǯ:}m ̈k|JҘD}47 RYIE%U ݴĆU+b$Ch_ ,NfooA +t,(ES3`,25.)qڝtpܵ1րɔ\s6% aSbvw]4{]L R)lbC:8ӖX&.9w.]N<1w^qK ؼLr}'3+}d"|w`e<)l.S+&<Ue:3Wb$0iJ&{,*ׯt):­G 0[kg+ܠV0 +.MVV8~d!SuK`Ut@~w ߞ {@i)* ,D^f< nvIћm1?adP(C*hlZ]XBtڸ$Ŀu.TKRHBt ÆΞ=+O=?N<.)PoFl1$' op0) h9 Eܺ]s p#Q ,y==77tK|XHPiG7n* V!e] lٲE^:ٶKUUH__oW  T}IЛ½S[ۙ 1ěQ1;htcj$mF?C%NTRTq%X̙-2:}+V iO6K1&CbDBU|>nlcQ@_nQ\nm=<L[_ܰ˕qd.dM,, {fru.]DSvyPrHre.~H`aICrr-c rC [+γ~>[u~,h3ּguXsL4,JM Z o)Lx@J0N$3{ФTΜP&'UUJ%ZRfπ~BG3B&֝L̝ΆII'oKQ@)lJN>%M  RR0!• 6y<p<,?JK*gg'vN| č8Vϩ¤kϞNRy'ۖNNVIEEq\/--8Ǥ9Оzr/]#ٞ1 'b4JpfdMAZo(pN>U Y_Y KW /'Z]?44$^ H%JWVCøe]A '^ۡ! ~d߾Z_Ӽ'Jd=~WFGsgN`q]۱E"'0/,^{E[_ܹ󚇒Hx}%m?l@1*۶k~zgg<ϣm~bQmMLLvi[<~q|;SΝ_(͸Uk~9x/erf0|Ag9Aoo~"P{ 9uI]|b匏iǥ__& N1Tcr Cf${CU9\d%kp\ Xf_3 V_d3}~`1>~:2l={ 1<.?;wE҂J+#q*ȗ(|&uJy|]Vb<֐@*TqlwFqIcm7J2V@-jc7XAW&O>_sOOH!`(D`Vי%ݳw7sB1!밵UoTHssZ zMYwH'^g5Ԛ-f21B`>g7̌\pVntt)d;d-[=9oŰkNFwӖr*m+-:id7cţ c5F}p\nۮ9L #M,UUU Wd˖ {ksd޽[P;4hwwΤ駟=wSO<%'NҶE}uCCӲVFFSri|hc4c} _ LNĢ*y礷[<.V+y\pEeu_"?G?PW*ܷ@'{f90o'yJ]6ZOt@CrI㙙**FwU%eвts2W>M1tBc.`\1k%=1*ذH]$4oKf(4o'#27J秬9'ص.3e[]8I4 Y˚҆FDҐR*$ Wi;rz#-bu.$ Rr4% )D>xL& % جWʔXǁg;r0k1z.―XP4>=䘡P炸.Y+w.IjqM)b1%q+NL{ *7i!bҽPy*$sÔLdaQWPSn@R),ߐ '啭4?&'UUFR5bzH*QؙTp55ZX&44FHNH ;RPzoFa"ɶ&`6*dJZ9'mQ0R,4 I1h-!C>XYfכq64$?֦a7ß0I}00l|| m1ִ&<0IA(Ul|;,R Hm={`ߠ\q2䩓jBXepx0^ȵkV2==#?;@ ۾v?]P:=G/e}}~,զ %`.Qyi^S0dt{t4ɍ i<Ejw_u{1ΰ)|@srۖ60ֲ1wUa=sV4ܞaHEgf&NNNiHL:GhSs.5vmA͢Ο;'Ѯ| ({OjٿJ\/}+RUY}'$'a۶m&U8^8{YNOM]< 26(_\>wF&43<%]]]~t \CݫEicNq霕JR> l˸NV-)s^N*]nUSg&hI<#-@d}V65!E%sHLBxڱb~G :88-c 2<3+%y~qs ~ +)X3N%}a˼뜲ˍINɖ,ǰbW4-i)L .l& M x X4ʮD̲)τ˃~ʈe3|O8hٱYY_Z rŜcŭ-bXˑxpjA}`Q,9PI*%*|YDK$e36DUcXCʍWiZ b݋Yx|{Uv(W(r`IoḼ|Hhэw~qMфy$'9,VUkJ:n~6әDmh%5D̸HRݶ#ӚNx\U.,D$Q\\$iA%QVb"P5%U&UZ9 is#H"A 'ÃB1yhh^̋KJxBLUfq ɤ,d\q{9LLB*I%bݭ]zEJGfBܙF6z >qB0Ke766(|e(o //`繯:E).^LI&ݖ7?` (sV8/ ¼J&b(2=x)ޯ%e%rq=} P?/us=QW=vW)=f*{qL+hK ߻wk׮ K Xz*T&,%1&cZ F@յ4}QMCHɜj"xbNJ./A*C\,㪲 k^ `9֨['æGFd֭ZT65H Qh%tsqR؍ RMm{k[CPwTk..3XaY(0aUq掤 }j 踦O5o%砠3EUշ^>S|eeEhg% +^^^tZT^Fo@ۚ~}яd9i$"x^RNk88ͤF 5f$ZΤ_-V Wج8{;$5!r, ۩.r_L^hMRsOɏmc8+$_N^<ɕ1 :=`\4ʊ\LEnSl'vhdc S^ HY2tvD&zS/&ERUU9q>q.rV(Q1{D9MÀMa#|x3dayHM&o&][ _&vkȇqGbZ)039PIY,|RZƣ kjd\5q$QmƁ>àL5_0݈6B͙HPF'tTJN#:\Kvإ6)Df8D-0"_ALrOB35kC JN'G*ntvJ2 Êe҃mS=k4֦&FGdrr\ Z3w~Ks<^B\L[Zjk GQxLj$>u.)eUzq>VcW~: L8zTi{eWH Kq*+7`$iE%/;/SKri`X]`8"[ꥶUMYBMIcX*salD9~rqgY)LL<Ӓ1#O ;q]fven|C'1LbLg<9PuMȄ$FeF&8S4ٱoy(&zd# 5?ىٴʆ$bPI‰.wY, &Є l3-l p̈́4k覬h K edJ\1 N桴e %!VRēGI{ K*+p4" ZY^. N,'8cF&MMk[oˋ/u35RAdAWMU̡I= /z9z"p{4V@[)I(s]R9:6.;wT$|W(@GlKW 5:]u.*̓>kj\Vh,WmS-.uu ڨ2 ,e]:{PTUIEk#YÑ[C~`ݘ?‹ V[q-ꪾg^־MMdhBe).3\9)V[rdK.ovyjRMK+Cٔ'fI@o.Lݒ5sd>l3"KͩСA0?6GG#s2'-J_^^φ&5Y\ZV%` P;lxkMU[rmjjZ uxu3h"c/@w}}+zyܹSjd^+RS]*<ڇSB,}u?~*P,&0 K.OsQ:n1*zР76:y㪘ҕ5f]Id߶/i0%"~ž#2W6X)Q6?Wq? 3XV6G i)^UV^^|n,nΣ ԕ+vȾ{~9 Pi@IR␑E[8>:%4D.y]#5(`ڞ~5hbʰ}'Bc3*F?e_MЖVЏ;7G^U4Kc@a餕6au>%*׷@CV4!,j3<+e ĝ 5֡Jg*v.6_fG/$V0-Qp U @j ٰ <&Ã"^<>P,US!%Cm5Zž@M]Gj.I0C;1|>:;c:5ıiqUezU2a((Uzy! gf.?n04&|J8C=0ו(ĄB*׫JR@Y^h(>x+9tX@_ШG&k+[QXXP̼ӳ3z<IǼL6wT,uJ.jL%].a@(ljj<C_4jpGG9rDOY۫mFT}]c4a>O:Li+\e:9zŅ'abbJ&ǟv2zY++/SHjcǎ˻ YഴHQQb[tjPqn0Y`La86^/zi}ogfTq}k[%N2A#+Li5lIi@(HpH, *qNN0ݻ۴3B[?s|G*ʫtE87^|}sRFpoUN f23=/mzJn۶GN>+_npBΝ=#}jJƤ @EWOs#H4ף ը<ٵ{/fR϶AHU+,% RyLzf=InhJSu[  5^ƬvZ ̈R$W,we9 &kbl8Af2ֹ뷭du7ovs7n>nMNNL^J<錂Ȅ{skTL2  + 25#poJ*a9%Sf[("* `J17eQqmehATViI]N?Tutܐ%lYJ8<{?|_C"YRَw#;v?"{VTL֔TRL~h~y)A])lLc&ԕ̉QkJy FVWCSl̂s}B{nY|׺Hse#,9P%*¢+, 1ă9V$9v֣3veaKSYj (tН)s#NTp}&ʺ~3\Cׄ~@e-RVAuy]&75ue& ; Lcml,eQb)h4 eDaZpn΢"ЏJy |,f 0`K .cPBR 8: ߣaO>҄tovkI9=&Bj|uD0d"+iX2< H"P5!+a+ChӐ!4cbs<2/$C 5w+~fԣ_PXcnw+〵? h]9}+,*.T7p1ġ!!uu_җ,\B7q8 )yL FE > M&db=stS=IjSQۧۮuU!9p;JZ꽵-M[;DJ땊^ %%Ej, gE /\8/#86Ts pVo߃c8oYzVx\~Mj޸q]N5P2_HnU8~L\,W^!ʗA<8)|F;SP\ KiyB-hM jh7z4+'dL? ;.Scs 0\>;ǭct p~jjRk1z_ >ryZeegs=Aʬ1emVIktr&l%( wWt!Kp#̕ѸKM¨8w<ȢQ;AR q,O?XۅEpT8{Y.I8vk>G$(sf;.;H)Wp!] 2_SPe84wϹ”kƼiۆ)VH0h}Ǫ!̔X-wsApeE0+H ~~Ia9Ug@zT)`*^u؟ ;YXAlvOt> C3qȅKuĸ$\02RF ˎ;---Վ"h4nvf^[ CKOLDF'kS\*+X풹iC<l?A-.|4aMN[Z|2lIpva9ѧ3=VʴFͧפg9 cq9xiq1 `6Au$D0q5QB_lٲ]u.zo;u:3s3D(/ﮃ| Lk]|,iZ ʡF]9$g0CF]`T()o.+ү$R kY`~$\)ޔ8/ulqP8]S')I1Y6+~e2?9/+UZP1[u 'ă+tbV+0| ;VVjĉ{xBEϷoXŕ[Үa땯$9X:tJY $T́h8L?΁ R:Z2;HRF[2]g{x|vu9V^~ Ipipxzr\s8w ܓXq$cJ^VKu)|y`jvqGš(<9?/{g8 yaP@M=(Ic#EE2\$3e$V%9f,'W> TX rcq,ܣ5DH18ܶSR}  uYxzE *{ǧX祽䇧.ž!*,}ڠ._gj ߸JgY<  i R y7a!SA&,3mUұ]SpCjnhګ+<#qGR"FS dx4;8'TVʝ a[B̒<ͅ#v.Vn@)Wr^J.-jp :b*)۱: Cg;Te :Qe8惙 IdeNfęW%@N )1_b.I;7Gl8CH'QUX;$!QǼ|Ty[Q^.)Ǽ |ߥ9ZaO3mU5~!؄Ygn''+Ynؓ K8>@`R0")Dc'H2aST7ѰB QJ|_N3<'½0WQY k hx奚'QCkݿ|<DVT޸qCՔ ._ :Ff(Zu`;'R'jumi;d_\RKXH`HIu%!a,Eʝwة00'JL{=k|תJaIP)NVp^ "Op-|tw@։'0]Ye])U X|x y ZQ. qld/E]y 'w~!{voWdϮmRޓ/+jf6Ӈ#_լF:۶V>s3Ds/uP=|[@IAeSqZr֍ʩSޖ7:[a9t1׾. M-ͶI"N==:?a==zhcz ;o)OCcomM%eXsDqR]+Y ` 6i߲Kܯץm;n+d˖lz0/*}]Gנ}QK4[_ߙ\NK`aL 󦑕!w`4?#g+b$pqD@U)tbqWu HcA(I bc/<6$~1P=3ԋϲS{mZ]}Iaa`ek1ꚶK]aJ2>?1D.5Tc*0 4# CV$2R2ӷpRq!4Ie\)sxv/L/Zٯ|Me%%VDw[\Ӓ'SƗ\-9PAh \l,J8ml3:hg-Y,(PF5qd~K(zQմc}~1 E80D!Ŗʦy!d-ՓTiL8ؤ$sI<UXAe]Ae 86daY*wKmFh㪹. 27;#IU1rliߪjCJekuPgx="!KhV# $2TQC3n"@u[^{%Y}}n9{<3A5$ͫOmڧɉKRv-TTc7衈YC.|8`ygog:ЇTj~a@WseZdZg%&I1]BS q?-?ZY^NV,iJ|VJs fN,GrerL (} 3&C#{t!bH,'22*I*9d'l #s"hi;^Sbx(YrS%~/β`%KuFЎ U䩊0BԵC:291ǰ\hpcvww8tPC{{{ڵk5Ӫۺ=s*keɧzJXP膦;?Pi-!,t곸Hjpi (x ``FD ޹K/bwW7-"Ы&'v?qiniH ;wn䧙jp {ݨztdHg3Zchr%9xjcBC:oS:<4su{mC+eO jo^Z]S\ǹHAq]=rUٷB'dgƔ)?6w^y'o3]>Üo46|\CV*\O*ip ߽xBO8}BKٻ[^~eI@o'OG\Sr5|Wp"A{ i}W}RV12ߪn;ETùC!SЉ8M1i%֐zyPg=b\SItH}sD;Je0g>~Qܷ!IHᶩrڎ6,Kmڮ֬œu(H4 Io):IWJ6rp S{I܄;gV+]ST'>$֝i{kSc6E,b ?}-2.ĶV"vIea.*2we 0؋<\H l)5u!aKL˾jC =՘||H~l[H3tsiIs&ȴ{=3<`%f5*KT/ʏ)nORs؃anq&Mq%U`e<|%*)8.Ò{$Z!I孈aEmW)JNbR)!)hۘpteM2?;, UU(o߰VUaGs!t#1%3zQ3 "+˪!Te SIDn{ 0atoU^\N Bt3k]әkK )1}5teh2qMp+,IYmrU1LLŏO!$Yz i^ýҍOh81'ģiMKK¤ED&`0䚪Yc䍐q~it籝:}Rj, CyT{iȷ~m۩mSHEse¤6ïBcjD#1y~Wx<33 X&U v*%ݙrtKvh~O?STb4Yy !=]-j8 "ג`MمeV^{ 0̓ ߶R:;&*4K ;Q!ϯp:q8NwRVUUH ϡωJx]G!qK5zffAZ|^^Qj",<V2X,HBVJ?V~drH*Y+kkSĵR7:JZzU,ZQmow햿 H p|[CqvȿN©e*~#<4?)+ɳ=%-2 ˗zD%_Tu+hClWc23=G_y%)E99>?R4FFh ҍ{ @*VI64Jp<۬-:yyq^Vsȕ\, Pg 7J} ; 4;p\uXHJݨ8Q6\ XnMΥ3(󳶴Xb觎]R嵁19-y>yzgǂJn׃ԃgNJJO}g^ÆWi:JϷTVUO|t1#)a[@7ق.l\b8h'(@1་ŖJIL+SɁʇhHe<*1$LYJ0ݩ+ 3\M@UU,.*Q &I٨\4YřrH Q(._$La2dv꠨B1 ōRӍ)iuMBsIl瓼}œe+?Tx 1G`Ee6(| ^$5NV^JRKW4bJ j Y0!1bEY,"CkUEbحoF@#検@#%E}1Hh561!fWtݸ!;wQ3Ii0`P>%/%U,RwF|R866&ϟ tks淫[ZeanQS1& Tj D#͇_y 4658'~ŐH,%!L"E,+1)ϗ ɟI^~QU-,,̤*\V}TW 'p#ҦYf@&;&_:o\WS[9&Ue22HU*ٓg^<38emsNpg{RG4|t|PWq]P T$俜r|j 9 D>+ahdH"Z(uUc{JϘB< m6ln \$Xh\ 1=L; 0a׵ WfejbݳOc|a欴޽#imkM˵+XpRUY/Ǐ^@_16S*=w\Ÿ.t0o:3UJ=aTv.-%]P,)p*z\0;kaJl~+75 X?|u%>nųmbXsUoc>//)4/%ZY ?=,l,/օ_Vx j$-QX";JJhSc͞.n,VViImq OqBUesKNeeܹp^1C/klZhK$\yJT>drPh kn/_ȅqFA!<ˀ^; If;ĝZ '%XsPfFNVhXFLzK+-enx `QjpB^ m)B18/,V çlƻ& #pKQ = jJk@ƘBnop̫٩>Iן|JDG(gr Qyrp@ÉՍРYhLxKKmb·zG| b$Uաs[lllݲuU"*͙iٲMCibq:_$ԡ PnB, .iG$boPs-2e~C9|蠔ҹjO T0Ss[(K4db|| IqAq)*.NSX_'Uq# ШK&Ӛߑ*=dLi3U[poa m倃SRXW3>>`B7#Uu5ӧVy@mim?lu U&6Q d57 W;da7!踕畟"dw:+ 4кQnt\v0c|C~AY._GWeyB\ks.YUǰlFr=zT n~_ۧ:H)dȽ?P 3 J_{qu * ݺUB,.-h߉{2nu<ϼ4^Zhv2'vj^T9kQZP~`_?z{Xx͟I=[e%8/3ߓwfeߞ=Gd\ЫL? qA0.Q[9egf&P'dnjjӖlKNdѐIa?N}TQ228Zў O<̕\4ej8Lԋ9@orI{Ї=9?eŻ,=-+bmNnoCşX;v[f祮D*͕eOB0nD(c߾_ e׽M-[Hp(+R1Y6n]ay̌NKh cɕ1\_)) Ju/h\d%k>(CTrii52oNs%59:g_pp* &9'yIbrwd#*i$f\Op֏W, ]_ p}ώwQE$왫 rP6NJ:9kr2L9%jNCWCl8t7"ܖ#qVy:pv@)?s.//чUg,f456XNBS| ;AMRldX0IȡCetlB47f+K:]L̄\#:7?k,@RI8p|;܏rY)‘F9%Mg¯_&SYMmM<4>Cs/9!KH|R +k0d=|!Oo xޣλɫ}мHc򼣑ѯgyy*>+TM888H";܌-,hNPᆪA꤯7(Հa믿3+%8^\NzM.Ccӏs-]b;Mf~ٳ{/G/c<,jzMM b45n|7Z>;(_G};yB~ޓҾucavvAzzІՐf?p\t@-jFC)ѡӔ< {{M, 4fJ'ٶ ?<%_\÷-75<>#]WTJpp؄կ}U_v@=qw'&1Mp-[Ȏ[Ui@h,YD\.]qyē}Bo PL>o;n, .H]Ҁ)۝^^YZSGoX62Wbs}CŅ~>}!%b孙g|`':ү)0֥=>_\*)?"-U6~,j>aJ xlK+ȗMWYDI!ʵM߃ ^WCbDw[ior@xÎ61HK"$˩*p;H\!=r9Pp8 4& ?68-8]2a;&w@> m\QtIӧjKb28P1:̝ õB< iA_@e RM2 &Kh"bNvml;J[7YBB(:[7O9+J2M%ܭsRivn(",:ܹ3_Uwl!*)֫cR@ب.Tϕ:-WUH Pa Mu[Qq*x .|O,Osk>-nl;4V)P3`{Hci)Bk.2Pupf eNQ=i/}zPuT24!ք3_ȯK_*EC.j0>ճ_^o`;EEo[yOC9*ex|P>&T|}^(׼/_|AHOlTiѫW/*OIO商&\jgB%|睷p,~ ߋt]%wطni *O>lݶE| P°Sګ}`z4VRPV!hLI_ uN?:'e΁|TPRr2Wb(sLM /gP/}7g a\L㼳8` r?=sYQyQ<:FƵO*2 x c#B:J1snBjn'0,H1G})ʤq)U1^Y0%n<{s:w/jJQB4Ա]6rWQ0{pR i:JB@:Pa)89wj n`22)$J$un(>SUɔ[$+) $͓(oW@{e[XվN]`Hc½i89@"QlQdx9_F;0~r7P$J^*K jȃpc UZ*0 :>ͷǰnbg3_/< 6fMʸqTRH:urܠAI1V <;3;pY(/JKM`cqqA ?/ǎdCPW &[-[ڵ#rۡ+ܕ%ťͼo#GNOL\?}ini&hQ3ZD⒌'V1HyyHg#Ys/E Jc>j‚=Ni,#8/SAݷ-UQEWg.Q&@:XXt`) ><<*Ͽ^xQ> ] (zyo&6b;7n'`qBG Wq:a3 ++UÚ#tbb mĔD2*Op&v7L\.h(55"TVzӂ,(2X^|u22{Q9{6ݻ׿5yT53. Vm*4L?¾P(\`"$P5%|B֞Qtu, 28&hYv~y} fڄao|kR_ =\@::ˎ;e П9`DgĤR/:/O=P At"Ol۶CCޏ3T3D?6|[nǀJS6t[خ]V4oRҨ_u6?:c E5=}̩(s-DgYN]\蛘A梵9:,F O3yc?ۅK] -ӰlEXv0<'Ujд땗G ɵ+$H,pGyq; )*e!:{;G,.qwXS$K{M\eLa9V& ry/&l6 @p]; sW?ᅑS''TqJë_/ pi8FF,x+d!7Q8qyY KD:bJ t7Jtd@.T./k,GZ~T IMI)Lr>#7$qQUβ3y "ڋ 6 J$;-L}J:o`q-_%\ߕCݺX +3+@I8aq/s9"ĬB8%dST>$%_8-PX':1 Vrr1XeIÀ4&W^6$;űN!VO.y5 ^{#z,G5*xCC{z)iimmwdhx@iDp[,he[œN׫C_>N{t9 gq꥗^:N \ԩi&͗2U9 δlu>y|errZCcG%@"@:UUYG%lUE75_8.Wr.gg׊ "܂c:\PqP1}piEgfGqW_ɉ@I|\IDe~f5b>SW􇪂e;{kbLz\ 1a޾]qrS&&&U5;44{cسg}tw h^}m۷b kJkkr"\T:ߪ 6Gu<ȩ6I?Im6,QE9flLۑSQJd|\B4 _c.('XAd<&<6$i,COU,}Uiڛe D;4nL+n*3Ǝ!kc؄0)c~:UU&pFd`8+n[_˕;̲NqO͊ XoC<\esK^߸]ϐ8$1o`2$͍[j$XW&a]fZ\D"+m&Q cn*'!~] 6Ikrwe00$υdDI5ֱ;qkJXi`2JcagTueAf^˘DªLJoB2ydZݜ3G#R1hAL32fU2f~QM9m=Qz=v*5 '9$y|g>@9Bx#7l>v;49ZkC2$~㍟(L< _z%ٹka˫E Qg;EM%eeoٹyu/- Հ􍀴crEҾ ׻T[ϛN,JlõX6]:8#G"W;ɋ? *yvm|TllЁJҬ\E,|dA7ŹYm|Ҵrr%Wr%V!2UWqI5;s9?cµEEX@ac'Sydy(}XD"F+cme;qNWfbt2?;RGbkYk%@`4ăU"OpMw]Ea߷1>wMU@ t0ܛ!c#<<4P4t?4áPOh% 2ߩr#^v(YPxzfVG`H²y@ ӱc⒊9۷ON<)jF]76R 2>69LhooB} $;ߐ-ra|@yͼT1f=CY>`JR%Ӿ`G@C^:YV:}Ja U4v:|Vn{hs2>: ==ץJeIIhtY$<-5-bh_SU2j5d9귣SCc=@\F3 |^JHnP)FQ!e%Eck;B i4EJS&.-d-8VɴP bU$S262Z,-reu.+F{,ߦp[~&' ضe!=7Q9sCyw͟B^}Yv'M}tolnpi*YhPW.s_^^2&G$/tzx nixdh8-  c#ѸJBrǶf ?yW,؉c:+,/}R]S+}M88b~EI3JUq}}:vuhG>sQ?)űdSA|9s_3D^z9n7X(_ &NKt|k\}[N%AeUN䜊2Wr0M~=ßvpt{X ϗ&F0c )K1Ny//ȓ@ ̼έaA]r_\7F{i!{TT ,xޏ221UMIc=4\HtyXܽh`<061aZ\֥۝0ĻO8-NW|cwxGN|1y%T^ Y,φ6oz{RUd 9P~%*?ea%Uke2`5Ք2 =A%ֳҸ<#SbDŽ-YZ"1L~6VU҇kC% LmIV9%ZUxnh` acdHLL`A4Wgd9˼^Ii"oF52pϢN[ LsQfԔ &VLGS d\ #L\^:h?WV^* r 5J_ofc 'Q9EBxI{Q [o&yLpTT2*L/\Ta Cs{NƼ &$(vx,]]_34;(EÈ[LUTiod3g䉧U#+!+W]U^bThcFoAu'`c̹ttfhCg0ne%.)-͗h,QDWyO~ hW^~^ɍ 2N%,90r\C$>!%!wUpEp uc~2~/_x`1ݺ @8?S6vW~0xjzJ!#?O^kj4_閭[5@Qa|iy4S }yDh_o }n]}wPXIIGG?/ɩǥ\vOI[?ޯ*Q#xx y ۩e,~~@Ef~I1_zf[>wƺzm۶ uKaYQ4IoluU3*Ɵ2M0>^S/:"׏StmWTjL5q 14M+LOn_~0.L'tďnʉ87E_\&P{cg!,*b1pk]8p]B0c LFe` 8QR!}YCQ's_:+.HZΈj|꒽Ƌ!]~Ø 鵍c\4sNp3 5¡r2odN{Fߍőekk9'Wd\">D7owWT_ɁOY0cxH_OB^=yMGvӼ6/JUv5mrr\ }9}۵[i44yӳ{kr`z~aAZvW%~WSSuK(ReJ(,UҪ:˻N\YOs/U+4]ͩ |tuސ@sjc9|qyH'gLWb]I$4%0njt Tm,``ߗiwg4)vs5'ɓ'eǎz?. TAox*Y:cXіeipO䩧k۷ԅJdn YF$%e:pH /ȶt?._ҥh bķ%5b=p;<4$۷mѣhb1m=҄IwtP̙i1󰸅~']Q)2I㞗LޯDU8v eYs\ɕOV!Q,a6ЯX5&$g)7Ca=%HIdO۩["Kӝ҄gdϑ{d}[[uU2<^ @D\EqOx4dާk[XegXi0ӝ œ0ƼԉXT\ f7fuW=<*sNFˊ$\|Y, TN2jd}@B8`Y#n~`Y5au7 Fd`:<9,4n,F*!:T"]nqě_0PG a_I}>mDiTU0aҖMMx+ˢ!\}R2rs*E*@th"FFajnŴ!࿄~tNQ~/ćU~umҮO tkw@9&ottDZZ[p@~FΞ;{THC(܌ϩ3q{V=B-mGǪb@*ڶl!.݈ J<ϕoZ#5INme[p-?S@ *H|%y'tH@QR&-8lXd:3A]Ŝ$^4WX:>1&etBK p&a#8imY)/.L*$ 3396 V@'͍-RRT Š4$Ca[$`Ǵ-*uI(Ĝ##oF9}C '$Tdo|7$jh|mc_^X:6MϿyE dm2116.8tPJKJi_?'HVA\x:G02= ]ݚ[tjbR'ls[nSg}V~Y9x44[o*۶nG[%v2# Za<ӳso|],(ؽF{fHB 791-ܟAhL7uXn,dRxMiG܋0+E+I/sfU1(?q–+T F2PcicNRtQs[b<)Xa6*otS9T;nJ~wkH\,*jǖeF8~Dm 80?IKToɁOYP*yi嘻{!x!IhD@ Izg~]9Ǯ9`AHQU\V޳c/>ow ^J2)bADLΡsΩr:TBLhRtWW}ߛܰlhݼʹ!6]vJt"8pw4<QwG'v9ܺ0FTu|6J1Tע\BIlFsix?bБ!sFݗAezRrɨMw2MQQLJPk)G^'D'Iaӱ&&TMv9դD{,ԜFԏ\Q('* OSJSN67g K{t*H6>:u8~! h(\i\7 |+*`h#׿-V~ H\uÄ>e,! ]_,*pXՃ +h?VMd ,&F 7HF jX_WT(E@VMu*pyi^Í.]A㙓'unRE8vwtcnv^AT:#T[c=ZR`m:}b{ [15;= qN%3l>47cumMMxQ*_fi|} u''"R4/.7iJtpe]fOhliֺuqfbvn u|ic:6a"xƵQUk+'5cin6VO*<{g9sվ);l"Ay~;*rmsUԦbS* ojKƴK_ϓܬׯ_W}s ,q< Oף:S V,^e|(Z[z \$\@m^̄CIkQBYQ+g`lunWVV4kK[;I|5n&d059HhoWŨKC#ɸy;Ǡ,?>^_ [[' l%ٻN sLc. wWrQnمeT3\(Mwj#%f3. y+s"b@ܻ|6 0AU|-$kG{]\\OLyܓ<wb~3;6DiRUɧ|7\kܐ omOah55<!kq}{A Em[m%K|x`)4*1=zEru!dzH?QFkn *[& I^p$KG_k6$%clلcl>dzP!)cIE,.X)!5]c&S'N)ċ&Bfa*M(]؈ W@LId3#DSw B#܇AT-0K%7[o~GpCf.'1 w~wxi5Aqqe$۴Z%PTC:aׯ,ȹG (pOKWC ށ& 0:6:˨ O8pK0,G؀pxMCk115*f'3xgHx5 }(eBA;'0{13?K5?ID`lvL7[zt0gVd3#k^|r8%@~ Q< "{09%'<.GyUDTpcW҇r x nyos ya YhKy#@kڮ% F"d<Ʊ'%gd翅&UMgyoX3%bI4/hATKo|E w:ޕ',VpR@cmr[/fT<ƥi:;_޿%9$d9hYp[cx6\u?$R^r)3<քch ݇U]LtZ3CS b #0"*(ߢh@R~4NWÿc:]6 s-֯6CRHK\5pnDPseȹ5;ò&x,t[#R U>ﴱQ4dPTԒDʻ *d)JY(H(l6~IhNl%W!P uqN'θ9 Gm:U_#Bk׾ 탪REHfTm.bc4\f' 󱶾bp-LHH.*sx-<]I'<ҳ>>dQ:h'UU t'JDQIȶ(dSa)7o\|:M UfTY8E<2rU v$$?(ۇѡO9wװN E0A=I96zu$n1^LN6=p ~XRVRvrl3b[r5ŹH԰/ЬF&5ι1FLy^gv<bߋ#s=:ZW8=*8'&>(:% ^E+2_~xO+DϩϿyuQ8 -/ܻ}yը>^8 h58 씼An$=E(N=8 X$h>{=S!}Q:<ŷxW'k˗aU])Ocxf&a:p+jq+E h!*y>jUe.%8,|}\ !ՄfqnHNḮ97`ۈ),ȶ+Fy,y&s6Z7kXܞ-.e7.+KաyiJi!DJnXA8/T]| 1'8Uyu4 DddJ]EEnlMr3%1g 5LHP!e 3$ ^IAݤ|ob/9a5ir_ՄǢB+-LOV(TW_G{pǭ4O܍70E@aYY ^z%*@4 Fz%8]vMq0:6 W>VV4gye󄋙\BAt:PzI=J8QqB~'Oa~qYggpvfԧɐp\RSgϜC10b\5]QoeUZ4'GZs^1~nreӪkkmG`qNس!BVÇ*Nq&[XXRGg!8l> ^ }jct2Nh (Qy33.4HZ5_fmMKd/ɣAUj5XbfMb}u`.9S+OђJ\y8įo`ya=F.oуycE)a!&w%?m+~r0V1I@}gxW8H$UӭBŨ+]o@/)Q%ފ(ܔ  V'ݲ[n0r|':w* |9yhp{Qհ^L\9+5;.^smnqzX=Mu8Ѫ|V/鎗υjCWQaA#yɳYFRUZoĦbbR1 ߤNn%esܡH}?tc-uA㸩|wC-.ݎ,[)8S%5ql{y%yޫ*?>u[j#0" )#e7G-ʍ)>0~!7u *pDrrGuD464.pJ-5֑󥢢6 /`uoVc+ 2k_Р˕J|n(_{5<#xG +l3iJ U{f޳"B%$7=FBMX<xQU[F>:lKHGR3h<PF"X\\A4Sm7X46yƤ}~2] 'R6ޥy}CMP0R6(s wL(Mǧr0'~ri~1'"IA!F|g+/k(p}h\FKV@P~D,`Ur\%g}Asd .>Kg[;>P:z>t7pENO􂺀z28ˤT@yVrVssn LE5(il9鸪nu8}E? g; rzY6J=JV4p^^ )̼:J 2Tgn^{*{VSj1 cW^ULM)f8\ܴ |7pE֙  90t~ӚN+UI\̕+װgpoo_ճW.^Pqٰ%Jq?w_Ff)C 1%܏4+JFY\t.)+\3W@eܵ19Llw=ZVewFYn+cQUޏ$6`º÷hV)9*..MͽCÛp,64!gmZRw0VJ%ox+9\62tHs(7m6$6!&I EredwiCD1J’!=Ze=~DN֣f#rCAd]Bdɐ ŕ]EnHE sO.umipn;.yUG搉-rKa3[lgm"_,lۉ+V͓]$2 ʅ)F. =[)?+0R}'mwK)* SQq;Wܨ@Ǥb(V<XZojNB)CCZ?..J>@N_%? }BJYI ,..TG ö\tPٌhGKk;B5A^wL}] 8Fp}…WO~ uOa2.9%_br=KNSI*KFdM 6&JHfX LHxLZA,ǑbIr8.//Ak>-.CsieMbE5ih@MMĩ1O!D+pTpઓ9a[ՍuWؿe4)7+ny1"oi("k(jYU7΋֏UbNݪJ|Cn}'Xf;5+z d^ cq̰NefPۃAx 3V hU_eP^+%WTRHqg/ZΞҢ<C % r9N_O<|ԀIƟ+(mbeRE SDž=a~ q 6Y_ʢGy olr4QM err%Ai* VyUģ f}J_v~g*UTrJ%ڊjEcDQ a< >[Azf&I#FulVseՙUQ>S<8=~} K|v4`o[3Z?|qEUiG)Dzm@5́н9_wgn5}qBEn2\%LJPiDǷrR"+(qZlG1ݺ[Xʻ]mM-;('76Qpk2=]uog⪜hZ &5߷{COmEs+0kso*M_n- +-0&թ8%lhGur151w0ٳ(d)-n!!/P`Op4dSq6!Eį>?ly׫ ?QTB+URV&`"|LÖc''N8a|%w?H2*jZK81þREh<|:=0fg4HnC[)O~R?I ~m*Cpjk~4lE@*UE@N<9S5ofN]9>61B'χO~SϥnPVB%AJqf \FoҨ%4b[ #Ojv7Rѭ8!QH$E.{k^NlmތN֖z{rez\`-/10_Qr>sל&`4_$ox']zU(  -;wR>!}ZEIlyr# 'jrXQ:ڢ9mw.󀬳cΓ{'\@,ʂB_3n޺QA4`g+>0ƏX||a3nɹ3,%qb!y-tWRe$ $/p2ӾksֳHc[U#ZOtKII x6h\vW3%/ׁ U!!#ctKe7{QTN]ꂁ@87 7'TU+_DxFC[ oϼu"B;V]ۅ""3ohp*|~5 ^%d܈_"G{E Յu'kܳ?|8?ǦfS)sylmm/_dFDi)?Ul?0mnm%ČT~/FEuX$bQU[f31E8 NvxMà*bq;DYed5m(_վ[޿d}, Ԗra;]D E PDh%2:P@zoH@gix~|:^7>y>P׭ϪwD:< ]>S׀)dƯ:sO!C> !J,n)ZKT"ǀ11}SC@mHŒU[޿h8 Nzv"mޙwt[60$р\?:gV2I*$QnBDa!kݐLrra+[{r Qʍ-0qeKdA*)cq.My#,s"f2[Q(X_];( ̓8)X]!X>TE05S 혫ه-$1in7ϗ0PU,P!$c0k ORTC{7tnRy ϲx4hxs{czj "OMiz5IVk_KM݃eUMOM#H0ɃXbKáeY,]y: 7$^?1ӹGf2ԍZL8傎'q 5o%Tm y?<YWwӉ܏7|^I}fffTSG/]0>Mi `th zأsBƆl.__S) Xrs+㑑1 b1;t&Ԍ@*u-[]hkZow!nECυvRqKmṙHy$h;ѵϦ8uRʺF8Ck{{w]yM6ί\׆<ޭPyKn|Ɏh6ekym<+Egdaa3)ʷȇlE p`!@3e?2pRB2v"e '͵/9ukȇ|Bp' %}=̱kB0@X Vtg!Sz2A} :_{5{w~wBj:ɉI!)!G&'tGj8:{mU[ۀnC5 D'En3E`ZyuYZ97|u=!2Cò5~BjG!±8޸6Mb<$rحcTXU{MU"NFo>Z++͖N@݈eCE]5s=gz&<ogش& 桯;+΃S ע^(r!Uo2QQn975 )/9*oo@L,Oͬ~H.t]UH]BU+0o3(,*Mc˷3db Q/j;l&mL#NhN b#f5Shuʲpcɟ4?΂ ,*KS1/JU~lxF* )ꔷRKZJJis&M9q` hLpnf.Ma#52ŘErd*yJ?ͨV L߀sC=D*!|R/WBPEuo~D"FRC=~݉PU;HrPU;/Rm*!yP$D,жaj֐`ŤתN)s"Xr>5la8^7463pum ;(^?gBat8>3PrTnpYΰzP;>1 >}.=)\2#GCm}74AS gVފ`~q+kVkU Cd.ʶUiLf58w5w;?4 Mu.D~6HL1~, = lnnr4L8+~a 7B?lwg׸cE an <4Nc@EVJ4Ż>ӎ$5kH{ x[L76k><ӁV 0sQró>SKs@X|^yXg` \ RTB _0o(T0)$J9t9-_*)XgIy[BƏܖ 7G|V5qdJͬ;67J\H2pL  H4U# k-#c5 k) f8{O9r0or,lkȶ5!W_xk-enL`QqZhAi1X)4aw V,t=4Ws3iW?3yAwH)nb]YX=q. T)I`{F,dA*M`&*ӶR !?+ ;ϱ.J(@J w(K.etӅ X^ZM{{"@2mX TLaaq+8߂a5)2tF1:KS~^ ߿ 3߫@_QӉO2,kdkBdΔɨ ,lU8yFFhILhZ\MI™-uMRcV Yzаm#̒KH%.>\0vLK׾Upz%* {[uB/%&X£?N/OLIz{{ P Dv95imnQU]+5tt`ٷǸpW+f=+(0MEmMk넔fϴ)Jd}:.{pAET#r$ = p/ :\~Us?}9ο/e5IlNujKg\vu7N & #g{`pu  &QM# jɍ MfV062DDcu`=jR#F=J(KRʟ<N:vdJV> 9QsED›mT#0opπ#TÄx܄r!'P!( 2۩!䁠OWw'i&d)fr R裏˲,00O= j@\Tȸ?ӧO * o?eTn Ρm;/g/}D"a>|XxPwvvVT@r--\s4rS-2Ɍ<{={xߪE@ ?|m2m/ MK!gU \b$4|}?i{j$SG6&.^$@lP#5nsZU*+h!H*dOE 7O?Ο;az ùT,4r Xf47ʹh(ɕ~qT( 6{R"V5`'x}rT(yOܡ"j>YCHJi'yߩ. |P{H\*$.!Ϗ֥ r\ka\n+̖*ĖTbt9+:F=cQUjӆVBn2=H 5a)@J&$ x^4̉\C]6H'C#tn7Q[~ $ X"j !E1KwFH]Ͱ7gU5Ul}v9QӰpncL Oxu=;PU.`k\6xj{wl/(.5`nDYoBY,fe^7wlJ5JB󂆀ـŠqM ;F9w#' VMeF $JXZ!ޢڳg?'[8\WV$w*wT ?ٮ79 >zmhf@"RnQnH8@Ɂ)hHnDdR[z5 BH_L:O<”>t-8"%3Դꗾ@P%@Mi ȓS=PV}o[XfE!p+q~*GuW\XYZ|u!:j{is<≼$|@C# MM 3 Վ9Ŏ:c1F53}p~Vy~,!z8O3 |VʄN $603v#J],> յ\\u\8/\B"ā}{uCHe1O*y6  їW0933]p+tn :n2|tV\ͭV F$7Jecй2)NHɘJ,H*4PRÂ4F"H KwD9663#=W._A=!q.7UQNUɻJ/තE%o8$w,Lᅣ8J*vw@gϞ"81^*dc`?͂|hh'\ꁆR,'r/qyP6\jF4;=ö7ɻCwtx9%]>CC |HxS1얏^* >d!kBXV Cd'Uu< Xfo AcSTM:CW٠a7mV]o64UBIEz%{av u0mfj8NUUIN:QCw4W+]؜!y?אh_ YBQ/߿"oE^$Uncky8rx-AxCD* 8a{g|!^曯xc}A 069hל(Μ99:|+&'~'&&4,>~E'^cyͱx KK˚3$*x$0a"g rpzf(jUjݥN uÑG՗p3@Ԭ_򯢵U[~WQGH&6o}VC`(A31>9x2j63%*Y#sػ> #xyh]]}#\b0xpBi#[Qޯ}`YC/G]mj$a]4vNl} 647vq~~&T]rXs~ lNMmcX ,%#Kr]p& *CLwRAԝVEǁ|׈vmmU&&'-'?I<ÚD_?CHt\{{{PM~{{; AnuB 5dkk7P]T[#C1߇_{\j%9z x2v.Fu7n+n.b5<:V>kQp7F_"B$}tVb /.rm  D2Fn@A"/ )[>**w/EQ.nb]3Kp̭ ތT_{;CxSY 7˾UG ûj`3Tz }xݎbsP /GlNqѼ_w"Cm];/ lCܝ7>ds!S'lj#| 4O<8c<0JSܹE'mb.|{wWHwU Ӓ.iA456)surq b("!eGytD(՜Qߵ5t6%abL3 q UW2nʍT>-" H.6VY7Cxbф:N}nuNU^L*.텒 O) ާ fYy,Epuh =7яD|dhlnSGX! j5a[k ;{pah6__QP5931ʿFsK RFtwu#D_Ui*2w?7REI}C#]]#R#Y^y`Tr tg¼i44(\ؕo xꈭabt¹3XYZ>> SW^{(wos#A!Xy S%@0yIfA=q0.\h'YE,o0U)ݑ"u]*u^P)D *kT47. ]k›-G}O!99 { ^'r_{z/lljRxS vi3/_+ p;l8!>w]2cH_%T k gƢ:.+*:6M<15G~.e#1U)9+wac\< )CH!5z6E w]3.%)7TLseʚ̉-'^޷6! ؊ʇ#׉*]NUSR ^=Yo 'PUӱ#YpelΞPU;U$Hh07 ̔U"5bzrh8Oͽ< t*5JPq+Ț;Q^S~ 1m:@,iOSC/. K nf 8*XhD%\TkhkWꊆ54a`'!U ZSS11JX_&lIo|:?Z_cii+ Ë:{:::|7Oei% u}gms3cfz'OFAٕK53<c1pP/Mj8W[-<뫫sLM޷7$[{BJjP. g }' 9:hZ/bqv_~x'7,랸v嗣'Q@loܬu5sE9W\%7 Tzas 89$&B8׶#ö:'&|lO/}"F>< ^ױCg} ӣ,O}"k0;EE D=ԚvXSWWBJ +3M 0}(rI9Td{5*\ˆ\LN#{haϑ3»d9h"|uv|HsaT$DHuk.6y` ;WEp{]Z]UZC>Fbpg`$^dy%Ua۹bP$6yԭ,*DEqH$ Nq\4w\֐TKX8% gnY5j@Gs5z;Z֦ZNxLa::e V#t`Bh&mn'j;2^& psCǥ˗Q-*OHy&5ґ0k1 zxEBD΋&6?Vn_ _˼={*&IisN|nO:.8 ܚQzzHJőnᐘHiB$\ӹBc朥 M DnkkBwenәTc|~RjZ#i2+K2G(nKKXt,W ˭ .4@ WXߝ=}Μd_D_o* XW8d GFHe\2A8/-.bbrsSAuDA*\Ԝ)I1`23HhNWy nm&e؎.VVD5AW u5W5g x+WaK(B19}Ϥ8%FUڙncTnΕ!YEEH;r7;WR̹ք7SXG \h{5@x>`NQJ|\nc{{^4se5?TslB!509UY/| YӭSG'fu,6 PdFU]U51u1s]$k3^|W=ye7{sE:( IxfW_Eٶf k.!c7Yz&x>?-B1PNLZJ*JS~{BsxP8V-WVq<144PׯfQXy5e8 dn465a30 E3gFU jQ ,jxz^CK\\577M{N~v.ш<=^A}≸, U-]{%!X+ j굮u8;߯z[R^}S_pßFp3HH8[Ӝ\hW[ogM{#\G[XQc_y{2;pZZ?" 9VW풹ƧTU)כHp%m&BjYWWKPa uM}0Y]H,P!> eŇtÃ$7R.iUYq6i8$@?FȜFb/ Xo x~jtj*(1 JKQt kZzUԓQ}1*J>J9I`3oz1fd]CV%_S,79_ƒ@|n{'&ZOzu6ʵ"V؄*5ߏ%B@an7 ?Ѫm)aCh~ o=΋/cj9IKڠ Uw˽Zޫp4xq^ !wT+n;S8,T4KFy~MDnaiXy"K=uMͫ4ҀPlF o.܇+HzLC?"TJ;uF0e-A7B5G礆O-N%M!xC_&3q-(5N~-^`Qe91xƍbO5Xps ?LWb'ô¡>}挪*o[8ƃpsz nEuj͙pcm eyM-. GCy|;u6 ,&E>[5^S&+~f*_ZN&F9=k%}eqYn [Ks.Vi?tHk_N*qxCo:\^/~u l~z P_yzzz5d^ =oqY;s]33T*BPHtGmRHkgIXKa cObO֛@JE;&! zOٌoM'n09qdqR\5'Յ=k͟<$_%F1b#@YS*E!|;ЇȺnʽeé![A;3Axx}I᡼<jFU {E[`aMLYݳ|?ؖ:KKQZ %urrW^փQFWT:7 :~S(*Y1 |mI *Ki&h]2$gwo!;;5ǩ+w+?Fzv~zEyMMsiNHDžzku 0q d(c12Q䋏>(ahy,ϣRTd>6+ d>#fڱ~*9GYX\j2SR%uCdcQF6_"!O&sh*A+с~njcGpPWVK0mv AmLCc[ZM!J"$W]G4ckkMB"AN!Ux}Cm}}&VWbg *:#Wq^oDT!T ⌽㵨k'm궶Gŏ^~Esىag//m3 (4+2h' +; H0<؟ +4$&uLI-&"_'y?Po3#9ٔowp >GIlKX71o獍0 xk QS\ŸG?+S A,agfN(dngz>x+˫EQDOO~(xhؿm#ac&1#u/ᒛ'@StfW޶'X`pmuwuXͯ_E`/y$jgge(w]9kwX0nEL 1S@(XuMS5 |@ --[Y[C l6l] 8ۉksx5]hE B[j>g;CH3EUim h SH& |([nQȚVgD}`=}C)nsރ6sEq8(XiX4n.GyK.Jg,:l]2BӄtSɅor2"#ai;yn2sȤU02 G s'yj߃{} } tR [%l͝3_-^XG]<>džձpػ!$#A $!yd V,NnGMFP.^T,)POxJ53Ycǭz !fr@֬*=u n8z ]6(`nK-8|>u˿S;5Y^Z@"܄L {#\׼u5-8,$?A=pRXIeV|j"JagsϿv(B( _8 ~F344Un**œpNByA@ N(JpĠHrIq'Nѩ4Ɍ,^J < aBLiUo=W*UABIs7:ܝ3#R݄~ G84_)7AN?| A}YChnąm|o(+zQ@nfrf ӓom"ȍ͸ٝ@a>?l%8C|hi$a"kpTWɩiޣEH!I٪jZۭy%V =$ԾhkE) cv)R/+WܬJPQB2䘗< 1 eԇP8X@m}AfA%&&ƾ%Nsae[8Z f5K!E(u)Uȿ_ׅǴ[>rSaQx`]B{gfdԐaT$:VsSk%_RslgNX2ѱ56$2Q9::@"a ^^ZV[󨫫\uuھ^ N׆54G% laŢ3n3T._|O>4f76'[4; b jSQV;L-r<5䶲 X# VqcG*LH!lmnhëkylKzvNr eTmՕ04vc\F4Þ=YGҭѼn΋ ܏ni_1q֟SүD])y͕)a++^M,!p]4斚P]#:d5@@e$R?OoMecU-fd^"!wh8r$+mnk%-P byGUʡ* "HrakzϚPh2pf| '&gih,NP5br|'Ecy` -Q m4yR6[p"oڔŇ$6v.n4qskfdv=UURvAǸR.ڳeUZci (#фdEVa`81h L  ݜ:w \C̔"4Ct -jlw O =U]_`+j:9p97ɞ~^w +.%Y݇ M?Jv\';Tnb1;?F5|qL:*0 ͎P{pp{ZO :!˗5D'J 1 ]ٙQ} mzn cf|S W.K0x}RXZG,{!ͨY̥+Wcvv W_Wpsϡpshmaߙ$!FLe54p|^(sV7n*Ωr},:}ug N;pEꂰףlkä):Y}Wa .]S 0@S`rwW@*17پkq'KNؗT)!ؖXWче'\^nBɜQ -/R8}"j?톦&?bm|&#s? 5$|~pSnf(o_?~Ai3ѣ_6I<#8zvǻ[ExtU-B` EZTIə+i"H˚gu:Nýbùځ\ WyDBuA+4ocv-+ѽhlwM-d.R]["PN]7z(oXmkh 5fX$+] [޿HxcuO, zhFhQ.-ܩ]&~ox?{~_w}v"?*z" |ki2σo};(f OF?.a1UKuD"]\63<aiipJuSc=8BA? :EQN0VsӓX%My=io~n7;h+(SHxN Me.jjj@4TaWDcC ^5`MmUkccӼY͗FӊKgq('̺~mO@Âk_S988HZ(O=֝:gٓ#*f~lw'UxceeЈU<߼u S|4 #ZXZĤyiUDԊ^ɓj0i>IQ݊G%.QPG$ \TLREFR;M$QEf$fREKKy Q_RU-RU #ɩI~wl}&I;ɶ=kQq-VWV0icmE u:,/Bػ6 %w!ׅ̰ Աnėz\+Kn5}ۯzy]8E|nG¨g>Qh^V(9یPǵ8O_?L|׻Gﻦ**?fE6 W87sr^bdd{/K k5I$t n- CR8_KʿQH}}aTl pfG{+^^Cמ$ ">ؑ!t_y:(V\,dqqUTW6Kz ]HgT!$yx *%o믽 njx>\tVMUf %,WLiTf\RQY$X7~fd%P$C[CKY\>3.sQGh{;<>uNO':gs 'ԍU۬͠naaMm8x!ۘҰǬ+ 'hBVLRUոz2 sYjTOUeS҂ccks Xhgu#veuPȺ00d6<9-Y™WC)L,$d*ᑧd ?qLenyS"1܄KB5^51XbT2$4[ dˢLlD9mSQ`ZoJR'ǹ47ڰ-7 d%@8AxLEب`fԊ>5&F:@OgClssO{X~Ln41݅vI<ԣ<0CiEUup}Yɉi6^369V~K55`oߠ+3 gscbeR*}KԟZ/3UH]7jƓO<$i.?*ZTn+ٓgb0.?冊x([vCwȡV$+=<(=LPA5QӤ˰qcp͛zUBi4TU j$jbqii_5!NT3sslHxS9ӍzL})"2q8qo$%BA~37n"SFNj|9ו%u׮:#uqUL& u?M{x4 p j "ǹO߄R{O=ƿis*GM?Mugv8F ~ |0 \XS˃{zua3 rC5-&%܌$r#EU)*EQ2¾ K4"Zn>Α˪wy<+0p!{&HoɆJbW \.inXy3]{|(P"40q-9H$|'NXdɢQ.l !BQ8.؝ g18;APˍqaUږ ӻpc BA\e]Ua ?o"+on.V:6d**>ULz]f!AA,JجuQUBE@S:y<$O &5ۡf]Rc1H$NXF(cѰJʬ,/jsPx*E@.TFa&RqEEwѤJQ8ZXr< u-ʾZ3i!ac rj2`#QJB~3QfʘhU}D|~Sm N2$dr}`:a$Fr+tu2'|˟#QZ g"蔰~5!?z h7kyUCXLyY,p}sdt\C|+??A_'~=]lo/ ^]ϊ6[4l#S6ϒG+CW9(ہ@'Z6 ^+khijx׾ ÂM |ʏAQqZwCn=%4b%.w,\\&dյ\gp/J)b4y8XN4\RȸgvgyNxT&̳Vpw-(H&gE.GbzXhs"*2\ ,p]VTҮÖrוa$ pN ^]dc 9Ncxl#)Gb/wG^_>LdI3p.,\bsyG`eH‡)o}!;jLd k+S0pySS=E8Ŷs'e.˝=b +#ջ\` tVjX@9`X$F.3oWzyma|ۛ˴N/ɑ*@Y B99!!`m(Y*˒OPU-CQ2ˣ*be݇ޖflnk ܇CnJ% J$֔q^(A暆CT whDC]4 h+/_T^?aU=&j\"ʾbN%\r9y<ʬ~sm%T4E~3kk=| 2y̎O괣 m{K+1s2멎אRWmHWcviAj:]k7&+ %/Kv322. eW\\TN7[,,.aFGs<FxGwg3<Nn N" wKfԷcADQ]K ˃n_8IX]NσLc_1 NQC/h2ͪ$L$3>_D6fqP,,%1>1=Å gވ1gP}^ Xۢ9='&fP~͓h@5Ǿa 5y}}~m/0>4ӳlzJ.ʜ>QQmq(!;W4soIDz7Q27rͪ:BǞ>*lu4OZ(GRGGo%**joADk-p%!ZU^bI"q5WECd(q=]ya-`xGeTޅEeljJ7O휓s(qSjoB"܌卅"0VUQ ,~}#䕯Xj`2I^*vQT-C޹j-+C?L1aJYd oB0DZv/Ө:hmDUؘ? WC;x!FݰY5 BwBfB5@&:b$c1` ȨX ޝ*-mbv5\+p1WH?oERϋu8n[[;H%I= -~ QQ  QBMN:E{Cv<#x™\3PDZ͊TƊ^{dМፈxbSS۫y$E]JJBSs0b[QUI~K m .|QU s3x[]YV!|n8Vs+hi~Hv],ij,dua,%[z17H@`F$F~}]rhdxS?|p 5y¬O!npTk,/_Y B1Lqt"mkk+zmk.T/ƾz DUJZe[4և}jvM״y[8 cE浱!DbqNP؀jkofu,dbi|m]sZ K6z[ ۋ>EavN6Y[JTQ EMzfPiNUJ.=}x =&xX .]«]-xGՀHr_.,,l=03=K, 9/H?z*{(ض<0o''ܯx衇٧b3N2؎|ocW$TUlDP@ i.OUbk~5(xՓhdF1;;>ITHyKȨg[K#+_ ۙn.<2FAUSm(?Ly xBQnu{q.;a}˚W anhn!\wK(Dna)XY6=xQ/Gwۋ Ę D1͖ ME37*MTZL NX){ ,7\ fW>RNP؅}.ˊ»5nVikQ&$ہtm!2nrnװNHϤ)*o 8u™QZ ؉"auM )8F:T$0Wc0 ]хfdbcB=@cػFM~%YXZbeqŘDukQ8~wQRNk+!@ '8Upi?tc6y.)Y{BUrNg{L& T g4ZHs ٍ*g%f#lPII%)V7U5XX2a2%UM2֋ WVyRb $˲[ nRɤ:>764ϡ* 5h.'6Q[WK8Hr(XX; - mb$LwAiwRz<^\:{uR ~/yB!,5&gUz4zPS%#:sw:E[}&&&Jl6Bc Mlu OĴXDE+jAGFC S.1Źdzz"IZփqfXWfNoo_Mpkޙ$XE:vr{`^4uZQBFKƶaa88j51LHPlJ0UӛܩIN^*۰}%`?zsC8W"&M}u}{O? \/\#\2L&Do^8}1wu>i%z]4z:4ȈYE-*FT^\W'goO/?JheiV~p|f&o$Ä> !?ө,I :?z<^wOkr*Jɩ*[T|T?HM={[K%Ϟ5<$X Lqns6%- $Wp) Kޤ(!x,\dY߲Oup6 s( 2wnYewp=`<O<  :6wvvÇ?&[snYvw >7‰s1q%υ2^x᳄hx ]Ϡq3уP=ܒlМ3؊Y3``ڇD*uFqfsOEjd]3,w1tYpQOoJ w}3BUjⴺ&Lcii3P4OӿƉα_e'_ܢ Wyo]=Lسw~lEc~Y__T8_?|$^rQS]<=]G6{|W]xKx:,_1A_IC0KS/aZn8}v?x 55HJOþ}zӶɰ<ۊLTn'0P sȞ;S"U#t>9E1-d5f9vQ74 qDZ¼H Șv?d1(|>~dN5T]#?l3js ͖&;x Lb\bDѸ3:f/Yo0ï eMrWw܃t|EؼMw0m)Eb8~Jujd2q!irI:(}{xдw@$N@eEaBz~f:uU8577koTH(ଧ[}C5՚سgΝ9G}Had3N}!ڛа <ɊAs54T∝ŨR= H V>Tcq)MhHWqa~OQ<(Ho8w t0e'uhWgšڋMªf+ΠJJ1 .ScS0 \Ǥ~$L++⾥ajBH)F;>0 ;^B|۠77}WEdYa ̮m"ͺJj<8y4:{TJխNgΞ3>4!ݢMU8{ iXӟ~K>ϱc4ag*4]pI]ZF#ǧ754a˶zxeyq]8 ?7OyKSI?+t7o:^~NQƒ5`ceJ*%*kˮnf9%B(J|ȥZj !SqPeYdT:lhi&'|s6lp^C'{;Pv$;x?z L~`HRnB&CU70?Oƛa۹`[675#q%&G`,e89 Łk#߂cGػw~ ? (oLMarl2't#kW lu}f H\ui$x2824F|WGUGC+zhqn|X\XBo {q!_)hqq795t}5ue7lxǰo`?ͤ9,c+P 7 Y_n(lTLgg.Sni}i_֢6{ŜLI+eMֱe7J H5y|p?/"=3P&X6d ~6~#"/ |/-)>QQQ{VsE8==M/GޏP]$_&b-|O| uapkbjBs [][* ő ϥg_@d+|`Beyq\_Ұ}ݍ~M»Å3'Kp~.*iQYK!^kʗ_yJ!?|װ-._w%<̓XYY<9^҆O} eÄüE44o /=v!6Fܯeƒ/VƅG/(8~΋,#}{GU'0;5|O+b9qM鬯lOk|ьGy+ hoiuQtW~iPm֚:|`8ȱྭ?!oS06>vtub}QUEls*rEj{dfR G~F8Fpg.ܕ0oq[3{ 5ܨ>ĮTޫ5c^SQ\YS\$xU1p[E)rn%{Q&2x([m:i "4NkR@s|#Zn&vmk[1CRBUNO^{CUu) AΪB c.R٨nȒgFkY? ["bⱼHHR7=BQO.E8Hd# aD)\+$&m̈́1NLzl6*>]N^Z:d̜ NQj>6QJyVe{0oqcᧃۦ0G/ "{wn2`XVM/Wt}{jjpY=!X׊ ,rSIt|^4_#LNm ^nGɷG)DK_/^Y)---Pr'z-?b51<漴nxOBuM&&0<9 kV:&&]8v*nyoQ/.b"#eϔH?nU3X]yPo(X?==,#(Koidt΃:sgu&>C|Nf3׹&=fe 7 k8QVWߒR#6d9$雂f>75y@ZW37ucbv }r]PCErJ8bܘzQOی6!XDC2NhfG4RUyw1oCJ)]Y̶ۚ?H&D=]p,a"&ǚӰ29K| [$䱦QBQNkJ;( ̓8)X]!';UJJr9.̒yAs୕J蒤)0,R _`!6]zi"RS \`H1b >A hb)z|+S>E!LH2R'Гp2]Wh10lZ52 K)[:H3M&&Kf 3QiKbYj@BK@ɦ _}u$Rq?KsU"J\_zI&7V׻?K c(0lmy@[+[K4: .SF-EU&@2K"oi%1>ug@[kk'yyR#ü~z3(FD90׮Zsks`ʀ%ٿ{&"%LhA-j4r>=7+= m%ZA%7uv4r?WPN\5Ҙvqq50R(qu"F(qV ;Åpo=c`pmM`|+\4AwB?S%0:kXٴ(!~E4}rBO"W3q5f8 LF"YcIǥ;V M??y4Echo$ϑph'jJL0A&ed:C?.ԙӨs=`o O0@`/ɳ"xG4Ժ:yt (<ӟz./Aw$K/EmӪQI$V)x/'O~Rux 28VV64$1<طw/Q+:V\FB e>:Xwgg_ԛ;H8Zfd֢ -9! =][;ngvng$4ZVW֩ u CtWWW%aΌW}^w ݯTᢚ#'rO_ի7ӧ/=t뫄fNw ޏI-ZQ Igw7fg9>ʡb~a-c?;1b Ht6}:>BIoe2fZZC@."$Kq<xZvafF~WWfYe^69jitohY 8Ǒxc3|n"(Ϊ0ݕP|-LZO㜋X|yXU+~E*gK ŭ D(򁋪>RZ?fNJ}_XG)8~aC"'Y[uhI?D_8rﭙݴn*CLi/%oLӕd.:R:ְbWWCW 8 mQy+am};Q@za<)kwԆ tBjshNѶ]H%6_|@/n部]{5RQODmE>݊l =:P'w&ߥZUR,yR[QIE 'j' Yli [fkN-ݤ.PM2D)Y J*];Vk" cG&WAB7Iͪ*l:uhJc'hApFs,^MLM77O}ZU휗Rx?GbwO;*#ḽUؽkɘ:awp2ۨva*9V]_a |6nF^v"?p8&ѲȡV_9rـ/ӣ&0ZBNp1louҦ ҌݍE ~]|'yoN{2ΜO׿/|yٷOl1x 'q 1⡇oL^jr&va۽cy/-90??6B [3+Or+%edh (E`,)7 x,߼~'<<*Fhx@LGe>lh kJ~&4~a r 7.^onaҹW'RBBKn;tP7fHZ5ޝ()}sl})TB9)씉QGĖϣB𰓦)ûP۽[QʐoDQjz|sfXsbn@ۻR4JcX(@@:rE j\Iܚ8pJ=I<؝a"2_%FIt@X.'YY$H!G H(677h4*VE t fU~6r,/`vfZXQj>V ӳWg[Rqn Ipm?U;)̵i'Qt"gtC{]qYS7K &QU@lO>(CAqE$2A~yKȜ%{'Y'q-x졣g3Zxmc52 ~LjABR.'YU9*A\겤=K$as.*xݍ%MEm z5COwï|k$@\O=駟hDIr8;H֏9֔v{owgCR@5v Ped /g0g ˍ [Ȗ}+ uC0}Blk A kK=ԍnY~7 ͷ|M&QRQEh+Hk i i6R!N皴Yv MF%ng~֜e<p;gN 9(֫;9{9iNɫ( P{zi|S۪Ea坖P)2K+inlA{&+pwMضilk~EYwZ&0^亸)!4/P} Y!ΡֿR'M  )8?uQGc_jkˎykUJݣ-rVn^aR)A%XΦPI I!U:>;نQERJr;P妦!Q߿PGYhAlГ~T\6Qiߟ0UQz˕:JKQ,k*^#ԓUJͅ Zҡg )_}-n$ثEpEUVGDEH {] x\:}9>ݻ5:Ёx/!Iڎ:/? apbE !p$ݨFw~k>[#Gsa39  l.:=C=9ӀXda:~rٵo=E-m==  v;L6lR2<(:% tuwhU>_nTL$x7 ŋ%[K7RwQү{ȧxA mwvHpuBON,JU^ߘ`@M"b$/P{vq!8;ԩ9'jAcѤPWV Б#X^]#] .oliɑT*C75JX|kkj-̳Mnw"?'2 eJXY*i /5@]mN=dK_r ]X#=Y[6#qg%^w{]\XxQc{3NέRw(}Ǹ,ٶe,?_e[5ZsꁄDPo=&':= oܛ:%^sU6TLMĩduht~\2ʛkZf*6; \!>xQZ F~PLAȿ.eJ\>귂D<קZp% զ Ӛwdax/OKMr-׆\;az{fYmr*r(kԥ{ )+]jI+A=D@J5䭲%*MwTGAd+ƗΧԐ ͐B|s g|X-E ⴉڣ飶բ4`]!oԾlДƇl!g[A#bn3i]x\}55W8KPg#0Ն$N_7>5VF4ǹ_CG0iQPY- ҼUIpmA'nL̕yHߧ:+/.kHIـ'zZ#ϟFw؉ㄴ|pMyaN ÄFu6#B,x}xZscsSS|eKm5Ja S3slAʶc?uϹ;~5h:/$4qLǞN:yAHbk(jocme+O'Z!MȲM P\P%y'2:%𣣳)Οm>;*ޘ]R_},_n\zUOJ˕-BlF̱Y x&I.,r^AvO@_9A6o< vޭ Mh1 |X7QD"MǞ&t*v'xnb߾Q1{-6^7'} ʢ~uǫ/y{/VVw +RsR(]Ӵ6e2|YJ\k`58D)Ӱfʦݑ gjfTNI"5Ўy v[BB8,?n ;Y'Om8LȎ~Oa,)a a“令nq>1ìB+⽷FgG(W#Dx ]t8TNM֠ГDVމs朊x[Z0? x[N(V2JzM]5:Vk]?ǮD Vn݇x.UMmb+N.A*UtpD#4Q7Ul~9 C LL㮎6U~ ؋eVt&͆v1uu`y~O'+y8='n\'~W-QAdkD@+D 4%~U\dyXP5 L ߎ}W߱Y ._6}iLkD=3cn>X:}G=EnjϞјŢ\C7yBeeZX\zy ^[( F:]v-/P.5`<;ϱQCN~Me"9Ò8Ro[ 8y hڽ1)"kDRJ=O{-۱S\O*;g VH6Q灖y)ԪL#w-gڱbΖV3n^9Gwx$y^Da4|ZwVmpʄ;*&{(eHE{T6am5}o{y- xaeϲ d'UnxXoπnMP1Lr#\[)6PPvP6Ց;rҼo_CM l&K8fxj͡vt*Fh=lג:nXBlExKhmuAI$bK A* ӶkǜMl 8lԕ-a>F I X'NPBڵXCI:hC=$·Ip :vMtvь2Ap? Ԭ$p<8~nϖd1.22z:o'0s bjj( Y" s2~<)XV[8;n6Z0@Pu]]=70@BOm=]b$hq!O\ ^Qp7ZWz BP$ͩB78Mv]%X'\.٫EFP1"Kna{c6T2qS (6d8H$V Ii g5MWgg#G}#XGm||er%Zڰol? "F(vbRy$2oY.1И[H #. J=y+ܼnv#:~PԐ7|.BJ24ySI6 NN|&:ֶFeG;m[."2~ =ޞ~l^94kAчMd8k6._v8s58V6!ݹ]H t ˍYX5!19eɛHtVnpl{ ~ 2+3ȖjlΩN*Ts>E$ׯ""OйA0HԘs|A6I-qQ  OMT(k5UýnJ}w`O#?T$J RZfΌc5tuч% rQ ߎƴ虳g9ҸzfYm~("pã/mmtn+AX[]W0MmhoRTԭE\Ҽ%GąF;/}Qm0BpAcmcCou^=6Ys -!;}O ~`:QwV/^ O6"ZKeK)ƒ¿g0vBgg'~3la ,Vf5N=??ſG8#D'i"S101ђ&OÃ'_w[^kq-`vX{97N'52em8|(*I*:pp/k7F{E1o_c5~t/iy'5Z YnNܮQRT4u~L&U8%m^iuʃ)~waѯ;`%kvAQ^ǃh*M+n9L7`V~^^AUI۴7'EKD7YP{TKRؖ=Đ 9HW;wkFTަIf+s=GAae $7cYͦ]+$%ºw.l¤b{nY ^ }=Y~Zƒ;$MuO腻e;euſ[" T ]ԼMK Z \j[Gf"dyֈMC*#ux}Ri[BZ]Fo{z{g OX*)Z; ]XxML&Z'{7(*"p2O5jQTMfJbڰ7ݝi(@ n rD*S$4]0D)pN0%CeëIp,nErau鋸>=KSBGG+n@)\T9V#!*7"dP5`bvsttw0Zk؊lp[yC{نp[ EB8N>ut<~׾5X z _c-֊ǏW_Wss-h4[)-2mU[\wvqs\EPa?\̔v--]uYT\C4ᅈh{aZ;o h3|GUiG1[mA%[Juvø4<AH~!ז偤~չ|vG琟/PWa H7[-ՑilC,ԋȵ{r%1ʽ VbgHJmvBc5i kFT~Ef78p_ 70>dP&wV;Ef߈*N` 悦-3Y? 8ޜG!NH x59´4v$:LDp8Cd$+u+EFRo\a~,䏇ܢb wHd5ka$r/fJfT#dׯ+EB))Ԓ>*]¥)$bS`EӉL <='*JQhIx)ё9]K,DgW/6| <+pGm+\l?O%cՃtFE3e:} HgsXYF-llL=y1SYj J?)Et_Q #pz4 -_2b|m\T92);)LGL&sspo䋛Q.vd GiFXjFPocfe6T-{^4o[dn8/HnMpcynoXNduA2: ׁ2X:`4łx43%Ay@A.ixRD]RE["?Ь>dZR6R n7NIX%#D!jimx,|? 'kM|_IF3.l,"N4h3P_`њ|](& ,FhuuAжL m\:`E ,$=c7RW+nUh (19GbAloٌM^llk v_%3qB>o>G=""R6wL&s=Z QLhBf8y!L-n2}^_xqE<[Q؍nNMk;JY"+QiLU]5#}E@#ߍo;bXfTg |Oߣш*EEfꚦfeeaTf~e\>j-O_E0E>ũGp-8>vR5b0JHPft1F^ f@Cx]S1etxn cj^ Vonx|^5=x< [=u `[^Z민. wtC 9$bb[u6\pZsl[QԮbp¨yE WgoomscSن^B}yw9ޫ@lsLH 5҇'<ζ$݈bfba·Ul,KgrcSE{('A줪қLXUw_!%Ao`43g`~| Ov$*u9%i-DduQז.ؑ=~4[#L~ j3|L_ 8˘-fuF|m?y`#,aY6?ٍ(} 1|"L >/X00 }ST|J"r:V ސiZ]v?`T{pɜ[|p`KZTA?٧ٚ:>l ]Qa,o7hq~,2 rCfw&4vT&k{xdD'k݉4hyEloRxNEW,,D|>2]](f@W.֫K:ÈKh);`HtU +>,(>f뇇gsH]CPVBFYjE?W+z5D͹R$Ԕ*1$L"CV;*$?ÈԤ$.4U*t VWm*() yHQ. *ư)noJB8&C;rd o{UaB[*htDy~?bM6JEyA&nCG{cOK$7i!?;-T QΥ8t!*z;c%iT b+}ZgۇѮ_Fشcx0O (u@>#q>o0d&~jNP//0NDuFDbMg0̾,~l_X<=۔}e;J䄂a^|e΄/xGG,,,xhmԸ ;LQ`!B]l6)L.pO akF^J*~} ZR9GOþ{݋KW nko v=aY|cN^Qiԩ0tE^gqBD,ȱgͬ sZc2@b%0ފ`!T7O1?} W|&(YOrΌ]CUƱ[ݸq& wFpWV705px/>.\q%Q+pewсaJ6]8v`J1"i u*uix[s:iQDOs"JTxNlF6p5-!`|l(sO6?v)6Mp?T {_P6U}!뼕~uw}U 0pUJo\A=A]Jy>ԡvCݗ3ѭ~N|CJ߲W` w1._iS)EQw܆;5afA#ClֱR&m-wR3=(ۃJKTe敟wGΚXpr: S*bgtZkD%N!OI_{BI>+3.Uc.^UC sAջ%Cg;؇! hܭ$#ύK쇯}F%o9F $~293 F 7`t~pD!N!%t*4"?9v:VU.x8r$~«xYs =| BEulND1BWt#XR 'A.[(fgamuE\dKiR$<;%LW:f !P<1D>ūrQ8T4"P[kYyz ܜ86Ud~z _9^{5ڿ{w biv[} faĚ6kvgoum ' VBe7lG7 tRp{m^*[5͙U$߸m `u]p<.3JFpf5k'iEAQ>ړSZuHh]xktbr ռ/&ǤhIǖ_M{'OҺ/2&`ȱֆmD dt86v;104%-ޙw1vY XE.c10(5xpRNr29Ÿ1Y[27Y<3;M~mpx,|o֭U{ 뫨Vf"92M:a{ ߪ鼁ΦQd)TcDό$~@T[!ݠ,/!@.IhMt ގ:xyW<׆$ѠE1c?..Mp:2`9Pe,"ño#6pT@>SB/>ܒgn..W!ŒI U%]E i xiy'";Ig;[OW_[hڽSDlkõ3bt+r:e2:fX{yFK]h⻫V.rM!lQWɱCqe٥ .OGJȏ_>U3  31t|J\;;a7Q )D{VK((}/AN6ɏn(7ϳO=|?ҙ)ӭקߥ0*Hw 籢l,6Ӽ#ӐpПYX@Dqo 7wZ`aDj&c'l{/2 pvO;v$jnX )7>j7t.HVд$ HTQӧ><ʘkw'GlQ6,/o} yRY0qc?M8'i|j)E )؎/@L*AnA''3"[R(u3tp{zv ;%Tq0QyRDcll75f8G nelG`[TH`ٮ1vt8̚ }E=7_淸IQ_8.U=_Yyr=91#"@'"VeX*: {MMlm[G~g\$$\Em4#C#qtuw{?!Ξ@kPT^Ei]j\&RY)*m}*#@v .p*2#rnv^֤FgUfT=hC""Z/F׵fSB0*㳟9 ::gdoVJaxhPk"4@K*|E[Nc4@ ?_Ty%Kj:"^Z[]W!*;tS@(Wkq>|9›8ibG_'•,R2s18Ouscc0#cغqniKf&NF3k) @ '!%on; Yg8|0&Lvrpoʼn;=Nih;=I6 9gfO"Vɢ,}bDl<)U1i{+*A~[C **fh}XTʳ]|WMrF}h-!ÇȳXLjl!i<)$ioUă}v)솱\Va qy%~sJ%ʳFeI Zt7MLH}'[_~Ǻ:4)*!L/"f%S n7_S0>5,,pׯ^C)GHG[iERRWAؖ'((h;݆1D'JuPs:ډ %n$89Et[3&kV\2~B$k j*-^??톅`|jXG\e=5X$'qB!k[GKTtv7يSEZTf5u0MT\VIIGXؓO! mm)UEĤM&kpdTḀQq8V4u[T˟Ya?afr'1JBe R0),RMZ2z2A翨@m}Y|oeNw xx0q ēz knbzLg1k  s|p:EJR E+z.4vٰӒnQ*﻾Nڪ9iY{谚P&yPXE*GO{ddU#nBޭ UEVTD:63*bK/ZIe#J@Is-2 )buVGu}`/PWq&)vKPX|4yOݝx'ѴSOf͇Y3|gF惔]X^-YEK&sQaF웰F#*viؚg0~fJG5St`s RcfCX|Gl@X*yb)>mYٴ6n&+F%>&:}9Ћ3I/jJP)\(-ĺ7x>RBREPMV U=mm=12Oj!=W)uJ:V8kw+& އ[xp٨HJ|V"bYm S2udQL I6JjMp^gC U)pn$f!Ȼ,LՍ3ᮗ3u-a133%[UC>J(|M'J+_ ,p$Av;UQkJI&yyڞI [x-m-> J*"b4L&w E8oUIտri"]YoF?,:锧RI\r O>$~_;}?~Ex٧U9(l*W@L0"us seB=0J$MMD &|:;9ld.Mkbl2_Vf j[ eE>/FP%Q/X&i5:\NF Kd\C{حξ]Nbuk)iӽagK1xhܵ,t~fF.8Jط@Dʖ`wkxm7Nʼn` wv9دiv?NtnC ^;ۭghOцM^>{{>$fDךq<:Y*Wr+*LHW.nN Q7=p3Q.mpxIi;lUi2!ɟ7#nnO|5S3gqDVa u)aav FIsH7ùk?HoXx`#l >)N#?q?~5hX:Qo :d[ + F0NRV3mDVOkB5a1˽~>:vi:Z bÂ3kڿ@Q|ZS *y7D8%j"@QRz%iT4k%1627~2{[2O5`)5%n=Ld [`Av ͮ}zq8T:AAO$ukA 5Qr+`ȸ,$8[]TTY@vQU 2Ubƞ{` 0Á]wa'(=p#CJDfU౾5(]yUhl(ѕ5 )T̊C~.\6Ys#Q i2$|~֜q:5B3377Q-i,qnҡ8%0.)--ы?(5,yS OaАޛE8%2#K@xFZ.-Ϋu\$ xGpD[yۄ3.*ۜ}" yBUn'w}}}xWQd j+N0h#dLzI F9ob@YD~$"7 AO !M HTD#v,U9VuXkpTV9K,50JسO`rv O=>xMv}!R$w:=0KUlu+lvp> >[-F[[uz ft"j֪Fߊ`SOo" =vc0p#J"Z/_$ qe57L^cr<oB:^އ~Kxnh`x9r{~“'MH0TwGǩWiZ58P֠z,sp+LUp'd?_0tc_$SQi'VJMڶC'4+5t׫TyX6ݿv-'g7aZɼD '.qD,AgH9Y8u>ID#`k &Xp̍xksg~]PL=kO֖eD ~ȕ֌fā^Nzuu? X?Fc!BCDT~lŪ%m, %NJ _#+! ?r:Z%4I1 SP=BV^sa*!V&h2 䎎p| Mt]clj1_9ǟ| :#i-øy -V.\"U _ޯS\^"sj=DȅL:&2D v;Md rAɷ~/_Vp_e|:Aԫ vBôcVֱV*7V$h4uaS˩iY__z]#`tr;wA!ՉG+_VJ͌ɴ+MIXR!\+z9>|w}'N k @cꐴB26EIi 7BRotye !rbE,!F*4љUE:Bi29 +ُ[Emi1;^#8Hݿo|W:|NQ*B{S#DoC00M,ί!y_<: -6+CRZ#RwMuttsūю/5~D:)$_&^F$| KZa|)2 yR2weu=ۨgϟ硗/\ڜN~޽80yq'`4:ʍs D֡l)n8 `>?Rh3@݊.c0  "ҎڈSMAvD{Z{\O ˰g|eyxQoi~tk燎$ٝzhA>B3L2% 'Z๴ Jݨz͟~Ր錨_Anx6ni(jMO"糩Cc_=ӖVTNM^eF 9'߱ DmE Է#.%s)@7OS5 0ҙ0޼҂F>%~K(F}tH4K M7RC 1YTHPF([9q8J&4#$Oem ta7D;rJ[kk0H(ڑSsks=LF9%hC ImB"_?݅p7txtf*. vL2PN`]_@o0Ň8۱B@oG"r#`Zt>Zd[ rL~`han =0sSX>힞esMXtR-vBl[s~nTv&ERw=B`M{l&ISQc:FhL j:j~f'N6S "ǭFV#d)Y]0RsU<3 ei NgHFgI;¢ܝ/#4MIYMX;[122_6*R6Bf0(eaG2bEG(QGEER>Zoq^a&fyqO Ob ; X W<(Jno'a@5y*5!Lw6~$c{[|ȥr.YP6Ϟ<<7 [" :-TiTX/6nfdz҂",9񞥀W Y2FTbk)N_BCOb =>Ԣ,r$[DXJ$l&;Ku$U"F"Ο=QC^cSӳ]ګ.|K'iB`eR~P%r)Yⷋ (xC%RWĹ6Zx&i$55sMe[X[#{O~zF=HISgKsGn,h=:!p,]VE]JV**;)^+/ȑ} ۹-F]鼮F%BDE nba~ bHI rH%5H } {to>%@@?_o^PaI^t$ޣ3s؊p>8l? ,LAҰ#(q*".CjkGazg5܉tw %f&aSq4*+ M:FY1}MU^T[[߀g; tQud6O%qGMM"'n3,c0+0qe", [)FG޸$<6­@_~]?!Rqf&iރ7[8ov|ׂ-230ջ{?"LS qhP!Iw&V|9m[fx6;;_{ t'Hv*JVindlz("f%zJQ6 &k(mF5MX], 869l./6,s>o VW+ S.&(0X2Idw_{ <:!<.=uO)J&4DZӲ\-hz$J,x;'+bHU\VB ADJ ([yZUQ7\ËF#WO+fVZ$ =MJn#HrSy}z&x n"1"9,驣C:l|zM {/HHVPu|N"pС)ZiZ4Z 6WsY`nJ7R7N_lV ($PunQhK<'X`K3XZ\<6$-}+&5(3YRV1[.7TJfilHJ22H%gfn D5:X, GSEB ¡֛f|Ϟ=t>LM`89J]Aܬ(~\Ni $w}C")_>:'mh䨤y*`ـ8p$QiAs6V`J-Vq]J%n›ƧVq86=_%D`_Êr~8_ r1u,si 31+%ߋWnp _҄, Ԯ41M@xlZP{xZۑ}mDvcfaIXm._0=; y<4xg>㩟,}lÂ( ,r q}#[Ƃ/ZCTR76469xuL6Esa3hP =5o燎Kt*!PݞID҆ *A &%H$y0ģ0.g탐֯D,T3ir-ԫ;&m?PZm9vE+ ?/ٵnP;MrocT/VhovOE=7m_ܴҊ*m>^V,-qD"ԜGxufxdȢFݮIt K&Noo[44tp8idZk*:庿ήnUS19`6pbϮApX+!ը z&z`ٓM{ M.׍iyudvw-82[q[yJ{`az~V횤#wGtmwäk=Q"GP:WwNhmYOo$5 @ID}ŷ4kf+[&XX\^R'ї jɹn#)-iTP#M BNhSEiͬ@C\jZϧBQZr:W! Z{$3 OӏiM+I@lfzL:aT0ƨ&В& $R+8C!p_lo +'+"&,U-̋/V`ңm!vU+i !d05`Q=d^|Qk~V8f$L*`("#ѧl;(5o*\R3LX vt32i9t"!֒ 4}*%e]"Z^Uzq<3XPh,ÇaHhqN'oFFF">vM.Q{޽*# .1*$T"?Ĺڞ-C6$IWJ^/}*t$ dZwz'lN=<~y<q8S&0?h! pޯ~<.Cac;e3^H4ӧG?| ?kw^:ßF}xկ| t~kff"ǭ,{*F+66nas=uBf)I/Vեp:@pev-kMb61=CPo`1Ps=nd0rG%0aDBQ!B7agnv qSF:S WuU-Kp_VA-y'nfhY#<ĵ߭kx,t/M>K x&C(VaEmw~e2:]p}Oi>+pG{{N^CssVG@}aԇF5X#:[aF9}.x^c)5vLRyǏӾG6f[Zhdt֊ͥe\9N KK 4>oE>t\Idzk| x㍷x$Bנ4Oe 鿳V64[SEkA&5NyU '~2@t LCkqJC[%vmyqLrn&]lbhԊӍAC10:h%728 eD79WPMT0,@Nf~kIڻa;aEVXo\Ea2=ph4u9)*X,ABΩHJ(4~"& &*Ƿ  L/nai=t ⩌^o@w`|uVnlTxEjl'b8}fcX\Nby5ƿIj+5݋T:C`c@BSa{.G` dt[2ʽwt`s-7eƻgo9l>ŵ82QTjOVhiLΫwM6 <ȾL&.(5$YqPph6H 'emE@F6RȾ=D ]ұ6{ B۴$yP׮R&%2/^2acG'tYp=~m,=uܪ%ˋs &%zӬ4j麶u\xg{ξGHi>O"8jYǮN)E\"._^xWw29T&OɫO h"BŸٟ… O}xuW^A,ɹ{:+EƯvI7RE}aaQp8_T-v'Fr [##C/jf9u 4=_qd;^"*oLLpWzOMk= b5ԉJ8jxˈD-8v5`)Uny>ltEBn,%:ۑVֱGNvjsgf#t6wd)2>8a¬B0jaad74o@?C#@f@ :ˈDH:<>FiĂ٢u%X@e[U! Yy 上F|{f'˄_!Uj;F:yNgvjoi@}]&'ȡ}xQux>ۄq.,Th1xϙ 46bK4^#Cʱ&,`o<%p95~ _"(,08k7az&g]{ڕ˰8dWHE:SMaIB6#I\1ǟzdfP*~l炊 I9 Ҫ1&- V.?ڏfWXDxFEr83 j-Qm\Tyި5+sVQޮm} OlkLi@AT*:Z O3WՎH$d'plzdؖ }25񞎎vBe,.-G?1vB:z'rٍH%cҜ_Xߴ|@^q+I4A[I[ tVc@$ǬQR7-LXƣ18vIZ#)D0/je߃^\7iT08 s)q~G: St{99"IzpTn c e1?$.O"ecKI7%*YMO*y/[Ek YxN6憾+]%bS4GxL5U L*q2Nb:q2`ЁAE8#۱ }MM!v:WT=r.5*_54U:d`sʺ]5a.P~q8IfDexS& .Ga/ 8w)SNUwŤ # M౽9n+ɚ2M!Q@y͓nU v!ڍ9$7n}vS)vu2qCNԘHܗu$BF Pv܇D6}Z5#ᙤ ;)(*:f%zX(5ZHl.קٮ)ntNuĹ(WZO*hA*ֈ?l%RחH %+-/0kxxqT0B`"C$ ew#5 r1fT\EGwq7l- fTдB1fXsmP( #ujDǵVr~/Re@D잌Su'wDN`]}pڏ3yjd_Bikiyu$SAHSXpSa$\cRѴnڇ[Y2(=Vdv NO}~SmMPٴOIO*V#,Dl·c?̮zF^|p BMi5Umag;E>΋ 6U>L)5F6avuM0(_ 5+El`-ؿ![Ao!_PGVS ^B(\|Mq¼{vҲDIm`OP==͵`K yRPROR^UC^!\\^&Pk=J#!(+H؜<~ H&⚞,Q.wt|5Mamk\x-Hgo!U eI 꼶$({T$ܰr.B>- ,Uo+WpYǒ*:M.pCV49?~΀\&pP׋7^R;HMR%=Np7h"XH rإ.@^xY²  *\{H_95h4l/d+<bQ޻ooZn'좺˯ X_]E7aɓ=q$A  s}qt,Ik̎zI" Vl*C&z߾{[12:a{)(*V]?ml2JH($bX̋%Q5#up'{>'0kF"z#5W $J͍l%]ڱ Lm`YC`pXX[W!D_ *|,J#4-ZUW/s * UE\tY&8 UyUJ!!OU _z-ɟ}QޏGPY"  .u ˯/WSwM&FYfφFMjUǂԩ|76<990%jvF4޼yS쌂쮮n\_`C#tE)~,iO'? ajbO?F @"p]`ںDs*,Wur +Fv{A#> ɤG(U~/uR 4)?q. VWW4{~a7Mحi kAW5·Z6umkDžp(uG-Mŷf.&@Uڞ^%ԀRPxTt9;^Y "܄lmn+, ^ǎDKDMY(83?rEI5H[~Qzz*'|'no2xm/4ًд $$ZkFܮn?TE~O|+e8i6`av8? c.`?L95Wܦ?Y oh~>`qqƏ O}a?-^5#o$<'C](/,ýfT'Ԛ5*h/ܠםXf vAʪ A]S>Eh l[ѽGO>ȴ?O{,Bt>~X?ʝ@W|KgjGB#%aQ(,C D[` # C6up`D"+AE(`5lo쨩 E@:* uJ1%V#kņ ;e9淋mK»߬Ь494 ujj0qQԇeoq@re˰ppv˰ăf.eV6aXS>0~ꝚWlR`̄ۂؘ@&nia<2GA鷉nPnsive>YMTԫymHEan1n{.*ƻ tXFL*r+?&G6$⪣{/,bQla'MR^&,0޼ 2e ͊_Uʷ!R^H`c?Q %jh0k *3 AOUꐊHJt 0EFF+uVi\ȊFIJ(K1u9ɘQUlnx6$[-w`rjZ?} F"1޽L8N&p.!YkL !q#BOggBAkڃ*">%ScxdE[{+a }=p;| V'ϔe\HQ2N Uc=R2AEʵ?l"&H7TqnDJaAxB_^}M;ZQ8)ڍ7ei46{(%BnuuMAfJI-<4|F*$ێD4Z̾( GΝ;,QgV^=ž~- BV?[!h'j$!j'iR˴˚^)^"zM6fѹf[XZY;aD!~jfEa]7t!\KI);!Ǎ-!j6{8v(a*V\)uD=jO`{c ,A~ ȹiORW=+7ʱupNMp|0߃}c#F(\ıF65dSW5FJ۶xѓ!"ne08aa|×Y9zH#J#۷LiΘD 9rjRG3YOJd-rִ{g yS^K?> gg@+FsBg&]SO]G5*QRvtB3>cnd)mAYQ a3{rF>I챦}ǂ O쳋^;Wu{+%'CP5qSySEum׳v)o߁ha1,O -hA~:+ IΓ^S4sz5ƯD8ѯڲAǪXMg6:.1_ss{YqBkmH۫R{Kʭ\lp%Y6*C`"RHm$zْb.рKf+u^/7ȟ{ؤ uyĢ1ҳY-3&ԓl΂hӚdVSkS"v"3* "鱒z&qLЩ :BZ2N>ljMt_&:5ʦ: Jq5J8\o9 J݃.i:ň^^}'x6'zUH@,;RToFYS%mnyZQ#D./-ʕk ]'1O(y%?kBഥwqi1A39s+('N`xxw(q .^x0٦py{sM#%9(泄ӭALhUkǦ!_F ݩ@QLʆiFj]k)Q将OG&MGYR$6*EV"_F^:Rty[K\xׯ"g C+њR&R,E挀U㑚R c`F7OiGGG+^0_-hUk z{:lۍcԉC8~l?:n4瘟 ~U YJ8kS,溪|@03MKud2%^^%&:u_/}yq42*mB6=xiOw8 *)8>-"{WyW*.) y =r|vhj9"'1WQ\Y>09I9!R.z)Ϊn~4~]=s(KN>$C2o"=҃bGD Nʦ'ϚMԙ,`C6+V%BmԨ˻mn2d\;51AaĦ_'֎}k'%WD|Fjc}^*YBZA;VP9; AvLpЩGG(FrAR.jjr*FWmt IV1~Z%`5t5ZVSK܄Ru}eUk=޼z"~6Iq)vY"*Rg8T +ΟE4.Ez?uM%SvV}ӓ(ZS֓ߣ2ޯU)";y!tur#[4lpp]6[.Ta6sxaw~.jd Y%Z֬8m|S~3IF! VW *t.*ɤX㡉m2f86:jG>Ѵd ZSܤ-}<ؒF x+FT D\G&pu ~>+kƺI79v :8lĝlw{'3Sȏ_%HҊʹ_C`{w^Vo)-[F |{Oա < {#[!e:>k{dZz KDua'Mp5)iqo-6 xJu%bʔ#4[q5q+grOZ x*h&Omm/#¤1:R7CpNE-Ԋ`@YgRWG?~J.BI= cBDw/5܆'&UrZ/l1iK=g2!NR""'J{]vdKF=JQ .*H>$^{-Mvotk'BrB%;VS1w.O;8]@IN!M: 9vl/hY.ܚΔpu-Џ-ё=2FVG:=z{-!RBGk. :(a貖xKDۊ5P(M *i~33AKD?!=Zzb2 N6|lVrL3:W_>TlgtxP]t< vGzEZ45hmJV,״VDYI:>FRl3Yc\_ڄR4X?Qek]*A:E\2IZ1CRM`,{I[uR%AҬ5\ajz|p7_jYԦ4}^R.2-g;h ~N=AQPf#!`zb&^7 3E_>J2öѽ(s,5`MOij+rcmE W"!3[kZH2u:Sp([x v4RQ3ML7` #&#t*꒮CdXi{?~}0 u/f |] $SH6덩Ylf]=]d P0Q,5<QCl^JR TS\j_V)FjP%`'HRQ ՒF%u(%(e#b VWqގR Nj xtvT D>Nƣ01\BoFsپݽq#6fbH<&q;\0qlNk O%MQq @4/ ;AЀ*G{S7'ٽȅKxc#Li(kdI,lV5C]h&$pg}fFJv&o̓>tiDlm#sڔLqUx~ }Znx[Q[-;UZ]GGZCCnnMl#nNh\>.d:[*u|:^ $%L^"T)޳\ UY6cӼ?pVٗ-)O{q2O݃qc(Jy)qwBLJO|bzkڊopN }mx'ZnMK6+c u8TK#2IDAnKHM &_MֺFdaO2ue9b:&|6MPѫ\2=P2^sąkQ2X Ɩ P3 qzXzM03Zc86X,c5ğ!UL(@")jCh@O >)"zG!Z|9^'ي0C}0f4U?M ec=TNTZIhx~ ^>PJZOcy!rMnZ> g`-=Gw0uGvISASWјXFmtn(^OIhnQJUtn <԰ 65 DRx#$U,m5[`D*] IӬ`x\fvEa((񕶓J!!|Spr\}oO?9쳏clt0%w.```>tvqF *%3V+/Bgm#@6+ $]i/mV 6y~JoP уV3irvxE&B(3+- l9IA(F5ʖMbqy >--8uQݝxTPca(T[T;;{0:8}ccE Zpf,ag; %z1ɟ$?ԍ]qU[mZ0IjI7C#^J]:!c0ȁREPJ) +!g+̕x2FTd#JLn]%ݜV~~)+c/ q!F)TN I:[*#цR{S%}B b^QQ:ʼ֚@k؂Ĕx$`\T|;:= c~7*_g14M"n5YkJbYEDlIL XlQUt)SP'$ܕHcC1F7W"y":./x`ѡj^Mt9B%Q~\8I8\H#w]Ե".ERՌ8 }Hs|-mimEkps2OһDJN'iJq*KJEIZS>ZiBd]2sɸJL]4畂]ye҆(f,`RBrC5(ff3AHuk?rW?NXiKWk [7/L?=p_=J6(e+?k&>nC~Io/~A/1u *cCSu6ԫ[gM`݈>T=nX?-L *4Zw:[pF^ԫﴨ-W&,s"qa] o .*n씩S>:R\ۨ}Jr"Mqk1BHƱ=ũ"JQk*AMGnR&ODe8J jڵNv:A!P~6i!\5p?J{73'̚* @fwIQҺ&+K^/tM[]t-Q"%5%͞И +9ywdF7 UYyٙyΉ;"} *sLߩ49MN&$m|_}Ÿ7~wu& 0R޹N3E~GNe u5w:ol??ZyClSjST f7Q%itd rXM.UcEX[kF(@}Lgg&6@~6]heτk*ՙ\.fTZOÙF6tc?׶7X(ǵf*٪$dvm&N9f2˾@xUA|--.1)O1X)cQᄃ5K;ٛs4Jsl4uŧ07x .(B<S:3\; YS Vm&sy} uu*W[*tT"3T:Gq=_}g:> y Xb@k-tXY`( ^*$+-sKhD0SGx٬Lari4W2͜FE@xv!iE#N$d,[j69^"}E(@;!vzgΉb37/@qA2\VyG")јq93 }xx|LΎq2b| 株:{^,<7YB@6a,$A30!}EN斑DT2 Sķ/Y1",a>QUϊq<1G]p5NN %\'*QL&_ߦmtŃ gRFS2}d.{;ORrOfen,ܔxoU#8~ #ʢ ueىpp\:aB'{cx5͕uh1p0:?wGdՓ?$H1S?-KI'V!,2:Ie_L㡽D>^W jDR RgO?/~|wP'{ru9s9ek/4 7U9@VۤdyT6e}kWZ( IK9p%iiU6׮hJd^ӃG#Gʥx4-Dۙc'NHՒCK4Fx0U"A1CPQӗ~f#n[k@޻5 iNC#Lr{:ӟg}cc]'䕫WRIR&٫yJF /?/kk i4Uku^1| !}Ac&6u Z*Kl p߈XZ_+K}຀y8vd8;B{ZjzMF]L> Ԣn֪#@Ul`F}HuvI$;#Ha[,W. |=&nh: O WGc P85M SiݎD<z*0b8O-, 4a@xmGڟ]+ӄ.9ͬzq'%x}O'qUD_N)<-sXvZlzך/,B'MY@hzx^3x R]#Ͼ ֟mԵoPO1J &UR뙫c ?/4ldR5x }^'63E})fu0H-i诤c;3K*:3Xs~fĽtMU_EPP~{[kQ6׶-mm2-^5XԺ8W$⣨mS|=N 0޿rSyUY/q|qP$SRG>sBW(6vVc8M~tO.Hdg_R]RC5ֱ$Y8!Sߕ eUaEpT<_Hc1(-q+6ݳV+> Q^9M 5US}MY%Z.|?SyEs _BRC<֢++ r[*lnm.b&U%댓(DlmIe_߶T1O?3gq t~$c/$~ 69@!Ԅ\H˼Y(KP%:UoU4q5/)c1I 8LDq@$pPnu&8C0;(b2`bBvD2#3EIg8΄LT]t^9u\bإ ]: @e1sQ4)RX|Ũc_ bEb!#gOD̠m~X2N9 cI!Su$A3gess 숖*tW5nz}ȨsA@H.z@C6}aoeccCvJ GFjLcM.mc3  V05:gS)8`[RG¹[oU/A:'0(S h賖*@nǹ젏5۾~x|W鮴e]0z@p,K29,qnx(z6$ 8[8vWl{C  Tb8`{l7N6| ت/`Yz~"TjwlX3iyKS;hg@aG*\Ӏ4r׶wd~hao*ڍ"xFల'%F}B1*Jrjxۋ(U=B|'?Ve s2/NKx~5[٘Na!8Q2ߕ*vIuiP]Bkc`^Y hi 0 `Cfu5ǐQƗ0'IYVU"#煸'1ǧ竫rtqU2o_Vsbt :!iUi5u#2pE~EJ+^$GMHR( (ثKbb '%pEmlJ{$. V$L‘dp ` `;/ (HTyE5:kNĤ?~\&&&T)uTbm.A\תMc w…ӷ`I7W^{]667`%X]|-($?ӿ//o{Sx-R@- CSLp䁀\E\.B֙djuscS [x߮lmlϬChtfÒVc_tZ=5{{h*Բ-_[ Uz  dxIX I%_?g4kJo"TŝIO7''6 7hCva{ZeML\z_.JԚ 1ާ+>k|{G,K]ZSs=MY Cm:ڰU}@8nӎAWOX+3JPJ>B_ 2p8``vPw[P9Gz~X,qQ͉_)y)>wIl;RE9Th;Ѧ6U4a@MoCf,J (tygmNύzb۾R9I%i?=]P$Eߕ_sCV׷$E8k{]q ']YרMߺT49e=V"^G;%?8,NG Yŧ!Mlx p1)C6QZړ2`hiʡ9Tg2XeOEO _fGWC醍KD褴J2-H.ɨݔ"_wXmj~A{ј)q$oŘ)x&<@_44wto:wRsԐ7g/Ʃߟ DX&|nNuq/d%&K2H]Z>;TqX l ų2}d-Kd194l:Vef挬m]jLG@Xg/]3e@'.'T?5bz!I⮦,>. a'c!csssR,&vl h@55 tunJ`C0KS$hJF2QNLNSS4Oߩ#M˛_gdettT~%ۊ -=*]uN'=k^Z{n嬫yH6r`[Mk1\\cbQ>s[YZ/дA8XJB/(q[>XI4T_P sBX 5Lpױ, R~ ~dyY僄%R)sհqp}$_LF}%Re} FSR{7ޓ}@ęH$?9+/_{]j :btm5a(dJ-wʆ xAhþ>9Pje樖aߺ({ ԚgCɔ^D`[42d^Cf[-o- c8”4=`3P׆'Nt鞍ޓ|~JJ0,8ҹge{$%o= Ջc9QC:VDr3)cm<r7QDO ֙)$VV+kmJ%.'ZTXinaNr)3~dw厺/ZAU哦2>VQ>'aXĘ^B"-Ep—B`c ^ 8%3;y^Zz]*̜=1)l]GL+ ZM $[e$)KWnK %g./[ސ{ueס͑@nN>PGUtQ͑j ڂ1R# AףГ5Q@6*b&jpC%z0ږbB+|AcMEOLs,Zm5O1mTwqOD6Z0hͼV+cRVEe wHz*p >޷Zcz|L@sPdt]uX0*Ib*u~G%!Z[D|x.>(&LJ5曯m-U͝:u|t㮤2XK5w>%'Ϟ]۳q]m&|kG&e{uMY^[*`Muq @'7?!%4tkhD* ;++tRS#h>o@/^+Lg|e 4X$]lsXsO11^*E lTiIhn:XvfpZˍJwḏ3`QnT⳧+g,SCRg?}*/W_{Gxbz^oZͮqmm@O''5MODzҹbacI?|/SUуZl1d:]mD0vО.`崴e}u=@?qA|hks>pe4ݍmet89!uKi߸cy-I8euj*,*Oذ27BOؘqV޲rm\]k~XE|kCW '4UZxFbHpXz5;LN]}Cj;׾Q󕞝t,NMcGgiү_\Bqϱ}@ ]@6r=;[[TgX27]|:%:6{],.HZJ0M@ɩ=. OXov!W[Dt%W ldJ38@l1PtVJwx Ydkئ5NiF]Jjb(YLl[jTR,T+?TQx|nX5KF}a7mVb߻-vb쏿 ]( `N'sZ;R#ͨK_OyfA*l:p>>})Ԙv,@7k/TuFQz\cfS0|qGcp%Y$=dRYߒzSɞ^Q7kuD~Q˺khB'3>/;R_[/s׾)3/KՒL9C_qaw [lt85}Y;;h6US3Zْ%;.19A)U[@+b/ݓ ?IQaW$_]PE~EN; aOvwŒ1B碶花LD>ķDM("qtZU4%6`(Sņ#(i&+NJ›El# <Һ\.dj:tkj~wo[ʩ Her"+J].;&?>R=iɈ걀5@ *Sɤ"ܸy__!|VJT95G;1}K^ TGY;pHE-[;y{60'k]5zIB*tg mA 0S,) *  cvC %ۗ> bk*soݺ#.\ɩ)@ێ!dvDVoa͇)@ӄb8uzZumlΜ[y;8D2iA< NX;Ѷ BMť YZەT޶|q#. #YLw< _f0%ms>xNΜ )r†/7yT)ݿk;q,YۊxqUȔuZucցD-_(nyYbi&/}-4BFL=Q͆LRNBm>Fn4CӨ>#a;i4kmm?Q8KF %#Xa_h xĸSIti!B&*_ RRUe*SiE35ĽϞ!.l,m6XZ檊{zYX/IssY"E3L-NKPSGBkڅf+.W?GDܨsb_/VQl6ѯ%LQ@jd&I}MWo3OhP$ qQ,VD6t %__őT*aj- viҖPE(I^I WĎKڋ"Fp~0?:юjRIv7մݬxc}Q{T"**aiZy^ז`*tΦP$'ۨHګ4&\O7mlnnk P>$21J:Z27\}P2'DnX2qDC{OA1Ӏ4{vWӵDL]á(CL = TT91W±k=v8qrV WGPE{LXI%8M*_*!_i%rco_j~n08/HҔ:ϼԵ7eKkoGFgdyѶcN\*$?/|޽᷽狂5K/Kp$֝IGxbjXcNfu_/եg~>j05 ;>%~b?#^2aҸb`oU]bG_8b7y2վ 2O@_; @p?զv+.#ˤ{+Q\'Oxų2yd а, zwxLMB]a/.U.n[3 g/qteKph%3 ldkk 0{)UA3>rwdfjB^i$2ڌXyMSTo:8bS)PgV@T]YߘFFTIsdKG\%I)@b*niOpeMF ;NTF2og粮u"{3;J-In9?? ,:GXT8o: w.n^oG7]M+FKE3CiϟfI/qs W.K؜ƊnH*]`Q]> M6n NNOX c=s.)@qkYH~AI&]r`*(Sb=CKs\ F<XpP)u彐PE3f!PLk堌h$%K(zh+"@Ÿ-4MT0pVKv8E~|\8xZ=:[c{[}xW?;dֺ,.?B`DD5ܸ1w,> FPeFR2 !aT>G0YTQHlsM8SmdM(6L sAwqb9Y9ceJDڵT9SkQ1s$k&Ǐ<`UQ%#̓f:(su0,ahښđLٗmE8h6#0RiLF^j>`;|0"NڧcG~_k8^ȾA#l_^Zݝ}M'sowϸ`ɞ1F;햪S$"AgRg-׿FQD}%cQ*l^j"u%8BF0@=.]-!ωDZ)2]5vE135_},IkW a^:YkMwvq&ک"3X̚ij͎N8x@EY/Su<7VQaufZ$l]cq&~L|U.ˠ}tLgZ_ޑ6]G@NedbFs|Nd& i'*jEhlj~$$7LJ \c),3XiI>Ίx` 8a_^%]?1F.X5U̿=ɝ>?S]IŧpE89- nJ$:SJK jCL?Zhɼ8{>іNA)'X9Ǡ@ 8&R]ImmRqQwT+O܅^Iٟ#9w4WAUp$4ʼn3 ytVk}DMsG*P!v,*4sE)拲 -mRR)G`BSԧ.=ApBz O+#г-;L kx-ZpS]$ffjJ!l+}ҝ=Ff2|FOrKre4>5BYl7:▩| a)A=LIb? t'ώ˔fJ64QGO,h2!1󮀒, F zGQm:QJ/K3Y PaE}a ΛǴ±>w*d,.3 -220}pP s'Bku-*IulkFɝ5%)yLY_1fWVX_}o04J\^ЇӒfouT#Ȕ) ?? m[(N㽢]hctWR1uggSM0Jǁx~}7jD\?}Dĺ{S,lE +ߒɣe:b] u|OT?Zw2 ؔEU[Nħw!e Ϸ'_iMS~c/c'r4I _㦀c ^c9| GHc:qgY8+5`n*b qiu7W'yu0au|v% ɬKl` zX;=qV/zY{:9R:% +?⑺ԀdtJ8{a*(PBLE*5mhg㲽&S$!dLiO(gbQ@n]:RS`B  }6Li̤ U88:RgY&i,HH{+?)ST.-~)&SQI&pOsQ4-i Tu %&U*lۜT tdf `;ӕQW,[TtrQ`k9a4.kF@z5! e4FAy>eO CmOqʕ Z޿dT5TEeSZ&9L/ EOlqO+y=1}? L"BUe1d3dXi:]-{XaNxS"fI*x.\'_H}:(7>gVAfBB1P)EH+@ S[8-($àU6Pd-8#Q !)iA%`?Tg UU鲡J.*6~KfϮ.g0Bd&B+:mjҨ,# }š3gNc})~iWhU㾪? V C5 `L7oԨZKeST0 pJЖ` 2Zz,lCĞ&o덦jby}R`b^f}Mj=OlsZDdɄʅIiOK{)fCژ } R;y\M|86p+W*r֫KaS2@lF8%#iߩ$&302M~jjOڣ"por(O-XےIDA`p=DA=fmUvI9{p&d }S믆NlWIU(کYC{TjKF5,->sf#g6$1'  m0sAM>r&Ti|]AG}uLO&,JhG#Pn65_>85cd"AX%,Ň-940u2hwY#/B/:{*Jç~}ZpZ#\/bTY5G2Y] 6$OJ/ΗWr1{roqY.;kҹZGƐx{IuOG3qhs5@{gk |#z1%<2MJ"Z5T{NړҽxV$B,`<[4φ>GqDZM( tZ8@bV\ݡNCaE$s -;2Gc-I9#:eX:9( H~Gp.]U%06Z8/L:@Ӱ13LA7:O5);I`Ei2JHbگ:/T %b=ɾYk&=\Ͱ#qϒ c1OJ'CFŶ<ɔW]W_(N/ț_Uu)E\ dPC)R*@=Ձ* c}#UvFUQ)&qKko4niVF8)UQptӯ  ,@5XE wc| J6YtM)]p~!ۯ8)xۗ͢xƭ_~c;.f~8/H _IguQ[GZIdFhjZ+W*/ƺ*+7LA7JGTs3bcl|.p@nj>]Q 6l=:stt~}^_[˯UX?\FGT8:1v$G$M!3sYǿ)?<ܐG(09}V )/L8#Gԯ8Yټt[_*7i&S@M8QGusllL83&0C4FVZ*M17n˖*d} I-1t0D5i4`oJ P˶hL&PDxG 3C(Yá'$C?, s7m|F6QYvww_f}pO^Y˗I4*>I.աb*Sn5q\)h @"g 6=lJMZN MH$LmoP#q*˥;j5a^I*TjF~xev6s4(qt1C8F9-Tvt3jcd3٬Vq[ e<=*L&m\,fRjÉHdR|SwjbIxBHhZ8GT0\tVtȱ űVe,*̷1oC"U-FJjL9+}_~cAǾmr=:xz0cj񋜔3"`IG M,2{nٔVBw ,HBQ s(%i=)Q, >jD1sν/[;7_o;=;/;{LLKdrZ^Ppm0/^I ba?=kf zXN椺SX%㋃cĮ3֓{bZ(j=J8֠1.dr:i#.!&Ư֫LcvIR$2IK F7p gQ<}i uQɼEDI;Sz~Xp:`3N̵ h)m3HtKӞhT2.HLpZU:=9%q&{uoWe[xc8J*?c*n"_$`v4yk[]vX 4є>.a- ]mkV@f`XRn /}䡓6_vX tI9}pB|5&c$Nhey kٟL =a9ӧNH6Qx=_a`^ش%Fsaq[4a^8w 9-xBZ K^\Tb9+[lu^ ɉ=7v@][Mjj~L=7ָtU5ciNyb?jF[ Z(1}6`iYξY36yz}:҉&Ԁn_'YJ\/,]~.\Tj !d&gf-5i}/FZLgMt.k5BM)oltnkIs!(wfA㤻`Ӊ'MJ8~SWߐΆ4e裙Eò-|rj6y3s RXνda)S85Y_;A xsc:N{zC"($Qs~bN}I^n>-cʣ=Js,T'+t+tS=yy8ѯ*|pp ek"ody/PMl>)Lwc-dвCP>2-#=-@do˚\a^&egINI뿪za6mnEggwsCx)I"O~S'<"hUjH&55=-#ðNRm[MIMRD(ѨkUբJLP2Z>=#8 k쑂֑dZp2b|2;]>驂^-%_ƾDƀG}dJOeu V[N,L.Y[r)U^v; U26 aqFuVQF8YQM'M&_yL=LIsJ '+WоV:E2mcq]K\:JG[SGr6R.K&z.nπKŨo=h8v }Q|nItT:3?p/bY ^TQZ5^W>=jUz> luX\5%P{FojN/}C:oP9}6}Q٘?w0s$z6E,[w8}ᅩzȏb;)]wwǸI@:Xdօ3/\.dk զGw2oY;!ɏKܐ8d>z4T2Vb0$F<cuPbwћ|c${dRwU?Sr1GUDo;_ѓdJH,$6:!|neo,{\MI~E0vz" 4<[Я ad MNI3t|o).R~zB'ToQYh`69sFRdi5hm젞1MMc@ES C؋ЭguG%:2Gƽ2@vd)x枘LE6!^S OMn#8;UщlȯMHHZUٕk29;/àj< (#unCuvYC54:y3 F{@T,:GKYv$k}GPtoFp-I Xp(F[f&$RH` HM9՟>nhRIVq$-y-!b%'N nmEDa~ o<=&h=N(63O`گ+ *@IH6?!{ tgU*;J{aA}Mz4BLqr'Nʿ,[ ,#!#TG8QE<Lu\ vQV|ZcI+\_x^E.;#N@wdw$9,*:Σvmwݑέ+LkB^h韻 {gYvX";LHmXJH"*&0&̏O?JIecܨFcUxpy5X{RsCSzqWޏAKE%e[ZP=!NI鈃סcrf`#~w8趵+Z ?kXUQçٹG}K¿EڜN5`=5cjM'y'ae){T6P'HZiXii<_ݿ'szZ{sGX0T7: lc%F23g|&zK ,WVIw87Ҳ>ba19,ǟ(<>J6_~Tv*'F羮)TVch<"3AD isʧcP|}f:FU!ӯ!%ӿ}$3Ut0qւ#'Xe%:71QYp4q12Oq8s?HjwIf-),7 IOJ~pcU 4U F;bVZ_: 7nK7Te,]&0cW ޿~C^5If; цE{;2=9-=֋3^5t/K2$zL7{Q"[QFpel^Y `VbZm$bzXrׄ7P?Cgiǣ$Lv_zK螘T.ӗF+. ﻎ Ae_\SJ 4aIpn䄥~LsfM?_jeܐ-ݭ(vm`+ɧ"@ZL&K~.@^y_ZLd**/dFN$Jhm== @4dͮ,_gU 9XR<]&?)%7mRlFH@ #ӔktT#(SSXJ}e f 9uX4<Qr_O9N ɼonh}H<%Cv*('s - 5)t]}9 &PZ_=URJ'ZkHPJS-0I5Ե۱i0zf$kEV$gD3VFPި/뷲hp,[z8>z`x8".EZpmY[B %7e"01[ܼ7hmW?ykp%$ǁ }ZڕF*}`<ϠHjPt6je)wE5 \kM0&ͿL?4N=+`@/GʍSw8MrnaEBqN5\ezVjM@ݎM%S5;jCNJp:qbq@v?P&_'IO¿3 ,OH:ɚʹfd}^iRS1I8&c ` jEy6݁8C6Ĵpn:F yk竧C@f~bJ"ҨMK~NTΞ=/n-R 99MX:r\:煅cmܧ.]qeZ,HHOqm 2Vc Ƒ:zX_[8k 锂cp^O쿬IYdbk mDؕyˮxTYbZC!`t$^?;hsOԨ/z  0G,d2Y\ejjZհl :`]d,fOw4b2IFI*A`*_ x=WUq~_GxfnzBl*X%3 iJf`̞:]Q!>BEZîl<tUNrmmxHu'-)%=)$k]>t, qbh¾d*zL.04sa}DtW}Mݻ*LFַJRČ;QK#:n ]Lc'F=+}M<7`3A5SCXסxY\Y Wd2 LVS"АbщoXuJ%1շHalD&|Mٮ6wG_c@S*Ds&fiMլUZƾJYcUi &SM۔~ߛ~l94:>WzD^SH\[1aZ m Id^ e<zӓZ:>@&͑Yja*4{h>܇ہVCt}80G]@J{V%rE~ӟ촪1OՏ ֟tڊrcI*ܣKޔ)krmMK/k+*HT7b ^谽Q5;&͵S&ˣ ('P'Հv PcliRV:Oep'b9vͻ$гF:7>/#•iZSu4X{rjHkabmjv;+꫆}e)t_J(DTs 5U01򚬬o)K$h{DCn@'&`YƵѦ)#☒ɬu0PSVHwM[jͪG(%EjRֆY?PJ{rT&1Ez@QՐ)YhJ@ko+?> j.N?ڔOMU:N\S ̖QʺhG5 ab0,Tu]&V(d7d2Pu,@xUk[:ѱE+ CqY٧J7}KOXUScùY m䷥{G6V?<<(4)GT{IWޒXz }y9 ɨ A%@ +/~UM.TuZ êDQ>|=u[Mwm*KwX"5t8 /wYړ9stuAH8DO~S&x| HHq"P~S p!;:ZþW zآbB0%8kLՈ})f{Q}S!c7M@%t*}c23]ث>y E}wsqlAp_L pjzN?XwkU8jKIgŘh^GtZ:M_LR 9y~ޔ yIMȥpfJtR\nJ:U0J4F`-R@43q\4a֞ ^ߗUȲiGZEj*AfZDtP lNWь2 KF/R`>yL07s^Rxo(#e#u`>'~~es9USI%TrڨE-9*']ѕ㤙O=BHFscnkZ@N7.-;@RӚ0͖ʻ] vw՗$͡ 0 UsF/]$l g!-ַdߤ{f&Fh7oKEsOj4r{2=U&|X.^ nXE95 ]iM?+l:qZ-+e X;~_I,NWVULaє,2*xdOgsvn^Jҹ8 ' 8oXZ,!eX+=+4ޗ ^#|JڍIBv,d"Kyng$$+6C8)x9qb`(ա1`d`vx720NҖ0qhâ >r7<3ST&NĉokօbSWWp$m8bO" p5tG+/η%IAid#5=%$0Jfz&d`ޜ3Ա2p\r*L`>~]@8QIJV ԣ;/PL:/DQEO*RucqmSK#ĝgXsnHtANēcB{/g ɼkQjӲSޔw"1j=B_SǩNTAR5@NU7H,57vdffF2ί_0e]vH 3r峀])fgoiMO&\]_I?@Y:;UVcSj4f1򣳪NBGT4hSp\.F~EcyNp濱%k?45LfpY 26RqKԵ@MՌ }~NCmc2E"ML<LȦ^Wӄ[QYʉEGkdm4sl .c}O5Ɣi*JkY..u.Z)ymcSA4+-abWwпjTR#X~ӟRrhrZ Pّe)W4T,βVnuoWU!81*U ug9HǪ˛;փ,+֥DxS1~_{SZ?Dw%=TP/H ō;7;9' /@Ec&aM3 lOOhe XslAli 51,cd{2x Sj;cP9qB4=Dl$/_Q7 )<^ xfDd%̄'Oɤi5S T^$r$?%G|x\&Lȍu<R:iֺ!, XƱVga'4z] k> 0vzL_amaG7dw>QQpAZo|0F[ȏ~."#_c+(xLOǪXQ`8>2K@}N6U\Қ>`!ݽ\|pȱ3]O~*3s2 bw4l4sdoo 07x2F8xFO?)X$?NLiMQLj޹BAr`NLSq''egkKV׶7O.;m™v>28X/^SN*/]=UuoHA&fS Zh/R_*mC4;T=kad*$%|иXTzM+3ӳM7UuHIOԗmpHVUPʺxt"^)f]K݈=YiGh?B`S{X>`6#zZ{ }6r$1De7KwTw?}ME5}!U:NLՎ4LeZ;kn($8Uc{֚{DԈ\Gpa}TQ!1#{3Km}Vl-`Z@UfI kbV*LFYu# x2T\81*l;4j5|WI`8J yOeXX'|R:xNc񨶝X{tn} ƭɣtAc&f(i |SS*c0.}{~qhf"+**ӅG3THO:&ҒxS6:+|qq{'Zm&53`PVD޽ѓ=yAÉ K7p;$cǍ7l|dw{Q&G&eKRY~eB=@XyWJ" #JڎVL#$P u/Zgb,w Vhh& ̠OHkq]o\SZw0h_c^kX)tLbk{qQLVWt=a#6ic>Pa򓟿BA&%UL豹ђ-e{W74Ӿ}`?HBW(Uv"Cǭu5 b-jcx[jD#x{MLv4j!VTXp ŵ;=U7q=XZGW%^{N〦iz}l,A>5T/3237Ƭa L@!m6ijip ͨFVF(^Jx#o1qifv\,6%)IgZg0BI&ڲq@NRX'. =3Kn;3 ܻ)N: ZO-ڊؓ3ci5`|: d*;K5#ZK~_qu4Kd$$]ʴtXXUy1ecx xn*œ@&׻Xڗ`ȉ9p ܕ(.vpi|\(G_YIr/.DeS~)))*| ?8I Piw4fW*r?l+&YDRkd}kO}*RdntiRMšxܺL 25[NL/oI~_V -5éwF%]9گ$ X%ΞڒrK3 ҚT2i(*d%ґrn2^NFCGwXe=V(K] ,-O^D߹|h8|n폶E!'͝YI NbBd*L ZzT Y<͏$zR(ބK;&-@4Υ lJuz,v[ylh2'h[k~̙x lqN՟tRv+uKNF}Z4(ʤ4)؄t'HgР}k86[=Y\ޒ݆,rM֖* G12$ku{7@ӦϘszlNi "$;~\lL^vKh*=^c<<7i6'zKG> ut y=I>1ښ^>B=AI& d[N5~0f*%YW6.]-@us{ at~=w%_?N8Uxj8<_{-}&_<e%a /\azygs)SsyL.bUuc" G:?3x4;L\8"Ҷ1t.4* NV0;YKc~QCecP9uXf'?p{TNPѧ?SN727]Lp#C:FiSXxU;doc) Ep>= I.gvJej$l HXNtgt[Gd'z4`?ǣ;3]K劦oS񷴺p$^Oh6Xktj}?|Nu@2κ*LõKrUٮ:wZ6Ξ `#33 23=dan^L󙬌jm5?BZΟ9)KnkX<%uSsl(tcw yޘ4e[4.hn^L%±yIƩcnQ1a |Io-Tkv}kW>}OSSҨ7%hq2l"\%<{o$4=pDՁ Rq3zMLNoԌ/AK'kW<rGqR3SeSX\k^Yo$GmM.p(ڪo)ƅ-Sեw})ަ Wx;2p-jC+'SbD/M=0:6l׵)#+*.4^CkZX.]k5G )9` &B(*:5]tRXȫF3.쯼~;6'CBD3mH<,`hk1v)kUNW*Uu(V1Zcӈ5e-qp]BHĴ+K5#N|㍱+[TFݶ[Uqc{]8vT+4=3bMb bŒp } 8ο$i/}@ |Q_yE^٘KJP߻!+67k XT"# :lBN9جG?~KMMtcB:OtQڕnoc鋲_l+: 8% '"Ѡ'<^[Uu 2VLM0k{FԈ'.+kca4bɦf3k5&W-5c R?TgҐ)^pR( d5ܕ+KYXj]JſZ5iִN08]`h#mlNl 3M\Q %Qh2=b }iل`(j纃IMozSip9~O<5Ρzݒ4|V4xJ$Ik*{di9Ra {A9͛y A4: a(hH̉k{RIEQJuy}0H:& *-Uez~X֫WU#!6Уw( ^Uj*%J] I;GSӧF&sO%X<8+kkk853db8r4bPSj=+ͺYXEV>qJ^p zWޔziGx:I=`I}S :t_lրrU֬|(&)Mb)軹Fu:/>RU-b_(C16bVTJլ?&d WO0&ȶSQ +NL/zzb(SɎ? Bwo3u1p勲*@XmHYa0s-ÙUϻ1q0aN%p{RW[x$uɨ+LjyCdᔦf!A@iXۛd"S3,׺wĄ/ڂX|l/jAO1`h(i1g0mizTp7~iD\,j. }3}L̑d<@$Mz) ՜>[+}QOq}: JKH\[MW@F$(}g"SÞϡ Ǐۋ}nIJQ$ B=* j0)ZԲ}ԴTK=`E;<8d&Z'*D fGLgö$tTxEXI5DqXUǯ>l񜯮R1V l0 ʮ/ZRIۂ*Vפ賫.d.TFSi0PhnL {h FF'wm( t #[)/΅k8ߟ}S(E N65ĉylsʾq`8.,UF  THXBBMKՇZ2cljFdHڥ>! ud O xFXaRQ󺝝}mӃu/5jR(l{vPQ,94gh*GəTJ&:*]ԴtU\ZTE" ^j%%ĵti+IÃvbbRՊtر3s? \̵=,`ư 9s=ڒ. .x^}/cƵ{¢n2'x`ve/IyeIaNa|"v_q|m<4D~v7&8a'uZ}I tb ^"5@RE 5)6& L{HM@l%1 eh_tĒ5%{(&4IP)htmix@Jh!u UU 86DoJc`?!܌E&ܱ+ҸS)-\b#%$LD^z`Lxm{L|Ř nEuPJU1ڏ@BQĚZ@/ *SREa֥ {]1qa͑QQhz9%w/?hsM Q-W^Ƶac;,4܈Rjt>-TR$NOMOjvJ܄6m@Z=sles 'ֶo, Kݍ#^TבpOӧ-4mǶ_Apӥ5hJ$Ա1P{ůچKKPSkOV36Օec]ӧ# xJUKJe,svú}1 Xj/ے"=娺3DK* @ϡZ:[hs_AC|TWhFp#Pf P%4f ; .ٍ瀰ֵFK=iC%``S=sL5@NeYۊK!V59ڷa@rW(I̪d>GӞ^*e3)úc&͜5pK0!N\U붫MlFj]3KQqcЭ]lIkt8%T7TCO!5l*ﴻGSeJPS9b=kUEM)uWCw9nNijI' p[ۙjow>q ǥZ0UͰmAFXzpW-,rcw ܕĥR_I\"xE0#6='[+9/ s{Uiji@%= fSA%ABCJ$2}d-Kd+!BљٳTdU1j)TbUs?vR[0hӖN#yВIzi_]~`齊.t)K$,%@Q*oSu!G}*+EkJf=o|9H`_5cn4 84iaL){(fqe@Vt+&ҴvoFii֚Elonh:5B[YPkYRlk5 꽡Ԕg. Шj{B_4jSaIb1 86"@XS(NOEgV+:q9l I;x XW%SYnO 3*j_sɵۖQ./Np*BCu=0:~~[e0a 8P+1q CMv8F ݬ{*=_ p<ӿwiJ=S+)M}RiIMLI-Mϋ{5fe]ޯڲog|/1|[kR*V㤀sQ3?S{i6=JpڎRxB|b9QbS,ƽp_-0u3Y~;SZL=$2`%&I@n7"oߋhH޺q|ɓ =9RLZ2] delHo`KBz\[ ,$Jəc]•t7P4oÙ4e.Jw21}PVp$UL8'_.Be'V2DfDEϜury1 ,~ r@eS\)B.xp`s(@SJbZM!R@@֤R(%ű DCiL6f#'% Hd+tp%ǵ`jbzfvV^y5粻OW,IQgѤxLikw) U?V5)hjFo-±bq@lljmviws)݄*-Tp8'1=pqc(\Љ)^ERɄI஫wJ#oݾ ֕Eu$ 8+V_ۨ5$%``8ذ E'qn i80&A1H"ha_i65\dSt>˒ QɎefݗΎL[f[薫3Œ(ؤM>J}ѴG) #PLSZ彅Ӛi?Dsymy p9MeoJL@mOXtl+bV)gطT8Jg'P%m$3@GZ듰1oI }p ^w>tҹiu)2Ju+QY3Y1jM_Ǵ"zTA5:ax^ly7*hOz3ZVU]%=)aEmuP=N8l󣍅hVRC胴Qmp[ޔϰGoKcԑ9>IMMK%zn)٣3h ڒjo_>绍O%gP王r N)LIo4qIu,m,g&2G ν[Hxզ$Ţ2S0ƠrTp?23'Z[KZw( )_b͖͚-`dulu%9=ەCѭtI&|vUqsX@G }hv& +ÄuDd|PQY驱!;L4Β$SEU;EP9e{R^ĒA9*{b-) 0g8jf紞ځ>S`O#,`vB]k!IMlxCU~[]]QY-ۆݮHBx"*| .FrpGP1TnR' LɊYlhTi !ӺJt34YQԍڑCT 3VRkX0`ELFnX_P1P5qw{GۂDZLݞ`iooO 2{w%Y@έ1 L/Ւu)tJ%Q%PGa܈I hh -ELyXgs:!4FMmURJ#h'mC䏪T̡@'TSHu{<~e^C kXroo_0F5ya.yScJ‚]w>quz/84lZ*LY~,yR\fi_"xG0:p0/HiyI:wɩW4s,uv)K )?QW_06|~3%RHTic}y8yI- ,X'8-PD1L^)9_>1vq|mzhY#aM8ѴxFΑ=Gv=rl(U'H6w/ L wmLYaGLI@%`\M[6*/CyuD]Z*q֬cj?t~PGx5I\,хI=H4"Ϝ i\d:ZںxoM/Sլ &`uf)) qroB%*hfC% M(:TN`(l-U,M`I5 (.h}bt%Vl uiera.nSS3-SGRXw2tl(Y; ȔeʾAEm1ָUoQ 8rԊ*Ry<3"{ieb2eܫY@a-slnnKyl?IE =BR W,!)OМm2@*ۜ2h^'TC'Y^M*7qf4Ar=/5k3FzB=n׸0}/@S b>TP /1O럥!BK(TpUMك Fp+g1 zMPk YZQBN`gVU9qc_epѵ{=i<_LaBK0ucJUܼ*дyөlcZ~(L|5|$ݩ9I\xY*I֥Y a[j$+|?uLnmO哤'Gؘ:2ea [K.{wDs I7ΒY(J?nA8l#W,)@tp2k8#;Wl)#7ZX>&yO7"OlKEUXO:⹁N@ TaTHe ''ΣmNx)ٗo+Չ#I 䗎ڎW~.qI?/%Ĝ uv8 NSI|5[D6 6mlbPt3#~2q:&i7Z[ * j_MI Ah% DU]QFG#5Z8LVꀃT6b$qGUyGUͿq؏v+lN76 :2Ÿ P}$VN:?gs`juԩ)=WT\2[gj&hG`neYqgffdHeWǟR})])͠.þX2D՞1ډQi5J$ N%`@J5%<$9)܆(بDdUs86/y<#M55٬h@*X2:m Ń\,܌Fc*F8 E@/&S/Tsx"h)(S*9mu)ODvTjnԃfoCtRkGSZCۃ ?7ou2kSPpm26>H6@`Ե7_i)H6nZxSP.SO])8೎~|fTaߓt\J)+xwc?/H}IZnHx(G>3+;s}&f$25+GACMt>|Գ sh Z T2,1S8"s?vqt!HNa$UeeTWEe(ZǠ x;}8X1چkaR?pډL}UH~z 3&S#z|Y2 TaI뤊=y9.'x%- 2LgtG^NR:74}MDՓC- t"IooVBj-9QHQ<*quxdxq:d9'- I ι+ޑH n z8(_P8II& qB{ժLzciR0֔7ԅɨy>O)9@"V'b8c;֠ƳNL Q\Gߤ@Ta=NpE%o| XZF[e,cix#i%tpk/cP9mduGlX+Y "J:K&ES Kdڪ@alzڔ4Չ2WJ~R Pp|2& 9k0tx9]uBUf'۬Cyo<E2qd$e9vE> I)յ_HxRs0iH:*boXċTPAyXaA`)aTq.`Up 00\86T@&?݁ZWEaKEx~/fڛO͟A&t4%y0pz@JږijCZ_]>qs>@r8܇8~hN~O7hPhgzMu/`nP٩C#̵lh,b3Rc*|gka_j-V>x Z'3*(cXTm0;'x~mbi*G+4e B=82k4[,U;N8q1se(3٧)5кخեX~rV/._DJ{qߴ JdjNg.3E!|k-iDrcQ0z9f &X3:s?I |MFmct+ctAvWvYiJ.KNIcږXio q cTk}'P'm49OJxa6SKC̈ XV|x#+V0>luz`CyъBnr={( F3p")4v>;N;'Gei{il~.&TV L( ?:UNN!V$25 ymh9mj9sAe@7Z-;PiL?Te]~MwiA!s"dD djTn@Qv&u5=A!Ք&< UlfTtڬ4wD~&SyM7D)*sc]=<95ef4^>k#bߛ r&T:(0Qk;Zo i|ξ-38nk{W(3 B#NX;WCm1@1HP9)~"4i ݬ{L|R/;4;'zA, ~6Ѵ$;4jkl9a9>AeAZu44j+]NGAMkڗ=Lh;UT03:|FT.>4}ͲѨqT$F[8<*Q[&?[b=HcǢ>)xV]4K:@vzv^z.~`)] q;KDh?,ӕ.ku GPq~$9)ˁᔪ"5i`QJyTt*\SZO|vQX1Sc^O@ k&p'2Pmn-nnH!TV`ew{ @% 9L17v^453] T ~*rUUlM=T* 1 mMn\瓔cBbya;۶I50-T)xvYuA$|ߧ'Z<7T@A(ڶGq3KUf`n-T~ҏ d4puML~8!SC'4b;nIu0NvSgQu4% a`LÝ\6i>NB(k1N124tYs$HBk_Sqm$Dd}4Lm@*y=D5E_4#5}H_TeCp;o8iM}MK@e}rcW}0?T{U6GC dv>@IZ/lqiZmvp0s3|ժ$Jbkq.;ŔeDϚzyWޔ޶4"ͩ⬬>̂8o}Dێ Mlf*y'?q˔> By t0u0?eR4hqR1n)L8-(b\9L%&鉜ǥ 1/|x#L|tX:vӉq/$d7 ̮=<ItiMbL{}eΤo=z-/@j2谌u,IMI_IjEnl(RBl)LQ"rΊpܨ(rO5C(̂Xľ[:GcFE9Ԕ.'Oh8 epsNaks& (ZM`5nC5D (=T&-y@ŀP,(!H҄75$0At< A:<y?= Y\*9+B,!)*|:gݗ֧Cgqu'䢑A9)L_kqz }B'<<-VOkrFԱR.;Ռ{=ła{h'9M%,FFHR:kPy4n݌+FMMј9?<_Cmj!P&mygq` 97ׇT%a#k8r`U2iKGԜNTږ9؇$GMkZӬ hZiyhMG?M}SS‡F8oЖд{-N5ė=mJ]I{:_j )^F4Ɵ.1UT6c)]wyؓv%ɣ$xs66 '+$/s2x/C1Ǘ %myri(݌ʙmYܠyu(w$)9&lsqXӓOcùiQ<-ܔUIg&()L^Zَhr8I :UۆmH@sq?wE,` qq5j@ޘAsg^Nh3xXgRӨ=7Ҿ^knSt*FPPh+&5Us[?^z}- zuWpc1𜥪2%)O}f bתG]: ĥXD`Ie( ^o(n ^駟ǜc3l?{ґdy,6I!A7AKZ2p݇Oc'Q\}k߯|J!%S2G 72z^.w$q Tc_28` _ŠKe~!K62`zّ#qleRbi?4CiN[!eLvX~u\@0|$Svwk7UIO?0$_LuIRŖ*`s'gu,c o,ގ'& AWV(x*?C0 onn*0q{ J:|Ӣ#lQGf-=>ϫT*Ζ*gggec=B70^` ?8z!x4Ȩ&{ a}0MԴֱtx0c9@N4ot׫Rd$ a*F耝NU9Gu$>v,VNyLeD5@pg{G!AZEf:<7jvyfM 7RW{ TXaLJMUBZGhQP1}-kgQyOK9*O=~Oӕi8`#M=,OLu:nEZ2jK7l?tn|Ӂ^^Pʼn% `ƴj^_&ƃ~}+;Zo}kj-rOOOkF׀ױ{Xh0kF94aJ9kiRy`i80/I*2A ݃ #FP~BqMJE&PZoK͛>[8y=^cxcsLSع9Sp_ ,`mȼRUZY19^vOO.ٯNzmi/c$ި*h= u_Vtq M!+eq Q?>+d 2E+[1Q#[l;ako)ԣJ xiN\!VXvݲqz2L48'vJ/!<:%5 fs, b At 'bPKZml\cjGp,W`+6`]>f&c$ɨ bx4,*+JgJ *jCT@XהQkiʄL Hbͦ٘\lBN:]=ik /.qbnYڬ8!浫WeU SQX*ܰ$RJB. QR&Z1bKH|/ϩVeiӭ^kj@:FiI%R$RH1Z:u5&*T;VQXHY?V J4-/ƶ bf4|`e&$XOfbN " !8jڎ 7i?=N獈H!K2?þލ/{- m&<ƤU5*HQgEs(ljQ˴*u5ڃ06&dijw =!ВikDroh|}5U;:!$ vkj1ni.LPqIrhIvq!t6PdH`Zچ:.H{JQWVzGI.e?}!lj%;FVA@tV R$,T%Xe1Kc|M%4 wFy2S; Qh=̡f|xNSs˦2ϫT簆焵Nà ulֺ_2hOȹ}!F1_& 7oɾ"J]ӏP8].lzV~ tOGbk Y!ߗ~GvrmiEra2=ܣ:h #’ɄTD>Q0=BopLqs8B\G=U ;(ZRt$Y(V-|>/zEµַ|)N DeOޔ]Wm̕8w g憸.N/rb8J41)6>B,Q=""՚-3V龍Եpd9\}.۱Z`Ӟ;y2zN+x3^ ҅`MKǎB8Joúz xUXSӚM;?= H/ 91 ~l.uDY Q90j5`br\b *)mMNM)iV6`I I YdiY/Ce/G1 0DtB#;]I8(1#d#OQ }$.TMMO)GJ*y^RHŲ*!BF5T@uyP` $*˿L:#`vvZkoֶwrX7[Mdiš):qVSY,T>@5ɢ(捛Ǝ 'cPolmB 0i$IEJXІN0T]*Nk} {}(fsSOV7UE^ϴ֏0#hmSԞt2ʺfgH~ $V PMÚBԙp*OSe+8 fDm_[mΖUKzJɽ(2C\ ¾HUgͿic}*rkHgrZ;D~~UfU dNkYt0d1 .Tb%)-Dd5=AWCWJS;nY/k&㬧I$-BWކ2>0Ȥ^udEM%+dx 9dRW!s*r箠?A9[tÔx`T)}xZ=9% t[IplYJ頴fpn܂~ Ų7nf>t@R7?jɃZ3*󘜼՛#S9ꑯɀ\@UKf $΂ d]_:vyBCcGJjJH1I+3v$XÐKvZ 1JyV+fХ9LV͖)- >ʙ* Zg!#\!Vh-*6Ḭ7dh&A ;@3JͩWvSWk4 PsT3W(]'dcyy=t]UJfeIݳ&J:kR4jTF yFɚO>P̈́c1ȱ|ڗG ID5g Y*ՕeU^ dBu8ˢ)!?$=I"RYضJ #Qږ0#njQ:9Pz`Ƶ*NYiƤ }sc Ή,lKNh7ƨ*x G/$)I~+M(m]VJ6nː.&656CŒKKeՇ$1@`jժoT<QД}%yLL7T,FrDb K-}Clz;e3[4p?)ܑ +P%py_`ҎII͘4{%rg`f9y5CDvslwB+*Á$mk[ֶ#r\'3X2D0TkC>y^ Ljkl#ƘRP' ˃^_aߺ[JȤu ux{w-OQjcs3ԧPB\FGL!Z?`WkiHH(>:6ooa-`߼n:þ͞A-[HV7 5,_]zLjx4I<:L'WjSθt!U82k;zo_݈,Tq*ͿX߸ ]3s iyhז1NpOLh򸵵 y"c'T/X(4 !A>'flRMLLjD*B֪Ǧ5˵Kb涼]Umnnam}Xla2l5M&-;;uD!ͬ7Ik5Z$AHP|LOv\C|ҎR'''GdVXY;J֔E] ڙE!I4޵-l m j| nܼo…J~ڒܒ:+~VՐ O= IT5UxJURB.OMMO_2 B^!#GToOU4zfM-ԚrnvRC7"!7sMpwV:$4B5.0\ɴ@kljbtHpB"/J^/OÏB25GvgIvFi2 aBj= 0,@oi)v*uhf7i AX;i}~ x$QP2)\MhQuZz.5<q[e=Q$F !I ʼnHfSr0]xٰ4`jç̮ m+, p D/-V'Wk<9#FArmn72ɺ'ˤyU#8 SYUQEI^eaM-#TxIXBUC E$uw_k:S˜$&zVlnKaԡ FMVE3XDh=Oc% Z$@civ~mD[C4"͸Q(U]7ThbY8nQ;R}Mm$FXZu0 q1R7ϙBzN)SVch~&0aaQ}TE°J%ɩ˗Hʾs]`hJ[ZǛ2THuq}#p6\Zz#F&9Wڒb[Yo G|IBGI\('%lw^[7\_>wnzDB?[fxHʏȷA*%L L!6P(%~#%x k4[bc!7􍵵 MsL&bl/mMi4iC4cGpŽY/ju ;c( mR*XYYіCԓFD%m$رR1!"RI7ٌUCQv=F2=/ 15J# 604[#Rȉl &df0"x5 ۊ,tk1.ٶ W!)c39p "(U4!ُ`4S¹jI'yc)dh}ɏHZ0ǜ6w`PUjPiHگ=u-N*2#F@'Ǥu fsaWfAy֥7a1%gho]GLWߕðD{uNenyb1Bک `kOn@3֪K}715lmJe-#yUKy0A٨?_5MaH=?}ܽ' pfZe[2_2]k|aQ!A:^^~sh\C0j|Q6r ժailͩ2ZZCnk)욭IZL<3#Fc軨~+&Q(`nvU4>l^6҅Y7Ab3spμ&7ԯ9"/$aT`Z32$"S,p5ĔtIds94;*1}ђmZ[_[;;B5YT:'+h\L& ib xe ^u@ʝmX>rS;S0=De\Qjd&lq {ARie?~~+݃=suO!YWo6c2V>wYf/dpP̣}(ڳ~ˁ url7<]KH 3:'\ ]Nx 5 <8 ' ֱ, u&+螘еrUWdӧ\Rw"9Qp̝c|SKa\^:рC'y3V=fGITQyeXQIhK wY9vI䲚p1(F[]#aXo XpB:TGoruksK Dl$nRD2Xh-ϱ6$1èdY )*6i]&*B*U%iY˪T0]Z2S514ͮTEy3Qg^kwZkr mx,3m?0FmԲM mI]fA*SߑJWhRP_4ZR"IB\l%*bkHRȦL2ZUmVhj] WmwƢ tIt4a6l~4clW1T .61 uFJ%:6N9.LJ B~&J-LrP]u-6wojn~ C4SllYkZ2uFkMrEc&O(뫵\9Zs\LlfF؁\y#cj-4ep Ί#Fqշ7`IkYX7YY6ʸI  ֑~O'}ۼ.5 %BTghi~4~EJ"3 ɈIlm [=T/3m/b+ITEDUq=Τ,GUI"RYUTeI%c 'T^z;rM+dBt5$/bjzZdlޛNw$#źrY͛P% JDl- oZQ<.JL.!9&hsJ ))(lnl*2?;gv; 5ٴX3ThҲLb3-UYJܒt;!hlZ\=&~?-dmiYR5 c%GL' Y C+$ k:ڡ5( FMipjB(Ŝڭ|^-d?q zΩJ%G'}M&<%, W(ʽ@U~ 釤ZW-$:yB+|n Fvz-M_mUeJ葀TIIҚtOg¢D 1w_Tz|^A41X;zCǑ0ᬐK2>15)T2l]#6N6z aK7^/dA֙renZb2H ęcj*/)Koi?\Oi Qi0hIq7ginB*apPEgiFXZ!&aOk@:$p-q%+'gLLh[SV լaҶOM!ykBTR6)Nj Րkjqf-&`SԸ$R_KĔi$Tc>0Wں5\+%BvB@Nr\.?ǤD]g6Uh)C27T CrPfTiuZؐYrF%)lX׮^Ԉtev0myU4uBs_;$R܈MibRM$`JR eD|d=JZPJJ &2mC4Fl%D5RET, I蜤RMcq(%Q`J0Zz:?cI'G:Z3$0fJKK=K[= ń&aj;$.o*A5D*é VǤy$Sɐ<5|N PkjU_vzIy(Nuja&ԝiu`o$zKVh׵9F/<׶7^$lg[>t,,"pۙ7*p茣'ry䧦}st<_eEOİ"I>HXBTPs/`+i$\uO+EtN`܄aBLT>&]WҎ/P8pmx}!p[]82HO0Yp}ADž,G  =Gč-d>Qt_06-nGZj̮׌ Mg,j;:IgJ3.]!n$`x8L{L(EMt6oj1ٵL&]!)VW$[H 8Jp(6_0ܤ^њ$*ImnqqWMaI%=l;;Ԥ-Т :VLl$ "k5BiE#Q9B$+ !<9nK;G[6CHx H 2@5u:0̑}X'&u2stF57Dv0JL]VXӲneBLd".H#k1dSTW3J0=5m$ԚT R,ʚZQ-Ǿ%͖ڽXu;W: Blvr`(y{F娊?hIC9HYa}O(aR4uqÑJ70ewT)#1REZ>cHAi ͨb>^{uGd!㬑R?g|O"-IZ5=g}U+/Ő}\Q+N`RY?RqGJmʈCũʝdlS~XVou!q[&Ҟ8X9v4$)15pZ˙~`)Z7o1btp. ZU3_ÖI /}eamWDv<}n.-`Cs-c?/}:KBVR!0 O<{w8UB5$ >'Py]Lo#$E=)1QGE\r"dB>Dڬ gQ{S2*Lj@]((Q}ɄݑJӨ,]'h4ڼ6W"+vu݋BnH*X]ϨmeHH am0y^yL8a-ɰ& ƜwtW}IIZURepJ"d dVG@#FB˪Hjp7&_c u谏*S*oLOacXvPBRAL!s Hew1t:{kz9V-@)1 ZsUosD )C[cr0".ivYeխ4e"O 86f n#u$o,*z弐/08Ҝ#yr#iC٘}[-K-DXZOBf>dfb-> Q -Ͻ'X]$JB 1;;M.b\0[3qM&&Xg.:DDH.℟M*";iޝ4d"DEHܩ84u04a4k ICv£-- ?T| {̆[ZIthҞuf*5˨ʨL٘thh}@Vodr"ŠdmMvushJXQmD!ٗL%&ѥ$R#c@">-əJtyz^Vl[](9!0lNOcDǾ*H\6`D3vQ{3.GvCsMK&sA6rJ'd,g4"> z$Zi AXkJ^kR Qm!<[&ɗuq^BCևvh"qdD֡m>CjF&ϧQN2huMI7"(Un[#; q4vHu ]o +&}(I`\/n| \4ۦtA04(kTNkKek:Q$G2H۰| bZ'&-u=9(pۙn,9N<#ؠ_!2pN8[r+{#I>L;h62 jAh$APJb}gzRB"Pd1Ͷ T.LQG[u$- 羴kUS/<&*}֍Ne zvz[A:NUz%3y8[;h=t Yibo~r$Hؔc߃8֔Y }m!ܓjN`y!_!1&o|t$1#MW/!]ǜ7Ą4Ѣp!,Xl TgQ9g ڪTbUH9z>\ BaG2tj2u6$6oSˑd.#)D e4j,V qfԝQo`T;Ӕ Bu r!ɢbnK`,ښ^ SkzǍ S@py#TZ>C+uXMimm]ɪl6k~²fdwR̀φR)Ib=nN vG@ZoC 5< yCmgG$A.I;uYepH^FVe{ȟL&٧䕜JFj!<'7-djIUREtԶ2-@ QvCz"D'^e6kjKq!>twxkx sW"&*DŽ/$s:”;r\ *d<$K6ʅ5/\QBaP*u4:X PLC׎TN IدFEJ$3`G/p+{u]S %va߼{c9wTQmRW=ʉco#vsgƔn2u ۛ}V8ìW[ΜNEh[rEԤn*X5MT9hD*!AG9T FN,S%Vt=ďjԐJZrؠwGQA} ;ڐLDdZ+3LS$zg1z TU:RA)ߐ"̌ڟ~MTZk0Ųi[[q0\=꫟cur K3XsnU?6~ RQ=32iB&%`6_+d"mVؾC8ΎH# 4i}٪*2)6&81mvXфȘe?RͱȼFZ amyHfHۨ8YoVRdњ|5REDNh_U#g^(<3)fus9|>JqٴNe6=buuUՑ#GwSl!!a]@W % }I C2%=M O<3ΈM6&LNSs8""&6FlTʺ47KYӔ*pԦOd2Gp DH!9766yrl5JǴ̈܌OU]ڮ[s^LӨ ;c{}rGh F-l#Ƹ!+[tmv}Ts-’ dA}޸ƍ HnX8ufйp>WW/|.þr̬3=0ĵg=yOr園SU$uO:}O]YCric J/lʘ|FrdQ˄LB0U5W+Gn|ֽo{e NE2@NnF Mwl]'طsVZ[HO5+zG#X8 rJf'Zg"SK7X_T(8nb2(btfn '0uBJ|%Gf]:,ae%XckJݼqKH.v u pz83K%4|J`$aHP!$,kAh 4k ɜQ'FHA'R牉Q H{7Iue $nb^|\*HZtγ% ϜA>B!U(DPVmVq㺼eyts{"ק0(("X$٣6sYQ`N&-3ҭ*X/6C<|+oJ=ːf&fdaV]Sa=+|>&pm=֚6&o uO%ZrGem1j^7JVSefܥ$vo<.ڪz#2ReeDݶݿG?U]Fvp$)9n+UtS,c8J7'duOMMݥ&f[vbB(QՕe&{߉N'_w7*վ}4)joF눜K ȗ+\]QA1b \y3XG& 3cHIyX Ml1-[agc ;IKɺBVnݸH~)KteX"-dx0-}Cg`5*ܾƎxCYL}R52HY MrQ|*..S?d̀5N#1Y@b/ftH_0 {3hB*ɲ,Z5'&. )$:?Bzi*g\4OCgm:7 ?1 SgP>ظcMD#cf:~b+&Ϙ0($0u*wla!:QTdSA0TcsIfIL2dE tjAN)Q3F׉ azzZ|׷}I2'%NNNJ06pYT51!9.IhneAy, )lh:}uN8#Umz]_6Pz:!m$f!T Hmjzhr WIIm0ˋHCjFY?s~F‹隴{F6b"qa=J쏈J+wzGsbd6rݡPmrRDi#2jk&v+)#I]wR~FVF؍OD` {&viGlqpC%1cv~x 0[gfed3Rѱµ"l׈h_績XiVr;vڽ00˿3Xg080P%|g;}j7J";Ybk1] 84ѐIK5؟:hPd ,,,I1<_ Z6֑۳ +]4!c6:뫰fyIxr~ ak!H_[|8HDL;=qlm+[He(LAEkkqy`'NEĽCYũsqY3SԚZ,L::7?22wkH,7ALWЕǀ cixm!Rr$C0y Ip9*|D]G\rRu"O9cuvUU;To/羃ͫߕ$P1TZ{JhijwG:fNSEo'DT %Ξ}J ihtVjQ2+$646)ܭVJEIBDbY7My52+͘8|I%DIҁuٷf3#deN [-C%!YS %DIE!FhiI6䏐MCynW5(6P EgMG"Q _B8f]-%Y )4j0,}v~>OGJ;J?$5Gj3GIYG9QPZJީVH)w.?$a{&U辗JBFJGcW[&ŚMXq;L6n Qկm;]Ȳ (6`Ԑ am̬|"{:k3o2.c4GƺjNd=M SD8cj;IS&w q;! kiOvtJP[ΈjKK=m]@+<<.vs}s?=NۓwL x~jňمKiT:

ta&VNY,44|P4UBP] fmU&-mUxg`[ t\"BCTH!4 <hLmF_:=2,#'@Y+4*X r-i5j2E,4kTG$= R׿0/_\c(GկϿwH$?P1ˎɝW84jUQNe1LVMallHVB(MaP1,4IjX) t:M²v'Ͳi-/|ؒƲA1vc>9gOJat#tQ=a*푉nU4e=fr_۩;]|{3.rw~޷/ձZ{ܿmHrg\ϫY?3RxF:6RDWt?iJ2/"0^\N:3#JG/L8ܦT)dexQ:n!T4U@7+gmJ%"Ld׮]p<أ{ィhCƶ-&'Fq ] HM߂c>rni9 hds8i3\z=u,##˱r sS@,A#gՖDnp~[%WP- @.-RYY+GOh*Pٵbs饗=0hxad(*E,VC*_:LLJs>ôlLÐ{;M)d.b3;34(bИ* 3O)~@\ϫCH*:^W 0,Z'[";i-6)%+]w8Lj*d4a9DxR<*7F{Q<^`z(uHe &) {]Ǐx="7MDZ&tĘ&6&Qyn&*~~JIgUFyi9: ePbܼj)%dc;3=;i#41Tŵ_z[$bed $2EQw#{!MO:qi*8YD%|D^WZV 'FBPDUT/i;0M+~NǶmg$+MA 8q)5B|&Cj)j9ܴo])D&a?G&fb4c~*URJꫫz>x /y/eK.w|h[ Y8aO|9WC]D ߳   }d/s.~QY)RyI Ƶ4lsxO?̯ۘ˪6ddYftvߥ`}u!\s?E_? F$U'kYd yNQ*ȻCfer ! |{m<矇*4;},!dB1{g4MJ:=l0(јH ԛ=tTʥVoYz& BA괟˽ǗGY[]9yls[g[HIIه=ͱ\>n`i)-![s]Bd(*fCj8Ӯ4(DB)7X{\[&1B #U%LUǬ԰ȑQ'mTA;r0tz}|[Ϡ4T!(Ni3<2>;-VBCcy Q"ϣj*#I1OX9JcmNMX>4 ;HBq~v?8vCя"hTՄZHGQiILϜz/ z~ A7_D&6!6s4Qяҝ㘦nviWVUBQB}BE!.LU%HbB34]bEы*+SDUIRI%,9NDˈ ^`:.IzM膁(BmTPF-R)R/c+N_ TM'#RF*ݘ7b5q㣬[_X̞] }Ņt-!)e,c&i,g2wUȣo 2$Qhg+bD'vJJ*EK&TRJNMson8[m4K&Zљ AG8CXqU' 'OmM1{|SA3^ya\5%MT~;gnqD%Y5d&u(B'DU H8NPrߪHrڍbXv@V#4p\G [LVGl䡇17~SoalΝY( j6p BS3t:hz,qA.C!5Vm-Ab*#MT#b>NC{aiVGQ$[t銮hdaN?8Evh|"H zܠUk28r $D V&B'a-&8 @,kd2N:CO3;PuLCM iIпRJN_cwfx ηNj~4~n2yۿ܆x{>EA05r ?sR7m:F~ǕWn8˒Oq vツ%>f npmH`D"AcZ6>3O\* F殻OsM!-Z2vu*޸˴ξp7n&ꋠ+kX~FTO|wK)uH**ۨRUD#D'.$2$ YFI.ҹf/m۔r%S] 9b[8w Ǵe^~/(C*1Z2 б^z0AQ I IDAThQ)J|vl7l`ZYUDu|ڵ aѨ7ֻ"4 4 GYmqB}+tQGub 8rA2l\FVF>_FU^™2Nn9L 'pۍr}Or {:yLT~ twJThC*0+KxΪ"sc2 lۡiҩ`9),& r<)B1AsetqU(="ZMJM de4c/|1nM.!vð.pDGQ%ug4à,1yr;]Ws.tR-۲9t9Jl0 ?zlӪdM֣qqgL쩜*6*7ɗʤ29"';?9GhB- c3~ |9TzWwrlEͬQSOorٍp@:;PV4Li)HAHXSH+sv̮P*_DP tANl6//~M1=3ω'sJTUŲ-4C'lr9Jkq۰=ٌ(Օsl87!FxofqZ:B eIJֺfVF,AKM /v|14EP5. XXML:228P@3-F٧St@QUnw otvqۼTWF}eF!94"lE4]'"Z&ib62诮'@(q+ oLUGmуly]=qkyfܩIs Q& ӦfUDEjUQ*fstSk6Y"B'31G!Pu)NcʐC_z.%aR,2X T'?6<^$2¦ PR262(>_M, i[; |VL18Pek=zԑ;I׮8yy(95r kXÏֈ4QwQ`8Gh "]_ iTqf#0SSWDk eLx4z sGϩveav\˶flٴ70<<4D6^ն5Mi8E81, 6fL2lqLdhjrA&W[b[&a7B5nD6Rl+ngwe9ےo4^d Eٲ$ zʃtUpa uۀ>s?2 +Mj2ӬU^) x}Fl.0voI"IBCLy@ ґGwi"䥤+ت5LP7KVUR{nV[FvwBЮ_ B,Vk2IRbhzu&&Mx©|KC" GE4lt4,y\)MaCJU 'N{mP=ȇtGDE`ZQJ#\VIza\kD RS'-M/PP趻H ?B&W !8qb/||5|G70:Z_}['ضie*^U0m\]ۇ4! q2Y619De/PW Ellۥjmd3M4u*CCBnUc*nzymQ( cnyt6o|3)!J>?q=i5Qoix (J,%F|:ٲm1 fqCB'*Tq$S(MIQβ9yp-{Xs˅dD1,/bιsҘ_N# /S@&Rڀ%-N>a~w>Ln>ҙ'8f+<羼oa5cKg $Z:@&Ȁbt1Pu !:R+1ISB0QEvb I.K%ZBp$$R牢J uZ,."۶bb޽\su;]fggضy#gx=[7oaa~|6;t{=1,˲|ױ.8^?㶛 ц"JA{"k3[϶y,NgؿIX睷ƍ絷GADoqyh/$nZXELlLeZ-TMC$`//9H~(>ѦOtU&!I(dAEmԐ6P]ge~|eFbt|CKBz4Z<=ׁc᷻4uzexl#*cj+:+Hqϩ*TMM@i6!b;x'+K8x 9szt[lK`.d˃,v]N.﷟60L$!贈2W$ z4KhlFnUF^GU5*a[& RAQhZEHE%TfS( 1-U%NQ5K? !B{>J Qa K.~i:yFiƭtOϠ,ظ1 7 scO@&}r2D=`e"znmJy# / t6K@@/]$$gJDkZ7I\'>q'^}2 |>>rxםsפj͗(_8o]XuBB'Hw`g ?Dgcmydy?i[^pRyë#+%Sc#S+t,E(""7JGl۲JLmEuʎIiizǡ2;s[v0{\~laj6(\Z+e[CT[%хK\64LJrjNz pafw'CEq칚︓W\84[MTDB"g7YMѨ2ԪX4Bk7-!V P$T4Mʨ8X9u1heRtZ lB!^'FAiNF#M! PW<+(V)8X]RʓdMDC\AiVq0,VE"38j>|۶؈j:t={v\}#h7XWlD+0MBu{8r.I3s2p3^D^w۔ش<'YE>( a> k-GBEDqG$5FkX~FT_ܝdN 7NdBp^5IPܜ!!"4+ihRCx,R]LA&2Ixh%ȋ ??)~/N ɑ36.)1tvkae7y3ؾSiK(8!u%jZQ?8:R)\e~Y^<1⠁.B '8f(Zs<16f 3W&&!UUBň^DK5(MRXYcfc~goZksם;η_:Gxe ~N屮hs*o[c'+.h*"ךCE,L<4:=JDdBҚ?*)j=$<(*J_&}8bzz/s/1~o{/=lBPIyO[oɦ B6Me P۵"!/y!GC3,x~:eg2 &AR)^H* ܗxADrl mȦl,I9kGyp^Ь7)Jd q _Gr4^++(B v]qo.O~ DJn恽X[Gbѳym.c} qSFc\nFu$&J 鶛 o6s)E#0G2>N/_"L爣LxhQĶ( F(*q" a*NdLiYts9[DÛQ̪q@4ptI1ew"qAEWv0M)ӴdXnn@g>7AB`2AH`\c5ťMT~nu2c(X^Mt 0"mڤQ.I:8O VEMU KA #Ti`$ͺWk @6RH.>gSSu\ۥYbiirix][U5 w}J[ v0jHP()yaC&$F"ɤ&~Lh{=Vjm,!˳H\!I.Gyz]NLP V5 @L+,5EVs(C.{E:?(d@ry& T^jRA1e?20}* JZ˪)S欁rzPŞyb~C?~!annm#^$Z5RrB5EL'Bh:B3$U@3ݬ#ݴ qj,[#]vD1z01M ]nb8`xK0 HzA7JLZet$[B3LTUCQ5:Dss_R3+-Iv؆@JD Al ӡjG`;2LONSOя-ނon{-ﵞcx=(\USdjj#GswkN^>zMmZRm SQUR4ҹ}%qy$@%k)Qq_(VۅYѭ5:e>8FTa kqQ&*'D*BQ "M0~kci F͓)gPU ղ@n܂?T02R!I`8YTEnΗ!ay~)^7W%@D]:!Ghq@ka PD7 ++hF6jC^XTaȣ,]tuu1157gΖ?Yvo;92:3vp֯a9[s~x+˴X|W\q.jAU4[)A<2k6PXi[Ybm} B6T* (\x1bl6K6C4d-Mԃ,k39#33y`߁e떪,MZ~LPZs0z_*;F'ŧ|!_+WR'b܆1 YU/cEV%ģ(@Cyy,nH  9 `'Kl!I&aFOXi\cY,A.$F,B=PU0qt&:ή_ٞ3]sdZqyU`U{0D@=S,CQY1, $kҝ/IxA&'&x˅Q.޲ ߩ4'<6Yݏ$E Rr[ora+2jw$ff'uva$Vˈ0MC7 4M#u-5>\ZT+{BXĹe;IC?DT.a Kx#b|m&*f]QI|3[hg$1GݏnY"^P)ekPtIը̍í/RY!w!ٌ<E1gd*K]Mױ,'zBѣ45I"[sccpƏ2^k2;?33LMMj"˙"+ϫ$8t1V$%nG?IZq[UDX^?i*%$Ġ3Hlbt0 c \ʠ2?YQ&qly7Goװ)k39RȚ[ZM063q0Z"}8&,lh۶VD;+k YFucû/|c<{z Tu>`fw 46o]#ɡ G(F|g K3)7ԕ""Y"iQḄn^jB5'"{!bp)6g'/r^maY(n#k!SșZ2!/ 04Z{xz~VEj,͗Rq-$YB0W4)rr"Dj/tE9\lgq̱gws{8=An܀4 }Cn-}r9D<9kp[~V_gI-s\'Jv tO m3*"-&ޕgLh6Y:m_~2ʷ{+kW>ȿ<<^r ?S{y瞳T:9D"|&{hm[96A\ya ۀ(dY(hEeMGG%Ķ=ˑb2$#d14-r-S-A4OcaCBQ񼈎EGw335Ņ_J6' $zAMPvÉISQAZAIؤ%fSyvE+jm0,MOi {;S>FFx71ؿꬭݯ$UU@UOE!R b(yR"eIPC q$П603_!_ϧ>01Aޠl C}Hdi:ccct d2NQ'$h{U4'PohxS3OEJ( h<͙y3G< gGMYz5׾=\yN[I–]( :h}ȱ a;Q%Y0ߨc DYB (t" I`*n:뢘F:"a[hrb9:ݽH(Y:Ճ{Qݬco _$0mfn;|~<^tXhgphKp59vA$ dP#ꮋ|b&Vȓ?y^xtع~) }v_x!=}8eHB=29VFPMk ꯾{}`9g=3d %IG!FH>߉)']n mg-H/$KHGDILI"WIP%,a o8,-^D'?ɛ @W 5݀A)*F̎!e>fcGiN`Y unX $$ $;VG ZL jD:9wX"t]\t`wB- Ur^T:h/ {=ㄪ2 b=ODHIGU"ҡM*ʈSgqzE ы3{squA ع{v``(7y7Ws s[eoo#4TM'+8Y:s I8]Y]B3l +*PY>[g~~ݻwk??ȗ>?8N+z3(:xM X p4-T]ôSāG^!6t:I,TkI^F#tJu\g|nF$TIIBHbt$dU|r 4%J' hb44*BDIgnLL$u0W_G"۹C gI/ _~!n_1—4ė8n+kgyUtvF; Tw`tFECZ3j0o:qdv2Q~FS3?o9>޻6{oQ\zKXZ6a #uu8clUuFdJ ]Ǝsp%!}C+h<:]v)}'/MA*K. ϧ^1??O5%!Kx eYم9u2Vehl͝bYR4tUkZ8LVf ֐eYpWvVH yNޜDr9j*ǁG |.6{{(vu0 =|7gwC\3;:ab#:,#UENrE#,u! z(GO*c Bș jӴTLym+W\' Dvf@.G|t!Pg 9$"#P5B2cG`x^\zY&*ej/YO6{-#zsi&² ,A*MҨ$ rDt)wtPE\>fYj k׮(=>188?%^J*Fz"ћ/DLSe~~}+T*s<^u%I$Um+JO4&>{T$ +j8J5I9DY@JH$~;f`y@pu%,a o8,-^D>8& T dQ& 6R*fkE?@j,Oc1N-Βɝ<@i*V*n4kSc8a$ښsπ8CŅ&k"+H B:9/2!&$"LW@mTEEk})~?-HgLVj䱟3Hi?L ]ȶE7qZMOΪiEDlUm'J2;zk6Np`4=9{ʷ\|;Nͻpf/AhYGeD0sj4d;JҾt<8rX}CD8~!S#`Y6_0ϯ7ؽ{7< xې$AD%m dCGĹx~@ 2' }sYL IDAT`МE5;P( Lk: kDaal+.mMU8YHR0 (e4p ǟ'y6}4D܎]ȓ3\Ʌ[bu&rtUos>d15iy/\I"1;sg,珿:ȃtivj(]JGHk>GvoVsm_oz~jǾ%,x#x,pUjJGvN*Y),w w>_xxۃٿ8::JeqM>Jn֮]WU>+H[-7R]07@.Z^ `|| qQh7.;&JL*M~g$"!!zQv$IBu4Nϲ)ׇS`E{倫/Ѭ5)sL7[F9 ˠx7m:('b\AuPZ˧|G 8:3C-h As)fȊ$+lGz5!btÀ(@(MHfg BYْ `!I ||o1?=QB簜&QWQ&####H$+aB" BJ!  6|ʁLSޭdz`bf:DHE#*hd 8vvH2fstb1dYlڰl&E6E\ ]m)|!f(+3y* w3N}/[(*Sq( p L~tS?q:P3YcWEQ0,(_14]*"ϹYsDtZN1EG䖈%,a o8,-^DWݜͶJHa>;<3@;{H$ 'HBTJˉF(ǰX#\(A4*Came3sd qr!ށOZDDR(BB#H RBd(O>`3 +erulG7aIV& abUU֐QoamX$բZ&(dls9_ѬWdlnܷh6[/1>>Gv_w'KĹq '!aľ=(#k Tds'efʦl5RW.JeP;z4Hg(F$Q𪵼-ocuty'4ٿ˗Qfwq]Y>y%YEӴ畗fe0i|ʋlOi<8O=H& 7W34D"[ ҍR d6<UR0 tM?miYAUZ F$șU$ 6eZV48xB$IL29p_YOgN2|5 nmZ,{r# ^EBd̷Ÿ"8|36pm~~Ŋ'oa~&T*UnGnOD@F0QD#[]MdDx!m˯cH0m6q .8,tpn0`:3;3ab&R\.lP$3ؿ>{Txx Yf L&sƋɒi 63 9ڧl/)In4]QR:otà>x#'#"Y)2ab&^1N)S8؍e{2gisyd^"*%DTx]o[o^qZ bPC3BI!|#ct]G! Crc:)EB> ס/Ț&+<' {bubݹ`h ˈ|'bP5IB`~6pEƴrhF'兣(YFIP :"'Mʳ`r򉏟Ϗ#_VSF6ز9&xzh$Z(N|-KuV~q ]~Ҵq6>KweN05Sv ӟE?FH~2SF BDy0T QC(Tܜ:NVD$ZFDFh YQP5yUWS;7m EQ,LFGASq"\}KI,.p&Z}'g֭l߾?O<=ccLLLP.WT*QDw~q$ؖ}~ Z{s-A^<ԎEz{kU)OB7L y}ͻY|rj|vRgaZ=Dqim@R!R.NIS3CRYw]F ID@!m:l+(%E2L(D;rejhj:)J6,hNh5먊n@KB"H4cF;BYe/;%2<Yr`PD1- hz Puc8 IV?IH!jH9OLÏpbVݰ^2un+ǯ ?w. NXv-\s }5dvp;vEהHd(_( }qj~b,"4G?p<7]&^^B$/nBPV9v|ض/KXހX"*_[nN&IAVb2F '2J()/e-GHШ7jxEHP$%=ܖÊ}jKyܢOTÃ$ALB["PH,a9H~-0 Bf`scd P5@DwalOL>(tAT ENiQGU$4T!.r=w>nrzoIhv y V弍H:9@P|09 B-DQ(ag/$CQQ+C^Cv`Z)~\wr`^yd+7aGzEH*fN4]e=dSi˳xnZFF 0aQ SF!A(~<'U%?x]*8;(bnaD7r|KoApٳ|[mTZ[eae"Ěo>*R$[ٳE]vGs*Gg?z>__Bℤ\j_k C(6!rA=ԇa##1:zpZ5>F:sifo}w:Q !0LM6qwSG:QsqΚs]mHf{ǂB'VƲRX^ARՈD0:84q]F=Ž;ٺFGG1 \YQ^ | G/C˩Ob J8czrG]˲yUWy˖uP,!\/ca躆4 iv aDMT{>tD\nQU Yj|#VBaYv MB29j0nm˸ % ZL6:GIۘ|gx!Ϫ)Ober'Ap}#_‰"4iFeVlmmDY"# .nV?WAe]ӓ$i$S-ϡ&^"*%DTx]|ȊLFt&b @$ M0L<4KB߬r'_hl:o+_y5 EQ$s]Z?c=eM" \YVQQT#Gt|+s#Ps+HS5*)) $WQ \$:;~Ym2^EWu+ Z&|0U]㪏r$'+˿.ttwg ϧudT]axU>8¨C!WvX\X`ajJuF !Bb5EP Hh4j}r133W5f+xFYjG)l9YUiF!w{w~;s6`2vwV E}Ai&Nu׀X 4- AZF6L2**͠3Ag*CӞ܉=4Pw^nIl(zi<{TdY"щ$"Q(_}óD"*<[yf6-EOiwv]]>;yw=|;|;{Ya/C 4wWMKEnWe~.B麊T7*LeC?r.]6zy;U*I oǭƛΥЙ?ezZϹÿ'O$![&r.~w/a VpNg(Њ_>&P ]#ݨcCY$q{ϲ7}. !\~tuusqܝD\BVa:I-̣;D8H|STBȧ՘%t ˨91<8@U 5IoG%)YiH A^(,V"ga8Ndfw?+V Z;egkБ/rY|۷Ӄ8E㨚a\YcwMpY‘9W0p囮@.8nPUO+ +A4'I%,a o8,-^D7+B~-J}wwJXVj*-˲N( kyz,< l۽ cuQ1ǡ&g,|Ssmx*(I40=PS\<@ʴf:_T [2kEfj֫_OsXȒÐ,^ I*mtU"^4SHHxn PƗ?|=΋Ilؼy?}+O>,70Igiږ$Vpiw`$zYQ؃k4u=ӉMyn%q5t3Eq`EE[šiTY$I>'1qjn&j֬YCͣ=@3TMc||o|TˋG~#GO_AvJS/㵜SಌEޠYc2,.fU"0K( PqRDl)8"><ˀtlJGHrjgBZYetz@j/.eQfdz;u _O]&я?G>?Y~?.XɊ ֳl9lwx םƋ /ˮ*_9AK'|S5IfXOh%t<5?W*L>G7~}Y#9wF*S&͇n#I #{qg: b}a"x$<~Źf;Jk/5L#IFFFx྇Xٿ+ba~ۡ{x;,_`W]lR%4Zd2гMvރzD>AVBTF±I\%% S3,ϣi:tUoeƍl޼ eݚ]ft՜s9 :y->G(Kr'+%]76n! aHTb on8Q=׾\X#DB<1JT푞ΓmT@}Jgy8:aՍ$pT8)7]"hyYlՂe+Pd:CH$;4jUb!Pz!I2qӬ1LUQ-ʠe3DAH^EVFg1?;4BJImt.}ߣ2;VY1qL=Qb¶R("h:rp|n.8Hb)ˬ,A#!c_aobW}CH͓8&tX$,!hA^p!λq]&dEf1'|G+%IY#l;t?~6$o-֯[*nt@4Yٍ*`+1&;شi }]| _d~a_19D~ mW9XJYJ"!/KXpX"*_[|%Y!BLGٷ !ڥmQs||(o8ajf]c;MlU9_9L$% YTt3+@{OȬ JHGtC3 g}nAʔSKjȲ;] @U w.|5tslٲ??1o{[A"e$! .kG ԣd9U# BFHtz*DNQ%/<8dYƴSnlV;+{x2=M IDATZ[I$@BMD"":EqޱdDEBёw(h(BO!I9mAg$䓵׺g=쵞z]Zew=V4&|98(F=6k7ECc#s嘣 LDE$Y%M!Q >N\zIdFwv.bUSQ|\@ ]2Qj5$~47AC@%\ףV)Y)"KQЕFX#RO|ߟ (}QB S"!2/,ڃLE~|-t+ǜ6œCe:wjGfBC̚KnR/epprcxHc 3fH F4$%U}ާ+1*}|yT*{>uWK?`sgc&que,>Jt!/i!gA@S^;:+m!g{XԐ,)m؞O`߿//dyy,jpfVJ2sOgţS#kDWssTRlږ&+>/io~+Gⴵɚؔj݇QGL:ŋ ZdY~3ude0@@ANԘsTB. Y3yl݌}1{̒ZM6({H*!*lٌ)زy ,,#J0dŴLǰ(P+#.icĒttID:M8"59DE\Rly;c>c(6̘dPQ^_B(ȁ̼y]4DXUi1 DN C UO*ן / ЬypNL/ja*;ߙ݊(Ay*?gm{y(`fꤥlBxΞd$j5\%@V*T% J42<:@(@8قؿ$+8 2>O$HmF\tCǧV-MM32*lFG[ ,ǔ$t]C=B `;pdEQ-d)rH<)^lGExB"O6QЂdY@u}XI& sHւaPrQt=xPOHeh<싈=R,oy+!c/$؉]P 32~"l{g_,9?Lb]AP(L-[]+dv>C%BuF} Ŗ1MplW_fUzuDYn^Lg |䚟pE `]˲xɗ\O⥇ԟx~$T''eiܩ<< `z ? }o7E$S$k_Mf ,jJ pYCU\t"z$<SQ#LQD%<|3i@NIѮK!elp;c"N5v_3G5"CC|gŊ 7ACQ( YY=6n?)XK`Y&2{s҉'`VԊNk4;ARA:p6o@|YJFկΊOp, `;6ϭ^ͪfHOwQy뭷l2J>яrL$g/;3wuYR ,mScosX~=r ⤓Nb޼y뢪eR)'>,2Uc\V+fѻ r'\\r~74w&!x=ޒy i)q{d#,^x\,q|j!fZi7TR@ڴ)WaS|T9q,0RRR "SP YVmZ@kk'#H⃁ q_ٸIzӿecұ*uґ4[PKIQ PSĒ H ")x"$nIaQDqg%7C$B&$]3m)L<1" $ cXz ""cO3{>t=kCCky TKdha7P$aSȎпaXTNϒG qa7T!-rWș6h!؂H6ވI&8D5(ĢI;E'ƹRPrO¹/{}?`SȌvڟK.Z8GxrUs_V3D^yd {gjl}y -?qni|;{(J&Go礓W*&>?j.owu8{n "B$.6t3Zu7]dq߻>e՗xe\~Y0y6F?,ZW_{8|/qᙧ45j!ch>6AqYsP.Wغ *1$uǁB,T>:LEQhTOGw>7 `X~ү<>*/Ȅz1|&. $#8*N,F3꽷mJOQ`,R^U\ǡ,눭]6z܉>\P,,I ZdC @`%':.J =(" 8I6 X@ EC 9BC|Zk==7ƴ]Fe[O\dlh 8ͪ?4]m2 d-s'nWo%{HaS o3VP)ƚ46!*ŵjtH@<|g;бj"M8þq㡇V)'H>s#>Iǝ"(ƫDظir ׭3,b.5  `[_P<J ѢmDcIl["-NT;EPUEE U08z1,^t4\~Rcl޼d}DIDU,aӖ^YYDA`Ysj&>a y5vc z9$D,$@hjP2k KHM&`)[J"70Ɔ[>,y# cG8oY("pu?` %uQ&36ZYӑLedsY*JԹD"I.\Bz;*㌧nZ !"TbrZwDOZ%],}W6q(r`6!ƒDTjATD&}slh4$y%g?) ̛;ֶV^y5[[9c Ȫ61 "C8HD K%FF8&[o"{Z&қ!h*EyPl)OS0eYe #@k[;OEyu6~_cWsQ-QFX3A\dݤu]yy?k_?yYpa?z:o6?yG6m---u]?#p'wf͢+/bZl__׾~39c~'@1wOfHă>Hww7@㶿~|<Ӝvi~_s=cz5אd;wÊ+={6=_׸yYt)QtYlt;3;իW`;G\s `n̝;fn6orC1@#8T[=ǵ |k8uLf`Y&],v=-]-ݽomyS=ol qMmm|/!̘֩mw"qViFݧ) X8.'I r!G<\/S om`*{Jr&E2$Ų,2QjMiTED#ã#twws 'M1Jqɥp̥^BH lfl[/Bab h)] 5k^;̇3>W&*#457M|q.sgHHH5)Xsg'Lja@)/@N.wt1IxQItě(l%hF>NUY "yuR*<|ʞKEl*-KAvK%OlO=@wsA4m5uMsOa~kR,)2dX,%+0jvIRZ(x`$Jvfqv߬q*űX^ 4t&ڍ Iw܇eH 06nD[s?~ ~t׿hzd2Ў\jM8L6=J1ömjE0ь"蒊k;N-UV `%",EAAUtE 61FCo{n ѩ6VԄkdÆ<ϸ/C g OS Z2/=wqz)9AM hYyF Gpmdz)(6VOĴWIdFGyp0*s9x^zk?y?^i{L,gWI*w%|AQ13 bx?d^{}gxygqѡ^y%t]wV[>e_͆)-rǘd3ȉ"L/\ 1$;ѱm.-A͡fԓp){;N?4RxWߨ< V;'@@E$%WfN*j( X0'47a:.h-@,U>8)תD7o$RCqǒ IDATFBgO\+8&gڎo$@i!hFltRCO{0bJB%~PƆɩގ]#=Vf5h 1$}0s%Rk'#.B(Cx``/i7I:T 9b $qF|8TLj{f MwQ<㡇-_[U{=|WspJ՗H`*lDf:jrL&c֬i44$1:>JwW'9\JqrџKc &rh0P5w%50>Xӧsa '8|Ss%A l(" > y>>?M}>ϱ,{oӧέJ\fժUb1nϟO"c97Nr__H$hjjo'|_'x"NccclݺSN9tgs%H|k. '}EWUAG8碋..c̙;_~9ӦM㴶vwtl݃wGe8\.PzQDZqlƦf  juu=Xc3~vkE) pS:/* S#o%MNRD̲([ :GuQTE,FTj{U:~ksҋhi:524M`֔D3YI u'(CAd&G `ge(R*jhE7tۦVNѶmQɥ}è{NR!Gnlϱ&i\bR&T4 ;SkC[у:f,´,*UBS5Иp>ׅ4k߰KPyU\uYr_'BPbU$@0QLM":H A5{ B R,'j5$qQGR(d*K(IB+* yԪ2i:DI$YHi#Jas%kbG.h-IOo ?rLtaI=/WB Aפ_:ZK#x®Uygyчb0jFR3ϤL>?Ӧ qu/u8e=EX(%b0.2*GȗJ$pه93ěزq}}YM)Sqlaa6nH>E%dRLM%+UBْ,ĒXgC,5qp] ?Ÿ2 Y(+uғ(x>PQr,b.&@{jJBP @(Hk[a}BDTQį,z1OKL6mx/Sk&Ǿid},Hi xX,r3R Esɛ$xhr1iQBF5!Li :hi=\CtL*2Hi5Jf4R`TQiii!ɜY3L:ؼy3˗/GW.?=W/&)XZf,$ͲmvN>$BF{s9zk>raj1’iXCgZ9+N٭ e2Qh EHAR,}6p’c;g.O>,3ftǧთ_Ω?u/a诽589Xϯk2{/gXLp500ܹsz L*~b ,`۶mvjkk0 * cxǵ^;1~L;}?¾z~uYq\>'xSN9]YnAmO:JB"Qߔ4nL,Z[N[p<՛y) LRa+J=|Q&xi|uOz:=`쳈NrܢYSJl}ã2 M*a oloTmۉ:łH̳i-[- ;e1ez#$mJ̝*Xv˳QE3 IΟ,v![qt щ:cORUgV}LPeNpdy՗!d-k9ʤS)bp݇R$$"J!J;JH  % 5 4hl "Q)! L*( I0d3fp3Jc֮{ jKoE ֿBSLզ o'壗/ 06'%g|~.ɤlwȔKO`\VȔ9Å^g?lݶ|JB@.%,$4m\|B;S}M ZaVC n^Ed{D$@zdp4Ε 78a֭p!t]uB.¡8T\O{>o{'bDgyfDeYx7Q`r'TUEU>=y=Lx ՘v`(R2Ol=8R^"Xax &LH@8L9Qj( <0oȌ 18w~Ej|o=v+Kh= GܾIe;FF!JwD;`5?* {&등X= "ߧRK1~, װGy9p+VB%3-$|r}ֽ8)R4Z BV] *)*vZ:ljE 2w?Ztz [GcxOn<5a z Hco=VG$^WdT F8(DH)p5;:&!;C>clsoX~=\nSظq#oGŻY~.sqlknUOb|"nмW<L> MI m[YJ>+ȌyX(RwsAH!+*@t.E8ՆmRHMoq,ˤ\QmB I$AT=@H@>ªV$б-4JLAmR&Fdsni KMmB!G{ϝ'޸WP LQ t-L(LGm=x<ւ9^ {\ns}ڵZz~c5&VRx2Ŷt.AEwXZiN"YTE!LtCc1: />_ g7y̟;v)\E9e㱜c8ַx'(p DQě~&8vZmrp/:Q9AfH<4ѳ!r09zX}$4iyh TjAܝ%K1ػ f} x>J2o꫖y3W~&\2;']$O{9 ÈEi|zi~&'3 .$}|;Qq]*jw43M c?vHuixӛz{REShc#$l&g7"i #FvaAp`iX$LRixyzMibxNZ-%I(jxP,b{Yuҳ0^+Sғ$Ѝ,K atr|:j][hG!ZM}0 5\g_Q\f϶S45+<' Cj2{`:Ed*89-aғ2NDgvx)N(cAبES{X2o$m0 q]ywHy3pa0MYXg CVۯt64HiB,NLѩWJn,]nw#3G8}}}_>M6J$~/~o߾n?+چi_1 IDAT_׸k~5\UW]m݆tx7\wuhp7uiE]I'W\>O}SpWpuqR^_}|CskeӦM+}<(bttɗz4z[(\0۟XbŊ\ve|+_.cϞ=tMh/be5|>OrM7wEttM]/~r-^OLMM+Ua{j8?+x}{>6ӛ?fN,J: AScdt/D 2NR$ɣAl6e :CGʐQ s;~)%ˀt٫RG'H<cLS|B ]VJ{J%-?Jgx.<]/rDQDmDyJ|թD2 1)dC5li~=!; s˴l-M25ZWnqrynJS[=:ɜ͛_#zCwkf~^/sN PHOT!_ݤ6d:;C.J)i;M14$f'h9u h]PȐ,ѩMr3~BՉg jLMM!t*1ۢlٲmc.g-5|ɞqX )%nˡQ%R!aBF tP@Qn`*eV OϝwYK2T)C bQNDajcHsJ"ABfbn=;G(ȠR{(-&K/͟uXz;jIyX-+i.A-V?(_hDdE81I3gm|f} B-Nix O/'E9<W~蛼CM`w?7Qu'ΝN~ \=Y"h^}_$d'? 6oL8[>8>˖-c|biY=~q)Xn%(,SKWQqn`Y%N]QҬrKz R.Nia2UY'[%IS'@,ǃ xg\I6ԱDL<55%|L@FVn,_Jh7IBeQba©$͑ #IupZ}vƘ*g_FGFx?ܹsg^.l޼nB>788^++x{B]r%\wu}ٯ}075 G<_sk _K~8#Vo|xC={(L^*5KPcE0M"j51-3Œ4k5zVC3PYuPfݓCB $Bї&Exꋇ,ҩ[SD'5N,K%3كnď熈ǒ%+1Дm'FSLÕ-UqrF;f'+# Qل?ӏi-gRP@اމXj gzX=vɳ[sOUg2 <ڵ2Qb9n 81]',nvBTUCBJfF3=Nf4k%XuoHPX,&;tm\Mb=EabFZNtzS:t=h~¤n359P";~g]vyY>\D6 ]Hr]o)E6I6E2*ď"l[fLjitUGWU(B5,^ +Fur BUi% >w=ZM˲^~\2]R A mjmTQ]x2}`bVY?WP -Vl4^P 7jق֊a)Txȏp+eor,%dwkEL%.&7;c.f97ӡL~\:N;Ȭ՚q/q fʋA!Qt21өW'I)yVU)%vp_ao><lۺS_w2;vnf̝7?xߧ>L$] yJ ?"J!-íԘlNbQ/ BUvƧJ+q׋gٽL} At}E܋@&kj(K%C$zpjJEEF%#R es)݊B̎*;vP('RvEC[ ("B( VʪIrصc #ܶG2@HB"2?@gRMv+a)< &V谬'C)#V }&v, pE cY 8Z \ʜURx>j% c`j6!ihFwl&fk3Qnְ9X9y4E ~nII`gB:߇/#VV!3KYt)X]? 6d촉dHJG'DGQòl|E:u `0 )O1h3L:K(T5zSYVN.vNaX},_˖h"<)WN_S{.ww>@\xᅼ-oP(?8W?^ ଳho|Ç 6+)|_oo{Y|9sgƍ7ȳ>駟mv (K_̀lHc}o%Qy^>!80 wC5TjZ''6K~ž֨elþh #c|_B b6'P01NLZ$1fIv%A@Og=<ē4$4j*B4d<@mBh[O~#3Dxa($SkPVJ0\DQ' :!QT5^tW~fY2oő/%ZZ۞VT#$ <2i(]H3ttäQ-X 5H)1 cF:z:/t$*O*aX8|`=VCc4\/BHN?)̙]bq ;MV,mte>ۋo7LErr&Iضmwy'=Qwn6^V>XFHNg;Gtj"NMWa&( '1U"hM"[@j7 ZNv!5VUӈt&AB!p=Fyrd:M<9ȟm*BJI5MN僱X9DnI<b4& 6q&СQtIO@#!ma#ZuACNޱm[g/̛7i8aX͜~ɛxūKOxz>z\+YrvRP,Vw_N'$2O" |:Ɗ$yx(:2xm"<>8Vxo?z7K,Wqv<-_SO?ŚէjPo5Jr`;Ko%tKDT"8QUMT~O_IHd=6 |C7tNբG_o?NjBIPUI&1ݷ^}'%yAXA.3w~nO6Uy>$'SX=W%A ݒ$!fjym6xǟQ~Ƃ9 ?y7BӲسg/}[M7i{CYxO?/}Er'@F%a É|Ԕ$m'ܗoOVyv(h @J#Uˊէ"#TTn$x9zJGatįVB2h28{^WoӌTtF,0<4ĶPTe3oBR{C?/Jː;w͐RE)'B-Խ{u &KlFEKBJ,E߱Jų*eBJN}nCDxU_tzx>f=5ȥImHgR"bqTVy@^$m(PAQaHPVdzn(q*Ze}sM#$<8S&}&Hf*}=uZIfRbNFMîJa1㳯s\?&J|wC&q9Rۉlfar]ځ{a@&G!"i5FD&Géwh`:IFF! <r ݠ\/iH,\|绸6'x+BT/$*?>8so}[]ŋ|˲'\{}ضWB?tz#~.=qūGFJǦRvjN$cY6v,0 K>^mVˎ#P$'"vFƷ`? w)q/'Ggb*+<ȡ$tUmcM.`<%V;@xn.Q:Go';"YlVXvF>!>\ 81MIjf@DfGBo#Jጰw,_>sxQ xbƓnNAh9Qu&4l$~V,a ۯ}ӤvǑ<'Y/8t"ubż%+;x=?}w=<lF_8MXZ8ШLѬ@Uwt a*bZ芆DQWa$Y|[W`0-aRdHdb R):^C=9ᤕ(Q_'EE$9E<& u+']WixΔB#QH=vOG9 !G7EgՉDDfWjX$l38?16fv>7(jyOÿO';{l>?0qU'^BJ6Td!=q|w5>ϰɧX:>&'Xb9J!'|2߸ڴ.4$Hi$a{8|92ÂyyI-E%7;dl_x$S${+'w<:/Nd N`%Wif7V$ id6mDEaHy-dٲGTD"qY*j:K_* #nT| &'Z~@h]oҬרVJt=蚎P&tbzQ_P4ٳk=&t0cĝ#&P,EA[ㆳ-e"O"וG!ZLYZ~G0]5*,P"ƄNoP hIg_OEnp 2}3?2PLEnGPm4j9$s?`s͆Mygۿj|ON9e Qz9~E$%; l]Ja%-0(p=y֛2 #ʵ {j{[* 8@:0HnElW.1hf iޜQRSCwf̧wA ӏ/M{o" a.dؙA6ZN'UX(J3@):OR?ěx;zTs5z!vT!'ezJ IDAT֫v)abX1jHh'P5(MqUXuz(*4 n٠l8K!E2*U=h18*qf# BF7noZsw~ө\ݢިjJR,q$;1 3HS^KˮTSPRqʾnpxls92_]wi`h*KdO=5+!Ed͡lr?bɯ#/8Ⴗ?w]MБ,Y],Ar|(W&:Yb8=lߺ ϋ)jn,j*DgێrYT!L( ]#Dj(xTuLzI o!8$Y7D(Tl}=[],),'i8cq)a*p: CM;rТBmT<H+jKs$;"|% f{p}RhF !jjqL*5,tN^ʺ]_iIv0idrN!C (V0شG/;87r-r N\}"'t`~J2E֊?ltl춑f:Ɠ4=ݕ21T]Q-cq},쫖H=4/5!La:x(E & <JŌ'*8W{/}ahht:yO?9ʕ+g0 y{;CT'*J#z5T%DRzF MSP)"3"$Nahp谝Zd89lylX8Sل&TEE&bΧ2.xxD""$ǟ񳔇<{$ĉb1|&-Zt,톲4Z$@nN玎-Zgg`|'"$" [I f [SR%f0Qת.Q Jϯ0: Ʌ|‘:$f]QrV.U?d]4;dO54پ@^DD!DZ&m&"tÚ!6 &HbY1YӨh: tĊ%QTm4B! BEmbOyUŒ`#$o{ԫEЌ&)A~8)$ #K%ܦC^&p[sX0]:ƓO<=wEﺘg^8, R8v" *x&n(ݒCD<Z9")n5t4eT[6o檫z?=ɂyKHnOHEڕ1҃9L@P8Oo-"9Y6ٽ'f/>7"l\C˶.x.^} |N~ ێ롎 .sBt2iڎfӺx󱫯b…|ۘF!7#_cSIJeI #9<SM*7 C욤RL3DΣlU Xd*7e` kVզv}ËXr >%EeB ͝˲E m2g;u%tdL]iTxS^ QtKYJlڴH$ X\_}kp-[ՇV*J*D6mH60t4!aN;3nHc͚5zҥKI&$b~BɂBW-%/"lx*G٦jПɓ!CU Pi5<! ]\ü|?Quj uA\~Żij(,+@1~{+EQfHW+=8(~;W^y嬅ݻw{n.袃>sa~ zjnILD:ƩUP|T6Ov}[bbna n==zy;;5icUZ{*N$f$MDM(t}xBJ;ĥ* NBdz. O~/>c_tWQҽyzW-DI?CۮPxT&m̈ fHhN[t:rv;xa@,uϷwc3%/0`br``lA/ʋ Ƅ躁nO,qpfؤa{)&pVjkӷ(ph7 BQ^_F̃?;Y˟N[oQw4h&'po{p߽fz̛;UӱbiǾ}p#vbzqcRRc %N6nE$kv:DQDa֨lyO~R8 5M`-RaP<ޮ>5CN9!!$Q jVKq™zkz{ZzJ-bVTB @!sNr}!{ݿw~Zߜj5tpRB}){v.BG/A.d%vJa |@CZH9k- SS6&a#FW(Flj575Nnu6Mj,rZpdpd v> J-iZFZ&z:97l(LWp,pf.ZXM=hx #R($x$MB1aٵ7R_qO#h WiNĐ7; @O^QQӔ^ S JS"AO,3H ɚkp!و?8MyMӪ,fQO׾꽄#sOzQ_DPe,S̆ m$d: TD 鶲K&i*L)pd Ӫ6hu!@ L'u& ?7clÇfDd (کL(F}O`$$2RvQw@̎?V˷<h.a]C&FپI^rȲBT";9ɂ!GV&:kaiҨU}'PiPȏtiTڥX8sPK'^w(7˄tО ^71<~"HGWe;hhXgJp{BE1t %rA:8"Q%?zV!F5řm7߇cV}ǔjɲL<ax>($﹘*`qbRT-%%zQ̥+ɪ*B1~|z [@$r4Ҳ,,g{^ILEd%?ҪU0De2V),&,0%.Tu_U}yƷC\yj(VKL5$gUy$gA@^c2:zi*sȒLF-Jj8Y2ZFD3XX)T>K&9nycuBQ/q~ZW_}5{~EY?w闍6ѩ7hg5 Ej5MT4&?lyT@SJmT-RD=8D"^jC ?<H=(+y&n+1¿fYHqMm4&ƨ `- L)bǔAP,M֟-FR$aP-O*&"rE I @QԙşjC65faLY%h aDIe攂E|סT!z. <ӄ@$RCKRi/~)MJϱ&-P8J'9PAVhT MX|:r1derٛNLѨyߟ)$Cs\v Q,8}NQDtt=lQ÷mP1ӉdY0wh!M{h j!Ncx>^~p _&P-f9;,K/\BC׌iB_'.%ytW;w=3k^m3>y}Kjh>ۉ#z'5ӁaɨE>P&&n5GE.3sz&gjqee/Wr)7a=?z߇ZzwM omx~b."Nz:Yp!#H$I.b|I棟;#Ħs#xBtلPl$#R5܅t_؅MwsO嚷^-?z~mh׿ ^@\01VZM*!JG&ËƉh "n `aʕqc<RBGɣfcۓi{-D__)7CX]{4b h!,AMe2HcDq'N8Bc`9'0MfFI&"i" Ml *G"Eh ϔZϸtXr$kn (QVD IU%s%ɦE wR% qvr>K>ۢ;A>tѴlV+"c3Y-Rh5DdPp #Յɕw}X=r/cʕ Da*cIe جs^!9_m1Q) ?rUEAOSH&.,eVThžj"&;zoJDLv8)]6Z׹+)lذa>O+W?y>/~DQg|klڴ}kp ۷ob[V"_=]wwu˗/;䓟$_ٱc6m0 9e u:1 (\r W^y%|;Yb ۿ#q IW_}L7)˾[$*5I#hUEmQAЬը /^A:s_HX 9ƈɇhty$ td#jh*!Vʪ!{? = #ȫ`crPߺA ΐ$u+;( - ί;#"h\=i*vB*G'4R s}['>VFy0PObPX8JT@!G4%Z:cP**!.(h~t qH;nH }h=H:{kZWo7~Vyp)AD**GYGKEש5T'q, x(x;N"XݍJoΎNe󹛑$A6#:!T=DR=JEJ%YO~<;ޚ&e4c8$DA"D-GmP_"p|LgC?u~S,_~77%Ƕx_MR A"I;`CVS?;q{Gci3]]DdQD[LhFMP`-rE49"(H0"XI\"Ad٘jV"M3tu VNnr!\I2X( IDATl8pwMVU,8&)mcV%gHfz4|m%p-'`S;XlޞCwG' ?V Zb0'j'^ԭhgHlř9rl:HT$FT"[+'\YI8IVAtߨ,ӃZCEBAYV_tD0C{ַ+ꪫXl1::67"I]w^z)Dj6}?A:::83$v6k%$t֒T5<5ƚ5kOcV88PyHAET֭6 :0~6ylJQ>юc.™q ?||lDJ">Q[{~*A,>x)s$J>gΐa 5$!%I+ ;H@Z# 8'sKNk2cZ&;Aj"-EEpږEX’_8U+S"BEnf>M<ǶmSp$#j?yKT(5*̘Dc dEG.c9Nn1{^1Hx8NO*|XQ5/pO/Rs<Eǭcz.H}zTA!N5S{T2ޙ9vg *3C;gV2nJLE`(Rx6) [WX%KN}jmOG u-dM1pEo/pQS~NMi*'jGR TDqEVTw?dymDV9K"j;Pѭ' ݄S.E! "*",\1kq8Jsj{NB(a P WdTy||+]}tp`>(ҬLlPʍǣDL,iP.4D,ƚuk4wOpqDQ$ c (4F@6 v0dt:Eybjv΁DoFZy> K.i0 6o#XwmjA A/Q:;@U}+߯q٥aFFf7J2}E|#]ҟP5鴺1jNu;l&Sv&kxE#i! <>k?J?5$I>+7Ϫ=ի @ur`}g 0&M^ل"t֐:^Xw92! )ĩXz9SS9FdιZ2.T.CdE<&l .jM6[Ǯ]4En֬=[eڵ'7 b;c-Z{)wQt,j.g^K/p# K$ G"Dc1錿sGQ!}! iW*a7>"8t& >Set8F1QZ(޳5-:򞏞JFeR 051FP)i:~B_4z,i˲h tjЎj69P-Kwl$M3䄀"3d!_t?~>]E$Xȳ=fV61琔~Pi5eȎ0a\ϧa貂%J<`("MJyd=DñqDMQS@@u<Nij =(pj23]>| V"bTWq2TYi("=Qup \ 85+iN<]$|ŀ$FzgʡUM'Qۇetw2GVd4O$Nv **ű}HL<ՉJ>uacރ̙k( T ibޏT((.ĪDzfդrizY 'Q,6?]7Xh1{v"@<ǡU"K (JZ\D$I,Yr@__?DQd3JJhp^rz$ӬbVDլJ'5d4C=di:PΗ`-W\Yf }RU8 Y lD"` JuժEgqrK|l?*4eKQd[Qm Xfx*}16nHӟ /fOfBNb=gY tvVEI/"=VG` }%y\?`סq~t?9:g[? Aaf)/6\B2Zqˉ\IRPʔeƱGCiZ_yXWWo|{h5y}V]M&:n(tD"q&R#dQ ;$p^_r,39 HH$B,kgHr,iBDۤ廌 ؚ!ԫ5$H"(RoIE}5D< UsQbq"Q XY9^?I`h'$у(aBR%Q:vD1gsjfz8zcm4U2k?A(dpo]|߽.~Ed>DfM8gsąرY_dQ(>3ְpetJŅږnᥛ*9Y]n`SnQPU~nd. iN6I6z"$)G'rC?cݲL;eP$m:3$+Db ZA@OO/BVuBGӁ  kpZuX  ]QU{k*e2:qgp 2}HӥΒ$@.DPYu|$ETRPyslʥ"r%Tah4p]U!P5ElԘ=HTog=L+7zZٵD"(DSiNb>Ki='w P<1-!d-IlgP A@\b]?>Tv|󛄍9+3vh"|g.brlP@&#}ފUJG?ՕOիWsΝ;)\s53޽l6;݆ ذaoy[x_uOr2n ϵ<1ʓ}b8#w#MY pYS9yԝ:p0m% j棨uAL ]T“"*%A@%C@# `Y(qQ-e}FxBK9@)ޕ hzfi$zMI$!V6M$A H$:&~\lۤAY}.i昖Ɏgm}\ZAIБp,OBv(Ibqf^|ߧFJhKJ\4Y%ih -&&ݿ?[ ɠʌ{48P5k)%Ԯ]G3'e5iXt$NqPAcY?0,I8Bm hFd]]s}&' ©Z{ik(BڮJ0{x*͹眃ݴɗLe3tttu 9AdCanU*2m4KXa52QlF#%hh6N01;z{{ٷoҽ2x;Nos͟;lJ|S v6u85GD=?J{ZOw|lI41k&{DDH_v!7ߤğ#w#j*Y@֪>/A@q|-}tX/>z-?۶=@ũ;'Le'H'ٸn#3[xV>AyP=ȢL.¸:"FbiH,yv{?ʇz9O_>Lp瞹ѝ{al>{3=rL-?̞{X~7n$̸ bkZ45˦2)'^di&Esfx{ٞoRMq.+e$I:)i)ZH'4)4.Ø;r*+%3Dux(:~K4V+%*IDad?ARz쪦h DezgxyNFβHdfľ\aժUd2iFG!sջ5 c$uȖ .L7y *P*qv@:#bc5 ._m=[\E5P;18~M35cơ"T4LD2iJ~伊C!ۅ48v˪( TƐdDQrQe MCH?d 8mI)_TdUCG |h(ѹnŞcQ+N ZjTMR:LDW2̌K%UetbV(ȪF(W5-R} ۙ=VDV&J#m1fBvlQP5]1[-@89oGϱL$$X%9M$S߃x %m'g^cv Q#ar}wQ l>l:\zz:U]OOtp~7ʈFVdEN} D C;?ϣ 4 .ڼ_vLWg'hzןNv(d wйbs~p ʎOI*(j!4=C+_%Y171 IDAT( :8n/=w5yg./Ymw?JHWYKJ%QDH>NRz(pF#( lQQTzE>WYH2fHH ڵzqqIh(aHXC=4FRDU&m^(!Mh>@{KwR%?9J2F 1\bE#Fw1i1MFa||9K8O?C<+^~(l4982?뻜w v4tœFE("H"M#.˻fbh6edq(5%2D5\8}KqȖAXUgyZV%#[#C-l\7eBlәuֱ}vn^Wq16:_W7y 000+|_2$^{-CCC@[rǎ|gΝ/?=Ӝi=Xh5;xG<u:CW3¤1zzaVJ,CC\FCt ,B LjFck*ѐAPV.*-CZp$B""6i8$bFh7M\..=&ۢZB @ nۢREfF,1\\F5eR.,XI_?csv AЖvQ=8G< 30}yj:mɤgw?۵*r,T@(uQMi_`Xؾ};lh y;M^,˧'xQVݏ]1EnA$.ʕ1ur]޽ǖ=_tu7lPW7o[6_3g~ >n_A,?{t c翂}︡<cؽ!vw )?s $78ȹ]ΝO/_+t:֝6ZG@?{%I~y~~ޔZcz4#i5 '@/ ؅p`0 @H#iwޗM>Ȯni4}^wee_|_#1UB4CQΛ7Jȱ E?`G=Hk5NFi57 k.s2@kpeB89K_ !/̽KߧV.g:2澆qęv0$-}Ͳ İ,&gK}C 5 A~Ťu}5lfe4G; J1;NkEװUƧ.[yD155RK9QѻTE0f0O7K$diӚYu3SS/kfOd=l^` mV@mlΓFNaUnRQЭBHzyh+fKfXDC$dYFXo5 E&2riΟ t!(Uk˟KpzmTXnEUJ4gOs͂yv(ט5 ?FQS$I$Hmfgf3-,' -K)2\}vN |;9(Fwaa&_dHDm>V>OO~*s=~q4B+ != (z+yn$9s+/8rIu@S?zࡤ)O//÷z]?s=sO-؋ jc'6gTXYt/_T^ݜC rW@ƨQ-{Ζu:Y8٘0]0Qyᥗx{ރ8Daț>7M)^~9;C1>G4\Vv,9Fsj) A=?$t% fkRJ4 c:yREc&."/̲$!EHq&]n(6$5<!gvd0`07KaPT . FFX\'rs+;ǸNȰsC< #]*#)/%O N+laD%6nAJ(ZNc~b@:eRUV+Af$U8;{߅[aVÝ7FU?#'C/pfśvOq<P5d؆G-L1ORn. !uE;zTԪ bBLf-ܼfMFۥ2{f~'xY)y{DrTG)VĨ4-A:B^䙔SWTA:m6I#k)عRaujz}":yjRݤRБ B^Mh=.c7#oĺ't:ٳ[h4w׻] MRe(M|wɗy,cF\cc`!}kΎY,;$qLV$>"6s\::QuMTq6FB3 Wi pq,03W\?Qg5!kl R>J2hAc27aGoi$2RHѵdP:p "!:eWC262_@$PQPPQ2>FtOn,r;΢70he!nH.QTM7w:+UgJ+_" =a-kZx~F("e.[gA s&&&UȏHOc&Lh"鵛^:jn0Ű |eGD'O/.:arG^DjT*U0$B$ \qyK ۔u5n[ ò40K*LmG z4N Myʕ9X}'n`c$iBHeH8KiH`*mAH A&a+J 5F(E>ɐ @?}S;زy 2h/έ*J8)GP5&:aP4sxƨNʮ1:r-j!~Gnc1ˇ~`rCpA{%|e<† y?< N^= 下kg6y#[U \+D=q~u䟅[bzaw,Iɢh]O,#pWW?X=ž{,{ LNn0t~xɧ?#ny/nm;VLal†Mol 3r֍&6p@\{ݍ\yuT9K|ί09%<<<7] رyUR@dw_>>WoA (IzVA7KMJE\.qU[ynTŤ gN'牧뢩*吖?ygxx;߃@;HECSK[*~L$ s7"pi6>qRK_+& GNjTG&`(TʦM#&C,r%F)m+*y<4B(*j{|#Bp6>G\X]'*ױuNTx]?uojk E./6fYcB"Cr6ntѝ:=7۲bPh1]6#Pn?R|Rf-GI"|)y\ Є:$Lq^:I(Yp9i)iJS23)lI,`Xu,r:)fVD/be"L+ٱm[f(>} /(Nj c6)*nVYχTUwhwoU EvWRQP9$+㘱I <\ | ˶ٸq / 9}0bhHJU4f]-_X2Uiέ\Z .G,4JDT~ ~a֐KnAw|ˣ9TEgv4VytnҞ?RAWU(]r i,qmNuH0HC"Ml' Tlz&V%!@H8 H Rd$qn0>O[6,Y( EF/<Lnw$# <$\XJ2BUi/a<BiHJsRHL-O5lp;v ]?Nmǖ5B}=te 'l߶?-0fӦ:Uvϭi694Ήu|wȲ,~; ݯ*ena~&O? vn#{ >\>jZ7*?{"L3Z~Ah'xC07(Aw$v:G>opMײs8|y~N)o싼ΫV XlG#JQealV1*j;bqF5%J)* J-瓖!9v=8<,N]7)KdYӧN Glgƍ5?dnPTtEpR0^kVYl]#밥6JGSLKYt]~,_{ IDAT.S[Hiup)6.[Ǔ$"e^# ](d{膁G*I6g.v:$q CU4 +Mm(f$_b|^KQ/9vmE!Ypi$i4)P.['*ױuNTx]^UX@TB9z`u+G\ǴNŅᆋHhB䩏޻d.D/TIHȊ'\hT*RhFLdd$$~B#GyPfq^0=RSEV^ԗˊ;< /av]ɝXjsbRT99gK,qymG>ňK)q=)Fj#: It۫HUg[N [Is%;YRJjSdRPHTRP(mAQ$ٛüeJ:$xQ à~ðff*UՈ% G0e a|G{qb}\6M!Ti9*)}Om| x{&,%LӦ22I>##8M7K5 Q#jcMggQKPVPI !$i6l̗4MQT !%i251fI&P8αm4e٦TE0:A^((R%JYP$J`l:d lͧw4ݾws|3ﻅ][6HkuQN"Z"CءI.P, RTCR(Kz3 ^w]y1EZjIu\995}o\sTlD#GiMܰw/arA~z}G!~|EW4$IB@7k Tck884gPcuyIˆbTh)&#&R0m7'cN?:| NzmM'VYϧqft' ]tDtt]u@Q Qe{HXM:JD0ij-!0- U7}zC5Wb&yӠ`d"*"c BZ#E|&kO.X:ވX'*_[ʟ7W,hsRp˝aB&It*Ѭqr.^DGAbb!ur$R2|ֶHW)IS] V C?NOewMVD2E5 躍i̜"J_*231Fnm$-N:88NlQz"McL`ߺcD$!<$}8ݍZM"\EQP p]7uBQ5͡m%Y& 'ɠaE qfM $I E%9syh69=\%}T`9TE%Ib8\t](Qt|5̗ ѥ 4(IbAc膆n nk)J3#!U5Oe)X&WYK^ﶩԆYRBfF,%nb qLedb#'"DPX\VR^xxK: 97CR B5NlrzQI%i6np >w+~(~wاiB5tMCU$vUU{FEbPσɩUʥws<̖1 E$ԙyg$'8SM(dlWo6ÇVNOOҚ9LO#UkI+:!URX'^,)S$![/&z<0O|3?®];GZey+_"Ei6"ov/qr]vQݲTE(*ߎ^7R@W_<>Xq0"8xb!~'aR >Gs3͟~!OcU"I@6A)Rـ(̣]ga9ތꄾ̯%jhb[ Frlc-RΒոdh0YQT/̙6mջwgcq_-܂T4c'$Nߥ #-(eR)&pIP$p ,K X =~ѳ60 Yh@s-늪bU,^`o-6͏PW>*hi4E:MKʭ"+(㘓&b,I 񱝨i䰭2^81MݴNisXUBqLg.JX:ވX'*_[ʟ׮]Z*q]?XMۦ6RNLL^D'"; 萫]*FE~?V]}ՔۍBEWDT.aR#Aϸ :ٶ)jahB}Mʔ3S_:\ J^4t4prGp&G8i9Ύ-S kMV"h7v_7je$n94]CQT,022Jf<%|(mFQ.sn`y12\!$L\#24ma ,bD–`DN&QE0MCJAgqT*^C%YTܸq),N` R^5 gR{abPa4 M7  J*:|R}E7I8MK|E(koå  ﯲŤiQNN#`5Q y~w~{=l:Mk/Pg L/nni"J!dVqљ9yl^eC%3|_Eo>-\Í7g1njp- xn/yR6?/.X(~}RPHt~ ^:Bj!D",]de]!wEGe J;_*xmiNF(yˀHkwn3ߦq%6mIjFVK?r?ܷ_du[?<GO,[?aϾc'(Ю-.G~ hSPEFE۾i TҞB2#%HE96&4GIˑMrqz|(8p ׿MOZLNNw]y Àj+&&(iJe' "򊂕+ C!eMŴ,r\:40I\+, ٜ~_Ql+ o4 CJUU I XhV$Nv lVIxDwhLg w4.i:1>a2ggt~OKe>t9>wkdl98q C8Wz*BU4lgU~ȲiۿDį_G'MGcjzkO|=5í78T)R&ޣ~Pb[ Dm+J{nxמ),=_}=7QZTӘȉy]ClD5E.+ 0$۫>Y*21 !^-ʹ{xg<© e>cuɎ;7G?a^ڷ'sQ>x=[MxdO@ Gk[g/XBAAf%),#Ibb[6j5"*ahLlnNuV%& ^OT 3\# z0+HOw0.n!r@ttuPXV*(ۋCR7ZFci& $!Crܧ\<'MbAz>8&NՑKڿaxڡQlHaQ˓!꿈`]¯$I8z~?" vJ&?#S81׾$yۮ0 F7AF䶹_lSW,Wؾ}ep$G*~#S2(8pΜ N+׶u|A:I] C? ߺ/x[~rsOCzRmw.)B,FFuUy "2^܉0 y͍XiP3|v?u>;4x4߆=o\t Ŕ>u#Zn}PP G_ kÌV;p)N($i9t"rƫy/ITV+y|n&&FQG~x}(Uwo )%~?۟rQvl337G>a'i"H >I ͸%(;kcN*. v͚@SUr[QT (+p MR.`@>'X3I`9i͠J00 eKTB(R5Hy6w;&4V f`y }H㐮HFR\i˹N>':-Rm\::QuMT/k I' iO⌌J "f|bE-q8z(i=%,9M"\pٔKHb`vRU׊b5&5̺SdlӣOE(J6ڑ1**)% _P ؆#ĝ}m~ ,̼xIѢw+Mԋ+H)V& "2űM6f)Īʩ-x I$i!&QBq+]aڡ /Vˑw}v$`fv;VbR`ysh-@ST2$ޅ:Ya N5 qOyǮ5'>B'm'>"s;O~{^:=x;b*18:?z_GG"օQ Bѭ$4oo ]1YanXn*/?~?I^{?F(K DJ4~ٷo=]-SXF'ȍn<I b{ G s qTV߾Z/P-ovٱyڼ4M Mԋr+fN[$5'wڊVpN7"MGQD$رR{KvdTn};AR+je90c3X 30 >î16a<ƒ,K('KV9*S'uv:`>N:;)=v?ž}2ӝ;׸Zkc$N(܀m9s9]w-}7QԓOrWs+Xz5=$irw_OYj33T%*wuI :V@&AS5Xq@' }v!'ML+i9aUd6DnrRNo O /@~TDh KRݙrIY&J 8/Ib$(JL,!K?_a~NquEXx )dUǰ҄]5ЬVP4 $B@$KH $tg-<~Dž(@P.Ip}ǰ7(o^ #H-F4^ʣV} IDATI,3{ Љ'2;@y!:4nEDql@UTd!Bmz0DB"_ydNaFRճ.F]1 {q:/s=>N!"!/ ]2ULJi!]+ci0B4ӠYJl!}}%]_tIEma),hQ U= #8&/PZa#TŲC+ ݇׶뚊QV[o>_ bbcL8 t[}Cin( ,hPjbF=%"nغo_ɶkYH<ܻZOs2.ChCybQo2$')3mTy\ϪE+$$h& Ku(& |EP,a ?J$I|<̳q̍7ȡ# /__|!Q@Gʋ,OhʴsɤbhNZ6_ۮș =4|뱝"\34]8l&kDĭm_edrjHh,_NiL88~TUa~~DZ]qh[EUOd ɤ5C>*9I AQ2ll6ukFĮ;0$}}sͷ <3<<?a#ۿȊC?̇>A͛uEHeSDjvBG} }'CW&Q.xYV9};U!h_CV SRE/_|j15>ЮEfN ɡ&PLMhXfFp y\U AD&_X@V1$hIT8v) fWE!Zòus+OZˤ=f}\QyeGTa@y'48,v5:lz9w^rpl?MBh}ַȍ4_7hSp9g,Tb~2`sU#9TAV \ȣOͱ@*d4\Ȃ2 Ԅ@J yFjik^~1pbnrmb ,e`? FKyq.B1H_p=$!=4]# Z' d = 0&4 {sQDn nMW_&XbbhVe;]e@D>Jd ˲?xkײny'X3f'eͤYEӍnUK4A2l\۴ "",a $ YQHVqRM\==~\.}2t."TMƏnN^'qL9Ƽ6n݂s&ncr묾|/'O34nr܍]AX@ e Ɗ08|>NW-o⪫glˉ(*;UX-P4+%\"u~8q ĿD_/pM#aZj /Τu;ﺛv?ɟ| nS+8iz6o[z_$tI$Oi~YCT{>Ea$qA:VK(U&_77'uWrÖNg^?xGǞmo@j0Eՙ,_1,$$O?(1iw[FqT2vYtۦ٪Ij:j4pTz1kQi9BPt$' TYҨW-YTݲtzAm2.-q9Z)dzPTDT.a KxCb#*$Aq=RyxK޾PDT%Uc\|h@g F;y}|SЏnXCu-Thh%'vq,^]`xS5~2 \{Z>/Ñ#clw^.A*Zi Wx" HYWm0JiHvxmY1?ιSs*"Pj;~Hk+w"A $E["*À`~dTs*`a3~ _x ΣߡXYxws?'>In:/H/'lIy% ,A|mjmuϋRWSDiDUMj قkX=ҷ8yqaXpذUxC ln=g d@ AU@ӏ:-&3;7i)aBȎɘN_?HP*4uBԍ'H96oʻsuם vۭ,_"'׾5{1>u]K""xgxټy=}ŕ( !h5E&WXGQGULZyE]\>qLUUE%HB"faVfP 0*ݒF5LԬ3"+Yd'n$qKD7+(2"8!dV+$aIcRwQڭ6f ŷYHB'XwYvmHhfv+BT$Uy9)G*<4VZm&ISU1,zT&n`!r@TMqY 8Od\a} K*ϱtfiKt:ȲLHT ? mVuNӮb1Rd$ pW ;vs2'"ҦFe>UVe8q5TzN!_^*䰤]ڥ\fҔqD|ZrNh-E~M$$  2 _{az( p[-IЪTB>MID>sW݇$:_.ʓUnc+WeXjF×]~?uxٽ|'qjɇPDth'.U"|Ҟ9HOO}uOhŝ= A $aV>%|ƤEb" IW%2iJ$qf.0 \<bjD^_$]LqW37Woʑ~|5\w68#0':ŲI@RdME-z=XBK+ =4"r(dD_6iyb"Ҵ9"Xr2=3g>v~Bƍ/ٱc';wlªU;i.O=xG8v} C# *K$KO$D,Gp=ϣ4;ȲBG4Ss-$c|%z^F!v !zq$Q#ZhyZ\$(ۮ- ݦ٬"dmZej1S# ³VFQD^g ]JF>KD7+2c"bLӢn %^0@nɪIt(MҰ[ QGR|!76/DGF$) D*ȾtBM|ʴm.̲׌f1Մ'wyInǝ׌ |R0>Sg:WgEH ( ̉Yuk0HHEoC+Qľx:ϐNc;rYD q43ClK;YBŴtG7PBo!PE7 z#=/yqwIF MΫ;!)X{\s0FJz=C\Q 2"FYAY(IMQ;A=ǑÄ-[Ǟ;>·yJպ 9sƙde:ne "q tMA5T^vAhîv!Twb$ëyU9$I0 #d]|;0?[Th u%)_%Tfנ=C_}+-rU?ç?Mm7s<$_x~5vI4kX̎Y}Y^ٹkV2;;#~]W7Mܴh>|07λ@M^@&L$L$I" s=LU( nۦ:;ctn|8B:5|!_2p;]l?qѨQM/$q綉e[O{h mY4:9M"##z{FBjUhH ' xzaY݂Bܹ$!dFǥ0 I>vj\QyeCTQ昛 Q4}Dz:1[vΝk8Dfٛpڤ3wg٦E۾e$L W6Q&$tФEHLӳo{ְn8îc#iC,8:^'Hgh~Cc&HR eQ]rlacZ)~уMG +C=*٤:sZGR$ID-(+%M3fyMS5~E75 CkȲtVR#4oΫ~얥mҙ A173G>u:̍&1^} $aX6m I$N"3;9AQ{;H>GƎ?>^I/{$*"i*$YIi5ѬL Vu:ɣ(JѨeuB.{՛ߚfY qtFN,HNbŊUGdY"I[ ׯs"]MZ|8=+;Ww 60?7jz IDAT^=PGnݾnF_mFlHD ICU$oGNƉel9Ri?RXY!ImZ F?Hf³|]??S*o|!JQIiMo/rӍ * '/^9PdC/eiezG_X0غrۣ^Ի';!A"4977l2'gsx_~ ҹzLM n!&S(UXFr5ף:RZ% CxQ(I9yԴIRE$KѠި!-GbJt(*.la=>0{=e `U~? Qי`ƍyضM_CCALNN@![=Q[o6}4:TS)İOOvɤynnxfyB,+D2%+xt.}k ;n$ :h$$*Ȳnz7r^!q4Y!g;]il爲9(Z"*%DT^YDI' B|ze^">^ǣoJ Yw$bʵ kDZ.-4^A&,;̎6^Z 14p} Fz(^D;$YFGgnXp.Mrs6xq_5Oi+9>UE֭HDJO]sj)ʈPutg> X>+r*;Coߣp&J44#cB @ NӱĂETz@V9\>fAjq2.KKUQ!I:ys)?+ȲB$N嘟# 2>lCGIzGh}*@kR$aJeعi Wm< 5*\ff$#kaѪ1̓d$E3LAR4tFKťzJOؿu]Q)!a639#u:Hb;ۿCٲu3CT"ICtݐ*L՞!W;Ϻ}?"Y~juS_c˖U4Ww#Os[32B"Dƨk$yJ! "Z5+3|C>5[=~ϝSPhGfP졹lEb'm!Iٱc<ϲ2=,ʱk$&kƧ+|o$wB*6% n3u]]r^OkN8?n:>ןv9r!=0fpx0ٹkЇx[OilNٙyzz&xۮHbMHz{uv#¤B{tMaBI Y)&fN\Wnh5j(B2O%ts+N`J2avh)|**Q%, %ǚ|kA $I8~]&_ vۥp5Ir5 NZa~t'ھ{ *mm 20a9 O@HD"I&2tvY!&&=4'#QKصɺe62P&O2뇬q[Hke%@ 0jm2Ost V RHĶ190>#ya[%c5!t}>D*<,QTO+.h=Qv:K$k5yh"8vRyr)_%1V ]D29Lp`r~o8%gs~ 'BJq;ty{lnW0jzw'_xXj7 EVvJ:qѬWՌ,#+ nh++t5l;ݭFk͗UzmrA(yc]$B|z{DA@A*騺`1hH{?k󌗞gMuۂj&B-Ё b5֠* ă\uj܆$)S"q7E8~(H|MVƾT+a_^?y-"-o3:sT&U`x$KYKXspK<Wɝw>Go811 ENbY/Y{WzY7zˀh`lI92UgבyNչz}7J)$Td'̺! !kr6^m+VjyvAFW86Vv}7<y~! fyyx0h7BsIQHbhGPQ%ҳsJ V!Y0 H8Ƞo2CB&/)i1-fڡ'{NҒ8B: /!?̎ڨ#i*=RxdY&ͲjJظi~پ};#+V|gh0Z 4 EQ駟oLyؾ};{avvv"/.n$m$$XY,3C:hAKY-ߞߦT%YTbFaH@z{V^!a٘Ŵ g9^ A UQ$yLH Z$I0.t/+0U.S=ҦҞe!-KXސX"*,~?/kmyt]Gt:nB׍n^)%:+<ԚU^yi 2::r۾jJK IB3n@Lt18LxdN:HS )ʬ :Oe6].CW 8Z$+K'F #P Tw8N'@ku86د^0RUxDO$E+W_K(k6VFrZbۨnTPdf +*ZlxX7$FwS$$Yi4[ I"I + vbL%ֿ \>ı$nM7:$ebr YH =_}c]Ã_]UYf-A& a|9dľKfDȪiH8)tZy1Aـ($RA^T6KywQ-M$c`xAy3*(EHS HB:4Ka \w Çgggwqu+ 4M{v?O>_;0wBq80Njb A.Iͅ==D8'Y) bDӕ=|ΕSpQU;ۿZuv?<=~-i;̓_*Bƫ]!X|{/*G-,"= ;߇8lފPı]HPj׉Y;m#4!?uKWMs^=T$@+ a*yjY>Xd|[g^~ )_z?SHo~c%wE6saN!"$fS'f yR仑%@eH"E8E,MGrh62չydդۋJSkt#;; bPRgsL95Ǐ{׫ 4U4ٴMZ (I$!IbTY|O?|M6rr>/P*hZh,$o?EOoS/32^xnbȾ}i,T P5f!8v0(Ɖۼ}wT3 \!:Mgi5y㢪:}I I04ffv{~6R"% Cy(z $bO/9v572vB!%,a oD,W?D; O6Q`' BPM6ݼؼZxt}vQSvt(J뷹-#av,'!mC%RB``*O+n>Mެm]O!wap˷=+ e Ḫ*$%&I98A A%Y !k.ChŽMI'+UD/"MtF&Gײ qG%IPs~^kjx|/=O4cZ)ڭa,Z2rp`96|_(B4uF z}u;QOTRz>-d E*$J&eFgg==GH&̝7۷Y󖷲k.c1~$' NYKnBNs萤TqXy,XBS+}C P;!cH 49ZI "R.T, J,++U׽eUpϟœ'7yⱃ1eӻxd6y|oo⃷u%zrbtoǕ{P[qE&+OFP)~˅_UI;O% HdH4Ӽ}p_Kud/|<Ȧ͛0trVLt`%\_5?ĥ+WK`}#(_<TE#c8kR*94% TCF$Q$0.[,XteɅX#N~t㢋|q;Kw=(~)zm|/gFK#pMb?Sד8dAټ\PyW:>k@H$QDBv|"DP1,|# 5-C:TQDtZ*5R9mq" hߪr!vMfl ]^h)+ Hp8Dc}3:f-xߣ:m"T]F\?s#6lCar<ٽ{/+W^ @:U|!`~h"N<Euⱦ9Y F0KLÇ1"{GM(F"D8DӣuC  3 C!#H$وJ B4LFdZ|ey] 1rxv~n#$'!*MYh)+}ZRSJ۞ {EW*; +QO)V\2u8EEȼ$#hʹC#} p_퇲mK" VzxXS܌їV|I8c*HӉTA}4qTphU!'ŪOP ` V(;o.V4XH!O2Q?i{5=gH{vSS(ʡbbpr(i(vxTpB=뺸N-]W1x:x>89i%?=U^Odܗ2݇CQDI$4f5eYrYZ\J>F 6Jʫpݛ "ܻvԧplGyCGXd `;Y T 4%UkB*>*xR JEV(2l+Qp}T+#!Q$;:F.AVED]FUDIAc#H#ȊY(bDhD\!N~ד4^Nh񰗒˕x|[R%yyjPB%EXEtʥ2r#/;g Hg=pͻO-#Y~E٥}R0@9 >JR=c(|N[)QEt8ؓ]kPuC 6>,0ٸT$(ZMuGWqfbwDdT_ >-0Frv'"&+x8C }DH0N{Ŋ "PlNQ5KP4Ǟx64Mfpի/'Å@C3F2IXG״+$5t{}#ģ:d-j`n{/Lr2x -k/DDbO w~]hľ4~cAWwdhkEp]V^|YmG)BBe2R$w T ##ؕ2(`W3T2Z D2Q&2]EIZkAJ!2 -(+ PX5ٿk=CIbU9VA|ѐJJ /d8ECܹY>|+W2AھNllGe*sC0/uxo$bR'R CN~ YShe?˲7nߎ(,\p4.oT)^TJ%4@`;§p)VK9DCG+eT(_N̵dgRM\A@@V# ! K}G)sxx@?>l..RbK42T.13N@r Ƕ݃\yA3.P8l/:/Tb6ah6}FsHͦؾC 9Eƫ(%L*>>&U$KUF]#:J`H2ő#.ZGxyl-U f+7@sQudbUuk1  D(T*txE]]@r0!FDd]Eˆ/Gl "o= !IMAk.ʙvRM蚽Tsi=[t\&C1[?7ٵo/ڵ{%i*ShC,i㺓 R FBX3`㔫(Dnl#=8%$$ O",ɊB8ˑ&ys{.g#:g G G" TLp*"⑃(]j,DBQPu<=x/W"冇vshg˖}:??DCcm!"+V,v߼u52>͗b[.Y2ޒ&T%,H}(:ZO&f͚ _{8' #Hs2D'V'&1"Pds#4"jNjCDÓ{RW}{y_ ~yp=wڹ}/s>q.Yv)M>hD<(.IxܴNlY31T%+lڂIZ&}t+ua$!޲j ?_ؾ:s%\dVͶF v w-=!O"ҘW9P.Q4EFK2z4IVH1; P.f :F4A˲d1]@4Fcq͍2<ԇ(ƊI}CɖNi&[u%b̘1T*UCLѻQAC<* Tew~of-Z@ل7CbD ׵)2 2:6,BXbA<7F,PӗKaN- QQuelf8u72;w;_2˖-{sF^6m/~ DQ$^򕯜}}/]vq]wO347P!fL>c>b *Uߚ0`c3C&` pfDF b 6k.PG%Dϼ_$(HNhC#H׬B<}P\[W<u!Է!#u‘i1r9s4-f*/!8C!K2#dFWebV+$;sۮiXS؀gٌ Dr\u$bdQUPעdTABxI<{cd7R1߆iZ ɠQfس9±:D6"q{y)[Ze{eٳPP5JAPMQTgžbOXOH}G) aTlADDQDr]b4rv=["o9s4%8yZgw`qB=$j)a p%yB!b::uKe *:@L.IdZ:H=Q/EEiug۸f%j_<ǥo.r˸|Jr6>L\dl"G$o|9_ĵW\1 c#b4<$ "#U†’݃<r _es`2Hlheߓ̨ޔM-k.DDG%2V+n?H$h0 Q|h={Tʴ4\~1~foĆfY !Q!72D8^wR j$.3#(gdž(- x(B9`fu(UDcpL:fSuLr=zIh($LH dfWQTn% &,#l`xBΝn^hRHfq+%ºz.<ϥX%=Y\C3-@Ǐ.!o#hB5dEZ,smw6sWݙGaxw}YnO~g>4Ӝ{^k@Z6K u X+Wʤ3$Nzx%Y@| Qw{yvJW]})~'_ud/!vF(U(:óha[#UR$$r.7RdLG||xe30v)5QrHJRn `_%FB=u/=^yJ"G/` }Ց ^Z:gv'$g¡>#G#+hg4a5t=EU4]F tE0lˢZ*ƐZm[8M*@:=W8c3yu2Dԗ-V'@$Z[yE9KgGQ`/bYl=gD!&w"ah{m jj32xdZ5P/ZEG9H& &q~ݼ,[.?ZmgEMA%s$F0tqF}0 0:f"2DR)Q"hlymmȒ12N[2yT #g,=@^{f 8>~b3f&?k0HNc zG9ھ}۸h`B[]B |ۦ2:Lzdr, '-{8${;EJ0}Nh<￟1,Yg>{WOgZZZg>ҥKfK=yud86eVW ShYL!OxFlMes^Tg2ddDSȠmʋ}96<{ Xف$<4C09AD S-D&>:8Xn,36ɒ?kMw%92H$O;5)jPΎPYpq| c  ctD D)fȲmV'RCaʕ2rbz\a>Md99ku o\ϧey*})=UP d匟;ѷRF1_ ԥ1t2}I)P/gyg^֭[ǧ\>ǓO<@B_aoSt؇YrM ŭXMcS]Xx7|ESE  ;"F"0N8dv?3ipSS"l'"f"D*o{I:O% ,=S-dd,1fX9(W|mgC򁧹o`p4Ͽz>pe|kxv|a.3ޞ"B\sh2F`$4meDF"#buZ;b# yTMo Dz$"рS*ᖋy2A!H"ՀC1EV$6DDEAvlst˲H,_L<È~3fϞͧ?oq 7={peMkײn:n!.n馓Ƌk׮ek{ժUT*:::OM7Ē%Kp]T*~>=yM6oI{x׾G?Q9~˗OڜtvvEyqJt~iO~nmns=lذo||#aΝ|ߤoo_Wtwwzj{o}[o۷}oYYv-?Ϲ[G>ܹs4^nV"Iַk&:F@p3p0T*lTbhhTrOXDc/1U4&kV oxԃO"H Dɟ"K2Rg `=" `>zP\.{VwDZqh$JPR8fjs2IDVe|ۂzVjipܷRSgM}+( tΘ'2QH۲ȍrhNKp{M0bXDžB5wO(,|ʂ ']$rB@SslEAPu` Djh&C2F<1q_)͗DRQXrMU<DZ,H.#2p`(f{N+R=KY_{?_կmヷnb^K#uF=vS}|,fjJC:z;): (+0y::O6<"Oe~l$eC$E4{,ҀW74QVYڷ$UzM}'͆-aOq7ndÆ W;* K.KvkL(4w\45@D׿&|_@Dm[?k_ wP.xG0ıH9sspx ?w"b[ Gq3g5]3/15\fJ/!Z,A~Rdiؠ;rٸq#ǎ<3|bǎlݺkJ֭; HJ>ƍ1/tRR~;x?T>,?)_5k---|_T*裏Ÿ;YhD}CmF{{;\C-P}{K./}Kwn9s5 w]tuuƗ IDAT‡?aرc9=Ӽqx}^%Mkg\@o#<eńRr(Ua3Y9퓞ۚH?@%\=GzH||>~ߠj2gepe8Fkk!; j*("rWQ F&>at|[4@2I4zr!'@:O;JGЧLs%2GJ2, E[\˻oz3_2Wu:V^M6_;.:V_ObU<.`:UA%tQ`w'Δ;vnt&f0Bs!8ݏҦhgw3)Ͼ߇݃-TLG)\txf)\fpbǎ=̛3#@Z$}dY'N(fޓ+}ǪKWDq("P,dc4ve|<&0A#݈x>U[W]uwy'?яppgBi0Xx1c477crOj\q_k֬Moz<˗/gƍZ ]ٹs9s&rD4cƌ 筳9TUeҥ:th|yw1fYxlBPj.oH1=v<[@#< s>xIV*F6OKhl2&WѢ*8.#ߎF˰ U4Q٢I<Muٳ-;\|EEQ.oXP>B)N?>YEOSRh tһؿf^BѮ'gw CĭC]}d'&tD4I#GOS`͔_UiXOwt)Y,<ۿ%_j Ԋ]I2\z<.$jEݼ%~2ŲC6k[p=]9{xa#/H1*O-Ǣ+!Zנewv\~\Y{8{>g̖پڕV],rBy`ZBI7yCcln\$wi2;Jkl 9s=gf='_! WQ:Te~z~b#`ݜ*x\k~'MN!m|<.\t`$U.XZgD[ھh%(u棱$ДOlx}JC-ؔ G" MSV. a8V  dȒBժR02:6Fww7m5:$)P[5kXsrۖ-NC˭[7a -eY&!u)sO0K (WrG4K9ua7A9<BB)Ukl!]ȼyNH';OsK3dPt]{>ʲ,^>Ò?o>-7霙GnTO$YNdYq4 M;q˯7JGz:k۸[x'Ї>?SS\(W^y%J*o>XY{Hf2X"C#^MO hZ3p3 1|ȯ\DuHDdN}\/P8!2pULz\z=h)μ̜s.`6> yg{1twcA$Ibx8K/nwb(}ҭDR H Bax$<>*Lc.-KVӷ=nr9:+0 `ЮK`i,197VU`bB c*)N|'=2]2}|OC<;]$5Ȋ$H/׽rԵ\ 64zUg!(Dm$+;IŸ|E#K;O7zyċٴ{?/oޞanrinl>  ~U۷oƜMv"O}Ld޽Ѿ~'#*n1׬iŗGy۶ͦ-s,Դ\>u$ U09bU$]L,B[@Nb0NL"^SDTQ&0)6^ۿdۚ h7y !dIphȼ(@ԶC ټ&粽Hm"RK%>6FӲ;UqTqʈkp |RSqri$D_>\MVC2$#8zHL0^dFqlp42X+Է%){G?qբ iwڵkҗ>9Eaڵu]׳j*Ǚ`ѢE\`;v`tuuq}Q*+C,c``OT__<Xlc4M:/r뭷J7A"tҫ?mLgYd k׮}MN$Ik __~tdSixx{w+voyk֬9>DBC֯_k s:y*jp y+T۳z w=tJ:MtɣL^s.R2YBg?J=^dۺ>J4QãUVRWW M7Yx{Xu\pRePd8[͔. :Nq)l^;/l5l7K;F#4M^ꚷH I]ŚeJ Զ$A5 }`]QP-Y]w^~ө!b#LU{+صw$DO蘋OP1S]e07dc\¶,JB0^0KPܱ k$Mwމ'*@7"~p}{QЂhK˂߰DsU`]е|LcϠ(osMM wq7|3p x0D??VZ xEYl_Q~DW8~ʶg;y>rJ|+_%zjN0[j'y PWw⺳tur}}nƾgO h"N8s׿~cO}S|_k_]tISlkײzjP(֭[svTo}cӏ8;|7Tζ^[in#ߑGr#ъ/}:|AkOb{0"ǃʚ6?ڣ+mgu >7ÔN 4$ .혇;4c !Q\JD䕱|Q* 1@-UBU͏c*g@GSQ1y!S!Zф̮ :D*h\hQBe$$$ rtQ&t<|JTf'G뎠<ҍO{=4]8fy}e-͝d &i5 _ĵ- CK%T3BsSB˲0D!PU]בe9~¼lH[8#L;Q.Zԅ?QMŲFVelf~9C$^''q\$#AFٶ}+9y;K.ؿ<9o'UB PW_820,c Y:DÌ>O Cl7tC8F@3L}rrLE?:BɡjF,^v HR Qii᳟l;|?_yz̉*KMIMEmC%JRg-~W!\]{?mמ) IDAT㼲!O4RÆC36Yϲzy<4_g^*?QECp*-)$IBAze=br~c~|aqiƇF-֤8T!Dw}i옏[,2i=?G/SerOoϐgc??[~Uב؅ v6>(BpJb8 .G&l#\#x$O9k|ǪV(Jh$5ѐJ؄"-:m66oH?B4Mòl<ϝ˖,tm s6eݏ &z YE>}511=3c??#:z;Z@krwݕ:7T_Wn;6Yr%GN?ϗeVXioJDmhv\9;w19WX*W"Fԝ)P9?"q<ƛ#ؾF$2;hN81+'NPddk JF&I5Բ0p!K撩 .2>V܀BH/fJMU;~y΄||lll5~%ü0\POQ^1ĚR\qN;t*C*a. ZΣ2UYCB`,{{2=qpdX'vFb$#'EF p*p-pKEqN,YOx/d1ǐ2Hs%wLI!Ij''p,k*/ቤfblhT}2Icq|ZZIaN zb I$j141A]m=n0G4,M(r))fR~J%YB Gߡ`f!II!@xBHa"IZGUTr,Rx")L QTp=f@J2 p}=w=TU}^=wD0jhg"=k ,d B*rX}+fl&}ϵ !¡>BG(FPBQ0HuغAj̯EvLnd =C(Μgu* ILGG7}F'q,\|!zؼeK9>b-k_wzF $[niAV5D ja+Cyi0EZŒ$A(HEea[;Tbtpng۞C(UL(V%J8b2`X8CBZz,SAv|<Kg+4@N.v.$I2,86hg_XLsH U71Ѻ:rȥǐ%X=ϿBU,۱m;Yp%G3\'NiLY~Udfqm C]$  Gٷ]{142$9=V%I"3w\.| )HSPo,˘98SO=8˵^K<QP҃>ȢEfT>m??O~rlzY` .<6lO|-Ȳ̅^8k׮%N};'x n:nV.oµ//wUfWC k4E%.8n9Uu/c3cg ԥ5_|APSimhhLHS}Y?yc>d;mrD 砏g0l‰xMMxvs>#PQQ)䱒 82jTykC1M Z5 v=;/>v]*4"A$Ewpqы6:с%`L4bvQKPmsVbuya$C,|+,2(Mnb-4+E*rWXT5"w! UQBM9Է/ Dq<)dkef/]J2et z]]Q.Ն3bFckx;֐J5Q.4$gmW]r7lqJ9͸ґ}~B;vN45Kx -}!-[|뛨V3\9{nZI#DO. C"KcUc~u 6yRjN⳧MNZNGeF^x^z kxC}ȦD6M6cElߺEK#q9,ZJz ϵq zdm(zPp>AČ9O+eY&&mrC#ɚð<[BPj`h92IU$ZQlf<~i30tl'NgB={d`jsUDC 3'^[O'3:"+Y x͝xk sh.ju0x͓I63{7L%۴KϥbU|lv%mjT۳HC=$v"J1wٹ8˦tx0AEhJЍ, "G厝 Η m Zc,]3$P(#-A8'E2vk=*HE {VI>n,5!S 2ESJ"#CGA q"l}}%:ҝC4&M6Ǹty3[eXQः$y(cx]8BQi{@2IKZyJ6p5l"[iTSTErwå履 d84ҽs[% EU*U&kl@VU X9~i:Z fO@UE)e&M5d FWeUqH4c*ϔ$}jX_ގ$T}g a Jp?&S.3!*z8mYsi } VzKR&Yc˖ͼeZ֯@k{a!^xnÕUTC]Ur]pN@Є\y6W8 ~:MpRؚ*IF`sO">{9u'stC!8p!E9=Jkk}lBv-! ,ɨD4Q^ɃTƇ~SOG$SW[Gcc#۶o'sP_O#'TׄH YWEW. h1T3)C>!UJ!+(%w.6\k\CC{.U,pŌs|GﯣTZ~$Qͧq-] zz66 R C(u !mf&p 3IF|\«TH??oeOŗX%ٳI<;y?a7ط0iZ\9GT_tozC$j۴3k?sL6C45%g[L0BR*d3T|_(4LMSabdadYZNs Qe4\d af@lܴL>k˩Gm<T%* 9 *3 /Œ8ܹs =9 )^Boquw]י3glm۶qWSU(իW_r-|~|N *|A/^<D"}\D"SsBuN,m+y286*x6JHzR:=,K9@0KeMDWueXo%p']tT1r# օ)Hv6[DԚ:-g:%icT=yo|xLZ>r8׵NR+ȍb|tU@(c9V-v/^>>ZϢ#+@W!&D bHspU P,%P6DW[`M] ǒw;XvE465ܽw,t K./W4wuoidW^CMS3F4̒kaWҶ|],'Lonay0CdFG%E 10p|f-UU$Lx=@b0 -Af(`m7qFG=0ڡO -=}yټy3rP(i<11>D꫔GK膉M97MoyAe8}v͹[k?ms=x45M)6<<̶mx׻5~Hwyl۶ 6pwo|;vm6nq-_.w}7Ae?x}6%bWp ġnKVئLa^3Ŷr A@x8C|x!;ƙ*MY)B8"<ch؎NH-.22[Xzx(SLՆqSj3jcՂ8RП~`2^EEOw]Aɠ IDATc㷴SѦ&t(.h2`d`7a,˘n98}95)&|( k _;N>ۧݝmڦժwɶ,$˽aJA7 $0!BCHB8`lc#7Y-KV]i}vg[H+ɖd ۘz>g=s{y<`?"?j*(8.cml0bF 0!@d=V*:r%J S(5@d\GvX>456D4&㏄q-P)Q M` ,IBק&(h,>q\J F<ץ2,S)I_ɿ&>?zDt:D?@ũ!D0NUU(Ȇe!PdB͝Ưˤ{?~?K,!~!1 `.{vCXي\wݏɏKkk8۞cvްn \]&+U">Ճ@k瓕,E)dA\GPT#R{:x~-ÿgkldd,,ɥ),TA}aaZzxmT*qvp "$TIBCPn?OmEGcР1d8 4 Ht"6c1.{ Nү|>3ǯz?VhpЏH&YT/ZȲe85>?[y ۪5Z>bI#-Rt&؞@%,2"pLāTpIETU-Dg_?D dYJ R֯G{S:nw3w=,:Zk9P«յ$KQ&"=A>%͡Ctv ~JiA(2tddNMd'IdrxESc&'IOT O855%fGFPUF$z8h0B Lt*P?Җ'ڻI44ՓV)2aV*dN4 ]EK}H8;epp۱(4O<4_3f2y?A<=0;1`jE7Hv"a9$I"at/EGW4p,=MnzP8k"BHD1<-V# IZb+Gp\P蠋u-IB7|$[j}jU'XeFPTESLY]/8$QyHz]LML:\&FP lWy˥M0 C׺L4f)JG[x.3t$T*D*LLGuTr\BUbIRgD$F]/JR:GI6mgz-7/d|_3:av~x{ֲ{8-d_LY70µgbϻ <1޻֞w'#5bujGBEj 9$EJݎv _ ?Sc:OYf1|d$dnMTa'YR; Fܽ#RG0wtZ$|+B;GڑXf=Ho_{|F\ GCcU7q7TVq=C$3i~n= 2gNԧYw B ^r m|+}ҋ/$Ҙl aDsϹ;ȗJ_?W4ft(`\>z#_1+QvLO_(: `Tʈg"|֓K2D4ȭ떱fyBl!yyrҷo>$ 6EGTbw=F5c*vxщkIB=EvV܊AwxJs-Y BP0ҷu>ͭx~ c)$\˥}dQAꓐb|##QZ: Iʹi( A?)DCQq݇̕nuс~hFGw'ݝ\t f3[ٱ};jس=G۬Y}-\0s2-&3CkŏqP(d/\y|_?}j䦛n=yϫކ7p|_~r'}/ЇdÆ l߾n~d2or_83|m:뒨|>dU!E$F Ct\7 >me޳ шΩkZ wc0_r: o~KVuw4^s:)J5Gِ1v7&PQ ~G!<nj(Q7t%8ҋe} KOT E7pjLs,8 IFFF2h:8>YQP ىaDEtۺF0| "-ftGQj%UUI9OAe,²,#-E+ *Za'WHwT ͱ($BP*YK6 6ʌs[9EL8̕f>;ws-؜ E[ Je46UU|!n]%`1C||6j1^hQ[,=`Ddem {@PLL, W/>*].&7 yEespϑy4K%{ }M|!F% =Dꚋޅ#|dI6<yƨa[~><~rݘÿ_,۹{o>Q/o\O|>Sg}C~o];׿JϜ945&}i\addInYo67׏wePU J?g,!'?Kgo@l":L ^GKޯioE4>ɠ*̣(yN*RjVr`W.Uo݁id|l ]ԜjrmuP@H6E7 L 'EL߲҂.2ʼn8<P"PHE L$#p-ǫ9{4E]F  +aYDR$221Lv7=/[nA;x!4%z`'Z#=EH#EڏYKI.\BV54Ӆ"+wo|?HG﹋i"|AC&~+&B;涛YV>O<o;gzjSVz^|?-d&`]"J>5ξAjlzĉJ:՟Ku0T I(\ &[wq2H_s klIW\qڌFk #1nFnRq֚|Kٴe_m,i>gw>\t bQNb~®qTr١}n3IG s+VPW HcV &h-qUyY%3da%?@HPe2i$1B8Q _c a +M\E7BꂸCL i*H9=| iuIl!Õ|2.u=,p6̞n/yYbK.6ضM&$.~tXh>dIIj>G,p~?,YYgo?xX/s媫bƍ9~;< ]w+W??xIR455qWpE#o9sG>7 7}[V>OqFOP}^{qxG:O>N?t: oRS!d #gPן=˲lu|}Ûضt`ZBa29n}; [x~Ax9SǙ-mwn89D[|P]ȝغzGkTlaQ%Wt.idYFF?(=jOT"WMɯ?ɴQǦR͍Hr- pA›ԲːR!ښ%5tl'Vǖ)5T{Pg a;SB 0elGhR z>㧁˲LC@FwΝSv}04,цTp!0|:рtip!G$DZQНK*C{R~LTY5Q4+{ehdgEjd "mµtv6;$)&FI%[qIAgu"$hٌeV);.z|l1sʲL(ǯE lGRwx^ sK~hVK?h3Uâu]5#]Fsis?\!Q_`Ӯ{pIIڢq:5OSRB޻Evm|FJ"4?}cEbZ5 Zkh\wlS*CG%+g%t{C*R5m4 .d9":-3ߵ<Oؔ fDOZ:ωh%pSt@Zܹsꪫfk#hF[[_=>{/| ,Z<\s '8󘜜<ݸq#Rlo}[x455կ~7w뮻ks܋8'q'뒨*B # OoūB&mSTk`y̫l`c~:Wu^n'mIoKC4/& 15cǎt8I0,3ޗa#,=s><aQ %<4\1"^9y_0CZڃ?>B Og"*g jfh̘NF[i@.A[2m}3LxQؖnt~Y-*{`Y6820s@"'3@5|e0|.mm\w`*u(W* BG|Y@7G|5Ó]SS |ٰEs]k?:j&%bCs饔FbI_?nh+{GR|Cfd2@c}wg\̚6+β9sL|GY6S}$ʨڐKe琝!8'~C~jsEhO2`YkrmT5im`vw HL6޽{Yxb^֭[Oww_ڿ!{q-]ijnkV'`v=RW1 R (utOYٸq#zidɒWB:2_׎we񶷽mog>ʎ;`rr۶YnHdxb|`…}+ IEMo[nyIm8NII~$*Eك-CDZ\;CXAVB!A+ ~gw4̱`n c1!2*b~gubx(>z쨧oύ2>1#hQ#ԈQk/I(F | ?@ 0\ pqPsy1셳O#.F^*FơzQj$ءnOW֠G#xJC0i6ӻ>"0>rMи §T_!P˸ȳCim'S_kHO01a23?ouO='Ō~0he˸׿柾e.8*bY3&WPqʥbd"nVgwpB~ӟ|ȚȒ(l&ýP,ZwTƘ̖5|"zܾiY1;|u/dipzM "J38 f^W3k;6э2MM_/9Dz;^9GqB)@OB`y^1Z9ksȚP(g*g^GywHg]}J 11hjFK.Ȓ\C~f3./篣.:ȹ ZRqW \]уA b`d/@=`Ñ4d#`h *PD=t$5]A y}w8Z[g=gHbo[u+3\z;3$v;7db"4} .`ْ%DqV/>;w0OBƉȐy/@ >#*7ضmw}7u.]l~B!PWWWxׯ.SO}A.gry:!xm8NII~2ىc؃~}|/ߵo> [ WX/@=[1+3i mˤPDD7a284 ϚGѭr{kGq|Kyv[,ozOrR93撜R`~{IJHFDXZ' h{~АQ*(J~nX'y/x=χ_W mJGyki5_ 8:! d$?p%o@O7UCgt=w,ap׍=\^GAthm혶蚎aF6L,%!n!,M&l$5) "G8xFXXbhP$~H0d0plEi|>5V@R~(l6e Y 246tÏ&)TM:T*e|)s,r4mfMUp݃hXBӰ4dg1 j$ΒIehh}\/h040MxgkU,Y՝49&̆VRDxt VAM %acBCFyi\J%hhD`׳ :;لmǍWP}:66BW ,R}=">)s%A֮ZŸL |S-o[׿v{6k馩g;,mKP$`UA.RXD-H*xW&é29DVȻB K~UA$)jC$y MM14ӴXbW__B\0Sim}{ X>ãctvugdnNYGyB.ǎ]<6֭}F sg5&܅x= *\B D"Hu62RU3z6}r]˪~2)f0L P)POcWh,HOO GTA<İmsi I$^ӈGBur*MqΝˎ;{XvcYf ##)>OK`\rg}㸮 7az!h_K)'qy_җnLjOyOˈJijD5T,"3W[<Rf:DjX[Zp=6'$R.z|ʯpU}ض͖'wsɛC[ O16p߽[G>5BcWg"r\˃) *aDтq^=c ^ R=!=.ix2mbŏmBR!R].'X<Ѭף45Cd!zi3,p=82-ST*?XoGQ BecUhŶ!K98v%LUZ3cߌ7:8?[S-s\-H,d=DCr)hC$SůǓI,±m꒍L ()'541NL8CJ"79F9k*fmYWuDb5MJWe&ҽ68P[9uժ3Oʫ.5|@Qd"Qz{399M)m&*+W3aZ?Dv)4_?@9;Mezsfᠲt=݈Li*Ң ܆$₷!OG 'H%[ C/.=rE?Vȡul`=h"FQV >Mo"QsG?bLТeXuAM2fhuxM͔њ)S) oX"!b _z}GZīL+ ]+WիpQ6mvM0T9GOr5%dhl-?!W^q9cvX3֭jd'}{veˈF"݃̚4SLq΍WH$p<|U&d 3ͼuUemk h*aQCy|l7E$CW>/":A\R IYDP\w.Ew:v {5{HM-X3`DՍhN|c#h#֟Iqje\Wqzs+)Ax uq-><ZAdK@y pw0 $݇RDnGEyN HLHvzPK0q\fB/ebF!Kf4-eXSON'L%Ib2=@ȗL MuYYxG2/b#?O[.I _"W_u5 fNss >+X:{n7u[f/_Koii>ŋ93YvΝdY>яl۽{7G[jV}{|;IR$IG6O$N%QYJg(6XȪ6Cͦe-F"\E=vwjK3K.;'7@T,#p -?9^qAr\ *1U#RW<Y H! 5!zTq%/IGϐ`H옟{9zC"`=krȇtlS)Sʌc%Zۺ(/e2%PV& {Y^.JJY.@+J Bӵ- Bݚn$I(˽hʡtJs]$I"Q D( Ɖ@xf4}/G9 (UTY%Tg};n9AI1DJHɶd?#Kelx[o'z~?_exxܳx=A׊mCF-!@75]QapeSHV~DZXڂt󺛉f&qQ$i>~b'zFuu<ǔΦ$t Qf !@sG;P4hI@\8JA0:2g?U֭5v>qس fn~\Zd$EAv(NSƆ-OnَqN%#3=~HQ݉z?̃mgד-o4۪A>O{^^^,Zǘۢ :d-Y>&kMryLM%)]ьt^88ſ~cWRJISjL*+&+/} 1V[|/|([6 pֵԛ.?~x_ǍWeE~#qrq9 OΣoJzZx#4"`R+Fa򪆺e%ʨ:`5{s$Cz$ʵ%4AD=mecLqw8h:qǡ:7@j?v gմ$);FhO旛$3 |F#MQ,wÝ_/m}7?O}kOq}Oev$ ^wX{ޡUAb ^ٵ4v>77|_d``eYj_׹[رc&;* T&Iv܉mۤqIWWwy'Ӥ4x6@$R2W.^?/~{Gg/zu%C7?բX u6^BDhԫ0v&4RfȥyfݿX'ro nu+&V] ^3d|4Ƕ&(>74X 8F+@(m""\=uBEvA/iv4.BpA A: 4հ1Mԅ:`Xp q&fY3ԬTZFZTz']L&õOJiHg;Q,39 ӠX,`Z Q5aT"YWBZA&\]=<eX~ΕV\Eilm9?yQʧe1J2T!"`Zhw)͌ɍ3XxB 5dWU ͶZ Riu:'e] C<rĞjq+6Y;i6n⮻o3|(o{ -!EnZ2ba${REp@SBN8HZ-IDB P5!&Ol[~H(A3(qVL BĒ=ԻPZu*~λĶ?ڼs./B "qfg17͉i_CsZ{-;w\QTl;NG:O>CBOIiwUG tݸvDXT9i!n dfaX"v!nF$zVo)%#<{7n1-J2" «!vl^Į'kf&pŖA\1n 0~&ζHoݺ{o~-|=N,|3qalܸ/O~O}S 8[o}gk@&᳟,O>$~ue,c\KX*RQ8<|N~5566QHE Q՘>=s6/!o P(Lɻ}$; IDAT. VFE؉/+toϮ]GߥPh4\>&obfahHoejnB* ]{f$ 4ciɈl1PP/RG#%(By&:s&JfnOz$JjeE[φJ@yrkWH]\Y Baѹ*F+O=D1Hp,0yla5Vf~bӎWA;1^tNxG" N@2jugG^ssU;C1I): 7a̍MuRvaqa”ןAB`J<{2:>'[ٟ_y<_g=&gSsy(&=< LJõE C9A:Ke@gIIVOlgOw~tttj"PbXM,p0|lOW 3c %z,AneV^p[$tM ^l~T)Kg$3uia),/t*fR!)a.۸y?Wm^oF;~]Vs՗[nx<B#Sk)Wɇ-g^ T|:E9fA@m[CC D"aߊ/15?A"G;5|A d˧lRB!e;4") 誆8d9v>w|\veR)mC={n T4Fj76ka‰$7xh482|D, ԏZ2)|0WeՉ^GgMZzY9볧E>{>?o"n laSTqrTZ *'&d: ݼ#lR'a(XX _K,6cg"=L/n^ߦ'GR{೟v߸1#Dj[+sc,a8#H~5;U%e$4UI%WT*4!_RgTT:2:JW/nьvXRᒵbiaأϬ۲E \WYr BYNZG :'cۇwDC7'>-#+ԶOՎU!fg14 TdܹhR?:GU"f]&#{' hb! PHITdff.>FZe jFz;c˖-`-s/k^E*B? hI ZAKP+ p4ġy:m6 rm' w?8b&hOB@6ZF xU|X+15WdX}-/;C|.]MFYqV-("5 ,fB T'HPp:Yzr8vfjjO󱼓d @YX搎C.CbHEqLFH@{(BEѴ3]#ltMZHTۡY,. =v*Bm7b |''&')JTQTxl@qijISSM.03뢨J;P$FuVqb29ʕ+FQe,c]TQybGc *ި333s:k6//knAaC5M&-Nk;!tL-`>Mv'z4-j%1TUKW/ɏr] XIo=Bwj2<P'T.׭aK!"F20H$S=]$嬠П^Rᅠl4;u%QT@^Q(;۪A6&ң"WQI6bjuP[Ҷ)( kbAf%oLEN!.PRFZduXxc?ZC)!v4 hD'1|75F=>g= C\HvL_X\A080D8v@.`oe dHqa96\U]:{)\LQy.J^̞fByfӴתE:߉阨=^oWH턁ۜB93u>|?"?grsyߟR23?np4:ҋgM:‰S(*}\غ+Eժ,,Lb6I44TM&(cJ--Ie,?ЊXfmj㑻i 8KPҕᜒ`*]Ms/VhLLO#2J5azIy,47$ca0$cZ9]띔YϩRJIajǾ reX@Jlqvʼn1x_s0vH08Tx;R XXrUܶig!?J+jn\dN#21Ia.YVA)5I9L3qSK04*{JMS!$E"hi>gjIDXOb0-\e^,$_rL ˾#t.^R, ҙ$R<3ĜfT&\4 'w!T7y$MZuʕ2]x/cF 9qPj&RmDMBBQ^%;mgpv=v;iaX1 SH NŔQDA"!'q)X8DR6.;[C&.TEtm+ d [.1$=y.I5B1{$,MD? 8d:WazbuM0W Bb4Bb">E Dɉqf/tbfً6_|7u7o~$Nbb(&HT <27GTJKUHYu:RSĝTMt)"1+$222q'Kxy ~ozu뭿Χdff{uttuv>[.ivs|bk_{ .6KVessGְ{CCXAT;X5QQJ%h6*H\\Dyn-~fj IgZۦM2E#B.nRST,SGZe r qr0M$;EQgƍ| NX/cگV3;=>sAQl$p9v.bN91:FZ\)3<2LdeE2W^W&Qۿy{bL[j $2Y$4CѐGLzͫPz̧ك%/|,T#Nȓq.l&aőNxez{z-q n7^916m﹅&شi{i7aӥ$2:LJgk7#}d8l %j!2GLB%޵Ffm '0uˢ$Djc}n ݭݻc&y[J2Vmww Z*H$!Y#xf2HSQItxNWhsbKT7AF*UQ}4M(d\$щP* iOCE~T>HV#$LS*qYd%Gύ!#n4U= '¯W |QD$#HE@U12b)PF5ej׽&ƍZxŖK 0dQxQeDl'`5, x% >կo,"#Ѱ-b{?.ob% -yws|S૬\у.?#0O'r0vMxi+%Ԃ/uwb`Jo \i x|׏PI%l߶ܻNWc# 1Κ!SX Jju{jQ_?>&K:4:& d9H"mځX\@ K@V639Bafqi"&n:v2M,G,0M"ZKE(sL;HX/K0>cבp Vɶ+.cGض2I(bڱs3hV&fI$qVbqzCe˖erX+DeMT~f2aԧ |js}Ax/({8VlguN 0}T15^Z+C*C3u󔋊ng0Yї?}{d׮#7qh3^w%\EQH$l,C'oPk:#01SuiDX͞<("aO'favҩ,I.9Q*n١:6 I6Y.mU%mcO7PЅJ\kV(Iy)ZFmΦaTmGbI̠ 1 EEd0l$d[A7V b61V(Q,I'2$c )\JINܶ=DI^ƴStS.թTTRjۼds'*,P%+U9de'(73 E!G,oadxP1-޼7y qB8 CFއ_Gvm|WJ(X"J(*Ƒ}D9RNl$hSc6la= Ws!3L +@Ş6۷gM;8c~ĺUW\t:v='9MbN/F//:决IKĥdY0Y}Y+Tx_>9ʟ366ʱcǸ9r0s^4'Fg?KP96r7-C;| 6Iş|L.$ĉal4z?)t:qӠl =ZD IpkVF]=dJAlӫIq fbbȃ;qkgtO*&Y7;nƁcS_!=I.YK 2FBb&Dkxi0 1LSkQJȳ# FTKۆt s鸁\eM '%pjY$*%C}ȖOQ&#t)JUװbI=0H$3x]AKu#J$ S_=o ^ADfzJv.ZZTJt"DW?AyW< +r\22QxYgݏ Q'u( ^E2( ~/(m*b kdgaNb${X6!.ҋJppk{?~.ټx2 o7$L<5ݷ~G]a"F( bqF-K)i-sF b5qDߡ)yh2 TW$TjMQl+K~B2?_\yw?M0N>hx۶՝K UQXl:?rb" LVsD@ǒ::PmVP1ёRpIWjSvI"}F5D!9R=LC_P(AU[3^Am& /@:fpsHQŰP":L"ډ JVȳ&~;)2raT@"< pFJsV.5/Q)xf 5^YQ/0;Eo_V &I)[lpu[fCܙs: #f;1Uk߇h*_+V0T0tc(F֙]$;EV*Ƞdcq$^b`Q2i"~Jh1RP1 O4Nt?MzH$aZdo~y[o0j*IL6q^\s<>2WWqw299@դR'>6L{3ǧxݼGwezF͘x;؍r6p%`U[G C:f7`$h5Ӹ_l˜hV5>1` ;W`[ T-է֨O'%B85OE*;5*Љ,|\撍/Z`u*-g";jģ?;O{zEM$JS֘u[F0:ro'o{mLMLs7 pͯ[ݻe֭yj/FM_4t5iaij%awЉ2GJ0[_MԐ@ݏ(xJD~lqT*-X2^qX&*/k?_ܞL0u] mz0z]>z>57!G u 5/űqKޑ&#ˆ(l69B9-ZTMݽ$b)JUZ-?Y'ӿX @* 靌/neA_bO~t{!ؼX_A3$SRhJLk!u)iѨB#i&Ik8շbɉJEUMjP.ֈgJU hvSͦ90jkce2%ڻS./` m"T &2 MDUD "UDK&sGGAs؍n-v%=]+ɥ/H!)%A)˿+<<7^|[oe׿AGԙYfOw38|O8?w};︃S-A@Ra||'=;@5(A07O0Vq8V4VBl]_ae]f}皕 !C02R@4l,sǍ۸_yܶlag対ʞ7R)k!#"ptvGum0@KH$z4ry Y)R Yn\|!0`|:CG_`6YA AvBg QA)Ű'xax(wS*iZd̍ۨl}`<ȶ-[9r(]Y&N"4ۀ!fRDkn,$)iFLnL5&¶,'NRf*״5*iP?<6:v~Ip=$X9BAp /bNϓ ,P: ڣWVC B0 X"~@(ߍSa~di~^Ǐ?UvނR|>~;qbǗ0MI=uěѶb "$!wlfMSsNLq ; OXŐ)B Hc oj˹)K6!G'TB|2QD$RaڍYC|ׇ˸ MƯ͓ qVAALmrV& ZgQcУz]%%9v(iXcj,4+U[j@%pT 9z$!gu~?q> LG]z$G"TR0JH}7bJRK!@ adqq0]F:m*Pw$ aT ۶U27,)cYE"zkx6^pLwl=9.) ]:_oS?+_YXXwtI>+g\h&ʪt#WOrt\srݥ-~_\)mHi~ǫ<8s[?|sC^rlZmjg>9Fj5>p~8̞>~fff89~$M9x™3/}=_,1r-L,%YW-:3.ܸ7ՈrMDl*}4v\Z |wg>S*X/nzL(AW, &M24Ųm5Yا:2F0J)l0\`5 S1sf N0ZkZӚpZWW4)Iڝ,$PNu3N>k @HAba - EiKѧlHҫ`m vl4ycw*$FM'QB ^~ wN cܼ@]'K-! cwM@kBew ?qݻy~;?]-D_r o([6سr''f,I ^ \)x#H1mBEa# 7nڿn-{6S[)q exפ\@HŠò-trMa)zAo 2X^nPT@ִ7@5 *7~(dBT&4ZI&H)fL*N3wi*~4"?B&6\(P Ȉ$fN2=Ek7H  l9gdP#+QΛO Oa>wr,'gbM\$L{8JH qY| arwH@:% m%%W R~T 0+*&۶s)G^׾2zIp^^Pb5]JkM@S_4W8p|;}3s؎nؽ'ԧ>͛f6o'4'j4XliZUY\7`e1S$dE;SQڴ^V} ːGI8%v/f߶UG9m#DZ ^h^^Rrްo3cOxIYbane?}7ܶPs6;LnNmr3R,/`*nk PH3cǰS4'0Bx#MƈO#'ס]M/h.S@HiYC`k{E<˥Z(#z ǥ891Y,!e[dQJulicP]SݘEf4[m{Q~cGu]ziz.n,BGݢ\2=b~aϱi-͑mSH)҄0a9>WD4 ,'M3ze,Y.<.5iMo<ʫkTVЁD1NH~!~ Q36=η&R ,Nl$ \S[bU<&!%V #ȴ2 TxsNi^q I޷L󑏼oxB.]?Mn/zz6 1Ǿ{OFjql1|K,­sRƄ&G&YB^PrIV)&WܔnCށ7N"7動 0LJƜFh,BOiT|Р:+%as__^5Ba-e/<~zw(9f8&5=׹RsvkWK7JチF=o{{;Ѓ$f g3M`YTa9zFzzc +Rdm kmABs_B)v uWoX IDAT ZCQ*r |xNR63Dr'~ƙ3sg>ô,y\oP*W{ӍtlKaYv$ )Th6/,0)J(e`Y l4-n$q H!,c(e$YBn*WplJoV\’OR$ BƦ,`6:BXy=ÕJA6w$*#>Ki:F,Ny>`i?G1 \*Uō7q|~4X^쳰S*Nce{sZ8],''2wpuHjX2/;I=pdRѹ21lujIdYBGd rnF. B+N\IW~INy^T̸RyʙYߗ(Ll6;[wҌ~Aˈ1~E9YOBP3\ 1G~o}s{﹇~klٲW|f;H;˾Į7;8c -ծ*YNh?=U*]sp$[ ^/# J4R;+OP,Y_E^tkU*xeXmNl«mD+K۱[o].\=f#tR)Hũn4$逾jc 35Akr d3IF?4)weݠ3R*(8.3XØބH38/r 3'H˫s²LMN'"y>=;ヒu4gz٧&sL-Vmp^V&V'&# Ӛ (H9Rbn,wV(VkX\ӚA7qlp tn"NЂN̉/uq[o'WJ7pI@OK$iam_))7O9,FbhHJR˥eh m|/6OcYbrqQ.XY큧Xiq;Gh?xU+!#7N>Ұ00^1|Y7tkIj#U)XzH,L< d2{>A&)r4`/3mnΐ.c2GX1_OK5 lVґI2cٸc ^3Ȼ)aAڗD4 $`Y,@g8CXPKӞ9W䴼2PDuDA%#fd3zmsߛ~"?)&tIb8(`uS;!̥:{ SP(\V !qUyX)%,j~VoHUvNfċ+M6i-/ ae'6T(!mDu*1 F6RkT$`>JTVz;N Ԇ*࡯]jg{g+oY!>2dI{(Z4C,/H+* ?9׏7S k/k*;8=o~/?j1wfu}qӿf<YFGdY?5\KKH y*]+~;P1v"96~痐*״5*N(hZ >iѥ<ࣳlc=X3 siJ_\8dl!-1e$+İju)>upɋW *c]e#s ouo⌸sKJIw$nFZZ H ǟL6\oTcFH$nld,mRaT#ç;:W|B(3QɈĝG=Ԧ7KB?2TB[)_ڏJ$+Zk:E_./8r0O>{%"ַرcf }'ߟW?p~q3X^ğĮ[^W u EC{tUeK,l*pӔ}gٶJܱFd\C4D)!0Ù_%y7͠sl_vpDItNk Ә( 14ޱ籿mОGf*(N¤Ddr4"=lCrB~.4,/RM`lJ€ lSJs/ ϑJj(:N- M Y"c/;ﺃ/} LNqFG>! a/t[D>nr\Bga{AkٞR$"Ë1Q(Yr5P5 5PyuwTqL:N4BJIdnq7ݹ9r(9Q*m Iɵٰ52;RRb a4:O<cga+s 1=o,K<ȧ8pb]X8z'|ZN'@II?É;c.3L=E ,SאDy䊜Mv2F#ĪkrS0C/q />TH<g;:< FMa"rI[$8 HDT^SsSbx= y):HVj؞z$IL40l,N2L3R b0İn\psFB )q XmV2N-0m*c䙤9mJRp9P3& ƀo I583wv;[6nvӟ}Sm]nm&kId`Yq~lZN c;L!SAVF;=:F86upMsX5 B)6Aޡ蔾g2 2aXY w "աXR] Jг(f01M\,!$R6Aa'OW cݴ6ly{W|J)\gيEޏ0$:t&\^j?h#Ź~/ՏJuoeM@C5Sna;?᳟'BNcShCt@xΑmvcSGqQa+5/&ךHLwлQ&1m$A@?KATe!sP Jʠz?esa>_Y~#?s#w#]`.9:q<r>vXY}B9aKm;eEn /Z'f1LbJmrm TiMkzi T^]]2c+dI$ !:fo&b׍s[:/ S!"]I$&R+ȉ+KhbCGѓ!+.61(R\vOD$~[)mcѧxb( 0a& Ch@ aܩeN>yR㔆EqVj0Oٰܱ_6`'/,BS9:~z;Zcl_YNfA(tvAJm}[&C-4(?M3#.=+}R8R+=t;R*lEnLX*%Rp\  2,F*ePetZ2?{aخ#/B IR:cz]xm.*9u ^:Y@rI=x͠9u #LC1ǎga֟7GyawiU=NV ŒRy>YjXi$d={+WEBC鄤ް.*2 ,)8}jaar;ImgJHEed,BuP"i#Fr NW[_\xѽ~_[ 0M滤mCIfOD'0THko3Kꕻ LSt}ڢ2(TT){ͅy܇~ |/?N}ii3obv~ʝ?|?''+H-Wt/uRȢB'r Jpt$̀S%F+.+pLv͎״ V7Oa 6GϜTU+;c˄ԆT'6) H#źf b4a8@ HE"* %,ެ40-5*(ח䵱sA6у/ B! !J8{nP&Gi5ht(FA A-`:6q"l`pP$v·HL<W8ЮϠPgQK5P5鍧5Pyuu(XO{eU͆!:滏uFWk+$p19)EڿrF˜#%iWR.-8rz ɑBʌnKy>N滏 jQF,{2TJI{݈atLO%R 6ܺha(R] EsnJO"닗- / @#zN(-DS t@HN=kN6rYbZ~# [[hl|e}*1N-#UJ^!_q]/˘@:-e`Uʨ?0M艜 VAE7 ( {YF& cMnC K_ T H{#Oyا%˽Z'el`R9D1 a/(p~nkد6s᭟ .?v`[N̾+UB.!3:+dyLnҶMKr) ~,"zl43R'5ZCB ( (N4 4W6it:64[;,Qԧ_Z1Ŋ-c ;QGLabJILNC ʯנ6c4npaԫBR꾕Z3h6x '}peiZڵ{w/|Kٟ? KD,,8>} K(5qV`1f{,0SpLb5]K YJ3 hfnQӼ t6\)EuyTFOSnvtNi(uax"q E\ϣY! \äR4q㭠!z:ǫ0?CԮ QRb (N6V# C7?{nvž}8z([oXx Jx'MRlT wR~fgضS{p@1\cïA3'/lS"¶;9dLNU]BRJ~/I2'M#t@'(EK2f' uupqT& :Ij#L2 ݐ,{$YH91>QJ*z`(:P:aTjDap5y1YƠaJN1Ui֗PKf{xCky3Yj-Qw3A IDATmFA@iYEA)UBPBw;^Mk0'>)[_ )]fmy{oXzR Ao3¾-B^b&CUkGR λ=0B-O.b׆/[ynЧ\cyWHċaeRm؆,hHYzQ4w\f9u} AefЧX񔁙_ _`jw4?r}Yl؃a\5F}%#SaP00bAH(.juFi\}{תtutcDqYh)-Ǟ3EqxCd"猔8ǚXek4&%Jm$M\@  t}M4 DZsoOi TJu5U+MY{{_䡿{ɩ윤;(a&X[j~SGNӘ](92M{ѣU0LLa(BAe]tLL):~ȵi &RL!4KuaH]Rqw@iZ.&t9Qԫe@"{,I&.=y.rhhٵI,0B(L,DԈk( rl,1;-Th z=N)cG7 ؾr.k+s(!q!YXYTι ѨP,UlA!#uF@催|,Rmxqe%[&b[v#ˈKzHحoKs~ \[Xtsd儩Smø0QJyhLV+y%]Jj(ɰL7Hg]47ʵ'wkF,Yã}Y)$TE 0J4aeqӓSPnǮ 4Y[Z"ϭ &Oo,S.Oqq&@)7Y'3iF6x`iL3~Mٺ#7vFJ-J)rh4^o;| jCUz[..A7<@`0J.)G8Bא_I_V,Uu$bZ@`iBl`vcbGХµ"oXmql/X}Ea)\rok;ʆƺOgH%i,7|sϞ0b#C|$IpLI#I~v t&jזKt[J8Ķ eI5tci(R`ׁ6heJJ}ؤ#,i.̲.]q \J24*6Vx n7OzgQ焛&UD:g':7^"@aЗ/[vsv1lQFe0-GNi'+-!P3gqO@M >9EYi9@ԛuA)4(F6$F0!cfBl@ꐙ ~vdorʼnR e8؎M͑B 3Gc4L76gO>-C,NxZ oiI>4zx;IFOT iYQҜQϣfim~ox>YYdI~P#Gaz.}>y|+}0r-(i]], 9ڵB=D4OILCGA ˜qQ{n 89׻a)΃#-cph? $A/.`= rl_xuXF .!k>A`)9FZCsO=7Y3}YFGٽk;YvdY/mXhK!\?YEtΓ8Ӭc&D[lǖE|8(oҙf}ű) 9(p ʑ&RMP(nEE\{&h4`/`5dⅼJESѳtGJW\>/%a.v)v< P py]n ,2]Ĵ*da|8CV0p4'=JBmA;?d^Q[WFpr5`,xcO1640K8"_YJ#Pb. EᡤA^e.أ㜝7ZcGW%5 58.:=8 /^EfRclm 3XB}_-c/=IUM4lcF2ݝt $2?(X6Q`&qn2̻ y&42ʵ0s ȄblneSG!qͶ0nQݳX-Y][/D _}NRyϿk/{~ iB&;?홄 5$e4Y_$qr^xLM* TQ! !:,h06>v|R둶Z\Y]Zt(TW1mVI[x؎K^5!%mI5*ա6Μ&h58)(e]Y*?ܵ%A;3z0_Hi~_da}Jm7RI^K+HHJne)e s"¶nOTϣ,vK6\^h953ŧ?2Xя~GCz7O<$x=dinVm_W -NX0<]Pmiڵ_^>E[lB)ȆJ(gupJtu)<ùUp%=Z`xThV.zykjs70IZG!=el 3 侃h"H2:%V-y 9^♣xS1^(ַc?ѿ=U~Z.I ;̜ }w̫:// ͓ Ee;dYF$MSFVnKTn?ulZTQ혩Y)vbi4 iùҐ] -~3x k:8sϼx/rqs/%ButE){WX~9R0 H!P0rE^.Ɛř< #h]b 㨠Gz]$<Ԓ}[̕QJ<2D#bwH4+gVgL0Ajwō9JWbG7Zkiu̵.!>XA 3gQ%鶛a@X6JXn$M[;AZu$&b+v^NilYLW%3ǿ|II)SWҗ0_+x9﨔! UAf hq)3gDtj9/+Jv)ك2jVEPϛi Ual@IAe$IJɭtS*ygϔa.\wY)1,t Re ,i+q*Ҵ 8CR"ugpF_}EZe N=6i7"*)1##C 4 R [!Ft]Ẹ Gz?_y.~:ķ 0gs??w~'V'|[ﺗ[ame #޴Oh iBjb7i&iE^1"f{zsPAwibY$=?)LEFadZ=fϲXTJFxw4My'bxx_̳O~e> ۰H˿a@smShD\[pf_-Jeԗ I34<[lO![_0Fi^ 8"iRV7_T#̀q@]rj@јx<ߣ:}DI$ȜI̶O:2BSLa(ذptW:^\7VIĵ*6 vѼu?]D6$"%wҽi'v D׆Y_a)#22n-ra+9ិb۶ANm)q4{7}/%CbM'Ghr8ϟ+|g&6n´lem0\D ض6DJ0Xw~wA|&BWkDm; Y8Kծe)QV.y_TX ZY$LCCU&U@Qv؁dB0-͹Et1tb[3<79w}l>ƃcy/)}^=iRg|\2 XDN~nWױ̈BtɯZ i2A LlOVJ)IӔ):m{#3Uol)):zqձq{Uʐt[ut,q<!3,0%0Es۰ZCjB i Om^ޒD뿱a.)Q2%X]<7Yҍz9]bn#' 'gC#5OU4׌Q*|͟QjM+_*7|4KyG1o| bY6Q>G%G~Kf(m ^6bkDa F?^Gn:is'Up[DKe=Yp6-KkM:ui#,ϢK9aD;& ##|/o|[tc>#2R/uӔvNҭS0liZ+*W})Wv^s˲[r-)eKT^_ТPe̞npi gi9M.)ΥE0(CC;oK4Ēmdt6) PH!zhl,>=VG1W_cߧiQtf[L ];ٽH4ytO=1,=Eck]TD8>LHDDD%W;J؆COK:Ұ }EmV°mdei/DI:#RŜX_'1-l\m_fR`c"@Ȉ,ƪx+%ė%rmY]F&eެZttWf)o~&1IPaׯ|~e\%C::G7VT=z3gΰm۶r-bח7ؿ 9,ͅ*o}[J>(F&=qqvvW]Eu,&3.{Z9Wi iX`&HX ˴9qκdDDJd"C(["7zf/'ř(cy$duG<7{ Fv##6RTucL5 IIHy"GA2?rƢlR0,ȹ6$q, q]!Od Ed*/9{v٦s[8^)K|G GW$RK^dxv ikA0ScMKa>|$|VS8F8^#|@8 P<<6m/++&P+q CHavXmz.i601lNcxz?qws`]\.w߱>@H)ò/)AZ BL@dRȿI(a$(U*i eZ#|ٶW!t$Vڈ\ UhhY=Pd1F)uLKٳTskoIbU_9s h4k+ ϝT"ՠlGh)1zO7w38VN'~_{#FJg@$| 3L I^i׼}#(4>i<ȯ򕇾ʱFIwسo?o*{˗Aat 啱 Cn++_m6pox*K ֶ}tc^3D$kϱtV SXC#ĖCΑ/xtEJTf)k e2T_˃"RN$I6Un\NOO9z(~;7IV[l-Qy}ySR>:l߻_Tun) V,1PaN'J22TQ:D{c֙idi#=m{@{6ZEIGw_U"A~О[cB"9vLb It@}Y. >3K21A"e2A o#-3edNS:݅yk5LSaII^gӡ6:7Ph/IQaKW9Un-?xm45|/)+w r)iiMt4=P} ".SeZDx@k#Q(7]V/m7W\C$a T&1E܋NSkuea3gNS|IVvN^2yiJ˳-J!2>} #.6jEfJ3:#ʩ4%ݴZNcM]zf(4B#"scoTe[u{|+_~11y6V 򎷿y>W~Wy9;?W,pLʤr;abD8cSЂ3C;狼#N q/CŌT ĦXeƒ(P)VP9ΐNv}†$nwѨ33=>.O/ %f-w3<ؗ Èb~~ko;Ǚ侷d8s|g:tkyם{#DSx]tOPLdiy}t0Qy)%00Q+3h/c0~Y*C(pCD#G}zuٹsz-bח7Lh4ʨr;o!p.^ӖHr1Ԋs*)OnT|jkB΀ڮ2ͼǿa: l;Du;!?~(βe`8~l=^xO?"A,dwzgE<֓OGB|4#u6p'=,$ί]+Le,&$F*!K+E=jt7ES xRL᜘=vtnB} %H6) DTe& ȹ9#EKR A.LO.Cң7(HΝP^&&^w_ʭ b3b><鶽ĶdYLS2\\Q镳,7VBmT)&Ar ee5ͱɿf` wLS|ljy~q8SڊLH%hwbڽ2A[2=3wajfNXMt-c;wӬ:qv<heΜ!?ؿ2:TJJץ2srid@9ETjA^!+EV !pChg.jl0JwX FT:3Rڭv8k4 >:~㖆J']^dNКX [HwB`9C<|5T !PUnxFdJȫʪQyIp|w>>{?!=E- {Ͻt~>'`r$s/: V T,.-2Tއc9H" oܫ׊+$)_[lqyL(h)8fk.zVٓx{MJuН%3JqF3VWW0L̞Aֹ~yI ?>r>sr #A^8zo=]>$\^ @*' :+ 5rNkpkfJ>]TO$r)>[ח7ԙfmG)\vMŢDb gI=ZvegYLL$MOo~=Ji:}o%tO*XiRxt?~Vg[2,/wFZJ1Yjρ0O$K0Ӓ$3q.~#(8Ͽ7|}{y[D|$F B28Xi>G.vl߉P7dnn;ٻgEg/&eo+D>uUp~%|};X4ph ekx*tF`(F4-,'{R255'>'ϯگO}S޳k8=Çx;Aci^Asye:}޼Ȓ^coS*" / ziD6B._ crUTj?5˘{Aʟ- Ö)D߈8+-J2$_+$烽"MTDDžhOOSȡMxc@:gI7]SI &R ?"-rf(!+Gs &)%a,WX 3fxᱣ-N`>H,zYpuwy*dq]1F)YZgQ(x)JŽ _)KCXX9t汵 b G(v\~5X mȬJePsMޤɱmprchd/d)zf{, ib8 íݽREX%| ]y Kgd !\li + %D mA+1\v!%az¹~fb(&CȥYDE/,5Nm|W[n Xmu(3*!rLb M%$ǦDiA׿D!-tƯ禙AUި_c b@f(%_l,CQEȈjG+ژA2ItFbB6Tfp+gV"Y]Y+vg3JR*;b|9)aCf0s ԋm#C&R*i }0vrIHiH) {=Ul)Tcv~SسwY4PI":37?g\J*L"AVMMȓ=(TW3a!] ڬ簽}x}H.멐tJwnՕM$N8w (OcZ6{ٴ{-n2̙C|r|Pz:.{T4M"ݱ*BG8m\.zb_yQ&!?Q2颟tQ?M6(_,{5TrfڵlݲgckJB%4o];pO$ꢾvӦM.\Byy#:j;TYN˾~q=BЕ3Yۑ'Y%Hlt.ǀh3ϸ\봬uMw@:$sϱyfU+WJ{{;|gJdaՎ In`[#XE\&/PH7ZFzLl*1|L {d,|Hb )F9Yؼy3w}7sG K,9#8>ύP1z~[UAU!L 8)ed~ .fyw&͟3B '.nμyu̚UM[G7VeV$[rXzֿy"bm>}瞏f0Yf29%tض (GF'p04FH*\@0B"5z[ 8))F 0`36)r(6VE[X> E|Teemx$\85M 3GaQ?G y$ ٶpa2%p;)LiiX,H %.7UewwN$,^9u")gޜE"C HJ`RV4b ڗ#II!HJR4MLmGGWMNR¤,\FT5v੭C8_f̥CYQĈZx&Dz EWK IDAT)\.EK=q#KQ*Kq4m[ET7 %J90r9ֿBv/'ػr M Naxh@yٴ<";Ԝ"cpI*uuC =-ndJAϱmKN;d^aʔöARetT-z:t- LSAknE`{IN,[%db.ikx!P,?泟453g6u<]Lkĺ58g9}`Ν4Lh`Jd$I9b&.m෨cw1G'/%}}8d4N㨑v1(Fyxdi^Gc|3><(YY«{C4K_?HF+ɘy yRp 7?_rX,6۹̅^;r-v5|>6"Jx_r>_NSS3g<yB;ot*$*dy;3!j&c&w!O@5vvO+\<0<_:c4PEFd)>6Y'(hB-(c[T-NH/$_E&HF@H]41@J\xh3eR2q2}L|S%xiӘ5m1. y RUk#V;$6%vnyZHBO,W 8LAHb2ZI (-IūYc$ÁN_a?a5CWG#)TUFqk8 )g4%Sޅϒ= a* PnضsS'HV}}d SBeT6N2 Ļ(umw3gl&MC:7lyc/4Gr0RYp&짲&βfۜ5BESƖln[3H1^L;%$ŗvJJ<~Z~ʈL1vz׶ڳ8AR$/e,#տr1cL1JR+{18wE4CG'd(dYɂi|ʉMt8w`Ul۱kvt򧧟fiyjkk--{ x酿???ʲr|b}UwPS^,+Ca^S2\ Ep̱ɋLI#R-=a)y^ d8#l!Ι8%nJK ӋOx6 JP9WR@hK+eMsW'?哟?| ^sfdk\KUu%ɞ5%6LaB{bUK)2H$$Oj@GeY7'@Q|?#;,&[0m c,3TUDBJhP(4hw TkmiC׿bߎKrW/m6&L]wŌ3cҥ|3c,ZKruq5s_/A^~FMM ׯ3[n;3yc#/я~kP;G瞣srwRtR?|z-m6*hK/;gu[lᦛnbŊ꣱?r\dtwwSQQ7_>y_g|>ߠ{<pg|De.7ItR,Y›oɎ;_:6lg3r. ?4`ݲ?uKd^]FHHbql"}ÓH#i!"~k ˡ7$ KYٞ:n`x7o'r#^ G;O]Ey^EFvEpIS,ЮPX]$ӎ*KAC ꐐF$.rf?vH@IÆ뺋P8H>ƶlۢw-`ٗ5I)L'3p?9 -]Z漳-HFhuvk_;B!u5hmzbB`r$c ̘1(L_w eyt&U1]۽T_%l*N6T c8.Mk~_hƪsÖuR]UĪك=mZq+ 7^|!~K|_37gŊ1yl>"ز΃$IJMp%F2*q}u)Uh@t- t]%`!ײ-,rvF8aAB8t$*ƪ7y׿ Moo^wR,X_z vsC/E2K(Q3vH#ʊPm۸|߿s?/~1 _Ji,J C>%QZ^ECWVw#) H  [ɥαMH_^z[kۅm=09z[ӳ{+^Cea&JJJ.< ( ~̞={X~y~G[[>ืr-<̙3[ntzx7 ,Y¯kΝ;>> o&?я/I"J<g__x駙5kwuitRnF.RV\9x}qt]o>H$x衇[]Xex01?MӨ=W^y%s{9!my/!d?m۬\CP|,^~9D_|+_駟Ko>~~~~UL><?"baRhZ82Eglあ/ZX5iCN5)5B[7cԪLqm݊YYE Fw ,U rxXb޹̺.|ym oѹ9NK[kWyXNW?ʋp U*"-{I0*S ܗI<zGdv/CFdsIT0t W?͈1Œ*x(mؾkDRӥaJpBWGV 9voe*\X7t KI$V#YҚ~.C~8' xTr-_r#+*t8sB&L#xOM^ aŋ&SH~B"dhyގ850ymD|aΘ?|%$Z:ZC#hq(s9 k4ҹH Bu;Rߚ&RjJ c*]әP5tm3@,xMAc>ܳLi[(!,A "`5w$)UADC~x|~_ ^pp$<щJMupEhG L fQ4=ɋU4 C[HJ:*B2ٲc ۋ\qxOyf``L$87mf*K?A2g$Y,SqR]>p1`dR{*P"dJt}IVJAIa;8㘽N4NeBo4#t!R4oo|L=v 5NIn4C fe7V[!3Bg vz{X,N&Ec(.K 0 jdEIv=,)lb:,%5(EXEmH.э-l$S݅#(6'ɓo;^phjjb\zCeYy(eee|ͼ~77oeee~D"^zas5pu1ebOǾ}0x7Acc#s=dY^{5`p5kָOGbq cxp|ccҤITWWs 7PYYISS i{ 555L>D"cI&%;x'xַŦM;MuZ1ch~xQWWW_ͺuޱ| ߗ! 8q$:#&]E#RYrhKO 5܊:3g*GwN% '[X}udpttᾕBg 4O4RY "Q + hmpɒ O+DcaR?H\P8#d$M3G4E3'/(>J,!Q\.&MD]͔U8Od2>O[uKKm=0_@$ ڷRql/~xh"4M# }d3c٣֭:Ft]*ݻZ8J_>.rb9GfYO@@Xke_I~|~oTrؼe+O?~_TxX)&OCj.~r(|=_a‚['9@͆ /[p| vkN4sǰtzT'zhEҩ8~lh.p4F!{Ս)2.dE #r"TV70 l|*A!&RR\EooP 4P9scî]x|nH`>qwC{qnƃ׎eYdqm?ï;Y3gΈ9s޶6leh1]?4שׁˍs|˲x={6---9V-p6.9ѱ`c~8/֭#N:T$I|cP|3ȲlRvĉ@x4:H0kT)ITvoFQ%^7ˎI #:`Y0_l#dD+ȸ$v8D*BءYyA@dl܌ϫRBBDžG`WzT):9,C&縷L~s8d$\ZhC7c#s$tA:5~ DOQ%ؾu^/&VMaz; n'"}y@t#C\M3Xz}/Lek%)qCfR -#E+Ż*fWr셤1,=qK)}$7n| ]xiy::Xn5jqg %9ʟS|iqN4Ncx ,{ WfBС6TF*Jc1BgOL]K; KU]DΞx3ٖE.AQꆃ(>?f:X0Yҽ$JӇ$bcJ 6 e.@看z$izL&yG0}Q O&no~C 009'4LXG(ê%˲pq|/Io`u]D~MZH2ƃ|>?y.B/QQQM74?UPUUOA~,X`cjjjtuuSw2){dwowGyM")<.ν$?7*t['LP a iH3NH1o ~E:'mJF$y&kH$|_s8\C4rla.o3a%+/$]mc)K. xclӌ)h=7j D}(p4+{WՔ2sBA]<_aڂnז-c?^r ~,>9~k3o>[z\̟9KiI)S>4P85|LV^=s:@VN߿Ig$EFv4NFR٘bĦ^L J9*?RTXIrMU,P, s0d h {4uB1B +*b.M`|zSUoI]Љmy b׶}\%__:/9\{̚"h<25P??[(bKh:(%*|jJauPU(TS)w%q+8+Е1CTU! %$:\q'6%^HHӑn!s_| yAGW۶iٷU_aܫQÇ, I%x^lDVNnDG^{ YNhZ0UlӦ+M՜XhmkuFԖ ٽmovIG/Z L$Nd|kwR5pŊ"+5ECJj܆1HJMEu@t(UÞ<d!2+#I}m%@~hoG)K>xo[(ȉ>2 nGTжD%sP$p++2RЏSgt nGdhy}*j{m~K;J2S2H4N4;d ErqOJ,F(f}LH#Z=aM&)UbA#-Cu F>Cw \eYضMeuݻ<vtM|,iz$t]?!---?.]|+Wb6]]]l޼y\a bUVL&yr\xNW\='?QQ^^Κ5kbz꫹ؼy3<DQ>{t?2s?ڸ{F;~4g0mmm!Fd2|I$/2~OzjX|97|3(--A{ャY6lwɒ%K0a»)NY˥,#/8 $$7Wޭ/$("Br _݇*T.#XDz$R5GLI467\GAUGl")Eڈ5x֡?~rUؾG]`˕[^e֌3cujJyczǹg_Bwq(LZtE1j(\ ҙޓC'c5Ru7PrYbR &Sq(}~-';_CGRzWѷk+k' "2 mGxV: upE"WZy߇mytMbzÙ8IJePvoAu g$Yfuߴ9ns\s{܄B!q**+1ER$`p%Q_oz:x;X;A{Ӳimk}g h.aH "WU6dp2,xGHJ۶)vw ")a["},cIz?XQUǃ-$3) S /'$sanJh߳t2A 4rXX0|D WhSJK+ϟKsPEGY?}{(& p>zEϚ{pl S$(dZB0cAvd (nD*ɋ[kW;B2dٲe\x8ߗʜIfSh¹,sꫮ%w^`Wr ±)sY#歎d_w77$I|N4JJJM7ĉ?\.<DQ>1c 1~.>z{{3gկдcֻ;я~N0K.xWb z,XAۿӟ~XŢExǭx)sq7zK%:~45ԧwˮ]x[կ~C=Ĺ\0zo0M7S,:u*ri|ߦ2.nwoX]:a|qx)?7ٓpQmc<`nH2}J!r3fe3Ɋ7He;зl I(#pF0* ~ɏ;o_^Fk5b400n]fN,I9|oзo= U6i!`xTLſGϿLAE+M|3WSkhh,眲Zjt9Ȏ.HX*_ 9"J.W%( U.#T}@&S"!C8*!),88"xVzfU6 ",xO;]<+5M fȚGiPBiaW8se46Nv#Iʪ0KLgμAۛװ~:~ʆC qP5^bFH&9HVDoOgg (Pý;hݱ$e&IJmi ͢DlR}RDR&= !)!JaoƘt:Ͷ.ԐGqJ1>qk*nCW43tdp=ET>*ho+14Z~&.9=9dR x `RcIٗJ882(Ns!Ke16n3?z n rмk'7gy؋7aʴ>Ž[ 73{,V{].\ Fbv{ػd8&B9t }Wy8D6ډ i{$*^5IvE䪓'-x"NO&V2 IfDI(0IgtI0|4MJVAL vEb ( IaނR677SWWw\Dڑhii?p.+?K.k9iuqebŊQ=Oe i@r9%{xa9# SVmLr'ػNQ9#%3ƙ Mh`5 rC@`4פg=ŗbƉ3w)Hz1OzmI8rvDU=}B9nJ$YFx  U5·imZ#O9\>O+ 8sysmoeΜlܺI|;%2w|,ӢU2i>?ȉ ;ܲ~mzӌfFH Dva;ql؎{'`.y'lA@Ig493Eg4g@e<^k]g5bRvS\Eg+RDXAqe5d"}E;PB7#ICTgjtMf$J)me.hQ<ȥOK?jT+%TEQ^D i|lbhIq88N\J\zߍ€f@4O C(H*4C[16( R)ey_:_i]~=s>66mzU! ˮ]طo??͖zZ\0 ?ΔgKI+5ÛRT~>zo+K1$CmkP HPFH!q AUj?i&ͫ0aOS뤤L=8Y4{縩z@&$HհuA<hi{g|S*\*'χTTlQ> Tbr(咤R?uWJug;iOɤp\zͥ^92THxDX oSQ"$39C)}U@ DRHP8.\p_P'=@itR5C"Ld'".2MeZBI .@$=‹3""c)+lmHʾ4?sX5!l![c8>8+?eQ50)He]Q4bYLàQ-a xF-̣&nͺ *a6G!X>15Zg٥>LJW))Om%Y*f'~@YVprK268j8^3B cV _ yJRΡ Pg`>7G>r}1"B+щ]0"U5(̯PD0]xŴ'񗣺NU^$'OrzDD&Ozj}Q6l5ky衇@޾>:_~(g ]+֒K]=daY*R[P^E2RSFOWm!Qc養P-xnGS-l GI(R6LQUbҫP.A6Bq]JH>ߎLC)U%ޅ AixK^#F?s*{nd&TM0L |דD블e䥗^:olO}S=̵޽|>?ƍ~z3F-\^^Ӣ3sj> ÏQo4=I<@gώ#D|f[1$NB=cb+0"BI8[QOp%Pi#E-l:% 1px^rZ;XӑC=-$lznLȑy~%n5Gn`8HEx:GwR;>F{C/&)6.nl_~ .iݿë]I\"օHAUPR n'1M\[YǻX(ϓVҠK \wǩ>fFНKP RJl/Sa@?~iǩJ$WRF]<z $$L÷FŠ$≋eYn݇'AE!Ș]C|T%)`55\4t*,oP5=ШfdC.>y|~}+?!qFQԠ\ xY(FT:2Qw:FF7y8pp)ml0>5m ögLO7m,}<ϧX,ؑBx6:Sz ߙA5: Wg+UIRR|9СHhfAKmC{yl& 0m+P,Intvub Lv;YNQ!aaRRm={."aa%Sg\t;u󘚞fhpV/ڞI<.ėe-[/~qoDkhqy)+*O~+2~ ߌK\eU!)B4L ,a66$MLXdIxDE(w$%Խtd:a0IRHS$ҹ3T- ɶn_Kawbwn=ﻅyx%r=y]eƷgxםR'9vt|{0Ãu=u^Z,pX8(Y4@PsMDxeVSHRi" ?RC%!bJ.V]o13.$);n(!n'yfSKO*%m]*D"U?V!\h`[)*"}+1 zI(TUq]-DY0MևExAH^a Ӭ_G"E3 í5 m 4˰ cqbKʰr$ay."4OX`hzX좲Ҳ,v#iIE\qk4"iEQQNTʽRRjkꞎ=Vg`\:~n ͷyzu'N\beo`m;Y(y !aNZg9^n}Di~ z.v߾x۝owC#'rS$e;H?lfӖl2K_g/e(x;y0 IDATNs#]kޏ"I+D{*R*)[Xfq9> E͔fsUc^͠Yi6U :2o{\ niE;;u2=U#`a|%yK_G[:PJ5TSUS‰Y e, !ԩTQH4ehS)JF 5솄d;9<8=1H&//-V^O2R)14v/?XF&ƕ[cۻI$.yGOr㴤H8WgX@J>3/>@|@KZ"㇂ZOHI84)ܠYJvF!mħ)˸c9֮Dx2cG3Wd@U7TJ%*BP15/b6QI9f5|5z$~Qь4Ƞ]pǍ Oe]s{>C~-ϻTYQ,TݠިSHS$Idfs;UGQ(p5<&R\FQVLɨK-Zxxn@,!oc3NFf1q],E:bNtx\մh:jںAuqD}LMץ ~%G/.,p 6P$7p7pòn-ZzաrUTW\Iw'^rw=_FERIBȧV .m\Gf94 *[WEj6>Cu" K$N #=W>8LMLۥZbbVǏ2&A9:s[1;vnDi{-$y lӆHp/P(տ{Xۮ2wu3={T:/sROD=b1[W孷ѫvAi>A ?|*2HϣiH Q 4F_`!4Trn{+vCZzVL-$%/ ~{IqԣwU/^? CfskTiPp U9%)-`~|ׯGwѻpo ;d/ԅp]i jܸ罬_iP?:gXΚEG}І8P Qe^-QQ兇@T֧~ݻwҎ(?LdƍܸF/34r??֬Г8xmk iǝgx?xj=q~5ݝlKӘyt ˾6Օ' BlAnG5s-{W G,N>t=LJ5.9X,rpnl%IJcDQߏFLh̓y~;P>N9|++O+~;Uer]7eߟ7<ϼųpaҵ¡FTK쥈`inSWNGtѤiTړ:uӈڤ.ԣƩq^74IHET +3,R:精7[Bbez*U;*ӅY oG㡇'O?>~E~Ћ U~>/ic!~;}n}:p",ܱch.BZ.!X%{F꩝D˧5q)h; *)ixS(.0zec&fHɝtw]ߟޮOxTA A\u"-s]V<ʐ婔K Z:wzQD:6FMb:M-ԡbҙ/,R婕J[[HSX #*򒠔 |u 6pˆb@Ku-^[IKwa#8I+XB1#б̴@*Q ٯ.IJ@4'_duO\Oq[E|fCPfE֧( {?en Wy߲4.v9ߊbeк6x%_qu_y*r>G{_%}I*:nP-IY H[JOw۷˰\erXO2~?V"3: LO IICvp\YR+dEWʩ?!d# QYT+v͒XM*ԈSbx{>>:[8-H;ӖAs1/> $Ssj-@ Lhʯ0RQY߸_w{w+#|g>A:&1& CNI?=x7oc57C[gbšV3W.\!GfL}mOrBLب 7a4BIܵBqnYaH*0m#HVF6E&:$+M#f92̏MV6]η>i8ݦ+ BffTٿϩ64jUX=F,u]E7LIӘ$<]CW\P&} Mb4GOWؘMO"NjvŁL/γ{UQBbfp+XC*сOgEjD~O˶ ,KJM5I%;1ُAKP&Qwg#a5Bb'9>A,\Ch%0M =z=R.8Op}xEͦs_l2bZ0o9SU%?zF:2ϕgBcZ" ~hF,LU?-<_UAvҗ&{Gr6yQmX 7Hץuz▛ot&ʕ+vOH'pV2ճ, 8C2RUA++U(n m_0ITL;޾yFȷ(3K5n&6N~`;tyT]cj#L9F )хD*Q㉥|vh@gT hD|̸Iw14f<)YjRQ9L.w૥83>D\J>\TU%FsyGwX(wQYmֱix˶QjG*fDXL[O}J-h$SvjF2d-x.Sў>"4b'0ެpAYalNGhI}~oG5d'qVvT1ưUuy!n0}M8?6zIY)QdBϒ8:S[p7Ή:xߣ@A\!NTFNq*tMq_1شi%sfgf8/y'B5J 3$-Q٢E7-QEFB ykj$`O\OCT$ֈHFҕ qltn \:x8[D! gpomґrZ%ixCd1|%5=nq=t</QU3OOugMxgu N3If1cF]pPVX B;1u=Mz>U-*$wBm(dKR3T?0CMal8a`@WKQ|20L6<7~vōk?I?bHV3'ӖG 9=t|QSìwk:z9I Ʃ1,+FjUgzbK ^X*(T!%9j"GKJ"F$_QzQPs(4CmK)qL ]PVB%e18arԭ8r$Oߵ_8w>ʕ O{1ӯQ8.?K7uWaĺ1cq@p( >lU EQ8@1oE*(eAs_uUYBHbma+)rYBT"ciqW0h,;_~R{z/C]IL=_eᄑ|_~l:wR(p=`EşTM'yefF_@I.+oPY  A䇰Xޢr @chSSw-$NC'+kvRK3+ ?ЩAcs߱qROߡ`XLaUaxJSピo," 720 FTt=v;İO&\Qxq1?`i6kXsԝ:xmP %HPxBRFB2fx0^}D*nPU A(FY0hE*݅^!"|仐3t;/:^*X<.lFϑ0H9J_$Xb` 똛;WjZ?~g/4 ) P_φna'Rg싊̔^W agȧ֒N'^PmO3_=HT"dZeNdB"ڜ8IL:S u;g䑇z+qfg~VvkџaQڕk$3-ΑIΕЯI"PT=KeqX. 0&hKPv'ƫ@H d&Ւ-Z,3Raqr1d[f&V]2ʔe.Qzd:`Śu$3NX},~uTeRmv0ZEo:ZryyJ})?:uZ*Ht3F(  FFjLs8=2[I?}z@Aӭ^qFxn>CpOTJa&/Dh&$ "|In1(21>V]QՈo;a$1[6݉92rYninT ܦh[:)aa$b(,4yRC#]S'fs9*}y4N;*֮EsX!5 ytBJ4jt!4 cjdX"šѱpٱc="X*L6cU̼^9mk4vUUQb@afRa+?_aMA.dP,l[ Rw#+p!7$Ous7_ۇQ%34Av=44aC/%4uP$!bnH"&҄ puV&^جטǶԫMl5M"z;,IIw(U۹7#"=|~3xuUHP /}FBS J-Y٢EB1L^b$vڳXx;vAG^ٕBf阦 ER=ttxGF5U^&Ӓ%*[hf%*ם\(3p 6sbGJƓ&y IDAT($w>E˓ 0!/z'9Y6 tS0@I6;2""R,Wbq5MN V壸c$v짾vJTT #͛WPir=T*Ng{bjmIc-lXT}Sab9 #2H/5OhKjF3Ei`Fvt5 C 9zV#<nmSFu Hj&l~ղ^wٹsR*mn0UJ&qdhdm#HۉWDwԋ>!)]g0?x'LvV\Ӡ|[F6O=TsH57ilcs畔R)QW>!Č$v>9G&axIʋ Q/͑@U c6A{!b{6ȈGu6M:=PC/Mvc??~z+/nwrQb[K:O"յH$gVUVUJR(/HA>{Uwy6RAfNpXD]kEE̎Էƪ\O)}Qv , R:WfݺuşCw^[:=JG ˴/!$cchj.'dd$ЍU =AxεAHAtbQHPLby!7{nI $rVKxW nLe1ydPmD^i=Vc+X<20 ݬ4 JE #sf]KThHKT./;QIg#6SW` 3%#T7).@*v16E#pXZdhȐjT'Bfp6!ѩ|Ī>k.KLs^lLlVe9<}y](+slO@b:?4]ؖK&Q1=>Ǿqd/<<Ͽ8ɋ{zܰ>utDksP$f2AYAz:V)K&(IO:D>wQ.;<<|UlތekO*ca&,7oU ˢV*5@6ihM(MHG_1FGO`Y1֠ "tyzz8Qi.U|r cҬ.D%e@8G"Z\@JשR im |MP$<-c-032Cx Q,|2-`o*~7h /~q/~EKc|kOw[TBB;m(:TU)صG7r/U}-{VwtF.,PY+rrtWO4q;_יQyRԶD#4fo? .kۇBi$p4"Cgrzjg=,3g}ފ#2  Jif,Eٔ(KX4#[dyy %D19@$H9wWWWӉ?nu5] bZGWWX o=Cos7nNeq̛>By[R8sNc@-'=u]!Jڧ%.R}:,.Β+`0!BK[6Ġ-39Z&Y8GWHa;>nܣS_h2V[saQ][ W,c6J*KshH7/MQBhLC!jurN`QArU)bX1?On"m?>oNOau{wv,L`aBePZjϾ`@F}Z# qJi]{>D%)47Q i8dԳt}'J҃~_tB#L;w7>s=_}cgGer}IJw,8NeeWIP_O5BZ5 ˾k~TLmYb0BɷB!xR+G ɐ!.imB9O$؃<2Lf^k nC95aKetn }T' FB!C^u ʍJ419l/츽뼤m ʣtwl&W~8.Nhn&g@` Ev:tl*'`Z׊pN'g*8@Z;3譓kKF{iKx/nR#O?z~?̏ ~曼M#wwNayuv[aiR]\;Jc(c JPA܇4V:tEj6_! l[&xǏތep89qYW~ouM(1-44p2>Jʾ 1ٔ(+d l-[pwf~~G]u]]24!HCRe˳drK|`EJȕ6{0_]'WBan5ȖG1 L~La8I4ضC5i6ڔN:N19wrHԛ3{o㳟Y=>g)Y% "~Hgp N֜z\H_hTZWmO麡:6l)Klªl#tԃdʿuvAF oek:9T}oop!'hUB86wqwyWoڱ]8.`{B@/Ml%zPʦV=N)+_Ԫ8ѫ02 +^)YSR~G/!IGDKK]9d!3إr)*y-m̶H /E9 Эin~O0uF;b01M )/͑"] Z˳xѡP9dȐWCrc*GrZ7t.`A-nڿ:W#t!' 㚄J&5$*_"gHY4!O/EP &_J }$ 9!8Enϱy?(v[nƳwLiq#~37߲Q=*qUҩ45fϜX!W(!I0L83-9 i;| Gy)<䦛'xoF%q]Q;Og}"% %< )1mBBnLm*Ƴ3lD/SD@4;M ñmK*Kcۨd.!P)K4QZq3[lkfKRYah$%Wҫ] MOV8DQ(H/qU*acIRקRkVV.{#1 *a5 cf᱿0w#??#_}Bx=ǎ#I |AJ GLV{)TpEˋ$A/_݄]SM-J*dS4L|@0g]!(GNd[;?_'.)VXJ0UwetW*99 2HÐ< Ӝ*mϭdfK)r^}~xhV)0L ˲6SOa.n2* c(Tn,?0B) Cwd7@`'fQkf,aaX.c^²"@^R"{"N &*DD j94CWXm`NO)S(2xC|=ˆBRI@uwݹQxx-۷o^k~׾6N~//_x;ﺁ)%G9? ~;?}R(PK!B >fZtV&J;c;ְ֜>¡Sxɍ7MwbP{vz=^{믠Ih6Z-H5m !REA_ qڠ֨KH%(ұ|lŴ|܌OPd9ض}'ºiZ bCC< a^mDQ"% [v/*/8v87){]:;aP cT )"֘E5qHwؾaGՐlB'7sf._WN'A%Mc&m 8?bb}r2bקּRXZ:JipL#'E*2 33GU.XSy:Cika}*ҶN8tD,38|3O~=w#qͷmv}QJ<['-.߰[غi/_"e'^ͣ,;^]$%4Q:+H.vv3,?I7IR_+q]9 5G/CwuXC ztoh?+Ps 3'O133ϖKm'6u*/PWen8B Q*z$QLma]P9dȐWCrc*Wb|k 6M05 H6&Zk"\PJTauNصUi#6ADj r@ pdq̬x8'?H壟<}\&* M3#iɐ>}TR?CsMlU}6vg-Sl7ߺRAKF*5M }c_$޺hJE"kMwijURkMij8Ӈwoh69t o|>al݅rLQ|/|a>c/:rg)o߃4ML?Cf|U^(OWBhkQNIr]{F2]oyWA>[(mjKhf1aG!Vsɗx2dȫPZ613{mZ{ }{iY+Xs8N6Ǎ0!{dIz_]XvL4P $kD?\5| 4 ݛi﫥#dPRz.ۻ}.=zhbbRX| :c>N7), -L2ύ7?m*}YΜfǎ-IcrWgGtMzű|Ck+"L8c5}}Jqc!{w޵%@i4[ġ^ rɸ$MlX*BvM2 CN<4O|7|_`llGyz-7Ç[vP@aNL&-*t;j-1ZW]'䓐r R:{g'z]ۂm$R hR')E;ò!C6?7ʼnC7H;ؾ#Rye?ժыfQ ] C y52*7Z|DbrPo?_j7L(kӣM@``F&qo(VTdž t>0̫Szeݷ/?d42PD(vb)T$K\ӽ&ѴtpcD qG:'tdϐN`2h6:ʑOɌ\99ƾ`sLY A O °135P7Ls s-w [VH'2,zCWX)8!rL 2F(A@+2];qI[a(Bk"(!m{X=dȐW%Crc*b%ekڔz\ Dn1GIRx)pFK+NPWdR-Q9G"#RY K\raKK[x!/ègQ~Hؐtu@S 6p^9AhЄB8yDe'ɲ/rY^3|ӮrGxI!{E abr|B7ůubriluQpae ,'Jbq@D͹dWJa`6qg.&'ILFXCn–^4IWEJ(?Bdΰa痋yO;,6ӜHMci7]5QҨאZ} ؎Ggim/^c㌏U\˴B́F *굉V])JMTSB65__|Gh X}aI^{k(O:{!݅0w8#%a` F1PךiJbNFqYRaK}y [a2˦Aef8IuH)W\֊XYLDM~k/EX&s@ɐ!6.x^L36G!Z!޳ Ɗ-/m;ؽ;o/IhmF>R.F,NwMslnjKW Km =^&X$iDWD!{)1MCt%$&3K D?|EQ[8{=^ן}xob8/\ 2n؀7u&ly lc|lNߙ/#)koE!DrQfT(oAs|}wpd()p=%gO =z]U4^p]-QEjw|#;7g2Em[0'$13'}~ ~~OisӞ) ?g8C$"LhWϐ 7z}&@r<\w(mFHPDy#qkJwyͷ߂i~]2&oÍEڠ0m3vO!Cx4n2 z.Zc ƞ"k,WBJBPV~Y6dȐ!C'^7}XNBb7MZZ8'Nx>"zQrEt3D"}Ie2OnsuM%1 YIDFvZ c S@!27ib@B,RXXD:Am5)q(,t9DuwpYFJM#GjHzUZ86؍k汋uٵb6&&&Kk~2Lӣj6ewX^_YW!Cx:*_B~w\{t< P$%!rnrZJ)iuĬKp"s t@Bj$ P8BrwN)R }Էi#!*k*71Ȋ x>ΝtjZHi`Jhrq>\1cO|)< _.<CwL%<8ji4<{n՛Zٙ&'O׏Oaj$۷Wxrh z?1 אرs'Ƞ;nn A"$Q@:OU',cd @%a.6BjmcK_lvT9 ;'Pr|zv|rD&y~Q1ٌC DKU) +W1=sgi՗Щ&W@x" iԗJ((ssHq,˲iB WA(}ipMDAs1TPB*W,Vwji^}t+?37_zy: ܹӈ4rGF7X:6W)#0< /{@#zl־$Wqҧ\s'ivY=o[.B{mGFJzӍBNhM̳8Ӈ =ȋ"aٽ~|k_#_2_&MnMdF'PM~l ى-W$Z L@R?Reˌn!bX:(-o}IJC@ބ%SAT .BYk2dKCd7Ꮜcx>PbvvSSnF@1 B6* jd(Tn,׵Py>ImkrtѦA-.JV`WDA{e:b9磐x8xde!q|c\ILTN^5bB's_&1b-Җ"E"1,HMt5AZI bFZ&jr I5%XA5{|wߍt :Ll˵,xC5(fB >a 8u# 9]QIض;S?s/ȏJNg<9^Qy6f Xñl|*QR4A\P$1zvuPryDpHLK w['g(8{p?3qJTfg@﹧8b`Fd+ \F%מ矒@ 2B$.U) ;[)VKe$iS*oFa0c,-1Yr7J [(DBЬ-؎KD:F*H]ל}L0;J!yaZ(iqa:yoeMQ0ll#OR`(U@tbc$5ՙi_[O=͹3*R˽w˾sdnx5ktΟ&vPiBfl 4q]\,% Mq~!\ ʖՍ1ƶ0:Ӝ;ei/b^ÿߔhG3dȐG40>eZxh'#G:d8̀Q XbP2dȫP\B?[ qS*$~*}<&Oҗ(T*UH# 8O`5zZ)1Pٹ ZחHbT ,P!"Th{ ͝es8(@!:%1ޡG | %4 // e!e&D)Ssm<$=i e͔PXwiY|dyFc8VV4M2IRϳ=TJc&e49{|?VXB 8<%VetzbNsR^{9L˦PPZ%%#=N ba~$UlۄUynf8 ٴy3~eZ zoJ').!iBH k2{1Tҋ[a"emq #5)1 4ԗAOƲ*,ΑQ"AR$";h/,hUIvu0 خGףV?KSxNjխ/w?\!h)Lxܹ7@(9m2&!|M[4hi#U*RﵐJ$1K/y(e%g(Z?5g&eor6h@46AX~Ɂ:Qr⹧yo?C{-?ՇMH&Bk}$2h-ΓF!CYΕWzi`i.ɠ?0}//})mZ_Be}o& /idMɈkErKÐ!C^8759*?[4X: r1Ǐ/P9dȐW#Crc_}pTf&m4SR 0t]RC^XHpcq;=Oo?;&sYBpbZHEҬ@Ոi*mMBTKܓ'!'ZlDm%W-JbBiG`.hܰKwyo?G21F THlacH& d}Lۥ61N}Rk8-@Ic'ȏ޻g(vcj)%cpksh,%MX^SejfjUf+DQDP(_q}+nP²\lLi|Pn./|DF9E{EI`>0FʔOeIvm݄hNGbIЫ VĦvQhӄ+W>8nB-o&̓1BJ2^)a)v=NP޶ {K Zy#v4,7\ C y52*7Z}3TSGDJ$By֧C Yd/$.HYگG4rn' !AI + HJF_TH2%x]v,DюM[hJ-& w@`,-&MaPhh34H;#h0ŝ"[ɑKx};Ll6LčT܃hI².MxRSgt=ry0 w\~ ibZ{C&ɍxyACsvKD/GA٤nNKV}^4BHaR؎ CXˀ#"ɜK|8_:@n`'9vسL7,$m$K$NRGH$88}iBנ./cɕMLWE#Dw;"R)K8R'2gXj3>zEYYM&WĻГMlηر˃G?v^ϣX)N.J nxuR=,' B~e-^Ek^y\+RvmGiDICNM?7T0(MlM5\fHa]jK |S?{YN9;f6>(vxx챯_U )Pٵv@f|+VI5^M+NiĚΧ UKar=}z۾U%K; )qHrJPB !5 -6U EQN:{.Gq'w)BQXVKO JV )Re>o- ]!qcteH46^6vT"h+[E/DZrqyV?ۿ"91D,C}wT ݐ̾#$I}y?/DIaay 80,[Cmi*IZh!(*U'SLQ%`7N~J(,E(PaϨPIWԖ{a،* "zrnU@8'=*1C+piDSE50J5VB`$^nַ Ei}4}c֘Ҡ *F{g Y߇L]ObWf UB5 ٣aƛs+ah3MLfINMp$l3SQUTUŮ=zJ4RJF7K6mz9<(r`Az{:Y|0x\km:.:V '1&HtR.J]"5-\{POVj*h4e{jtG-/0)L1cocD뿘Ra5" ˖lѢ \\բ>C! <mAԠa@MOXCnՂF7D( BP$}'~{n:&@ 3TgWSAз ǘZ,s1#>ʩq]שU Tg,R` Q|iGO;u.%D{ SD 'm3 dRfx$Jz)tc565aĒ$G%|ley##ktG /[/Z5STMe0ʣƊ@ N^H^)*9]GM6udO$, :YرPh[O MڞMFLuuj *AU4pQuÊR+fʦt-%3>܆W+%rsėRRS$QEA#^LR.)C!RClGp%]Y_'SWpl94ьK-B>n^\ DŽmF ~Dױݿ"gΨι?8Zhb.ZrqyVʛ֯^2v"XhRA9D4T1QMZ)"5- аQE):L@eHD]q9\diHw*P4LVhǫDt-/hZDI'ӊ h$ WTklQ+A{) lP~.ݖTњQjD[ FDR1`P4d*뺨{'X>ބ'y7aP+L0qdSncĒs֥okɤϏ~5<>9m0ĩTMNbĢhN{ 194LudH"C)ik$::ǩNLaW*D,Hb<9؄8^Qڢ.7F[g)uûi:]xXXJ)qv{n/O ~Pשj=pd<͒^Ϧ^Ï>->DuD[.Ĉ',գ%NZ(Īx 7r| @m(hԌhJ?i%"T꤭wD@1ݝԫ%@29@2ͮ婉RQѠx ߫R;E7O_8;0BYb7 ۖB0p: !akX(*`ZjĢ^/aYtK_J4@t\f24Lb\cNo`C[W$8!. ClN=E_o7W(XK0QTJ 4SNL@?9#[聻?+L=N$? y\(UELG]n7;=;4D6'k T"ٶ6E@B09SV |/&?^j"aF|􆕳T..tjFt-=cʊ1-riPR)NLePDC'/lovXN Ȥ3e/#>N#'Q<$v a* VC$(QҧW+/+OT9~RTxRK.8z?\?B*9Tp]NSqgk-!0bqLG:8@*'>:qė_Fjݫ8"s""Ҭ_s%*xl2B@$aٲegu-Z\\բ'ױKNgN,PuFO7~&ټwS`\;B0k6ރu! k`̷kNjۉ܃|ŽNBCEmIcP1}V#fq;RJNRx+gҡ6J I#cE"vcQAlh쏷 2TrNY ǻ+Rk{0XQ|H2I+=Ԉ)649N$t#Qotw 5n| ځ c56= Udm`XF:I>A[{SjʰYR9d(%N֬?_;߱)goѧ?$##{hOgIG)_AhEȵu4#lűq,+:Q!@UU|A'ֵ8Q zCt."薎H&gw^$}SfVsd~L#@Ği9EUS6O<+'G-|~ܪk_Z̧?Ê+YUV6D=tox"1F<>g\ I@W~0)ڗ^ `tm&ұX, # q]O:8 zUm-ZETʶSC? #=Gyb;zj/ErprcIv2\ʩ)կ3kφ H$a}-ZͳZTou}HS4_xx84K:6uͧ3U'JZn.IGi,颾f)A(ͤ\q.oаQ<*;qME)/mڝNZxxOۨqt%Y.ml\\||B.Xn U#P]ⴻOHG-4"띄}KVd^+է#,=W[pJ*4c`&TtP d;^6g3@`HSZx883q,NlRPz$ATҝZPʿ[wKp 1L0 R244ĭZ@:+7:LJ yx!<2\ю("v\V  BѐBV@MIO )%#O⅒H*R058]dD[=QJBjjts)!\0O7L؛KR67NJ6X*K[g'b RI5>k@tIDD)b\rp1Dd,B4Sb$;ÒL0~Gbt]Ew<0J0 YfY qx}?ѢʼnDBA!6Y%u#HSK@QdgA{O=\(jGQiD4]5P7E4VC }t[樬lv D@ɝ0~=n#),%f%Π +_\ߥԉ*SA \'E!fe(1L EUee8K2^bg߼v~Iv>iWGΜ?]Rѷ0яu$`h aZzV)+U*+S$D'SS8|BnJz.e ,8< Kι0dAV,ۄ j {!{)ޭrnw^Z6-aܳ( .ZW ?\tŋIu/ALJR⹮5ʹ$ PBl? cz#nHC 򌄥& CPC,w3PBך 2D"-Y٢YBad׮e`.ʁOE㨑 Ixl j L$"l)*GGG7A3Zlvvod۶m%/۽r}V_({GV㢋.Z7oFQ֮Zu]<ϛL97;v+|Zض[gÅ.STg?/eY_BgSB@c) "G0:OMy4S%4H4yf VN7 C➂Vw 2^琐 I I.6j?ɣ;K͖t$\.%FIJ"iaTu)/1YD>Ù*&"L8i$cBLP%ݛV B$HϾ KШڤb)0vԫUҹJER[85h L<ץR, tmZRN>?iȦ u]"BwZR !eOsL f!("ۃӲGv8,S\lquU%[)F0:m=2 i4V4fLR?2, +C$RDžaOR%I]')Ш(eIdyn J*9GT[1 djms2WC]짧p!v<0jl6Pc*?mtI$9x o|5l۱}f.pdЩJHGɕP€'-@JƜdH\?ĥ IDATwRJТ~9Zsw韞A{D%c*L8*5-,q]-LIKM'd)T٤FGW^IOBbVh1Xށ]G&Г1  SH)7ɇ?aLsgO<7M7_|=6mZT|#G| j`Ə˾c`SSɅ߀J)ߌ KVJd3s<ěs ߐϹPBuk q:SN>[?AR y)]OΎB\) hJIK!r`IIz z4:EX t=F Ve,Xn]CJ_ݙ]6tãdM1(*ŶmlJEh%4:Vdl[fA2A5|LRQzdz2?zG1k Q,P$O4:W7m^82L,aK6sު|M*βU9w K2S| Y|[t l۾b `۽Xsyy~e|spھ4j$VR Kݶg@JlF Yщ9 ֓2$EH"VmDrp+5EUI*{+!ƬP)LzN]EgPiI G㴭\v5Qԟ+y0'JۏGC&,m_Vҗ4\o vB}ǣ>ʵ^ٰa7pߖ.Ъ|Bbw%_yP)S)|1?ނHJA!V D#ę"R|뗒uxIU$eLz#,OR־}T펿cr݋Ҍ.)YSC}.ukѢųEI.YFbl ʯ~2%,- ߲73]qE4r#N8ΌG*aLr̟7ߝy| _k5y ǩ ~~|;|'6mx'\͛7swM6N?rA\s5o䳟,ozӛ8r2۶mOOٴi֭[׿Wnv >OZ0 ׾u]+^ ψ~ۼy3_Wi!j=.W_}5=w5#TT?S<}so+n;v?W)J|c//ui-s뭷ru-x͛7|wlڴ<|[ٴiЇ( O{DL"t k aLd[Ϭtxt/Z.ΐb&][g?׮Q:U̅6;|C{vR8gAS*P$ՙ)!& blu#AEI%VgGg,g ly~v^MW_&'wRºu\~o0&˗P!C0ډgw?Bë*b^$PψP /ek#=vʙ"ƜΆALk]Nhѣq+2PٓŒ iWCQpqJk=p|\psF}ӟfxxr- /~q|S=ywٸq#y{T*s 7Mw.9>9/Q,gHBʟٟ 6|ؼy3_=W_}5> Gf/_|o0 wME_} Tcq9GgB1t]|3|;kᦛnСC.&>OqyRjqɇ?a6mĵ^-2xb g O}o|9rYm|>Һ~+ 9:c{"gIHba4*篢ڞ$HSc} D5gP|$& /q5=$r@ߒ%  f2M%WsU^vףTC1U#84@ ؙ9XYAs9_~׾#Ο ɽ"_3i7EOo-%λ၇w'ڭC#l͉l$;wd۶m\}ճj?Clwq]w-c|墋.|d29~뷸Xf 5zh~o5kǍ78cL&G>.,L>gppvΧ.7|37pVnZ/K47x#6lX 츜죧B-oaʕ򶷽nvܹ(ln{^fbbG?җĖ-[|ͱs'ַ믿~k#~[̦Ur8ָi`8Bzf3@"idzN@`JDUDg8}2@bc*J*\ښǢ+95W`捳ARO${ZM|`fًKnPJ^R!dۓ_eج?FZcҵH1mn*DԚXl{1miN,V.:IQѳr5qBTM#Q CBPhA V.C?Z!!պCZ'хLIqg u]׉&L`Zyz*}-ls7`S=wu'O:j%!PU5Vf:~- Um5)TBE-`e2X D,">hCfd乗yRJ4+ɲxfvl<^'-dQ|\Lli*?kW'cUehwl*CJ< ;ڹ=GΈm%|ǁgxʥ^ʫ_jnF??:t0 eOhIS=km*ƍ獨۸qIwhh f4wQ1Q'DMO~?p0000眧cɎBa!c~"b'lݺJ‘#Gpg1>Soۧ;?5#k!ˤR{/~6oz}tPiE'1QQ3Hl,L&DHx9$]t^/A&AUpGUH:8D+c94)Mb"1'HҔ6]NaVÝcѕ/,B8KHӛMyLÅ4fwdhJĶ=NmY;BTEa'"sF NO@9a_Vbq|ZB᥿qWDӟO])io`tdI9O(R$9ڃJvE$!+ +4mX<<$YFdUgUPV+zpc׽;/)^Zsy8ax>A(UJ $vAq~$${0#j[0#Q XhT XlSSXV\ kxq6.߼x IJKwvQ*>#[+οpdҬHL&1t?ԪA۴' ÐZq m^|Li!yK:Elѻjb·<õ;E4dXkINƵ"b'yK_dM%G+]GŅkpFR3XɅTU$qӦM {~WJ|W|Ɯ2~<EY"R}0 ķKA`3D?eoӝpj[nߢ}C|g/h4ȗeG>Oϟ=o}[4d^|ߙ :~/Ԓ& 0IHB"BJJ$6>wi]{=#N[.&H^/KK^3;hBIqb#LLأH`27EꬺȪ `eZLj U0Oe|b;hHI#TeYScv_#C4،"TEp+.G'?ьHp 7H٨Xz۶rb2h^%I񧬶:gRsUU⨒'nқ>>)3!:#εa(V!jQ=JacXS o&4U#e$qUR^RT?G]ǫ$3T08n3CěMf#c Q1f ECSޮYAnzjȁD_y<=FHLD(,ZVb$C#@wpH.ͦC&G S擤~P+```(Sk4#/ȃu~7o9r6\K%WQ.1o'\M`%Sd\@~%3էCrھC20+V6Yo]b=8?r]sЎȆhqK./-D 3׃~3ύN[̊?S-d2=9§>)b'~,⡇Z3'{`zz^YnishhIضmi}~UZaȎ;Xo-,s/xo8S貔9:OR|^x* GXv-h]v199ϟ|Sb֭lݺ-[ew-[ַuI馛O~`& ]r E W0>Nv$)N/Z$G-VЦkhBE:1"29zKwv7՛o`oKi}$XB)"K2r v!! d:Qb- !?}-9HU$;AyeNŒX&kݲy{N\uA dGJDK?"ʒ}OƮuS hTo04BCފ' !Pepu^@|l_Vx% TS`v7G3CBV$[k]bh yxm#bPi<}wi.tJ) 숟rttZʥ#V 7#D-a5~ظغG~4'4;`ԫ S ?cnP:/y'ǐd&OR:'aj6h֫ f(jhcC3"dOg >]u_4z)щ9a2j%d|q5c  r`j+Ѓ?]ku۲/YN\|I/͘"O>4wm m،jĆFX{5Gy"$YFϤH>E+SC\tdպ[ [6b W)kieu&;h4FlK_x$YFgEc$6\L5቉⊮;[|C²vlR>98g>Tlٲ K>i}vx *_mm'#7Ol߾i  IDAT/┖SO=8‘h4ʛf.vATⳟ,LfTr~w8cccɟ\0RD?KT^A&hojʏcV=|}{|djj￟}{ǤwY>sh`'5µķm'AJ!!u`:,Ӓ˜9d W=X)^%šqWDMˇ8j!l{v*z GNLYӈڤFtN|ΌMH#B})NJ=sɏ0vW-X։DʖmL&1=Ρ}I$YƞHq͎HiYҍ+)$SU3fПGu d~/g`dX*E CTܹCK4I$3LIZKoq}"`.F/lD<4OY Ίtܚ cF ' ňW\*|c7΢F>9Te$zzN9D:"em0E:#jũLOj:FԢR,9.)cE{g&)DBd/E3# yWUU0uMJQ8T{/?{1ĭ܅lqrA?_ ?vWXJZ~d2i֭Mo\Oض]aveUCɐd+R.X)@Xs㯳=/-bqtZe.MGJIVK.'FV5̾U.\uqwo} __~g?7oo.hC=Xn7ϵ /j ox^z)x;'?yǹ>;N:\_2/Gc}k'}Dl8###|#K_+ƒ>k^%痑.~w}ok_gvJռ]N:jO1t p10E-᫹D4T-sLIhD{QoO)I UM+o=+%Dn E:r N0yXYR>%b׿ Řlc?v{2_vbf\九O@aUr2b0I躸i)k.`xd-EbQ84IV\I8!,bLG,g|lՔ d>EWA#sBe bɉ(lY\'ĭIG4$.r4$3KZV%MVCZfVDգ챇 \{M~:^qej{y\uX~N>wM/K.adx~"X~=;vlWqe,Po?ng Ig=1pL;kHLm<<h*r":!l}N.]WFV^rv[o7˶s}mo-oyˊX,r#u9 @}8s8&f31{c1ma:+\5 t@IZ t "c8ͫ.&Hъ%rQj||<㇍NI.)f 57l:QbO>[n> bDC40$)EhҩmʔE%P$j#ʞ $5@1Iufmν͐ؗmęk'sj-E_2/۶ff/Gl]<(B&h3I抐Z!viUVA@Q]EI7h/f.zCG\ۦ|n˦2y0u|xB*8MJ{?ʳgt٭"}8.bHKurgg O&}'2pz! _}{)sԥVTO4hvR%S4CLA zS3'{b dd"a?){w6Q=DjÏP)HZI0Z/0U؋hA_߅3҅]UV캍j lds!!)>#u퍴r4>w;ã_L~ny]oۨfta,/y_nIa<&UY"QH ƑC?3rˉPUBUCLGptrOjqs>SW.sԥzThG$F[-r)HH%c}Bx:\'r6i5-2( v'3g|LǣmkL^ܧpGDTDqbX8rX\1Ek.!?*Z-{, 믻_YRɷɛ %/cDʠբ91F{FӦl\iF#&8.iR0'% <]ik4{NUeƍ!pW@/Q5 0 pKhk;+^*R"­"! V'tHHBPOӮemؾ7œXi&lN(Je"`4ed{OvrOxÇǙ |̺!cǯkn)c%uݎH9/}XQ$,S#Mt:EzTKU&{t UFQ!wBn+''*EЧV+P(L?]CرʍQ8|1{pRvReYbpM/bϮ=\ MKhM>=%غ?C an2`Öƚٯ6lῢVO<!/}+U/`9Obc9B Z ޥ ۶m_x<-˲teef[H;<!fNO,Ra@ݩQ4zLMN8cDʈj4{(mZH9m$ iJV*.#TQَHTG(LfHB"O0ҟՈc_''Jȷ9RB!199Cx-7뮻/"󕿽3"X7:znf~\x {Ŭ .gUgO>Ͷ{>E)4:ky .)2!-]X>Cҥ`]te~NB\@RHzh{QF(!̝,INQMH ʾ>櫮*RΊ\Ǩ;VJy|Of2$'*U VeW]EDi@LØ iӬUij5+p͵ky=@> /CZ]M"Q%bq|P/9j8sv8lX"AۖpN2'8t%XxMqz?MI2Gi;aHen6͍W^DO<ہR!K/ew86'}ELHeɞ,7xY۸rР-\$$[, 0^t?7т]\u~j6k62Z~ՆVD2I˶ IRĎYBDa"*n8M8utpAqI2~G% Ұd %IC-9$nZkB2́}{)g/V+$ Q-4uuly HlZ XJEº}c/^{߳P@9˒˗8&u9^ `dѽ͎M}eJ$>L JdV\Z㋔"8*$ّaTUi }TKec/Jݪ3> MIg{ը04t jRٽrF*ytoiG]V)+aH['\qwu_w|d=BǺ"$B㝶!5:U5odՆ0qi$G# ,vIU*dLQ[p_wn]tҥK.]^6]'D %NcʅQ)ʶɁ[M0V&DM"2j sB<,Ir'HFBF 7]oH)*!3U\|Y囯݆{iyj+A~:6 m`:A1](㵛+S *@fDe=UNJ?eH8Xf #)Yâ(&UMH6дcEY:b]!(>lx|s34Jഐe͈`)a 1Q'-NУmHcl^ڍ:χn6-J:|ВmTt(=h -zp6ձ%9LG)䏎M\ۦ^. zU?zS'ĊX3UE][ݝ$SUd.d r#\~eºYבR^}-]ŏAP>BejvEۮO去L!BGe$IAO-!})[u;C Y!V8t8!NkLLNʧTMRr|nF_; ~vfI.nN0SdMK Jӕ#iב@uiziOziV5!,X^*|CǬ="C.c0P>F=8.2?EʞN%p.{sJǯ2A@\9=E*VV3R\C=S8^O2jGt ^i$FV~8tNŪ |_,116gbe2 ^Aɝ/Pؿ]") a׮)zno*ea$ Ob+c# $tI/@ 6O9jb,Vjnm6^A꥽l,{uZKNT=[ J7.]tҥK*;e^=|<~ms**# o&ZW[^Lij)skUJnp:͡r@ j0<~T UR;Ͽ̱*Ь-.*Zь SH"7ayd̆Bt4??D"uԿ#&DEH˷Mbv5螃TT4'Fa`HXHn.-8$ēT5 Զ,d\Y,ߓiTL\g,*YQoNԝkH(AmotDC.^b}syǡC)Lp핗ci5y5"nyՅ\q*j*;v?K7Dd"}8Iҩ,0$2aELD"%{8Nh:lhC4IEt6G} 7x"H K؊̡xryt-S'ju؀F̒j>:gJP툔a(N,R`7"au`Vf&8tIHB<'ڶvNYVefH$C *%fZݖM0AԌh!ZS.hL VT6n[Mʕ#xM2G;Dn5k5b<ɾ!,;gy˯{vL:`xZ^TIaU0SH\xa~QQQ ]cдK.c7t5_P!q9-)/7dPX 5~$AʐWrGW_N$ab{?HT/KqM&g(|s8nEM`EԮҥ˩*t/Py Ӷ|塿7چ%$Ppy7.!!p-/ 2QAiezCzYzQy[n'~KHqHHH6ȓمAp! j(s]&HqZ;Co9Ch4d;wN̅ڲG') -bB,O L(J2'#wO_i2bjPmɬQNmr# F CJ8۞Fo|%ചǴ|{KTjѓb};tL1~x_?LLO+# |,|ZN ]U Gu zz*K]dmjH2#^MizFJČ 8:CHь$bJc@X"c6|ҹ^DҨU18= C nTi5Z3#$-='}+c~p=TNEQ{^)\{l|!p=<U=qۥL},~uBo7\~8xjf34|`Rdy& \!<8pu.ɔ +/cG88ܷj4M|T':b0M"k.]tҥ˹@EBA޴yp6}\ZlBdmt en-K۷{5!'lpo=^éD3}}8v %ka@˳ uPU{w#;vԉ봨8"Dqq[Nt*)I (D0<Ke!D>u鲌k|7+8˙o#E!MrA%f|vDby<6>=}}.JEREMH((N"PX5k4ZUb r,DcXI0L>;ꈂB>i5\L"mݜ:s7`?A",e|bFi\;0v)'`~㧹D &2$1ìz !!KysS޽M](&6"*~Tjֈ2|.H"Y]j)Jû$_!E+]2*"dU+wAԕ7WKnEe.]nFn֊ʛRT~w]T ȡJO2AEKEEC#rїF9PP Տ\qbhQ'EUG?`݌۰q$3EenJ>*ObL31?BZ! &f60B;;Js[>?9$/&"PmS7XmLQk:,-;cju8Dan<4H}a@ٜ1V="l#kD`/-.ϬD 7TVV/+*E1DhVc (˭Vh]󲝗e(2 ?hh4kHBXLTYZܲOVJ-U"0v4v}X<~&^\?QiX& SHêLH"uEbmE<:c&$7G"@EJ:B!H%T'~[|4b"3^ҤU* 5B!] /!iӪLELReY/-Mrh,HH#{?OEny;駟f뭷azCey!e>پ V F)c~KlM`cĕUHZ`*D"dMݨc.T X-<%Q"ė(I -钬HТIEh" 23e"G9CH@2W BS,G؎$GOEt=I:7DivC9~8KKKODuUGxo#H19>D}|62^Ze]wol۫Hi;̙}hQ'VhGY~DQ4S`yን(!k1T-m{HQSy)2j4!չL6z`9lj~e{F#Tq~o*]o|/%$knv Ò9}G|`{$|79^9_[`~Kֳ7ɷO~E_t h^ >ajS{Xn/jߪ)^B-iTS!VQ(Dϟ{.9z$R}s|'i|scۙ?~_~U!&G"\ B0w%B&_nkaW\|588 Rw]24\iFWtL/ᚐ&H'(T]xOD:V$j]^8^"D1B%862]%.+)3<QK@$M#I A ej*dLHnl $*1"q'Cbfwޅ,|K_'~F۸Y8>TQ% APfoҴQ_h\cϐQWDS(SMD" 𙛝e$7m[0<2B._@U>~qbTeLM̀u=ˁg!J)^E`ňF"I!s ;zVhZLMNbyClv ft8r! &mr>QP$Y_jxzQ5t|۷,Z,R8X?Z|>GZc`yJ=Yfks!\:_NR4^DUM*)ϡi V ]|ϡ\'0:LjF(RL8Ӯ#*bftz4h>_ s3;9ytubiԈD(][_uow~@_Gki4ȗJ,̂ q;q$Q>7\emXL>e,fp8fboF`R.k30ETѹg=)bdŃ sNo?ycNF gzzYTh9"ڼ #i$RAnvm?`h{(%Qdo-6/~k>Ljj=#‹p_B̋  &ɚFJX "+ djrT=@k FnpK0s r@x j* e̩Va ˈ9[`9|xZIH2,Q̟.]tescDGêSΊJ4699p}qFi3#RdvY o}$9Z{ǟ|򼤔eUVvZ36= kyӛv}v2,Az.C*"ĐJsN1nj/HZ~/}~@xlEQX5[6oq\H27զ\uc=8ͥT4p4ΌZzinX /tӥ "7c?<;?w|t&<䉇yo>ʱVytuU8J9)%T7͟tNH@VS"&+.]tgM97SZHɁä#I؎(yj~uG(%Ν|wm|'r?&|@nv,^<@09xODmrlK:oxvCafߗY/yO<ʮ;*8o9x.4Ic25hQT1 P4M`|kWBRyչi $VitRf) ^w⷏4G1!ye)(i43 e,d ~N:ԉ"$K\_:rab5KJA Grdr'^Q\A&LbAJ=,LZ-0Dt =}tqCC ͯ}Ew|[&-k5<4L $@ «QsΣGc{݄~+0ZܦE*z9kq I%"nУ1lumT=:zV%߰ޞ"%{{dD31cpQۋi^A@RرcȊB1_`naas]S(9~$~>a ȅBQ"|ꓧiUIiN,ö`qdI!MhV8vl Ǒ*'bWL,fȅ> Ĉא4JX~H P%"pDVdSGS%s"2j$M,Y<zzQ7  EI+BDAJ˜.7$ei36۠0Q_FwFe.]nFn]QBr_3Ek<|{|<>p{L mɝ$NR4,t,'^Hznտ̙[0&g'oӗ`c֦oavOwl~T"*)wo{Ui;&#azzz>}f&'xYq#}S F g3avL>6P$i$~VX,*KteDYDjϫ!kie xLRd*G(BȅQOqlh2$#(Fz!(\<_%r%#W^}NLYm\AVbnt6jd6"ɘZA@?Ş?8~ 62?7KZ%/Ko'ɡ'|Rd9B.(/ CbhHk%"HP[ |p{6&)0sH$J~׿Js < "8z3q,Z'8~Ap=836-QE]gm13?KlD Eɾ!\!$/!De8Xf6}6JrIR8j˝&齢\:TZgЗۂ*'ARaד$#9]T4:jbtavӏ_NR bz+IHעQ((rIl/OZg)O=GDK {cE\D$Xy*; 9bIݧ(k"C~ӟ&N1zjULUf*,hI榀EbbD0_@K8$q'$Eb 9d܀ GGS5V @~\Jt\´~z2|Z lYUZv"[;<(")*eT-G;v][neb 1Zml6ZZBrkO+nCBC6Ѣ4;ncu(ʥת N!u%;,햍&p}ȗotPuY*"8.|z˥!^" b?/()ijĒ%f>€Xv-("5mdSG=#:qaTێ hgݚ5̗|A41BWz2@*T'Ϝ/V4kL8H] fTBvN1I{^ʗ|%bi[QTaL 7Zm8a4YX\$̲oTK$In|/DYda_l S$)Z*SIӈٌ̏95EI܎mad{S1@a߾x;߅(ضE^'Ҩ.05AQ%)Iq=d2I ,-I&gfY&剓(zKL۳L}G;Ý<λg߾gy@1E r* Z~xEnr?Xj,qMN /=Qf3 kY\BDUUFod2|;Fmv#lu˿U=|T*{mc~qǞ{o'J2?}7Ͻw]>X09naοquBŷ3?Ȋ=)q> A@2PK&ڋҿ\1}Q4[$ _C ^RZ-_ۋәڹiۄN )}_u١ (+_K.]~Np]UUa9g\tXZ~߽Nrk[Q СEd=wqn9LI,u|:gm?a4,si5,鞿̹yAaA 2Q){ e> >ѦM1dϥϯ•SJrH4aoQ9$"MN#VoFxf5+ذnW*y֬YÚkf3\G~ëG=icRWgӔ+uQA2iUѴu}۶Q״*rmsj&ːwQ#©zxhӓ37=C  MYV*O*~,+);&nMSB$1kcЬ >m(סf:Uʸρ6* ~ӭҥZQ?GV/r=P 7V:k@ ľЯ4RBR1!rї7P@lP̡!”O^LiÆÐv͏~cP?wR*B2U#%{DI %jn RD1(bZIL"LbY6jư $#=SS󈎁e,\N 7e)2|5KJ׳ק1&d|j43VD&tQXFX2M'YSelݺw?C֭^G/g[EIBVN 4Ҙ dEME1KX:$IĈBCh2AVder oozzxG?`ȲFx1@jryʕYp]2Z*I48x0&;-j{8Oh6NQZ ?/<ͪUkH;M! " h(L?$&XW SDvϵ)f~QtUI '䆶Z0r$ptLe$ub~ nC$B'u tEe.]nF? -s%UP70ħ@IH+ K kWOҴoHE?zΚAB7'q4B)b 2|f&8nO~c۷##PoԹطy2MJb! I9Q v@r/zh:E{ -T' C\\xQWw5<ߣڪQW #-1"+BtQTK4"c(L_H\_z..LϦY|eI麘&UǶm,)٬RΒHi5Z{W)2~4^kD2|QyX6#?0LpÐ/~xصkh IٱsҮ-F"ԊXfY#):Wi q6eb-%FXtk,2_[ hr>2¥Q!/bC_i9\'/b.F|6ET^O2 CjO|hsߝRqN-ZȆ !>c;iY,,Σ("= vGR)nu *c[6`,tMv ϶Y8U&x r " ^N&Wı:X6%kAe;e؞K2:@.'@$I$iDة'Y]ǴW Q} !t QUjL䜠s<~`쫾4!Ԣ B,?$7\ńa{G2ɧO")*jA@Rv *H>+/h.D IDATG+)i+WwD$UGL0MVx ώ.r l>¶BWTvf+*/]QFpVLJ5f[QѨDM׾ MaxYsBB< dDDPx)+Ѫi/[Ǣ\؅*S  />" $m &=B͛7~Lϳ[iT7Q]{x;^oߎ`N adn /,Kde!vTsND$c93Y'+ҟ^l zs ΌMJH&/,Aբ WuXtjla9q xnP,"1%% 4h}k{8} \BQEeBD"Iλv1??˟}O,Tcq{1-\۠ݬ- o_$Y" \j*R IRhl"!e;.nIA#٬g02(i,Vf0}dzի2ضCgIf2$R9*B6@EDYxt}i;R=;v"rx՞g2_qlw}j Ncyb7<t*KbprJe4Di`f\XQ C$,q˶ܹ6r,Ѯ,eYQ{J:\\A\%ʼnǢLezK oJB<ǵ|fg}cjhyd͍ z9WA٫KT /v(pf$ Oy ,?c>rCwЩat$jNm%'˽W%&A;J;|Ĥ<YgU.ή%1v$5vw-2/[o=/ghW'W]Q٥KtEu$ EYs)JV6K~ڼa9lg8SGDa pU,+}|"6^4*_|J ݆H5JȎRkIp ~{a@6oFWn,Emn!E"Tȁ@R|bYYuxF12ɗziTq]Ew״6@R~De2/πŐKu8m zT'077GAUtY%HQ<۾z.oN$YHgռK$,)s, 2<ۥwaa ȒgP s$M\Xga`[7lBd*KM/?]zyGmkUAQlQ#rwY&\xVJ?{fWyk߫ӛ4@Bt cI!61ć$lm Q u :ٽ~iA#4E}]*ֻyW_뷞H,NgPThD2#^BzT-D"5(JXfx '?n ZOt6$Kdϥ,G` "خM)#K2bmsΘÂ9q,=~vBz~56o²,$I|̯xt.jkcl۹|H>_b9TD"tv @x6GG< ]&Q+-e~k3\YQ\ylAQ5DQDQ5"N*dR  #y*dR}㊕y$+0ҿ[qZyfEUF)dI" tBao7"#D*. aRS S"7usB>RElغoBb!FX(L cL SL1{)2%T4K2M&F˾[o,Zٷ(Ĺ3%n+VJ҉=7OƟRB c`ђY"w"kD )]ץsgf,\x!O?4]ݝ|UVfYR1\ȹ>UD3ⱧHQ.NPGIfbd y<^)`$ D0uuNI4,0B)TF$ZI(X'QDz,ʣQj+A֊Uի-Dw(\:mQK5f(~O@X?غe /`Kae(B_ iUØ,%X;S{Եt"בF K%磘Ib!"A 5<薅^,- OhA<* 2HdB9xp#^ _ȝB|`+E3GdEƯyq_E) xh sZ^6wIqEө8TyU ~M%U~f+N\p*r4R75TdVSdxW)r)x/2%T^S(ѓpOx_߇$ dYGz2=|h >3"yF ˇL֟"E <.%!;o2oTE#L~QUUC=D!kD 4fPBr${J%:q ː֏Ք))cc%MEdWN1-9؍)ԄB wqX, 1L{4룢B@,xDDq$Mp $G9qx=!m[ IcIzPTLz׶ڇa҃ 2?t0<'4t,D݌6@$E_ꗬ[VGY\x}~~?1)RYt Z8RY"H@H9F.mYJ$IqKēFtv4MHb9Cr9FcE5˲` E8s'޽?g+!I-Wo`ݖ%5=˱k.ҙ ee/^HSs5C:C7*1Ed#UX> D %Y`.-u564L_ 1\?j0>20 Ȳ$VQ{\ FymfԲ;aah$yƙUXGpha%A`Sg}VA{3y"는iByp5_ EyCkQfNyt!mA)ށ*D#d yvu>>ϘHN :\0zTjãy]KB֭[Y|ش^zO|,^qtG,ZhRWZ(̚5ka`&q,mTNW֭뮣K/tܼS,SBeJ< ^=IIMD4vʁە{$^Uu "qtї#$ʽ*!M!'Qo9KSlQı%|HD..ٮ4FHW)Q:n<\H'8D̤>t DYC l_mmGn^288ĦX<{6hR)σC^b Q(0f:EDJ}.:.=8Ub83HInJȗtXED:OyU5F):ϋ cL|`H%`z<Pġ,QJq񱫫"ضK*ƶm0 dyޣ":]۲_GhN(VږE1Ų`uHTLJdI&E+$ S/! YMEئMHi%Jx}d~},^rJ>˫Q=7nf6 X(x|h2‘:4#\%IBer-" DŪe ut3ӘV%k_/{8]4@+"Mq`d$9groV/xXsx}^ΛcBGPSUMehY-[_#QWWP]wc;64AC'x]̟=X%$mN%E%PQ/BQ%@um|H4kkI&DG>C=H==PUьsla|AO=۟GOPXU %™XX.$W("E߭r]EHY^TDĘ"#oiF#r+Q&PBe9zn@0dJi>2~Y$9UF{n2E*gTR URK"ef,ug({im`gw{I\z5>oLܹs'_җVX6̟?IǙ3gqE￟_Lj<(lݺO|S,U\1ʼn=0ZDx csFŖhRh-ɹӗ3qq$!~s)$eY\?˪.b0žju Cƒe?.l I(YU,S/ q{FFۘ ٵ > na-`MPH\m!"&jGߋP>VLԫ"fȒ:s`;. #h>ҶN#@M@jKyueK'a@Cr ѩxHC#aBeFgDZLQ1-A;ebK6o.{mcK"yY";F*d@QsxU/>o0@>S,^C)#%±eeM$FǣE(E*O(RJ.e~i^oh $i(1ӎi$GifDeUhDže3 |_nk׮i4*ccEwIjcIy=Er9ð)|>+ihp߽W/cN}"?.tC.Vu[e7-q=C!.CwT((/ %G/d -=9lPX1m,>p\:s2-H?7Tì '$Q5=/OǺ1낿$!EdyJѴIZ"YKhZ,vwc#dA@Mp\r:Y:'"2٢ä6۶$4eTM &U4l߾Beq/~K.y[zn{o9isq}}5kpÚbwS'{Dr>羉RS- 'ﭻ-=]郿EeWdkj-w) g{~ÂsW|OV!aeyjvuH3峮dMi7h|#eFtV]\\3:0۶DJ9׉)EY  * ! ۴p ԒL˴#cp]\e׮;Q=ʣeqr9zaϳꓫXy4T "K*R8(b qA˶1 8zVC"e"vh}l,"('iFS}TWVJ婨lGj+(Ǟm+ cC! @ad,h^rJKȇcEtr$PeD2磦I(,'3"|l(.9$UJ6^-H"ރmضaBDb1C| $+RY9YVU-RF(F~TJC,R!?&Ј^f-[kE,+pu,2KP^QAMM eh9e͞S_/sG=̊E|tѱsX*c.nyhkضDy|毢ol/HWoC M M8Mmu hZ51Φ0EYe>Bȱ}p7ԵhUeu'$I:UTTՒ h USHW hlk7/xJ^o(0$aZqC3/R%Du ,aH;EQ&5ժU=]w?̙3j~}H$Xrq8Ã>w=l‚ *@j*$w'|=/27o[ns?:2q 7JXd V"H|ロիW3k,}Y^oβezޏ[g+3gRW7ꋻk.>r7NmQTfy`!?0#!G@h1䐟)~7ZQͲEHH rXxs*mpeB8[fE%rٷq88Aw0#\?sx8,I -@.8!b*#H8"&㟧YdQD+J*c"e|`\$e8qAD] >Xgn?f_\b>_`lݼv:⥼z!Jh ׬eWp.&2' IDATo6V aZK Ӧ`Y:[hD:qFAd(9R1-w]KfvJcpAWMJID)"12@EyUEU4-#RW ^D(g_@yTrxq~+(-<һ#"-כ}K+bVx=EO׻Ñ3;)q],b[&L?[~A52C($eZs9\9*(素)QR9Oz?pepE /Lֶm6jl|wҗ?Ncc#V;3zI7Z)8*'Qɦ<2YXv5$@ഈG# mЛdf\.  (EK4AQqʹ/ *gNE3ҨG筢P/[dHWk _ ݣ ȮzˆCnhO>u'dmlߺ󟿅lذB@6%?X)-E"D StjlKآ׵k cc #!$Htl|p(sI=tNWG;#8.莋{Ba,Pk8@R0uAE$YP,P0 EE<$SYA?$Uc JoEQ|'-RFH/ 1 R@Ue*csxaR{Fg3,folX۾B2!Ol[pD/He H!Ϩ̀(x<4O+WVe <*YEU=$=drYoDWg7W^p)uGc?ٵ$eVj+|r' 2sz"P.g;x2e=Ig ;ۇI<>f$YBs \zy4*E㪰cc;6Zy9`ʣ!Sj`[~p(|b"1^| bW M5Q[Ҽ%b>J\|:͵UO\淖I6̙C4哟$7x#466rײe`rdy)o2#G wS2ɚ9*;&LY0REg. dUK2XMM:9$ޑ~45D4@\/F*Hd{p/SHsyx)ïh\^{B6:xx4x\\tHJcAr5 RD@A@*lbI,>#uW_ey+}Whnm[o%g-+( w#Rz!,A!+#98D"zT-Ī` Q$:0"@< .C##hgypA_AQP .e4^RDvEJ&*H1\FCrN1[*# #:@P4DǾv>?>QVEɎ1N Ez&%RFH%3Kj_2SG0,EwD4Hwd㠗 4q\W"ϱq:j6o|۾+*rćGԼ8.R0䭥lkY|ƵjhɺDbTKW^LPkuIgӬټ-;( qWPK'?vl"0.瞳hW^Z:y::2,Bf҇.'72H8L W˵lBull#9a;EQn?>/zillX,pByqE|I^{5?[׏oڴi ZZZ;x2<g SB)rXLio89A$qꂍؖ, v^LT`0D/cheՄ=*}R 3Fˢ ?cZd&?}lˇf95s]q+%,mlxS[Tߖ2cDʁ6oŒ3z~?}1/i3gaY{Ixhr}l ẍ YbvL"a++eQ/q&SǮ 2GT ]ǣ'|aX&%['XawzyT r1D(,⣽#(x}^$$"84 0*VzL=$ 0ljjтmQ4ң"!I?L0]' lBP*plsEPdŚWgk8k^L*9{EM Q @ok1Eu^c%swSz+)uS@A^\tr{2e2g^yzik$I39f*0g :E̝? H\ڷc{)vEi$OfS5M=eFT#әVAm~>D8<$4ԶrkYlj󟁅uS Au=WŶlDۤ:@SP&g TxG%#TT(ZgM[ dMI$3 Af{QDIqN3" $bMo~ BP[{wrEahTeFdj*xN{qɕH&e4BW8(F ^M8qqqWu7˗60+0R[<裔&(JhY>(z[Zu3 [o{_8?L8|lI& e8L(Pp0p۶1bd?>z)\p1nccҥttt =SݏݦSLN-q ytK:=o$nt;W~ٵ[.!-h_)U:D7,JA>L>e:JY4.j0Q79fv,DO`9ĴfΪ[P~| rpqpL _V$D`¸BHjBJ=kؼHvnNTA4MG)DUE EJ͋?\N1O!я딗Wѕ"SJc# "I>"܌20ss7}^b (ʄ9جˎRZ|0MM]$G_R_y'~+$(P?g-&N@Q/'OLٸyR0*m AVÑq"2}FA.<|*+T<%h@p]=#}JSGD1<(m( -ͳ=s1[w@<Ÿi;v`4zA`ͧa,k⏧ 8;w?>, =6l3 I7nk[[[??mdzvxN12u;E0,}dQor>:\+Jy% ftRފn7ImBœ_}.ۇcx r79/wyMcrE8865o 3DcxԵi /`.*Gww77Y.}|_"J18W^v}!LEa*@ 65u #a<~/J0D{jCF%S0 Ve@1bn d$ypPɿڎMop]hQIWDcT#*2,AP0@4"Π*@dҿh2 tHH P(eއxqYWjc4$$ir^QY3 0-M6-]|!3|=ٽTL!3u<݈"/G-ǯ͡{'ed]^LX`öM7?KpT*͚W^qYKm)4k֭w׭6 Qe9&Gyh8$掍>p͕D> '{"Tpl_\8/@dbh 4K]M+P4B :`VG%Ad&+|I\]ȅ,thS9t\rֻ]rqӴHǻw}"O<@kPfn;̿uBmF8M)#1Nw R!SS۟.#MN*ȵ`b+S2LdW♵#96 ϔX9)&%B>o(fwMGGַeUVqvZlfpp;wNj>#ܱcׯ'NsS(KNi>aǎq瞓꣪M6?Z}t^{-7ٹs'Dh4ʹ{JLWٳgDXp!W7s峟,_O/r2D,\'x~z{{TqxGԧ>\>!~nϞ=|\|xlڴLq{HmYѸ?}=C|һ8Bz%D. >B<`w1_?.iYga[bvE 3ke~m\-g9z(=IpY'9ՆL\\tI$eY<#&>N!tlz \$/h-=![YzRf& _{~:Ύn伦FhzYUpTpE#x-R1M0GGOc0( QY^I_7!_1£9Z<%HS4-$H(I"^:)ԴL4E۠h;DͶq(b]Q``hn~uvދXB:/ "e(eo Eʒ#ƣy :"p.!ddA&уO(+=2 ̢NZYvD~?\[?}syoM}} Y,, = E:HNsB꘦͟Msp*tuk/sBy]uZ˴^>Q[^CH/ah(TVikAc|B󎜇G}p BAү/P*cޔ`%TSE!;uҶT-Oq]wqE޽{l\~|ke۶mr_W8쳹[馛ҕ' ~W`zկ3Ŋ+?q,{?8Md<袋x玉Tg>YgW -&É@ee%_=_'a.駟fÆ r-?n6>X.n&V\#<ʕ+[ػwIfݷND󏾏{Omģ;?ҡC?ox$J oEd˕q̫1 2#IM*H:*Jd ]w*8H@?d}xM%DX^i&:cg?Ѩ(Ds Z#ݼ+IȻF;4š!dPfؖƴi㋇ ~Z~tefʕ+UtOA(sp>ؔ "^IE-rC{E諅$INd1 IDATHḅ>+\ڭ kVjC>W|}w ]=et*ͥ_EmE ILU <\qeu319#?M^cX~ SSh Se]-nJ{^KtI٢:]k3ee54 tXhRgKqv Xb gm۔JEVX4ءL՛2^c?)0+e ) &"LE&nXXŴ}5u)Z{k6^/TՉC7}!*be @P5ρf;w,{K #:6PFJ.i #?i7EH*a 3[iB% WI YћŃ3tʵ[l=S-sj&AHS(wln}ދ>CCCH-yHlZ|ߘ7N6=:OX\n{22x;x̹b5S?Ϣ* caOӄBӚl._ ?<ĜǑa 3gÂOOvrOkNEҮϯh9-25\@0vw1Rnw=eALUhnp ڢ>ZC•%֮/ 3Ev<W<|d!c2EM@DфBMRr!҂ȦLw@Oo/+V0?^w l~zхVebr`ђddMC HJnpeQsl@"L DDO~5=}TI+ u*A]BB*ôd:$UC'I*P q)jq mVRNNNQ=LvlZV|oh8J<'GwT='HfL5}TRv 2CG%eGrɦ(MLKT#+(>v)8o#F8B8P7s}?0 ou۷s饗pT5ԫ*+O$)mfرK/t&΁ݽ)/}|oɉ-{+G<o`%v>;+)C֮ꫯɧǟPBt/kRl:Ed=IxP(zBa(*ލ ]^F.V$ѽJ"&Ue5]:rS,FZ&SqphVx"Sr@UWL/m_0f{u+6b63Mef|F$ɽy.ЏB˺T3Ӷ2gaFFFضmr[o}WM>E)s񶷽 ۶j ̛fhhVEAQNOEj-s|no|+lفロ??>eYTøbJ|׭|+є4Y Iu֍sv.av*#6##c8-h#Δy7$2@(3q.9|ChƬDu"Cu*O&2,L!t~ų")a#ͦ#BQ)aձ=J Kѥi%d! 8A@2/DQMn@0k0cUB$#۫+sm4EQ.χ>an&8nĮ$j#>  WH$i{7;_5W_ƪU r`o}{ 7_ƶ9>߿ϒLDhfH%R\yكi[Tk 6o^LF%@P,Nb0tV!X"}™,4 \2t)JwfK+ v¨h4y Q.1%vG u!ҹ|S{KlMB3 ]eP{Ǫlltc+ E#MHwl3ϑJ%owШTt mpb1\">:'^Ův#-%{7neVǾA4)c ?!ks֋n@:8O?oG5A"0c?+'^zBmb"uSf1u 6_Z>4j(yfO֥>":]]Ǯ [LpщYiW~ժUt:3ވ,SD|ׇ }B(h%wzFA pu /DF! %t2_JxmZXcT;ظe#LCRI{w|\~_tzVZ()t,!}dM]e0h‰&) pIvYE´*pҦҪ'" e(R->?]鋀t$Fw6Kiѳ 1d,"̝{70xIZ $! dr:-*ir WM>PRnwxnN$qj.r_P6xAꪫϞG{ۇ7Ji6q\/HF h#zا1hHҢR.~A2_8Get]Ce$uv_UTMשDi81Sj#pmF*I_s4oڎ]ZdvF#xrP#{)՗e74 +xW1 )9U *T$uM0'|L!k T; ز=ޝ*hDT;%A5gMV6jbӤ)3G.!,!`cr}}iᚏ܆gOIOrsILe(O^8) i{Z8S-/ Oތ{& צ^-[W 3VmbvlF Mal/&^|稔8ƍ[2,sN8ȶmEFQ(Ys}rrd2y4XT9]t7f׀#QoT- &|CK#Vo;ߊ,$T1+g˦@<ŔxIY晧{9'?~>b6_?? /]j?$ g_RPBH gXȲG0b)2 -t::zL S)D:.ޱ=VatZĩKJnQn`[&&|/R"ٳqvYnҲZPULFQeZM ǗYvtޕ=m۶qwRmZplx$'Ӆ rA1GVͩDFq'xIj٤ls015ۮ+d7sڲM^>A6n|I](DϟG֞Etrҩ@JXչ%" a`[Sao>LfpmU8kpV|t(aTG,c5+4&ɤdN}ZLRj8tPCaxɪ#}^|B&ϧQ9Ѯ/P*B0$=WgJ iD>a \G1Rh0RhM]r.^ ([>$;x0Íh\`wEr.h85wTQfl$P}?~{Hh13ɑF;guVge]$EFKǐ>+2{gȅMZտd<7Ub2UDIoz\-\wQ/hJ{h4g2~7U 7|3OyngoY}EQ>^{H\52gUyeA4漩ĬOC0 %PZa)JK.x+<3DQO>$u_w7};ԧ8B^>Ys BCڒQBuIг99yFK>ےdYB$lwY_-\s$ 9^ "K# jF% MQ vjD"I&KQO.fס7΃\Ț,tǑGcXi!"TЬL' $p˱JtH4:Nՠ՜ݮ!I*#-|ץ]IgSZMIzyZ"#GS±(jt=obZ_>$(hכpQNJʃO?Įݻux,o{RV:ā-/8^8Ĺd.yq̵=kQ*4'x5C׈Td"ЮՈR I((<Ė.vyɭYrT@ZKc&Չ10Zl"p3؛/œ*` dbI:sǑvuP|k6t&Hn\7o| Q~vZR$ӹ<[uq=&h_`6N4lBg'ʚSA h vVvv'0YUZNBhXwP JT!NxR$6$Tz }`vSCӸuxU%L4dlHÆ<~CkalU+iT_zG3qdBγ9Au|b8twxq ȪB7O<4MZЏŕ0A۝gun%)J?gh4Izd~%=;&nCLӨOQmLO^&&:qF=2=>"مѧ" J=!G=xnxu[=?EQVeS=_Y\EeH4 ~l ?@4j H鴐ueQ+UQ"QV " ES}GOI0]gIH'g 4e" ˡ(Rck7*fP%NmSa$CerAnV‡ExX`bռT10Q]MaE2,ITMRYTPfq]iHxBPa{e1}IYyZ']D-]j5yHr|4y.a6&7iLcŅ7* 7L wΛS=,"IC:YC\kLYIyqghhM;sI4˹y}Ɩsvm|}{ض[V~~hӻ׾5|Afffy $2,sn._ ?<ĜǑa 3gb$䌟3%*{2 >В"@ p- cTA,Ϛ*B#"!bAG:ճ5Sӫ ;_||oH$L8'˵ۯó_J8?HZ#;,#;\@FH d:,ds $%e6| jxXn'8&hF,E !! ,E9qaa˱hXu]imRq$$>FQ,GdTZmlZN.QjIV-;xK.ھKt:U,#oE?R]əXVt6F*zCDITMBCVǢ \2:HL²4%l2c\,őVu#% dǚ,!y`\sL-U Mct|YA ho 4ZVfq|M "N&{;)YS0JbJ$aB6i]Ӗm~&ۓɛϝh )\%e4ьyi&w Ǫz)DTS/Xo"ThI}ylx>M%dh, L(gp]wS6l-6ǦM_T*q]wٳkf0>>oo(]wvRWվ2˼Ao6Rr1xïS_虱]fUtα@A!*TTdIA d~Bp7oC|7uXZ_"c&Ǹ˹a \sޟqww*fFqLR|:q?mb6t :'Ӂۋդ br똚Kˬc B3o ldUEQ?qd ;KPEA0]nRti`b^d"Nw6(, uJc; t͏tm-Nq4C=7RY ?}] Lд/Hw=vBkx Ȉ 2;8j<пHmFx F(p* 9jhL!tG%evhʳ@qlwQIy|=#!<3LOp֭e[LMO'ٳw/8* X~J]*MFLoR1T';h2=qC$^5TR_*TtF^Q4zHtZVݻ=\x::حhC]lND"4cjrD* њ#"HON\EoBg.<RBm'PdUR9\=Ӹϵ2=3<$oڛ,\,_Phti&M.*'5!$$êĩw_jg§p/kK˱;P1&vsY{hǽTI7 ]wVI%F&;GpAqZoVߏm d2zgnϏ~#2?ͧ?E?x~v9>2,eQ29( vQٺ[ҽed4TTI:)[#>QE:H07 w:PZꔰlw/ÿwo?7't_}׻x~>T ?'ȝh$?Pd<% pm$S^) xfb[-䨎#\Ed !&%'r<˳I%* %)dE5(HD\ŴM"(F$$g1cmw843B&Owռay.5E,av$" B}+.@ضE2XLN@:O&juVFWl#-mt(AՓgrX lZa:\]3fk,J4ke,VI@ wPpb~1brl|E^vӍzog ϏTdr=\u+n m7ڵ;d-[}K5WjczNsz\sU'ٮǽ9.%l'%N!b ͧ5vѽL6lЮˆ@0+)]ӣ88Be27c"Ӌj6 F|;Ӭ"}4s1MפyΉ!Σ}n/}V{f8Y[,2cEDsOTJ(O2c1ŤPH@*~z'K$ qj =N vVt<3LLQ`_I#2M,6L\t)^b:KכeX,s<X$.C5@ $괈's88pl)lYDWiIF xT2! U#}M˳NPVHDl_sʒf`dP$!AmL8$qwmIvu!)*z] P,@$%QRafjpTA >)BJ#>5"h}B3BrJӔ&a>IN$j*!]FUT̎IiD*'LR7y쉧MЕah{&&B!_F? ZQ"0l+.M=ZRd4l]/q5/,;wn"C6gǹ=()EU #Kdi|{HSx!\ץQtLb]$飂jH$${zVGRIbk'& 4KIPVh*Kzd!&F@i]Zkvh$'tզc$2 jDhjSP=. EiQNTeN)/xpǫ-YO0갻TG HBlQ_ SCUyU_¡>?\ُ,_F $1ޖX8&Izg{od@I(^tv=Gc@Fjխ+ KX(h"+ @ @_~4:MF&ћMBAV݁I"Z"g2'Lb(V qGdhvڸK,eM*"5T]m!RݔK%9&'Ht33$)4VISao`dOEi-R D$t"YY̓ɮFTwz,ZCdޝ ;knΧٵ=n~ ~@,g޽<ӬZŗ\O)x_}׻<$pwܰ|_۲.kW!Hr-LXnWRXd+ _oM.k#I}hn/9I#1b3hWj4M" ݽGlmP~rfT_Tt ub -,NހU+319UڞMy4JӴӨzIe3fH8VM2: mܳykoJ3QX`n*Mz<:H ٓoDTCkگ9P 3"W:I ab~FArϻnt .C!Q.;Ck{rGGkٞXo džY{gvg,Ŗ#ֲfE-MhQ/Elלּq5 Hlt1:3;+;Ll6]mN5'Ϝ- NnbvNMĎ{;|YʐSޭ'O;,GPC?s鯳_cݿI$5ʻ-V`4a m7M)EL7cpph43.SV|#Gnf=zʷOUy3u Х&]z 0+Mz54a)Wᘼy]֯<__t:Cpx$/7 % Os[EgR"uټіRAl )h8N@ BԼz!歠e TmWU@\zx<ߣڬ>, -CJA)$[dqi Pcza]ӗ3!:]n:ʋW(fbphra +tT z.J K!nbe]S(rXB^.Pоxg*V0$}TUC7ND={8 Eiuz`?}}ܴF,KCX #0;; @n&l ?1iSVPUy"Qv3yJZ]zzxۊ-[=@_vu9q4;|U)M킷J!ZFLп:\ϥV`[qť41ˆj^jNF1$N@N]'bQ4{?Ԍ93a\) DJU%?RY•L_Cxv$M_G/~mÐ%?@;7>`*/]ҹզYu^=Z n|!m@lTpUHz]`JjJiFPOLNLQX乼<7t++0$C(BFyD(βpl9 zѻ8W¶;=rin)BpsV^(뉔$;wdΝj\M?׾5)J%l@*bvv)%Lfɷm>+044^nF=z\﷉ .qlUbELǎXO,IvI 5Hf;$Nk V|0?X~KDj$[XMYM*ٰTQ2 C KK<Ǚ[=+/s߽P(~t2ͯsjLUX@BBA_D]y a@y f>J,MPH  imB #rVw q!t5,0 CHds]f_mͩ bL$RXA<2N2=3y$qrLMB dE8]ۤ KaHnmm fP. .v4feG t ʹi B<ܮCvpVvUDm]_|BHPcܴFBi&O}ӊ)tPZ±#< nftoIo0A8tK\~ݛAHZ4=@%71JB!nk)rTAS`brF奧G'Pen(~ |H L[ QY]0TJt[MX0qUR~PT]GVHוTU0#(zFe [v]..Tjo>׾pMI,xXvǗ⒀$lYN5xi^9Hq|q MC"q((B]r{ȪG7TUNJMo7:J-\Ų]ľy>"Cf;D-RHïK0nˌI F_[(,U)^d>t2~ܹEQ7__O222͛H|`Ϟ=|sò,oo~A(gѣkSB/p$# IDAT8yC=Y;3?q_}ӈs4 1p 8ZTT,Lt,7scf 4nFwl T]yi+x^w\q^+~73?| 3w-FFxx]|쁏RV#ިy)m7VB))L7#>(,ޗwރqz7PJ|ˮ;ԝzap㥂nۥ439 ߬ջhW<1ͶD!"?.J;bcvnvǾvؼi#7lۈu7~Sb4"65H)͉570U\?\mEU"]kŚsX(dظ&dIp +Cѕ"w7UIĒ^ajV)%s, f^rqD\9MNWӏtTU}\B 3xjCqdO %3-^5m{sc$`ll ]9K{qya Ԁwx噯9k{¯W;cW@Be+>θ"M Gy(XD#-#XuҏDꅟBg`hmwc!cI&,-.ǿǧ>I:ğw<3|ƲޚP4Hǎ׿ѥO<gtH#h,v. $ %/;EQQpfy AId`av]"%9*lnjG9:]Q90@OI ( `s|"vT*EP?3fC7tQ˦uHYI"WKy9\I2(~HVA ѢR+uQ0 v!VWa%+DJEئuH윫/lٱmfbYg]D0[>CJ#Ev޸-[ֳX(/2;hp6%\+@_CSoyukXGl~7QM>05W,BK`d\fP89yd'ƈ$3OR4.j a+.L1;ՠjQ*q=t_?EvI,aQqF&L${A@TTMP4!m7U%\ T0 !=TEÎ&h1i^ 2p]7?;L<#hAhB-=pU!Z""y1 tIqw]?C'nl_#592S! %Ù(M1VBd)_ 0u ‘ Ja7-@UTǡ`&aqN ;;%nFǟ+MtCetN|/ JwMdٵ1 P +'B$%[K(C\KA(Mi՚"?@SunkUBlVm,nf"a2[i;:5@2$07(D(Q+` ;u24NA:(=Ԭ) "IJ)4EG!K L` nkSqzQC '/)P U5pCx8*2VEUhTkea҉xNDvU3hՊ覅iQ('f_2So>s7!{E<̷S &ٲeW]=g E d6xs"Jy~ؾ!0E_ڦTuX?^E&E\8}>RO 䪦i&f7r>{$ iZZmZnD"`Ȁ +G70YE$X*Bi]>.%2 h4>^OѣǵHO|g`b#J<0InH&b8]wϏ1<8F(ѾȲb|\.mGxe+!yǾ;wlQ5=OVNU5|s[~ Sdi`ivS-$RU)J(B.ò,dtGPnQTp|6MZ% L 2҈dж)*QmV |x^)b#!;X$E.`Ft;@,.5ρnG0S|hVm(4MZ G?v3~^UT"%S!6wm|,M xz,G+ j@}7 "KgU./'he*&n#J,0 $ߗ{D32ĕac'i,pYcAhӊ;XBTqBIAG(%b"| 'TZZ*{=Qtaab,gL ?|V:붑N o qqkLEY>t_]>/g<ij=˦Mxg//xCyK8334 o'l"S'-VO7TTDgRlI2 M7~ <M0gX\Hyy`8?(@S5dz w)7+h$qKA_TmFV*TE!I'855eM OeL €VM`e,IRhY%OI6^ EQI%󨊠R&#f]:~dZ橌fG oMB ,+N*8ndP-P%^޵4af^ٳcNj njbqm[}V?slg#6ד9>y۶qzTKضc3h뮿wQQ]wɓܴshjM @ކ@Ԗe'xկ_n6/dKh'?vxW^`-:4wBAID$2#13JK>z,--a6˙B e$;t986v;@E0=3TF!#u9;Ex(޺t&6JI\U +=mEX;Ap.J`:L|סQ_i1n:%T@K(,-џ'N4gn O!_݃it? a[Z&>˙٤`o>ySW)mMk2|qQATzͫ 0?yTA;.QZV;GUUE BvkpƉm;yOSGL,vj]3UXS*y=>8.,U21=zѣBA:0IǖBܳ{:@ܢILCߋ}dY"8-Dan |{ھ}lݺ0?3GL:ɷ-O~Z?ϝw?ΓO>I_ zu|W_czz C7ؼy3}̞CuD^ߋԑ}J* U* 2QQub nx#R(HD%" P<4ZZm\s|黄anE1^HN"-c=TZTE!m~cY2^!jƘ\B!Dt߹m tFVEq#ӗfy #´^'S)0|t&$$]IG%4 '^<]Hn<ű9yr|QZNSS:*a ^bai 2 7o?9tkFGٱz^}O=#2dLŹCsQ2dhh4Em֬1<3pӰ dO̞S3೟**NQo" κ*Cxы%f uFa$5+R\eCyE A S\? Tɀ\D*zhe;qM@5h<|c)*S5 MG5TfRi(:yh/%QZ)ݮC~Ahd:Hǝ!]HnZ<3724g_dY\PẜJD7?H/HM8?uq~( .8p̚8znЏ*/LvITBiKLJEJ#2mvRc7]HpN{I[-fv$FzVrMae`gzG1TALK.<ߥq?#Æ֪|qP(BT Ksnc(t1AXk7arˑq'^zN8h[Ke~";vЕ!F Y3NK! }{qN" ]M%I@P%z \{!@5g&iTJVVߧ["d0 fF6tz2N<MȡX3];עZ,9|x_?G_(6}iFzN5Gh:B#0.!^&g[dO,苓L׸yS?T*aX|K+VCU/Π\ G3BZ'KǟE3lR#\K bXyXzBe=MzB;KO`c bPcYVnãD& TUEJI,j"ǟG}e7եE}1\vu'B]^恏ݏjXAYg~h?qbr[n믿7ވmۨyusQ*ؽ{7bE,nV0Tߟ$W)pj\qUt+E^YƻDUJ6CDS)jOHJIVŠĀBx@a$$CKzVD.L! ²/!7w="%sytUe4?L2<+RʈB<cq@4+BD7I6KEBE08:L( R\X$`Tt!PRݫa(zN䙟TssJe^޵FŎcPoy'7}.oݼl*cܸs;7߼!sRq ds}MD֢_wVDPcVn}H!q\b;F$xsS4;%tCET <|R rK m\@=TgBݤ7B4X^ɤjH`EP4!o P ~ڍfmJ\Egs,n=})"}Kgh2D:ff6XV((Bb&x uDׂPǒ,MO1aZIB='~-gxf&<#?GkGǑRO{!UL(b9 DJ8 B]PBK'/6g}Rv\F:b kt\"zEyR86xB֭[yO޽l߾A(Aob֝Ep;t:|>mN!RH&A>4Ȁпt"$jx7,8>}rQVe].rgZD]^zWP&L9523M# IRd34UjK8ыv~IhfRLɨ^QU$ Lm۔8ddťJ(]r,G} xUD rx̉)Znb)uv첮=-RP_U<FqKgT4B(̜:vEyeK!8qrӌ 2aJ$8qwG(O'X^ shv. IDATscY:F?v{*NiF&Gd4A `aIa-`~,)ӧ_Yk_]N_!?0З=DcT Y'\r[4$;2NT,[6>i-T,ЋHX}Qӡh C@ԑ(K.ۏ+GO/˔'n@8v/5*ƒ֬'RVD>jBD$'7D{~Nd6Jj%T3IGn|HEnc)a r+C?mCJ\,>ayD8k9= :]/W؈,Z$  }ǗXٱVXWyK].?%߮ߥ:9uwk~TE4K,xU!w!<+lKQz*NS=zsT^( i` 'N}ua@YGhFxwˮ] (Z''x{Z={^#`4jM~'{}uÑ#o`1F Jͬ|& iԫ~ ;aX}l߱NCX/wYߘBڕ*@Q5Eyvvr0=qUJ)uGpJ.9C4u4wT:~W#Nq 3&AiIdz e2峔urRj02,'P/EW]b6J ( c%lj]\# k7qڵB#S,U;B CzXFt8hhG]ciw>֮L|۸b݊E﯐ɗ/pd_˸]9*6hUe:D)LCGj6RJ z\]ј;E8O2f388O8٢zA7;D4i"ůg?)7"TRamhU+)Gǰt!q+F1xh s1Lf~PU,=zQ6߹U)י܉am~mpE Qq5N7~G 5ur!3h}^>3{g4-Y C[*m׫r1u+b;T2" Sއ(MƊ籓0 +Wq\_ G"ת'T^cɘ[DHѹ:4L[{f ?0@"fff~?7?cy|;G1NѤ^Xd^"<|oX&eH /X6ˎ~@Ustazm[0y'y ,K4PoHćt@&<'zOHf1PSku hHS+W4FI&f$\.Kh+r#3.52ZXu "m>n]b "me*CIb߾c%KM~uxnfL)LdWfsz۝KtsL377Ǎ;s4]SQɩ(@_uQo&4LfXk 2:bS:/,WN3TJrYز%M^ED2VT%9)m[gpCD.TKEfv?G:J$`ߡLd3?1M;˒LĘ;I}a3#JZZ(ϱ, Bc(\xp|ߧX)0_+ `XݮCVGW4`G"+EfsLU7AHi&p\մر8h!!.K4sh a}z׏yT*c=pÆ~\%(ֹZPb׏eYvxIN%#|qn4@$qC#!5 Na|t]/)Igs޳)%bY֯_ϋ/ȃ>H2;n'OLشi\mma2<-L.-.2=5 fMsL huZEkPTXZ,rq"MeXICd!4~a`0ʣ]Ys͗/m"D"K~ ?<'fdR) !%r KI<#10X+y|O739oI(\"iU:\*m$ڲie4H"].@`wȘc2HMwقqajU}g_y9p`_~'ݷ}O쮿GAȔcg4~6^޿W{7%)FrJvU^D&t.~Pն11Mg䷙?u<$_a  A3Lj7 yML'VP9dȐP2*?!9&&CLקkT+ĉEVڴ'M\˄ Ln?_|W^~bD!cey7~/|񋌏33;mx啗A,ӤX#}gyC;>=mya2 XZ^dnvڝRzP|㐜1-]VG9u8o:vu=j^ze&&|@vˎcnտ|%r GM!eO,QbZʙ$IB~ta@`J, M5 8QU"vm@Ԫ%ffBP*fQS[7@1$dGR */$|R.)g* :=RQ@FG!VJ) ˆz<5[' .W;066FTĉ<+l߾G'<# _78yI"85Ix0/}7ZM BԘؠQE1v{;xATajz+YY$b$ё1 &+h*G7(ٸ0{Cu&sfIyB$.)*Ad=beS!}+(ylH*,,@DHl|q0п>Pյ8n:GXH ;stbJ X Bb$z6qF'Id~y% S'_(8UT t EJ(Ame,BQ@׳鯱es%s 8_?4_O0:V 5$Qu܄0B^;2:,qrrQ cXv9t};hݥOpxE*SQV$9VLEe7;CUTμ]!0TA"%LNNQT˅!h[kO,W[v0;;Ǟ={x g}1GEXbmTjs=&T_e~f6VQ#0px( I$kF\FStXT,S(p,^9ݲS'O> B㨛 .!u˿a).rU !HGoS'[*v6 DR^2IZO{ 6d TJ JHZ(@`heee l>Kb 㜛2N#Su]L͢KIӄH \2XS~c+NQ*O(6BrKayee RTd < _R,yF1 c!&5ȑcDqDV+z- $}R#;"6Cbqm.r3hKxav^26at|2&isKDdۧTC N{h2eiqb./ tMh): HO• #+UC$PTth 2cB|3!F Q^(Qzyarda]#b 7`~H/@(8HBmTBQUdK%:e -VwBVN)[ηEJz]^zw=Π}&{8~,olW8%鹨uL]d4N?[.q*_xp3VFYzl,`k/~HTACWulA,J1q",d+ajjHӀ~8?@gcNS*I7#t_Y)c(T2ff*o?TT,aa`t(UQ( >Dq?6laG~h/lf96mĮ]η^_Ev\ x'8V\T.]\~vzICU$i>A8ZH!a9i01>7^x|?R(=}TT|_Ra^z k)>ٷVn a ₐi 24ן[QtI RT EQR:}4 _s1\ץV15=hu[h**% #Skc1)Y%fgoqqGi_6JDrc41fh&iP_02>J$:A%_@HIB3 E&S>A4QM7Xn-| Dfhf婚e;-3)NMuta% ¶!awƙ,̦֒MSo2Ns|@Y\\d4O|ṃHT(f#%$IJq2:,Lq $~twޫz>%DlD7h{mR{و4Tٺgv&DnLi_?[knʹLabg)Oy&ؙS8܃^ܸW)C>T W?_2dȐ!CnO 4 q100zoC/#=(o"^dsy4 _ !333o}q~x >|h=&(Zg,s34+$ieJ]6aqM^ E% SV+hDUM}KKK}|;2^ȑY8r(Bݰ$E]GD _6RToIU3A{LnvP~ba3pXIn&DaJ&3]NΑ*fmb\JG!PlP\.F&$Ijz_&]ױ3YgT0/p|R) ~MVh&%^|D$a~Lr}c2c=J.<;}S ?u)QRӟ|v$Blg^e-ڱQl/3sǙ;}PYalKTP-*88Xz̠&7lڠRX忮1;{y.>Rnտp}=ܰzK sl޼-n> ܺwj#aGu RĞO@M)>yHI&,VXi,bdr ʙ#2_iBJUPT0"_(p26 u,FGca`y=N_o(ʜ>0 }>amwTOՄ@Mbǎ %Ӌ=hһ RlቻpAakE @b-d)E|AOdhVڍ,PLa@~An&!8? \k? ?7~/}TGA, VNMC8:.;/"UD&P*aȉ'aݨ{?<٧'N|ףSa9YK/0 ERS>Q"i zU)B&7S6}-#>l&I"B(ϔ[,qQ"fHYF!X\Z \RĩӧQUH wh,MG+Efg)gK镅%?Yi* RR1p}LӨSw{traB`&rz, Bff8zt[s;vS=WhQ{a^-x 2Vj El۲[vnc|_"M%LOo@A&} Q^´z\.ޞcj5KQ ׍80R@ԁ'm- ;Q yjxcNV),??-3Q0h_@GWy)A+HЈ 짽NbB\~H&>BYp"˳A9%NcWW2Y*1%ZľG"šxUE2M3Զ@(hf slfEc9rNIӤP(첸X/G!~7öu'V uJ%mB`7H]d>]7T  <N5)LN7O`X No !X7mm*$N0JO#vwsCT B@X#W|Ey(`O{ IDATtxƟ#F6?8 vt4Zd%sߜ3vȐ!C I3*o)1͋N̡ KEcx.^a(0M\_$LvmǶ-$3CI4[,L^( ʄl.P.7?ö-(KdD ˋHM' \|O&%9B P14R_sjBU,5Ow{d6HyAf*[hξۚ#F^ȘM? ic Ơt4,T`9efN͢* Y3(B3 YV{+H%#@^n lFs?˔UX[P51qt_Der GR.~A27`;>ܷg/['0\N̝YE9(XImڜjEV)4SE vxX&|ޠIDBAC#E?Je&T 7'8e~'?K_?/gKUdJD"uf +v(2VH k 13:1΋o2]'>J"<‹o.^}cLq7% AREcHW'N#q[ ;( ܕ&\_ANGzLz_z%Y$"8ai3aq3S6T-9{r|0$|MS(2Bt3eH2$E}}Ar%KѢe;hI110BQMJ+ ʥ"ߣ?SΟ ANW(T&)Hyfݬ6 l\ $@r( uHD(:AV%"pd hJ NN.TqmیwDsO*-ύv\N5MldBZO*lݎܾV #vl$MB$I<d,SX~⾋e>ea芆(MnK2ݬr(Qw^&d,\QR]+d d!K2EQL˂DAЩ-%eVr##++(ID%_ÚCW3LףHaດ*%:6ٱ ZKԊE `(,wO-4x"~2, n$5lP6!a!)ɱ!67SƮ"VEbdJlgf=N{4g}8u8}p'߸7|H']F)`>2dȐ!C.e(T~ +4PPAymro`0:Fkm1rwc8&$mh =LSGQR$V X1Y X~"5):Y0 *RA7 / HJSI0t("]*ștF(g. 4v+{?JUE{wav0hDB43Tt_F,tD:+65gkPV.TUR*1=9ΡCA/P9#2*DQJNˢ(*0 }EhGEGjF]8ED17BcvR 4!$.dh^R 1GNUX(\ʱi&y #c<|σRo 3cSV9vFs- BE<>x?g߾l8 :v o{"7ػ$w%:ib)hngqDxO'H3w%1]O'uK$ b*Pm +[`4 ˗~~P1c͜w}alb"P)4P.W吱dyvH"7!Icyi2x-91#z~RN0y' Iͱ,Q-/Oױ96wB%DePv:|pQiƶٸa#m!BqBWoP,lg/?$R#*KSȤetJIߍ91edSo^nRCI_W ٹBr)v?EɔtkmD\3!< n+L(V~", egm_C͐!C VnP P1d}q*}!DގG6\6i00h6[ =|%NvF'tM {3 3]]Ή\Qu]3(JxGg"?LBP.4!?P$$I/z. aRBp0,H)I5c/iBgҥ)\_nC@QkeZ* AZ*ԵD SQ &(2ʝ7">JrZpn]H ZﲸH0^\51)zΡݮ_H'>F@Ek(R&D/)H ӏ zN[oɽCүa&<ʾdÆ <EJq0=M,,hvZ'9tq0o=wߏza Ĝ vvCCRaYa'}-&/G!MO:sQE~RhFńA}uqh?_x(T2 X!X+FDnӯ'4d 4L?KX&ID־:I8d=c3aALCF w&,AJjNBMSr,JG3X:c$I%™Pu?=F'\* 9]}E&> ~{E2&"tJХ$O2=]vq|*RJ>L၇ zBPTsݴ;>H[bVAdC{+ydlvJN<ƖI[Д;!bV;Dmx^@RiؖC&c. 2<|?>LhNDJ揽MU:-Օ[ns^$B'8K KK<<?vɉI| ;Ɖ) \ 67X*BQvA7-4z 4UhAqzq|wٲi9ds.|6!XYi;}NǣQoy]1=Ɍ npRʫ^(E|T&wNs;7WXxC *C66 "LG]ZA`iu+Br~SЯ֨)PР¡XB3SB1j2dȐO4M<;krſ/OZ pQ)\+V}Gȿ*^TGI~v*w|:8+LIy4MzK$qÏ8_)S6al4I(ΈQ-tD6$!qj4M2>\C@Tq#3)RQo/Я 2j DZ[-2FCC#vŇV.eEJ$)E'D+KPBt4#RdI!P,Ðeqzf/(89Ne_-@&>`@6Bc~鑩uKh h A蓽FPYRZ y'Gsve1]ċWs#NmК;Q4'si4lݶݷ9?C?H<Ʀ͛xk_ab{h^²38}o13;TjOR b+Y<8"^$I,,P)00Ev}U )sK+\;nGWR$qgW{^jlj7(W'DQ3r٘^*XUFl.$3s8jֈ Q5 2{j*1ڝ6mc:ep@#[dZirMËBiJm0dCD2v"vK={%I6,M20LMp>^V>7~?z|>Z|o30a]i#YlO`u0FaDkhs<|wn|&Խ^8./o |ns!ʳyO0qg8O=Sctgu}]^A9ǐ b>dȐ!C  p[hhBGc2"sQ&1 D?ɖFؙ]O)^hw7{~ 0t|$c$qHzOEQt@DA& E'K7l$ is =v@q Ȕ|4MHlƤ983J [DB/HC5snchʹ:}VWfq@Ro4H\![1 H%.KqAo4MHbĄIaX&x4\m4%W,R)s1E!͑qUC4EW LˌaF 1<{2ħ?Oɩ]u$HK/XrY}H)%I2nĉw[;$l38Ǧ-}vyym^Mvvn?vy/9p=8&8t;wb-wpiȧXP1h|/ʳMGF15MQ52vU&ǫˉ34 ;)^q{Q5ݥR 5ʥ6;w>|^HMS߬SugY3x,H*2z)1X!uoi72kD!~&NlJ}iZ60~+|8y]GƠO~j3Jqz+n`ۡH6JqPAEXjۨ˜3JykW8VƠRhv˃m%MS2VmZH1ӻ1JE{(T 1%Kym,Gڬ\VZ.]ĩS?OTፍINla:7JnG BNOޤblV̜MO0.R&12$@ EMtCX-TrT2)H$Q!%$ 8Y+}$!c+U$\AJD]Pu~sƘn0CE 3,P\.KT3 9tSp9KL_jDiB{'('IX1teE(S7PA蚎i }4hEiR͕.]$ B0,8" $Wαs>Jn4MHn6quz^@xJc,-,3/R£ ^z~j+m,;+[wl0ԵKpAVx걧OO9v8ZEj[oͭ78㛸 w/j ~ [= i: Dm)at|MBat8zB-[/($]}It{.qP QgJ1ʹxi}Qhjvx/厒FgblfJW pYKv{]\.H1(1)OXY81i,/̓IF*۰UM#c;QQۣj̓B(,8F A<~:7)η<ضm_O-[}4M+3,o'tU:b7,HÔm_EZjdxZK_ IDATyBy!Wl\9dsqK C's1B񙯰z;e 3۟`}?1I穮%K!@b>A&)2Q>!C 2p gI]@"@IE_{?y7Z 4wyee}>{TAT5Ƽy Fxsa+r51QW%Q^ިQ Q!*LBwM5W}mV:{?g_c*.A@RRP5H$ti&NNYuOS,Q.:hZI;i y4 F}iVĚub! NIU% Z(vt3E*&/CHf\wb ͺlIJt4RB0Uf +DJs68q(-q,󦄎IGD--2:!:vBtLN';9A$b2vl&;pZs3%"cpTUŰLVg\Y6qc %CϧYx!C|\f7j2zcPwюʇYH Ak3-I' (Y훷ky)|^~9.|#>%x|>KFFQ T+?$,)q PUg 4ݤU}J|ߣѪH vI>T*y3 /'\6{ uօ'$J.I,pe>ysOHӓa֍ d׶$k.B:7HN v ;@QiU 9UQ8OBQU0 #]]5QВL݋'Ӧg#CKݵU_|UŴ:K:ZL ݦB0ɟ3Ӻ/ ̄ε~1"~z;9F*{AFE[ݍhViWD:~\>FSd2bdzH,A6HhaK":/tL3A'j#A0 D,W0r4 WԪm'Ӌ,A!fm*#2DM(dXo4K I q(3Snc+5!+P87ع,#$vj WQx8ݸ"%trdE-$rJDf~ɆhyU+U,ʲLw2}=tf'?/0F4|^BE!s3s]dXsQ+0h6d2YVIVfc.>E7yETH5zÎq2HRIYw.Ɉf`ziNcSEFgHu?<U*Ug#?TbʤP$QBKsja,q9PU^T󠀨*il6(LMMa #KQ˽$IAspcf+yx尪$iY-1a((t3hU,2LO1`?'oޏI|_e_e$CF4ۅcL"(O#Sk ĺe[n Å&Gw?/l5 _O÷b邗\_fB% YLF4×.zQ"$vN4xfOX.VUC YANQ>i"Ia! $ cdIA9˖ }qSȊAk)Q1^f܋ K;QnDIDBI)P X<ޞCAM'O>MdPS{:33×%x N",iBtM}ϡ6y)`䬳O8B'S-tDŽ0٬W)4Mm}F>1v?8󒹟+'~C"EL}%~GqH.FetDdarV$$}K: //(]#[efLy/oA;n}NA!DTiREQRJL.4j"$T#=/uHa@YŋPlhtlbzf8.tzFRAdTEPu(>bRzNQ!c.EqD(|MV=MJVr ̅) 8< f9 J6\^Sٵ#"K"Gex\t>?݇CYùKFpu335][BcNFF5HX οUsU!;Q@i|VW?\h{RfViУ!}u=hfO_=_)8c(nֽ#}/bX .c>ofl|X'?7ƭQ 9 ` *S 4<6,1[qpUYߡ'@'bETeYFeV 0\UQ>R3NmUAz"J둯̎Y~u:ޒ$-VV@5NZ/6_W|{*,"™: ۻロkq @u,N8qDѠ\.j5q]Ȋev@+0yt0<Q,c$4sXEٮ<-!|AАsT0ijEb#IӢr4:&wa1sOo!("21 un@..Q4jM2Gb\\7ԌN.|0j z*C֐GI15l355vfrP$HĤv֦R19;ah:ݙ hK>ݣ޶݅O9P wmh0mAȝ qdB!tv`t Ŷmhԫun?r밊8+eIe-}I.`=8Nۡlҕ32<rr&5AAU΅Ym1}nAentl7͹qLӣr $ iK0ҵ0 *ןK˩vU8J7tLæL>gfn{m%Y#dRYʙ?IWjѥ!չB}Cg3%۱r}\_?1ގ #@Z6##YȊbDPw\di9-lMCU%bǡ}|8&DAඩOO0dm144LFьcLd$ҟ89ΠB>Te'}Y:tdgEYv۷l~z7zﻹ㎦(.:7:zJ6mEUd֭.K*υX( el6i],+jlYPT>ڿcSs+LȲLg٫o8؝:f;8+ϕ`sC~?cI93D[6lx",, HUB,&Lcp֊7˿<zwfkiܶC{R$F JV2s Bt]FT*njSDDH1ȚNyAty0|(Sa:5j8O  @TH&9 ʞe=$ʓ4 6/)7*`ڨ,]N u+l&ۍ,ˤSIr{[ IHȦLN9j)Dq Ʋ,Ʀٝm"EôȎXI%!GRDCo=O)$9bd8t^\7|xdTBUU.R6oL韼[l!clfݺ}9{Y,FF L3v=6= YQM\./=@\@WTE'jT%˨gqKI3xnP>ܠTL[D8 KGVxчo.VXU\abbln a(h5c^uMiP û\}F$sT!'f!X8TKL ݚJ&!|F#&RMVyAo(78|}$IDl`UїoqC*hCCff[lz>8l??fէrz,"(T={prOԪUڮKOp?o7k^+ǟx[o2gy C⢈BVJzVah)Iw!ͺOUH~ndP YUUA#fCu|>O4[u5NAy`XHaOR5'tN>-Pb!p8Z#I2s8% }AHJZFE l*tt$S&C }嘉4~Pm@Q$fefdQH.heGS5TMcbr@Mt1uӠZnН<1Of2ujJ $iS[p@YUUI$Lj  r MA')͕2E'?ctd/~ m5W_/z֮cd?]tBfa*Ȳe%b`p!A ,x>27 tbsNҕ$,f7pEYű3RqR`l*nN#BvH8A]$Yqy$c'/Da.Oϯ< 3Y˩7sb]ɪ>G2F2f"A*e|n4jT/Ǹ&vva+8 ==C@YQR/"J9RI9BVZp:ĎBLæ!Id{zPg y2:#4&'wH#sZT*]n=d^ڵa:/Ofgj|Kw`Y? +>s7}:VI-L4 QOHZAHwBgh&W  O #}h$Qg`yju|ϧl/N qKtl^~S;粪P e?tݏ.(&ff5nԅڤډdjuY &~KvX'JyZrm} {ػwwItl(]woxxk_{\q'?In,'$cL }O}R7|\۟ss:7k-ǵxGjqmqw^,/]zt{o??w]>pw,87 VXnkgQ<^K,j?=}0MZ88b IDAT|>@$˳ɍdET1mMV~ q0מG|@,' m6mY&O 2f0u|/@:Br4 rk*m# ""<Iq%DD {@hn! /@<9JmdH (Dl|Lx }J2(z&GevfBe295E$b2,<6mEe <"JB@ibi F!Vfyj0 It!D"\P(!etnE&I+ɹ+Et&Bi3;3@?KG?cŗ24Ϳ Cg sɋ/N.0exPپm /{eAĎ{rO=5WE/ZZ>s{j$;؃nC ãSOr)Kzx ?cN`6/|'IiV;v;tZ]2dD5DSxd2bo!44f0H$L,tl$mUAE%߻ I^ ¶ <էME TZ$l> nú{'#bх;ojz׿Vb7x?}q8<?Gyo}[.t/}Kxz/$ VZu _x~`Æ |_oco==ͼ1r/BBD95y z!>zË/y #ãQ8k2^+ڿ~'7,XGe,V(_Cȇ>x+nrek4 y[ŨNbj]gUeA 3ǣwXqM]Al >zoLDŽA)QBqtdRqڎC2=yρ+ndH,k1?!o|I;+Te7lڴnwKWmtuuk.[;x@PʨFh"  yJsuHa@UCRTd;eHqDu_w/NG޳@x1؃1 QX zr lKL:CyLFq$ U0fj #.c.8$e& `\Ed,kfl|/?VZE=ˋ_bdC ;L*c;X TƞKaY* #" Ij/pE-h&v͒AQ*bw)2vF*O[!AgP.<g(6wl{Bǘ(vkc HrL_ ;a@1GOV?0Z1/zPq,J 3Y6h:@rp}%xQLNyѮp/$N&QuPfkelT'I"qLq@"  \E^80,qUtQ B!R:+^og6瞻 O>ˮsob``0ikvo8 NL%.N{b!GYyCvt]Gݩ$ # l(DqLڶ$0m7|TU>ӓx*+A ai:ZbwI(J(LjfJSbe3g'"0mk֬aɒ%|dӦ7ocV,^􎋫n/~<@mo~3wy'?%\u]y衇زe ?1 ss~zz,(~-[5\í c^oޘq|;3ry{^Ǒկ~u5ps](?wߍ+￟[n￟z{{yƫ_jnL_M6я~<| _`ǎtuuWw٭'rAsg"R2,(R.Ė-[ضmr˂_wu\q`֭ '|;I֭[Ǎ7H.̜N6;mcl|/\|{w+_ gH%St lx _udbf'?}>qyٔs^͕W b|o/[F!KHwȅsؕ>dYFB^UIRT* a>]/ !!צ88E4c'48(#p^w A@/0S*qG'FH!l?wY 8QqD$N{vxOV"E6c&-hՐeM ٙN,c'-$;C[G\?q6KFGMW&$%Ė @}kH i˭cV.DsKʄ/l޵EV(iFvI :1JLLLuw=^ t 2Q4cUX.`ua5Ty=z?J6qѹ.8Q.3E2a*,="MHs4Ito( blW ǕB% M,ھ'u&4oDJ'grF QS#6s{-4UPH8r(TZU[do ;wzJ4Jav҅"S|$S)2.Lmf1$9F3}mQ !Gz>HRo硇;8Bn?|;:L?_xǝwyLO|j5կ!->nlۦZlZGms>H$g>;iQ{u-8<v q-_O}S$ /266i ɏ~#>s9022r@tY\s'?o~1=UzxY̜9kgqjxꩧ[yv>1>OKy;A>x'ٷm^W|6j|_O~\wuMo8i'gndpN #vO>87}HRqF,KFyrgYFGuoC6o__ƒeKXdGҫL^8ʥ˩FETi&8/D)[8:u1>z ]3:ybf*e7lAyam'`%,_6$$@, %F";D2 =KG"f- #%j8yȭ:e$# àAt`|rvk{Sa@;IJ%zr6ETWY vCNv;` Q]K_ߍQ>?t@O^͛QTj7χr9~yfF6lC I.Dev;mQ!kyǟTΧ1]غ-ay= ʓWF\@G8^.$MFuYkҠI-1ì;N՝myU\0waR SLf"TkO5n&ZMtmDbJLrg/ Tnl01uyk+.U6!F1O*e30FbŞAc| 4 jLe00 !bhRT(OM3k'c;s&n$i􌜅h$[E!kU x,ύ=,HQ5l;MTKstUajzMavnlVw7g ik\zr_z7B(,sܼQTN^;C<6|d+{.y( IfCE"8.~jĝUATSL$aXrcO:"eBk~i! 0D1Z ӉNp؏*~-@Mӻ1h;P7qO)#I^z)_= ɼ ox+V86f>K>-oy R=w)'?I}q 7|r?Lg?Ix<'zq|+V044tXzF-[o}[c>.#"x fffعs'/}K,Ap?{o&U{~λ׾uWoM%Y}8BL  }CBL $B !Ý 7yBnblNb&[6dk_z﮽z-%˶{۶wϟqw7oLX~7{add'^Ur^NToJZcdpgv<úP;qbͷ.AmRlQ'v#^!C BB%VF)'tE2$ #c߾hVO*c'\mar^B  ,05^U҅ ++0cR8@ՓhVY |}btBKSR8"BL]#[rtbBF €c#}D>Ođ "SH){f`p];w"&$͕avɗ ]R@1)A2ihٳ TaCƫn czl6KX{~} 9jJZǾ2[)McordayR[/B ؼyCKe#p}X;0VSbK1?JrDZEuJZAy±~8-_J "l+C΂29һ#ǍkH%hS<\o3l>gf+)jՓNGef:K!oSouW ܹ bRȗhl41EI^1BD'-v\mIyXTJHR{G2F1Z2qK]:y96ncهЖ\*j8*AF"nbf=y`Çggvaxo [u_N;/`SGur$(c\bAFxO>ڭhNL:Mq\ temǷ]]A COQLsL4[ 3we9%*ybBXD#m>~cR,J4MJ]ƑÇ[OϨ W_uNI~H?c9Z=91a- z#'h;)AǪ*ۈ&a K1sS\7k$ iPK*,Eau֣'LzJyB$TZƛFo;CbT=Vzz [baal!OB7*(&7OQ P:Dq>nz8.YUgqKdF7;Mr"؟PUSYuCiS`{|d!֝|.XJ,s (F}}Ī`nuA y%4 +R] MMqhN*z.v8Ǿ0r_Sɜ8 >PTL+)>N0Id(fdxJƒsKuzzM5k/m RK+X=tWyu@$ՈxRV=1OL Mv~" IDATI!:qWe"沭WybtlĖӫ)9f7sGa&E`arv~CöKU\ Mx;jwUa% Lw77rny-t 0lp^hzX0$E[Oq~W~7M|DQt6wuwЇ//辊/~۷o~{w뮻|3gq%cx-( CCC{رG}t5k֐d]$T~k_{yav?μ.~sc\{͍7l೟xwlGǯ~_'%m2 oe1B]6pq)@B3\KAA(Z7[@:B1^q:(Br !B1byx Ӆ>/cI3S$sN۞ B}t&ap)h$HA8& " x18+"#b"dZ5GuE"U4M33 s!SG&}C/D' h;mb3+H8'%0Н$g\JCUVW:aP,9 fB#KXmw߽g)&w&T58p#GL&pӳovcDrŃC豊9yOIgKF i)f-ig)O#l#HC!ʛ5S=}@&Y9Dd ңgI-?KR&(tjEi)dS1T !l޼t])۟ҟV7T ղt9?;p;,b6ޞ@:D+,RUz!#B3KϺ ĨajS)cQTtalסX*qLgYwY b8u4)fɦ1=sU|>7\ƑM>;]ffu}PN6pV@(DbBR\16 >‰ ŗH?1-;j/M|<ǧPV/FQuPЏpU6nB1X$RBW,+N!z<+tY梐H$8xNߞz1 J#}3K #g9q]ڵlη mÔJ]5k<޽z?A֮]K2dϞ=ΞEp۷gnk#pbeTRQL6[o}sxbJZgxM?tMSQՈZ0NpNnL, fym?BC(Q M~{а2=(zd ӑv`K, ayJc9BIt$')>#rOߡN2AaGʟa}X/<>\(,qfK<AcC/.ħ2@OX32D:;8$}r fJ'/c؝hh YRibyy Eovnۦ^fi6>$4zIf3t *Qn׳N*A7XO*wqQ[qGG{K=C*A,F'vOqCY{%E1^"p]L&-|D6\ 7PDJW`*@(7o洎OPN?vQfYeYJ3==$wApA+ 399Mx{?yq(bvvvIjvgqX^2o;̮]V|ӟX,O?<g駟XXO}n$w}7GΝ;YXXNܶX,nG+w?qn՟osssI$|Ǹ1\~;Z~y{9>p366v}ko=c*z#;3G[^$!j|+u.aߣUN,%QMیeD:>O "(\.,$bОz J}mE!bdԫ \5떖&]T#T.AJd,#@(\=7!rh7f8 QPqHX Fu=T6(|K7ؾKh'yI'8zEn>iH%Ǐ" M%KDy踾Lumymq mъg9 7]wfR,ٿojZNea5#ēOÇygT ?QQnz)ڝ۶m\vxVMoMoy#bp`i\ UkmfV)]Gv%6Lg| ፗcM\yJJK'Hѧ ȖE oiO7jUd*Gx"Ar*qiVT|(BIvo_>EH&J eVss,ewPBfMT6}d&GX0 zJ=H  Ur(LnaybVI&[cډLgőQ&TT ݴVЃ0F*9&( qOr>O4? b__>kxwͣ>=õ^g?E{?s~~0 ?-˵6|AcYy{NG>O}CdY~'<`~|K__"r wqǒu]GO\wZ-z!/`6ɟY_W2K>|瓟$333iJ/C?q)q?FV㡇_ő~xNr\Sor㗏~k>;?~ H> ߜZ)YTBҔ&axqW^F2AJQ5kB￟Nw~|;~ d/b)W+:@LEG2[wp=RcvTsꘪ`,3Y  ?FH2Q˖6 (zL"O:G˘,Ρ-( q\AOi:|=NŘv!L195E^T(2<6q}ROkМ1\^ى9\}rMK d/uҗmq8wrI&̽aۖ+\azjfCUPa 9vx,T*<$|36:[&8Opc!z**G'&2Xs [I$bgyUati:\mDQL>_d~a\6H wv mձ"a:ZH ]2JsI8Rf!/T<Ij[KԏI^j"ӿX@$jzp|=H\n{NZ$6!៾0yl{QɈStbEu4յgwPؒS8y߈D4"l_{â0(+Ɂl4ɣˈ05qR}45 nS4  0@`‘Y=9ϥ]R(]3q( |^] vy;E.ࣿ?3::J8gP_N43<򫈔 >*ЫݕWC5͌3]wm~@bIVR1{jDQLe!}TZ-˖Nd׋;*V~[ = _5#q{HYwû@2rA(x5eQ:.\שIZ[EL2!!DM7%_b1s !,091+۶0q(8DQʿ=ߣR0 M&v"=CpΩdf~6n6q.ͅ&QQiVT*lٲT*Ŏ7=}[ػw/c+R8pv>ǵWl6M1570cYʎu5|T8QUt:Be\1OB3siW'#@?aXni˨^׮EY[ v Ta`] o&ΔYг9`oq=R di4{VʘH!ÏO*l;>yu:*SSyd2L -t+P%V2Ey`=$SHmzq.4$f'u Q EL,#Mi6VM1%hAX~E1q]4Hs-`ul3$LP.*4޾ r=bgbb _cCNxuDQmwH$,Ԟ= 4 ։bdF\H "PE )lg㎮h^/eK0NiS?HǒNC=%كJ dVwFod2Y^~-/Cm2]+_v,ZoS]e/"k֬Y)WY%t|:5YgJPˇiVk33:525*T,L\s;d%zmE1]_ʮX+5U1}{!v!a`&Q0V& ! Jb'v ġu?8",Ah5%Ǵ4IE0=SV25;I"a03KYgbz6dFmyp} Sew0 =rFsi)ZKK3∅FL%u+Rfffg~+{e~a;<<;wr٦- v@(ۛcd$\܀!# EMh3IMŋljyUёLTp& FEC QHN7Q~ Mz2" ;Da0`Ԫԛ5ڕ?v۪ 8qt<*4=Gڷϻv%AF<%Pb4ETI1d8HU8gB:R"]ӨLPCBV""COX`l=YSԣ豇= l:g QTJ vzBo(\`:o:Տ?X?o֛O=\(z u!DUVHeE(dfy>C!i4IνHyKgA 2} ˓O>qFSIRlr%[PJV^($ЫݍUV(:tGyvÇW[u)T/2HCmwPW5" H|ze$M|٣x˦($4qQDL`*P2^k[Y2=2Q@Q 8G"r"ti24Ln@F`I"T:6V/dTQl6KPZJ!XW>8^MiR(bؐ%Քg}.Ny2 m*'EJ)Omo~v<,o~˛?6v|I;Or+"72cOZ绦i~6 _GHҩ^ܫjU~,hZ|_殻77y;W[fLH"D>9z.DZUb |ϣtzi(uZDQ@QSJE߻iozQkQ,LrrB`g AR,'/"ny2 :ıq=<]T]A&Q@t(w02F3MHT(mAxUQT۶EBFhnYضՔR@>_2\%cvzęT*b~@|@U%Lbe ط?l6˦M{> vя8x r 33<lrfRۉ1~qdr?ْ]yZ\CpLD1h4H]}#:AK\̬A&9ORA*~HDéiU^ !BbwM9j=Fl`x FМݘ?6 EMYh{I&M6mj/ͮ])4 B6^T<<]J53ǜ r|lđLm+#Ea( BP!U,RaYS+`Lnq`ϳxiJe4squGSCǑvD)=g Bk:Z,bSـS8G:mq~Og_DU&Tcx͘dXvʫO7\'! qɅ뼌BR/l bwS J$0Msɖ8MӺ^@S(D}2E~Q,QJƈٲjikgw?Aq!HѶ/\]eUVy\q+rY*W@о*""~y"@(*$$tWoF^00:e[7h482;KܚR1IQpK|*D1#4D5S#$J-اթPV5+R{Rx"WXƨ<vʡ @RL"1Tl.ѣ(2Fu0$LOgi.4VVdAEQ3aRVȨ+{8: IDATB7`<{6QU\6MOBHY,I;>!R4M~tMn={v}v~|>\`??dwinFUP-GT)Q}F.|TFCFD%7#*QRE B5(9Hto/ͮ]I ħtb 0 8µme0ub$MfAyșEC8 eAcv=O&X\b)q)y#O5 ۶^G9+5Y YeUVyY*@ق&" .4je(iXFE|/&h4VjuJ"QiгS& }L5Tλ>NgtrDd7 #4F(ac%NzEat01+ADZq<YL3AC2e3T JMw+EbHei+ByryR$SNw)UUhN~uĥc"l? f2Ei@$U_Ƕ'+uv'g H%l޸͗o"0y&۶DRF&Gpv=Mme@Ax)=95etWP lXDIRm()ďmdOu HV%*gP|/mza]B((ߩ7#~bfk I:I)R$33,Tp\+.?縢8s2VҤ($I9| ĢJUUR7l!Փ&:/f*R\ūQkMr#ٴ(  8;+eL4) j36F6G@D]@2Kɣ#Z@TC%JNEƈ^z=S j(Q=Ϣ!B3e F6 kwe~>2:pJ脔'>74)HD H7INd,D P̔E A$i!qʢwF #Lb;DmI*ZPfP)%Ѫ,!NôK8  rm t:#CjMf|c AP򎟿0 |#So;~F8`]v]vTHW$ACM ^μO[=L"^u: C_w5c J$_;<*.ixMZ $[s1("㶫T)c$T9<3\}ݲQvo~/po}v=cUq `_*:f5Lg?{cϢBRJKr E({2z뷄BJ1 JKtID$R]1FGL=>=8JVne2"$c/0QD,$dߢƒ((MvQW-zskodVi@Ѳ9LC2ߪCGL?U'sJVS) }:)f\M%LghXJ UPErxwUQv 4R;%9JTফ6159=LiFqBh" cPqft9e+e.8L%[?27"GQGa~o(qxQ@؜EMxeIyaX#%*5gw_cJW|TծnT!zBovOe:Qt1Kmjs3hBg{@Bu!~R6y`df}d}c要iaL窦a&'BuBߥ2yC;SJZI*EtN[-Ӝ:19qLb oQN>dd_)[_xut$dTI̋d,RWXWyituҨ~˶ ՠ~/t-0-dd:k~y=Be)=Tz9&X^]hP,15*bcǏ:K Nal|SKF7qgĨG>\U)3'45`z&NzQ9nF%' v0 F587khJ) <7}wCH/SynjxwFpo'MxZ|lP8' wI lg`PqN/ BJgg{V~8 [7,՚޸w/mEPFr RHL) $lRљd{4Hd>%SaHB \7G't\a,W`yqmB} kiBJE?&iDeKԥ6^rB%meDai 20VF^5t3՘gjr~)~W~v]h76ָ뮃菿~?{}- %vw#&\g+p5h[$@ .%q\^iR[\ɧftz7jqB[$qB%yVpmIhYkNjf֮͋$?i?  \N,dȐ!K +P2CJDkBlR &$JzAGHksЈ z9RCYR_b'_2Hb,2'H? +VGAJ JӧOKA)iEXI%wAf&YfYt7uS&iJ&BJwuW? X/쩣q8SXn,So40\￟}7F?e[\wtؓ1=;w}j;~<ޙm/H >~@ާ\674<4Bl' OVq#$<b,^ktTȈ2hR1Ns2a07O!O~(Ґh{\@ʁ ̠8X{vmzjJv}yA9W>dȐ!C WR zhxqBk.*Q`6S$2DaY9_3 lۤV-E)eqLLn#Ilblz#wGѨ39:+mJ)P| pt6yw#SAf JY&·"'Btcu3ɠ89,tCn~K70 ٹEu</Gv=f]9h$#Qή`yCOR2i:2pB!$i,_{ta;rZ&ddd7`\)ʴmnoKEn.l|²Mrn&)ZH0l"Z΅>]K&u!2[aJ\Z8Y#nbièM-]H'XB%>–~ÚY8SZLƔzܨBFđg> 8kF1-0ZG?z?wu++?8x#T޴'Wi˙}~)YƷcANj+֒òDeb ǤwR X%a > A 0& BO' {42ڭ}3<'7LO@uffc< J{k(V2dȐ! ^d+)/D}签E/~k+J%)S Jfh}tJvtILhI$ )ɲ Ӵɔ"XQV9uffs'_E}Q~?C,4`~/z];+ e;˗dRXh,Ijٕ*S6J{IKe iR, RqHokɒ|VNP1T`hc$M -MT isQ)ٳ$qBPdt s F Vay1I'!J:=jnЌ$MHHp6z0>K% Miggjb4L:뫬R_3={vqrknRG1W`jj7>,:ͯ/?ܷf7 #>/(-OW! J2qXG"#,$Q[ߧ4aFe.L8 "Q٣[H&5C9-c> 6ڎ~ՅU,fL~3Fi?"2_z)N udhKlUŠԗVٿ}PRTtǥ a GIl98:5KN ۦT(356g;$YF3 (oCXQ%m,LN J5/P`ۘO>^_DH)- >>jI"o N;/{(E/Yj|QqiR U 4 l斿~zVd|ᇎ_~~˺ 0da YdOHKY)*H;} x?%@C{H ) k05fX*impK&^Fcrm~i^0[$Dqi%:QP:Fx#ꑙ>7x5A|طw7o?0>6G>}ݬЃR(عs7'>M!G\pXJfPEf 2仐,?cP;\үl:*$aF膱,u}(al88.^mDQ8pIǃ|t{=?G9r!D#ttt4Bql (zūqФ( G>`P*!4$BFGRj # #Wjdi9)R&DZidQG;(0 7v;4[-ta(`~3ot?d"#1Ff^MDϜ~G| M } jY_+xٷOSSSSOQ,*\'>];ym7`X;8ݬ|c4 Yn̜ IDATM19qР…>j6@",^Gh٠T{V`JmiU_W׷aLaqRJ֯ye4wܓWD_/JVa^s~]cyyAp:Y&7} KtEa+E<,=_m& ^rJgnӔM˫ϕQO9Wefj]Izi#S$i,vP4Z.vޫ<5.]Ǟ&:icdtBqsMӪ>9e|l;1IGrlʼNjU tu %mSTXiR3kn>:̌na'QL-"`OAd%eiY- WvyyYw*A,#Q1Ba6;v:Y*s&$,8Yz98B//9^=8{(˭YQ9~7汇o={~g߉bDs}o||>eГT_y<2dȐ!C yi2_Bp54~{>(ߗ D:aѦRibZB f&vR2QJQ*H-wMX`qimccLWH,Mh5WW>QG>A H{A. Q~1P 5jkDCt$MR ts4 c#Y8;?Ci[rgggIUF!gz4\R4k3;?ωSg+oI%1aP,h6ݦ+]c> ,-/34ϱa}2q=n~>2waHZZ4]#//O;A)uO>:yl]7d۶#cgO]ZddمAr g4}|K(nA 6qDbmo3Z RBARfEAp~R[DQL ؖHBwɩ ץ. mR!KI=>Nyt3g=MIeAHhOql|},R11H2PV(ųXöwPvl]u0u'f4aףeXBcmAЄgѥA)*|Ϯ^z_X^YF Ν;xbC4 <#W1mi0VIS.vOǏQ,*n]5>/8wHNҏg6\ ]#&K% ɺ>Bcf7\g Mp]nlЋ(AKsa~ǙgM'anXL9p8|4S pݸCh,ҧF('_On- " |h21exX >dȐ!Cu$AtùK,Köu,Xz<]Y4!7|gjrettn{q-mupmƶe R+g&& k쳶v iۈ(k&S !k5FAM,RkK (u=@ѹbNĬa@PM"J2 uF;4(#:hq//P) Q"h+K*FR]ҧB4RhXERH,%gxԃ:a?BL$GnG.#"8fyiy d\nR M܂W3wIf=opDn0 6&uA}yX8 'Nml69sz`96~qػo'j|8~gjڙC 2dːPyH?Do&./ y1H!52 H-lRJi:'5!A]{y{Cn>vx|A:kIJD覍vt} aCa !uh& 8D.R #|nIh5 SLzcĉ9-G>n122DZp!Zγ25 ~Ke,ӤZM)HapE7e,.sz4,m*R{7v8<?0+UߧPi'hvȌPDM"HsXm!M{Ũ=EͪE)Ǿ5Xgzdi|_e{ʎIԎ==3ǟ=psF% _~}bk(ўtKek+fvSƞzTQ<7ݾq9M8Fo64#L2 "/ 'aQ?Xkv0L"w\kj(FE t(hVЧ!4bjmòXY6_ww=jttzvdYch;0lkbя:+Kd&a>Yw_*B] ڙIPY~7q:K媴 ȰwRDQL%IR<AHۧP(`X:Ш5vy{MN=R UdQe7˩1BMdlQB)]oVь W`zMt+QsVe!(mc&Ad3gRpl*r)*lx9c%_?cXî}gN}ΔzP2dȐ!C^f|O %Q*!WPc,C?fxalHA2ɿB ҟRd[$% 3,{>M{=8M?je",euXk=w"6 uQ9 Q5vnЦ2Rj# LG(ȒC7p,(xwFIjN[)$&"Z3?Ęw0*Oi%"xKdαL]FG(|~Y,8 MSo=pf?aSo,S.U4zxv +bY!. & Z4r;݋J/Fä2$ YKYYTpu~ 9V!M;dLb .H|ͳ< ^?n?g?(p͟~yX̳[pO v~?*8zquq^tN./t†jI)S,A+<{m&7 ij: ˨w yz6a tfJLh.t(9M' b"Cxy \TǮ.J2^| mJ^Zy%g=0tC7DҩJX2DTC4%R L&/6Jz{PEYsU)RΓ;vҍw1}NC\ReIP'I0Mr9~IIJqoI;h^/A%>`1A٪dqQ -Wŋ (O*lCyOC8m8QoR^tMb^[ezTdDlG~Y_ OrAhXkagz7f|V0M;b 2dȐ!/'J IЈB ~{J1iHȉH ƱI^w^K,Jlg}9$IJ8i8$鮽i4]rDeH$r#'B%~3psا8Y4.X$Myq)YD!&K&YXlg zN"V #(:ӕM#> ˺).P (>O<$B;1 juO~VdMJkX 0$.<\UU|㝌[ &y&L|!'ϓ8Vt>*KH%8vBCZB-w5KDJq_S)AI_;A6] PMrϻEU4^z,͌` I)]8y 0Msϧ;x/< ׿(kfۀ(:H鶊!rBJk@b]e2t!qle4S^2ǟ%IHbQ() K,-/P(Yu 6̨Wȍ-/b)ikRnGMxaihIۡExy~&|܆Ro#]xv H; Q}~2SE7эW4׉S0 T}5ZGYP%U.s'RmY6x< XY- ^CJtMF!G_HQ`tf IW%7?c_n:S; o?eJS'4=dȐ!C*%'13F@@LB"?&"o$3-PW/V y n1E& !RG% k$M["~Ǐ/)y7WH.`uNдk(KD TYOCj&vqbH҅7joQ?1G.췐!M Iҍz蚁YiD\ȑ#hFXZ)ri4)qL4Ͱ$i$ #ڦn0鋈jeݔ~'O<9/AEXyFF˔^@rRH$D)V΢/5j* +ׄ,MB3>{ϯ艍t |sh*2O< wr C^.TJ!@BhCKeDFzߧ!lcv[G@jD7\GR!!"}4!''#8n{r^DF [eTL42JLFxH9xVPz=5۱G ),+òB-̐ʿB*䢐|:N ^4%ɗ+pmJIǭT a"hcEy)*ˈA>E4O65rN^- 23fHzA~}}(-C_'>꺎h]$A |m}K:X͑g>udJי~;EEȐWDi M߉&aZak*-+Ԗqtg7 Yߏrڶci6{ ',4JJ*H)X ܣ^Hwu Xi[wu{˿ /?7|/7Tk#OwuB* x;&=bbo9dȐ!C ٜI2!9M|2 d եWK-~@ȠJ!@WU&[2#e f$#(a'JL@3T6(_deuGhp^;cbl,[҄(_eRE1xhL(L(חXn5΀PnȔYeTolKjH}nB=0,K >048N_XB@!_cH))T*Uz0QƱ [ AЋ}2Eoco2f$?mo8y$r IDAT+Q?|NñGÀ׿u|{!pbNR4L9]~3Vkf7ODcGj凉b~bѱZ.^m8)LMGmYvvCV*hyCġO`8Q@nvY ZkG 2û@ `unfCP-rfVVa=\FgwZLY{/:W;?XX\~?]Ffz#/ϡuܑ$û,5r4L mA Cwi릁2U,"HclEl,"#N%Ɛ'˰L&2z?b:M(`nu0q}~{$t,kx5mh3Q ^**l14䕅D Z͓~:X-,⢥LF]V؛Z fWUoVyT ۔"]ϯ򹰜40c(ݕ%`{@|)dDEΫ_)Cɞ={y{/2crb}bۮ'A,%E=,Cv 2dȐt3#Q  00g?` [Y8-OQ5LgF)u%!D&qtE&*Hߤ/'G9QZuʕ%~Gd/1N40urP *uw;ф‘7L3B` R)I 4)B 4]MQɵ iI!RHC"D))A0?7OcOXE-y7eFF8iNd*vMݔYw4]\bʭ7s]nr) ? |XiZ?m۶qk_˳G$ o}݈$`ib(?,样Xm0 4iudwVL &~,QC/q"vݶqvE?xa{tqtƔ:ZG * Wt:!tfإ/]vC!c:B8S+ z]?ʟ}"_0xO EG|.g~&hkۜxӟ?9%R(1Is(°0F ahIrW|b=I&:*M1ö K`D3 A@$Fy-R_ )Ի~@ÌϹ*lrpǡ- _] { ɮsιsDb)[.EE'vlS{(+P%$'DQI0"vy't}yb;vOԂ{{zoGTF8AB Qt\Rfmvpl'/U,:ooyٳ: :JiK)EXuoO1 -Vۛb  #)T6u2-׿399NeYY]mt}5Ag8ǎZr 7Gzb Du04\&68tb-ۦ#>|۶sr^JsonG>iw}tlS~{Rt@R*0wA۬19Rdfۈpbx;~K9t$I? ɸ" oʟ7`,ED`hDW+BL;8dY{;852l_hZpP) vQ:sY b %Ӆ:Yk^4m (Xm&Q7ϧIuCNDX(D(g2cX =R1T1yGg3== .n_8G{M M#0V:iCy4e\sRLZC>ÀaHH0.)Jl[ ʠ\\W3u]:&: )VK],hFIyxjsiS iHnJayyO!;=y*Ӳn21<~:A+R\z_%C6͑ٲ#LӤThڣ8ʸ*i[oGYa @*y%1a`N ˲(v#/Hfiidqz:gWixB X'a6 ̌lvrf;֜XqxϳyӖrU:$}ķcWUfd6i:C4Lw z#rؔ{i0m]]!{(&FYJEVziᯭձ.|I),4د)4d\)͇ꚻ";(JٳEoe~;qP< <4A# r0*_&&&V0+$PG E&Y+xu!RvKf6Ww4Ų4Ic!A%I5U*psmϡѣǙaەH&;:,a"A(eB*L2pܳH@g( ܳ\#`yD z"*SH"穔 Izq $Mu_P(ժ̟wyJs+MԾ0A+`[YJ$2!>Rj\&sכu=M:EI hZ,.̓$)gٱcwk_:*o{[ǻdd7ģ?L%_=rh0sӛ_fni/Zg=Sl:i6ױ0g񶷼j'|v+r<,ˈ׼~% RCeSЅ7y~ޮuFuI$G(^ʹtB'~s`TsQhF!qa6#sn7Bֺ-29ݔ]z CQohfGcqBJĉcDqPnzFAT?"MozGw%nU> AL]MWW׸UKqL^giyeLⰴ-ʲ 6薺()q)8%HR{_*DQJ\Bʕn5O/R.QJ0%;%XY 8nrAԢ;;ך4cg2, ^8 *R)VF>?Q`i}d Hm5Mth4$)-0=g{LBkAqHI&:PRb.4{Bi6%)!BR\!S,@>Ҫ`KEO$ƻ ~E!TILrs ŀ[q_@gIp>w}Ou"[tt:om87:&ַϵ^s_kb:ujҎx T*g))<۸)ŠuFu J(8|d C52\Ha`6x֪='b;BLkIBW[#H;k8eJ"@]?S KkZU ii45ա*~ O 8H>}q]˲IҘףiX!G(,e#Ez)*qIML;d݌'~Jev]F6KKZҘcG)2Q(|eeuKjq$N`zrL$|ӟ^s1~;(wڤsTӄ(ȲU8vb&cC$)Ct޳]ﲸt42 s%iCIc>cHkA0E"B|_!$Qnx/$RHdOY2 3YfEn@ft{19@9 gsO*aYt6B <&CL;finNBHa&˕aJaDIH&WV  uN0 \er!O9:4MA<%Ȳj&'1`Q|mhZ,c'o v96A uwWEi']<אp]8,Cob(CTF)Kt٥#D:T.| p N*3ʌxeŶO) U_E+Brkˆ9tobjjZ#ϒx+#:=j2OIǜiYDQ 9 nSnz{Rd( Jn2J"2I1>9N3^/<{i0y}у?F!BHJ7x㛦9|b㦷`hg?wǮ]D&(,-汽O%LQ.xyobaS9/i5ZX%ɗ1wktDB8bq~Q o_|qW{! 4aqcv~-]TΈRhP>6c2EѤlq+9&Fb$1Q,mu y@zˋs]!mS6 pbM 4"_,U& a'})ä\$&J0ы( 7NE^SUWg.s0,XXX`d(#!0ݠrnq4,kku*<)ȿs.齒:^sdiJ}a4<J+,dtznʳ(N[!XaeVpfd#NzJj1:A#YSSG{;_e|Q{(6KdR 9j9`0 SA# pA!'"*"#=,4˓Wy SGr0$C~j( iE[Qdx^__<3xv?_yꩧٴ1](i\ۤIךsq@jl6Fz6*/: QvLy eDQ/hv 2} )ӱ4Wʘf\{adb$IlN6,HYvr:l6*cӖM;zE'EC.34rv9<禴MunN=|Fg6LgUWg8bu\ "'fObrvw߿%VV$v[n}I#{?4<ij8pB;NS7ݴ!.bݙ:Gɍ]M7y?7'Ç2hW7*)O! _.b99ۡ82~2c0)6ۄAn[kMe@R*]Ag'yG%yEPfniV>עLw~)% P2MqWdD'۷򖫷km@J⢔¶M&&Љ=}I}[n[EkXYY|EEJ8SkS_[ZyqK_H Se Iڻ,U9ʞ-zxg6\/[ HBMɰg)4TD]%s$V9mznҩox_!a)qeytNn([]ۡ0>k\xНƙoFG/iA L/ȳVj/b$!fGi//auװlǍ\Vګ $_t2jsZa5FU2* +8nѩu8F3w"brN[TE)=f d|U𗉬#]j`n=N߇W(Su5 jr'4;Bej,@1~[M6ObwBqB% %+ƇYh40nsQD4mv9f0BN_6Y @< .h_# &=Xd\L~v,; ?=5wIwNHJ'NO>O? a022».>2ɖ>4yJJnvZkQȷI1 SˌQX a*7pJP $wQ+s*ck4Sx=.4%J"22BP*$`d)Meض"`2ʹr5Jgs'^M4JYO\][vhpõ2R+s1=۷og|Sֺ/R6Y%1J"Ƕy_?N M<!7nc1>1J;b>MַV{^SMR}Kd&6L2wАdpD`Sϰyf+wEo4y팍Dž%X&W:goKf* RxHPiqLAFZ=:QJ"\Rmv/,3^LMvrU֌:7یl0{QRZ4JDihy<~J{ZZBX^噣`;9c(8^:ɘ?M 7υ딘,|Z1}=:=8Gڀ|[ ni<=Avn6ɈW?JC8c8*b( J*3/(RB?2E W-adr#!v\R&#ӟyC)B]نB*a d^!tkM.æ3o>w rDMZ;qv!vŝwy˛xЄa~׭< o?FɲI$MC R@aP^םh4!! /Rح6m˙Wy3ܕX2MĘ Nb Ķs'oK3jI VBя~)0K_2IСc3B^Z1{ۋ$kY?TJ&%vֶи2}}?O~vt;>+u}blb4I eDqr܇%M.Q.ol$Mhv[t: rS,r׻<:}۷341ƁGz=(o;椝۲) ,,Lk smo©8F8ɒ,-R.h/P03]ö-Ftz:4WS.{w.5ɟD}5%AeBHriE E :M(!Ĵ/Pu:$JrD!@%0S ˴,FcJ`-GxJ!,n:9*9$sWrUiYt-(_k lReT ivNFJح<py(c zha9ܹRGv\n|Z5 2c]h b-z·g1,6y|z|#a iQHAnspZ6M>8y %hܕ1:5M}q+ԗyfdϥ\TȟrLn#˔Ôǻ,MBP8\q)."2O92@=i^\'^p)=}{ EsmZkO?ٟ͟7x#Ը>Ach_, Xx. $I]w~Dˀ @. Y&#㩼8;Ds]r\=SBW_C$R,0-wڭ.i9v;"4 I4|!$9/OR9u\,c"NKQ4K[XE)g6Tm|0X\7o'Jx# 1>>,qk"3/,K BXĩB !c(=AͺO-/#&Bᡑs)APPm^gf%i6N%:ʮ{طomַbHX>-RrRkv_<ӟ+_ qPJai/R+o39]2~EQ'l̦ $KXi-qxP?bz!YY ۸|wv<%PeJ) xM ĭ QʳO1kkWkLfhbײ/313t^Rk}'N P,&,oڂW(Ѩ/ eA$!~uO״*qT!}ZbqJr7AqEeM? u5)/4Ē"*B(Zi$T蒋P*HOvPus!ɲ4M0 (J1MA/hz&K5J)'7l5_|裏}^v]*1YH+xL$WM,Ee+ g; 0K׿,%P&NA/Tk|_btȦ7t_K(NS: Z~CI(vl KKt{>j+o`,H*] *ycxhxD:R+J 7eD:~<\C\CZ-kM&)TL.jxןBgaԶU܉9j;~(r.qR䭋s\(8_GIt%18ƛof3O)Y Wz+R($2?],Uk/`[6BzNqpJHi1<6BɅ!Jw2Fj7at-5UWl/|k40:2kC,Ξ`$qcǏoAel/X $ ZkuU/GVUWEB9:ʌ""3#2yLjN92}3i PUijȺ "ij:ɶ/LѩAyh`z}=5tHGy UFxU 'U `t':D|e/<:Tβ"0IvUJLnLW)mT|`$S։ Zq}ץ0>aŐRb{j"+cݝ(dlpf|Z;0gi HfQ:ėWG#l:k_DmCifE|_{.h=wmt-];߸h٠DG7Nk t Xc=pf |׮]mo#sƯuYdEY*_)UMk-.q_#R6tb+?u= ]kVH5^@AMA"_qSO+6re b2G!twD3xH)mjL9A(s,_?2>U=xU)mE%\+ BJdSIZr9vImMf;e351Ewv~5ԅGK:GT`EZRHARŕ's }ۿ=@{{W,'q]KyyƫP-;J@-S(f@ N#RWp<˧ַ'Zbq)PR.:꺄Ѐ5mAuY8b4q0u҉mIt(JUԣ2ÇL&o9bO|?' a F cfz2 |Ry!<"B)ާBb5h 0:Bo4U蚆0.QwU")y cnd*K:Va6̳ϰ.,8`61/6XGt|H_$|5F IDATjxbˀ={oSc׮]u]oK.9[",ȢP9@GXgEWl.t ~Dpy9v5GfJډsC h(JB]٪7lPua;м淾;<_͛} h3ϰHJ)Ԏ~j* 9ݠ*S+a: \yj:ݫo>m @ F!nT:ZZu uHL <7L5eX){>Bð*2=9[Qw0R."!14|1$e126F\7zYe|_n.zI[NwF'5ɪoۏڵULM5CXbL߲^|'@#4=ʓ! K5JFr1'TW_{-*۶gCu|ݻ_o;dMHL,Kw"ٷxjx ֢Xs" Ffo4ߝq<088xlٲ^ϩr׿w]'wmƭ޺E ZdS3 ?xGܹ/~l߾Odq,(TAC%QDH=(a!B*ɐzj3^OܵϠ hI P E5$"9E׉;5[]:ZrA`Wb@?#BKP/10;zs"bT 6mZ)+pՆH,COM=BEh:MOR݇ |]AnlZFOǙ'=o?ix##ĄHŒ~ 9:JqYYyՕW2Uȳmv{ /!Lq饗{ndS}g8v=<^jVE߉*zw ).s1!$zcYW]21gr5+2FD&GV&aT #JEQP4JvBL@őDzfUeFHDEPHLdLdpU%~j1L EN,$ZA!R4_ zsOVCx.[y"x['w<څ1 H2T YZEůehhW]%]ε3h/~p)s9ʥM<8ݸ:w좫<s_BQtsfE(lV)_bnnw՛TlW=;K$(oX*R0Bş"u;T|K/snbʕ(it7lZghw}Ml=?[΄H9 33o~s[O>$;|,vvNkիWs!>Ϝ1Yd=~cs?<~||{ャ\W_DQ覉K019EGG; I2 f S-ӎ_Qkmb@R1:9γ[<4˖ph&T*cc@&ήNv:|x 7cV&0 706UO?K$#J*f nF~i3?~nz¾FoocjmLB2usRUiDy!-ޜ1udbr%^+T3c4 Z4u8 HwN~ |CEjUM;ZEC14׍O(J׎+T:`4PiWUXY 3-Q+i P0" z !YCj%T]'a=HZYME>QiSSvcL". o4zPTD*տTUlR iE~w,7M\qgl̹BiJ"q.O??~7aE8Ft:}ko}[\}ռo~7;v& l,rR, Ө(*.ƾC4ᝀ7BDDI ܷ0'hG9X:F+xZ S3Isv^ VPO< nPk\(9@TB*-ja7 l{vMwދ[+ nwMa bO :} !BmeXA@Q#ۚu]& eDڲhiP(V! B M'>/ ̄yjʎxS b$^mҖMh*Z$R ^# Bvɡ!4z0L_x~O<2Ie􍯡;tuuvZuE8\{͕l?~߹\~Zٱ};W\J򲮦\UUF2a5xs*:ݲ.gbhCxX<cU@P K%"@|S;a1pC\p%~ea([sBK.͖*SS1͐TD5# c4Mö S3P\J3K-XE?@Y)E93+Ti7!(T aH|IBi ^2|KSPDaT*EA){CdcLȜA@3LC\œ5&%.d$*t@rWQs3M~Wec|N*/%zEqGeYҤ'vrSJQ:Uu˸ٶ}'cx(cMwһbk%B(ubEֈ"Ig|p/LaP n]Ev޵t:QM5'S?(xwM[nOlܸ۷G}h[q<l޼/;3k;wG>.y8s[0k_?ORr#|Kߛ7o?1;v8bw_~я~\,rz"%4'x즛nSԂy\s57a}{￟6l?qٗ&L΢PɌ7J=xwH!!5YC`TZpIIQlٛF=XFCH(]71 C7QP^EQ0t jv@+OB%~#PL~%cUTUöh4mYT*8y2^!2p!9X94 3xG0B2u2IUU kDrNli}I*dbbEUGRƶlNl2CG} {PswNHfdt(Ipn*u0[-Tg 8 r]LK%LhMF~h ᔑC'\8ZB8% ,zcR%҆HR19Y{%]>;Bj%<@i"Pm}h8LKwT ncmͫTTkk/#H4͚{&t|ߊES#]RBh$G)bbB$2)#KJ!iFF!MÇ<{N**FZ~F[ ։$RGk(=ϧc,!68%$PCvTTUK{yx> ]ǟu=| d0iԪܽ~j \&K!vjēy0ݴSc#hA!4Q#Lp;Eڙ6>TJVX6JMqI[)Jʈ~f}-BlGoM!WcOMĨ8mOW+$ 9k^DUUnF^סEQt >P,{7AWWwG?Qxt}/_2O=w}7m:thB~#^XwIV[l^%h}r9 p]b8+KZmNȒX,}N>swrs]w~|?gĢPIaʠn%uRS$!̙ޯr.:B,_/Q&-;/2[O3YSQsSg@6w 5/e߁Avl睷ul0 \xS<E?R\uQK-A*dVP MMSA5b zxG<#sALP4L\0D |~Ӟm[P#6 w^Zfdr> "aLl߾ ~'''')RJtݠ7 |A&ٹs'}}ݬ`VJX䖛ob0M(fҼkԊLNQ* P'*)r.*5]`b:PcXy`i%!}b}˯A :qW_*cD!ɨqO :UQUUt',Yz[xկYA{g/ZGggKb>i8CC LOЉL{8(I(ICJ*LEPuS;P A{GVT.t)A( i5XR6}Zc8D6 ,3n%p<(YF:a$ KτP)%>zdEGh0:A99ϱdY" xIsQH9/^iEni% Pػ#Hy" "p- aEJOLPT*Ƕ,2х^%`4jw"ً$FZa^tCG7QDEufPTf&UafPJ@TL"M mYOJES |;NP[92yb eһwvGg?mo7 (i$2ܨz(/e-OwA__K)[on;L&ûn?|wA_,4\\.0'?]&rwr:YCLL&Ν;>!zھ؂!nyḆvZwr97 Y0鯌=}T}BMI$W gPHlۏwEܯRAA0C E h7Pؖ$ތ׏Ӟ@ʈ0pڹ1i*D@H X4pA6/bLЈgіZrYײr23ǡѨ7mg)% T>3TOBԪU+1 ~oF{4c{j3QFm/pu):AloMR$)z`4?m,Y@ HHҩ,l5e^a=hFGK;v*NX´L~o?qPhMӱ j2B::xF܁u y`X+Uꕈ`Ͼۿ={p1>13,JsU)IFl]B5D iC{%svdϗ` 0^8̾}dj5ނ%3Z 7bNy#lI hlzvg9TXe/#,3d.5O|4'uYJlx|qp *)SOS]G6̅BHH%!.?%B%&lʲrF_aR*:0Q\ض=,a2FicrY?A[+Ng}ufU b ։_ b*J٭xJ- $DH,BJS4d.Ir]0T7 vP;[D U u$ 6mz{m??}?pdIITi ϩ6oRbYf a2Z.x!:uI05\.05ۆ0t SGz9H~d,`5e$"'(#()jU cPQգ sQBJAU5JeQM5[)R?ήt-eIg"8π0X8ĽG~'xk.?GLMQJIMpTUrʦOG*J<(h^9څ=TE!(nѩQh&« $]j Dmؙ^렫jm+R̳4JflFNJ b^7hk9{bL M1~ 0䖲xnO@iI!(T1SiRَkI(zi唦M~Gʳf*܆(oN EZۘ{IC$39T;9.KO(S$A6-Yt9{@GsOSRU:N:`=tG`iIʻ$VH"$҈xz_/`bԊez! ?GOޓd"gB=_zzzzk;x{}7̯kz!oJ?P9# [bYYWD+]B"4 2Om{jWQ0ѥ&f_<ר^ze xx2 Jc]:@1墎Nna2JWKEŖQL.$l 'anמLU,/ۂ:F|`-ZZZslp#hG>0`OwK#"r/+W\~[e;M-P+I$HR)SG|MHrVT47EQZZ[qP꘦A2bjh3ydDpjJ/qC2`|BVZfxru#Mw.''Q,~?W]ɾ}*L8 @`:k֬wY/yq^uF6(n}vlФCgg\'ԫV{?ʏHx|_DQjuR-.sǨ<X4j拓lVTbq|Ƕmb8t_C\54rC^`vFrK 51IDDe|Qd~GSOi&,M,6-DD;Qny NjD8}1AN;C \ԆB[k Rxp"aq~߬n- "Syڻ: ڂf a'K*!~!Q$˂0NZln'DK' E`b(Ji:`.q\jCvVGy>"V2GeӦM},-7/}??CQU%҆ͳn>Jx^,Ur >(~;^z)_.<:ԧ뮻ˬZ/|_Xr%s;$93k㍻b㇭ =wefOeFj{z>&g\*U\:?J4hP;J@:cF:j J_ۏيh~k PpK i%QY@4ɹhhT 5+T<%M3yUll,iW<:\p1uV~ZXnXI~j\&(pup<#b<#nZCU XB2rܱj˖v(7^r8vRO054TyLƲ,DFWi" ;A"UvڃiZh4(XI{a(2Yd=UG-PkĻ$8>I?y;yOc k$zu1$ _½tރ>JQhx+BijD2Z.1~p?iH|Q#j]JKk;/S:Q%zX s_"DAD\h3-%= !DHI*W ETm21cdEUFt/ ֒m㍍<5%8jjBV;<1U<ޑsk_G:u>locd+n_Qؽ0pYrG'5qRbeEw_16lBp`[lRb6VEh25'5ʌM+0 ('Ê\W/ 7 Mu,B掙Hg﹔(Ymy{Gqv_媮a2f0șD @$EHYW>;wc핵ww۳dK J%ْI9it?z0Hcߛ7og$?S޵!2ǯ6m;@m`r6RzKe'o\PW=coG?ʏ~wMP=Ea ԁ.^#+s^XozbRQ"|p_9>;Gco9I BNۂ !vn44*FCgg0W]""b+%6 dj;#RAG/ʐ9=ywo#4 8ۺ2'su/`~8kG=y_X37->#Z=tKI-pH)IM M%RKo"%ze} I3k/gϝcll0s Ew086=!sӸ"2'ϢMM!^.b$o'jSQ;-^Y|Q7B28MZO+Ue+NsP=u5W$+T2 Rg<#д&,Ea|'C*SmBСc<֬`M XE6wjH QU7- RC7L }C4uJMAqoJœO>mY闾g?Ox䑟'| ޽{9&0y# %AG~[=w =h졇ޗDJ͠ETfG]kGfѴ4]<&Ƙbnv i6[ ܹ֯sͳs.Bb?mxDQ% زy}9^`hUWavnCkj I҉ mќ7RMCmPR$IB$FSW"2 IJ(~t6bGNLgt{K|N,Sc|PyO,E= UUvs*#2YMӰmd< EE,("}\nC{א$@I%I7kć_Dݳ]DZ3*iLN L:flQ.I֥qz IdJ5ׂi%&na4Q/Ot 'Iy7zxw(Wwhs(]d3dWϪr^~묝cU4[jCIY&ޏxx!%-QP*g0@cq3'()BSzC?KFWvj/vlc- T9% Q K%$)ftY!hq`ʡs~ bx{} "vYW*8z q!"BW9X@" C'jT*&Mc:% _v @_J8Pp+TRR#Un 䥂X@$q|PAHyB?v\}vMfpZHLR.e*qD^òBDcV P6F~!SҊ)K4p(廑 Vod~nq hA{=l6?~~g~OobCr/J{/_Srp[5 $ަ5c$$FBTԯVMSUPxxcT?EIJYo9uIA3TU\jf(X~co^}Qysl=Z iDF,&m[dLRIc^v IDATc0.]q||[!I)L/gRJdry4A7_dX"VHB1| 0Q [Q \Li.gS;MNq}) PT a$9?),3krپ .= r& =KGQU nN=Ey>:G^FYZ$N%[1~ʠ-q25kt[k#ÃX3Ͼ /<Ǯ]{03n,jR18Mk Mȣ1G)Rf*Xc=w'O~[-Μ>PrܒnT*(av!鮻o53mz}v/݋C=$*{w:ͷ}_&%Utt4 iyR~ tdY#WX%t6Po5$iڇ&/^}QD Uiۼٴen'?Igϝczql{[}CWM |Y kI$VmY@Su'\`fA* ! sx&a $xG>öLUgQ4L eJ҄0ky+)$#BJcix"(l13=Hr6o^3}"{vjsLJ[=eexн́(NnrhڄÜ:R,"%~07{]7o&]i*oЬA U! 3F7BHmqB!,nuVڢI^cVU ]`:TC UXZj ;W4GE ۓd:YH-Z8:V4ڮ{prK.T277G'y .dsXv6j#i&2Fի*3hM09yի_0.RBZåADRmT.9HhE{i\(,Jx}eQ) ,J>߽_:O<ۦZkWxBto &!Rf$m.{ S*}r[1.E1bzc1j&? ^[_k |3~.Yj e|a z9=ClG n>D8jQ7ez5ECCHF:;ME:h秡mR$_pWӒo~@E666ɈzI . BlRA5uE6n#Txgٵg;r8Q7gvՀO[Zs,%+lߪFȅ*'7x6IA<ϡ'M(6.An:J+ER%]! ;MGUڞORʘL%/0?mx}UMAJ; VLOR꿺3Nb4vu=K&r$֯#Jl#ǎBZO<144Ī|+?8z(33s +hDF`:WS s/(۷oeh6[KRv(Cp)Z4r9F+O4bŅ98E<>u-WMW>V;dxpu) ! a B>M X5jk/jP=iJ&Q#tt: Cq{8:ƉwmB)]:7\_5]Cߋ/L XJD-SX"E$.YK:Le[O#{ $*yy=Y胝w>w<0rWXdI{dTA1WUj*@7û~s?z5' Ij4Ä9vN3')$2Z"DR.C \sZ 0xCDF"?MS2nrp[ !Ϡ![ nHA'U.(KoÑ#Gg-l[7f88a°k)ADyxxPM[L$'vedmBȑ)"05sM҄(HҔZI 罨6ljLz3 "z̞#,d@h TA'ht W\ 3N]}<]ɬC5U2jDz&G\37ħdzjK52y6-v Hñ|7, tT$AAUJ#xPT4D*2cA-61@ SlDȣg@DkגL4^DB+wG,3?>2%ܶ&t!s*k=(ǪT78ź&p.%t**ʒ2ꓶ:X_isUOknyԶ]Ϣ2ᅤ%knm;~flœ1 ERzQ+Րvd&xNjv&GETfIUdi}\H ygf*_;6bAf+7$:_w^/a퀳1v3u:TQi9 VpI7Xa3_~?O<1!ba>=((jb`QV gGVC='S·XHIMh詊 xsFiwI>K_`O$i8U ^Sy:9ѐ$Y`߱ȾxI0*я /yTѐ a׆ z"Iyht6wy'8H"A|kɓ4%*7ȧ Ҕ'K~؎m۶~¯_Vqza4nfl@&2LsM1M'MbdsD48fvv>'ϹX};&۬PPW-~395cc$IBP0L8))% _ASI!b;Zm ҋ(!(>-[A:4[ܹwG`|S]ID-ev(ߐR^ Ee 3Oid$Q #R?] eJ:;KAi^G88suDu92Q$Ff ߾bTUI['ϑjN.K90`%w ^|%Ld͚u^6#}|#h7IDQncn::i{mN ݴ+$QDAn9 5 WxR^RƦ`Y*!ga | nD&ɯ_ 2}E$#0`!Y( SɩfH#RYp˺x$7ߵqkN&Y$^!N?B㳰P%W,^.ӄ8 HSIcq|i\6C[_V:ayZn+!T-zNbxz:!j6O#6c#ԧ>œO?ŗe>s}WnQ6ab6f43tq1Ymz衇Sx_^7 D$2q`HS)Є"4zN#.YُZiވ I!7P^$ iSh;0pi{TG߂{~cM{$,q>Kkf"7cL;&p@ I,c"BZ*S"XR9zajj$N0ueH[MR ڋL؉3tZ Vf qIo׽q$ 4 \?27?K&ԛ TT2CJc;8fw vf|&{2#"bJ23 d*4Z .M~zL l'h BW%%.2|6Ϯ;/[ h9s ~&vϯb}{ﻗfJ;u32 y7{ߔR^gBmIDڍ@!}͑T.yP0ijȨR[<:BRM*J˃4JۄɍՔbX}E$@e&+$K*dHZhvɻST]\&9G8DZW7ϨFZ 9wv։I23k?'!Є Lˡըc "04)ǿKΛk6yV ?!J0inKJ,θ:mnmp2E5T:/<?OPgQ4 ESIB&kV畟`pr!:ܐ\c86֧\6# 9S|%5u`W{ .}rvg;{ҪLof@7-rd Mǩ z]wݔ69?&N%:yC!bjs 5 Ridi7k\8}. =~0!lܖRјv\?f ̑/i5DaD!P2 qU.)+m|pfS""ZAz㱀$%-nXg~gsY>O?u- AUlah.\"5bЄt|7C=ԜHbHHEAVdp1ÄQ-둆Av J7UKNRFSw_93PE޽ƻTP0б3Uy 5?@+*d2W SRMC0824TBl'#I2F*n*b_nn6J_Nz49Ԓ}4Lzme]GV(8XϴĚJ<ϱqFΝ;Gv"5( /YXb;PTf@NLJLSO@>  `d%)LV@ NH;HrYw“>􉉗/x%H\M W\]&Hkچ FG +4 :mOqQTo9|?aժ=, 2@@JK5_n@izpX06f6!Mt$bvI8Mv7?H)[4ͷR"Ufg0UUEt4X3svx"LfVTSF2! IDATԅYlbnq۶n'qnzP9u$}vRv%5ew#1L7_@!f +Z?)L_s+Eei2??ˋ?*w(*jUUqm1>ǎ[`3B0 mz);8MHM j5B4Ih4 $EWu 4J0 iH9DYY"6ltE s*\D59CzEu7Vd #P4/~侀{xg@( vL>\C \^%dcޠWdtfΜ$I$ Uf &bhֽ 0 ٽ+DWW[lUYЬE>_`zjJ!BN{;a)Ӊ}\EVc,{ $DRt,@! 3?S;w148\.˞={ihw3(f[Q` z=C=k$*5T,aQ)%l 8aVT%lД۲l]e"(T0ewX,kR%L a<<:;HfY@ h.ёM?o| O=7UZB`A I>ܭ nj)W? |~aIG5 BnlOcZ&_3KPP͖a(,^c6apv6N" coENv"busg/9]ܬBc_G-6 m6xBTE2e_ ZڵQ@oYl=秈G@5"Ͽix47e2lW;H.Wb7\MuH}*i R )iJ>TRR aI|1*|OӱJ?tж}˺D:qr4|_ jygpE~?pS4-/M43w&AC;~^ EqQM=H:X4&QcLm ю˄UCB@S!nՉUX dNzk6QgSK7Pe=72e?-.a Ep^bhݨ͵Kl up8v:AQTL+nS2|Yɩ*ahԯ *Iuץ0KxL'_jy4]+UFhkgh6:|[.+R¤h tPY")n$OiWѬ>VZŅ c^J2ׯgkσ/V`.^,b+ GVC=̐A )oo[Ŵ6ԣ]#C$4VvAEG|:[6 ?1\N>@]D A"IF\.!>گwl^dsP"d!]`̓K%QyqJ/E;s!6m܄$e s#_fd'фKNiw~@ToyI8 ۶i4[0M+k0kfL84./)8"HB >j:+Tw~%g؎Sq1VB__WM|ꓟ_i {Cn߾ӲQL-ھ1;3<=܏g] 0L$iv8S_ݍz%H)Iל9B@Jsq4]{`}:;;9b,E" `dUvVR\*],ٲUʴ%R6- )4- A,l3;N9t'|bwq[sN }{}2I+͗%VVۡTT>b-⠃wGHs&=a!\?Y.c" Z?H0lÑ:WCɨ&صNe2TVi5,Ր*^FA[ nQ,S$D 9vQ蓰T6J i8!ܱ;;DaHeg7tmxWu2)((Z-Fn DD#Dye~YG @y4<]W,+<%"/ 9wSiqDԔ$.5(ѨDu芇B&mv4amK(ۦ]9/ql7CUTL2 em*vg][|`Ьى)NzM{5be*ϟld..3"J&)/J" +οݱT*fJRͷqTbیMô²&LJ+I^s.zO>>ccou/\>i?Gvm&9[b[l:~" ӡ]|kr<=-| qN"ҧek IR#:\|/%"/m8mI졻f9NW‘#G?#,DȨ߈v %%ec'DKn MUcw z.JYffX.ӍL,q._%eKEY_]rY r mαvv ݐK[9W7]EXW|oD+$^ + ($"Ԉ!=8QD(M4" NU(EJ{[?_ap`}'5oD?_<0o_۶ٷw?d0;wv=vOFdPT RPF8xëD FkLv鶻$U$R7{=yE6;%ɲe`ъ,f[^"{@.MtT⣁J߾Gh͝'3qA< ؗ&mFwbyeמ]4W.4(&R4dKvvLm'=Vt3::<#dyN t9>A(Ӯ0ǹ?Vf7y䑏gbZw 3?H(,UμxK97㢼2!w'* JTU'. 4}鵚EI,]'V"ܴB+~9>įb?(b9?|hhmfq- .%U l'jN@ H MX\(l9}`04qr'?$K ٹm/h*q?c "&MB߿??y!NT$C 42 G]ʣtV t*eD:BSD62wVۯLq툔1q:evMF/eiE#PI&zSybM\_iRP-Jۿ|*)VQp4dL6}ͶIBՙ+vfWIs "Tʥ0ނP ة,cQw&Ja (FTBgT~H E:{RnfUCSx$[{a|E"dCTr--ka:˭VG-b->4D ӓ0u?ol5f h݈S$^S4<;4  dUTI]X^%m: 6lR^ h~vpuS 'f Mw1EVm_{v4ݤp Ui%`` YAoϩ}!4]{cHIXJ(b_ w8KЯݔxQHydb0(B!Βbt.ʹEM![s)*k懀 Bť^+HZF .36>3<ç>/>bmٟ9#cٳ_x$kgQTI.s?:" tO*?u[<8Qq҇2f\#JUE0~CWU ,s;_,W[C })(tdt]b@q&u)i6fX[~O=KҨ s4CJgXk䳗FlPW\S$!a dLrR n3pВy H:͕eCW /るh)v"c炽? C* znscx~Ksi =W@Ajfذz!rw$c(XnBAɆeBN6AZ͑1x`|t72fMemƲu+C/tnf"f5@nw|,w۬zp]2pbd%Vn,/mJ EDŽan\;N$!D=qm;Ie)(G#X™c( ]tCZ"Űj4aG OHD9z_G&.jkYf3:4DRD`j[b[l nW66z\\~_(f[v.X"ѴF" Bhя7RSLlD?~5#&zD4B(XWOa`f$4hh)PPK> )) dDz=rq]G=!ITTDoN)'+އBҍIYF:8"\nǷ7<}O=++k ff)(`?H&t{F ;+ŰГTk]oo}79G{>f ^F Uw|r14ZsX-cY J8NVsLT!*f:'_ʰ &XZʛ'R*7 i[/.nYVٵk7"85}o$C-ڍ~}*K/0[lv~=C#ٳsߦmw;&:1e#BIJr]fnlSU ;#ai5,V[`zuz$b|#-l6(Khkxo ̐^Zҍj %y?k]ȗJ$Vu=ʃe:}iJqp= thZ^PTv !Qt(|{uTU N_ЄNB?u\(#+秗)o8( Ʋ,"#oDL >b.fdn[|Ԉ㘯|+x~_s97~"۲{B"!nd8E*c-WPI ,5< &J aĹ9l䏞@J'' "C U lcT RRػo K+=B^rmc%@(:+Q%^>|4Y|aT_VO)RJGuЅfI08mo]u5H*Bk~~iV+t]P0qӣV7ʧÀF"db>Uc0>AНbFPƫoϧyìTxQH$oٳNIrkf.k@?՛ws* bYTnEu)Aa byU-mhbyU[2:"fyo#t!~"4Kcͯ]@ =PTODi 2yG߾qz>)q2i] T=!󨞙4]Oqtnī|0[]t|G"u3E!!B(_*D7WYy7qLmm *KZ.tK)p.0 5D!O>70u{Hk?s.zs{]QLhsw\ߙG=iFϞ$c-}getöM y"g爄 JQ,qL$Y/!o*d3&!X]%~oGv݌aLgYYLLp#*4ƊByDx;GTwJ:aY]| X[l?D !xx`uu񔀫W(V \C_ :D[OEaRAYh8=1:tQ.!GF T B '^9mPo7U(XrLf7BM&: nګ/1<28R_L@hQLEAH2e=>N ;31 T|@2baanLiؖAc}1RJI,cjffγmbRi,7TU@`fqIP|[&C?Nfjb(?hx9Bg9}f2NO>Vxd2wb|t/nw*W"%DoD6]'RP(Lp.bA}ŵiVrCiC\J e"%Zkf2c?n9U,sҝ#hEaQ*oU]2ʮ=L) ag3Gm5a/#&Kv 0TN>?8w^+Sf"AD؃eXR=sIF[\.Xw*CG~n$pCs..OCAb f\P`1R(6V)\䵟I8QucQQo7qcHϛ8Z8*2u0 4b6O6D@U#)\>56O&Ҕ88Kb AMSnoV Ahŏ301d؍_sˊqAIedOvf HE|L䁱^BL@:Wب)EJQJF|td>a-i=~]ף4aRPPbun,!ɼz q7+,?eʉj*Xz[Mvb-@Y͘k%E.+ؖJjsw޼{ݢ `9C}Gf":"" á_1bgr`bM=t',dC0BQy &U'h=jokY$wr,A$EL'(=R * (/2@ @"/ U챋 qW~#̔P4ځϚסtt]s/6kF11~R4lƬKe@rm H $4|vLR*1u( i,KLy>r {vkQ oL5$1\i6[2ƶsYB#[Q) .٣/JNe籓6(\&gOeU:v8q1tMY q'gVUT]e}TWWy4p?G?$"Vnhh(K{)  $"|e&Ie,U5ܨEguH ";$ʗJu覸(R:HY&M& #٣0W.A'@ klУi5W+'FE!#j5H?Ev8K'o}g PhWgm}{ϾwX+H ;RE Eת7鳌>kjwY:}y>iVk{atHEXJH)BǒX +sUk4jnj߱a~ߤk%B( \3!D3Lr#X^Ic~2td164B&/kB*(7:aQN(snD"D}h"13M"_@5omC0dkFB`:js4-,Ӹ".BQ$R_]A7p+n8NtH?]VE "ϥY_#++BTm*bekX^^&hC$+ P KKD0&Lވ-'-g<}qn@@*G^>'7|D~7j) }K[F~sD鈮'VPhAh\/ hNZo!E">6:CJCuqz.ѥ$zaPP*F"ɓM2ڏ?͘-P1$#|M{NDQ1 {膅nhA4[-|?5/8헇Lfȍ0wyr#u}FiI <]ޤ'Lhdc'O6j5"ՕU'RU|i! g3Y s/Lq:-+ lby,nD2He UŲ3302VVN^P2,ǧo謼L0qk蓫I$rضp8OrV^b-˖P!!8Bg@&UJ! Ȥ_%jid5@` Twz3A01Fh׸;/v>;>=c䆊|ⳟG8u9w{/WtZAw x̋C]? +) )/`A['FhPeTG51H! C\G mqTI&m0Zώm qHrɩi&,.vlC Bd{7}H DTC3}06]c;AIJGs Vy_U0Si,ۭ͠'hM@`hu=~ǟMC1jBv0On&Tj$ $mbNKs8mC e[q€iDŒ؏ZS{If,]K8!? 8{'o3U]] ^:5OORt4+Af|;kR=&}ǢP0TtLED,tCb ,Mcd E.?/PU3H #i(BJByt6s/ѬU=2wNO34t:y=Z"Őbt*8ŔI$MRi*w9dwfYX%&!j:ra?Mb-x_% H\ G/w;+U T/dhUEf,Qy8Rev:8Oݖ&!Qܾs',:.bXM  /| ${_}e{ DkQQT<#ttMLɓ,.#u1N"eBR!Cej&f2Ofa<d r )c:&`]C]gs*7{Syi'e빤*#L/H_Aq-Js'i>z'/~$~Lunz,n޽T IcxJ7hW]EןuLa( ^a +nVвIR,s/?D*tTf̣+;αR|39ˏ؏NH k8n}7a!tDqrM+nNdzNBy)ǥרgX89Msu]Ckkz9f}=ɗ^ KwyŬ?Nf|;83VW~E^7.sGRr,=^_ mbq4wO uyܣiBʴhQ^܏BUsk+aJcui&No>t!xtgppp#{?->4md&ץ4"XsBN7CX}]a[Zg0^qBfs {) [(X8w7%_.SO$ۧyB#a!X86q CC7͐j4\;1AUbK%|{/ ipPkZ S{Y^IMF xgď{b-xʨl#|Nutn=/yb`ISshtsOL0 tE'DCxۅ@ T ׶bɑx,/333 i 3s j‚R7^t&A"^$Y#TںT>AkS?sؖɧ{(TGI ݁.Lv#MӉ|I6=^!}ܸC:̹t~nUCS o(3\"!n/gf,/ KvmIػwe\J$HK2jab6d}TKHI2K بm_TBs/bh9>aE!_'*R J,vhfAxAD"&g&I|Hjn֨.h_DJV=f M׋-x4 kbBD*\JPb5)@neD2I$l3D7kuR;=N3b9iGb∧^חww'4-?%>MatlLY"?f\]=Ear){ȍZ]]0f^{)jKK϶;:7G8SOwxm(\ qLE7 0utmSΟemf2cty{72{=/EϡwC#4L0iΜ~Gy;S05jXǻ쀕IDU4Wu Xkdi놉im iؙĂzkNy)aHӥ۪a֪J74 MB_u-cSs::I͑3 雷%4 ;"p#jg`Ir<)V^Ȩb-Ic+r+WuMt@ 踷?Rzw 6i u`,Wg|5 °3`+SO=Ş{?϶Ix՗xz9ZF^}SH4Z&a3J `k DPJ" ƒ*%]:|'RV :!bG!Au﬌BLcJK'E(4c I q@T:I&{`lt^zVI4ãEGe62 E{ nR]g ^U2qeIZE*ӯsߡ/n*Iժ1={+{HD&eZw1|ÐVM*(+UH7PZunG_P5].@נ@>E*gN_yT]Oa8z_ؙe0.ڥ+(ֹTj:v67^1%N"b~$^;Eiv҃eG1u+5vw{,Ϝ'74ik3uY>OHkUvw^ۧ8|lȡ~/'odJ%ڕg_{nAR!iۜ;*F{Bmv]7 `=.8PDz,~ryR"EHI5&}n,[28:잺d s19E3GKWo#I\Z e|ථg>BQImVѮ7U3Pi'ZuI0ftƵl 7 $"кd)5#yB n'<Χ:4StqnDt:(_x&d$Q#p1^}UBT_2? f.ˑHT]c8ބAJ S";;ّz_Q,[gtg066؉4Ͽ?&"DndLv)(JAS5 ~dĉ,3g>AN:;+12?(Q jr!o^V/Fyɤeu]$(Ъd;2Z#FN}gV]7>Br#;\{S +e#-R! jF/E[ $n|ZkQ=ԎLNL^ouT+o3}%#iG˨AR-f,,&Q $$n ٓ:]HIa0#TU*ϒ8x7;N"Ni'wYzg*=< XZH E 5#K_B(hWm9B$LkY=sĢ;,Cu)"ZkU c9GZMV#;4HG{ }g}{o H,kƲdْX5f\IRjK&q2qL<)۩ؓXKFwow_~qI@U =}|;y%&ロt;ϱrURѓ;7FפF6qR:biwt, ܄;#&;/S;w"^ ŹvlOܔ(h 3}c@"I˴ ƶO24>]y)!ca9F)uT3mkE_R0mtCtLhxvj}bB6ðl^;MRw^x.5 ڎ7\[پ~!Dэ 1C"9]ѪKL+LnE֤YHߩaĦsi"dn~T cl[l[yG FVMh)) OBpJ.i~:tnX)Фo9;$*bYZ}[J$C^@%ZtQd*M.cN~8;uc9R 7J7"0qxaRg, Fzߴ'>}ލiUOS|Ni[e%l;c6]$*l.|hJ!a@1_->"5 ݎ>"VE2,WS[{^رsg=yQ^|%[^[V@qj6__1;}]n3)N(A\I |xkcJf{qxMZ+10>JitFp$I(4Y8AШ} 4;0uNIlɸ"( 8!X%t4H>]&k3Iۥ9)0lrRr,T %R I6Ь-c[&Vt&pl[$ƒS /uػwߦbBeY,vn0=+b-*ggݿW_V`W3 IJjЗg \߻%p$Kv쾵T"E ]zܷRZ$Vu"!R& ]*Q0n@骖D ܦX.Kqҟ~W C LLN[;LO'߁.3!iR_퐭ٛ%,eb\s+q-QZ穂8IwNN?%4J^eǶIzO^C/<c׮ݜ8MN3^ /aH҇8 'ͳ #MVGd; _Q\Ǽ8Gr>n?..+H+{vsGi>xV a֛D#^e"E.8) ^k1q) 刧J xՋBf{mMҳ_:^l%/+w'` 3 .NvMјaR޳vJkLӴo<^ayt]l122!di'>|*0(8pl6BJբmw8AΜ=w~Q `zzS; }Ǐ<@tp[ˤǟi4|muͷR nk_ۍׇ\-8$8yUVvR啣3{p \7)&&P6^{v6u2R 4CȈRayJ]t /40׮:%%tK @Lu{09?G&%#c0R8G//8:=K,bFCPBtaOb;26?5On?~EErl'.ZWL"kD)hApZiY:tz]5R taJ/ߡf)5@Hs2#9wE۷eP]޾JC|x:̞>AXcKf8 ЌfM :..llq+^ŰXVfG9+Mpm8BK 2SFh!F&ЋN:ޮ>,i3s(cA,-C4HVpxWWhOLz\u5?O$$8~Dr,v{ J=8菫Cۑ<`=曞$qBc@ vm^ 0`6(Ao"?sa:XEqN61HLUܷ;,l-b-*Tw>FGF9s4;w7+T4f ӣꖆ(B!Q.?}+EHÚ8F!GV+d}~K(E't[1Y&v2)J$qL{&ZiG:~+Qר G )УZS*1 ||_y 3FPA f˄a̙Yp F+8vDZ˂\FFuJ33l6 Cð5:]8kg^#Nt1( </c|{{17@Eu./3<4{9Ɔ*V@﮲|Yzy=& D7j[uHDtM;XZлJmPuQPx w5ZJsu v`$BJ2| #oGV1H!c#ϡ}+td>8n"&Jj$V H$`|(+-]p`<=ۊ$a^<ŕ:nlhaiX#=4km(l81iJ.I#uTmInBtMa&RJ4V8yr!V% mux~_+B_[6CMCJ}Z~?qɧ9F~Z4-A8S?~v-];1:8_z:l0WVǷz<O#7?AM1VOa͒ ԕvj)%R@ %i =  Rxs)o1AEwJ\u2u@z*!$CzN_nF6!IL8$ڙΟ>t#0M_>F00MRHEB,Π]Y'iBs.ҙ4gϜQ%&* mcyC7H\ER*Rb),! IF4=fШ x2a0Z}q$Jb^zIcN0@vZ!mEQgb|h44tahn\ =Vu# YGQOB6MVC>z@KX\eQ($|ci{4~4g޷^3v5?h+J´,r4%J7HGBJ̵ALi*/iy=AqdW=J|F\qY/Wj&+xau0P`qZe I?aځ.g\'3}7+Dkɩ7^J)(󺮑,6f ҸMbe](hjd% U]F1_ӷ| }~0$ud\I 3,Uk+VH}SG7VaYL)qtH׎)c$q~U5&ĸA_K(2gw#\㘌.P0VLI'h"6NR'@x6X^]"ϓ5<Nj9eY $˳/1z}Bvw#Eb-x*gNMm scm~XBgFy䩘wuZ>"O1epБ.%Z򘕮VrzN/~Q̵'}v?0(rx~HeDx~6_7pߡRčob(E 9ZgkE Vb]Ov fZi8A;aKJ\*OZrR.Wھ Ӡө3`_gsY9[-onOb:E(O~{~&K^滙L휜~m?F0)u4 7JL%Vn)KIb3yF |pPtA$=-o h(hXz54 _ I[lKs/QoQ#5I*cY^evnѩ˞}r%Q} CDzL@vRIPȕys{.`5z'c{7E&y+Ma8j \}TQi=3|ysS0LϞIFu-b-n H3|3+e\|n[߈mI$$Az$v!!DU}q /#RzYD%W(0{&?}gZ0-TM7.~I(ssIX)DW5k'ommY go~{6Y<) ߽6DnF~LPb,'EdET8hAH3YbCbq|:.z$dRiX ,=N9MZСC?~% }uQ*iX\XXhuFNJ IDAT ]Wx7RR|*(nҋ-ߗpU {v}{XAr.ᫍKХA0!!‰1Awq$1LaZ}54]ǰS MKlKЅbW?e2m2 B!aϿzj#,CcTG-ߧ dm#S&*NnfZR'u/-$)ߓIǴWVhj"ISl.^Wm|O B_c1νa#eʻvW/TL{_$ }OO'ȔO^L1A`ݶo/Xj 5Ih/_ou|a'$pbkMrq,J#H|(!Q*.oS+[!5R AұkE)xժM(c6!iyC$Jw6>0@EM#rػcӳ=Ǯ~e~(Npvt.^ןjN2{(5) vVX\Z~@Zi}tN{+,3׏ hmbQ)q;:&n#|xgyXuC]YcR@u-r-b[;R<\i 凩4;Dt" ZA%o> \ {C>vW][guG\\IMDH,eJPB]' 4F 4*d2J%kg|U9i"PV~RXI!.jÖ)ٗ@%]ص; Gȝw~r#.SnFeT5ZLlG%W\ZAehՕUdyVk :>Y vJjC)t.K+k6+P Da@&e2k'_Mvoi|{wܷ]R6ʍ0ޘ'@n( UfoKnOeǸ{Hmj T9h ^>+86]F%"L7)vj=Ґ.Zh4ZWB\y@,8b~y1D Y:N(i5~68lrEM'X8AIHt*&4)__*$R7*kl,]HerO~̞9ɩ|;vSa(:|[GqKOQޟYN|] 3{8?/j5 ü7 X03 E+~P bhEntQ=u-U^MJg}6 MBJhnu ~ߪkUo Ӷ"\ܹcM`&)FH4,͐svQid'bN f Pѕ1<ci06~s}ggXhϒdC"5ZKd;R4H 2 iVJM5M\B WN2\{ ]On[l[rޑB;FA'!N)WB6%5䔱_PsJo"ϯrR"m"qҴo'!5Gݷ؉$C|+\=;s,Kx ]h$7[1X$BQ +eBJdoQrE6*%!o)E͋X/d y]'t.N,.R*Օe/~<'{7ntFËB4)Rs Уn"zZAt%&g162F"r -c!$9VWWH2$q8rc|_}]~af9779ZvsJ4 Ba0p{=C)$nT|=aQȗAh躁8E̽->oOJ\Go_'RKu^?DQLUE3V)E"%FZj0002wanNlTw] <.l&)5 vpm+ 豆<b#i1ǬD n  QIkm'UHCxCjA9:wsBR$$yirABZeplFc3?qsG9~89o.Us/gO1{(_(죄~@F|w|M>KiC(_%nQLх'n0 $kS66A53+p܋Mo#1RKO DAVr}k'#&;/S?w;n{kD74VVZRд"kמ@& .Z\'JFz=(/Qcʫ ѱ cWo܎tu`hnt?qB1|BʜB8fǮ+In݈xQ>uݪNEheˤ}]3ii f.TIm*N>KسM=iʃHMcՈm<4r+b-e#J%9$4P??77qRLA7jGc8}reR2\䍋R8C0yn]PCX~9b:7HHᐐy/928 t"iKQQ,X^^hP*}IrynFNBੈ%_w3~"X 25!țS! 3?]{9w"_2?7}8BB^"Ib[wBIAA׽rGmu|.<Be׶z"AӴtsӬVkkIJ Jh6T*۷< j<,/G|w2.q*~^f@M-k7[t >5Z%+=n1 s|~N|CEZ'^*uE,oSۥ٩]'RaHm,v\㘕2Wf(u7OtEPL@ׯk7IwkOʹ._7 lfAd$&lD|~I!yMl'YXlgyC1F#Y LF̤IӘ>XGjux=N=C\]殑ANw"t~m;\|>9:&=1}8(KSG8Ot:Gx?ůy==N{i_I[O>oMR"-IxuY.\~H&_ejہX/T'izV./dxGN+Wc/ǰ %R?;t)yaH؎an0F2s3p}I^y z1@?QNv{yH7WEy[<2yFB:B#,C'bX0<6uUG@a~nR> ^ikx2!y 5f n~MZU,$Fs]Xa,{f3R9J]c/qρCBJ27=FJnzoOo-b-~qotKW=&y׫ؿOqR C7uFѣGB裏+4S%o[J&1;vEDl!4#gHH7y;kNu{6I$A]#\B"ЅCu $V7Y$^ |XZ^gA >c6v megHmuL~N9:—e_}ŮlyzQ…VMgΔ+R 5I鳼! \!N8"c0qhaV8n~a$IBRY24I$&PKlV3}l߽"E:qUI8il۶ YYYa۶Ilbر_x/~˴-F7SwL`\!a&B)C^nx iIz()2bJnBUp`xyv(|U5Q`sC&T?(YCP Bb\1(y5z8"C vS$R M<~6/UW9{Y%l;LwXXf"I1y!:+\xe[m^W,?xQ_^qvbeReS.rO6w][;"$G7p ]w`&Eg'B:B@TY=Opz0Kn>푚E'TgǽoRM(K ЂL&ZzRo.fCf–Hź!mMJO(6)1+׃@j۷IA}u0]w5 {݅GXIrдHBz&wtIG$I- !~XE9|bG nZm`(Nf UXX],衅;ĆKB!2ͽd) :;;ز-rQi~v_F53lCkk={bph4 ɜ&VHcJq⑕IR)&&eKCm!EhdW$)M0KD +51KEUJ)#:;W iS%{o3䳒-[Fٺ|?σ;};߹$yso@8i+\JRj3$Jt@U˄G'Lt,?BH3U@Y0пjynTGT 3. eSlx ܧ .HsAYe,@Afwӻ\E4Xi&{BRqL2KO KMӎ.^*s$Vh"j500@"Co:$ #V&qP`ڳPI8T+3Ң{ aRtvu=CJ Lݥ iqݷ25;EDQgETG%fb Tks$!nSgrC֊L*C_oĬIyFM(>/Nشӓ;3tw/~]b:!A4Z5:zFӴ:/ŪK8+zEGjIƪ5HTLF5 IDAT-v>p_jj*3SeoPLrS];xF6:N2;NxDqBK֨fiSaX:!T-*ф:i|QTؼ:v>bf= v%=PI C i,SYo5JMIo7bx#ux^eQըx̡~+r8b:MoGB%45Y>w@Q xxav€Z1]SL}8wBP!LE4Pix1VDAB$j4nGCQKqy , l~&qtD'xO-νh" Fcϕ۾.NAS:ߏå'TkydT#UGGBӤjYBMi' .lOLT.cwC##lC3S „U( 6N|J!h4Iv܁(vA=93_7$P<)b(C8Cwϑ _$%R"#*VHL6LL: B[(e)Rh[nӷK8C+r\GtS,;/cX2Ch*4*j8>4B\2V]^|W0bҰ0E SRhS.#&ma%H2ce2ǘj,T(|#ٙ~a$lYD$x YYB(˲QJjnRg=^0+f(h54ke( 243MgDiHZPS m|GMkN|zW{__DHq}kL: ..-,Xs@ I.YdzzB@oôn<q|( cy]Y7O 4ݝ\u39miv#i'/>7q ϢP!EGWOfb;3[4:C33ټe#z(Ъ̪54i}+811NLσ\U+N٪ZmULNg0iqBGi%}zxs_&Meg a`i 'ёȐ̓ERz45g-Yn2>6 zIJ3STG&I&vJ cvj Y)cB B #LlǦ$7$qJbX:$v yb|C/8<}3M|+[/SbOclz)$T2:1Ƀhy&#V =4yN/nNΰN~v{. ,ކw7[~}fSc $L:e e, '_b5G /9}J$c.l鶞lEc/;! L![HZ-~O C5qHVV,l#D$Aڞ,0PJ(u1XMT$<&M8c;6"B; {kՎ\޾>Lzl#`&e,O7xGF9ݏvsڟ ϯ~p{0Q;w}_Ye{vs;E+9ƅOoi?u2,w?z$Y=Q(8|kdjfffqS<=ӯ؆]pQq2ο$IpV+sܽnW*2"f&g1-#cGL{]\xk 2眵 }){wd|Q7QN13;JKTsp0lQwcQ]EM!۷ Y}.!OͿNat8㴋ܷRs/nLiSORB[ȄJBO_߂[tJ;i2$I2\F$ %J{p\GQUb:6RkG0,!0cd5RGF?J%;J\ZEE|'7AF!)28i:̌Ajn-6Aӊ OhMG}X։o\(f\F[ѝ-k ю\GZɆ#n6SHs<伙A$qiI Of 0Y| C%' !$J!zn[RRXtn; (iaJB|.K1& CIep =hw mThF>ً00 ZӛP`fJ,Gogg/LE{qzPcԴGL,k[Tkض6i>rS8O1q a᯾>ö5).=eHUL7^\sfO^=9jHۿaQ Xo0Ji^V mxaH*W #>o_g?ccci.7M4ىxdc|?ɮvrdul>c ё`.wܺ캟#\WS!i s1_Y>5)$qbT$JkA60\mӪ413-4M@x1FKahit3W@Z.A-= =񩻩N> "\jehDb !0DjՖHi# SBrwLs&A OiEaid9lik"]:BTB$20%i l(85fIALE;9g߻l:#C"A"r:.0q2TMO8J1%HJR(q`g jbgqj&-')ܿZ Tt∑a4j52v;:rRm(R폨8nH43dH0Qg7ߙ3E2;OTj5I jS.QЬLDZ^سg7gЇ>{^"ͮv񮷽]7='W#+;g?qk߷~?}?׭jWFH0AB"QcTk(!uI=\a -TcȬ^!B./F6c % "S OoB cXt7%%aa90iD-R"L0S" Ca`C0 bqcol5)KQDzɦ2$Sw9=z1&Zjj:ټv#츗nz{]wir+VjRYb +ca@wo'O,яjm8.e<Ձ[fÆ?7z60 ^oЦ-dJvmV Mc8&I!2QD1YshViE01KZjO SbPӚLS<<"6RTtEƉM'E)WZ=@ L1IGM,80EkjIqΤi<2KT*J=I54LNWRJ[Em9l<,%:BӳI$ZM!='[yuYJ118 v@مGYm[{7*FcH feɵʧ5?!N8%WkO֕\i#5jvK>>^~PohM;|CRJ̻4!]Y̓GA|>Q,_JK/Mqn/l_C/&3w_O_~ÿ́|e) rYgA)-zky奣/Y~7@yy 6:6ys?Z9X;K/?%嚳r| _m]n"XKm[?,tϖ;OTF~8N*uȽXn8quo|=tzzzO;Ͽ깈{ ?0_y; ׾x矿]ˮu7#8X0>up28HNm#B)*D==I\F拸T)E$X y[I>QcL*t֊$Q$qĉĭZض]`lszaaH)a_D"d*n{/R? \wv$Z,0lir8F4ibXҧ\ ”`^˦Yvm} g[O"Q 耤F5LϙDQDyvvHgݷ/Ng㇟!+V`dz+[6o!Jb:mq~T6p]wvNc6Y S8Ĵ2ll8 NJy><ލ̖P:ph45lΩ\5ˤ g\,bϞ{ӯ+(s00BQ*$c~'t n"0W\|-Y(&x>:IJD2I)gzy)%"JQt`EB%b|^&Vx1uwr7ߋߘ&۳饃|)Ocl'Z%'<(4%m`d lƹu8nco+&cI)qF ƃxEEpŦ ?w?3^R{_|n76Dg`#M;> z_E3м&Uy3DT=?s倫i{nzhc!/.ޘf-z&7q7x9y;NM]qKdX?8syڶTX-c w4~*c{HT17AƟ2PiQotC}?яx;I,7%_~!7fgo'!Ae~6cªT0>:xᅫs.ccp ׿ܱ~;LM쭼]7P(v([9t8ƚ??NRqE j4Qx~ a uCids9ZQM4J'0IIp"-˝xX|$x~ ˴ID%Dq$Z-}&E#%)ǞVj&pQӎ91qlmWbV$jt$; $xhy)%ih4ػo/mBo3➻wǪULOcJ/3M}lRc| Vx:^kሺ( O{k, =j ;H+ڏV[|Ԛ{i_Cz 2a: 2YFNvw2m8$N4QI2%[uÑQZ`xL&n$Ju"wm? "8B@iM3Q M>{0M\.N4$Xz 9j= N8NL{TJa{~#dN%1fSXEz39^C@䃔#,㈙rZm9XM4Tt1B F1*Fܥl2;3C߰{|.K.eETdp"3&A.m$Q>ΎNS#xc)|R^B8ӶF4}@\CSi9?%u6.0 ϋi0bՙE <0+# \'V7拄 .M u&5@od N$ U'KA'${F{Fs\vYk,H4i %C.,@h/x)sIR޻fز&${0aU҅> $R,jCJWXy쮻t*Ş"~[ \TZh0- !N03tJCAHam8EZGDAۥ3>bi8EUeTpH*TcJ)&Z.g; _ݏa݊a)4ˣL nJ\4 2V"~ bbZQi! n}jR,hH,6$Mt '1"`Rܔ%&8Y@Z؈It75V1:Ct&;4e4AoMK!~6Y@^ɶ)>6鷿_<2bMŏlyTbxB$Aw=|cFµ\iu L)>sGniGX39,%:2_ 0 NZ\)CK2t$9e1:G MvoN'_j㱢\{v-Kcυھe,y ,7eHVih-p~˿ 4 ZG\ iXI!`@CZ+3i m%l<~D@u,,"[_*֝k^y ?xk^F@ps_6.6X!" -< E\DX MEA85]A49$) AGDVҳ($!C$!jAPB84B U?DA /z/Nly)@KHO] @Dx~ mXh7XPGԛuDaL39̠12|6cSy]l163i^_̗jg=ku?iu]˾}WiÝͭ ÔvpɥO'-%}}}R`H'781|b'=HRjI!``p[-LGb`٫Re^oNOQk)뷰rz;frylr_b$q5JU #[qGi)sף J::t$Yw)[9g/ϯ5WORiu͋8gN#8w?T'/|g#͖N5~K'[cB)SПN[݌~[{$1$Ķ5`tFHehҗwoaNyK_/5/o"k\hRs_O_t)7n^Nxz ӷ?hI~_>GK2|MK._Ϻu(;+6?wq=35=Mm7pyG#z)wu ÐJxg;|>nͬXDZ,8֤3.RJ0"h!%Lͣ.2-O}}{n_=֭o; H nzYD7?py/~X5 bZmo}+\p/{ˎ(WJI64:YG3%2YTe??;]9=1J3`~3T:^B"߭IGojk{/Eg9rg'Xi^;vUMdo-TH<ˆ8;WygdMen=:7oo5r3TՓq:bN?,cK"*:~ Ĵt(H ^{Ubbb/~G?QIvTegg;4͓sfÀ$1`\f"F0GP\`BUQ@]0 *(ͷ;L`>sOWwWu{ HT018Orj2*:2z }B+#َH DDВSf!Ⓛ 6 h4JT3Q Eǰ;.p0тX@ Іj*!61$ 6qTIC%TM'Hܴ+A2'bԚa{^Lo"Ī ļhٴHJHA34L U@&ivQBS5B!4gu] N(&.!?}Uך />_#YTU}v"ݓ:`pUW_i_-G~^>} ؍(9P"̳5$ICDa?vmZ{U*TD|}$ebuQI9Tk8}Ӹ"wwiahf+6Qzu/l$ߗ4;ʲ! I?PXzzdQbP^2hl m!.r38>dfZłW^eM7cWƎظq#cs H2@aHB ea!(2Am$fgyٵ~=D>Ueep%$`1!CUq ,YO<AUQ_Ujv ͆]Ѣ>;o.5kp7cᩧD%jxWObYnͩb*{b.sOv^=zNnoyTlXr&,t.* ܤW~-[Jxٻ:p -ohԺ>Aͅ/sݭ3vne]WCEfyY4 ]% ~$5`YM6~- D Ifaw >G*@b2E8("&m'|QyG{'?hȽ(LX7`4IiFP Vb8g= ҥȣ̼˹⊫8pݼBN;IʕV?ҋ#2P3N+irmȷ~w;K#3gqWһO_,ZsqݵScs(Vg!_|%SObbb.rJCӈF]n\_xvt_DTBԅkHq#tҵ_rec Kò`oq PLeK^kFa tD@M5 $ j"+CȒu&1zNo Cɕ^Ğz<Q$P>֪X8>;E6rjFeLى2|IX5h'u j=3lHWHHސI0jQpvp_ ӄ>qx|anwRZa~r U>4ؔ[q2Ϋ_{AFsFϯ@7-=<y$EK]y|@ŵ>s(vW!" iF(hC]xlPe|oU PװKcagvY({!@S8PoEQp֖ǮnkKIv20(Q֠'.9} q !m멩 R/j5,R22,[Nw'c9eļo>{S2ͣݸa5j#2Q!.r"0qKr"}e;f2y$쥻s݄ahiWOѣ0 P]YEEYwz 1o_&M}E]$+ϗ]N?͎ea߃gՇ6U4NUE5{3uUU9d0vɻ|IM⊋/'#+: s㽼2ϙ)KYY%\p=J^9kUյfGh,uysd ݍbP_=?wFF938ēX?m_xkj5niw  ۯ-NbފOιh|Mt՛FnFzfu5t7 5i}9 hDOY"0 K/\A^a!{ҭ{y7opӝ3ý᾿Zz%ypwؽwqigum5nB}ks慧h$…_E^;Gi~ukظ5^nr ([J>cӷP[]ScpN, dY0 N>,Ff,|yکXvFmy9 7\ NˮO=$ۨa <3onPVU7~ޅkDdS49[82L9 ^{˖S&/sg_3s;<9‚lܴ<,N#y>-yСs}:s.'=Ŵ p}v*FzF6eee)#G &op3ʢ˗/o~ě-% si'3>+nӏѣJKko9U%<3N;4JKK;XŌ3ׯ^/W^y%CLv DG<Y!}kt|".oš%fJpiz |᣸-_&0:Nghyd0:_JSbD~cQ DLvqP@O|g!#q`7`BvY`xW5`n wD9{p*7̐ؗ |cyv޽&ޯ'DMeN1;8y&% RN} Ibb"ChGDqU];pO?P/5E!..A3v ^1q]Ȃի?~<A8|a|'?50z4KGlT(^)ũ8 K(aCJ*VQ$}iD**~C#`3@Pl eVC8zYD$H Y(8.P(6$1Zo&,PLDlbl0Xjew; dpE$)0Bg@^#nU"J+qiwPE&L!59r}? #hYvGԱ)6mFVMSSTQ.l(,$B(ZI¨U'2NH}+ 6G7 X6,_( SFmbs}$AdA ޮywUn~wpHtz.XfDϾ_α@|Z*iFYE%Y;k&ngМxwyb,(<@ÊW7^< ͲI"wd@~"J(6 1p xcCF 6Y"/;n|!\iN}l۲P Ģ>([YJ>=5AC.;˗dYb=Rxe<ɹg_Vrea)c>^֮]qǍgq96znWYr Ģ4&12/CR>^~]̈c n?3YPgL#{d'ٱd zN?_/Mw@ue%w>8NU\αcDƮmާO315,y~)dY[nb'0x(U< H=oN?\ŒAvhlه 3f"+ ggGuwշmY[t_v=my՗[5jY(r+7'cpN۪E 特v.:3c.fq$%z=-"7',fGQ]V;p Yt)sH /#8*.\,\wu|s1xL:?>EQ8묳Xh=|7RRRa;^/˗}܅jFv-3SΘ̢`TT>fN?mAǼ233y'p\|̟?݋ޱlV /qYr7Ƽ ;.$=h/K4(WT߿Ct\w@c]'-HQx_t}:>]վCGkq/`ԨQdffRQQ~Jee%GF9 tu&L|ի7/a9?rUWƂ%L8HWY/|a,,tt$In  SDűhn6 뎙,HO漽ZiMꆆtBT$.~n:uz4ن LaI4Mh-´ ,j_# T߮nVؚ A$A$iIS M2]t¯'_ASV| 6tIŒE aC(w߬A;ɓlb*ZjCXFc D7~3ׇGLUMIIIaѸN|>/^/U5U-i" }>q'S դ7_'t/,¨LY ?:uGz+{ֿX j+p%(~o')1H8BCM )݊nF":zGuM)6QѿD"5iI()DQ$ &[0 zوޟU+7K(> I),iU2b(* Io~; 8 01i^)cQMs ;jN:"Y{ɰ,B)Ņ M}N} {˨kh*IŮsX:ԚcD˲Czc3Y)u_{w 5k1iB,qnJo>0Î/" uھln'A!6CG[y "8.qqm,}}9*\2L0AAehGH[Q7\.7`ґ'r-?iR]?;pQ[SOrr" mfݳdȒМTGdf>=vlgk5Քv—Ep/d7_ײ[e%VU5'35jDlu3j*jqF[3H~ڴҳoC⭫vh߾:yY)Qsֺ~ҼXsL8N^Wٷ_3oPrbB76vOobp>gcL4H˦~fca1ēx'k֮cEQb̪%5Sç1aF?CH 3X*abB"p…;b,nEQy7ۅlFrr=,{-g㮻fү_?>CΛ2 DZrժJUU;Ohz::4ԣ`mEIBZQa`$IBVbs"\.1ax~6m۶q=4_*222߿?_\\Lmm-̟?׳l2ϟϬYm#77FZlڴvmʎ;y0,MӨ*'-5='iue7SQɋKqI|}/^BQvڵkٵkѣOI@[R:v!AM;.Ǭ.2 ?kiE.t<,ۉ_BL `:aZZZS]]f<$y݇K E2{l b+92w\E=ukY20ARqڑXiy=Y;͠BNF, U ӏ%ͩ`W\t{hT Ңؕ $oa0M3cCK,@1":bԆ,I)6,@޹`V4h[C;%;b3;W,º٩iHdmYD4ў j?GȏwjxYR*b~zI<5 ˅8r}wlO4%r_ط N=ݻnT0iA_Ow`Ѐ!QVVf_EEUmo% IqC6{0@~"!^o)fǮ4xD(%bX<چxwI10ueNCȲҼ-='޺j|.ܮ23Q[ݥkǨſ|F?~Xh2b! Gm,}aX_? kXarr{1xDe,}azLb|{";7۶}ˏ?}FQT6n 5%+=?`=BT>Zyyߛ=5$%p# 7}U ;0J~̮ } Ϥ'(ܮWz9,|B8zKZ6RPJrQ=Ȓ Zx_DTƧug7]@L,B,:4M8=y6 'f1GiP[>Úgì{%#-,_6yqbNlW*nIJmKbpgB~RSٴ{+.#'˯B #& d6| /<ϴip<\xxb+83p / 6%FN~W( 4kkC!|>iiD;7k>}QǍjPЭoN w6Я$D\bvz,:ԴD22ٺuoFVV*6Yj?|`/W8fDI.MFk4ɑǟEWOmSOuEyuV}zR32/h&~ܴ…_q,/kZMJMiEygۅ;Vek֐Σ:h@nZ4ͮeQԷ& sM\2z 8 `~mwֶ]˶LD?q:cPhD9#(633)]_2 ,^]7Plv DA@dWLt0kn^|f!q8ybsl?x >cV\'BSINIng֭<=n}(.o/7&77>H0dϞ=8}ZqlY1}s9&BQDHI#sPJysyUU4 gD7EEE,X|e6nD1b Lt:9餓ثbyy뭷:$*[vq˟^j\B34@AnCV^xdnl.)ehx6m'x"{nf#͙L(ŽqdwD8D6 ϯi˲YksȈR7]{:/T&.4#0 PCZ$FѴcNNW_}5?<˗/gɒ%~df{Qlva̹w_yGy$/P\ٻdQ'j0ijgce b22 Dj9rizڥ ~"`r}tCb`Y]~[[06}/F8I]N!"hʪm$$3nedAAڰ ʂy{;nԨՓ>GR-۶m YVXٿ(2>EQy }v#/7={,˂xjٽk}]ݻSPXȢF Cl'_OiYF#\v&e{ʉO^@$zdu#;;_^۾U~I'dx+D!>CK߾}Y3]dd&Y##+eFZ*+ccPmT㉓6< &3`~޺dž]np=}oXV#dSik ͣ|O)VgmVWngҢӚG~y4sb2,azϷ_}I(>t5 zD9?t5%!)[j^q>ؾEa'ǟz:'l]%ikN5W/Agm x,_iֆ jxmbS0 Kf ;AۉCbUUiCxx#}oٷ0kA,,LZ 61Mv.0a>Ջ=vEFFV)gX+=n,zc4{Z h/IJ;ݻ7 uKe mխ[y<;g?pp[RUU(I|W <S[$գwU;WӼގ 3h juަ1mfO # D$.<$bIN;~#dee{n|>_1[liիq< q3gf!ǑQt;u& tIJK`W^}:2 PCo ͎eYD>t @dl6(JfGSD>x4Mo[E\v* ( `yϓ02c;ETB*:< )$Q #%AĐ- irGy1B4i  N'MQ 'Yg$3{ eXhq UӛC$Il#YSPѻЧ2LL%؀߀٣ATä!>۩M"eHٻ uFꇎGLĝהX Hjt(XCCf!2U0$R^^ 60eAp8P> EHKMG[N|W1LAheĄ6ғԳ? 42fD?d)|c9 =zWB0@J I&jRRr<D,âFunRӺkjj*HH -'5-.#;\|AlcGI(PϷ.#11/|4N< |:¡œں*\$%ᤓa[[YB iQil㏿: ~LFJgPØOvVN9jt#Baa?^|e'x)ÈFۇGjh}O(Z;B/CN~(fpe^(11P5 Ҳ}1-ٳmɃ_AǺ[9w5ao}D<ƼZY@D3yGq+"F$H¸qXb]tYYYml8r[AfO'ȸc3z+W披F^0LA?qͷ0axN94n߇3fOsWb)$zx{4i.~>y2Ǎk:w@0Ȍ$*nj`BH0ƫnkn?Ðu6m* ԩq8$&&r"( 4w"ѣ"OL~/vMcc;g@yE- ^?}HDeϞ*zrm.5|e@w&8d}QGc%)%?]q9Sovg3gpQGsIPz߄#ƌeͪUA>-щ<}F^36^vÍ%n*lv;nOǟrɩLit:8l8Nk5Z1GtZ )9{o 03` #M@9i2grۄo۶7—d ͹ .~N6mwlsY[YL9vUgfżH˱d:wBbZ2G˽w͵^$Qۜx_/.6N8s2 k̒Wfssc(>5-ǯk+D"(GMG|;ömY 1b̲:t(W\q0\զY%ͷfŊغu.z dkȒȬYw2{ $77Ok׏gSOIJr2>0M}JJJ wuѧgO&1W|"^{-z+ 8NfΜŹnc5_y-qǸg>vNjJ _~ 8ko 8'r8y(:jbXL dE=V)SPPPڴ?sL4Mo߾{ صdnm> j\:`~ :.OoHZPZR4c!x@%&g`bbWQh"Z" RPGbjddkg 驙QMbڔ]ױۜ8P8Į;VאCA~>>={mb$$STXcade0@Teժx#G$/;P$WA,DdLScOkQuc!jDt234h:!U`Ҥ/#)#NĒ?MG=˸qs?.o]ϒfC|\H|E<|SPv?|ºuK9[5?'_Fx s9YŻ>?i)Ċ_?==l4=8RN?&R*Qu IDAT2D^_ b'| 'p9I^i\GrNl8ez,ČN?R*j#&u0 jkk({0#T3:?h"]!GgXTFPRڈ-`K.I{V, \L@CD,P{\Ǟ|Ӭ 1Em.E2-BjzR1_P@xpe{P $oV]-f>LtrnyO`Hg F %(ڄ~ULQjbYMl, U6HLH >!zOs=i?06W=фTJ,צ[!!f76MMZkZMߴ7mc}7 !o NzDQ4)1́"3M Y$)IC 7e8 ȲMQP6!Z4Mp8L}c~ݏ"I]BKp8qgZ&-/$8iSX.jPC d 'CJgKjaKqC8jJ.hZӤ@͖Dږ1 5iD-pc4qiid+QWβJKbN]`Eɝ/} `Wt=3>ELcOLpeʮnvaTnv8SQF=tIYLoַV֗x" qqd*}AWOn4-h4v9 ۆkh CMڢXePU9r_y{PjĢz!vN xt9S#uI2p-ktbęswJJ]7yy-ez.FG'OJ%x׻͟b09Ȏ=y/y.n}±/y?2<2DӥiFa{ߧ@{CAĜxW_◟"Mq8ų,ȏ4ef fL4V{x~vI$ZtjS*-O$?ah Fˍ['H$y_osy2~\Zn <兓 ~'|g3jY1gb3tJ+} Lx4Iy4kEQyuQS_&'(VLÙ'L rf oqpy\$Sik^ <ĉ SyC}f(wsbrv[wFk6mѳg_:[8V?('u[EXѫ_*k@:*z<~62 ^o-Tnsu}6|-lt5 0 6/ ip}jC8-L6"/HQ'?IZ 1?z/.Wg2248JZ(8u$My4 e!pjsMRa''7^ISoYxc4}dC,rqf=F7/l07;G=_[x'^c$3<&?Ᏻ(_q}{Bgyw1^Sl#1T'c5xwP H 7=#v2Vlv'bj5( d1a{AfBa8q',,]ѨDe0M ϯa[i m|?T*r+Syne(jH&@Ƣ3<4R ^חʶ8./a&J{I"$8vbyx,i0$h4X5VӤXZ)mZoRjO}x:s|OUbFfq + pWw`T*pqv6; *)|3'we@ZT+e˵BI'%90i|BC 4~ӦL@8_g:Gbt0jZA~|H= \dmM6b44[tmAj5CM;QVT&i`XiCMQ_YcsBߣYjAaI#r(kvpk,;v*;&}"oH5ى FGsW3<j5& ʮ6< u;a+[y}δRMo6i.-&>4i>1S,5hu"fKsDTJt[R]VN,s@+=j"Uֳ_)ky8 բl`EcJX5-d0{]]}/tѱ,r\Zo;333;==y x\v|Lq8~[~j+]goS}UAT.]vMP+a4aly7p=mL|Uo(+iT+m\.GzrHk\u])Zu'8Yd1eČ`2t0w2bvz/u~C>QK3H\V]i2V$NV\aҨ) q,io~?J,alt7?AJ3?1K_z9^l6EnH 0[u~!jZi+W.{nU_?fN jZ-.B)o%uW{.X,.`mW+3'Qel785k[J˘^aul)βT}kBӗ5R.DQ}oKeeL1P9vݒ `6XZJ6}ud1"KKO3L'd`jeDh](,D|7.Ni8řW,U[$?_dx (8!hp,V[,(;FT]'!k>SsuQ&.4ˁʖh? |yW;t˥5 HUGy4%|Eɴ]RB&qr}SR/ԽeF'8{={Vvwbo&4Mh$|VPC3J2[R0AZ/ZŝF<V,F|tFa9b8T߰R@ ++ &5nФZ&X͠jcv=5Moeۄ"N"s{++ע5GR#j (W>j`k-eY##Ź^%7!|sW֣+'7jmwBwrR| .hw\ϛR&4mni6PcF{H׃'i5xK}{:!Px۲weOTSÆa&C}V7Z Ua3=Wu4U$WwZDTzy8Shšaḁ.O7Jћaq#1K nxvVƆ){E*ʺ?i2/P[P( ʶwL[RMپr`j+#bք}0#②/# \&prY#$_e&CX=Dr !ĝVͯگ~_:m۷orɵNW~W_ʧ~3ǿKki*T/& 454F9ldž0|㓤Z |7?~ȵo[-tm3MVȨ4&Bʹ|;Y\XLNN?y vϣu^gWZ[<@)JBCju^xe-=bc1 .E@|< B޷cvCž=2sjmK%XO넔"YxGv7[ITx HgF|O^"˔k.I L6!a{-*Kh?`pb?apY^}dw<I2i!HJ0 |eΜB㓧Xdp?-rQ _(rpgw`p0֚Zˣal'H GM(-0GC*gN3Rut]J%"M*e~y; ɯt7}bʒp[k?5T/a&[%jdC+:}ϣQ*&`ޛ֚khx"_Q,O|Ax0,.y90i_@sa4Z'xgx_ s"p>7I`$6ػt&{?wK'h5ydou 1I&g*G)%ZA5fzN:ƎX$f򱁫7Q)r(: h^p+XbiȍO^muY,-3PJ=I-tC7|}JK;?xm&B|3Z&{^ q_ *oe[ǯ`^jcǾ>ڮZgzi%R,v$^t|i;Ŋ^x.2iHKuV'ie Ʀh6hi"cT+Z ! , CϬۢX*p@^'NVFMZ^/cۉݫkRU]`\hq(6wJYL^ΐ4{S6I"v4{mrBT,ģ1ä8QVcth/V9L$HP(ˀ"!J7A\ >O4e~v~یOo^yG9L*Ѻ]9cݻwT uێˏ`(+˜[ r5 CiD8DwV xw;QPDV<着݉2Kci:juYL׭7VUr+,WtcknT0yuAĖȌOR^9ZirȌߢXKVsy̕0L!AM) A9{EJhA)ң}I$N<}3Hlp=x'1}g.WֱD2{j͡+a24wM)T]'vr=`Ɠ 0-'Rۉjg10Mж_m!eDdFK̝~tݣZ&<~51X0 ҙ dbƨ), +0^"r<%xG\!jG'XFAZfUB,8|V[b_[wN{Zk[? Cb~ȅ2E޺Xb0cz$vabx' i RϠҎƈ̜abԪob?޹4ۯtRf˃_&,}!*6Hd1+&g$5nߙK׼E ya|vՕ_c8 ܋BfM7L)E"Ʋm sAbk 3c_kyc44þy e`k B7UnjF,EX ˒ΣՋۗy'hn,[^ׇ[Ž΅PAFuWP )묦\ )ÎPoWytv4Nj`S‰1Lv(Jěeѫ'*$Ɖ')\:MZ& 8'^É&X vDX,Օ'nDZ3w|7݂q_mY7@akMG~2Obn~ hOMg2RqЉJb8vC{ř.J+1Hƶ#I騁FqK1.VAQBJ(JmۘI<LOvPm2['Lr ? (L4 \p 6)(Ly6ϝÇx?C EΜA-Sf׍ɶ#d3`h B(f8t1RXq"QZ$<Fh4k&TerAj":T]`5B^0,FG{q("xtrzG14UŴ4-LK3[IiU1Mlv8jNJP,/P/7u@Ƌ<'  dna36abFv'=1Xc3J)"b9ر8j`hq^|윘dxm`bY&;v?ӏ34S]Zܱ0+ 9(A-~ وG'Cf*M^)4HGƓg98E! |-l3]JϠv"CƄo/|d=]A%O|cS4iGY\V#Qi. dh85m )W-@':.?R*VcEcK~K'sf $-2/~c`(J+؈VWOvj/lS@9UuY#L1]\4uF,] 0 JD5Q& <(jx€pdFbTF* [7׼nj-b38=LlzF;Exkvѱ˷Ov[(Ν[zNVӟoYW»Nk7}Kmנru*mzj^]W_4~`ZtW+dn* 3Nk5 OwUtē MtzF6?Heãxn|'v,NqP%ysdO4&%xHf4GO:-n-, T!:BT*"_ HΤm'ZM,7@3`R${YZ^f~q$pv׵>/V 0}Tj #Yb()f$]2aL&\(THG/4"T: -JJn 3gγPXV̕?[Ķdinf(iz\Jc[6!ԐNyI޺gdjj7OT.O|3_=h0UYm9r[|B>7Iԙرz?3JCGs_iSnaY?DyW$M0a܍͸}>B!B!welːnw}'B!B!nCȹftB!B! u@N dRB!B! w;16n!B!Bqٮ̝mB!B!2DUwC w+op !B!B[Vwd@n ޶؎$B!B!nv >mmG!B!B媻9ػoB!B!xkNo0pB!B! (WBB!B!w:v_!B!Bl/o`uWC!B!BJo`s#B!B!HCOS!B!B B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!BJ?nIENDB`070701000000CC000041ED0000000000000000000000026641340900000000000000000000000000000000000000000000001E00000000gnome-maps-46.11/data/shields070701000000CD000081A40000000000000000000000016641340900001B87000000000000000000000000000000000000002600000000gnome-maps-46.11/data/shields/LICENSECreative Commons Legal Code CC0 1.0 Universal CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER. Statement of Purpose The laws of most jurisdictions throughout the world automatically confer exclusive Copyright and Related Rights (defined below) upon the creator and subsequent owner(s) (each and all, an "owner") of an original work of authorship and/or a database (each, a "Work"). Certain owners wish to permanently relinquish those rights to a Work for the purpose of contributing to a commons of creative, cultural and scientific works ("Commons") that the public can reliably and without fear of later claims of infringement build upon, modify, incorporate in other works, reuse and redistribute as freely as possible in any form whatsoever and for any purposes, including without limitation commercial purposes. These owners may contribute to the Commons to promote the ideal of a free culture and the further production of creative, cultural and scientific works, or to gain reputation or greater distribution for their Work in part through the use and efforts of others. For these and/or other purposes and motivations, and without any expectation of additional consideration or compensation, the person associating CC0 with a Work (the "Affirmer"), to the extent that he or she is an owner of Copyright and Related Rights in the Work, voluntarily elects to apply CC0 to the Work and publicly distribute the Work under its terms, with knowledge of his or her Copyright and Related Rights in the Work and the meaning and intended legal effect of CC0 on those rights. 1. Copyright and Related Rights. A Work made available under CC0 may be protected by copyright and related or neighboring rights ("Copyright and Related Rights"). Copyright and Related Rights include, but are not limited to, the following: i. the right to reproduce, adapt, distribute, perform, display, communicate, and translate a Work; ii. moral rights retained by the original author(s) and/or performer(s); iii. publicity and privacy rights pertaining to a person's image or likeness depicted in a Work; iv. rights protecting against unfair competition in regards to a Work, subject to the limitations in paragraph 4(a), below; v. rights protecting the extraction, dissemination, use and reuse of data in a Work; vi. database rights (such as those arising under Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, and under any national implementation thereof, including any amended or successor version of such directive); and vii. other similar, equivalent or corresponding rights throughout the world based on applicable law or treaty, and any national implementations thereof. 2. Waiver. To the greatest extent permitted by, but not in contravention of, applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and unconditionally waives, abandons, and surrenders all of Affirmer's Copyright and Related Rights and associated claims and causes of action, whether now known or unknown (including existing as well as future claims and causes of action), in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each member of the public at large and to the detriment of Affirmer's heirs and successors, fully intending that such Waiver shall not be subject to revocation, rescission, cancellation, termination, or any other legal or equitable action to disrupt the quiet enjoyment of the Work by the public as contemplated by Affirmer's express Statement of Purpose. 3. Public License Fallback. Should any part of the Waiver for any reason be judged legally invalid or ineffective under applicable law, then the Waiver shall be preserved to the maximum extent permitted taking into account Affirmer's express Statement of Purpose. In addition, to the extent the Waiver is so judged Affirmer hereby grants to each affected person a royalty-free, non transferable, non sublicensable, non exclusive, irrevocable and unconditional license to exercise Affirmer's Copyright and Related Rights in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "License"). The License shall be deemed effective as of the date CC0 was applied by Affirmer to the Work. Should any part of the License for any reason be judged legally invalid or ineffective under applicable law, such partial invalidity or ineffectiveness shall not invalidate the remainder of the License, and in such case Affirmer hereby affirms that he or she will not (i) exercise any of his or her remaining Copyright and Related Rights in the Work or (ii) assert any associated claims and causes of action with respect to the Work, in either case contrary to Affirmer's express Statement of Purpose. 4. Limitations and Disclaimers. a. No trademark or patent rights held by Affirmer are waived, abandoned, surrendered, licensed or otherwise affected by this document. b. Affirmer offers the Work as-is and makes no representations or warranties of any kind concerning the Work, express, implied, statutory or otherwise, including without limitation warranties of title, merchantability, fitness for a particular purpose, non infringement, or the absence of latent or other defects, accuracy, or the present or absence of errors, whether or not discoverable, all to the greatest extent permissible under applicable law. c. Affirmer disclaims responsibility for clearing rights of other persons that may apply to the Work or any use thereof, including without limitation any person's Copyright and Related Rights in the Work. Further, Affirmer disclaims responsibility for obtaining any necessary consents, permissions or other rights required for any use of the Work. d. Affirmer understands and acknowledges that Creative Commons is not a party to this document and has no duty or obligation with respect to this CC0 or use of the Work.070701000000CE000081A400000000000000000000000166413409000026CD000000000000000000000000000000000000002900000000gnome-maps-46.11/data/shields/layer.json{ "type": "symbol", "source": "openmaptiles", "source-layer": "transportation_name", "id": "highway-shield", "layout": { "text-rotation-alignment": "viewport-glyph", "text-font": [ "Americana-Regular" ], "text-field": [ "format", [ "case", [ "any", [ "has", "route_1_network" ], [ "has", "route_1_ref" ], [ "has", "route_1_name" ], [ "has", "route_1_color" ] ], [ "image", [ "concat", "shield", "\n", [ "get", "class" ], "\n", [ "coalesce", [ "get", "route_1_network" ], "" ], "\n", [ "coalesce", [ "get", "route_1_ref" ], "" ], "\n", [ "coalesce", [ "get", "route_1_name" ], "" ], "\n", [ "coalesce", [ "get", "route_1_color" ], "" ] ] ], [ "literal", "" ] ], [ "case", [ "any", [ "has", "route_2_network" ], [ "has", "route_2_ref" ], [ "has", "route_2_name" ], [ "has", "route_2_color" ] ], [ "image", [ "concat", "shield", "\n", [ "get", "class" ], "\n", [ "coalesce", [ "get", "route_2_network" ], "" ], "\n", [ "coalesce", [ "get", "route_2_ref" ], "" ], "\n", [ "coalesce", [ "get", "route_2_name" ], "" ], "\n", [ "coalesce", [ "get", "route_2_color" ], "" ] ] ], [ "literal", "" ] ], [ "case", [ "any", [ "has", "route_3_network" ], [ "has", "route_3_ref" ], [ "has", "route_3_name" ], [ "has", "route_3_color" ] ], [ "image", [ "concat", "shield", "\n", [ "get", "class" ], "\n", [ "coalesce", [ "get", "route_3_network" ], "" ], "\n", [ "coalesce", [ "get", "route_3_ref" ], "" ], "\n", [ "coalesce", [ "get", "route_3_name" ], "" ], "\n", [ "coalesce", [ "get", "route_3_color" ], "" ] ] ], [ "literal", "" ] ], [ "case", [ "any", [ "has", "route_4_network" ], [ "has", "route_4_ref" ], [ "has", "route_4_name" ], [ "has", "route_4_color" ] ], [ "image", [ "concat", "shield", "\n", [ "get", "class" ], "\n", [ "coalesce", [ "get", "route_4_network" ], "" ], "\n", [ "coalesce", [ "get", "route_4_ref" ], "" ], "\n", [ "coalesce", [ "get", "route_4_name" ], "" ], "\n", [ "coalesce", [ "get", "route_4_color" ], "" ] ] ], [ "literal", "" ] ], [ "case", [ "any", [ "has", "route_5_network" ], [ "has", "route_5_ref" ], [ "has", "route_5_name" ], [ "has", "route_5_color" ] ], [ "image", [ "concat", "shield", "\n", [ "get", "class" ], "\n", [ "coalesce", [ "get", "route_5_network" ], "" ], "\n", [ "coalesce", [ "get", "route_5_ref" ], "" ], "\n", [ "coalesce", [ "get", "route_5_name" ], "" ], "\n", [ "coalesce", [ "get", "route_5_color" ], "" ] ] ], [ "literal", "" ] ], [ "case", [ "any", [ "has", "route_6_network" ], [ "has", "route_6_ref" ], [ "has", "route_6_name" ], [ "has", "route_6_color" ] ], [ "image", [ "concat", "shield", "\n", [ "get", "class" ], "\n", [ "coalesce", [ "get", "route_6_network" ], "" ], "\n", [ "coalesce", [ "get", "route_6_ref" ], "" ], "\n", [ "coalesce", [ "get", "route_6_name" ], "" ], "\n", [ "coalesce", [ "get", "route_6_color" ], "" ] ] ], [ "literal", "" ] ] ], "text-anchor": "center", "text-letter-spacing": 0.7, "symbol-placement": "line", "text-max-angle": 180, "text-pitch-alignment": "viewport", "symbol-sort-key": [ "match", [ "get", "class" ], "motorway", 0, "trunk", 1, "primary", 2, "secondary", 3, "tertiary", 4, 5 ], "symbol-spacing": 500 }, "paint": { "text-opacity": [ "step", [ "zoom" ], [ "match", [ "get", "class" ], "motorway", 1, 0 ], 8, [ "match", [ "get", "class" ], [ "motorway", "trunk" ], 1, 0 ], 10, [ "match", [ "get", "class" ], [ "motorway", "trunk", "primary" ], 1, 0 ], 11, [ "match", [ "get", "class" ], [ "motorway", "trunk", "primary", "secondary" ], 1, 0 ], 12, [ "match", [ "get", "class" ], [ "motorway", "trunk", "primary", "secondary", "tertiary" ], 1, 0 ], 14, 1 ] }, "filter": [ "any", [ "has", "route_1_network" ], [ "has", "route_1_ref" ], [ "has", "route_1_name" ], [ "has", "route_1_color" ] ] }070701000000CF000081A4000000000000000000000001664134090000009B000000000000000000000000000000000000002A00000000gnome-maps-46.11/data/shields/meson.buildgnome.compile_resources( app_id + '.shields', 'org.gnome.Maps.shields.gresource.xml', gresource_bundle: true, install: true, install_dir: pkgdatadir )070701000000D0000081A4000000000000000000000001664134090000327D000000000000000000000000000000000000004300000000gnome-maps-46.11/data/shields/org.gnome.Maps.shields.gresource.xml shields.json layer.json shield_badge_2.svg shield_badge_3.svg shield_badge_crossbar_2.svg shield_badge_crossbar_3.svg shield_ca_bc_2.svg shield_ca_bc_3.svg shield_ca_nb.svg shield_ca_nt.svg shield_ca_on_primary.svg shield_ca_pe.svg shield_ca_qc_a_2.svg shield_ca_qc_a_3.svg shield_ca_qc_r.svg shield_ca_sk_secondary.svg shield_ca_tch_2.svg shield_ca_tch_3.svg shield_cn_expressway_2.svg shield_cn_expressway_3.svg shield_cn_expressway_4.svg shield_co_national_2.svg shield_co_national_3.svg shield_glct_lect.svg shield_glct_lhct.svg shield_glct_lmct.svg shield_glct_lsct.svg shield_id_national.svg shield_in_nh_2.svg shield_in_nh_3.svg shield_in_nh_4.svg shield_kr_expressway_2.svg shield_kr_expressway_3.svg shield_mx_mx.svg shield_nl_city.svg shield_pk_motorway.svg shield_tri_convex_2.svg shield_tri_convex_3.svg shield_tw_freeway.svg shield_us_ak.svg shield_us_al_2.svg shield_us_al_3.svg shield_us_ar_2.svg shield_us_ar_3.svg shield_us_as.svg shield_us_az_2.svg shield_us_az_3.svg shield_us_az_scenic.svg shield_us_bia.svg shield_us_ca_2.svg shield_us_ca_3.svg shield_us_ca_sf_49.svg shield_us_co.svg shield_us_co_e470.svg shield_us_ct_parkway_merritt.svg shield_us_dc.svg shield_us_fl_2.svg shield_us_fl_3.svg shield_us_fl_toll.svg shield_us_fl_turnpike.svg shield_us_ga_2.svg shield_us_ga_3.svg shield_us_glst.svg shield_us_grr.svg shield_us_gu_2.svg shield_us_gu_3.svg shield_us_id_2.svg shield_us_id_3.svg shield_us_il_skyway.svg shield_us_in_jhmht.svg shield_us_in_toll.svg shield_us_interstate_2.svg shield_us_interstate_3.svg shield_us_interstate_business_2.svg shield_us_interstate_business_3.svg shield_us_ks_2.svg shield_us_ks_3.svg shield_us_ks_turnpike.svg shield_us_ky_parkway.svg shield_us_la_2.svg shield_us_la_3.svg shield_us_la_causeway.svg shield_us_lht.svg shield_us_ma_pike.svg shield_us_md_2.svg shield_us_md_3.svg shield_us_me_turnpike.svg shield_us_mn_2.svg shield_us_mn_3.svg shield_us_mo_2.svg shield_us_mo_3.svg shield_us_mp_2.svg shield_us_mp_3.svg shield_us_mt_secondary.svg shield_us_nd_2.svg shield_us_nd_3.svg shield_us_ne_byway_noref.svg shield_us_nh_2.svg shield_us_nh_3.svg shield_us_nh_turnpike.svg shield_us_nj_ace_noref.svg shield_us_nj_gsp_noref.svg shield_us_nj_njtp_noref.svg shield_us_nm_frontage.svg shield_us_nps_brp.svg shield_us_nps_ntp.svg shield_us_nv.svg shield_us_ny_2.svg shield_us_ny_3.svg shield_us_ny_parkway_li.svg shield_us_ny_parkway_losp.svg shield_us_ny_parkway_nyc.svg shield_us_ny_ste.svg shield_us_ny_thruway.svg shield_us_oh_2.svg shield_us_oh_3.svg shield_us_oh_asd.svg shield_us_oh_hol.svg shield_us_oh_jhmht.svg shield_us_oh_oec.svg shield_us_oh_sci_2.svg shield_us_oh_sci_3.svg shield_us_oh_turnpike.svg shield_us_oh_tus_salem.svg shield_us_ok_2.svg shield_us_ok_3.svg shield_us_ok_turnpike.svg shield_us_or_2.svg shield_us_or_3.svg shield_us_orsb.svg shield_us_pa_2.svg shield_us_pa_3.svg shield_us_pa_turnpike_noref.svg shield_us_sc.svg shield_us_sd_2.svg shield_us_sd_3.svg shield_us_sd_csp.svg shield_us_tn_primary.svg shield_us_tx_fbctra.svg shield_us_tx_outline.svg shield_us_ut_2.svg shield_us_ut_3.svg shield_us_vt_2.svg shield_us_vt_3.svg shield_us_wa.svg shield_us_wi_2.svg shield_us_wi_3.svg shield_us_wi_rustic.svg shield_ve_t.svg 070701000000D1000081A400000000000000000000000166413409000004BA000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_badge_2.svg 070701000000D2000081A4000000000000000000000001664134090000047F000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_badge_3.svg 070701000000D3000081A40000000000000000000000016641340900000561000000000000000000000000000000000000003A00000000gnome-maps-46.11/data/shields/shield_badge_crossbar_2.svg 070701000000D4000081A40000000000000000000000016641340900000526000000000000000000000000000000000000003A00000000gnome-maps-46.11/data/shields/shield_badge_crossbar_3.svg 070701000000D5000081A4000000000000000000000001664134090000031C000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_ca_bc_2.svg 070701000000D6000081A4000000000000000000000001664134090000031E000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_ca_bc_3.svg 070701000000D7000081A400000000000000000000000166413409000006E6000000000000000000000000000000000000002F00000000gnome-maps-46.11/data/shields/shield_ca_nb.svg 070701000000D8000081A400000000000000000000000166413409000007E2000000000000000000000000000000000000002F00000000gnome-maps-46.11/data/shields/shield_ca_nt.svg 070701000000D9000081A400000000000000000000000166413409000009C3000000000000000000000000000000000000003700000000gnome-maps-46.11/data/shields/shield_ca_on_primary.svg 070701000000DA000081A4000000000000000000000001664134090000035F000000000000000000000000000000000000002F00000000gnome-maps-46.11/data/shields/shield_ca_pe.svg 070701000000DB000081A400000000000000000000000166413409000001E1000000000000000000000000000000000000003300000000gnome-maps-46.11/data/shields/shield_ca_qc_a_2.svg 070701000000DC000081A400000000000000000000000166413409000001DE000000000000000000000000000000000000003300000000gnome-maps-46.11/data/shields/shield_ca_qc_a_3.svg 070701000000DD000081A400000000000000000000000166413409000003EE000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_ca_qc_r.svg 070701000000DE000081A4000000000000000000000001664134090000080F000000000000000000000000000000000000003900000000gnome-maps-46.11/data/shields/shield_ca_sk_secondary.svg 070701000000DF000081A400000000000000000000000166413409000016D4000000000000000000000000000000000000003200000000gnome-maps-46.11/data/shields/shield_ca_tch_2.svg 070701000000E0000081A400000000000000000000000166413409000016D1000000000000000000000000000000000000003200000000gnome-maps-46.11/data/shields/shield_ca_tch_3.svg 070701000000E1000081A400000000000000000000000166413409000001EC000000000000000000000000000000000000003900000000gnome-maps-46.11/data/shields/shield_cn_expressway_2.svg 070701000000E2000081A400000000000000000000000166413409000001EC000000000000000000000000000000000000003900000000gnome-maps-46.11/data/shields/shield_cn_expressway_3.svg 070701000000E3000081A400000000000000000000000166413409000001EC000000000000000000000000000000000000003900000000gnome-maps-46.11/data/shields/shield_cn_expressway_4.svg 070701000000E4000081A40000000000000000000000016641340900000240000000000000000000000000000000000000003700000000gnome-maps-46.11/data/shields/shield_co_national_2.svg 070701000000E5000081A40000000000000000000000016641340900000216000000000000000000000000000000000000003700000000gnome-maps-46.11/data/shields/shield_co_national_3.svg 070701000000E6000081A400000000000000000000000166413409000008B7000000000000000000000000000000000000003300000000gnome-maps-46.11/data/shields/shield_glct_lect.svg 070701000000E7000081A4000000000000000000000001664134090000106F000000000000000000000000000000000000003300000000gnome-maps-46.11/data/shields/shield_glct_lhct.svg 070701000000E8000081A40000000000000000000000016641340900001EE6000000000000000000000000000000000000003300000000gnome-maps-46.11/data/shields/shield_glct_lmct.svg 070701000000E9000081A40000000000000000000000016641340900000D00000000000000000000000000000000000000003300000000gnome-maps-46.11/data/shields/shield_glct_lsct.svg 070701000000EA000081A40000000000000000000000016641340900000693000000000000000000000000000000000000003500000000gnome-maps-46.11/data/shields/shield_id_national.svg 070701000000EB000081A40000000000000000000000016641340900000421000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_in_nh_2.svg 070701000000EC000081A40000000000000000000000016641340900000435000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_in_nh_3.svg 070701000000ED000081A40000000000000000000000016641340900000439000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_in_nh_4.svg 070701000000EE000081A400000000000000000000000166413409000007F3000000000000000000000000000000000000003900000000gnome-maps-46.11/data/shields/shield_kr_expressway_2.svg 070701000000EF000081A400000000000000000000000166413409000007E6000000000000000000000000000000000000003900000000gnome-maps-46.11/data/shields/shield_kr_expressway_3.svg 070701000000F0000081A400000000000000000000000166413409000006E7000000000000000000000000000000000000002F00000000gnome-maps-46.11/data/shields/shield_mx_mx.svg 070701000000F1000081A40000000000000000000000016641340900000820000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_nl_city.svg 070701000000F2000081A40000000000000000000000016641340900000164000000000000000000000000000000000000003500000000gnome-maps-46.11/data/shields/shield_pk_motorway.svg 070701000000F3000081A400000000000000000000000166413409000002A2000000000000000000000000000000000000003600000000gnome-maps-46.11/data/shields/shield_tri_convex_2.svg 070701000000F4000081A40000000000000000000000016641340900000396000000000000000000000000000000000000003600000000gnome-maps-46.11/data/shields/shield_tri_convex_3.svg 070701000000F5000081A40000000000000000000000016641340900000AFF000000000000000000000000000000000000003400000000gnome-maps-46.11/data/shields/shield_tw_freeway.svg 070701000000F6000081A4000000000000000000000001664134090000050B000000000000000000000000000000000000002F00000000gnome-maps-46.11/data/shields/shield_us_ak.svg 070701000000F7000081A40000000000000000000000016641340900000385000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_al_2.svg 070701000000F8000081A40000000000000000000000016641340900000386000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_al_3.svg 070701000000F9000081A4000000000000000000000001664134090000051C000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_ar_2.svg 070701000000FA000081A4000000000000000000000001664134090000053C000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_ar_3.svg 070701000000FB000081A4000000000000000000000001664134090000028E000000000000000000000000000000000000002F00000000gnome-maps-46.11/data/shields/shield_us_as.svg 070701000000FC000081A400000000000000000000000166413409000000F4000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_az_2.svg 070701000000FD000081A400000000000000000000000166413409000000F6000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_az_3.svg 070701000000FE000081A40000000000000000000000016641340900000F8B000000000000000000000000000000000000003600000000gnome-maps-46.11/data/shields/shield_us_az_scenic.svg 070701000000FF000081A400000000000000000000000166413409000005EE000000000000000000000000000000000000003000000000gnome-maps-46.11/data/shields/shield_us_bia.svg 07070100000100000081A4000000000000000000000001664134090000028B000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_ca_2.svg 07070100000101000081A40000000000000000000000016641340900000289000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_ca_3.svg 07070100000102000081A40000000000000000000000016641340900000647000000000000000000000000000000000000003500000000gnome-maps-46.11/data/shields/shield_us_ca_sf_49.svg 07070100000103000081A400000000000000000000000166413409000002CD000000000000000000000000000000000000002F00000000gnome-maps-46.11/data/shields/shield_us_co.svg 07070100000104000081A40000000000000000000000016641340900000268000000000000000000000000000000000000003400000000gnome-maps-46.11/data/shields/shield_us_co_e470.svg 07070100000105000081A4000000000000000000000001664134090000454B000000000000000000000000000000000000003F00000000gnome-maps-46.11/data/shields/shield_us_ct_parkway_merritt.svg 07070100000106000081A40000000000000000000000016641340900000AC7000000000000000000000000000000000000002F00000000gnome-maps-46.11/data/shields/shield_us_dc.svg 07070100000107000081A40000000000000000000000016641340900000955000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_fl_2.svg 07070100000108000081A40000000000000000000000016641340900000961000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_fl_3.svg 07070100000109000081A400000000000000000000000166413409000005D3000000000000000000000000000000000000003400000000gnome-maps-46.11/data/shields/shield_us_fl_toll.svg 0707010000010A000081A40000000000000000000000016641340900000D1D000000000000000000000000000000000000003800000000gnome-maps-46.11/data/shields/shield_us_fl_turnpike.svg 0707010000010B000081A400000000000000000000000166413409000004CD000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_ga_2.svg 0707010000010C000081A400000000000000000000000166413409000004D2000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_ga_3.svg 0707010000010D000081A40000000000000000000000016641340900000464000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_glst.svg 0707010000010E000081A40000000000000000000000016641340900001228000000000000000000000000000000000000003000000000gnome-maps-46.11/data/shields/shield_us_grr.svg 0707010000010F000081A4000000000000000000000001664134090000047D000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_gu_2.svg 07070100000110000081A40000000000000000000000016641340900000482000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_gu_3.svg 07070100000111000081A40000000000000000000000016641340900005236000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_id_2.svg 07070100000112000081A40000000000000000000000016641340900005236000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_id_3.svg 07070100000113000081A400000000000000000000000166413409000001E7000000000000000000000000000000000000003600000000gnome-maps-46.11/data/shields/shield_us_il_skyway.svg 07070100000114000081A40000000000000000000000016641340900001214000000000000000000000000000000000000003500000000gnome-maps-46.11/data/shields/shield_us_in_jhmht.svg 07070100000115000081A40000000000000000000000016641340900000C2D000000000000000000000000000000000000003400000000gnome-maps-46.11/data/shields/shield_us_in_toll.svg 07070100000116000081A40000000000000000000000016641340900000762000000000000000000000000000000000000003900000000gnome-maps-46.11/data/shields/shield_us_interstate_2.svg 07070100000117000081A40000000000000000000000016641340900000752000000000000000000000000000000000000003900000000gnome-maps-46.11/data/shields/shield_us_interstate_3.svg 07070100000118000081A400000000000000000000000166413409000003F2000000000000000000000000000000000000004200000000gnome-maps-46.11/data/shields/shield_us_interstate_business_2.svg 07070100000119000081A400000000000000000000000166413409000003DB000000000000000000000000000000000000004200000000gnome-maps-46.11/data/shields/shield_us_interstate_business_3.svg 0707010000011A000081A40000000000000000000000016641340900011424000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_ks_2.svg 0707010000011B000081A40000000000000000000000016641340900010710000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_ks_3.svg 0707010000011C000081A40000000000000000000000016641340900011518000000000000000000000000000000000000003800000000gnome-maps-46.11/data/shields/shield_us_ks_turnpike.svg 0707010000011D000081A400000000000000000000000166413409000001FD000000000000000000000000000000000000003700000000gnome-maps-46.11/data/shields/shield_us_ky_parkway.svg 0707010000011E000081A4000000000000000000000001664134090000038F000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_la_2.svg 0707010000011F000081A40000000000000000000000016641340900000426000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_la_3.svg 07070100000120000081A400000000000000000000000166413409000003F2000000000000000000000000000000000000003800000000gnome-maps-46.11/data/shields/shield_us_la_causeway.svg 07070100000121000081A4000000000000000000000001664134090000532D000000000000000000000000000000000000003000000000gnome-maps-46.11/data/shields/shield_us_lht.svg 07070100000122000081A400000000000000000000000166413409000002C7000000000000000000000000000000000000003400000000gnome-maps-46.11/data/shields/shield_us_ma_pike.svg 07070100000123000081A40000000000000000000000016641340900000229000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_md_2.svg 07070100000124000081A40000000000000000000000016641340900000229000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_md_3.svg 07070100000125000081A40000000000000000000000016641340900000662000000000000000000000000000000000000003800000000gnome-maps-46.11/data/shields/shield_us_me_turnpike.svg 07070100000126000081A40000000000000000000000016641340900000798000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_mn_2.svg 07070100000127000081A40000000000000000000000016641340900000799000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_mn_3.svg 07070100000128000081A40000000000000000000000016641340900000E34000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_mo_2.svg 07070100000129000081A40000000000000000000000016641340900000E58000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_mo_3.svg 0707010000012A000081A40000000000000000000000016641340900000135000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_mp_2.svg 0707010000012B000081A40000000000000000000000016641340900000135000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_mp_3.svg 0707010000012C000081A400000000000000000000000166413409000007F1000000000000000000000000000000000000003900000000gnome-maps-46.11/data/shields/shield_us_mt_secondary.svg 0707010000012D000081A400000000000000000000000166413409000002DD000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_nd_2.svg 0707010000012E000081A400000000000000000000000166413409000002DD000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_nd_3.svg 0707010000012F000081A40000000000000000000000016641340900007E7F000000000000000000000000000000000000003B00000000gnome-maps-46.11/data/shields/shield_us_ne_byway_noref.svg 07070100000130000081A40000000000000000000000016641340900000BDC000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_nh_2.svg 07070100000131000081A40000000000000000000000016641340900000BDD000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_nh_3.svg 07070100000132000081A40000000000000000000000016641340900000311000000000000000000000000000000000000003800000000gnome-maps-46.11/data/shields/shield_us_nh_turnpike.svg 07070100000133000081A4000000000000000000000001664134090000062B000000000000000000000000000000000000003900000000gnome-maps-46.11/data/shields/shield_us_nj_ace_noref.svg 07070100000134000081A40000000000000000000000016641340900002742000000000000000000000000000000000000003900000000gnome-maps-46.11/data/shields/shield_us_nj_gsp_noref.svg 07070100000135000081A4000000000000000000000001664134090000029A000000000000000000000000000000000000003A00000000gnome-maps-46.11/data/shields/shield_us_nj_njtp_noref.svg 07070100000136000081A40000000000000000000000016641340900000197000000000000000000000000000000000000003800000000gnome-maps-46.11/data/shields/shield_us_nm_frontage.svg 07070100000137000081A40000000000000000000000016641340900001D45000000000000000000000000000000000000003400000000gnome-maps-46.11/data/shields/shield_us_nps_brp.svg 07070100000138000081A40000000000000000000000016641340900000C1C000000000000000000000000000000000000003400000000gnome-maps-46.11/data/shields/shield_us_nps_ntp.svg 07070100000139000081A40000000000000000000000016641340900000144000000000000000000000000000000000000002F00000000gnome-maps-46.11/data/shields/shield_us_nv.svg 0707010000013A000081A40000000000000000000000016641340900000319000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_ny_2.svg 0707010000013B000081A40000000000000000000000016641340900000307000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_ny_3.svg 0707010000013C000081A40000000000000000000000016641340900000D72000000000000000000000000000000000000003A00000000gnome-maps-46.11/data/shields/shield_us_ny_parkway_li.svg 0707010000013D000081A40000000000000000000000016641340900000771000000000000000000000000000000000000003C00000000gnome-maps-46.11/data/shields/shield_us_ny_parkway_losp.svg 0707010000013E000081A40000000000000000000000016641340900000199000000000000000000000000000000000000003B00000000gnome-maps-46.11/data/shields/shield_us_ny_parkway_nyc.svg 0707010000013F000081A400000000000000000000000166413409000021AD000000000000000000000000000000000000003300000000gnome-maps-46.11/data/shields/shield_us_ny_ste.svg 07070100000140000081A4000000000000000000000001664134090000237A000000000000000000000000000000000000003700000000gnome-maps-46.11/data/shields/shield_us_ny_thruway.svg 07070100000141000081A40000000000000000000000016641340900000693000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_oh_2.svg 07070100000142000081A40000000000000000000000016641340900000694000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_oh_3.svg 07070100000143000081A4000000000000000000000001664134090000016F000000000000000000000000000000000000003300000000gnome-maps-46.11/data/shields/shield_us_oh_asd.svg 07070100000144000081A40000000000000000000000016641340900000145000000000000000000000000000000000000003300000000gnome-maps-46.11/data/shields/shield_us_oh_hol.svg 07070100000145000081A4000000000000000000000001664134090000174D000000000000000000000000000000000000003500000000gnome-maps-46.11/data/shields/shield_us_oh_jhmht.svg 07070100000146000081A40000000000000000000000016641340900000C89000000000000000000000000000000000000003300000000gnome-maps-46.11/data/shields/shield_us_oh_oec.svg 07070100000147000081A40000000000000000000000016641340900000455000000000000000000000000000000000000003500000000gnome-maps-46.11/data/shields/shield_us_oh_sci_2.svg 07070100000148000081A4000000000000000000000001664134090000044B000000000000000000000000000000000000003500000000gnome-maps-46.11/data/shields/shield_us_oh_sci_3.svg 07070100000149000081A40000000000000000000000016641340900001F6E000000000000000000000000000000000000003800000000gnome-maps-46.11/data/shields/shield_us_oh_turnpike.svg 0707010000014A000081A4000000000000000000000001664134090000014B000000000000000000000000000000000000003900000000gnome-maps-46.11/data/shields/shield_us_oh_tus_salem.svg 0707010000014B000081A400000000000000000000000166413409000002D9000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_ok_2.svg 0707010000014C000081A400000000000000000000000166413409000002CD000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_ok_3.svg 0707010000014D000081A40000000000000000000000016641340900001098000000000000000000000000000000000000003800000000gnome-maps-46.11/data/shields/shield_us_ok_turnpike.svg 0707010000014E000081A40000000000000000000000016641340900000420000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_or_2.svg 0707010000014F000081A40000000000000000000000016641340900000467000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_or_3.svg 07070100000150000081A400000000000000000000000166413409000006C2000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_orsb.svg 07070100000151000081A400000000000000000000000166413409000000AD000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_pa_2.svg 07070100000152000081A400000000000000000000000166413409000000AD000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_pa_3.svg 07070100000153000081A40000000000000000000000016641340900000A8F000000000000000000000000000000000000003E00000000gnome-maps-46.11/data/shields/shield_us_pa_turnpike_noref.svg 07070100000154000081A4000000000000000000000001664134090000061F000000000000000000000000000000000000002F00000000gnome-maps-46.11/data/shields/shield_us_sc.svg 07070100000155000081A400000000000000000000000166413409000003D0000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_sd_2.svg 07070100000156000081A400000000000000000000000166413409000003EB000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_sd_3.svg 07070100000157000081A40000000000000000000000016641340900000E90000000000000000000000000000000000000003300000000gnome-maps-46.11/data/shields/shield_us_sd_csp.svg 07070100000158000081A40000000000000000000000016641340900000406000000000000000000000000000000000000003700000000gnome-maps-46.11/data/shields/shield_us_tn_primary.svg 07070100000159000081A400000000000000000000000166413409000001D6000000000000000000000000000000000000003600000000gnome-maps-46.11/data/shields/shield_us_tx_fbctra.svg 0707010000015A000081A4000000000000000000000001664134090000102A000000000000000000000000000000000000003700000000gnome-maps-46.11/data/shields/shield_us_tx_outline.svg 0707010000015B000081A4000000000000000000000001664134090000079D000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_ut_2.svg 0707010000015C000081A40000000000000000000000016641340900000784000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_ut_3.svg 0707010000015D000081A400000000000000000000000166413409000003E3000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_vt_2.svg 0707010000015E000081A400000000000000000000000166413409000003E5000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_vt_3.svg 0707010000015F000081A400000000000000000000000166413409000006EE000000000000000000000000000000000000002F00000000gnome-maps-46.11/data/shields/shield_us_wa.svg 07070100000160000081A40000000000000000000000016641340900000208000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_wi_2.svg 07070100000161000081A40000000000000000000000016641340900000208000000000000000000000000000000000000003100000000gnome-maps-46.11/data/shields/shield_us_wi_3.svg 07070100000162000081A40000000000000000000000016641340900000738000000000000000000000000000000000000003600000000gnome-maps-46.11/data/shields/shield_us_wi_rustic.svg 07070100000163000081A40000000000000000000000016641340900000188000000000000000000000000000000000000002E00000000gnome-maps-46.11/data/shields/shield_ve_t.svg 07070100000164000081A400000000000000000000000166413409000BDC25000000000000000000000000000000000000002B00000000gnome-maps-46.11/data/shields/shields.json{ "networks": { "default": { "textColor": "black", "textHaloColor": "hsl(30, 44%, 96%)", "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 } }, "CA:transcanada": { "spriteBlank": [ "shield_ca_tch_2", "shield_ca_tch_3" ], "textColor": "#006747", "padding": { "left": 5, "right": 5, "top": 7, "bottom": 5 } }, "CA:transcanada:namedRoute": { "noref": { "spriteBlank": "shield_ca_tch_2" } }, "CA:AB:primary": { "shapeBlank": { "drawFunc": "pentagon", "params": { "pointUp": false, "yOffset": 5, "sideAngle": 0, "fillColor": "white", "strokeColor": "black", "radius1": 2, "radius2": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 6 }, "textColor": "black" }, "CA:AB:secondary": { "shapeBlank": { "drawFunc": "ellipse", "params": { "fillColor": "white", "strokeColor": "black", "rectWidth": 30 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 2 }, "textColor": "black" }, "CA:BC": { "spriteBlank": [ "shield_ca_bc_2", "shield_ca_bc_3" ], "textColor": "#003f87", "padding": { "left": 3, "right": 3, "top": 5.5, "bottom": 4.5 } }, "CA:MB:PTH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "pointUp": false, "yOffset": 5, "sideAngle": 0, "fillColor": "white", "strokeColor": "black", "radius1": 2, "radius2": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 6 }, "textColor": "black" }, "CA:MB:PR": { "shapeBlank": { "drawFunc": "ellipse", "params": { "fillColor": "black", "strokeColor": "white", "rectWidth": 30 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 2 }, "textColor": "white" }, "CA:MB:Winnipeg": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "CA:NB:tertiary": { "spriteBlank": "shield_ca_nb", "textColor": "black", "padding": { "left": 4, "right": 5, "top": 5, "bottom": 5 } }, "CA:NB:secondary": { "spriteBlank": "shield_ca_nb", "textColor": "black", "padding": { "left": 4, "right": 5, "top": 5, "bottom": 5 }, "colorLighten": "#003f87" }, "CA:NB:primary": { "spriteBlank": "shield_ca_nb", "textColor": "black", "padding": { "left": 4, "right": 5, "top": 5, "bottom": 5 }, "colorLighten": "#006747" }, "CA:NL": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "#006747", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "CA:NS:H": { "shapeBlank": { "drawFunc": "escutcheon", "params": { "yOffset": 12, "fillColor": "#003f87", "strokeColor": "white", "radius": 0, "outlineWidth": 1 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 6 }, "textColor": "white" }, "CA:NS:T": { "spriteBlank": [ "shield_badge_2", "shield_badge_3" ], "textColor": "black", "padding": { "left": 3, "right": 3, "top": 4, "bottom": 5 } }, "CA:NS:R": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "CA:NT": { "spriteBlank": "shield_ca_nt", "textColor": "white", "padding": { "left": 2, "right": 2, "top": 9, "bottom": 3 } }, "CA:ON:primary": { "spriteBlank": "shield_ca_on_primary", "textColor": "black", "padding": { "left": 3.5, "right": 3.5, "top": 6, "bottom": 2 }, "overrideByRef": { "QEW": { "textColor": "#003f87", "colorLighten": "#003f87", "colorDarken": "#ffcd00" } } }, "CA:ON:primary:Toll": { "spriteBlank": "shield_ca_on_primary", "textColor": "white", "padding": { "left": 3.5, "right": 3.5, "top": 6, "bottom": 2 }, "colorLighten": "white", "colorDarken": "#003f87" }, "CA:ON:private_toll": { "banners": [ "ETR" ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "#003f87", "radius": 10 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 2 }, "textColor": "black" }, "CA:ON:secondary": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "shortSideUp": true, "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 4, "bottom": 2 }, "textColor": "black" }, "CA:ON:tertiary": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "CA:ON:Halton": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#006747", "strokeColor": "#ffcd00", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "#ffcd00" }, "CA:ON:Peel": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "black", "strokeColor": "#ffcd00", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "#ffcd00" }, "CA:ON:Simcoe": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "#003f87", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "#003f87" }, "CA:ON:Grey": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#003f87", "strokeColor": "white", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "CA:ON:Hamilton": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#003f87", "strokeColor": "white", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "CA:ON:Niagara": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#003f87", "strokeColor": "white", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "CA:ON:Brant": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "CA:ON:Bruce": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "CA:ON:Chatham-Kent": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "CA:ON:Cornwall": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "CA:ON:Dufferin": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "CA:ON:Durham": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "CA:ON:Elgin": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "CA:ON:Essex": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "CA:ON:Frontenac:Central Frontenac": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "CA:ON:Frontenac:Frontenac Islands": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "CA:ON:Frontenac:North Frontenac": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "CA:ON:Frontenac:South Frontenac": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "CA:ON:Greater Sudbury": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "CA:ON:Haldimand": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "CA:ON:Haliburton": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "CA:ON:Hastings:Carlow/Mayo": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "CA:ON:Hastings:Hastings Highlands": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "CA:ON:Hastings:Limerick": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "CA:ON:Hastings:Tyendinaga": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "CA:ON:Huron": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "CA:ON:Kawartha Lakes": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "CA:ON:Kingston": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "CA:ON:Lambton": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "CA:ON:Lanark": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "CA:ON:Leeds and Grenville": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "CA:ON:Lennox and Addington": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "CA:ON:Middlesex": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "CA:ON:Muskoka": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "CA:ON:Norfolk": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "CA:ON:Northumberland": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "CA:ON:Ottawa": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "CA:ON:Oxford": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "CA:ON:Perth": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "CA:ON:Peterborough": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "CA:ON:Prescott and Russell": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "CA:ON:Prince Edward": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "CA:ON:Quinte West": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "CA:ON:Renfrew": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "CA:ON:Stormont, Dundas and Glengarry": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "CA:ON:Waterloo": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "CA:ON:Wellington": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "CA:ON:York": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "CA:ON:Hastings:Wollaston": { "banners": [ "TWP" ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "CA:ON:Waterloo:Wellesley": { "shapeBlank": { "drawFunc": "ellipse", "params": { "fillColor": "white", "strokeColor": "black" } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 2 }, "textColor": "black" }, "CA:ON:Waterloo:Woolwich": { "shapeBlank": { "drawFunc": "ellipse", "params": { "fillColor": "white", "strokeColor": "black" } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 2 }, "textColor": "black" }, "CA:ON:Waterloo:North Dumfries": { "banners": [ "TWP" ], "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "CA:ON:Waterloo:Wilmot": { "banners": [ "TWP" ], "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "CA:ON:Brant:Highway": { "banners": [ "HWY" ], "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "CA:ON:Durham:Highway": { "banners": [ "HWY" ], "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "CA:ON:Haldimand:Highway": { "banners": [ "HWY" ], "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "CA:ON:Norfolk:Highway": { "banners": [ "HWY" ], "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "CA:ON:Muskoka:West": { "banners": [ "WEST" ], "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "CA:PE": { "spriteBlank": "shield_ca_pe", "textColor": "black", "padding": { "left": 2, "right": 2, "top": 5, "bottom": 5 } }, "CA:QC:A": { "spriteBlank": [ "shield_ca_qc_a_2", "shield_ca_qc_a_3" ], "textColor": "white", "padding": { "left": 2, "right": 2, "top": 5.5, "bottom": 4.5 } }, "CA:QC:R": { "spriteBlank": "shield_ca_qc_r", "textColor": "white", "padding": { "left": 2, "right": 2, "top": 5, "bottom": 5 } }, "CA:SK:primary": { "shapeBlank": { "drawFunc": "pentagon", "params": { "pointUp": false, "yOffset": 5, "sideAngle": 0, "fillColor": "#003f87", "strokeColor": "white", "radius1": 2, "radius2": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 6 }, "textColor": "white" }, "CA:SK:secondary": { "spriteBlank": "shield_ca_sk_secondary", "textColor": "#006747", "padding": { "left": 2, "right": 2, "top": 11, "bottom": 2 } }, "CA:SK:tertiary": { "shapeBlank": { "drawFunc": "pentagon", "params": { "pointUp": false, "yOffset": 5, "sideAngle": 0, "fillColor": "white", "strokeColor": "#003f87", "radius1": 2, "radius2": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 6 }, "textColor": "#003f87" }, "CA:YT": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "#bf2033", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "#bf2033", "overrideByRef": { "2": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "#ce9d00", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "#ce9d00" }, "3": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "#ce9d00", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "#ce9d00" }, "5": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "#003f87", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "#003f87" }, "6": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "#006747", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "#006747" }, "11": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "#003f87", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "#003f87" } } }, "HT:RD-road": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "HT:RN-road": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "MX:MX": { "spriteBlank": "shield_mx_mx", "padding": { "left": 2, "right": 2, "top": 3, "bottom": 2 } }, "US:I": { "spriteBlank": [ "shield_us_interstate_2", "shield_us_interstate_3" ], "textLayout": { "constraintFunc": "southHalfEllipse" }, "textColor": "white", "padding": { "left": 4, "right": 4, "top": 5.5, "bottom": 4.5 } }, "US:I:Alternate": { "banners": [ "ALT" ], "spriteBlank": [ "shield_us_interstate_2", "shield_us_interstate_3" ], "textLayout": { "constraintFunc": "southHalfEllipse" }, "textColor": "white", "padding": { "left": 4, "right": 4, "top": 5.5, "bottom": 4.5 } }, "US:I:Future": { "banners": [ "FUT" ], "spriteBlank": [ "shield_us_interstate_2", "shield_us_interstate_3" ], "textLayout": { "constraintFunc": "southHalfEllipse" }, "textColor": "white", "padding": { "left": 4, "right": 4, "top": 5.5, "bottom": 4.5 } }, "US:I:Truck": { "banners": [ "TRK" ], "spriteBlank": [ "shield_us_interstate_2", "shield_us_interstate_3" ], "textLayout": { "constraintFunc": "southHalfEllipse" }, "textColor": "white", "padding": { "left": 4, "right": 4, "top": 5.5, "bottom": 4.5 } }, "US:I:Express": { "banners": [ "EXPR" ], "spriteBlank": [ "shield_us_interstate_2", "shield_us_interstate_3" ], "textLayout": { "constraintFunc": "southHalfEllipse" }, "textColor": "white", "padding": { "left": 4, "right": 4, "top": 5.5, "bottom": 4.5 } }, "US:I:Express:Toll": { "banners": [ "EXPR" ], "spriteBlank": [ "shield_us_interstate_2", "shield_us_interstate_3" ], "textLayout": { "constraintFunc": "southHalfEllipse" }, "textColor": "white", "padding": { "left": 4, "right": 4, "top": 5.5, "bottom": 4.5 } }, "US:I:Business:Loop": { "spriteBlank": [ "shield_us_interstate_business_2", "shield_us_interstate_business_3" ], "textLayout": { "constraintFunc": "southHalfEllipse" }, "textColor": "white", "padding": { "left": 4, "right": 4, "top": 5.5, "bottom": 4.5 } }, "US:I:Business:Spur": { "spriteBlank": [ "shield_us_interstate_business_2", "shield_us_interstate_business_3" ], "textLayout": { "constraintFunc": "southHalfEllipse" }, "textColor": "white", "padding": { "left": 4, "right": 4, "top": 5.5, "bottom": 4.5 } }, "US:I:Downtown:Loop": { "spriteBlank": [ "shield_us_interstate_business_2", "shield_us_interstate_business_3" ], "textLayout": { "constraintFunc": "southHalfEllipse" }, "textColor": "white", "padding": { "left": 4, "right": 4, "top": 5.5, "bottom": 4.5 } }, "US:I:Downtown:Spur": { "spriteBlank": [ "shield_us_interstate_business_2", "shield_us_interstate_business_3" ], "textLayout": { "constraintFunc": "southHalfEllipse" }, "textColor": "white", "padding": { "left": 4, "right": 4, "top": 5.5, "bottom": 4.5 } }, "US:US": { "spriteBlank": [ "shield_badge_2", "shield_badge_3" ], "textColor": "black", "padding": { "left": 3, "right": 3, "top": 4, "bottom": 5 } }, "US:US:Truck": { "banners": [ "TRK" ], "spriteBlank": [ "shield_badge_2", "shield_badge_3" ], "textColor": "black", "padding": { "left": 3, "right": 3, "top": 4, "bottom": 5 } }, "US:US:Truck:Bypass": { "banners": [ "TRK", "BYP" ], "spriteBlank": [ "shield_badge_2", "shield_badge_3" ], "textColor": "black", "padding": { "left": 3, "right": 3, "top": 4, "bottom": 5 } }, "US:US:Spur": { "banners": [ "SPUR" ], "spriteBlank": [ "shield_badge_2", "shield_badge_3" ], "textColor": "black", "padding": { "left": 3, "right": 3, "top": 4, "bottom": 5 } }, "US:US:Connector": { "banners": [ "CONN" ], "spriteBlank": [ "shield_badge_2", "shield_badge_3" ], "textColor": "black", "padding": { "left": 3, "right": 3, "top": 4, "bottom": 5 } }, "US:US:Bypass": { "banners": [ "BYP" ], "spriteBlank": [ "shield_badge_2", "shield_badge_3" ], "textColor": "black", "padding": { "left": 3, "right": 3, "top": 4, "bottom": 5 } }, "US:US:Business": { "banners": [ "BUS" ], "spriteBlank": [ "shield_badge_2", "shield_badge_3" ], "textColor": "black", "padding": { "left": 3, "right": 3, "top": 4, "bottom": 5 } }, "US:US:Business:Alternate": { "banners": [ "BUS", "ALT" ], "spriteBlank": [ "shield_badge_2", "shield_badge_3" ], "textColor": "black", "padding": { "left": 3, "right": 3, "top": 4, "bottom": 5 } }, "US:US:Business:Truck": { "banners": [ "BUS", "TRK" ], "spriteBlank": [ "shield_badge_2", "shield_badge_3" ], "textColor": "black", "padding": { "left": 3, "right": 3, "top": 4, "bottom": 5 } }, "US:US:Alternate": { "banners": [ "ALT" ], "spriteBlank": [ "shield_badge_2", "shield_badge_3" ], "textColor": "black", "padding": { "left": 3, "right": 3, "top": 4, "bottom": 5 } }, "US:US:Alternate:Truck:Business": { "banners": [ "ALT", "TRK", "BUS" ], "spriteBlank": [ "shield_badge_2", "shield_badge_3" ], "textColor": "black", "padding": { "left": 3, "right": 3, "top": 4, "bottom": 5 } }, "US:US:Historic": { "banners": [ "HIST" ], "bannerTextColor": "#693f23", "spriteBlank": [ "shield_badge_crossbar_2", "shield_badge_crossbar_3" ], "textColor": "#693f23", "padding": { "left": 3, "right": 3, "top": 6, "bottom": 4 }, "colorLighten": "#693f23" }, "US:BIA": { "spriteBlank": "shield_us_bia", "textColor": "black", "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 1, "right": 1, "top": 3, "bottom": 5 } }, "US:NPS:Blue_Ridge": { "noref": { "spriteBlank": "shield_us_nps_brp" } }, "US:NPS:Natchez_Trace": { "noref": { "spriteBlank": "shield_us_nps_ntp" } }, "US:GRR": { "noref": { "spriteBlank": "shield_us_grr" } }, "US:GLST": { "noref": { "spriteBlank": "shield_us_glst" } }, "GLCT": { "notext": true, "overrideByRef": { "LECT": { "spriteBlank": "shield_glct_lect" }, "LHCT": { "spriteBlank": "shield_glct_lhct" }, "LMCT": { "spriteBlank": "shield_glct_lmct", "colorLighten": "#006747" }, "LSCT": { "spriteBlank": "shield_glct_lsct" } } }, "GLCT:Loop": { "banners": [ "LOOP" ], "bannerTextColor": "#693f23", "notext": true, "overrideByRef": { "LMCT": { "spriteBlank": "shield_glct_lmct", "colorLighten": "#693f23" } } }, "US:AK": { "spriteBlank": "shield_us_ak", "textColor": "black", "padding": { "left": 5.5, "right": 1.5, "top": 1.5, "bottom": 9 } }, "US:AL": { "spriteBlank": [ "shield_us_al_2", "shield_us_al_3" ], "textColor": "black", "padding": { "left": 3, "right": 3, "top": 3, "bottom": 6 } }, "US:AL:Truck": { "banners": [ "TRK" ], "spriteBlank": [ "shield_us_al_2", "shield_us_al_3" ], "textColor": "black", "padding": { "left": 3, "right": 3, "top": 3, "bottom": 6 } }, "US:AL:Autauga": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Baldwin": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Barbour": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Bibb": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Blount": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Bullock": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Butler": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Calhoun": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Chambers": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Cherokee": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Chilton": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Choctaw": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Clarke": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Clay": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Cleburne": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Coffee": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Colbert": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Conecuh": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Coosa": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Covington": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Crenshaw": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Cullman": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Dale": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Dallas": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:DeKalb": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Elmore": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Escambia": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Etowah": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Fayette": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Franklin": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Geneva": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Greene": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Hale": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Henry": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Houston": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Jackson": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Jefferson": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Lamar": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Lauderdale": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Lawrence": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Lee": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Limestone": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Lowndes": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Macon": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Madison": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Marengo": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Marion": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Marshall": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Mobile": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Monroe": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Montgomery": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Morgan": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Perry": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Pike": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Pikens": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Randolph": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Russell": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Shelby": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Saint_Clair": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Sumter": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Talladega": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Tallapoosa": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Tuscaloosa": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Walker": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Washington": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Wilcox": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AL:Winston": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AZ:Scenic": { "spriteBlank": "shield_us_az_scenic", "notext": true }, "US:AR": { "spriteBlank": [ "shield_us_ar_2", "shield_us_ar_3" ], "textColor": "black", "padding": { "left": 3, "right": 4, "top": 4, "bottom": 5 }, "overrideByRef": { "980": { "textColor": "white", "colorLighten": "white", "colorDarken": "#003f87" } } }, "US:AR:Calhoun": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AR:Carroll": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AR:Clay": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AR:Columbia": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AR:Craighead": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AR:Cross": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AR:Dallas": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AR:Greene": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AR:Hempstead": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AR:Jackson": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AR:Jefferson": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AR:Johnson": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AR:Lafayette": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AR:Lawrence": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AR:Little_River": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AR:Madison": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AR:Miller": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AR:Mississippi": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AR:Nevada": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AR:Ouachita": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AR:Phillips": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AR:Polk": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AR:Saint_Francis": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AR:Union": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AR:Washington": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AR:Woodruff": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AR:Lee": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:AR:Izard": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:AR:Baxter": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:AS": { "spriteBlank": "shield_us_as", "textColor": "white", "padding": { "left": 4, "right": 4, "top": 9.5, "bottom": 2 } }, "US:AZ": { "spriteBlank": [ "shield_us_az_2", "shield_us_az_3" ], "textColor": "black", "padding": { "left": 4, "right": 3, "top": 3, "bottom": 4 } }, "US:AZ:Spur": { "banners": [ "SPUR" ], "spriteBlank": [ "shield_us_az_2", "shield_us_az_3" ], "textColor": "black", "padding": { "left": 4, "right": 3, "top": 3, "bottom": 4 } }, "US:AZ:Loop": { "banners": [ "LOOP" ], "spriteBlank": [ "shield_us_az_2", "shield_us_az_3" ], "textColor": "black", "padding": { "left": 4, "right": 3, "top": 3, "bottom": 4 } }, "US:AZ:Business": { "banners": [ "BUS" ], "spriteBlank": [ "shield_us_az_2", "shield_us_az_3" ], "textColor": "black", "padding": { "left": 4, "right": 3, "top": 3, "bottom": 4 } }, "US:AZ:Coconino": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AZ:Mohave": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AZ:Yavapai": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:AZ:Apache": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:CA": { "spriteBlank": [ "shield_us_ca_2", "shield_us_ca_3" ], "textColor": "white", "padding": { "left": 4, "right": 4, "top": 6, "bottom": 4 } }, "US:CA:Business": { "banners": [ "BUS" ], "bannerTextColor": "#006747", "spriteBlank": [ "shield_us_ca_2", "shield_us_ca_3" ], "textColor": "white", "padding": { "left": 4, "right": 4, "top": 6, "bottom": 4 } }, "US:CA:CR": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:CA:Mendocino": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:CA:San_Francisco:49_Mile_Scenic_Drive": { "spriteBlank": "shield_us_ca_sf_49", "notext": true }, "US:CO": { "spriteBlank": "shield_us_co", "textColor": "black", "padding": { "left": 2, "right": 2, "top": 9.5, "bottom": 2 } }, "US:CO:E470": { "spriteBlank": "shield_us_co_e470", "textColor": "black", "padding": { "left": 2, "right": 2, "top": 10, "bottom": 2 } }, "US:CO:Archuleta": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:CO:Chaffee": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:CO:Conejos": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:CO:Grand": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:CO:Gunnison": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:CO:Jackson": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:CO:Lake": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:CO:La_Plata": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:CO:Larimer": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:CO:Moffat": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:CO:Park": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:CO:Rio_Blanco": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:CO:Rio_Grande": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:CO:Saguache": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:CO:San_Juan": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:CO:Teller": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:CO:Fremont": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:CO:Ouray": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:CO:Routt": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:CO:Douglas": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#006747", "strokeColor": "white", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:CO:Weld:WCP": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#006747", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#006747", "textHaloColor": "white" }, "US:CT": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:CT:Parkway": { "notext": true, "overrideByName": { "Merritt Parkway": { "spriteBlank": "shield_us_ct_parkway_merritt" } } }, "US:DC": { "spriteBlank": "shield_us_dc", "textColor": "black", "textHaloColor": "white", "padding": { "left": 2, "right": 2, "top": 10, "bottom": 4 } }, "US:DE": { "shapeBlank": { "drawFunc": "ellipse", "params": { "fillColor": "white", "strokeColor": "black" } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 2 }, "textColor": "black" }, "US:DE:Alternate": { "banners": [ "ALT" ], "shapeBlank": { "drawFunc": "ellipse", "params": { "fillColor": "white", "strokeColor": "black" } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 2 }, "textColor": "black" }, "US:DE:Business": { "banners": [ "BUS" ], "shapeBlank": { "drawFunc": "ellipse", "params": { "fillColor": "white", "strokeColor": "black" } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 2 }, "textColor": "black" }, "US:DE:Truck": { "banners": [ "TRK" ], "shapeBlank": { "drawFunc": "ellipse", "params": { "fillColor": "white", "strokeColor": "black" } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 2 }, "textColor": "black" }, "US:FL": { "spriteBlank": [ "shield_us_fl_2", "shield_us_fl_3" ], "textColor": "black", "padding": { "left": 2, "right": 4.5, "top": 6, "bottom": 4 } }, "US:FL:Toll": { "spriteBlank": "shield_us_fl_toll", "textColor": "black", "padding": { "left": 2, "right": 5, "top": 7.5, "bottom": 4.5 } }, "US:FL:Turnpike": { "noref": { "spriteBlank": "shield_us_fl_turnpike" } }, "US:FL:CR": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:GA": { "spriteBlank": [ "shield_us_ga_2", "shield_us_ga_3" ], "textColor": "black", "padding": { "left": 3, "right": 4, "top": 5, "bottom": 4 }, "overrideByRef": { "515": { "textColor": "#003f87", "colorLighten": "#003f87" }, "520": { "textColor": "#006747", "colorLighten": "#006747" } } }, "US:GA:Truck:Bypass": { "banners": [ "TRK", "BYP" ], "spriteBlank": [ "shield_us_ga_2", "shield_us_ga_3" ], "textColor": "black", "padding": { "left": 3, "right": 4, "top": 5, "bottom": 4 } }, "US:GA:Spur": { "banners": [ "SPUR" ], "spriteBlank": [ "shield_us_ga_2", "shield_us_ga_3" ], "textColor": "black", "padding": { "left": 3, "right": 4, "top": 5, "bottom": 4 } }, "US:GA:Loop": { "banners": [ "LOOP" ], "spriteBlank": [ "shield_us_ga_2", "shield_us_ga_3" ], "textColor": "black", "padding": { "left": 3, "right": 4, "top": 5, "bottom": 4 } }, "US:GA:Connector": { "banners": [ "CONN" ], "spriteBlank": [ "shield_us_ga_2", "shield_us_ga_3" ], "textColor": "black", "padding": { "left": 3, "right": 4, "top": 5, "bottom": 4 } }, "US:GA:Bypass": { "banners": [ "BYP" ], "spriteBlank": [ "shield_us_ga_2", "shield_us_ga_3" ], "textColor": "black", "padding": { "left": 3, "right": 4, "top": 5, "bottom": 4 } }, "US:GA:Business": { "banners": [ "BUS" ], "spriteBlank": [ "shield_us_ga_2", "shield_us_ga_3" ], "textColor": "black", "padding": { "left": 3, "right": 4, "top": 5, "bottom": 4 } }, "US:GA:Alternate": { "banners": [ "ALT" ], "spriteBlank": [ "shield_us_ga_2", "shield_us_ga_3" ], "textColor": "black", "padding": { "left": 3, "right": 4, "top": 5, "bottom": 4 } }, "US:GU": { "spriteBlank": [ "shield_us_gu_2", "shield_us_gu_3" ], "textLayout": { "constraintFunc": "ellipse" }, "textColor": "white", "padding": { "left": 1, "right": 1, "top": 4, "bottom": 4 } }, "US:HI": { "spriteBlank": [ "shield_tri_convex_2", "shield_tri_convex_3" ], "textLayout": { "constraintFunc": "ellipse" }, "textColor": "black", "padding": { "left": 2, "right": 2, "top": 5, "bottom": 1 }, "verticalReflect": true }, "US:IA": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 10 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 2 }, "textColor": "black" }, "US:IA:CR": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:ID": { "spriteBlank": [ "shield_us_id_2", "shield_us_id_3" ], "textColor": "black", "padding": { "left": 5.5, "right": 1.5, "top": 1.5, "bottom": 9 } }, "US:IL": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:IL:Adams": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:IL:Boone": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:IL:Bureau": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:IL:Champaign": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:IL:Christian": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:IL:Clay": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:IL:Clinton": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:IL:Coles": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:IL:Cumberland": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:IL:DeKalb": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:IL:De_Witt": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:IL:Douglas": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:IL:DuPage": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:IL:Edgar": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:IL:Effingham": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:IL:Fayette": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:IL:Henderson": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:IL:Henry": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:IL:Iroquois": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:IL:Kankakee": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:IL:Kendall": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:IL:Knox": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:IL:La_Salle": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:IL:Lake": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:IL:Livingston": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:IL:Logan": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:IL:McDonough": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:IL:McHenry": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:IL:McLean": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:IL:Macon": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:IL:Mason": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:IL:Menard": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:IL:Peoria": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:IL:Piatt": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:IL:Rock_Island": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:IL:Sangamon": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:IL:Schuyler": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:IL:Shelby": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:IL:Saint_Clair": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:IL:Winnebago": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:IL:Woodford": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:IL:Cook:Chicago:Skyway": { "noref": { "spriteBlank": "shield_us_il_skyway" } }, "US:IN": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:IN:Toll": { "noref": { "spriteBlank": "shield_us_in_toll" } }, "US:IN:JHMHT": { "spriteBlank": [ "shield_us_in_jhmht" ], "notext": true }, "US:KS": { "spriteBlank": [ "shield_us_ks_2", "shield_us_ks_3" ], "textColor": "black", "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 2 } }, "US:KS:Turnpike": { "noref": { "spriteBlank": "shield_us_ks_turnpike" } }, "US:KS:Clay": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:KS:Cowley": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:KS:Decatur": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:KS:Douglas": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:KS:Harvey": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:KS:Leavenworth": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:KS:Linn": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:KS:McPherson": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:KS:Ness": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:KS:Rawlins": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:KS:Riley": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:KS:Sheridan": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:KY": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 10 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 2 }, "textColor": "black" }, "US:KY:Business": { "banners": [ "BUS" ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 10 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 2 }, "textColor": "black" }, "US:KY:Parkway": { "spriteBlank": "shield_us_ky_parkway", "textColor": "#003f87", "padding": { "left": 2, "right": 2, "top": 2, "bottom": 6 }, "refsByName": { "Audubon Parkway": "AU", "Bluegrass Parkway": "BG", "Bluegrass Pkwy": "BG", "Cumberland Parkway": "LN", "Cumberland Pkwy": "LN", "Hal Rogers Parkway": "HR", "Hal Rogers Pkwy": "HR", "Mountain Parkway": "MP", "Mountain Pkwy": "MP", "Purchase Parkway": "JC", "Purchase Pkwy": "JC", "Western Kentucky Parkway": "WK", "Western Kentucky Pkwy": "WK" } }, "US:KY:AA": { "spriteBlank": "shield_us_ky_parkway", "textColor": "#003f87", "padding": { "left": 2, "right": 2, "top": 2, "bottom": 6 }, "refsByName": { "Audubon Parkway": "AU", "Bluegrass Parkway": "BG", "Bluegrass Pkwy": "BG", "Cumberland Parkway": "LN", "Cumberland Pkwy": "LN", "Hal Rogers Parkway": "HR", "Hal Rogers Pkwy": "HR", "Mountain Parkway": "MP", "Mountain Pkwy": "MP", "Purchase Parkway": "JC", "Purchase Pkwy": "JC", "Western Kentucky Parkway": "WK", "Western Kentucky Pkwy": "WK" } }, "US:LA": { "spriteBlank": [ "shield_us_la_2", "shield_us_la_3" ], "textColor": "black", "padding": { "left": 2.5, "right": 2.5, "top": 7, "bottom": 3 } }, "US:LA:Business": { "banners": [ "BUS" ], "spriteBlank": [ "shield_us_la_2", "shield_us_la_3" ], "textColor": "black", "padding": { "left": 2.5, "right": 2.5, "top": 7, "bottom": 3 } }, "US:LA:Spur": { "banners": [ "SPUR" ], "spriteBlank": [ "shield_us_la_2", "shield_us_la_3" ], "textColor": "black", "padding": { "left": 2.5, "right": 2.5, "top": 7, "bottom": 3 } }, "US:LA:Truck": { "banners": [ "TRK" ], "spriteBlank": [ "shield_us_la_2", "shield_us_la_3" ], "textColor": "black", "padding": { "left": 2.5, "right": 2.5, "top": 7, "bottom": 3 } }, "US:LA:Bienville": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:LA:Caddo": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:LA:Cameron": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:LA:De_Soto": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:LA:Grant": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:LA:Iberia": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:LA:Lincoln": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:LA:Livingston": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:LA:Natchitoches": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:LA:Ouachita": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:LA:Rapides": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:LA:Red_River": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:LA:Richland": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:LA:Saint_Mary": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:LA:Terrebonne": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:LA:Union": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:LA:Webster": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:LA:Winn": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:LA:Causeway": { "spriteBlank": "shield_us_la_causeway", "notext": true }, "US:MA": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MA:Turnpike": { "noref": { "spriteBlank": "shield_us_ma_pike" } }, "US:MD": { "spriteBlank": [ "shield_us_md_2", "shield_us_md_3" ], "textColor": "black", "padding": { "left": 2, "right": 2, "top": 6, "bottom": 2 } }, "US:MD:Alternate": { "banners": [ "ALT" ], "spriteBlank": [ "shield_us_md_2", "shield_us_md_3" ], "textColor": "black", "padding": { "left": 2, "right": 2, "top": 6, "bottom": 2 } }, "US:MD:Bypass": { "banners": [ "BYP" ], "spriteBlank": [ "shield_us_md_2", "shield_us_md_3" ], "textColor": "black", "padding": { "left": 2, "right": 2, "top": 6, "bottom": 2 } }, "US:MD:Business": { "banners": [ "BUS" ], "bannerTextColor": "#006747", "spriteBlank": [ "shield_us_md_2", "shield_us_md_3" ], "textColor": "#006747", "padding": { "left": 2, "right": 2, "top": 6, "bottom": 2 }, "colorLighten": "#006747" }, "US:ME": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:ME:Business": { "banners": [ "BUS" ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:ME:Turnpike": { "spriteBlank": "shield_us_me_turnpike", "notext": true }, "US:MI": { "shapeBlank": { "drawFunc": "diamond", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "diamond" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 1 }, "textColor": "black", "overrideByRef": { "185": { "shapeBlank": { "drawFunc": "diamond", "params": { "fillColor": "#693f23", "strokeColor": "white", "radius": 0, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "diamond" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 1 }, "textColor": "white" } } }, "US:MI:Business": { "banners": [ "BUS" ], "shapeBlank": { "drawFunc": "diamond", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "diamond" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 1 }, "textColor": "black" }, "US:MI:Connector": { "banners": [ "CONN" ], "shapeBlank": { "drawFunc": "diamond", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "diamond" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 1 }, "textColor": "black" }, "US:MI:CR": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:MI:Benzie": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:MI:Gogebic": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:MI:Kalkaska": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:MI:Montcalm": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:MI:Roscommon": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:MI:Delta": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:MI:Manistee": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:MI:Iron": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MI:Luce": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MI:Marquette": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MI:Oscoda": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MI:Schoolcraft": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN": { "spriteBlank": [ "shield_us_mn_2", "shield_us_mn_3" ], "textColor": "white", "padding": { "left": 4, "right": 4, "top": 7, "bottom": 3 } }, "US:MN:Aitkin:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Aitkin:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Aitkin:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Anoka:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Anoka:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Anoka:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Becker:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Becker:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Becker:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Beltrami:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Beltrami:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Beltrami:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Benton:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Benton:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Benton:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Big_Stone:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Big_Stone:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Big_Stone:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Blue_Earth:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Blue_Earth:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Blue_Earth:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Brown:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Brown:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Brown:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Carlton:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Carlton:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Carlton:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Carver:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Carver:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Carver:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Cass:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Cass:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Cass:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Chippewa:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Chippewa:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Chippewa:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Chisago:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Chisago:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Chisago:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Clay:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Clay:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Clay:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Clearwater:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Clearwater:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Clearwater:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Cook:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Cook:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Cook:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Cottonwood:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Cottonwood:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Cottonwood:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Crow_Wing:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Crow_Wing:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Crow_Wing:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Dakota:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Dakota:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Dakota:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Dodge:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Dodge:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Dodge:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Douglas:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Douglas:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Douglas:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Faribault:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Faribault:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Faribault:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Fillmore:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Fillmore:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Fillmore:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Freeborn:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Freeborn:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Freeborn:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Goodhue:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Goodhue:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Goodhue:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Grant:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Grant:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Grant:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Hennepin:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Hennepin:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Hennepin:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Houston:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Houston:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Houston:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Hubbard:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Hubbard:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Hubbard:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Isanti:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Isanti:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Isanti:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Itasca:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Itasca:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Itasca:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Jackson:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Jackson:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Jackson:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Kanabec:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Kanabec:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Kanabec:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Kandiyohi:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Kandiyohi:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Kandiyohi:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Kittson:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Kittson:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Kittson:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Koochiching:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Koochiching:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Koochiching:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Lac_qui_Parle:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Lac_qui_Parle:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Lac_qui_Parle:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Lake:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Lake:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Lake:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Lake_of_the_Woods:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Lake_of_the_Woods:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Lake_of_the_Woods:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Le_Sueur:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Le_Sueur:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Le_Sueur:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Lincoln:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Lincoln:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Lincoln:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Lyon:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Lyon:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Lyon:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Mahnomen:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Mahnomen:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Mahnomen:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Marshall:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Marshall:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Marshall:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Martin:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Martin:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Martin:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:McLeod:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:McLeod:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:McLeod:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Meeker:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Meeker:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Meeker:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Mille_Lacs:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Mille_Lacs:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Mille_Lacs:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Morrison:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Morrison:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Morrison:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Mower:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Mower:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Mower:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Murray:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Murray:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Murray:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Nicollet:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Nicollet:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Nicollet:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Nobles:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Nobles:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Nobles:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Norman:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Norman:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Norman:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Olmsted:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Olmsted:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Olmsted:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Otter_Tail:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Otter_Tail:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Otter_Tail:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Pennington:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Pennington:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Pennington:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Pine:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Pine:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Pine:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Pipestone:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Pipestone:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Pipestone:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Polk:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Polk:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Polk:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Pope:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Pope:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Pope:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Ramsey:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Ramsey:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Ramsey:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Red_Lake:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Red_Lake:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Red_Lake:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Redwood:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Redwood:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Redwood:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Renville:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Renville:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Renville:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Rice:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Rice:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Rice:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Rock:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Rock:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Rock:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Roseau:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Roseau:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Roseau:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Saint_Louis:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Saint_Louis:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Saint_Louis:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Scott:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Scott:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Scott:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Sherburne:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Sherburne:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Sherburne:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Sibley:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Sibley:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Sibley:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Stearns:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Stearns:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Stearns:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Steele:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Steele:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Steele:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Stevens:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Stevens:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Stevens:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Swift:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Swift:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Swift:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Todd:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Todd:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Todd:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Traverse:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Traverse:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Traverse:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Wabasha:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Wabasha:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Wabasha:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Wadena:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Wadena:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Wadena:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Waseca:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Waseca:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Waseca:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Washington:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Washington:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Washington:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Watonwan:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Watonwan:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Watonwan:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Wilkin:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Wilkin:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Wilkin:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Winona:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Winona:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Winona:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Wright:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Wright:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Wright:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MN:Yellow_Medicine:CSAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:MN:Yellow_Medicine:CR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MN:Yellow_Medicine:Park_Access": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "white" }, "US:MO": { "spriteBlank": [ "shield_us_mo_2", "shield_us_mo_3" ], "textColor": "black", "padding": { "left": 4, "right": 4, "top": 2, "bottom": 5 } }, "US:MO:Alternate": { "banners": [ "ALT" ], "spriteBlank": [ "shield_us_mo_2", "shield_us_mo_3" ], "textColor": "black", "padding": { "left": 4, "right": 4, "top": 2, "bottom": 5 } }, "US:MO:Business": { "banners": [ "BUS" ], "spriteBlank": [ "shield_us_mo_2", "shield_us_mo_3" ], "textColor": "black", "padding": { "left": 4, "right": 4, "top": 2, "bottom": 5 } }, "US:MO:Spur": { "banners": [ "SPUR" ], "spriteBlank": [ "shield_us_mo_2", "shield_us_mo_3" ], "textColor": "black", "padding": { "left": 4, "right": 4, "top": 2, "bottom": 5 } }, "US:MO:Supplemental": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MO:Supplemental:Spur": { "banners": [ "SPUR" ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MO:Bollinger": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:MO:Butler": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:MO:Cape_Girardeau": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:MO:Dunklin": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:MO:Madison": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:MO:Mississippi": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:MO:Perry": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:MO:Stoddard": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:MO:Taney": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:MO:Wayne": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:MO:Lewis": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:MO:Taney:Branson": { "overrideByRef": { "Red Route": { "notext": true, "shapeBlank": { "drawFunc": "branson", "params": { "fillColor": "#bf2033", "strokeColor": "white" } } }, "Yellow Route": { "notext": true, "shapeBlank": { "drawFunc": "branson", "params": { "fillColor": "#ffcd00", "strokeColor": "#006747" } } }, "Blue Route": { "notext": true, "shapeBlank": { "drawFunc": "branson", "params": { "fillColor": "#003f87", "strokeColor": "white" } } } } }, "US:MP": { "spriteBlank": [ "shield_us_mp_2", "shield_us_mp_3" ], "textColor": "black", "padding": { "left": 4, "right": 4, "top": 2, "bottom": 2 } }, "US:MS": { "shapeBlank": { "drawFunc": "ellipse", "params": { "fillColor": "white", "strokeColor": "black" } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 2 }, "textColor": "black" }, "US:MS:Alcorn": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:MS:Calhoun": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:MS:Carroll": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:MS:Lafayette": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:MS:Lee": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:MS:Prentiss": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:MS:Smith": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:MS:Tippah": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:MS:Union": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:MS:Yalobusha": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:MT": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:MT:secondary": { "spriteBlank": "shield_us_mt_secondary", "textColor": "black", "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 1, "right": 1, "top": 4, "bottom": 8 } }, "US:MT:Dawson": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:MT:Richland": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NC": { "shapeBlank": { "drawFunc": "diamond", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "diamond" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 1 }, "textColor": "black" }, "US:NC:Bypass": { "banners": [ "BYP" ], "shapeBlank": { "drawFunc": "diamond", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "diamond" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 1 }, "textColor": "black" }, "US:NC:Business": { "banners": [ "BUS" ], "shapeBlank": { "drawFunc": "diamond", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "diamond" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 1 }, "textColor": "black" }, "US:NC:Truck": { "banners": [ "TRK" ], "shapeBlank": { "drawFunc": "diamond", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "diamond" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 1 }, "textColor": "black" }, "US:NC:Mecklenburg:Charlotte": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#006747", "strokeColor": "white", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "US:ND": { "spriteBlank": [ "shield_us_nd_2", "shield_us_nd_3" ], "textColor": "black", "padding": { "left": 2, "right": 5, "top": 4, "bottom": 4 } }, "US:ND:Alternate": { "banners": [ "ALT" ], "spriteBlank": [ "shield_us_nd_2", "shield_us_nd_3" ], "textColor": "black", "padding": { "left": 2, "right": 5, "top": 4, "bottom": 4 } }, "US:ND:Business": { "banners": [ "BUS" ], "spriteBlank": [ "shield_us_nd_2", "shield_us_nd_3" ], "textColor": "black", "padding": { "left": 2, "right": 5, "top": 4, "bottom": 4 } }, "US:ND:Truck": { "banners": [ "TRK" ], "spriteBlank": [ "shield_us_nd_2", "shield_us_nd_3" ], "textColor": "black", "padding": { "left": 2, "right": 5, "top": 4, "bottom": 4 } }, "US:ND:Barnes": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:ND:Benson": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:ND:Bottineau": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:ND:Burke": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:ND:Cass": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:ND:Cavalier": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:ND:Dickey": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:ND:Divide": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:ND:Foster": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:ND:Grand_Forks": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:ND:Griggs": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:ND:LaMoure": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:ND:McHenry": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:ND:McIntosh": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:ND:McKenzie": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:ND:McLean": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:ND:Mercer": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:ND:Morton": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:ND:Mountrail": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:ND:Nelson": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:ND:Pembina": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:ND:Ramsey": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:ND:Ransom": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:ND:Renville": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:ND:Richland": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:ND:Sargent": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:ND:Sioux": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:ND:Steele": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:ND:Stutsman": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:ND:Traill": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:ND:Walsh": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:ND:Ward": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:ND:Wells": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:ND:Williams": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:ND:Eddy": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:ND:Kidder": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:ND:Towner": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:NE": { "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "US:NE:Business": { "banners": [ "BUS" ], "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "US:NE:Link": { "banners": [ "LINK" ], "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "US:NE:Rec": { "banners": [ "REC" ], "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "US:NE:Spur": { "banners": [ "SPUR" ], "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "US:NE:Truck": { "banners": [ "TRK" ], "shapeBlank": { "drawFunc": "trapezoid", "params": { "sideAngle": 0.17453292519943295, "fillColor": "white", "strokeColor": "black", "radius": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 3.76326980708465, "right": 3.76326980708465, "top": 2, "bottom": 4 }, "textColor": "black" }, "US:NE:Scenic": { "spriteBlank": "shield_us_ne_byway_noref", "notext": true }, "US:NH": { "spriteBlank": [ "shield_us_nh_2", "shield_us_nh_3" ], "textColor": "black", "padding": { "left": 4, "right": 2, "top": 4, "bottom": 5 } }, "US:NH:Bypass": { "banners": [ "BYP" ], "spriteBlank": [ "shield_us_nh_2", "shield_us_nh_3" ], "textColor": "black", "padding": { "left": 4, "right": 2, "top": 4, "bottom": 5 } }, "US:NH:Turnpike": { "notext": true, "overrideByName": { "Everett Turnpike": { "spriteBlank": "shield_us_nh_turnpike", "colorLighten": "#006747" }, "Spaulding Turnpike": { "spriteBlank": "shield_us_nh_turnpike", "colorLighten": "#003F87" } } }, "US:NJ": { "shapeBlank": { "drawFunc": "ellipse", "params": { "fillColor": "white", "strokeColor": "black" } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 2 }, "textColor": "black" }, "US:NJ:ACE": { "spriteBlank": "shield_us_nj_ace_noref", "notext": true }, "US:NJ:ACE:Connector": { "banners": [ "CONN" ], "bannerTextColor": "#003f87", "spriteBlank": "shield_us_nj_ace_noref", "notext": true }, "US:NJ:GSP": { "spriteBlank": "shield_us_nj_gsp_noref", "notext": true }, "US:NJ:NJTP": { "spriteBlank": "shield_us_nj_njtp_noref", "notext": true }, "US:NJ:CR": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NJ:Atlantic": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NJ:Burlington": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NJ:Camden": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NJ:Cape_May": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NJ:Cumberland": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NJ:Essex": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NJ:Gloucester": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NJ:Hudson": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NJ:Hunterdon": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NJ:Mercer": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NJ:Middlesex": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NJ:Monmouth": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NJ:Morris": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NJ:Ocean": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NJ:Passaic": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NJ:Salem": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NJ:Somerset": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NJ:Sussex": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NJ:Union": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NJ:Warren": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NJ:Bergen": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:NJ:CR:Spur": { "banners": [ "SPUR" ], "bannerTextColor": "#003f87", "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NJ:CR:Truck": { "banners": [ "TRK" ], "bannerTextColor": "#003f87", "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NJ:Sussex:NPS": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#693f23", "strokeColor": "white", "radius": 10 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 2 }, "textColor": "white" }, "US:NJ:Warren:NPS": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#693f23", "strokeColor": "white", "radius": 10 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 2 }, "textColor": "white" }, "US:NM": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "#df4661", "radius": 10 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 2 }, "textColor": "black" }, "US:NM:Frontage": { "spriteBlank": "shield_us_nm_frontage", "textColor": "black", "padding": { "left": 1.5, "right": 1.5, "top": 3, "bottom": 5 } }, "US:NM:Cibola": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NM:Doña_Ana": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NM:Eddy": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NM:Guadalupe": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NM:Lea": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NM:Lincoln": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NM:Luna": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NM:McKinley": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NM:Mora": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NM:Otero": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NM:Rio_Arriba": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NM:Sandoval": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NM:San_Juan": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NM:Santa_Fe": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NM:Sierra": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NM:Taos": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NM:Torrance": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NM:Union": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NM:San_Juan:NCM": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "white", "strokeColor": "#df4661", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#df4661" }, "US:NV": { "spriteBlank": "shield_us_nv", "textColor": "black", "textLayout": { "constraintFunc": "triangleDown" }, "padding": { "left": -2, "right": -2, "top": 2, "bottom": 6 } }, "US:NV:Clark": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NV:Washoe": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NY": { "spriteBlank": [ "shield_us_ny_2", "shield_us_ny_3" ], "textColor": "black", "padding": { "left": 2, "right": 2, "top": 5, "bottom": 5 } }, "US:NY:Truck": { "banners": [ "TRK" ], "spriteBlank": [ "shield_us_ny_2", "shield_us_ny_3" ], "textColor": "black", "padding": { "left": 2, "right": 2, "top": 5, "bottom": 5 } }, "US:NY:Thruway": { "noref": { "spriteBlank": "shield_us_ny_thruway" } }, "US:NY:STE": { "noref": { "spriteBlank": "shield_us_ny_ste" } }, "US:NY:Parkway": { "spriteBlank": [ "shield_us_ny_2", "shield_us_ny_3" ], "textColor": "white", "padding": { "left": 2, "right": 2, "top": 5, "bottom": 5 }, "colorLighten": "white", "colorDarken": "#006747", "refsByName": { "Bear Mountain Parkway": "BMP", "Bronx and Pelham Parkway": "PP", "Bronx River Parkway": "BRP", "Cross County Parkway": "CCP", "Hutchinson River Parkway": "HRP", "Korean War Veterans Parkway": "KWVP", "Mosholu Parkway": "MP", "Niagara Scenic Parkway": "NSP", "Pelham Parkway": "PP", "Saw Mill River Parkway": "SMP", "Sprain Brook Parkway": "SBP", "Taconic State Parkway": "TSP" } }, "US:NY:Parkway:LI": { "spriteBlank": "shield_us_ny_parkway_li", "textColor": "black", "padding": { "left": 6, "right": 2, "top": 2, "bottom": 8 } }, "US:NY:Parkway:LOSP": { "noref": { "spriteBlank": "shield_us_ny_parkway_losp" } }, "US:NY:Parkway:NYC": { "spriteBlank": "shield_us_ny_parkway_nyc", "textColor": "black", "padding": { "left": 2, "right": 2, "top": 2, "bottom": 8 } }, "US:NY:Albany": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NY:Allegany": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NY:Broome": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NY:Cattaraugus": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NY:Chautauqua": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NY:Chemung": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NY:Chenango": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NY:Clinton": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NY:Columbia": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NY:Delaware": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NY:Dutchess": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NY:Erie": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NY:Essex": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NY:Franklin": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NY:Fulton": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NY:Greene": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NY:Hamilton": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NY:Herkimer": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NY:Jefferson": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NY:Lewis": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NY:Livingston": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NY:Madison": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NY:Montgomery": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NY:Oneida": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NY:Onondaga": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NY:Orange": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NY:Oswego": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NY:Otsego": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NY:Putnam": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NY:Rensselaer": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NY:Rockland": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NY:Saint_Lawrence": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NY:Saratoga": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NY:Schoharie": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NY:Schuyler": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NY:Steuben": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NY:Suffolk": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NY:Sullivan": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NY:Tioga": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NY:Tompkins": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NY:Ulster": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NY:Warren": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NY:Washington": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:NY:Yates": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:OH": { "spriteBlank": [ "shield_us_oh_2", "shield_us_oh_3" ], "textColor": "black", "padding": { "left": 3, "right": 3, "top": 4, "bottom": 6 } }, "US:OH:Bypass": { "banners": [ "BYP" ], "spriteBlank": [ "shield_us_oh_2", "shield_us_oh_3" ], "textColor": "black", "padding": { "left": 3, "right": 3, "top": 4, "bottom": 6 } }, "US:OH:Business": { "banners": [ "BUS" ], "spriteBlank": [ "shield_us_oh_2", "shield_us_oh_3" ], "textColor": "black", "padding": { "left": 3, "right": 3, "top": 4, "bottom": 6 } }, "US:OH:Turnpike": { "spriteBlank": "shield_us_oh_turnpike", "notext": true }, "US:OH:OEC": { "spriteBlank": "shield_us_oh_oec", "notext": true }, "US:OH:COL": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:OH:JEF": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:OH:MAH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:OH:OTT": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:OH:SEN": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:OH:STA": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:OH:SUM": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:OH:TUS": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:OH:CAR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:COS": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:FAI": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:FUL": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:GAL": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:HAS": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:HOC": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:KNO": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:LAW": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:LIC": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:LOG": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:MAD": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:MRG": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:MRW": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:PER": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:UNI": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:WAY": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:BEL:Kirkwood": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:HAR:Dudley": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:JEF:Springfield": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:MED:Harrisville": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:MED:Wadsworth": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:SAN:Fremont": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:TRU:Kinsman": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:WYA:township": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:ATH": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:OH:BEL": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:OH:GUE": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:OH:HAR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:OH:HEN": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:OH:MOE": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:OH:PAU": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:OH:WAS": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:OH:WIL": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:OH:WYA": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:OH:COS:Jackson": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:OH:FAI:Greenfield": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:OH:HOL:Berlin": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:OH:HOL:Clark": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:OH:HOL:Knox": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:OH:HOL:Monroe": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:OH:HOL:Paint": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:OH:HOL:Salt_Creek": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:OH:JEF:Knox": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:OH:LOG:Bokescreek": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:OH:LOG:Pleasant": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:OH:LOG:Washington": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:OH:MED:Sharon": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:OH:MRG:York": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:OH:MRW:Bennington": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:OH:MRW:Chester": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:OH:MRW:Franklin": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:OH:PER:Bearfield": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:OH:PER:Hopewell": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:OH:WAY:East_Union": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:OH:MED": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:OH:NOB": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:OH:WAY:Paint": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:OH:WAY:Salt_Creek": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:OH:TRU": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#ffcd00", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:VIN": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#ffcd00", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:COS:Adams": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#ffcd00", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:ASD": { "spriteBlank": [ "shield_us_oh_asd" ], "textColor": "#006747", "textLayout": { "constraintFunc": "triangleDown" }, "padding": { "left": 1, "right": 1, "top": 4, "bottom": 2 } }, "US:OH:HOL": { "spriteBlank": [ "shield_us_oh_hol" ], "textColor": "white", "padding": { "left": 4, "right": 3, "top": 2, "bottom": 2 } }, "US:OH:SCI": { "spriteBlank": [ "shield_us_oh_sci_2", "shield_us_oh_sci_3" ], "textColor": "black", "padding": { "left": 2, "right": 3, "top": 4, "bottom": 6 } }, "US:OH:HOC:Falls": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "#006747", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:PER:Monday_Creek": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:TUS:Salem": { "spriteBlank": [ "shield_us_oh_tus_salem" ], "textColor": "black", "padding": { "left": 2, "right": 4, "top": 2, "bottom": 5 } }, "US:OH:ASD:TWP": { "banners": [ "TWP" ], "spriteBlank": [ "shield_us_oh_asd" ], "textColor": "#006747", "textLayout": { "constraintFunc": "triangleDown" }, "padding": { "left": 1, "right": 1, "top": 4, "bottom": 2 } }, "US:OH:ATH:Trimble": { "banners": [ "TWP" ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:OH:FAI:Violet": { "banners": [ "TWP" ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:KNO:Liberty": { "banners": [ "TWP" ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:KNO:Milford": { "banners": [ "TWP" ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:LIC:Jersey": { "banners": [ "TWP" ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:LOG:Harrison": { "banners": [ "TWP" ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:LOG:Jefferson": { "banners": [ "TWP" ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:LOG:Lake": { "banners": [ "TWP" ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:LOG:Liberty": { "banners": [ "TWP" ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:LOG:McArthur": { "banners": [ "TWP" ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:LOG:Miami": { "banners": [ "TWP" ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:LOG:Monroe": { "banners": [ "TWP" ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:LOG:Perry": { "banners": [ "TWP" ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:LOG:Richland": { "banners": [ "TWP" ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:LOG:Rushcreek": { "banners": [ "TWP" ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:LOG:Stokes": { "banners": [ "TWP" ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:LOG:Union": { "banners": [ "TWP" ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:MED:York": { "banners": [ "TWP" ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:OH:MRW:Canaan": { "banners": [ "TWP" ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:MRW:Harmony": { "banners": [ "TWP" ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:MRW:South_Bloomfield": { "banners": [ "TWP" ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:MRW:Westfield": { "banners": [ "TWP" ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:PAU:Latty": { "banners": [ "TWP" ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:OH:PAU:Washington": { "banners": [ "TWP" ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:OH:PER:Coal": { "banners": [ "TWP" ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:OH:WAS:Aurelius": { "banners": [ "TWP" ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:OH:WAS:Salem": { "banners": [ "TWP" ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:OH:JHMHT": { "spriteBlank": [ "shield_us_oh_jhmht" ], "notext": true }, "US:OK": { "spriteBlank": [ "shield_us_ok_2", "shield_us_ok_3" ], "textColor": "black", "textHaloColor": "white", "padding": { "left": 3, "right": 3, "top": 7, "bottom": 3 } }, "US:OK:Toll": { "spriteBlank": [ "shield_us_ok_2", "shield_us_ok_3" ], "textColor": "black", "textHaloColor": "white", "padding": { "left": 3, "right": 3, "top": 7, "bottom": 3 } }, "US:OK:Business": { "banners": [ "BUS" ], "spriteBlank": [ "shield_us_ok_2", "shield_us_ok_3" ], "textColor": "black", "textHaloColor": "white", "padding": { "left": 3, "right": 3, "top": 7, "bottom": 3 } }, "US:OK:Loop": { "banners": [ "LOOP" ], "spriteBlank": [ "shield_us_ok_2", "shield_us_ok_3" ], "textColor": "black", "textHaloColor": "white", "padding": { "left": 3, "right": 3, "top": 7, "bottom": 3 } }, "US:OK:Spur": { "banners": [ "SPUR" ], "spriteBlank": [ "shield_us_ok_2", "shield_us_ok_3" ], "textColor": "black", "textHaloColor": "white", "padding": { "left": 3, "right": 3, "top": 7, "bottom": 3 } }, "US:OK:Truck": { "banners": [ "TRK" ], "spriteBlank": [ "shield_us_ok_2", "shield_us_ok_3" ], "textColor": "black", "textHaloColor": "white", "padding": { "left": 3, "right": 3, "top": 7, "bottom": 3 } }, "US:OK:Turnpike": { "spriteBlank": "shield_us_ok_turnpike", "notext": true }, "US:OR": { "spriteBlank": [ "shield_us_or_2", "shield_us_or_3" ], "textColor": "black", "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 4 } }, "US:OR:Business": { "banners": [ "BUS" ], "spriteBlank": [ "shield_us_or_2", "shield_us_or_3" ], "textColor": "black", "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 4 } }, "US:OR:Douglas": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:OR:Grant": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:OR:Lake": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:OR:Lane": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:OR:Morrow": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:PA": { "spriteBlank": [ "shield_us_pa_2", "shield_us_pa_3" ], "textColor": "black", "padding": { "left": 3, "right": 3, "top": 5, "bottom": 5 } }, "US:PA:Truck": { "banners": [ "TRK" ], "spriteBlank": [ "shield_us_pa_2", "shield_us_pa_3" ], "textColor": "black", "padding": { "left": 3, "right": 3, "top": 5, "bottom": 5 } }, "US:PA:Business": { "banners": [ "BUS" ], "spriteBlank": [ "shield_us_pa_2", "shield_us_pa_3" ], "textColor": "black", "padding": { "left": 3, "right": 3, "top": 5, "bottom": 5 } }, "US:PA:Alternate": { "banners": [ "ALT" ], "spriteBlank": [ "shield_us_pa_2", "shield_us_pa_3" ], "textColor": "black", "padding": { "left": 3, "right": 3, "top": 5, "bottom": 5 } }, "US:PA:Turnpike": { "spriteBlank": [ "shield_us_pa_2", "shield_us_pa_3" ], "textColor": "white", "padding": { "left": 3, "right": 3, "top": 5, "bottom": 5 }, "colorLighten": "white", "colorDarken": "#006747", "noref": { "spriteBlank": "shield_us_pa_turnpike_noref", "colorLighten": "white", "colorDarken": "#006747" } }, "US:PA:Allegheny:Belt": { "overrideByRef": { "Red Belt": { "notext": true, "shapeBlank": { "drawFunc": "paBelt", "params": { "fillColor": "#bf2033", "strokeColor": "black" } } }, "Orange Belt": { "notext": true, "shapeBlank": { "drawFunc": "paBelt", "params": { "fillColor": "#f38f00", "strokeColor": "black" } } }, "Yellow Belt": { "notext": true, "shapeBlank": { "drawFunc": "paBelt", "params": { "fillColor": "#ffcd00", "strokeColor": "black" } } }, "Green Belt": { "notext": true, "shapeBlank": { "drawFunc": "paBelt", "params": { "fillColor": "#006747", "strokeColor": "white" } } }, "Blue Belt": { "notext": true, "shapeBlank": { "drawFunc": "paBelt", "params": { "fillColor": "#003f87", "strokeColor": "white" } } }, "Purple Belt": { "notext": true, "shapeBlank": { "drawFunc": "paBelt", "params": { "fillColor": "#6d2077", "strokeColor": "white" } } } } }, "US:PR:primary": { "shapeBlank": { "drawFunc": "escutcheon", "params": { "yOffset": 12, "fillColor": "#003f87", "strokeColor": "white", "radius": 0, "outlineWidth": 1 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 6 }, "textColor": "white" }, "US:PR:primary_urban": { "shapeBlank": { "drawFunc": "escutcheon", "params": { "yOffset": 12, "fillColor": "white", "strokeColor": "black", "radius": 0, "outlineWidth": 1 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 6 }, "textColor": "black" }, "US:PR:secondary": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:PR:tertiary": { "shapeBlank": { "drawFunc": "ellipse", "params": { "fillColor": "white", "strokeColor": "black" } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 2 }, "textColor": "black" }, "US:RI": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:SC": { "spriteBlank": "shield_us_sc", "textColor": "#003f87", "padding": { "left": 2, "right": 2, "top": 6, "bottom": 3 } }, "US:SC:Truck": { "banners": [ "TRK" ], "bannerTextColor": "#003f87", "spriteBlank": "shield_us_sc", "textColor": "#003f87", "padding": { "left": 2, "right": 2, "top": 6, "bottom": 3 } }, "US:SC:Business": { "banners": [ "BUS" ], "bannerTextColor": "#003f87", "spriteBlank": "shield_us_sc", "textColor": "#003f87", "padding": { "left": 2, "right": 2, "top": 6, "bottom": 3 } }, "US:SC:Alternate": { "banners": [ "ALT" ], "bannerTextColor": "#003f87", "spriteBlank": "shield_us_sc", "textColor": "#003f87", "padding": { "left": 2, "right": 2, "top": 6, "bottom": 3 } }, "US:SD": { "spriteBlank": [ "shield_us_sd_2", "shield_us_sd_3" ], "textColor": "black", "padding": { "left": 2, "right": 3, "top": 3, "bottom": 5 } }, "US:SD:Business": { "banners": [ "BUS" ], "spriteBlank": [ "shield_us_sd_2", "shield_us_sd_3" ], "textColor": "black", "padding": { "left": 2, "right": 3, "top": 3, "bottom": 5 } }, "US:SD:Truck": { "banners": [ "TRK" ], "spriteBlank": [ "shield_us_sd_2", "shield_us_sd_3" ], "textColor": "black", "padding": { "left": 2, "right": 3, "top": 3, "bottom": 5 } }, "US:SD:Secondary": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:SD:Beadle": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:SD:Bon_Homme": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:SD:Brookings": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:SD:Charles_Mix": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:SD:Clark": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:SD:Codington": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:SD:Corson": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:SD:Custer": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:SD:Day": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:SD:Deuel": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:SD:Edmunds": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:SD:Fall_River": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:SD:Faulk": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:SD:Grant": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:SD:Hamlin": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:SD:Harding": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:SD:Hyde": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:SD:Kingsbury": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:SD:Lake": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:SD:Lincoln": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:SD:McCook": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:SD:McPherson": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:SD:Marshall": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:SD:Meade": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:SD:Minnehaha": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:SD:Moody": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:SD:Perkins": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:SD:Roberts": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:SD:Spink": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:SD:Stanley": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:SD:Turner": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:SD:Union": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:SD:Yankton": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:SD:Brown": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:SD:Tripp": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:SD:Custer:CSP": { "spriteBlank": "shield_us_sd_csp", "textColor": "black", "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 8, "right": 7, "top": 2, "bottom": 8 } }, "US:SD:Custer:NPS": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#693f23", "strokeColor": "#ffcd00", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "#ffcd00" }, "US:TN:primary": { "spriteBlank": "shield_us_tn_primary", "textColor": "black", "padding": { "left": 2, "right": 2, "top": 2, "bottom": 7 } }, "US:TN:primary:Business": { "banners": [ "BUS" ], "spriteBlank": "shield_us_tn_primary", "textColor": "black", "padding": { "left": 2, "right": 2, "top": 2, "bottom": 7 } }, "US:TN:primary:Bypass": { "banners": [ "BYP" ], "spriteBlank": "shield_us_tn_primary", "textColor": "black", "padding": { "left": 2, "right": 2, "top": 2, "bottom": 7 } }, "US:TN:primary:Truck": { "banners": [ "TRK" ], "spriteBlank": "shield_us_tn_primary", "textColor": "black", "padding": { "left": 2, "right": 2, "top": 2, "bottom": 7 } }, "US:TN:secondary": { "shapeBlank": { "drawFunc": "triangle", "params": { "pointUp": false, "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "triangleDown" }, "padding": { "left": 1, "right": 1, "top": 2, "bottom": 1 }, "textColor": "black" }, "US:TN:secondary:Alternate": { "banners": [ "ALT" ], "shapeBlank": { "drawFunc": "triangle", "params": { "pointUp": false, "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "triangleDown" }, "padding": { "left": 1, "right": 1, "top": 2, "bottom": 1 }, "textColor": "black" }, "US:TN:secondary:Scenic": { "banners": [ "SCEN" ], "shapeBlank": { "drawFunc": "triangle", "params": { "pointUp": false, "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "triangleDown" }, "padding": { "left": 1, "right": 1, "top": 2, "bottom": 1 }, "textColor": "black" }, "US:TN:secondary:Truck": { "banners": [ "TRK" ], "shapeBlank": { "drawFunc": "triangle", "params": { "pointUp": false, "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "triangleDown" }, "padding": { "left": 1, "right": 1, "top": 2, "bottom": 1 }, "textColor": "black" }, "US:TN:McMinn": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:TX": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:TX:Beltway": { "banners": [ "BELT" ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:TX:Business": { "banners": [ "BUS" ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:TX:Loop": { "banners": [ "LOOP" ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:TX:NASA": { "banners": [ "NASA" ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:TX:Park": { "banners": [ "PARK" ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:TX:PA": { "banners": [ "P.A." ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:TX:Spur": { "banners": [ "SPUR" ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:TX:RM": { "spriteBlank": "shield_us_tx_outline", "textColor": "black", "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 0, "top": 7, "bottom": 10 } }, "US:TX:FM": { "spriteBlank": "shield_us_tx_outline", "textColor": "black", "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 0, "top": 7, "bottom": 10 } }, "US:TX:FM:Business": { "banners": [ "BUS" ], "spriteBlank": "shield_us_tx_outline", "textColor": "black", "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 0, "top": 7, "bottom": 10 } }, "US:TX:Recreational": { "banners": [ "R" ], "bannerTextColor": "#693f23", "spriteBlank": "shield_us_tx_outline", "textColor": "#693f23", "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 0, "top": 7, "bottom": 10 }, "colorLighten": "#693f23" }, "US:TX:NTTA": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:TX:Toll": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:TX:Express:Toll": { "banners": [ "EXPR" ], "bannerTextColor": "#003f87", "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:TX:Loop:Toll": { "banners": [ "LOOP" ], "bannerTextColor": "#003f87", "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:TX:Loop:Express:Toll": { "banners": [ "EXPR", "LOOP" ], "bannerTextColor": "#003f87", "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:TX:CTRMA": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:TX:CTRMA:Express": { "banners": [ "EXPR" ], "bannerTextColor": "#003f87", "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:TX:Montgomery:MCTRA": { "shapeBlank": { "drawFunc": "pentagon", "params": { "pointUp": false, "yOffset": 5, "sideAngle": 0, "fillColor": "#003f87", "strokeColor": "#bf2033", "radius1": 2, "radius2": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 6 }, "textColor": "white" }, "US:TX:Fort_Bend:FBCTRA": { "spriteBlank": "shield_us_tx_fbctra", "textColor": "white", "padding": { "left": 3, "right": 3, "top": 2, "bottom": 8 }, "refsByName": { "Fort Bend Parkway Toll Road": "FBP", "Fort Bend Westpark Tollway": "WPT" } }, "US:TX:Harris:HCTRA": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#6d2077", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0, "rectWidth": 28 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00", "refsByName": { "East Sam Houston Tollway North": "SHT", "East Sam Houston Tollway South": "SHT", "North Sam Houston Tollway East": "SHT", "North Sam Houston Tollway West": "SHT", "South Sam Houston Tollway East": "SHT", "South Sam Houston Tollway West": "SHT", "West Sam Houston Tollway North": "SHT", "West Sam Houston Tollway South": "SHT", "Fort Bend Toll Road": "FBTR", "Hardy Toll Road": "HTR", "Tomball Tollway": "TBT", "Westpark Tollway": "WPT" } }, "US:TX:Anderson": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:TX:Blanco": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:TX:Brooks": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:TX:Burnet": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:TX:Caldwell": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:TX:Grimes": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:TX:Jim_Wells": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:TX:Loving": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:TX:Mitchell": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:TX:Morris": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:TX:Panola": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:TX:Reeves": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:TX:Robertson": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:TX:Rusk": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:TX:Scurry": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:TX:Somervell": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:TX:Uvalde": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:TX:Winkler": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:TX:Brazoria": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:TX:Brown": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:TX:Burleson": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:TX:Colorado": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:TX:Comanche": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:TX:Houston": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:TX:Cass": { "banners": [ "CR" ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:TX:Kent": { "banners": [ "CR" ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:TX:Kleberg": { "banners": [ "CR" ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:TX:Lavaca": { "banners": [ "CR" ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:TX:Milam": { "banners": [ "CR" ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:TX:Nolan": { "banners": [ "CR" ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:TX:Schleicher": { "banners": [ "CR" ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:TX:Shackelford": { "banners": [ "CR" ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:TX:Stonewall": { "banners": [ "CR" ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:TX:Sutton": { "banners": [ "CR" ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:TX:Ward": { "banners": [ "CR" ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:TX:Jackson": { "banners": [ "CR" ], "bannerTextColor": "#003f87", "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:TX:Andrews:Andrews:Loop": { "banners": [ "LOOP" ], "bannerTextColor": "#003f87", "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "#003f87", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "#003f87" }, "US:UT": { "spriteBlank": [ "shield_us_ut_2", "shield_us_ut_3" ], "textColor": "black", "padding": { "left": 4, "right": 4, "top": 5.5, "bottom": 5 } }, "US:UT:Wayne": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:VA": { "shapeBlank": { "drawFunc": "escutcheon", "params": { "yOffset": 12, "fillColor": "white", "strokeColor": "black", "radius": 2, "outlineWidth": 1 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 6 }, "textColor": "black" }, "US:VA:Business": { "banners": [ "BUS" ], "shapeBlank": { "drawFunc": "escutcheon", "params": { "yOffset": 12, "fillColor": "white", "strokeColor": "black", "radius": 2, "outlineWidth": 1 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 6 }, "textColor": "black" }, "US:VA:Alternate": { "banners": [ "ALT" ], "shapeBlank": { "drawFunc": "escutcheon", "params": { "yOffset": 12, "fillColor": "white", "strokeColor": "black", "radius": 2, "outlineWidth": 1 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 6 }, "textColor": "black" }, "US:VA:Secondary": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 10 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 2 }, "textColor": "black" }, "US:VI": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 10 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 2 }, "textColor": "black" }, "US:VT": { "spriteBlank": [ "shield_us_vt_2", "shield_us_vt_3" ], "textColor": "#006747", "padding": { "left": 3, "right": 3, "top": 5, "bottom": 2 } }, "US:VT:Alternate": { "banners": [ "ALT" ], "bannerTextColor": "#006747", "spriteBlank": [ "shield_us_vt_2", "shield_us_vt_3" ], "textColor": "#006747", "padding": { "left": 3, "right": 3, "top": 5, "bottom": 2 } }, "US:VT:Truck": { "banners": [ "TRK" ], "bannerTextColor": "#006747", "spriteBlank": [ "shield_us_vt_2", "shield_us_vt_3" ], "textColor": "#006747", "padding": { "left": 3, "right": 3, "top": 5, "bottom": 2 } }, "US:VT:Town": { "shapeBlank": { "drawFunc": "ellipse", "params": { "fillColor": "white", "strokeColor": "black" } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 2 }, "textColor": "black" }, "US:WA": { "spriteBlank": "shield_us_wa", "textColor": "black", "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 3, "top": 2, "bottom": 6 } }, "US:WA:Spur": { "banners": [ "SPUR" ], "spriteBlank": "shield_us_wa", "textColor": "black", "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 3, "top": 2, "bottom": 6 } }, "US:WA:Business": { "banners": [ "BUS" ], "spriteBlank": "shield_us_wa", "textColor": "black", "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 3, "top": 2, "bottom": 6 } }, "US:WA:Alternate": { "banners": [ "ALT" ], "spriteBlank": "shield_us_wa", "textColor": "black", "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 3, "top": 2, "bottom": 6 } }, "US:WA:Asotin": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "US:WI": { "spriteBlank": [ "shield_us_wi_2", "shield_us_wi_3" ], "textColor": "black", "padding": { "left": 3, "right": 3, "top": 3, "bottom": 6 } }, "US:WI:Business": { "banners": [ "BUS" ], "spriteBlank": [ "shield_us_wi_2", "shield_us_wi_3" ], "textColor": "black", "padding": { "left": 3, "right": 3, "top": 3, "bottom": 6 } }, "US:WI:Spur": { "banners": [ "SPUR" ], "spriteBlank": [ "shield_us_wi_2", "shield_us_wi_3" ], "textColor": "black", "padding": { "left": 3, "right": 3, "top": 3, "bottom": 6 } }, "US:WI:Adams": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Ashland": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Barron": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Bayfield": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Brown": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Buffalo": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Burnett": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Calumet": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Chippewa": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Clark": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Columbia": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Crawford": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Dane": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Dodge": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Door": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Douglas": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Dunn": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Eau_Claire": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Florence": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Fond_du_Lac": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Forest": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Grant": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Green": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Green_Lake": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Iowa": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Iron": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Jackson": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Jefferson": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Juneau": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Kenosha": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Kewaunee": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:La_Crosse": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Lafayette": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Langlade": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Lincoln": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Manitowoc": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Marathon": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Marinette": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Marquette": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Menominee": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Milwaukee": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Monroe": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Oconto": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Oneida": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Outagamie": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Ozaukee": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Pepin": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Pierce": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Polk": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Portage": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Price": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Racine": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Richland": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Rock": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Rusk": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Saint_Croix": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Sauk": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Sawyer": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Shawano": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Sheboygan": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Taylor": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Trempealeau": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Vernon": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Vilas": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Walworth": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Washburn": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Washington": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Waukesha": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Waupaca": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Waushara": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Winnebago": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Wood": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Marquette:Truck": { "banners": [ "TRK" ], "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WI:Rustic": { "spriteBlank": "shield_us_wi_rustic", "textColor": "#ffcd00", "padding": { "left": 1.5, "right": 4, "top": 9, "bottom": 4 } }, "US:WV": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WV:County": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 10 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 2 }, "textColor": "black" }, "US:WV:HARP": { "shapeBlank": { "drawFunc": "pentagon", "params": { "pointUp": true, "yOffset": 6, "sideAngle": 0, "fillColor": "white", "strokeColor": "black", "radius1": 0, "radius2": 0 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 2, "right": 2, "top": 7, "bottom": 2 }, "textColor": "black" }, "US:WY": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#ffcd00", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "US:WY:Albany": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:WY:Big_Horn": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:WY:Carbon": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:WY:Converse": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:WY:Crook": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:WY:Fremont": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:WY:Hot_Springs": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:WY:Johnson": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:WY:Lincoln": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:WY:Natrona": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:WY:Niobrara": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:WY:Park": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:WY:Sheridan": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:WY:Sublette": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:WY:Sweetwater": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:WY:Uinta": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:WY:Washakie": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:WY:Weston": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#003f87", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 0 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "#ffcd00" }, "US:LHT": { "spriteBlank": "shield_us_lht", "notext": true }, "US:ORSB": { "spriteBlank": [ "shield_us_orsb" ], "notext": true }, "CL:national": { "spriteBlank": [ "shield_badge_2", "shield_badge_3" ], "textColor": "white", "padding": { "left": 3, "right": 3, "top": 4, "bottom": 5 }, "colorLighten": "white", "colorDarken": "#006747" }, "CL:regional": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "co:national": { "spriteBlank": [ "shield_co_national_2", "shield_co_national_3" ], "textLayout": { "constraintFunc": "southHalfEllipse" }, "textColor": "black", "padding": { "left": 4, "right": 4, "top": 3, "bottom": 7 } }, "UY": { "shapeBlank": { "drawFunc": "pentagon", "params": { "pointUp": false, "yOffset": 5, "sideAngle": 0, "fillColor": "#003f87", "strokeColor": "white", "radius1": 2, "radius2": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 6 }, "textColor": "white" }, "VE:T:AM": { "spriteBlank": "shield_ve_t", "textColor": "black", "padding": { "left": 4, "right": 4, "top": 3, "bottom": 5 } }, "VE:L:AM": { "shapeBlank": { "drawFunc": "ellipse", "params": { "fillColor": "white", "strokeColor": "black", "rectWidth": 20 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 2 }, "textColor": "black" }, "VE:R:AM": { "shapeBlank": { "drawFunc": "diamond", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "diamond" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 1 }, "textColor": "black" }, "VE:T:AN": { "spriteBlank": "shield_ve_t", "textColor": "black", "padding": { "left": 4, "right": 4, "top": 3, "bottom": 5 } }, "VE:L:AN": { "shapeBlank": { "drawFunc": "ellipse", "params": { "fillColor": "white", "strokeColor": "black", "rectWidth": 20 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 2 }, "textColor": "black" }, "VE:R:AN": { "shapeBlank": { "drawFunc": "diamond", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "diamond" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 1 }, "textColor": "black" }, "VE:T:AP": { "spriteBlank": "shield_ve_t", "textColor": "black", "padding": { "left": 4, "right": 4, "top": 3, "bottom": 5 } }, "VE:L:AP": { "shapeBlank": { "drawFunc": "ellipse", "params": { "fillColor": "white", "strokeColor": "black", "rectWidth": 20 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 2 }, "textColor": "black" }, "VE:R:AP": { "shapeBlank": { "drawFunc": "diamond", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "diamond" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 1 }, "textColor": "black" }, "VE:T:AR": { "spriteBlank": "shield_ve_t", "textColor": "black", "padding": { "left": 4, "right": 4, "top": 3, "bottom": 5 } }, "VE:L:AR": { "shapeBlank": { "drawFunc": "ellipse", "params": { "fillColor": "white", "strokeColor": "black", "rectWidth": 20 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 2 }, "textColor": "black" }, "VE:R:AR": { "shapeBlank": { "drawFunc": "diamond", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "diamond" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 1 }, "textColor": "black" }, "VE:T:BA": { "spriteBlank": "shield_ve_t", "textColor": "black", "padding": { "left": 4, "right": 4, "top": 3, "bottom": 5 } }, "VE:L:BA": { "shapeBlank": { "drawFunc": "ellipse", "params": { "fillColor": "white", "strokeColor": "black", "rectWidth": 20 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 2 }, "textColor": "black" }, "VE:R:BA": { "shapeBlank": { "drawFunc": "diamond", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "diamond" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 1 }, "textColor": "black" }, "VE:T:BO": { "spriteBlank": "shield_ve_t", "textColor": "black", "padding": { "left": 4, "right": 4, "top": 3, "bottom": 5 } }, "VE:L:BO": { "shapeBlank": { "drawFunc": "ellipse", "params": { "fillColor": "white", "strokeColor": "black", "rectWidth": 20 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 2 }, "textColor": "black" }, "VE:R:BO": { "shapeBlank": { "drawFunc": "diamond", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "diamond" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 1 }, "textColor": "black" }, "VE:T:CA": { "spriteBlank": "shield_ve_t", "textColor": "black", "padding": { "left": 4, "right": 4, "top": 3, "bottom": 5 } }, "VE:L:CA": { "shapeBlank": { "drawFunc": "ellipse", "params": { "fillColor": "white", "strokeColor": "black", "rectWidth": 20 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 2 }, "textColor": "black" }, "VE:R:CA": { "shapeBlank": { "drawFunc": "diamond", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "diamond" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 1 }, "textColor": "black" }, "VE:T:CO": { "spriteBlank": "shield_ve_t", "textColor": "black", "padding": { "left": 4, "right": 4, "top": 3, "bottom": 5 } }, "VE:L:CO": { "shapeBlank": { "drawFunc": "ellipse", "params": { "fillColor": "white", "strokeColor": "black", "rectWidth": 20 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 2 }, "textColor": "black" }, "VE:R:CO": { "shapeBlank": { "drawFunc": "diamond", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "diamond" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 1 }, "textColor": "black" }, "VE:T:DA": { "spriteBlank": "shield_ve_t", "textColor": "black", "padding": { "left": 4, "right": 4, "top": 3, "bottom": 5 } }, "VE:L:DA": { "shapeBlank": { "drawFunc": "ellipse", "params": { "fillColor": "white", "strokeColor": "black", "rectWidth": 20 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 2 }, "textColor": "black" }, "VE:R:DA": { "shapeBlank": { "drawFunc": "diamond", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "diamond" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 1 }, "textColor": "black" }, "VE:T:DC": { "spriteBlank": "shield_ve_t", "textColor": "black", "padding": { "left": 4, "right": 4, "top": 3, "bottom": 5 } }, "VE:L:DC": { "shapeBlank": { "drawFunc": "ellipse", "params": { "fillColor": "white", "strokeColor": "black", "rectWidth": 20 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 2 }, "textColor": "black" }, "VE:R:DC": { "shapeBlank": { "drawFunc": "diamond", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "diamond" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 1 }, "textColor": "black" }, "VE:T:FA": { "spriteBlank": "shield_ve_t", "textColor": "black", "padding": { "left": 4, "right": 4, "top": 3, "bottom": 5 } }, "VE:L:FA": { "shapeBlank": { "drawFunc": "ellipse", "params": { "fillColor": "white", "strokeColor": "black", "rectWidth": 20 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 2 }, "textColor": "black" }, "VE:R:FA": { "shapeBlank": { "drawFunc": "diamond", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "diamond" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 1 }, "textColor": "black" }, "VE:T:GU": { "spriteBlank": "shield_ve_t", "textColor": "black", "padding": { "left": 4, "right": 4, "top": 3, "bottom": 5 } }, "VE:L:GU": { "shapeBlank": { "drawFunc": "ellipse", "params": { "fillColor": "white", "strokeColor": "black", "rectWidth": 20 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 2 }, "textColor": "black" }, "VE:R:GU": { "shapeBlank": { "drawFunc": "diamond", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "diamond" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 1 }, "textColor": "black" }, "VE:T:LA": { "spriteBlank": "shield_ve_t", "textColor": "black", "padding": { "left": 4, "right": 4, "top": 3, "bottom": 5 } }, "VE:L:LA": { "shapeBlank": { "drawFunc": "ellipse", "params": { "fillColor": "white", "strokeColor": "black", "rectWidth": 20 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 2 }, "textColor": "black" }, "VE:R:LA": { "shapeBlank": { "drawFunc": "diamond", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "diamond" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 1 }, "textColor": "black" }, "VE:T:ME": { "spriteBlank": "shield_ve_t", "textColor": "black", "padding": { "left": 4, "right": 4, "top": 3, "bottom": 5 } }, "VE:L:ME": { "shapeBlank": { "drawFunc": "ellipse", "params": { "fillColor": "white", "strokeColor": "black", "rectWidth": 20 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 2 }, "textColor": "black" }, "VE:R:ME": { "shapeBlank": { "drawFunc": "diamond", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "diamond" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 1 }, "textColor": "black" }, "VE:T:MI": { "spriteBlank": "shield_ve_t", "textColor": "black", "padding": { "left": 4, "right": 4, "top": 3, "bottom": 5 } }, "VE:L:MI": { "shapeBlank": { "drawFunc": "ellipse", "params": { "fillColor": "white", "strokeColor": "black", "rectWidth": 20 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 2 }, "textColor": "black" }, "VE:R:MI": { "shapeBlank": { "drawFunc": "diamond", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "diamond" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 1 }, "textColor": "black" }, "VE:T:MO": { "spriteBlank": "shield_ve_t", "textColor": "black", "padding": { "left": 4, "right": 4, "top": 3, "bottom": 5 } }, "VE:L:MO": { "shapeBlank": { "drawFunc": "ellipse", "params": { "fillColor": "white", "strokeColor": "black", "rectWidth": 20 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 2 }, "textColor": "black" }, "VE:R:MO": { "shapeBlank": { "drawFunc": "diamond", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "diamond" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 1 }, "textColor": "black" }, "VE:T:NE": { "spriteBlank": "shield_ve_t", "textColor": "black", "padding": { "left": 4, "right": 4, "top": 3, "bottom": 5 } }, "VE:L:NE": { "shapeBlank": { "drawFunc": "ellipse", "params": { "fillColor": "white", "strokeColor": "black", "rectWidth": 20 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 2 }, "textColor": "black" }, "VE:R:NE": { "shapeBlank": { "drawFunc": "diamond", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "diamond" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 1 }, "textColor": "black" }, "VE:T:PO": { "spriteBlank": "shield_ve_t", "textColor": "black", "padding": { "left": 4, "right": 4, "top": 3, "bottom": 5 } }, "VE:L:PO": { "shapeBlank": { "drawFunc": "ellipse", "params": { "fillColor": "white", "strokeColor": "black", "rectWidth": 20 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 2 }, "textColor": "black" }, "VE:R:PO": { "shapeBlank": { "drawFunc": "diamond", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "diamond" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 1 }, "textColor": "black" }, "VE:T:SU": { "spriteBlank": "shield_ve_t", "textColor": "black", "padding": { "left": 4, "right": 4, "top": 3, "bottom": 5 } }, "VE:L:SU": { "shapeBlank": { "drawFunc": "ellipse", "params": { "fillColor": "white", "strokeColor": "black", "rectWidth": 20 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 2 }, "textColor": "black" }, "VE:R:SU": { "shapeBlank": { "drawFunc": "diamond", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "diamond" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 1 }, "textColor": "black" }, "VE:T:TA": { "spriteBlank": "shield_ve_t", "textColor": "black", "padding": { "left": 4, "right": 4, "top": 3, "bottom": 5 } }, "VE:L:TA": { "shapeBlank": { "drawFunc": "ellipse", "params": { "fillColor": "white", "strokeColor": "black", "rectWidth": 20 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 2 }, "textColor": "black" }, "VE:R:TA": { "shapeBlank": { "drawFunc": "diamond", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "diamond" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 1 }, "textColor": "black" }, "VE:T:TR": { "spriteBlank": "shield_ve_t", "textColor": "black", "padding": { "left": 4, "right": 4, "top": 3, "bottom": 5 } }, "VE:L:TR": { "shapeBlank": { "drawFunc": "ellipse", "params": { "fillColor": "white", "strokeColor": "black", "rectWidth": 20 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 2 }, "textColor": "black" }, "VE:R:TR": { "shapeBlank": { "drawFunc": "diamond", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "diamond" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 1 }, "textColor": "black" }, "VE:T:VA": { "spriteBlank": "shield_ve_t", "textColor": "black", "padding": { "left": 4, "right": 4, "top": 3, "bottom": 5 } }, "VE:L:VA": { "shapeBlank": { "drawFunc": "ellipse", "params": { "fillColor": "white", "strokeColor": "black", "rectWidth": 20 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 2 }, "textColor": "black" }, "VE:R:VA": { "shapeBlank": { "drawFunc": "diamond", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "diamond" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 1 }, "textColor": "black" }, "VE:T:YA": { "spriteBlank": "shield_ve_t", "textColor": "black", "padding": { "left": 4, "right": 4, "top": 3, "bottom": 5 } }, "VE:L:YA": { "shapeBlank": { "drawFunc": "ellipse", "params": { "fillColor": "white", "strokeColor": "black", "rectWidth": 20 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 2 }, "textColor": "black" }, "VE:R:YA": { "shapeBlank": { "drawFunc": "diamond", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "diamond" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 1 }, "textColor": "black" }, "VE:T:ZU": { "spriteBlank": "shield_ve_t", "textColor": "black", "padding": { "left": 4, "right": 4, "top": 3, "bottom": 5 } }, "VE:L:ZU": { "shapeBlank": { "drawFunc": "ellipse", "params": { "fillColor": "white", "strokeColor": "black", "rectWidth": 20 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 2 }, "textColor": "black" }, "VE:R:ZU": { "shapeBlank": { "drawFunc": "diamond", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "diamond" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 1 }, "textColor": "black" }, "DZ:national": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#bf2033", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "DZ:highway": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#bf2033", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "DZ:regional": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#ffcd00", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "GH:regional": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#ffcd00", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "GH:inter-regional": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#ffcd00", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "GH:national": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#ffcd00", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "am:national": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "BD:national": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "BD:regional": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#ffcd00", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "CN:national": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#bf2033", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "CN:expressway": { "spriteBlank": [ "shield_cn_expressway_2", "shield_cn_expressway_3", "shield_cn_expressway_4" ], "textColor": "white", "padding": { "left": 2, "right": 2, "top": 6, "bottom": 2 }, "colorLighten": "#bf2033", "colorDarken": "#006747" }, "CN:AH": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#ffcd00", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "CN:AH:expressway": { "spriteBlank": [ "shield_cn_expressway_2", "shield_cn_expressway_3", "shield_cn_expressway_4" ], "textColor": "white", "padding": { "left": 2, "right": 2, "top": 6, "bottom": 2 }, "colorLighten": "#ffcd00", "colorDarken": "#006747" }, "CN:BJ": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#ffcd00", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "CN:BJ:expressway": { "spriteBlank": [ "shield_cn_expressway_2", "shield_cn_expressway_3", "shield_cn_expressway_4" ], "textColor": "white", "padding": { "left": 2, "right": 2, "top": 6, "bottom": 2 }, "colorLighten": "#ffcd00", "colorDarken": "#006747" }, "CN:CQ": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#ffcd00", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "CN:CQ:expressway": { "spriteBlank": [ "shield_cn_expressway_2", "shield_cn_expressway_3", "shield_cn_expressway_4" ], "textColor": "white", "padding": { "left": 2, "right": 2, "top": 6, "bottom": 2 }, "colorLighten": "#ffcd00", "colorDarken": "#006747" }, "CN:FJ": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#ffcd00", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "CN:FJ:expressway": { "spriteBlank": [ "shield_cn_expressway_2", "shield_cn_expressway_3", "shield_cn_expressway_4" ], "textColor": "white", "padding": { "left": 2, "right": 2, "top": 6, "bottom": 2 }, "colorLighten": "#ffcd00", "colorDarken": "#006747" }, "CN:GD": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#ffcd00", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "CN:GD:expressway": { "spriteBlank": [ "shield_cn_expressway_2", "shield_cn_expressway_3", "shield_cn_expressway_4" ], "textColor": "white", "padding": { "left": 2, "right": 2, "top": 6, "bottom": 2 }, "colorLighten": "#ffcd00", "colorDarken": "#006747" }, "CN:GS": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#ffcd00", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "CN:GS:expressway": { "spriteBlank": [ "shield_cn_expressway_2", "shield_cn_expressway_3", "shield_cn_expressway_4" ], "textColor": "white", "padding": { "left": 2, "right": 2, "top": 6, "bottom": 2 }, "colorLighten": "#ffcd00", "colorDarken": "#006747" }, "CN:GX": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#ffcd00", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "CN:GX:expressway": { "spriteBlank": [ "shield_cn_expressway_2", "shield_cn_expressway_3", "shield_cn_expressway_4" ], "textColor": "white", "padding": { "left": 2, "right": 2, "top": 6, "bottom": 2 }, "colorLighten": "#ffcd00", "colorDarken": "#006747" }, "CN:GZ": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#ffcd00", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "CN:GZ:expressway": { "spriteBlank": [ "shield_cn_expressway_2", "shield_cn_expressway_3", "shield_cn_expressway_4" ], "textColor": "white", "padding": { "left": 2, "right": 2, "top": 6, "bottom": 2 }, "colorLighten": "#ffcd00", "colorDarken": "#006747" }, "CN:HA": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#ffcd00", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "CN:HA:expressway": { "spriteBlank": [ "shield_cn_expressway_2", "shield_cn_expressway_3", "shield_cn_expressway_4" ], "textColor": "white", "padding": { "left": 2, "right": 2, "top": 6, "bottom": 2 }, "colorLighten": "#ffcd00", "colorDarken": "#006747" }, "CN:HB": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#ffcd00", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "CN:HB:expressway": { "spriteBlank": [ "shield_cn_expressway_2", "shield_cn_expressway_3", "shield_cn_expressway_4" ], "textColor": "white", "padding": { "left": 2, "right": 2, "top": 6, "bottom": 2 }, "colorLighten": "#ffcd00", "colorDarken": "#006747" }, "CN:HE": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#ffcd00", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "CN:HE:expressway": { "spriteBlank": [ "shield_cn_expressway_2", "shield_cn_expressway_3", "shield_cn_expressway_4" ], "textColor": "white", "padding": { "left": 2, "right": 2, "top": 6, "bottom": 2 }, "colorLighten": "#ffcd00", "colorDarken": "#006747" }, "CN:HI": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#ffcd00", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "CN:HI:expressway": { "spriteBlank": [ "shield_cn_expressway_2", "shield_cn_expressway_3", "shield_cn_expressway_4" ], "textColor": "white", "padding": { "left": 2, "right": 2, "top": 6, "bottom": 2 }, "colorLighten": "#ffcd00", "colorDarken": "#006747" }, "CN:HL": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#ffcd00", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "CN:HL:expressway": { "spriteBlank": [ "shield_cn_expressway_2", "shield_cn_expressway_3", "shield_cn_expressway_4" ], "textColor": "white", "padding": { "left": 2, "right": 2, "top": 6, "bottom": 2 }, "colorLighten": "#ffcd00", "colorDarken": "#006747" }, "CN:HN": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#ffcd00", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "CN:HN:expressway": { "spriteBlank": [ "shield_cn_expressway_2", "shield_cn_expressway_3", "shield_cn_expressway_4" ], "textColor": "white", "padding": { "left": 2, "right": 2, "top": 6, "bottom": 2 }, "colorLighten": "#ffcd00", "colorDarken": "#006747" }, "CN:JL": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#ffcd00", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "CN:JL:expressway": { "spriteBlank": [ "shield_cn_expressway_2", "shield_cn_expressway_3", "shield_cn_expressway_4" ], "textColor": "white", "padding": { "left": 2, "right": 2, "top": 6, "bottom": 2 }, "colorLighten": "#ffcd00", "colorDarken": "#006747" }, "CN:JS": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#ffcd00", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "CN:JS:expressway": { "spriteBlank": [ "shield_cn_expressway_2", "shield_cn_expressway_3", "shield_cn_expressway_4" ], "textColor": "white", "padding": { "left": 2, "right": 2, "top": 6, "bottom": 2 }, "colorLighten": "#ffcd00", "colorDarken": "#006747" }, "CN:JX": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#ffcd00", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "CN:JX:expressway": { "spriteBlank": [ "shield_cn_expressway_2", "shield_cn_expressway_3", "shield_cn_expressway_4" ], "textColor": "white", "padding": { "left": 2, "right": 2, "top": 6, "bottom": 2 }, "colorLighten": "#ffcd00", "colorDarken": "#006747" }, "CN:LN": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#ffcd00", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "CN:LN:expressway": { "spriteBlank": [ "shield_cn_expressway_2", "shield_cn_expressway_3", "shield_cn_expressway_4" ], "textColor": "white", "padding": { "left": 2, "right": 2, "top": 6, "bottom": 2 }, "colorLighten": "#ffcd00", "colorDarken": "#006747" }, "CN:NM": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#ffcd00", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "CN:NM:expressway": { "spriteBlank": [ "shield_cn_expressway_2", "shield_cn_expressway_3", "shield_cn_expressway_4" ], "textColor": "white", "padding": { "left": 2, "right": 2, "top": 6, "bottom": 2 }, "colorLighten": "#ffcd00", "colorDarken": "#006747" }, "CN:NX": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#ffcd00", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "CN:NX:expressway": { "spriteBlank": [ "shield_cn_expressway_2", "shield_cn_expressway_3", "shield_cn_expressway_4" ], "textColor": "white", "padding": { "left": 2, "right": 2, "top": 6, "bottom": 2 }, "colorLighten": "#ffcd00", "colorDarken": "#006747" }, "CN:QH": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#ffcd00", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "CN:QH:expressway": { "spriteBlank": [ "shield_cn_expressway_2", "shield_cn_expressway_3", "shield_cn_expressway_4" ], "textColor": "white", "padding": { "left": 2, "right": 2, "top": 6, "bottom": 2 }, "colorLighten": "#ffcd00", "colorDarken": "#006747" }, "CN:SC": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#ffcd00", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "CN:SC:expressway": { "spriteBlank": [ "shield_cn_expressway_2", "shield_cn_expressway_3", "shield_cn_expressway_4" ], "textColor": "white", "padding": { "left": 2, "right": 2, "top": 6, "bottom": 2 }, "colorLighten": "#ffcd00", "colorDarken": "#006747" }, "CN:SD": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#ffcd00", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "CN:SD:expressway": { "spriteBlank": [ "shield_cn_expressway_2", "shield_cn_expressway_3", "shield_cn_expressway_4" ], "textColor": "white", "padding": { "left": 2, "right": 2, "top": 6, "bottom": 2 }, "colorLighten": "#ffcd00", "colorDarken": "#006747" }, "CN:SH": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#ffcd00", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "CN:SH:expressway": { "spriteBlank": [ "shield_cn_expressway_2", "shield_cn_expressway_3", "shield_cn_expressway_4" ], "textColor": "white", "padding": { "left": 2, "right": 2, "top": 6, "bottom": 2 }, "colorLighten": "#ffcd00", "colorDarken": "#006747" }, "CN:SN": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#ffcd00", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "CN:SN:expressway": { "spriteBlank": [ "shield_cn_expressway_2", "shield_cn_expressway_3", "shield_cn_expressway_4" ], "textColor": "white", "padding": { "left": 2, "right": 2, "top": 6, "bottom": 2 }, "colorLighten": "#ffcd00", "colorDarken": "#006747" }, "CN:SX": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#ffcd00", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "CN:SX:expressway": { "spriteBlank": [ "shield_cn_expressway_2", "shield_cn_expressway_3", "shield_cn_expressway_4" ], "textColor": "white", "padding": { "left": 2, "right": 2, "top": 6, "bottom": 2 }, "colorLighten": "#ffcd00", "colorDarken": "#006747" }, "CN:TJ": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#ffcd00", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "CN:TJ:expressway": { "spriteBlank": [ "shield_cn_expressway_2", "shield_cn_expressway_3", "shield_cn_expressway_4" ], "textColor": "white", "padding": { "left": 2, "right": 2, "top": 6, "bottom": 2 }, "colorLighten": "#ffcd00", "colorDarken": "#006747" }, "CN:XJ": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#ffcd00", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "CN:XJ:expressway": { "spriteBlank": [ "shield_cn_expressway_2", "shield_cn_expressway_3", "shield_cn_expressway_4" ], "textColor": "white", "padding": { "left": 2, "right": 2, "top": 6, "bottom": 2 }, "colorLighten": "#ffcd00", "colorDarken": "#006747" }, "CN:XZ": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#ffcd00", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "CN:XZ:expressway": { "spriteBlank": [ "shield_cn_expressway_2", "shield_cn_expressway_3", "shield_cn_expressway_4" ], "textColor": "white", "padding": { "left": 2, "right": 2, "top": 6, "bottom": 2 }, "colorLighten": "#ffcd00", "colorDarken": "#006747" }, "CN:YN": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#ffcd00", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "CN:YN:expressway": { "spriteBlank": [ "shield_cn_expressway_2", "shield_cn_expressway_3", "shield_cn_expressway_4" ], "textColor": "white", "padding": { "left": 2, "right": 2, "top": 6, "bottom": 2 }, "colorLighten": "#ffcd00", "colorDarken": "#006747" }, "CN:ZJ": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#ffcd00", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "CN:ZJ:expressway": { "spriteBlank": [ "shield_cn_expressway_2", "shield_cn_expressway_3", "shield_cn_expressway_4" ], "textColor": "white", "padding": { "left": 2, "right": 2, "top": 6, "bottom": 2 }, "colorLighten": "#ffcd00", "colorDarken": "#006747" }, "CN:FJ:Ningde": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "CN:GD:Gaozhou": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "CN:GD:Dianbai": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "CN:GD:Huazhou": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "CN:GD:Maoming": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "CN:GD:Maonan": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "CN:GD:Xinyi": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "CN:HA:Luoyang": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "CN:HA:Mengjin": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "CN:JS:Liyang": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "CN:JS:Xuzhou": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "CN:JS:Wuzhong": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "HK": { "shapeBlank": { "drawFunc": "escutcheon", "params": { "yOffset": 12, "fillColor": "#ffcd00", "strokeColor": "black", "radius": 0, "outlineWidth": 1 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 6 }, "textColor": "black" }, "IN:NH": { "spriteBlank": [ "shield_in_nh_2", "shield_in_nh_3", "shield_in_nh_4" ], "textColor": "black", "padding": { "left": 2, "right": 2, "top": 3, "bottom": 7 } }, "IN:NE": { "banners": [ "NE" ], "spriteBlank": [ "shield_in_nh_2", "shield_in_nh_3", "shield_in_nh_4" ], "textColor": "black", "padding": { "left": 2, "right": 2, "top": 3, "bottom": 7 }, "numberingSystem": "roman" }, "ID:national": { "spriteBlank": [ "shield_id_national" ], "textLayout": { "constraintFunc": "ellipse" }, "textColor": "black", "padding": { "left": 3, "right": 3, "top": 4, "bottom": 2 } }, "ID:toll": { "banners": [ "TOL" ], "spriteBlank": [ "shield_id_national" ], "textLayout": { "constraintFunc": "ellipse" }, "textColor": "black", "padding": { "left": 3, "right": 3, "top": 4, "bottom": 2 } }, "ir:freeways": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "IQ:national": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "rectWidth": 34, "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "JP:E": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "JP:national": { "spriteBlank": [ "shield_tri_convex_2", "shield_tri_convex_3" ], "textLayout": { "constraintFunc": "ellipse" }, "textColor": "white", "padding": { "left": 2, "right": 2, "top": 1, "bottom": 5 }, "colorLighten": "white", "colorDarken": "#003f87" }, "JP:prefectural": { "shapeBlank": { "drawFunc": "hexagonHorizontal", "params": { "sideAngle": 0.5235987755982988, "fillColor": "#003f87", "strokeColor": "white", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 3, "top": 2, "bottom": 2 }, "textColor": "white" }, "JP:prefectural:aichi": { "shapeBlank": { "drawFunc": "hexagonHorizontal", "params": { "sideAngle": 0.5235987755982988, "fillColor": "#003f87", "strokeColor": "white", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 3, "top": 2, "bottom": 2 }, "textColor": "white" }, "JP:prefectural:akita": { "shapeBlank": { "drawFunc": "hexagonHorizontal", "params": { "sideAngle": 0.5235987755982988, "fillColor": "#003f87", "strokeColor": "white", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 3, "top": 2, "bottom": 2 }, "textColor": "white" }, "JP:prefectural:aomori": { "shapeBlank": { "drawFunc": "hexagonHorizontal", "params": { "sideAngle": 0.5235987755982988, "fillColor": "#003f87", "strokeColor": "white", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 3, "top": 2, "bottom": 2 }, "textColor": "white" }, "JP:prefectural:chiba": { "shapeBlank": { "drawFunc": "hexagonHorizontal", "params": { "sideAngle": 0.5235987755982988, "fillColor": "#003f87", "strokeColor": "white", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 3, "top": 2, "bottom": 2 }, "textColor": "white" }, "JP:prefectural:ehime": { "shapeBlank": { "drawFunc": "hexagonHorizontal", "params": { "sideAngle": 0.5235987755982988, "fillColor": "#003f87", "strokeColor": "white", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 3, "top": 2, "bottom": 2 }, "textColor": "white" }, "JP:prefectural:fukui": { "shapeBlank": { "drawFunc": "hexagonHorizontal", "params": { "sideAngle": 0.5235987755982988, "fillColor": "#003f87", "strokeColor": "white", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 3, "top": 2, "bottom": 2 }, "textColor": "white" }, "JP:prefectural:fukuoka": { "shapeBlank": { "drawFunc": "hexagonHorizontal", "params": { "sideAngle": 0.5235987755982988, "fillColor": "#003f87", "strokeColor": "white", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 3, "top": 2, "bottom": 2 }, "textColor": "white" }, "JP:prefectural:fukushima": { "shapeBlank": { "drawFunc": "hexagonHorizontal", "params": { "sideAngle": 0.5235987755982988, "fillColor": "#003f87", "strokeColor": "white", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 3, "top": 2, "bottom": 2 }, "textColor": "white" }, "JP:prefectural:gifu": { "shapeBlank": { "drawFunc": "hexagonHorizontal", "params": { "sideAngle": 0.5235987755982988, "fillColor": "#003f87", "strokeColor": "white", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 3, "top": 2, "bottom": 2 }, "textColor": "white" }, "JP:prefectural:gunma": { "shapeBlank": { "drawFunc": "hexagonHorizontal", "params": { "sideAngle": 0.5235987755982988, "fillColor": "#003f87", "strokeColor": "white", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 3, "top": 2, "bottom": 2 }, "textColor": "white" }, "JP:prefectural:hiroshima": { "shapeBlank": { "drawFunc": "hexagonHorizontal", "params": { "sideAngle": 0.5235987755982988, "fillColor": "#003f87", "strokeColor": "white", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 3, "top": 2, "bottom": 2 }, "textColor": "white" }, "JP:prefectural:hokkaido": { "shapeBlank": { "drawFunc": "hexagonHorizontal", "params": { "sideAngle": 0.5235987755982988, "fillColor": "#003f87", "strokeColor": "white", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 3, "top": 2, "bottom": 2 }, "textColor": "white" }, "JP:prefectural:hyogo": { "shapeBlank": { "drawFunc": "hexagonHorizontal", "params": { "sideAngle": 0.5235987755982988, "fillColor": "#003f87", "strokeColor": "white", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 3, "top": 2, "bottom": 2 }, "textColor": "white" }, "JP:prefectural:ibaraki": { "shapeBlank": { "drawFunc": "hexagonHorizontal", "params": { "sideAngle": 0.5235987755982988, "fillColor": "#003f87", "strokeColor": "white", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 3, "top": 2, "bottom": 2 }, "textColor": "white" }, "JP:prefectural:ishikawa": { "shapeBlank": { "drawFunc": "hexagonHorizontal", "params": { "sideAngle": 0.5235987755982988, "fillColor": "#003f87", "strokeColor": "white", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 3, "top": 2, "bottom": 2 }, "textColor": "white" }, "JP:prefectural:iwate": { "shapeBlank": { "drawFunc": "hexagonHorizontal", "params": { "sideAngle": 0.5235987755982988, "fillColor": "#003f87", "strokeColor": "white", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 3, "top": 2, "bottom": 2 }, "textColor": "white" }, "JP:prefectural:kagawa": { "shapeBlank": { "drawFunc": "hexagonHorizontal", "params": { "sideAngle": 0.5235987755982988, "fillColor": "#003f87", "strokeColor": "white", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 3, "top": 2, "bottom": 2 }, "textColor": "white" }, "JP:prefectural:kagoshima": { "shapeBlank": { "drawFunc": "hexagonHorizontal", "params": { "sideAngle": 0.5235987755982988, "fillColor": "#003f87", "strokeColor": "white", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 3, "top": 2, "bottom": 2 }, "textColor": "white" }, "JP:prefectural:kanagawa": { "shapeBlank": { "drawFunc": "hexagonHorizontal", "params": { "sideAngle": 0.5235987755982988, "fillColor": "#003f87", "strokeColor": "white", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 3, "top": 2, "bottom": 2 }, "textColor": "white" }, "JP:prefectural:kochi": { "shapeBlank": { "drawFunc": "hexagonHorizontal", "params": { "sideAngle": 0.5235987755982988, "fillColor": "#003f87", "strokeColor": "white", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 3, "top": 2, "bottom": 2 }, "textColor": "white" }, "JP:prefectural:kumamoto": { "shapeBlank": { "drawFunc": "hexagonHorizontal", "params": { "sideAngle": 0.5235987755982988, "fillColor": "#003f87", "strokeColor": "white", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 3, "top": 2, "bottom": 2 }, "textColor": "white" }, "JP:prefectural:kyoto": { "shapeBlank": { "drawFunc": "hexagonHorizontal", "params": { "sideAngle": 0.5235987755982988, "fillColor": "#003f87", "strokeColor": "white", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 3, "top": 2, "bottom": 2 }, "textColor": "white" }, "JP:prefectural:mie": { "shapeBlank": { "drawFunc": "hexagonHorizontal", "params": { "sideAngle": 0.5235987755982988, "fillColor": "#003f87", "strokeColor": "white", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 3, "top": 2, "bottom": 2 }, "textColor": "white" }, "JP:prefectural:miyagi": { "shapeBlank": { "drawFunc": "hexagonHorizontal", "params": { "sideAngle": 0.5235987755982988, "fillColor": "#003f87", "strokeColor": "white", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 3, "top": 2, "bottom": 2 }, "textColor": "white" }, "JP:prefectural:miyazaki": { "shapeBlank": { "drawFunc": "hexagonHorizontal", "params": { "sideAngle": 0.5235987755982988, "fillColor": "#003f87", "strokeColor": "white", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 3, "top": 2, "bottom": 2 }, "textColor": "white" }, "JP:prefectural:nagano": { "shapeBlank": { "drawFunc": "hexagonHorizontal", "params": { "sideAngle": 0.5235987755982988, "fillColor": "#003f87", "strokeColor": "white", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 3, "top": 2, "bottom": 2 }, "textColor": "white" }, "JP:prefectural:nagasaki": { "shapeBlank": { "drawFunc": "hexagonHorizontal", "params": { "sideAngle": 0.5235987755982988, "fillColor": "#003f87", "strokeColor": "white", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 3, "top": 2, "bottom": 2 }, "textColor": "white" }, "JP:prefectural:nara": { "shapeBlank": { "drawFunc": "hexagonHorizontal", "params": { "sideAngle": 0.5235987755982988, "fillColor": "#003f87", "strokeColor": "white", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 3, "top": 2, "bottom": 2 }, "textColor": "white" }, "JP:prefectural:niigata": { "shapeBlank": { "drawFunc": "hexagonHorizontal", "params": { "sideAngle": 0.5235987755982988, "fillColor": "#003f87", "strokeColor": "white", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 3, "top": 2, "bottom": 2 }, "textColor": "white" }, "JP:prefectural:oita": { "shapeBlank": { "drawFunc": "hexagonHorizontal", "params": { "sideAngle": 0.5235987755982988, "fillColor": "#003f87", "strokeColor": "white", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 3, "top": 2, "bottom": 2 }, "textColor": "white" }, "JP:prefectural:okayama": { "shapeBlank": { "drawFunc": "hexagonHorizontal", "params": { "sideAngle": 0.5235987755982988, "fillColor": "#003f87", "strokeColor": "white", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 3, "top": 2, "bottom": 2 }, "textColor": "white" }, "JP:prefectural:okinawa": { "shapeBlank": { "drawFunc": "hexagonHorizontal", "params": { "sideAngle": 0.5235987755982988, "fillColor": "#003f87", "strokeColor": "white", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 3, "top": 2, "bottom": 2 }, "textColor": "white" }, "JP:prefectural:osaka": { "shapeBlank": { "drawFunc": "hexagonHorizontal", "params": { "sideAngle": 0.5235987755982988, "fillColor": "#003f87", "strokeColor": "white", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 3, "top": 2, "bottom": 2 }, "textColor": "white" }, "JP:prefectural:saga": { "shapeBlank": { "drawFunc": "hexagonHorizontal", "params": { "sideAngle": 0.5235987755982988, "fillColor": "#003f87", "strokeColor": "white", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 3, "top": 2, "bottom": 2 }, "textColor": "white" }, "JP:prefectural:saitama": { "shapeBlank": { "drawFunc": "hexagonHorizontal", "params": { "sideAngle": 0.5235987755982988, "fillColor": "#003f87", "strokeColor": "white", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 3, "top": 2, "bottom": 2 }, "textColor": "white" }, "JP:prefectural:shiga": { "shapeBlank": { "drawFunc": "hexagonHorizontal", "params": { "sideAngle": 0.5235987755982988, "fillColor": "#003f87", "strokeColor": "white", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 3, "top": 2, "bottom": 2 }, "textColor": "white" }, "JP:prefectural:shimane": { "shapeBlank": { "drawFunc": "hexagonHorizontal", "params": { "sideAngle": 0.5235987755982988, "fillColor": "#003f87", "strokeColor": "white", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 3, "top": 2, "bottom": 2 }, "textColor": "white" }, "JP:prefectural:shizuoka": { "shapeBlank": { "drawFunc": "hexagonHorizontal", "params": { "sideAngle": 0.5235987755982988, "fillColor": "#003f87", "strokeColor": "white", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 3, "top": 2, "bottom": 2 }, "textColor": "white" }, "JP:prefectural:tochigi": { "shapeBlank": { "drawFunc": "hexagonHorizontal", "params": { "sideAngle": 0.5235987755982988, "fillColor": "#003f87", "strokeColor": "white", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 3, "top": 2, "bottom": 2 }, "textColor": "white" }, "JP:prefectural:tokushima": { "shapeBlank": { "drawFunc": "hexagonHorizontal", "params": { "sideAngle": 0.5235987755982988, "fillColor": "#003f87", "strokeColor": "white", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 3, "top": 2, "bottom": 2 }, "textColor": "white" }, "JP:prefectural:tokyo": { "shapeBlank": { "drawFunc": "hexagonHorizontal", "params": { "sideAngle": 0.5235987755982988, "fillColor": "#003f87", "strokeColor": "white", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 3, "top": 2, "bottom": 2 }, "textColor": "white" }, "JP:prefectural:tottori": { "shapeBlank": { "drawFunc": "hexagonHorizontal", "params": { "sideAngle": 0.5235987755982988, "fillColor": "#003f87", "strokeColor": "white", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 3, "top": 2, "bottom": 2 }, "textColor": "white" }, "JP:prefectural:toyama": { "shapeBlank": { "drawFunc": "hexagonHorizontal", "params": { "sideAngle": 0.5235987755982988, "fillColor": "#003f87", "strokeColor": "white", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 3, "top": 2, "bottom": 2 }, "textColor": "white" }, "JP:prefectural:wakayama": { "shapeBlank": { "drawFunc": "hexagonHorizontal", "params": { "sideAngle": 0.5235987755982988, "fillColor": "#003f87", "strokeColor": "white", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 3, "top": 2, "bottom": 2 }, "textColor": "white" }, "JP:prefectural:yamagata": { "shapeBlank": { "drawFunc": "hexagonHorizontal", "params": { "sideAngle": 0.5235987755982988, "fillColor": "#003f87", "strokeColor": "white", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 3, "top": 2, "bottom": 2 }, "textColor": "white" }, "JP:prefectural:yamaguchi": { "shapeBlank": { "drawFunc": "hexagonHorizontal", "params": { "sideAngle": 0.5235987755982988, "fillColor": "#003f87", "strokeColor": "white", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 3, "top": 2, "bottom": 2 }, "textColor": "white" }, "JP:prefectural:yamanashi": { "shapeBlank": { "drawFunc": "hexagonHorizontal", "params": { "sideAngle": 0.5235987755982988, "fillColor": "#003f87", "strokeColor": "white", "radius": 2, "rectWidth": 24 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 3, "top": 2, "bottom": 2 }, "textColor": "white" }, "KR:expressway": { "spriteBlank": [ "shield_kr_expressway_2", "shield_kr_expressway_3" ], "textColor": "white", "padding": { "left": 4, "right": 4, "top": 6, "bottom": 4 } }, "KR:national": { "shapeBlank": { "drawFunc": "ellipse", "params": { "fillColor": "#003f87", "strokeColor": "white", "rectWidth": 30 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 2 }, "textColor": "white" }, "KR:local": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#ffcd00", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "#003f87" }, "my:federal": { "shapeBlank": { "drawFunc": "hexagonVertical", "params": { "yOffset": 3, "fillColor": "#ffcd00", "strokeColor": "black", "radius": 2, "rectWidth": 34 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 2, "right": 2, "top": 4, "bottom": 4 }, "textColor": "black" }, "MY:E": { "shapeBlank": { "drawFunc": "hexagonVertical", "params": { "yOffset": 3, "fillColor": "#ffcd00", "strokeColor": "black", "radius": 2, "rectWidth": 34 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 2, "right": 2, "top": 4, "bottom": 4 }, "textColor": "black" }, "np:national": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "np:regional": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "PH:N": { "shapeBlank": { "drawFunc": "pentagon", "params": { "pointUp": false, "yOffset": 5, "sideAngle": 0, "fillColor": "white", "strokeColor": "black", "radius1": 2, "radius2": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 6 }, "textColor": "black" }, "PH:E": { "shapeBlank": { "drawFunc": "pentagon", "params": { "pointUp": false, "yOffset": 5, "sideAngle": 0, "fillColor": "#ffcd00", "strokeColor": "black", "radius1": 2, "radius2": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 6 }, "textColor": "black" }, "PK:national": { "shapeBlank": { "drawFunc": "hexagonHorizontal", "params": { "sideAngle": 0.5235987755982988, "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 3, "right": 3, "top": 2, "bottom": 2 }, "textColor": "white" }, "PK:motorway": { "spriteBlank": "shield_pk_motorway", "textLayout": { "constraintFunc": "southHalfEllipse" }, "textColor": "white", "padding": { "left": 2, "right": 2, "top": 2, "bottom": 7 } }, "TR:motorway": { "shapeBlank": { "drawFunc": "hexagonVertical", "params": { "yOffset": 2, "fillColor": "#f38f00", "strokeColor": "black", "radius": 0, "rectWidth": 34 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 2, "right": 2, "top": 3, "bottom": 3 }, "textColor": "black" }, "TW:freeway": { "spriteBlank": "shield_tw_freeway", "textLayout": { "constraintFunc": "ellipse" }, "textColor": "black", "padding": { "left": 4, "right": 4, "top": 4, "bottom": 4 } }, "TW:provincial": { "spriteBlank": [ "shield_tri_convex_2", "shield_tri_convex_3" ], "textLayout": { "constraintFunc": "ellipse" }, "textColor": "white", "padding": { "left": 2, "right": 2, "top": 1, "bottom": 5 }, "colorLighten": "white", "colorDarken": "#003f87" }, "TW:expressway": { "spriteBlank": [ "shield_tri_convex_2", "shield_tri_convex_3" ], "textLayout": { "constraintFunc": "ellipse" }, "textColor": "white", "padding": { "left": 2, "right": 2, "top": 1, "bottom": 5 }, "colorLighten": "#003f87", "colorDarken": "#bf2033" }, "TW:city": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "TW:county": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "TW:district": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "TW:township": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "vn:expressway": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#ffcd00", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "vn:national": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "e-road": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "AT:A-road": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "AT:S-road": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "AX:main": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#bf2033", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "AX:province": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "ba:Autoceste": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "rectWidth": 34, "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "ba:Magistralne ceste": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "rectWidth": 34, "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "BE:N-road": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "BE:R-road": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "BE:B-road": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "BE:A-road": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "BE:VLG:Ring_Antwerpen": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#ffcd00", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "bg:motorway": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "rectWidth": 34, "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "bg:national": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "rectWidth": 34, "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "by:national": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#bf2033", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "ch:national": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "CZ:national": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#bf2033", "strokeColor": "white", "rectWidth": 34, "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "cz:national": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "rectWidth": 34, "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "ee:national": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#bf2033", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "ES:A-road": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "fi:national": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#bf2033", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "fi:trunk": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#ffcd00", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "fi:regional": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "fi:link": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "FR:N-road": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#bf2033", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "FR:A-road": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#bf2033", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "DE:national": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#ffcd00", "strokeColor": "black", "rectWidth": 34, "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "GR:motorway": { "shapeBlank": { "drawFunc": "hexagonVertical", "params": { "yOffset": 3, "fillColor": "#006747", "strokeColor": "white", "radius": 0, "rectWidth": 34 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 2, "right": 2, "top": 4, "bottom": 4 }, "textColor": "white" }, "GR:national": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "rectWidth": 34, "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "IS": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "rectWidth": 34, "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "omt-ie-motorway": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "omt-ie-national": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "#ffcd00" }, "omt-ie-regional": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "IT:A-road": { "shapeBlank": { "drawFunc": "octagonVertical", "params": { "yOffset": 2, "sideAngle": 0.17453292519943295, "fillColor": "#006747", "strokeColor": "white", "radius": 0 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 2 }, "textColor": "white" }, "XK:motorway": { "shapeBlank": { "drawFunc": "hexagonVertical", "params": { "yOffset": 3, "fillColor": "#006747", "strokeColor": "white", "radius": 0, "rectWidth": 34 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 2, "right": 2, "top": 4, "bottom": 4 }, "textColor": "white" }, "lt:national": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#bf2033", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "LU:B-road": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "LU:A-road": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "LU:N-road": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#bf2033", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "LU:CR-road": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#ffcd00", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "lv:national": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#bf2033", "strokeColor": "white", "rectWidth": 34, "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "lv:regional": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "rectWidth": 34, "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "ME:Magistralni putevi": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "rectWidth": 34, "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "NL:A": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#bf2033", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "AW:route": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#ffcd00", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "NL:N": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#ffcd00", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "NL:S:Amsterdam": { "spriteBlank": "shield_nl_city", "textColor": "black", "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 } }, "NL:S:Den Haag": { "spriteBlank": "shield_nl_city", "textColor": "black", "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 } }, "NL:S:Nijmegen": { "spriteBlank": "shield_nl_city", "textColor": "black", "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 } }, "NL:S:Parkstad": { "spriteBlank": "shield_nl_city", "textColor": "black", "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 } }, "NL:S:Rotterdam": { "spriteBlank": "shield_nl_city", "textColor": "black", "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 } }, "NL:S:Zaanstad": { "spriteBlank": "shield_nl_city", "textColor": "black", "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 } }, "NL:binnenstedelijke_ring": { "spriteBlank": "shield_nl_city", "textColor": "black", "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 } }, "NL:R:Ommen": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "NL:R:Schouwen": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "NL:R:Sluis": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "NL:R:Spaarnwoude": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "NL:R:Voorthuizen": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "NL:R:IJmuiden": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#693f23", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "pl:motorways": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#bf2033", "strokeColor": "white", "rectWidth": 34, "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "pl:expressways": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#bf2033", "strokeColor": "white", "rectWidth": 34, "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "pl:national": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#bf2033", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "PT:national": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "PT:regional": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "RO:A": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "rectWidth": 34, "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "ru:national": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "SE:RV": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "SE:LV": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "SE:AB": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "SE:C": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "SE:D": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "SE:E": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "SE:F": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "SE:G": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "SE:H": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "SE:I": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "SE:K": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "SE:M": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "SE:N": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "SE:O": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "SE:S": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "SE:T": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "SE:U": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "SE:W": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "SE:X": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "SE:Y": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "SE:Z": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "SE:AC": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "SE:BD": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "SE:LS": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "SI:AC": { "shapeBlank": { "drawFunc": "hexagonVertical", "params": { "yOffset": 3, "fillColor": "#006747", "strokeColor": "white", "radius": 0, "rectWidth": 34 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 2, "right": 2, "top": 4, "bottom": 4 }, "textColor": "white" }, "sk:national": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#bf2033", "strokeColor": "white", "rectWidth": 34, "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "ua:international": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "omt-gb-motorway": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#003f87", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "white" }, "omt-gb-trunk": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "white", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "#ffcd00" }, "omt-gb-primary": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "white", "strokeColor": "black", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "black" }, "AU:ACT": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "#ffcd00", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "#ffcd00" }, "AU:ACT:NH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "pointUp": false, "yOffset": 5, "sideAngle": 0, "fillColor": "#006747", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 6 }, "textColor": "#ffcd00" }, "AU:ACT:NR": { "shapeBlank": { "drawFunc": "pentagon", "params": { "pointUp": false, "yOffset": 5, "sideAngle": 0, "fillColor": "white", "strokeColor": "black", "radius1": 2, "radius2": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 6 }, "textColor": "black" }, "AU:ACT:S": { "shapeBlank": { "drawFunc": "fishhead", "params": { "fillColor": "#003f87", "strokeColor": "white", "outlineWidth": 1 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 5 }, "textColor": "white" }, "AU:ACT:T": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#693f23", "strokeColor": "white", "radius1": 2, "radius2": 2 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "AU:ACT:ALT": { "banners": [ "ALT" ], "bannerTextColor": "#006747", "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "#ffcd00", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "#ffcd00" }, "AU:ACT:ALT_NR": { "banners": [ "ALT" ], "shapeBlank": { "drawFunc": "pentagon", "params": { "pointUp": false, "yOffset": 5, "sideAngle": 0, "fillColor": "white", "strokeColor": "black", "radius1": 2, "radius2": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 6 }, "textColor": "black" }, "AU:ACT:ALT_S": { "banners": [ "ALT" ], "bannerTextColor": "#003f87", "shapeBlank": { "drawFunc": "fishhead", "params": { "fillColor": "#003f87", "strokeColor": "white", "outlineWidth": 1 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 5 }, "textColor": "white" }, "AU:NSW": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "#ffcd00", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "#ffcd00" }, "AU:NSW:NH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "pointUp": false, "yOffset": 5, "sideAngle": 0, "fillColor": "#006747", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 6 }, "textColor": "#ffcd00" }, "AU:NSW:NR": { "shapeBlank": { "drawFunc": "pentagon", "params": { "pointUp": false, "yOffset": 5, "sideAngle": 0, "fillColor": "white", "strokeColor": "black", "radius1": 2, "radius2": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 6 }, "textColor": "black" }, "AU:NSW:S": { "shapeBlank": { "drawFunc": "fishhead", "params": { "fillColor": "#003f87", "strokeColor": "white", "outlineWidth": 1 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 5 }, "textColor": "white" }, "AU:NSW:T": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#693f23", "strokeColor": "white", "radius1": 2, "radius2": 2 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "AU:NSW:ALT": { "banners": [ "ALT" ], "bannerTextColor": "#006747", "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "#ffcd00", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "#ffcd00" }, "AU:NSW:ALT_NR": { "banners": [ "ALT" ], "shapeBlank": { "drawFunc": "pentagon", "params": { "pointUp": false, "yOffset": 5, "sideAngle": 0, "fillColor": "white", "strokeColor": "black", "radius1": 2, "radius2": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 6 }, "textColor": "black" }, "AU:NSW:ALT_S": { "banners": [ "ALT" ], "bannerTextColor": "#003f87", "shapeBlank": { "drawFunc": "fishhead", "params": { "fillColor": "#003f87", "strokeColor": "white", "outlineWidth": 1 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 5 }, "textColor": "white" }, "AU:NT": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "#ffcd00", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "#ffcd00" }, "AU:NT:NH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "pointUp": false, "yOffset": 5, "sideAngle": 0, "fillColor": "#006747", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 6 }, "textColor": "#ffcd00" }, "AU:NT:NR": { "shapeBlank": { "drawFunc": "pentagon", "params": { "pointUp": false, "yOffset": 5, "sideAngle": 0, "fillColor": "white", "strokeColor": "black", "radius1": 2, "radius2": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 6 }, "textColor": "black" }, "AU:NT:S": { "shapeBlank": { "drawFunc": "fishhead", "params": { "fillColor": "#003f87", "strokeColor": "white", "outlineWidth": 1 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 5 }, "textColor": "white" }, "AU:NT:T": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#693f23", "strokeColor": "white", "radius1": 2, "radius2": 2 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "AU:NT:ALT": { "banners": [ "ALT" ], "bannerTextColor": "#006747", "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "#ffcd00", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "#ffcd00" }, "AU:NT:ALT_NR": { "banners": [ "ALT" ], "shapeBlank": { "drawFunc": "pentagon", "params": { "pointUp": false, "yOffset": 5, "sideAngle": 0, "fillColor": "white", "strokeColor": "black", "radius1": 2, "radius2": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 6 }, "textColor": "black" }, "AU:NT:ALT_S": { "banners": [ "ALT" ], "bannerTextColor": "#003f87", "shapeBlank": { "drawFunc": "fishhead", "params": { "fillColor": "#003f87", "strokeColor": "white", "outlineWidth": 1 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 5 }, "textColor": "white" }, "AU:QLD": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "#ffcd00", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "#ffcd00" }, "AU:QLD:NH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "pointUp": false, "yOffset": 5, "sideAngle": 0, "fillColor": "#006747", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 6 }, "textColor": "#ffcd00" }, "AU:QLD:NR": { "shapeBlank": { "drawFunc": "pentagon", "params": { "pointUp": false, "yOffset": 5, "sideAngle": 0, "fillColor": "white", "strokeColor": "black", "radius1": 2, "radius2": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 6 }, "textColor": "black" }, "AU:QLD:S": { "shapeBlank": { "drawFunc": "fishhead", "params": { "fillColor": "#003f87", "strokeColor": "white", "outlineWidth": 1 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 5 }, "textColor": "white" }, "AU:QLD:T": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#693f23", "strokeColor": "white", "radius1": 2, "radius2": 2 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "AU:QLD:ALT": { "banners": [ "ALT" ], "bannerTextColor": "#006747", "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "#ffcd00", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "#ffcd00" }, "AU:QLD:ALT_NR": { "banners": [ "ALT" ], "shapeBlank": { "drawFunc": "pentagon", "params": { "pointUp": false, "yOffset": 5, "sideAngle": 0, "fillColor": "white", "strokeColor": "black", "radius1": 2, "radius2": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 6 }, "textColor": "black" }, "AU:QLD:ALT_S": { "banners": [ "ALT" ], "bannerTextColor": "#003f87", "shapeBlank": { "drawFunc": "fishhead", "params": { "fillColor": "#003f87", "strokeColor": "white", "outlineWidth": 1 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 5 }, "textColor": "white" }, "AU:SA": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "#ffcd00", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "#ffcd00" }, "AU:SA:NH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "pointUp": false, "yOffset": 5, "sideAngle": 0, "fillColor": "#006747", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 6 }, "textColor": "#ffcd00" }, "AU:SA:NR": { "shapeBlank": { "drawFunc": "pentagon", "params": { "pointUp": false, "yOffset": 5, "sideAngle": 0, "fillColor": "white", "strokeColor": "black", "radius1": 2, "radius2": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 6 }, "textColor": "black" }, "AU:SA:S": { "shapeBlank": { "drawFunc": "fishhead", "params": { "fillColor": "#003f87", "strokeColor": "white", "outlineWidth": 1 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 5 }, "textColor": "white" }, "AU:SA:T": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#693f23", "strokeColor": "white", "radius1": 2, "radius2": 2 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "AU:SA:ALT": { "banners": [ "ALT" ], "bannerTextColor": "#006747", "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "#ffcd00", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "#ffcd00" }, "AU:SA:ALT_NR": { "banners": [ "ALT" ], "shapeBlank": { "drawFunc": "pentagon", "params": { "pointUp": false, "yOffset": 5, "sideAngle": 0, "fillColor": "white", "strokeColor": "black", "radius1": 2, "radius2": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 6 }, "textColor": "black" }, "AU:SA:ALT_S": { "banners": [ "ALT" ], "bannerTextColor": "#003f87", "shapeBlank": { "drawFunc": "fishhead", "params": { "fillColor": "#003f87", "strokeColor": "white", "outlineWidth": 1 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 5 }, "textColor": "white" }, "AU:TAS": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "#ffcd00", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "#ffcd00" }, "AU:TAS:NH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "pointUp": false, "yOffset": 5, "sideAngle": 0, "fillColor": "#006747", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 6 }, "textColor": "#ffcd00" }, "AU:TAS:NR": { "shapeBlank": { "drawFunc": "pentagon", "params": { "pointUp": false, "yOffset": 5, "sideAngle": 0, "fillColor": "white", "strokeColor": "black", "radius1": 2, "radius2": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 6 }, "textColor": "black" }, "AU:TAS:S": { "shapeBlank": { "drawFunc": "fishhead", "params": { "fillColor": "#003f87", "strokeColor": "white", "outlineWidth": 1 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 5 }, "textColor": "white" }, "AU:TAS:T": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#693f23", "strokeColor": "white", "radius1": 2, "radius2": 2 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "AU:TAS:ALT": { "banners": [ "ALT" ], "bannerTextColor": "#006747", "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "#ffcd00", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "#ffcd00" }, "AU:TAS:ALT_NR": { "banners": [ "ALT" ], "shapeBlank": { "drawFunc": "pentagon", "params": { "pointUp": false, "yOffset": 5, "sideAngle": 0, "fillColor": "white", "strokeColor": "black", "radius1": 2, "radius2": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 6 }, "textColor": "black" }, "AU:TAS:ALT_S": { "banners": [ "ALT" ], "bannerTextColor": "#003f87", "shapeBlank": { "drawFunc": "fishhead", "params": { "fillColor": "#003f87", "strokeColor": "white", "outlineWidth": 1 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 5 }, "textColor": "white" }, "AU:VIC": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "#ffcd00", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "#ffcd00" }, "AU:VIC:NH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "pointUp": false, "yOffset": 5, "sideAngle": 0, "fillColor": "#006747", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 6 }, "textColor": "#ffcd00" }, "AU:VIC:NR": { "shapeBlank": { "drawFunc": "pentagon", "params": { "pointUp": false, "yOffset": 5, "sideAngle": 0, "fillColor": "white", "strokeColor": "black", "radius1": 2, "radius2": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 6 }, "textColor": "black" }, "AU:VIC:S": { "shapeBlank": { "drawFunc": "fishhead", "params": { "fillColor": "#003f87", "strokeColor": "white", "outlineWidth": 1 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 5 }, "textColor": "white" }, "AU:VIC:T": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#693f23", "strokeColor": "white", "radius1": 2, "radius2": 2 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "AU:VIC:ALT": { "banners": [ "ALT" ], "bannerTextColor": "#006747", "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "#ffcd00", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "#ffcd00" }, "AU:VIC:ALT_NR": { "banners": [ "ALT" ], "shapeBlank": { "drawFunc": "pentagon", "params": { "pointUp": false, "yOffset": 5, "sideAngle": 0, "fillColor": "white", "strokeColor": "black", "radius1": 2, "radius2": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 6 }, "textColor": "black" }, "AU:VIC:ALT_S": { "banners": [ "ALT" ], "bannerTextColor": "#003f87", "shapeBlank": { "drawFunc": "fishhead", "params": { "fillColor": "#003f87", "strokeColor": "white", "outlineWidth": 1 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 5 }, "textColor": "white" }, "AU:WA": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "#ffcd00", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "#ffcd00" }, "AU:WA:NH": { "shapeBlank": { "drawFunc": "pentagon", "params": { "pointUp": false, "yOffset": 5, "sideAngle": 0, "fillColor": "#006747", "strokeColor": "#ffcd00", "radius1": 2, "radius2": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 6 }, "textColor": "#ffcd00" }, "AU:WA:NR": { "shapeBlank": { "drawFunc": "pentagon", "params": { "pointUp": false, "yOffset": 5, "sideAngle": 0, "fillColor": "white", "strokeColor": "black", "radius1": 2, "radius2": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 6 }, "textColor": "black" }, "AU:WA:S": { "shapeBlank": { "drawFunc": "fishhead", "params": { "fillColor": "#003f87", "strokeColor": "white", "outlineWidth": 1 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 5 }, "textColor": "white" }, "AU:WA:T": { "shapeBlank": { "drawFunc": "pentagon", "params": { "yOffset": 3, "sideAngle": 0.2617993877991494, "fillColor": "#693f23", "strokeColor": "white", "radius1": 2, "radius2": 2 } }, "textLayout": { "constraintFunc": "rect" }, "padding": { "left": 4.277568135664543, "right": 4.277568135664543, "top": 2.5, "bottom": 3 }, "textColor": "white" }, "AU:WA:ALT": { "banners": [ "ALT" ], "bannerTextColor": "#006747", "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#006747", "strokeColor": "#ffcd00", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "#ffcd00" }, "AU:WA:ALT_NR": { "banners": [ "ALT" ], "shapeBlank": { "drawFunc": "pentagon", "params": { "pointUp": false, "yOffset": 5, "sideAngle": 0, "fillColor": "white", "strokeColor": "black", "radius1": 2, "radius2": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 6 }, "textColor": "black" }, "AU:WA:ALT_S": { "banners": [ "ALT" ], "bannerTextColor": "#003f87", "shapeBlank": { "drawFunc": "fishhead", "params": { "fillColor": "#003f87", "strokeColor": "white", "outlineWidth": 1 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 5 }, "textColor": "white" }, "AU:QLD:MR": { "shapeBlank": { "drawFunc": "hexagonVertical", "params": { "yOffset": 4, "fillColor": "white", "strokeColor": "#003f87", "radius": 0, "rectWidth": 20 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 0 } }, "padding": { "left": 2, "right": 2, "top": 5, "bottom": 5 }, "textColor": "#003f87" }, "AU:QLD:SSTR": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "fillColor": "#693f23", "strokeColor": "#ffcd00", "radius": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 3, "right": 3, "top": 3, "bottom": 3 }, "textColor": "#ffcd00" }, "NZ:SH": { "shapeBlank": { "drawFunc": "fishhead", "params": { "fillColor": "#bf2033", "strokeColor": "white", "outlineWidth": 1 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 1, "right": 1, "top": 1, "bottom": 5 }, "textColor": "white" }, "NZ:UR": { "shapeBlank": { "drawFunc": "pentagon", "params": { "pointUp": false, "yOffset": 5, "sideAngle": 0, "fillColor": "white", "strokeColor": "black", "radius1": 2, "radius2": 2 } }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 2 } }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 6 }, "textColor": "black" }, "NZ:WRR": { "shapeBlank": { "drawFunc": "ellipse", "params": { "fillColor": "white", "strokeColor": "black", "rectWidth": 20 } }, "textLayout": { "constraintFunc": "ellipse" }, "padding": { "left": 2, "right": 2, "top": 2, "bottom": 2 }, "textColor": "black" }, "default-motorway-light": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "radius": 3, "strokeColor": "#caad66", "outlineWidth": 1, "fillColor": "#e1c172" } }, "textColor": "#4d3a28", "padding": { "left": 1, "right": 1, "top": 1, "bottom": 1 }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 3 } } }, "default-motorway-dark": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "radius": 3, "strokeColor": "#685442", "outlineWidth": 1, "fillColor": "#58422e" } }, "textColor": "#4d3a28", "padding": { "left": 1, "right": 1, "top": 1, "bottom": 1 }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 3 } } }, "default-trunk-light": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "radius": 3, "strokeColor": "#d1ba69", "outlineWidth": 1, "fillColor": "#e9cf75" } }, "textColor": "#4d3a28", "padding": { "left": 1, "right": 1, "top": 1, "bottom": 1 }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 3 } } }, "default-trunk-dark": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "radius": 3, "strokeColor": "#5b4b3c", "outlineWidth": 1, "fillColor": "#493727" } }, "textColor": "#4d3a28", "padding": { "left": 1, "right": 1, "top": 1, "bottom": 1 }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 3 } } }, "default-primary-light": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "radius": 3, "strokeColor": "#d1ba69", "outlineWidth": 1, "fillColor": "#e9cf75" } }, "textColor": "#4d3a28", "padding": { "left": 1, "right": 1, "top": 1, "bottom": 1 }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 3 } } }, "default-primary-dark": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "radius": 3, "strokeColor": "#5b4b3c", "outlineWidth": 1, "fillColor": "#493727" } }, "textColor": "#4d3a28", "padding": { "left": 1, "right": 1, "top": 1, "bottom": 1 }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 3 } } }, "default-secondary-light": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "radius": 3, "strokeColor": "#d3c07c", "outlineWidth": 1, "fillColor": "#ebd68a" } }, "textColor": "#4d3a28", "padding": { "left": 1, "right": 1, "top": 1, "bottom": 1 }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 3 } } }, "default-secondary-dark": { "shapeBlank": { "drawFunc": "roundedRectangle", "params": { "radius": 3, "strokeColor": "#574739", "outlineWidth": 1, "fillColor": "#453324" } }, "textColor": "#4d3a28", "padding": { "left": 1, "right": 1, "top": 1, "bottom": 1 }, "textLayout": { "constraintFunc": "roundedRect", "options": { "radius": 3 } } } }, "options": { "bannerTextColor": "black", "bannerTextHaloColor": "hsl(30, 44%, 96%)", "bannerHeight": 9, "bannerPadding": 1, "shieldFont": "\"Noto Sans Condensed\", \"Noto Sans Armenian Condensed\", sans-serif-condensed, \"Arial Narrow\", sans-serif", "shieldSize": 20 } }07070100000165000041ED0000000000000000000000026641340900000000000000000000000000000000000000000000001900000000gnome-maps-46.11/data/ui07070100000166000081A400000000000000000000000166413409000004BA000000000000000000000000000000000000002900000000gnome-maps-46.11/data/ui/context-menu.ui

Route from Here view.route-from-here Add Intermediate Destination view.add-intermediate-destination Route to Here view.route-to-here
What's Here? view.whats-here Copy Location view.copy-location Add to OpenStreetMap… view.add-osm-location
07070100000167000081A40000000000000000000000016641340900000EDA000000000000000000000000000000000000002F00000000gnome-maps-46.11/data/ui/export-view-dialog.ui 07070100000168000081A40000000000000000000000016641340900000C87000000000000000000000000000000000000002E00000000gnome-maps-46.11/data/ui/favorite-list-row.ui 07070100000169000081A40000000000000000000000016641340900000870000000000000000000000000000000000000002E00000000gnome-maps-46.11/data/ui/favorites-popover.ui 0707010000016A000081A40000000000000000000000016641340900000424000000000000000000000000000000000000002B00000000gnome-maps-46.11/data/ui/headerbar-left.ui 0707010000016B000081A40000000000000000000000016641340900000647000000000000000000000000000000000000002C00000000gnome-maps-46.11/data/ui/headerbar-right.ui 0707010000016C000081A40000000000000000000000016641340900001A2F000000000000000000000000000000000000002900000000gnome-maps-46.11/data/ui/help-overlay.ui 1 10 General Show Shortcuts <Primary>question Search <Primary>F Explore points-of-interest <Primary><Shift>F Show last search results <Primary>R Toggle route planner <Primary>D Print route <Primary>P Quit <Primary>Q Open main menu F10 Map View Zoom in <Primary>plus <Primary>equal Zoom out <Primary>minus Rotate clockwise <Primary>Right Rotate counter-clockwise <Primary>Left Reset rotation <Primary>Up Toggle scale <Primary>S Go to current location <Primary>L 0 Switch to street view <Primary>1 0 Switch to aerial view <Primary>2 Open shape layer <Primary>O 0707010000016D000081A400000000000000000000000166413409000007C5000000000000000000000000000000000000002C00000000gnome-maps-46.11/data/ui/instruction-row.ui 0707010000016E000081A40000000000000000000000016641340900000603000000000000000000000000000000000000002B00000000gnome-maps-46.11/data/ui/layers-popover.ui
Show Scale win.show-scale
layers_list Enable Experimental Map win.enable-vector-layer action-missing Open Shape Layer… win.open-shape-layer
0707010000016F000081A40000000000000000000000016641340900001292000000000000000000000000000000000000002800000000gnome-maps-46.11/data/ui/main-window.ui
app.osm-account-setup Set up OpenStreetMap Account… win.export-as-image Export as Image…
_Keyboard Shortcuts win.show-help-overlay win.about About Maps
07070100000170000081A40000000000000000000000016641340900000335000000000000000000000000000000000000002A00000000gnome-maps-46.11/data/ui/open-with-row.ui 07070100000171000081A40000000000000000000000016641340900001921000000000000000000000000000000000000002F00000000gnome-maps-46.11/data/ui/osm-account-dialog.ui 07070100000172000081A4000000000000000000000001664134090000076A000000000000000000000000000000000000002D00000000gnome-maps-46.11/data/ui/osm-edit-address.ui 07070100000173000081A40000000000000000000000016641340900003164000000000000000000000000000000000000002C00000000gnome-maps-46.11/data/ui/osm-edit-dialog.ui vertical 07070100000174000081A40000000000000000000000016641340900000717000000000000000000000000000000000000002F00000000gnome-maps-46.11/data/ui/osm-edit-wikipedia.ui 07070100000175000081A400000000000000000000000166413409000003A2000000000000000000000000000000000000002E00000000gnome-maps-46.11/data/ui/osm-type-list-row.ui 07070100000176000081A40000000000000000000000016641340900000168000000000000000000000000000000000000002D00000000gnome-maps-46.11/data/ui/osm-type-popover.ui 07070100000177000081A40000000000000000000000016641340900000176000000000000000000000000000000000000003200000000gnome-maps-46.11/data/ui/osm-type-search-entry.ui 07070100000178000081A40000000000000000000000016641340900000657000000000000000000000000000000000000002600000000gnome-maps-46.11/data/ui/place-bar.ui 07070100000179000081A400000000000000000000000166413409000008A3000000000000000000000000000000000000002A00000000gnome-maps-46.11/data/ui/place-buttons.ui 0707010000017A000081A4000000000000000000000001664134090000032F000000000000000000000000000000000000002900000000gnome-maps-46.11/data/ui/place-dialog.ui 0707010000017B000081A400000000000000000000000166413409000009FA000000000000000000000000000000000000002B00000000gnome-maps-46.11/data/ui/place-list-row.ui 0707010000017C000081A4000000000000000000000001664134090000101C000000000000000000000000000000000000002A00000000gnome-maps-46.11/data/ui/place-popover.ui horizontal 0707010000017D000081A40000000000000000000000016641340900001670000000000000000000000000000000000000002700000000gnome-maps-46.11/data/ui/place-view.ui vertical False False 0 vertical 12 12 12 12 12 vertical 12 start True True 30 0 0 1 Share location share-symbolic GTK_ALIGN_CENTER 0 start True True 30 0 6 0 6 6 horizontal layers-button-symbolic start start True True 30 0 start 0 1 1 vertical True 32 32 GTK_ALIGN_CENTER 0707010000017E000081A400000000000000000000000166413409000003EC000000000000000000000000000000000000003400000000gnome-maps-46.11/data/ui/poi-category-goback-row.ui 0707010000017F000081A400000000000000000000000166413409000004E7000000000000000000000000000000000000002D00000000gnome-maps-46.11/data/ui/poi-category-row.ui 07070100000180000081A40000000000000000000000016641340900000498000000000000000000000000000000000000002800000000gnome-maps-46.11/data/ui/route-entry.ui 07070100000181000081A400000000000000000000000166413409000000DE000000000000000000000000000000000000002700000000gnome-maps-46.11/data/ui/search-bar.ui 07070100000182000081A400000000000000000000000166413409000019FB000000000000000000000000000000000000002B00000000gnome-maps-46.11/data/ui/send-to-dialog.ui 07070100000183000081A400000000000000000000000166413409000004B4000000000000000000000000000000000000003500000000gnome-maps-46.11/data/ui/shape-layer-file-chooser.ui 07070100000184000081A40000000000000000000000016641340900000810000000000000000000000000000000000000002C00000000gnome-maps-46.11/data/ui/shape-layer-row.ui 07070100000185000081A40000000000000000000000016641340900003555000000000000000000000000000000000000002400000000gnome-maps-46.11/data/ui/sidebar.ui 6 6 6 6 Routing itineraries for public transit is provided by third-party services. GNOME can not guarantee correctness of the itineraries and schedules shown. Note that some providers might not include all available modes of transportation, e.g. a national provider might not include airlines, and a local provider could miss regional trains. Names and brands shown are to be considered as registered trademarks when applicable. 6 6 6 6 start go-previous-symbolic 0 0 6 6 6 6 0 start 1 0 6 6 6 6 1 start 2 0 07070100000186000081A400000000000000000000000166413409000008A9000000000000000000000000000000000000003000000000gnome-maps-46.11/data/ui/transit-arrival-row.ui 07070100000187000081A40000000000000000000000016641340900000A4A000000000000000000000000000000000000003200000000gnome-maps-46.11/data/ui/transit-itinerary-row.ui 07070100000188000081A400000000000000000000000166413409000020EB000000000000000000000000000000000000002C00000000gnome-maps-46.11/data/ui/transit-leg-row.ui 07070100000189000081A400000000000000000000000166413409000005EE000000000000000000000000000000000000002D00000000gnome-maps-46.11/data/ui/transit-more-row.ui 0707010000018A000081A40000000000000000000000016641340900001490000000000000000000000000000000000000003200000000gnome-maps-46.11/data/ui/transit-options-panel.ui 6 6 6 6 vertical start Show 6 1 Buses 1 Trams 1 Trains 1 Subway 1 Ferries 1 Airplanes 0707010000018B000081A4000000000000000000000001664134090000037B000000000000000000000000000000000000003000000000gnome-maps-46.11/data/ui/transit-route-label.ui 0707010000018C000081A4000000000000000000000001664134090000067B000000000000000000000000000000000000002D00000000gnome-maps-46.11/data/ui/transit-stop-row.ui 0707010000018D000081A40000000000000000000000016641340900000801000000000000000000000000000000000000003500000000gnome-maps-46.11/data/ui/zoom-and-rotate-controls.ui 0707010000018E000081A4000000000000000000000001664134090000047C000000000000000000000000000000000000002100000000gnome-maps-46.11/gnome-maps.doap gnome-maps A simple GNOME 3 maps application Map application based on OpenStreetMap map data JavaScript Marcus Lundblad mlundblad 0707010000018F000041ED0000000000000000000000026641340900000000000000000000000000000000000000000000001500000000gnome-maps-46.11/lib07070100000190000081A4000000000000000000000001664134090000378C000000000000000000000000000000000000002D00000000gnome-maps-46.11/lib/maps-file-data-source.c/* * Copyright (c) 2015 Jonas Danielsson * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Jonas Danielsson */ #include #include #include #include #include #include #include "mapsintl.h" #include "maps-file-data-source.h" #define MAPS_FILE_DATA_SOURCE_ERROR maps_file_data_source_error_quark () GQuark maps_file_data_source_error_quark (void) { return g_quark_from_static_string ("maps-file-data-source-error"); } enum { PROP_0, PROP_PATH, PROP_MAX_ZOOM, PROP_MIN_ZOOM }; struct _MapsFileDataSourcePrivate { gchar *path; gchar *extension; gint max_zoom; gint min_zoom; long min_x; long min_y; long max_x; long max_y; }; G_DEFINE_TYPE_WITH_PRIVATE (MapsFileDataSource, maps_file_data_source, SHUMATE_TYPE_DATA_SOURCE) static void maps_file_data_source_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { MapsFileDataSource *data_source = MAPS_FILE_DATA_SOURCE (object); switch (prop_id) { case PROP_PATH: data_source->priv->path = g_strdup ((char *) g_value_get_string (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } static void maps_file_data_source_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { MapsFileDataSource *data_source = MAPS_FILE_DATA_SOURCE (object); switch (prop_id) { case PROP_PATH: g_value_set_string (value, data_source->priv->path); break; case PROP_MIN_ZOOM: g_value_set_uint (value, data_source->priv->min_zoom); break; case PROP_MAX_ZOOM: g_value_set_uint (value, data_source->priv->max_zoom); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } static void maps_file_data_source_dispose (GObject *object) { G_OBJECT_CLASS (maps_file_data_source_parent_class)->dispose (object); } static void maps_file_data_source_finalize (GObject *object) { MapsFileDataSource *data_source = MAPS_FILE_DATA_SOURCE (object); if (data_source->priv->path) g_free (data_source->priv->path); if (data_source->priv->extension) g_free (data_source->priv->extension); G_OBJECT_CLASS (maps_file_data_source_parent_class)->finalize (object); } static void get_tile_data_async (ShumateDataSource *source, int x, int y, int zoom_level, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); static void maps_file_data_source_class_init (MapsFileDataSourceClass *klass) { ShumateDataSourceClass *data_source_class = SHUMATE_DATA_SOURCE_CLASS (klass); GObjectClass *object_class = G_OBJECT_CLASS (klass); GParamSpec *pspec; object_class->finalize = maps_file_data_source_finalize; object_class->dispose = maps_file_data_source_dispose; object_class->get_property = maps_file_data_source_get_property; object_class->set_property = maps_file_data_source_set_property; data_source_class->get_tile_data_async = get_tile_data_async; /** * MapsFileDataSource:path: * * The path to the tile source. * */ pspec = g_param_spec_string ("path", "Path", "The path to the tile source", "", G_PARAM_READWRITE | G_PARAM_CONSTRUCT); g_object_class_install_property (object_class, PROP_PATH, pspec); /** * MapsFileDataSource:min-zoom: * * The minimum zoom level of the tile source. * */ pspec = g_param_spec_uint ("min-zoom", "Minimum zoom", "The minimum zoom level of the tile source", 0, 20, 2, G_PARAM_READABLE); g_object_class_install_property (object_class, PROP_MIN_ZOOM, pspec); /** * MapsFileDataSource:max-zoom: * * The maximum zoom level of the tile source. * */ pspec = g_param_spec_uint ("max-zoom", "Maximum zoom", "The maximum zoom level of the tile source", 0, 20, 2, G_PARAM_READABLE); g_object_class_install_property (object_class, PROP_MAX_ZOOM, pspec); } static void maps_file_data_source_init (MapsFileDataSource *data_source) { data_source->priv = maps_file_data_source_get_instance_private (data_source); data_source->priv->path = NULL; data_source->priv->extension = NULL; data_source->priv->max_zoom = -1; data_source->priv->min_zoom = 21; data_source->priv->min_x = G_MAXLONG; data_source->priv->min_y = G_MAXLONG; data_source->priv->max_x = 0; data_source->priv->max_y = 0; } static gboolean get_zoom_levels (MapsFileDataSource *data_source, GError **error) { GFile *file; GFileEnumerator *enumerator; gboolean ret = TRUE; long orig_min = data_source->priv->min_zoom; long orig_max = data_source->priv->max_zoom; file = g_file_new_for_path (data_source->priv->path); enumerator = g_file_enumerate_children (file, "standard::*", G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, NULL, error); if (!enumerator) return FALSE; while (TRUE) { GFileInfo *info; const char *name; char *endptr; long val; if (!g_file_enumerator_iterate (enumerator, &info, NULL, NULL, error)) { ret = FALSE; goto out; } if (!info) break; if (g_file_info_get_file_type (info) != G_FILE_TYPE_DIRECTORY) continue; name = g_file_info_get_name (info); val = strtol (name, &endptr, 0); if (endptr == name || *endptr != '\0') continue; if (val > data_source->priv->max_zoom) data_source->priv->max_zoom = val; if (val < data_source->priv->min_zoom) data_source->priv->min_zoom = val; } if (data_source->priv->min_zoom == orig_min || data_source->priv->max_zoom == orig_max) { ret = FALSE; if (error) { *error = g_error_new_literal (MAPS_FILE_DATA_SOURCE_ERROR, 0, _("Failed to find tile structure in directory")); } } out: g_object_unref (file); g_object_unref (enumerator); return ret; } static gboolean get_y_bounds (MapsFileDataSource *data_source, const char *path, GError **error) { GFileEnumerator *enumerator; GFile *file; gboolean ret = TRUE; gboolean found = FALSE; file = g_file_new_for_path (path); enumerator = g_file_enumerate_children (file, "standard::*", G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, NULL, error); if (!enumerator) return FALSE; while (TRUE) { GFileInfo *info; char **names; char *endptr; long y; if (!g_file_enumerator_iterate (enumerator, &info, NULL, NULL, error)) { ret = FALSE; goto out; } if (!info) break; if (g_file_info_get_file_type (info) != G_FILE_TYPE_REGULAR) continue; names = g_strsplit (g_file_info_get_name (info), ".", 2); if (!data_source->priv->extension) data_source->priv->extension = g_strdup (names[1]); y = strtol (names[0], &endptr, 0); if (endptr == names[0] || *endptr != '\0') { g_strfreev (names); continue; } if (!found) found = TRUE; g_strfreev (names); if (y > data_source->priv->max_y) data_source->priv->max_y = y; if (y < data_source->priv->min_y) data_source->priv->min_y = y; } if (!found) { ret = FALSE; if (error) { *error = g_error_new_literal (MAPS_FILE_DATA_SOURCE_ERROR, 0, _("Failed to find tile structure in directory")); } } out: g_object_unref (file); g_object_unref (enumerator); return ret; } static gboolean get_bounds (MapsFileDataSource *data_source, GError **error) { GFileEnumerator *enumerator; GFile *file; char *path; gboolean ret = TRUE; char min_zoom[3]; gboolean found = FALSE; sprintf (min_zoom, "%u", data_source->priv->min_zoom); path = g_build_filename (data_source->priv->path, min_zoom, NULL); file = g_file_new_for_path (path); enumerator = g_file_enumerate_children (file, "standard::*", G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, NULL, error); if (!enumerator) return FALSE; while (TRUE) { char *y_path; GFileInfo *info; const char *name; char *endptr; long x; if (!g_file_enumerator_iterate (enumerator, &info, NULL, NULL, error)) { ret = FALSE; goto out; } if (!info) break; if (g_file_info_get_file_type (info) != G_FILE_TYPE_DIRECTORY) continue; name = g_file_info_get_name (info); x = strtol (name, &endptr, 0); if (endptr == name || *endptr != '\0') continue; if (!found) found = TRUE; if (x > data_source->priv->max_x) data_source->priv->max_x = x; if (x < data_source->priv->min_x) data_source->priv->min_x = x; y_path = g_build_filename (path, name, NULL); if (!get_y_bounds (data_source, y_path, error)) { g_free (y_path); ret = FALSE; goto out; } g_free (y_path); } if (!found) { ret = FALSE; if (error) { *error = g_error_new_literal (MAPS_FILE_DATA_SOURCE_ERROR, 0, _("Failed to find tile structure in directory")); } } out: g_free (path); g_object_unref (file); g_object_unref (enumerator); return ret; } gboolean maps_file_data_source_prepare (MapsFileDataSource *data_source, GError **error) { g_return_val_if_fail (MAPS_IS_FILE_DATA_SOURCE (data_source), FALSE); g_return_val_if_fail (data_source->priv->path != NULL, FALSE); if (!get_zoom_levels (data_source, error)) { return FALSE; } if (!get_bounds (data_source, error)) { return FALSE; } return TRUE; } typedef struct { MapsFileDataSource *self; int x; int y; int z; GBytes *bytes; GFile *file; } FillTileData; static void fill_tile_data_free (FillTileData *data) { g_clear_object (&data->self); g_clear_pointer (&data->file, g_object_unref); g_free (data); } static void on_file_load (GObject *source_object, GAsyncResult *res, gpointer user_data) { g_autoptr(GTask) task = user_data; g_autoptr(GError) error = NULL; FillTileData *data = g_task_get_task_data (task); char *contents; gsize length; g_file_load_contents_finish (data->file, res, &contents, &length, NULL, &error); if (error) { g_warning ("Failed to load file: %s", error->message); return; } if (contents != NULL) { data->bytes = g_bytes_new_take (contents, length); g_signal_emit_by_name (data->self, "received-data", data->x, data->y, data->z, data->bytes); g_task_return_pointer (task, g_steal_pointer (&data->bytes), (GDestroyNotify)g_bytes_unref); } } static void get_tile_data_async (ShumateDataSource *source, int x, int y, int zoom_level, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data) { g_return_if_fail (MAPS_IS_FILE_DATA_SOURCE (source)); MapsFileDataSource *data_source = MAPS_FILE_DATA_SOURCE (source); GFile *file; gchar *path = NULL; g_autoptr(GTask) task = NULL; FillTileData *data; path = g_strdup_printf("%s/%d/%d/%d.%s", data_source->priv->path, zoom_level, x, y, data_source->priv->extension); file = g_file_new_for_path (path); task = g_task_new (source, cancellable, callback, user_data); g_task_set_source_tag (task, get_tile_data_async); data = g_new0 (FillTileData, 1); data->self = g_object_ref (data_source); data->x = x; data->y = y; data->z = zoom_level; data->file = g_object_ref (file); g_task_set_task_data (task, data, (GDestroyNotify) fill_tile_data_free); if (g_file_query_exists(file, NULL)) { g_file_load_contents_async (file, cancellable, on_file_load, g_object_ref (task)); } g_object_unref (file); g_free (path); } 07070100000191000081A400000000000000000000000166413409000008DA000000000000000000000000000000000000002D00000000gnome-maps-46.11/lib/maps-file-data-source.h/* * Copyright (c) 2015 Jonas Danielsson * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Jonas Danielsson */ #ifndef _MAPS_FILE_DATA_SOURCE_H_ #define _MAPS_FILE_DATA_SOURCE_H_ #include G_BEGIN_DECLS #define MAPS_TYPE_FILE_DATA_SOURCE maps_file_data_source_get_type () #define MAPS_FILE_DATA_SOURCE(obj) \ (G_TYPE_CHECK_INSTANCE_CAST ((obj), MAPS_TYPE_FILE_DATA_SOURCE, MapsFileDataSource)) #define MAPS_FILE_DATA_SOURCE_CLASS(klass) \ (G_TYPE_CHECK_CLASS_CAST ((klass), MAPS_TYPE_FILE_DATA_SOURCE, MapsFileDataSourceClass)) #define MAPS_IS_FILE_DATA_SOURCE(obj) \ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MAPS_TYPE_FILE_DATA_SOURCE)) #define MAPS_IS_FILE_DATA_SOURCE_CLASS(klass) \ (G_TYPE_CHECK_CLASS_TYPE ((klass), MAPS_TYPE_FILE_DATA_SOURCE)) #define MAPS_FILE_DATA_SOURCE_GET_CLASS(obj) \ (G_TYPE_INSTANCE_GET_CLASS ((obj), MAPS_TYPE_FILE_TILE_SOURCE, MapsFileDataSourceClass)) typedef struct _MapsFileDataSourcePrivate MapsFileDataSourcePrivate; typedef struct _MapsFileDataSource MapsFileDataSource; typedef struct _MapsFileDataSourceClass MapsFileDataSourceClass; /** * MapsFileDataSource: * * The #MapsFileDataSource structure contains only private data * and should be accessed using the provided API * */ struct _MapsFileDataSource { ShumateDataSource parent_instance; MapsFileDataSourcePrivate *priv; }; struct _MapsFileDataSourceClass { ShumateDataSourceClass parent_class; }; GType maps_file_data_source_get_type (void); gboolean maps_file_data_source_prepare (MapsFileDataSource *data_source, GError **error); G_END_DECLS #endif /* _MAPS_FILE_DATA_SOURCE_H_ */ 07070100000192000081A400000000000000000000000166413409000014A0000000000000000000000000000000000000002A00000000gnome-maps-46.11/lib/maps-osm-changeset.c/* * Copyright (c) 2015 Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see * * Author: Marcus Lundblad */ #include "maps-osm-changeset.h" #include struct _MapsOSMChangesetPrivate { char *comment; char *created_by; }; enum { PROP_0, PROP_COMMENT, PROP_CREATED_BY }; G_DEFINE_TYPE_WITH_PRIVATE (MapsOSMChangeset, maps_osm_changeset, G_TYPE_OBJECT) static void maps_osm_changeset_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec) { MapsOSMChangeset *changeset = MAPS_OSMCHANGESET (object); switch (property_id) { case PROP_COMMENT: changeset->priv->comment = g_value_dup_string (value); break; case PROP_CREATED_BY: changeset->priv->created_by = g_value_dup_string (value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } static void maps_osm_changeset_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec) { MapsOSMChangeset *changeset = MAPS_OSMCHANGESET (object); switch (property_id) { case PROP_COMMENT: g_value_set_string (value, changeset->priv->comment); break; case PROP_CREATED_BY: g_value_set_string (value, changeset->priv->created_by); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } static void maps_osm_changeset_dispose (GObject *object) { MapsOSMChangeset *changeset = MAPS_OSMCHANGESET (object); g_free (changeset->priv->comment); g_free (changeset->priv->created_by); G_OBJECT_CLASS (maps_osm_changeset_parent_class)->dispose (object); } static void maps_osm_changeset_class_init (MapsOSMChangesetClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); GParamSpec *pspec; object_class->dispose = maps_osm_changeset_dispose; object_class->get_property = maps_osm_changeset_get_property; object_class->set_property = maps_osm_changeset_set_property; /** * MapsOSMChangeset:comment: * * The comment of the changes. */ pspec = g_param_spec_string ("comment", "Comment", "Comment", NULL, G_PARAM_READWRITE); g_object_class_install_property (object_class, PROP_COMMENT, pspec); /** * MapsOSMChangeset:created_by: * * The identifier of the client making the changeset. */ pspec = g_param_spec_string ("created_by", "Created by", "Created by", NULL, G_PARAM_READWRITE); g_object_class_install_property (object_class, PROP_CREATED_BY, pspec); } static void maps_osm_changeset_init (MapsOSMChangeset *changeset) { changeset->priv = maps_osm_changeset_get_instance_private (changeset); changeset->priv->comment = NULL; changeset->priv->created_by = NULL; } MapsOSMChangeset * maps_osm_changeset_new (const char *comment, const char *created_by) { return g_object_new (MAPS_TYPE_OSMCHANGESET, "comment", comment, "created_by", created_by, NULL); } xmlNodePtr maps_osm_changeset_create_tag_node (const char *key, const char * value) { xmlNodePtr node; node = xmlNewNode (NULL, (xmlChar *) "tag"); xmlNewProp (node, (xmlChar *) "k", (xmlChar *) key); xmlNewProp (node, (xmlChar *) "v", (xmlChar *) value); return node; } char * maps_osm_changeset_serialize (const MapsOSMChangeset *changeset) { xmlDocPtr doc; xmlNodePtr osm_node; xmlNodePtr changeset_node; xmlNodePtr comment_node; xmlNodePtr created_by_node; xmlChar *result; int size; doc = xmlNewDoc ((xmlChar *) "1.0"); osm_node = xmlNewNode (NULL, (xmlChar *) "osm"); changeset_node = xmlNewNode (NULL, (xmlChar *) "changeset"); comment_node = maps_osm_changeset_create_tag_node ("comment", changeset->priv->comment); created_by_node = maps_osm_changeset_create_tag_node ("created_by", changeset->priv->created_by); xmlAddChild (osm_node, changeset_node); xmlAddChild (changeset_node, comment_node); xmlAddChild (changeset_node, created_by_node); xmlDocSetRootElement (doc, osm_node); xmlDocDumpMemory (doc, &result, &size); xmlFreeDoc (doc); return (char *) result; } 07070100000193000081A4000000000000000000000001664134090000066C000000000000000000000000000000000000002A00000000gnome-maps-46.11/lib/maps-osm-changeset.h/* * Copyright (c) 2015 Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see * * Author: Marcus Lundblad */ #ifndef __MAPS_OSM_CHANGESET_H__ #define __MAPS_OSM_CHANGESET_H__ #include #define MAPS_TYPE_OSMCHANGESET maps_osm_changeset_get_type () G_DECLARE_FINAL_TYPE(MapsOSMChangeset, maps_osm_changeset, MAPS, OSMCHANGESET, GObject) typedef struct _MapsOSMChangesetPrivate MapsOSMChangesetPrivate; struct _MapsOSMChangeset { GObject parent_instance; MapsOSMChangesetPrivate *priv; }; struct _MapsOSMChangesetClass { GObjectClass parent_class; }; /** * maps_osm_changeset_new: * @comment: (nullable): A comment about the OSM change, optional * @created_by: (nullable): The client identifier of the OSM change, optional */ MapsOSMChangeset *maps_osm_changeset_new (const char *comment, const char *created_by); char *maps_osm_changeset_serialize (const MapsOSMChangeset *changeset); #endif /* __MAPS_OSM_CHANGESET_H__ */ 07070100000194000081A4000000000000000000000001664134090000122A000000000000000000000000000000000000002500000000gnome-maps-46.11/lib/maps-osm-node.c/* * Copyright (c) 2015 Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see * * Author: Marcus Lundblad */ #include "maps-osm-node.h" struct _MapsOSMNodePrivate { double lon; double lat; }; enum { PROP_0, PROP_LONGITUDE, PROP_LATITUDE }; G_DEFINE_TYPE_WITH_PRIVATE (MapsOSMNode, maps_osm_node, MAPS_TYPE_OSMOBJECT) static void maps_osm_node_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec) { MapsOSMNode *node = MAPS_OSMNODE (object); switch (property_id) { case PROP_LONGITUDE: node->priv->lon = g_value_get_double (value); break; case PROP_LATITUDE: node->priv->lat = g_value_get_double (value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } static void maps_osm_node_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec) { MapsOSMNode *node = MAPS_OSMNODE (object); switch (property_id) { case PROP_LONGITUDE: g_value_set_double (value, node->priv->lon); break; case PROP_LATITUDE: g_value_set_double (value, node->priv->lat); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } static const char * maps_osm_node_get_xml_tag_name (void) { return "node"; } static GHashTable * maps_osm_node_get_xml_attributes (const MapsOSMObject *object) { const MapsOSMNode *node = MAPS_OSMNODE ((MapsOSMObject *) object); GHashTable *attributes; char buf[G_ASCII_DTOSTR_BUF_SIZE]; attributes = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, g_free); g_ascii_dtostr (buf, sizeof (buf), node->priv->lon); g_hash_table_insert (attributes, "lon", g_strdup (buf)); g_ascii_dtostr (buf, sizeof (buf), node->priv->lat); g_hash_table_insert (attributes, "lat", g_strdup (buf)); return attributes; } static void maps_osm_node_class_init (MapsOSMNodeClass *klass) { GObjectClass *node_class = G_OBJECT_CLASS (klass); MapsOSMObjectClass *object_class = MAPS_OSMOBJECT_CLASS (klass); GParamSpec *pspec; node_class->get_property = maps_osm_node_get_property; node_class->set_property = maps_osm_node_set_property; object_class->get_xml_tag_name = maps_osm_node_get_xml_tag_name; object_class->get_xml_attributes = maps_osm_node_get_xml_attributes; /** * MapsOSMNode:longitude: * * The longitude of the node. */ pspec = g_param_spec_double ("longitude", "Longitude", "Longitude", -180.0, 180.0, 0.0, G_PARAM_READWRITE); g_object_class_install_property (node_class, PROP_LONGITUDE, pspec); /** * MapsOSMNode:latitude: * * The latitude of the node. */ pspec = g_param_spec_double ("latitude", "Latitude", "Latitude", -90.0, 90.0, 0.0, G_PARAM_READWRITE); g_object_class_install_property (node_class, PROP_LATITUDE, pspec); } static void maps_osm_node_init (MapsOSMNode *node) { node->priv = maps_osm_node_get_instance_private (node); node->priv->lon = 0.0; node->priv->lat = 0.0; } MapsOSMNode * maps_osm_node_new (guint64 id, guint version, guint64 changeset, double longitude, double latitude) { return g_object_new (MAPS_TYPE_OSMNODE, "id", id, "version", version, "changeset", changeset, "longitude", longitude, "latitude", latitude, NULL); } 07070100000195000081A40000000000000000000000016641340900000555000000000000000000000000000000000000002500000000gnome-maps-46.11/lib/maps-osm-node.h/* * Copyright (c) 2015 Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see * * Author: Marcus Lundblad */ #ifndef __MAPS_OSM_NODE_H__ #define __MAPS_OSM_NODE_H__ #include "maps-osm-object.h" #include #define MAPS_TYPE_OSMNODE maps_osm_node_get_type () G_DECLARE_FINAL_TYPE(MapsOSMNode, maps_osm_node, MAPS, OSMNODE, MapsOSMObject) typedef struct _MapsOSMNodePrivate MapsOSMNodePrivate; struct _MapsOSMNode { MapsOSMObject parent_instance; MapsOSMNodePrivate *priv; }; struct _MapsOSMNodeClass { MapsOSMObjectClass parent_class; }; MapsOSMNode *maps_osm_node_new (guint64 id, guint version, guint64 changeset, double longitude, double latitude); #endif //__MAPS_OSM_NODE_H__ 07070100000196000081A40000000000000000000000016641340900002525000000000000000000000000000000000000002700000000gnome-maps-46.11/lib/maps-osm-object.c/* * Copyright (c) 2015 Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see * * Author: Marcus Lundblad */ #include "maps-osm-object.h" struct _MapsOSMObjectPrivate { guint64 id; guint version; guint64 changeset; GHashTable *tags; }; enum { PROP_0, PROP_ID, PROP_VERSION, PROP_CHANGESET }; G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE (MapsOSMObject, maps_osm_object, G_TYPE_OBJECT) static void maps_osm_object_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec) { MapsOSMObject *osm_object = MAPS_OSMOBJECT (object); MapsOSMObjectPrivate *priv = maps_osm_object_get_instance_private (osm_object); switch (property_id) { case PROP_ID: priv->id = g_value_get_uint64 (value); break; case PROP_VERSION: priv->version = g_value_get_uint (value); break; case PROP_CHANGESET: priv->changeset = g_value_get_uint64 (value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } static void maps_osm_object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec) { MapsOSMObject *osm_object = MAPS_OSMOBJECT (object); MapsOSMObjectPrivate *priv = maps_osm_object_get_instance_private (osm_object); switch (property_id) { case PROP_ID: g_value_set_uint64 (value, priv->id); break; case PROP_VERSION: g_value_set_uint (value, priv->version); break; case PROP_CHANGESET: g_value_set_uint64 (value, priv->changeset); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } } static void maps_osm_object_dispose (GObject *object) { MapsOSMObject *osm_object = MAPS_OSMOBJECT (object); MapsOSMObjectPrivate *priv = maps_osm_object_get_instance_private (osm_object); g_hash_table_destroy (priv->tags); priv->tags = NULL; G_OBJECT_CLASS (maps_osm_object_parent_class)->dispose (object); } /* base implementation returning no object-specific XML attributes */ static GHashTable * maps_osm_object_get_xml_attributes (const MapsOSMObject *object) { return NULL; } /* base implementation return no object-specific child XML nodes */ static xmlNodePtr maps_osm_object_get_xml_child_nodes (const MapsOSMObject *object) { return NULL; } static void maps_osm_object_class_init (MapsOSMObjectClass *klass) { GObjectClass *maps_class = G_OBJECT_CLASS (klass); MapsOSMObjectClass *object_class = MAPS_OSMOBJECT_CLASS (klass); GParamSpec *pspec; maps_class->dispose = maps_osm_object_dispose; maps_class->get_property = maps_osm_object_get_property; maps_class->set_property = maps_osm_object_set_property; object_class->get_xml_attributes = maps_osm_object_get_xml_attributes; object_class->get_xml_child_nodes = maps_osm_object_get_xml_child_nodes; /** * MapsOSMObject:id: * * The OSM id of the object. */ pspec = g_param_spec_uint64 ("id", "ID", "ID", 0, G_MAXUINT64, 0, G_PARAM_READWRITE); g_object_class_install_property (maps_class, PROP_ID, pspec); /** * MapsOSMObject:version: * * The latest OSM version of the object. */ pspec = g_param_spec_uint("version", "Version", "Version", 0, G_MAXUINT, 0, G_PARAM_READWRITE); g_object_class_install_property (maps_class, PROP_VERSION, pspec); /** * MapsOSMObject:changeset: * * The OSM changeset for the current upload of the object. */ pspec = g_param_spec_uint64 ("changeset", "Changeset", "Changeset", 0, G_MAXUINT64, 0, G_PARAM_READWRITE); g_object_class_install_property (maps_class, PROP_CHANGESET, pspec); } static void maps_osm_object_init (MapsOSMObject *object) { MapsOSMObjectPrivate *priv = maps_osm_object_get_instance_private (object); priv->tags = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free); } const char * maps_osm_object_get_tag (const MapsOSMObject *object, const char *key) { MapsOSMObjectPrivate *priv = maps_osm_object_get_instance_private ((MapsOSMObject *) object); g_return_val_if_fail (key != NULL, NULL); return g_hash_table_lookup (priv->tags, key); } void maps_osm_object_set_tag (MapsOSMObject *object, const char *key, const char *value) { MapsOSMObjectPrivate *priv = maps_osm_object_get_instance_private (object); g_return_if_fail (key != NULL); g_hash_table_insert (priv->tags, g_strdup (key), g_strdup (value)); } void maps_osm_object_delete_tag (MapsOSMObject *object, const char *key) { MapsOSMObjectPrivate *priv = maps_osm_object_get_instance_private (object); g_return_if_fail (key != NULL); g_hash_table_remove (priv->tags, key); } static void maps_osm_object_foreach_tag (gpointer key, gpointer value, gpointer user_data) { const xmlChar *name = (const xmlChar *) key; const xmlChar *val = (const xmlChar *) value; xmlNodePtr object_node = (xmlNodePtr) user_data; /* skip tag if it has an empty placeholder value */ if (val && *val) { xmlNodePtr tag_node; tag_node = xmlNewNode (NULL, (xmlChar *) "tag"); xmlNewProp (tag_node, (xmlChar *) "k", name); xmlNewProp (tag_node, (xmlChar *) "v", val); xmlAddChild (object_node, tag_node); } } static void maps_osm_object_foreach_type_attr (gpointer key, gpointer value, gpointer user_data) { const xmlChar *name = (const xmlChar *) key; const xmlChar *val = (const xmlChar *) value; xmlNodePtr object_node = (xmlNodePtr) user_data; xmlNewProp (object_node, name, val); } xmlDocPtr maps_osm_object_to_xml (const MapsOSMObject *object) { MapsOSMObjectPrivate *priv; xmlDocPtr doc; xmlNodePtr osm_node; xmlNodePtr object_node; const char *type; GHashTable *type_attrs; xmlNodePtr type_sub_nodes; doc = xmlNewDoc ((xmlChar *) "1.0"); osm_node = xmlNewNode (NULL, (xmlChar *) "osm"); priv = (MapsOSMObjectPrivate *) maps_osm_object_get_instance_private ((MapsOSMObject *) object); type = MAPS_OSMOBJECT_GET_CLASS ((MapsOSMObject *) object)->get_xml_tag_name (); object_node = xmlNewNode (NULL, (const xmlChar *) type); /* add common OSM attributes */ if (priv->id != 0) { char buf[32]; g_snprintf (buf, 32, "%" G_GUINT64_FORMAT, priv->id); xmlNewProp (object_node, (xmlChar *) "id", (xmlChar *) buf); } if (priv->version != 0) { char buf[16]; g_snprintf (buf, 16, "%d", priv->version); xmlNewProp (object_node, (xmlChar *) "version", (xmlChar *) buf); } if (priv->changeset != 0) { char buf[32]; g_snprintf (buf, 32, "%" G_GUINT64_FORMAT, priv->changeset); xmlNewProp (object_node, (xmlChar *) "changeset", (xmlChar *) buf); } /* add OSM tags */ g_hash_table_foreach (priv->tags, maps_osm_object_foreach_tag, object_node); /* add type-specific attributes */ type_attrs = MAPS_OSMOBJECT_GET_CLASS ((MapsOSMObject *) object)->get_xml_attributes (object); if (type_attrs) { g_hash_table_foreach (type_attrs, maps_osm_object_foreach_type_attr, object_node); g_hash_table_destroy (type_attrs); } /* add type-specific sub-nodes */ type_sub_nodes = MAPS_OSMOBJECT_GET_CLASS ((MapsOSMObject *) object)->get_xml_child_nodes (object); if (type_sub_nodes) xmlAddChildList (object_node, type_sub_nodes); /* add type node to top node */ xmlAddChild (osm_node, object_node); xmlDocSetRootElement (doc, osm_node); return doc; } char * maps_osm_object_serialize (const MapsOSMObject *object) { xmlDocPtr doc; xmlChar *result; int size; doc = maps_osm_object_to_xml (object); xmlDocDumpMemory (doc, &result, &size); xmlFreeDoc (doc); return (char *) result; } /** * maps_osm_object_get_tags: * * Returns: (element-type utf8 utf8): a hash table with key/values */ const GHashTable * maps_osm_object_get_tags (const MapsOSMObject *object) { const MapsOSMObjectPrivate *priv = maps_osm_object_get_instance_private ((MapsOSMObject *) object); return priv->tags; } 07070100000197000081A40000000000000000000000016641340900000838000000000000000000000000000000000000002700000000gnome-maps-46.11/lib/maps-osm-object.h/* * Copyright (c) 2015 Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see * * Author: Marcus Lundblad */ #ifndef __MAPS_OSM_OBJECT_H__ #define __MAPS_OSM_OBJECT_H__ #include #include #define MAPS_TYPE_OSMOBJECT maps_osm_object_get_type () G_DECLARE_DERIVABLE_TYPE(MapsOSMObject, maps_osm_object, MAPS, OSMOBJECT, GObject) typedef struct _MapsOSMObjectPrivate MapsOSMObjectPrivate; struct _MapsOSMObjectClass { GObjectClass parent_class; /* return the name of the distinguishing OSM XML tag (beneath ) */ const char * (* get_xml_tag_name) (void); /* return hash table with XML attributes (key/values) specific for the object (on the XML tag beneath ) */ GHashTable * (* get_xml_attributes) (const MapsOSMObject *object); /* return a list of custom object-specific XML tags to attach, can return NULL if there's no object-specific nodes */ xmlNodePtr (* get_xml_child_nodes) (const MapsOSMObject *object); }; const char *maps_osm_object_get_tag (const MapsOSMObject *object, const char *key); void maps_osm_object_set_tag (MapsOSMObject *object, const char *key, const char *value); void maps_osm_object_delete_tag (MapsOSMObject *object, const char *key); char *maps_osm_object_serialize (const MapsOSMObject *object); const GHashTable *maps_osm_object_get_tags (const MapsOSMObject *object); #endif //__MAPS_OSM_OBJECT_H__ 07070100000198000081A4000000000000000000000001664134090000109D000000000000000000000000000000000000002900000000gnome-maps-46.11/lib/maps-osm-relation.c/* * Copyright (c) 2015 Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see * * Author: Marcus Lundblad */ #include "maps-osm-relation.h" struct _MapsOSMRelationPrivate { GList *members; }; G_DEFINE_TYPE_WITH_PRIVATE (MapsOSMRelation, maps_osm_relation, MAPS_TYPE_OSMOBJECT); typedef struct { char *role; guint type; guint64 ref; } MapsOSMRelationMember; static void maps_osm_relation_member_free (gpointer data) { MapsOSMRelationMember *member = (MapsOSMRelationMember *) data; g_free (member->role); } static void maps_osm_relation_dispose (GObject *object) { MapsOSMRelation *relation = MAPS_OSMRELATION (object); g_list_free_full (relation->priv->members, maps_osm_relation_member_free); relation->priv->members = NULL; G_OBJECT_CLASS (maps_osm_relation_parent_class)->dispose (object); } static const char * maps_osm_relation_get_xml_tag_name (void) { return "relation"; } static const char * maps_osm_relation_member_type_to_string (guint type) { switch (type) { case MEMBER_TYPE_NODE: return "node"; case MEMBER_TYPE_WAY: return "way"; case MEMBER_TYPE_RELATION: return "relation"; default: g_warning ("Unknown relation member type: %d\n", type); return NULL; } } static xmlNodePtr maps_osm_relation_get_member_node (const MapsOSMRelationMember *member) { xmlNodePtr node = xmlNewNode (NULL, (xmlChar *) "member"); char buf[16]; if (member->role) xmlNewProp (node, (xmlChar *) "role", (xmlChar *) g_strdup (member->role)); xmlNewProp (node, (xmlChar *) "type", (xmlChar *) maps_osm_relation_member_type_to_string (member->type)); g_snprintf (buf, 16, "%" G_GUINT64_FORMAT, member->ref); xmlNewProp (node, (xmlChar *) "ref", (xmlChar *) buf); return node; } static xmlNodePtr maps_osm_relation_get_xml_child_nodes (const MapsOSMObject *object) { MapsOSMRelation *relation = MAPS_OSMRELATION ((MapsOSMObject *) object); xmlNodePtr nodes = NULL; const GList *members = relation->priv->members; if (members) { const GList *iter; nodes = maps_osm_relation_get_member_node ((MapsOSMRelationMember *) members->data); for (iter = members->next; iter; iter = iter->next) { xmlAddSibling (nodes, maps_osm_relation_get_member_node ( (MapsOSMRelationMember *) iter->data)); } } return nodes; } static void maps_osm_relation_class_init (MapsOSMRelationClass *klass) { GObjectClass *relation_class = G_OBJECT_CLASS (klass); MapsOSMObjectClass *object_class = MAPS_OSMOBJECT_CLASS (klass); relation_class->dispose = maps_osm_relation_dispose; object_class->get_xml_tag_name = maps_osm_relation_get_xml_tag_name; object_class->get_xml_child_nodes = maps_osm_relation_get_xml_child_nodes; } static void maps_osm_relation_init (MapsOSMRelation *relation) { relation->priv = maps_osm_relation_get_instance_private (relation); } MapsOSMRelation * maps_osm_relation_new (guint64 id, guint version, guint64 changeset) { return g_object_new (MAPS_TYPE_OSMRELATION, "id", id, "version", version, "changeset", changeset, NULL); } void maps_osm_relation_add_member (MapsOSMRelation *relation, const gchar *role, guint type, guint64 ref) { MapsOSMRelationMember *member = g_new (MapsOSMRelationMember, 1); member->role = g_strdup (role); member->type = type; member->ref = ref; relation->priv->members = g_list_append (relation->priv->members, member); } 07070100000199000081A40000000000000000000000016641340900000667000000000000000000000000000000000000002900000000gnome-maps-46.11/lib/maps-osm-relation.h/* * Copyright (c) 2015 Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see * * Author: Marcus Lundblad */ #ifndef __MAPS_OSM_RELATION_H__ #define __MAPS_OSM_RELATION_H__ #include "maps-osm-object.h" #include #define MAPS_TYPE_OSMRELATION maps_osm_relation_get_type () G_DECLARE_FINAL_TYPE(MapsOSMRelation, maps_osm_relation, MAPS, OSMRELATION, MapsOSMObject) typedef struct _MapsOSMRelationPrivate MapsOSMRelationPrivate; struct _MapsOSMRelation { MapsOSMObject parent_instance; MapsOSMRelationPrivate *priv; }; struct _MapsOSMRelationClass { MapsOSMObjectClass parent_class; }; enum { MEMBER_TYPE_NODE, MEMBER_TYPE_WAY, MEMBER_TYPE_RELATION }; MapsOSMRelation *maps_osm_relation_new (guint64 id, guint version, guint64 changeset); void maps_osm_relation_add_member (MapsOSMRelation *relation, const char *role, guint type, guint64 ref); #endif /* __MAPS_OSM_RELATION_H__ */ 0707010000019A000081A40000000000000000000000016641340900000C51000000000000000000000000000000000000002400000000gnome-maps-46.11/lib/maps-osm-way.c/* * Copyright (c) 2015 Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see * * Author: Marcus Lundblad */ #include "maps-osm-way.h" struct _MapsOSMWayPrivate { GArray *node_ids; }; G_DEFINE_TYPE_WITH_PRIVATE (MapsOSMWay, maps_osm_way, MAPS_TYPE_OSMOBJECT); static void maps_osm_way_dispose (GObject *object) { MapsOSMWay *way = MAPS_OSMWAY (object); g_array_free (way->priv->node_ids, TRUE); way->priv->node_ids = NULL; G_OBJECT_CLASS (maps_osm_way_parent_class)->dispose (object); } static const char * maps_osm_way_get_xml_tag_name (void) { return "way"; } static xmlNodePtr maps_osm_way_create_node_xml_node (guint64 ref) { xmlNodePtr nd; char buf[16]; g_snprintf (buf, 16, "%" G_GUINT64_FORMAT, ref); nd = xmlNewNode (NULL, (xmlChar *) "nd"); xmlNewProp (nd, (xmlChar *) "ref", (xmlChar *) buf); return nd; } static xmlNodePtr maps_osm_way_get_xml_child_nodes(const MapsOSMObject *object) { const MapsOSMWay *way = MAPS_OSMWAY ((MapsOSMObject *) object); int i; xmlNodePtr result; xmlNodePtr next; g_return_val_if_fail (way->priv->node_ids->len > 0, NULL); result = maps_osm_way_create_node_xml_node (g_array_index (way->priv->node_ids, guint64, 0)); next = result; for (i = 1; i < way->priv->node_ids->len; i++) { xmlNodePtr new_node; new_node = maps_osm_way_create_node_xml_node (g_array_index (way->priv->node_ids, guint64, i)); next = xmlAddNextSibling (next, new_node); } return result; } static void maps_osm_way_class_init (MapsOSMWayClass *klass) { GObjectClass *way_class = G_OBJECT_CLASS (klass); MapsOSMObjectClass *object_class = MAPS_OSMOBJECT_CLASS (klass); way_class->dispose = maps_osm_way_dispose; object_class->get_xml_tag_name = maps_osm_way_get_xml_tag_name; object_class->get_xml_child_nodes = maps_osm_way_get_xml_child_nodes; } static void maps_osm_way_init (MapsOSMWay *way) { way->priv = maps_osm_way_get_instance_private (way); way->priv->node_ids = g_array_new (FALSE, FALSE, sizeof (guint64)); } MapsOSMWay * maps_osm_way_new (guint64 id, guint version, guint64 changeset) { return g_object_new (MAPS_TYPE_OSMWAY, "id", id, "version", version, "changeset", changeset, NULL); } void maps_osm_way_add_node_id (MapsOSMWay *way, guint64 id) { g_array_append_val (way->priv->node_ids, id); } 0707010000019B000081A40000000000000000000000016641340900000546000000000000000000000000000000000000002400000000gnome-maps-46.11/lib/maps-osm-way.h/* * Copyright (c) 2015 Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see * * Author: Marcus Lundblad */ #ifndef __MAPS_OSM_WAY_H__ #define __MAPS_OSM_WAY_H__ #include "maps-osm-object.h" #include #define MAPS_TYPE_OSMWAY maps_osm_way_get_type () G_DECLARE_FINAL_TYPE(MapsOSMWay, maps_osm_way, MAPS, OSMWAY, MapsOSMObject) typedef struct _MapsOSMWayPrivate MapsOSMWayPrivate; struct _MapsOSMWay { MapsOSMObject parent_instance; MapsOSMWayPrivate *priv; }; struct _MapsOSMWayClass { MapsOSMObjectClass parent_class; }; MapsOSMWay *maps_osm_way_new (guint64 id, guint version, guint64 changeset); void maps_osm_way_add_node_id (MapsOSMWay *way, guint64 id); #endif /* __MAPS_OSM_WAY_H__ */ 0707010000019C000081A4000000000000000000000001664134090000323D000000000000000000000000000000000000002000000000gnome-maps-46.11/lib/maps-osm.c/* * Copyright (c) 2015 Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see * * Author: Marcus Lundblad */ #include "maps-osm.h" #include "mapsintl.h" #include #include #define MAPS_OSM_ERROR maps_osm_error_quark () GQuark maps_osm_error_quark (void) { return g_quark_from_static_string ("maps-osm-error"); } void maps_osm_init (void) { LIBXML_TEST_VERSION; } void maps_osm_finalize (void) { xmlCleanupParser (); } static xmlDocPtr read_xml_doc (const char *content, guint length, GError **error) { xmlDoc *doc; doc = xmlReadMemory (content, length, "noname.xml", NULL, 0); if (!doc) { *error = g_error_new_literal (MAPS_OSM_ERROR, 0, _("Failed to parse XML document")); return NULL; } return doc; } static void parse_tag (const xmlAttr *attrs, GHashTable *tags) { const xmlAttr *cur_attr; char *key; char *value; key = NULL; value = NULL; for (cur_attr = attrs; cur_attr; cur_attr = cur_attr->next) { if (g_str_equal ((const char *) cur_attr->name, "k")) key = (char *) cur_attr->children->content; else if (g_str_equal ((const char *) cur_attr->name, "v")) value = (char *) cur_attr->children->content; else g_warning ("Unexpected tag property: %s\n", cur_attr->name); } g_hash_table_insert (tags, key, value); } static GHashTable * parse_attributes (const xmlNode *node) { GHashTable *attributes; const xmlAttr *cur_attr; attributes = g_hash_table_new (g_str_hash, g_str_equal); for (cur_attr = node->properties; cur_attr; cur_attr = cur_attr->next) { g_hash_table_insert (attributes, (gpointer) cur_attr->name, (gpointer) cur_attr->children->content); } return attributes; } static GHashTable * parse_tags (const xmlNode *tag_child) { GHashTable *tags; const xmlNode *cur_node; tags = g_hash_table_new (g_str_hash, g_str_equal); for (cur_node = tag_child; cur_node; cur_node = cur_node->next) { /* skip non-element nodes */ if (cur_node->type != XML_ELEMENT_NODE) continue; if (g_str_equal ((const char *) cur_node->name, "tag")) parse_tag (cur_node->properties, tags); } return tags; } static GArray * parse_node_refs (const xmlNode *node_ref_child) { GArray *node_refs; const xmlNode *cur_node; node_refs = g_array_new (FALSE, FALSE, sizeof (guint64)); for (cur_node = node_ref_child; cur_node; cur_node = cur_node->next) { /* skip non-element nodes */ if (cur_node->type != XML_ELEMENT_NODE) continue; if (g_str_equal ((const char *) cur_node->name, "nd")) { char *ref; GHashTable *attributes; attributes = parse_attributes (cur_node); ref = g_hash_table_lookup (attributes, "ref"); if (ref) { guint64 id = g_ascii_strtoull (ref, NULL, 10); if (id == 0) g_warning ("Invalid node ref: %s", ref); else g_array_append_val (node_refs, id); } g_hash_table_destroy (attributes); } } return node_refs; } static xmlNode * get_sub_node (xmlDoc *doc) { xmlNode *node; xmlXPathContext *xpath_ctx; xmlXPathObject * xpath_obj; xpath_ctx = xmlXPathNewContext (doc); xpath_obj = xmlXPathEvalExpression ((xmlChar *) "/osm/node|/osm/way|/osm/relation|/osm/user", xpath_ctx); if (xpath_obj && xpath_obj->nodesetval && xpath_obj->nodesetval->nodeNr > 0) { node = xmlCopyNode (xpath_obj->nodesetval->nodeTab[0], 1); } else { g_warning ("Couldn't find element"); node = NULL; } xmlXPathFreeObject (xpath_obj); xmlXPathFreeContext (xpath_ctx); return node; } static void for_each_tag (gpointer key, gpointer value, gpointer user_data) { const char *k = (const char *) key; const char *v = (const char *) value; MapsOSMObject *object = MAPS_OSMOBJECT (user_data); maps_osm_object_set_tag (object, k, v); } static void fill_tags (MapsOSMObject *object, GHashTable *tags) { g_hash_table_foreach (tags, for_each_tag, object); } static void fill_node_ref_list (MapsOSMWay *way, const GArray *node_refs) { int i; for (i = 0; i < node_refs->len; i++) { maps_osm_way_add_node_id (way, g_array_index (node_refs, guint64, i)); } } static MapsOSMNode * parse_node (const xmlNodePtr node, GError **error) { const char *id_string; guint64 id; const char *changeset_string; guint64 changeset; const char *version_string; guint version; const char *lat_string; double lat; const char *lon_string; double lon; GHashTable *tags; GHashTable *attributes; MapsOSMNode *result; attributes = parse_attributes (node); id_string = g_hash_table_lookup (attributes, "id"); changeset_string = g_hash_table_lookup (attributes, "changeset"); version_string = g_hash_table_lookup (attributes, "version"); lat_string = g_hash_table_lookup (attributes, "lat"); lon_string = g_hash_table_lookup (attributes, "lon"); if (!id_string || !changeset_string || !version_string || !lat_string || !lon_string) { *error = g_error_new_literal (MAPS_OSM_ERROR, 0, _("Missing required attributes")); g_hash_table_destroy (attributes); return NULL; } id = g_ascii_strtoull (id_string, NULL, 10); changeset = g_ascii_strtoull (changeset_string, NULL, 10); version = g_ascii_strtoull (version_string, NULL, 10); lon = g_ascii_strtod (lon_string, NULL); lat = g_ascii_strtod (lat_string, NULL); g_hash_table_destroy (attributes); result = maps_osm_node_new (id, version, changeset, lon, lat); tags = parse_tags (node->children); fill_tags (MAPS_OSMOBJECT (result), tags); g_hash_table_destroy (tags); return result; } static MapsOSMWay * parse_way (const xmlNodePtr way, GError **error) { GHashTable *attributes; GHashTable *tags; GArray *node_refs; MapsOSMWay *result; const char *id_string; guint64 id; const char *changeset_string; guint64 changeset; const char *version_string; guint version; attributes = parse_attributes (way); id_string = g_hash_table_lookup (attributes, "id"); changeset_string = g_hash_table_lookup (attributes, "changeset"); version_string = g_hash_table_lookup (attributes, "version"); if (!id_string || !changeset_string || !version_string) { g_warning ("Missing required attributes\n"); g_hash_table_destroy (attributes); return NULL; } g_hash_table_destroy (attributes); id = g_ascii_strtoull (id_string, NULL, 10); changeset = g_ascii_strtoull (changeset_string, NULL, 10); version = g_ascii_strtoull (version_string, NULL, 10); result = maps_osm_way_new (id, version, changeset); tags = parse_tags (way->children); fill_tags (MAPS_OSMOBJECT (result), tags); g_hash_table_destroy (tags); node_refs = parse_node_refs (way->children); fill_node_ref_list (result, node_refs); g_array_free (node_refs, TRUE); return result; } static GList * parse_members (const xmlNode *member_child) { const xmlNode *cur_node; GList *members; members = NULL; for (cur_node = member_child; cur_node; cur_node = cur_node->next) { /* skip non-element nodes */ if (cur_node->type != XML_ELEMENT_NODE) continue; if (g_str_equal ((const char *) cur_node->name, "member")) { GHashTable *attributes; attributes = parse_attributes (cur_node); members = g_list_append (members, attributes); } } return members; } static void fill_members (MapsOSMRelation *relation, const GList *members) { const GList *cur; for (cur = members; cur; cur = g_list_next (cur)) { GHashTable *attributes = (GHashTable *) cur->data; const char *type_string = g_hash_table_lookup (attributes, "type"); guint type; const char *role = g_hash_table_lookup (attributes, "role"); const char *ref_string = g_hash_table_lookup (attributes, "ref"); guint64 ref = 0; if (ref_string) ref = g_ascii_strtoull (ref_string, NULL, 10); if (g_strcmp0 (type_string, "node") == 0) type = MEMBER_TYPE_NODE; else if (g_strcmp0 (type_string, "way") == 0) type = MEMBER_TYPE_WAY; else if (g_strcmp0 (type_string, "relation") == 0) type = MEMBER_TYPE_RELATION; else { g_warning ("Unknown relation type: %s\n", type_string); continue; } maps_osm_relation_add_member (relation, role, type, ref); } } static MapsOSMRelation * parse_relation (const xmlNodePtr relation, GError **error) { GHashTable *attributes; GHashTable *tags; GList *member_list; const char *id_string; guint64 id; const char *changeset_string; guint64 changeset; const char *version_string; guint version; MapsOSMRelation *result; attributes = parse_attributes (relation); id_string = g_hash_table_lookup (attributes, "id"); changeset_string = g_hash_table_lookup (attributes, "changeset"); version_string = g_hash_table_lookup (attributes, "version"); if (!id_string || !changeset_string || !version_string) { *error = g_error_new_literal (MAPS_OSM_ERROR, 0, _("Missing required attributes")); g_hash_table_destroy (attributes); return NULL; } g_hash_table_destroy (attributes); id = g_ascii_strtoull (id_string, NULL, 10); changeset = g_ascii_strtoull (changeset_string, NULL, 10); version = g_ascii_strtoull (version_string, NULL, 10); result = maps_osm_relation_new (id, version, changeset); tags = parse_tags (relation->children); fill_tags (MAPS_OSMOBJECT (result), tags); g_hash_table_destroy (tags); member_list = parse_members (relation->children); fill_members (result, member_list); g_list_free_full (member_list, (GDestroyNotify) g_hash_table_destroy); return result; } /** * maps_osm_parse: * @content: XML data * @length: Length of data * @error: Error handle * Returns: (transfer full): A MapsOSMObject */ MapsOSMObject * maps_osm_parse (const char *content, guint length, GError **error) { xmlDocPtr doc; xmlNodePtr sub_node; MapsOSMObject *object = NULL; doc = read_xml_doc (content, length, error); if (!doc) return NULL; sub_node = get_sub_node (doc); if (!sub_node) { *error = g_error_new_literal (MAPS_OSM_ERROR, 0, _("Could not find OSM element")); return NULL; } if (g_str_equal ((const char *) sub_node->name, "node")) { object = MAPS_OSMOBJECT (parse_node (sub_node, error)); } else if (g_str_equal ((const char *) sub_node->name, "way")) { object = MAPS_OSMOBJECT (parse_way (sub_node, error)); } else if (g_str_equal ((const char *) sub_node->name, "relation")) { object = MAPS_OSMOBJECT (parse_relation (sub_node, error)); } xmlFreeNode (sub_node); xmlFreeDoc (doc); return object; } /** * maps_osm_parse_user_details: * @content: XML data * @error: Error handle * Returns: (transfer full): Logged in user name */ char * maps_osm_parse_user_details (const char *content, GError **error) { xmlDocPtr doc; xmlNodePtr sub_node; char *ret; doc = read_xml_doc (content, strlen (content), error); sub_node = get_sub_node (doc); if (!sub_node) { xmlFreeDoc (doc); *error = g_error_new_literal (MAPS_OSM_ERROR, 0, _("Could not find OSM element")); return NULL; } if (g_str_equal ((const char *) sub_node->name, "user")) { g_autoptr (GHashTable) attributes; attributes = parse_attributes (sub_node); ret = g_strdup (g_hash_table_lookup (attributes, "display_name")); } else { *error = g_error_new_literal (MAPS_OSM_ERROR, 0, _("Could not find user element")); ret = NULL; } xmlFreeDoc (doc); xmlFreeNode (sub_node); return ret; } 0707010000019D000081A40000000000000000000000016641340900000474000000000000000000000000000000000000002000000000gnome-maps-46.11/lib/maps-osm.h/* * Copyright (c) 2015 Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see * * Author: Marcus Lundblad */ #ifndef __MAPS_OSM_H__ #define __MAPS_OSM_H__ #include #include "maps-osm-node.h" #include "maps-osm-way.h" #include "maps-osm-relation.h" void maps_osm_init (void); void maps_osm_finalize (void); MapsOSMObject *maps_osm_parse (const char *content, guint length, GError **error); char *maps_osm_parse_user_details(const char *content, GError **error); #endif 0707010000019E000081A4000000000000000000000001664134090000E166000000000000000000000000000000000000002300000000gnome-maps-46.11/lib/maps-shield.c/* * Copyright (C) 2023 James Westman * * 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, see . */ #include #include #include "maps-shield.h" /* * A C port of * from the OpenStreetMap Americana project, which is CC0. * * We can't use the original Typescript code primarily because tiles are rendered in a * separate thread, and GJS doesn't support threads. Also, the upstream code would have * to be ported anyway from the canvas API to Cairo and from TS to vanilla JS. * * The Maps JS code creates a MapsShield object for each network and adds those objects * to the MapsSpriteSource. When the sprite source needs to provide a shield sprite, it * looks up the appropriate MapsShield object and calls maps_shield_draw(). */ #define FONT_SIZE_THRESHOLD 12 #define GENERIC_SHIELD_FONT_SIZE 18 #define MAX_FONT_SIZE 14 #define SHIELD_SIZE 20 #define BANNER_HEIGHT 9 #define BANNER_PADDING 1 #define MIN_GENERIC_SHIELD_WIDTH 20 #define MAX_GENERIC_SHIELD_WIDTH 34 #define FONT_FAMILY "Noto Sans Condensed Medium, Noto Sans Condensed, Noto Sans Medium, Noto Sans, sans-serif" typedef enum { TEXT_LAYOUT_UNSET, TEXT_LAYOUT_DIAMOND, TEXT_LAYOUT_ELLIPSE, TEXT_LAYOUT_RECT, TEXT_LAYOUT_ROUNDED_RECT, TEXT_LAYOUT_SOUTH_HALF_ELLIPSE, TEXT_LAYOUT_TRIANGLE_DOWN, } TextLayout; typedef struct { TextLayout layout; double radius; } TextOptions; typedef enum { SHAPE_UNSET, SHAPE_DIAMOND, SHAPE_ELLIPSE, SHAPE_ESCUTCHEON, SHAPE_FISHHEAD, SHAPE_HEXAGON_VERTICAL, SHAPE_HEXAGON_HORIZONTAL, SHAPE_OCTAGON_VERTICAL, SHAPE_PENTAGON, SHAPE_ROUNDED_RECTANGLE, SHAPE_TRAPEZOID, SHAPE_TRIANGLE, /* Custom shields */ SHAPE_PA_BELT, SHAPE_BRANSON, } Shape; typedef struct { Shape shape; double side_angle; GdkRGBA fill; double y_offset; GdkRGBA outline; double outline_width; double radius; double radius1; double radius2; double rect_width; gboolean rect_width_set; gboolean short_side_up; gboolean point_up; } ShapeOptions; struct _MapsShield { GObject parent_instance; GdkRGBA text_color; GdkRGBA text_halo_color; GdkRGBA banner_text_color; GdkRGBA banner_text_halo_color; GdkRGBA color_lighten; GdkRGBA color_darken; double padding_left; double padding_right; double padding_top; double padding_bottom; char **sprite_blanks; char **banners; TextOptions text_options; ShapeOptions shape_options; GHashTable *ref_by_name; GHashTable *override_by_ref; GHashTable *override_by_name; MapsShield *override_noref; gboolean romanize_ref : 1; gboolean romanize_ref_set : 1; gboolean text_color_set : 1; gboolean text_halo_color_set : 1; gboolean banner_text_color_set : 1; gboolean banner_text_halo_color_set : 1; gboolean color_lighten_set : 1; gboolean color_darken_set : 1; gboolean padding_left_set : 1; gboolean padding_right_set : 1; gboolean padding_top_set : 1; gboolean padding_bottom_set : 1; gboolean vertical_reflect; gboolean vertical_reflect_set : 1; gboolean notext_set : 1; gboolean notext; }; G_DEFINE_TYPE (MapsShield, maps_shield, G_TYPE_OBJECT) static void maps_shield_set_from_json (MapsShield *self, JsonNode *node); /** * maps_shield_new: * @node: (transfer none): a [class@JsonNode] containing the shield definition * * Creates a new [class@Shield] instance. * * Returns: (transfer full): a new [class@Shield] instance */ MapsShield * maps_shield_new (JsonNode *node) { MapsShield *self = g_object_new (MAPS_TYPE_SHIELD, NULL); maps_shield_set_from_json (self, node); return self; } static void maps_shield_finalize (GObject *object) { MapsShield *self = MAPS_SHIELD (object); g_strfreev (self->sprite_blanks); g_strfreev (self->banners); g_clear_pointer (&self->ref_by_name, g_hash_table_unref); g_clear_pointer (&self->override_by_ref, g_hash_table_unref); g_clear_pointer (&self->override_by_name, g_hash_table_unref); g_clear_object (&self->override_noref); G_OBJECT_CLASS (maps_shield_parent_class)->finalize (object); } static void maps_shield_class_init (MapsShieldClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->finalize = maps_shield_finalize; } static void maps_shield_init (MapsShield *self) { self->banner_text_color = (GdkRGBA){ 0, 0, 0, 1 }; self->banner_text_halo_color = (GdkRGBA){ 0.976, 0.96, 0.941, 1 }; } static gboolean set_color_field (JsonObject *obj, const char *name, GdkRGBA *field) { const char *color; if (!json_object_has_member (obj, name)) return FALSE; color = json_object_get_string_member (obj, name); gdk_rgba_parse (field, color); return TRUE; } static gboolean set_double_field (JsonObject *obj, const char *name, double *field) { if (!json_object_has_member (obj, name)) return FALSE; *field = json_object_get_double_member (obj, name); return TRUE; } static gboolean set_boolean_field (JsonObject *obj, const char *name, gboolean *field) { if (!json_object_has_member (obj, name)) return FALSE; *field = json_object_get_boolean_member (obj, name); return TRUE; } static char ** get_string_array (JsonArray *array) { guint i, n = json_array_get_length (array); char **result = g_new0 (char *, n + 1); for (i = 0; i < n; i++) result[i] = g_strdup (json_array_get_string_element (array, i)); return result; } static void set_overrides_field (JsonObject *object, const char *name, GHashTable **field) { JsonObject *overrides; JsonObjectIter iter; const char *key; JsonNode *value; if (!json_object_has_member (object, name)) return; overrides = json_object_get_object_member (object, name); json_object_iter_init (&iter, overrides); *field = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref); while (json_object_iter_next (&iter, &key, &value)) g_hash_table_insert (*field, g_strdup (key), maps_shield_new (value)); } static void maps_shield_set_from_json (MapsShield *self, JsonNode *node) { JsonObject *object; g_return_if_fail (MAPS_IS_SHIELD (self)); g_return_if_fail (JSON_NODE_HOLDS_OBJECT (node)); object = json_node_get_object (node); self->text_color_set = set_color_field (object, "textColor", &self->text_color); self->text_halo_color_set = set_color_field (object, "textHaloColor", &self->text_halo_color); self->banner_text_color_set = set_color_field (object, "bannerTextColor", &self->banner_text_color); self->banner_text_halo_color_set = set_color_field (object, "bannerTextHaloColor", &self->banner_text_halo_color); if (json_object_has_member (object, "padding")) { JsonObject *padding = json_object_get_object_member (object, "padding"); self->padding_left_set = set_double_field (padding, "left", &self->padding_left); self->padding_right_set = set_double_field (padding, "right", &self->padding_right); self->padding_top_set = set_double_field (padding, "top", &self->padding_top); self->padding_bottom_set = set_double_field (padding, "bottom", &self->padding_bottom); } self->color_lighten_set = set_color_field (object, "colorLighten", &self->color_lighten); self->color_darken_set = set_color_field (object, "colorDarken", &self->color_darken); if (json_object_has_member (object, "spriteBlank")) { JsonNode *sprite_blanks = json_object_get_member (object, "spriteBlank"); if (JSON_NODE_HOLDS_ARRAY (sprite_blanks)) { JsonArray *sprite_blanks_array = json_node_get_array (sprite_blanks); self->sprite_blanks = get_string_array (sprite_blanks_array); } else { self->sprite_blanks = g_new0 (char *, 2); self->sprite_blanks[0] = g_strdup (json_node_get_string (sprite_blanks)); } } if (json_object_has_member (object, "banners")) { JsonArray *banners = json_object_get_array_member (object, "banners"); self->banners = get_string_array (banners); } if (json_object_has_member (object, "numberingSystem")) { const char *numbering_system = json_object_get_string_member (object, "numberingSystem"); if (numbering_system == NULL) self->romanize_ref = FALSE; else if (g_strcmp0 ("roman", numbering_system) == 0) self->romanize_ref = TRUE; else g_warning ("Unknown numbering system '%s'", numbering_system); self->romanize_ref_set = TRUE; } self->vertical_reflect_set = set_boolean_field (object, "verticalReflect", &self->vertical_reflect); self->notext_set = set_boolean_field (object, "notext", &self->notext); if (json_object_has_member (object, "refsByName")) { JsonObject *refs_by_name = json_object_get_object_member (object, "refsByName"); JsonObjectIter iter; const char *name; JsonNode *ref_node; json_object_iter_init (&iter, refs_by_name); self->ref_by_name = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free); while (json_object_iter_next (&iter, &name, &ref_node)) { const char *ref = json_node_get_string (ref_node); g_hash_table_insert (self->ref_by_name, g_strdup (name), g_strdup (ref)); } } if (json_object_has_member (object, "textLayout")) { JsonObject *text_layout = json_object_get_object_member (object, "textLayout"); const char *constraint_func = json_object_get_string_member (text_layout, "constraintFunc"); if (constraint_func == NULL) self->text_options.layout = TEXT_LAYOUT_UNSET; else if (g_strcmp0 (constraint_func, "diamond") == 0) self->text_options.layout = TEXT_LAYOUT_DIAMOND; else if (g_strcmp0 (constraint_func, "ellipse") == 0) self->text_options.layout = TEXT_LAYOUT_ELLIPSE; else if (g_strcmp0 (constraint_func, "rect") == 0) self->text_options.layout = TEXT_LAYOUT_RECT; else if (g_strcmp0 (constraint_func, "roundedRect") == 0) self->text_options.layout = TEXT_LAYOUT_ROUNDED_RECT; else if (g_strcmp0 (constraint_func, "southHalfEllipse") == 0) self->text_options.layout = TEXT_LAYOUT_SOUTH_HALF_ELLIPSE; else if (g_strcmp0 (constraint_func, "triangleDown") == 0) self->text_options.layout = TEXT_LAYOUT_TRIANGLE_DOWN; else { g_warning ("Unknown text layout '%s'", constraint_func); return; } self->text_options.radius = 2; if (json_object_has_member (text_layout, "options")) { JsonObject *options = json_object_get_object_member (text_layout, "options"); set_double_field (options, "radius", &self->text_options.radius); } } if (json_object_has_member (object, "shapeBlank")) { JsonObject *shape_blank = json_object_get_object_member (object, "shapeBlank"); const char *shape = json_object_get_string_member (shape_blank, "drawFunc"); JsonObject *params = json_object_get_object_member (shape_blank, "params"); if (shape == NULL) self->shape_options.shape = SHAPE_UNSET; else if (g_strcmp0 (shape, "diamond") == 0) self->shape_options.shape = SHAPE_DIAMOND; else if (g_strcmp0 (shape, "ellipse") == 0) self->shape_options.shape = SHAPE_ELLIPSE; else if (g_strcmp0 (shape, "escutcheon") == 0) self->shape_options.shape = SHAPE_ESCUTCHEON; else if (g_strcmp0 (shape, "fishhead") == 0) self->shape_options.shape = SHAPE_FISHHEAD; else if (g_strcmp0 (shape, "hexagonVertical") == 0) self->shape_options.shape = SHAPE_HEXAGON_VERTICAL; else if (g_strcmp0 (shape, "hexagonHorizontal") == 0) self->shape_options.shape = SHAPE_HEXAGON_HORIZONTAL; else if (g_strcmp0 (shape, "octagonVertical") == 0) self->shape_options.shape = SHAPE_OCTAGON_VERTICAL; else if (g_strcmp0 (shape, "pentagon") == 0) self->shape_options.shape = SHAPE_PENTAGON; else if (g_strcmp0 (shape, "roundedRectangle") == 0) self->shape_options.shape = SHAPE_ROUNDED_RECTANGLE; else if (g_strcmp0 (shape, "trapezoid") == 0) self->shape_options.shape = SHAPE_TRAPEZOID; else if (g_strcmp0 (shape, "triangle") == 0) self->shape_options.shape = SHAPE_TRIANGLE; else if (g_strcmp0 (shape, "paBelt") == 0) self->shape_options.shape = SHAPE_PA_BELT; else if (g_strcmp0 (shape, "branson") == 0) self->shape_options.shape = SHAPE_BRANSON; else { g_warning ("Unknown shape '%s'", shape); return; } self->shape_options.point_up = TRUE; self->shape_options.outline_width = 1; set_double_field (params, "sideAngle", &self->shape_options.side_angle); set_color_field (params, "fillColor", &self->shape_options.fill); set_double_field (params, "yOffset", &self->shape_options.y_offset); set_color_field (params, "strokeColor", &self->shape_options.outline); set_double_field (params, "outlineWidth", &self->shape_options.outline_width); set_boolean_field (params, "pointUp", &self->shape_options.point_up); set_double_field (params, "radius", &self->shape_options.radius); set_double_field (params, "radius1", &self->shape_options.radius1); set_double_field (params, "radius2", &self->shape_options.radius2); set_boolean_field (params, "shortSideUp", &self->shape_options.short_side_up); self->shape_options.rect_width_set = set_double_field (params, "rectWidth", &self->shape_options.rect_width); } set_overrides_field (object, "overridesByRef", &self->override_by_ref); set_overrides_field (object, "overridesByName", &self->override_by_name); if (json_object_has_member (object, "noref")) { JsonNode *override_noref = json_object_get_member (object, "noref"); self->override_noref = maps_shield_new (override_noref); } } static MapsShield * apply_override (MapsShield *self, MapsShield *override) { MapsShield *result; if (override == NULL) return g_object_ref (self); result = g_object_new (MAPS_TYPE_SHIELD, NULL); result->text_color = override->text_color_set ? override->text_color : self->text_color; result->text_color_set = override->text_color_set || self->text_color_set; result->text_halo_color = override->text_halo_color_set ? override->text_halo_color : self->text_halo_color; result->text_halo_color_set = override->text_halo_color_set || self->text_halo_color_set; result->color_lighten = override->color_lighten_set ? override->color_lighten : self->color_lighten; result->color_lighten_set = override->color_lighten_set || self->color_lighten_set; result->color_darken = override->color_darken_set ? override->color_darken : self->color_darken; result->color_darken_set = override->color_darken_set || self->color_darken_set; result->padding_left = override->padding_left_set ? override->padding_left : self->padding_left; result->padding_left_set = override->padding_left_set || self->padding_left_set; result->padding_right = override->padding_right_set ? override->padding_right : self->padding_right; result->padding_right_set = override->padding_right_set || self->padding_right_set; result->padding_top = override->padding_top_set ? override->padding_top : self->padding_top; result->padding_top_set = override->padding_top_set || self->padding_top_set; result->padding_bottom = override->padding_bottom_set ? override->padding_bottom : self->padding_bottom; result->padding_bottom_set = override->padding_bottom_set || self->padding_bottom_set; result->romanize_ref = override->romanize_ref_set ? override->romanize_ref : self->romanize_ref; result->vertical_reflect = override->vertical_reflect_set ? override->vertical_reflect : self->vertical_reflect; result->notext = override->notext_set ? override->notext : self->notext; result->sprite_blanks = g_strdupv (override->sprite_blanks != NULL ? override->sprite_blanks : self->sprite_blanks); result->banners = g_strdupv (override->banners != NULL ? override->banners : self->banners); result->text_options = override->text_options.layout != TEXT_LAYOUT_UNSET ? override->text_options : self->text_options; result->shape_options = override->shape_options.shape != SHAPE_UNSET ? override->shape_options : self->shape_options; return result; } typedef struct { MapsShield *shield; const char *ref; const char *name; double scale; cairo_t *cr; } RenderCtx; typedef enum { ALIGN_TOP, ALIGN_MIDDLE, ALIGN_BOTTOM, } VAlign; static PangoLayout * create_pango_layout (RenderCtx *ctx) { if (ctx->cr != NULL) return pango_cairo_create_layout (ctx->cr); else { PangoContext *pango_context = pango_font_map_create_context (pango_cairo_font_map_get_default ()); PangoLayout *layout = pango_layout_new (pango_context); g_object_unref (pango_context); return layout; } } static double ellipse_scale (double avail_width, double avail_height, double text_width, double text_height) { return (avail_width * avail_height) / sqrt (avail_width * avail_width * text_height * text_height + avail_height * avail_height * text_width * text_width); } static void text_layout_func (RenderCtx *ctx, double avail_width, double avail_height, double text_width, double text_height, double *scale, VAlign *valign) { double set_scale = 1.0; VAlign set_valign = ALIGN_MIDDLE; switch (ctx->shield->text_options.layout) { case TEXT_LAYOUT_UNSET: case TEXT_LAYOUT_RECT: set_scale = MIN (avail_width / text_width, avail_height / text_height); break; case TEXT_LAYOUT_DIAMOND: set_scale = (avail_width * avail_height) / (avail_height * text_width + avail_width * text_height); break; case TEXT_LAYOUT_ELLIPSE: set_scale = ellipse_scale (avail_width, avail_height, text_width, text_height); break; case TEXT_LAYOUT_ROUNDED_RECT: { double constraint_radius = ctx->shield->text_options.radius * (2 - G_SQRT2); avail_width -= constraint_radius; avail_height -= constraint_radius; set_scale = MIN (avail_width / text_width, avail_height / text_height); break; } case TEXT_LAYOUT_SOUTH_HALF_ELLIPSE: set_scale = ellipse_scale (avail_width, avail_height, text_height, text_width / 2); set_valign = ALIGN_TOP; break; case TEXT_LAYOUT_TRIANGLE_DOWN: set_scale = (avail_width * avail_height) / (avail_height * text_width + avail_width * text_height); set_valign = ALIGN_TOP; break; } if (scale != NULL) *scale = set_scale; if (valign != NULL) *valign = set_valign; } static double calculate_text_width (RenderCtx *ctx) { g_autoptr(PangoLayout) layout = create_pango_layout (ctx); g_autoptr(PangoFontDescription) font_desc = pango_font_description_new (); PangoRectangle extent; if (ctx->ref == NULL) return 0; pango_layout_set_text (layout, ctx->ref, -1); pango_font_description_set_family (font_desc, FONT_FAMILY); pango_font_description_set_weight (font_desc, PANGO_WEIGHT_MEDIUM); pango_font_description_set_stretch (font_desc, PANGO_STRETCH_CONDENSED); pango_font_description_set_absolute_size (font_desc, PANGO_SCALE * GENERIC_SHIELD_FONT_SIZE); pango_layout_set_font_description (layout, font_desc); pango_layout_get_extents (layout, &extent, NULL); return extent.width / (double) PANGO_SCALE; } static void layout_shield_text (RenderCtx *ctx, double width, double height, double *x, double *y, double *font_size, PangoLayout **layout_out) { g_autoptr(PangoLayout) layout = create_pango_layout (ctx); g_autoptr(PangoFontDescription) font_desc = pango_font_description_new (); PangoRectangle extent; double text_width, text_height; double avail_width, avail_height; double scale; double set_font_size; VAlign valign; pango_layout_set_text (layout, ctx->ref, -1); pango_font_description_set_family (font_desc, FONT_FAMILY); pango_font_description_set_weight (font_desc, PANGO_WEIGHT_MEDIUM); pango_font_description_set_stretch (font_desc, PANGO_STRETCH_CONDENSED); pango_font_description_set_absolute_size (font_desc, PANGO_SCALE * FONT_SIZE_THRESHOLD); pango_layout_set_font_description (layout, font_desc); pango_layout_get_extents (layout, &extent, NULL); text_width = extent.width / (double) PANGO_SCALE; text_height = extent.height / (double) PANGO_SCALE; avail_width = width - ctx->shield->padding_left - ctx->shield->padding_right; avail_height = height - ctx->shield->padding_top - ctx->shield->padding_bottom; text_layout_func (ctx, avail_width, avail_height, text_width, text_height, &scale, &valign); set_font_size = MIN (MAX_FONT_SIZE, FONT_SIZE_THRESHOLD * scale); pango_font_description_set_absolute_size (font_desc, PANGO_SCALE * set_font_size); pango_layout_set_font_description (layout, font_desc); pango_layout_get_extents (layout, &extent, NULL); text_width = extent.width / (double) PANGO_SCALE; text_height = extent.height / (double) PANGO_SCALE; if (x != NULL) *x = ctx->shield->padding_left + (avail_width - text_width) / 2; if (y != NULL) { switch (valign) { case ALIGN_TOP: *y = ctx->shield->padding_top; break; case ALIGN_MIDDLE: *y = ctx->shield->padding_top + (avail_height - text_height) / 2; break; case ALIGN_BOTTOM: *y = ctx->shield->padding_top + avail_height - text_height; break; } } if (font_size != NULL) *font_size = set_font_size; if (layout_out != NULL) *layout_out = g_steal_pointer (&layout); } static RsvgHandle * get_raster_shield_blank (RenderCtx *ctx) { /* Loads a blank shield image. Unlike the original OSM Americana code, we load the image directly from gresources, rather than from the spritesheet. This is because the MapsSpriteSource code loads images as icons at a standard size, not at the image's original size. */ RsvgHandle *handle = NULL; double width, height; double font_size; if (ctx->shield->sprite_blanks == NULL) return NULL; for (int i = 0; ctx->shield->sprite_blanks[i] != NULL; i++) { g_autofree char *resource_name = g_strdup_printf ("/org/gnome/Maps/shields/%s.svg", ctx->shield->sprite_blanks[i]); g_autoptr(GBytes) bytes = NULL; g_clear_object (&handle); bytes = g_resources_lookup_data (resource_name, G_RESOURCE_LOOKUP_FLAGS_NONE, NULL); if (bytes == NULL) { g_warning ("Failed to load data for shield blank '%s'", ctx->shield->sprite_blanks[i]); return NULL; } handle = rsvg_handle_new_from_data (g_bytes_get_data (bytes, NULL), g_bytes_get_size (bytes), NULL); if (handle == NULL) { g_warning ("Failed to load RsvgHandle for shield blank '%s'", ctx->shield->sprite_blanks[i]); return NULL; } if (ctx->ref == NULL) break; rsvg_handle_get_intrinsic_size_in_pixels (handle, &width, &height); layout_shield_text (ctx, width, height, NULL, NULL, &font_size, NULL); if (font_size > FONT_SIZE_THRESHOLD) break; } return handle; } static void romanize_repeat_char (GString *string, char c, int *n, int sub) { while (*n >= sub) { g_string_append_c (string, c); *n -= sub; } } static char * romanize_ref (const char *ref) { /* Convert a ref to roman numerals. */ char *end; g_autoptr(GString) result = g_string_new (NULL); int ref_num = g_ascii_strtoll (ref, &end, 10); if (ref_num == 0) return g_strdup (ref); romanize_repeat_char (result, 'M', &ref_num, 1000); romanize_repeat_char (result, 'D', &ref_num, 500); romanize_repeat_char (result, 'C', &ref_num, 100); romanize_repeat_char (result, 'L', &ref_num, 50); romanize_repeat_char (result, 'X', &ref_num, 10); romanize_repeat_char (result, 'V', &ref_num, 5); romanize_repeat_char (result, 'I', &ref_num, 1); g_string_replace (result, "DCCCC", "CM", 0); g_string_replace (result, "CCCC", "CD", 0); g_string_replace (result, "LXXXX", "XC", 0); g_string_replace (result, "XXXX", "XL", 0); g_string_replace (result, "VIIII", "IX", 0); g_string_replace (result, "IIII", "IV", 0); g_string_append (result, end); return g_string_free (g_steal_pointer (&result), FALSE); } static cairo_pattern_t * create_pattern (RsvgHandle *sprite, RenderCtx *ctx) { double width, height; cairo_surface_t *surface; cairo_t *source_cr; cairo_pattern_t *pattern; cairo_matrix_t matrix; rsvg_handle_get_intrinsic_size_in_pixels (sprite, &width, &height); width *= ctx->scale; height *= ctx->scale; surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, width, height); source_cr = cairo_create (surface); rsvg_handle_render_document (sprite, source_cr, &((RsvgRectangle) { .x = 0, .y = 0, .width = width, .height = height, }), NULL); pattern = cairo_pattern_create_for_surface (surface); cairo_matrix_init_identity (&matrix); if (ctx->shield->vertical_reflect) { cairo_matrix_translate (&matrix, 0, height / 2); cairo_matrix_scale (&matrix, 1, -1); cairo_matrix_translate (&matrix, 0, -height / 2); } cairo_matrix_scale (&matrix, ctx->scale, ctx->scale); cairo_pattern_set_matrix (pattern, &matrix); cairo_surface_destroy (surface); cairo_destroy (source_cr); return pattern; } static double compute_width (RenderCtx *ctx) { ShapeOptions *shape = &ctx->shield->shape_options; double shield_width; double min_width = MIN_GENERIC_SHIELD_WIDTH; if (shape->rect_width_set) return shape->rect_width; shield_width = calculate_text_width (ctx) + 2; switch (shape->shape) { case SHAPE_PENTAGON: shield_width += ((SHIELD_SIZE - shape->y_offset) * tan (shape->side_angle)) / 2; break; case SHAPE_TRAPEZOID: shield_width += (SHIELD_SIZE * tan (shape->side_angle)) / 2; break; case SHAPE_TRIANGLE: min_width += 2; break; case SHAPE_DIAMOND: case SHAPE_HEXAGON_HORIZONTAL: min_width += 4; break; default: break; } return MAX (min_width, MIN (MAX_GENERIC_SHIELD_WIDTH, shield_width)); } static double shape_height (RenderCtx *ctx) { if (ctx->shield->shape_options.shape == SHAPE_DIAMOND) return SHIELD_SIZE + 4; else return SHIELD_SIZE; } static void get_drawn_shield_bounds (RenderCtx *ctx, double *width, double *height) { *width = MAX (SHIELD_SIZE, compute_width (ctx)); *height = shape_height (ctx); } static void draw_banners (RenderCtx *ctx, double width) { if (ctx->shield->banners == NULL) return; for (int i = 0; ctx->shield->banners[i] != NULL; i++) { const char *banner = ctx->shield->banners[i]; g_autoptr(PangoLayout) layout = create_pango_layout (ctx); g_autoptr(PangoFontDescription) font_desc = pango_font_description_new (); PangoRectangle extent; double text_width, text_height, scale; pango_layout_set_text (layout, banner, -1); pango_font_description_set_family (font_desc, FONT_FAMILY); pango_font_description_set_weight (font_desc, PANGO_WEIGHT_MEDIUM); pango_font_description_set_stretch (font_desc, PANGO_STRETCH_CONDENSED); pango_font_description_set_absolute_size (font_desc, PANGO_SCALE * FONT_SIZE_THRESHOLD); pango_layout_set_font_description (layout, font_desc); pango_layout_get_extents (layout, &extent, NULL); text_width = (extent.x + extent.width) / (double) PANGO_SCALE + 2; text_height = (extent.y + extent.height) / (double) PANGO_SCALE + 2; scale = MIN (BANNER_HEIGHT / text_height, width / text_width); pango_font_description_set_absolute_size (font_desc, PANGO_SCALE * FONT_SIZE_THRESHOLD * scale); pango_layout_set_font_description (layout, font_desc); pango_layout_get_extents (layout, &extent, NULL); text_width = (extent.x + extent.width) / (double) PANGO_SCALE; text_height = (extent.y + extent.height) / (double) PANGO_SCALE; cairo_save (ctx->cr); cairo_move_to (ctx->cr, (width - text_width) / 2, i * BANNER_HEIGHT); pango_cairo_layout_path (ctx->cr, layout); gdk_cairo_set_source_rgba (ctx->cr, &ctx->shield->banner_text_halo_color); cairo_set_line_width (ctx->cr, 2); cairo_stroke_preserve (ctx->cr); gdk_cairo_set_source_rgba (ctx->cr, &ctx->shield->banner_text_color); cairo_fill (ctx->cr); cairo_restore (ctx->cr); } } static void rounded_rect (cairo_t *cr, double width, double height, double radius, double half_outline_width) { cairo_arc (cr, width - radius - half_outline_width, radius + half_outline_width, radius, -G_PI / 2, 0); cairo_arc (cr, width - radius - half_outline_width, height - radius - half_outline_width, radius, 0, G_PI / 2); cairo_arc (cr, radius + half_outline_width, height - radius - half_outline_width, radius, G_PI / 2, G_PI); cairo_arc (cr, radius + half_outline_width, radius + half_outline_width, radius, G_PI, 3 * G_PI / 2); cairo_close_path (cr); } static void arc_to (cairo_t *cr, double x1, double y1, double x2, double y2, double radius) { /* Implement canvas's arcTo() in terms of cairo's arc(). See . Based on the implementation in , which is MIT licensed. */ double x0, y0; cairo_get_current_point (cr, &x0, &y0); if ((x1 == x0 && y1 == y0) || (x1 == x2 && y1 == y2) || radius == 0) { cairo_line_to (cr, x1, y1); return; } double p1p0_x = x0 - x1; double p1p0_y = y0 - y1; double p1p2_x = x2 - x1; double p1p2_y = y2 - y1; double p1p0_length = sqrt (p1p0_x * p1p0_x + p1p0_y * p1p0_y); double p1p2_length = sqrt (p1p2_x * p1p2_x + p1p2_y * p1p2_y); double cos_phi = (p1p0_x * p1p2_x + p1p0_y * p1p2_y) / (p1p0_length * p1p2_length); if (cos_phi == -1) { cairo_line_to (cr, x1, y1); return; } if (1 == cos_phi) { double factor_max = 65535 / p1p0_length; double ep_x = x0 + factor_max * p1p0_x; double ep_y = y0 + factor_max * p1p0_y; cairo_line_to (cr, ep_x, ep_y); return; } double tangent = radius / tan (acos (cos_phi) / 2); double factor_p1p0 = tangent / p1p0_length; double t_p1p0_x = (x1 + factor_p1p0 * p1p0_x); double t_p1p0_y = (y1 + factor_p1p0 * p1p0_y); double orth_p1p0_x = p1p0_y; double orth_p1p0_y = -p1p0_x; double orth_p1p0_length = sqrt (orth_p1p0_x * orth_p1p0_x + orth_p1p0_y * orth_p1p0_y); double factor_ra = radius / orth_p1p0_length; double cos_alpha = (orth_p1p0_x * p1p2_x + orth_p1p0_y * p1p2_y) / (orth_p1p0_length * p1p2_length); if (cos_alpha < 0) { orth_p1p0_x = -orth_p1p0_x; orth_p1p0_y = -orth_p1p0_y; } double p_x = t_p1p0_x + factor_ra * orth_p1p0_x; double p_y = t_p1p0_y + factor_ra * orth_p1p0_y; orth_p1p0_x = -orth_p1p0_x; orth_p1p0_y = -orth_p1p0_y; double sa = acos (orth_p1p0_x / orth_p1p0_length); if (orth_p1p0_y < 0) sa = 2 * G_PI - sa; gboolean anticlockwise = FALSE; double factor_p1p2 = tangent / p1p2_length; double t_p1p2_x = x1 + factor_p1p2 * p1p2_x; double t_p1p2_y = y1 + factor_p1p2 * p1p2_y; double orth_p1p2_x = t_p1p2_x - p_x; double orth_p1p2_y = t_p1p2_y - p_y; double orth_p1p2_length = sqrt (orth_p1p2_x * orth_p1p2_x + orth_p1p2_y * orth_p1p2_y); double ea = acos (orth_p1p2_x / orth_p1p2_length); if (orth_p1p2_y < 0) ea = 2 * G_PI - ea; if ((sa > ea) && ((sa - ea) < G_PI)) anticlockwise = TRUE; if ((sa < ea) && ((ea - sa) > G_PI)) anticlockwise = TRUE; cairo_line_to (cr, t_p1p0_x, t_p1p0_y); if (anticlockwise && G_PI * 2 != radius) cairo_arc_negative (cr, p_x, p_y, radius, sa, ea); else cairo_arc (cr, p_x, p_y, radius, sa, ea); } static void draw_shield (RenderCtx *ctx, double width, double height, double banner_height) { double outline_width = ctx->shield->shape_options.outline_width; double half_outline_width = outline_width / 2; cairo_save (ctx->cr); cairo_translate (ctx->cr, 0, banner_height); switch (ctx->shield->shape_options.shape) { case SHAPE_UNSET: break; case SHAPE_ELLIPSE: { double radius_x = (width - outline_width) / 2; double radius_y = (height - outline_width) / 2; cairo_matrix_t matrix; cairo_get_matrix (ctx->cr, &matrix); cairo_translate (ctx->cr, width / 2, height / 2); cairo_scale (ctx->cr, radius_x, radius_y); cairo_translate (ctx->cr, -width / 2, -height / 2); cairo_arc ( ctx->cr, width / 2, height / 2, 1, 0, 2 * G_PI ); cairo_set_matrix (ctx->cr, &matrix); break; } case SHAPE_ROUNDED_RECTANGLE: rounded_rect (ctx->cr, width, height, ctx->shield->shape_options.radius, half_outline_width); break; case SHAPE_ESCUTCHEON: { double y_offset = ctx->shield->shape_options.y_offset; double radius = ctx->shield->shape_options.radius; double x0 = half_outline_width; double x5 = width - half_outline_width; double y0 = half_outline_width; double y5 = height - half_outline_width; double x1 = x0 + radius; double x3 = (x0 + x5) / 2; double y1 = y0 + radius; double y2 = y5 - y_offset; double x2 = (2 * x0 + x3) / 3; double x4 = (x3 + 2 * x5) / 3; double y3 = (y2 + y5) / 2; double y4 = (y3 + 2 * y5) / 3; cairo_move_to (ctx->cr, x3, y5); cairo_curve_to (ctx->cr, x2, y4, x0, y3, x0, y2); arc_to (ctx->cr, x0, y0, x1, y0, radius); arc_to (ctx->cr, x5, y0, x5, y1, radius); /* Right side */ cairo_line_to (ctx->cr, x5, y2); /* Right curve */ cairo_curve_to (ctx->cr, x5, y3, x4, y4, x3, y5); break; } case SHAPE_FISHHEAD: { gboolean point_up = ctx->shield->shape_options.point_up; double angle_sign = point_up ? -1 : 1; double x0 = half_outline_width; double x8 = width - half_outline_width; double y0 = point_up ? height - outline_width : outline_width; double y6 = point_up ? outline_width : height - outline_width; double x1 = x0 + 1; double x2 = x0 + 2.5; double x4 = (x0 + x8) / 2; double x6 = x8 - 2.5; double x7 = x8 - 1; double y1 = y0 + angle_sign * 2; double y2 = y0 + angle_sign * 4.5; double y3 = y0 + angle_sign * 7; double y4 = y6 - angle_sign * 6; double y5 = y6 - angle_sign * 1; double x3 = (x0 + x4) / 2; double x5 = (x4 + x8) / 2; cairo_move_to (ctx->cr, x4, y6); cairo_curve_to (ctx->cr, x3, y5, x0, y4, x0, y3); cairo_curve_to (ctx->cr, x0, y2, x1, y1, x2, y0); cairo_line_to(ctx->cr, x6, y0); cairo_curve_to (ctx->cr, x7, y1, x8, y2, x8, y3); cairo_curve_to (ctx->cr, x8, y4, x5, y5, x4, y6); break; } case SHAPE_TRIANGLE: { gboolean point_up = ctx->shield->shape_options.point_up; double radius = ctx->shield->shape_options.radius; double angle_sign = point_up ? -1 : 1; double x0 = half_outline_width; double x8 = width - half_outline_width; double y0 = point_up ? height - half_outline_width : half_outline_width; double y5 = point_up ? half_outline_width : height - half_outline_width; double x2 = x0 + radius; double x4 = (x0 + x8) / 2; double x6 = x8 - radius; double y1 = y0 + angle_sign * radius; double angle = atan2 (x4 - x2, abs (y5 - radius - y1)); double sine = sin (angle); double cosine = cos (angle); double half_tangent = tan (angle / 2); double half_complement_tangent = tan (G_PI / 4 - angle / 2); double x1 = x2 - radius * cosine; double x3 = x4 - radius * half_complement_tangent; double x5 = x4 + radius * half_complement_tangent; double x7 = x6 + radius * cosine; double y2 = y1 + angle_sign * radius * half_tangent; double y3 = y1 + angle_sign * radius * sine; cairo_move_to (ctx->cr, x4, y5); arc_to (ctx->cr, x3, y5, x1, y3, radius); arc_to (ctx->cr, x0, y2, x0, y1, radius); arc_to (ctx->cr, x0, y0, x2, y0, radius); arc_to (ctx->cr, x8, y0, x8, y1, radius); arc_to (ctx->cr, x8, y2, x7, y3, radius); arc_to (ctx->cr, x5, y5, x4, y5, radius); cairo_close_path (ctx->cr); break; } case SHAPE_TRAPEZOID: { gboolean short_side_up = ctx->shield->shape_options.short_side_up; double side_angle = ctx->shield->shape_options.side_angle; double radius = ctx->shield->shape_options.radius; double angle_sign = short_side_up ? -1 : 1; double sine = sin (side_angle); double cosine = cos (side_angle); double tangent = tan (side_angle); double x0 = half_outline_width; double x9 = width - half_outline_width; double y0 = short_side_up ? height - half_outline_width : half_outline_width; double y3 = short_side_up ? half_outline_width : height - half_outline_width; double y1 = y0 + angle_sign * radius * (1 + sine); double y2 = y3 - angle_sign * radius * (1 - sine); double x1 = x0 + (y1 - y0) * tangent; double x2 = x1 + radius * cosine; double x3 = x0 + angle_sign * (y2 - y0) * tangent; double x4 = x0 + angle_sign * (y3 - y0) * tangent; double x5 = x3 + angle_sign * radius * cosine; double x6 = width - x4; double x7 = width - x3; double x8 = width - x2; cairo_move_to (ctx->cr, x8, y0); arc_to (ctx->cr, x9, y0, x7, y2, radius); arc_to (ctx->cr, x6, y3, x5, y3, radius); arc_to (ctx->cr, x4, y3, x1, y1, radius); arc_to (ctx->cr, x0, y0, x8, y0, radius); cairo_close_path (ctx->cr); break; } case SHAPE_DIAMOND: { double radius = ctx->shield->shape_options.radius; double x0 = half_outline_width; double x8 = width - half_outline_width; double y0 = half_outline_width; double y8 = height - half_outline_width; double x4 = (x0 + x8) / 2; double y4 = (y0 + y8) / 2; double angle = atan2 (x4 - radius - x0, y8 - radius - y4); double sine = sin (angle); double cosine = cos (angle); double half_tangent = tan (angle / 2); double half_complement_tangent = tan (G_PI / 4 - angle / 2); double x1 = x0 + radius * (1 - cosine); double x2 = x4 - radius * cosine; double x3 = x4 - radius * half_complement_tangent; double x5 = x4 + radius * half_complement_tangent; double x6 = x4 + radius * cosine; double x7 = x8 - radius * (1 - cosine); double y1 = y0 + radius * (1 - sine); double y2 = y4 - radius * sine; double y3 = y4 - radius * half_tangent; double y5 = y4 + radius * half_tangent; double y6 = y4 + radius * sine; double y7 = y8 - radius * (1 - sine); cairo_move_to (ctx->cr, x4, y8); arc_to (ctx->cr, x3, y8, x1, y6, radius); arc_to (ctx->cr, x0, y5, x0, y4, radius); arc_to (ctx->cr, x0, y3, x2, y1, radius); arc_to (ctx->cr, x3, y0, x4, y0, radius); arc_to (ctx->cr, x5, y0, x7, y2, radius); arc_to (ctx->cr, x8, y3, x8, y4, radius); arc_to (ctx->cr, x8, y5, x6, y7, radius); arc_to (ctx->cr, x5, y8, x4, y8, radius); cairo_close_path (ctx->cr); break; } case SHAPE_PENTAGON: { gboolean point_up = ctx->shield->shape_options.point_up; double angle_sign = point_up ? -1 : 1; double side_angle = ctx->shield->shape_options.side_angle; double sine = sin (side_angle); double cosine = cos (side_angle); double tangent = tan (side_angle); double radius1 = ctx->shield->shape_options.radius1; double radius2 = ctx->shield->shape_options.radius2; double y_offset = ctx->shield->shape_options.y_offset; double x0 = half_outline_width; double x8 = width - half_outline_width; double y0 = point_up ? height - half_outline_width : half_outline_width; double y3 = point_up ? half_outline_width : height - half_outline_width; double y2 = y3 - angle_sign * y_offset; double x2 = x0 + angle_sign * (y2 - y0) * tangent; double x4 = (x0 + x8) / 2; double x6 = x8 - angle_sign * (y2 - y0) * tangent; double y_offset_angle = atan2 (y_offset, x4 - x0); double half_complement_angle1 = (G_PI / 2 - y_offset_angle + side_angle) / 2; double half_complement_tangent1 = tan (half_complement_angle1); double half_complement_angle2 = (G_PI / 2 - side_angle) / 2; double half_complement_tangent2 = tan (half_complement_angle2); double x1 = x0 + radius1 * half_complement_tangent1 * sine; double x3 = x2 + radius2 * half_complement_tangent2; double x5 = x6 - radius2 * half_complement_tangent2; double x7 = x8 - radius1 * half_complement_tangent1 * sine; double y1 = y2 - angle_sign * radius1 * half_complement_tangent1 * cosine; cairo_move_to (ctx->cr, x4, y3); arc_to (ctx->cr, x0, y2, x1, y1, radius1); arc_to (ctx->cr, x2, y0, x3, y0, radius2); cairo_line_to (ctx->cr, x5, y0); arc_to (ctx->cr, x6, y0, x7, y1, radius2); arc_to (ctx->cr, x8, y2, x4, y3, radius1); cairo_close_path (ctx->cr); break; } case SHAPE_HEXAGON_VERTICAL: { double radius = ctx->shield->shape_options.radius; double y_offset = ctx->shield->shape_options.y_offset; double x0 = half_outline_width; double x2 = width - half_outline_width; double y0 = half_outline_width; double y5 = height - half_outline_width; double x1 = (x0 + x2) / 2; double y1 = y0 + y_offset; double y4 = y5 - y_offset; double draw_y_offset_tangent = radius * tan (G_PI / 4 - asin (y_offset / (x1 - x0)) / 2); double y2 = y1 + draw_y_offset_tangent; double y3 = y4 - draw_y_offset_tangent; cairo_move_to (ctx->cr, x1, y5); arc_to (ctx->cr, x0, y4, x0, y3, radius); arc_to (ctx->cr, x0, y1, x1, y0, radius); cairo_line_to (ctx->cr, x1, y0); arc_to (ctx->cr, x2, y1, x2, y2, radius); arc_to (ctx->cr, x2, y4, x1, y5, radius); cairo_line_to (ctx->cr, x1, y5); cairo_close_path (ctx->cr); break; } case SHAPE_HEXAGON_HORIZONTAL: { double side_angle = ctx->shield->shape_options.side_angle; double radius = ctx->shield->shape_options.radius; double sine = sin (side_angle); double cosine = cos (side_angle); double tangent = tan (side_angle); double half_complement_tangent = tan (G_PI / 4 - side_angle / 2); double x0 = half_outline_width; double x9 = width - half_outline_width; double y0 = half_outline_width; double y6 = height - half_outline_width; double y3 = (y0 + y6) / 2; double y1 = y0 + radius * half_complement_tangent * cosine; double y2 = y3 - radius * sine; double y4 = y3 + radius * sine; double y5 = y6 - radius * half_complement_tangent * cosine; double x1 = x0 + (y3 - y2) * tangent; double x3 = x0 + (y3 - y0) * tangent; double x6 = x9 - (y3 - y0) * tangent; double x8 = x9 - (y3 - y2) * tangent; double x2 = x3 - radius * half_complement_tangent * sine; double x4 = x3 + radius * half_complement_tangent; double x5 = x6 - radius * half_complement_tangent; double x7 = x6 + radius * half_complement_tangent * sine; cairo_move_to (ctx->cr, x4, y0); arc_to (ctx->cr, x6, y0, x7, y1, radius); arc_to (ctx->cr, x9, y3, x8, y4, radius); arc_to (ctx->cr, x6, y6, x5, y6, radius); arc_to (ctx->cr, x3, y6, x2, y5, radius); arc_to (ctx->cr, x0, y3, x1, y2, radius); arc_to (ctx->cr, x3, y0, x4, y0, radius); cairo_close_path (ctx->cr); break; } case SHAPE_PA_BELT: { /* Special case for Allegheny, Pennsylvania color-coded routes */ /* Background rectangle */ rounded_rect (ctx->cr, width, height, 2, 0.5); cairo_set_source_rgba (ctx->cr, 1, 1, 1, 1); cairo_fill_preserve (ctx->cr); cairo_set_source_rgba (ctx->cr, 0, 0, 0, 1); cairo_set_line_width (ctx->cr, 1); cairo_stroke (ctx->cr); /* Circle */ cairo_arc (ctx->cr, width / 2, height / 2, width / 3 - 0.5, 0, 2 * G_PI); outline_width = 0.5; break; } case SHAPE_OCTAGON_VERTICAL: { double radius = ctx->shield->shape_options.radius; double y_offset = ctx->shield->shape_options.y_offset; double side_angle = ctx->shield->shape_options.side_angle; double sine = sin (side_angle); double cosine = cos (side_angle); double tangent = tan (side_angle); double x0 = half_outline_width; double x10 = width - half_outline_width; double y0 = half_outline_width; double y10 = height - half_outline_width; double x1 = x0 + radius * tangent * sine; double x5 = (x0 + x10) / 2; double x9 = x10 - radius * tangent * sine; double y2 = y0 + y_offset; double y5 = (y0 + y10) / 2; double y8 = y10 - y_offset; double x3 = x0 + (y5 - y2) * tangent; double x7 = x10 - (y5 - y2) * tangent; double y4 = y5 - radius * tangent * cosine; double y6 = y5 + radius * tangent * cosine; double y_offset_angle = atan (y_offset / (x5 - x3)); double y_offset_sine = sin (y_offset_angle); double y_offset_cosine = cos (y_offset_angle); double half_complement_angle = (G_PI / 2 - side_angle - y_offset_angle) / 2; double half_complement_cosine = cos (half_complement_angle); double dx = (radius * cos (side_angle + half_complement_angle)) / half_complement_cosine; double dy = (radius * sin (side_angle + half_complement_angle)) / half_complement_cosine; double x2 = x3 + dx - radius * cosine; double x4 = x3 + dx - radius * y_offset_sine; double x6 = x7 - dx + radius * y_offset_sine; double x8 = x7 - dx + radius * cosine; double y1 = y2 + dy - radius * y_offset_cosine; double y3 = y2 + dy - radius * sine; double y7 = y8 - dy + radius * sine; double y9 = y8 - dy + radius * y_offset_cosine; cairo_move_to (ctx->cr, x5, y10); arc_to (ctx->cr, x3, y8, x2, y7, radius); arc_to (ctx->cr, x0, y5, x1, y4, radius); arc_to (ctx->cr, x3, y2, x4, y1, radius); cairo_line_to (ctx->cr, x5, y0); arc_to (ctx->cr, x7, y2, x8, y3, radius); arc_to (ctx->cr, x10, y5, x9, y6, radius); arc_to (ctx->cr, x7, y8, x6, y9, radius); cairo_line_to (ctx->cr, x5, y10); cairo_close_path (ctx->cr); break; } case SHAPE_BRANSON: { /* Special case for Branson, Missouri color-coded routes */ double x, y, w, h; /* Background rectangle */ rounded_rect (ctx->cr, width, height, 2, 0.5); cairo_set_source_rgba (ctx->cr, 0, 0.404, 0.278, 1); cairo_fill_preserve (ctx->cr); cairo_set_source_rgba (ctx->cr, 1, 1, 1, 1); cairo_set_line_width (ctx->cr, 1); cairo_stroke (ctx->cr); /* Color rectangle */ x = 0.15 * width + 0.5; w = 0.7 * width - 1; y = 0.4 * height + 0.5; h = 0.45 * height - 1; cairo_rectangle (ctx->cr, x, y, w, h); break; } } if (ctx->shield->shape_options.fill.alpha > 0) { gdk_cairo_set_source_rgba (ctx->cr, &ctx->shield->shape_options.fill); cairo_fill_preserve (ctx->cr); } if (ctx->shield->shape_options.outline.alpha > 0) { gdk_cairo_set_source_rgba (ctx->cr, &ctx->shield->shape_options.outline); cairo_set_line_width (ctx->cr, outline_width); cairo_stroke_preserve (ctx->cr); } cairo_new_path (ctx->cr); cairo_restore (ctx->cr); } static void draw_shield_text (RenderCtx *ctx, double width, double height, double banner_height) { g_autoptr(PangoLayout) layout = NULL; PangoRectangle extent; double extent_x, extent_y; double x, y, font_size; layout_shield_text (ctx, width, height, &x, &y, &font_size, &layout); pango_layout_get_extents (layout, &extent, NULL); extent_x = extent.x / (double) PANGO_SCALE; extent_y = extent.y / (double) PANGO_SCALE; cairo_move_to (ctx->cr, x - extent_x, y + banner_height - extent_y); pango_cairo_layout_path (ctx->cr, layout); if (ctx->shield->text_halo_color_set) { gdk_cairo_set_source_rgba (ctx->cr, &ctx->shield->text_halo_color); cairo_set_line_width (ctx->cr, 2); cairo_stroke_preserve (ctx->cr); } if (ctx->shield->text_color_set) gdk_cairo_set_source_rgba (ctx->cr, &ctx->shield->text_color); else gdk_cairo_set_source_rgba (ctx->cr, &(GdkRGBA){0, 0, 0, 1}); cairo_fill (ctx->cr); } static GdkTexture * texture_new_for_surface (cairo_surface_t *surface) { g_autoptr(GBytes) bytes = NULL; GdkTexture *texture; g_return_val_if_fail (cairo_surface_get_type (surface) == CAIRO_SURFACE_TYPE_IMAGE, NULL); g_return_val_if_fail (cairo_image_surface_get_width (surface) > 0, NULL); g_return_val_if_fail (cairo_image_surface_get_height (surface) > 0, NULL); bytes = g_bytes_new_with_free_func (cairo_image_surface_get_data (surface), (gsize) cairo_image_surface_get_height (surface) * (gsize) cairo_image_surface_get_stride (surface), (GDestroyNotify) cairo_surface_destroy, cairo_surface_reference (surface)); texture = gdk_memory_texture_new (cairo_image_surface_get_width (surface), cairo_image_surface_get_height (surface), GDK_MEMORY_B8G8R8A8_PREMULTIPLIED, bytes, cairo_image_surface_get_stride (surface)); return texture; } static guint32 blend_pixel (guchar src, float src_a, float lighten, float darken) { return 255.0 - (src / src_a * (1 - darken)) - ((255 - src / src_a) * (1 - lighten)); } static void transpose_image_data (RenderCtx *ctx, RsvgHandle *source_sprite, double banner_height) { cairo_surface_t *surface = cairo_get_target (ctx->cr); cairo_pattern_t *pattern; cairo_save (ctx->cr); cairo_translate (ctx->cr, 0, banner_height); pattern = create_pattern (source_sprite, ctx); cairo_set_source (ctx->cr, pattern); cairo_pattern_destroy (pattern); cairo_paint (ctx->cr); cairo_restore (ctx->cr); if (ctx->shield->color_darken_set || ctx->shield->color_lighten_set) { guchar *data; data = cairo_image_surface_get_data (surface); int width, height, stride; GdkRGBA color_darken, color_lighten; cairo_surface_flush (surface); stride = cairo_image_surface_get_stride (surface); width = cairo_image_surface_get_width (surface); height = cairo_image_surface_get_height (surface); if (ctx->shield->color_darken_set) color_darken = ctx->shield->color_darken; else color_darken = (GdkRGBA){ 1, 1, 1, 1 }; if (ctx->shield->color_lighten_set) color_lighten = ctx->shield->color_lighten; else color_lighten = (GdkRGBA){ 0, 0, 0, 1 }; for (int x = 0; x < width; x ++) { for (int y = 0; y < height; y ++) { guint32 *pixel = (guint32 *)(data + y * stride + x * 4); float src_a = (*pixel >> 24 & 0xff) / 255.0; if (src_a == 0) continue; *pixel = (*pixel & 0xff000000) | ((blend_pixel (*pixel >> 16 & 0xff, src_a, color_lighten.red, color_darken.red) << 16) & 0xff0000) | ((blend_pixel (*pixel >> 8 & 0xff, src_a, color_lighten.green, color_darken.green) << 8) & 0xff00) | (blend_pixel (*pixel & 0xff, src_a, color_lighten.blue, color_darken.blue) & 0xff); } } cairo_surface_mark_dirty (surface); } } static gboolean is_valid_ref (const char *ref) { int len = ref == NULL ? 0 : strlen (ref); return len > 0 && len <= 6; } /** * maps_shield_draw: * @self: a [class@Shield] * @ref: the highway reference * @name: the highway name * @color: the route color * @scale: the scale factor * * Returns: (transfer full): a [class@Shumate.VectorSprite] */ ShumateVectorSprite * maps_shield_draw (MapsShield *self, const char *ref, const char *name, const char *color, double scale) { RenderCtx ctx; RsvgHandle *source_sprite = NULL; double width = SHIELD_SIZE, height = SHIELD_SIZE; double banner_height; cairo_surface_t *surface; g_autoptr(GdkTexture) texture = NULL; g_return_val_if_fail (MAPS_IS_SHIELD (self), NULL); ctx = (RenderCtx){ .shield = g_object_ref (self), .ref = ref, .name = name, .scale = scale, }; if (self->ref_by_name != NULL && name != NULL) { const char *ref_override = g_hash_table_lookup (self->ref_by_name, name); if (ref_override != NULL) ctx.ref = ref_override; } if (self->override_by_ref != NULL && ctx.ref != NULL) { MapsShield *override = g_hash_table_lookup (self->override_by_ref, ctx.ref); if (override != NULL) g_set_object (&ctx.shield, apply_override (self, override)); } if (self->override_by_name != NULL && ctx.name != NULL) { MapsShield *override = g_hash_table_lookup (self->override_by_name, ctx.name); if (override != NULL) g_set_object (&ctx.shield, apply_override (self, override)); } if (!is_valid_ref (ref)) { if (self->override_noref != NULL) g_set_object (&ctx.shield, apply_override (self, self->override_noref)); else if (!ctx.shield->notext && !(self->override_by_name != NULL && ctx.name != NULL)) return NULL; } if (ctx.shield->notext) ctx.ref = NULL; source_sprite = get_raster_shield_blank (&ctx); if (source_sprite == NULL) { if (ctx.shield->shape_options.shape != SHAPE_UNSET) get_drawn_shield_bounds (&ctx, &width, &height); } else { rsvg_handle_get_intrinsic_size_in_pixels (source_sprite, &width, &height); } banner_height = BANNER_HEIGHT * (self->banners == NULL ? 0 : g_strv_length (self->banners)); height += banner_height; surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, width * scale, height * scale); ctx.cr = cairo_create (surface); cairo_scale (ctx.cr, scale, scale); if (ctx.shield->romanize_ref && is_valid_ref (ctx.ref)) ctx.ref = romanize_ref (ctx.ref); draw_banners (&ctx, width); if (source_sprite == NULL) draw_shield (&ctx, width, height - banner_height, banner_height); else transpose_image_data (&ctx, source_sprite, banner_height); g_clear_object (&source_sprite); if (!ctx.shield->notext && is_valid_ref (ctx.ref)) draw_shield_text (&ctx, width, height - banner_height, banner_height); g_object_unref (ctx.shield); if (ctx.shield->romanize_ref) g_free ((char *)ctx.ref); cairo_destroy (ctx.cr); texture = texture_new_for_surface (surface); cairo_surface_destroy (surface); return shumate_vector_sprite_new_full ( GDK_PAINTABLE (texture), width, height, scale, NULL ); } 0707010000019F000081A400000000000000000000000166413409000004EA000000000000000000000000000000000000002300000000gnome-maps-46.11/lib/maps-shield.h/* * Copyright (C) 2023 James Westman * * 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, see . */ #pragma once #include G_BEGIN_DECLS #define MAPS_TYPE_SHIELD (maps_shield_get_type()) G_DECLARE_FINAL_TYPE (MapsShield, maps_shield, MAPS, SHIELD, GObject) MapsShield *maps_shield_new (JsonNode *node); ShumateVectorSprite *maps_shield_draw (MapsShield *self, const char *ref, const char *name, const char *color, double scale); G_END_DECLS070701000001A0000081A40000000000000000000000016641340900001BDD000000000000000000000000000000000000002A00000000gnome-maps-46.11/lib/maps-sprite-source.c/* * Copyright (C) 2023 James Westman * * 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, see . */ #include #include "maps-sprite-source.h" struct _MapsSpriteSource { GObject parent_instance; char *color_scheme; GtkTextDirection text_direction; GHashTable *shields; GRegex *shield_regex; }; enum { PROP_0, PROP_COLOR_SCHEME, N_PROPERTIES }; static GParamSpec *properties[N_PROPERTIES]; G_DEFINE_TYPE (MapsSpriteSource, maps_sprite_source, G_TYPE_OBJECT) MapsSpriteSource * maps_sprite_source_new (const char *color_scheme) { return g_object_new (MAPS_TYPE_SPRITE_SOURCE, "color-scheme", color_scheme, NULL); } static void maps_sprite_source_finalize (GObject *object) { MapsSpriteSource *self = MAPS_SPRITE_SOURCE (object); g_clear_pointer (&self->color_scheme, g_free); g_clear_pointer (&self->shields, g_hash_table_unref); g_clear_pointer (&self->shield_regex, g_regex_unref); G_OBJECT_CLASS (maps_sprite_source_parent_class)->finalize (object); } static void maps_sprite_source_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { MapsSpriteSource *self = MAPS_SPRITE_SOURCE (object); switch (prop_id) { case PROP_COLOR_SCHEME: g_value_set_string (value, self->color_scheme); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } static void maps_sprite_source_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { MapsSpriteSource *self = MAPS_SPRITE_SOURCE (object); switch (prop_id) { case PROP_COLOR_SCHEME: g_clear_pointer (&self->color_scheme, g_free); self->color_scheme = g_value_dup_string (value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); } } static void maps_sprite_source_class_init (MapsSpriteSourceClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->finalize = maps_sprite_source_finalize; object_class->get_property = maps_sprite_source_get_property; object_class->set_property = maps_sprite_source_set_property; properties[PROP_COLOR_SCHEME] = g_param_spec_string ("color-scheme", "color-scheme", "color-scheme", NULL, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS); g_object_class_install_properties (object_class, N_PROPERTIES, properties); } static void maps_sprite_source_init (MapsSpriteSource *self) { self->shields = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref); self->shield_regex = g_regex_new ("shield\n(.*)\n(.*)=(.*)(?:\n(.*))?", G_REGEX_MULTILINE, 0, NULL); self->text_direction = gtk_widget_get_default_direction (); } static ShumateVectorSprite * fallback_function (ShumateVectorSpriteSheet *sprite_sheet, const char *name, double scale, gpointer user_data) { MapsSpriteSource *self = user_data; GtkIconTheme *icon_theme; g_autoptr(GtkIconPaintable) paintable = NULL; if (strlen (name) == 0) return NULL; if (g_str_has_prefix (name, "shield\n")) { g_auto(GStrv) lines = NULL; char *highway_class = NULL; char *network = NULL; char *ref = NULL; char *shield_name = NULL; char *color = NULL; MapsShield *shield; lines = g_strsplit (name, "\n", -1); if (g_strv_length (lines) < 6) return NULL; highway_class = lines[1]; network = lines[2]; ref = lines[3]; shield_name = lines[4]; color = lines[5]; if (strlen (ref) == 0) ref = NULL; /* filter out recreational routes--see */ if (g_regex_match_simple ("^[lrni][chimpw]n$", network, 0, 0)) return NULL; shield = g_hash_table_lookup (self->shields, network); if (shield == NULL) { g_autofree char *def = g_strdup_printf ("default-%s-%s", highway_class, self->color_scheme); shield = g_hash_table_lookup (self->shields, def); if (shield == NULL) return NULL; } return maps_shield_draw (shield, ref, shield_name, color, scale); } else if (g_str_has_suffix (name, "-symbolic")) { icon_theme = gtk_icon_theme_get_for_display (gdk_display_get_default ()); paintable = gtk_icon_theme_lookup_icon ( icon_theme, name, NULL, 16, scale, self->text_direction, 0 ); if (paintable == NULL) return NULL; return shumate_vector_sprite_new (GDK_PAINTABLE (paintable)); } else return NULL; } /** * maps_sprite_source_set_fallback: * @self: a [class@SpriteSource] * @sprite_sheet: a [class@Shumate.VectorSpriteSheet] * * Sets the sprite sheet's fallback function. */ void maps_sprite_source_set_fallback (MapsSpriteSource *self, ShumateVectorSpriteSheet *sprite_sheet) { g_return_if_fail (MAPS_IS_SPRITE_SOURCE (self)); g_return_if_fail (SHUMATE_IS_VECTOR_SPRITE_SHEET (sprite_sheet)); shumate_vector_sprite_sheet_set_fallback (sprite_sheet, fallback_function, g_object_ref (self), g_object_unref); } /** * maps_sprite_source_load_shield_defs: * @self: a [class@SpriteSource] * @json: a JSON string * * Loads shield definitions from a JSON string. */ void maps_sprite_source_load_shield_defs (MapsSpriteSource *self, const char *json) { g_autoptr(JsonNode) root = NULL; JsonObject *root_obj; JsonObjectIter iter; JsonObject *networks; const char *network_name; JsonNode *network_node; g_return_if_fail (MAPS_IS_SPRITE_SOURCE (self)); root = json_from_string (json, NULL); root_obj = json_node_get_object (root); networks = json_object_get_object_member (root_obj, "networks"); json_object_iter_init (&iter, networks); while (json_object_iter_next (&iter, &network_name, &network_node)) g_hash_table_insert (self->shields, g_strdup (network_name), maps_shield_new (network_node)); } 070701000001A1000081A400000000000000000000000166413409000004E1000000000000000000000000000000000000002A00000000gnome-maps-46.11/lib/maps-sprite-source.h/* * Copyright (C) 2023 James Westman * * 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, see . */ #pragma once #include #include "maps-shield.h" G_BEGIN_DECLS #define MAPS_TYPE_SPRITE_SOURCE (maps_sprite_source_get_type()) G_DECLARE_FINAL_TYPE (MapsSpriteSource, maps_sprite_source, MAPS, SPRITE_SOURCE, GObject) MapsSpriteSource *maps_sprite_source_new (const char *color_scheme); void maps_sprite_source_set_fallback (MapsSpriteSource *self, ShumateVectorSpriteSheet *sprite_sheet); void maps_sprite_source_load_shield_defs (MapsSpriteSource *self, const char *json); G_END_DECLS 070701000001A2000081A40000000000000000000000016641340900000B6D000000000000000000000000000000000000002C00000000gnome-maps-46.11/lib/maps-sync-map-source.c/* * Copyright (c) 2022 Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ #include #include #include #include #include "maps-sync-map-source.h" G_DEFINE_ABSTRACT_TYPE (MapsSyncMapSource, maps_sync_map_source, SHUMATE_TYPE_MAP_SOURCE) static void fill_tile_async (ShumateMapSource *source, ShumateTile *tile, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); static gboolean fill_tile_finish (ShumateMapSource *map_source, GAsyncResult *result, GError **error); static void maps_sync_map_source_class_init (MapsSyncMapSourceClass *klass) { ShumateMapSourceClass *map_source_class = SHUMATE_MAP_SOURCE_CLASS (klass); map_source_class->fill_tile_async = fill_tile_async; map_source_class->fill_tile_finish = fill_tile_finish; klass->fill_tile = NULL; } static void maps_sync_map_source_init (MapsSyncMapSource *map_source) { map_source->priv = maps_sync_map_source_get_instance_private (map_source); } static void fill_tile_async (ShumateMapSource *source, ShumateTile *tile, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data) { g_return_if_fail (MAPS_IS_SYNC_MAP_SOURCE (source)); MapsSyncMapSource *self = MAPS_SYNC_MAP_SOURCE(source); g_autoptr(GTask) task = NULL; // TODO: this gives a null gobject cast runtime error... MAPS_SYNC_MAP_SOURCE_GET_CLASS (self)->fill_tile (self, tile); task = g_task_new (source, cancellable, callback, user_data); g_task_set_source_tag (task, fill_tile_async); g_task_return_boolean (task, TRUE); } static gboolean fill_tile_finish (ShumateMapSource *map_source, GAsyncResult *result, GError **error) { MapsSyncMapSource *self = (MapsSyncMapSource *) map_source; g_return_val_if_fail (MAPS_IS_SYNC_MAP_SOURCE (self), FALSE); g_return_val_if_fail (g_task_is_valid (result, self), FALSE); return g_task_propagate_boolean (G_TASK (result), error); } 070701000001A3000081A40000000000000000000000016641340900000970000000000000000000000000000000000000002C00000000gnome-maps-46.11/lib/maps-sync-map-source.h/* * Copyright (c) 2022 Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ #ifndef _MAPS_SYNC_MAP_SOURCE_H_ #define _MAPS_SYNC_MAP_SOURCE_H_ #include G_BEGIN_DECLS #define MAPS_TYPE_SYNC_MAP_SOURCE maps_sync_map_source_get_type () #define MAPS_SYNC_MAP_SOURCE(obj) \ (G_TYPE_CHECK_INSTANCE_CAST ((obj), MAPS_TYPE_SYNC_MAP_SOURCE, MapsSyncMapSource)) #define MAPS_SYNC_MAP_SOURCE_CLASS(klass) \ (G_TYPE_CHECK_CLASS_CAST ((klass), MAPS_TYPE_SYNC_MAP_SOURCE, MapsSyncMapSourceClass)) #define MAPS_IS_SYNC_MAP_SOURCE(obj) \ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MAPS_TYPE_SYNC_MAP_SOURCE)) #define MAPS_IS_SYNC_MAP_SOURCE_CLASS(klass) \ (G_TYPE_CHECK_CLASS_TYPE ((klass), MAPS_TYPE_SYNC_MAP_SOURCE)) #define MAPS_SYNC_MAP_SOURCE_GET_CLASS(obj) \ (G_TYPE_INSTANCE_GET_CLASS ((obj), MAPS_TYPE_SYNC_MAP_SOURCE, MapsSyncMapSourceClass)) typedef struct _MapsSyncMapSourcePrivate MapsSyncMapSourcePrivate; typedef struct _MapsSyncMapSource MapsSyncMapSource; typedef struct _MapsSyncMapSourceClass MapsSyncMapSourceClass; /** * MapsSyncMapSource: * * Wrapper of ShumateMapSource encapsulating fill_tile_async and * fill_tile_finish into a synchronous file_tile vfunc as work-around for * https://gitlab.gnome.org/GNOME/gjs/-/issues/72 * * The #MapsSyncMapSource structure contains only private data * and should be accessed using the provided API * */ struct _MapsSyncMapSource { ShumateMapSource parent_instance; MapsSyncMapSourcePrivate *priv; }; struct _MapsSyncMapSourceClass { ShumateMapSourceClass parent_class; void (*fill_tile) (MapsSyncMapSource *self, ShumateTile *tile); }; GType maps_sync_map_source_get_type (void); #endif /* _MAPS_SYNC_MAP_SOURCE_H_ */ 070701000001A4000081A400000000000000000000000166413409000000C7000000000000000000000000000000000000002000000000gnome-maps-46.11/lib/mapsintl.h#ifndef _MAPS_INTL_H_ #define _MAPS_INTL_H_ #ifdef ENABLE_NLS #include #define _(String) g_dgettext(GETTEXT_PACKAGE "-properties",String) #else #define _(String) (String) #endif #endif 070701000001A5000081A4000000000000000000000001664134090000052E000000000000000000000000000000000000002100000000gnome-maps-46.11/lib/meson.buildheaders_private = files( 'maps-file-data-source.h', 'maps-osm.h', 'maps-osm-changeset.h', 'maps-osm-node.h', 'maps-osm-object.h', 'maps-osm-way.h', 'maps-osm-relation.h', 'maps-shield.h', 'maps-sprite-source.h', 'maps-sync-map-source.h' ) sources = files( 'maps-file-data-source.c', 'maps-osm.c', 'maps-osm-changeset.c', 'maps-osm-node.c', 'maps-osm-object.c', 'maps-osm-way.c', 'maps-osm-relation.c', 'maps-shield.c', 'maps-sprite-source.c', 'maps-sync-map-source.c' ) cflags = [ '-DG_DISABLE_DEPRECATED', '-DPREFIX="@0@"'.format(prefix), '-DLIBDIR="@0@"'.format(libdir) ] libmaps = shared_library( maps_libname, version: '0.0.0', sources: sources, include_directories: top_inc, dependencies: libmaps_deps, c_args: cflags, install: true, install_dir: pkglibdir ) libmaps_gir_targets = gnome.generate_gir( libmaps, sources: sources + [headers_private], nsversion: maps_gir_version, namespace: maps_gir_name, identifier_prefix: maps_ns, symbol_prefix: maps_ns.to_lower(), includes: [ 'GLib-2.0', 'GObject-2.0', 'Shumate-1.0' ], install: true, install_dir_gir: join_paths(pkgdatadir, 'gir-' + maps_gir_version), install_dir_typelib: join_paths(pkglibdir, 'girepository-' + maps_gir_version) ) libmaps_gir = libmaps_gir_targets[0] libmaps_typelib = libmaps_gir_targets[1] 070701000001A6000081A400000000000000000000000166413409000007EC000000000000000000000000000000000000001D00000000gnome-maps-46.11/meson.buildproject('gnome-maps', 'c', version: '46.11', license: 'GPL-2.0-or-later', meson_version: '>= 0.61.0', ) app_id = 'org.gnome.Maps' if get_option('profile') == 'development' app_id = 'org.gnome.Maps.Devel' endif fs = import('fs') gnome = import('gnome') i18n = import('i18n') prefix = get_option('prefix') name = meson.project_name() version = meson.project_version() bindir = join_paths(prefix, get_option('bindir')) libdir = join_paths(prefix, get_option('libdir')) datadir = join_paths(prefix, get_option('datadir')) pkgdatadir = join_paths(datadir, name) pkglibdir = join_paths(libdir, name) maps_ns = 'Maps' maps_libname = 'gnome-maps' maps_gir_name = 'GnomeMaps' maps_gir_version = '1.0' desktop_file_validate = find_program('desktop-file-validate', required: false) appstreamcli = find_program('appstreamcli', required: false) glib = dependency('glib-2.0', version: '>= 2.66.0') gio = dependency('gio-2.0', version: '>= 2.44.0') gjs = dependency('gjs-1.0', version: '>= 1.69.2') girepository = dependency('gobject-introspection-1.0', version: '>= 0.10.1') gtk4 = dependency('gtk4') geoclue2 = dependency('libgeoclue-2.0', version: '>= 0.12.99') libadwaita = dependency('libadwaita-1', version: '>= 1.4.alpha') gweather = dependency('gweather4', version: '>= 3.90.0') geocodeglib = dependency('geocode-glib-2.0', version: '>= 3.15.2') libportal = dependency('libportal') shumate = dependency('shumate-1.0', version: '>= 1.2.alpha') cc = meson.get_compiler('c') libmaps_deps = [ shumate, dependency('libxml-2.0'), dependency('rest-1.0'), dependency('librsvg-2.0'), dependency('json-glib-1.0'), cc.find_library('m', required: true), ] msgfmt = find_program('msgfmt') po_dir = join_paths(meson.project_source_root(), 'po') top_inc = include_directories('.') cc = meson.get_compiler('c') gjs = find_program('gjs') subdir('po') subdir('src') subdir('lib') subdir('data') subdir('tests') gnome.post_install( glib_compile_schemas: true, gtk_update_icon_cache: true, update_desktop_database: true, ) 070701000001A7000081A40000000000000000000000016641340900000058000000000000000000000000000000000000002300000000gnome-maps-46.11/meson_options.txtoption('profile', type: 'combo', choices: ['default', 'development'], value: 'default') 070701000001A8000081A40000000000000000000000016641340900001432000000000000000000000000000000000000002500000000gnome-maps-46.11/org.gnome.Maps.json{ "id" : "org.gnome.Maps.Devel", "runtime" : "org.gnome.Platform", "runtime-version" : "master", "sdk" : "org.gnome.Sdk", "command" : "gnome-maps", "tags" : [ "devel" ], "finish-args" : [ "--share=ipc", "--socket=x11", "--socket=fallback-x11", "--socket=wayland", "--device=dri", "--share=network", "--metadata=X-DConf=migrate-path=/org/gnome/Maps", "--env=G_ENABLE_DIAGNOSTICS=1", "--env=MAPS_DEBUG=1" ], "cleanup" : [ "/include", "/lib/pkgconfig", "/share/pkgconfig", "/share/aclocal", "/man", "/share/man", "/share/gtk-doc", "/share/vala", "*.la", "*.a" ], "modules" : [ { "name": "libgeoclue", "buildsystem": "meson", "config-opts" : [ "-Denable-backend=false", "-Dlibgeoclue=true", "-Dintrospection=true", "-Dvapi=false", "-Dgtk-doc=false" ], "sources": [ { "type" : "git", "url": "https://gitlab.freedesktop.org/geoclue/geoclue.git" } ] }, { "name" : "geocode-glib", "buildsystem" : "meson", "builddir" : true, "config-opts" : [ "--libdir=/app/lib", "-Denable-gtk-doc=false", "-Dsoup2=false" ], "sources" : [ { "type" : "git", "url" : "https://gitlab.gnome.org/GNOME/geocode-glib.git" } ] }, { "name" : "libgweather", "config-opts" : [ "-Denable_vala=false", "-Dgtk_doc=false", "-Dsoup2=false" ], "buildsystem" : "meson", "sources" : [ { "type" : "git", "url" : "https://gitlab.gnome.org/GNOME/libgweather.git", "branch" : "main" } ] }, { "name" : "librest", "buildsystem": "meson", "config-opts": [ "-Dgtk_doc=false", "-Dexamples=false", "-Dsoup2=false" ], "sources" : [ { "type" : "git", "url" : "https://gitlab.gnome.org/GNOME/librest.git", "branch": "master" } ] }, { "name" : "protobuf", "buildsystem" : "autotools", "config-opts": [ "DIST_LANG=cpp" ], "cleanup" : [ "/bin/protoc*", "/lib/libprotoc*", "/lib/libprotobuf-lite*" ], "sources" : [ { "type" : "archive", "url" : "https://github.com/protocolbuffers/protobuf/releases/download/v3.17.3/protobuf-all-3.17.3.tar.gz", "sha256" : "77ad26d3f65222fd96ccc18b055632b0bfedf295cb748b712a98ba1ac0b704b2" } ] }, { "name" : "protobuf-c", "buildsystem" : "autotools", "sources" : [ { "type" : "archive", "url" : "https://github.com/protobuf-c/protobuf-c/releases/download/v1.4.0/protobuf-c-1.4.0.tar.gz", "sha256" : "26d98ee9bf18a6eba0d3f855ddec31dbe857667d269bc0b6017335572f85bbcb" } ] }, { "name" : "libshumate", "buildsystem": "meson", "config-opts": [ "-Ddemos=false", "-Dgtk_doc=false", "-Dvapi=false", "-Dvector_renderer=true" ], "sources" : [ { "type" : "git", "url" : "https://gitlab.gnome.org/GNOME/libshumate.git", "branch" : "main" } ] }, { "name" : "libportal", "buildsystem" : "meson", "config-opts" : [ "-Ddocs=false", "-Dvapi=false", "-Dbackend-gtk3=disabled", "-Dbackend-gtk4=enabled" ], "sources" : [ { "type" : "git", "url" : "https://github.com/flatpak/libportal.git", "branch" : "main" } ] }, { "name" : "gnome-maps", "buildsystem" : "meson", "builddir" : true, "config-opts": [ "-Dprofile=development" ], "sources" : [ { "type" : "git", "url" : "https://gitlab.gnome.org/GNOME/gnome-maps.git" } ] } ] } 070701000001A9000041ED0000000000000000000000026641340900000000000000000000000000000000000000000000001400000000gnome-maps-46.11/po070701000001AA000081A400000000000000000000000166413409000000ED000000000000000000000000000000000000001C00000000gnome-maps-46.11/po/LINGUASab af an ar as be bg bs ca ca@valencia cs da de el en_GB eo es et eu fa fi fr fur ga gd gl he hi hr hu id is it ja ka kab kk kn ko lt lv mjw ml ms nb ne nl oc pa pl pt pt_BR ru ro sk sl sr sr@latin sv ta te tg tr uk vi zh_CN zh_HK zh_TW 070701000001AB000081A400000000000000000000000166413409000006A0000000000000000000000000000000000000002000000000gnome-maps-46.11/po/POTFILES.in# List of source files containing translatable strings. # Please keep this file sorted alphabetically. data/org.gnome.Maps.appdata.xml.in.in data/org.gnome.Maps.desktop.in.in data/org.gnome.Maps.gschema.xml data/ui/context-menu.ui data/ui/export-view-dialog.ui data/ui/favorite-list-row.ui data/ui/favorites-popover.ui data/ui/headerbar-left.ui data/ui/headerbar-right.ui data/ui/help-overlay.ui data/ui/layers-popover.ui data/ui/main-window.ui data/ui/osm-account-dialog.ui data/ui/osm-edit-address.ui data/ui/osm-edit-dialog.ui data/ui/osm-edit-wikipedia.ui data/ui/place-popover.ui data/ui/route-entry.ui data/ui/send-to-dialog.ui data/ui/shape-layer-file-chooser.ui data/ui/shape-layer-row.ui data/ui/sidebar.ui data/ui/transit-leg-row.ui data/ui/transit-options-panel.ui data/ui/place-bar.ui data/ui/place-buttons.ui data/ui/place-view.ui data/ui/poi-category-goback-row.ui data/ui/zoom-and-rotate-controls.ui lib/maps-file-data-source.c lib/maps-osm.c src/application.js src/exportViewDialog.js src/favoriteListRow.js src/geoclue.js src/geoJSONSource.js src/graphHopper.js src/layersPopover.js src/mainWindow.js src/mapView.js src/osmAccountDialog.js src/osmConnection.js src/osmEditDialog.js src/photonUtils.js src/placeBar.js src/placeEntry.js src/placeListRow.js src/placeView.js src/place.js src/poiCategories.js src/printLayout.js src/printOperation.js src/routeEntry.js src/searchBar.js src/sendToDialog.js src/shapeLayer.js src/sidebar.js src/transit.js src/transitLegRow.js src/transitMoreRow.js src/transitOptionsPanel.js src/transitPlan.js src/translations.js src/utils.js src/transitplugins/goMetro.js src/transitplugins/openTripPlanner.js src/transitplugins/openTripPlanner2.js 070701000001AC000081A400000000000000000000000166413409000099DC000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/ab.pomsgid "" msgstr "" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2022-07-14 10:57+0000\n" "Last-Translator: Нанба Наала \n" "Language-Team: Abkhazian \n" "Language: ab\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" #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.appdata.xml.in.in:6 data/org.gnome.Maps.desktop.in.in:4 #: data/ui/main-window.ui:30 src/application.js:61 src/mainWindow.js:132 #: src/mainWindow.js:558 msgid "Maps" msgstr "" #: data/org.gnome.Maps.appdata.xml.in.in:7 msgid "Find places around the world" msgstr "" #: data/org.gnome.Maps.appdata.xml.in.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" #: data/org.gnome.Maps.appdata.xml.in.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" #: data/org.gnome.Maps.appdata.xml.in.in:279 msgid "The GNOME Project" msgstr "The GNOME Project" #: data/org.gnome.Maps.desktop.in.in:5 msgid "A simple maps application" msgstr "" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in.in:14 msgid "Maps;" msgstr "" #: data/org.gnome.Maps.desktop.in.in:17 msgid "Allows your location to be shown on the map." msgstr "" #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "" #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "" #: data/org.gnome.Maps.gschema.xml:21 msgid "Map type" msgstr "" #: data/org.gnome.Maps.gschema.xml:22 msgid "The type of map to display (street, aerial, etc.)" msgstr "" #: data/org.gnome.Maps.gschema.xml:26 msgid "Window size" msgstr "" #: data/org.gnome.Maps.gschema.xml:27 msgid "Window size (width and height)." msgstr "" #: data/org.gnome.Maps.gschema.xml:31 msgid "Window position" msgstr "" #: data/org.gnome.Maps.gschema.xml:32 msgid "Window position (X and Y)." msgstr "" #: data/org.gnome.Maps.gschema.xml:36 msgid "Window maximized" msgstr "" #: data/org.gnome.Maps.gschema.xml:37 msgid "Window maximization state" msgstr "" #: data/org.gnome.Maps.gschema.xml:41 msgid "Maximum number of search results" msgstr "" #: data/org.gnome.Maps.gschema.xml:42 msgid "Maximum number of search results from geocode search." msgstr "" #: data/org.gnome.Maps.gschema.xml:46 msgid "Number of recent places to store" msgstr "" #: data/org.gnome.Maps.gschema.xml:47 msgid "Number of recently visited places to store." msgstr "" #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent routes to store" msgstr "" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited routes to store." msgstr "" #: data/org.gnome.Maps.gschema.xml:56 msgid "OpenStreetMap username or e-mail address" msgstr "" #: data/org.gnome.Maps.gschema.xml:57 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "" #: data/org.gnome.Maps.gschema.xml:61 msgid "Last used transportation type for routing" msgstr "" #: data/org.gnome.Maps.gschema.xml:65 msgid "Show scale" msgstr "" #: data/org.gnome.Maps.gschema.xml:66 msgid "Whether to show the scale." msgstr "" #: data/ui/context-menu.ui:9 msgid "Route from here" msgstr "" #: data/ui/context-menu.ui:16 msgid "Add intermediate destination" msgstr "" #: data/ui/context-menu.ui:24 msgid "Route to here" msgstr "" #: data/ui/context-menu.ui:36 msgid "What’s here?" msgstr "" #: data/ui/context-menu.ui:43 msgid "Copy Location" msgstr "" #: data/ui/context-menu.ui:51 msgid "Add to OpenStreetMap" msgstr "" #: data/ui/export-view-dialog.ui:14 msgid "Export view" msgstr "" #: data/ui/export-view-dialog.ui:20 data/ui/send-to-dialog.ui:13 #: data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "" #: data/ui/export-view-dialog.ui:34 msgid "_Export" msgstr "" #: data/ui/export-view-dialog.ui:119 msgid "Include route and markers" msgstr "" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:15 msgid "Go to current location" msgstr "" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:33 msgid "Choose map type" msgstr "" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:58 msgid "Zoom out" msgstr "" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:74 msgid "Zoom in" msgstr "" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:14 msgid "Print Route" msgstr "" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:33 msgid "Toggle favorites" msgstr "Иалкаау аҭыԥқәа рҿакра, мамзар рҿыхра" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:52 msgid "Toggle route planner" msgstr "Апланҟаҵага ахырхарта аҿакра, мамзар аҿыхра" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "General" msgstr "" #: data/ui/help-overlay.ui:18 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "" #: data/ui/help-overlay.ui:25 msgctxt "shortcut window" msgid "Search" msgstr "" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Print route" msgstr "" #: data/ui/help-overlay.ui:46 msgctxt "shortcut window" msgid "Quit" msgstr "" #: data/ui/help-overlay.ui:53 msgctxt "shortcut window" msgid "Open main menu" msgstr "" #: data/ui/help-overlay.ui:62 msgctxt "shortcut window" msgid "Map View" msgstr "" #: data/ui/help-overlay.ui:66 msgctxt "shortcut window" msgid "Zoom in" msgstr "" #: data/ui/help-overlay.ui:73 msgctxt "shortcut window" msgid "Zoom out" msgstr "" #: data/ui/help-overlay.ui:80 msgctxt "shortcut window" msgid "Toggle scale" msgstr "" #: data/ui/help-overlay.ui:87 msgctxt "shortcut window" msgid "Go to current location" msgstr "" #: data/ui/help-overlay.ui:97 msgctxt "shortcut window" msgid "Switch to street view" msgstr "" #: data/ui/help-overlay.ui:104 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "" #: data/ui/help-overlay.ui:111 msgctxt "shortcut window" msgid "Open shape layer" msgstr "" #: data/ui/layers-popover.ui:62 msgid "Show Scale" msgstr "" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:97 msgid "Open Shape Layer…" msgstr "" #: data/ui/location-service-dialog.ui:16 msgid "Turn on location services to find your location" msgstr "" #: data/ui/location-service-dialog.ui:28 data/ui/osm-edit-dialog.ui:283 #: data/ui/zoom-in-dialog.ui:28 msgid "Cancel" msgstr "" #: data/ui/location-service-dialog.ui:38 msgid "Location Settings" msgstr "" #: data/ui/main-window.ui:8 msgid "Set up OpenStreetMap Account" msgstr "" #: data/ui/main-window.ui:12 msgid "Export as Image" msgstr "" #: data/ui/main-window.ui:17 msgid "_Keyboard Shortcuts" msgstr "" #: data/ui/main-window.ui:22 msgid "About Maps" msgstr "" #: data/ui/main-window.ui:48 msgid "Open main menu" msgstr "" #: data/ui/osm-account-dialog.ui:9 msgid "OpenStreetMap Account" msgstr "" #: data/ui/osm-account-dialog.ui:23 msgid "Sign in to edit maps" msgstr "" "Шәҭала, ахсаалақәа аредакциа рзуразы" #: data/ui/osm-account-dialog.ui:38 msgid "" "Help to improve the map, using an\n" "OpenStreetMap account." msgstr "" #: data/ui/osm-account-dialog.ui:53 msgid "" "Sign in to authorize access in a web browser.\n" "Then fill in the obtained verification code here in the next step." msgstr "" #: data/ui/osm-account-dialog.ui:86 msgid "Sign up" msgstr "" #: data/ui/osm-account-dialog.ui:100 msgid "Sign In" msgstr "" #: data/ui/osm-account-dialog.ui:139 msgid "Copy verification code shown when authorizing access in the browser" msgstr "" #: data/ui/osm-account-dialog.ui:150 msgid "Verification code" msgstr "" #: data/ui/osm-account-dialog.ui:162 msgid "Verify" msgstr "" #: data/ui/osm-account-dialog.ui:186 msgid "Signed In" msgstr "ахаҭара шьақәыргылоуп" #: data/ui/osm-account-dialog.ui:199 msgid "Your OpenStreetMap account is active." msgstr "" #: data/ui/osm-account-dialog.ui:233 msgid "Sign Out" msgstr "" #: data/ui/osm-edit-address.ui:14 msgid "Street" msgstr "" #: data/ui/osm-edit-address.ui:26 msgid "House number" msgstr "" #: data/ui/osm-edit-address.ui:38 msgid "Postal code" msgstr "" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:50 msgid "City" msgstr "" #: data/ui/osm-edit-dialog.ui:58 msgid "Type" msgstr "" #: data/ui/osm-edit-dialog.ui:84 msgid "None" msgstr "" #: data/ui/osm-edit-dialog.ui:129 msgid "Add Field" msgstr "" #: data/ui/osm-edit-dialog.ui:163 msgid "Comment" msgstr "" #: data/ui/osm-edit-dialog.ui:195 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" #: data/ui/osm-edit-dialog.ui:241 msgid "Recently Used" msgstr "" #: data/ui/osm-edit-dialog.ui:280 msgctxt "dialog title" msgid "Edit on OpenStreetMap" msgstr "" #: data/ui/osm-edit-dialog.ui:310 src/osmEditDialog.js:534 msgid "Next" msgstr "Ԥхьаҟа" #: data/ui/place-popover.ui:55 src/application.js:274 msgid "No results found" msgstr "" #: data/ui/place-popover.ui:67 src/application.js:251 src/osmEditDialog.js:571 msgid "An error has occurred" msgstr "" #. Translators: This is a tooltip #: data/ui/route-entry.ui:20 msgid "Drag to change order of the route" msgstr "" #: data/ui/send-to-dialog.ui:10 msgid "Open Location" msgstr "" #: data/ui/send-to-dialog.ui:72 msgid "Copy" msgstr "" #: data/ui/send-to-dialog.ui:79 msgid "Send To…" msgstr "" #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:64 msgid "Open Shape Layer" msgstr "" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:19 msgid "Toggle visible" msgstr "Иубарҭоу аҿакра ,мамзар аҿыхра" #: data/ui/sidebar.ui:275 msgid "Route search by GraphHopper" msgstr "" #: data/ui/sidebar.ui:364 msgid "" "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of " "transportation,\n" "e.g. a national provider might not include airlines, and a local provider " "could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:129 msgid "Hide intermediate stops and information" msgstr "" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:203 msgid "Show intermediate stops and information" msgstr "" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:18 msgid "Leave Now" msgstr "" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:19 msgid "Leave By" msgstr "" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:20 msgid "Arrive By" msgstr "" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:106 msgid "Show" msgstr "" #: data/ui/transit-options-panel.ui:117 msgid "Buses" msgstr "Автобусқәа" #: data/ui/transit-options-panel.ui:124 msgid "Trams" msgstr "" #: data/ui/transit-options-panel.ui:131 msgid "Trains" msgstr "" #: data/ui/transit-options-panel.ui:138 msgid "Subway" msgstr "" #: data/ui/transit-options-panel.ui:145 msgid "Ferries" msgstr "" #: data/ui/transit-options-panel.ui:152 msgid "Airplanes" msgstr "" #. Translators: This is a tooltip #: data/ui/place-bar.ui:40 data/ui/place-buttons.ui:50 data/ui/place-view.ui:64 msgid "Share location" msgstr "" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:15 msgid "Add to new route" msgstr "" #. Translators: This is the button to find a route to a place #: data/ui/place-buttons.ui:34 msgid "Directions" msgstr "" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:70 msgid "Mark as favorite" msgstr "" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:89 msgid "Edit on OpenStreetMap" msgstr "" #: data/ui/zoom-in-dialog.ui:16 msgid "Zoom in to add location!" msgstr "" #: data/ui/zoom-in-dialog.ui:38 msgid "Zoom In" msgstr "" #: lib/maps-file-tile-source.c:303 lib/maps-file-tile-source.c:379 #: lib/maps-file-tile-source.c:459 msgid "Failed to find tile structure in directory" msgstr "" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "" #: lib/maps-osm.c:250 lib/maps-osm.c:403 msgid "Missing required attributes" msgstr "" #: lib/maps-osm.c:451 lib/maps-osm.c:494 msgid "Could not find OSM element" msgstr "" #: lib/maps-osm.c:508 msgid "Could not find user element" msgstr "" #: src/application.js:74 msgid "A path to a local tiles directory structure" msgstr "" #: src/application.js:80 msgid "Tile size for local tiles directory" msgstr "" #: src/application.js:84 msgid "Show the version of the program" msgstr "" #: src/application.js:90 msgid "Search for places" msgstr "" #: src/application.js:101 src/application.js:102 msgid "[FILE…|URI]" msgstr "[FILE...|URI]" #: src/application.js:282 #, javascript-format msgid "Invalid maps: URI: %s" msgstr "" #: src/contextMenu.js:129 msgid "Nothing found here!" msgstr "" #: src/contextMenu.js:190 msgid "" "Location was added to the map, note that it may take a while before it shows " "on the map and in search results." msgstr "" #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:78 #, javascript-format msgid "Maps at %f, %f.png" msgstr "" #: src/exportViewDialog.js:150 msgid "Filesystem is read only" msgstr "" #: src/exportViewDialog.js:152 msgid "You do not have permission to save there" msgstr "" #: src/exportViewDialog.js:154 msgid "The directory does not exist" msgstr "" #: src/exportViewDialog.js:156 msgid "No filename specified" msgstr "" #: src/exportViewDialog.js:164 msgid "Unable to export view" msgstr "" #: src/geoclue.js:106 msgid "Current Location" msgstr "" #: src/geoJSONSource.js:97 msgid "invalid coordinate" msgstr "" #: src/geoJSONSource.js:142 src/geoJSONSource.js:182 src/geoJSONSource.js:197 msgid "parse error" msgstr "" #: src/geoJSONSource.js:176 msgid "unknown geometry" msgstr "" #: src/graphHopper.js:115 src/transitPlan.js:174 msgid "Route request failed." msgstr "" #: src/graphHopper.js:122 src/transitPlan.js:166 msgid "No route found." msgstr "" #: src/graphHopper.js:209 src/transitplugins/openTripPlanner.js:1118 msgid "Start!" msgstr "" #: src/mainWindow.js:61 msgid "All Layer Files" msgstr "" #: src/mainWindow.js:461 msgid "Failed to connect to location service" msgstr "" #: src/mainWindow.js:556 msgid "translator-credits" msgstr "Нанба Наала , 2022" #: src/mainWindow.js:559 msgid "A map application for GNOME" msgstr "" #: src/mainWindow.js:570 msgid "Copyright © 2011 – 2022 Red Hat, Inc. and The GNOME Maps authors" msgstr "Аԥҵаҩы изин © 2011 – 2022 Red Hat, Inc. GNOME Maps аԥҵаҩцәеи" #: src/mainWindow.js:590 #, javascript-format msgid "Map data by %s and contributors" msgstr "" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:606 #, javascript-format msgid "Map tiles provided by %s" msgstr "" #. Translators: this is an attribution string giving credit to the #. * search provider where the first %s placeholder is replaced by either #. * the bare name of the geocoder provider, or a linkified URL if one #. * is available, and the second %s placeholder is replaced by the #. * URL to the geocoder project page. These placeholders #. * can be swapped, if needed using the %n$s positional syntax #. * (i.e. "%2$s ... %1$s ..." for positioning the project URL #. * before the provider). #. #: src/mainWindow.js:635 #, javascript-format msgid "Search provided by %s using %s" msgstr "" #: src/mapView.js:363 src/mapView.js:421 msgid "Failed to open layer" msgstr "" #: src/mapView.js:384 msgid "Do you want to continue?" msgstr "Иацышәҵар шәҭахума?" #: src/mapView.js:385 #, javascript-format msgid "" "You are about to open files with a total size of %s MB. This could take some " "time to load" msgstr "" #: src/mapView.js:415 msgid "File type is not supported" msgstr "" #: src/mapView.js:453 msgid "Failed to open GeoURI" msgstr "" #: src/osmAccountDialog.js:92 msgid "Failed to authorize access" msgstr "" #: src/osmAccountDialog.js:93 msgid "Try again" msgstr "" #: src/osmAccountDialog.js:153 msgid "The verification code didn’t match, please try again." msgstr "" #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:355 msgid "Incorrect user name or password" msgstr "" #: src/osmConnection.js:357 msgid "Success" msgstr "" #: src/osmConnection.js:359 msgid "Bad request" msgstr "" #: src/osmConnection.js:361 msgid "Object not found" msgstr "" #: src/osmConnection.js:363 msgid "Conflict, someone else has just modified the object" msgstr "" #: src/osmConnection.js:365 msgid "Object has been deleted" msgstr "" #: src/osmConnection.js:367 msgid "Way or relation refers to non-existing children" msgstr "" #: src/osmEditDialog.js:117 msgid "Name" msgstr "" #: src/osmEditDialog.js:120 msgid "The official name. This is typically what appears on signs." msgstr "" #: src/osmEditDialog.js:123 msgid "Address" msgstr "Аҭыӡҭыԥ" #: src/osmEditDialog.js:131 src/placeView.js:262 msgid "Website" msgstr "Веб-асаит" #: src/osmEditDialog.js:135 msgid "This is not a valid URL. Make sure to include http:// or https://." msgstr "" #: src/osmEditDialog.js:136 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" #: src/osmEditDialog.js:141 msgid "Phone" msgstr "" #: src/osmEditDialog.js:145 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" #: src/osmEditDialog.js:150 src/placeView.js:290 msgid "E-mail" msgstr "E-mail" #: src/osmEditDialog.js:155 msgid "" "This is not a valid e-mail address. Make sure to not include the mailto: " "protocol prefix." msgstr "" #: src/osmEditDialog.js:156 msgid "" "Contact e-mail address for inquiries. Add only email addresses that are " "intended to be publicly used." msgstr "" "Адҵааларақәа рзы аҭыӡҭыԥқәа.Зегьы еицырзеиԥшу ахархәаразы иҟоу аҭыӡҭыԥқәа " "заҵәык ацышәҵала." #. Translators: This is the text for the "Wikipedia" link at the end #. of summaries #: src/osmEditDialog.js:160 src/placeView.js:625 msgid "Wikipedia" msgstr "" #: src/osmEditDialog.js:165 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "" #: src/osmEditDialog.js:169 src/placeView.js:327 msgid "Opening hours" msgstr "" #: src/osmEditDialog.js:174 msgid "See the link in the label for help on format." msgstr "" #. TODO: this is a bit of a work-around to re-interpret the population, #. * stored as a string into an integer to convert back to a locale- #. * formatted string. Ideally it should be kept as an integer value #. * in the Place class. But this will also need to be handled by the #. * PlaceStore, possible in a backwards-compatible way #. #: src/osmEditDialog.js:177 src/placeView.js:437 msgid "Population" msgstr "" #: src/osmEditDialog.js:182 src/placeView.js:466 msgid "Altitude" msgstr "Аҳаракыра" #: src/osmEditDialog.js:185 msgid "Elevation (height above sea level) of a point in metres." msgstr "" #: src/osmEditDialog.js:188 msgid "Wheelchair access" msgstr "" #: src/osmEditDialog.js:191 src/osmEditDialog.js:200 src/osmEditDialog.js:211 #: src/osmEditDialog.js:246 msgid "Yes" msgstr "Ааи" #: src/osmEditDialog.js:192 src/osmEditDialog.js:201 src/osmEditDialog.js:212 #: src/osmEditDialog.js:247 msgid "No" msgstr "" #: src/osmEditDialog.js:193 msgid "Limited" msgstr "" #: src/osmEditDialog.js:194 msgid "Designated" msgstr "" #: src/osmEditDialog.js:197 msgid "Internet access" msgstr "" #: src/osmEditDialog.js:202 msgid "Wi-Fi" msgstr "Wi-Fi" #: src/osmEditDialog.js:203 msgid "Wired" msgstr "" #: src/osmEditDialog.js:204 msgid "Terminal" msgstr "" #: src/osmEditDialog.js:205 msgid "Service" msgstr "" #: src/osmEditDialog.js:208 msgid "Takeaway" msgstr "" #: src/osmEditDialog.js:213 msgid "Only" msgstr "" #: src/osmEditDialog.js:216 msgid "Religion" msgstr "" #: src/osmEditDialog.js:219 src/translations.js:286 msgid "Animism" msgstr "Анимизм" #: src/osmEditDialog.js:220 msgid "Bahá’í" msgstr "Бахаи" #: src/osmEditDialog.js:221 src/translations.js:288 msgid "Buddhism" msgstr "" #: src/osmEditDialog.js:222 src/translations.js:289 msgid "Caodaism" msgstr "" #: src/osmEditDialog.js:223 src/translations.js:290 msgid "Christianity" msgstr "" #: src/osmEditDialog.js:224 src/translations.js:291 msgid "Confucianism" msgstr "" #: src/osmEditDialog.js:225 src/translations.js:292 msgid "Hinduism" msgstr "" #: src/osmEditDialog.js:226 src/translations.js:293 msgid "Jainism" msgstr "" #: src/osmEditDialog.js:227 src/translations.js:294 msgid "Judaism" msgstr "" #: src/osmEditDialog.js:228 src/translations.js:295 msgid "Islam" msgstr "" #: src/osmEditDialog.js:229 src/translations.js:296 msgid "Multiple Religions" msgstr "" #: src/osmEditDialog.js:230 src/translations.js:297 msgid "Paganism" msgstr "" #: src/osmEditDialog.js:231 src/translations.js:298 msgid "Pastafarianism" msgstr "" #: src/osmEditDialog.js:232 src/translations.js:299 msgid "Scientology" msgstr "" #: src/osmEditDialog.js:233 src/translations.js:300 msgid "Shinto" msgstr "" #: src/osmEditDialog.js:234 src/translations.js:301 msgid "Sikhism" msgstr "" #: src/osmEditDialog.js:235 src/translations.js:302 msgid "Spiritualism" msgstr "" #: src/osmEditDialog.js:236 src/translations.js:303 msgid "Taoism" msgstr "" #: src/osmEditDialog.js:237 src/translations.js:304 msgid "Unitarian Universalism" msgstr "" #: src/osmEditDialog.js:238 src/translations.js:305 msgid "Voodoo" msgstr "" #: src/osmEditDialog.js:239 src/translations.js:306 msgid "Yazidism" msgstr "" #: src/osmEditDialog.js:240 src/translations.js:307 msgid "Zoroastrianism" msgstr "" #: src/osmEditDialog.js:243 msgid "Toilets" msgstr "" #: src/osmEditDialog.js:250 msgid "Note" msgstr "" #: src/osmEditDialog.js:253 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" #: src/osmEditDialog.js:347 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "" #: src/osmEditDialog.js:401 msgid "Select Type" msgstr "" #: src/osmEditDialog.js:518 msgid "Done" msgstr "" #: src/photonUtils.js:118 msgid "Unnamed place" msgstr "" #: src/placeEntry.js:218 msgid "Failed to parse Geo URI" msgstr "" #: src/placeEntry.js:231 msgid "Failed to parse Maps URI" msgstr "" #: src/placeView.js:250 msgid "Coordinates" msgstr "" #: src/placeView.js:254 msgid "Accuracy" msgstr "" #. Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) #: src/placeView.js:257 #, javascript-format msgid "Accuracy: %s" msgstr "" #. since the phone numbers are typically always rendered #. * left-to-right, insert an explicit LRM char to avoid issues #. * with phone numbers in international format starting with a + #. * which is considered a "weak" character to determine Unicode #. * text direction #. #: src/placeView.js:276 msgid "Phone number" msgstr "" #. Translators: #. * The establishment offers customers to purchase meals #. * (or similar) to be consumed elsewhere #. #: src/placeView.js:303 msgid "Offers takeaway" msgstr "" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed on-premise. #. #: src/placeView.js:311 msgid "Does not offer takeaway" msgstr "" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed elsewhere. E.g. #. * there is no seating on-premise for eating/drinking #. #: src/placeView.js:320 msgid "Only offers takeaway" msgstr "" #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/placeView.js:337 msgid "Public internet access" msgstr "" #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/placeView.js:346 msgid "No internet access" msgstr "" #. Translators: #. * This means a WLAN Hotspot, also known as wireless, wifi or Wi-Fi. #. #: src/placeView.js:354 msgid "Public Wi-Fi" msgstr "" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/placeView.js:362 msgid "Wired internet access" msgstr "" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/placeView.js:370 msgid "Computers available for use" msgstr "" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/placeView.js:378 msgid "Internet assistance available" msgstr "" #: src/placeView.js:384 msgid "No toilets available" msgstr "" #: src/placeView.js:387 msgid "Toilets available" msgstr "" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #: src/placeView.js:396 msgid "Wheelchair accessible" msgstr "" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/placeView.js:406 msgid "Limited wheelchair accessibility" msgstr "" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #: src/placeView.js:415 msgid "Not wheelchair accessible" msgstr "" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/placeView.js:425 msgid "Designated for wheelchair users" msgstr "" #. * #. * Translators: this is a label indicating an altitude below #. * sea level, where the %s placeholder is the altitude relative #. * to mean sea level in the "negative direction" #. #: src/placeView.js:456 #, javascript-format msgid "%s below sea level" msgstr "" #. * #. * Translators: this indicates a place is located at (or very #. * close to) mean sea level #. #: src/placeView.js:463 msgid "At sea level" msgstr "" #: src/placeView.js:472 msgid "Religion:" msgstr "" #: src/place.js:531 msgid "Place not found in OpenStreetMap" msgstr "" #: src/place.js:538 msgid "Coordinates in URL are not valid" msgstr "" #: src/place.js:547 msgid "URL is not supported" msgstr "" #: src/printLayout.js:293 #, javascript-format msgid "From %s to %s" msgstr "" #: src/printOperation.js:50 msgid "Loading map tiles for printing" msgstr "" #: src/printOperation.js:51 msgid "You can abort printing if this takes too long" msgstr "" #: src/printOperation.js:53 msgid "Abort printing" msgstr "" #. Translators: this is add via location tooltip #: src/routeEntry.js:72 msgid "Add via location" msgstr "" #. Translators: this is remove via location tooltip #: src/routeEntry.js:82 msgid "Remove via location" msgstr "" #. Translators: this is reverse route tooltip #: src/routeEntry.js:88 msgid "Reverse route" msgstr "" #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:92 #, javascript-format msgid "Add %s to %s" msgstr "" #: src/sendToDialog.js:190 msgid "Failed to open URI" msgstr "" #: src/sendToDialog.js:260 #, javascript-format msgid "Open with %s" msgstr "" #: src/shapeLayer.js:96 msgid "failed to load file" msgstr "" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:327 #, javascript-format msgid "Estimated time: %s" msgstr "" #: src/sidebar.js:383 #, javascript-format msgid "Itineraries provided by %s" msgstr "" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:39 #, javascript-format msgid "Start at %s" msgstr "" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:45 msgid "Start" msgstr "" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:63 #, javascript-format msgid "Walk %s" msgstr "" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:77 #, javascript-format msgid "Arrive at %s" msgstr "" #: src/transit.js:79 src/transitplugins/openTripPlanner.js:1131 msgid "Arrive" msgstr "" #: src/transitLegRow.js:78 msgid "Show walking instructions" msgstr "" #: src/transitLegRow.js:79 msgid "Hide walking instructions" msgstr "" #: src/transitMoreRow.js:37 msgid "Load earlier alternatives" msgstr "" #: src/transitMoreRow.js:39 msgid "Load later alternatives" msgstr "" #: src/transitMoreRow.js:52 msgid "No earlier alternatives found." msgstr "" #: src/transitMoreRow.js:54 msgid "No later alternatives found." msgstr "" #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:135 msgctxt "month-day-date" msgid "%b %e" msgstr "" #: src/transitPlan.js:170 msgid "No timetable data found for this route." msgstr "" #: src/transitPlan.js:178 msgid "No provider found for this route." msgstr "" #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:295 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:324 #, javascript-format msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "" msgstr[1] "" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:336 #, javascript-format msgid "%s hour" msgid_plural "%s hours" msgstr[0] "" msgstr[1] "" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:344 #, javascript-format msgid "%s:%s hour" msgid_plural "%s:%s hours" msgstr[0] "" msgstr[1] "" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:698 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: src/translations.js:55 msgid "Around the clock" msgstr "" #: src/translations.js:57 msgid "From sunrise to sunset" msgstr "" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:123 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:137 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "" #: src/translations.js:156 msgid "Every day" msgstr "" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:168 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "" #: src/translations.js:179 msgid "Public holidays" msgstr "" #: src/translations.js:181 msgid "School holidays" msgstr "" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:221 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "" #: src/translations.js:235 msgid "not open" msgstr "" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:250 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "" #. Translators: Accuracy of user location information #: src/utils.js:257 msgid "Unknown" msgstr "" #. Translators: Accuracy of user location information #: src/utils.js:260 msgid "Exact" msgstr "" #. Translators: this is a duration with only hours, using #. * an abbreviation for hours, corresponding to 'h' in English #. #: src/utils.js:357 #, javascript-format msgid "%s h" msgstr "%s h" #. Translators: this is a duration with hours and minutes parts #. * using abbreviations for hours and minutes, corresponding to 'h' #. * and 'min' in English. The minutes has appropriate plural variations #. #: src/utils.js:363 #, javascript-format msgid "%s h %s min" msgid_plural "%s h %s min" msgstr[0] "" msgstr[1] "" #. Translators: this is a duration with minutes part #. * using abbreviation for minutes, corresponding to 'min' in English #. * with appropriate plural variations #. #: src/utils.js:370 #, javascript-format msgid "%s min" msgid_plural "%s min" msgstr[0] "" msgstr[1] "" #. Translators: this is a duration of less than one minute #. * with seconds using an abbreviation for seconds, corresponding to #. * 's' in English with appropriate plural forms #. #: src/utils.js:376 #, javascript-format msgid "%s s" msgid_plural "%s s" msgstr[0] "" msgstr[1] "" #. Translators: This is a distance measured in kilometers #: src/utils.js:387 #, javascript-format msgid "%s km" msgstr "" #. Translators: This is a distance measured in meters #: src/utils.js:390 #, javascript-format msgid "%s m" msgstr "" #. Translators: This is a distance measured in miles #: src/utils.js:398 #, javascript-format msgid "%s mi" msgstr "" #. Translators: This is a distance measured in feet #: src/utils.js:401 #, javascript-format msgid "%s ft" msgstr "" #: src/transitplugins/goMetro.js:61 msgid "This plugin doesn't support latest arrival" msgstr "" #: src/transitplugins/openTripPlanner.js:1192 #, javascript-format msgid "Continue on %s" msgstr "" #: src/transitplugins/openTripPlanner.js:1194 msgid "Continue" msgstr "" #: src/transitplugins/openTripPlanner.js:1197 #, javascript-format msgid "Turn left on %s" msgstr "" #: src/transitplugins/openTripPlanner.js:1199 msgid "Turn left" msgstr "" #: src/transitplugins/openTripPlanner.js:1202 #, javascript-format msgid "Turn slightly left on %s" msgstr "" #: src/transitplugins/openTripPlanner.js:1204 msgid "Turn slightly left" msgstr "" #: src/transitplugins/openTripPlanner.js:1207 #, javascript-format msgid "Turn sharp left on %s" msgstr "" #: src/transitplugins/openTripPlanner.js:1209 msgid "Turn sharp left" msgstr "" #: src/transitplugins/openTripPlanner.js:1212 #, javascript-format msgid "Turn right on %s" msgstr "" #: src/transitplugins/openTripPlanner.js:1214 msgid "Turn right" msgstr "" #: src/transitplugins/openTripPlanner.js:1217 #, javascript-format msgid "Turn slightly right on %s" msgstr "" #: src/transitplugins/openTripPlanner.js:1219 msgid "Turn slightly right" msgstr "" #: src/transitplugins/openTripPlanner.js:1222 #, javascript-format msgid "Turn sharp right on %s" msgstr "" #: src/transitplugins/openTripPlanner.js:1224 msgid "Turn sharp right" msgstr "" #: src/transitplugins/openTripPlanner.js:1230 #, javascript-format msgid "At the roundabout, take exit %s" msgstr "" #: src/transitplugins/openTripPlanner.js:1232 #, javascript-format msgid "At the roundabout, take exit to %s" msgstr "" #: src/transitplugins/openTripPlanner.js:1234 msgid "Take the roundabout" msgstr "" #: src/transitplugins/openTripPlanner.js:1238 #, javascript-format msgid "Take the elevator and get off at %s" msgstr "" #: src/transitplugins/openTripPlanner.js:1240 msgid "Take the elevator" msgstr "" #: src/transitplugins/openTripPlanner.js:1244 #, javascript-format msgid "Make a left u-turn onto %s" msgstr "" #: src/transitplugins/openTripPlanner.js:1246 msgid "Make a left u-turn" msgstr "" #: src/transitplugins/openTripPlanner.js:1249 #, javascript-format msgid "Make a right u-turn onto %s" msgstr "" #: src/transitplugins/openTripPlanner.js:1251 msgid "Make a right u-turn" msgstr "" 070701000001AD000081A400000000000000000000000166413409000015B8000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/af.po# Afrikaans translation for gnome-maps. # This file is distributed under the same license as the gnome-maps package. # Copyright (C) # Dawid Loubser , 2013. # F Wolff , 2013. msgid "" msgstr "" "Project-Id-Version: gnome-maps master\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "maps&keywords=I18N+L10N&component=general\n" "POT-Creation-Date: 2013-10-09 20:30+0000\n" "PO-Revision-Date: 2013-10-13 23:29+0200\n" "Last-Translator: F Wolff \n" "Language-Team: translate-discuss-af@lists.sourceforge.net\n" "Language: af\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: Virtaal 0.7.1\n" "X-Project-Style: gnome\n" #: ../data/gnome-maps.appdata.xml.in.h:1 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "Padkaart gee vinnige toegang tot padkaarte van regoor die wêreld. Dit laat " "mens toe om vinnig 'n gewenste plek te vind deur te soek vir 'n stad of 'n " "straat, of om 'n ontmoetingspunt op te spoor." #: ../data/gnome-maps.appdata.xml.in.h:2 #, fuzzy msgid "" "
  • Search for country, region, city or street.
  • Search for specific " "types of locations, such as “Pubs near Main Street, Boston” or “Wi-Fi Access " "near Alexanderplatz, Berlin”.
  • " msgstr "" "
  • Soek vir 'n land, streek, stad of straat.
  • Soek vir spesifieke " "tipe liggings, soos “Restaurante in Melville, Johannesburg” of “Hotelle in " "Mosselbaai”
  • " #: ../data/gnome-maps.appdata.xml.in.h:3 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "Padkaart gebruik die gesamentlike OpenStreetMap-databasis, geskep deur " "honderde duisende mense regoor die wêreld." #. Translators: This is the program name. */ #: ../data/gnome-maps.desktop.in.in.h:1 ../src/application.js:54 #: ../src/mainWindow.js:341 ../src/main-window.ui.h:3 msgid "Maps" msgstr "Padkaart" #: ../data/gnome-maps.desktop.in.in.h:2 msgid "A simple maps application" msgstr "'n Eenvoudige padkaart-toepassing" #: ../data/gnome-maps.desktop.in.in.h:3 msgid "Maps;" msgstr "Maps;Padkaart;Kaart;Ligging;" #: ../data/org.gnome.maps.gschema.xml.in.h:1 msgid "Window size" msgstr "Venstergrootte" #: ../data/org.gnome.maps.gschema.xml.in.h:2 msgid "Window size (width and height)." msgstr "Venstergrootte (wydte en hoogte)." #: ../data/org.gnome.maps.gschema.xml.in.h:3 msgid "Window position" msgstr "Vensterposisie" #: ../data/org.gnome.maps.gschema.xml.in.h:4 msgid "Window position (X and Y)." msgstr "Vensterposisie (X en Y)" #: ../data/org.gnome.maps.gschema.xml.in.h:5 msgid "Window maximized" msgstr "Venster-maksimeringstoestand" #: ../data/org.gnome.maps.gschema.xml.in.h:6 msgid "Window maximization state" msgstr "Toestand van die venster in terme van maksimering" #: ../data/org.gnome.maps.gschema.xml.in.h:7 msgid "Last known location and accuracy" msgstr "Laas bekende ligging en akkuraatheid" #: ../data/org.gnome.maps.gschema.xml.in.h:8 msgid "" "Last known location (latitude and longitude in degrees) and accuracy (in " "meters)." msgstr "" "Laas bekende ligging (breedte- en lengtegraad in grade) en akkuraatheid (in " "meter)." #: ../data/org.gnome.maps.gschema.xml.in.h:9 msgid "Description of last known location" msgstr "Beskrywing van laas bekende ligging" #: ../data/org.gnome.maps.gschema.xml.in.h:10 msgid "Description of last known location of user." msgstr "Beskrywing van laas bekende ligging van gebruiker." #: ../data/org.gnome.maps.gschema.xml.in.h:11 msgid "Maximum number of search results" msgstr "Maksimum aantal soekresultate" #: ../data/org.gnome.maps.gschema.xml.in.h:12 msgid "Maximum number of search results from geocode search." msgstr "Maksimum aantal soekresultate van geokoderingsoektog." #: ../data/org.gnome.maps.gschema.xml.in.h:13 msgid "User set last known location" msgstr "Gebruiker het laas bekende ligging gestel" #: ../data/org.gnome.maps.gschema.xml.in.h:14 msgid "Whether the last known location was set manually by the user." msgstr "Of die gebruiker self die laas bekende ligging gestel het." #: ../src/app-menu.ui.h:1 msgid "About" msgstr "Aangaande" #: ../src/app-menu.ui.h:2 msgid "Quit" msgstr "Sluit af" #: ../src/context-menu.ui.h:1 msgid "What’s here?" msgstr "Wat is hier?" #: ../src/context-menu.ui.h:2 msgid "I’m here!" msgstr "Ek is hier!" #: ../src/mainWindow.js:339 msgid "translator-credits" msgstr "Dawid Loubser" #: ../src/mainWindow.js:342 msgid "A map application for GNOME" msgstr "'n Padkaart-toepassing vir GNOME" #: ../src/main-window.ui.h:1 msgid "Street" msgstr "Straat" #: ../src/main-window.ui.h:2 msgid "Satellite" msgstr "Satelliet" #. Translators: Accuracy of user location information */ #: ../src/mapLocation.js:116 msgid "Unknown" msgstr "Onbekend" #. Translators: Accuracy of user location information */ #: ../src/mapLocation.js:119 msgid "Exact" msgstr "Presies" #: ../src/mapLocation.js:123 msgid " km²" msgstr " km²" #. Translators: Showing name of place where user currently is and #. accuracy of this information (which is translated #. separately) #. */ #: ../src/userLocation.js:62 msgid "" "%s\n" "Position Accuracy: %s" msgstr "" "%s\n" "Ligging-akkuraatheid: %s" 070701000001AE000081A40000000000000000000000016641340900004C6F000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/an.po# Aragonese translation for gnome-maps. # Copyright (C) 2014 gnome-maps's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-maps package. # Jorge Pérez Pérez , 2014 # Daniel Martinez , 2014. # msgid "" msgstr "" "Project-Id-Version: gnome-maps master\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "maps&keywords=I18N+L10N&component=general\n" "POT-Creation-Date: 2015-05-03 19:08+0000\n" "PO-Revision-Date: 2015-05-03 22:30+0200\n" "Last-Translator: Daniel \n" "Language-Team: Aragonés \n" "Language: an\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Pootle 2.5.1.1\n" "X-POOTLE-MTIME: 1430688604.000000\n" #: ../data/org.gnome.Maps.appdata.xml.in.h:1 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "Mapas te ofreix un acceso rapido a mapas de tot o mundo. Te permite trobar " "puestos rapidament mirando por ciudat u por carrera, u mirar un puesto ta " "trobar-te con un amigo." #: ../data/org.gnome.Maps.appdata.xml.in.h:2 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "Os mapas fan servir a base de datos colaborativa OpenStreetMap, feita por " "cients de mils de personas de tot o mundo." #. Translators: Search is carried out on OpenStreetMap data using Nominatim. #. Visit http://wiki.openstreetmap.org/wiki/Nominatim/Special_Phrases and click #. your language to see what words you can use for the translated search. #: ../data/org.gnome.Maps.appdata.xml.in.h:6 #| msgid "" #| "
  • Search for country, region, city or street.
  • Search for " #| "specific types of locations, such as “Pubs near Main Street, Boston” or " #| "“Wi-Fi Access near Alexanderplatz, Berlin”.
  • " msgid "" "You can even search for specific types of locations, such as “Pubs near Main " "Street, Boston” or “Hotels near Alexanderplatz, Berlin”." msgstr "" "Tamién puede buscar por tipos d'ubicacions especificos como “Tabiernas amán " "d'o Paseyo d'a Independencia, Zaragoza”u “Hotels amán d'a Plaza d'o Torico, " "Teruel”." #. Translators: This is the program name. */ #: ../data/org.gnome.Maps.desktop.in.h:1 ../data/ui/main-window.ui.h:1 #: ../src/application.js:77 ../src/mainWindow.js:366 msgid "Maps" msgstr "Mapas" #: ../data/org.gnome.Maps.desktop.in.h:2 msgid "A simple maps application" msgstr "Una aplicación simpla de mapas" #: ../data/org.gnome.Maps.desktop.in.h:3 msgid "Maps;" msgstr "Mapas;" #: ../data/org.gnome.Maps.gschema.xml.h:1 msgid "Window size" msgstr "Grandaria d'a finestra" #: ../data/org.gnome.Maps.gschema.xml.h:2 msgid "Window size (width and height)." msgstr "Grandaria d'a finestra (amplaria y altura )" #: ../data/org.gnome.Maps.gschema.xml.h:3 msgid "Window position" msgstr "Posición d'a finestra" #: ../data/org.gnome.Maps.gschema.xml.h:4 msgid "Window position (X and Y)." msgstr "Posición d'a finestra (X y Y)." #: ../data/org.gnome.Maps.gschema.xml.h:5 msgid "Window maximized" msgstr "Finestra maximizada" #: ../data/org.gnome.Maps.gschema.xml.h:6 msgid "Window maximization state" msgstr "Estau de maximización d'a finestra" #: ../data/org.gnome.Maps.gschema.xml.h:7 msgid "Maximum number of search results" msgstr "Numero maximo de resultaus de busca" #: ../data/org.gnome.Maps.gschema.xml.h:8 msgid "Maximum number of search results from geocode search." msgstr "Numero maximo de resultaus de búsca ta buscas por cheocodigo." #: ../data/org.gnome.Maps.gschema.xml.h:9 msgid "Number of recent places to store" msgstr "Numero de puestos recients que almagazenar" #: ../data/org.gnome.Maps.gschema.xml.h:10 msgid "Number of recently visited places to store." msgstr "Numero de puestos visitaus recientment que almagazenar" #: ../data/org.gnome.Maps.gschema.xml.h:11 msgid "Facebook check-in privacy setting" msgstr "Configuración de privacidat d'o rechistro de Facebook" #: ../data/org.gnome.Maps.gschema.xml.h:12 msgid "" "Latest used Facebook check-in privacy setting. Possible values are: " "EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS or SELF." msgstr "" "Zaguera configuración de privacidat de rechistro de Facebook usada. As " "valors posibles son: EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS or SELF." #: ../data/org.gnome.Maps.gschema.xml.h:13 msgid "Foursquare check-in privacy setting" msgstr "Configuración de privacidat d'o rechistro de Foursquare" #: ../data/org.gnome.Maps.gschema.xml.h:14 msgid "" "Latest used Foursquare check-in privacy setting. Possible values are: " "public, followers or private." msgstr "" "Zaguera configuración de privacidat de rechistro de Foursquare usada. As " "valors posibles son: EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS or SELF." #: ../data/org.gnome.Maps.gschema.xml.h:15 msgid "Foursquare check-in Facebook broadcasting" msgstr "Difusión en Facebook d'o rechistro en Foursquare" #: ../data/org.gnome.Maps.gschema.xml.h:16 msgid "" "Indicates if Foursquare should broadcast the check-in as a post in the " "Facebook account associated with the Foursquare account." msgstr "" "Indica si Foursquare debe difundir o rechistro como un mensache nuevo en a " "cuenta de Facebook asociada a la cuenta de Foursquare." #: ../data/org.gnome.Maps.gschema.xml.h:17 msgid "Foursquare check-in Twitter broadcasting" msgstr "Difusión en Twitter d'o rechistro en Foursquare" #: ../data/org.gnome.Maps.gschema.xml.h:18 msgid "" "Indicates if Foursquare should broadcast the check-in as a tweet in the " "Twitter account associated with the Foursquare account." msgstr "" "Indica si Foursquare debe difundir o rechistro como un mensache nuevo en a " "cuenta de Twitter asociada a la cuenta de Foursquare." #: ../data/ui/app-menu.ui.h:1 msgid "About" msgstr "Arredol de" #: ../data/ui/app-menu.ui.h:2 msgid "Quit" msgstr "Salir" #: ../data/ui/check-in-dialog.ui.h:1 msgid "Visibility" msgstr "Visibilidat" #: ../data/ui/check-in-dialog.ui.h:2 msgid "Post on Facebook" msgstr "Publicar en Facebook" #: ../data/ui/check-in-dialog.ui.h:3 msgid "Post on Twitter" msgstr "Publicar en Twitter" #: ../data/ui/check-in-dialog.ui.h:4 ../data/ui/send-to-dialog.ui.h:2 msgid "_Cancel" msgstr "_Cancelar" #. Translators: Check in is used as a verb #: ../data/ui/check-in-dialog.ui.h:5 ../data/ui/map-bubble.ui.h:5 msgid "C_heck in" msgstr "_Rechistrar" #: ../data/ui/check-in-dialog.ui.h:6 msgid "Everyone" msgstr "Totz" #: ../data/ui/check-in-dialog.ui.h:7 msgid "Friends of friends" msgstr "Amigos d'amigos" #: ../data/ui/check-in-dialog.ui.h:8 msgid "Just friends" msgstr "Solament amigos" #: ../data/ui/check-in-dialog.ui.h:9 msgid "Just me" msgstr "Solament yo" #: ../data/ui/check-in-dialog.ui.h:10 msgid "Public" msgstr "Público" #: ../data/ui/check-in-dialog.ui.h:11 msgid "Followers" msgstr "Seguidores" #: ../data/ui/check-in-dialog.ui.h:12 msgid "Private" msgstr "Privau" #: ../data/ui/context-menu.ui.h:1 msgid "What’s here?" msgstr "Qué bi ha aquí?" #: ../data/ui/location-service-notification.ui.h:1 msgid "Turn on location services to find your location" msgstr "Activar os servicios d'ubicación ta trobar a suya posición" #: ../data/ui/location-service-notification.ui.h:2 msgid "Location Settings" msgstr "Configuración d'a ubicación" #: ../data/ui/main-window.ui.h:2 msgid "Go to current location" msgstr "Ir a la ubicación actual" #: ../data/ui/main-window.ui.h:3 msgid "Choose map type" msgstr "Trigar o tipo de mapa" #: ../data/ui/main-window.ui.h:4 msgid "Toggle route planner" msgstr "Commutar o planificador de rotas" #: ../data/ui/main-window.ui.h:5 msgid "Toggle favorites" msgstr "Commutar favoritos" #: ../data/ui/main-window.ui.h:6 msgid "Maps is offline!" msgstr "Mapas ye desconnectau" #: ../data/ui/main-window.ui.h:7 msgid "" "Maps need an active internet connection to function properly, but one can't " "be found." msgstr "" "Mapas ameneste una connexión a Internet activa ta funcionar correctament, " "pero no s'ha trobau garra." #: ../data/ui/main-window.ui.h:8 msgid "Check your connection and proxy settings." msgstr "Comprebe a configuración d'a suya connexión y d'o suyo proxy." #: ../data/ui/map-bubble.ui.h:1 msgid "Add to new route" msgstr "Adhibir a la rota nueva" #: ../data/ui/map-bubble.ui.h:2 msgid "Open with another application" msgstr "Ubrir con unatra aplicación" #: ../data/ui/map-bubble.ui.h:3 msgid "Mark as favorite" msgstr "Marcar como favorita" #: ../data/ui/map-bubble.ui.h:6 msgid "Check in here" msgstr "Rechistrar-se aquí" #: ../data/ui/search-popup.ui.h:1 msgid "Press enter to search" msgstr "Prete Intro ta buscar" #: ../data/ui/send-to-dialog.ui.h:1 msgid "Open location" msgstr "Ubrir ubicación" #: ../data/ui/send-to-dialog.ui.h:3 msgid "_Open" msgstr "_Ubrir" #: ../data/ui/sidebar.ui.h:1 msgid "Route search by GraphHopper" msgstr "Rota buscada por GraphHopper" #: ../data/ui/social-place-more-results-row.ui.h:1 msgid "Show more results" msgstr "Amostrar más resultaus" #: ../data/ui/user-location-bubble.ui.h:1 ../src/geoclue.js:207 msgid "Current location" msgstr "Ubicación actual" #. To translators: %s can be "Unknown", "Exact" or "%f km²" #: ../data/ui/user-location-bubble.ui.h:4 #, no-c-format #| msgid "" #| "%s\n" #| "Position Accuracy: %s" msgid "Accuracy: %s" msgstr "Precisión: %s" #. Translators: %s is the place name that user wanted to check-in */ #: ../src/checkIn.js:135 #, javascript-format msgid "Cannot find \"%s\" in the social service" msgstr "No se puede trobar \"%s\" en o ret social" #: ../src/checkIn.js:137 msgid "Cannot find a suitable place to check-in in this location" msgstr "" "No se puede trobar un puesto adequau ta rechistrar-se en ista ubicación" #: ../src/checkIn.js:141 msgid "" "Credentials have expired, please open Online Accounts to sign in and enable " "this account" msgstr "" "As credencials han caducau. Ubra as Cuentas en linia ta encetar sesión y " "activar ista cuenta." #: ../src/checkIn.js:153 ../src/checkInDialog.js:289 msgid "An error has occurred" msgstr "Ha ocurriu una error" #: ../src/checkInDialog.js:176 msgid "Select an account" msgstr "Seleccionar una cuenta" #: ../src/checkInDialog.js:181 ../src/checkInDialog.js:253 msgid "Loading" msgstr "Cargando" #: ../src/checkInDialog.js:205 msgid "Select a place" msgstr "Seleccionar un puesto" #: ../src/checkInDialog.js:210 msgid "" "Maps cannot find the place to check in to with Facebook. Please select one " "from this list." msgstr "" "Mapas no puede trobar o puesto con o qual rechistrar-se en Facebook. Trigue " "un d'a lista." #: ../src/checkInDialog.js:212 msgid "" "Maps cannot find the place to check in to with Foursquare. Please select one " "from this list." msgstr "" "Mapas no puede trobar o puesto con o qual rechistrar-se en Foursquare. " "Trigue un d'a lista." #. Translators: %s is the name of the place to check in. #. */ #: ../src/checkInDialog.js:227 #, javascript-format msgid "Check in to %s" msgstr "Rechistrar-se en %s" #. Translators: %s is the name of the place to check in. #. */ #: ../src/checkInDialog.js:237 #, javascript-format msgid "Write an optional message to check in to %s." msgstr "Escribir un mensache opcional ta rechistrar-se en %s." #: ../src/mainWindow.js:314 msgid "Failed to connect to location service" msgstr "Falló en connectar a o servicio d'ubicación" #: ../src/mainWindow.js:319 msgid "Position not found" msgstr "Posición no trobada" #: ../src/mainWindow.js:364 msgid "translator-credits" msgstr "" "Jorge Pérez Pérez , 2014\n" "Daniel Martínez Cucalón " #: ../src/mainWindow.js:367 msgid "A map application for GNOME" msgstr "Una aplicación de mapas ta GNOME" #. Translators: #. * This means wheelchairs have full unrestricted access. #. */ #: ../src/place.js:120 msgid "yes" msgstr "sí" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. */ #: ../src/place.js:127 msgid "limited" msgstr "limitau" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. */ #: ../src/place.js:133 msgid "no" msgstr "no" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. */ #: ../src/place.js:140 msgid "designated" msgstr "designau" #: ../src/routeService.js:69 msgid "No route found." msgstr "No s'ha trobau a rota." #: ../src/routeService.js:76 msgid "Route request failed." msgstr "Falló en solicitar a rota." #: ../src/routeService.js:147 msgid "Start!" msgstr "Empecipiar" #: ../src/placeBubble.js:101 #, javascript-format msgid "Postal code: %s" msgstr "Codigo postal: %s" #: ../src/placeBubble.js:103 #, javascript-format msgid "Country code: %s" msgstr "Codigo d'o país: %s" #: ../src/placeBubble.js:112 #, javascript-format msgid "Population: %s" msgstr "Población: %s" #: ../src/placeBubble.js:115 #, javascript-format msgid "Opening hours: %s" msgstr "Horario d'obridura: %s" #: ../src/placeBubble.js:120 msgid "Wikipedia" msgstr "Wikipedia" #: ../src/placeBubble.js:125 #, javascript-format msgid "Wheelchair access: %s" msgstr "Acceso ta siellas de ruedas: %s" #. Translators: %s is a time expression with the format "%f h" or "%f min" */ #: ../src/sidebar.js:197 #, javascript-format msgid "Estimated time: %s" msgstr "Tiempo estimau: %s" #: ../src/translations.js:55 ../src/translations.js:57 msgid "around the clock" msgstr "tot o día" #: ../src/translations.js:59 msgid "from sunrise to sunset" msgstr "dende l'amaneixer dica a mesa d'o sol" #. Translators: #. * This is a format string with two separate time ranges #. * such as "Mo-Fr 10:00-19:00 Sa 12:00-16:00" #. * The space between the format place holders could be #. * substituted with the appropriate separator. #. */ #: ../src/translations.js:78 #, javascript-format msgctxt "time range list" msgid "%s %s" msgstr "%s %s" #. Translators: #. * This is a format string with three separate time ranges #. * such as "Mo-Fr 10:00-19:00 Sa 10:00-17:00 Su 12:00-16:00" #. * The space between the format place holders could be #. * substituted with the appropriate separator. #. */ #: ../src/translations.js:90 #, javascript-format msgctxt "time range list" msgid "%s %s %s" msgstr "%s %s %s" #. Translators: #. * This is a format string consisting of a part specifying the days for #. * which the specified time is applied and the time interval #. * specification as the second argument. #. * The space between the format place holders could be substituted with #. * the appropriate separator or phrase and the ordering of the arguments #. * can be rearranged with the %n#s syntax. */ #: ../src/translations.js:121 #, javascript-format msgctxt "time range component" msgid "%s %s" msgstr "%s %s" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. */ #: ../src/translations.js:153 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s,%s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. */ #: ../src/translations.js:167 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s,%s,%s" #: ../src/translations.js:186 msgid "every day" msgstr "cada día" #. Translators: #. * This represents a range of days with a starting and ending day. #. */ #: ../src/translations.js:198 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s-%s" #: ../src/translations.js:209 msgid "public holidays" msgstr "festivos" #: ../src/translations.js:211 msgid "school holidays" msgstr "vacancias escolars" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. */ #: ../src/translations.js:251 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: ../src/translations.js:265 msgid "not open" msgstr "zarrau" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. */ #: ../src/translations.js:280 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s-%s" #. Translators: Accuracy of user location information */ #: ../src/utils.js:256 msgid "Unknown" msgstr "Desconoixiu" #. Translators: Accuracy of user location information */ #: ../src/utils.js:259 msgid "Exact" msgstr "Exacta" #: ../src/utils.js:354 #, javascript-format msgid "%f h" msgstr "%f h" #: ../src/utils.js:356 #, javascript-format msgid "%f min" msgstr "%f min" #: ../src/utils.js:358 #, javascript-format msgid "%f s" msgstr "%f s" #. Translators: This is a distance measured in kilometers */ #: ../src/utils.js:369 #, javascript-format msgid "%f km" msgstr "%f km" #. Translators: This is a distance measured in meters */ #: ../src/utils.js:372 #, javascript-format msgid "%f m" msgstr "%f m" #. Translators: This is a distance measured in miles */ #: ../src/utils.js:380 #, javascript-format msgid "%f mi" msgstr "%f mi" #. Translators: This is a distance measured in feet */ #: ../src/utils.js:383 #, javascript-format msgid "%f ft" msgstr "%f pietz" #~ msgid "Last known location and accuracy" #~ msgstr "Zaguera ubicación conoixida y precisión" #~ msgid "" #~ "Last known location (latitude and longitude in degrees) and accuracy (in " #~ "meters)." #~ msgstr "" #~ "Zaguera ubicación conoixida (latitut y longaria en graus) y precisión (en " #~ "metros)." #~ msgid "Description of last known location" #~ msgstr "Descripción d'a zaguera ubicación conoixida" #~ msgid "Description of last known location of user." #~ msgstr "Descripción d'a zaguera ubicación conoixida de l'usuario." #~ msgid "User set last known location" #~ msgstr "Zaguera ubicación conoixida establida por l'usuario" #~ msgid "Whether the last known location was set manually by the user." #~ msgstr "" #~ "Indica si a zaguera ubicación conoixida la establió l'usuario manualment." #~ msgid "I’m here!" #~ msgstr "Soi aquí!" #~ msgid "Street" #~ msgstr "Carrera" #~ msgid "Satellite" #~ msgstr "Satelite" #~ msgid " km2" #~ msgstr " km2" #~ msgid " km²" #~ msgstr " km²" 070701000001AF000081A4000000000000000000000001664134090000B93C000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/ar.po# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # Khaled Hosny , 2013, 2014, 2017. # Safa Alfulaij , 2016, ٢٠١٦. # Ibrahim Saed , 2016. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-09-29 17:50+0200\n" "PO-Revision-Date: 2017-09-29 16:01+0200\n" "Last-Translator: Khaled Hosny \n" "Language-Team: Arabic \n" "Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " "&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n" "X-Generator: Virtaal 1.0.0-beta1\n" #: ../data/org.gnome.Maps.appdata.xml.in.h:1 msgid "GNOME Maps" msgstr "خرائط جنوم" #: ../data/org.gnome.Maps.appdata.xml.in.h:2 msgid "Find places around the world" msgstr "جِد الأماكن حول العالم" #: ../data/org.gnome.Maps.appdata.xml.in.h:3 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "يمكّنك تطبيق الخرائط من مطالعة خرائط العالم أجمع، فهو يمكّنك من العثور على ما " "تريد بالبحث عن مدينة أو اسم شارع أو مكان ستجمتع فيه مع صديقك." #: ../data/org.gnome.Maps.appdata.xml.in.h:4 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "يستخدم تطبيق الخراط قاعدة بيانات «خريطة الشارع المفتوحة» التعاونية، والتي " "شارك فيها آلاف الأشخاص حول العالم." #. Translators: Search is carried out on OpenStreetMap data using Nominatim. #. Visit http://wiki.openstreetmap.org/wiki/Nominatim/Special_Phrases and click #. your language to see what words you can use for the translated search. #: ../data/org.gnome.Maps.appdata.xml.in.h:8 msgid "" "You can even search for specific types of locations, such as “Pubs near Main " "Street, Boston” or “Hotels near Alexanderplatz, Berlin”." msgstr "" "يمكن أيضا البحث عن أماكن محدّدة النوع، مثل ”Pubs near Main Street, Boston\" " "أو \"Hotels near Alexanderplatz, Berlin“." #. Translators: This is the program name. #: ../data/org.gnome.Maps.desktop.in.h:1 ../data/ui/main-window.ui.h:1 #: ../src/application.js:87 ../src/mainWindow.js:489 msgid "Maps" msgstr "الخرائط" #: ../data/org.gnome.Maps.desktop.in.h:2 msgid "A simple maps application" msgstr "تطبيق خرائط بسيط" #: ../data/org.gnome.Maps.desktop.in.h:3 msgid "Maps;" msgstr "خرائط;" #: ../data/org.gnome.Maps.desktop.in.h:4 msgid "Allows your location to be shown on the map." msgstr "يسمح بإظهار مكانك على الخريطة." #: ../data/org.gnome.Maps.gschema.xml.h:1 msgid "last viewed location" msgstr "آخر مكان معروض" #: ../data/org.gnome.Maps.gschema.xml.h:2 msgid "Coordinates of last viewed location." msgstr "إحداثيات آخر مكان عُرض." #: ../data/org.gnome.Maps.gschema.xml.h:3 msgid "Window size" msgstr "حجم النافذة" #: ../data/org.gnome.Maps.gschema.xml.h:4 msgid "Window size (width and height)." msgstr "حجم النافذة (العرض والارتفاع)." #: ../data/org.gnome.Maps.gschema.xml.h:5 msgid "Window position" msgstr "موضع النافذة" #: ../data/org.gnome.Maps.gschema.xml.h:6 msgid "Window position (X and Y)." msgstr "موضع النافذة (س و ص)." #: ../data/org.gnome.Maps.gschema.xml.h:7 msgid "Window maximized" msgstr "النافذة مُكبّرة" #: ../data/org.gnome.Maps.gschema.xml.h:8 msgid "Window maximization state" msgstr "حالة تكبير النافذة" #: ../data/org.gnome.Maps.gschema.xml.h:9 msgid "Maximum number of search results" msgstr "أقصى عدد لنتائج البحث" #: ../data/org.gnome.Maps.gschema.xml.h:10 msgid "Maximum number of search results from geocode search." msgstr "أقصى عدد لنتائج البحث من بحث الرمز الجغرافي." #: ../data/org.gnome.Maps.gschema.xml.h:11 msgid "Number of recent places to store" msgstr "عدد أحدث الأماكن لتخزينها" #: ../data/org.gnome.Maps.gschema.xml.h:12 msgid "Number of recently visited places to store." msgstr "عدد الأماكن التي زيرت حديثا لتخزينها." #: ../data/org.gnome.Maps.gschema.xml.h:13 msgid "Number of recent routes to store" msgstr "عدد أحدث المسارات لتخزينها" #: ../data/org.gnome.Maps.gschema.xml.h:14 msgid "Number of recently visited routes to store." msgstr "عدد المسارات التي زيرت حديثا لتخزينها." #: ../data/org.gnome.Maps.gschema.xml.h:15 msgid "Facebook check-in privacy setting" msgstr "إعداد خصوصية الدخول إلى «فيسبوك»" #: ../data/org.gnome.Maps.gschema.xml.h:16 msgid "" "Latest used Facebook check-in privacy setting. Possible values are: " "EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS or SELF." msgstr "" "آخر إعداد خصوصية الدخول ل‍«فيسبوك» قد استُخدم. القيم الممكنة هي: EVERYONE أو " "FRIENDS_OF_FRIENDS أو ALL_FRIENDS أو SELF." #: ../data/org.gnome.Maps.gschema.xml.h:17 msgid "Foursquare check-in privacy setting" msgstr "إعداد «فورسكوير» لخصوصية الدخول" #: ../data/org.gnome.Maps.gschema.xml.h:18 msgid "" "Latest used Foursquare check-in privacy setting. Possible values are: " "public, followers or private." msgstr "" "آخر إعداد خصوصية الدخول ل‍«فورسكوير» قد استُخدم. القيم الممكنة هي: public أو " "followers أو private." #: ../data/org.gnome.Maps.gschema.xml.h:19 msgid "Foursquare check-in Facebook broadcasting" msgstr "نشر «فورسكوير» للدخول على «فيسبوك»" #: ../data/org.gnome.Maps.gschema.xml.h:20 msgid "" "Indicates if Foursquare should broadcast the check-in as a post in the " "Facebook account associated with the Foursquare account." msgstr "" "يشير إذا كان على «فورسكوير» نشر الدخول كمنشور في حساب فيسبوك المرتبط مع حساب " "«فورسكوير»." #: ../data/org.gnome.Maps.gschema.xml.h:21 msgid "Foursquare check-in Twitter broadcasting" msgstr "نشر «فورسكوير» للدخول على «فيسبوك»" #: ../data/org.gnome.Maps.gschema.xml.h:22 msgid "" "Indicates if Foursquare should broadcast the check-in as a tweet in the " "Twitter account associated with the Foursquare account." msgstr "" "يشير إذا كان على «فورسكوير» نشر الدخول كتغريدة في حساب «فيسبوك» المرتبط مع " "حساب «فورسكوير»." #: ../data/org.gnome.Maps.gschema.xml.h:23 msgid "OpenStreetMap username or e-mail address" msgstr "اسم مستخدم أو عنوان البريد الإلكترونيّ في «خريطة الشارع المفتوحة»" #: ../data/org.gnome.Maps.gschema.xml.h:24 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "يشير في حال كان المستخدم قد ولج لتحرير بيانات «خريطة الشارع المفتوحة»." #: ../data/org.gnome.Maps.gschema.xml.h:25 msgid "Last used transportation type for routing" msgstr "" #: ../data/ui/app-menu.ui.h:1 msgid "Set up OpenStreetMap Account" msgstr "أعدّ حساب «خريطة الشارع المفتوحة»" #: ../data/ui/app-menu.ui.h:2 msgid "_Keyboard Shortcuts" msgstr "اختصارات لو_حة المفاتيح" #: ../data/ui/app-menu.ui.h:3 msgid "About" msgstr "عنْ" #: ../data/ui/app-menu.ui.h:4 msgid "Quit" msgstr "أنهِ" #: ../data/ui/check-in-dialog.ui.h:1 msgid "Visibility" msgstr "الظهور" #: ../data/ui/check-in-dialog.ui.h:2 msgid "Post on Facebook" msgstr "انشر على «فيسبوك»" #: ../data/ui/check-in-dialog.ui.h:3 msgid "Post on Twitter" msgstr "انشر على «فيسبوك»" #: ../data/ui/check-in-dialog.ui.h:4 ../data/ui/export-view-dialog.ui.h:2 #: ../data/ui/send-to-dialog.ui.h:2 ../data/ui/shape-layer-file-chooser.ui.h:3 msgid "_Cancel" msgstr "أل_غِ" #. Translators: Check in is used as a verb #: ../data/ui/check-in-dialog.ui.h:5 ../data/ui/map-bubble.ui.h:8 msgid "C_heck in" msgstr "اد_خل" #: ../data/ui/check-in-dialog.ui.h:6 msgid "Everyone" msgstr "للجميع" #: ../data/ui/check-in-dialog.ui.h:7 msgid "Friends of friends" msgstr "لأصدقاء أصدقائي" #: ../data/ui/check-in-dialog.ui.h:8 msgid "Just friends" msgstr "لأصدقائي فقط" #: ../data/ui/check-in-dialog.ui.h:9 msgid "Just me" msgstr "لي فقط" #: ../data/ui/check-in-dialog.ui.h:10 msgid "Public" msgstr "للعامة" #: ../data/ui/check-in-dialog.ui.h:11 msgid "Followers" msgstr "للمتابعين" #: ../data/ui/check-in-dialog.ui.h:12 msgid "Private" msgstr "خاص" #: ../data/ui/context-menu.ui.h:1 msgid "What’s here?" msgstr "ماذا يوجد هنا؟" #: ../data/ui/context-menu.ui.h:2 msgid "Copy Location" msgstr "انسخ المكان" #: ../data/ui/context-menu.ui.h:3 msgid "Export As Image" msgstr "صدّر كصورة" #: ../data/ui/context-menu.ui.h:4 msgid "Add to OpenStreetMap" msgstr "أضف إلى «خريطة الشارع المفتوحة»" #: ../data/ui/export-view-dialog.ui.h:1 msgid "Export view" msgstr "صدّر العرض" #: ../data/ui/export-view-dialog.ui.h:3 msgid "_Export" msgstr "_صدّر" #: ../data/ui/export-view-dialog.ui.h:4 msgid "Include route and markers" msgstr "ضمّن المسارات والعلامات" #: ../data/ui/help-overlay.ui.h:1 msgctxt "shortcut window" msgid "General" msgstr "عام" #: ../data/ui/help-overlay.ui.h:2 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "اعرض الاختصارات" #: ../data/ui/help-overlay.ui.h:3 msgctxt "shortcut window" msgid "Search" msgstr "ابحث" #: ../data/ui/help-overlay.ui.h:4 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "اعرض/أخفِ مخطّط المسارات" #: ../data/ui/help-overlay.ui.h:5 msgctxt "shortcut window" msgid "Print route" msgstr "اطبع المسار" #: ../data/ui/help-overlay.ui.h:6 msgctxt "shortcut window" msgid "Quit" msgstr "أنهِ" #: ../data/ui/help-overlay.ui.h:7 msgctxt "shortcut window" msgid "Map View" msgstr "منظور الخريطة" #: ../data/ui/help-overlay.ui.h:8 msgctxt "shortcut window" msgid "Zoom in" msgstr "قرّب" #: ../data/ui/help-overlay.ui.h:9 msgctxt "shortcut window" msgid "Zoom out" msgstr "بعّد" #: ../data/ui/help-overlay.ui.h:10 msgctxt "shortcut window" msgid "Toggle scale" msgstr "اعرض/أخفِ المقياس" #: ../data/ui/help-overlay.ui.h:11 msgctxt "shortcut window" msgid "Go to current location" msgstr "اذهب إلى المكان الحالي" #: ../data/ui/help-overlay.ui.h:12 msgctxt "shortcut window" msgid "Switch to street view" msgstr "انتقل إلى منظور الشارع" #: ../data/ui/help-overlay.ui.h:13 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "انتقل إلى منظور جوي" #: ../data/ui/help-overlay.ui.h:14 msgctxt "shortcut window" msgid "Open shape layer" msgstr "افتح طبقة الشكل" #: ../data/ui/layers-popover.ui.h:1 msgid "Load Map Layer" msgstr "حمّل طبقة خريطة" #: ../data/ui/location-service-notification.ui.h:1 msgid "Turn on location services to find your location" msgstr "فعّل خدمات التموضع لتجد مكانك" #: ../data/ui/location-service-notification.ui.h:2 msgid "Location Settings" msgstr "إعدادات التموضع" #. Translators: This is a tooltip #: ../data/ui/main-window.ui.h:3 msgid "Go to current location" msgstr "اذهب إلى المكان الحالي" #. Translators: This is a tooltip #: ../data/ui/main-window.ui.h:5 msgid "Choose map type" msgstr "اختر نوع الخريطة" #. Translators: This is a tooltip #: ../data/ui/main-window.ui.h:7 msgid "Toggle route planner" msgstr "اعرض/أخفِ مخطّط المسارات" #. Translators: This is a tooltip #: ../data/ui/main-window.ui.h:9 msgid "Toggle favorites" msgstr "اعرض/أخفِ المفضّلة" #. Translators: This is a tooltip #: ../data/ui/main-window.ui.h:11 msgid "Print Route" msgstr "اطبع المسار" #: ../data/ui/main-window.ui.h:12 msgid "Maps is offline!" msgstr "تطبيق الخرائط يعمل بلا اتصال!" #: ../data/ui/main-window.ui.h:13 msgid "" "Maps need an active internet connection to function properly, but one can’t " "be found." msgstr "" "يحتاج تطبيق الخرائط إلى اتصال إنترنت نشط ليعمل كما ينبغي، لكنه لم يعثر على " "واحد." #: ../data/ui/main-window.ui.h:14 msgid "Check your connection and proxy settings." msgstr "افحص إعدادات اتصالك ووكيلك." #. Translators: This is a tooltip #: ../data/ui/map-bubble.ui.h:2 msgid "Add to new route" msgstr "أضفه إلى مسار جديد" #. Translators: This is a tooltip #: ../data/ui/map-bubble.ui.h:4 msgid "Open with another application" msgstr "افتح بتطبيق آخر" #. Translators: This is a tooltip #: ../data/ui/map-bubble.ui.h:6 msgid "Mark as favorite" msgstr "علّمه كمفضّل" #. Translators: This is a tooltip #: ../data/ui/map-bubble.ui.h:10 msgid "Check in here" msgstr "ادخل هنا" #: ../data/ui/osm-account-dialog.ui.h:1 msgid "OpenStreetMap Account" msgstr "حساب «خريطة الشارع المفتوحة»" #: ../data/ui/osm-account-dialog.ui.h:2 msgid "Sign in to edit maps" msgstr "سجّل لتحرير الخرائط" #: ../data/ui/osm-account-dialog.ui.h:3 msgid "" "Help to improve the map, using an\n" "OpenStreetMap account." msgstr "" "ساهم في تحسين الخريطة باستخدام\n" "حساب «خريطة الشارع المفتوحة»." #: ../data/ui/osm-account-dialog.ui.h:5 msgid "Email" msgstr "البريد الإلكتروني" #: ../data/ui/osm-account-dialog.ui.h:6 msgid "Password" msgstr "كلمة السر" #: ../data/ui/osm-account-dialog.ui.h:7 msgid "Sign In" msgstr "لِج" #: ../data/ui/osm-account-dialog.ui.h:8 msgid "Don’t have an account?" msgstr "أليس لديك حساب؟" #. The label should contain the link to the OSM reset password page with a translated title #: ../data/ui/osm-account-dialog.ui.h:10 msgid "" "Sorry, that didn’t work. Please try again, or visit\n" "OpenStreetMap to reset your password." msgstr "" "آسفون، لم يعمل هذا. من فضلك جرّب مجددا، أو زُر\n" "«خريطة الشارع " "المفتوحة» لتصفير كلمة السر." #: ../data/ui/osm-account-dialog.ui.h:12 msgid "The verification code didn’t match, please try again." msgstr "رمز التأكيد لا يتطابق، من فضلك جرّب مجددا." #: ../data/ui/osm-account-dialog.ui.h:13 msgid "Enter verification code shown above" msgstr "أدخل رمز التأكيد الظاهر أعلاه" #: ../data/ui/osm-account-dialog.ui.h:14 msgid "Verify" msgstr "أكّد" #: ../data/ui/osm-account-dialog.ui.h:15 msgid "Signed In" msgstr "أنت والج" #: ../data/ui/osm-account-dialog.ui.h:16 msgid "Your OpenStreetMap account is active." msgstr "حسابك في «خريطة الشارع المفتوحة» نشط." #: ../data/ui/osm-account-dialog.ui.h:17 msgid "Sign Out" msgstr "اخرج" #: ../data/ui/osm-edit-address.ui.h:1 msgid "Street" msgstr "الشوارع" #: ../data/ui/osm-edit-address.ui.h:2 msgid "House number" msgstr "رقم المنزل" #: ../data/ui/osm-edit-address.ui.h:3 msgid "Postal code" msgstr "الرقم البريدي" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: ../data/ui/osm-edit-address.ui.h:5 msgid "City" msgstr "المدينة" #: ../data/ui/osm-edit-dialog.ui.h:1 msgid "Type" msgstr "النوع" #: ../data/ui/osm-edit-dialog.ui.h:2 msgid "None" msgstr "بلا" #: ../data/ui/osm-edit-dialog.ui.h:3 msgid "Add Field" msgstr "أضف حقلا" #: ../data/ui/osm-edit-dialog.ui.h:4 msgid "Comment" msgstr "تعليق" #: ../data/ui/osm-edit-dialog.ui.h:5 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "ستظهر التعديلات على الخريطة في كل الخرائط التي تستخدم بيانات «خريطة الشارع " "المفتوحة»." #: ../data/ui/osm-edit-dialog.ui.h:7 msgid "Recently Used" msgstr "المستخدمة حديثًا" #: ../data/ui/osm-edit-dialog.ui.h:8 msgctxt "dialog title" msgid "Edit on OpenStreetMap" msgstr "حرر على «خريطة الشارع المفتوحة»" #: ../data/ui/osm-edit-dialog.ui.h:9 msgid "Cancel" msgstr "ألغِ" #: ../data/ui/osm-edit-dialog.ui.h:10 ../src/osmEditDialog.js:516 msgid "Next" msgstr "التالي" #. Translators: This is a tooltip #: ../data/ui/place-bubble.ui.h:2 msgid "Edit on OpenStreetMap" msgstr "حرر على «خريطة الشارع المفتوحة»" #. Translators: This is a tooltip #: ../data/ui/place-bubble.ui.h:4 msgid "Show more information" msgstr "اعرض معلومات أكثر" #: ../data/ui/place-popover.ui.h:1 msgid "Press enter to search" msgstr "اضغط Enter للبحث" #: ../data/ui/place-popover.ui.h:2 msgid "No results found" msgstr "لا نتائج" #. Translators: This is a tooltip #: ../data/ui/route-entry.ui.h:2 msgid "Drag to change order of the route" msgstr "اسحب لتغيير المسار" #: ../data/ui/send-to-dialog.ui.h:1 msgid "Open location" msgstr "افتح المكان" #: ../data/ui/send-to-dialog.ui.h:3 ../data/ui/shape-layer-file-chooser.ui.h:2 msgid "_Open" msgstr "ا_فتح" #: ../data/ui/shape-layer-file-chooser.ui.h:1 msgid "Open Layer" msgstr "افتح طبقة" #. Translators: This is a tooltip #: ../data/ui/shape-layer-row.ui.h:2 msgid "Toggle visible" msgstr "اعرض/أخفِ" #: ../data/ui/sidebar.ui.h:1 msgid "Route search by GraphHopper" msgstr "البحث عن المسار يدعمه GraphHopper" #: ../data/ui/sidebar.ui.h:2 msgid "Route search by OpenTripPlanner" msgstr "البحث عن المسار يدعمه OpenTripPlanner" #: ../data/ui/sidebar.ui.h:3 msgid "" "Routing itineraries for public transit is provided by GNOME\n" "using timetable data obtained from transit companies or agencies.\n" "The companies and agencies can not be held responsible for the results " "shown.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" "مسارات وسائل النقل العامة توفرها جنوم بناء على\n" "بيانات المواعيد من شركات و هيئات النقل.\n" "ليست الشركات و الهيئات مسئولة عن النتائج المعروضة.\n" "لا تضمن جنوم صحة المسارات و لا المواعيد المعروضة.\n" "الأسماء تعتبر علامات تجارية مسجلة حسب القواعد." #: ../data/ui/social-place-more-results-row.ui.h:1 msgid "Show more results" msgstr "اعرض نتائج أكثر" #. Translators: This is a tooltip #: ../data/ui/transit-leg-row.ui.h:2 msgid "Hide intermediate stops and information" msgstr "أخف الخطوات البينية و المعلومات" #. Translators: This is a tooltip #: ../data/ui/transit-leg-row.ui.h:4 msgid "Show intermediate stops and information" msgstr "اعرض الخطوات البينية و المعلومات" #. Indicates searching for the next available itineraries #: ../data/ui/transit-options-panel.ui.h:2 msgid "Leave Now" msgstr "غادر الآن" #. Indicates searching for itineraries leaving at the specified time at the earliest #: ../data/ui/transit-options-panel.ui.h:4 msgid "Leave By" msgstr "غادر في" #. Indicates searching for itineraries arriving no later than the specified time #: ../data/ui/transit-options-panel.ui.h:6 msgid "Arrive By" msgstr "تصل في" #. Header indicating selected modes of transit #: ../data/ui/transit-options-panel.ui.h:8 msgid "Show" msgstr "اعرض" #: ../data/ui/transit-options-panel.ui.h:9 msgid "Buses" msgstr "حافلات" #: ../data/ui/transit-options-panel.ui.h:10 msgid "Trams" msgstr "ترام" #: ../data/ui/transit-options-panel.ui.h:11 msgid "Trains" msgstr "قطارات" #: ../data/ui/transit-options-panel.ui.h:12 msgid "Subway" msgstr "قطارات الأنفاق" #: ../data/ui/transit-options-panel.ui.h:13 msgid "Ferries" msgstr "عبّارات" #: ../data/ui/user-location-bubble.ui.h:1 ../src/geoclue.js:120 msgid "Current location" msgstr "المكان الحالي" #. To translators: %s can be "Unknown", "Exact" or "%f km²" #: ../data/ui/user-location-bubble.ui.h:4 #, no-c-format msgid "Accuracy: %s" msgstr "الدقة: %s" #: ../data/ui/zoom-in-notification.ui.h:1 msgid "Zoom in to add location!" msgstr "قرّب لتضيف مكانا!" #: ../data/ui/zoom-in-notification.ui.h:2 msgid "OK" msgstr "حسنًا" #: ../lib/maps-file-tile-source.c:303 ../lib/maps-file-tile-source.c:379 #: ../lib/maps-file-tile-source.c:459 msgid "Failed to find tile structure in directory" msgstr "فشل إيجاد بنية قطع خرائط في الدليل" #: ../lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "فشل تحليل ملف XML" #: ../lib/maps-osm.c:252 ../lib/maps-osm.c:405 msgid "Missing required attributes" msgstr "الصفات المطلوبة ناقصة" #: ../lib/maps-osm.c:453 msgid "Could not find OSM element" msgstr "تعذر إيجاد عنصر OSM" #: ../src/application.js:102 msgid "A path to a local tiles directory structure" msgstr "مسار يشير إلى دليل محليّ لبنية قطع خرائط" #: ../src/checkInDialog.js:175 msgid "Select an account" msgstr "اختر حسابا" #: ../src/checkInDialog.js:180 ../src/checkInDialog.js:252 msgid "Loading" msgstr "يحمّل" #: ../src/checkInDialog.js:204 msgid "Select a place" msgstr "اختر مكانا" #: ../src/checkInDialog.js:209 msgid "" "Maps cannot find the place to check in to with Facebook. Please select one " "from this list." msgstr "" "تعذّر على تطبيق الخرائط إيجاد مكان للدخول إليه ب‍«فيسبوك». من فضلك اختر واحدا " "من القائمة." #: ../src/checkInDialog.js:211 msgid "" "Maps cannot find the place to check in to with Foursquare. Please select one " "from this list." msgstr "" "تعذّر على تطبيق الخرائط إيجاد مكان للدخول إليه ب‍«فورسكوير». من فضلك اختر " "واحدا من القائمة." #. Translators: %s is the name of the place to check in. #. #: ../src/checkInDialog.js:226 #, javascript-format msgid "Check in to %s" msgstr "ادخل إلى %s" #. Translators: %s is the name of the place to check in. #. #: ../src/checkInDialog.js:236 #, javascript-format msgid "Write an optional message to check in to %s." msgstr "اكتب رسالة اختيارية للدخول إلى %s." #: ../src/checkInDialog.js:288 ../src/checkIn.js:165 #: ../src/osmEditDialog.js:553 msgid "An error has occurred" msgstr "حدث خطأ ما" #. Translators: %s is the place name that user wanted to check-in #: ../src/checkIn.js:147 #, javascript-format msgid "Cannot find “%s” in the social service" msgstr "تعذّر إيجاد ”%s“ في الخدمة الاجتماعية" #: ../src/checkIn.js:149 msgid "Cannot find a suitable place to check-in in this location" msgstr "تعذّر إيجاد مكان مناسب للدخول إلى هذا المكان" #: ../src/checkIn.js:153 msgid "" "Credentials have expired, please open Online Accounts to sign in and enable " "this account" msgstr "" "انتهت صلاحية معلومات الولوج، من فضلك افتح الحساب الشبكية لتلج وتفعّل هذا " "الحساب" #: ../src/contextMenu.js:99 msgid "Route from here" msgstr "المسار من هنا" #: ../src/contextMenu.js:101 msgid "Add destination" msgstr "أضف مقصدا" #: ../src/contextMenu.js:103 msgid "Route to here" msgstr "المسار إلى هنا" #: ../src/contextMenu.js:132 msgid "Nothing found here!" msgstr "لم أجد شيئا هنا!" #: ../src/contextMenu.js:189 msgid "" "Location was added to the map, note that it may take a while before it shows " "on the map and in search results." msgstr "" "أُضيف المكان إلى الخريطة، لكن لاحظ أنه قد يأخذ وقتا ليظهر عليها وفي نتائج " "البحث." #: ../src/exportViewDialog.js:156 msgid "Filesystem is read only" msgstr "نظام الملفات للقراءة فقط" #: ../src/exportViewDialog.js:158 msgid "You do not have permission to save there" msgstr "لا صلاحيات لك للحفظ هناك" #: ../src/exportViewDialog.js:160 msgid "The directory does not exist" msgstr "الدليل غير موجود" #: ../src/exportViewDialog.js:162 msgid "No filename specified" msgstr "لم يُحدّد اسم ملف" #: ../src/exportViewDialog.js:170 msgid "Unable to export view" msgstr "تعذّر تصدير العرض" #: ../src/geoJSONSource.js:98 msgid "invalid coordinate" msgstr "إحداثية غير صالحة" #: ../src/geoJSONSource.js:149 ../src/geoJSONSource.js:189 #: ../src/geoJSONSource.js:204 msgid "parse error" msgstr "خطأ في التحليل" #: ../src/geoJSONSource.js:183 msgid "unknown geometry" msgstr "الهندسة مجهولة" #: ../src/graphHopper.js:93 ../src/openTripPlanner.js:665 msgid "Route request failed." msgstr "فشل طلب المسار." #: ../src/graphHopper.js:101 ../src/openTripPlanner.js:628 msgid "No route found." msgstr "لا مسار." #: ../src/graphHopper.js:193 msgid "Start!" msgstr "ابدأ!" #: ../src/mainWindow.js:59 msgid "All Layer Files" msgstr "كل ملفات الطبقات" #: ../src/mainWindow.js:431 msgid "Failed to connect to location service" msgstr "فشل الاتصال بخدمة التموضع" #: ../src/mainWindow.js:487 msgid "translator-credits" msgstr "" "فريق عربآيز للترجمة http://www.arabeyes.org:\n" "خالد حسني\t\n" "صفا الفليج\t" #: ../src/mainWindow.js:490 msgid "A map application for GNOME" msgstr "تطبيق خرائط لجنوم" #: ../src/mapView.js:356 msgid "File type is not supported" msgstr "نوع الملفات غير مدعوم" #: ../src/mapView.js:363 msgid "Failed to open layer" msgstr "فشل فتح الطبقة" #: ../src/mapView.js:399 msgid "Failed to open GeoURI" msgstr "فشل فتح العنوان الجغرافي" #: ../src/openTripPlanner.js:622 msgid "No earlier alternatives found." msgstr "لم يُعثر على بدائل سابقة." #: ../src/openTripPlanner.js:623 msgid "No later alternatives found." msgstr "لم يُعثر على بدائل لاحقة." #: ../src/openTripPlanner.js:661 msgid "No timetable data found for this route." msgstr "لم يُعثر على بيانات المواعيد لهذا المسار." #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: ../src/osmConnection.js:442 msgid "Incorrect user name or password" msgstr "اسم المستخدم أو كلمة السر خاطئة" #: ../src/osmConnection.js:444 msgid "Success" msgstr "نجح" #: ../src/osmConnection.js:446 msgid "Bad request" msgstr "طلب سيّئ" #: ../src/osmConnection.js:448 msgid "Object not found" msgstr "الكائن غير موجود" #: ../src/osmConnection.js:450 msgid "Conflict, someone else has just modified the object" msgstr "ثمة تضارب، هناك من عدّل الكائن لتوّه" #: ../src/osmConnection.js:452 msgid "Object has been deleted" msgstr "حُذف الكائن" #: ../src/osmConnection.js:454 msgid "Way or relation refers to non-existing children" msgstr "يشير الطريق أو العلاقة إلى ابن غير موجود" #: ../src/osmEditDialog.js:104 msgid "Name" msgstr "الاسم" #: ../src/osmEditDialog.js:107 msgid "The official name. This is typically what appears on signs." msgstr "الاسم الرسمي. غالبا ما يكون على العلامات." #: ../src/osmEditDialog.js:110 msgid "Address" msgstr "العنوان" #: ../src/osmEditDialog.js:118 msgid "Website" msgstr "موقع الوِب" #: ../src/osmEditDialog.js:121 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" "موقع الوِب الرسمي. حاول استخدام أبسط صيغة للعنوان مثل http://example.com بدل " "http://example.com/index.html." #: ../src/osmEditDialog.js:126 msgid "Phone" msgstr "الهاتف" #: ../src/osmEditDialog.js:130 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" "رقم الهاتف. استخدم الصيغة العالمية، مبتدءًا الرقم بعلامة +. انتبه لحقوق " "الخصوصية في الدول، خصوصا تلك الخاصة بأرقام الهواتف الخاصة." #: ../src/osmEditDialog.js:135 ../src/placeBubble.js:170 msgid "Wikipedia" msgstr "ويكيبيديا" #: ../src/osmEditDialog.js:139 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "" "الصيغة المُستخدمة هنا تتضمن رمز اللغة وعنوان المقال مثل ”ar:عنوان المقالة“." #: ../src/osmEditDialog.js:143 msgid "Opening hours" msgstr "ساعات العمل" #: ../src/osmEditDialog.js:148 msgid "See the link in the label for help on format." msgstr "طالع الوصلة في اللصيقة لتجد مساعدة حول الصيغة." #: ../src/osmEditDialog.js:151 msgid "Population" msgstr "عدد السكان" #: ../src/osmEditDialog.js:156 msgid "Altitude" msgstr "الارتفاع الرأسي" #: ../src/osmEditDialog.js:159 msgid "Elevation (height above sea level) of a point in metres." msgstr "ارتفاع نقطة (عن مستوى سطح البحر) بالأمتار." #: ../src/osmEditDialog.js:162 msgid "Wheelchair access" msgstr "دخول الكراسي ذات العجلات" #: ../src/osmEditDialog.js:165 ../src/osmEditDialog.js:174 #: ../src/osmEditDialog.js:212 msgid "Yes" msgstr "مسموح" #: ../src/osmEditDialog.js:166 ../src/osmEditDialog.js:175 #: ../src/osmEditDialog.js:213 msgid "No" msgstr "ممنوع" #: ../src/osmEditDialog.js:167 msgid "Limited" msgstr "محدود" #: ../src/osmEditDialog.js:168 msgid "Designated" msgstr "محدّد" #: ../src/osmEditDialog.js:171 msgid "Internet access" msgstr "الوصول إلى الإنترنت" #. Translators: #. * This means a WLAN Hotspot, also know as wireless, wifi or Wi-Fi. #. #: ../src/osmEditDialog.js:176 ../src/translations.js:340 msgid "Wi-Fi" msgstr "واي-فاي" #: ../src/osmEditDialog.js:177 msgid "Wired" msgstr "سلكي" #: ../src/osmEditDialog.js:178 msgid "Terminal" msgstr "طرفيّة" #: ../src/osmEditDialog.js:179 msgid "Service" msgstr "خدمة" #: ../src/osmEditDialog.js:182 msgid "Religion" msgstr "الدين" #: ../src/osmEditDialog.js:185 ../src/translations.js:363 msgid "Animism" msgstr "إحيائية" #: ../src/osmEditDialog.js:186 msgid "Bahá’í" msgstr "بهائية" #: ../src/osmEditDialog.js:187 ../src/translations.js:365 msgid "Buddhism" msgstr "بوذية" #: ../src/osmEditDialog.js:188 ../src/translations.js:366 msgid "Caodaism" msgstr "كاو دائية" #: ../src/osmEditDialog.js:189 ../src/translations.js:367 msgid "Christianity" msgstr "مسيحية" #: ../src/osmEditDialog.js:190 ../src/translations.js:368 msgid "Confucianism" msgstr "كونفشيوسية" #: ../src/osmEditDialog.js:191 ../src/translations.js:369 msgid "Hinduism" msgstr "هندوسية" #: ../src/osmEditDialog.js:192 ../src/translations.js:370 msgid "Jainism" msgstr "جاينية" #: ../src/osmEditDialog.js:193 ../src/translations.js:371 msgid "Judaism" msgstr "يهودية" #: ../src/osmEditDialog.js:194 ../src/translations.js:372 msgid "Islam" msgstr "إسلام" #: ../src/osmEditDialog.js:195 ../src/translations.js:373 msgid "Multiple Religions" msgstr "ديانات متعددة" #: ../src/osmEditDialog.js:196 ../src/translations.js:374 msgid "Paganism" msgstr "وثنية" #: ../src/osmEditDialog.js:197 ../src/translations.js:375 msgid "Pastafarianism" msgstr "باستافارية" #: ../src/osmEditDialog.js:198 ../src/translations.js:376 msgid "Scientology" msgstr "سينتولوجيا" #: ../src/osmEditDialog.js:199 ../src/translations.js:377 msgid "Shinto" msgstr "شنتو" #: ../src/osmEditDialog.js:200 ../src/translations.js:378 msgid "Sikhism" msgstr "سيخية" #: ../src/osmEditDialog.js:201 ../src/translations.js:379 msgid "Spiritualism" msgstr "روحانية" #: ../src/osmEditDialog.js:202 ../src/translations.js:380 msgid "Taoism" msgstr "طاوية" #: ../src/osmEditDialog.js:203 ../src/translations.js:381 msgid "Unitarian Universalism" msgstr "توحيدية كونية" #: ../src/osmEditDialog.js:204 ../src/translations.js:382 msgid "Voodoo" msgstr "فودو" #: ../src/osmEditDialog.js:205 ../src/translations.js:383 msgid "Yazidism" msgstr "يزدية" #: ../src/osmEditDialog.js:206 ../src/translations.js:384 msgid "Zoroastrianism" msgstr "زرادشتية" #: ../src/osmEditDialog.js:209 msgid "Toilets" msgstr "حمامات" #: ../src/osmEditDialog.js:216 msgid "Note" msgstr "ملاحظة" #: ../src/osmEditDialog.js:219 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" "معلومات تعلم الخرائطيين الآخرين عن معلومات غير بديهية عن عنصر ما، أو غرض " "المؤلف عند إنشائه، أو ملاحظات تساعد في تحسينه." #: ../src/osmEditDialog.js:328 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "أضف إلى «خريطة الشارع المفتوحة»" #: ../src/osmEditDialog.js:381 msgid "Select Type" msgstr "اختر نوعًا" #: ../src/osmEditDialog.js:500 msgid "Done" msgstr "تمّ" #: ../src/placeBubble.js:122 msgid "Population:" msgstr "السّكانيّة:" #: ../src/placeBubble.js:128 msgid "Altitude:" msgstr "الارتفاع الرأسي:" #: ../src/placeBubble.js:133 msgid "Opening hours:" msgstr "ساعات العمل:" #: ../src/placeBubble.js:138 msgid "Internet access:" msgstr "الوصول إلى الإنترنت:" #: ../src/placeBubble.js:143 msgid "Religion:" msgstr "الدين:" #: ../src/placeBubble.js:148 msgid "Toilets:" msgstr "حمامات:" #: ../src/placeBubble.js:153 msgid "Wheelchair access:" msgstr "دخول الكراسي ذات العجلات:" #: ../src/placeBubble.js:159 ../src/placeBubble.js:163 msgid "Phone:" msgstr "الهاتف:" #: ../src/placeEntry.js:190 msgid "Failed to parse Geo URI" msgstr "فشل تحليل العنوان الجغرافي" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: ../src/place.js:219 ../src/translations.js:329 ../src/translations.js:391 msgid "yes" msgstr "مسموح" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: ../src/place.js:226 msgid "limited" msgstr "محدود" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: ../src/place.js:232 ../src/translations.js:335 ../src/translations.js:392 msgid "no" msgstr "ممنوع" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: ../src/place.js:239 msgid "designated" msgstr "محدّد" #: ../src/printLayout.js:244 #, javascript-format msgid "From %s to %s" msgstr "من %s إلى %s" #: ../src/printOperation.js:48 msgid "Loading map tiles for printing" msgstr "يحمّل قطع الخرائط للطباعة" #: ../src/printOperation.js:49 msgid "You can abort printing if this takes too long" msgstr "يمكنك إجهاض الطباعة إن أخذت وقتا طويلا" #: ../src/printOperation.js:51 msgid "Abort printing" msgstr "أجهض الطباعة" #: ../src/sendToDialog.js:179 msgid "Failed to open URI" msgstr "فشل فتح العنوان" #: ../src/shapeLayer.js:92 msgid "failed to load file" msgstr "فشل تحميل الملف" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: ../src/sidebar.js:293 #, javascript-format msgid "Estimated time: %s" msgstr "الوقت المقدّر: %s" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: ../src/transitArrivalRow.js:56 #, javascript-format msgid "Arrive at %s" msgstr "تصل إلى %s" #: ../src/transitArrivalRow.js:58 msgid "Arrive" msgstr "تصل" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: ../src/transitLegRow.js:73 #, javascript-format msgid "Start at %s" msgstr "ابدأ من %s" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: ../src/transitLegRow.js:79 msgid "Start" msgstr "ابدأ" #: ../src/transitLegRow.js:108 msgid "Show walking instructions" msgstr "اعرض تعليمات المشي" #: ../src/transitLegRow.js:109 msgid "Hide walking instructions" msgstr "أخفِ تعليمات المشي" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: ../src/transitLegRow.js:134 #, javascript-format msgid "Walk %s" msgstr "امشِ %s" #: ../src/transitMoreRow.js:41 msgid "Load earlier alternatives" msgstr "حمّل البدائل السابقة" #: ../src/transitMoreRow.js:43 msgid "Load later alternatives" msgstr "حمّل البدائل اللاحقة" #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: ../src/transitOptionsPanel.js:142 msgctxt "month-day-date" msgid "%b %e" msgstr "%e %B" #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: ../src/transitPlan.js:253 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: ../src/transitPlan.js:280 #, javascript-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "%d دقيقة" msgstr[1] "دقيقة" msgstr[2] "دقيقتين" msgstr[3] "%d دقائق" msgstr[4] "%d دقيقة" msgstr[5] "%d دقيقة" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: ../src/transitPlan.js:291 #, javascript-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "%d ساعة" msgstr[1] "ساعة" msgstr[2] "ساعتين" msgstr[3] "%d ساعات" msgstr[4] "%d ساعة" msgstr[5] "%d ساعة" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: ../src/transitPlan.js:297 #, javascript-format msgid "%d:%02d hour" msgid_plural "%d:%02d hours" msgstr[0] "%d:%02d ساعة" msgstr[1] "%d:%02d ساعة" msgstr[2] "%d:%02d ساعة" msgstr[3] "%d:%02d ساعة" msgstr[4] "%d:%02d ساعة" msgstr[5] "%d:%02d ساعة" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: ../src/transitPlan.js:649 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: ../src/translations.js:56 msgid "around the clock" msgstr "على مدار الساعة" #: ../src/translations.js:58 msgid "from sunrise to sunset" msgstr "من شروق الشمس حتى غروبها" #. Translators: #. * This is a format string with two separate time ranges #. * such as "Mo-Fr 10:00-19:00 Sa 12:00-16:00" #. * The space between the format place holders could be #. * substituted with the appropriate separator. #. #: ../src/translations.js:77 #, javascript-format msgctxt "time range list" msgid "%s %s" msgstr "%s %s" #. Translators: #. * This is a format string with three separate time ranges #. * such as "Mo-Fr 10:00-19:00 Sa 10:00-17:00 Su 12:00-16:00" #. * The space between the format place holders could be #. * substituted with the appropriate separator. #. #: ../src/translations.js:89 #, javascript-format msgctxt "time range list" msgid "%s %s %s" msgstr "%s %s %s" #. Translators: #. * This is a format string consisting of a part specifying the days for #. * which the specified time is applied and the time interval #. * specification as the second argument. #. * The space between the format place holders could be substituted with #. * the appropriate separator or phrase and the ordering of the arguments #. * can be rearranged with the %n#s syntax. #: ../src/translations.js:120 #, javascript-format msgctxt "time range component" msgid "%s %s" msgstr "%s %s" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: ../src/translations.js:152 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s،%s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: ../src/translations.js:166 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s،%s،%s" #: ../src/translations.js:185 msgid "every day" msgstr "يوميا" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: ../src/translations.js:197 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s-%s" #: ../src/translations.js:208 msgid "public holidays" msgstr "العطل العامة" #: ../src/translations.js:210 msgid "school holidays" msgstr "العطل المدرسية" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: ../src/translations.js:250 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s، %s" #: ../src/translations.js:264 msgid "not open" msgstr "ليس مفتوحا" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: ../src/translations.js:279 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s-%s" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: ../src/translations.js:345 msgid "wired" msgstr "سلكي" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: ../src/translations.js:350 msgid "terminal" msgstr "طرفيّة" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: ../src/translations.js:355 msgid "service" msgstr "خدمة" #. Translators: Accuracy of user location information #: ../src/utils.js:231 msgid "Unknown" msgstr "غير معروف" #. Translators: Accuracy of user location information #: ../src/utils.js:234 msgid "Exact" msgstr "بالضبط" #: ../src/utils.js:337 #, javascript-format msgid "%f h" msgstr "%f سا" #: ../src/utils.js:339 #, javascript-format msgid "%f min" msgstr "%f دق" #: ../src/utils.js:341 #, javascript-format msgid "%f s" msgstr "%f ثا" #. Translators: This is a distance measured in kilometers #: ../src/utils.js:352 #, javascript-format msgid "%s km" msgstr "%s كم" #. Translators: This is a distance measured in meters #: ../src/utils.js:355 #, javascript-format msgid "%s m" msgstr "%s م" #. Translators: This is a distance measured in miles #: ../src/utils.js:363 #, javascript-format msgid "%s mi" msgstr "%s ميل" #. Translators: This is a distance measured in feet #: ../src/utils.js:366 #, javascript-format msgid "%s ft" msgstr "%s قدم" #~ msgid "%f km" #~ msgstr "%f كم" #~ msgid "%f m" #~ msgstr "%f م" #~ msgid "%f mi" #~ msgstr "%f ميل" #~ msgid "%f ft" #~ msgstr "%f قدم" #~ msgid "Edit Location" #~ msgstr "حرّر المكان" #~ msgid "Position not found" #~ msgstr "الموضع غير موجود" #~ msgid "Country code: %s" #~ msgstr "رمز البلد: %s" #~ msgid "Population: %s" #~ msgstr "عدد السكان: %s" #~ msgid "Wheelchair access: %s" #~ msgstr "دخول الكراسي ذات العجلات: %s" #~ msgid "I’m here!" #~ msgstr "أنا هنا" #~ msgid "Satellite" #~ msgstr "قمر صناعي" #~ msgid " km2" #~ msgstr " كم٢" #~ msgid " km²" #~ msgstr " كم٢" 070701000001B0000081A40000000000000000000000016641340900002538000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/as.po# Assamese translation for gnome-maps. # Copyright (C) 2013 gnome-maps's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-maps package. # # Nilamdyuti Goswami , 2013, 2014. msgid "" msgstr "" "Project-Id-Version: gnome-maps master\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "maps&keywords=I18N+L10N&component=general\n" "POT-Creation-Date: 2014-09-02 15:46+0000\n" "PO-Revision-Date: 2014-09-02 21:54+0530\n" "Last-Translator: Nilamdyuti Goswami \n" "Language-Team: Assamese \n" "Language: as\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Lokalize 1.5\n" #: ../data/org.gnome.Maps.appdata.xml.in.h:1 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "মানচিত্ৰই আপোনাক বিশ্বৰ সকলো মানচিত্ৰলৈ এটা দ্ৰুত অভিগম প্ৰদান কৰে। ই আপোনাক " "এটা " "নগৰ অথবা বাটৰ বাবে সন্ধান কৰি আপুনি বিচৰা স্থান দ্ৰুতভাৱে সন্ধান কৰাৰ অনুমতি " "দিয়ে, " "অথবা এজন বন্ধুক লগ ধৰিবলৈ এটা স্থান অৱস্থিত কৰাৰ সুবিধা দিয়ে।" #: ../data/org.gnome.Maps.appdata.xml.in.h:2 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "মানচিত্ৰই সংযোগি OpenStreetMap ডাটাবেইচ ব্যৱহাৰ কৰে, যাক বিশ্বৰ বিভিন্ন " "প্ৰান্তৰ " "লোকে সৃষ্টি কৰিছে।" #. Translators: Search is carried out on OpenStreetMap data using Nominatim. #. Visit http://wiki.openstreetmap.org/wiki/Nominatim/Special_Phrases and click #. your language to see what words you can use for the translated search. #: ../data/org.gnome.Maps.appdata.xml.in.h:6 msgid "" "You can even search for specific types of locations, such as “Pubs near Main " "Street, Boston” or “Hotels near Alexanderplatz, Berlin”." msgstr "" "আপুনি বিশেষ ধৰণৰ স্থান, যেনে “Pubs near Main Street, Boston“ অথবা “Hotels " "near " "Alexanderplatz, Berlin“ ৰ বাবে সন্ধান কৰিব পাৰিব।" #. Translators: This is the program name. */ #: ../data/org.gnome.Maps.desktop.in.in.h:1 ../src/application.js:66 #: ../src/mainWindow.js:304 ../src/main-window.ui.h:1 msgid "Maps" msgstr "মানচিত্ৰ" #: ../data/org.gnome.Maps.desktop.in.in.h:2 msgid "A simple maps application" msgstr "এটা সাধাৰণ মানচিত্ৰ এপ্লিকেচন" #: ../data/org.gnome.Maps.desktop.in.in.h:3 msgid "Maps;" msgstr "মানচিত্ৰ;" #: ../data/org.gnome.maps.gschema.xml.in.h:1 msgid "Window size" msgstr "উইন্ডোৰ আকাৰ" #: ../data/org.gnome.maps.gschema.xml.in.h:2 msgid "Window size (width and height)." msgstr "উইন্ডোৰ আকাৰ (প্ৰস্থ আৰু উচ্চতা)।" #: ../data/org.gnome.maps.gschema.xml.in.h:3 msgid "Window position" msgstr "উইন্ডোৰ অৱস্থান" #: ../data/org.gnome.maps.gschema.xml.in.h:4 msgid "Window position (X and Y)." msgstr "উইন্ডোৰ অৱস্থান (X আৰু Y)।" #: ../data/org.gnome.maps.gschema.xml.in.h:5 msgid "Window maximized" msgstr "উইন্ডো সৰ্বাধিক আকাৰলৈ বৃদ্ধি কৰা হৈছে" #: ../data/org.gnome.maps.gschema.xml.in.h:6 msgid "Window maximization state" msgstr "উইন্ডোৰ সৰ্বাধিক আকাৰ অৱস্থা" #: ../data/org.gnome.maps.gschema.xml.in.h:7 msgid "Last known location and accuracy" msgstr "সৰ্বশেষ জ্ঞাত অৱস্থান আৰু সঠিকতা" #: ../data/org.gnome.maps.gschema.xml.in.h:8 msgid "" "Last known location (latitude and longitude in degrees) and accuracy (in " "meters)." msgstr "" "সৰ্বশেষ জ্ঞাত অৱস্থান (অক্ষাংশ আৰু দ্ৰাঘিমা ডিগ্ৰিসমূহত) আৰু সঠিকতা (মিটাৰত)।" #: ../data/org.gnome.maps.gschema.xml.in.h:9 msgid "Description of last known location" msgstr "সৰ্বশেষ জ্ঞাত অৱস্থানৰ বিৱৰণ" #: ../data/org.gnome.maps.gschema.xml.in.h:10 msgid "Description of last known location of user." msgstr "ব্যৱহাৰকাৰীৰ সৰ্বশেষ জ্ঞাত অৱস্থানৰ বিৱৰণ।" #: ../data/org.gnome.maps.gschema.xml.in.h:11 msgid "Maximum number of search results" msgstr "সন্ধান ফলাফলসমূহৰ সৰ্বাধিক সংখ্যা" #: ../data/org.gnome.maps.gschema.xml.in.h:12 msgid "Maximum number of search results from geocode search." msgstr "geocode সন্ধানৰ পৰা সন্ধান ফলাফলৰ সৰ্বাধিক সংখ্যা।" #: ../data/org.gnome.maps.gschema.xml.in.h:13 msgid "User set last known location" msgstr "ব্যৱহাৰকাৰী দ্বাৰা সংহতি কৰা সৰ্বশেষ জ্ঞাত অৱস্থান" #: ../data/org.gnome.maps.gschema.xml.in.h:14 msgid "Whether the last known location was set manually by the user." msgstr "" "সৰ্বশেষ জ্ঞাত অৱস্থান ব্যৱহাৰকাৰী দ্বাৰা হস্তচালিতভাৱে সংহতি কৰা হৈছিল নে।" #: ../data/org.gnome.maps.gschema.xml.in.h:15 msgid "Number of recent places to store" msgstr "সংৰক্ষণ কৰিবলৈ শেহতীয়া স্থানবোৰৰ সংখ্যা" #: ../data/org.gnome.maps.gschema.xml.in.h:16 msgid "Number of recently visited places to store." msgstr "সংৰক্ষণ কৰিবলৈ শেহতীয়াভাৱে ভ্ৰমণ কৰা স্থানবোৰৰ সংখ্যা।" #: ../src/app-menu.ui.h:1 msgid "About" msgstr "বিষয়ে" #: ../src/app-menu.ui.h:2 msgid "Quit" msgstr "প্ৰস্থান কৰক" #: ../src/context-menu.ui.h:1 msgid "What’s here?" msgstr "ইয়াত কি আছে?" #: ../src/context-menu.ui.h:2 msgid "I’m here!" msgstr "মই ইয়াত আছো!" #: ../src/mainWindow.js:302 msgid "translator-credits" msgstr "নীলমদ্যুতি গোস্বামী (ngoswami@redhat.com)" #: ../src/mainWindow.js:305 msgid "A map application for GNOME" msgstr "GNOME ৰ বাবে এটা মানচিত্ৰ এপ্লিকেচন" #: ../src/main-window.ui.h:2 msgid "Go to current location" msgstr "বৰ্তমান অৱস্থানলৈ যাওক" #: ../src/main-window.ui.h:3 msgid "Choose map type" msgstr "মানচিত্ৰৰ ধৰণ বাছক" #: ../src/main-window.ui.h:4 msgid "Toggle route planner" msgstr "পথ পৰিকল্পক টগল কৰক" #: ../src/routeService.js:73 msgid "No route found." msgstr "কোনো পথ পোৱা নগল।" #: ../src/routeService.js:80 msgid "Route request failed." msgstr "পথৰ অনুৰোধ ব্যৰ্থ হল।" #: ../src/routeService.js:151 msgid "Start!" msgstr "আৰম্ভ কৰক!" #: ../src/searchResultBubble.js:60 #, javascript-format msgid "Country code: %s" msgstr "দেশৰ ক'ড: %s" #: ../src/searchResultBubble.js:66 #, javascript-format msgid "Postal code: %s" msgstr "পস্টেল ক'ড: %s" #. Translators: %s is a time expression with the format "%f h" or "%f min" */ #: ../src/sidebar.js:190 #, javascript-format msgid "Estimated time: %s" msgstr "আনুমানিক সময়: %s" #: ../src/user-location-bubble.ui.h:1 msgid "Current location" msgstr "বৰ্তমান অৱস্থান" #. To translators: %s can be "Unknown", "Exact" or "%f km²" #: ../src/user-location-bubble.ui.h:4 #, no-c-format msgid "Accuracy: %s" msgstr "সঠিকতা: %s" #. Translators: Accuracy of user location information */ #: ../src/utils.js:166 msgid "Unknown" msgstr "অজ্ঞাত" #. Translators: Accuracy of user location information */ #: ../src/utils.js:169 msgid "Exact" msgstr "অবিকল" #: ../src/utils.js:179 #, javascript-format msgid "%f km²" msgstr "%f km²" #: ../src/utils.js:276 #, javascript-format msgid "%f h" msgstr "%f h" #: ../src/utils.js:278 #, javascript-format msgid "%f min" msgstr "%f min" #: ../src/utils.js:288 #, javascript-format #| msgid "%f km²" msgid "%f km" msgstr "%f km" #: ../src/utils.js:290 #, javascript-format msgid "%f m" msgstr "%f m" #~ msgid "To" #~ msgstr "লৈ" #~ msgid "From" #~ msgstr "পৰা" #~ msgid " km2" #~ msgstr "km2" #~ msgid "Street" #~ msgstr "বাট" #~ msgid "Satellite" #~ msgstr "চেটেলাইট" 070701000001B1000081A400000000000000000000000166413409000107A7000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/be.po# Alyaksandr Koshal , 2021 # Black Beard (blackbeardboy), 2021 # Heorhi Puhachou , 2021 msgid "" msgstr "" "Project-Id-Version: gnome-maps main\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2024-02-14 22:30+0000\n" "PO-Revision-Date: 2024-02-15 11:41+0300\n" "Last-Translator: Yuras Shumovich \n" "Language-Team: Belarusian\n" "Language: be_BY\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n" "X-Generator: Poedit 3.4.2\n" #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.appdata.xml.in.in:6 data/org.gnome.Maps.desktop.in.in:4 #: data/ui/main-window.ui:27 src/application.js:64 src/mainWindow.js:147 #: src/mainWindow.js:647 msgid "Maps" msgstr "Карты" #: data/org.gnome.Maps.appdata.xml.in.in:7 msgid "Find places around the world" msgstr "Пошук месцаў па ўсім свеце" #: data/org.gnome.Maps.appdata.xml.in.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "Праграма Карты дае хуткі доступ да карт па ўсім свеце. Дазваляе хутка " "знайсці месца, якім вы зацікавіліся, шукаючы горад ці вуліцу, або знайсці " "месца для сустрэчы з сябрам." #: data/org.gnome.Maps.appdata.xml.in.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "Праграма Карты выкарыстоўвае сумесную базу даных OpenStreetMap, зробленую " "сотнямі тысяч людзей па ўсім свеце." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Maps.appdata.xml.in.in:451 src/mainWindow.js:644 msgid "The GNOME Project" msgstr "Праект GNOME" #: data/org.gnome.Maps.desktop.in.in:5 msgid "A simple maps application" msgstr "Простая праграма для працы з картамі" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in.in:14 msgid "Maps;" msgstr "Maps;Карты;Мапы;" #: data/org.gnome.Maps.desktop.in.in:17 msgid "Allows your location to be shown on the map." msgstr "Дазваляе паказаць ваша месцазнаходжанне на карце." #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "апошняе прагледжанае месцазнаходжанне" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "Каардынаты апошняга прагледжанага месцазнаходжання." #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "маштаб" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "Узровень маштабавання" #: data/org.gnome.Maps.gschema.xml:21 msgid "rotation" msgstr "паварот" #: data/org.gnome.Maps.gschema.xml:22 msgid "Map rotation in radians" msgstr "Паварот карты ў радыянах" #: data/org.gnome.Maps.gschema.xml:26 msgid "Map type" msgstr "Тып карты" #: data/org.gnome.Maps.gschema.xml:27 msgid "The type of map to display (street, aerial, etc.)" msgstr "Тып карты для паказу (вуліца, аэраздымак і інш.)" #: data/org.gnome.Maps.gschema.xml:31 msgid "Window size" msgstr "Памер акна" #: data/org.gnome.Maps.gschema.xml:32 msgid "Window size (width and height)." msgstr "Памер акна (шырыня і вышыня)." #: data/org.gnome.Maps.gschema.xml:36 msgid "Window position" msgstr "Пазіцыя акна" #: data/org.gnome.Maps.gschema.xml:37 msgid "Window position (X and Y)." msgstr "Пазіцыя акна (X і Y)." #: data/org.gnome.Maps.gschema.xml:41 msgid "Window maximized" msgstr "Разгортванне акна" #: data/org.gnome.Maps.gschema.xml:42 msgid "Window maximization state" msgstr "Стан акна – разгорнута" #: data/org.gnome.Maps.gschema.xml:46 msgid "Maximum number of search results" msgstr "Максімальная колькасць вынікаў пошуку" #: data/org.gnome.Maps.gschema.xml:47 msgid "Maximum number of search results from geocode search." msgstr "Максімальная колькасць вынікаў пошуку па геакоду." #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent places to store" msgstr "Колькасць захаваных нядаўніх месцаў" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited places to store." msgstr "Колькасць нядаўна наведаных месцаў, якую варта захоўваць." #: data/org.gnome.Maps.gschema.xml:56 msgid "Number of recent routes to store" msgstr "Колькасць захаваных нядаўніх маршрутаў" #: data/org.gnome.Maps.gschema.xml:57 msgid "Number of recently visited routes to store." msgstr "Колькасць нядаўна выкарыстаных маршрутаў, якую варта захоўваць." #: data/org.gnome.Maps.gschema.xml:61 msgid "OpenStreetMap username or email address" msgstr "Імя карыстальніка або адрас электроннай пошты OpenStreetMap" #: data/org.gnome.Maps.gschema.xml:62 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "" "Будзе паказана падчас аўтарызацыі карыстальніка для рэдагавання даных " "OpenStreetMap." #: data/org.gnome.Maps.gschema.xml:66 msgid "Last used transportation type for routing" msgstr "Апошні ўжыты тып перамяшчэння для маршрутызацыі" #: data/org.gnome.Maps.gschema.xml:70 msgid "Show scale" msgstr "Паказаць маштаб" #: data/org.gnome.Maps.gschema.xml:71 msgid "Whether to show the scale." msgstr "Ці трэба паказваць маштаб." #: data/ui/context-menu.ui:6 msgid "Route from Here" msgstr "Пачаць маршрут адсюль" #: data/ui/context-menu.ui:10 msgid "Add Intermediate Destination" msgstr "Дадаць прамежкавы пункт маршруту" #: data/ui/context-menu.ui:14 msgid "Route to Here" msgstr "Скончыць маршрут тут" #: data/ui/context-menu.ui:20 msgid "What's Here?" msgstr "Што тут?" #: data/ui/context-menu.ui:24 msgid "Copy Location" msgstr "Скапіяваць месцазнаходжанне" #: data/ui/context-menu.ui:28 msgid "Add to OpenStreetMap…" msgstr "Дадаць у OpenStreetMap…" #: data/ui/export-view-dialog.ui:7 msgid "Export view" msgstr "Экспарт вобласці прагляду" #: data/ui/export-view-dialog.ui:16 data/ui/send-to-dialog.ui:10 #: data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "_Скасаваць" #: data/ui/export-view-dialog.ui:26 msgid "_Export" msgstr "_Экспартаваць" #. Translators: This is a tooltip #: data/ui/favorite-list-row.ui:72 msgid "Remove Favorite" msgstr "Выдаліць з абраных" #: data/ui/favorites-popover.ui:11 msgid "No Favorites" msgstr "Няма абраных" #: data/ui/favorites-popover.ui:12 msgid "Add places to your favorites to get them listed here" msgstr "Дадайце месцазнаходжанні ў абраныя і яны будуць паказвацца тут" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:11 src/geoclue.js:106 msgid "Current Location" msgstr "Бягучае месцазнаходжанне" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:19 msgid "Layers" msgstr "Слаі" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:11 msgid "Print Route" msgstr "Надрукаваць маршрут" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:21 msgid "Favorites" msgstr "Абраныя" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:30 msgid "Route Planner" msgstr "Планавальнік маршруту" #: data/ui/help-overlay.ui:12 msgctxt "shortcut window" msgid "General" msgstr "Агульныя" #: data/ui/help-overlay.ui:15 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "Паказаць спалучэнні клавіш" #: data/ui/help-overlay.ui:21 msgctxt "shortcut window" msgid "Search" msgstr "Пошук" #: data/ui/help-overlay.ui:27 msgctxt "shortcut window" msgid "Explore points-of-interest" msgstr "Агляд пунктаў інтарэсу (POI)" #: data/ui/help-overlay.ui:33 msgctxt "shortcut window" msgid "Show last search results" msgstr "Паказаць апошнія вынікі пошуку" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "Пераключэнне планавальніка маршруту" #: data/ui/help-overlay.ui:45 msgctxt "shortcut window" msgid "Print route" msgstr "Друк маршруту" #: data/ui/help-overlay.ui:51 msgctxt "shortcut window" msgid "Quit" msgstr "Выйсці" #: data/ui/help-overlay.ui:57 msgctxt "shortcut window" msgid "Open main menu" msgstr "Адкрыць галоўнае меню" #: data/ui/help-overlay.ui:65 msgctxt "shortcut window" msgid "Map View" msgstr "Прагляд карты" #: data/ui/help-overlay.ui:68 msgctxt "shortcut window" msgid "Zoom in" msgstr "Павялічыць" #: data/ui/help-overlay.ui:74 msgctxt "shortcut window" msgid "Zoom out" msgstr "Паменшыць" #: data/ui/help-overlay.ui:80 msgctxt "shortcut window" msgid "Rotate clockwise" msgstr "Павярнуць па ходу гадзіннікавай стрэлкі" #: data/ui/help-overlay.ui:86 msgctxt "shortcut window" msgid "Rotate counter-clockwise" msgstr "Павярнуць супраць гадзіннікавай стрэлкі" #: data/ui/help-overlay.ui:92 msgctxt "shortcut window" msgid "Reset rotation" msgstr "Скасаваць паварот" #: data/ui/help-overlay.ui:98 msgctxt "shortcut window" msgid "Toggle scale" msgstr "Паказаць або схаваць маштаб" #: data/ui/help-overlay.ui:104 msgctxt "shortcut window" msgid "Go to current location" msgstr "Перайсці да бягучага месцазнаходжання" #: data/ui/help-overlay.ui:114 msgctxt "shortcut window" msgid "Switch to street view" msgstr "Пераключыцца на прагляд вуліц" #: data/ui/help-overlay.ui:121 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "Пераключыцца на прагляд аэраздымкі" #: data/ui/help-overlay.ui:127 msgctxt "shortcut window" msgid "Open shape layer" msgstr "Адкрыць слой фігуры" #: data/ui/layers-popover.ui:7 msgid "Show Scale" msgstr "Паказваць маштаб" #: data/ui/layers-popover.ui:16 msgid "Enable Experimental Map" msgstr "Уключыць эксперыментальную карту" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:21 msgid "Open Shape Layer…" msgstr "Адкрыць слой фігуры…" #: data/ui/main-window.ui:8 msgid "Set up OpenStreetMap Account…" msgstr "Наладзіць уліковы запіс OpenStreetMap…" #: data/ui/main-window.ui:12 msgid "Export as Image…" msgstr "Экспартаваць як выяву…" #: data/ui/main-window.ui:17 msgid "_Keyboard Shortcuts" msgstr "_Спалучэнні клавіш" #: data/ui/main-window.ui:22 msgid "About Maps" msgstr "Аб праграме Карты" #: data/ui/main-window.ui:48 msgid "Main Menu" msgstr "Галоўнае меню" #: data/ui/osm-account-dialog.ui:5 msgid "OpenStreetMap Account" msgstr "Уліковы запіс OpenStreetMap" #: data/ui/osm-account-dialog.ui:31 msgid "Sign In To Edit Maps" msgstr "Увайдзіце, каб рэдагаваць карты" #: data/ui/osm-account-dialog.ui:32 msgid "Help to improve the map, using an OpenStreetMap account." msgstr "Дапамажыце палепшыць карту праз уліковы запіс OpenStreetMap." #: data/ui/osm-account-dialog.ui:36 msgid "Sign In" msgstr "Увайсці" #: data/ui/osm-account-dialog.ui:59 msgid "Verification" msgstr "Праверка" #: data/ui/osm-account-dialog.ui:60 msgid "" "Copy the verification code shown when authorizing access in the browser." msgstr "" "Скапіруйце праверачны код, які паказваецца ў браўзеры падчас уваходу " "(Authorization code)" #: data/ui/osm-account-dialog.ui:69 msgid "Verification Code" msgstr "Праверачны код" #: data/ui/osm-account-dialog.ui:75 msgid "Verify" msgstr "Пацвердзіць" #: data/ui/osm-account-dialog.ui:110 msgid "Signed In" msgstr "Вы ўвайшлі" #: data/ui/osm-account-dialog.ui:111 msgid "Your OpenStreetMap account is active." msgstr "Уліковы запіс OpenStreetMap актыўны." #: data/ui/osm-account-dialog.ui:129 msgid "Sign Out" msgstr "Выйсці" #: data/ui/osm-edit-address.ui:11 msgid "Street" msgstr "Вуліца" #: data/ui/osm-edit-address.ui:22 msgid "House number" msgstr "Нумар дома" #: data/ui/osm-edit-address.ui:33 msgid "Postal code" msgstr "Паштовы індэкс" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:44 msgid "City" msgstr "Горад" #: data/ui/osm-edit-dialog.ui:8 msgctxt "dialog title" msgid "Edit on OpenStreetMap" msgstr "Рэдагаваць у OpenStreetMap" #: data/ui/osm-edit-dialog.ui:57 msgid "Type" msgstr "Тып" #: data/ui/osm-edit-dialog.ui:79 msgid "None" msgstr "Няма" #: data/ui/osm-edit-dialog.ui:108 msgid "Add Field" msgstr "Дадаць поле" #: data/ui/osm-edit-dialog.ui:130 msgid "Comment" msgstr "Каментарый" #: data/ui/osm-edit-dialog.ui:158 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "Змены карты будуць бачны на ўсіх картах, якія\n" "выкарыстоўваць даныя OpenStreetMap." #: data/ui/osm-edit-dialog.ui:186 msgid "Recently Used" msgstr "Нядаўна выкарыстаныя" #: data/ui/osm-edit-dialog.ui:225 src/mapView.js:663 msgid "Cancel" msgstr "Скасаваць" #: data/ui/osm-edit-dialog.ui:238 src/osmEditDialog.js:531 msgid "Next" msgstr "Наступны" #: data/ui/osm-edit-wikipedia.ui:8 msgid "Article" msgstr "Артыкул" #: data/ui/osm-edit-wikipedia.ui:21 msgid "Wikidata tag" msgstr "Метка Wikidata" #: data/ui/osm-edit-wikipedia.ui:32 msgid "Load Wikidata tag for article" msgstr "Загрузіць метку Wikidata для артыкула" #: data/ui/place-popover.ui:23 src/searchBar.js:55 msgid "Explore Nearby Places" msgstr "Агляд месцаў побач" #: data/ui/place-popover.ui:82 src/application.js:277 msgid "No results found" msgstr "Нічога не знойдзена" #: data/ui/place-popover.ui:92 src/application.js:255 msgid "An error has occurred" msgstr "Узнікла памылка" #. Translators: This is a tooltip #: data/ui/route-entry.ui:12 msgid "Change Route Order" msgstr "Змяніць парадак маршруту" #: data/ui/send-to-dialog.ui:7 msgid "Open Location" msgstr "Адкрыць месцазнаходжанне" #: data/ui/send-to-dialog.ui:64 msgid "Copy" msgstr "Капіяваць" #: data/ui/send-to-dialog.ui:70 msgid "Send To…" msgstr "Адправіць…" #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:62 msgid "Open Shape Layer" msgstr "Адкрыць слой фігуры" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "_Адкрыць" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:32 msgid "Toggle visible" msgstr "Пераключыць бачнасць" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:44 msgid "Remove Shape Layer" msgstr "Выдаліць слой фігуры" #: data/ui/sidebar.ui:207 msgid "Route search by GraphHopper" msgstr "Пошук маршруту ад GraphHopper" #: data/ui/sidebar.ui:272 msgid "" "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of " "transportation,\n" "e.g. a national provider might not include airlines, and a local provider " "could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" "Схемы маршрутаў для грамадскага транспарту пастаўляюцца староннімі\n" "сэрвісамі.\n" "GNOME не можа гарантаваць правільнасць паказаных маршрутаў і раскладаў.\n" "Звярніце ўвагу, што некаторыя пастаўшчыкі могуць не ўключаць усе даступныя " "віды транспарту,\n" "напр. нацыянальны пастаўшчык можа не ўключаць авіякампаніі, а ў мясцовага " "пастаўшчыка могуць\n" "адсутнічаць рэгіянальныя цягнікі.\n" "Калі гэта дарэчы, паказаныя назвы і брэнды павінны разглядацца як " "зарэгістраваныя гандлёвыя маркі." #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:98 msgid "Hide intermediate stops and information" msgstr "Схаваць прамежкавыя прыпынкі і звесткі пра іх" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:156 msgid "Show intermediate stops and information" msgstr "Паказаць прамежкавыя прыпынкі і звесткі пра іх" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:16 msgid "Leave Now" msgstr "Адпраўляецца зараз" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:17 msgid "Leave By" msgstr "Адпраўленне" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:18 msgid "Arrive By" msgstr "Прыбыццё" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:85 msgid "Show" msgstr "Паказваць" #: data/ui/transit-options-panel.ui:95 msgid "Buses" msgstr "Аўтобусы" #: data/ui/transit-options-panel.ui:101 msgid "Trams" msgstr "Трамваі" #: data/ui/transit-options-panel.ui:107 msgid "Trains" msgstr "Цягнікі" #: data/ui/transit-options-panel.ui:113 msgid "Subway" msgstr "Метро" #: data/ui/transit-options-panel.ui:119 msgid "Ferries" msgstr "Паромы" #: data/ui/transit-options-panel.ui:125 msgid "Airplanes" msgstr "Самалёты" #. Translators: This is a tooltip #: data/ui/place-bar.ui:33 data/ui/place-buttons.ui:27 msgid "Share Location" msgstr "Абагуліць месцазнаходжанне" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:11 msgid "Add to new route" msgstr "Дадаць новы маршрут" #. Translators: This is the button to find a route to a place #: data/ui/place-buttons.ui:15 msgid "Directions" msgstr "Напрамкі" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:36 msgid "Mark as Favorite" msgstr "Дадаць у абраныя" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:44 msgid "Edit on OpenStreetMap" msgstr "Рэдагаваць у OpenStreetMap" #. Translators: This is a tooltip #: data/ui/place-view.ui:52 msgid "Share location" msgstr "Абагуліць месцазнаходжанне" #: data/ui/poi-category-goback-row.ui:22 msgid "Back to Main Categories" msgstr "Вярнуцца да асноўных катэгорый" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:19 msgid "Reset Rotation" msgstr "Скасаваць паварот" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:32 msgid "Zoom Out" msgstr "Паменшыць" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:43 src/mapView.js:1238 msgid "Zoom In" msgstr "Павялічыць" #: lib/maps-file-data-source.c:262 lib/maps-file-data-source.c:338 #: lib/maps-file-data-source.c:418 msgid "Failed to find tile structure in directory" msgstr "Не ўдалося знайсці структуру фрагментаў у каталогу" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "Не ўдалося прааналізаваць XML-дакумент" #: lib/maps-osm.c:250 lib/maps-osm.c:403 msgid "Missing required attributes" msgstr "Адсутнічаюць абавязковыя атрыбуты" #: lib/maps-osm.c:451 lib/maps-osm.c:494 msgid "Could not find OSM element" msgstr "Не ўдалося знайсці элемент OSM" #: lib/maps-osm.c:508 msgid "Could not find user element" msgstr "Не ўдалося знайсці элемент карыстальніка" #: src/application.js:78 msgid "A path to a local tiles directory structure" msgstr "Шлях да каталога са структурай лакальных фрагментаў" #: src/application.js:84 msgid "Tile size for local tiles directory" msgstr "Памер фрагменту для каталога лакальных фрагментаў" #: src/application.js:88 msgid "Show the version of the program" msgstr "Паказаць нумар версіі праграмы" #: src/application.js:94 msgid "Search for places" msgstr "Пошук месца" #: src/application.js:105 src/application.js:106 msgid "[FILE…|URI]" msgstr "[ФАЙЛ…|URI]" #: src/application.js:284 #, javascript-format msgid "Invalid maps: URI: %s" msgstr "Памылковыя мапы: URI: %s" #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:75 #, javascript-format msgid "Maps at %f, %f.png" msgstr "Карта з %f, %f.png" #: src/exportViewDialog.js:174 msgid "Unable to export view" msgstr "Немагчыма экспартаваць вобласць прагляду" #: src/favoriteListRow.js:42 msgid "Favorite removed" msgstr "Выдалена з абраных" #: src/favoriteListRow.js:43 msgid "Undo" msgstr "Адрабіць" #: src/geoJSONSource.js:73 msgid "invalid coordinate" msgstr "памылковая каардыната" #: src/geoJSONSource.js:126 src/geoJSONSource.js:166 src/geoJSONSource.js:181 msgid "parse error" msgstr "памылка аналізу" #: src/geoJSONSource.js:160 msgid "unknown geometry" msgstr "невядомая геаметрыя" #: src/graphHopper.js:101 src/transitPlan.js:175 msgid "Route request failed." msgstr "Памылка запыту маршруту." #: src/graphHopper.js:108 src/transitPlan.js:167 msgid "No route found." msgstr "Маршрут не знойдзены." #: src/graphHopper.js:195 src/transitplugins/openTripPlanner.js:1163 msgid "Start!" msgstr "Старт!" #: src/mainWindow.js:59 msgid "All Layer Files" msgstr "Усе файлы слоя" #: src/mainWindow.js:522 msgid "Failed to connect to location service" msgstr "Не ўдалося злучыцца з сэрвісам месцазнаходжання" #: src/mainWindow.js:527 msgid "Turn on location services" msgstr "Уключыць сэрвісы месцазнаходжання" #: src/mainWindow.js:528 msgid "Location Settings" msgstr "Налады месцазнаходжання" #: src/mainWindow.js:645 msgid "translator-credits" msgstr "Юрась Шумовіч " #: src/mainWindow.js:649 msgid "Copyright © 2011 – 2023 Red Hat, Inc. and The GNOME Maps authors" msgstr "" "Аўтарскае права © 2011 – 2023 Red Hat, Inc. і аўтары праграмы Карты GNOME" #: src/mainWindow.js:665 #, javascript-format msgid "Map data by %s and contributors" msgstr "Картаграфічныя даныя ад %s і яго ўдзельнікаў" #: src/mainWindow.js:666 msgid "Map Data Provider" msgstr "Пастаўшчык картаграфічных даных" #: src/mainWindow.js:678 msgid "Map Tile Provider" msgstr "Пастаўшчык фрагментаў карты" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:686 #, javascript-format msgid "Map tiles provided by %s" msgstr "Фрагменты карты пастаўляюцца %s" #: src/mainWindow.js:716 msgid "Search Provider" msgstr "Пастаўшчык пошукавай сістэмы" #: src/mainWindow.js:719 #, javascript-format msgid "Search provided by %s using %s" msgstr "Пошук забяспечваецца %s з дапамогай %s" #: src/mapView.js:637 src/mapView.js:702 msgid "Failed to open layer" msgstr "Не ўдалося адкрыць слой" #: src/mapView.js:656 msgid "Do you want to continue?" msgstr "Хочаце працягнуць?" #: src/mapView.js:657 #, javascript-format msgid "" "You are about to open files with a total size of %s MB. This could take some " "time to load" msgstr "" "Вы маеце намер адкрыць файлы агульным памерам %s МБ. На загрузку іх можа " "спатрэбіцца некаторы час" #: src/mapView.js:664 src/transitplugins/openTripPlanner.js:1239 #: src/transitplugins/openTripPlanner2.js:267 msgid "Continue" msgstr "Працягвайце рух" #: src/mapView.js:696 msgid "File type is not supported" msgstr "Тып файла не падтрымліваецца" #: src/mapView.js:733 msgid "Failed to open GeoURI" msgstr "Не ўдалося адкрыць GeoURI" #: src/mapView.js:1197 msgid "Nothing found here!" msgstr "Тут нічога не знойдзена!" #: src/mapView.js:1237 msgid "Zoom in to add location" msgstr "Павялічце, каб дадаць месцазнаходжанне" #: src/mapView.js:1258 msgid "Location was added in OpenStreetMap" msgstr "Месца дададзена на OpenStreetMap" #. switch back to the sign-in view, and show a toast indicating #. that verification failed #: src/osmAccountDialog.js:134 msgid "The verification code didn’t match, please try again." msgstr "Праверачны код не супадае, паспрабуйце зноў." #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:335 msgid "Incorrect user name or password" msgstr "Няправільнае імя карыстальніка або пароль" #: src/osmConnection.js:337 msgid "Success" msgstr "Паспяхова" #: src/osmConnection.js:339 msgid "Bad request" msgstr "Памылковы запыт" #: src/osmConnection.js:341 msgid "Object not found" msgstr "Аб'ект не знойдзены" #: src/osmConnection.js:343 msgid "Conflict, someone else has just modified the object" msgstr "Канфлікт, хтосьці толькі што змяніў аб'ект" #: src/osmConnection.js:345 msgid "Object has been deleted" msgstr "Аб'ект быў выдалены" #: src/osmConnection.js:347 msgid "Way or relation refers to non-existing children" msgstr "Шлях ці сувязь спасылаецца на неіснуючага нашчадка" #: src/osmEditDialog.js:106 msgid "Name" msgstr "Назва" #: src/osmEditDialog.js:109 msgid "The official name. This is typically what appears on signs." msgstr "Афіцыйная назва. Звычайна гэта тое, што напісана на шыльдзе." #: src/osmEditDialog.js:112 msgid "Address" msgstr "Адрас" #: src/osmEditDialog.js:120 src/placeView.js:275 msgid "Website" msgstr "Вэб-сайт" #: src/osmEditDialog.js:124 msgid "This is not a valid URL. Make sure to include http:// or https://." msgstr "" "Гэта няправільны URL. Пераканайцеся, што ён змяшчае частку http:// або " "https://." #: src/osmEditDialog.js:125 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" "Афіцыйны сайт. Імкніцеся выкарыстоўваць URL у самай першай форме, то-бок " "http://example.com замест http://example.com/index.html." #: src/osmEditDialog.js:130 msgid "Phone" msgstr "Тэлефон" #: src/osmEditDialog.js:134 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" "Нумар тэлефона. Выкарыстоўвайце міжнародны фармат, які пачынаецца са знака " "+. Улічвайце наяўнасць мясцовых законаў аб прыватнасці, асабліва аб " "прыватнасці нумароў тэлефонаў." #: src/osmEditDialog.js:139 msgid "E-mail" msgstr "Электронная пошта" #: src/osmEditDialog.js:144 msgid "" "This is not a valid email address. Make sure to not include the mailto: " "protocol prefix." msgstr "" "Гэта няправільны адрас электроннай пошты. Пераканайцеся, што ён не змяшчае " "прэфікс пратакола mailto:" #: src/osmEditDialog.js:145 msgid "" "Contact email address for inquiries. Add only email addresses that are " "intended to be publicly used." msgstr "" "Адрас электроннай пошты для запытаў. Дадавайце толькі адрасы электроннай " "пошты, прызначаныя для публічнага выкарыстання." #. Translators: This is the text for the "Wikipedia" link at the end #. of summaries #: src/osmEditDialog.js:149 src/placeView.js:727 msgid "Wikipedia" msgstr "Вікіпедыя" #: src/osmEditDialog.js:156 src/placeView.js:399 msgid "Opening hours" msgstr "Час працы" #: src/osmEditDialog.js:161 msgid "See the link in the label for help on format." msgstr "Даведку аб фармаце глядзіце па спасылцы ў метцы." #. TODO: this is a bit of a work-around to re-interpret the population, #. * stored as a string into an integer to convert back to a locale- #. * formatted string. Ideally it should be kept as an integer value #. * in the Place class. But this will also need to be handled by the #. * PlaceStore, possible in a backwards-compatible way #. #: src/osmEditDialog.js:164 src/placeView.js:509 msgid "Population" msgstr "Насельніцтва" #: src/osmEditDialog.js:169 src/placeView.js:538 msgid "Altitude" msgstr "Вышыня над узроўнем мора" #: src/osmEditDialog.js:172 msgid "Elevation (height above sea level) of a point in meters." msgstr "Вышыня пункта (над узроўнем мора) у метрах." #: src/osmEditDialog.js:175 msgid "Wheelchair access" msgstr "Даступнасць на калясцы" #: src/osmEditDialog.js:178 src/osmEditDialog.js:187 src/osmEditDialog.js:198 #: src/osmEditDialog.js:233 msgid "Yes" msgstr "Так" #: src/osmEditDialog.js:179 src/osmEditDialog.js:188 src/osmEditDialog.js:199 #: src/osmEditDialog.js:234 msgid "No" msgstr "Не" #: src/osmEditDialog.js:180 msgid "Limited" msgstr "Абмежавана" #: src/osmEditDialog.js:181 msgid "Designated" msgstr "Прыстасавана" #: src/osmEditDialog.js:184 msgid "Internet access" msgstr "Доступ да інтэрнэту" #: src/osmEditDialog.js:189 msgid "Wi-Fi" msgstr "Wi-Fi" #: src/osmEditDialog.js:190 msgid "Wired" msgstr "Правадное злучэнне" #: src/osmEditDialog.js:191 msgid "Terminal" msgstr "Тэрмінал" #: src/osmEditDialog.js:192 msgid "Service" msgstr "Сэрвіс" #: src/osmEditDialog.js:195 msgid "Takeout" msgstr "Ежа навынас" #: src/osmEditDialog.js:200 msgid "Only" msgstr "Толькі" #: src/osmEditDialog.js:203 msgid "Religion" msgstr "Рэлігія" #: src/osmEditDialog.js:206 src/translations.js:286 msgid "Animism" msgstr "Анімізм" #: src/osmEditDialog.js:207 msgid "Bahá’í" msgstr "Бахаізм" #: src/osmEditDialog.js:208 src/translations.js:288 msgid "Buddhism" msgstr "Будызм" #: src/osmEditDialog.js:209 src/translations.js:289 msgid "Caodaism" msgstr "Каадаізм" #: src/osmEditDialog.js:210 src/translations.js:290 msgid "Christianity" msgstr "Хрысціянства" #: src/osmEditDialog.js:211 src/translations.js:291 msgid "Confucianism" msgstr "Канфуцыянства" #: src/osmEditDialog.js:212 src/translations.js:292 msgid "Hinduism" msgstr "Індуізм" #: src/osmEditDialog.js:213 src/translations.js:293 msgid "Jainism" msgstr "Джайнізм" #: src/osmEditDialog.js:214 src/translations.js:294 msgid "Judaism" msgstr "Іўдаізм" #: src/osmEditDialog.js:215 src/translations.js:295 msgid "Islam" msgstr "Іслам" #: src/osmEditDialog.js:216 src/translations.js:296 msgid "Multiple Religions" msgstr "Некалькі рэлігій" #: src/osmEditDialog.js:217 src/translations.js:297 msgid "Paganism" msgstr "Паганства" #: src/osmEditDialog.js:218 src/translations.js:298 msgid "Pastafarianism" msgstr "Пастафарыянства" #: src/osmEditDialog.js:219 src/translations.js:299 msgid "Scientology" msgstr "Саенталогія" #: src/osmEditDialog.js:220 src/translations.js:300 msgid "Shinto" msgstr "Сінтаізм" #: src/osmEditDialog.js:221 src/translations.js:301 msgid "Sikhism" msgstr "Сікхізм" #: src/osmEditDialog.js:222 src/translations.js:302 msgid "Spiritualism" msgstr "Спірытуалізм" #: src/osmEditDialog.js:223 src/translations.js:303 msgid "Taoism" msgstr "Даасізм" #: src/osmEditDialog.js:224 src/translations.js:304 msgid "Unitarian Universalism" msgstr "Уніяцкі ўніверсалізм" #: src/osmEditDialog.js:225 src/translations.js:305 msgid "Voodoo" msgstr "Вуду" #: src/osmEditDialog.js:226 src/translations.js:306 msgid "Yazidism" msgstr "Езідызм" #: src/osmEditDialog.js:227 src/translations.js:307 msgid "Zoroastrianism" msgstr "Зараастрызм" #: src/osmEditDialog.js:230 src/poiCategories.js:176 msgid "Toilets" msgstr "Прыбіральні" #: src/osmEditDialog.js:237 msgid "Note" msgstr "Нататка" #: src/osmEditDialog.js:240 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" "Інфармацыя, якая выкарыстоўваецца для інфармавання іншых картографаў аб " "невідавочных звестках пра элемент, намерах аўтара пры яго стварэнні або " "падказкі для далейшага ўдасканалення." #: src/osmEditDialog.js:339 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "Дадаць у OpenStreetMap" #: src/osmEditDialog.js:393 msgid "Select Type" msgstr "Выберыце тып" #: src/osmEditDialog.js:515 msgid "Done" msgstr "Гатова" #: src/osmEditDialog.js:818 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "" "Фармат, які выкарыстоўваецца, павінен утрымліваць код мовы і загаловак " "артыкула, напрыклад \"en:Назва артыкула\"." #: src/osmEditDialog.js:824 msgid "Use the reload button to load the Wikidata tag for the selected article" msgstr "" "Каб загрузіць для выбранага артыкула метку Wikidata, націсніце кнопку " "перазагрузкі" #: src/osmEditDialog.js:832 msgid "Couldn't find Wikidata tag for article" msgstr "Не ўдалося знайсці метку Wikidata для артыкула" #: src/photonUtils.js:118 msgid "Unnamed place" msgstr "Неназванае месца" #: src/placeEntry.js:274 msgid "Failed to parse Geo URI" msgstr "Не ўдалося прааналізаваць Geo URI" #: src/placeEntry.js:286 msgid "Failed to parse Maps URI" msgstr "Не ўдалося прааналізаваць URI карты" #. 300 ft (300 * 12 * 0.0254 m) #. #. * Translators: This a format string for showing a distance to a place #. * is lower than a "quite short" distance. #. * The "less than" symbol can be substituded with an appropriate one, if #. * needed (e.g. using the correct direction, or alternative symbol). #. * The %s should be kept, and is substituted with a label representing the #. * short distance. The \u2009 (thin space) could also be adjusted if needed #: src/placeListRow.js:46 #, javascript-format msgctxt "short distance format string" msgid "< %s" msgstr "< %s" #: src/placeView.js:263 msgid "Coordinates" msgstr "Каардынаты" #: src/placeView.js:267 msgid "Accuracy" msgstr "Дакладнасць" #. Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) #: src/placeView.js:270 #, javascript-format msgid "Accuracy: %s" msgstr "Дакладнасць: %s" #. since the phone numbers are typically always rendered #. * left-to-right, insert an explicit LRM char to avoid issues #. * with phone numbers in international format starting with a + #. * which is considered a "weak" character to determine Unicode #. * text direction #. #: src/placeView.js:289 msgid "Phone number" msgstr "Нумар тэлефона" #: src/placeView.js:308 msgid "Email" msgstr "Электронная пошта" #. If a reference to a named floor (named or symbolic) exists #. * refer to it directly. #. #. Translators: #. * This is a reference to named building floor, using a label #. * or a code, as "displayed in the elevator" #. #: src/placeView.js:323 src/placeView.js:362 msgid "Floor" msgstr "Паверх" #: src/placeView.js:325 #, javascript-format msgid "Floor %s" msgstr "%s паверх" #: src/placeView.js:337 msgid "At ground level" msgstr "На ўзроўні зямлі" #. Translators: #. * This is a reference to a number of floors above #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:346 #, javascript-format msgid "%s floor above ground level" msgid_plural "%s floors above ground level" msgstr[0] "%s паверх вышэй за ўзровень зямлі" msgstr[1] "%s паверхі вышэй за ўзровень зямлі" msgstr[2] "%s паверхаў вышэй за ўзровень зямлі" #. Translators: #. * This is a reference to a number of floors below #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:357 #, javascript-format msgid "%s floor below ground level" msgid_plural "%s floors below ground level" msgstr[0] "%s паверх ніжэй за ўзровень зямлі" msgstr[1] "%s паверхі ніжэй за ўзровень зямлі" msgstr[2] "%s паверхаў ніжэй за ўзровень зямлі" #. Translators: #. * The establishment offers customers to purchase meals #. * (or similar) to be consumed elsewhere #. #: src/placeView.js:375 msgid "Offers takeout" msgstr "Прапануе ежу на вынас" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed on-premise. #. #: src/placeView.js:383 msgid "Does not offer takeout" msgstr "Не прапануе ежу на вынас" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed elsewhere. E.g. #. * there is no seating on-premise for eating/drinking #. #: src/placeView.js:392 msgid "Only offers takeout" msgstr "Прапануе толькі ежу на вынас" #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/placeView.js:409 msgid "Public internet access" msgstr "Публічны доступ да інтэрнэту" #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/placeView.js:418 msgid "No internet access" msgstr "Няма доступу да інтэрнэту" #. Translators: #. * This means a WLAN Hotspot, also known as wireless, wifi or Wi-Fi. #. #: src/placeView.js:426 msgid "Public Wi-Fi" msgstr "Агульнадаступны Wi-Fi" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/placeView.js:434 msgid "Wired internet access" msgstr "Правадны доступ да інтэрнэту" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/placeView.js:442 msgid "Computers available for use" msgstr "Даступна карыстанне камп'ютарам" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/placeView.js:450 msgid "Internet assistance available" msgstr "Даступна дапамога з інтэрнэтам" #: src/placeView.js:456 msgid "No toilets available" msgstr "Туалетаў няма" #: src/placeView.js:459 msgid "Toilets available" msgstr "Туалеты ёсць" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #: src/placeView.js:468 msgid "Wheelchair accessible" msgstr "Даступна для інвалідных калясак" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/placeView.js:478 msgid "Limited wheelchair accessibility" msgstr "Абмежаваная даступнасць для інвалідных калясак" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #: src/placeView.js:487 msgid "Not wheelchair accessible" msgstr "Недаступна для інвалідных калясак" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/placeView.js:497 msgid "Designated for wheelchair users" msgstr "Прыстасавана для людзей на інваліднай калясцы" #. * #. * Translators: this is a label indicating an altitude below #. * sea level, where the %s placeholder is the altitude relative #. * to mean sea level in the "negative direction" #. #: src/placeView.js:528 #, javascript-format msgid "%s below sea level" msgstr "%s ніжэй за ўзровень мора" #. * #. * Translators: this indicates a place is located at (or very #. * close to) mean sea level #. #: src/placeView.js:535 msgid "At sea level" msgstr "На ўзроўні мора" #: src/placeView.js:544 msgid "Religion:" msgstr "Рэлігія:" #: src/place.js:568 msgid "Place not found in OpenStreetMap" msgstr "Месца не знойдзена на OpenStreetMap" #: src/place.js:575 msgid "Coordinates in URL are not valid" msgstr "Каардынаты ў URL несапраўдныя" #: src/place.js:584 msgid "URL is not supported" msgstr "URL не падтрымліваецца" #: src/poiCategories.js:132 msgid "Amenities" msgstr "Інфраструктура" #: src/poiCategories.js:135 msgid "ATMs" msgstr "Банкаматы" #: src/poiCategories.js:141 msgid "Post Boxes" msgstr "Паштовая скрыня" #: src/poiCategories.js:147 msgid "Post Offices" msgstr "Паштовыя аддзяленні" #: src/poiCategories.js:153 msgid "Police" msgstr "Міліцыя (паліцыя)" #: src/poiCategories.js:159 msgid "Libraries" msgstr "Бібліятэкі" #: src/poiCategories.js:165 msgid "Pharmacies" msgstr "Аптэкі" #: src/poiCategories.js:171 msgid "Recycling" msgstr "Сметніцы" #: src/poiCategories.js:182 msgid "Wheelchair-accessible Toilets" msgstr "Туалеты абсталяваныя для інвалідных калясак" #: src/poiCategories.js:188 msgid "Baggage Lockers" msgstr "Камеры захоўвання" #: src/poiCategories.js:196 msgid "Eating & Drinking" msgstr "Ежа і напоі" #: src/poiCategories.js:200 msgid "Restaurants" msgstr "Рэстараны" #: src/poiCategories.js:205 msgid "Fast Food" msgstr "Фастфуд" #: src/poiCategories.js:210 msgid "Food Courts" msgstr "Фудкорты" #: src/poiCategories.js:215 msgid "Pubs" msgstr "Пабы" #: src/poiCategories.js:221 msgid "Bars" msgstr "Бары" #: src/poiCategories.js:226 msgid "Cafes" msgstr "Кафэ" #: src/poiCategories.js:231 msgid "Ice Cream" msgstr "Марожанае" #: src/poiCategories.js:236 msgid "Food, Snacks, and Beverage Machines" msgstr "Аўтаматы з ежай і напоямі" #: src/poiCategories.js:244 msgid "Shopping" msgstr "Гандаль" #: src/poiCategories.js:248 msgid "Supermarkets" msgstr "Супермаркеты" #: src/poiCategories.js:254 msgid "Convenience Stores" msgstr "Крамы" #: src/poiCategories.js:259 msgid "Shopping Malls" msgstr "Гандлёвыя цэнтры" #: src/poiCategories.js:265 msgid "Clothes" msgstr "Адзенне" #: src/poiCategories.js:271 msgid "Shoes" msgstr "Абутак" #: src/poiCategories.js:276 msgid "Electronics" msgstr "Электроніка" #: src/poiCategories.js:282 msgid "Alcohol" msgstr "Алкаголь" #: src/poiCategories.js:288 msgid "Bakeries" msgstr "Выпечка, пякарні" #: src/poiCategories.js:294 msgid "Flowers" msgstr "Кветкі" #: src/poiCategories.js:301 msgid "Transportation" msgstr "Транспарт" #: src/poiCategories.js:305 msgid "Bus & Tram Stops" msgstr "Аўтобусныя і трамвайныя прыпынкі" #: src/poiCategories.js:313 msgid "Train & Subway Stations" msgstr "Станцыі метро і паяздоў" #: src/poiCategories.js:321 msgid "Tickets" msgstr "Білеты" #: src/poiCategories.js:329 msgid "Parking" msgstr "Стаянка" #: src/poiCategories.js:334 msgid "Bicycle Parking" msgstr "Веластаянка" #: src/poiCategories.js:339 msgid "Bicycle Rental" msgstr "Пракат веласіпеда" #: src/poiCategories.js:344 msgid "Car Rental" msgstr "Пракат машыны" #: src/poiCategories.js:349 msgid "Fuel" msgstr "Запраўка" #: src/poiCategories.js:354 msgid "EV Charging" msgstr "Зарадка электратранспарту" #: src/poiCategories.js:362 msgid "Healthcare" msgstr "Ахова здароўя" #: src/poiCategories.js:366 msgid "Clinics" msgstr "Клінікі" #: src/poiCategories.js:372 msgid "Hospitals" msgstr "Бальніцы" #: src/poiCategories.js:378 msgid "Dentists" msgstr "Стаматалогія" #: src/poiCategories.js:386 msgid "Accommodation" msgstr "Начлег" #: src/poiCategories.js:390 msgid "Hotels" msgstr "Гатэлі" #: src/poiCategories.js:395 msgid "Hostels" msgstr "Хостэлы" #: src/poiCategories.js:400 msgid "Bed & Breakfast" msgstr "B&B, Начлег і сняданак" #: src/poiCategories.js:405 msgid "Campings" msgstr "Кемпінгі" #: src/poiCategories.js:412 msgid "Recreation" msgstr "Адпачынак" #: src/poiCategories.js:416 msgid "Parks" msgstr "Паркі" #: src/poiCategories.js:421 msgid "Playgrounds" msgstr "Пляцоўкі для гульні" #: src/poiCategories.js:425 msgid "Beaches" msgstr "Пляжы" #: src/poiCategories.js:430 msgid "Nature Reserves" msgstr "Запаведнікі" #: src/poiCategories.js:436 msgid "Theme Parks" msgstr "Тэматычныя паркі" #: src/poiCategories.js:441 msgid "Theaters" msgstr "Тэатры" #: src/poiCategories.js:447 msgid "Movie Theaters" msgstr "Кінатэатры" #: src/poiCategories.js:453 msgid "Night Clubs" msgstr "Начныя клубы" #: src/poiCategories.js:460 msgid "Tourism" msgstr "Турызм" #: src/poiCategories.js:464 msgid "Museums" msgstr "Музеі" #: src/poiCategories.js:470 msgid "Attractions" msgstr "Цікавосткі" #: src/poiCategories.js:475 msgid "Artworks" msgstr "Аб'екты мастацтва" #: src/poiCategories.js:480 msgid "Tourist Information" msgstr "Інфармацыя для турыстаў" #: src/poiCategories.js:487 msgid "Sports" msgstr "Спорт" #: src/poiCategories.js:491 msgid "Gyms" msgstr "Трэнажорныя залы" #: src/poiCategories.js:497 msgid "Outdoor Gyms" msgstr "Трэнажорныя залы на вуліцы" #: src/poiCategories.js:503 msgid "Golf Courses" msgstr "Палі для гольфа" #: src/printLayout.js:350 #, javascript-format msgid "From %s to %s" msgstr "З %s па %s" #: src/printOperation.js:49 msgid "Loading map tiles for printing" msgstr "Загрузка фрагментаў карты для друку" #: src/printOperation.js:50 msgid "You can abort printing if this takes too long" msgstr "Вы можаце перапыніць друк, калі ён займае занадта шмат часу" #: src/printOperation.js:52 msgid "Abort printing" msgstr "Перапыніць друк" #. Translators: this is add via location tooltip #: src/routeEntry.js:60 msgid "Add via location" msgstr "Дадаць прамежкавае месцазнаходжанне" #. Translators: this is remove via location tooltip #: src/routeEntry.js:70 msgid "Remove via location" msgstr "Выдаліць прамежкавае месцазнаходжанне" #. Translators: this is reverse route tooltip #: src/routeEntry.js:76 msgid "Reverse route" msgstr "Змяніць напрамак маршруту" #: src/searchBar.js:45 msgid "Search" msgstr "Пошук" #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:84 #, javascript-format msgid "Add %s to %s" msgstr "Дадаць %s у %s" #: src/sendToDialog.js:181 msgid "Failed to open URI" msgstr "Не ўдалося адкрыць URI" #: src/sendToDialog.js:246 #, javascript-format msgid "Open with %s" msgstr "Адкрыць праз %s" #: src/shapeLayer.js:109 msgid "failed to load file" msgstr "не ўдалося загрузіць файл" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:328 #, javascript-format msgid "Estimated time: %s" msgstr "Прыблізны час: %s" #: src/sidebar.js:398 #, javascript-format msgid "Itineraries provided by %s" msgstr "Маршруты пастаўляюцца %s" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:39 #, javascript-format msgid "Start at %s" msgstr "Старт у %s" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:45 src/transitplugins/openTripPlanner2.js:236 msgid "Start" msgstr "Старт" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:63 #, javascript-format msgid "Walk %s" msgstr "Пешшу %s" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:77 #, javascript-format msgid "Arrive at %s" msgstr "Прыбыццё ў %s" #: src/transit.js:79 src/transitplugins/openTripPlanner.js:1176 #: src/transitplugins/openTripPlanner2.js:255 msgid "Arrive" msgstr "Прыбыццё" #: src/transitLegRow.js:69 msgid "Show walking instructions" msgstr "Паказаць пешы маршрут" #: src/transitLegRow.js:70 msgid "Hide walking instructions" msgstr "Схаваць пешы маршрут" #: src/transitMoreRow.js:37 msgid "Load earlier alternatives" msgstr "Загрузіць больш раннія варыянты" #: src/transitMoreRow.js:39 msgid "Load later alternatives" msgstr "Загрузіць больш познія варыянты" #: src/transitMoreRow.js:52 msgid "No earlier alternatives found." msgstr "Больш ранніх варыянтаў не знойдзена." #: src/transitMoreRow.js:54 msgid "No later alternatives found." msgstr "Больш позніх варыянтаў не знойдзена." #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:138 msgctxt "month-day-date" msgid "%b %e" msgstr "%e %b" #: src/transitPlan.js:171 msgid "No timetable data found for this route." msgstr "Для гэтага маршруту расклад руху не знойдзены." #: src/transitPlan.js:179 msgid "No provider found for this route." msgstr "Для гэтага маршруту пастаўшчык даных не знойдзены." #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:300 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:331 #, javascript-format msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "%s хвіліна" msgstr[1] "%s хвіліны" msgstr[2] "%s хвілін" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:343 #, javascript-format msgid "%s hour" msgid_plural "%s hours" msgstr[0] "%s гадзіна" msgstr[1] "%s гадзіны" msgstr[2] "%s гадзін" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:351 #, javascript-format msgid "%s:%s hour" msgid_plural "%s:%s hours" msgstr[0] "%s:%s гадзіна" msgstr[1] "%s:%s гадзіны" msgstr[2] "%s:%s гадзін" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:744 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: src/translations.js:55 msgid "Around the clock" msgstr "Кругласутачна" #: src/translations.js:57 msgid "From sunrise to sunset" msgstr "Увесь дзень" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:123 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s,%s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:137 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s,%s,%s" #: src/translations.js:156 msgid "Every day" msgstr "Штодзень" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:168 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:179 msgid "Public holidays" msgstr "Дзяржаўныя святы" #: src/translations.js:181 msgid "School holidays" msgstr "Школьныя канікулы" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:221 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: src/translations.js:235 msgid "not open" msgstr "не адкрыць" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:250 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:287 msgid "Bahá'í" msgstr "Бахаі" #. Translators: Accuracy of user location information #: src/utils.js:248 msgid "Unknown" msgstr "Невядома" #. Translators: Accuracy of user location information #: src/utils.js:251 msgid "Exact" msgstr "Дакладна" #. Translators: this is a duration with only hours, using #. * an abbreviation for hours, corresponding to 'h' in English #. #: src/utils.js:307 #, javascript-format msgid "%s h" msgstr "%s гадз" #. Translators: this is a duration with hours and minutes parts #. * using abbreviations for hours and minutes, corresponding to 'h' #. * and 'min' in English. The minutes has appropriate plural variations #. #: src/utils.js:313 #, javascript-format msgid "%s h %s min" msgid_plural "%s h %s min" msgstr[0] "%s гадз %s хв" msgstr[1] "%s гадз %s хв" msgstr[2] "%s гадз %s хв" #. Translators: this is a duration with minutes part #. * using abbreviation for minutes, corresponding to 'min' in English #. * with appropriate plural variations #. #: src/utils.js:320 #, javascript-format msgid "%s min" msgid_plural "%s min" msgstr[0] "%s хв" msgstr[1] "%s хв" msgstr[2] "%s хв" #. Translators: this is a duration of less than one minute #. * with seconds using an abbreviation for seconds, corresponding to #. * 's' in English with appropriate plural forms #. #: src/utils.js:326 #, javascript-format msgid "%s s" msgid_plural "%s s" msgstr[0] "%s с" msgstr[1] "%s с" msgstr[2] "%s с" #. Translators: This is a distance measured in kilometers #: src/utils.js:337 #, javascript-format msgid "%s km" msgstr "%s км" #. Translators: This is a distance measured in meters #: src/utils.js:340 #, javascript-format msgid "%s m" msgstr "%s м" #. Translators: This is a distance measured in miles #: src/utils.js:348 #, javascript-format msgid "%s mi" msgstr "%s міл." #. Translators: This is a distance measured in feet #: src/utils.js:351 #, javascript-format msgid "%s ft" msgstr "%s ф." #: src/transitplugins/goMetro.js:61 msgid "This plugin doesn't support latest arrival" msgstr "Гэтая ўбудова не падтрымлівае апошняга прыбыцця" #: src/transitplugins/openTripPlanner.js:1237 #: src/transitplugins/openTripPlanner2.js:266 #, javascript-format msgid "Continue on %s" msgstr "Працягвайце рух на «%s»" #: src/transitplugins/openTripPlanner.js:1242 #: src/transitplugins/openTripPlanner2.js:270 #, javascript-format msgid "Turn left on %s" msgstr "Павярніце налева на «%s»" #: src/transitplugins/openTripPlanner.js:1244 #: src/transitplugins/openTripPlanner2.js:271 msgid "Turn left" msgstr "Павярніце налева" #: src/transitplugins/openTripPlanner.js:1247 #: src/transitplugins/openTripPlanner2.js:275 #, javascript-format msgid "Turn slightly left on %s" msgstr "Плаўны паварот налева на «%s»" #: src/transitplugins/openTripPlanner.js:1249 #: src/transitplugins/openTripPlanner2.js:276 msgid "Turn slightly left" msgstr "Плаўны паварот налева" #: src/transitplugins/openTripPlanner.js:1252 #: src/transitplugins/openTripPlanner2.js:280 #, javascript-format msgid "Turn sharp left on %s" msgstr "Рэзкі паварот налева на «%s»" #: src/transitplugins/openTripPlanner.js:1254 #: src/transitplugins/openTripPlanner2.js:281 msgid "Turn sharp left" msgstr "Рэзкі паварот налева" #: src/transitplugins/openTripPlanner.js:1257 #: src/transitplugins/openTripPlanner2.js:284 #, javascript-format msgid "Turn right on %s" msgstr "Павярніце направа на «%s»" #: src/transitplugins/openTripPlanner.js:1259 #: src/transitplugins/openTripPlanner2.js:285 msgid "Turn right" msgstr "Павярніце направа" #: src/transitplugins/openTripPlanner.js:1262 #: src/transitplugins/openTripPlanner2.js:289 #, javascript-format msgid "Turn slightly right on %s" msgstr "Плаўны паварот направа на «%s»" #: src/transitplugins/openTripPlanner.js:1264 #: src/transitplugins/openTripPlanner2.js:290 msgid "Turn slightly right" msgstr "Плаўны паварот направа" #: src/transitplugins/openTripPlanner.js:1267 #: src/transitplugins/openTripPlanner2.js:294 #, javascript-format msgid "Turn sharp right on %s" msgstr "Рэзкі паварот направа на «%s»" #: src/transitplugins/openTripPlanner.js:1269 #: src/transitplugins/openTripPlanner2.js:295 msgid "Turn sharp right" msgstr "Рэзкі паварот направа" #: src/transitplugins/openTripPlanner.js:1275 #: src/transitplugins/openTripPlanner2.js:302 #, javascript-format msgid "At the roundabout, take exit %s" msgstr "На кальцавой развязцы павярніце на з'езд %s" #: src/transitplugins/openTripPlanner.js:1277 #: src/transitplugins/openTripPlanner2.js:305 #, javascript-format msgid "At the roundabout, take exit to %s" msgstr "На кальцавой развязцы павярніце на з'езд да «%s»" #: src/transitplugins/openTripPlanner.js:1279 #: src/transitplugins/openTripPlanner2.js:307 msgid "Take the roundabout" msgstr "Выязджайце на кальцавую развязку" #: src/transitplugins/openTripPlanner.js:1283 #: src/transitplugins/openTripPlanner2.js:315 #, javascript-format msgid "Take the elevator and get off at %s" msgstr "Увайдзіце ў ліфт і выйдзіце на «%s»" #: src/transitplugins/openTripPlanner.js:1285 #: src/transitplugins/openTripPlanner2.js:316 msgid "Take the elevator" msgstr "Увайдзіце ў ліфт" #: src/transitplugins/openTripPlanner.js:1289 #: src/transitplugins/openTripPlanner2.js:320 #, javascript-format msgid "Make a left u-turn onto %s" msgstr "Выканайце левы разварот на «%s»" #: src/transitplugins/openTripPlanner.js:1291 #: src/transitplugins/openTripPlanner2.js:321 msgid "Make a left u-turn" msgstr "Выканайце левы разварот" #: src/transitplugins/openTripPlanner.js:1294 #: src/transitplugins/openTripPlanner2.js:325 #, javascript-format msgid "Make a right u-turn onto %s" msgstr "Выканайце правы разварот на «%s»" #: src/transitplugins/openTripPlanner.js:1296 #: src/transitplugins/openTripPlanner2.js:326 msgid "Make a right u-turn" msgstr "Выканайце правы разварот" #~ msgid "Sign in to edit maps" #~ msgstr "" #~ "Увайдзіце, каб рэдагаваць карты" #~ msgid "" #~ "Sign in to authorize access in a web browser.\n" #~ "Then fill in the obtained verification code here in the next step." #~ msgstr "" #~ "Увайдзіце праз вэб-браўзер, каб дазволіць доступ\n" #~ "Потым, у наступным кроку, увядзіце тут атрыманы праверачны код." #~ msgid "Signed In" #~ msgstr "Аўтарызаваны" #~ msgid "Sign up" #~ msgstr "Зарэгістравацца" #~ msgid "Filesystem is read only" #~ msgstr "Файлавая сістэма даступна толькі для чытання" #~ msgid "You do not have permission to save there" #~ msgstr "Вы не маеце дазволу на захаванне ў гэтым месцы" #~ msgid "The directory does not exist" #~ msgstr "Каталог не існуе" #~ msgid "No filename specified" #~ msgstr "Не ўказана назва файла" #~ msgid "" #~ "Location was added to the map, note that it may take a while before it " #~ "shows on the map and in search results." #~ msgstr "" #~ "Месцазнаходжанне было дададзена на карту. Звярніце ўвагу, што можа " #~ "прайсці некаторы час, перш чым яно з'явіцца на карце і ў выніках пошуку." #~ msgid "Takeaway" #~ msgstr "Ежа на вынас" #~ msgid "Go to current location" #~ msgstr "Перайсці да бягучага месцазнаходжання" #~ msgid "Choose map type" #~ msgstr "Выбар тыпу карты" #~ msgid "Zoom in" #~ msgstr "Павялічыць" #~ msgid "Drag to change order of the route" #~ msgstr "Перацягніце, каб змяніць парадак маршруту" 070701000001B2000081A4000000000000000000000001664134090000D887000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/bg.po# Bulgarian translation for gnome-maps. # Copyright (C) 2016 Free Software Foundation, Inc. # Copyright (C) 2021, 2022, 2023 Alexander Shopov. # This file is distributed under the same license as the gnome-maps package. # Ivailo Panamski , 2016. # Alexander Shopov , 2021, 2022, 2023. # msgid "" msgstr "" "Project-Id-Version: gnome-maps main\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2023-03-04 16:15+0000\n" "PO-Revision-Date: 2023-03-04 20:44+0200\n" "Last-Translator: \n" "Language-Team: Bulgarian \n" "Language: bg\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" #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.appdata.xml.in.in:6 data/org.gnome.Maps.desktop.in.in:4 #: data/ui/main-window.ui:27 src/application.js:61 src/mainWindow.js:134 #: src/mainWindow.js:531 msgid "Maps" msgstr "Карти" #: data/org.gnome.Maps.appdata.xml.in.in:7 msgid "Find places around the world" msgstr "Търсене на места по света" #: data/org.gnome.Maps.appdata.xml.in.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "„Картите“ ви дават бърз достъп до места и карти по целия свят. Те ви " "позволяват бързо да намерите мястото, което търсите, независимо дали е град, " "улица или място на уречена среща." #: data/org.gnome.Maps.appdata.xml.in.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "Картите използват базите от данни на OpenStreetMap. Те са събрани от стотици " "хиляди хора от целия свят." #: data/org.gnome.Maps.appdata.xml.in.in:317 src/mainWindow.js:528 msgid "The GNOME Project" msgstr "Проектът GNOME" #: data/org.gnome.Maps.desktop.in.in:5 msgid "A simple maps application" msgstr "Програма за преглед на карти" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in.in:14 msgid "Maps;" msgstr "maps;карти;глобус;атлас;" #: data/org.gnome.Maps.desktop.in.in:17 msgid "Allows your location to be shown on the map." msgstr "Местоположението ви да се показва на картата." #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "последно прегледано местоположение" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "Координати на последно прегледаното местоположение." #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "мащаб" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "Мащаб" #: data/org.gnome.Maps.gschema.xml:21 msgid "Map type" msgstr "Вид карта" #: data/org.gnome.Maps.gschema.xml:22 msgid "The type of map to display (street, aerial, etc.)" msgstr "Вид карта за показване (улична, аерофотографска, др.)" #: data/org.gnome.Maps.gschema.xml:26 msgid "Window size" msgstr "Размери на прозореца" #: data/org.gnome.Maps.gschema.xml:27 msgid "Window size (width and height)." msgstr "Размери (широчина и дължина)." #: data/org.gnome.Maps.gschema.xml:31 msgid "Window position" msgstr "Положение на прозореца" #: data/org.gnome.Maps.gschema.xml:32 msgid "Window position (X and Y)." msgstr "Положение на прозореца (X и Y)." #: data/org.gnome.Maps.gschema.xml:36 msgid "Window maximized" msgstr "Максимизиран прозорец" #: data/org.gnome.Maps.gschema.xml:37 msgid "Window maximization state" msgstr "Дали прозорецът на програмата е максимизиран" #: data/org.gnome.Maps.gschema.xml:41 msgid "Maximum number of search results" msgstr "Максимален брой на резултатите от търсене" #: data/org.gnome.Maps.gschema.xml:42 msgid "Maximum number of search results from geocode search." msgstr "Максимален брой на резултати от търсенето по геокод." #: data/org.gnome.Maps.gschema.xml:46 msgid "Number of recent places to store" msgstr "Брой на последните места за съхраняване" #: data/org.gnome.Maps.gschema.xml:47 msgid "Number of recently visited places to store." msgstr "Брой на последно посетени места за съхраняване." #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent routes to store" msgstr "Брой на последни маршрути за съхраняване" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited routes to store." msgstr "Брой на последно посетените маршрути за съхраняване." #: data/org.gnome.Maps.gschema.xml:56 msgid "OpenStreetMap username or e-mail address" msgstr "Потребителско име или е-поща за OpenStreetMap" #: data/org.gnome.Maps.gschema.xml:57 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "Дали потребителят е влязъл, за да променя информация в OpenStreetMap." #: data/org.gnome.Maps.gschema.xml:61 msgid "Last used transportation type for routing" msgstr "Последно ползван вид транспорт за маршрут" #: data/org.gnome.Maps.gschema.xml:65 msgid "Show scale" msgstr "Мащаб" #: data/org.gnome.Maps.gschema.xml:66 msgid "Whether to show the scale." msgstr "Дали мащабът да се показва." #: data/ui/context-menu.ui:6 msgid "Route from Here" msgstr "Маршрут от тук" #: data/ui/context-menu.ui:10 msgid "Add Intermediate Destination" msgstr "Добавяне на междинна цел" #: data/ui/context-menu.ui:14 msgid "Route to Here" msgstr "Маршрут до тук" #: data/ui/context-menu.ui:20 msgid "What's Here?" msgstr "Какво има тук?" #: data/ui/context-menu.ui:24 msgid "Copy Location" msgstr "Копиране на местоположението" #: data/ui/context-menu.ui:28 msgid "Add to OpenStreetMap…" msgstr "Добавяне към OpenStreetMap…" #: data/ui/export-view-dialog.ui:7 msgid "Export view" msgstr "Изнасяне на изглед" #: data/ui/export-view-dialog.ui:16 data/ui/send-to-dialog.ui:10 #: data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "_Отказ" #: data/ui/export-view-dialog.ui:26 msgid "_Export" msgstr "_Изнасяне" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:11 src/geoclue.js:106 msgid "Current Location" msgstr "Текущо местоположение" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:19 msgid "Layers" msgstr "Слоеве" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:28 msgid "Zoom Out" msgstr "По-дребен мащаб" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:37 data/ui/zoom-in-dialog.ui:27 msgid "Zoom In" msgstr "По-едър мащаб" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:11 msgid "Print Route" msgstr "Отпечатване на маршрут" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:21 msgid "Favorites" msgstr "Любими" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:30 msgid "Route Planner" msgstr "Планиране на маршрут" #: data/ui/help-overlay.ui:12 msgctxt "shortcut window" msgid "General" msgstr "Общи" #: data/ui/help-overlay.ui:15 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "Показване на клавишните комбинации" #: data/ui/help-overlay.ui:21 msgctxt "shortcut window" msgid "Search" msgstr "Търсене" #: data/ui/help-overlay.ui:27 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "Включване на планиране на маршрут" #: data/ui/help-overlay.ui:33 msgctxt "shortcut window" msgid "Print route" msgstr "Отпечатване на маршрут" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Quit" msgstr "Спиране на програмата" #: data/ui/help-overlay.ui:45 msgctxt "shortcut window" msgid "Open main menu" msgstr "Отваряне на основното меню" #: data/ui/help-overlay.ui:53 msgctxt "shortcut window" msgid "Map View" msgstr "Изглед карти" #: data/ui/help-overlay.ui:56 msgctxt "shortcut window" msgid "Zoom in" msgstr "По-едър мащаб" #: data/ui/help-overlay.ui:62 msgctxt "shortcut window" msgid "Zoom out" msgstr "По-дребен мащаб" #: data/ui/help-overlay.ui:68 msgctxt "shortcut window" msgid "Toggle scale" msgstr "Превключване на ска̀лата" #: data/ui/help-overlay.ui:74 msgctxt "shortcut window" msgid "Go to current location" msgstr "Към текущото местоположение" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Switch to street view" msgstr "Към уличен изглед" #: data/ui/help-overlay.ui:91 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "Към въздушен изглед" #: data/ui/help-overlay.ui:97 msgctxt "shortcut window" msgid "Open shape layer" msgstr "Отваряна на слой с очертания" #: data/ui/layers-popover.ui:7 msgid "Show Scale" msgstr "Мащаб" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:16 msgid "Open Shape Layer…" msgstr "Отваряна на слой с очертания…" #: data/ui/location-service-dialog.ui:12 data/ui/osm-edit-dialog.ui:220 #: data/ui/zoom-in-dialog.ui:21 msgid "Cancel" msgstr "Отказ" #: data/ui/location-service-dialog.ui:18 msgid "Location Settings" msgstr "Настройки на местоположението" #: data/ui/location-service-dialog.ui:32 msgid "Turn on location services to find your location" msgstr "Включване на услугата за намиране на местоположението ви" #: data/ui/main-window.ui:8 msgid "Set up OpenStreetMap Account…" msgstr "Създаване на регистрация в OpenStreetMap…" #: data/ui/main-window.ui:12 msgid "Export as Image…" msgstr "Изнасяне като изображение…" #: data/ui/main-window.ui:17 msgid "_Keyboard Shortcuts" msgstr "_Клавишни комбинации" #: data/ui/main-window.ui:22 msgid "About Maps" msgstr "Относно „Карти“" #: data/ui/main-window.ui:38 msgid "Main Menu" msgstr "Основно меню" #: data/ui/osm-account-dialog.ui:6 msgid "OpenStreetMap Account" msgstr "Регистрация в OpenStreetMap" #: data/ui/osm-account-dialog.ui:24 msgid "Sign in to edit maps" msgstr "" "Впишете се, за да редактирате картите" #: data/ui/osm-account-dialog.ui:38 msgid "" "Help to improve the map, using an\n" "OpenStreetMap account." msgstr "" "Помогнете да подобрим картите, като\n" "използвате регистрация в OpenStreetMap." #: data/ui/osm-account-dialog.ui:52 msgid "" "Sign in to authorize access in a web browser.\n" "Then fill in the obtained verification code here in the next step." msgstr "" "Впишете се през уеб браузъра, за да позволите достъп.\n" "Ще се покаже коз да потвърждение, който ще ви трябва за следващата стъпка." #: data/ui/osm-account-dialog.ui:68 msgid "Sign up" msgstr "Създаване на регистрация" #: data/ui/osm-account-dialog.ui:81 msgid "Sign In" msgstr "Вписване" #: data/ui/osm-account-dialog.ui:123 msgid "Copy verification code shown when authorizing access in the browser" msgstr "" "Копирайте кода за потвърждение, който се показва при позволяване на достъпа " "в браузъра" #: data/ui/osm-account-dialog.ui:133 msgid "Verification code" msgstr "Код за потвърждение" #: data/ui/osm-account-dialog.ui:144 msgid "Verify" msgstr "Потвърждаване" #: data/ui/osm-account-dialog.ui:172 msgid "Signed In" msgstr "Вписани сте" #: data/ui/osm-account-dialog.ui:184 msgid "Your OpenStreetMap account is active." msgstr "Регистрацията ви в OpenStreetMap е активна." #: data/ui/osm-account-dialog.ui:214 msgid "Sign Out" msgstr "Изход" #: data/ui/osm-edit-address.ui:11 msgid "Street" msgstr "Улица" #: data/ui/osm-edit-address.ui:22 msgid "House number" msgstr "№" #: data/ui/osm-edit-address.ui:33 msgid "Postal code" msgstr "Пощенски код" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:44 msgid "City" msgstr "Град" #: data/ui/osm-edit-dialog.ui:54 msgid "Type" msgstr "Вид" #: data/ui/osm-edit-dialog.ui:76 msgid "None" msgstr "Няма" #: data/ui/osm-edit-dialog.ui:105 msgid "Add Field" msgstr "Добавяне на поле" #: data/ui/osm-edit-dialog.ui:127 msgid "Comment" msgstr "Коментар" #: data/ui/osm-edit-dialog.ui:155 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "Промѐните ще се виждат на всички карти, ползващи данни от\n" "OpenStreetMap." #: data/ui/osm-edit-dialog.ui:183 msgid "Recently Used" msgstr "Скоро ползвани" #: data/ui/osm-edit-dialog.ui:233 src/osmEditDialog.js:531 msgid "Next" msgstr "Следващ" #: data/ui/osm-edit-wikipedia.ui:8 msgid "Article" msgstr "Статия" #: data/ui/osm-edit-wikipedia.ui:21 msgid "Wikidata tag" msgstr "Етикет на Wikidata" #: data/ui/place-popover.ui:44 src/application.js:275 msgid "No results found" msgstr "Няма резултат" #: data/ui/place-popover.ui:54 src/application.js:252 src/osmEditDialog.js:568 msgid "An error has occurred" msgstr "Възникна грешка" #. Translators: This is a tooltip #: data/ui/route-entry.ui:12 msgid "Change Route Order" msgstr "Промяна на последователността на маршрута" #: data/ui/send-to-dialog.ui:7 msgid "Open Location" msgstr "Отваряне на местоположение" #: data/ui/send-to-dialog.ui:62 msgid "Copy" msgstr "Копиране" #: data/ui/send-to-dialog.ui:68 msgid "Send To…" msgstr "Изпращане до…" #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:65 msgid "Open Shape Layer" msgstr "Отваряна на слой с очертания" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "_Отваряне" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:32 msgid "Toggle visible" msgstr "Включване на видимост" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:44 msgid "Remove Shape Layer" msgstr "Премахване на слой с очертания" #: data/ui/sidebar.ui:215 msgid "Route search by GraphHopper" msgstr "Търсене на маршрут с GraphHopper" #: data/ui/sidebar.ui:282 msgid "" "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of " "transportation,\n" "e.g. a national provider might not include airlines, and a local provider " "could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" "Разписанията за обществения транспорт са предоставени от трети лица.\n" "GNOME не може да гарантира за истинността им, както и за разписанието.\n" "Някои доставчици на такива услуги не включват всички видове транспорт.\n" "Напр. националните доставчици може да не включват авиотранспорта, а\n" "местните — регионалния железопътен транспорт.\n" "Показваните имена да се считат за регистрирани търговски марки, когато\n" "това е приложимо." #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:98 msgid "Hide intermediate stops and information" msgstr "Скриване на междинните спирки и допълнителната информация" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:156 msgid "Show intermediate stops and information" msgstr "Показване на междинните спирки и допълнителната информация" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:16 msgid "Leave Now" msgstr "Тръгване сега" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:17 msgid "Leave By" msgstr "Тръгване на" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:18 msgid "Arrive By" msgstr "Пристигане на" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:85 msgid "Show" msgstr "Видове" #: data/ui/transit-options-panel.ui:95 msgid "Buses" msgstr "Автобуси" #: data/ui/transit-options-panel.ui:101 msgid "Trams" msgstr "Трамваи" #: data/ui/transit-options-panel.ui:107 msgid "Trains" msgstr "Влакове" #: data/ui/transit-options-panel.ui:113 msgid "Subway" msgstr "Метро" #: data/ui/transit-options-panel.ui:119 msgid "Ferries" msgstr "Фериботи" #: data/ui/transit-options-panel.ui:125 msgid "Airplanes" msgstr "Самолети" #. Translators: This is a tooltip #: data/ui/place-bar.ui:28 data/ui/place-buttons.ui:27 msgid "Share Location" msgstr "Споделяне на местоположение" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:11 msgid "Add to new route" msgstr "Добавяне към нов маршрут" #. Translators: This is the button to find a route to a place #: data/ui/place-buttons.ui:15 msgid "Directions" msgstr "Направление" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:36 msgid "Mark as Favorite" msgstr "Отбелязване като любимо" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:44 msgid "Edit on OpenStreetMap" msgstr "Редактиране в OpenStreetMap" #. Translators: This is a tooltip #: data/ui/place-view.ui:52 msgid "Share location" msgstr "Споделяне на местоположение" #: data/ui/zoom-in-dialog.ui:11 msgid "Zoom in to add location!" msgstr "Уедряване на мащаба за добавяне на местоположение!" #: lib/maps-file-data-source.c:262 lib/maps-file-data-source.c:338 #: lib/maps-file-data-source.c:418 msgid "Failed to find tile structure in directory" msgstr "Структурата на фрагмента не може да се открие в папка" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "Документът не може да бъде анализиран като XML" #: lib/maps-osm.c:250 lib/maps-osm.c:403 msgid "Missing required attributes" msgstr "Липсват задължителни атрибути" #: lib/maps-osm.c:451 lib/maps-osm.c:494 msgid "Could not find OSM element" msgstr "Не може да се открие елемент на OpenStreetMap" #: lib/maps-osm.c:508 msgid "Could not find user element" msgstr "Не може да се открие потребителски елемент" #: src/application.js:74 msgid "A path to a local tiles directory structure" msgstr "Път към локалната папка със структури" #: src/application.js:80 msgid "Tile size for local tiles directory" msgstr "Размер на локалната папка с фрагменти" #: src/application.js:84 msgid "Show the version of the program" msgstr "Извеждане на версията" #: src/application.js:90 msgid "Search for places" msgstr "Търсене на места" #: src/application.js:101 src/application.js:102 msgid "[FILE…|URI]" msgstr "[ФАЙЛ…|АДРЕС]" #: src/application.js:283 #, javascript-format msgid "Invalid maps: URI: %s" msgstr "Неправилни карти — адрес: %s" #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:74 #, javascript-format msgid "Maps at %f, %f.png" msgstr "Карта около %f, %f.png" #: src/exportViewDialog.js:156 msgid "Filesystem is read only" msgstr "Файловата система е само за четене" #: src/exportViewDialog.js:158 msgid "You do not have permission to save there" msgstr "Нямате права да записвате тук" #: src/exportViewDialog.js:160 msgid "The directory does not exist" msgstr "Папката не съществува" #: src/exportViewDialog.js:162 msgid "No filename specified" msgstr "Не е зададено име на файла" #: src/exportViewDialog.js:170 msgid "Unable to export view" msgstr "Изгледът не може да бъде изнесен" #: src/geoJSONSource.js:73 msgid "invalid coordinate" msgstr "грешни координати" #: src/geoJSONSource.js:118 src/geoJSONSource.js:158 src/geoJSONSource.js:173 msgid "parse error" msgstr "грешка при анализ" #: src/geoJSONSource.js:152 msgid "unknown geometry" msgstr "неизвестна геометрия" #: src/graphHopper.js:121 src/transitPlan.js:174 msgid "Route request failed." msgstr "Неуспешна заявка за маршрут." #: src/graphHopper.js:128 src/transitPlan.js:166 msgid "No route found." msgstr "Не е намерен маршрут." #: src/graphHopper.js:215 src/transitplugins/openTripPlanner.js:1121 msgid "Start!" msgstr "Старт!" #: src/mainWindow.js:62 msgid "All Layer Files" msgstr "Всички файлове със слоеве" #: src/mainWindow.js:442 msgid "Failed to connect to location service" msgstr "Грешка при свързването с услуги за местоположение" #: src/mainWindow.js:529 msgid "translator-credits" msgstr "" "Ивайло Панамски <ipanamski@gmail." "com>\n" "Александър Шопов <ash@kambanaria.org>\n" "\n" "\n" "Проектът за превод на GNOME има нужда от подкрепа.\n" "Научете повече за нас на уеб сайта ни.\n" "Докладвайте за грешки в превода в съответния раздел." #: src/mainWindow.js:533 msgid "Copyright © 2011 – 2023 Red Hat, Inc. and The GNOME Maps authors" msgstr "" "Авторски права © 2011 – 2023 Red Hat, Inc. и авторите на „Карти за GNOME“" #: src/mainWindow.js:549 #, javascript-format msgid "Map data by %s and contributors" msgstr "Картографски данни от %s и сътрудници" #: src/mainWindow.js:550 msgid "Map Data Provider" msgstr "Доставчик на данни за карти" #: src/mainWindow.js:562 msgid "Map Tile Provider" msgstr "Доставчик на фрагменти за карти" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:570 #, javascript-format msgid "Map tiles provided by %s" msgstr "Фрагментите за карти са предоставени от %s" #: src/mainWindow.js:600 msgid "Search Provider" msgstr "Доставчик на търсене" #: src/mainWindow.js:603 #, javascript-format msgid "Search provided by %s using %s" msgstr "Търсенето е предоставено от %s чрез %s" #: src/mapView.js:501 src/mapView.js:561 msgid "Failed to open layer" msgstr "Слоят не може да се отвори" #: src/mapView.js:522 msgid "Do you want to continue?" msgstr "Искате ли да продължите?" #: src/mapView.js:523 #, javascript-format msgid "" "You are about to open files with a total size of %s MB. This could take some " "time to load" msgstr "Ще отворите файлове с общ размер %s MB. Това може да отнеме време" #: src/mapView.js:555 msgid "File type is not supported" msgstr "Този вид файлове не се поддържат" #: src/mapView.js:593 msgid "Failed to open GeoURI" msgstr "Геоадресът не може да бъде отворен" #: src/mapView.js:1033 msgid "Nothing found here!" msgstr "Тук няма нищо!" #: src/mapView.js:1094 msgid "" "Location was added to the map, note that it may take a while before it shows " "on the map and in search results." msgstr "" "Местоположението е добавено на картата, може да мине известно време преди да " "се появи в резултатите от търсене." #: src/osmAccountDialog.js:134 msgid "The verification code didn’t match, please try again." msgstr "Кодът за потвърждение не съвпада, опитайте отново." #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:335 msgid "Incorrect user name or password" msgstr "Грешно потребителско име или парола" #: src/osmConnection.js:337 msgid "Success" msgstr "Успех" #: src/osmConnection.js:339 msgid "Bad request" msgstr "Лоша заявка" #: src/osmConnection.js:341 msgid "Object not found" msgstr "Обектът не е намерен" #: src/osmConnection.js:343 msgid "Conflict, someone else has just modified the object" msgstr "Възникна проблем, някой друг тъкмо промени обекта" #: src/osmConnection.js:345 msgid "Object has been deleted" msgstr "Обектът беше изтрит" #: src/osmConnection.js:347 msgid "Way or relation refers to non-existing children" msgstr "Пътят или връзката се отнася към несъществуващ обект" #: src/osmEditDialog.js:106 msgid "Name" msgstr "Име" #: src/osmEditDialog.js:109 msgid "The official name. This is typically what appears on signs." msgstr "Официално име. Обикновено то присъства на пътните знаци." #: src/osmEditDialog.js:112 msgid "Address" msgstr "Адрес" #: src/osmEditDialog.js:120 src/placeView.js:254 msgid "Website" msgstr "Сайт" #: src/osmEditDialog.js:124 msgid "This is not a valid URL. Make sure to include http:// or https://." msgstr "Неправилен адрес. Трябва да започва с „http://“ или „https://“." #: src/osmEditDialog.js:125 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" "Официален уеб сайт. Ползвайте основния вариант, напр. „http://example.com“ " "вместо „http://example.com/index.html“." #: src/osmEditDialog.js:130 msgid "Phone" msgstr "Телефон" #: src/osmEditDialog.js:134 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" "Телефонен номер. Ползвайте международния формат — който започва с „+“. " "Внимавайте с местните разпоредби за лични данни, особено за номерата на " "личните телефони." #: src/osmEditDialog.js:139 src/placeView.js:282 msgid "E-mail" msgstr "Е-поща" #: src/osmEditDialog.js:144 msgid "" "This is not a valid e-mail address. Make sure to not include the mailto: " "protocol prefix." msgstr "" "Неправилен адрес на е-поща. Не включвайте префикса „mailto:“ за пощенски " "протокол." #: src/osmEditDialog.js:145 msgid "" "Contact e-mail address for inquiries. Add only email addresses that are " "intended to be publicly used." msgstr "" "Адрес на е-поща за запитвания. Давайте само адреси, които са за публичен " "достъп." #. Translators: This is the text for the "Wikipedia" link at the end #. of summaries #: src/osmEditDialog.js:149 src/placeView.js:630 msgid "Wikipedia" msgstr "Уикипедия" #: src/osmEditDialog.js:156 src/placeView.js:319 msgid "Opening hours" msgstr "Работно време" #: src/osmEditDialog.js:161 msgid "See the link in the label for help on format." msgstr "Вижте връзката в етикета за помощ с форма̀та." #. TODO: this is a bit of a work-around to re-interpret the population, #. * stored as a string into an integer to convert back to a locale- #. * formatted string. Ideally it should be kept as an integer value #. * in the Place class. But this will also need to be handled by the #. * PlaceStore, possible in a backwards-compatible way #. #: src/osmEditDialog.js:164 src/placeView.js:429 msgid "Population" msgstr "Население" #: src/osmEditDialog.js:169 src/placeView.js:458 msgid "Altitude" msgstr "Надморска височина" #: src/osmEditDialog.js:172 msgid "Elevation (height above sea level) of a point in metres." msgstr "Надморска височина на местоположението в метри." #: src/osmEditDialog.js:175 msgid "Wheelchair access" msgstr "Инвалидни колички" #: src/osmEditDialog.js:178 src/osmEditDialog.js:187 src/osmEditDialog.js:198 #: src/osmEditDialog.js:233 msgid "Yes" msgstr "Да" #: src/osmEditDialog.js:179 src/osmEditDialog.js:188 src/osmEditDialog.js:199 #: src/osmEditDialog.js:234 msgid "No" msgstr "Не" #: src/osmEditDialog.js:180 msgid "Limited" msgstr "Непълно" #: src/osmEditDialog.js:181 msgid "Designated" msgstr "Обозначено" #: src/osmEditDialog.js:184 msgid "Internet access" msgstr "Достъп до Интернет" #: src/osmEditDialog.js:189 msgid "Wi-Fi" msgstr "Безжичен" #: src/osmEditDialog.js:190 msgid "Wired" msgstr "Жичен" #: src/osmEditDialog.js:191 msgid "Terminal" msgstr "Техни компютри" #: src/osmEditDialog.js:192 msgid "Service" msgstr "Обслужване" #: src/osmEditDialog.js:195 msgid "Takeaway" msgstr "Вземане за вкъщи" #: src/osmEditDialog.js:200 msgid "Only" msgstr "Само" #: src/osmEditDialog.js:203 msgid "Religion" msgstr "Религия" #: src/osmEditDialog.js:206 src/translations.js:286 msgid "Animism" msgstr "Анимизъм" #: src/osmEditDialog.js:207 msgid "Bahá’í" msgstr "Бахайство" #: src/osmEditDialog.js:208 src/translations.js:288 msgid "Buddhism" msgstr "Будизъм" #: src/osmEditDialog.js:209 src/translations.js:289 msgid "Caodaism" msgstr "Каодаизъм" #: src/osmEditDialog.js:210 src/translations.js:290 msgid "Christianity" msgstr "Християнство" #: src/osmEditDialog.js:211 src/translations.js:291 msgid "Confucianism" msgstr "Конфуцианство" #: src/osmEditDialog.js:212 src/translations.js:292 msgid "Hinduism" msgstr "Хиндуизъм" #: src/osmEditDialog.js:213 src/translations.js:293 msgid "Jainism" msgstr "Джайнизъм" #: src/osmEditDialog.js:214 src/translations.js:294 msgid "Judaism" msgstr "Юдаизъм" #: src/osmEditDialog.js:215 src/translations.js:295 msgid "Islam" msgstr "Ислям" #: src/osmEditDialog.js:216 src/translations.js:296 msgid "Multiple Religions" msgstr "Множество религии" #: src/osmEditDialog.js:217 src/translations.js:297 msgid "Paganism" msgstr "Паганизъм" #: src/osmEditDialog.js:218 src/translations.js:298 msgid "Pastafarianism" msgstr "Пастафарианство" #: src/osmEditDialog.js:219 src/translations.js:299 msgid "Scientology" msgstr "Сциентология" #: src/osmEditDialog.js:220 src/translations.js:300 msgid "Shinto" msgstr "Шинто" #: src/osmEditDialog.js:221 src/translations.js:301 msgid "Sikhism" msgstr "Сикхизъм" #: src/osmEditDialog.js:222 src/translations.js:302 msgid "Spiritualism" msgstr "Спиритуализъм" #: src/osmEditDialog.js:223 src/translations.js:303 msgid "Taoism" msgstr "Даоизъм" #: src/osmEditDialog.js:224 src/translations.js:304 msgid "Unitarian Universalism" msgstr "Унитариански универсализъм" #: src/osmEditDialog.js:225 src/translations.js:305 msgid "Voodoo" msgstr "Вуду" #: src/osmEditDialog.js:226 src/translations.js:306 msgid "Yazidism" msgstr "Езидизъм" #: src/osmEditDialog.js:227 src/translations.js:307 msgid "Zoroastrianism" msgstr "Зороастризъм" #: src/osmEditDialog.js:230 msgid "Toilets" msgstr "Тоалетни" #: src/osmEditDialog.js:237 msgid "Note" msgstr "Бележка" #: src/osmEditDialog.js:240 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" "Информация за другите картографи за неочевидни аспекти на елемента, " "причината за създаването му или възможности за подобрения." #: src/osmEditDialog.js:339 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "Добавяне в OpenStreetMap" #: src/osmEditDialog.js:393 msgid "Select Type" msgstr "Избор на вид" #: src/osmEditDialog.js:515 msgid "Done" msgstr "Готово" #: src/osmEditDialog.js:827 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "" "Форматът трябва да включва код на език и заглавие на статия, напр. „bg:" "Заглавие на статия“." #: src/osmEditDialog.js:833 msgid "Use the reload button to load the Wikidata tag for the selected article" msgstr "" "Ползване на бутона за презареждане за зареждане на етикета на Wikidata за " "статията" #: src/osmEditDialog.js:841 msgid "Couldn't find Wikidata tag for article" msgstr "Етикетът на Wikidata за статията липсва" #: src/photonUtils.js:118 msgid "Unnamed place" msgstr "Място без име" #: src/placeEntry.js:267 msgid "Failed to parse Geo URI" msgstr "Геоадресът не може да бъде анализиран" #: src/placeEntry.js:280 msgid "Failed to parse Maps URI" msgstr "Адресът за карти не може да се анализира" #: src/placeView.js:242 msgid "Coordinates" msgstr "Координати" #: src/placeView.js:246 msgid "Accuracy" msgstr "Прецизност" #. Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) #: src/placeView.js:249 #, javascript-format msgid "Accuracy: %s" msgstr "Прецизност: %s" #. since the phone numbers are typically always rendered #. * left-to-right, insert an explicit LRM char to avoid issues #. * with phone numbers in international format starting with a + #. * which is considered a "weak" character to determine Unicode #. * text direction #. #: src/placeView.js:268 msgid "Phone number" msgstr "Тел. номер" #. Translators: #. * The establishment offers customers to purchase meals #. * (or similar) to be consumed elsewhere #. #: src/placeView.js:295 msgid "Offers takeaway" msgstr "Има вземане за вкъщи" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed on-premise. #. #: src/placeView.js:303 msgid "Does not offer takeaway" msgstr "Без вземане за вкъщи" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed elsewhere. E.g. #. * there is no seating on-premise for eating/drinking #. #: src/placeView.js:312 msgid "Only offers takeaway" msgstr "Само вземане за вкъщи" #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/placeView.js:329 msgid "Public internet access" msgstr "Публичен достъп до Интернет" #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/placeView.js:338 msgid "No internet access" msgstr "Няма достъп до Интернет" #. Translators: #. * This means a WLAN Hotspot, also known as wireless, wifi or Wi-Fi. #. #: src/placeView.js:346 msgid "Public Wi-Fi" msgstr "Публична безжична мрежа" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/placeView.js:354 msgid "Wired internet access" msgstr "Жична връзка до Интернет" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/placeView.js:362 msgid "Computers available for use" msgstr "Има налични компютри" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/placeView.js:370 msgid "Internet assistance available" msgstr "Има помощ при проблеми с Интернет" #: src/placeView.js:376 msgid "No toilets available" msgstr "Няма тоалетни" #: src/placeView.js:379 msgid "Toilets available" msgstr "Налични тоалетни" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #: src/placeView.js:388 msgid "Wheelchair accessible" msgstr "Достъп за инвалидни колички" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/placeView.js:398 msgid "Limited wheelchair accessibility" msgstr "Ограничен достъп за инвалидни колички" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #: src/placeView.js:407 msgid "Not wheelchair accessible" msgstr "Без достъп за инвалидни колички" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/placeView.js:417 msgid "Designated for wheelchair users" msgstr "Предназначено за инвалидни колички" #. * #. * Translators: this is a label indicating an altitude below #. * sea level, where the %s placeholder is the altitude relative #. * to mean sea level in the "negative direction" #. #: src/placeView.js:448 #, javascript-format msgid "%s below sea level" msgstr "%s под морското равнище" #. * #. * Translators: this indicates a place is located at (or very #. * close to) mean sea level #. #: src/placeView.js:455 msgid "At sea level" msgstr "На морското равнище" #: src/placeView.js:464 msgid "Religion:" msgstr "Религия:" #: src/place.js:543 msgid "Place not found in OpenStreetMap" msgstr "Местоположението липсва в OpenStreetMap" #: src/place.js:550 msgid "Coordinates in URL are not valid" msgstr "Неправилни координати в адреса за Интернет" #: src/place.js:559 msgid "URL is not supported" msgstr "Този вид адреси не се поддържат" #: src/printLayout.js:350 #, javascript-format msgid "From %s to %s" msgstr "От %s до %s" #: src/printOperation.js:49 msgid "Loading map tiles for printing" msgstr "Зареждане на фрагментите на картата за печат" #: src/printOperation.js:50 msgid "You can abort printing if this takes too long" msgstr "Може да откажете печата, ако това е твърде бавно" #: src/printOperation.js:52 msgid "Abort printing" msgstr "Относно печата" #. Translators: this is add via location tooltip #: src/routeEntry.js:60 msgid "Add via location" msgstr "Добавяне чрез местоположението" #. Translators: this is remove via location tooltip #: src/routeEntry.js:70 msgid "Remove via location" msgstr "Премахване чрез местоположението" #. Translators: this is reverse route tooltip #: src/routeEntry.js:76 msgid "Reverse route" msgstr "Обратен маршрут" #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:84 #, javascript-format msgid "Add %s to %s" msgstr "Добавяне на %s към %s" #: src/sendToDialog.js:181 msgid "Failed to open URI" msgstr "Адресът не може да се зареди" #: src/sendToDialog.js:248 #, javascript-format msgid "Open with %s" msgstr "Отваряне с %s" #: src/shapeLayer.js:108 msgid "failed to load file" msgstr "файлът не може да се зареди" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:349 #, javascript-format msgid "Estimated time: %s" msgstr "Очаквано време: %s" #: src/sidebar.js:419 #, javascript-format msgid "Itineraries provided by %s" msgstr "Разписанието е предоставено от %s" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:39 #, javascript-format msgid "Start at %s" msgstr "Начало в %s" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:45 msgid "Start" msgstr "Начало" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:63 #, javascript-format msgid "Walk %s" msgstr "Вървене %s" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:77 #, javascript-format msgid "Arrive at %s" msgstr "Пристигане в %s" #: src/transit.js:79 src/transitplugins/openTripPlanner.js:1134 msgid "Arrive" msgstr "Пристигане" #: src/transitLegRow.js:69 msgid "Show walking instructions" msgstr "Показване на инструкциите за ходене пеш" #: src/transitLegRow.js:70 msgid "Hide walking instructions" msgstr "Скриване на инструкциите за ходене пеш" #: src/transitMoreRow.js:37 msgid "Load earlier alternatives" msgstr "Зареждане на варианти по-рано" #: src/transitMoreRow.js:39 msgid "Load later alternatives" msgstr "Зареждане на варианти по-късно" #: src/transitMoreRow.js:52 msgid "No earlier alternatives found." msgstr "Няма варианти по-рано." #: src/transitMoreRow.js:54 msgid "No later alternatives found." msgstr "Няма други варианти." #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:136 msgctxt "month-day-date" msgid "%b %e" msgstr "%e %b" #: src/transitPlan.js:170 msgid "No timetable data found for this route." msgstr "Няма разписание по маршрута." #: src/transitPlan.js:178 msgid "No provider found for this route." msgstr "Няма доставчик за маршрута." #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:295 #, javascript-format msgid "%s – %s" msgstr "%s — %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:324 #, javascript-format msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "%s мин." msgstr[1] "%s мин." #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:336 #, javascript-format msgid "%s hour" msgid_plural "%s hours" msgstr[0] "%s час" msgstr[1] "%s часа" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:344 #, javascript-format msgid "%s:%s hour" msgid_plural "%s:%s hours" msgstr[0] "%s:%s часа" msgstr[1] "%s:%s часа" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:698 #, javascript-format msgid "%s–%s" msgstr "%s—%s" #: src/translations.js:55 msgid "Around the clock" msgstr "Денонощно" #: src/translations.js:57 msgid "From sunrise to sunset" msgstr "От изгрев до залез" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:123 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s, %s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:137 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s, %s, %s" #: src/translations.js:156 msgid "Every day" msgstr "Всеки ден" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:168 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s—%s" #: src/translations.js:179 msgid "Public holidays" msgstr "Почивни дни" #: src/translations.js:181 msgid "School holidays" msgstr "Учебни ваканции" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:221 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: src/translations.js:235 msgid "not open" msgstr "не е отворено" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:250 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:287 msgid "Bahá'í" msgstr "Бахайство" #. Translators: Accuracy of user location information #: src/utils.js:256 msgid "Unknown" msgstr "Неизвестно" #. Translators: Accuracy of user location information #: src/utils.js:259 msgid "Exact" msgstr "Точно" #. Translators: this is a duration with only hours, using #. * an abbreviation for hours, corresponding to 'h' in English #. #: src/utils.js:360 #, javascript-format msgid "%s h" msgstr "%s ч." #. Translators: this is a duration with hours and minutes parts #. * using abbreviations for hours and minutes, corresponding to 'h' #. * and 'min' in English. The minutes has appropriate plural variations #. #: src/utils.js:366 #, javascript-format msgid "%s h %s min" msgid_plural "%s h %s min" msgstr[0] "%s ч. %s мин." msgstr[1] "%s ч. %s мин." #. Translators: this is a duration with minutes part #. * using abbreviation for minutes, corresponding to 'min' in English #. * with appropriate plural variations #. #: src/utils.js:373 #, javascript-format msgid "%s min" msgid_plural "%s min" msgstr[0] "%s мин." msgstr[1] "%s мин." #. Translators: this is a duration of less than one minute #. * with seconds using an abbreviation for seconds, corresponding to #. * 's' in English with appropriate plural forms #. #: src/utils.js:379 #, javascript-format msgid "%s s" msgid_plural "%s s" msgstr[0] "%s сек." msgstr[1] "%s сек." #. Translators: This is a distance measured in kilometers #: src/utils.js:390 #, javascript-format msgid "%s km" msgstr "%s км." #. Translators: This is a distance measured in meters #: src/utils.js:393 #, javascript-format msgid "%s m" msgstr "%s м." #. Translators: This is a distance measured in miles #: src/utils.js:401 #, javascript-format msgid "%s mi" msgstr "%s мили" #. Translators: This is a distance measured in feet #: src/utils.js:404 #, javascript-format msgid "%s ft" msgstr "%s фута" #: src/transitplugins/goMetro.js:61 msgid "This plugin doesn't support latest arrival" msgstr "Приставката не поддържа планиране по най-късно пристигане" #: src/transitplugins/openTripPlanner.js:1195 #, javascript-format msgid "Continue on %s" msgstr "Продължете по %s" #: src/transitplugins/openTripPlanner.js:1197 msgid "Continue" msgstr "Продължете" #: src/transitplugins/openTripPlanner.js:1200 #, javascript-format msgid "Turn left on %s" msgstr "Завийте наляво по %s" #: src/transitplugins/openTripPlanner.js:1202 msgid "Turn left" msgstr "Завийте наляво" #: src/transitplugins/openTripPlanner.js:1205 #, javascript-format msgid "Turn slightly left on %s" msgstr "Завийте леко наляво по %s" #: src/transitplugins/openTripPlanner.js:1207 msgid "Turn slightly left" msgstr "Завийте леко наляво" #: src/transitplugins/openTripPlanner.js:1210 #, javascript-format msgid "Turn sharp left on %s" msgstr "Завийте рязко наляво по %s" #: src/transitplugins/openTripPlanner.js:1212 msgid "Turn sharp left" msgstr "Завийте рязко наляво" #: src/transitplugins/openTripPlanner.js:1215 #, javascript-format msgid "Turn right on %s" msgstr "Завийте надясно по %s" #: src/transitplugins/openTripPlanner.js:1217 msgid "Turn right" msgstr "Завийте надясно" #: src/transitplugins/openTripPlanner.js:1220 #, javascript-format msgid "Turn slightly right on %s" msgstr "Завийте леко надясно по %s" #: src/transitplugins/openTripPlanner.js:1222 msgid "Turn slightly right" msgstr "Завийте леко надясно" #: src/transitplugins/openTripPlanner.js:1225 #, javascript-format msgid "Turn sharp right on %s" msgstr "Завийте рязко надясно по %s" #: src/transitplugins/openTripPlanner.js:1227 msgid "Turn sharp right" msgstr "Завийте рязко надясно" #: src/transitplugins/openTripPlanner.js:1233 #, javascript-format msgid "At the roundabout, take exit %s" msgstr "Излезте от кръговото от изход %s" #: src/transitplugins/openTripPlanner.js:1235 #, javascript-format msgid "At the roundabout, take exit to %s" msgstr "Излезте от кръговото в посока към %s" #: src/transitplugins/openTripPlanner.js:1237 msgid "Take the roundabout" msgstr "Влезте в кръговото" #: src/transitplugins/openTripPlanner.js:1241 #, javascript-format msgid "Take the elevator and get off at %s" msgstr "Качете се на асансьор и слезте на %s" #: src/transitplugins/openTripPlanner.js:1243 msgid "Take the elevator" msgstr "Качете се на асансьор" #: src/transitplugins/openTripPlanner.js:1247 #, javascript-format msgid "Make a left u-turn onto %s" msgstr "Завийте обратно наляво по %s" #: src/transitplugins/openTripPlanner.js:1249 msgid "Make a left u-turn" msgstr "Завийте обратно наляво" #: src/transitplugins/openTripPlanner.js:1252 #, javascript-format msgid "Make a right u-turn onto %s" msgstr "Завийте обратно надясно по %s" #: src/transitplugins/openTripPlanner.js:1254 msgid "Make a right u-turn" msgstr "Завийте обратно надясно" 070701000001B3000081A4000000000000000000000001664134090000440D000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/bs.po# Bosnian translation for bosnianuniversetranslation # Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 # This file is distributed under the same license as the bosnianuniversetranslation package. # FIRST AUTHOR , 2014. # msgid "" msgstr "" "Project-Id-Version: bosnianuniversetranslation\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "maps&keywords=I18N+L10N&component=general\n" "POT-Creation-Date: 2015-02-26 20:01+0000\n" "PO-Revision-Date: 2015-03-03 11:19+0100\n" "Last-Translator: Samir Ribić \n" "Language-Team: Bosnian \n" "Language: bs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 1.7.4\n" "X-Launchpad-Export-Date: 2015-02-15 06:20+0000\n" #: ../data/org.gnome.Maps.appdata.xml.in.h:1 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "Karte vam daju brz pristup kartama cijelog svijeta.Omogućava vam da brzo " "nađete mjesto koje tražite , tražeći grad ili ulicu , ili da pronađe mjesto " "da sretnete priajtelja." #: ../data/org.gnome.Maps.appdata.xml.in.h:2 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "Karte koriste kolaboraticnu OpenStreetMap bazu podataka, napravljenu od " "strane stotinu hiljada ljudi širom svijeta." #. Translators: Search is carried out on OpenStreetMap data using Nominatim. #. Visit http://wiki.openstreetmap.org/wiki/Nominatim/Special_Phrases and click #. your language to seje what words you can usi for the translated search. #: ../data/org.gnome.Maps.appdata.xml.in.h:6 msgid "" "You can even search for specific types of locations, such as “Pubs near Main " "Street, Boston” or “Hotels near Alexanderplatz, Berlin”." msgstr "" "Možete čak tražiti određene vrste mjesta , kao što su \"pubovi u blizini " "Main Street, Boston \" ili \"Hoteli u blizini Alexanderplatz u Berlinu\"." #. Translators: This is the program nami. */ #: ../data/org.gnome.Maps.desktop.in.h:1 ../data/ui/main-window.ui.h:1 #: ../src/application.js:78 ../src/mainWindow.js:362 msgid "Maps" msgstr "Karte" #: ../data/org.gnome.Maps.desktop.in.h:2 msgid "A simple maps application" msgstr "Jednostavan program karti" #: ../data/org.gnome.Maps.desktop.in.h:3 msgid "Maps;" msgstr "Karte;" #: ../data/org.gnome.Maps.gschema.xml.in.h:1 msgid "Window size" msgstr "Veličina prozora" #: ../data/org.gnome.Maps.gschema.xml.in.h:2 msgid "Window size (width and height)." msgstr "Veličina prozora(širina i visina)." #: ../data/org.gnome.Maps.gschema.xml.in.h:3 msgid "Window position" msgstr "Pozicija prozora" #: ../data/org.gnome.Maps.gschema.xml.in.h:4 msgid "Window position (X and Y)." msgstr "Pozicija prozora(X i Y)." #: ../data/org.gnome.Maps.gschema.xml.in.h:5 msgid "Window maximized" msgstr "Maksimalno uvećan prozor" #: ../data/org.gnome.Maps.gschema.xml.in.h:6 msgid "Window maximization state" msgstr "Stanje maksimalno uvećanog prozora" #: ../data/org.gnome.Maps.gschema.xml.in.h:7 msgid "Maximum number of search results" msgstr "Maksimalan broj rezultata pretrage" #: ../data/org.gnome.Maps.gschema.xml.in.h:8 msgid "Maximum number of search results from geocode search." msgstr "Maksimalan broj rezultata pretrage od geocode pretrage." #: ../data/org.gnome.Maps.gschema.xml.in.h:9 msgid "Number of recent places to store" msgstr "Broj posljednjih mjesta za pohranu" #: ../data/org.gnome.Maps.gschema.xml.in.h:10 msgid "Number of recently visited places to store." msgstr "Broj nedavno posjećenih mjesta za pohranu." #: ../data/org.gnome.Maps.gschema.xml.in.h:11 msgid "Facebook check-in privacy setting" msgstr "Postavke privatnosti prilikom prijave na Facebook" #: ../data/org.gnome.Maps.gschema.xml.in.h:12 msgid "" "Latest used Facebook check-in privacy setting. Possible values are: " "EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS or SELF." msgstr "" "Posljednje korištene postavke privatnosti prilikom prijave na Facebook. " "Moguće vrijednosti su: EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS or SELF." #: ../data/org.gnome.Maps.gschema.xml.in.h:13 msgid "Foursquare check-in privacy setting" msgstr "Postavke privatnosti prilikom prijave na Foursquare" #: ../data/org.gnome.Maps.gschema.xml.in.h:14 msgid "" "Latest used Foursquare check-in privacy setting. Possible values are: " "public, followers or private." msgstr "" "Posljednje korištene postavke privatnosti prilikom prijave na Foursquare. " "Moguće vrijednosti su: javni, sljedbenici ili privatne." #: ../data/org.gnome.Maps.gschema.xml.in.h:15 msgid "Foursquare check-in Facebook broadcasting" msgstr "Foursquare emitiranja prilikom prijave na Facebook" #: ../data/org.gnome.Maps.gschema.xml.in.h:16 msgid "" "Indicates if Foursquare should broadcast the check-in as a post in the " "Facebook account associated with the Foursquare account." msgstr "" "Pokazuje li Foursquare treba emitirati na prijavu kao post na Facebook račun " "koji je povezan s Foursquare računa." #: ../data/org.gnome.Maps.gschema.xml.in.h:17 msgid "Foursquare check-in Twitter broadcasting" msgstr "Foursquare emitiranja prilikom prijave na Twitter" #: ../data/org.gnome.Maps.gschema.xml.in.h:18 msgid "" "Indicates if Foursquare should broadcast the check-in as a tweet in the " "Twitter account associated with the Foursquare account." msgstr "" "Pokazuje li Foursquare treba emitirati na prijavu kao tweet na Twitter račun " "koji je povezan s Foursquare računom--" #: ../data/ui/app-menu.ui.h:1 msgid "About" msgstr "O programu" #: ../data/ui/app-menu.ui.h:2 msgid "Quit" msgstr "Odustani" #: ../data/ui/check-in-dialog.ui.h:1 msgid "Visibility" msgstr "Vidljivost" #: ../data/ui/check-in-dialog.ui.h:2 msgid "Post on Facebook" msgstr "Objavi na Facebook" #: ../data/ui/check-in-dialog.ui.h:3 msgid "Post on Twitter" msgstr "Objavi na Twitter" #: ../data/ui/check-in-dialog.ui.h:4 ../data/ui/send-to-dialog.ui.h:2 msgid "_Cancel" msgstr "_Otkaži" #. Translators: Check in is used as a verb #: ../data/ui/check-in-dialog.ui.h:5 ../data/ui/map-bubble.ui.h:5 msgid "C_heck in" msgstr "_Prijava" #: ../data/ui/check-in-dialog.ui.h:6 msgid "Everyone" msgstr "Svi" #: ../data/ui/check-in-dialog.ui.h:7 msgid "Friends of friends" msgstr "Prijatelji prijatelja" #: ../data/ui/check-in-dialog.ui.h:8 msgid "Just friends" msgstr "Samo prijatelji" #: ../data/ui/check-in-dialog.ui.h:9 msgid "Just me" msgstr "Samo meni" #: ../data/ui/check-in-dialog.ui.h:10 msgid "Public" msgstr "Javno" #: ../data/ui/check-in-dialog.ui.h:11 msgid "Followers" msgstr "Pratioci" #: ../data/ui/check-in-dialog.ui.h:12 msgid "Private" msgstr "Privatno" #: ../data/ui/context-menu.ui.h:1 msgid "What’s here?" msgstr "Šta je ovdje?" #: ../data/ui/location-service-notification.ui.h:1 msgid "Turn on location services to find your location" msgstr "Uključite na lokaciji usluge za pronalaženje lokacija" #: ../data/ui/location-service-notification.ui.h:2 msgid "Location Settings" msgstr "Postavke lokacija" #: ../data/ui/main-window.ui.h:2 msgid "Go to current location" msgstr "Idi na trenutnu lokaciju" #: ../data/ui/main-window.ui.h:3 msgid "Choose map type" msgstr "Izaberi tip mape" #: ../data/ui/main-window.ui.h:4 msgid "Toggle route planner" msgstr "Prebaci planer" #: ../data/ui/main-window.ui.h:5 msgid "Toggle favorites" msgstr "Preklopi omiljene" #: ../data/ui/main-window.ui.h:6 msgid "Maps is offline!" msgstr "Karte su offline!" #: ../data/ui/main-window.ui.h:7 msgid "" "Maps need an active internet connection to function properly, but one can't " "be found." msgstr "" "Karte trebaju aktivnu internetsku vezu za ispravno funkcioniranje, ali nije " "moguće naći ." #: ../data/ui/main-window.ui.h:8 msgid "Check your connection and proxy settings." msgstr "Provjerite Vašu konekcijju i proxy postavke." #: ../data/ui/map-bubble.ui.h:1 msgid "Add to new route" msgstr "Dodaj u novu rutu" #: ../data/ui/map-bubble.ui.h:2 msgid "Open with another application" msgstr "Otvori sa drugom aplikacijom" #: ../data/ui/map-bubble.ui.h:3 msgid "Mark as favorite" msgstr "Označi kao omiljeni" #: ../data/ui/map-bubble.ui.h:6 msgid "Check in here" msgstr "Prijavi se ovdje" #: ../data/ui/search-popup.ui.h:1 msgid "Press enter to search" msgstr "pritisni Enter za pretragu" #: ../data/ui/send-to-dialog.ui.h:1 msgid "Open location" msgstr "Otvori lokaciju" #: ../data/ui/send-to-dialog.ui.h:3 msgid "_Open" msgstr "Ot_vori" #: ../data/ui/sidebar.ui.h:1 msgid "Route search by GraphHopper" msgstr "Put nije nađen." #: ../data/ui/social-place-more-results-row.ui.h:1 msgid "Show more results" msgstr "Prikaži još rezultata" #: ../data/ui/user-location-bubble.ui.h:1 ../src/geoclue.js:208 msgid "Current location" msgstr "Trenutna lokacija" #. To translators: %s can bje "Unknown", "Exact" or "%f km²" #: ../data/ui/user-location-bubble.ui.h:4 #, no-c-format msgid "Accuracy: %s" msgstr "Tačnost: %s" #. Translators: %s is the place nami that user wanted to check-in */ #: ../src/checkIn.js:136 msgid "Cannot find \"%s\" in the social service" msgstr "Ne mogu naći \"%s\" u socijalnoj usluzi" #: ../src/checkIn.js:138 msgid "Cannot find a suitable place to check-in in this location" msgstr "Ne mogu naći pogodno mjesto za prijavu na ovoj lokaciji" #: ../src/checkIn.js:142 msgid "" "Credentials have expired, please open Online Accounts to sign in and enable " "this account" msgstr "" "Akreditivi su istekli, molim otvorite mrežne naloge da se prijavite i " "ukljčite ovaj nalog" #: ../src/checkIn.js:154 ../src/checkInDialog.js:290 msgid "An error has occurred" msgstr "Došlo je do greške:" #: ../src/checkInDialog.js:177 msgid "Select an account" msgstr "Odaberi nalog" #: ../src/checkInDialog.js:182 ../src/checkInDialog.js:254 msgid "Loading" msgstr "Učitava se" #: ../src/checkInDialog.js:206 msgid "Select a place" msgstr "Izaberi mjesto" #: ../src/checkInDialog.js:211 msgid "" "Maps cannot find the place to check in to with Facebook. Please select one " "from this list." msgstr "" "Mape ne mogu naći mjesto za prijavu preko Facebook. Odaberite ga s liste." #: ../src/checkInDialog.js:213 msgid "" "Maps cannot find the place to check in to with Foursquare. Please select one " "from this list." msgstr "" "Mape ne mogu naći mjesto za prijavu preko Foursquare. Odaberite ga s liste." #. Translators: %s is the nami of the place to check in. #. */ #: ../src/checkInDialog.js:228 msgid "Check in to %s" msgstr "Prijavi na %s" #. Translators: %s is the nami of the place to check in. #. */ #: ../src/checkInDialog.js:238 msgid "Write an optional message to check in to %s." msgstr "Napiši opcionu poruku za prijavu na %s." #: ../src/mainWindow.js:310 msgid "Failed to connect to location service" msgstr "Neuspjelo povezivanje na lokacijsku uslugu" #: ../src/mainWindow.js:315 msgid "Position not found" msgstr "Pozicija nije nađena" #: ../src/mainWindow.js:360 msgid "translator-credits" msgstr "" " Hasanic Nadin https://launchpad.net/~nhasanic1\n" " Merima Cisija https://launchpad.net/~cisijam" #: ../src/mainWindow.js:363 msgid "A map application for GNOME" msgstr "Program karta za GNOME" #. Translators: #. * This means wheelchairs have full unrestricted access. #. */ #: ../src/place.js:121 msgid "yes" msgstr "da" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can bje accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradijent). #. */ #: ../src/place.js:128 msgid "limited" msgstr "ograničeno" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. */ #: ../src/place.js:134 msgid "no" msgstr "ne" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. */ #: ../src/place.js:141 msgid "designated" msgstr "dizajnirano" #: ../src/routeService.js:70 msgid "No route found." msgstr "Put nije nađen." #: ../src/routeService.js:77 msgid "Route request failed." msgstr "Zahtjev za put nije uspio." #: ../src/routeService.js:148 msgid "Start!" msgstr "Kreni!" #: ../src/placeBubble.js:102 msgid "Postal code: %s" msgstr "Poštanski broj: %s" #: ../src/placeBubble.js:104 msgid "Country code: %s" msgstr "Kod države: %s" #: ../src/placeBubble.js:113 msgid "Population: %s" msgstr "Stanovništvo: %s" #: ../src/placeBubble.js:116 msgid "Opening hours: %s" msgstr "Radno vrijeme: %s" #: ../src/placeBubble.js:121 msgid "Wikipedia" msgstr "Wikipedia" #: ../src/placeBubble.js:126 msgid "Wheelchair access: %s" msgstr "Pristup za invalidska kolica: %s" #. Translators: %s is a time expression with the format "%f h" or "%f min" */ #: ../src/sidebar.js:217 msgid "Estimated time: %s" msgstr "Procijenjeno vrijeme : %s" #: ../src/translations.js:56 ../src/translations.js:58 msgid "around the clock" msgstr "po satu" #: ../src/translations.js:60 msgid "from sunrise to sunset" msgstr "od izlaska do zalaska Sunca" #. Translators: #. * This is a format string with two separate time ranges #. * such as "Mo-Fr 10:00-19:00 Sa 12:00-16:00" #. * The space between the format place holders could bje #. * substituted with the appropriate separator. #. */ #: ../src/translations.js:79 msgctxt "time range list" msgid "%s %s" msgstr "%s %s" #. Translators: #. * This is a format string with three separate time ranges #. * such as "Mo-Fr 10:00-19:00 Sa 10:00-17:00 Su 12:00-16:00" #. * The space between the format place holders could bje #. * substituted with the appropriate separator. #. */ #: ../src/translations.js:91 msgctxt "time range list" msgid "%s %s %s" msgstr "%s %s %s" #. Translators: #. * This is a format string consisting of a part specifying the days for #. * which the specified time is applied and the time interval #. * specification as the second argument. #. * The space between the format place holders could bje substituted with #. * the appropriate separator or phrase and the ordering of the arguments #. * can bje rearranged with the %n#s syntax. */ #: ../src/translations.js:122 msgctxt "time range component" msgid "%s %s" msgstr "%s %s" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could bje replaced with a translated variant or #. * a phrase if appropriate. */ #: ../src/translations.js:154 msgctxt "day interval list" msgid "%s,%s" msgstr "%s,%s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could bje replaced with a translated variant or #. * a phrase if appropriate. */ #: ../src/translations.js:168 msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s,%s,%s" #: ../src/translations.js:187 msgid "every day" msgstr "svaki dan" #. Translators: #. * This represents a range of days with a starting and ending day. #. */ #: ../src/translations.js:199 msgctxt "day range" msgid "%s-%s" msgstr "%s-%s" #: ../src/translations.js:210 msgid "public holidays" msgstr "javni praznici" #: ../src/translations.js:212 msgid "school holidays" msgstr "školski praznici" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could bje modified by #. * the translation. The order of the arguments can bje rearranged #. * using the %n$s syntax. #. */ #: ../src/translations.js:252 msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: ../src/translations.js:266 msgid "not open" msgstr "nije otvoreno" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can bje set by the #. * translation as needed. The order of the arguments can bje rearranged #. * using the %n$s syntax. #. */ #: ../src/translations.js:281 msgctxt "time interval" msgid "%s-%s" msgstr "%s-%s" #. Translators: Accuracy of user location information */ #: ../src/utils.js:257 msgid "Unknown" msgstr "Nepoznato" #. Translators: Accuracy of user location information */ #: ../src/utils.js:260 msgid "Exact" msgstr "Tačno" #: ../src/utils.js:355 msgid "%f h" msgstr "%f h" #: ../src/utils.js:357 msgid "%f min" msgstr "%f min" #: ../src/utils.js:359 msgid "%f s" msgstr "%f s" #. Translators: This is a distance measured in kilometers */ #: ../src/utils.js:370 msgid "%f km" msgstr "%f km" #. Translators: This is a distance measured in meters */ #: ../src/utils.js:373 msgid "%f m" msgstr "%f m" #. Translators: This is a distance measured in miles */ #: ../src/utils.js:381 msgid "%f mi" msgstr "%f mi" #. Translators: This is a distance measured in feet */ #: ../src/utils.js:384 msgid "%f ft" msgstr "%f ft" 070701000001B4000081A4000000000000000000000001664134090000DAF1000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/ca.po# Catalan translation for gnome-maps. # Copyright (C) 2013 gnome-maps's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-maps package. # Gil Forcada , 2013-2020. # Josep Sanchez Mesegue , 2013. # Pere Orga , 2017, 2018. # Jordi Serratosa , 2017. # Jordi Mas i Hernàndez , 2022, 2023 msgid "" msgstr "" "Project-Id-Version: gnome-maps master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2023-10-22 17:33+0000\n" "PO-Revision-Date: 2023-10-30 19:10+0100\n" "Last-Translator: Jordi Mas i Hernàndez \n" "Language-Team: Catalan \n" "Language: ca\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: Poedit 2.4.2\n" "X-Project-Style: gnome\n" #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.appdata.xml.in.in:6 data/org.gnome.Maps.desktop.in.in:4 #: data/ui/main-window.ui:27 src/application.js:61 src/mainWindow.js:143 #: src/mainWindow.js:591 msgid "Maps" msgstr "Mapes" #: data/org.gnome.Maps.appdata.xml.in.in:7 msgid "Find places around the world" msgstr "Trobeu llocs arreu del món" #: data/org.gnome.Maps.appdata.xml.in.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "El Mapes us dona un accés ràpid a mapes d'arreu del món. Us permet trobar " "ràpidament el lloc que esteu cercant tant si és una ciutat com un carrer, o " "ubicar un lloc per a trobar-vos amb una amistat." #: data/org.gnome.Maps.appdata.xml.in.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "El Mapes empra la base de dades col·laborativa de l'OpenStreetMap, creada " "per centenars de milers de persones d'arreu del món." #: data/org.gnome.Maps.appdata.xml.in.in:424 src/mainWindow.js:588 msgid "The GNOME Project" msgstr "El projecte GNOME" #: data/org.gnome.Maps.desktop.in.in:5 msgid "A simple maps application" msgstr "Una aplicació senzilla de mapes" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in.in:14 msgid "Maps;" msgstr "Mapes;" #: data/org.gnome.Maps.desktop.in.in:17 msgid "Allows your location to be shown on the map." msgstr "Permet mostrar la vostra ubicació al mapa." #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "última ubicació vista" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "Coordenades de l'última ubicació vista." #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "ampliació" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "Nivell d'ampliació" #: data/org.gnome.Maps.gschema.xml:21 msgid "rotation" msgstr "rotació" #: data/org.gnome.Maps.gschema.xml:22 msgid "Map rotation in radians" msgstr "Rotació del mapa en radiants" #: data/org.gnome.Maps.gschema.xml:26 msgid "Map type" msgstr "Tipus de mapa" #: data/org.gnome.Maps.gschema.xml:27 msgid "The type of map to display (street, aerial, etc.)" msgstr "Tipus de mapa a mostrar (carrer, aeri, etc.)" #: data/org.gnome.Maps.gschema.xml:31 msgid "Window size" msgstr "Mida de la finestra" #: data/org.gnome.Maps.gschema.xml:32 msgid "Window size (width and height)." msgstr "Mida de la finestra (amplada i alçada)." #: data/org.gnome.Maps.gschema.xml:36 msgid "Window position" msgstr "Posició de la finestra" #: data/org.gnome.Maps.gschema.xml:37 msgid "Window position (X and Y)." msgstr "Posició de la finestra (x i y)." #: data/org.gnome.Maps.gschema.xml:41 msgid "Window maximized" msgstr "Finestra maximitzada" #: data/org.gnome.Maps.gschema.xml:42 msgid "Window maximization state" msgstr "Estat de la finestra maximitzada" #: data/org.gnome.Maps.gschema.xml:46 msgid "Maximum number of search results" msgstr "Nombre màxim de resultats de cerca" #: data/org.gnome.Maps.gschema.xml:47 msgid "Maximum number of search results from geocode search." msgstr "Nombre màxim de resultats de cerca en fer-la per geocodi." #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent places to store" msgstr "Nombre de llocs recents que s'ha d'emmagatzemar" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited places to store." msgstr "Nombre de llocs visitats recentment que s'ha d'emmagatzemar." #: data/org.gnome.Maps.gschema.xml:56 msgid "Number of recent routes to store" msgstr "Nombre de rutes recents que s'han d'emmagatzemar" #: data/org.gnome.Maps.gschema.xml:57 msgid "Number of recently visited routes to store." msgstr "Nombre de rutes visitades recentment que s'han d'emmagatzemar." #: data/org.gnome.Maps.gschema.xml:61 msgid "OpenStreetMap username or e-mail address" msgstr "Nom d'usuari d'OpenStreetMap o correu electrònic" #: data/org.gnome.Maps.gschema.xml:62 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "" "Indica si l'usuari ha iniciat la sessió per a editar les dades " "d'OpenStreetMap." #: data/org.gnome.Maps.gschema.xml:66 msgid "Last used transportation type for routing" msgstr "Darrer tipus de transport usat per itineraris" #: data/org.gnome.Maps.gschema.xml:70 msgid "Show scale" msgstr "Mostra l'escala" #: data/org.gnome.Maps.gschema.xml:71 msgid "Whether to show the scale." msgstr "Si s'ha de mostrar l'escala." #: data/ui/context-menu.ui:6 msgid "Route from Here" msgstr "Comenceu la ruta des d'aquí" #: data/ui/context-menu.ui:10 msgid "Add Intermediate Destination" msgstr "Afegeix una parada intermèdia" #: data/ui/context-menu.ui:14 msgid "Route to Here" msgstr "Continueu la ruta fins aquí" #: data/ui/context-menu.ui:20 msgid "What's Here?" msgstr "Què hi ha aquí?" #: data/ui/context-menu.ui:24 msgid "Copy Location" msgstr "Copia la ubicació" #: data/ui/context-menu.ui:28 msgid "Add to OpenStreetMap…" msgstr "Afegeix a OpenStreetMap…" #: data/ui/export-view-dialog.ui:7 msgid "Export view" msgstr "Exporta vista" #: data/ui/export-view-dialog.ui:16 data/ui/send-to-dialog.ui:10 #: data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "_Cancel·la" #: data/ui/export-view-dialog.ui:26 msgid "_Export" msgstr "_Exporta" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:11 src/geoclue.js:106 msgid "Current Location" msgstr "Ubicació actual" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:19 msgid "Layers" msgstr "Capes" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:11 msgid "Print Route" msgstr "Imprimeix ruta" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:21 msgid "Favorites" msgstr "Preferits" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:30 msgid "Route Planner" msgstr "Planificador de rutes" #: data/ui/help-overlay.ui:12 msgctxt "shortcut window" msgid "General" msgstr "General" #: data/ui/help-overlay.ui:15 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "Mostra dreceres" #: data/ui/help-overlay.ui:21 msgctxt "shortcut window" msgid "Search" msgstr "Cerca" #: data/ui/help-overlay.ui:27 msgctxt "shortcut window" msgid "Explore points-of-interest" msgstr "Explora els punts d'interès" #: data/ui/help-overlay.ui:33 msgctxt "shortcut window" msgid "Show last search results" msgstr "Mostra els resultats de la darrera cerca" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "Commuta el planificador de rutes" #: data/ui/help-overlay.ui:45 msgctxt "shortcut window" msgid "Print route" msgstr "Imprimeix ruta" # N.T.: Nom de la tecla de sortida #: data/ui/help-overlay.ui:51 msgctxt "shortcut window" msgid "Quit" msgstr "Surt" #: data/ui/help-overlay.ui:57 msgctxt "shortcut window" msgid "Open main menu" msgstr "Obre el menú principal" #: data/ui/help-overlay.ui:65 msgctxt "shortcut window" msgid "Map View" msgstr "Visualització de mapa" #: data/ui/help-overlay.ui:68 msgctxt "shortcut window" msgid "Zoom in" msgstr "Amplia" #: data/ui/help-overlay.ui:74 msgctxt "shortcut window" msgid "Zoom out" msgstr "Redueix" #: data/ui/help-overlay.ui:80 msgctxt "shortcut window" msgid "Rotate clockwise" msgstr "Gira en sentit horari" #: data/ui/help-overlay.ui:86 msgctxt "shortcut window" msgid "Rotate counter-clockwise" msgstr "Gira en sentit antihorari" #: data/ui/help-overlay.ui:92 msgctxt "shortcut window" msgid "Reset rotation" msgstr "Restableix la rotació" #: data/ui/help-overlay.ui:98 msgctxt "shortcut window" msgid "Toggle scale" msgstr "Commuta l'escala" #: data/ui/help-overlay.ui:104 msgctxt "shortcut window" msgid "Go to current location" msgstr "Ves a la ubicació actual" #: data/ui/help-overlay.ui:114 msgctxt "shortcut window" msgid "Switch to street view" msgstr "Canvia a la vista de carrer" #: data/ui/help-overlay.ui:121 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "Canvia a la vista aèria" #: data/ui/help-overlay.ui:127 msgctxt "shortcut window" msgid "Open shape layer" msgstr "Obre la capa de forma" #: data/ui/layers-popover.ui:7 msgid "Show Scale" msgstr "Mostra l'escala" #: data/ui/layers-popover.ui:16 msgid "Enable Experimental Map" msgstr "Activa el mapa experimental" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:21 msgid "Open Shape Layer…" msgstr "Obre la capa de forma…" #: data/ui/main-window.ui:8 msgid "Set up OpenStreetMap Account…" msgstr "Configura el compte d'OpenStreetMap…" #: data/ui/main-window.ui:12 msgid "Export as Image…" msgstr "Exporta com a imatge…" #: data/ui/main-window.ui:17 msgid "_Keyboard Shortcuts" msgstr "Dreceres de _teclat" #: data/ui/main-window.ui:22 msgid "About Maps" msgstr "Quant al Mapes" #: data/ui/main-window.ui:48 msgid "Main Menu" msgstr "Menú principal" #: data/ui/osm-account-dialog.ui:6 msgid "OpenStreetMap Account" msgstr "Compte OpenStreetMap" #: data/ui/osm-account-dialog.ui:26 msgid "Sign in to edit maps" msgstr "" "Inicieu la sessió per a editar mapes" #: data/ui/osm-account-dialog.ui:39 msgid "" "Help to improve the map, using an\n" "OpenStreetMap account." msgstr "" "Ajudeu a millorar el mapa\n" "utilitzant un compte d'OpenStreetMap." #: data/ui/osm-account-dialog.ui:52 msgid "" "Sign in to authorize access in a web browser.\n" "Then fill in the obtained verification code here in the next step." msgstr "" "Inicieu la sessió per a autoritzar l'accés en un navegador web.\n" "A continuació, ompliu el codi de verificació obtingut aquí en el següent pas." #: data/ui/osm-account-dialog.ui:67 msgid "Sign In" msgstr "Inicieu la sessió" #: data/ui/osm-account-dialog.ui:111 msgid "Copy verification code shown when authorizing access in the browser" msgstr "" "Copieu el codi de verificació que es mostra en autoritzar l'accés al " "navegador" #: data/ui/osm-account-dialog.ui:121 msgid "Verification code" msgstr "Codi de verificació" #: data/ui/osm-account-dialog.ui:132 msgid "Verify" msgstr "Verifica" #: data/ui/osm-account-dialog.ui:160 msgid "Signed In" msgstr "Sessió iniciada" #: data/ui/osm-account-dialog.ui:172 msgid "Your OpenStreetMap account is active." msgstr "El vostre compte OpenStreetMap està actiu." #: data/ui/osm-account-dialog.ui:202 msgid "Sign Out" msgstr "Surt de la sessió" #: data/ui/osm-edit-address.ui:11 msgid "Street" msgstr "Carrer" #: data/ui/osm-edit-address.ui:22 msgid "House number" msgstr "Número de carrer" #: data/ui/osm-edit-address.ui:33 msgid "Postal code" msgstr "Codi postal" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:44 msgid "City" msgstr "Ciutat" #: data/ui/osm-edit-dialog.ui:8 msgctxt "dialog title" msgid "Edit on OpenStreetMap" msgstr "Editeu a l'OpenStreetMap" #: data/ui/osm-edit-dialog.ui:57 msgid "Type" msgstr "Tipus" #: data/ui/osm-edit-dialog.ui:79 msgid "None" msgstr "Cap" #: data/ui/osm-edit-dialog.ui:108 msgid "Add Field" msgstr "Afegeix un camp" #: data/ui/osm-edit-dialog.ui:130 msgid "Comment" msgstr "Comentari" #: data/ui/osm-edit-dialog.ui:158 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "Els canvis del mapa seran visibles en tots els\n" "mapes que utilitzen dades de l'OpenStreetMap." #: data/ui/osm-edit-dialog.ui:186 msgid "Recently Used" msgstr "Utilitzats recentment" #: data/ui/osm-edit-dialog.ui:225 src/mapView.js:541 msgid "Cancel" msgstr "Cancel·la" #: data/ui/osm-edit-dialog.ui:238 src/osmEditDialog.js:531 msgid "Next" msgstr "Següent" #: data/ui/osm-edit-wikipedia.ui:8 msgid "Article" msgstr "Article" #: data/ui/osm-edit-wikipedia.ui:21 msgid "Wikidata tag" msgstr "Etiqueta Wikidata" #: data/ui/osm-edit-wikipedia.ui:32 msgid "Load Wikidata tag for article" msgstr "Carrega l'etiqueta Wikidata per a l'article" #: data/ui/place-popover.ui:23 src/searchBar.js:54 msgid "Explore Nearby Places" msgstr "Explorar els llocs propers" #: data/ui/place-popover.ui:82 src/application.js:274 msgid "No results found" msgstr "No s'ha trobat cap resultat" #: data/ui/place-popover.ui:92 src/application.js:252 msgid "An error has occurred" msgstr "S'ha produït un error" #. Translators: This is a tooltip #: data/ui/route-entry.ui:12 msgid "Change Route Order" msgstr "Canvia l'ordre de la ruta" #: data/ui/send-to-dialog.ui:7 msgid "Open Location" msgstr "Obre ubicació" #: data/ui/send-to-dialog.ui:64 msgid "Copy" msgstr "Copia" #: data/ui/send-to-dialog.ui:70 msgid "Send To…" msgstr "Envia a…" #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:64 msgid "Open Shape Layer" msgstr "Obre la capa de forma" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "_Obre" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:32 msgid "Toggle visible" msgstr "Commuta els visibles" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:44 msgid "Remove Shape Layer" msgstr "Elimina la capa de forma" #: data/ui/sidebar.ui:207 msgid "Route search by GraphHopper" msgstr "Itinerari proporcionat per GraphHopper" #: data/ui/sidebar.ui:272 msgid "" "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of " "transportation,\n" "e.g. a national provider might not include airlines, and a local provider " "could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" "Els itineraris de ruta del transport públic els proporciona el GNOME\n" "utilitzant dades d'horaris obtingudes d'empreses o agències de trànsit.\n" "Les empreses i agències no es fan responsables dels resultats mostrats.\n" "El GNOME no pot garantir la correctesa dels itineraris i horaris mostrats.\n" "Els noms i les marques que es mostren s'han de considerar propietat dels\n" "seus respectius propietaris, quan es pugui aplicar." #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:98 msgid "Hide intermediate stops and information" msgstr "Oculta les parades intermèdies i informació" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:156 msgid "Show intermediate stops and information" msgstr "Mostra les parades intermèdies i informació" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:16 msgid "Leave Now" msgstr "Sortiu ara" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:17 msgid "Leave By" msgstr "Sortiu a" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:18 msgid "Arrive By" msgstr "Arribeu a" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:85 msgid "Show" msgstr "Mostra" #: data/ui/transit-options-panel.ui:95 msgid "Buses" msgstr "Busos" #: data/ui/transit-options-panel.ui:101 msgid "Trams" msgstr "Tramvies" #: data/ui/transit-options-panel.ui:107 msgid "Trains" msgstr "Trens" #: data/ui/transit-options-panel.ui:113 msgid "Subway" msgstr "Metro" #: data/ui/transit-options-panel.ui:119 msgid "Ferries" msgstr "Transbordadors" #: data/ui/transit-options-panel.ui:125 msgid "Airplanes" msgstr "Avions" #. Translators: This is a tooltip #: data/ui/place-bar.ui:28 data/ui/place-buttons.ui:27 msgid "Share Location" msgstr "Comparteix la ubicació" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:11 msgid "Add to new route" msgstr "Afegeix a la ruta nova" #. Translators: This is the button to find a route to a place #: data/ui/place-buttons.ui:15 msgid "Directions" msgstr "Indicacions" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:36 msgid "Mark as Favorite" msgstr "Marca com a preferit" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:44 msgid "Edit on OpenStreetMap" msgstr "Editeu a l'OpenStreetMap" #. Translators: This is a tooltip #: data/ui/place-view.ui:52 msgid "Share location" msgstr "Comparteix la ubicació" #: data/ui/poi-category-goback-row.ui:22 msgid "Back to Main Categories" msgstr "Torna a les categories principals" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:15 src/mapView.js:1121 msgid "Zoom In" msgstr "Amplia" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:28 msgid "Zoom Out" msgstr "Allunya" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:49 msgid "Reset Rotation" msgstr "Restableix la rotació" #: lib/maps-file-data-source.c:262 lib/maps-file-data-source.c:338 #: lib/maps-file-data-source.c:418 msgid "Failed to find tile structure in directory" msgstr "" "S'ha produït una errada en trobar l'estructura de caselles al directori" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "S'ha produït un error en analitzar el document XML" #: lib/maps-osm.c:250 lib/maps-osm.c:403 msgid "Missing required attributes" msgstr "S'han perdut els atributs requerits" #: lib/maps-osm.c:451 lib/maps-osm.c:494 msgid "Could not find OSM element" msgstr "No s'ha trobat l'element OSM" #: lib/maps-osm.c:508 msgid "Could not find user element" msgstr "No s'ha trobat l'element d'usuari" #: src/application.js:74 msgid "A path to a local tiles directory structure" msgstr "Un camí a l'estructura de caselles locals del directori" #: src/application.js:80 msgid "Tile size for local tiles directory" msgstr "Mida de les caselles pel directori de caselles local" #: src/application.js:84 msgid "Show the version of the program" msgstr "Mostra la versió del programa" #: src/application.js:90 msgid "Search for places" msgstr "Cerqueu llocs" #: src/application.js:101 src/application.js:102 msgid "[FILE…|URI]" msgstr "[FITXER…|URI]" #: src/application.js:281 #, javascript-format msgid "Invalid maps: URI: %s" msgstr "Mapes invàlids: URI: %s" #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:74 #, javascript-format msgid "Maps at %f, %f.png" msgstr "Mapa a %f, %f.png" #: src/exportViewDialog.js:153 msgid "Unable to export view" msgstr "No està habilitada l'exportació de la vista" #: src/geoJSONSource.js:73 msgid "invalid coordinate" msgstr "coordenades invàlides" #: src/geoJSONSource.js:118 src/geoJSONSource.js:158 src/geoJSONSource.js:173 msgid "parse error" msgstr "error d'anàlisi" #: src/geoJSONSource.js:152 msgid "unknown geometry" msgstr "geometria desconeguda" #: src/graphHopper.js:121 src/transitPlan.js:174 msgid "Route request failed." msgstr "Ha fallat la sol·licitud de cercar la ruta." #: src/graphHopper.js:128 src/transitPlan.js:166 msgid "No route found." msgstr "No s'ha trobat cap ruta." #: src/graphHopper.js:215 src/transitplugins/openTripPlanner.js:1163 msgid "Start!" msgstr "Comença!" #: src/mainWindow.js:61 msgid "All Layer Files" msgstr "Tots els fitxers de capa" #: src/mainWindow.js:468 msgid "Failed to connect to location service" msgstr "Ha fallat la connexió amb el servei d'ubicació" #: src/mainWindow.js:473 msgid "Turn on location services" msgstr "Activa els serveis d'ubicació" #: src/mainWindow.js:474 msgid "Location Settings" msgstr "Paràmetres de la ubicació" #: src/mainWindow.js:589 msgid "translator-credits" msgstr "" "Gil Forcada \n" "Josep Sanchez Mesegue \n" "Carles Ferrando \n" "Pere Orga \n" "Miquel-Àngel Burgos i Fradeja \n" "Joan Mas Lloret " #: src/mainWindow.js:593 msgid "Copyright © 2011 – 2023 Red Hat, Inc. and The GNOME Maps authors" msgstr "" "Copyright © 2011 – 2023 Red Hat, Inc. i els altres autors del Mapes del GNOME" #: src/mainWindow.js:609 #, javascript-format msgid "Map data by %s and contributors" msgstr "Dades del mapa de %s i col·laboradors" #: src/mainWindow.js:610 msgid "Map Data Provider" msgstr "Proveïdor de dades del mapa" #: src/mainWindow.js:622 msgid "Map Tile Provider" msgstr "Proveïdor de les caselles de mapa" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:630 #, javascript-format msgid "Map tiles provided by %s" msgstr "Caselles de mapa proporcionades per %s" #: src/mainWindow.js:660 msgid "Search Provider" msgstr "Proveïdor de cerca" #: src/mainWindow.js:663 #, javascript-format msgid "Search provided by %s using %s" msgstr "Cerca proveïda per %s utilitzant %s" #: src/mapView.js:515 src/mapView.js:580 msgid "Failed to open layer" msgstr "S'ha produït un error en obrir la capa" #: src/mapView.js:534 msgid "Do you want to continue?" msgstr "Voleu continuar?" #: src/mapView.js:535 #, javascript-format msgid "" "You are about to open files with a total size of %s MB. This could take some " "time to load" msgstr "" "Esteu a punt d'obrir fitxers amb una mida total de %s MB. Això pot trigar " "una estona a carregar-se" #: src/mapView.js:542 src/transitplugins/openTripPlanner.js:1239 msgid "Continue" msgstr "Continueu" #: src/mapView.js:574 msgid "File type is not supported" msgstr "Aquest tipus de fitxer no està suportat" #: src/mapView.js:611 msgid "Failed to open GeoURI" msgstr "S'ha produït un error en obrir el fitxer GeoURI" #: src/mapView.js:1080 msgid "Nothing found here!" msgstr "No s'ha trobat res aquí!" #: src/mapView.js:1120 msgid "Zoom in to add location" msgstr "Amplia per a afegir ubicació" #: src/mapView.js:1141 msgid "Location was added in OpenStreetMap" msgstr "La ubicació s'ha afegit a l'OpenStreetMap" #: src/osmAccountDialog.js:134 msgid "The verification code didn’t match, please try again." msgstr "El codi de verificació no funciona, torneu-ho a provar." #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:335 msgid "Incorrect user name or password" msgstr "Nom d'usuari o contrasenya incorrectes" #: src/osmConnection.js:337 msgid "Success" msgstr "Èxit" #: src/osmConnection.js:339 msgid "Bad request" msgstr "Sol·licitud incorrecta" #: src/osmConnection.js:341 msgid "Object not found" msgstr "No s'ha trobat l'objecte" #: src/osmConnection.js:343 msgid "Conflict, someone else has just modified the object" msgstr "Conflicte, algú altre acaba de modificar l'objecte" #: src/osmConnection.js:345 msgid "Object has been deleted" msgstr "L'objecte ha estat suprimit" #: src/osmConnection.js:347 msgid "Way or relation refers to non-existing children" msgstr "La via o relació es refereix a un fill que no existeix" #: src/osmEditDialog.js:106 msgid "Name" msgstr "Nom" #: src/osmEditDialog.js:109 msgid "The official name. This is typically what appears on signs." msgstr "El nom oficial. Així és com acostuma a aparèixer en els senyals." #: src/osmEditDialog.js:112 msgid "Address" msgstr "Adreça" #: src/osmEditDialog.js:120 src/placeView.js:261 msgid "Website" msgstr "Lloc web" #: src/osmEditDialog.js:124 msgid "This is not a valid URL. Make sure to include http:// or https://." msgstr "" "Aquest URL no és vàlid. Assegureu-vos d'incloure-hi http:// o https://." #: src/osmEditDialog.js:125 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" "El lloc web oficial. Utilitzeu la forma més bàsica de l'URL, és a dir: " "http://example.com en comptes de http://example.com/index.html." #: src/osmEditDialog.js:130 msgid "Phone" msgstr "Telèfon" #: src/osmEditDialog.js:134 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" "Número de telèfon. Utilitzeu el format internacional, començant amb un signe " "+. Compte amb les lleis locals de privacitat, especialment per als números " "de telèfon privats." #: src/osmEditDialog.js:139 src/placeView.js:294 msgid "E-mail" msgstr "Correu electrònic" #: src/osmEditDialog.js:144 msgid "" "This is not a valid e-mail address. Make sure to not include the mailto: " "protocol prefix." msgstr "" "Aquesta no és una adreça de correu electrònic vàlida. Assegureu-vos de no " "incloure el prefix del protocol mailto:." #: src/osmEditDialog.js:145 msgid "" "Contact e-mail address for inquiries. Add only email addresses that are " "intended to be publicly used." msgstr "" "Adreça de correu electrònic de contacte per a consultes. Afegeix només les " "adreces de correu que s'han d'utilitzar públicament." #. Translators: This is the text for the "Wikipedia" link at the end #. of summaries #: src/osmEditDialog.js:149 src/placeView.js:646 msgid "Wikipedia" msgstr "Viquipèdia" #: src/osmEditDialog.js:156 src/placeView.js:331 msgid "Opening hours" msgstr "Hores d'obertura" #: src/osmEditDialog.js:161 msgid "See the link in the label for help on format." msgstr "Mireu l'enllaç a l'etiqueta per ajuda sobre el format." #. TODO: this is a bit of a work-around to re-interpret the population, #. * stored as a string into an integer to convert back to a locale- #. * formatted string. Ideally it should be kept as an integer value #. * in the Place class. But this will also need to be handled by the #. * PlaceStore, possible in a backwards-compatible way #. #: src/osmEditDialog.js:164 src/placeView.js:441 msgid "Population" msgstr "Població" #: src/osmEditDialog.js:169 src/placeView.js:470 msgid "Altitude" msgstr "Altitud" #: src/osmEditDialog.js:172 msgid "Elevation (height above sea level) of a point in metres." msgstr "Elevació (altura sobre el nivell del mar) d'un punt en metres." #: src/osmEditDialog.js:175 msgid "Wheelchair access" msgstr "Accés amb cadira de rodes" #: src/osmEditDialog.js:178 src/osmEditDialog.js:187 src/osmEditDialog.js:198 #: src/osmEditDialog.js:233 msgid "Yes" msgstr "Sí" #: src/osmEditDialog.js:179 src/osmEditDialog.js:188 src/osmEditDialog.js:199 #: src/osmEditDialog.js:234 msgid "No" msgstr "No" #: src/osmEditDialog.js:180 msgid "Limited" msgstr "Limitat" #: src/osmEditDialog.js:181 msgid "Designated" msgstr "Designat" #: src/osmEditDialog.js:184 msgid "Internet access" msgstr "Accés a Internet" #: src/osmEditDialog.js:189 msgid "Wi-Fi" msgstr "Wi-Fi" #: src/osmEditDialog.js:190 msgid "Wired" msgstr "Amb fil" #: src/osmEditDialog.js:191 msgid "Terminal" msgstr "Terminal" #: src/osmEditDialog.js:192 msgid "Service" msgstr "Servei" #: src/osmEditDialog.js:195 msgid "Takeout" msgstr "Per emportar" #: src/osmEditDialog.js:200 msgid "Only" msgstr "Només" #: src/osmEditDialog.js:203 msgid "Religion" msgstr "Religió" #: src/osmEditDialog.js:206 src/translations.js:286 msgid "Animism" msgstr "Animisme" #: src/osmEditDialog.js:207 msgid "Bahá’í" msgstr "Bahá'í" #: src/osmEditDialog.js:208 src/translations.js:288 msgid "Buddhism" msgstr "Budisme" #: src/osmEditDialog.js:209 src/translations.js:289 msgid "Caodaism" msgstr "Caodaisme" #: src/osmEditDialog.js:210 src/translations.js:290 msgid "Christianity" msgstr "Cristianisme" #: src/osmEditDialog.js:211 src/translations.js:291 msgid "Confucianism" msgstr "Confucianisme" #: src/osmEditDialog.js:212 src/translations.js:292 msgid "Hinduism" msgstr "Hinduisme" #: src/osmEditDialog.js:213 src/translations.js:293 msgid "Jainism" msgstr "Jainisme" #: src/osmEditDialog.js:214 src/translations.js:294 msgid "Judaism" msgstr "Judaisme" #: src/osmEditDialog.js:215 src/translations.js:295 msgid "Islam" msgstr "Islam" #: src/osmEditDialog.js:216 src/translations.js:296 msgid "Multiple Religions" msgstr "Diverses religions" #: src/osmEditDialog.js:217 src/translations.js:297 msgid "Paganism" msgstr "Paganisme" #: src/osmEditDialog.js:218 src/translations.js:298 msgid "Pastafarianism" msgstr "Pastafarisme" #: src/osmEditDialog.js:219 src/translations.js:299 msgid "Scientology" msgstr "Cienciologia" #: src/osmEditDialog.js:220 src/translations.js:300 msgid "Shinto" msgstr "Xintoisme" #: src/osmEditDialog.js:221 src/translations.js:301 msgid "Sikhism" msgstr "Sikhisme" #: src/osmEditDialog.js:222 src/translations.js:302 msgid "Spiritualism" msgstr "Espiritualisme" #: src/osmEditDialog.js:223 src/translations.js:303 msgid "Taoism" msgstr "Taoisme" #: src/osmEditDialog.js:224 src/translations.js:304 msgid "Unitarian Universalism" msgstr "Unitarisme universalista" #: src/osmEditDialog.js:225 src/translations.js:305 msgid "Voodoo" msgstr "Vodú" #: src/osmEditDialog.js:226 src/translations.js:306 msgid "Yazidism" msgstr "Yazidisme" #: src/osmEditDialog.js:227 src/translations.js:307 msgid "Zoroastrianism" msgstr "Zoroastrisme" #: src/osmEditDialog.js:230 src/poiCategories.js:174 msgid "Toilets" msgstr "Lavabos" #: src/osmEditDialog.js:237 msgid "Note" msgstr "Nota" #: src/osmEditDialog.js:240 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" "La informació utilitzada per a informar altres creadors de mapes " "d'informació no òbvia sobre un element, la intenció de l'autor en crear-lo, " "o pistes per a millorar-lo." #: src/osmEditDialog.js:339 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "Afegeix a l'OpenStreetMap" #: src/osmEditDialog.js:393 msgid "Select Type" msgstr "Seleccioneu el tipus" #: src/osmEditDialog.js:515 msgid "Done" msgstr "Fet" #: src/osmEditDialog.js:818 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "" "El format utilitzat ha d'incloure el codi de l'idioma i el títol de " "l'article com «ca:Títol de l'article»." #: src/osmEditDialog.js:824 msgid "Use the reload button to load the Wikidata tag for the selected article" msgstr "" "Utilitzeu el botó de recarrega per a carregar l'etiqueta Wikidata per a " "l'article seleccionat" #: src/osmEditDialog.js:832 msgid "Couldn't find Wikidata tag for article" msgstr "No s'ha pogut trobar l'etiqueta Wikidata per a l'article" #: src/photonUtils.js:118 msgid "Unnamed place" msgstr "Ubicació sense nom" #: src/placeEntry.js:261 msgid "Failed to parse Geo URI" msgstr "S'ha produït un error en analitzar l'URI Geo" #: src/placeEntry.js:273 msgid "Failed to parse Maps URI" msgstr "S'ha produït un error en analitzar l'URI Maps" #. 300 ft (300 * 12 * 0.0254 m) #. #. * Translators: This a format string for showing a distance to a place #. * is lower than a "quite short" distance. #. * The "less than" symbol can be substituded with an appropriate one, if #. * needed (e.g. using the correct direction, or alternative symbol). #. * The %s should be kept, and is substituted with a label representing the #. * short distance. The \u2009 (thin space) could also be adjusted if needed #: src/placeListRow.js:46 #, javascript-format msgctxt "short distance format string" msgid "< %s" msgstr "< %s" #: src/placeView.js:249 msgid "Coordinates" msgstr "Coordenades" #: src/placeView.js:253 msgid "Accuracy" msgstr "Precisió" #. Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) #: src/placeView.js:256 #, javascript-format msgid "Accuracy: %s" msgstr "Precisió: %s" #. since the phone numbers are typically always rendered #. * left-to-right, insert an explicit LRM char to avoid issues #. * with phone numbers in international format starting with a + #. * which is considered a "weak" character to determine Unicode #. * text direction #. #: src/placeView.js:275 msgid "Phone number" msgstr "Número de telèfon" #. Translators: #. * The establishment offers customers to purchase meals #. * (or similar) to be consumed elsewhere #. #: src/placeView.js:307 msgid "Offers takeout" msgstr "Ofereix menjar per a emportar" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed on-premise. #. #: src/placeView.js:315 msgid "Does not offer takeout" msgstr "No ofereix menjar per a emportar" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed elsewhere. E.g. #. * there is no seating on-premise for eating/drinking #. #: src/placeView.js:324 msgid "Only offers takeout" msgstr "Només ofereix menjar per a emportar" #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/placeView.js:341 msgid "Public internet access" msgstr "Accés públic a Internet" #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/placeView.js:350 msgid "No internet access" msgstr "Sense accés a Internet" #. Translators: #. * This means a WLAN Hotspot, also known as wireless, wifi or Wi-Fi. #. #: src/placeView.js:358 msgid "Public Wi-Fi" msgstr "Wi-Fi públic" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/placeView.js:366 msgid "Wired internet access" msgstr "Accés cablejat a Internet" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/placeView.js:374 msgid "Computers available for use" msgstr "Ordinadors disponibles per al seu ús" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/placeView.js:382 msgid "Internet assistance available" msgstr "Assistència d'Internet disponible" #: src/placeView.js:388 msgid "No toilets available" msgstr "Sense lavabos disponibles" #: src/placeView.js:391 msgid "Toilets available" msgstr "Lavabos disponibles" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #: src/placeView.js:400 msgid "Wheelchair accessible" msgstr "Accessible amb cadira de rodes" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/placeView.js:410 msgid "Limited wheelchair accessibility" msgstr "Accessibilitat amb cadira de rodes limitada" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #: src/placeView.js:419 msgid "Not wheelchair accessible" msgstr "No accessible amb cadira de rodes" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/placeView.js:429 msgid "Designated for wheelchair users" msgstr "Dissenyat per a usuaris en cadira de rodes" #. * #. * Translators: this is a label indicating an altitude below #. * sea level, where the %s placeholder is the altitude relative #. * to mean sea level in the "negative direction" #. #: src/placeView.js:460 #, javascript-format msgid "%s below sea level" msgstr "%s per sota del nivell del mar" #. * #. * Translators: this indicates a place is located at (or very #. * close to) mean sea level #. #: src/placeView.js:467 msgid "At sea level" msgstr "A nivell del mar" #: src/placeView.js:476 msgid "Religion:" msgstr "Religió:" #: src/place.js:543 msgid "Place not found in OpenStreetMap" msgstr "Lloc no trobat a l'OpenStreetMap" #: src/place.js:550 msgid "Coordinates in URL are not valid" msgstr "Les coordenades a l'URL no són vàlides" #: src/place.js:559 msgid "URL is not supported" msgstr "L'URL no és compatible" #: src/poiCategories.js:132 msgid "Amenities" msgstr "" #: src/poiCategories.js:135 msgid "ATMs" msgstr "Caixers" #: src/poiCategories.js:141 msgid "Post Boxes" msgstr "Bústies de correus" #: src/poiCategories.js:147 msgid "Post Offices" msgstr "Oficina de correus" #: src/poiCategories.js:153 msgid "Police" msgstr "Policia" #: src/poiCategories.js:159 msgid "Libraries" msgstr "Biblioteques" #: src/poiCategories.js:165 msgid "Pharmacies" msgstr "Farmàcies" #: src/poiCategories.js:170 msgid "Recycling" msgstr "Reciclatge" #: src/poiCategories.js:180 msgid "Wheelchair-accessible Toilets" msgstr "Lavabos accessibles amb cadira de rodes" #: src/poiCategories.js:186 msgid "Baggage Lockers" msgstr "Guixetes per a equipatge" #: src/poiCategories.js:194 msgid "Eating & Drinking" msgstr "Menjar i beure" #: src/poiCategories.js:198 msgid "Restaurants" msgstr "Restaurants" #: src/poiCategories.js:203 msgid "Fast Food" msgstr "Menjar ràpid" #: src/poiCategories.js:208 msgid "Food Courts" msgstr "" #: src/poiCategories.js:213 msgid "Pubs" msgstr "Pubs" #: src/poiCategories.js:219 msgid "Bars" msgstr "Bars" #: src/poiCategories.js:224 msgid "Cafes" msgstr "Cafès" #: src/poiCategories.js:229 msgid "Ice Cream" msgstr "Gelateries" #: src/poiCategories.js:233 msgid "Food, Snacks, and Beverage Machines" msgstr "Màquines de menjar i begudes" #: src/poiCategories.js:241 msgid "Shopping" msgstr "Compres" #: src/poiCategories.js:245 msgid "Supermarkets" msgstr "Supermercats" #: src/poiCategories.js:251 msgid "Convenience Stores" msgstr "" #: src/poiCategories.js:256 msgid "Shopping Malls" msgstr "Centres comercials" #: src/poiCategories.js:262 msgid "Clothes" msgstr "Roba" #: src/poiCategories.js:267 msgid "Shoes" msgstr "Sabates" #: src/poiCategories.js:272 msgid "Electronics" msgstr "Electrònica" #: src/poiCategories.js:278 msgid "Alcohol" msgstr "Alcohol" #: src/poiCategories.js:284 msgid "Bakeries" msgstr "Fleques" #: src/poiCategories.js:290 msgid "Flowers" msgstr "Flors" #: src/poiCategories.js:297 msgid "Transportation" msgstr "Transports" #: src/poiCategories.js:301 msgid "Bus & Tram Stops" msgstr "Parades d'autobús i tramvia" #: src/poiCategories.js:309 msgid "Train & Subway Stations" msgstr "Estacions de tren i metro" #: src/poiCategories.js:317 msgid "Tickets" msgstr "Tiquets" #: src/poiCategories.js:325 msgid "Parking" msgstr "Aparcament" #: src/poiCategories.js:330 msgid "Bicycle Parking" msgstr "Aparcament de bicicletes" #: src/poiCategories.js:335 msgid "Bicycle Rental" msgstr "Lloguer de bicicletes" #: src/poiCategories.js:340 msgid "Car Rental" msgstr "Lloguer de cotxes" #: src/poiCategories.js:345 msgid "Fuel" msgstr "Benzina" #: src/poiCategories.js:350 msgid "EV Charging" msgstr "Carregador per a vehicle elèctric" #: src/poiCategories.js:358 msgid "Healthcare" msgstr "Salut" #: src/poiCategories.js:362 msgid "Clinics" msgstr "Clíniques" #: src/poiCategories.js:368 msgid "Hospitals" msgstr "Hospitals" #: src/poiCategories.js:374 msgid "Dentists" msgstr "Dentistes" #: src/poiCategories.js:381 msgid "Accommodation" msgstr "Allotjament" #: src/poiCategories.js:385 msgid "Hotels" msgstr "Hotels" #: src/poiCategories.js:390 msgid "Hostels" msgstr "Albergs" #: src/poiCategories.js:395 msgid "Bed & Breakfast" msgstr "Bed & Breakfast" #: src/poiCategories.js:400 msgid "Campings" msgstr "Càmpings" #: src/poiCategories.js:407 #, fuzzy #| msgid "Open Location" msgid "Recreation" msgstr "Obre ubicació" #: src/poiCategories.js:411 msgid "Parks" msgstr "Parcs" #: src/poiCategories.js:416 msgid "Playgrounds" msgstr "Parcs infantils" #: src/poiCategories.js:420 msgid "Beaches" msgstr "Platges" #: src/poiCategories.js:425 msgid "Nature Reserves" msgstr "Reserves naturals" #: src/poiCategories.js:431 msgid "Theme Parks" msgstr "Parcs temàtics" #: src/poiCategories.js:436 msgid "Theaters" msgstr "Teatres" #: src/poiCategories.js:442 msgid "Movie Theaters" msgstr "Cinemes" #: src/poiCategories.js:448 msgid "Night Clubs" msgstr "Clubs nocturns" #: src/poiCategories.js:455 msgid "Tourism" msgstr "Turisme" #: src/poiCategories.js:459 msgid "Museums" msgstr "Museus" #: src/poiCategories.js:465 msgid "Attractions" msgstr "Atraccions" #: src/poiCategories.js:470 msgid "Artworks" msgstr "Obres d'art" #: src/poiCategories.js:475 msgid "Tourist Information" msgstr "Informació turística" #: src/poiCategories.js:482 msgid "Sports" msgstr "Esports" #: src/poiCategories.js:486 msgid "Gyms" msgstr "Gimnasos" #: src/poiCategories.js:492 msgid "Outdoor Gyms" msgstr "Gimnasos a l'aire lliure" #: src/poiCategories.js:498 msgid "Golf Courses" msgstr "Camps de golf" #: src/printLayout.js:350 #, javascript-format msgid "From %s to %s" msgstr "Des de %s a %s" #: src/printOperation.js:49 msgid "Loading map tiles for printing" msgstr "S'estan carregant les caselles del mapa per a imprimir" #: src/printOperation.js:50 msgid "You can abort printing if this takes too long" msgstr "Podeu interrompre la impressió si aquesta tarda massa temps" #: src/printOperation.js:52 msgid "Abort printing" msgstr "Interromp la impressió" #. Translators: this is add via location tooltip #: src/routeEntry.js:60 msgid "Add via location" msgstr "Afegeix a través de la ubicació" #. Translators: this is remove via location tooltip #: src/routeEntry.js:70 msgid "Remove via location" msgstr "Suprimeix a través de la ubicació" #. Translators: this is reverse route tooltip #: src/routeEntry.js:76 msgid "Reverse route" msgstr "Ruta inversa" #: src/searchBar.js:45 msgid "Search" msgstr "Cerca" #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:84 #, javascript-format msgid "Add %s to %s" msgstr "Afegeix %s a %s" #: src/sendToDialog.js:181 msgid "Failed to open URI" msgstr "S'ha produït un error en obrir l'URI" #: src/sendToDialog.js:246 #, javascript-format msgid "Open with %s" msgstr "Obre amb %s" #: src/shapeLayer.js:108 msgid "failed to load file" msgstr "s'ha produït un error en carregar el fitxer" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:329 #, javascript-format msgid "Estimated time: %s" msgstr "Temps estimat: %s" #: src/sidebar.js:399 #, javascript-format msgid "Itineraries provided by %s" msgstr "Itineraris proporcionats per %s" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:39 #, javascript-format msgid "Start at %s" msgstr "Comenceu a %s" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:45 msgid "Start" msgstr "Comença" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:63 #, javascript-format msgid "Walk %s" msgstr "Camineu %s" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:77 #, javascript-format msgid "Arrive at %s" msgstr "Arribeu a %s" #: src/transit.js:79 src/transitplugins/openTripPlanner.js:1176 msgid "Arrive" msgstr "Arribeu" #: src/transitLegRow.js:69 msgid "Show walking instructions" msgstr "Mostra les instruccions a peu" #: src/transitLegRow.js:70 msgid "Hide walking instructions" msgstr "Oculta les instruccions a peu" #: src/transitMoreRow.js:37 msgid "Load earlier alternatives" msgstr "Carrega les alternatives anteriors" #: src/transitMoreRow.js:39 msgid "Load later alternatives" msgstr "Carrega les alternatives posteriors" #: src/transitMoreRow.js:52 msgid "No earlier alternatives found." msgstr "No s'han trobat alternatives anteriors." #: src/transitMoreRow.js:54 msgid "No later alternatives found." msgstr "No s'han trobat alternatives posteriors." #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:136 msgctxt "month-day-date" msgid "%b %e" msgstr "%e %b" #: src/transitPlan.js:170 msgid "No timetable data found for this route." msgstr "No s'han trobat dades d'horaris per aquesta ruta." #: src/transitPlan.js:178 msgid "No provider found for this route." msgstr "No s'ha trobat un proveïdor per a aquesta ruta." #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:295 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:324 #, javascript-format msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "%s minut" msgstr[1] "%s minuts" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:336 #, javascript-format msgid "%s hour" msgid_plural "%s hours" msgstr[0] "%s hora" msgstr[1] "%s hores" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:344 #, javascript-format msgid "%s:%s hour" msgid_plural "%s:%s hours" msgstr[0] "%s:%s hora" msgstr[1] "%s:%s hores" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:698 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: src/translations.js:55 msgid "Around the clock" msgstr "Tot el dia" #: src/translations.js:57 msgid "From sunrise to sunset" msgstr "Des de l'alba fins al capvespre" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:123 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s,%s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:137 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s,%s,%s" #: src/translations.js:156 msgid "Every day" msgstr "Tots els dies" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:168 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:179 msgid "Public holidays" msgstr "Dies festius" #: src/translations.js:181 msgid "School holidays" msgstr "Vacances escolars" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:221 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: src/translations.js:235 msgid "not open" msgstr "sense obrir" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:250 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:287 msgid "Bahá'í" msgstr "Bahá'í" #. Translators: Accuracy of user location information #: src/utils.js:257 msgid "Unknown" msgstr "Desconeguda" #. Translators: Accuracy of user location information #: src/utils.js:260 msgid "Exact" msgstr "Exacte" #. Translators: this is a duration with only hours, using #. * an abbreviation for hours, corresponding to 'h' in English #. #: src/utils.js:345 #, javascript-format msgid "%s h" msgstr "%s h" #. Translators: this is a duration with hours and minutes parts #. * using abbreviations for hours and minutes, corresponding to 'h' #. * and 'min' in English. The minutes has appropriate plural variations #. #: src/utils.js:351 #, javascript-format msgid "%s h %s min" msgid_plural "%s h %s min" msgstr[0] "%s h %s min" msgstr[1] "%s h %s min" #. Translators: this is a duration with minutes part #. * using abbreviation for minutes, corresponding to 'min' in English #. * with appropriate plural variations #. #: src/utils.js:358 #, javascript-format msgid "%s min" msgid_plural "%s min" msgstr[0] "%s min" msgstr[1] "%s min" #. Translators: this is a duration of less than one minute #. * with seconds using an abbreviation for seconds, corresponding to #. * 's' in English with appropriate plural forms #. #: src/utils.js:364 #, javascript-format msgid "%s s" msgid_plural "%s s" msgstr[0] "%s s" msgstr[1] "%s s" #. Translators: This is a distance measured in kilometers #: src/utils.js:375 #, javascript-format msgid "%s km" msgstr "%s km" #. Translators: This is a distance measured in meters #: src/utils.js:378 #, javascript-format msgid "%s m" msgstr "%s m" #. Translators: This is a distance measured in miles #: src/utils.js:386 #, javascript-format msgid "%s mi" msgstr "%s mi" #. Translators: This is a distance measured in feet #: src/utils.js:389 #, javascript-format msgid "%s ft" msgstr "%s ft" #: src/transitplugins/goMetro.js:61 msgid "This plugin doesn't support latest arrival" msgstr "Aquest connector no permet cercar per l'última arribada" #: src/transitplugins/openTripPlanner.js:1237 #, javascript-format msgid "Continue on %s" msgstr "Continueu a %s" #: src/transitplugins/openTripPlanner.js:1242 #, javascript-format msgid "Turn left on %s" msgstr "Gireu a l'esquerra a %s" #: src/transitplugins/openTripPlanner.js:1244 msgid "Turn left" msgstr "Gireu a l'esquerra" #: src/transitplugins/openTripPlanner.js:1247 #, javascript-format msgid "Turn slightly left on %s" msgstr "Gireu lleugerament a l'esquerra a %s" #: src/transitplugins/openTripPlanner.js:1249 msgid "Turn slightly left" msgstr "Gireu lleugerament a l'esquerra" #: src/transitplugins/openTripPlanner.js:1252 #, javascript-format msgid "Turn sharp left on %s" msgstr "Gireu pronunciadament a l'esquerra a %s" #: src/transitplugins/openTripPlanner.js:1254 msgid "Turn sharp left" msgstr "Gireu pronunciadament a l'esquerra" #: src/transitplugins/openTripPlanner.js:1257 #, javascript-format msgid "Turn right on %s" msgstr "Gireu a la dreta a %s" #: src/transitplugins/openTripPlanner.js:1259 msgid "Turn right" msgstr "Gireu a la dreta" #: src/transitplugins/openTripPlanner.js:1262 #, javascript-format msgid "Turn slightly right on %s" msgstr "Gireu lleugerament a la dreta a %s" #: src/transitplugins/openTripPlanner.js:1264 msgid "Turn slightly right" msgstr "Gireu lleugerament a la dreta" #: src/transitplugins/openTripPlanner.js:1267 #, javascript-format msgid "Turn sharp right on %s" msgstr "Gireu pronunciadament a la dreta a %s" #: src/transitplugins/openTripPlanner.js:1269 msgid "Turn sharp right" msgstr "Gireu pronunciadament a la dreta" #: src/transitplugins/openTripPlanner.js:1275 #, javascript-format msgid "At the roundabout, take exit %s" msgstr "A la rotonda, agafeu la sortida %s" #: src/transitplugins/openTripPlanner.js:1277 #, javascript-format msgid "At the roundabout, take exit to %s" msgstr "A la rotonda, agafeu la sortida a %s" #: src/transitplugins/openTripPlanner.js:1279 msgid "Take the roundabout" msgstr "Agafeu la rotonda" #: src/transitplugins/openTripPlanner.js:1283 #, javascript-format msgid "Take the elevator and get off at %s" msgstr "Agafeu l'ascensor i sortiu a %s" #: src/transitplugins/openTripPlanner.js:1285 msgid "Take the elevator" msgstr "Agafeu l'ascensor" #: src/transitplugins/openTripPlanner.js:1289 #, javascript-format msgid "Make a left u-turn onto %s" msgstr "Canvieu de sentit cap a l'esquerra a %s" #: src/transitplugins/openTripPlanner.js:1291 msgid "Make a left u-turn" msgstr "Canvieu de sentit cap a l'esquerra" #: src/transitplugins/openTripPlanner.js:1294 #, javascript-format msgid "Make a right u-turn onto %s" msgstr "Canvieu de sentit cap a la dreta a %s" #: src/transitplugins/openTripPlanner.js:1296 msgid "Make a right u-turn" msgstr "Canvieu de sentit cap a la dreta" #~ msgid "Sign up" #~ msgstr "Registreu-vos-hi" #~ msgid "Filesystem is read only" #~ msgstr "El sistema de fitxers és de només lectura" #~ msgid "You do not have permission to save there" #~ msgstr "No teniu permís per a anomenar i desar allí" #~ msgid "The directory does not exist" #~ msgstr "El directori no existeix" #~ msgid "No filename specified" #~ msgstr "No hi ha cap nom de fitxer especificat" #~ msgid "" #~ "Location was added to the map, note that it may take a while before it " #~ "shows on the map and in search results." #~ msgstr "" #~ "La ubicació ha estat afegida al mapa, fixeu-vos que pot tardar una mica " #~ "abans de mostrar al mapa els resultats de la cerca." #~ msgid "Takeaway" #~ msgstr "Per a emportar" #~ msgid "Go to current location" #~ msgstr "Ves a la ubicació actual" #~ msgid "Choose map type" #~ msgstr "Trieu el tipus de mapa" #~ msgid "Zoom in" #~ msgstr "Amplia" #~ msgid "Drag to change order of the route" #~ msgstr "Arrossegueu per a canviar l'ordre de la ruta" 070701000001B5000081A4000000000000000000000001664134090000B0FC000000000000000000000000000000000000002300000000gnome-maps-46.11/po/ca@valencia.po# Catalan translation for gnome-maps. # Copyright (C) 2013 gnome-maps's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-maps package. # Gil Forcada , 2013, 2014. # Josep Sanchez Mesegue , 2013. # Pere Orga , 2017. # Jordi Serratosa , 2017. # msgid "" msgstr "" "Project-Id-Version: gnome-maps master\n" "Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "maps&keywords=I18N+L10N&component=general\n" "POT-Creation-Date: 2017-10-03 16:33+0000\n" "PO-Revision-Date: 2017-08-01 19:02+0200\n" "Last-Translator: Xavi Ivars \n" "Language-Team: Catalan \n" "Language: ca-valencia\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: Poedit 2.0.1\n" "X-Project-Style: gnome\n" #: ../data/org.gnome.Maps.appdata.xml.in.h:1 msgid "GNOME Maps" msgstr "Mapes del GNOME" #: ../data/org.gnome.Maps.appdata.xml.in.h:2 msgid "Find places around the world" msgstr "Troba llocs arreu del món" #: ../data/org.gnome.Maps.appdata.xml.in.h:3 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "El Mapes vos dóna un accés ràpid a mapes d'arreu del món. Vos permet trobar " "ràpidament el lloc que esteu cercant tant si és una ciutat com un carrer, o " "ubicar un lloc per trobar-vos amb una amistat." #: ../data/org.gnome.Maps.appdata.xml.in.h:4 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "El Mapes empra la base de dades col·laborativa de l'OpenStreetMap, creat per " "centenars de milers de persones d'arreu del món." #. Translators: Search is carried out on OpenStreetMap data using Nominatim. #. Visit http://wiki.openstreetmap.org/wiki/Nominatim/Special_Phrases and click #. your language to see what words you can use for the translated search. #: ../data/org.gnome.Maps.appdata.xml.in.h:8 msgid "" "You can even search for specific types of locations, such as “Pubs near Main " "Street, Boston” or “Hotels near Alexanderplatz, Berlin”." msgstr "" "També podeu buscar per tipus d'ubicacions en concret, com ara «Bars a prop " "de la plaça Catalunya, Barcelona» o «Hotels a prop d'Alexanderplatz, Berlín»." #. Translators: This is the program name. #: ../data/org.gnome.Maps.desktop.in.h:1 ../data/ui/main-window.ui.h:1 #: ../src/application.js:87 ../src/mainWindow.js:489 msgid "Maps" msgstr "Mapes" #: ../data/org.gnome.Maps.desktop.in.h:2 msgid "A simple maps application" msgstr "Una aplicació senzilla de mapes" #: ../data/org.gnome.Maps.desktop.in.h:3 msgid "Maps;" msgstr "mapes;" #: ../data/org.gnome.Maps.desktop.in.h:4 msgid "Allows your location to be shown on the map." msgstr "Permet mostrar la vostra ubicació al mapa." #: ../data/org.gnome.Maps.gschema.xml.h:1 msgid "last viewed location" msgstr "Última ubicació vista" #: ../data/org.gnome.Maps.gschema.xml.h:2 msgid "Coordinates of last viewed location." msgstr "Coordenades de l'última ubicació vista." #: ../data/org.gnome.Maps.gschema.xml.h:3 msgid "Window size" msgstr "Mida de la finestra" #: ../data/org.gnome.Maps.gschema.xml.h:4 msgid "Window size (width and height)." msgstr "Mida de la finestra (amplària i alçària)." #: ../data/org.gnome.Maps.gschema.xml.h:5 msgid "Window position" msgstr "Posició de la finestra" #: ../data/org.gnome.Maps.gschema.xml.h:6 msgid "Window position (X and Y)." msgstr "Posició de la finestra (x i y)." #: ../data/org.gnome.Maps.gschema.xml.h:7 msgid "Window maximized" msgstr "Finestra maximitzada" #: ../data/org.gnome.Maps.gschema.xml.h:8 msgid "Window maximization state" msgstr "Estat de la finestra maximitzada" #: ../data/org.gnome.Maps.gschema.xml.h:9 msgid "Maximum number of search results" msgstr "Nombre màxim de resultats de busca" #: ../data/org.gnome.Maps.gschema.xml.h:10 msgid "Maximum number of search results from geocode search." msgstr "Nombre màxim de resultats de busca en fer-la per geocodi." #: ../data/org.gnome.Maps.gschema.xml.h:11 msgid "Number of recent places to store" msgstr "Nombre de llocs recents que s'ha d'emmagatzemar" #: ../data/org.gnome.Maps.gschema.xml.h:12 msgid "Number of recently visited places to store." msgstr "Nombre de llocs visitats recentment que s'ha d'emmagatzemar." #: ../data/org.gnome.Maps.gschema.xml.h:13 msgid "Number of recent routes to store" msgstr "Nombre de rutes recents que s'han d'emmagatzemar" #: ../data/org.gnome.Maps.gschema.xml.h:14 msgid "Number of recently visited routes to store." msgstr "Nombre de rutes visitades recentment que s'han d'emmagatzemar." #: ../data/org.gnome.Maps.gschema.xml.h:15 msgid "Facebook check-in privacy setting" msgstr "Paràmetre de privacitat de registre al Facebook" #: ../data/org.gnome.Maps.gschema.xml.h:16 msgid "" "Latest used Facebook check-in privacy setting. Possible values are: " "EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS or SELF." msgstr "" "Darrer paràmetre de privacitat de registre utilitzat al Facebook. Els valors " "possibles són TOTHOM, AMICS D'AMICS, TOTS ELS AMICS o UN MATEIX." #: ../data/org.gnome.Maps.gschema.xml.h:17 msgid "Foursquare check-in privacy setting" msgstr "Paràmetre de privacitat de registre al Foursquare" #: ../data/org.gnome.Maps.gschema.xml.h:18 msgid "" "Latest used Foursquare check-in privacy setting. Possible values are: " "public, followers or private." msgstr "" "Darrer paràmetre de privacitat de registre utilitzat al Foursquare. Els " "valors possibles són públic, seguidors o privat." #: ../data/org.gnome.Maps.gschema.xml.h:19 msgid "Foursquare check-in Facebook broadcasting" msgstr "Difusió al Facebook del registre de Foursquare" #: ../data/org.gnome.Maps.gschema.xml.h:20 msgid "" "Indicates if Foursquare should broadcast the check-in as a post in the " "Facebook account associated with the Foursquare account." msgstr "" "Indica si Foursquare hauria de difondre el registre com a apunt al compte de " "Facebook associat al compte de Foursquare." #: ../data/org.gnome.Maps.gschema.xml.h:21 msgid "Foursquare check-in Twitter broadcasting" msgstr "Difusió al Twitter del registre de Foursquare" #: ../data/org.gnome.Maps.gschema.xml.h:22 msgid "" "Indicates if Foursquare should broadcast the check-in as a tweet in the " "Twitter account associated with the Foursquare account." msgstr "" "Indica si Foursquare hauria de difondre el registre com a piulada al compte " "de Twitter associat al compte de Foursquare." #: ../data/org.gnome.Maps.gschema.xml.h:23 msgid "OpenStreetMap username or e-mail address" msgstr "Nom d'usuari d'OpenStreetMap o correu electrònic" #: ../data/org.gnome.Maps.gschema.xml.h:24 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "" "Indica si l'usuari ha iniciat la sessió per editar les dades d'OpenStreetMap." #: ../data/org.gnome.Maps.gschema.xml.h:25 msgid "Last used transportation type for routing" msgstr "Darrer tipus de transport usat per itineraris" #: ../data/ui/app-menu.ui.h:1 msgid "Set up OpenStreetMap Account" msgstr "Configura el compte d'OpenStreetMap" #: ../data/ui/app-menu.ui.h:2 msgid "_Keyboard Shortcuts" msgstr "Dreceres de _teclat" #: ../data/ui/app-menu.ui.h:3 msgid "About" msgstr "Quant a" #: ../data/ui/app-menu.ui.h:4 msgid "Quit" msgstr "Ix" #: ../data/ui/check-in-dialog.ui.h:1 msgid "Visibility" msgstr "Visibilitat" #: ../data/ui/check-in-dialog.ui.h:2 msgid "Post on Facebook" msgstr "Penja al Facebook" #: ../data/ui/check-in-dialog.ui.h:3 msgid "Post on Twitter" msgstr "Penja al Twitter" #: ../data/ui/check-in-dialog.ui.h:4 ../data/ui/export-view-dialog.ui.h:2 #: ../data/ui/send-to-dialog.ui.h:2 ../data/ui/shape-layer-file-chooser.ui.h:3 msgid "_Cancel" msgstr "_Cancel·la" #. Translators: Check in is used as a verb #: ../data/ui/check-in-dialog.ui.h:5 ../data/ui/map-bubble.ui.h:8 msgid "C_heck in" msgstr "_Registreu-vos" #: ../data/ui/check-in-dialog.ui.h:6 msgid "Everyone" msgstr "Tothom" #: ../data/ui/check-in-dialog.ui.h:7 msgid "Friends of friends" msgstr "Amics d'amics" #: ../data/ui/check-in-dialog.ui.h:8 msgid "Just friends" msgstr "Només amics" #: ../data/ui/check-in-dialog.ui.h:9 msgid "Just me" msgstr "Només jo" #: ../data/ui/check-in-dialog.ui.h:10 msgid "Public" msgstr "Públic" #: ../data/ui/check-in-dialog.ui.h:11 msgid "Followers" msgstr "Seguidors" #: ../data/ui/check-in-dialog.ui.h:12 msgid "Private" msgstr "Privat" #: ../data/ui/context-menu.ui.h:1 msgid "What’s here?" msgstr "Què hi ha ací?" #: ../data/ui/context-menu.ui.h:2 msgid "Copy Location" msgstr "Copia la ubicació" #: ../data/ui/context-menu.ui.h:3 msgid "Export As Image" msgstr "Exporta com imatge" #: ../data/ui/context-menu.ui.h:4 msgid "Add to OpenStreetMap" msgstr "Afig a OpenStreetMap" #: ../data/ui/export-view-dialog.ui.h:1 msgid "Export view" msgstr "Exporta vista" #: ../data/ui/export-view-dialog.ui.h:3 msgid "_Export" msgstr "_Exporta" #: ../data/ui/export-view-dialog.ui.h:4 msgid "Include route and markers" msgstr "Inclou carreteres i senyals" #: ../data/ui/help-overlay.ui.h:1 msgctxt "shortcut window" msgid "General" msgstr "General" #: ../data/ui/help-overlay.ui.h:2 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "Mostra dreceres" #: ../data/ui/help-overlay.ui.h:3 msgctxt "shortcut window" msgid "Search" msgstr "Busca" #: ../data/ui/help-overlay.ui.h:4 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "Commuta el planificador de rutes" #: ../data/ui/help-overlay.ui.h:5 msgctxt "shortcut window" msgid "Print route" msgstr "Imprimeix ruta" # N.T.: Nom de la tecla de sortida #: ../data/ui/help-overlay.ui.h:6 msgctxt "shortcut window" msgid "Quit" msgstr "Ix" #: ../data/ui/help-overlay.ui.h:7 msgctxt "shortcut window" msgid "Map View" msgstr "Visualització de mapa" #: ../data/ui/help-overlay.ui.h:8 msgctxt "shortcut window" msgid "Zoom in" msgstr "Amplia" #: ../data/ui/help-overlay.ui.h:9 msgctxt "shortcut window" msgid "Zoom out" msgstr "Redueix" #: ../data/ui/help-overlay.ui.h:10 msgctxt "shortcut window" msgid "Toggle scale" msgstr "Commuta l'escala" #: ../data/ui/help-overlay.ui.h:11 msgctxt "shortcut window" msgid "Go to current location" msgstr "Vés a la ubicació actual" #: ../data/ui/help-overlay.ui.h:12 msgctxt "shortcut window" msgid "Switch to street view" msgstr "Canvia a la vista de carrer" #: ../data/ui/help-overlay.ui.h:13 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "Canvia a la vista aèria" #: ../data/ui/help-overlay.ui.h:14 msgctxt "shortcut window" msgid "Open shape layer" msgstr "Obri la capa de forma" #: ../data/ui/layers-popover.ui.h:1 msgid "Load Map Layer" msgstr "Carrega la capa mapa" #: ../data/ui/location-service-notification.ui.h:1 msgid "Turn on location services to find your location" msgstr "Activeu els serveis d'ubicació per trobar-ne la vostra" #: ../data/ui/location-service-notification.ui.h:2 msgid "Location Settings" msgstr "Paràmetres de la ubicació" #. Translators: This is a tooltip #: ../data/ui/main-window.ui.h:3 msgid "Go to current location" msgstr "Vés a la ubicació actual" #. Translators: This is a tooltip #: ../data/ui/main-window.ui.h:5 msgid "Choose map type" msgstr "Trieu el tipus de mapa" #. Translators: This is a tooltip #: ../data/ui/main-window.ui.h:7 msgid "Toggle route planner" msgstr "Commuta el planificador de rutes" #. Translators: This is a tooltip #: ../data/ui/main-window.ui.h:9 msgid "Toggle favorites" msgstr "Commuta els favorits" #. Translators: This is a tooltip #: ../data/ui/main-window.ui.h:11 msgid "Print Route" msgstr "Imprimeix ruta" #: ../data/ui/main-window.ui.h:12 msgid "Maps is offline!" msgstr "El Mapes està fora de línia!" #: ../data/ui/main-window.ui.h:13 msgid "" "Maps need an active internet connection to function properly, but one can’t " "be found." msgstr "" "El Mapes necessita una connexió activa a Internet per funcionar " "correctament, però no se n'ha trobat cap." #: ../data/ui/main-window.ui.h:14 msgid "Check your connection and proxy settings." msgstr "Comproveu la connexió i els paràmetres del servidor intermediari." #. Translators: This is a tooltip #: ../data/ui/map-bubble.ui.h:2 msgid "Add to new route" msgstr "Afig a la ruta nova" #. Translators: This is a tooltip #: ../data/ui/map-bubble.ui.h:4 msgid "Open with another application" msgstr "Obri amb una altra aplicació" #. Translators: This is a tooltip #: ../data/ui/map-bubble.ui.h:6 msgid "Mark as favorite" msgstr "Marca com a favorit" #. Translators: This is a tooltip #: ../data/ui/map-bubble.ui.h:10 msgid "Check in here" msgstr "Registreu-vos ací" #: ../data/ui/osm-account-dialog.ui.h:1 msgid "OpenStreetMap Account" msgstr "Compte OpenStreetMap" #: ../data/ui/osm-account-dialog.ui.h:2 msgid "Sign in to edit maps" msgstr "" "Inicieu la sessió per editar mapes" #: ../data/ui/osm-account-dialog.ui.h:3 msgid "" "Help to improve the map, using an\n" "OpenStreetMap account." msgstr "" "Ajudeu a millorar el mapa\n" "utilitzant un compte d'OpenStreetMap." #: ../data/ui/osm-account-dialog.ui.h:5 msgid "Email" msgstr "Correu electrònic" #: ../data/ui/osm-account-dialog.ui.h:6 msgid "Password" msgstr "Contrasenya" #: ../data/ui/osm-account-dialog.ui.h:7 msgid "Sign In" msgstr "Inicieu la sessió" #: ../data/ui/osm-account-dialog.ui.h:8 msgid "Don’t have an account?" msgstr "No teniu un compte?" #. The label should contain the link to the OSM reset password page with a translated title #: ../data/ui/osm-account-dialog.ui.h:10 msgid "" "Sorry, that didn’t work. Please try again, or visit\n" "OpenStreetMap to reset your password." msgstr "" "S'ha produït algun error. Torneu-ho a provar, o visiteu\n" "OpenStreetMap per restablir la contrasenya." #: ../data/ui/osm-account-dialog.ui.h:12 msgid "The verification code didn’t match, please try again." msgstr "El codi de verificació no funciona, torneu-ho a provar." #: ../data/ui/osm-account-dialog.ui.h:13 msgid "Enter verification code shown above" msgstr "Introduïu el codi de verificació mostrat damunt." #: ../data/ui/osm-account-dialog.ui.h:14 msgid "Verify" msgstr "Verifica" #: ../data/ui/osm-account-dialog.ui.h:15 msgid "Signed In" msgstr "Sessió iniciada" #: ../data/ui/osm-account-dialog.ui.h:16 msgid "Your OpenStreetMap account is active." msgstr "El vostre compte OpenStreetMap està actiu." #: ../data/ui/osm-account-dialog.ui.h:17 msgid "Sign Out" msgstr "Ix de la sessió" #: ../data/ui/osm-edit-address.ui.h:1 msgid "Street" msgstr "Carrer" #: ../data/ui/osm-edit-address.ui.h:2 msgid "House number" msgstr "Número de carrer" #: ../data/ui/osm-edit-address.ui.h:3 msgid "Postal code" msgstr "Codi postal" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: ../data/ui/osm-edit-address.ui.h:5 msgid "City" msgstr "Ciutat" #: ../data/ui/osm-edit-dialog.ui.h:1 msgid "Type" msgstr "Tipus" #: ../data/ui/osm-edit-dialog.ui.h:2 msgid "None" msgstr "Cap" #: ../data/ui/osm-edit-dialog.ui.h:3 msgid "Add Field" msgstr "Afig un camp" #: ../data/ui/osm-edit-dialog.ui.h:4 msgid "Comment" msgstr "Comentari" #: ../data/ui/osm-edit-dialog.ui.h:5 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "Els canvis del mapa seran visibles en tots els\n" "mapes que utilitzen dades de l'OpenStreetMap." #: ../data/ui/osm-edit-dialog.ui.h:7 msgid "Recently Used" msgstr "Utilitzats recentment" #: ../data/ui/osm-edit-dialog.ui.h:8 msgctxt "dialog title" msgid "Edit on OpenStreetMap" msgstr "Editeu a l'OpenStreetMap" #: ../data/ui/osm-edit-dialog.ui.h:9 msgid "Cancel" msgstr "Cancel·la" #: ../data/ui/osm-edit-dialog.ui.h:10 ../src/osmEditDialog.js:516 msgid "Next" msgstr "Següent" #. Translators: This is a tooltip #: ../data/ui/place-bubble.ui.h:2 msgid "Edit on OpenStreetMap" msgstr "Editeu a l'OpenStreetMap" #. Translators: This is a tooltip #: ../data/ui/place-bubble.ui.h:4 msgid "Show more information" msgstr "Mostra més informació" #: ../data/ui/place-popover.ui.h:1 msgid "Press enter to search" msgstr "Premeu retorn per buscar" #: ../data/ui/place-popover.ui.h:2 msgid "No results found" msgstr "No s'ha trobat cap resultat" #. Translators: This is a tooltip #: ../data/ui/route-entry.ui.h:2 msgid "Drag to change order of the route" msgstr "Arrossegueu per canviar l'orde de la ruta" #: ../data/ui/send-to-dialog.ui.h:1 msgid "Open location" msgstr "Obri la ubicació" #: ../data/ui/send-to-dialog.ui.h:3 ../data/ui/shape-layer-file-chooser.ui.h:2 msgid "_Open" msgstr "_Obri" #: ../data/ui/shape-layer-file-chooser.ui.h:1 msgid "Open Layer" msgstr "Obri la capa" #. Translators: This is a tooltip #: ../data/ui/shape-layer-row.ui.h:2 msgid "Toggle visible" msgstr "Commuta els visibles" #: ../data/ui/sidebar.ui.h:1 msgid "Route search by GraphHopper" msgstr "Itinerari proporcionat per GraphHopper" #: ../data/ui/sidebar.ui.h:2 msgid "Route search by OpenTripPlanner" msgstr "Itinerari proporcionat per OpenTripPlanner" #: ../data/ui/sidebar.ui.h:3 msgid "" "Routing itineraries for public transit is provided by GNOME\n" "using timetable data obtained from transit companies or agencies.\n" "The companies and agencies can not be held responsible for the results " "shown.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" "Els itineraris de ruta del transport públic els proporciona el GNOME\n" "utilitzant dades d'horaris obtingudes d'empreses o agències de trànsit.\n" "Les empreses i agències no es fan responsables dels resultats mostrats.\n" "El GNOME no pot garantir la correctesa dels itineraris i horaris mostrats.\n" "Els noms i les marques que es mostren s'han de considerar propietat dels " "seus respectius propietaris, quan es puga aplicar." #: ../data/ui/social-place-more-results-row.ui.h:1 msgid "Show more results" msgstr "Mostra més resultats" #. Translators: This is a tooltip #: ../data/ui/transit-leg-row.ui.h:2 msgid "Hide intermediate stops and information" msgstr "Oculta les parades intermèdies i informació" #. Translators: This is a tooltip #: ../data/ui/transit-leg-row.ui.h:4 msgid "Show intermediate stops and information" msgstr "Mostra les parades intermèdies i informació" #. Indicates searching for the next available itineraries #: ../data/ui/transit-options-panel.ui.h:2 msgid "Leave Now" msgstr "Eixiu ara" #. Indicates searching for itineraries leaving at the specified time at the earliest #: ../data/ui/transit-options-panel.ui.h:4 msgid "Leave By" msgstr "Eixiu a" #. Indicates searching for itineraries arriving no later than the specified time #: ../data/ui/transit-options-panel.ui.h:6 msgid "Arrive By" msgstr "Arribeu a" #. Header indicating selected modes of transit #: ../data/ui/transit-options-panel.ui.h:8 msgid "Show" msgstr "Mostra" #: ../data/ui/transit-options-panel.ui.h:9 msgid "Buses" msgstr "Busos" #: ../data/ui/transit-options-panel.ui.h:10 msgid "Trams" msgstr "Trams" #: ../data/ui/transit-options-panel.ui.h:11 msgid "Trains" msgstr "Trens" #: ../data/ui/transit-options-panel.ui.h:12 msgid "Subway" msgstr "Metro" #: ../data/ui/transit-options-panel.ui.h:13 msgid "Ferries" msgstr "Transbordadors" #: ../data/ui/user-location-bubble.ui.h:1 ../src/geoclue.js:120 msgid "Current location" msgstr "Ubicació actual" #. To translators: %s can be "Unknown", "Exact" or "%f km²" #: ../data/ui/user-location-bubble.ui.h:4 #, no-c-format msgid "Accuracy: %s" msgstr "Precisió: %s" #: ../data/ui/zoom-in-notification.ui.h:1 msgid "Zoom in to add location!" msgstr "Amplia per afegir ubicació!" #: ../data/ui/zoom-in-notification.ui.h:2 msgid "OK" msgstr "D'acord" #: ../lib/maps-file-tile-source.c:303 ../lib/maps-file-tile-source.c:379 #: ../lib/maps-file-tile-source.c:459 msgid "Failed to find tile structure in directory" msgstr "" "S'ha produït una errada en trobar l'estructura de caselles al directori" #: ../lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "S'ha produït un error en analitzar el document XML" #: ../lib/maps-osm.c:252 ../lib/maps-osm.c:405 msgid "Missing required attributes" msgstr "S'han perdut els atributs requerits" #: ../lib/maps-osm.c:453 msgid "Could not find OSM element" msgstr "No s'ha trobat l'element OSM" #: ../src/application.js:102 msgid "A path to a local tiles directory structure" msgstr "Un camí a l'estructura de caselles locals del directori" #: ../src/checkInDialog.js:175 msgid "Select an account" msgstr "Seleccioneu un compte" #: ../src/checkInDialog.js:180 ../src/checkInDialog.js:252 msgid "Loading" msgstr "S'està carregant" #: ../src/checkInDialog.js:204 msgid "Select a place" msgstr "Seleccioneu un lloc" #: ../src/checkInDialog.js:209 msgid "" "Maps cannot find the place to check in to with Facebook. Please select one " "from this list." msgstr "" "El Mapes no poden trobar el lloc on registrar-vos amb Facebook. Seleccioneu-" "ne un de la llista." #: ../src/checkInDialog.js:211 msgid "" "Maps cannot find the place to check in to with Foursquare. Please select one " "from this list." msgstr "" "Els Mapes no poden trobar el lloc per registrar-vos amb Foursquare. " "Seleccioneu-ne un de la llista." #. Translators: %s is the name of the place to check in. #. #: ../src/checkInDialog.js:226 #, javascript-format msgid "Check in to %s" msgstr "Registreu-vos a %s" #. Translators: %s is the name of the place to check in. #. #: ../src/checkInDialog.js:236 #, javascript-format msgid "Write an optional message to check in to %s." msgstr "Escriviu un missatge opcional per inscriure-vos a %s." #: ../src/checkInDialog.js:288 ../src/checkIn.js:165 #: ../src/osmEditDialog.js:553 msgid "An error has occurred" msgstr "S'ha produït un error" #. Translators: %s is the place name that user wanted to check-in #: ../src/checkIn.js:147 #, javascript-format msgid "Cannot find “%s” in the social service" msgstr "No es pot trobar «%s» al servei social" #: ../src/checkIn.js:149 msgid "Cannot find a suitable place to check-in in this location" msgstr "No es pot trobar un lloc adequat per registrar-vos en esta ubicació" #: ../src/checkIn.js:153 msgid "" "Credentials have expired, please open Online Accounts to sign in and enable " "this account" msgstr "" "Han caducat les credencials. Obriu els comptes en línia per registrar-vos-hi " "i habilitar el compte" #: ../src/contextMenu.js:99 msgid "Route from here" msgstr "Comenceu la ruta des d'ací" #: ../src/contextMenu.js:101 msgid "Add destination" msgstr "Afegiu una destinació" #: ../src/contextMenu.js:103 msgid "Route to here" msgstr "Continueu la ruta fins ací" #: ../src/contextMenu.js:132 msgid "Nothing found here!" msgstr "No s'ha trobat res ací." #: ../src/contextMenu.js:189 msgid "" "Location was added to the map, note that it may take a while before it shows " "on the map and in search results." msgstr "" "La ubicació ha estat afegida al mapa, fixeu-vos que pot tardar una mica " "abans de mostrar al mapa els resultats de la busca." #: ../src/exportViewDialog.js:156 msgid "Filesystem is read only" msgstr "El sistema de fitxers és de només lectura" #: ../src/exportViewDialog.js:158 msgid "You do not have permission to save there" msgstr "No teniu permís per anomenar i guardar allí" #: ../src/exportViewDialog.js:160 msgid "The directory does not exist" msgstr "El directori no existeix" #: ../src/exportViewDialog.js:162 msgid "No filename specified" msgstr "No hi ha cap nom de fitxer especificat" #: ../src/exportViewDialog.js:170 msgid "Unable to export view" msgstr "No està habilitada l'exportació de la vista" #: ../src/geoJSONSource.js:98 msgid "invalid coordinate" msgstr "coordenades invàlides" #: ../src/geoJSONSource.js:149 ../src/geoJSONSource.js:189 #: ../src/geoJSONSource.js:204 msgid "parse error" msgstr "error d'anàlisi" #: ../src/geoJSONSource.js:183 msgid "unknown geometry" msgstr "geometria desconeguda" #: ../src/graphHopper.js:93 ../src/openTripPlanner.js:665 msgid "Route request failed." msgstr "Ha fallat la sol·licitud de buscar la ruta." #: ../src/graphHopper.js:101 ../src/openTripPlanner.js:628 msgid "No route found." msgstr "No s'ha trobat cap ruta." #: ../src/graphHopper.js:193 msgid "Start!" msgstr "Comença" #: ../src/mainWindow.js:59 msgid "All Layer Files" msgstr "Tots els fitxers de capa" #: ../src/mainWindow.js:431 msgid "Failed to connect to location service" msgstr "Ha fallat la connexió amb el servei d'ubicació" #: ../src/mainWindow.js:487 msgid "translator-credits" msgstr "" "Gil Forcada \n" "Josep Sanchez Mesegue \n" "Carles Ferrando \n" "Pere Orga " #: ../src/mainWindow.js:490 msgid "A map application for GNOME" msgstr "Una aplicació de mapes pel GNOME" #: ../src/mapView.js:356 msgid "File type is not supported" msgstr "Este tipus de fitxer no està suportat" #: ../src/mapView.js:363 msgid "Failed to open layer" msgstr "S'ha produït un error en obrir la capa" #: ../src/mapView.js:399 msgid "Failed to open GeoURI" msgstr "S'ha produït un error en obrir el fitxer GeoURI" #: ../src/openTripPlanner.js:622 msgid "No earlier alternatives found." msgstr "No s'han trobat alternatives anteriors." #: ../src/openTripPlanner.js:623 msgid "No later alternatives found." msgstr "No s'han trobat alternatives posteriors." #: ../src/openTripPlanner.js:661 msgid "No timetable data found for this route." msgstr "No s'han trobat dades d'horaris per esta ruta." #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: ../src/osmConnection.js:442 msgid "Incorrect user name or password" msgstr "Nom d'usuari o contrasenya incorrectes" #: ../src/osmConnection.js:444 msgid "Success" msgstr "Èxit" #: ../src/osmConnection.js:446 msgid "Bad request" msgstr "Sol·licitud incorrecta" #: ../src/osmConnection.js:448 msgid "Object not found" msgstr "No s'ha trobat l'objecte" #: ../src/osmConnection.js:450 msgid "Conflict, someone else has just modified the object" msgstr "Conflicte, algú altre acaba de modificar l'objecte" #: ../src/osmConnection.js:452 msgid "Object has been deleted" msgstr "L'objecte ha estat suprimit" #: ../src/osmConnection.js:454 msgid "Way or relation refers to non-existing children" msgstr "La via o relació es refereix a un fill que no existeix" #: ../src/osmEditDialog.js:104 msgid "Name" msgstr "Nom" #: ../src/osmEditDialog.js:107 msgid "The official name. This is typically what appears on signs." msgstr "El nom oficial. Així és com acostuma a aparèixer en els senyals." #: ../src/osmEditDialog.js:110 msgid "Address" msgstr "Adreça" #: ../src/osmEditDialog.js:118 msgid "Website" msgstr "Lloc web" #: ../src/osmEditDialog.js:121 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" "El lloc web oficial. Utilitzeu la forma més bàsica de l'URL, és a dir: " "http://example.com en comptes de http://example.com/index.html." #: ../src/osmEditDialog.js:126 msgid "Phone" msgstr "Telèfon" #: ../src/osmEditDialog.js:130 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" "Número de telèfon. Utilitzeu el format internacional, començant amb un signe " "+. Compte amb les lleis locals de privacitat, especialment per als números " "de telèfon privats." #: ../src/osmEditDialog.js:135 ../src/placeBubble.js:170 msgid "Wikipedia" msgstr "Viquipèdia" #: ../src/osmEditDialog.js:139 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "" "El format utilitzat ha d'incloure el codi de l'idioma i el títol de " "l'article com «ca:Títol de l'article»." #: ../src/osmEditDialog.js:143 msgid "Opening hours" msgstr "Hores d'obertura" #: ../src/osmEditDialog.js:148 msgid "See the link in the label for help on format." msgstr "Mireu l'enllaç a l'etiqueta per ajuda sobre el format." #: ../src/osmEditDialog.js:151 msgid "Population" msgstr "Població" #: ../src/osmEditDialog.js:156 msgid "Altitude" msgstr "Altitud" #: ../src/osmEditDialog.js:159 msgid "Elevation (height above sea level) of a point in metres." msgstr "Elevació (alçària sobre el nivell del mar) d'un punt en metres." #: ../src/osmEditDialog.js:162 msgid "Wheelchair access" msgstr "Accés amb cadira de rodes" #: ../src/osmEditDialog.js:165 ../src/osmEditDialog.js:174 #: ../src/osmEditDialog.js:212 msgid "Yes" msgstr "Sí" #: ../src/osmEditDialog.js:166 ../src/osmEditDialog.js:175 #: ../src/osmEditDialog.js:213 msgid "No" msgstr "No" #: ../src/osmEditDialog.js:167 msgid "Limited" msgstr "Limitat" #: ../src/osmEditDialog.js:168 msgid "Designated" msgstr "Designat" #: ../src/osmEditDialog.js:171 msgid "Internet access" msgstr "Accés a Internet" #. Translators: #. * This means a WLAN Hotspot, also know as wireless, wifi or Wi-Fi. #. #: ../src/osmEditDialog.js:176 ../src/translations.js:340 msgid "Wi-Fi" msgstr "Wi-Fi" #: ../src/osmEditDialog.js:177 msgid "Wired" msgstr "Amb fil" #: ../src/osmEditDialog.js:178 msgid "Terminal" msgstr "Terminal" #: ../src/osmEditDialog.js:179 msgid "Service" msgstr "Servei" #: ../src/osmEditDialog.js:182 msgid "Religion" msgstr "Religió" #: ../src/osmEditDialog.js:185 ../src/translations.js:363 msgid "Animism" msgstr "Animisme" #: ../src/osmEditDialog.js:186 msgid "Bahá’í" msgstr "Bahá'í" #: ../src/osmEditDialog.js:187 ../src/translations.js:365 msgid "Buddhism" msgstr "Budisme" #: ../src/osmEditDialog.js:188 ../src/translations.js:366 msgid "Caodaism" msgstr "Caodaisme" #: ../src/osmEditDialog.js:189 ../src/translations.js:367 msgid "Christianity" msgstr "Cristianisme" #: ../src/osmEditDialog.js:190 ../src/translations.js:368 msgid "Confucianism" msgstr "Confucianisme" #: ../src/osmEditDialog.js:191 ../src/translations.js:369 msgid "Hinduism" msgstr "Hinduisme" #: ../src/osmEditDialog.js:192 ../src/translations.js:370 msgid "Jainism" msgstr "Jainisme" #: ../src/osmEditDialog.js:193 ../src/translations.js:371 msgid "Judaism" msgstr "Judaisme" #: ../src/osmEditDialog.js:194 ../src/translations.js:372 msgid "Islam" msgstr "Islam" #: ../src/osmEditDialog.js:195 ../src/translations.js:373 msgid "Multiple Religions" msgstr "Diverses religions" #: ../src/osmEditDialog.js:196 ../src/translations.js:374 msgid "Paganism" msgstr "Paganisme" #: ../src/osmEditDialog.js:197 ../src/translations.js:375 msgid "Pastafarianism" msgstr "Pastafarianisme" #: ../src/osmEditDialog.js:198 ../src/translations.js:376 msgid "Scientology" msgstr "Cienciologia" #: ../src/osmEditDialog.js:199 ../src/translations.js:377 msgid "Shinto" msgstr "Xintoisme" #: ../src/osmEditDialog.js:200 ../src/translations.js:378 msgid "Sikhism" msgstr "Sikhisme" #: ../src/osmEditDialog.js:201 ../src/translations.js:379 msgid "Spiritualism" msgstr "Espiritualisme" #: ../src/osmEditDialog.js:202 ../src/translations.js:380 msgid "Taoism" msgstr "Taoisme" #: ../src/osmEditDialog.js:203 ../src/translations.js:381 msgid "Unitarian Universalism" msgstr "Unitarisme universalista" #: ../src/osmEditDialog.js:204 ../src/translations.js:382 msgid "Voodoo" msgstr "Vodú" #: ../src/osmEditDialog.js:205 ../src/translations.js:383 msgid "Yazidism" msgstr "Yazidisme" #: ../src/osmEditDialog.js:206 ../src/translations.js:384 msgid "Zoroastrianism" msgstr "Zoroastrisme" #: ../src/osmEditDialog.js:209 msgid "Toilets" msgstr "Lavabos" #: ../src/osmEditDialog.js:216 msgid "Note" msgstr "Nota" #: ../src/osmEditDialog.js:219 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" "La informació utilitzada per informar altres creadors de mapes d'informació " "no òbvia sobre un element, la intenció de l'autor en crear-lo, o pistes per " "millorar-lo." #: ../src/osmEditDialog.js:328 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "Afig a l'OpenStreetMap" #: ../src/osmEditDialog.js:381 msgid "Select Type" msgstr "Seleccioneu el tipus" #: ../src/osmEditDialog.js:500 msgid "Done" msgstr "Fet" #: ../src/placeBubble.js:122 msgid "Population:" msgstr "Població:" #: ../src/placeBubble.js:128 msgid "Altitude:" msgstr "Altitud:" #: ../src/placeBubble.js:133 msgid "Opening hours:" msgstr "Hores d'obertura:" #: ../src/placeBubble.js:138 msgid "Internet access:" msgstr "Accés a Internet:" #: ../src/placeBubble.js:143 msgid "Religion:" msgstr "Religió:" #: ../src/placeBubble.js:148 msgid "Toilets:" msgstr "Lavabos:" #: ../src/placeBubble.js:153 msgid "Wheelchair access:" msgstr "Accés amb cadira de rodes:" #: ../src/placeBubble.js:159 ../src/placeBubble.js:163 msgid "Phone:" msgstr "Telèfon:" #: ../src/placeEntry.js:190 msgid "Failed to parse Geo URI" msgstr "S'ha produït un error en analitzar l'URI Geo" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: ../src/place.js:219 ../src/translations.js:329 ../src/translations.js:391 msgid "yes" msgstr "sí" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: ../src/place.js:226 msgid "limited" msgstr "limitat" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: ../src/place.js:232 ../src/translations.js:335 ../src/translations.js:392 msgid "no" msgstr "no" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: ../src/place.js:239 msgid "designated" msgstr "designat" #: ../src/printLayout.js:244 #, javascript-format msgid "From %s to %s" msgstr "Des de %s a %s" #: ../src/printOperation.js:48 msgid "Loading map tiles for printing" msgstr "S'estan carregant les caselles del mapa per imprimir" #: ../src/printOperation.js:49 msgid "You can abort printing if this takes too long" msgstr "Podeu interrompre la impressió si esta tarda massa temps" #: ../src/printOperation.js:51 msgid "Abort printing" msgstr "Interromp la impressió" #: ../src/sendToDialog.js:179 msgid "Failed to open URI" msgstr "S'ha produït un error en obrir l'URI" #: ../src/shapeLayer.js:92 msgid "failed to load file" msgstr "S'ha produït un error en carregar el fitxer" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: ../src/sidebar.js:293 #, javascript-format msgid "Estimated time: %s" msgstr "Temps estimat: %s" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: ../src/transitArrivalRow.js:56 #, javascript-format msgid "Arrive at %s" msgstr "Arribeu a %s" #: ../src/transitArrivalRow.js:58 msgid "Arrive" msgstr "Arribeu" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: ../src/transitLegRow.js:73 #, javascript-format msgid "Start at %s" msgstr "Comenceu a %s" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: ../src/transitLegRow.js:79 msgid "Start" msgstr "Comença" #: ../src/transitLegRow.js:107 msgid "Show walking instructions" msgstr "Mostra les instruccions a peu" #: ../src/transitLegRow.js:108 msgid "Hide walking instructions" msgstr "Oculta les instruccions a peu" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: ../src/transitLegRow.js:133 #, javascript-format msgid "Walk %s" msgstr "Camineu %s" #: ../src/transitMoreRow.js:41 msgid "Load earlier alternatives" msgstr "Carrega les alternatives anteriors" #: ../src/transitMoreRow.js:43 msgid "Load later alternatives" msgstr "Carrega les alternatives posteriors" #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: ../src/transitOptionsPanel.js:142 msgctxt "month-day-date" msgid "%b %e" msgstr "%e %b" #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: ../src/transitPlan.js:253 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: ../src/transitPlan.js:280 #, javascript-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "%d minut" msgstr[1] "%d minuts" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: ../src/transitPlan.js:291 #, javascript-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "%d hora" msgstr[1] "%d hores" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: ../src/transitPlan.js:297 #, javascript-format msgid "%d:%02d hour" msgid_plural "%d:%02d hours" msgstr[0] "%d:%02d hora" msgstr[1] "%d:%02d hores" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: ../src/transitPlan.js:649 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: ../src/translations.js:56 msgid "around the clock" msgstr "tot el dia" #: ../src/translations.js:58 msgid "from sunrise to sunset" msgstr "des de l'eixida fins a la posta de sol" #. Translators: #. * This is a format string with two separate time ranges #. * such as "Mo-Fr 10:00-19:00 Sa 12:00-16:00" #. * The space between the format place holders could be #. * substituted with the appropriate separator. #. #: ../src/translations.js:77 #, javascript-format msgctxt "time range list" msgid "%s %s" msgstr "%s %s" #. Translators: #. * This is a format string with three separate time ranges #. * such as "Mo-Fr 10:00-19:00 Sa 10:00-17:00 Su 12:00-16:00" #. * The space between the format place holders could be #. * substituted with the appropriate separator. #. #: ../src/translations.js:89 #, javascript-format msgctxt "time range list" msgid "%s %s %s" msgstr "%s %s %s" #. Translators: #. * This is a format string consisting of a part specifying the days for #. * which the specified time is applied and the time interval #. * specification as the second argument. #. * The space between the format place holders could be substituted with #. * the appropriate separator or phrase and the ordering of the arguments #. * can be rearranged with the %n#s syntax. #: ../src/translations.js:120 #, javascript-format msgctxt "time range component" msgid "%s %s" msgstr "%s %s" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: ../src/translations.js:152 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s,%s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: ../src/translations.js:166 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s,%s,%s" #: ../src/translations.js:185 msgid "every day" msgstr "cada dia" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: ../src/translations.js:197 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s-%s" #: ../src/translations.js:208 msgid "public holidays" msgstr "festius" #: ../src/translations.js:210 msgid "school holidays" msgstr "vacances escolars" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: ../src/translations.js:250 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: ../src/translations.js:264 msgid "not open" msgstr "sense obrir" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: ../src/translations.js:279 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s-%s" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: ../src/translations.js:345 msgid "wired" msgstr "amb fil" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: ../src/translations.js:350 msgid "terminal" msgstr "terminal" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: ../src/translations.js:355 msgid "service" msgstr "servei" #. Translators: Accuracy of user location information #: ../src/utils.js:231 msgid "Unknown" msgstr "Desconeguda" #. Translators: Accuracy of user location information #: ../src/utils.js:234 msgid "Exact" msgstr "Exacte" #: ../src/utils.js:337 #, javascript-format msgid "%f h" msgstr "%f h" #: ../src/utils.js:339 #, javascript-format msgid "%f min" msgstr "%f min" #: ../src/utils.js:341 #, javascript-format msgid "%f s" msgstr "%f s" #. Translators: This is a distance measured in kilometers #: ../src/utils.js:352 #, javascript-format msgid "%s km" msgstr "%s km" #. Translators: This is a distance measured in meters #: ../src/utils.js:355 #, javascript-format msgid "%s m" msgstr "%s m" #. Translators: This is a distance measured in miles #: ../src/utils.js:363 #, javascript-format msgid "%s mi" msgstr "%s mi" #. Translators: This is a distance measured in feet #: ../src/utils.js:366 #, javascript-format msgid "%s ft" msgstr "%s ft" #~ msgid "%f km" #~ msgstr "%f km" #~ msgid "%f m" #~ msgstr "%f m" #~ msgid "%f mi" #~ msgstr "%f milles" #~ msgid "%f ft" #~ msgstr "%f peus" #~ msgid "Position not found" #~ msgstr "No s'ha trobat la posició." #~ msgid "Edit Location" #~ msgstr "Edita ubicació" #~ msgid "Country code: %s" #~ msgstr "Codi de país: %s" #~ msgid "Population: %s" #~ msgstr "Població: %s" #~ msgid "Wheelchair access: %s" #~ msgstr "Accés amb cadira de rodes: %s" #~ msgid "Failed to parse GeoJSON file" #~ msgstr "S'ha produït un error en analitzar el fitxer GeoJSON" #~ msgid "Last known location and accuracy" #~ msgstr "L'última ubicació coneguda i la precisió" #~ msgid "" #~ "Last known location (latitude and longitude in degrees) and accuracy (in " #~ "meters)." #~ msgstr "" #~ "L'última ubicació coneguda (latitud i longitud en graus) i la precisió " #~ "(en metres)." #~ msgid "Description of last known location of user." #~ msgstr "Descripció de l'última ubicació coneguda de l'usuari." #~ msgid "Whether the last known location was set manually by the user." #~ msgstr "Si l'última ubicació coneguda l'ha definit manualment l'usuari." #~ msgid "I’m here!" #~ msgstr "Sóc aquí!" #~ msgid "%f km²" #~ msgstr "%f km²" 070701000001B6000081A4000000000000000000000001664134090000E4FA000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/cs.po# Czech translation for gnome-maps. # Copyright (C) 2013 gnome-maps's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-maps package. # Marek Černocký , 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023. # msgid "" msgstr "" "Project-Id-Version: gnome-maps\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2024-02-14 22:30+0000\n" "PO-Revision-Date: 2024-02-17 15:00+0100\n" "Last-Translator: Daniel Rusek \n" "Language-Team: čeština \n" "Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" "X-Generator: Poedit 3.4.2\n" "X-DamnedLies-Scope: partial\n" #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.appdata.xml.in.in:6 data/org.gnome.Maps.desktop.in.in:4 #: data/ui/main-window.ui:27 src/application.js:64 src/mainWindow.js:147 #: src/mainWindow.js:647 msgid "Maps" msgstr "Mapy" #: data/org.gnome.Maps.appdata.xml.in.in:7 msgid "Find places around the world" msgstr "Vyhledávejte místa na celém světě" #: data/org.gnome.Maps.appdata.xml.in.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "Aplikace Mapy poskytuje rychlý přístup k mapám celého světa. Díky ní můžete " "rychle najít místo, které hledáte, ať už podle názvu města nebo ulice, nebo " "určit místo pro setkání s přáteli." #: data/org.gnome.Maps.appdata.xml.in.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "Mapy využívají databázi OpenStreetMap, která vzniká díky spolupráci stovek " "tisíců lidí z celého světa." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Maps.appdata.xml.in.in:451 src/mainWindow.js:644 msgid "The GNOME Project" msgstr "Projekt GNOME" #: data/org.gnome.Maps.desktop.in.in:5 msgid "A simple maps application" msgstr "Jednoduchá mapová aplikace" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in.in:14 msgid "Maps;" msgstr "mapa;mapy;" #: data/org.gnome.Maps.desktop.in.in:17 msgid "Allows your location to be shown on the map." msgstr "Umožňuje vám zobrazit si na mapě své místo." #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "Poslední zobrazené místo" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "Souřadnice naposledy zobrazeného místa." #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "Přiblížení" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "Úroveň přiblížení" #: data/org.gnome.Maps.gschema.xml:21 msgid "rotation" msgstr "rotace" #: data/org.gnome.Maps.gschema.xml:22 msgid "Map rotation in radians" msgstr "Rotace mapy v radiánech" #: data/org.gnome.Maps.gschema.xml:26 msgid "Map type" msgstr "Typ mapy" #: data/org.gnome.Maps.gschema.xml:27 msgid "The type of map to display (street, aerial, etc.)" msgstr "Typ mapy, který se má zobrazit(běžná, letecká, atd.)" #: data/org.gnome.Maps.gschema.xml:31 msgid "Window size" msgstr "Velikost okna" #: data/org.gnome.Maps.gschema.xml:32 msgid "Window size (width and height)." msgstr "Velikost okna (šířka a výška)." #: data/org.gnome.Maps.gschema.xml:36 msgid "Window position" msgstr "Poloha okna" #: data/org.gnome.Maps.gschema.xml:37 msgid "Window position (X and Y)." msgstr "Poloha okna (X a Y)." #: data/org.gnome.Maps.gschema.xml:41 msgid "Window maximized" msgstr "Maximalizace okna" #: data/org.gnome.Maps.gschema.xml:42 msgid "Window maximization state" msgstr "Stav maximalizace okna" #: data/org.gnome.Maps.gschema.xml:46 msgid "Maximum number of search results" msgstr "Maximální počet výsledků hledání" #: data/org.gnome.Maps.gschema.xml:47 msgid "Maximum number of search results from geocode search." msgstr "Maximální počet výsledků hledání z geocode." #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent places to store" msgstr "Počet nedávných míst k uchování" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited places to store." msgstr "Počet nedávno navštívených míst, která se mají uchovávat." #: data/org.gnome.Maps.gschema.xml:56 msgid "Number of recent routes to store" msgstr "Počet nedávných tras k uchování" #: data/org.gnome.Maps.gschema.xml:57 msgid "Number of recently visited routes to store." msgstr "Počet nedávno navštívených tras, která se mají uchovávat." #: data/org.gnome.Maps.gschema.xml:61 msgid "OpenStreetMap username or email address" msgstr "Uživatelské jméno nebo e-mailová adresa na OpenStreetMap" #: data/org.gnome.Maps.gschema.xml:62 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "Dává najevo, jestli je uživatel přihlášen k úpravám dat OpenStreetMap." #: data/org.gnome.Maps.gschema.xml:66 msgid "Last used transportation type for routing" msgstr "Poslední použitý typ dopravy pro hledání trasy" #: data/org.gnome.Maps.gschema.xml:70 msgid "Show scale" msgstr "Zobrazovat měřítko" #: data/org.gnome.Maps.gschema.xml:71 msgid "Whether to show the scale." msgstr "Zda se má zobrazovat měřítko." #: data/ui/context-menu.ui:6 msgid "Route from Here" msgstr "Trasa odtud" #: data/ui/context-menu.ui:10 msgid "Add Intermediate Destination" msgstr "Průběžný cíl trasy" #: data/ui/context-menu.ui:14 msgid "Route to Here" msgstr "Trasa sem" #: data/ui/context-menu.ui:20 msgid "What's Here?" msgstr "Co je zde?" #: data/ui/context-menu.ui:24 msgid "Copy Location" msgstr "Zkopírovat místo" #: data/ui/context-menu.ui:28 msgid "Add to OpenStreetMap…" msgstr "Přidat do OpenStreetMap…" #: data/ui/export-view-dialog.ui:7 msgid "Export view" msgstr "Export zobrazení" #: data/ui/export-view-dialog.ui:16 data/ui/send-to-dialog.ui:10 #: data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "_Zrušit" #: data/ui/export-view-dialog.ui:26 msgid "_Export" msgstr "_Exportovat" #. Translators: This is a tooltip #: data/ui/favorite-list-row.ui:72 msgid "Remove Favorite" msgstr "Odebrat oblíbené" #: data/ui/favorites-popover.ui:11 msgid "No Favorites" msgstr "Žádné oblíbené" #: data/ui/favorites-popover.ui:12 msgid "Add places to your favorites to get them listed here" msgstr "Přidejte si místa do oblíbených, aby se zde zobrazila" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:11 src/geoclue.js:106 msgid "Current Location" msgstr "Současné místo" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:19 msgid "Layers" msgstr "Vrstvy" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:11 msgid "Print Route" msgstr "Tisk trasy" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:21 msgid "Favorites" msgstr "Oblíbené" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:30 msgid "Route Planner" msgstr "Plánování trasy" #: data/ui/help-overlay.ui:12 msgctxt "shortcut window" msgid "General" msgstr "Obecné" #: data/ui/help-overlay.ui:15 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "Zobrazit klávesové zkratky" #: data/ui/help-overlay.ui:21 msgctxt "shortcut window" msgid "Search" msgstr "Hledat" #: data/ui/help-overlay.ui:27 msgctxt "shortcut window" msgid "Explore points-of-interest" msgstr "Prozkoumat zajímavá místa" #: data/ui/help-overlay.ui:33 msgctxt "shortcut window" msgid "Show last search results" msgstr "Zobrazit výsledky posledního vyhledávání" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "Zapnout/vypnout plánování trasy" #: data/ui/help-overlay.ui:45 msgctxt "shortcut window" msgid "Print route" msgstr "Vytisknout trasu" #: data/ui/help-overlay.ui:51 msgctxt "shortcut window" msgid "Quit" msgstr "Ukončit" #: data/ui/help-overlay.ui:57 msgctxt "shortcut window" msgid "Open main menu" msgstr "Otevřít hlavní nabídku" #: data/ui/help-overlay.ui:65 msgctxt "shortcut window" msgid "Map View" msgstr "Zobrazení mapy" #: data/ui/help-overlay.ui:68 msgctxt "shortcut window" msgid "Zoom in" msgstr "Přiblížit" #: data/ui/help-overlay.ui:74 msgctxt "shortcut window" msgid "Zoom out" msgstr "Oddálit" #: data/ui/help-overlay.ui:80 msgctxt "shortcut window" msgid "Rotate clockwise" msgstr "Otáčet po směru hodinových ručiček" #: data/ui/help-overlay.ui:86 msgctxt "shortcut window" msgid "Rotate counter-clockwise" msgstr "Otáčet proti směru hodinových ručiček" #: data/ui/help-overlay.ui:92 msgctxt "shortcut window" msgid "Reset rotation" msgstr "Resetovat rotaci" #: data/ui/help-overlay.ui:98 msgctxt "shortcut window" msgid "Toggle scale" msgstr "Přepnout měřítko" #: data/ui/help-overlay.ui:104 msgctxt "shortcut window" msgid "Go to current location" msgstr "Přejít na současné místo" #: data/ui/help-overlay.ui:114 msgctxt "shortcut window" msgid "Switch to street view" msgstr "Přepnout na panoramatický pohled" #: data/ui/help-overlay.ui:121 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "Přepnout na letecký pohled" #: data/ui/help-overlay.ui:127 msgctxt "shortcut window" msgid "Open shape layer" msgstr "Otevřít uživatelskou vrstvu" #: data/ui/layers-popover.ui:7 msgid "Show Scale" msgstr "Zobrazovat měřítko" #: data/ui/layers-popover.ui:16 msgid "Enable Experimental Map" msgstr "Povolit experimentální mapu" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:21 msgid "Open Shape Layer…" msgstr "Otevřít uživatelskou vrstvu…" #: data/ui/main-window.ui:8 msgid "Set up OpenStreetMap Account…" msgstr "Nastavit účet na OpenStreetMap…" #: data/ui/main-window.ui:12 msgid "Export as Image…" msgstr "Exportovat jako obrázek…" #: data/ui/main-window.ui:17 msgid "_Keyboard Shortcuts" msgstr "_Klávesové zkratky" #: data/ui/main-window.ui:22 msgid "About Maps" msgstr "O aplikaci Mapy" #: data/ui/main-window.ui:48 msgid "Main Menu" msgstr "Hlavní nabídka" #: data/ui/osm-account-dialog.ui:5 msgid "OpenStreetMap Account" msgstr "Účet na OpenStreetMap" #: data/ui/osm-account-dialog.ui:31 msgid "Sign In To Edit Maps" msgstr "Přihlaste se, abyste mohli upravovat mapy" #: data/ui/osm-account-dialog.ui:32 msgid "Help to improve the map, using an OpenStreetMap account." msgstr "Pomozte vylepšit mapy pomocí účtu na OpenStreetMap." #: data/ui/osm-account-dialog.ui:36 msgid "Sign In" msgstr "Přihlásit se" #: data/ui/osm-account-dialog.ui:59 msgid "Verification" msgstr "Ověření" #: data/ui/osm-account-dialog.ui:60 msgid "" "Copy the verification code shown when authorizing access in the browser." msgstr "" "Zkopírujte ověřovací kód, který se zobrazí po ověření ve webovém prohlížeči." #: data/ui/osm-account-dialog.ui:69 msgid "Verification Code" msgstr "Ověřovací kód" #: data/ui/osm-account-dialog.ui:75 msgid "Verify" msgstr "Ověřit" #: data/ui/osm-account-dialog.ui:110 msgid "Signed In" msgstr "Přihlášeno" #: data/ui/osm-account-dialog.ui:111 msgid "Your OpenStreetMap account is active." msgstr "Váš účet na OpenStreetMap je aktivní." #: data/ui/osm-account-dialog.ui:129 msgid "Sign Out" msgstr "Odhlásit se" #: data/ui/osm-edit-address.ui:11 msgid "Street" msgstr "Ulice" #: data/ui/osm-edit-address.ui:22 msgid "House number" msgstr "Číslo domu" #: data/ui/osm-edit-address.ui:33 msgid "Postal code" msgstr "PSČ" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:44 msgid "City" msgstr "Město" #: data/ui/osm-edit-dialog.ui:8 msgctxt "dialog title" msgid "Edit on OpenStreetMap" msgstr "Úpravy v OpenStreetMap" #: data/ui/osm-edit-dialog.ui:57 msgid "Type" msgstr "Typ" #: data/ui/osm-edit-dialog.ui:79 msgid "None" msgstr "žádné" #: data/ui/osm-edit-dialog.ui:108 msgid "Add Field" msgstr "Přidat pole" #: data/ui/osm-edit-dialog.ui:130 msgid "Comment" msgstr "Komentář" #: data/ui/osm-edit-dialog.ui:158 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "Změny mapy boudou viditelné všude, kde se používají\n" "data OpenStreetMap." #: data/ui/osm-edit-dialog.ui:186 msgid "Recently Used" msgstr "Nedávno použité" #: data/ui/osm-edit-dialog.ui:225 src/mapView.js:663 msgid "Cancel" msgstr "Zrušit" #: data/ui/osm-edit-dialog.ui:238 src/osmEditDialog.js:531 msgid "Next" msgstr "Další" #: data/ui/osm-edit-wikipedia.ui:8 msgid "Article" msgstr "Článek" #: data/ui/osm-edit-wikipedia.ui:21 msgid "Wikidata tag" msgstr "Štítek z Wikidata" #: data/ui/osm-edit-wikipedia.ui:32 msgid "Load Wikidata tag for article" msgstr "Načíst Wikidata štítek pro článek" #: data/ui/place-popover.ui:23 src/searchBar.js:55 msgid "Explore Nearby Places" msgstr "Prozkoumat místa v okolí" #: data/ui/place-popover.ui:82 src/application.js:277 msgid "No results found" msgstr "Nebyly nalezeny žádné výsledky" #: data/ui/place-popover.ui:92 src/application.js:255 msgid "An error has occurred" msgstr "Vyskytla se chyba" #. Translators: This is a tooltip #: data/ui/route-entry.ui:12 msgid "Change Route Order" msgstr "Změnit pořadí tras" #: data/ui/send-to-dialog.ui:7 msgid "Open Location" msgstr "Otevřít místo" #: data/ui/send-to-dialog.ui:64 msgid "Copy" msgstr "Kopírovat" #: data/ui/send-to-dialog.ui:70 msgid "Send To…" msgstr "Poslat do…" #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:62 msgid "Open Shape Layer" msgstr "Otevřít uživatelskou vrstvu" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "_Otevřít" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:32 msgid "Toggle visible" msgstr "Přepnout viditelnost" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:44 msgid "Remove Shape Layer" msgstr "Odebrat uživatelskou vrstvu" #: data/ui/sidebar.ui:207 msgid "Route search by GraphHopper" msgstr "Hledání trasy pomocí GraphHopper" #: data/ui/sidebar.ui:272 msgid "" "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of " "transportation,\n" "e.g. a national provider might not include airlines, and a local provider " "could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" "Jízdní řády pro veřejnou dopravu jsou poskytovány službami třetích stran.\n" "GNOME nemůže nijak zaručit správnost cestovních rozvrhů a plánů.\n" "Může se stát, že poskytovatel nenabízí všechny dostupné způsoby dopravy, " "například národní\n" "poskytovatel nebude nabízet mezinárodní leteckou dopravu a u místního " "poskytovatele mohou\n" "scházet celostátní vlaky apod.\n" "Zobrazené názvy a značky považujte za registrované ochranné známky, všude " "tam, kde tomu tak má být." #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:98 msgid "Hide intermediate stops and information" msgstr "Skrýt průběžné zastávky a informace" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:156 msgid "Show intermediate stops and information" msgstr "Zobrazit průběžné zastávky a informace" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:16 msgid "Leave Now" msgstr "Odjezd teď" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:17 msgid "Leave By" msgstr "Odjezd v" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:18 msgid "Arrive By" msgstr "Příjezd v" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:85 msgid "Show" msgstr "Zobrazit" #: data/ui/transit-options-panel.ui:95 msgid "Buses" msgstr "autobusy" #: data/ui/transit-options-panel.ui:101 msgid "Trams" msgstr "tramvaje" #: data/ui/transit-options-panel.ui:107 msgid "Trains" msgstr "vlaky" #: data/ui/transit-options-panel.ui:113 msgid "Subway" msgstr "metro" #: data/ui/transit-options-panel.ui:119 msgid "Ferries" msgstr "trajekty" #: data/ui/transit-options-panel.ui:125 msgid "Airplanes" msgstr "letadla" #. Translators: This is a tooltip #: data/ui/place-bar.ui:33 data/ui/place-buttons.ui:27 msgid "Share Location" msgstr "Sdílet místo" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:11 msgid "Add to new route" msgstr "Přidat novou trasu" #. Translators: This is the button to find a route to a place #: data/ui/place-buttons.ui:15 msgid "Directions" msgstr "Navigovat" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:36 msgid "Mark as Favorite" msgstr "Označit jako oblíbené" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:44 msgid "Edit on OpenStreetMap" msgstr "Úpravy v OpenStreetMap" #. Translators: This is a tooltip #: data/ui/place-view.ui:52 msgid "Share location" msgstr "Sdílet místo" #: data/ui/poi-category-goback-row.ui:22 msgid "Back to Main Categories" msgstr "Zpět na hlavní kategorie" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:19 msgid "Reset Rotation" msgstr "Resetovat rotaci" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:32 msgid "Zoom Out" msgstr "Oddálit" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:43 src/mapView.js:1238 msgid "Zoom In" msgstr "Přiblížit" #: lib/maps-file-data-source.c:262 lib/maps-file-data-source.c:338 #: lib/maps-file-data-source.c:418 msgid "Failed to find tile structure in directory" msgstr "Selhalo vyhledání struktury ve složce" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "Selhalo zpracování dokumentu XML" #: lib/maps-osm.c:250 lib/maps-osm.c:403 msgid "Missing required attributes" msgstr "Schází vyžadované atributy" #: lib/maps-osm.c:451 lib/maps-osm.c:494 msgid "Could not find OSM element" msgstr "Nezdařilo se najít prvek OSM" #: lib/maps-osm.c:508 msgid "Could not find user element" msgstr "Nezdařilo se najít uživatelský prvek" #: src/application.js:78 msgid "A path to a local tiles directory structure" msgstr "Cesta k místní struktuře složek s dlaždicemi" #: src/application.js:84 msgid "Tile size for local tiles directory" msgstr "Velikost dlaždic pro místní složeku s dlaždicemi" #: src/application.js:88 msgid "Show the version of the program" msgstr "Zobrazit verzi programu" #: src/application.js:94 msgid "Search for places" msgstr "Hledat místa" #: src/application.js:105 src/application.js:106 msgid "[FILE…|URI]" msgstr "[SOUBOR…|URI]" #: src/application.js:284 #, javascript-format msgid "Invalid maps: URI: %s" msgstr "Neplatné mapy: URI: %s" #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:75 #, javascript-format msgid "Maps at %f, %f.png" msgstr "Mapa na souřadnicích %f, %f.png" #: src/exportViewDialog.js:174 msgid "Unable to export view" msgstr "Nelze exportovat zobrazení" #: src/favoriteListRow.js:42 msgid "Favorite removed" msgstr "Oblíbená položka byla odebrána" #: src/favoriteListRow.js:43 msgid "Undo" msgstr "Zpět" #: src/geoJSONSource.js:73 msgid "invalid coordinate" msgstr "neplatné souřadnice" #: src/geoJSONSource.js:126 src/geoJSONSource.js:166 src/geoJSONSource.js:181 msgid "parse error" msgstr "chyba zpracování" #: src/geoJSONSource.js:160 msgid "unknown geometry" msgstr "neznámé geometrické údaje" #: src/graphHopper.js:101 src/transitPlan.js:175 msgid "Route request failed." msgstr "Požadavek na vyhledání cesty selhal." #: src/graphHopper.js:108 src/transitPlan.js:167 msgid "No route found." msgstr "Nenalezena žádná cesta." #: src/graphHopper.js:195 src/transitplugins/openTripPlanner.js:1163 msgid "Start!" msgstr "Start!" #: src/mainWindow.js:59 msgid "All Layer Files" msgstr "Všechny soubory s vrstvami" #: src/mainWindow.js:522 msgid "Failed to connect to location service" msgstr "Selhalo připojení ke geolokační službě" #: src/mainWindow.js:527 msgid "Turn on location services" msgstr "Zapnout geolokační službu" #: src/mainWindow.js:528 msgid "Location Settings" msgstr "Nastavení určování polohy" #: src/mainWindow.js:645 msgid "translator-credits" msgstr "Marek Černocký " #: src/mainWindow.js:649 msgid "Copyright © 2011 – 2023 Red Hat, Inc. and The GNOME Maps authors" msgstr "Copyright © 2011 - 2023 Red Hat, Inc. a autoři Map GNOME" #: src/mainWindow.js:665 #, javascript-format msgid "Map data by %s and contributors" msgstr "Mapová data od %s a přispěvatelů" #: src/mainWindow.js:666 msgid "Map Data Provider" msgstr "Poskytovatel mapových dat" #: src/mainWindow.js:678 msgid "Map Tile Provider" msgstr "Poskytovatel mapových dlaždic" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:686 #, javascript-format msgid "Map tiles provided by %s" msgstr "Mapové dlaždice poskytuje %s" #: src/mainWindow.js:716 msgid "Search Provider" msgstr "Poskytovatel vyhledávání" #: src/mainWindow.js:719 #, javascript-format msgid "Search provided by %s using %s" msgstr "Hledání zprostředkuje %s pomocí %s" #: src/mapView.js:637 src/mapView.js:702 msgid "Failed to open layer" msgstr "Selhalo otevření vrstvy" #: src/mapView.js:656 msgid "Do you want to continue?" msgstr "Chcete pokračovat?" #: src/mapView.js:657 #, javascript-format msgid "" "You are about to open files with a total size of %s MB. This could take some " "time to load" msgstr "" "Chystáte se otevřít soubory o celkové velikosti %s MB. To může zabrat nějaký " "čas." #: src/mapView.js:664 src/transitplugins/openTripPlanner.js:1239 #: src/transitplugins/openTripPlanner2.js:267 msgid "Continue" msgstr "Pokračujte" #: src/mapView.js:696 msgid "File type is not supported" msgstr "Typ souboru není podporován" #: src/mapView.js:733 msgid "Failed to open GeoURI" msgstr "Selhalo otevření adresy GeoURI" #: src/mapView.js:1197 msgid "Nothing found here!" msgstr "Zde nebylo nic nalezeno!" #: src/mapView.js:1237 msgid "Zoom in to add location" msgstr "Přiblížit pro přidání místa" #: src/mapView.js:1258 msgid "Location was added in OpenStreetMap" msgstr "Místo bylo přidáno do OpenStreetMap" #. switch back to the sign-in view, and show a toast indicating #. that verification failed #: src/osmAccountDialog.js:134 msgid "The verification code didn’t match, please try again." msgstr "Ověřovací kód nesouhlasí, zkuste to prosím znovu." #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:335 msgid "Incorrect user name or password" msgstr "Nesprávné uživatelské jméno nebo heslo" #: src/osmConnection.js:337 msgid "Success" msgstr "Úspěšné" #: src/osmConnection.js:339 msgid "Bad request" msgstr "Chybný požadavek" #: src/osmConnection.js:341 msgid "Object not found" msgstr "Objekt nebyl nalezen" #: src/osmConnection.js:343 msgid "Conflict, someone else has just modified the object" msgstr "Došlo ke střetu, někdo jiný objekt právě upravil" #: src/osmConnection.js:345 msgid "Object has been deleted" msgstr "Objekt byl smazán" #: src/osmConnection.js:347 msgid "Way or relation refers to non-existing children" msgstr "Cesta nebo vztah odkazuje na neexistujícího potomka" #: src/osmEditDialog.js:106 msgid "Name" msgstr "Název" #: src/osmEditDialog.js:109 msgid "The official name. This is typically what appears on signs." msgstr "Oficiální název. Typicky to, co bývá na informačních tabulích." #: src/osmEditDialog.js:112 msgid "Address" msgstr "Adresa" #: src/osmEditDialog.js:120 src/placeView.js:275 msgid "Website" msgstr "Stránky WWW" #: src/osmEditDialog.js:124 msgid "This is not a valid URL. Make sure to include http:// or https://." msgstr "" "Nejedná se o platnou adresu URL. Nezapomeňte začít http:// nebo https://" #: src/osmEditDialog.js:125 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" "Oficiální webové stránky. Snažte se použít co nejzákladnější tvar, tj. " "http://www.priklad.cz namísto http://www.priklad.cz/index.html" #: src/osmEditDialog.js:130 msgid "Phone" msgstr "Telefon" #: src/osmEditDialog.js:134 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" "Telefonní číslo. Používejte mezinárodní formát začínající znakem +. Dbejte " "místních zákonů na ochranu soukromí, zejména u soukromách telefonních čísel." #: src/osmEditDialog.js:139 msgid "E-mail" msgstr "E-mail" #: src/osmEditDialog.js:144 msgid "" "This is not a valid email address. Make sure to not include the mailto: " "protocol prefix." msgstr "" "Nejedná se o platnou e-mailovou adresu. Ujistěte se, že nazačíná předponou s " "protokolem „mailto:“." #: src/osmEditDialog.js:145 msgid "" "Contact email address for inquiries. Add only email addresses that are " "intended to be publicly used." msgstr "" "Kontaktní e-mailová adresa pro dotazy. Přidávejte pouze e-mailové adresy, " "které jsou určené pro veřejné použití." #. Translators: This is the text for the "Wikipedia" link at the end #. of summaries #: src/osmEditDialog.js:149 src/placeView.js:727 msgid "Wikipedia" msgstr "Wikipedia" #: src/osmEditDialog.js:156 src/placeView.js:399 msgid "Opening hours" msgstr "Otevírací doba" #: src/osmEditDialog.js:161 msgid "See the link in the label for help on format." msgstr "Nápověda k formátu viz odkaz v popisku." #. TODO: this is a bit of a work-around to re-interpret the population, #. * stored as a string into an integer to convert back to a locale- #. * formatted string. Ideally it should be kept as an integer value #. * in the Place class. But this will also need to be handled by the #. * PlaceStore, possible in a backwards-compatible way #. #: src/osmEditDialog.js:164 src/placeView.js:509 msgid "Population" msgstr "Populace" #: src/osmEditDialog.js:169 src/placeView.js:538 msgid "Altitude" msgstr "Nadmořská výška" #: src/osmEditDialog.js:172 msgid "Elevation (height above sea level) of a point in meters." msgstr "Nadmořská výška bodu v metrech" #: src/osmEditDialog.js:175 msgid "Wheelchair access" msgstr "Bezbariérový přístup" #: src/osmEditDialog.js:178 src/osmEditDialog.js:187 src/osmEditDialog.js:198 #: src/osmEditDialog.js:233 msgid "Yes" msgstr "ano" #: src/osmEditDialog.js:179 src/osmEditDialog.js:188 src/osmEditDialog.js:199 #: src/osmEditDialog.js:234 msgid "No" msgstr "ne" #: src/osmEditDialog.js:180 msgid "Limited" msgstr "částečně" #: src/osmEditDialog.js:181 msgid "Designated" msgstr "výslovně ano" #: src/osmEditDialog.js:184 msgid "Internet access" msgstr "Přístup k Internetu" #: src/osmEditDialog.js:189 msgid "Wi-Fi" msgstr "Wi-Fi" #: src/osmEditDialog.js:190 msgid "Wired" msgstr "drátový" #: src/osmEditDialog.js:191 msgid "Terminal" msgstr "terminál" #: src/osmEditDialog.js:192 msgid "Service" msgstr "služba" #: src/osmEditDialog.js:195 msgid "Takeout" msgstr "Jídlo s sebou" #: src/osmEditDialog.js:200 msgid "Only" msgstr "výhradně" #: src/osmEditDialog.js:203 msgid "Religion" msgstr "Náboženství" #: src/osmEditDialog.js:206 src/translations.js:286 msgid "Animism" msgstr "animizmus" #: src/osmEditDialog.js:207 msgid "Bahá’í" msgstr "bahaizmus" #: src/osmEditDialog.js:208 src/translations.js:288 msgid "Buddhism" msgstr "buddhizmus" #: src/osmEditDialog.js:209 src/translations.js:289 msgid "Caodaism" msgstr "kaodaizmus" #: src/osmEditDialog.js:210 src/translations.js:290 msgid "Christianity" msgstr "křesťanství" #: src/osmEditDialog.js:211 src/translations.js:291 msgid "Confucianism" msgstr "konfuciánství" #: src/osmEditDialog.js:212 src/translations.js:292 msgid "Hinduism" msgstr "hinduizmus" #: src/osmEditDialog.js:213 src/translations.js:293 msgid "Jainism" msgstr "džinizmus" #: src/osmEditDialog.js:214 src/translations.js:294 msgid "Judaism" msgstr "judaizmus" #: src/osmEditDialog.js:215 src/translations.js:295 msgid "Islam" msgstr "islám" #: src/osmEditDialog.js:216 src/translations.js:296 msgid "Multiple Religions" msgstr "více náboženství" #: src/osmEditDialog.js:217 src/translations.js:297 msgid "Paganism" msgstr "pohanství" #: src/osmEditDialog.js:218 src/translations.js:298 msgid "Pastafarianism" msgstr "pastafariánství" #: src/osmEditDialog.js:219 src/translations.js:299 msgid "Scientology" msgstr "scientologie" #: src/osmEditDialog.js:220 src/translations.js:300 msgid "Shinto" msgstr "šintoizmus" #: src/osmEditDialog.js:221 src/translations.js:301 msgid "Sikhism" msgstr "sikhizmus" #: src/osmEditDialog.js:222 src/translations.js:302 msgid "Spiritualism" msgstr "spiritualizmus" #: src/osmEditDialog.js:223 src/translations.js:303 msgid "Taoism" msgstr "taoizmus" #: src/osmEditDialog.js:224 src/translations.js:304 msgid "Unitarian Universalism" msgstr "unitární univerzalizmus" #: src/osmEditDialog.js:225 src/translations.js:305 msgid "Voodoo" msgstr "vúdú" #: src/osmEditDialog.js:226 src/translations.js:306 msgid "Yazidism" msgstr "jezídizmus" #: src/osmEditDialog.js:227 src/translations.js:307 msgid "Zoroastrianism" msgstr "zarathuštrizmus" #: src/osmEditDialog.js:230 src/poiCategories.js:176 msgid "Toilets" msgstr "Toalety" #: src/osmEditDialog.js:237 msgid "Note" msgstr "Poznámka" #: src/osmEditDialog.js:240 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" "Informace používané k informování ostatních autorů map o věcech, které " "nejsou u prvku zcela zřejmé, o záměrech autora při vytváření prvku nebo k " "názorům na další vylepšování." #: src/osmEditDialog.js:339 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "Přidání do OpenStreetMap" #: src/osmEditDialog.js:393 msgid "Select Type" msgstr "Vybrat typ" #: src/osmEditDialog.js:515 msgid "Done" msgstr "Hotovo" #: src/osmEditDialog.js:818 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "" "Použitý formát by měl obsahovat rovněž kód jazyka a název článku, jako „cs:" "Název článku“." #: src/osmEditDialog.js:824 msgid "Use the reload button to load the Wikidata tag for the selected article" msgstr "" "Použijte tlačítko Znovu načíst pro načtení štítku z Wikidata pro vybraný " "článek." #: src/osmEditDialog.js:832 msgid "Couldn't find Wikidata tag for article" msgstr "Nezdařilo se najít na Wikidata štítek pro článek" #: src/photonUtils.js:118 msgid "Unnamed place" msgstr "Místo bez názvu" #: src/placeEntry.js:274 msgid "Failed to parse Geo URI" msgstr "Selhalo zpracování adresy GeoURI" #: src/placeEntry.js:286 msgid "Failed to parse Maps URI" msgstr "Selhalo zpracování adresy URI map" #. 300 ft (300 * 12 * 0.0254 m) #. #. * Translators: This a format string for showing a distance to a place #. * is lower than a "quite short" distance. #. * The "less than" symbol can be substituded with an appropriate one, if #. * needed (e.g. using the correct direction, or alternative symbol). #. * The %s should be kept, and is substituted with a label representing the #. * short distance. The \u2009 (thin space) could also be adjusted if needed #: src/placeListRow.js:46 #, javascript-format msgctxt "short distance format string" msgid "< %s" msgstr "< %s" #: src/placeView.js:263 msgid "Coordinates" msgstr "Souřadnice" #: src/placeView.js:267 msgid "Accuracy" msgstr "Přesnost" #. Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) #: src/placeView.js:270 #, javascript-format msgid "Accuracy: %s" msgstr "Přesnost: %s" #. since the phone numbers are typically always rendered #. * left-to-right, insert an explicit LRM char to avoid issues #. * with phone numbers in international format starting with a + #. * which is considered a "weak" character to determine Unicode #. * text direction #. #: src/placeView.js:289 msgid "Phone number" msgstr "Telefonní číslo" #: src/placeView.js:308 msgid "Email" msgstr "E-mail" #. If a reference to a named floor (named or symbolic) exists #. * refer to it directly. #. #. Translators: #. * This is a reference to named building floor, using a label #. * or a code, as "displayed in the elevator" #. #: src/placeView.js:323 src/placeView.js:362 msgid "Floor" msgstr "Patro" #: src/placeView.js:325 #, javascript-format msgid "Floor %s" msgstr "%s. patro" #: src/placeView.js:337 msgid "At ground level" msgstr "V úrovni terénu" #. Translators: #. * This is a reference to a number of floors above #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:346 #, javascript-format msgid "%s floor above ground level" msgid_plural "%s floors above ground level" msgstr[0] "%s patro nad úrovní terénu" msgstr[1] "%s patra nad úrovní terénu" msgstr[2] "%s pater nad úrovní terénu" #. Translators: #. * This is a reference to a number of floors below #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:357 #, javascript-format msgid "%s floor below ground level" msgid_plural "%s floors below ground level" msgstr[0] "%s patro pod úrovní terénu" msgstr[1] "%s patra pod úrovní terénu" msgstr[2] "%s pater pod úrovní terénu" #. Translators: #. * The establishment offers customers to purchase meals #. * (or similar) to be consumed elsewhere #. #: src/placeView.js:375 msgid "Offers takeout" msgstr "Nabízí jídlo s sebou" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed on-premise. #. #: src/placeView.js:383 msgid "Does not offer takeout" msgstr "Nenabízí jídlo s sebou" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed elsewhere. E.g. #. * there is no seating on-premise for eating/drinking #. #: src/placeView.js:392 msgid "Only offers takeout" msgstr "Nabízí pouze jídlo s sebou" #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/placeView.js:409 msgid "Public internet access" msgstr "Veřejný přístup k Internetu" #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/placeView.js:418 msgid "No internet access" msgstr "Bez přístupu k Internetu" #. Translators: #. * This means a WLAN Hotspot, also known as wireless, wifi or Wi-Fi. #. #: src/placeView.js:426 msgid "Public Wi-Fi" msgstr "Veřejná Wi-Fi" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/placeView.js:434 msgid "Wired internet access" msgstr "Drátový přístup k Internetu" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/placeView.js:442 msgid "Computers available for use" msgstr "Počítač k dispozici k používání" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/placeView.js:450 msgid "Internet assistance available" msgstr "Internetová asistence k dispozici" #: src/placeView.js:456 msgid "No toilets available" msgstr "Bez toalet k dispozici" #: src/placeView.js:459 msgid "Toilets available" msgstr "K dispozici toalety" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #: src/placeView.js:468 msgid "Wheelchair accessible" msgstr "Bezbariérový přístup" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/placeView.js:478 msgid "Limited wheelchair accessibility" msgstr "Omezený bezbariérový přístup" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #: src/placeView.js:487 msgid "Not wheelchair accessible" msgstr "Nemá bezbariérový přístup" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/placeView.js:497 msgid "Designated for wheelchair users" msgstr "Výslovně vhodné pro vozíčkáře" #. * #. * Translators: this is a label indicating an altitude below #. * sea level, where the %s placeholder is the altitude relative #. * to mean sea level in the "negative direction" #. #: src/placeView.js:528 #, javascript-format msgid "%s below sea level" msgstr "%s pod hladinou moře" #. * #. * Translators: this indicates a place is located at (or very #. * close to) mean sea level #. #: src/placeView.js:535 msgid "At sea level" msgstr "V úrovni hladiny moře" #: src/placeView.js:544 msgid "Religion:" msgstr "Náboženství:" #: src/place.js:568 msgid "Place not found in OpenStreetMap" msgstr "Místo nebylo v OpenStreetMap nalezeno" #: src/place.js:575 msgid "Coordinates in URL are not valid" msgstr "Souřadnice v adrese URL nejsou platné" #: src/place.js:584 msgid "URL is not supported" msgstr "Tato adreasa URL není podporovaná" #: src/poiCategories.js:132 msgid "Amenities" msgstr "Vybavení" #: src/poiCategories.js:135 msgid "ATMs" msgstr "Bankomaty" #: src/poiCategories.js:141 msgid "Post Boxes" msgstr "Poštovní schránky" #: src/poiCategories.js:147 msgid "Post Offices" msgstr "Pošty" #: src/poiCategories.js:153 msgid "Police" msgstr "Policie" #: src/poiCategories.js:159 msgid "Libraries" msgstr "Knihovny" #: src/poiCategories.js:165 msgid "Pharmacies" msgstr "Lékárny" #: src/poiCategories.js:171 msgid "Recycling" msgstr "Recyklace" #: src/poiCategories.js:182 msgid "Wheelchair-accessible Toilets" msgstr "Bezbariérové toalety" #: src/poiCategories.js:188 msgid "Baggage Lockers" msgstr "Schránky na zavazadla" #: src/poiCategories.js:196 msgid "Eating & Drinking" msgstr "Jídlo a pití" #: src/poiCategories.js:200 msgid "Restaurants" msgstr "Restaurace" #: src/poiCategories.js:205 msgid "Fast Food" msgstr "Rychlé občerstvení" #: src/poiCategories.js:210 msgid "Food Courts" msgstr "Jídelny" #: src/poiCategories.js:215 msgid "Pubs" msgstr "Hospody" #: src/poiCategories.js:221 msgid "Bars" msgstr "Bary" #: src/poiCategories.js:226 msgid "Cafes" msgstr "Kavárny" #: src/poiCategories.js:231 msgid "Ice Cream" msgstr "Zmrzlina" #: src/poiCategories.js:236 msgid "Food, Snacks, and Beverage Machines" msgstr "Automaty na jídlo, občerstvení a nápoje" #: src/poiCategories.js:244 msgid "Shopping" msgstr "Nakupování" #: src/poiCategories.js:248 msgid "Supermarkets" msgstr "Supermarkety" #: src/poiCategories.js:254 msgid "Convenience Stores" msgstr "Večerky" #: src/poiCategories.js:259 msgid "Shopping Malls" msgstr "Obchodní centra" #: src/poiCategories.js:265 msgid "Clothes" msgstr "Oděvy" #: src/poiCategories.js:271 msgid "Shoes" msgstr "Obuv" #: src/poiCategories.js:276 msgid "Electronics" msgstr "Elektronika" #: src/poiCategories.js:282 msgid "Alcohol" msgstr "Alkohol" #: src/poiCategories.js:288 msgid "Bakeries" msgstr "Pekárny" #: src/poiCategories.js:294 msgid "Flowers" msgstr "Květiny" #: src/poiCategories.js:301 msgid "Transportation" msgstr "Doprava" #: src/poiCategories.js:305 msgid "Bus & Tram Stops" msgstr "Autobusové a tramvajové zastávky" #: src/poiCategories.js:313 msgid "Train & Subway Stations" msgstr "Vlakové stanice a stanice metra" #: src/poiCategories.js:321 msgid "Tickets" msgstr "Lístky" #: src/poiCategories.js:329 msgid "Parking" msgstr "Parkoviště" #: src/poiCategories.js:334 msgid "Bicycle Parking" msgstr "Parkoviště jízdních kol" #: src/poiCategories.js:339 msgid "Bicycle Rental" msgstr "Půjčovny jízdních kol" #: src/poiCategories.js:344 msgid "Car Rental" msgstr "Autopůjčovny" #: src/poiCategories.js:349 msgid "Fuel" msgstr "Pohonné hmoty" #: src/poiCategories.js:354 msgid "EV Charging" msgstr "Nabíjení elektromobilů" #: src/poiCategories.js:362 msgid "Healthcare" msgstr "Zdravotní péče" #: src/poiCategories.js:366 msgid "Clinics" msgstr "Kliniky" #: src/poiCategories.js:372 msgid "Hospitals" msgstr "Nemocnice" #: src/poiCategories.js:378 msgid "Dentists" msgstr "Zubaři" #: src/poiCategories.js:386 msgid "Accommodation" msgstr "Ubytování" #: src/poiCategories.js:390 msgid "Hotels" msgstr "Hotely" #: src/poiCategories.js:395 msgid "Hostels" msgstr "Hostely" #: src/poiCategories.js:400 msgid "Bed & Breakfast" msgstr "Nocleh se snídaní" #: src/poiCategories.js:405 msgid "Campings" msgstr "Kempy" #: src/poiCategories.js:412 msgid "Recreation" msgstr "Rekreace" #: src/poiCategories.js:416 msgid "Parks" msgstr "Parky" #: src/poiCategories.js:421 msgid "Playgrounds" msgstr "Hřiště" #: src/poiCategories.js:425 msgid "Beaches" msgstr "Pláže" #: src/poiCategories.js:430 msgid "Nature Reserves" msgstr "Přírodní rezervace" #: src/poiCategories.js:436 msgid "Theme Parks" msgstr "Zábavní parky" #: src/poiCategories.js:441 msgid "Theaters" msgstr "Divadla" #: src/poiCategories.js:447 msgid "Movie Theaters" msgstr "Kina" #: src/poiCategories.js:453 msgid "Night Clubs" msgstr "Noční kluby" #: src/poiCategories.js:460 msgid "Tourism" msgstr "Turistika" #: src/poiCategories.js:464 msgid "Museums" msgstr "Muzea" #: src/poiCategories.js:470 msgid "Attractions" msgstr "Atrakce" #: src/poiCategories.js:475 msgid "Artworks" msgstr "Umělecká díla" #: src/poiCategories.js:480 msgid "Tourist Information" msgstr "Turistické informace" #: src/poiCategories.js:487 msgid "Sports" msgstr "Sporty" #: src/poiCategories.js:491 msgid "Gyms" msgstr "Posilovny" #: src/poiCategories.js:497 msgid "Outdoor Gyms" msgstr "Venkovní posilovny" #: src/poiCategories.js:503 msgid "Golf Courses" msgstr "Golfová hřiště" #: src/printLayout.js:350 #, javascript-format msgid "From %s to %s" msgstr "Od %s do %s" #: src/printOperation.js:49 msgid "Loading map tiles for printing" msgstr "Načítají se mapové dlaždice pro tisk" #: src/printOperation.js:50 msgid "You can abort printing if this takes too long" msgstr "Pokud to trvá příliš dlouho, můžete tisk zrušit" #: src/printOperation.js:52 msgid "Abort printing" msgstr "Zrušit tisk" #. Translators: this is add via location tooltip #: src/routeEntry.js:60 msgid "Add via location" msgstr "Přidat místo do trasy" #. Translators: this is remove via location tooltip #: src/routeEntry.js:70 msgid "Remove via location" msgstr "Odebrat podle místa" #. Translators: this is reverse route tooltip #: src/routeEntry.js:76 msgid "Reverse route" msgstr "Otočit trasu" #: src/searchBar.js:45 msgid "Search" msgstr "Hledat" #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:84 #, javascript-format msgid "Add %s to %s" msgstr "Přidat %s do %s" #: src/sendToDialog.js:181 msgid "Failed to open URI" msgstr "Selhalo otevření adresy URI" #: src/sendToDialog.js:246 #, javascript-format msgid "Open with %s" msgstr "Otevřít pomocí %s" #: src/shapeLayer.js:109 msgid "failed to load file" msgstr "selhalo načtení souboru" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:328 #, javascript-format msgid "Estimated time: %s" msgstr "Odhadovaný čas: %s" #: src/sidebar.js:398 #, javascript-format msgid "Itineraries provided by %s" msgstr "Plán cesty poskytl %s" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:39 #, javascript-format msgid "Start at %s" msgstr "Start v %s" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:45 src/transitplugins/openTripPlanner2.js:236 msgid "Start" msgstr "Start" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:63 #, javascript-format msgid "Walk %s" msgstr "Chůze %s" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:77 #, javascript-format msgid "Arrive at %s" msgstr "Příjezd do %s" #: src/transit.js:79 src/transitplugins/openTripPlanner.js:1176 #: src/transitplugins/openTripPlanner2.js:255 msgid "Arrive" msgstr "Příjezd" #: src/transitLegRow.js:69 msgid "Show walking instructions" msgstr "Zobrazit pokyny pro pěší" #: src/transitLegRow.js:70 msgid "Hide walking instructions" msgstr "Skrýt pokyny pro pěší" #: src/transitMoreRow.js:37 msgid "Load earlier alternatives" msgstr "Načíst dřívější variantu" #: src/transitMoreRow.js:39 msgid "Load later alternatives" msgstr "Načíst pozdější variantu" #: src/transitMoreRow.js:52 msgid "No earlier alternatives found." msgstr "Nebyla nalezena žádná dřívější varianta." #: src/transitMoreRow.js:54 msgid "No later alternatives found." msgstr "Nebyla nalezena žádná pozdější varianta." #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:138 msgctxt "month-day-date" msgid "%b %e" msgstr "%-d. %B" #: src/transitPlan.js:171 msgid "No timetable data found for this route." msgstr "Pro tuto trasu nebyly nalezeny žádné časové údaje." #: src/transitPlan.js:179 msgid "No provider found for this route." msgstr "Pro tuto trasu nebyl nalezen žádný poskytovatel údajů." #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:300 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:331 #, javascript-format msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "%s minuta" msgstr[1] "%s minuty" msgstr[2] "%s minut" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:343 #, javascript-format msgid "%s hour" msgid_plural "%s hours" msgstr[0] "%s hodina" msgstr[1] "%s hodiny" msgstr[2] "%s hodin" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:351 #, javascript-format msgid "%s:%s hour" msgid_plural "%s:%s hours" msgstr[0] "%s∶%s hod" msgstr[1] "%s∶%s hod" msgstr[2] "%s∶%s hod" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:744 #, javascript-format msgid "%s–%s" msgstr "%s – %s" #: src/translations.js:55 msgid "Around the clock" msgstr "24 hodin denně" #: src/translations.js:57 msgid "From sunrise to sunset" msgstr "za denního světla" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:123 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s, %s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:137 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s, %s, %s" #: src/translations.js:156 msgid "Every day" msgstr "každý den" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:168 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s - %s" #: src/translations.js:179 msgid "Public holidays" msgstr "státní svátky" #: src/translations.js:181 msgid "School holidays" msgstr "školní prázdniny" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:221 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: src/translations.js:235 msgid "not open" msgstr "zavřeno" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:250 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s - %s" #: src/translations.js:287 msgid "Bahá'í" msgstr "bahaizmus" #. Translators: Accuracy of user location information #: src/utils.js:248 msgid "Unknown" msgstr "neznámá" #. Translators: Accuracy of user location information #: src/utils.js:251 msgid "Exact" msgstr "velmi přesná" #. Translators: this is a duration with only hours, using #. * an abbreviation for hours, corresponding to 'h' in English #. #: src/utils.js:307 #, javascript-format msgid "%s h" msgstr "%s hod" #. Translators: this is a duration with hours and minutes parts #. * using abbreviations for hours and minutes, corresponding to 'h' #. * and 'min' in English. The minutes has appropriate plural variations #. #: src/utils.js:313 #, javascript-format msgid "%s h %s min" msgid_plural "%s h %s min" msgstr[0] "%s h %s min" msgstr[1] "%s h %s min" msgstr[2] "%s h %s min" #. Translators: this is a duration with minutes part #. * using abbreviation for minutes, corresponding to 'min' in English #. * with appropriate plural variations #. #: src/utils.js:320 #, javascript-format msgid "%s min" msgid_plural "%s min" msgstr[0] "%s min" msgstr[1] "%s min" msgstr[2] "%s min" #. Translators: this is a duration of less than one minute #. * with seconds using an abbreviation for seconds, corresponding to #. * 's' in English with appropriate plural forms #. #: src/utils.js:326 #, javascript-format msgid "%s s" msgid_plural "%s s" msgstr[0] "%s s" msgstr[1] "%s s" msgstr[2] "%s s" #. Translators: This is a distance measured in kilometers #: src/utils.js:337 #, javascript-format msgid "%s km" msgstr "%s km" #. Translators: This is a distance measured in meters #: src/utils.js:340 #, javascript-format msgid "%s m" msgstr "%s m" #. Translators: This is a distance measured in miles #: src/utils.js:348 #, javascript-format msgid "%s mi" msgstr "%s mi" #. Translators: This is a distance measured in feet #: src/utils.js:351 #, javascript-format msgid "%s ft" msgstr "%s ft" #: src/transitplugins/goMetro.js:61 msgid "This plugin doesn't support latest arrival" msgstr "Tento zásuvný modul nepodporuje poslední příjezd" #: src/transitplugins/openTripPlanner.js:1237 #: src/transitplugins/openTripPlanner2.js:266 #, javascript-format msgid "Continue on %s" msgstr "Pokračujte na %s" #: src/transitplugins/openTripPlanner.js:1242 #: src/transitplugins/openTripPlanner2.js:270 #, javascript-format msgid "Turn left on %s" msgstr "Zahněte doleva na %s" #: src/transitplugins/openTripPlanner.js:1244 #: src/transitplugins/openTripPlanner2.js:271 msgid "Turn left" msgstr "Zahněte doleva" #: src/transitplugins/openTripPlanner.js:1247 #: src/transitplugins/openTripPlanner2.js:275 #, javascript-format msgid "Turn slightly left on %s" msgstr "Zahněte mírně doleva na %s" #: src/transitplugins/openTripPlanner.js:1249 #: src/transitplugins/openTripPlanner2.js:276 msgid "Turn slightly left" msgstr "Zahněte mírně doleva" #: src/transitplugins/openTripPlanner.js:1252 #: src/transitplugins/openTripPlanner2.js:280 #, javascript-format msgid "Turn sharp left on %s" msgstr "Zahněte ostře doleva na %s" #: src/transitplugins/openTripPlanner.js:1254 #: src/transitplugins/openTripPlanner2.js:281 msgid "Turn sharp left" msgstr "Zahněte ostře doleva" #: src/transitplugins/openTripPlanner.js:1257 #: src/transitplugins/openTripPlanner2.js:284 #, javascript-format msgid "Turn right on %s" msgstr "Zahněte doprava na %s" #: src/transitplugins/openTripPlanner.js:1259 #: src/transitplugins/openTripPlanner2.js:285 msgid "Turn right" msgstr "Zahněte doprava" #: src/transitplugins/openTripPlanner.js:1262 #: src/transitplugins/openTripPlanner2.js:289 #, javascript-format msgid "Turn slightly right on %s" msgstr "Zahněte mírně doprava na %s" #: src/transitplugins/openTripPlanner.js:1264 #: src/transitplugins/openTripPlanner2.js:290 msgid "Turn slightly right" msgstr "Zahněte mírně doprava" #: src/transitplugins/openTripPlanner.js:1267 #: src/transitplugins/openTripPlanner2.js:294 #, javascript-format msgid "Turn sharp right on %s" msgstr "Zahněte ostře doprava na %s" #: src/transitplugins/openTripPlanner.js:1269 #: src/transitplugins/openTripPlanner2.js:295 msgid "Turn sharp right" msgstr "Zahněte ostře doprava" #: src/transitplugins/openTripPlanner.js:1275 #: src/transitplugins/openTripPlanner2.js:302 #, javascript-format msgid "At the roundabout, take exit %s" msgstr "Na kruhovém objezdu použijte výjezd %s" #: src/transitplugins/openTripPlanner.js:1277 #: src/transitplugins/openTripPlanner2.js:305 #, javascript-format msgid "At the roundabout, take exit to %s" msgstr "Na kruhovém objezdu použijte výjezd směr %s" #: src/transitplugins/openTripPlanner.js:1279 #: src/transitplugins/openTripPlanner2.js:307 msgid "Take the roundabout" msgstr "Najeďte na kruhový objezd" #: src/transitplugins/openTripPlanner.js:1283 #: src/transitplugins/openTripPlanner2.js:315 #, javascript-format msgid "Take the elevator and get off at %s" msgstr "Použijte výtah a vystupte v %s" #: src/transitplugins/openTripPlanner.js:1285 #: src/transitplugins/openTripPlanner2.js:316 msgid "Take the elevator" msgstr "Použijte výtah" #: src/transitplugins/openTripPlanner.js:1289 #: src/transitplugins/openTripPlanner2.js:320 #, javascript-format msgid "Make a left u-turn onto %s" msgstr "Proveďte otočku doleva na %s" #: src/transitplugins/openTripPlanner.js:1291 #: src/transitplugins/openTripPlanner2.js:321 msgid "Make a left u-turn" msgstr "Proveďte otočku doleva" #: src/transitplugins/openTripPlanner.js:1294 #: src/transitplugins/openTripPlanner2.js:325 #, javascript-format msgid "Make a right u-turn onto %s" msgstr "Proveďte otočku doprava na %s" #: src/transitplugins/openTripPlanner.js:1296 #: src/transitplugins/openTripPlanner2.js:326 msgid "Make a right u-turn" msgstr "Proveďte otočku doprava" #~ msgid "Sign in to edit maps" #~ msgstr "" #~ "Přihlaste se pro úpravy map" #~ msgid "" #~ "Sign in to authorize access in a web browser.\n" #~ "Then fill in the obtained verification code here in the next step." #~ msgstr "" #~ "Pro ověření se přihlaste ve webovém prohlížeči.\n" #~ "Po té sem v dalším kroku zkopírujte získaný ověřovací kód." #~ msgid "Signed In" #~ msgstr "Jste přihlášen" #~ msgid "Sign up" #~ msgstr "Zaregistrovat se" #~ msgid "Filesystem is read only" #~ msgstr "Souborový systém je jen ke čtení" #~ msgid "You do not have permission to save there" #~ msgstr "Nemáte oprávnění ukládat do tohoto umístění" #~ msgid "The directory does not exist" #~ msgstr "Složka neexistuje" #~ msgid "No filename specified" #~ msgstr "Není zadán název souboru" #~ msgid "" #~ "Location was added to the map, note that it may take a while before it " #~ "shows on the map and in search results." #~ msgstr "" #~ "Místo bylo přidáno do mapy, ale vezměte na vědomí, že může chvíli trvat, " #~ "než se zobrazí na mapě a ve výsledcích hledání." #~ msgid "Takeaway" #~ msgstr "Jídlo s sebou" 070701000001B7000081A4000000000000000000000001664134090001005C000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/da.po# Danish translation for gnome-maps. # Copyright (C) 2013, 2016-2018 gnome-maps's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-maps package. # Kris Thomsen , 2013. # Kenneth Nielsen , 2014. # scootergrisen, 2015, 2019. # Ask Hjorth Larsen , 2015, 16, 17, 18. # Alan Mortensen , 2020-24. msgid "" msgstr "" "Project-Id-Version: gnome-maps master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2024-02-25 20:49+0000\n" "PO-Revision-Date: 2024-02-28 17:20+0100\n" "Last-Translator: Alan Mortensen \n" "Language-Team: Danish \n" "Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.0.1\n" #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.appdata.xml.in.in:6 data/org.gnome.Maps.desktop.in.in:4 #: data/ui/main-window.ui:27 src/application.js:64 src/mainWindow.js:147 #: src/mainWindow.js:647 msgid "Maps" msgstr "Kort" #: data/org.gnome.Maps.appdata.xml.in.in:7 msgid "Find places around the world" msgstr "Find steder i hele verden" #: data/org.gnome.Maps.appdata.xml.in.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "Kort giver dig hurtig adgang til kort over hele verden. Det giver dig " "mulighed for hurtigt at finde stedet du leder efter ved at søge efter en by " "eller gade, eller et sted hvor du kan mødes med en ven." #: data/org.gnome.Maps.appdata.xml.in.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "Kort bruger den kollaborative OpenStreetMap-database, skabt af flere " "hundrede tusinde mennesker over hele verden." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Maps.appdata.xml.in.in:451 src/mainWindow.js:644 msgid "The GNOME Project" msgstr "GNOME-projektet" #: data/org.gnome.Maps.desktop.in.in:5 msgid "A simple maps application" msgstr "Et simpelt kortprogram" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in.in:14 msgid "Maps;" msgstr "Kort;" #: data/org.gnome.Maps.desktop.in.in:17 msgid "Allows your location to be shown on the map." msgstr "Tillader at din placering vises på kortet." #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "sidst viste sted" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "Koordinater for sidst viste sted." #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "zoom" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "Zoomniveau" #: data/org.gnome.Maps.gschema.xml:21 msgid "rotation" msgstr "rotation" #: data/org.gnome.Maps.gschema.xml:22 msgid "Map rotation in radians" msgstr "Rotation i radian af kortet" #: data/org.gnome.Maps.gschema.xml:26 msgid "Map type" msgstr "Korttype" #: data/org.gnome.Maps.gschema.xml:27 msgid "The type of map to display (street, aerial, etc.)" msgstr "Typen af kort som skal vises (vejkort, luftfoto osv.)" #: data/org.gnome.Maps.gschema.xml:31 msgid "Window size" msgstr "Vinduesstørrelse" #: data/org.gnome.Maps.gschema.xml:32 msgid "Window size (width and height)." msgstr "Vinduesstørrelse (bredde og højde)." #: data/org.gnome.Maps.gschema.xml:36 msgid "Window position" msgstr "Vinduesplacering" #: data/org.gnome.Maps.gschema.xml:37 msgid "Window position (X and Y)." msgstr "Vinduesplacering (X og Y)." #: data/org.gnome.Maps.gschema.xml:41 msgid "Window maximized" msgstr "Vindue maksimeret" #: data/org.gnome.Maps.gschema.xml:42 msgid "Window maximization state" msgstr "Maksimeringstilstand for vindue" #: data/org.gnome.Maps.gschema.xml:46 msgid "Maximum number of search results" msgstr "Maksimum antal af søgeresultater" #: data/org.gnome.Maps.gschema.xml:47 msgid "Maximum number of search results from geocode search." msgstr "Maksimum antal af søgeresultater fra geokode-søgning." #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent places to store" msgstr "Antal seneste steder, der skal gemmes" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited places to store." msgstr "Antal senest besøgte steder, der skal gemmes." #: data/org.gnome.Maps.gschema.xml:56 msgid "Number of recent routes to store" msgstr "Antal seneste ruter, der skal gemmes" #: data/org.gnome.Maps.gschema.xml:57 msgid "Number of recently visited routes to store." msgstr "Antal senest besøgte ruter, der skal gemmes." #: data/org.gnome.Maps.gschema.xml:61 msgid "OpenStreetMap username or email address" msgstr "Brugernavn eller e-mail-adresse på OpenStreetMap" #: data/org.gnome.Maps.gschema.xml:62 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "" "Angiver om brugeren er logget ind til at kunne redigere data i OpenStreetMap." #: data/org.gnome.Maps.gschema.xml:66 msgid "Last used transportation type for routing" msgstr "Sidst brugte transporttype til routing" #: data/org.gnome.Maps.gschema.xml:70 msgid "Show scale" msgstr "Vis skala" #: data/org.gnome.Maps.gschema.xml:71 msgid "Whether to show the scale." msgstr "Om skalaen skal vises." #: data/ui/context-menu.ui:6 msgid "Route from Here" msgstr "Rute herfra" #: data/ui/context-menu.ui:10 msgid "Add Intermediate Destination" msgstr "Tilføj mellemliggende destination" #: data/ui/context-menu.ui:14 msgid "Route to Here" msgstr "Rute hertil" #: data/ui/context-menu.ui:20 msgid "What's Here?" msgstr "Hvad er der her?" #: data/ui/context-menu.ui:24 msgid "Copy Location" msgstr "Kopiér placering" #: data/ui/context-menu.ui:28 msgid "Add to OpenStreetMap…" msgstr "Føj til OpenStreetMap …" #: data/ui/export-view-dialog.ui:7 msgid "Export view" msgstr "Eksportér visning" #: data/ui/export-view-dialog.ui:16 data/ui/send-to-dialog.ui:10 #: data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "_Annullér" #: data/ui/export-view-dialog.ui:26 msgid "_Export" msgstr "_Eksportér" #. Translators: This is a tooltip #: data/ui/favorite-list-row.ui:72 msgid "Remove Favorite" msgstr "Fjern foretrukken" #: data/ui/favorites-popover.ui:11 msgid "No Favorites" msgstr "Ingen foretrukne" #: data/ui/favorites-popover.ui:12 msgid "Add places to your favorites to get them listed here" msgstr "Tilføj steder til dine foretrukne for at få dem vist her" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:11 src/geoclue.js:106 msgid "Current Location" msgstr "Nuværende placering" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:19 msgid "Layers" msgstr "Lag" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:11 msgid "Print Route" msgstr "Udskriv rute" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:21 msgid "Favorites" msgstr "Foretrukne" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:30 msgid "Route Planner" msgstr "Ruteplanlægning" #: data/ui/help-overlay.ui:12 msgctxt "shortcut window" msgid "General" msgstr "Generelt" #: data/ui/help-overlay.ui:15 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "Vis genveje" #: data/ui/help-overlay.ui:21 msgctxt "shortcut window" msgid "Search" msgstr "Søg" #: data/ui/help-overlay.ui:27 msgctxt "shortcut window" msgid "Explore points-of-interest" msgstr "Udforsk interessepunkter" #: data/ui/help-overlay.ui:33 msgctxt "shortcut window" msgid "Show last search results" msgstr "Vis de sidste søgeresultater" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "Slå ruteplanlægning til/fra" #: data/ui/help-overlay.ui:45 msgctxt "shortcut window" msgid "Print route" msgstr "Udskriv rute" #: data/ui/help-overlay.ui:51 msgctxt "shortcut window" msgid "Quit" msgstr "Afslut" #: data/ui/help-overlay.ui:57 msgctxt "shortcut window" msgid "Open main menu" msgstr "Åbn hovedmenu" #: data/ui/help-overlay.ui:65 msgctxt "shortcut window" msgid "Map View" msgstr "Kortvisning" #: data/ui/help-overlay.ui:68 msgctxt "shortcut window" msgid "Zoom in" msgstr "Zoom ind" #: data/ui/help-overlay.ui:74 msgctxt "shortcut window" msgid "Zoom out" msgstr "Zoom ud" #: data/ui/help-overlay.ui:80 msgctxt "shortcut window" msgid "Rotate clockwise" msgstr "Rotér med uret" #: data/ui/help-overlay.ui:86 msgctxt "shortcut window" msgid "Rotate counter-clockwise" msgstr "Rotér mod uret" #: data/ui/help-overlay.ui:92 msgctxt "shortcut window" msgid "Reset rotation" msgstr "Nulstil rotation" #: data/ui/help-overlay.ui:98 msgctxt "shortcut window" msgid "Toggle scale" msgstr "Slå skala til/fra" #: data/ui/help-overlay.ui:104 msgctxt "shortcut window" msgid "Go to current location" msgstr "Gå til nuværende placering" #: data/ui/help-overlay.ui:114 msgctxt "shortcut window" msgid "Switch to street view" msgstr "Skift til gadevisning" #: data/ui/help-overlay.ui:121 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "Skift til luftfotovisning" #: data/ui/help-overlay.ui:127 msgctxt "shortcut window" msgid "Open shape layer" msgstr "Åbn formlag" #: data/ui/layers-popover.ui:7 msgid "Show Scale" msgstr "Vis skala" #: data/ui/layers-popover.ui:16 msgid "Enable Experimental Map" msgstr "Aktivér eksperimentelt kort" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:21 msgid "Open Shape Layer…" msgstr "Åbn formlag …" #: data/ui/main-window.ui:8 msgid "Set up OpenStreetMap Account…" msgstr "Opret OpenStreetMap-konto …" #: data/ui/main-window.ui:12 msgid "Export as Image…" msgstr "Eksportér som billede …" #: data/ui/main-window.ui:17 msgid "_Keyboard Shortcuts" msgstr "_Tastaturgenveje" #: data/ui/main-window.ui:22 msgid "About Maps" msgstr "Om Kort" #: data/ui/main-window.ui:48 msgid "Main Menu" msgstr "Hovedmenu" #: data/ui/osm-account-dialog.ui:5 msgid "OpenStreetMap Account" msgstr "OpenStreetMap-konto" #: data/ui/osm-account-dialog.ui:31 msgid "Sign In To Edit Maps" msgstr "Log ind for at redigere kort" #: data/ui/osm-account-dialog.ui:32 msgid "Help to improve the map, using an OpenStreetMap account." msgstr "Hjælp med at forbedre kortet med en OpenStreetMap-konto." #: data/ui/osm-account-dialog.ui:36 msgid "Sign In" msgstr "Log ind" #: data/ui/osm-account-dialog.ui:59 msgid "Verification" msgstr "Godkendelse" #: data/ui/osm-account-dialog.ui:60 msgid "" "Copy the verification code shown when authorizing access in the browser." msgstr "" "Kopiér godkendelseskoden, der vises ved godkendelse af adgang i browseren" #: data/ui/osm-account-dialog.ui:69 msgid "Verification Code" msgstr "Godkendelseskode" #: data/ui/osm-account-dialog.ui:75 msgid "Verify" msgstr "Godkend" #: data/ui/osm-account-dialog.ui:110 msgid "Signed In" msgstr "Logget ind" #: data/ui/osm-account-dialog.ui:111 msgid "Your OpenStreetMap account is active." msgstr "Din OpenStreetMap-konto er aktiv." #: data/ui/osm-account-dialog.ui:129 msgid "Sign Out" msgstr "Log ud" #: data/ui/osm-edit-address.ui:11 msgid "Street" msgstr "Gade" #: data/ui/osm-edit-address.ui:22 msgid "House number" msgstr "Husnummer" #: data/ui/osm-edit-address.ui:33 msgid "Postal code" msgstr "Postnummer" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:44 msgid "City" msgstr "By" #: data/ui/osm-edit-dialog.ui:8 msgctxt "dialog title" msgid "Edit on OpenStreetMap" msgstr "Redigér på OpenStreetMap" #: data/ui/osm-edit-dialog.ui:57 msgid "Type" msgstr "Type" # Velsagtens by, postkode eller senest brugte jf. omkringstående #: data/ui/osm-edit-dialog.ui:79 msgid "None" msgstr "Ingen" #: data/ui/osm-edit-dialog.ui:108 msgid "Add Field" msgstr "Tilføj felt" #: data/ui/osm-edit-dialog.ui:130 msgid "Comment" msgstr "Kommentar" #: data/ui/osm-edit-dialog.ui:158 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "Kortændringer vil være synlige på alle kort, der\n" "bruger data fra OpenStreetMap." #: data/ui/osm-edit-dialog.ui:186 msgid "Recently Used" msgstr "Senest brugte" #: data/ui/osm-edit-dialog.ui:225 src/mapView.js:671 msgid "Cancel" msgstr "Annullér" #: data/ui/osm-edit-dialog.ui:238 src/osmEditDialog.js:531 msgid "Next" msgstr "Næste" #: data/ui/osm-edit-wikipedia.ui:8 msgid "Article" msgstr "Artikel" #: data/ui/osm-edit-wikipedia.ui:21 msgid "Wikidata tag" msgstr "Wikidata-mærke" #: data/ui/osm-edit-wikipedia.ui:32 msgid "Load Wikidata tag for article" msgstr "Indlæs Wikidata-mærket til artiklen" #: data/ui/place-popover.ui:23 src/searchBar.js:55 msgid "Explore Nearby Places" msgstr "Udforsk steder i nærheden" #: data/ui/place-popover.ui:82 src/application.js:277 msgid "No results found" msgstr "Ingen resultater fundet" #: data/ui/place-popover.ui:92 src/application.js:255 msgid "An error has occurred" msgstr "Der opstod en fejl" #. Translators: This is a tooltip #: data/ui/route-entry.ui:12 msgid "Change Route Order" msgstr "Ændr ruterækkefølge" #: data/ui/send-to-dialog.ui:7 msgid "Open Location" msgstr "Åbn placering" #: data/ui/send-to-dialog.ui:64 msgid "Copy" msgstr "Kopiér" #: data/ui/send-to-dialog.ui:70 msgid "Send To…" msgstr "Send til …" #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:62 msgid "Open Shape Layer" msgstr "Åbn formlag" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "_Åbn" # velsagtens af lag eller rute #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:32 msgid "Toggle visible" msgstr "Slå synlighed til/fra" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:44 msgid "Remove Shape Layer" msgstr "Fjern formlag" #: data/ui/sidebar.ui:207 msgid "Route search by GraphHopper" msgstr "Rutesøgning med GraphHopper" #: data/ui/sidebar.ui:272 msgid "" "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of " "transportation,\n" "e.g. a national provider might not include airlines, and a local provider " "could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" "Rejseplaner for offentlig transport tilbydes af tredjepartstjenester.\n" "\n" "GNOME kan ikke garantere, at de viste ruter og køreplaner er korrekte.\n" "Bemærk, at nogle udbydere måske ikke medtager alle mulige former for " "transport,\n" "f.eks. har en national udbyder måske ikke fly med, og en lokal udbyder har " "måske\n" "ikke regionale tog med.\n" "Viste navne og mærker skal betragtes som registrerede varemærker, når dette " "er muligt." #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:98 msgid "Hide intermediate stops and information" msgstr "Skjul mellemliggende stop og oplysninger" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:156 msgid "Show intermediate stops and information" msgstr "Vis mellemliggende stop og oplysninger" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:16 msgid "Leave Now" msgstr "Tag afsted nu" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:17 msgid "Leave By" msgstr "Afgangstidspunkt" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:18 msgid "Arrive By" msgstr "Ankomsttidspunkt" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:85 msgid "Show" msgstr "Vis" #: data/ui/transit-options-panel.ui:95 msgid "Buses" msgstr "Busser" #: data/ui/transit-options-panel.ui:101 msgid "Trams" msgstr "Sporvogne" #: data/ui/transit-options-panel.ui:107 msgid "Trains" msgstr "Tog" #: data/ui/transit-options-panel.ui:113 msgid "Subway" msgstr "Metro" #: data/ui/transit-options-panel.ui:119 msgid "Ferries" msgstr "Færger" #: data/ui/transit-options-panel.ui:125 msgid "Airplanes" msgstr "Fly" #. Translators: This is a tooltip #: data/ui/place-bar.ui:33 data/ui/place-buttons.ui:27 msgid "Share Location" msgstr "Del placering" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:11 msgid "Add to new route" msgstr "Føj til ny rute" #. Translators: This is the button to find a route to a place #: data/ui/place-buttons.ui:15 msgid "Directions" msgstr "Rutevejledning" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:36 msgid "Mark as Favorite" msgstr "Markér som foretrukken" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:44 msgid "Edit on OpenStreetMap" msgstr "Redigér på OpenStreetMap" #. Translators: This is a tooltip #: data/ui/place-view.ui:52 msgid "Share location" msgstr "Del placering" #: data/ui/poi-category-goback-row.ui:22 msgid "Back to Main Categories" msgstr "Tilbage til hovedkategorier" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:19 msgid "Reset Rotation" msgstr "Nulstil rotation" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:32 msgid "Zoom Out" msgstr "Zoom ud" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:43 src/mapView.js:1246 msgid "Zoom In" msgstr "Zoom ind" #: lib/maps-file-data-source.c:262 lib/maps-file-data-source.c:338 #: lib/maps-file-data-source.c:418 msgid "Failed to find tile structure in directory" msgstr "Kunne ikke finde flisestruktur i mappe" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "Kunne ikke fortolke XML-dokument" #: lib/maps-osm.c:250 lib/maps-osm.c:403 msgid "Missing required attributes" msgstr "Mangler nødvendige attributter" #: lib/maps-osm.c:451 lib/maps-osm.c:494 msgid "Could not find OSM element" msgstr "Kunne ikke finde OSM-element" #: lib/maps-osm.c:508 msgid "Could not find user element" msgstr "Kunne ikke finde brugerelement" #: src/application.js:78 msgid "A path to a local tiles directory structure" msgstr "En sti til en lokal flisemappestruktur" #: src/application.js:84 msgid "Tile size for local tiles directory" msgstr "Flisestørrelse til lokal flisemappe" #: src/application.js:88 msgid "Show the version of the program" msgstr "Vis programmets version" #: src/application.js:94 msgid "Search for places" msgstr "Søg efter steder" #: src/application.js:105 src/application.js:106 msgid "[FILE…|URI]" msgstr "[FIL…|URI]" #: src/application.js:284 #, javascript-format msgid "Invalid maps: URI: %s" msgstr "Ugyldige kort: URI: %s" #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:75 #, javascript-format msgid "Maps at %f, %f.png" msgstr "Kort på %f, %f.png" #: src/exportViewDialog.js:174 msgid "Unable to export view" msgstr "Kan ikke eksportere visning" #: src/favoriteListRow.js:42 msgid "Favorite removed" msgstr "Foretrukken fjernet" #: src/favoriteListRow.js:43 msgid "Undo" msgstr "Fortryd" #: src/geoJSONSource.js:73 msgid "invalid coordinate" msgstr "ugyldig koordinat" #: src/geoJSONSource.js:126 src/geoJSONSource.js:166 src/geoJSONSource.js:181 msgid "parse error" msgstr "fortolkerfejl" #: src/geoJSONSource.js:160 msgid "unknown geometry" msgstr "ukendt geometri" #: src/graphHopper.js:101 src/transitPlan.js:175 msgid "Route request failed." msgstr "Ruteforespørgsel fejlede." #: src/graphHopper.js:108 src/transitPlan.js:167 msgid "No route found." msgstr "Ingen rute fundet." #: src/graphHopper.js:195 src/transitplugins/openTripPlanner.js:1163 msgid "Start!" msgstr "Start!" #: src/mainWindow.js:59 msgid "All Layer Files" msgstr "Alle lagfiler" #: src/mainWindow.js:522 msgid "Failed to connect to location service" msgstr "Kunne ikke forbinde til lokaliseringstjeneste" #: src/mainWindow.js:527 msgid "Turn on location services" msgstr "Slå lokaliseringstjenster til" #: src/mainWindow.js:528 msgid "Location Settings" msgstr "Lokaliseringsindstillinger" #: src/mainWindow.js:645 msgid "translator-credits" msgstr "" "Kris Thomsen\n" "Kenneth Nielsen\n" "scootergrisen\n" "Ask Hjorth Larsen\n" "Alan Mortensen\n" "\n" "Dansk-gruppen\n" "Websted http://dansk-gruppen.dk\n" "E-mail " #: src/mainWindow.js:649 msgid "Copyright © 2011 – 2023 Red Hat, Inc. and The GNOME Maps authors" msgstr "Ophavsret © 2011 – 2023 Red Hat, Inc. og udviklerne af GNOME Kort" #: src/mainWindow.js:665 #, javascript-format msgid "Map data by %s and contributors" msgstr "Kortdata af %s og bidragydere" #: src/mainWindow.js:666 msgid "Map Data Provider" msgstr "Leverandør af kortdata" #: src/mainWindow.js:678 msgid "Map Tile Provider" msgstr "Leverandør af kortfelter" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:686 #, javascript-format msgid "Map tiles provided by %s" msgstr "Kortfelter leveret af %s" #: src/mainWindow.js:716 msgid "Search Provider" msgstr "Leverandør af søgninger" #: src/mainWindow.js:719 #, javascript-format msgid "Search provided by %s using %s" msgstr "Søgning leveret af %s med %s" #: src/mapView.js:645 src/mapView.js:710 msgid "Failed to open layer" msgstr "Kunne ikke åbne lag" #: src/mapView.js:664 msgid "Do you want to continue?" msgstr "Vil du fortsætte?" #: src/mapView.js:665 #, javascript-format msgid "" "You are about to open files with a total size of %s MB. This could take some " "time to load" msgstr "" "Du er ved at åbne filer med en samlet størrelse på %s MB. Det kan tage noget " "tid at indlæse" #: src/mapView.js:672 src/transitplugins/openTripPlanner.js:1239 #: src/transitplugins/openTripPlanner2.js:267 msgid "Continue" msgstr "Fortsæt" #: src/mapView.js:704 msgid "File type is not supported" msgstr "Filtypen understøttes ikke" #: src/mapView.js:741 msgid "Failed to open GeoURI" msgstr "Kunne ikke åbne GeoURI" #: src/mapView.js:1205 msgid "Nothing found here!" msgstr "Intet fundet her!" #: src/mapView.js:1245 msgid "Zoom in to add location" msgstr "Zoom ind for at tilføje placering" #: src/mapView.js:1266 msgid "Location was added in OpenStreetMap" msgstr "Placering blev tilføjet i OpenStreetMap" #. switch back to the sign-in view, and show a toast indicating #. that verification failed #: src/osmAccountDialog.js:134 msgid "The verification code didn’t match, please try again." msgstr "Godkendelseskoden var ikke korrekt. Prøv venligst igen." #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:335 msgid "Incorrect user name or password" msgstr "Forkert brugernavn eller adgangskode" # Succes er et lidt stærkere ord på dansk end på engelsk. Har vi noget mere passende? #: src/osmConnection.js:337 msgid "Success" msgstr "Succes" #: src/osmConnection.js:339 msgid "Bad request" msgstr "Ugyldig forespørgsel" #: src/osmConnection.js:341 msgid "Object not found" msgstr "Objekt ikke fundet" #: src/osmConnection.js:343 msgid "Conflict, someone else has just modified the object" msgstr "Konflikt! En anden har netop ændret objektet" #: src/osmConnection.js:345 msgid "Object has been deleted" msgstr "Objektet er blevet slettet" # A way is an ordered list of nodes which normally also has at least one tag or is included within a Relation # # http://wiki.openstreetmap.org/wiki/Way #: src/osmConnection.js:347 msgid "Way or relation refers to non-existing children" msgstr "Way eller relation refererer til underelementer som ikke findes" #: src/osmEditDialog.js:106 msgid "Name" msgstr "Navn" #: src/osmEditDialog.js:109 msgid "The official name. This is typically what appears on signs." msgstr "Det officielle navn. Dette er typisk hvad der står på et skilt." #: src/osmEditDialog.js:112 msgid "Address" msgstr "Adresse" #: src/osmEditDialog.js:120 src/placeView.js:275 msgid "Website" msgstr "Webside" #: src/osmEditDialog.js:124 msgid "This is not a valid URL. Make sure to include http:// or https://." msgstr "Dette er ikke en gyldig URL. Husk at medtage http:// eller https://." #: src/osmEditDialog.js:125 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" "Den officielle webside. Prøv at bruge den mest grundlæggende form, dvs. " "http://eksempel.dk i stedet for http://eksempel.dk/index.html." #: src/osmEditDialog.js:130 msgid "Phone" msgstr "Telefon" #: src/osmEditDialog.js:134 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" "Telefonnummer. Brug det internationale format som begynder med tegnet +. Vær " "opmærksom på lokale love om privatlivsbeskyttelse, især for private numre." #: src/osmEditDialog.js:139 src/placeView.js:308 msgid "Email" msgstr "E-mail" #: src/osmEditDialog.js:144 msgid "" "This is not a valid email address. Make sure to not include the mailto: " "protocol prefix." msgstr "" "Dette er ikke en gyldig e-mailadresse. Sørg for, at “mailto:” ikke medtages." #: src/osmEditDialog.js:145 msgid "" "Contact email address for inquiries. Add only email addresses that are " "intended to be publicly used." msgstr "" "E-mailadresse til forespørgsler. Tilføj kun e-mailadresser, som kan bruges " "offentligt." #. Translators: This is the text for the "Wikipedia" link at the end #. of summaries #: src/osmEditDialog.js:149 src/placeView.js:727 msgid "Wikipedia" msgstr "Wikipedia" #: src/osmEditDialog.js:156 src/placeView.js:399 msgid "Opening hours" msgstr "Åbningstider" #: src/osmEditDialog.js:161 msgid "See the link in the label for help on format." msgstr "Se linket i etiketten for at få hjælp om format." #. TODO: this is a bit of a work-around to re-interpret the population, #. * stored as a string into an integer to convert back to a locale- #. * formatted string. Ideally it should be kept as an integer value #. * in the Place class. But this will also need to be handled by the #. * PlaceStore, possible in a backwards-compatible way #. #: src/osmEditDialog.js:164 src/placeView.js:509 msgid "Population" msgstr "Befolkning" #: src/osmEditDialog.js:169 src/placeView.js:538 msgid "Altitude" msgstr "Højde" #: src/osmEditDialog.js:172 msgid "Elevation (height above sea level) of a point in meters." msgstr "Højde (over havoverfladen) af et punkt i meter." #: src/osmEditDialog.js:175 msgid "Wheelchair access" msgstr "Rullestolsadgang" #: src/osmEditDialog.js:178 src/osmEditDialog.js:187 src/osmEditDialog.js:198 #: src/osmEditDialog.js:233 msgid "Yes" msgstr "Ja" #: src/osmEditDialog.js:179 src/osmEditDialog.js:188 src/osmEditDialog.js:199 #: src/osmEditDialog.js:234 msgid "No" msgstr "Nej" #: src/osmEditDialog.js:180 msgid "Limited" msgstr "Begrænset" #: src/osmEditDialog.js:181 msgid "Designated" msgstr "Handicap" #: src/osmEditDialog.js:184 msgid "Internet access" msgstr "Internetadgang" # Angiver typen af netværksadgang som f.eks. en café udbyder #: src/osmEditDialog.js:189 msgid "Wi-Fi" msgstr "Trådløs" # Angiver typen af netværksadgang som f.eks. en café udbyder #: src/osmEditDialog.js:190 msgid "Wired" msgstr "Kabel" #: src/osmEditDialog.js:191 msgid "Terminal" msgstr "Terminal" #: src/osmEditDialog.js:192 msgid "Service" msgstr "Tjeneste" #: src/osmEditDialog.js:195 msgid "Takeout" msgstr "Mad ud af huset" #: src/osmEditDialog.js:200 msgid "Only" msgstr "Kun" #: src/osmEditDialog.js:203 msgid "Religion" msgstr "Religion" #: src/osmEditDialog.js:206 src/translations.js:286 msgid "Animism" msgstr "Animisme" #: src/osmEditDialog.js:207 msgid "Bahá’í" msgstr "Bahá’í" #: src/osmEditDialog.js:208 src/translations.js:288 msgid "Buddhism" msgstr "Buddhisme" #: src/osmEditDialog.js:209 src/translations.js:289 msgid "Caodaism" msgstr "Caodaisme" #: src/osmEditDialog.js:210 src/translations.js:290 msgid "Christianity" msgstr "Kristendom" #: src/osmEditDialog.js:211 src/translations.js:291 msgid "Confucianism" msgstr "Konfucianisme" #: src/osmEditDialog.js:212 src/translations.js:292 msgid "Hinduism" msgstr "Hinduisme" #: src/osmEditDialog.js:213 src/translations.js:293 msgid "Jainism" msgstr "Jainisme" #: src/osmEditDialog.js:214 src/translations.js:294 msgid "Judaism" msgstr "Jødedom" #: src/osmEditDialog.js:215 src/translations.js:295 msgid "Islam" msgstr "Islam" #: src/osmEditDialog.js:216 src/translations.js:296 msgid "Multiple Religions" msgstr "Flere religioner" #: src/osmEditDialog.js:217 src/translations.js:297 msgid "Paganism" msgstr "Paganisme" #: src/osmEditDialog.js:218 src/translations.js:298 msgid "Pastafarianism" msgstr "Pastafarianisme" #: src/osmEditDialog.js:219 src/translations.js:299 msgid "Scientology" msgstr "Scientology" #: src/osmEditDialog.js:220 src/translations.js:300 msgid "Shinto" msgstr "Shinto" #: src/osmEditDialog.js:221 src/translations.js:301 msgid "Sikhism" msgstr "Sikhisme" #: src/osmEditDialog.js:222 src/translations.js:302 msgid "Spiritualism" msgstr "Spiritualisme" #: src/osmEditDialog.js:223 src/translations.js:303 msgid "Taoism" msgstr "Taoisme" #: src/osmEditDialog.js:224 src/translations.js:304 msgid "Unitarian Universalism" msgstr "Unitær universalisme" #: src/osmEditDialog.js:225 src/translations.js:305 msgid "Voodoo" msgstr "Voodoo" #: src/osmEditDialog.js:226 src/translations.js:306 msgid "Yazidism" msgstr "Yazidisme" #: src/osmEditDialog.js:227 src/translations.js:307 msgid "Zoroastrianism" msgstr "Zoroastrianisme" #: src/osmEditDialog.js:230 src/poiCategories.js:176 msgid "Toilets" msgstr "Toiletter" #: src/osmEditDialog.js:237 msgid "Note" msgstr "Note" #: src/osmEditDialog.js:240 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" "Information der bruges til at give andre kortbrugere oplysninger om et " "element som ikke er åbenlyse, forfatterens hensigt med at oprette det, eller " "fif om yderligere forbedringer." #: src/osmEditDialog.js:339 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "Føj til OpenStreetMap" #: src/osmEditDialog.js:393 msgid "Select Type" msgstr "Vælg type" #: src/osmEditDialog.js:515 msgid "Done" msgstr "Færdig" #: src/osmEditDialog.js:818 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "" "Formatet bør inkludere sprogkoden og artiklens overskrift, f.eks. “da:" "Artikeloverskrift”." #: src/osmEditDialog.js:824 msgid "Use the reload button to load the Wikidata tag for the selected article" msgstr "" "Brug genindlæsningsknappen til at indlæse Wikidata-mærket for den valgte " "artikel" #: src/osmEditDialog.js:832 msgid "Couldn't find Wikidata tag for article" msgstr "Kunne ikke finde Wikidata-mærket til artiklen" #: src/photonUtils.js:118 msgid "Unnamed place" msgstr "Unavngivet placering" #: src/placeEntry.js:274 msgid "Failed to parse Geo URI" msgstr "Fortolkning af Geo-URI mislykkedes" #: src/placeEntry.js:286 msgid "Failed to parse Maps URI" msgstr "Kunne ikke fortolke Maps-URI" #. 300 ft (300 * 12 * 0.0254 m) #. #. * Translators: This a format string for showing a distance to a place #. * is lower than a "quite short" distance. #. * The "less than" symbol can be substituded with an appropriate one, if #. * needed (e.g. using the correct direction, or alternative symbol). #. * The %s should be kept, and is substituted with a label representing the #. * short distance. The \u2009 (thin space) could also be adjusted if needed #: src/placeListRow.js:46 #, javascript-format msgctxt "short distance format string" msgid "< %s" msgstr "< %s" #: src/placeView.js:263 msgid "Coordinates" msgstr "Koordinater" #: src/placeView.js:267 msgid "Accuracy" msgstr "Nøjagtighed" #. Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) #: src/placeView.js:270 #, javascript-format msgid "Accuracy: %s" msgstr "Nøjagtighed: %s" #. since the phone numbers are typically always rendered #. * left-to-right, insert an explicit LRM char to avoid issues #. * with phone numbers in international format starting with a + #. * which is considered a "weak" character to determine Unicode #. * text direction #. #: src/placeView.js:289 msgid "Phone number" msgstr "Telefonnummer" #. If a reference to a named floor (named or symbolic) exists #. * refer to it directly. #. #. Translators: #. * This is a reference to named building floor, using a label #. * or a code, as "displayed in the elevator" #. #: src/placeView.js:323 src/placeView.js:362 msgid "Floor" msgstr "Etage" #: src/placeView.js:325 #, javascript-format msgid "Floor %s" msgstr "Etage %s" #: src/placeView.js:337 msgid "At ground level" msgstr "Stueetageniveau" #. Translators: #. * This is a reference to a number of floors above #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:346 #, javascript-format msgid "%s floor above ground level" msgid_plural "%s floors above ground level" msgstr[0] "%s etage over stueetage" msgstr[1] "%s etager over stueetage" #. Translators: #. * This is a reference to a number of floors below #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:357 #, javascript-format msgid "%s floor below ground level" msgid_plural "%s floors below ground level" msgstr[0] "%s etage under stueetage" msgstr[1] "%s etager under stueetage" #. Translators: #. * The establishment offers customers to purchase meals #. * (or similar) to be consumed elsewhere #. #: src/placeView.js:375 msgid "Offers takeout" msgstr "Tilbyder mad ud af huset" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed on-premise. #. #: src/placeView.js:383 msgid "Does not offer takeout" msgstr "Tilbyder ikke mad ud af huset" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed elsewhere. E.g. #. * there is no seating on-premise for eating/drinking #. #: src/placeView.js:392 msgid "Only offers takeout" msgstr "Tilbyder kun mad ud af huset" #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/placeView.js:409 msgid "Public internet access" msgstr "Offentlig internetadgang" #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/placeView.js:418 msgid "No internet access" msgstr "Ingen internetadgang" #. Translators: #. * This means a WLAN Hotspot, also known as wireless, wifi or Wi-Fi. #. #: src/placeView.js:426 msgid "Public Wi-Fi" msgstr "Offentlig wi-fi" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/placeView.js:434 msgid "Wired internet access" msgstr "Kablet internetadgang" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/placeView.js:442 msgid "Computers available for use" msgstr "Computere tilgængelige til brug" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/placeView.js:450 msgid "Internet assistance available" msgstr "Internetassistance tilgængelig" #: src/placeView.js:456 msgid "No toilets available" msgstr "Toiletter ikke tilgængelige" #: src/placeView.js:459 msgid "Toilets available" msgstr "Toiletter tilgængelige" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #: src/placeView.js:468 msgid "Wheelchair accessible" msgstr "Adgang med kørestol" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/placeView.js:478 msgid "Limited wheelchair accessibility" msgstr "Begrænset adgang med kørestol" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #: src/placeView.js:487 msgid "Not wheelchair accessible" msgstr "Ingen adgang med kørestol" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/placeView.js:497 msgid "Designated for wheelchair users" msgstr "Beregnet til kørestolsbrugere" #. * #. * Translators: this is a label indicating an altitude below #. * sea level, where the %s placeholder is the altitude relative #. * to mean sea level in the "negative direction" #. #: src/placeView.js:528 #, javascript-format msgid "%s below sea level" msgstr "%s under havoverfladen" #. * #. * Translators: this indicates a place is located at (or very #. * close to) mean sea level #. #: src/placeView.js:535 msgid "At sea level" msgstr "Tæt på havoverfladen" #: src/placeView.js:544 msgid "Religion:" msgstr "Religion:" #: src/place.js:570 msgid "Place not found in OpenStreetMap" msgstr "Placering ikke fundet i OpenStreetMap" #: src/place.js:577 msgid "Coordinates in URL are not valid" msgstr "Koordinater i URL er ikke gyldige" #: src/place.js:586 msgid "URL is not supported" msgstr "URL understøttes ikke" #: src/poiCategories.js:132 msgid "Amenities" msgstr "Faciliteter" #: src/poiCategories.js:135 msgid "ATMs" msgstr "Hæveautomat" #: src/poiCategories.js:141 msgid "Post Boxes" msgstr "Postkasser" #: src/poiCategories.js:147 msgid "Post Offices" msgstr "Postkontorer" #: src/poiCategories.js:153 msgid "Police" msgstr "Politi" #: src/poiCategories.js:159 msgid "Libraries" msgstr "Biblioteker" #: src/poiCategories.js:165 msgid "Pharmacies" msgstr "Apoteker" #: src/poiCategories.js:171 msgid "Recycling" msgstr "Genanvendelse" #: src/poiCategories.js:182 msgid "Wheelchair-accessible Toilets" msgstr "Handicapvenlige toiletter" #: src/poiCategories.js:188 msgid "Baggage Lockers" msgstr "Bagagebokse" #: src/poiCategories.js:196 msgid "Eating & Drinking" msgstr "Spise og drikke" #: src/poiCategories.js:200 msgid "Restaurants" msgstr "Restauranter" #: src/poiCategories.js:205 msgid "Fast Food" msgstr "Fastfood" #: src/poiCategories.js:210 msgid "Food Courts" msgstr "Madmarkeder" #: src/poiCategories.js:215 msgid "Pubs" msgstr "Værtshuse" #: src/poiCategories.js:221 msgid "Bars" msgstr "Barer" #: src/poiCategories.js:226 msgid "Cafes" msgstr "Caféer" #: src/poiCategories.js:231 msgid "Ice Cream" msgstr "Is" #: src/poiCategories.js:236 msgid "Food, Snacks, and Beverage Machines" msgstr "Automater med mad, snacks og drikkevarer" #: src/poiCategories.js:244 msgid "Shopping" msgstr "Indkøb" #: src/poiCategories.js:248 msgid "Supermarkets" msgstr "Supermarkeder" #: src/poiCategories.js:254 msgid "Convenience Stores" msgstr "Dagligvarebutikker" #: src/poiCategories.js:259 msgid "Shopping Malls" msgstr "Indkøbscentre" #: src/poiCategories.js:265 msgid "Clothes" msgstr "Tøj" #: src/poiCategories.js:271 msgid "Shoes" msgstr "Sko" #: src/poiCategories.js:276 msgid "Electronics" msgstr "Elektronik" #: src/poiCategories.js:282 msgid "Alcohol" msgstr "Alkohol" #: src/poiCategories.js:288 msgid "Bakeries" msgstr "Bagerier" #: src/poiCategories.js:294 msgid "Flowers" msgstr "Blomster" #: src/poiCategories.js:301 msgid "Transportation" msgstr "Transport" #: src/poiCategories.js:305 msgid "Bus & Tram Stops" msgstr "Bus- og sporvognsstoppesteder" #: src/poiCategories.js:313 msgid "Train & Subway Stations" msgstr "Tog- og undergrundsstationer" #: src/poiCategories.js:321 msgid "Tickets" msgstr "Billetter" #: src/poiCategories.js:329 msgid "Parking" msgstr "Parkering" #: src/poiCategories.js:334 msgid "Bicycle Parking" msgstr "Cykelparkering" #: src/poiCategories.js:339 msgid "Bicycle Rental" msgstr "Cykeludlejning" #: src/poiCategories.js:344 msgid "Car Rental" msgstr "Biludlejning" #: src/poiCategories.js:349 msgid "Fuel" msgstr "Brændstof" #: src/poiCategories.js:354 msgid "EV Charging" msgstr "Opladning af elbil" #: src/poiCategories.js:362 msgid "Healthcare" msgstr "Sundhedspleje" #: src/poiCategories.js:366 msgid "Clinics" msgstr "Klinikker" #: src/poiCategories.js:372 msgid "Hospitals" msgstr "Hospitaler" #: src/poiCategories.js:378 msgid "Dentists" msgstr "Tandlæger" #: src/poiCategories.js:386 msgid "Accommodation" msgstr "Indkvartering" #: src/poiCategories.js:390 msgid "Hotels" msgstr "Hoteller" #: src/poiCategories.js:395 msgid "Hostels" msgstr "Vandrehjem" #: src/poiCategories.js:400 msgid "Bed & Breakfast" msgstr "Bed & breakfast" #: src/poiCategories.js:405 msgid "Campings" msgstr "Campering" #: src/poiCategories.js:412 msgid "Recreation" msgstr "Rekreation" #: src/poiCategories.js:416 msgid "Parks" msgstr "Parker" #: src/poiCategories.js:421 msgid "Playgrounds" msgstr "Legepladser" #: src/poiCategories.js:425 msgid "Beaches" msgstr "Strande" #: src/poiCategories.js:430 msgid "Nature Reserves" msgstr "Naturparker" #: src/poiCategories.js:436 msgid "Theme Parks" msgstr "Forlystelsesparker" #: src/poiCategories.js:441 msgid "Theaters" msgstr "Teatre" #: src/poiCategories.js:447 msgid "Movie Theaters" msgstr "Biografer" #: src/poiCategories.js:453 msgid "Night Clubs" msgstr "Natklubber" #: src/poiCategories.js:460 msgid "Tourism" msgstr "Turisme" #: src/poiCategories.js:464 msgid "Museums" msgstr "Museer" #: src/poiCategories.js:470 msgid "Attractions" msgstr "Seværdigheder" #: src/poiCategories.js:475 msgid "Artworks" msgstr "Kunst" #: src/poiCategories.js:480 msgid "Tourist Information" msgstr "Turistinformation" #: src/poiCategories.js:487 msgid "Sports" msgstr "Sport" #: src/poiCategories.js:491 msgid "Gyms" msgstr "Fitnesscentre" #: src/poiCategories.js:497 msgid "Outdoor Gyms" msgstr "Udendørs fitnesscentre" #: src/poiCategories.js:503 msgid "Golf Courses" msgstr "Golfbaner" #: src/printLayout.js:350 #, javascript-format msgid "From %s to %s" msgstr "Fra %s til %s" #: src/printOperation.js:49 msgid "Loading map tiles for printing" msgstr "Indlæser kortfliser til udskrift" #: src/printOperation.js:50 msgid "You can abort printing if this takes too long" msgstr "Du kan afbryde udskriften hvis dette varer for længe" #: src/printOperation.js:52 msgid "Abort printing" msgstr "Afbryd udskrift" #. Translators: this is add via location tooltip #: src/routeEntry.js:60 msgid "Add via location" msgstr "Tilføj via sted" #. Translators: this is remove via location tooltip #: src/routeEntry.js:70 msgid "Remove via location" msgstr "Fjern via sted" #. Translators: this is reverse route tooltip #: src/routeEntry.js:76 msgid "Reverse route" msgstr "Vend ruten om" #: src/searchBar.js:45 msgid "Search" msgstr "Søg" #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:84 #, javascript-format msgid "Add %s to %s" msgstr "Tilføj %s til %s" #: src/sendToDialog.js:181 msgid "Failed to open URI" msgstr "Kunne ikke åbne URI" #: src/sendToDialog.js:246 #, javascript-format msgid "Open with %s" msgstr "Åbn med %s" #: src/shapeLayer.js:109 msgid "failed to load file" msgstr "kunne ikke indlæse fil" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:328 #, javascript-format msgid "Estimated time: %s" msgstr "Anslået tid: %s" #: src/sidebar.js:398 #, javascript-format msgid "Itineraries provided by %s" msgstr "Rejseplaner leveret af %s" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:39 #, javascript-format msgid "Start at %s" msgstr "Starttidspunkt %s" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:45 src/transitplugins/openTripPlanner2.js:236 msgid "Start" msgstr "Start" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:63 #, javascript-format msgid "Walk %s" msgstr "Gå %s" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:77 #, javascript-format msgid "Arrive at %s" msgstr "Ankomst %s" #: src/transit.js:79 src/transitplugins/openTripPlanner.js:1176 #: src/transitplugins/openTripPlanner2.js:255 msgid "Arrive" msgstr "Ankomst" #: src/transitLegRow.js:69 msgid "Show walking instructions" msgstr "Vis gangrute" #: src/transitLegRow.js:70 msgid "Hide walking instructions" msgstr "Skjul gangrute" #: src/transitMoreRow.js:37 msgid "Load earlier alternatives" msgstr "Indlæs tidligere alternative ruter" #: src/transitMoreRow.js:39 msgid "Load later alternatives" msgstr "Indlæs senere alternative ruter" #: src/transitMoreRow.js:52 msgid "No earlier alternatives found." msgstr "Ingen tidligere alternativer fundet." #: src/transitMoreRow.js:54 msgid "No later alternatives found." msgstr "Ingen senere alternativer fundet." #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:138 msgctxt "month-day-date" msgid "%b %e" msgstr "%e. %b" #: src/transitPlan.js:171 msgid "No timetable data found for this route." msgstr "Ingen køreplan fundet for denne rute." #: src/transitPlan.js:179 msgid "No provider found for this route." msgstr "Ingen udbyder fundet for denne rute." #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:300 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:331 #, javascript-format msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "%s minut" msgstr[1] "%s minutter" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:343 #, javascript-format msgid "%s hour" msgid_plural "%s hours" msgstr[0] "%s time" msgstr[1] "%s timer" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:351 #, javascript-format msgid "%s:%s hour" msgid_plural "%s:%s hours" msgstr[0] "%s:%s time" msgstr[1] "%s:%s timer" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:744 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: src/translations.js:55 msgid "Around the clock" msgstr "Døgnet rundt" #: src/translations.js:57 msgid "From sunrise to sunset" msgstr "Fra solopgang til solnedgang" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:123 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s,%s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:137 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s,%s,%s" #: src/translations.js:156 msgid "Every day" msgstr "Hver dag" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:168 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:179 msgid "Public holidays" msgstr "Helligdage" #: src/translations.js:181 msgid "School holidays" msgstr "Skoleferier" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:221 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" # hvorfor ikke closed? #: src/translations.js:235 msgid "not open" msgstr "ikke åbent" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:250 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:287 msgid "Bahá'í" msgstr "Bahá’í" #. Translators: Accuracy of user location information #: src/utils.js:248 msgid "Unknown" msgstr "Ukendt" #. Translators: Accuracy of user location information #: src/utils.js:251 msgid "Exact" msgstr "Præcis" # h er symbolet for enheden time #. Translators: this is a duration with only hours, using #. * an abbreviation for hours, corresponding to 'h' in English #. #: src/utils.js:307 #, javascript-format msgid "%s h" msgstr "%s h" #. Translators: this is a duration with hours and minutes parts #. * using abbreviations for hours and minutes, corresponding to 'h' #. * and 'min' in English. The minutes has appropriate plural variations #. #: src/utils.js:313 #, javascript-format msgid "%s h %s min" msgid_plural "%s h %s min" msgstr[0] "%s h %s min" msgstr[1] "%s h %s min" #. Translators: this is a duration with minutes part #. * using abbreviation for minutes, corresponding to 'min' in English #. * with appropriate plural variations #. #: src/utils.js:320 #, javascript-format msgid "%s min" msgid_plural "%s min" msgstr[0] "%s min" msgstr[1] "%s min" #. Translators: this is a duration of less than one minute #. * with seconds using an abbreviation for seconds, corresponding to #. * 's' in English with appropriate plural forms #. #: src/utils.js:326 #, javascript-format msgid "%s s" msgid_plural "%s s" msgstr[0] "%s s" msgstr[1] "%s s" #. Translators: This is a distance measured in kilometers #: src/utils.js:337 #, javascript-format msgid "%s km" msgstr "%s km" #. Translators: This is a distance measured in meters #: src/utils.js:340 #, javascript-format msgid "%s m" msgstr "%s m" #. Translators: This is a distance measured in miles #: src/utils.js:348 #, javascript-format msgid "%s mi" msgstr "%s miles" #. Translators: This is a distance measured in feet #: src/utils.js:351 #, javascript-format msgid "%s ft" msgstr "%s fod" # Formoder der er tale om, at man ikke kan angive, hvornår man senest vil ankomme #: src/transitplugins/goMetro.js:61 msgid "This plugin doesn't support latest arrival" msgstr "Dette udvidelsesmodul understøtter ikke senest ankomsttidspunkt" #: src/transitplugins/openTripPlanner.js:1237 #: src/transitplugins/openTripPlanner2.js:266 #, javascript-format msgid "Continue on %s" msgstr "Fortsæt på %s" #: src/transitplugins/openTripPlanner.js:1242 #: src/transitplugins/openTripPlanner2.js:270 #, javascript-format msgid "Turn left on %s" msgstr "Drej til venstre på %s" #: src/transitplugins/openTripPlanner.js:1244 #: src/transitplugins/openTripPlanner2.js:271 msgid "Turn left" msgstr "Drej til venstre" #: src/transitplugins/openTripPlanner.js:1247 #: src/transitplugins/openTripPlanner2.js:275 #, javascript-format msgid "Turn slightly left on %s" msgstr "Drej lidt til venstre på %s" #: src/transitplugins/openTripPlanner.js:1249 #: src/transitplugins/openTripPlanner2.js:276 msgid "Turn slightly left" msgstr "Drej lidt til venstre" #: src/transitplugins/openTripPlanner.js:1252 #: src/transitplugins/openTripPlanner2.js:280 #, javascript-format msgid "Turn sharp left on %s" msgstr "Drej skarpt til venstre på %s" #: src/transitplugins/openTripPlanner.js:1254 #: src/transitplugins/openTripPlanner2.js:281 msgid "Turn sharp left" msgstr "Drej skarpt til venstre" #: src/transitplugins/openTripPlanner.js:1257 #: src/transitplugins/openTripPlanner2.js:284 #, javascript-format msgid "Turn right on %s" msgstr "Drej til højre på %s" #: src/transitplugins/openTripPlanner.js:1259 #: src/transitplugins/openTripPlanner2.js:285 msgid "Turn right" msgstr "Drej til højre" #: src/transitplugins/openTripPlanner.js:1262 #: src/transitplugins/openTripPlanner2.js:289 #, javascript-format msgid "Turn slightly right on %s" msgstr "Drej lidt til højre på %s" #: src/transitplugins/openTripPlanner.js:1264 #: src/transitplugins/openTripPlanner2.js:290 msgid "Turn slightly right" msgstr "Drej lidt til højre" #: src/transitplugins/openTripPlanner.js:1267 #: src/transitplugins/openTripPlanner2.js:294 #, javascript-format msgid "Turn sharp right on %s" msgstr "Drej skarpt til højre på %s" #: src/transitplugins/openTripPlanner.js:1269 #: src/transitplugins/openTripPlanner2.js:295 msgid "Turn sharp right" msgstr "Drej skarpt til højre" #: src/transitplugins/openTripPlanner.js:1275 #: src/transitplugins/openTripPlanner2.js:302 #, javascript-format msgid "At the roundabout, take exit %s" msgstr "Tag %s. vej i rundkørslen" #: src/transitplugins/openTripPlanner.js:1277 #: src/transitplugins/openTripPlanner2.js:305 #, javascript-format msgid "At the roundabout, take exit to %s" msgstr "Drej fra mod %s i rundkørslen" #: src/transitplugins/openTripPlanner.js:1279 #: src/transitplugins/openTripPlanner2.js:307 msgid "Take the roundabout" msgstr "Kør ind i rundkørslen" # . er for at markere ordenstal og ikke et afsluttende punktum #: src/transitplugins/openTripPlanner.js:1283 #: src/transitplugins/openTripPlanner2.js:315 #, javascript-format msgid "Take the elevator and get off at %s" msgstr "Tag elevatoren og stå af på %s." #: src/transitplugins/openTripPlanner.js:1285 #: src/transitplugins/openTripPlanner2.js:316 msgid "Take the elevator" msgstr "Tag elevatoren" #: src/transitplugins/openTripPlanner.js:1289 #: src/transitplugins/openTripPlanner2.js:320 #, javascript-format msgid "Make a left u-turn onto %s" msgstr "Lav en u-vending til venstre ind på %s" #: src/transitplugins/openTripPlanner.js:1291 #: src/transitplugins/openTripPlanner2.js:321 msgid "Make a left u-turn" msgstr "Lav en u-vending til venstre" #: src/transitplugins/openTripPlanner.js:1294 #: src/transitplugins/openTripPlanner2.js:325 #, javascript-format msgid "Make a right u-turn onto %s" msgstr "Lav en u-vending til højre ind på %s" #: src/transitplugins/openTripPlanner.js:1296 #: src/transitplugins/openTripPlanner2.js:326 msgid "Make a right u-turn" msgstr "Lav en u-vending til højre" #~ msgid "Sign in to edit maps" #~ msgstr "" #~ "Log ind for at redigere kort" #~ msgid "" #~ "Sign in to authorize access in a web browser.\n" #~ "Then fill in the obtained verification code here in the next step." #~ msgstr "" #~ "Log ind for at godkende adgang i en webbrowser.\n" #~ "Indtast derefter den her opnåede godkendelseskode i det næste trin." #~ msgid "Signed In" #~ msgstr "Logget ind" #~ msgid "E-mail" #~ msgstr "E-mail" #~ msgid "Sign up" #~ msgstr "Tilmeld" #~ msgid "Filesystem is read only" #~ msgstr "Filsystemet er skrivebeskyttet" #~ msgid "You do not have permission to save there" #~ msgstr "Du har ikke tilladelse til at gemme der" #~ msgid "The directory does not exist" #~ msgstr "Mappen findes ikke" #~ msgid "No filename specified" #~ msgstr "Intet filnavn angivet" #~ msgid "" #~ "Location was added to the map, note that it may take a while before it " #~ "shows on the map and in search results." #~ msgstr "" #~ "Stedet blev føjet til kortet. Bemærk at det kan tage et stykke tid, før " #~ "det vises på kortet og i søgeresultaterne." #~ msgid "Takeaway" #~ msgstr "Takeaway" #~ msgid "Go to current location" #~ msgstr "Gå til nuværende placering" #~ msgid "Choose map type" #~ msgstr "Vælg korttype" #~ msgid "Zoom in" #~ msgstr "Zoom ind" #~ msgid "Drag to change order of the route" #~ msgstr "Træk for at ændre rækkefølge for ruten" #~ msgid "Foursquare check-in privacy setting" #~ msgstr "Privatlivsindstilling til at tjekke ind på Foursquare" #~ msgid "" #~ "Latest used Foursquare check-in privacy setting. Possible values are: " #~ "public, followers or private." #~ msgstr "" #~ "Sidst benyttede privatlivsindstilling til at tjekke ind på Foursquare. " #~ "Mulige værdier er: public, followers eller private." #~ msgid "Foursquare check-in Facebook broadcasting" #~ msgstr "Facebook-post af indtjekning på Foursquare" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a post in the " #~ "Facebook account associated with the Foursquare account." #~ msgstr "" #~ "Angiver om Foursquare skal poste din indtjekning som opdatering på " #~ "Facebook-kontoen, der er tilknyttet denne Foursquare-konto." #~ msgid "Foursquare check-in Twitter broadcasting" #~ msgstr "Twitter-post af indtjekning på Foursquare" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a tweet in the " #~ "Twitter account associated with the Foursquare account." #~ msgstr "" #~ "Angiver om Foursquare skal poste din indtjekning som tweet i Twitter-" #~ "kontoen, der er tilknyttet denne Foursquare-konto." #~ msgid "Use hybrid aerial tiles" #~ msgstr "Brug fliser til hybridluftfoto" #~ msgid "Whether aerial tiles should use hybrid style (with labels)." #~ msgstr "Hvorvidt luftfotofliser skal bruge hybrid stil (med etiketter)." #~ msgid "Visibility" #~ msgstr "Synlighed" #~ msgid "Post on Facebook" #~ msgstr "Post på Facebook" #~ msgid "Post on Twitter" #~ msgstr "Post på Twitter" #~ msgid "C_heck in" #~ msgstr "T_jek ind" #~ msgid "Public" #~ msgstr "Offentlig" #~ msgid "Private" #~ msgstr "Privat" #~ msgid "Include route and markers" #~ msgstr "Inkludér rute og markører" #~ msgid "Show Labels" #~ msgstr "Vis etiketter" #~ msgid "Maps is offline!" #~ msgstr "Kort er offline!" #~ msgid "" #~ "Maps need an active internet connection to function properly, but one " #~ "can’t be found." #~ msgstr "" #~ "Kort skal bruge en aktiv internetforbindelse for at fungere korrekt, men " #~ "der er ingen." #~ msgid "Check your connection and proxy settings." #~ msgstr "Kontrollér dine indstillinger for forbindelse og proxy." #~ msgid "Password" #~ msgstr "Adgangskode" #~ msgid "" #~ "Sorry, that didn’t work. Please try again, or visit\n" #~ "OpenStreetMap to reset your password." #~ msgstr "" #~ "Beklager - det fungerede ikke. Prøv venligst igen eller besøg\n" #~ "OpenStreetMap for at nulstille din adgangskode." #~ msgid "Check In…" #~ msgstr "Tjek ind …" #~ msgid "Ignore network availability" #~ msgstr "Ignorér hvorvidt netværket er tilgængeligt" #~ msgid "Select an account" #~ msgstr "Vælg en konto" #~ msgid "Loading" #~ msgstr "Indlæser" #~ msgid "Select a place" #~ msgstr "Vælg et sted" #~ msgid "" #~ "Maps cannot find the place to check in to with Foursquare. Please select " #~ "one from this list." #~ msgstr "" #~ "Kort kan ikke finde stedet, hvorpå der skal tjekkes ind med Foursquare. " #~ "Vælg venligst et fra listen." # Undgå problemer med forholdsord #~ msgid "Check in to %s" #~ msgstr "Tjek ind: %s" #~ msgid "Write an optional message to check in to %s." #~ msgstr "Skriv valgfrit en besked for at tjekke ind her: %s." #~ msgid "Cannot find “%s” in the social service" #~ msgstr "Kan ikke finde “%s” på den sociale tjeneste" # ?? #~ msgid "Cannot find a suitable place to check-in in this location" #~ msgstr "Kan ikke finde et passende sted at tjekke ind her" #~ msgid "" #~ "Credentials have expired, please open Online Accounts to sign in and " #~ "enable this account" #~ msgstr "" #~ "Akkreditiverne er udløbet; åbn venligst Onlinekonti for at logge ind og " #~ "slå denne konto til" #~ msgid "A map application for GNOME" #~ msgstr "Et kortprogram til GNOME" #~ msgid "GNOME Maps" #~ msgstr "GNOME Kort" #~ msgid "Night mode" #~ msgstr "Nattilstand" #~ msgid "Whether the application is in night mode." #~ msgstr "Hvorvidt programmet er i nattilstand." #~ msgid "Night Mode" #~ msgstr "Nattilstand" #~ msgid "" #~ "You can even search for specific types of locations, such as “Pubs near " #~ "Main Street, Boston” or “Hotels near Alexanderplatz, Berlin”." #~ msgstr "" #~ "Du kan endda søge efter bestemte typer af placeringer, såsom “Pubs near " #~ "Main Street, Boston” eller “Hotels near Alexanderplatz, Berlin” (Dansk " #~ "endnu ikke understøttet)." #~ msgid "Facebook check-in privacy setting" #~ msgstr "Privatlivsindstilling til at tjekke ind på Facebook" #~ msgid "" #~ "Latest used Facebook check-in privacy setting. Possible values are: " #~ "EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS or SELF." #~ msgstr "" #~ "Sidst benyttede privatlivsindstilling til at tjekke ind på Facebook. " #~ "Mulige værdier er: EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS og SELF." #~ msgid "Everyone" #~ msgstr "Alle" #~ msgid "Friends of friends" #~ msgstr "Venners venner" #~ msgid "Just friends" #~ msgstr "Kun venner" #~ msgid "Just me" #~ msgstr "Kun mig" #~ msgid "Find a Route" #~ msgstr "Find en rute" #~ msgid "Check in here" #~ msgstr "Tjek ind her" #~ msgid "" #~ "Maps cannot find the place to check in to with Facebook. Please select " #~ "one from this list." #~ msgstr "" #~ "Kort kan ikke finde stedet, hvorpå der skal tjekkes ind med Facebook. " #~ "Vælg venligst et fra listen." #~ msgid "Population:" #~ msgstr "Befolkning:" #~ msgid "Altitude:" #~ msgstr "Højde:" #~ msgid "Opening hours:" #~ msgstr "Åbningstider:" #~ msgid "Internet access:" #~ msgstr "Internetadgang:" #~ msgid "Toilets:" #~ msgstr "Toiletter:" #~ msgid "Wheelchair access:" #~ msgstr "Rullestolsadgang:" #~ msgid "Phone:" #~ msgstr "Telefon:" #~ msgid "yes" #~ msgstr "ja" #~ msgid "limited" #~ msgstr "begrænset" #~ msgid "no" #~ msgstr "nej" #~ msgid "designated" #~ msgstr "handicap" #~ msgid "OpenStreetMap URL is not valid" #~ msgstr "OpenStreetMap-URL er ikke gyldig" #~ msgctxt "time range list" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgctxt "time range list" #~ msgid "%s %s %s" #~ msgstr "%s %s %s" #~ msgctxt "time range component" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgid "wired" #~ msgstr "kabel" #~ msgid "terminal" #~ msgstr "terminal" #~ msgid "service" #~ msgstr "tjeneste" #~ msgid "Don’t have an account?" #~ msgstr "Har du ikke en konto?" #~ msgid "%f h" #~ msgstr "%f t" #~ msgid "%f min" #~ msgstr "%f min" #~ msgid "%f s" #~ msgstr "%f s" #~ msgid "Route search by OpenTripPlanner" #~ msgstr "Rutesøgning med OpenTripPlanner" #~ msgid "Add destination" #~ msgstr "Tilføj destination" #~ msgid "Open with another application" #~ msgstr "Åbn med andet program" #~ msgid "Press enter to search" #~ msgstr "Tryk enter for at søge" #~ msgid "org.gnome.Maps" #~ msgstr "org.gnome.Maps" #~ msgid "Quit" #~ msgstr "Afslut" #~ msgid "Open Shape Layer…" #~ msgstr "Åbn formlag …" #~ msgid "OK" #~ msgstr "OK" #~ msgid "Load Map Layer" #~ msgstr "Indlæs kortlag" #~ msgid "%f km" #~ msgstr "%f km" #~ msgid "%f m" #~ msgstr "%f m" #~ msgid "%f mi" #~ msgstr "%f mile" #~ msgid "%f ft" #~ msgstr "%f fod" #~ msgid "Country code: %s" #~ msgstr "Landekode: %s" 070701000001B8000081A400000000000000000000000166413409000107F6000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/de.po# German translation for gnome-maps. # Copyright (C) 2013 gnome-maps's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-maps package. # # Tobias Endrigkeit , 2013. # Benjamin Steinwender , 2014. # Bernd Homuth , 2015. # Paul Seyfert , 2016. # Wolfgang Stöggl , 2014-2015, 2017. # Christian Kirbach , 2014-2020. # Mario Blättermann , 2015-2018, 2020. # Tim Sabsch , 2018-2020, 2022-2023. # Philipp Kiemle , 2020-2021, 2023-2024. # Jürgen Benvenuti , 2022, 2023. # msgid "" msgstr "" "Project-Id-Version: gnome-maps master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2024-02-26 20:16+0000\n" "PO-Revision-Date: 2024-02-27 14:59+0100\n" "Last-Translator: Philipp Kiemle \n" "Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.4.2\n" #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.appdata.xml.in.in:6 data/org.gnome.Maps.desktop.in.in:4 #: data/ui/main-window.ui:27 src/application.js:64 src/mainWindow.js:147 #: src/mainWindow.js:647 msgid "Maps" msgstr "Karten" #: data/org.gnome.Maps.appdata.xml.in.in:7 msgid "Find places around the world" msgstr "Orte in der ganzen Welt finden" #: data/org.gnome.Maps.appdata.xml.in.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "»Karten« gibt Ihnen einen schnellen Zugang zu Karten aus der ganzen Welt. Es " "erlaubt Ihnen, Orte schnell zu finden, indem Sie eine Stadt oder eine Straße " "suchen, oder einen Ort zu finden, um einen Freund zu treffen." #: data/org.gnome.Maps.appdata.xml.in.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "»Karten« nutzt die gemeinschaftliche OpenStreetMap-Datenbank, die von " "hunderttausenden Menschen aus der ganzen Welt erstellt worden ist." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Maps.appdata.xml.in.in:451 src/mainWindow.js:644 msgid "The GNOME Project" msgstr "Das GNOME-Projekt" #: data/org.gnome.Maps.desktop.in.in:5 msgid "A simple maps application" msgstr "Eine einfache Karten-Anwendung" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in.in:14 msgid "Maps;" msgstr "Maps;Karten;" #: data/org.gnome.Maps.desktop.in.in:17 msgid "Allows your location to be shown on the map." msgstr "Ermöglicht die Anzeige Ihres Ortes in der Karte." #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "Zuletzt betrachteter Ort" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "Koordinaten des letzten betrachteten Orts." #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "Ansichtsgröße" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "Vergrößerungsstufe" #: data/org.gnome.Maps.gschema.xml:21 msgid "rotation" msgstr "Drehung" #: data/org.gnome.Maps.gschema.xml:22 msgid "Map rotation in radians" msgstr "Kartendrehung in Radiant" #: data/org.gnome.Maps.gschema.xml:26 msgid "Map type" msgstr "Kartentyp" #: data/org.gnome.Maps.gschema.xml:27 msgid "The type of map to display (street, aerial, etc.)" msgstr "Die Art der anzuzeigenden Karte (Straße, Luftbildansicht, usw.)" #: data/org.gnome.Maps.gschema.xml:31 msgid "Window size" msgstr "Fenstergröße" #: data/org.gnome.Maps.gschema.xml:32 msgid "Window size (width and height)." msgstr "Fenstergröße (Breite und Höhe)." #: data/org.gnome.Maps.gschema.xml:36 msgid "Window position" msgstr "Fensterposition" #: data/org.gnome.Maps.gschema.xml:37 msgid "Window position (X and Y)." msgstr "Fensterposition (X und Y)." #: data/org.gnome.Maps.gschema.xml:41 msgid "Window maximized" msgstr "Fenster maximiert" #: data/org.gnome.Maps.gschema.xml:42 msgid "Window maximization state" msgstr "Maximierungszustand des Fensters" #: data/org.gnome.Maps.gschema.xml:46 msgid "Maximum number of search results" msgstr "Maximale Anzahl an Suchergebnissen" #: data/org.gnome.Maps.gschema.xml:47 msgid "Maximum number of search results from geocode search." msgstr "Maximale Anzahl an Suchergebnissen aus der Geocode-Suche." # Unterschied zu "Number of recently visited places to store."? #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent places to store" msgstr "Anzahl der zu speichernden zuletzt aufgerufenen Plätze" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited places to store." msgstr "Anzahl der zu speichernden kürzlich besuchten Plätze." # Unterschied zu "Number of recently visited places to store."? #: data/org.gnome.Maps.gschema.xml:56 msgid "Number of recent routes to store" msgstr "Anzahl der zu speichernden zuletzt aufgerufenen Plätze" #: data/org.gnome.Maps.gschema.xml:57 msgid "Number of recently visited routes to store." msgstr "Anzahl der zu speichernden kürzlich besuchten Plätze." #: data/org.gnome.Maps.gschema.xml:61 msgid "OpenStreetMap username or email address" msgstr "Benutzername oder E-Mail-Adresse für OpenStreetMap" #: data/org.gnome.Maps.gschema.xml:62 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "" "Zeigt an, dass sich der Benutzer angemeldet hat, um OpenStreetMap-Daten " "bearbeiten zu können." #: data/org.gnome.Maps.gschema.xml:66 msgid "Last used transportation type for routing" msgstr "Für die Route zuletzt benutzte Beförderungsart" #: data/org.gnome.Maps.gschema.xml:70 msgid "Show scale" msgstr "Maßstab anzeigen" #: data/org.gnome.Maps.gschema.xml:71 msgid "Whether to show the scale." msgstr "Legt fest, ob der Maßstab angezeigt werden soll." #: data/ui/context-menu.ui:6 msgid "Route from Here" msgstr "Route von hier" #: data/ui/context-menu.ui:10 msgid "Add Intermediate Destination" msgstr "Zwischenziel hinzufügen" #: data/ui/context-menu.ui:14 msgid "Route to Here" msgstr "Route hierher" #: data/ui/context-menu.ui:20 msgid "What's Here?" msgstr "Was ist hier?" #: data/ui/context-menu.ui:24 msgid "Copy Location" msgstr "Ort kopieren" #: data/ui/context-menu.ui:28 msgid "Add to OpenStreetMap…" msgstr "Zu OpenStreetMap hinzufügen …" #: data/ui/export-view-dialog.ui:7 msgid "Export view" msgstr "Ansicht exportieren" #: data/ui/export-view-dialog.ui:16 data/ui/send-to-dialog.ui:10 #: data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "_Abbrechen" #: data/ui/export-view-dialog.ui:26 msgid "_Export" msgstr "_Exportieren" #. Translators: This is a tooltip #: data/ui/favorite-list-row.ui:72 msgid "Remove Favorite" msgstr "Favorit entfernen" #: data/ui/favorites-popover.ui:11 msgid "No Favorites" msgstr "Keine Favoriten" #: data/ui/favorites-popover.ui:12 msgid "Add places to your favorites to get them listed here" msgstr "Fügen Sie Orte zu Ihren Favoriten hinzu, damit sie hier erscheinen" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:11 src/geoclue.js:106 msgid "Current Location" msgstr "Aktueller Ort" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:19 msgid "Layers" msgstr "Ebenen" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:11 msgid "Print Route" msgstr "Route drucken" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:21 msgid "Favorites" msgstr "Favoriten" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:30 msgid "Route Planner" msgstr "Routenplaner" #: data/ui/help-overlay.ui:12 msgctxt "shortcut window" msgid "General" msgstr "Allgemein" #: data/ui/help-overlay.ui:15 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "Tastenkürzel anzeigen" #: data/ui/help-overlay.ui:21 msgctxt "shortcut window" msgid "Search" msgstr "Suchen" #: data/ui/help-overlay.ui:27 msgctxt "shortcut window" msgid "Explore points-of-interest" msgstr "Interessante Orte entdecken" #: data/ui/help-overlay.ui:33 msgctxt "shortcut window" msgid "Show last search results" msgstr "Letzte Suchergebnisse anzeigen" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "Routenplaner ein-/ausschalten" #: data/ui/help-overlay.ui:45 msgctxt "shortcut window" msgid "Print route" msgstr "Route drucken" #: data/ui/help-overlay.ui:51 msgctxt "shortcut window" msgid "Quit" msgstr "Verlassen" #: data/ui/help-overlay.ui:57 msgctxt "shortcut window" msgid "Open main menu" msgstr "Hauptmenü öffnen" #: data/ui/help-overlay.ui:65 msgctxt "shortcut window" msgid "Map View" msgstr "Kartenansicht" #: data/ui/help-overlay.ui:68 msgctxt "shortcut window" msgid "Zoom in" msgstr "Vergrößern" #: data/ui/help-overlay.ui:74 msgctxt "shortcut window" msgid "Zoom out" msgstr "Verkleinern" #: data/ui/help-overlay.ui:80 msgctxt "shortcut window" msgid "Rotate clockwise" msgstr "Im Uhrzeigersinn drehen" #: data/ui/help-overlay.ui:86 msgctxt "shortcut window" msgid "Rotate counter-clockwise" msgstr "Gegen den Uhrzeigersinn drehen" #: data/ui/help-overlay.ui:92 msgctxt "shortcut window" msgid "Reset rotation" msgstr "Drehung zurücksetzen" #: data/ui/help-overlay.ui:98 msgctxt "shortcut window" msgid "Toggle scale" msgstr "Maßstab umschalten" #: data/ui/help-overlay.ui:104 msgctxt "shortcut window" msgid "Go to current location" msgstr "Zum aktuellen Ort springen" #: data/ui/help-overlay.ui:114 msgctxt "shortcut window" msgid "Switch to street view" msgstr "Zur Straßenansicht wechseln" #: data/ui/help-overlay.ui:121 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "Zur Luftbildansicht wechseln" #: data/ui/help-overlay.ui:127 msgctxt "shortcut window" msgid "Open shape layer" msgstr "Formebene öffnen" #: data/ui/layers-popover.ui:7 msgid "Show Scale" msgstr "Maßstab anzeigen" #: data/ui/layers-popover.ui:16 msgid "Enable Experimental Map" msgstr "Experimentelle Karte aktivieren" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:21 msgid "Open Shape Layer…" msgstr "Formebene öffnen …" #: data/ui/main-window.ui:8 msgid "Set up OpenStreetMap Account…" msgstr "OpenStreetMap-Konto einrichten …" #: data/ui/main-window.ui:12 msgid "Export as Image…" msgstr "Als Bild exportieren …" #: data/ui/main-window.ui:17 msgid "_Keyboard Shortcuts" msgstr "Tasten_kürzel" #: data/ui/main-window.ui:22 msgid "About Maps" msgstr "Info zu Karten" #: data/ui/main-window.ui:48 msgid "Main Menu" msgstr "Hauptmenü" #: data/ui/osm-account-dialog.ui:5 msgid "OpenStreetMap Account" msgstr "OpenStreetMap-Konto" #: data/ui/osm-account-dialog.ui:31 msgid "Sign In To Edit Maps" msgstr "Anmelden, um Karten zu bearbeiten" #: data/ui/osm-account-dialog.ui:32 msgid "Help to improve the map, using an OpenStreetMap account." msgstr "" "Helfen Sie mit bei der Verbesserung der Karte. Nutzen Sie dafür ein " "OpenStreetMap-Konto." #: data/ui/osm-account-dialog.ui:36 msgid "Sign In" msgstr "Anmelden" #: data/ui/osm-account-dialog.ui:59 msgid "Verification" msgstr "Überprüfung" #: data/ui/osm-account-dialog.ui:60 msgid "" "Copy the verification code shown when authorizing access in the browser." msgstr "" "Kopieren Sie den Verifizierungscode, der angezeigt wird, wenn Zugang im " "Browser legitimiert wird." #: data/ui/osm-account-dialog.ui:69 msgid "Verification Code" msgstr "Verifizierungscode" #: data/ui/osm-account-dialog.ui:75 msgid "Verify" msgstr "Verifizieren" #: data/ui/osm-account-dialog.ui:110 msgid "Signed In" msgstr "Angemeldet" #: data/ui/osm-account-dialog.ui:111 msgid "Your OpenStreetMap account is active." msgstr "Ihr OpenStreetMap-Konto ist aktiv." #: data/ui/osm-account-dialog.ui:129 msgid "Sign Out" msgstr "Abmelden" #: data/ui/osm-edit-address.ui:11 msgid "Street" msgstr "Straße" #: data/ui/osm-edit-address.ui:22 msgid "House number" msgstr "Hausnummer" #: data/ui/osm-edit-address.ui:33 msgid "Postal code" msgstr "Postleitzahl" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:44 msgid "City" msgstr "Stadt" #: data/ui/osm-edit-dialog.ui:8 msgctxt "dialog title" msgid "Edit on OpenStreetMap" msgstr "Auf OpenStreetMap bearbeiten" #: data/ui/osm-edit-dialog.ui:57 msgid "Type" msgstr "Typ" #: data/ui/osm-edit-dialog.ui:79 msgid "None" msgstr "Keine" #: data/ui/osm-edit-dialog.ui:108 msgid "Add Field" msgstr "Feld hinzufügen" #: data/ui/osm-edit-dialog.ui:130 msgid "Comment" msgstr "Kommentar" #: data/ui/osm-edit-dialog.ui:158 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "Kartenänderungen werden in allen Karten sichtbar, die\n" "Daten von OpenStreetMap verwenden." #: data/ui/osm-edit-dialog.ui:186 msgid "Recently Used" msgstr "Zuletzt verwendet" #: data/ui/osm-edit-dialog.ui:225 src/mapView.js:671 msgid "Cancel" msgstr "Abbrechen" #: data/ui/osm-edit-dialog.ui:238 src/osmEditDialog.js:531 msgid "Next" msgstr "Nächste" #: data/ui/osm-edit-wikipedia.ui:8 msgid "Article" msgstr "Artikel" #: data/ui/osm-edit-wikipedia.ui:21 msgid "Wikidata tag" msgstr "Wikidata-Schlagwort" #: data/ui/osm-edit-wikipedia.ui:32 msgid "Load Wikidata tag for article" msgstr "Wikidata-Schlagwort für Artikel laden" #: data/ui/place-popover.ui:23 src/searchBar.js:55 msgid "Explore Nearby Places" msgstr "Orte in der Nähe entdecken" #: data/ui/place-popover.ui:82 src/application.js:277 msgid "No results found" msgstr "Keine Ergebnisse gefunden" #: data/ui/place-popover.ui:92 src/application.js:255 msgid "An error has occurred" msgstr "Ein Fehler ist aufgetreten" #. Translators: This is a tooltip #: data/ui/route-entry.ui:12 msgid "Change Route Order" msgstr "Routenreihenfolge ändern" #: data/ui/send-to-dialog.ui:7 msgid "Open Location" msgstr "Ort öffnen" #: data/ui/send-to-dialog.ui:64 msgid "Copy" msgstr "Kopieren" #: data/ui/send-to-dialog.ui:70 msgid "Send To…" msgstr "Senden an …" #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:62 msgid "Open Shape Layer" msgstr "Formebene öffnen" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "Ö_ffnen" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:32 msgid "Toggle visible" msgstr "Sichtbarkeit umschalten" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:44 msgid "Remove Shape Layer" msgstr "Formebene entfernen" #: data/ui/sidebar.ui:207 msgid "Route search by GraphHopper" msgstr "Routenplanung von GraphHopper" #: data/ui/sidebar.ui:272 msgid "" "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of " "transportation,\n" "e.g. a national provider might not include airlines, and a local provider " "could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" "Die Reisedaten für öffentliche Verkehrsmittel werden von Drittanbietern\n" "bereitgestellt.\n" "GNOME kann für die Korrektheit der Routen und angezeigten Fahrzeiten\n" "nicht garantieren. Beachten Sie, dass nicht alle Anbieter Informationen für " "alle\n" "Transportmittel beinhalten. Zum Beispiel könnte ein nationaler Anbieter " "keine\n" "Fluglinien beinhalten, oder ein lokaler Anbieter keine Regionalzüge.\n" "Die angezeigten Namen und Marken sind als eingetragene Warenzeichen zu " "betrachten, sofern anwendbar." #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:98 msgid "Hide intermediate stops and information" msgstr "Zwischenstationen und Informationen verbergen" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:156 msgid "Show intermediate stops and information" msgstr "Zwischenstationen und Informationen anzeigen" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:16 msgid "Leave Now" msgstr "Jetzt starten" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:17 msgid "Leave By" msgstr "Abfahrt um" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:18 msgid "Arrive By" msgstr "Ankunft um" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:85 msgid "Show" msgstr "Anzeigen" #: data/ui/transit-options-panel.ui:95 msgid "Buses" msgstr "Busse" #: data/ui/transit-options-panel.ui:101 msgid "Trams" msgstr "Straßenbahnen" #: data/ui/transit-options-panel.ui:107 msgid "Trains" msgstr "Züge" #: data/ui/transit-options-panel.ui:113 msgid "Subway" msgstr "U-Bahn" #: data/ui/transit-options-panel.ui:119 msgid "Ferries" msgstr "Fähren" #: data/ui/transit-options-panel.ui:125 msgid "Airplanes" msgstr "Flugzeuge" #. Translators: This is a tooltip #: data/ui/place-bar.ui:33 data/ui/place-buttons.ui:27 msgid "Share Location" msgstr "Ort teilen" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:11 msgid "Add to new route" msgstr "Zu einer neuen Route hinzufügen" #. Translators: This is the button to find a route to a place #: data/ui/place-buttons.ui:15 msgid "Directions" msgstr "Route" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:36 msgid "Mark as Favorite" msgstr "Als Favorit markieren" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:44 msgid "Edit on OpenStreetMap" msgstr "Auf OpenStreetMap bearbeiten" #. Translators: This is a tooltip #: data/ui/place-view.ui:52 msgid "Share location" msgstr "Ort teilen" #: data/ui/poi-category-goback-row.ui:22 msgid "Back to Main Categories" msgstr "Zurück zu Hauptkategorien" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:19 msgid "Reset Rotation" msgstr "Drehung zurücksetzen" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:32 msgid "Zoom Out" msgstr "Verkleinern" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:43 src/mapView.js:1246 msgid "Zoom In" msgstr "Vergrößern" #: lib/maps-file-data-source.c:262 lib/maps-file-data-source.c:338 #: lib/maps-file-data-source.c:418 msgid "Failed to find tile structure in directory" msgstr "Es konnte keine Kachel-Struktur im Ordner gefunden werden" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "XML-Dokument konnte nicht verarbeitet werden" #: lib/maps-osm.c:250 lib/maps-osm.c:403 msgid "Missing required attributes" msgstr "Erforderliche Attribute fehlen" #: lib/maps-osm.c:451 lib/maps-osm.c:494 msgid "Could not find OSM element" msgstr "OSM-Element kann nicht gefunden werden" #: lib/maps-osm.c:508 msgid "Could not find user element" msgstr "Nutzer-Element kann nicht gefunden werden" #: src/application.js:78 msgid "A path to a local tiles directory structure" msgstr "Pfad zu einer lokalen Kachel-Ordnerstruktur" #: src/application.js:84 msgid "Tile size for local tiles directory" msgstr "Kachelgröße des lokalen Kachel-Ordner" #: src/application.js:88 msgid "Show the version of the program" msgstr "Die Versionsnummer des Programms anzeigen" #: src/application.js:94 msgid "Search for places" msgstr "Nach Orten suchen" #: src/application.js:105 src/application.js:106 msgid "[FILE…|URI]" msgstr "[DATEI …|URI]" #: src/application.js:284 #, javascript-format msgid "Invalid maps: URI: %s" msgstr "Ungültige Karten: URI: %s" #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:75 #, javascript-format msgid "Maps at %f, %f.png" msgstr "Karten auf %f, %f.png" #: src/exportViewDialog.js:174 msgid "Unable to export view" msgstr "Ansicht kann nicht exportiert werden" #: src/favoriteListRow.js:42 msgid "Favorite removed" msgstr "Favorit entfernt" #: src/favoriteListRow.js:43 msgid "Undo" msgstr "Rückgängig" #: src/geoJSONSource.js:73 msgid "invalid coordinate" msgstr "Ungültige Koordinaten" #: src/geoJSONSource.js:126 src/geoJSONSource.js:166 src/geoJSONSource.js:181 msgid "parse error" msgstr "Verarbeitungsfehler" #: src/geoJSONSource.js:160 msgid "unknown geometry" msgstr "Unbekannte Geometrie" #: src/graphHopper.js:101 src/transitPlan.js:175 msgid "Route request failed." msgstr "Routenanfrage schlug fehl." #: src/graphHopper.js:108 src/transitPlan.js:167 msgid "No route found." msgstr "Keine Route gefunden." #: src/graphHopper.js:195 src/transitplugins/openTripPlanner.js:1163 msgid "Start!" msgstr "Start!" #: src/mainWindow.js:59 msgid "All Layer Files" msgstr "Alle Ebenendateien" #: src/mainWindow.js:522 msgid "Failed to connect to location service" msgstr "Es konnte keine Verbindung zum Ortungsdienst hergestellt werden" #: src/mainWindow.js:527 msgid "Turn on location services" msgstr "Ortungsdienste aktivieren" #: src/mainWindow.js:528 msgid "Location Settings" msgstr "Einstellungen der Ortungsdienste" #: src/mainWindow.js:645 msgid "translator-credits" msgstr "" "Christian Kirbach \n" "Tobias Endrigkeit \n" "Benjamin Steinwender \n" "Mario Blättermann \n" "Bernd Homuth \n" "Paul Seyfert \n" "Tim Sabsch \n" "Philipp Kiemle \n" "Jürgen Benvenuti " #: src/mainWindow.js:649 msgid "Copyright © 2011 – 2023 Red Hat, Inc. and The GNOME Maps authors" msgstr "Copyright © 2011 – 2023 Red Hat, Inc. und die Autoren von GNOME Karten" #: src/mainWindow.js:665 #, javascript-format msgid "Map data by %s and contributors" msgstr "Kartendaten bereitgestellt von %s und weiteren Mitwirkenden" #: src/mainWindow.js:666 msgid "Map Data Provider" msgstr "Kartendaten-Anbieter" #: src/mainWindow.js:678 msgid "Map Tile Provider" msgstr "Kartenausschnitt-Anbieter" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:686 #, javascript-format msgid "Map tiles provided by %s" msgstr "Kartenausschnitte bereitgestellt von %s" #: src/mainWindow.js:716 msgid "Search Provider" msgstr "Suchanbieter" #: src/mainWindow.js:719 #, javascript-format msgid "Search provided by %s using %s" msgstr "Suche bereitgestellt von %s unter Verwendung von %s" #: src/mapView.js:645 src/mapView.js:710 msgid "Failed to open layer" msgstr "Ebene konnte nicht geöffnet werden" #: src/mapView.js:664 msgid "Do you want to continue?" msgstr "Möchten Sie fortfahren?" #: src/mapView.js:665 #, javascript-format msgid "" "You are about to open files with a total size of %s MB. This could take some " "time to load" msgstr "" "Sie sind dabei, Dateien mit einer Gesamtgröße von %s MB zu öffnen. Das " "könnte einige Zeit dauern" #: src/mapView.js:672 src/transitplugins/openTripPlanner.js:1239 #: src/transitplugins/openTripPlanner2.js:267 msgid "Continue" msgstr "Fortsetzen" #: src/mapView.js:704 msgid "File type is not supported" msgstr "Dateityp wird nicht unterstützt" #: src/mapView.js:741 msgid "Failed to open GeoURI" msgstr "Geo-Adresse konnte nicht geöffnet werden" #: src/mapView.js:1205 msgid "Nothing found here!" msgstr "Hier wurde nichts gefunden!" #: src/mapView.js:1245 msgid "Zoom in to add location" msgstr "Vergrößern, um einen Ort hinzufügen" #: src/mapView.js:1266 msgid "Location was added in OpenStreetMap" msgstr "Ort wurde zu OpenStreetMap hinzugefügt" #. switch back to the sign-in view, and show a toast indicating #. that verification failed #: src/osmAccountDialog.js:134 msgid "The verification code didn’t match, please try again." msgstr "" "Die Verifizierungscodes stimmen nicht überein, bitte versuchen Sie es erneut." #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:335 msgid "Incorrect user name or password" msgstr "Benutzername oder Passwort falsch" #: src/osmConnection.js:337 msgid "Success" msgstr "Erfolg" #: src/osmConnection.js:339 msgid "Bad request" msgstr "Fehlerhafte Anfrage" #: src/osmConnection.js:341 msgid "Object not found" msgstr "Objekt nicht gefunden" #: src/osmConnection.js:343 msgid "Conflict, someone else has just modified the object" msgstr "Konflikt, jemand anderes hat gerade das Objekt geändert" #: src/osmConnection.js:345 msgid "Object has been deleted" msgstr "Objekt wurde gelöscht" #: src/osmConnection.js:347 msgid "Way or relation refers to non-existing children" msgstr "Weg oder Bezug verweist auf nicht existierende Unterobjekte" #: src/osmEditDialog.js:106 msgid "Name" msgstr "Name" #: src/osmEditDialog.js:109 msgid "The official name. This is typically what appears on signs." msgstr "" "Der offizielle Name, der üblicherweise auf dem Ortseingangsschild erscheint." #: src/osmEditDialog.js:112 msgid "Address" msgstr "Adresse" #: src/osmEditDialog.js:120 src/placeView.js:275 msgid "Website" msgstr "Internet-Seite" #: src/osmEditDialog.js:124 msgid "This is not a valid URL. Make sure to include http:// or https://." msgstr "" "Das ist keine gültige URL. Bitte beginnen Sie mit »http://« oder »https://«." #: src/osmEditDialog.js:125 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" "Die offizielle Webseite. Verwenden Sie möglichst die Grundform der Adresse, " "zum Beispiel http://example.com statt http://example.com/index.html." #: src/osmEditDialog.js:130 msgid "Phone" msgstr "Telefon" #: src/osmEditDialog.js:134 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" "Die Telefonnummer im internationalen Format, beginnend mit einem Plus-" "Zeichen. Denken Sie an den Schutz der Privatsphäre, insbesondere für private " "Telefonnummern." #: src/osmEditDialog.js:139 src/placeView.js:308 msgid "Email" msgstr "E-Mail" #: src/osmEditDialog.js:144 msgid "" "This is not a valid email address. Make sure to not include the mailto: " "protocol prefix." msgstr "" "Das ist keine gültige E-Mail-Adresse. Bitte stellen Sie sicher, dass das " "»mailto:«-Präfix nicht angegeben ist." #: src/osmEditDialog.js:145 msgid "" "Contact email address for inquiries. Add only email addresses that are " "intended to be publicly used." msgstr "" "Die Kontakt-E-Mail-Adresse für Anfragen. Fügen Sie nur Adressen hinzu, die " "für die öffentliche Nutzung vorgesehen sind." #. Translators: This is the text for the "Wikipedia" link at the end #. of summaries #: src/osmEditDialog.js:149 src/placeView.js:727 msgid "Wikipedia" msgstr "Wikipedia" #: src/osmEditDialog.js:156 src/placeView.js:399 msgid "Opening hours" msgstr "Öffnungszeiten" #: src/osmEditDialog.js:161 msgid "See the link in the label for help on format." msgstr "Öffnen Sie den Verweis in der Beschriftung für Hilfe zur Formatierung." #. TODO: this is a bit of a work-around to re-interpret the population, #. * stored as a string into an integer to convert back to a locale- #. * formatted string. Ideally it should be kept as an integer value #. * in the Place class. But this will also need to be handled by the #. * PlaceStore, possible in a backwards-compatible way #. #: src/osmEditDialog.js:164 src/placeView.js:509 msgid "Population" msgstr "Bevölkerung" #: src/osmEditDialog.js:169 src/placeView.js:538 msgid "Altitude" msgstr "Höhe" #: src/osmEditDialog.js:172 msgid "Elevation (height above sea level) of a point in meters." msgstr "Richthöhe (Höhe eines Punktes über dem Meeresspiegel) in Meter." #: src/osmEditDialog.js:175 msgid "Wheelchair access" msgstr "Barrierefreier Zugang" #: src/osmEditDialog.js:178 src/osmEditDialog.js:187 src/osmEditDialog.js:198 #: src/osmEditDialog.js:233 msgid "Yes" msgstr "Ja" #: src/osmEditDialog.js:179 src/osmEditDialog.js:188 src/osmEditDialog.js:199 #: src/osmEditDialog.js:234 msgid "No" msgstr "Nein" #: src/osmEditDialog.js:180 msgid "Limited" msgstr "Begrenzt" #: src/osmEditDialog.js:181 msgid "Designated" msgstr "Geeignet" #: src/osmEditDialog.js:184 msgid "Internet access" msgstr "Internetzugang" #: src/osmEditDialog.js:189 msgid "Wi-Fi" msgstr "Funknetzwerk" #: src/osmEditDialog.js:190 msgid "Wired" msgstr "Kabelgebunden" #: src/osmEditDialog.js:191 msgid "Terminal" msgstr "Terminal" #: src/osmEditDialog.js:192 msgid "Service" msgstr "Dienst" #: src/osmEditDialog.js:195 msgid "Takeout" msgstr "Zum Mitnehmen" #: src/osmEditDialog.js:200 msgid "Only" msgstr "Ausschließlich" #: src/osmEditDialog.js:203 msgid "Religion" msgstr "Religion" #: src/osmEditDialog.js:206 src/translations.js:286 msgid "Animism" msgstr "Animismus" #: src/osmEditDialog.js:207 msgid "Bahá’í" msgstr "Bahaitum" #: src/osmEditDialog.js:208 src/translations.js:288 msgid "Buddhism" msgstr "Buddhismus" #: src/osmEditDialog.js:209 src/translations.js:289 msgid "Caodaism" msgstr "Caodaismus" #: src/osmEditDialog.js:210 src/translations.js:290 msgid "Christianity" msgstr "Christentum" #: src/osmEditDialog.js:211 src/translations.js:291 msgid "Confucianism" msgstr "Konfuzianismus" #: src/osmEditDialog.js:212 src/translations.js:292 msgid "Hinduism" msgstr "Hinduismus" #: src/osmEditDialog.js:213 src/translations.js:293 msgid "Jainism" msgstr "Jainismus" #: src/osmEditDialog.js:214 src/translations.js:294 msgid "Judaism" msgstr "Judentum" #: src/osmEditDialog.js:215 src/translations.js:295 msgid "Islam" msgstr "Islam" #: src/osmEditDialog.js:216 src/translations.js:296 msgid "Multiple Religions" msgstr "Mehrere Religionen" #: src/osmEditDialog.js:217 src/translations.js:297 msgid "Paganism" msgstr "Heidentum" #: src/osmEditDialog.js:218 src/translations.js:298 msgid "Pastafarianism" msgstr "Pastafarianismus" #: src/osmEditDialog.js:219 src/translations.js:299 msgid "Scientology" msgstr "Scientology" #: src/osmEditDialog.js:220 src/translations.js:300 msgid "Shinto" msgstr "Shintoismus" #: src/osmEditDialog.js:221 src/translations.js:301 msgid "Sikhism" msgstr "Sikhismus" #: src/osmEditDialog.js:222 src/translations.js:302 msgid "Spiritualism" msgstr "Spiritualismus" #: src/osmEditDialog.js:223 src/translations.js:303 msgid "Taoism" msgstr "Daoismus" #: src/osmEditDialog.js:224 src/translations.js:304 msgid "Unitarian Universalism" msgstr "Unitarismus" #: src/osmEditDialog.js:225 src/translations.js:305 msgid "Voodoo" msgstr "Voodoo" #: src/osmEditDialog.js:226 src/translations.js:306 msgid "Yazidism" msgstr "Jesidismus" #: src/osmEditDialog.js:227 src/translations.js:307 msgid "Zoroastrianism" msgstr "Zarathustrismus" #: src/osmEditDialog.js:230 src/poiCategories.js:176 msgid "Toilets" msgstr "Toiletten" #: src/osmEditDialog.js:237 msgid "Note" msgstr "Notiz" #: src/osmEditDialog.js:240 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" "Notiz, die anderen Kartennutzern nicht-offensichtliche Hinweise zu einem " "Element, die Absicht des Autors bei der Erstellung, oder Hinweise zur " "weiteren Verbesserung zur Verfügung stellt." #: src/osmEditDialog.js:339 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "Zu OpenStreetMap hinzufügen" #: src/osmEditDialog.js:393 msgid "Select Type" msgstr "Typ wählen" #: src/osmEditDialog.js:515 msgid "Done" msgstr "Abgeschlossen" #: src/osmEditDialog.js:818 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "" "Das verwendete Format sollte den Sprachcode und den Artikel enthalten, zum " "Beispiel »de:Titel des Artikels«." #: src/osmEditDialog.js:824 msgid "Use the reload button to load the Wikidata tag for the selected article" msgstr "" "Verwenden Sie »Neu laden«-Knopf zum Laden des Wikidata-Schlagworts für den " "ausgewählten Artikel" #: src/osmEditDialog.js:832 msgid "Couldn't find Wikidata tag for article" msgstr "Wikidata-Schlagwort für Artikel konnte nicht gefunden werden" #: src/photonUtils.js:118 msgid "Unnamed place" msgstr "Unbenannter Ort" #: src/placeEntry.js:274 msgid "Failed to parse Geo URI" msgstr "Geo-Adresse konnte nicht verarbeitet werden" #: src/placeEntry.js:286 msgid "Failed to parse Maps URI" msgstr "Karten-URI konnte nicht verarbeitet werden" #. 300 ft (300 * 12 * 0.0254 m) #. #. * Translators: This a format string for showing a distance to a place #. * is lower than a "quite short" distance. #. * The "less than" symbol can be substituded with an appropriate one, if #. * needed (e.g. using the correct direction, or alternative symbol). #. * The %s should be kept, and is substituted with a label representing the #. * short distance. The \u2009 (thin space) could also be adjusted if needed #: src/placeListRow.js:46 #, javascript-format msgctxt "short distance format string" msgid "< %s" msgstr "< %s" #: src/placeView.js:263 msgid "Coordinates" msgstr "Koordinaten" #: src/placeView.js:267 msgid "Accuracy" msgstr "Genauigkeit" #. Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) #: src/placeView.js:270 #, javascript-format msgid "Accuracy: %s" msgstr "Genauigkeit: %s" #. since the phone numbers are typically always rendered #. * left-to-right, insert an explicit LRM char to avoid issues #. * with phone numbers in international format starting with a + #. * which is considered a "weak" character to determine Unicode #. * text direction #. #: src/placeView.js:289 msgid "Phone number" msgstr "Telefonnummer" #. If a reference to a named floor (named or symbolic) exists #. * refer to it directly. #. #. Translators: #. * This is a reference to named building floor, using a label #. * or a code, as "displayed in the elevator" #. #: src/placeView.js:323 src/placeView.js:362 msgid "Floor" msgstr "Etage" #: src/placeView.js:325 #, javascript-format msgid "Floor %s" msgstr "Etage %s" #: src/placeView.js:337 msgid "At ground level" msgstr "Im Erdgeschoss" #. Translators: #. * This is a reference to a number of floors above #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:346 #, javascript-format msgid "%s floor above ground level" msgid_plural "%s floors above ground level" msgstr[0] "%s Stockwerk über dem Erdgeschoss" msgstr[1] "%s Stockwerke über dem Erdgeschoss" #. Translators: #. * This is a reference to a number of floors below #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:357 #, javascript-format msgid "%s floor below ground level" msgid_plural "%s floors below ground level" msgstr[0] "%s Etage unter dem Erdgeschoss" msgstr[1] "%s Etagen unter dem Erdgeschoss" #. Translators: #. * The establishment offers customers to purchase meals #. * (or similar) to be consumed elsewhere #. #: src/placeView.js:375 msgid "Offers takeout" msgstr "Bietet Essen zum Mitnehmen an" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed on-premise. #. #: src/placeView.js:383 msgid "Does not offer takeout" msgstr "Bietet kein Essen zum Mitnehmen an" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed elsewhere. E.g. #. * there is no seating on-premise for eating/drinking #. #: src/placeView.js:392 msgid "Only offers takeout" msgstr "Bietet ausschließlich Essen zum Mitnehmen an" #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/placeView.js:409 msgid "Public internet access" msgstr "Öffentlicher Internetzugang" #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/placeView.js:418 msgid "No internet access" msgstr "Kein Internetzugang" #. Translators: #. * This means a WLAN Hotspot, also known as wireless, wifi or Wi-Fi. #. #: src/placeView.js:426 msgid "Public Wi-Fi" msgstr "Öffentliches WLAN" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/placeView.js:434 msgid "Wired internet access" msgstr "Kabelgebundener Internetzugang" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/placeView.js:442 msgid "Computers available for use" msgstr "Computer zur Nutzung verfügbar" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/placeView.js:450 msgid "Internet assistance available" msgstr "Internet-Hilfestellung verfügbar" #: src/placeView.js:456 msgid "No toilets available" msgstr "Keine Toiletten vorhanden" #: src/placeView.js:459 msgid "Toilets available" msgstr "Toiletten vorhanden" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #: src/placeView.js:468 msgid "Wheelchair accessible" msgstr "Barrierefrei" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/placeView.js:478 msgid "Limited wheelchair accessibility" msgstr "Eingeschränkt barrierefrei" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #: src/placeView.js:487 msgid "Not wheelchair accessible" msgstr "Nicht barrierefrei" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/placeView.js:497 msgid "Designated for wheelchair users" msgstr "Barrierefrei" #. * #. * Translators: this is a label indicating an altitude below #. * sea level, where the %s placeholder is the altitude relative #. * to mean sea level in the "negative direction" #. #: src/placeView.js:528 #, javascript-format msgid "%s below sea level" msgstr "%s unter dem Meeresspiegel" #. * #. * Translators: this indicates a place is located at (or very #. * close to) mean sea level #. #: src/placeView.js:535 msgid "At sea level" msgstr "Auf Höhe des Meerespiegels" #: src/placeView.js:544 msgid "Religion:" msgstr "Religion:" #: src/place.js:570 msgid "Place not found in OpenStreetMap" msgstr "Ort wurde nicht in OpenStreetMap gefunden" #: src/place.js:577 msgid "Coordinates in URL are not valid" msgstr "Koordinaten in der Adresse sind ungültig" #: src/place.js:586 msgid "URL is not supported" msgstr "Adresse wird nicht unterstützt" # Gemeint sind Kategorien aus OpenStreetMap. »Einrichtungen« ist auch nicht ideal. https://wiki.openstreetmap.org/wiki/DE:Key:amenity #: src/poiCategories.js:132 msgid "Amenities" msgstr "Einrichtungen" #: src/poiCategories.js:135 msgid "ATMs" msgstr "Geldautomaten" #: src/poiCategories.js:141 msgid "Post Boxes" msgstr "Briefkästen" #: src/poiCategories.js:147 msgid "Post Offices" msgstr "Postämter" #: src/poiCategories.js:153 msgid "Police" msgstr "Polizeistation" #: src/poiCategories.js:159 msgid "Libraries" msgstr "Bibliotheken" #: src/poiCategories.js:165 msgid "Pharmacies" msgstr "Apotheken" #: src/poiCategories.js:171 msgid "Recycling" msgstr "Recycling" #: src/poiCategories.js:182 msgid "Wheelchair-accessible Toilets" msgstr "Barrierefreie WCs" #: src/poiCategories.js:188 msgid "Baggage Lockers" msgstr "Gepäckschließfächer" #: src/poiCategories.js:196 msgid "Eating & Drinking" msgstr "Essen & Trinken" #: src/poiCategories.js:200 msgid "Restaurants" msgstr "Restaurants" #: src/poiCategories.js:205 msgid "Fast Food" msgstr "Fast Food" #: src/poiCategories.js:210 msgid "Food Courts" msgstr "Food Courts" #: src/poiCategories.js:215 msgid "Pubs" msgstr "Kneipen" #: src/poiCategories.js:221 msgid "Bars" msgstr "Bars" #: src/poiCategories.js:226 msgid "Cafes" msgstr "Cafés" #: src/poiCategories.js:231 msgid "Ice Cream" msgstr "Eis" #: src/poiCategories.js:236 msgid "Food, Snacks, and Beverage Machines" msgstr "Lebensmittel- und Getränkeautomaten" #: src/poiCategories.js:244 msgid "Shopping" msgstr "Einkaufen" #: src/poiCategories.js:248 msgid "Supermarkets" msgstr "Supermärkte" #: src/poiCategories.js:254 msgid "Convenience Stores" msgstr "Convenience Stores" #: src/poiCategories.js:259 msgid "Shopping Malls" msgstr "Einkaufszentren" #: src/poiCategories.js:265 msgid "Clothes" msgstr "Kleidung" #: src/poiCategories.js:271 msgid "Shoes" msgstr "Schuhe" #: src/poiCategories.js:276 msgid "Electronics" msgstr "Elektronik" #: src/poiCategories.js:282 msgid "Alcohol" msgstr "Alkohol" #: src/poiCategories.js:288 msgid "Bakeries" msgstr "Bäckereien" #: src/poiCategories.js:294 msgid "Flowers" msgstr "Blumen" #: src/poiCategories.js:301 msgid "Transportation" msgstr "Transport" #: src/poiCategories.js:305 msgid "Bus & Tram Stops" msgstr "Bus- und Straßenbahnhaltestellen" #: src/poiCategories.js:313 msgid "Train & Subway Stations" msgstr "Zug- und U-Bahnhaltestellen" #: src/poiCategories.js:321 msgid "Tickets" msgstr "Tickets" #: src/poiCategories.js:329 msgid "Parking" msgstr "Parkplätze" #: src/poiCategories.js:334 msgid "Bicycle Parking" msgstr "Fahrradparkplätze" #: src/poiCategories.js:339 msgid "Bicycle Rental" msgstr "Fahrradvermietung" #: src/poiCategories.js:344 msgid "Car Rental" msgstr "Autovermietung" #: src/poiCategories.js:349 msgid "Fuel" msgstr "Kraftstoff" #: src/poiCategories.js:354 msgid "EV Charging" msgstr "Ladestation für Elektrofahrzeuge" #: src/poiCategories.js:362 msgid "Healthcare" msgstr "Gesundheit" #: src/poiCategories.js:366 msgid "Clinics" msgstr "Ambulante Kliniken" #: src/poiCategories.js:372 msgid "Hospitals" msgstr "Krankenhäuser" #: src/poiCategories.js:378 msgid "Dentists" msgstr "Zahnärzte" #: src/poiCategories.js:386 msgid "Accommodation" msgstr "Unterkünfte" #: src/poiCategories.js:390 msgid "Hotels" msgstr "Hotels" #: src/poiCategories.js:395 msgid "Hostels" msgstr "Hostels" #: src/poiCategories.js:400 msgid "Bed & Breakfast" msgstr "Bed & Breakfast" #: src/poiCategories.js:405 msgid "Campings" msgstr "Campingplätze" #: src/poiCategories.js:412 msgid "Recreation" msgstr "Erholung" #: src/poiCategories.js:416 msgid "Parks" msgstr "Parks" #: src/poiCategories.js:421 msgid "Playgrounds" msgstr "Spielplätze" #: src/poiCategories.js:425 msgid "Beaches" msgstr "Strände" #: src/poiCategories.js:430 msgid "Nature Reserves" msgstr "Naturschutzgebiete" #: src/poiCategories.js:436 msgid "Theme Parks" msgstr "Freizeitparks" #: src/poiCategories.js:441 msgid "Theaters" msgstr "Theater" #: src/poiCategories.js:447 msgid "Movie Theaters" msgstr "Kinos" #: src/poiCategories.js:453 msgid "Night Clubs" msgstr "Nachtclubs" #: src/poiCategories.js:460 msgid "Tourism" msgstr "Tourismus" #: src/poiCategories.js:464 msgid "Museums" msgstr "Museen" #: src/poiCategories.js:470 msgid "Attractions" msgstr "Attraktionen" #: src/poiCategories.js:475 msgid "Artworks" msgstr "Kunstwerke" #: src/poiCategories.js:480 msgid "Tourist Information" msgstr "Touristeninformation" #: src/poiCategories.js:487 msgid "Sports" msgstr "Sport" #: src/poiCategories.js:491 msgid "Gyms" msgstr "Fitnessstudios" #: src/poiCategories.js:497 msgid "Outdoor Gyms" msgstr "Outdoor-Fitnessstudios" #: src/poiCategories.js:503 msgid "Golf Courses" msgstr "Golfplätze" #: src/printLayout.js:350 #, javascript-format msgid "From %s to %s" msgstr "Von %s nach %s" #: src/printOperation.js:49 msgid "Loading map tiles for printing" msgstr "Kartenausschnitte zum Drucken werden geladen" #: src/printOperation.js:50 msgid "You can abort printing if this takes too long" msgstr "Sie können den Druck abbrechen, wenn dies zu lange dauert" #: src/printOperation.js:52 msgid "Abort printing" msgstr "Drucken abbrechen" #. Translators: this is add via location tooltip #: src/routeEntry.js:60 msgid "Add via location" msgstr "Zwischenstopp hinzufügen" #. Translators: this is remove via location tooltip #: src/routeEntry.js:70 msgid "Remove via location" msgstr "Zwischenstopp entfernen" #. Translators: this is reverse route tooltip #: src/routeEntry.js:76 msgid "Reverse route" msgstr "Route umkehren" #: src/searchBar.js:45 msgid "Search" msgstr "Suche" #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:84 #, javascript-format msgid "Add %s to %s" msgstr "%s zu %s hinzufügen" #: src/sendToDialog.js:181 msgid "Failed to open URI" msgstr "Adresse konnte nicht geöffnet werden" #: src/sendToDialog.js:246 #, javascript-format msgid "Open with %s" msgstr "Öffnen mit %s" #: src/shapeLayer.js:109 msgid "failed to load file" msgstr "Laden der Datei ist fehlgeschlagen" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:328 #, javascript-format msgid "Estimated time: %s" msgstr "Geschätzte Zeit: %s" #: src/sidebar.js:398 #, javascript-format msgid "Itineraries provided by %s" msgstr "Reiseplan bereitgestellt von %s" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:39 #, javascript-format msgid "Start at %s" msgstr "Abfahrt in %s" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:45 src/transitplugins/openTripPlanner2.js:236 msgid "Start" msgstr "Abfahrt" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:63 #, javascript-format msgid "Walk %s" msgstr "Fußweg %s" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:77 #, javascript-format msgid "Arrive at %s" msgstr "Ankunft in %s" #: src/transit.js:79 src/transitplugins/openTripPlanner.js:1176 #: src/transitplugins/openTripPlanner2.js:255 msgid "Arrive" msgstr "Ankunft" #: src/transitLegRow.js:69 msgid "Show walking instructions" msgstr "Anweisungen für den Fußweg anzeigen" #: src/transitLegRow.js:70 msgid "Hide walking instructions" msgstr "Anweisungen für den Fußweg verbergen" #: src/transitMoreRow.js:37 msgid "Load earlier alternatives" msgstr "Frühere Alternativen laden" #: src/transitMoreRow.js:39 msgid "Load later alternatives" msgstr "Spätere Alternativen laden" #: src/transitMoreRow.js:52 msgid "No earlier alternatives found." msgstr "Keine früheren Alternativen gefunden." #: src/transitMoreRow.js:54 msgid "No later alternatives found." msgstr "Keine späteren Alternativen gefunden." #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:138 msgctxt "month-day-date" msgid "%b %e" msgstr "%e. %b" #: src/transitPlan.js:171 msgid "No timetable data found for this route." msgstr "Für diese Route wurden keine Fahrplandaten gefunden." #: src/transitPlan.js:179 msgid "No provider found for this route." msgstr "Für diese Route wurden kein Anbieter gefunden." #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:300 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:331 #, javascript-format msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "%s Minute" msgstr[1] "%s Minuten" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:343 #, javascript-format msgid "%s hour" msgid_plural "%s hours" msgstr[0] "%s Stunde" msgstr[1] "%s Stunden" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:351 #, javascript-format msgid "%s:%s hour" msgid_plural "%s:%s hours" msgstr[0] "%s:%s Stunde" msgstr[1] "%s:%s Stunden" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:744 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: src/translations.js:55 msgid "Around the clock" msgstr "Jederzeit" #: src/translations.js:57 msgid "From sunrise to sunset" msgstr "Von Sonnenaufgang bis Sonnenuntergang" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:123 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s,%s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:137 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s,%s,%s" #: src/translations.js:156 msgid "Every day" msgstr "Jeden Tag" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:168 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:179 msgid "Public holidays" msgstr "Gesetzliche Feiertage" #: src/translations.js:181 msgid "School holidays" msgstr "Schulferien" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:221 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: src/translations.js:235 msgid "not open" msgstr "geschlossen" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:250 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:287 msgid "Bahá'í" msgstr "Bahaitum" #. Translators: Accuracy of user location information #: src/utils.js:248 msgid "Unknown" msgstr "Unbekannt" #. Translators: Accuracy of user location information #: src/utils.js:251 msgid "Exact" msgstr "Genau" #. Translators: this is a duration with only hours, using #. * an abbreviation for hours, corresponding to 'h' in English #. #: src/utils.js:307 #, javascript-format msgid "%s h" msgstr "%s h" #. Translators: this is a duration with hours and minutes parts #. * using abbreviations for hours and minutes, corresponding to 'h' #. * and 'min' in English. The minutes has appropriate plural variations #. #: src/utils.js:313 #, javascript-format msgid "%s h %s min" msgid_plural "%s h %s min" msgstr[0] "%s h, %s min" msgstr[1] "%s h, %s min" #. Translators: this is a duration with minutes part #. * using abbreviation for minutes, corresponding to 'min' in English #. * with appropriate plural variations #. #: src/utils.js:320 #, javascript-format msgid "%s min" msgid_plural "%s min" msgstr[0] "%s min" msgstr[1] "%s min" #. Translators: this is a duration of less than one minute #. * with seconds using an abbreviation for seconds, corresponding to #. * 's' in English with appropriate plural forms #. #: src/utils.js:326 #, javascript-format msgid "%s s" msgid_plural "%s s" msgstr[0] "%s s" msgstr[1] "%s s" #. Translators: This is a distance measured in kilometers #: src/utils.js:337 #, javascript-format msgid "%s km" msgstr "%s km" #. Translators: This is a distance measured in meters #: src/utils.js:340 #, javascript-format msgid "%s m" msgstr "%s m" #. Translators: This is a distance measured in miles #: src/utils.js:348 #, javascript-format msgid "%s mi" msgstr "%s mi" #. Translators: This is a distance measured in feet #: src/utils.js:351 #, javascript-format msgid "%s ft" msgstr "%s ft" #: src/transitplugins/goMetro.js:61 msgid "This plugin doesn't support latest arrival" msgstr "Dieses Plugin unterstützt nicht die letzte Ankunft" #: src/transitplugins/openTripPlanner.js:1237 #: src/transitplugins/openTripPlanner2.js:266 #, javascript-format msgid "Continue on %s" msgstr "Fortsetzen auf %s" #: src/transitplugins/openTripPlanner.js:1242 #: src/transitplugins/openTripPlanner2.js:270 #, javascript-format msgid "Turn left on %s" msgstr "Links abbiegen auf %s" #: src/transitplugins/openTripPlanner.js:1244 #: src/transitplugins/openTripPlanner2.js:271 msgid "Turn left" msgstr "Links abbiegen" #: src/transitplugins/openTripPlanner.js:1247 #: src/transitplugins/openTripPlanner2.js:275 #, javascript-format msgid "Turn slightly left on %s" msgstr "Halb links abbiegen auf %s" #: src/transitplugins/openTripPlanner.js:1249 #: src/transitplugins/openTripPlanner2.js:276 msgid "Turn slightly left" msgstr "Halb links abbiegen" #: src/transitplugins/openTripPlanner.js:1252 #: src/transitplugins/openTripPlanner2.js:280 #, javascript-format msgid "Turn sharp left on %s" msgstr "Scharf links abbiegen auf %s" #: src/transitplugins/openTripPlanner.js:1254 #: src/transitplugins/openTripPlanner2.js:281 msgid "Turn sharp left" msgstr "Scharf links abbiegen" #: src/transitplugins/openTripPlanner.js:1257 #: src/transitplugins/openTripPlanner2.js:284 #, javascript-format msgid "Turn right on %s" msgstr "Rechts abbiegen auf %s" #: src/transitplugins/openTripPlanner.js:1259 #: src/transitplugins/openTripPlanner2.js:285 msgid "Turn right" msgstr "Rechts abbiegen" #: src/transitplugins/openTripPlanner.js:1262 #: src/transitplugins/openTripPlanner2.js:289 #, javascript-format msgid "Turn slightly right on %s" msgstr "Halb rechts abbiegen auf %s" #: src/transitplugins/openTripPlanner.js:1264 #: src/transitplugins/openTripPlanner2.js:290 msgid "Turn slightly right" msgstr "Halb rechts abbiegen" #: src/transitplugins/openTripPlanner.js:1267 #: src/transitplugins/openTripPlanner2.js:294 #, javascript-format msgid "Turn sharp right on %s" msgstr "Scharf rechts abbiegen auf %s" #: src/transitplugins/openTripPlanner.js:1269 #: src/transitplugins/openTripPlanner2.js:295 msgid "Turn sharp right" msgstr "Scharf rechts abbiegen" #: src/transitplugins/openTripPlanner.js:1275 #: src/transitplugins/openTripPlanner2.js:302 #, javascript-format msgid "At the roundabout, take exit %s" msgstr "Im Kreisverkehr die Ausfahrt %s nehmen" #: src/transitplugins/openTripPlanner.js:1277 #: src/transitplugins/openTripPlanner2.js:305 #, javascript-format msgid "At the roundabout, take exit to %s" msgstr "Im Kreisverkehr die Ausfahrt Richtung %s nehmen" #: src/transitplugins/openTripPlanner.js:1279 #: src/transitplugins/openTripPlanner2.js:307 msgid "Take the roundabout" msgstr "In den Kreisverkehr fahren" #: src/transitplugins/openTripPlanner.js:1283 #: src/transitplugins/openTripPlanner2.js:315 #, javascript-format msgid "Take the elevator and get off at %s" msgstr "Den Aufzug nehmen und bei %s aussteigen" #: src/transitplugins/openTripPlanner.js:1285 #: src/transitplugins/openTripPlanner2.js:316 msgid "Take the elevator" msgstr "Den Aufzug nehmen" #: src/transitplugins/openTripPlanner.js:1289 #: src/transitplugins/openTripPlanner2.js:320 #, javascript-format msgid "Make a left u-turn onto %s" msgstr "Eine Kehrtwende nach links auf %s machen" #: src/transitplugins/openTripPlanner.js:1291 #: src/transitplugins/openTripPlanner2.js:321 msgid "Make a left u-turn" msgstr "Eine Kehrtwende nach links machen" #: src/transitplugins/openTripPlanner.js:1294 #: src/transitplugins/openTripPlanner2.js:325 #, javascript-format msgid "Make a right u-turn onto %s" msgstr "Eine Kehrtwende nach rechts auf %s machen" #: src/transitplugins/openTripPlanner.js:1296 #: src/transitplugins/openTripPlanner2.js:326 msgid "Make a right u-turn" msgstr "Eine Kehrtwende nach rechts machen" #~ msgid "Sign in to edit maps" #~ msgstr "" #~ "Anmelden, um Karten bearbeiten zu " #~ "können" #~ msgid "" #~ "Sign in to authorize access in a web browser.\n" #~ "Then fill in the obtained verification code here in the next step." #~ msgstr "" #~ "Melden Sie sich an, um den Zugang in einem Web-Browser zu legitimieren.\n" #~ "Fügen Sie anschließend den erhaltenen Verifizierungscode im nächsten " #~ "Schritt hier ein." #~ msgid "Signed In" #~ msgstr "Angemeldet" #~ msgid "E-mail" #~ msgstr "E-Mail" #~ msgid "Sign up" #~ msgstr "Registrieren" #~ msgid "Filesystem is read only" #~ msgstr "Dateisystem ist schreibgeschützt" #~ msgid "You do not have permission to save there" #~ msgstr "Sie haben nicht die nötigen Rechte zum Speichern" #~ msgid "The directory does not exist" #~ msgstr "Der Ordner existiert nicht" #~ msgid "No filename specified" #~ msgstr "Kein Dateiname angegeben" #~ msgid "" #~ "Location was added to the map, note that it may take a while before it " #~ "shows on the map and in search results." #~ msgstr "" #~ "Der Ort wurde zur Karte hinzugefügt. Beachten Sie, dass es eine Zeit " #~ "dauern kann, bis er in der Karte und in den Suchergebnissen erscheint." #~ msgid "Takeaway" #~ msgstr "Zum Mitnehmen" #~ msgid "Go to current location" #~ msgstr "Zum aktuellen Ort springen" #~ msgid "Choose map type" #~ msgstr "Wählen Sie den Kartentyp" #~ msgid "Zoom in" #~ msgstr "Vergrößern" #~ msgid "Drag to change order of the route" #~ msgstr "Ziehen, um die Reihenfolge der Routenziele zu ändern" #~ msgid "Include route and markers" #~ msgstr "Route und Markierungen einbeziehen" #~ msgid "A map application for GNOME" #~ msgstr "Eine Karten-Anwendung für GNOME" #~ msgid "Failed to authorize access" #~ msgstr "Zugang konnte nicht legitimiert werden" #~ msgid "Try again" #~ msgstr "Erneut versuchen" #~ msgid "Use hybrid aerial tiles" #~ msgstr "Verwendung von Hybrid-Luftausschnitten" #~ msgid "Whether aerial tiles should use hybrid style (with labels)." #~ msgstr "" #~ "Gibt an, ob Luftausschnitte Hybrid verwenden sollen (mit Markierungen)." #~ msgid "Show Labels" #~ msgstr "Markierungen anzeigen" #~ msgid "Foursquare check-in privacy setting" #~ msgstr "Privatsphäreneinstellungen für Foursquare-Check-in" #~ msgid "" #~ "Latest used Foursquare check-in privacy setting. Possible values are: " #~ "public, followers or private." #~ msgstr "" #~ "Zuletzt verwendete Privatsphäreneinstellungen für Foursquare-Check-in. " #~ "Mögliche Werte sind: Öffentlich, Anhänger oder Privat." #~ msgid "Foursquare check-in Facebook broadcasting" #~ msgstr "Mitteilung eines Foursquare-Check-ins via Facebook" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a post in the " #~ "Facebook account associated with the Foursquare account." #~ msgstr "" #~ "Legt fest, ob Foursquare einen Check-in als Nachricht in einem " #~ "verbundenen Facebook-Konto veröffentlicht." #~ msgid "Foursquare check-in Twitter broadcasting" #~ msgstr "Mitteilung eines Foursquare-Check-ins via Twitter" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a tweet in the " #~ "Twitter account associated with the Foursquare account." #~ msgstr "" #~ "Legt fest, ob Foursquare einen Check-in als Nachricht in einem " #~ "verbundenen Twitter-Konto veröffentlicht." #~ msgid "Visibility" #~ msgstr "Sichtbarkeit" #~ msgid "Post on Facebook" #~ msgstr "Auf Facebook veröffentlichen" #~ msgid "Post on Twitter" #~ msgstr "Auf Twitter veröffentlichen" #~ msgid "C_heck in" #~ msgstr "Ein_checken" #~ msgid "Public" #~ msgstr "Öffentlich" #~ msgid "Private" #~ msgstr "Privat" #~ msgid "Maps is offline!" #~ msgstr "Karten ist vom Internet getrennt!" #~ msgid "" #~ "Maps need an active internet connection to function properly, but one " #~ "can’t be found." #~ msgstr "" #~ "Karten erfordert eine bestehende Internetverbindung, um richtig arbeiten " #~ "zu können. Es besteht aber keine." #~ msgid "Check your connection and proxy settings." #~ msgstr "Prüfen Sie Ihre Verbindung und die Proxy-Einstellungen." #~ msgid "Password" #~ msgstr "Passwort" #~ msgid "" #~ "Sorry, that didn’t work. Please try again, or visit\n" #~ "OpenStreetMap to reset your password." #~ msgstr "" #~ "Das hat leider nicht funktioniert. Bitte versuchen Sie es erneut, oder " #~ "besuchen Sie\n" #~ "OpenStreetMap, um Ihr Passwort zurückzusetzen." #~ msgid "Check In…" #~ msgstr "Ein_checken …" #~ msgid "Ignore network availability" #~ msgstr "Verfügbarkeit des Netzwerks ignorieren" #~ msgid "Select an account" #~ msgstr "Wählen Sie ein Konto aus" #~ msgid "Loading" #~ msgstr "Wird geladen" #~ msgid "Select a place" #~ msgstr "Wählen Sie einen Ort" #~ msgid "" #~ "Maps cannot find the place to check in to with Foursquare. Please select " #~ "one from this list." #~ msgstr "" #~ "Karten konnte keinen geeigneten Platz für einen Check-in in Foursquare " #~ "finden. Bitte wählen Sie einen aus der Liste." #~ msgid "Check in to %s" #~ msgstr "Bei %s einchecken" #~ msgid "Write an optional message to check in to %s." #~ msgstr "Schreiben Sie eine optionale Nachricht, um bei %s einzuchecken." #~ msgid "Cannot find “%s” in the social service" #~ msgstr "»%s« konnte im sozialen Netzwerk nicht gefunden werden" #~ msgid "Cannot find a suitable place to check-in in this location" #~ msgstr "" #~ "Für einen Check-in konnte an diesem Ort kein geeigneter Platz gefunden " #~ "werden" #~ msgid "" #~ "Credentials have expired, please open Online Accounts to sign in and " #~ "enable this account" #~ msgstr "" #~ "Die Anmeldedaten sind abgelaufen. Bitte öffnen Sie Online-Konten, um sich " #~ "anzumelden und das Konto zu aktivieren" #~ msgid "GNOME Maps" #~ msgstr "GNOME Karten" #~ msgid "Night mode" #~ msgstr "Nachtmodus" #~ msgid "Whether the application is in night mode." #~ msgstr "Gibt an, ob sich die Anwendung im Nachtmodus befindet." #~ msgid "Night Mode" #~ msgstr "Nachtmodus" #~ msgid "" #~ "You can even search for specific types of locations, such as “Pubs near " #~ "Main Street, Boston” or “Hotels near Alexanderplatz, Berlin”." #~ msgstr "" #~ "Suchen Sie nach bestimmten Arten von Orten, wie »Kneipen in der Nähe von " #~ "Main Street, Boston« oder »Hotels in der Nähe vom Alexanderplatz, Berlin«." #~ msgid "Facebook check-in privacy setting" #~ msgstr "Privatsphäreneinstellungen für Facebook-Check-in" #~ msgid "" #~ "Latest used Facebook check-in privacy setting. Possible values are: " #~ "EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS or SELF." #~ msgstr "" #~ "Zuletzt verwendete Privatsphäreneinstellungen für Facebook-Check-in. " #~ "Mögliche Werte sind: EVERYONE (jeder), FRIENDS_OF_FRIENDS (Freunde von " #~ "Freunden), ALL_FRIENDS (alle Freunde) oder SELF (selbst)." #~ msgid "Everyone" #~ msgstr "Jeder" #~ msgid "Friends of friends" #~ msgstr "Freunde von Freunden" #~ msgid "Just friends" #~ msgstr "Nur Freunde" #~ msgid "Just me" #~ msgstr "Nur ich" #~ msgid "" #~ "Maps cannot find the place to check in to with Facebook. Please select " #~ "one from this list." #~ msgstr "" #~ "Karten konnte keinen geeigneten Platz für einen Check-in in Facebook " #~ "finden. Bitte wählen Sie einen aus der Liste." #~ msgctxt "time range list" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgctxt "time range list" #~ msgid "%s %s %s" #~ msgstr "%s, %s und %s" #~ msgctxt "time range component" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgid "Check in here" #~ msgstr "Hier einchecken" #~ msgid "Population:" #~ msgstr "Bevölkerung:" #~ msgid "Altitude:" #~ msgstr "Höhe:" #~ msgid "Opening hours:" #~ msgstr "Öffnungszeiten:" #~ msgid "Internet access:" #~ msgstr "Internetzugang:" #~ msgid "Toilets:" #~ msgstr "Toiletten:" #~ msgid "Wheelchair access:" #~ msgstr "Barrierefreier Zugang:" #~ msgid "Phone:" #~ msgstr "Telefon:" #~ msgid "yes" #~ msgstr "ja" #~ msgid "limited" #~ msgstr "begrenzt" #~ msgid "no" #~ msgstr "nein" #~ msgid "designated" #~ msgstr "geeignet" #~ msgid "OpenStreetMap URL is not valid" #~ msgstr "OpenStreetMap-Adresse ist ungültig" #~ msgid "wired" #~ msgstr "Kabelgebunden" #~ msgid "terminal" #~ msgstr "Terminal" #~ msgid "service" #~ msgstr "Dienst" #~| msgid "Print Route" #~ msgid "Find a Route" #~ msgstr "Route suchen" #~ msgid "Primary menu" #~ msgstr "Hauptmenü" #~ msgid "Don’t have an account?" #~ msgstr "Sie haben kein Konto?" #~ msgid "%f h" #~ msgstr "%f h" #~ msgid "%f min" #~ msgstr "%f min" #~ msgid "%f s" #~ msgstr "%f s" #~ msgid "Route search by OpenTripPlanner" #~ msgstr "Routenplanung von OpenTripPlanner" #~ msgid "Add destination" #~ msgstr "Ziel hinzufügen" #~ msgid "org.gnome.Maps" #~ msgstr "org.gnome.Maps" #~ msgid "Open with another application" #~ msgstr "Mit einer anderen Anwendung öffnen" #~ msgid "Press enter to search" #~ msgstr "Drücken Sie zum Suchen die Eingabetaste" #~ msgid "Quit" #~ msgstr "Verlassen" 070701000001B9000081A40000000000000000000000016641340900013C94000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/el.po# Greek translation for gnome-maps. # Copyright (C) 2013 gnome-maps's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-maps package. # Dimitris Spingos , 2013. # Dimitris Spingos (Δημήτρης Σπίγγος) , 2013, 2014, 2015. # Efstathios Iosifidis , 2013-2022. # msgid "" msgstr "" "Project-Id-Version: gnome-maps master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2024-04-08 13:03+0000\n" "PO-Revision-Date: 2024-05-01 00:05+0300\n" "Last-Translator: Efstathios Iosifidis \n" "Language-Team: Greek, Modern (1453-) \n" "Language: el\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.4.2\n" "X-Project-Style: gnome\n" #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.appdata.xml.in.in:6 data/org.gnome.Maps.desktop.in.in:4 #: data/ui/main-window.ui:27 src/application.js:64 src/mainWindow.js:147 #: src/mainWindow.js:647 msgid "Maps" msgstr "Χάρτες" #: data/org.gnome.Maps.appdata.xml.in.in:7 msgid "Find places around the world" msgstr "Βρείτε μέρη από όλο τον κόσμο" #: data/org.gnome.Maps.appdata.xml.in.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "Η εφαρμογή Χάρτες, σας παρέχει μια γρήγορη πρόσβαση σε χάρτες από όλο τον " "κόσμο. Σας επιτρέπει να βρείτε γρήγορα μια τοποθεσία αναζητώντας είτε μια " "πόλη είτε μια οδό, ή μπορείτε να εντοπίσετε μια τοποθεσία για να συναντήσετε " "ένα φίλο." #: data/org.gnome.Maps.appdata.xml.in.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "Η εφαρμογή Χάρτες, χρησιμοποιεί την βάση δεδομένων OpenStreetMap, που έχει " "φτιαχτεί από χιλιάδες άτομα σε όλο τον κόσμο." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Maps.appdata.xml.in.in:468 src/mainWindow.js:644 msgid "The GNOME Project" msgstr "Το έργο GNOME" #: data/org.gnome.Maps.desktop.in.in:5 msgid "A simple maps application" msgstr "Μια απλή εφαρμογή χαρτών" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in.in:14 msgid "Maps;" msgstr "Χάρτες;Maps;" #: data/org.gnome.Maps.desktop.in.in:17 msgid "Allows your location to be shown on the map." msgstr "Επιτρέπει την τοποθεσία σας να εμφανιστεί στον χάρτη." #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "τελευταία τοποθεσία που προβλήθηκε" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "Συντεταγμένες τελευταίας τοποθεσίας που προβλήθηκε." #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "εστίαση" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "Επίπεδο εστίασης" #: data/org.gnome.Maps.gschema.xml:21 msgid "rotation" msgstr "περιστροφή" #: data/org.gnome.Maps.gschema.xml:22 msgid "Map rotation in radians" msgstr "Περιστροφή χάρτη σε ακτίνια" #: data/org.gnome.Maps.gschema.xml:26 msgid "Map type" msgstr "Τύπος χάρτη" #: data/org.gnome.Maps.gschema.xml:27 msgid "The type of map to display (street, aerial, etc.)" msgstr "Ο τύπος του χάρτη για προβολή (δρόμος, εναέριος κλπ.)" #: data/org.gnome.Maps.gschema.xml:31 msgid "Window size" msgstr "Μέγεθος παραθύρου" #: data/org.gnome.Maps.gschema.xml:32 msgid "Window size (width and height)." msgstr "Μέγεθος παραθύρου (πλάτος και ύψος)." #: data/org.gnome.Maps.gschema.xml:36 msgid "Window position" msgstr "Θέση παραθύρου" #: data/org.gnome.Maps.gschema.xml:37 msgid "Window position (X and Y)." msgstr "Θέση παραθύρου (Χ και Υ)." #: data/org.gnome.Maps.gschema.xml:41 msgid "Window maximized" msgstr "Μεγιστοποιημένο παράθυρο" #: data/org.gnome.Maps.gschema.xml:42 msgid "Window maximization state" msgstr "Κατάσταση μεγιστοποίησης παραθύρου" #: data/org.gnome.Maps.gschema.xml:46 msgid "Maximum number of search results" msgstr "Μέγιστος αριθμός αποτελεσμάτων αναζήτησης" #: data/org.gnome.Maps.gschema.xml:47 msgid "Maximum number of search results from geocode search." msgstr "" "Μέχιστος αριθμός αποτελεσμάτων αναζήτησης από την αναζήτηση στο geocode." #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent places to store" msgstr "Αριθμός πρόσφατων τοποθεσιών για αποθήκευση" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited places to store." msgstr "Αριθμός τοποθεσιών, που έχετε επισκεφθεί πρόσφατα, για αποθήκευση." #: data/org.gnome.Maps.gschema.xml:56 msgid "Number of recent routes to store" msgstr "Αριθμός πρόσφατων διαδρομών για αποθήκευση" #: data/org.gnome.Maps.gschema.xml:57 msgid "Number of recently visited routes to store." msgstr "Αριθμός διαδρομών, που έχετε επισκεφθεί πρόσφατα, για αποθήκευση." #: data/org.gnome.Maps.gschema.xml:61 msgid "OpenStreetMap username or email address" msgstr "Όνομα χρήστη ή διεύθυνση ηλεκτρονικού ταχυδρομείου του OpenStreetMap" #: data/org.gnome.Maps.gschema.xml:62 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "" "Υποδεικνύει αν ο χρήστης έχει συνδεθεί για να επεξεργαστεί τα δεδομένα του " "OpenStreetMap." #: data/org.gnome.Maps.gschema.xml:66 msgid "Last used transportation type for routing" msgstr "Τελευταία χρησιμοποιημένος τύπος μεταφορικών μέσων για δρομολόγια" #: data/org.gnome.Maps.gschema.xml:70 msgid "Show scale" msgstr "Εμφάνιση κλίμακας" #: data/org.gnome.Maps.gschema.xml:71 msgid "Whether to show the scale." msgstr "Εάν θα εμφανίζεται η κλίμακα." #: data/ui/context-menu.ui:6 msgid "Route from Here" msgstr "Διαδρομή από εδώ" #: data/ui/context-menu.ui:10 msgid "Add Intermediate Destination" msgstr "Προσθήκη ενδιάμεσου προορισμού" #: data/ui/context-menu.ui:14 msgid "Route to Here" msgstr "Διαδρομή προς εδώ" #: data/ui/context-menu.ui:20 msgid "What's Here?" msgstr "Τι έχουμε εδώ;" #: data/ui/context-menu.ui:24 msgid "Copy Location" msgstr "Αντιγραφή τοποθεσίας" #: data/ui/context-menu.ui:28 msgid "Add to OpenStreetMap…" msgstr "Προσθήκη στο OpenStreetMap…" #: data/ui/export-view-dialog.ui:7 msgid "Export view" msgstr "Προβολή εξαγωγής" #: data/ui/export-view-dialog.ui:16 data/ui/send-to-dialog.ui:10 #: data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "Ά_κυρο" #: data/ui/export-view-dialog.ui:26 msgid "_Export" msgstr "Ε_ξαγωγή" #. Translators: This is a tooltip #: data/ui/favorite-list-row.ui:72 msgid "Remove Favorite" msgstr "Αφαίρεση αγαπημένου" #: data/ui/favorites-popover.ui:11 msgid "No Favorites" msgstr "Χωρίς αγαπημένα" #: data/ui/favorites-popover.ui:12 msgid "Add places to your favorites to get them listed here" msgstr "Προσθέστε τα μέρη στα αγαπημένα σας για να τα βρείτε εδώ" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:11 src/geoclue.js:106 src/placeBar.js:91 msgid "Current Location" msgstr "Τρέχουσα τοποθεσία" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:19 msgid "Layers" msgstr "Στρώσεις" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:11 msgid "Print Route" msgstr "Εκτύπωση διαδρομής" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:21 msgid "Favorites" msgstr "Αγαπημένα" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:30 msgid "Route Planner" msgstr "Σχεδιαστής διαδρομής" #: data/ui/help-overlay.ui:12 msgctxt "shortcut window" msgid "General" msgstr "Γενικά" #: data/ui/help-overlay.ui:15 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "Εμφάνιση συντομεύσεων" #: data/ui/help-overlay.ui:21 msgctxt "shortcut window" msgid "Search" msgstr "Αναζήτηση" #: data/ui/help-overlay.ui:27 msgctxt "shortcut window" msgid "Explore points-of-interest" msgstr "Εξερεύνηση σημείων ενδιαφέροντος" #: data/ui/help-overlay.ui:33 msgctxt "shortcut window" msgid "Show last search results" msgstr "Εμφάνιση των τελευταίων αποτελεσμάτων αναζήτησης" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "Εναλλαγή οργανωτή διαδρομής" #: data/ui/help-overlay.ui:45 msgctxt "shortcut window" msgid "Print route" msgstr "Εκτύπωση διαδρομής" #: data/ui/help-overlay.ui:51 msgctxt "shortcut window" msgid "Quit" msgstr "Έξοδος" #: data/ui/help-overlay.ui:57 msgctxt "shortcut window" msgid "Open main menu" msgstr "Άνοιγμα κυρίως μενού" #: data/ui/help-overlay.ui:65 msgctxt "shortcut window" msgid "Map View" msgstr "Προβολή χάρτη" #: data/ui/help-overlay.ui:68 msgctxt "shortcut window" msgid "Zoom in" msgstr "Μεγέθυνση" #: data/ui/help-overlay.ui:74 msgctxt "shortcut window" msgid "Zoom out" msgstr "Σμίκρυνση" #: data/ui/help-overlay.ui:80 msgctxt "shortcut window" msgid "Rotate clockwise" msgstr "Περιστροφή δεξιόστροφα" #: data/ui/help-overlay.ui:86 msgctxt "shortcut window" msgid "Rotate counter-clockwise" msgstr "Περιστροφή αριστερόστροφα" #: data/ui/help-overlay.ui:92 msgctxt "shortcut window" msgid "Reset rotation" msgstr "Επαναφορά περιστροφής" #: data/ui/help-overlay.ui:98 msgctxt "shortcut window" msgid "Toggle scale" msgstr "Εναλλαγή εστίασης" #: data/ui/help-overlay.ui:104 msgctxt "shortcut window" msgid "Go to current location" msgstr "Μετάβαση στην τρέχουσα τοποθεσία" #: data/ui/help-overlay.ui:114 msgctxt "shortcut window" msgid "Switch to street view" msgstr "Εναλλαγή σε προβολή δρόμου" #: data/ui/help-overlay.ui:121 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "Εναλλαγή σε εναέρια προβολή" #: data/ui/help-overlay.ui:127 msgctxt "shortcut window" msgid "Open shape layer" msgstr "Άνοιγμα στρώσης σχήματος" #: data/ui/layers-popover.ui:7 msgid "Show Scale" msgstr "Εμφάνιση κλίμακας" #: data/ui/layers-popover.ui:16 msgid "Enable Experimental Map" msgstr "Ενεργοποίηση πειραματικού χάρτη" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:21 msgid "Open Shape Layer…" msgstr "Άνοιγμα στρώσης σχήματος…" #: data/ui/main-window.ui:8 msgid "Set up OpenStreetMap Account…" msgstr "Ρύθμιση λογαριασμού OpenStreetMap…" #: data/ui/main-window.ui:12 msgid "Export as Image…" msgstr "Εξαγωγή ως εικόνα…" #: data/ui/main-window.ui:17 msgid "_Keyboard Shortcuts" msgstr "Συντομεύσεις _πληκτρολογίου" #: data/ui/main-window.ui:22 msgid "About Maps" msgstr "Περί του Χάρτες" #: data/ui/main-window.ui:48 msgid "Main Menu" msgstr "Κυρίως μενού" #: data/ui/osm-account-dialog.ui:5 msgid "OpenStreetMap Account" msgstr "Λογαριασμός OpenStreetMap" #: data/ui/osm-account-dialog.ui:31 msgid "Sign In To Edit Maps" msgstr "Συνδεθείτε για να επεξεργαστείτε χάρτες" #: data/ui/osm-account-dialog.ui:32 msgid "Help to improve the map, using an OpenStreetMap account." msgstr "" "Βοηθήστε στη βελτίωση του χάρτη, χρησιμοποιώντας έναν λογαριασμό " "OpenStreetMap." #: data/ui/osm-account-dialog.ui:36 msgid "Sign In" msgstr "Σύνδεση" #: data/ui/osm-account-dialog.ui:59 msgid "Verification" msgstr "Επιβεβαίωση" #: data/ui/osm-account-dialog.ui:60 msgid "" "Copy the verification code shown when authorizing access in the browser." msgstr "" "Αντιγράψτε τον κωδικό επαλήθευσης που εμφανίζεται κατά την εξουσιοδότηση " "πρόσβασης στο πρόγραμμα περιήγησης." #: data/ui/osm-account-dialog.ui:69 msgid "Verification Code" msgstr "Κωδικός επιβεβαίωσης" #: data/ui/osm-account-dialog.ui:75 msgid "Verify" msgstr "Επαλήθευση" #: data/ui/osm-account-dialog.ui:110 msgid "Signed In" msgstr "Συνδεδεμένος" #: data/ui/osm-account-dialog.ui:111 msgid "Your OpenStreetMap account is active." msgstr "Ο λογαριασμός στο OpenStreetMap είναι ενεργός." #: data/ui/osm-account-dialog.ui:129 msgid "Sign Out" msgstr "Αποσύνδεση" #: data/ui/osm-edit-address.ui:11 msgid "Street" msgstr "Οδός" #: data/ui/osm-edit-address.ui:22 msgid "House number" msgstr "Αριθμός κατοικίας" #: data/ui/osm-edit-address.ui:33 msgid "Postal code" msgstr "Ταχ. κώδικας" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:44 msgid "City" msgstr "Πόλη" #: data/ui/osm-edit-dialog.ui:8 msgctxt "dialog title" msgid "Edit on OpenStreetMap" msgstr "Επεξεργασία στο OpenStreetMap" #: data/ui/osm-edit-dialog.ui:57 msgid "Type" msgstr "Τύπος" #: data/ui/osm-edit-dialog.ui:79 msgid "None" msgstr "Χωρίς" #: data/ui/osm-edit-dialog.ui:108 msgid "Add Field" msgstr "Προσθήκη πεδίου" #: data/ui/osm-edit-dialog.ui:130 msgid "Comment" msgstr "Σχόλιο" #: data/ui/osm-edit-dialog.ui:158 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "Οι αλλαγές θα γίνουν ορατές σε όλους τους χάρτες που\n" "χρησιμοποιούν δεδομένα του OpenStreetMap." #: data/ui/osm-edit-dialog.ui:186 msgid "Recently Used" msgstr "Πρόσφατα χρησιμοποιημένα" #: data/ui/osm-edit-dialog.ui:225 src/mapView.js:671 msgid "Cancel" msgstr "Ακύρωση" #: data/ui/osm-edit-dialog.ui:238 src/osmEditDialog.js:531 msgid "Next" msgstr "Επόμενο" #: data/ui/osm-edit-wikipedia.ui:8 msgid "Article" msgstr "Άρθρο" #: data/ui/osm-edit-wikipedia.ui:21 msgid "Wikidata tag" msgstr "Ετικέτα Wikidata" #: data/ui/osm-edit-wikipedia.ui:32 msgid "Load Wikidata tag for article" msgstr "Φόρτωση ετικέτας Wikidata για άρθρο" #: data/ui/place-popover.ui:23 src/searchBar.js:55 msgid "Explore Nearby Places" msgstr "Εξερεύνηση κοντινών μερών" #: data/ui/place-popover.ui:82 src/application.js:277 msgid "No results found" msgstr "Δεν βρέθηκαν αποτελέσματα" #: data/ui/place-popover.ui:92 src/application.js:255 msgid "An error has occurred" msgstr "Παρουσιάστηκε σφάλμα" #. Translators: This is a tooltip #: data/ui/route-entry.ui:12 msgid "Change Route Order" msgstr "Αλλαγή σειράς διαδρομής" #: data/ui/send-to-dialog.ui:7 msgid "Open Location" msgstr "Άνοιγμα τοποθεσίας" #: data/ui/send-to-dialog.ui:64 msgid "Copy" msgstr "Αντιγραφή" #: data/ui/send-to-dialog.ui:70 msgid "Send To…" msgstr "Αποστολή σε…" #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:62 msgid "Open Shape Layer" msgstr "Άνοιγμα στρώσης σχήματος" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "Ά_νοιγμα" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:32 msgid "Toggle visible" msgstr "Εναλλαγή ορατότητας" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:44 msgid "Remove Shape Layer" msgstr "Αφαίρεση στρώσης σχήματος" #: data/ui/sidebar.ui:207 msgid "Route search by GraphHopper" msgstr "Αναζήτηση διαδρομής από το GraphHopper" #: data/ui/sidebar.ui:272 msgid "" "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of " "transportation,\n" "e.g. a national provider might not include airlines, and a local provider " "could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" "Τα δρομολόγια για τα μέσα μαζικής μεταφοράς παρέχονται από υπηρεσίες\n" "από τρίτους.\n" "Το GNOME δεν μπορεί να εγγυηθεί την ορθότητα των δρομολογίων και των " "χρονοδιαγραμμάτων που εμφανίζονται.\n" "Σημειώστε ότι ορισμένοι πάροχοι ενδέχεται να μην περιλαμβάνουν όλους τους " "διαθέσιμους τρόπους μεταφοράς,\n" "π.χ. ένας εθνικός πάροχος ενδέχεται να μην περιλαμβάνει αεροπορικές " "εταιρείες και ένας τοπικός πάροχος θα μπορούσε\n" "παραλείψει περιφερειακά τρένα.\n" "Τα ονόματα και τα εμπορικά σήματα που εμφανίζονται πρέπει να θεωρούνται ως " "σήματα κατατεθέντα όταν ισχύουν." #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:98 msgid "Hide intermediate stops and information" msgstr "Απόκρυψη ενδιάμεσων στάσεων και πληροφοριών" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:156 msgid "Show intermediate stops and information" msgstr "Εμφάνιση ενδιάμεσων στάσεων και πληροφοριών" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:16 msgid "Leave Now" msgstr "Αναχώρηση τώρα" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:17 msgid "Leave By" msgstr "Αναχώρηση στις" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:18 msgid "Arrive By" msgstr "Άφιξη στις" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:85 msgid "Show" msgstr "Εμφάνιση" #: data/ui/transit-options-panel.ui:95 msgid "Buses" msgstr "Λεωφορεία" #: data/ui/transit-options-panel.ui:101 msgid "Trams" msgstr "Τραμ" #: data/ui/transit-options-panel.ui:107 msgid "Trains" msgstr "Τρένα" #: data/ui/transit-options-panel.ui:113 msgid "Subway" msgstr "Μετρό" #: data/ui/transit-options-panel.ui:119 msgid "Ferries" msgstr "Πλοία" #: data/ui/transit-options-panel.ui:125 msgid "Airplanes" msgstr "Αεροπλάνα" #. Translators: This is a tooltip #: data/ui/place-bar.ui:33 data/ui/place-buttons.ui:27 msgid "Share Location" msgstr "Διαμοιρασμός τοποθεσίας" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:11 msgid "Add to new route" msgstr "Προσθήκη σε νέα διαδρομή" #. Translators: This is the button to find a route to a place #: data/ui/place-buttons.ui:15 msgid "Directions" msgstr "Οδηγίες" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:36 msgid "Mark as Favorite" msgstr "Επισήμανση ως αγαπημένο" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:44 msgid "Edit on OpenStreetMap" msgstr "Επεξεργασία στο OpenStreetMap" #. Translators: This is a tooltip #: data/ui/place-view.ui:52 msgid "Share location" msgstr "Διαμοιρασμός τοποθεσίας" #: data/ui/poi-category-goback-row.ui:22 msgid "Back to Main Categories" msgstr "Επιστροφή στις κύριες κατηγορίες" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:19 msgid "Reset Rotation" msgstr "Επαναφορά περιστροφής" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:32 msgid "Zoom Out" msgstr "Σμίκρυνση" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:43 src/mapView.js:1246 msgid "Zoom In" msgstr "Μεγέθυνση" #: lib/maps-file-data-source.c:262 lib/maps-file-data-source.c:338 #: lib/maps-file-data-source.c:418 msgid "Failed to find tile structure in directory" msgstr "Αποτυχία εύρεσης δομής πλακιδίων στον κατάλογο" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "Αποτυχία ανάλυσης εγγράφου XML" #: lib/maps-osm.c:250 lib/maps-osm.c:403 msgid "Missing required attributes" msgstr "Λείπουν απαιτούμενα γνωρίσματα" #: lib/maps-osm.c:451 lib/maps-osm.c:494 msgid "Could not find OSM element" msgstr "Αποτυχία εύρεσης στοιχείου OSM" #: lib/maps-osm.c:508 msgid "Could not find user element" msgstr "Αδυναμία εύρεσης του στοιχείου χρήστη" #: src/application.js:78 msgid "A path to a local tiles directory structure" msgstr "Η τοποθεσία μιας τοπικής δομής πλακιδίων" #: src/application.js:84 msgid "Tile size for local tiles directory" msgstr "Μέγεθος πλακιδίων για τοπικό κατάλογο πλακιδίων" #: src/application.js:88 msgid "Show the version of the program" msgstr "Εμφάνιση της έκδοσης του προγράμματος" #: src/application.js:94 msgid "Search for places" msgstr "Αναζήτηση τοποθεσιών" #: src/application.js:105 src/application.js:106 msgid "[FILE…|URI]" msgstr "[FILE…|URI]" #: src/application.js:284 #, javascript-format msgid "Invalid maps: URI: %s" msgstr "Μη έγκυροι χάρτες: URI: %s" #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:75 #, javascript-format msgid "Maps at %f, %f.png" msgstr "Χάρτες στο %f, %f.png" #: src/exportViewDialog.js:174 msgid "Unable to export view" msgstr "Αδυναμία εξαγωγής προβολής" #: src/favoriteListRow.js:42 msgid "Favorite removed" msgstr "Το αγαπημένο αφαιρέθηκε" #: src/favoriteListRow.js:43 msgid "Undo" msgstr "Aναίρεση" #: src/geoJSONSource.js:73 msgid "invalid coordinate" msgstr "μη έγκυρη συντεταγμένη" #: src/geoJSONSource.js:126 src/geoJSONSource.js:166 src/geoJSONSource.js:181 msgid "parse error" msgstr "σφάλμα ανάλυσης" #: src/geoJSONSource.js:160 msgid "unknown geometry" msgstr "άγνωστη γεωμετρία" #: src/graphHopper.js:101 src/transitPlan.js:175 msgid "Route request failed." msgstr "Αποτυχία αιτήματος διαδρομής." #: src/graphHopper.js:108 src/transitPlan.js:167 msgid "No route found." msgstr "Δεν βρέθηκε διαδρομή." #: src/graphHopper.js:195 src/transitplugins/openTripPlanner.js:1163 msgid "Start!" msgstr "Εκκίνηση!" #: src/mainWindow.js:59 msgid "All Layer Files" msgstr "Όλα τα αρχεία στρώσεων" #: src/mainWindow.js:522 msgid "Failed to connect to location service" msgstr "Αποτυχία σύνδεσης με την υπηρεσία τοποθεσίας" #: src/mainWindow.js:527 msgid "Turn on location services" msgstr "Ενεργοποίηση υπηρεσιών τοποθεσίας" #: src/mainWindow.js:528 msgid "Location Settings" msgstr "Ρυθμίσεις τοποθεσίας" #: src/mainWindow.js:645 msgid "translator-credits" msgstr "" "Ελληνική μεταφραστική ομάδα GNOME\n" " Δημήτρης Σπίγγος \n" " Ευστάθιος Ιωσηφίδης \n" " Εύα Φωτοπούλου \n" " Μαρία Θουκιδίδου \n" " Μαρία Μαυρίδου \n" " Θάνος Τρυφωνίδης \n" "\n" "Για περισσότερες πληροφορίες, επισκεφθείτε τη σελίδα\n" "http://gnome.gr/" #: src/mainWindow.js:649 msgid "Copyright © 2011 – 2023 Red Hat, Inc. and The GNOME Maps authors" msgstr "" "Πνευματικά δικαιώματα © 2011 – 2023 Red Hat, Inc. και συγγραφείς του Χάρτες " "GNOME" #: src/mainWindow.js:665 #, javascript-format msgid "Map data by %s and contributors" msgstr "Δεδομένα χαρτών από %s και τους συνεισφέροντες" #: src/mainWindow.js:666 msgid "Map Data Provider" msgstr "Πάροχος δεδομένων χάρτη" #: src/mainWindow.js:678 msgid "Map Tile Provider" msgstr "Πάροχος πλακιδίων χάρτη" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:686 #, javascript-format msgid "Map tiles provided by %s" msgstr "Τα πλακίδια των χαρτών παρέχονται από %s" #: src/mainWindow.js:716 msgid "Search Provider" msgstr "Πάροχος αναζήτησης" #: src/mainWindow.js:719 #, javascript-format msgid "Search provided by %s using %s" msgstr "Η αναζήτηση παρέχεται από το %s με τη χρήση του %s" #: src/mapView.js:645 src/mapView.js:710 msgid "Failed to open layer" msgstr "Αποτυχία ανοίγματος στρώσης" #: src/mapView.js:664 msgid "Do you want to continue?" msgstr "Θέλετε να συνεχίσετε;" #: src/mapView.js:665 #, javascript-format msgid "" "You are about to open files with a total size of %s MB. This could take some " "time to load" msgstr "" "Πρόκειται να ανοίξετε αρχεία με συνολικό μέγεθος %s MB. Μπορεί να χρειαστεί " "λίγος χρόνος για τη φόρτωση" #: src/mapView.js:672 src/transitplugins/openTripPlanner.js:1239 #: src/transitplugins/openTripPlanner2.js:267 msgid "Continue" msgstr "Συνέχεια" #: src/mapView.js:704 msgid "File type is not supported" msgstr "Δεν υποστηρίζεται ο τύπος αρχείου" #: src/mapView.js:741 msgid "Failed to open GeoURI" msgstr "Αποτυχία ανοίγματος GeoURI" #: src/mapView.js:1205 msgid "Nothing found here!" msgstr "Δεν βρέθηκε τίποτα εδώ!" #: src/mapView.js:1245 msgid "Zoom in to add location" msgstr "Εστιάστε για να προσθέσετε μια τοποθεσία" #: src/mapView.js:1266 msgid "Location was added in OpenStreetMap" msgstr "Η τοποθεσία προστέθηκε στο OpenStreetMap" #. switch back to the sign-in view, and show a toast indicating #. that verification failed #: src/osmAccountDialog.js:134 msgid "The verification code didn’t match, please try again." msgstr "Δεν ταιριάζει ο κωδικός επιβεβαίωσης, παρακαλούμε προσπαθήστε ξανά." #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:335 msgid "Incorrect user name or password" msgstr "Εσφαλμένο όνομα χρήστη ή κωδικός πρόσβασης" #: src/osmConnection.js:337 msgid "Success" msgstr "Επιτυχία" #: src/osmConnection.js:339 msgid "Bad request" msgstr "Εσφαλμένο αίτημα" #: src/osmConnection.js:341 msgid "Object not found" msgstr "Δε βρέθηκε το αντικείμενο" #: src/osmConnection.js:343 msgid "Conflict, someone else has just modified the object" msgstr "Σύγκρουση, κάποιος άλλος μόλις τροποποίησε το αντικείμενο" #: src/osmConnection.js:345 msgid "Object has been deleted" msgstr "Το αντικείμενο έχει διαγραφεί" #: src/osmConnection.js:347 msgid "Way or relation refers to non-existing children" msgstr "Ο τρόπος ή η σχέση παραπέμπουν σε μη υπάρχον θυγατρικό" #: src/osmEditDialog.js:106 msgid "Name" msgstr "Όνομα" #: src/osmEditDialog.js:109 msgid "The official name. This is typically what appears on signs." msgstr "Το επίσημο όνομα. Αυτό φαίνεται συνήθως στις πινακίδες." #: src/osmEditDialog.js:112 msgid "Address" msgstr "Διεύθυνση" #: src/osmEditDialog.js:120 src/placeView.js:275 msgid "Website" msgstr "Ιστότοπος" #: src/osmEditDialog.js:124 msgid "This is not a valid URL. Make sure to include http:// or https://." msgstr "" "Αυτή δεν είναι έγκυρη URL. Φροντίστε να συμπεριλάβετε http:// ή https://." #: src/osmEditDialog.js:125 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" "Ο επίσημος ιστότοπος. Προσπαθήστε να χρησιμοποιήσετε τη βασική μορφή της " "διεύθυνσης. Π.χ. http://example.com αντί για http://example.com/index.html." #: src/osmEditDialog.js:130 msgid "Phone" msgstr "Τηλέφωνο" #: src/osmEditDialog.js:134 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" "Αριθμός τηλεφώνου. Χρησιμοποιήστε την παγκόσμια μορφή, ξεκινώντας με το " "σύμβολο +. Προσέχετε τους τοπικούς νόμους περί ιδιωτικότητας, ειδικά για " "απόρρητα τηλεφωνικά νούμερα." #: src/osmEditDialog.js:139 src/placeView.js:308 msgid "Email" msgstr "Ηλεκτρονική αλληλογγραφία" #: src/osmEditDialog.js:144 msgid "" "This is not a valid email address. Make sure to not include the mailto: " "protocol prefix." msgstr "" "Αυτή δεν είναι έγκυρη διεύθυνση ηλεκτρονικού ταχυδρομείου. Βεβαιωθείτε ότι " "δεν περιλαμβάνετε το πρόθεμα του πρωτοκόλλου mailto:." #: src/osmEditDialog.js:145 msgid "" "Contact email address for inquiries. Add only email addresses that are " "intended to be publicly used." msgstr "" "Διεύθυνση ηλεκτρονικού ταχυδρομείου επικοινωνίας για ερωτήσεις. Προσθέστε " "μόνο διευθύνσεις ηλεκτρονικού ταχυδρομείου που προορίζονται για δημόσια " "χρήση." #. Translators: This is the text for the "Wikipedia" link at the end #. of summaries #: src/osmEditDialog.js:149 src/placeView.js:727 msgid "Wikipedia" msgstr "Βικιπαιδεία" #: src/osmEditDialog.js:156 src/placeView.js:399 msgid "Opening hours" msgstr "Ώρες λειτουργίας" #: src/osmEditDialog.js:161 msgid "See the link in the label for help on format." msgstr "Δείτε τον σύνδεσμο στην ετικέτα για βοήθεια στην μορφοποίηση." #. TODO: this is a bit of a work-around to re-interpret the population, #. * stored as a string into an integer to convert back to a locale- #. * formatted string. Ideally it should be kept as an integer value #. * in the Place class. But this will also need to be handled by the #. * PlaceStore, possible in a backwards-compatible way #. #: src/osmEditDialog.js:164 src/placeView.js:509 msgid "Population" msgstr "Πληθυσμός" #: src/osmEditDialog.js:169 src/placeView.js:538 msgid "Altitude" msgstr "Υψόμετρο" #: src/osmEditDialog.js:172 msgid "Elevation (height above sea level) of a point in meters." msgstr "Υψόμετρο (ύψος πάνω από τη στάθμη της θάλασσας) ενός σημείου σε μέτρα." #: src/osmEditDialog.js:175 msgid "Wheelchair access" msgstr "Πρόσβαση αμαξιδίου" #: src/osmEditDialog.js:178 src/osmEditDialog.js:187 src/osmEditDialog.js:198 #: src/osmEditDialog.js:233 msgid "Yes" msgstr "Ναι" #: src/osmEditDialog.js:179 src/osmEditDialog.js:188 src/osmEditDialog.js:199 #: src/osmEditDialog.js:234 msgid "No" msgstr "Όχι" #: src/osmEditDialog.js:180 msgid "Limited" msgstr "Περιορισμένο" #: src/osmEditDialog.js:181 msgid "Designated" msgstr "Υποδεικνυόμενο" #: src/osmEditDialog.js:184 msgid "Internet access" msgstr "Πρόσβαση στο διαδίκτυο" #: src/osmEditDialog.js:189 msgid "Wi-Fi" msgstr "Wi-Fi" #: src/osmEditDialog.js:190 msgid "Wired" msgstr "Ενσύρματη δικτύωση" #: src/osmEditDialog.js:191 msgid "Terminal" msgstr "Υπολογιστής" #: src/osmEditDialog.js:192 msgid "Service" msgstr "Υπηρεσία" #: src/osmEditDialog.js:195 msgid "Takeout" msgstr "Σε πακέτο" #: src/osmEditDialog.js:200 msgid "Only" msgstr "Μόνο" #: src/osmEditDialog.js:203 msgid "Religion" msgstr "Θρησκεία" #: src/osmEditDialog.js:206 src/translations.js:286 msgid "Animism" msgstr "Ανιμισμός" #: src/osmEditDialog.js:207 msgid "Bahá’í" msgstr "Μπαχάι" #: src/osmEditDialog.js:208 src/translations.js:288 msgid "Buddhism" msgstr "Βουδισμός" #: src/osmEditDialog.js:209 src/translations.js:289 msgid "Caodaism" msgstr "Καοδαϊσμός" #: src/osmEditDialog.js:210 src/translations.js:290 msgid "Christianity" msgstr "Χριστιανισμός" #: src/osmEditDialog.js:211 src/translations.js:291 msgid "Confucianism" msgstr "Κομφουκιανισμός" #: src/osmEditDialog.js:212 src/translations.js:292 msgid "Hinduism" msgstr "Ινδουϊσμός" #: src/osmEditDialog.js:213 src/translations.js:293 msgid "Jainism" msgstr "Τζαϊνισμός" #: src/osmEditDialog.js:214 src/translations.js:294 msgid "Judaism" msgstr "Ιουδαϊσμός" #: src/osmEditDialog.js:215 src/translations.js:295 msgid "Islam" msgstr "Ισλαμισμός" #: src/osmEditDialog.js:216 src/translations.js:296 msgid "Multiple Religions" msgstr "Πολλαπλές θρησκείες" #: src/osmEditDialog.js:217 src/translations.js:297 msgid "Paganism" msgstr "Παγανισμός" #: src/osmEditDialog.js:218 src/translations.js:298 msgid "Pastafarianism" msgstr "Πασαφιανισμός" #: src/osmEditDialog.js:219 src/translations.js:299 msgid "Scientology" msgstr "Σαηεντολογία" #: src/osmEditDialog.js:220 src/translations.js:300 msgid "Shinto" msgstr "Σιντό" #: src/osmEditDialog.js:221 src/translations.js:301 msgid "Sikhism" msgstr "Σιχισμός" #: src/osmEditDialog.js:222 src/translations.js:302 msgid "Spiritualism" msgstr "Πνευματισμός" #: src/osmEditDialog.js:223 src/translations.js:303 msgid "Taoism" msgstr "Ταοϊσμός" #: src/osmEditDialog.js:224 src/translations.js:304 msgid "Unitarian Universalism" msgstr "Ουνιταριανός Ουνιβερσαλισμός" #: src/osmEditDialog.js:225 src/translations.js:305 msgid "Voodoo" msgstr "Βουντού" #: src/osmEditDialog.js:226 src/translations.js:306 msgid "Yazidism" msgstr "Γιαζιδισμός" #: src/osmEditDialog.js:227 src/translations.js:307 msgid "Zoroastrianism" msgstr "Ζωροαστριανισμός" #: src/osmEditDialog.js:230 src/poiCategories.js:176 msgid "Toilets" msgstr "Τουαλέτες" #: src/osmEditDialog.js:237 msgid "Note" msgstr "Σημείωση" #: src/osmEditDialog.js:240 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" "Πληροφορίες που χρησιμοποιούνται για την ενημέρωση άλλων χαρτογράφων σχετικά " "με τις μη προφανείς πληροφορίες σχετικά με ένα στοιχείο, την πρόθεση του " "δημιουργού κατά τη δημιουργία του, ή συμβουλές για περαιτέρω βελτίωση." #: src/osmEditDialog.js:339 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "Προσθήκη στο OpenStreetMap" #: src/osmEditDialog.js:393 msgid "Select Type" msgstr "Επιλογή τύπου" #: src/osmEditDialog.js:515 msgid "Done" msgstr "Έτοιμο" #: src/osmEditDialog.js:818 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "" "Η μορφή που θα χρησιμοποιηθεί πρέπει να περιλαμβάνει τον κωδικό γλώσσας και " "έναν τίτλο άρθρου όπως \"en:Article title\"." #: src/osmEditDialog.js:824 msgid "Use the reload button to load the Wikidata tag for the selected article" msgstr "" "Χρησιμοποιήστε το κουμπί επαναφόρτωσης για να φορτώσετε την ετικέτα Wikidata " "για το επιλεγμένο άρθρο" #: src/osmEditDialog.js:832 msgid "Couldn't find Wikidata tag for article" msgstr "Δεν ήταν δυνατή η εύρεση της ετικέτας Wikidata για το άρθρο" #: src/photonUtils.js:118 msgid "Unnamed place" msgstr "Άγνωστο μέρος" #: src/placeEntry.js:274 msgid "Failed to parse Geo URI" msgstr "Αποτυχία ανάλυσης Geo URI" #: src/placeEntry.js:286 msgid "Failed to parse Maps URI" msgstr "Αποτυχία ανάλυσης URI χαρτών" #. 300 ft (300 * 12 * 0.0254 m) #. #. * Translators: This a format string for showing a distance to a place #. * is lower than a "quite short" distance. #. * The "less than" symbol can be substituded with an appropriate one, if #. * needed (e.g. using the correct direction, or alternative symbol). #. * The %s should be kept, and is substituted with a label representing the #. * short distance. The \u2009 (thin space) could also be adjusted if needed #: src/placeListRow.js:46 #, javascript-format msgctxt "short distance format string" msgid "< %s" msgstr "< %s" #: src/placeView.js:263 msgid "Coordinates" msgstr "Συντεταγμένες" #: src/placeView.js:267 msgid "Accuracy" msgstr "Ακρίβεια" #. Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) #: src/placeView.js:270 #, javascript-format msgid "Accuracy: %s" msgstr "Ακρίβεια: %s" #. since the phone numbers are typically always rendered #. * left-to-right, insert an explicit LRM char to avoid issues #. * with phone numbers in international format starting with a + #. * which is considered a "weak" character to determine Unicode #. * text direction #. #: src/placeView.js:289 msgid "Phone number" msgstr "Αριθμός τηλεφώνου" #. If a reference to a named floor (named or symbolic) exists #. * refer to it directly. #. #. Translators: #. * This is a reference to named building floor, using a label #. * or a code, as "displayed in the elevator" #. #: src/placeView.js:323 src/placeView.js:362 msgid "Floor" msgstr "Όροφος" #: src/placeView.js:325 #, javascript-format msgid "Floor %s" msgstr "Όροφος %s" #: src/placeView.js:337 msgid "At ground level" msgstr "Στο επίπεδο του εδάφους" #. Translators: #. * This is a reference to a number of floors above #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:346 #, javascript-format msgid "%s floor above ground level" msgid_plural "%s floors above ground level" msgstr[0] "%s όροφος πάνω από το επίπεδο του εδάφους" msgstr[1] "%s όροφοι πάνω από το επίπεδο του εδάφους" #. Translators: #. * This is a reference to a number of floors below #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:357 #, javascript-format msgid "%s floor below ground level" msgid_plural "%s floors below ground level" msgstr[0] "%s όροφος κάτω από το επίπεδο του εδάφους" msgstr[1] "%s όροφοι κάτω από το επίπεδο του εδάφους" #. Translators: #. * The establishment offers customers to purchase meals #. * (or similar) to be consumed elsewhere #. #: src/placeView.js:375 msgid "Offers takeout" msgstr "Προσφέρει επιλογή σε πακέτο" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed on-premise. #. #: src/placeView.js:383 msgid "Does not offer takeout" msgstr "Δεν προσφέρει επιλογή σε πακέτο" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed elsewhere. E.g. #. * there is no seating on-premise for eating/drinking #. #: src/placeView.js:392 msgid "Only offers takeout" msgstr "Προσφέρει μόνο επιλογή σε πακέτο" #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/placeView.js:409 msgid "Public internet access" msgstr "Δημόσια πρόσβαση στο διαδίκτυο" #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/placeView.js:418 msgid "No internet access" msgstr "Δεν υπάρχει πρόσβαση στο διαδίκτυο" #. Translators: #. * This means a WLAN Hotspot, also known as wireless, wifi or Wi-Fi. #. #: src/placeView.js:426 msgid "Public Wi-Fi" msgstr "Δημόσιο Wi-Fi" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/placeView.js:434 msgid "Wired internet access" msgstr "Ενσύρματη πρόσβαση στο διαδίκτυο" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/placeView.js:442 msgid "Computers available for use" msgstr "Υπολογιστές διαθέσιμοι προς χρήση" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/placeView.js:450 msgid "Internet assistance available" msgstr "Διατίθεται βοήθεια στο διαδίκτυο" #: src/placeView.js:456 msgid "No toilets available" msgstr "Δεν υπάρχουν διαθέσιμες τουαλέτες" #: src/placeView.js:459 msgid "Toilets available" msgstr "Διαθέσιμες τουαλέτες" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #: src/placeView.js:468 msgid "Wheelchair accessible" msgstr "Πρόσβαση με αναπηρικό αμαξίδιο" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/placeView.js:478 msgid "Limited wheelchair accessibility" msgstr "Περιορισμένη πρόσβαση με αναπηρικό αμαξίδιο" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #: src/placeView.js:487 msgid "Not wheelchair accessible" msgstr "Δεν υπάρχει πρόσβαση με αναπηρικό αμαξίδιο" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/placeView.js:497 msgid "Designated for wheelchair users" msgstr "Έχει καθοριστεί για αναπηρικά αμαξιδία" #. * #. * Translators: this is a label indicating an altitude below #. * sea level, where the %s placeholder is the altitude relative #. * to mean sea level in the "negative direction" #. #: src/placeView.js:528 #, javascript-format msgid "%s below sea level" msgstr "%s κάτω από το επίπεδο της θάλασσας" #. * #. * Translators: this indicates a place is located at (or very #. * close to) mean sea level #. #: src/placeView.js:535 msgid "At sea level" msgstr "Στο επίπεδο της θάλασσας" #: src/placeView.js:544 msgid "Religion:" msgstr "Θρησκεία:" #: src/place.js:576 msgid "Place not found in OpenStreetMap" msgstr "Η τοποθεσία δεν βρέθηκε στο OpenStreetMap" #: src/place.js:583 msgid "Coordinates in URL are not valid" msgstr "Οι συντεταγμένες στη URL δεν είναι έγκυρες" #: src/place.js:592 msgid "URL is not supported" msgstr "Η URL δεν υποστηρίζεται" #: src/poiCategories.js:132 msgid "Amenities" msgstr "Παροχές" #: src/poiCategories.js:135 msgid "ATMs" msgstr "ATM" #: src/poiCategories.js:141 msgid "Post Boxes" msgstr "Ταχυδρομικά κουτιά" #: src/poiCategories.js:147 msgid "Post Offices" msgstr "Ταχυδρομεία" #: src/poiCategories.js:153 msgid "Police" msgstr "Αστυνομία" #: src/poiCategories.js:159 msgid "Libraries" msgstr "Βιβλιοθήκες" #: src/poiCategories.js:165 msgid "Pharmacies" msgstr "Φαρμακεία" #: src/poiCategories.js:171 msgid "Recycling" msgstr "Ανακύκλωση" #: src/poiCategories.js:182 msgid "Wheelchair-accessible Toilets" msgstr "Τουαλέτες προσβάσιμες σε αναπηρικά αμαξίδια" #: src/poiCategories.js:188 msgid "Baggage Lockers" msgstr "Ντουλάπια αποσκευών" #: src/poiCategories.js:196 msgid "Eating & Drinking" msgstr "Φαγητό & Ποτό" #: src/poiCategories.js:200 msgid "Restaurants" msgstr "Εστιατόρια" #: src/poiCategories.js:205 msgid "Fast Food" msgstr "Γρήγορο φαγητό" #: src/poiCategories.js:210 msgid "Food Courts" msgstr "Χώροι εστίασης" #: src/poiCategories.js:215 msgid "Pubs" msgstr "Παμπς" #: src/poiCategories.js:221 msgid "Bars" msgstr "Μπαρς" #: src/poiCategories.js:226 msgid "Cafes" msgstr "Καφετέριες" #: src/poiCategories.js:231 msgid "Ice Cream" msgstr "Παγωτό" #: src/poiCategories.js:236 msgid "Food, Snacks, and Beverage Machines" msgstr "Αυτόματοι πωλητές τροφίμων, σνακ και ποτών" #: src/poiCategories.js:244 msgid "Shopping" msgstr "Αγορές" #: src/poiCategories.js:248 msgid "Supermarkets" msgstr "Σούπερ μάρκετ" #: src/poiCategories.js:254 msgid "Convenience Stores" msgstr "Καταστήματα ψιλικών" #: src/poiCategories.js:259 msgid "Shopping Malls" msgstr "Εμπορικά κέντρα" #: src/poiCategories.js:265 msgid "Clothes" msgstr "Ρούχα" #: src/poiCategories.js:271 msgid "Shoes" msgstr "Παπούτσια" #: src/poiCategories.js:276 msgid "Electronics" msgstr "Ηλεκτρονικά είδη" #: src/poiCategories.js:282 msgid "Alcohol" msgstr "Αλκοόλ" #: src/poiCategories.js:288 msgid "Bakeries" msgstr "Αρτοποιεία" #: src/poiCategories.js:294 msgid "Flowers" msgstr "Λουλούδια" #: src/poiCategories.js:301 msgid "Transportation" msgstr "Μεταφορά" #: src/poiCategories.js:305 msgid "Bus & Tram Stops" msgstr "Στάσεις λεωφορείων & τραμ" #: src/poiCategories.js:313 msgid "Train & Subway Stations" msgstr "Σταθμοί τρένου και μετρό" #: src/poiCategories.js:321 msgid "Tickets" msgstr "Εισιτήρια" #: src/poiCategories.js:329 msgid "Parking" msgstr "Στάθμευση" #: src/poiCategories.js:334 msgid "Bicycle Parking" msgstr "Χώρος στάθμευσης ποδηλάτων" #: src/poiCategories.js:339 msgid "Bicycle Rental" msgstr "Ενοικίαση ποδηλάτων" #: src/poiCategories.js:344 msgid "Car Rental" msgstr "Ενοικίαση αυτοκινήτων" #: src/poiCategories.js:349 msgid "Fuel" msgstr "Καύσιμα" #: src/poiCategories.js:354 msgid "EV Charging" msgstr "Φόρτιση ηλεκτρικών αυτοκινήτων" #: src/poiCategories.js:362 msgid "Healthcare" msgstr "Φροντίδα υγείας" #: src/poiCategories.js:366 msgid "Clinics" msgstr "Κλινικές" #: src/poiCategories.js:372 msgid "Hospitals" msgstr "Νοσοκομεία" #: src/poiCategories.js:378 msgid "Dentists" msgstr "Οδοντίατροι" #: src/poiCategories.js:386 msgid "Accommodation" msgstr "Στέγαση" #: src/poiCategories.js:390 msgid "Hotels" msgstr "Ξενοδοχεία" #: src/poiCategories.js:395 msgid "Hostels" msgstr "Ξενώνες" #: src/poiCategories.js:400 msgid "Bed & Breakfast" msgstr "Bed & Breakfast" #: src/poiCategories.js:405 msgid "Campings" msgstr "Κάμπινγκ" #: src/poiCategories.js:412 msgid "Recreation" msgstr "Αναψυχή" #: src/poiCategories.js:416 msgid "Parks" msgstr "Πάρκα" #: src/poiCategories.js:421 msgid "Playgrounds" msgstr "Παιδικές χαρές" #: src/poiCategories.js:425 msgid "Beaches" msgstr "Παραλίες" #: src/poiCategories.js:430 msgid "Nature Reserves" msgstr "Φυσικά καταφύγια" #: src/poiCategories.js:436 msgid "Theme Parks" msgstr "Θεματικά πάρκα" #: src/poiCategories.js:441 msgid "Theaters" msgstr "Θέατρα" #: src/poiCategories.js:447 msgid "Movie Theaters" msgstr "Σινεμά" #: src/poiCategories.js:453 msgid "Night Clubs" msgstr "Νυχτερινά κέντρα διασκέδασης" #: src/poiCategories.js:460 msgid "Tourism" msgstr "Τουρισμός" #: src/poiCategories.js:464 msgid "Museums" msgstr "Μουσεία" #: src/poiCategories.js:470 msgid "Attractions" msgstr "Αξιοθέατα" #: src/poiCategories.js:475 msgid "Artworks" msgstr "Έργα τέχνης" #: src/poiCategories.js:480 msgid "Tourist Information" msgstr "Τουριστικές πληροφορίες" #: src/poiCategories.js:487 msgid "Sports" msgstr "Αθλητικά" #: src/poiCategories.js:491 msgid "Gyms" msgstr "Γυμναστήρια" #: src/poiCategories.js:497 msgid "Outdoor Gyms" msgstr "Υπαίθρια γυμναστήρια" #: src/poiCategories.js:503 msgid "Golf Courses" msgstr "Γήπεδα γκολφ" #: src/printLayout.js:350 #, javascript-format msgid "From %s to %s" msgstr "Από %s σε %s" #: src/printOperation.js:49 msgid "Loading map tiles for printing" msgstr "Φόρτωση χάρτη για εκτύπωση" #: src/printOperation.js:50 msgid "You can abort printing if this takes too long" msgstr "Μπορείτε να ακυρώσετε την εκτύπωση αν αυτό διαρκεί πολλή ώρα" #: src/printOperation.js:52 msgid "Abort printing" msgstr "Ακύρωση εκτύπωσης" #. Translators: this is add via location tooltip #: src/routeEntry.js:60 msgid "Add via location" msgstr "Προσθήκη μέσω της τοποθεσίας" #. Translators: this is remove via location tooltip #: src/routeEntry.js:70 msgid "Remove via location" msgstr "Αφαίρεση μέσω της τοποθεσίας" #. Translators: this is reverse route tooltip #: src/routeEntry.js:76 msgid "Reverse route" msgstr "Αντίστροφη διαδρομή" #: src/searchBar.js:45 msgid "Search" msgstr "Αναζήτηση" #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:84 #, javascript-format msgid "Add %s to %s" msgstr "Προσθήκη %s σε %s" #: src/sendToDialog.js:181 msgid "Failed to open URI" msgstr "Αποτυχία ανοίγματος του URI" #: src/sendToDialog.js:246 #, javascript-format msgid "Open with %s" msgstr "Άνοιγμα με %s" #: src/shapeLayer.js:109 msgid "failed to load file" msgstr "αδυναμία φόρτωσης αρχείου" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:328 #, javascript-format msgid "Estimated time: %s" msgstr "Εκτιμώμενος χρόνος: %s" #: src/sidebar.js:398 #, javascript-format msgid "Itineraries provided by %s" msgstr "Οι διαδρομές παρέχονται από %s" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:39 #, javascript-format msgid "Start at %s" msgstr "Έναρξη από %s" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:45 src/transitplugins/openTripPlanner2.js:236 msgid "Start" msgstr "Έναρξη" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:63 #, javascript-format msgid "Walk %s" msgstr "Περπάτημα %s" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:77 #, javascript-format msgid "Arrive at %s" msgstr "Άφιξη στο %s" #: src/transit.js:79 src/transitplugins/openTripPlanner.js:1176 #: src/transitplugins/openTripPlanner2.js:255 msgid "Arrive" msgstr "Άφιξη" #: src/transitLegRow.js:69 msgid "Show walking instructions" msgstr "Εμφάνιση οδηγιών περπατήματος" #: src/transitLegRow.js:70 msgid "Hide walking instructions" msgstr "Απόκρυψη οδηγιών περπατήματος" #: src/transitMoreRow.js:37 msgid "Load earlier alternatives" msgstr "Φόρτωση νεοτέρων εναλλακτικών" #: src/transitMoreRow.js:39 msgid "Load later alternatives" msgstr "Φόρτωση τελευταίων εναλλακτικών" #: src/transitMoreRow.js:52 msgid "No earlier alternatives found." msgstr "Δεν βρέθηκαν νεότερες εναλλακτικές." #: src/transitMoreRow.js:54 msgid "No later alternatives found." msgstr "Δεν βρέθηκαν τελευταίες εναλλακτικές." #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:138 msgctxt "month-day-date" msgid "%b %e" msgstr "%e %b" #: src/transitPlan.js:171 msgid "No timetable data found for this route." msgstr "Δεν βρέθηκε δρομολόγιο γι' αυτή τη διαδρομή." #: src/transitPlan.js:179 msgid "No provider found for this route." msgstr "Δεν βρέθηκε πάροχος γι' αυτή τη διαδρομή." #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:300 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:331 #, javascript-format msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "%s λεπτό" msgstr[1] "%s λεπτά" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:343 #, javascript-format msgid "%s hour" msgid_plural "%s hours" msgstr[0] "%s ώρα" msgstr[1] "%s ώρες" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:351 #, javascript-format msgid "%s:%s hour" msgid_plural "%s:%s hours" msgstr[0] "%s:%s ώρα" msgstr[1] "%s:%s ώρες" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:744 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: src/translations.js:55 msgid "Around the clock" msgstr "Εικοσιτετράωρο" #: src/translations.js:57 msgid "From sunrise to sunset" msgstr "Από την ανατολή μέχρι τη δύση του ήλιου" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:123 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s,%s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:137 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s,%s,%s" #: src/translations.js:156 msgid "Every day" msgstr "Κάθε ημέρα" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:168 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:179 msgid "Public holidays" msgstr "Επίσημες αργίες" #: src/translations.js:181 msgid "School holidays" msgstr "Σχολικές αργίες" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:221 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: src/translations.js:235 msgid "not open" msgstr "δεν είναι ανοικτό" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:250 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:287 msgid "Bahá'í" msgstr "Μπαχάι" #. Translators: Accuracy of user location information #: src/utils.js:248 msgid "Unknown" msgstr "Άγνωστο" #. Translators: Accuracy of user location information #: src/utils.js:251 msgid "Exact" msgstr "Ακριβής" #. Translators: this is a duration with only hours, using #. * an abbreviation for hours, corresponding to 'h' in English #. #: src/utils.js:307 #, javascript-format msgid "%s h" msgstr "%s ω" #. Translators: this is a duration with hours and minutes parts #. * using abbreviations for hours and minutes, corresponding to 'h' #. * and 'min' in English. The minutes has appropriate plural variations #. #: src/utils.js:313 #, javascript-format msgid "%s h %s min" msgid_plural "%s h %s min" msgstr[0] "%s h %s λεπτό" msgstr[1] "%s h %s λεπτά" #. Translators: this is a duration with minutes part #. * using abbreviation for minutes, corresponding to 'min' in English #. * with appropriate plural variations #. #: src/utils.js:320 #, javascript-format msgid "%s min" msgid_plural "%s min" msgstr[0] "%s λεπτ" msgstr[1] "%s λεπτ" #. Translators: this is a duration of less than one minute #. * with seconds using an abbreviation for seconds, corresponding to #. * 's' in English with appropriate plural forms #. #: src/utils.js:326 #, javascript-format msgid "%s s" msgid_plural "%s s" msgstr[0] "%s δ" msgstr[1] "%s δ" #. Translators: This is a distance measured in kilometers #: src/utils.js:337 #, javascript-format msgid "%s km" msgstr "%s km" #. Translators: This is a distance measured in meters #: src/utils.js:340 #, javascript-format msgid "%s m" msgstr "%s m" #. Translators: This is a distance measured in miles #: src/utils.js:348 #, javascript-format msgid "%s mi" msgstr "%s mi" #. Translators: This is a distance measured in feet #: src/utils.js:351 #, javascript-format msgid "%s ft" msgstr "%s ft" #: src/transitplugins/goMetro.js:61 msgid "This plugin doesn't support latest arrival" msgstr "Αυτό το πρόσθετο δεν υποστηρίζει την τελευταία άφιξη" #: src/transitplugins/openTripPlanner.js:1237 #: src/transitplugins/openTripPlanner2.js:266 #, javascript-format msgid "Continue on %s" msgstr "Συνεχίστε στο %s" #: src/transitplugins/openTripPlanner.js:1242 #: src/transitplugins/openTripPlanner2.js:270 #, javascript-format msgid "Turn left on %s" msgstr "Στρίψτε αριστερά στο %s" #: src/transitplugins/openTripPlanner.js:1244 #: src/transitplugins/openTripPlanner2.js:271 msgid "Turn left" msgstr "Στρίψτε αριστερά" #: src/transitplugins/openTripPlanner.js:1247 #: src/transitplugins/openTripPlanner2.js:275 #, javascript-format msgid "Turn slightly left on %s" msgstr "Στρίψτε λίγο αριστερά στο %s" #: src/transitplugins/openTripPlanner.js:1249 #: src/transitplugins/openTripPlanner2.js:276 msgid "Turn slightly left" msgstr "Στρίψτε λίγο αριστερά" #: src/transitplugins/openTripPlanner.js:1252 #: src/transitplugins/openTripPlanner2.js:280 #, javascript-format msgid "Turn sharp left on %s" msgstr "Απότομη στροφή αριστερά στο %s" #: src/transitplugins/openTripPlanner.js:1254 #: src/transitplugins/openTripPlanner2.js:281 msgid "Turn sharp left" msgstr "Απότομη στροφή αριστερά" #: src/transitplugins/openTripPlanner.js:1257 #: src/transitplugins/openTripPlanner2.js:284 #, javascript-format msgid "Turn right on %s" msgstr "Στρίψτε δεξιά στο %s" #: src/transitplugins/openTripPlanner.js:1259 #: src/transitplugins/openTripPlanner2.js:285 msgid "Turn right" msgstr "Στρίψτε δεξιά" #: src/transitplugins/openTripPlanner.js:1262 #: src/transitplugins/openTripPlanner2.js:289 #, javascript-format msgid "Turn slightly right on %s" msgstr "Στρίψτε λίγο δεξιά στο %s" #: src/transitplugins/openTripPlanner.js:1264 #: src/transitplugins/openTripPlanner2.js:290 msgid "Turn slightly right" msgstr "Στρίψτε λίγο δεξιά" #: src/transitplugins/openTripPlanner.js:1267 #: src/transitplugins/openTripPlanner2.js:294 #, javascript-format msgid "Turn sharp right on %s" msgstr "Απότομη στροφή δεξιά στο %s" #: src/transitplugins/openTripPlanner.js:1269 #: src/transitplugins/openTripPlanner2.js:295 msgid "Turn sharp right" msgstr "Απότομη στροφή δεξιά" #: src/transitplugins/openTripPlanner.js:1275 #: src/transitplugins/openTripPlanner2.js:302 #, javascript-format msgid "At the roundabout, take exit %s" msgstr "Στον κυκλικό κόμβο, πάρτε την έξοδο %s" #: src/transitplugins/openTripPlanner.js:1277 #: src/transitplugins/openTripPlanner2.js:305 #, javascript-format msgid "At the roundabout, take exit to %s" msgstr "Στον κυκλικό κόμβο, πάρτε την έξοδο προς %s" #: src/transitplugins/openTripPlanner.js:1279 #: src/transitplugins/openTripPlanner2.js:307 msgid "Take the roundabout" msgstr "Πάρτε τον κυκλικό κόμβο" #: src/transitplugins/openTripPlanner.js:1283 #: src/transitplugins/openTripPlanner2.js:315 #, javascript-format msgid "Take the elevator and get off at %s" msgstr "Πάρτε τον ανισόπεδο κόμβο και εξέλθετε από το %s" #: src/transitplugins/openTripPlanner.js:1285 #: src/transitplugins/openTripPlanner2.js:316 msgid "Take the elevator" msgstr "Πάρτε τον ανισόπεδο κόμβο" #: src/transitplugins/openTripPlanner.js:1289 #: src/transitplugins/openTripPlanner2.js:320 #, javascript-format msgid "Make a left u-turn onto %s" msgstr "Κάντε μια αριστερή αναστροφή στο %s" #: src/transitplugins/openTripPlanner.js:1291 #: src/transitplugins/openTripPlanner2.js:321 msgid "Make a left u-turn" msgstr "Κάντε μια αριστερή αναστροφή" #: src/transitplugins/openTripPlanner.js:1294 #: src/transitplugins/openTripPlanner2.js:325 #, javascript-format msgid "Make a right u-turn onto %s" msgstr "Κάντε μια δεξιά αναστροφή στο %s" #: src/transitplugins/openTripPlanner.js:1296 #: src/transitplugins/openTripPlanner2.js:326 msgid "Make a right u-turn" msgstr "Κάντε μια δεξιά αναστροφή" #~ msgid "Sign in to edit maps" #~ msgstr "" #~ "Συνδεθείτε για να επεξεργαστείτε " #~ "τους χάρτες" #~ msgid "" #~ "Sign in to authorize access in a web browser.\n" #~ "Then fill in the obtained verification code here in the next step." #~ msgstr "" #~ "Συνδεθείτε για να εξουσιοδοτήσετε την πρόσβαση σε ένα πρόγραμμα " #~ "περιήγησης ιστού.\n" #~ "Στη συνέχεια, συμπληρώστε τον κωδικό επαλήθευσης που λάβατε εδώ στο " #~ "επόμενο βήμα." #~ msgid "Signed In" #~ msgstr "Συνδεδεμένος/η" #~ msgid "E-mail" #~ msgstr "Ηλεκτρονική αλληλογγραφία" #~ msgid "Sign up" #~ msgstr "Εγγραφή" #~ msgid "Filesystem is read only" #~ msgstr "Το σύστημα αρχείων είναι μόνο για ανάγνωση" #~ msgid "You do not have permission to save there" #~ msgstr "Δεν έχετε δικαιώματα για να αποθηκεύσετε" #~ msgid "The directory does not exist" #~ msgstr "Δεν υπάρχει ο κατάλογος" #~ msgid "No filename specified" #~ msgstr "Δεν ορίσθηκε όνομα αρχείου" #~ msgid "" #~ "Location was added to the map, note that it may take a while before it " #~ "shows on the map and in search results." #~ msgstr "" #~ "Η τοποθεσία προστέθηκε στον χάρτη, μπορεί να πάρει λίγη ώρα πρωτού " #~ "εμφανιστεί στον χάρτη και στα αποτελέσματα αναζήτησης." #~ msgid "Takeaway" #~ msgstr "Σε πακέτο" #~ msgid "Go to current location" #~ msgstr "Μετάβαση στην τρέχουσα τοποθεσία" #~ msgid "Choose map type" #~ msgstr "Επιλογή τύπου χάρτη" #~ msgid "Zoom in" #~ msgstr "Μεγέθυνση" #~ msgid "Drag to change order of the route" #~ msgstr "Σύρετε για να αλλάξετε την σειρά στη διαδρομή" #~ msgid "GNOME Maps" #~ msgstr "Χάρτες GNOME" #~ msgid "Foursquare check-in privacy setting" #~ msgstr "Ρύθμιση ιδιωτικότητας ελέγχου εισόδου στο Foursquare" #~ msgid "" #~ "Latest used Foursquare check-in privacy setting. Possible values are: " #~ "public, followers or private." #~ msgstr "" #~ "Τελευταία χρησιμοποιούμενη ρύθμιση ιδιωτικότητας ελέγχου εισόδου στο " #~ "Foursquare. Δυνατές τιμές είναι: public, followers ή private.." #~ msgid "Foursquare check-in Facebook broadcasting" #~ msgstr "Έλεγχος εισόδου του Foursquare στην αναμετάδοση του Facebook" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a post in the " #~ "Facebook account associated with the Foursquare account." #~ msgstr "" #~ "Υποδεικνύει αν το Foursquare πρέπει να αναμεταδώσει τον έλεγχο εισόδου ως " #~ "αποστολή στον λογαριασμό Facebook συσχετισμένο με τον λογαριασμό του " #~ "Foursquare." #~ msgid "Foursquare check-in Twitter broadcasting" #~ msgstr "Έλεγχος εισόδου στην αναμετάδοση του Twitter" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a tweet in the " #~ "Twitter account associated with the Foursquare account." #~ msgstr "" #~ "Υποδεικνύει αν το Foursquare πρέπει να αναμεταδώσει τον έλεγχο εισόδου ως " #~ "τιτίβισμα στον λογαριασμό Twitter συσχετισμένο με τον λογαριασμό του " #~ "Foursquare." #~ msgid "Night mode" #~ msgstr "Νυχτερινή λειτουργία" #~ msgid "Whether the application is in night mode." #~ msgstr "Εάν η εφαρμογή βρίσκεται σε νυχτερινή λειτουργία." #~ msgid "Use hybrid aerial tiles" #~ msgstr "Χρήση υβριδικών πλακιδίων" #~ msgid "Whether aerial tiles should use hybrid style (with labels)." #~ msgstr "" #~ "Εάν τα πλακίδια πρέπει να χρησιμοποιούν υβριδικό στυλ (με ετικέτες)." #~ msgid "Visibility" #~ msgstr "Ορατότητα" #~ msgid "Post on Facebook" #~ msgstr "Δημοσίευση στο Facebook" #~ msgid "Post on Twitter" #~ msgstr "Δημοσίευση στο Twitter" #~ msgid "C_heck in" #~ msgstr "C_heck in" #~ msgid "Public" #~ msgstr "Δημόσιο" #~ msgid "Private" #~ msgstr "Προσωπικό" #~ msgid "Include route and markers" #~ msgstr "Συμπεριέλαβε διαδρομή και δείκτες" #~ msgid "Night Mode" #~ msgstr "Νυχτερινή λειτουργία" #~ msgid "Maps is offline!" #~ msgstr "Οι Χάρτες είναι εκτός σύνδεσης!" #~ msgid "" #~ "Maps need an active internet connection to function properly, but one " #~ "can’t be found." #~ msgstr "" #~ "Η εφαρμογή Χάρτες χρειάζεται μια ενεργή σύνδεση στο διαδίκτυο ώστε να " #~ "λειτουργήσει σωστά, αλλά δε βρέθηκε κάποια." #~ msgid "Check your connection and proxy settings." #~ msgstr "Ελέγξτε τις ρυθμίσεις της σύνδεσης και του διαμεσολαβητή σας." #~ msgid "Password" #~ msgstr "Κωδικός πρόσβασης" #~ msgid "" #~ "Sorry, that didn’t work. Please try again, or visit\n" #~ "OpenStreetMap to reset your password." #~ msgstr "" #~ "Συγγνώμη, κάτι δε λειτούργησε σωστά. Παρακαλούμε δοκιμάστε ξανά, ή " #~ "επισκεφθείτε το\n" #~ "OpenStreetMap για να επαναφέρετε τον κωδικό πρόσβασης σας." #~ msgid "Check In…" #~ msgstr "Check In…" #~ msgid "Ignore network availability" #~ msgstr "Αγνόησε διαθεσιμότητα του δικτύου" #~ msgid "Select an account" #~ msgstr "Επιλογή λογαριασμού" #~ msgid "Loading" #~ msgstr "Φορτώνεται" #~ msgid "" #~ "Maps cannot find the place to check in to with Foursquare. Please select " #~ "one from this list." #~ msgstr "" #~ "Οι Χάρτες δεν μπορούν να βρουν τη θέση για check in με το Foursquare. " #~ "Παρακαλούμε, επιλέξτε μια από τη λίστα." #, javascript-format #~ msgid "Check in to %s" #~ msgstr "Check in στο %s" #, javascript-format #~ msgid "Write an optional message to check in to %s." #~ msgstr "Γράψτε ένα προαιρετικό μήνυμα για check in στο %s." #, javascript-format #~ msgid "Cannot find “%s” in the social service" #~ msgstr "Αδύνατη η εύρεση του «%s» στην κοινωνική υπηρεσία" #~ msgid "Cannot find a suitable place to check-in in this location" #~ msgstr "" #~ "Αδύνατη η εύρεση μιας κατάλληλης θέσης για check-in σε αυτήν την τοποθεσία" #~ msgid "" #~ "Credentials have expired, please open Online Accounts to sign in and " #~ "enable this account" #~ msgstr "" #~ "Τα διαπιστευτήρια έχουν λήξει, παρακαλούμε ανοίξτε τους διαδικτυακούς " #~ "λογαριασμούς για να εισέλθετε και να ενεργοποιήσετε αυτόν τον λογαριασμό" #~ msgid "A map application for GNOME" #~ msgstr "Μια εφαρμογή χάρτη για το GNOME" #~ msgid "" #~ "You can even search for specific types of locations, such as “Pubs near " #~ "Main Street, Boston” or “Hotels near Alexanderplatz, Berlin”." #~ msgstr "" #~ "Μπορείτε ακόμη και να κάνετε αναζήτηση για καθορισμένους τύπους " #~ "τοποθεσιών, όπως “Λέσχες κοντά στην Σταδίου, Αθήνα” ή “Ξενοδοχεία κοντά " #~ "στην Ομόνοια, Αθήνα”." #~ msgid "Facebook check-in privacy setting" #~ msgstr "Ρυθμίσεις ιδιωτικότητας ελέγχου εισόδου στο Facebook" #~ msgid "" #~ "Latest used Facebook check-in privacy setting. Possible values are: " #~ "EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS or SELF." #~ msgstr "" #~ "Τελευταία χρησιμοποιούμενη ρύθμιση ιδιωτικότητας ελέγχου εισόδου. Δυνατές " #~ "τιμές είναι: EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS ή SELF." #~ msgid "Everyone" #~ msgstr "Όλοι" #~ msgid "Friends of friends" #~ msgstr "Φίλοι των φίλων" #~ msgid "Just friends" #~ msgstr "Μόνο φίλοι" #~ msgid "Just me" #~ msgstr "Μόνο εγώ" #~ msgid "" #~ "Maps cannot find the place to check in to with Facebook. Please select " #~ "one from this list." #~ msgstr "" #~ "Οι Χάρτες δεν μπορούν να βρουν τη θέση για check in με το Facebook. " #~ "Παρακαλούμε, επιλέξτε μια από τη λίστα." #~ msgid "Check in here" #~ msgstr "Check in εδώ" #~ msgid "Population:" #~ msgstr "Πληθυσμός:" #~ msgid "Altitude:" #~ msgstr "Υψόμετρο:" #~ msgid "Opening hours:" #~ msgstr "Ώρες λειτουργίας:" #~ msgid "Internet access:" #~ msgstr "Πρόσβαση στο διαδίκτυο:" #~ msgid "Toilets:" #~ msgstr "Τουαλέτες:" #~ msgid "Wheelchair access:" #~ msgstr "Πρόσβαση αμαξιδίου:" #~ msgid "Phone:" #~ msgstr "Τηλέφωνο:" #~ msgid "yes" #~ msgstr "ναι" #~ msgid "limited" #~ msgstr "περιορισμένη" #~ msgid "no" #~ msgstr "όχι" #~ msgid "designated" #~ msgstr "υποδεικνυόμενο" #~ msgid "OpenStreetMap URL is not valid" #~ msgstr "Η URL του OpenStreetMap δεν είναι έγκυρη" #~ msgctxt "time range list" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgctxt "time range list" #~ msgid "%s %s %s" #~ msgstr "%s %s %s" #~ msgctxt "time range component" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgid "wired" #~ msgstr "ενσύρματο δίκτυο" #~ msgid "terminal" #~ msgstr "υπολογιστής" #~ msgid "service" #~ msgstr "εξυπηρέτηση" #~ msgid "Don’t have an account?" #~ msgstr "Δεν έχετε λογαριασμό;" #~ msgid "%f h" #~ msgstr "%f h" #~ msgid "%f min" #~ msgstr "%f min" #~ msgid "%f s" #~ msgstr "%f s" #~ msgid "Add destination" #~ msgstr "Προσθήκη προορισμού" #~ msgid "Route search by OpenTripPlanner" #~ msgstr "Αναζήτηση διαδρομής από το OpenTripPlanner" #~ msgid "Open with another application" #~ msgstr "Άνοιγμα με άλλη εφαρμογή" #~ msgid "org.gnome.Maps" #~ msgstr "org.gnome.Maps" #~ msgid "Press enter to search" #~ msgstr "Πατήστε enter για αναζήτηση" #~ msgid "Quit" #~ msgstr "Έξοδος" #~ msgid "OK" #~ msgstr "Εντάξει" #~| msgctxt "shortcut window" #~| msgid "Open shape layer" #~ msgid "Open Shape Layer…" #~ msgstr "Άνοιγμα στρώσης σχήματος…" #~ msgid "Load Map Layer" #~ msgstr "Φόρτωση στρώσης χάρτη" #~ msgid "%f km" #~ msgstr "%f km" #~ msgid "%f m" #~ msgstr "%f m" #~ msgid "%f mi" #~ msgstr "%f mi" #~ msgid "%f ft" #~ msgstr "%f ft" #~ msgid "Position not found" #~ msgstr "Η τοποθεσία δεν βρέθηκε" #~ msgid "Postal code: %s" #~ msgstr "Ταχ. κώδικας: %s" #~ msgid "Country code: %s" #~ msgstr "Κωδικός χώρας: %s" #~ msgid "Population: %s" #~ msgstr "Πληθυσμός: %s" #~ msgid "Wheelchair access: %s" #~ msgstr "Πρόσβαση αμαξιδίου: %s " #~ msgid "Failed to parse GeoJSON file" #~ msgstr "Αποτυχία ανάλυσης αρχείου GeoJSON" #~ msgid "_Share" #~ msgstr "_Κοινή χρήση" #~ msgid "Last known location and accuracy" #~ msgstr "Τελευταία γνωστή θέση και ακρίβεια" #~ msgid "" #~ "Last known location (latitude and longitude in degrees) and accuracy (in " #~ "meters)." #~ msgstr "" #~ "Τελευταία γνωστή θέση (πλάτος και μήκος σε μοίρες) και ακρίβεια (σε " #~ "μέτρα)." #~ msgid "Description of last known location of user." #~ msgstr "Περιγραφή της τελευταίας γνωστής θέσης του χρήστη." #~ msgid "User set last known location" #~ msgstr "Ορισμός της τελευταίας γνωστής τοποθεσίας από τον χρήστη" #~ msgid "Whether the last known location was set manually by the user." #~ msgstr "" #~ "Εάν η τελευταία γνωστή τοποθεσία ορίστηκε χειροκίνητα από τον χρήστη." #~ msgid "I’m here!" #~ msgstr "Είμαι εδώ!" #~ msgid "%f km²" #~ msgstr "%f km²" #~ msgid "To" #~ msgstr "Προς" #~ msgid "From" #~ msgstr "Από" #~ msgid " km2" #~ msgstr "km2" #~ msgid "Satellite" #~ msgstr "Δορυφόρος" 070701000001BA000081A4000000000000000000000001664134090000FBC0000000000000000000000000000000000000001D00000000gnome-maps-46.11/po/en_GB.po# British English translation of gnome-maps. # Copyright (C) 2013 gnome-maps's COPYRIGHT HOLDER. # This file is distributed under the same licence as the gnome-maps package. # Philip Withnall , 2013. # Zander Brown , 2019-2021. # Bruce Cowan , 2017-2024. # Andi Chandler , 2024. # msgid "" msgstr "" "Project-Id-Version: gnome-maps\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2024-02-23 11:57+0000\n" "PO-Revision-Date: 2024-02-24 16:23+0000\n" "Last-Translator: Bruce Cowan \n" "Language-Team: English - United Kingdom \n" "Language: en_GB\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Project-Style: gnome\n" "X-Generator: Poedit 3.4.2\n" #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.appdata.xml.in.in:6 data/org.gnome.Maps.desktop.in.in:4 #: data/ui/main-window.ui:27 src/application.js:64 src/mainWindow.js:147 #: src/mainWindow.js:647 msgid "Maps" msgstr "Maps" #: data/org.gnome.Maps.appdata.xml.in.in:7 msgid "Find places around the world" msgstr "Find places around the world" #: data/org.gnome.Maps.appdata.xml.in.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." #: data/org.gnome.Maps.appdata.xml.in.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Maps.appdata.xml.in.in:451 src/mainWindow.js:644 msgid "The GNOME Project" msgstr "The GNOME Project" #: data/org.gnome.Maps.desktop.in.in:5 msgid "A simple maps application" msgstr "A simple maps application" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in.in:14 msgid "Maps;" msgstr "Maps;" #: data/org.gnome.Maps.desktop.in.in:17 msgid "Allows your location to be shown on the map." msgstr "Allows your location to be shown on the map." #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "last viewed location" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "Coordinates of last viewed location." #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "zoom" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "Zoom level" #: data/org.gnome.Maps.gschema.xml:21 msgid "rotation" msgstr "rotation" #: data/org.gnome.Maps.gschema.xml:22 msgid "Map rotation in radians" msgstr "Map rotation in radians" #: data/org.gnome.Maps.gschema.xml:26 msgid "Map type" msgstr "Map type" #: data/org.gnome.Maps.gschema.xml:27 msgid "The type of map to display (street, aerial, etc.)" msgstr "The type of map to display (street, aerial, etc.)" #: data/org.gnome.Maps.gschema.xml:31 msgid "Window size" msgstr "Window size" #: data/org.gnome.Maps.gschema.xml:32 msgid "Window size (width and height)." msgstr "Window size (width and height)." #: data/org.gnome.Maps.gschema.xml:36 msgid "Window position" msgstr "Window position" #: data/org.gnome.Maps.gschema.xml:37 msgid "Window position (X and Y)." msgstr "Window position (X and Y)." #: data/org.gnome.Maps.gschema.xml:41 msgid "Window maximized" msgstr "Window maximised" #: data/org.gnome.Maps.gschema.xml:42 msgid "Window maximization state" msgstr "Window maximisation state" #: data/org.gnome.Maps.gschema.xml:46 msgid "Maximum number of search results" msgstr "Maximum number of search results" #: data/org.gnome.Maps.gschema.xml:47 msgid "Maximum number of search results from geocode search." msgstr "Maximum number of search results from geocode search." #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent places to store" msgstr "Number of recent places to store" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited places to store." msgstr "Number of recently visited places to store." #: data/org.gnome.Maps.gschema.xml:56 msgid "Number of recent routes to store" msgstr "Number of recent routes to store" #: data/org.gnome.Maps.gschema.xml:57 msgid "Number of recently visited routes to store." msgstr "Number of recently visited routes to store." #: data/org.gnome.Maps.gschema.xml:61 msgid "OpenStreetMap username or email address" msgstr "OpenStreetMap username or e-mail address" #: data/org.gnome.Maps.gschema.xml:62 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "Indicates if the user has signed in to edit OpenStreetMap data." #: data/org.gnome.Maps.gschema.xml:66 msgid "Last used transportation type for routing" msgstr "Last used transportation type for routing" #: data/org.gnome.Maps.gschema.xml:70 msgid "Show scale" msgstr "Show scale" #: data/org.gnome.Maps.gschema.xml:71 msgid "Whether to show the scale." msgstr "Whether to show the scale." #: data/ui/context-menu.ui:6 msgid "Route from Here" msgstr "Route from Here" #: data/ui/context-menu.ui:10 msgid "Add Intermediate Destination" msgstr "Add Intermediate Destination" #: data/ui/context-menu.ui:14 msgid "Route to Here" msgstr "Route to Here" #: data/ui/context-menu.ui:20 msgid "What's Here?" msgstr "What's Here?" #: data/ui/context-menu.ui:24 msgid "Copy Location" msgstr "Copy Location" #: data/ui/context-menu.ui:28 msgid "Add to OpenStreetMap…" msgstr "Add to OpenStreetMap…" #: data/ui/export-view-dialog.ui:7 msgid "Export view" msgstr "Export view" #: data/ui/export-view-dialog.ui:16 data/ui/send-to-dialog.ui:10 #: data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "_Cancel" #: data/ui/export-view-dialog.ui:26 msgid "_Export" msgstr "_Export" #. Translators: This is a tooltip #: data/ui/favorite-list-row.ui:72 msgid "Remove Favorite" msgstr "Remove Favourite" #: data/ui/favorites-popover.ui:11 msgid "No Favorites" msgstr "No Favourites" #: data/ui/favorites-popover.ui:12 msgid "Add places to your favorites to get them listed here" msgstr "Add places to your favourites to get them listed here" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:11 src/geoclue.js:106 msgid "Current Location" msgstr "Current Location" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:19 msgid "Layers" msgstr "Layers" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:11 msgid "Print Route" msgstr "Print Route" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:21 msgid "Favorites" msgstr "Favourites" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:30 msgid "Route Planner" msgstr "Route Planner" #: data/ui/help-overlay.ui:12 msgctxt "shortcut window" msgid "General" msgstr "General" #: data/ui/help-overlay.ui:15 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "Show Shortcuts" #: data/ui/help-overlay.ui:21 msgctxt "shortcut window" msgid "Search" msgstr "Search" #: data/ui/help-overlay.ui:27 msgctxt "shortcut window" msgid "Explore points-of-interest" msgstr "Explore points-of-interest" #: data/ui/help-overlay.ui:33 msgctxt "shortcut window" msgid "Show last search results" msgstr "Show last search results" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "Toggle route planner" #: data/ui/help-overlay.ui:45 msgctxt "shortcut window" msgid "Print route" msgstr "Print route" #: data/ui/help-overlay.ui:51 msgctxt "shortcut window" msgid "Quit" msgstr "Quit" #: data/ui/help-overlay.ui:57 msgctxt "shortcut window" msgid "Open main menu" msgstr "Open main menu" #: data/ui/help-overlay.ui:65 msgctxt "shortcut window" msgid "Map View" msgstr "Map View" #: data/ui/help-overlay.ui:68 msgctxt "shortcut window" msgid "Zoom in" msgstr "Zoom in" #: data/ui/help-overlay.ui:74 msgctxt "shortcut window" msgid "Zoom out" msgstr "Zoom out" #: data/ui/help-overlay.ui:80 msgctxt "shortcut window" msgid "Rotate clockwise" msgstr "Rotate clockwise" #: data/ui/help-overlay.ui:86 msgctxt "shortcut window" msgid "Rotate counter-clockwise" msgstr "Rotate anti-clockwise" #: data/ui/help-overlay.ui:92 msgctxt "shortcut window" msgid "Reset rotation" msgstr "Reset rotation" #: data/ui/help-overlay.ui:98 msgctxt "shortcut window" msgid "Toggle scale" msgstr "Toggle scale" #: data/ui/help-overlay.ui:104 msgctxt "shortcut window" msgid "Go to current location" msgstr "Go to current location" #: data/ui/help-overlay.ui:114 msgctxt "shortcut window" msgid "Switch to street view" msgstr "Switch to street view" #: data/ui/help-overlay.ui:121 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "Switch to aerial view" #: data/ui/help-overlay.ui:127 msgctxt "shortcut window" msgid "Open shape layer" msgstr "Open shape layer" #: data/ui/layers-popover.ui:7 msgid "Show Scale" msgstr "Show Scale" #: data/ui/layers-popover.ui:16 msgid "Enable Experimental Map" msgstr "Enable Experimental Map" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:21 msgid "Open Shape Layer…" msgstr "Open Shape Layer…" #: data/ui/main-window.ui:8 msgid "Set up OpenStreetMap Account…" msgstr "Set up OpenStreetMap Account…" #: data/ui/main-window.ui:12 msgid "Export as Image…" msgstr "Export as Image…" #: data/ui/main-window.ui:17 msgid "_Keyboard Shortcuts" msgstr "_Keyboard Shortcuts" #: data/ui/main-window.ui:22 msgid "About Maps" msgstr "About Maps" #: data/ui/main-window.ui:48 msgid "Main Menu" msgstr "Main Menu" #: data/ui/osm-account-dialog.ui:5 msgid "OpenStreetMap Account" msgstr "OpenStreetMap Account" #: data/ui/osm-account-dialog.ui:31 msgid "Sign In To Edit Maps" msgstr "Sign In To Edit Maps" #: data/ui/osm-account-dialog.ui:32 msgid "Help to improve the map, using an OpenStreetMap account." msgstr "Help to improve the map, using an OpenStreetMap account." #: data/ui/osm-account-dialog.ui:36 msgid "Sign In" msgstr "Sign In" #: data/ui/osm-account-dialog.ui:59 msgid "Verification" msgstr "Verification" #: data/ui/osm-account-dialog.ui:60 msgid "" "Copy the verification code shown when authorizing access in the browser." msgstr "" "Copy the verification code shown when authorising access in the browser." #: data/ui/osm-account-dialog.ui:69 msgid "Verification Code" msgstr "Verification Code" #: data/ui/osm-account-dialog.ui:75 msgid "Verify" msgstr "Verify" #: data/ui/osm-account-dialog.ui:110 msgid "Signed In" msgstr "Signed In" #: data/ui/osm-account-dialog.ui:111 msgid "Your OpenStreetMap account is active." msgstr "Your OpenStreetMap account is active." #: data/ui/osm-account-dialog.ui:129 msgid "Sign Out" msgstr "Sign Out" #: data/ui/osm-edit-address.ui:11 msgid "Street" msgstr "Street" #: data/ui/osm-edit-address.ui:22 msgid "House number" msgstr "House number" #: data/ui/osm-edit-address.ui:33 msgid "Postal code" msgstr "Postal code" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:44 msgid "City" msgstr "City" #: data/ui/osm-edit-dialog.ui:8 msgctxt "dialog title" msgid "Edit on OpenStreetMap" msgstr "Edit on OpenStreetMap" #: data/ui/osm-edit-dialog.ui:57 msgid "Type" msgstr "Type" #: data/ui/osm-edit-dialog.ui:79 msgid "None" msgstr "None" #: data/ui/osm-edit-dialog.ui:108 msgid "Add Field" msgstr "Add Field" #: data/ui/osm-edit-dialog.ui:130 msgid "Comment" msgstr "Comment" #: data/ui/osm-edit-dialog.ui:158 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." #: data/ui/osm-edit-dialog.ui:186 msgid "Recently Used" msgstr "Recently Used" #: data/ui/osm-edit-dialog.ui:225 src/mapView.js:671 msgid "Cancel" msgstr "Cancel" #: data/ui/osm-edit-dialog.ui:238 src/osmEditDialog.js:531 msgid "Next" msgstr "Next" #: data/ui/osm-edit-wikipedia.ui:8 msgid "Article" msgstr "Article" #: data/ui/osm-edit-wikipedia.ui:21 msgid "Wikidata tag" msgstr "Wikidata tag" #: data/ui/osm-edit-wikipedia.ui:32 msgid "Load Wikidata tag for article" msgstr "Load Wikidata tag for article" #: data/ui/place-popover.ui:23 src/searchBar.js:55 msgid "Explore Nearby Places" msgstr "Explore Nearby Places" #: data/ui/place-popover.ui:82 src/application.js:277 msgid "No results found" msgstr "No results found" #: data/ui/place-popover.ui:92 src/application.js:255 msgid "An error has occurred" msgstr "An error has occurred" #. Translators: This is a tooltip #: data/ui/route-entry.ui:12 msgid "Change Route Order" msgstr "Change Route Order" #: data/ui/send-to-dialog.ui:7 msgid "Open Location" msgstr "Open Location" #: data/ui/send-to-dialog.ui:64 msgid "Copy" msgstr "Copy" #: data/ui/send-to-dialog.ui:70 msgid "Send To…" msgstr "Send To…" #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:62 msgid "Open Shape Layer" msgstr "Open Shape Layer" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "_Open" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:32 msgid "Toggle visible" msgstr "Toggle visible" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:44 msgid "Remove Shape Layer" msgstr "Remove Shape Layer" #: data/ui/sidebar.ui:207 msgid "Route search by GraphHopper" msgstr "Route search by GraphHopper" #: data/ui/sidebar.ui:272 msgid "" "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of " "transportation,\n" "e.g. a national provider might not include airlines, and a local provider " "could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of " "transportation,\n" "e.g. a national provider might not include airlines, and a local provider " "could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:98 msgid "Hide intermediate stops and information" msgstr "Hide intermediate stops and information" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:156 msgid "Show intermediate stops and information" msgstr "Show intermediate stops and information" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:16 msgid "Leave Now" msgstr "Leave Now" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:17 msgid "Leave By" msgstr "Leave By" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:18 msgid "Arrive By" msgstr "Arrive By" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:85 msgid "Show" msgstr "Show" #: data/ui/transit-options-panel.ui:95 msgid "Buses" msgstr "Buses" #: data/ui/transit-options-panel.ui:101 msgid "Trams" msgstr "Trams" #: data/ui/transit-options-panel.ui:107 msgid "Trains" msgstr "Trains" #: data/ui/transit-options-panel.ui:113 msgid "Subway" msgstr "Underground" #: data/ui/transit-options-panel.ui:119 msgid "Ferries" msgstr "Ferries" #: data/ui/transit-options-panel.ui:125 msgid "Airplanes" msgstr "Aeroplanes" #. Translators: This is a tooltip #: data/ui/place-bar.ui:33 data/ui/place-buttons.ui:27 msgid "Share Location" msgstr "Share Location" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:11 msgid "Add to new route" msgstr "Add to new route" #. Translators: This is the button to find a route to a place #: data/ui/place-buttons.ui:15 msgid "Directions" msgstr "Directions" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:36 msgid "Mark as Favorite" msgstr "Mark as Favourite" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:44 msgid "Edit on OpenStreetMap" msgstr "Edit on OpenStreetMap" #. Translators: This is a tooltip #: data/ui/place-view.ui:52 msgid "Share location" msgstr "Share location" #: data/ui/poi-category-goback-row.ui:22 msgid "Back to Main Categories" msgstr "Back to Main Categories" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:19 msgid "Reset Rotation" msgstr "Reset Rotation" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:32 msgid "Zoom Out" msgstr "Zoom Out" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:43 src/mapView.js:1246 msgid "Zoom In" msgstr "Zoom In" #: lib/maps-file-data-source.c:262 lib/maps-file-data-source.c:338 #: lib/maps-file-data-source.c:418 msgid "Failed to find tile structure in directory" msgstr "Failed to find tile structure in directory" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "Failed to parse XML document" #: lib/maps-osm.c:250 lib/maps-osm.c:403 msgid "Missing required attributes" msgstr "Missing required attributes" #: lib/maps-osm.c:451 lib/maps-osm.c:494 msgid "Could not find OSM element" msgstr "Could not find OSM element" #: lib/maps-osm.c:508 msgid "Could not find user element" msgstr "Could not find user element" #: src/application.js:78 msgid "A path to a local tiles directory structure" msgstr "A path to a local tiles directory structure" #: src/application.js:84 msgid "Tile size for local tiles directory" msgstr "Tile size for local tiles directory" #: src/application.js:88 msgid "Show the version of the program" msgstr "Show the version of the program" #: src/application.js:94 msgid "Search for places" msgstr "Search for places" #: src/application.js:105 src/application.js:106 msgid "[FILE…|URI]" msgstr "[FILE…|URI]" #: src/application.js:284 #, javascript-format msgid "Invalid maps: URI: %s" msgstr "Invalid maps: URI: %s" #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:75 #, javascript-format msgid "Maps at %f, %f.png" msgstr "Maps at %f, %f.png" #: src/exportViewDialog.js:174 msgid "Unable to export view" msgstr "Unable to export view" #: src/favoriteListRow.js:42 msgid "Favorite removed" msgstr "Favourite removed" #: src/favoriteListRow.js:43 msgid "Undo" msgstr "Undo" #: src/geoJSONSource.js:73 msgid "invalid coordinate" msgstr "invalid coordinate" #: src/geoJSONSource.js:126 src/geoJSONSource.js:166 src/geoJSONSource.js:181 msgid "parse error" msgstr "parse error" #: src/geoJSONSource.js:160 msgid "unknown geometry" msgstr "unknown geometry" #: src/graphHopper.js:101 src/transitPlan.js:175 msgid "Route request failed." msgstr "Route request failed." #: src/graphHopper.js:108 src/transitPlan.js:167 msgid "No route found." msgstr "No route found." #: src/graphHopper.js:195 src/transitplugins/openTripPlanner.js:1163 msgid "Start!" msgstr "Start!" #: src/mainWindow.js:59 msgid "All Layer Files" msgstr "All Layer Files" #: src/mainWindow.js:522 msgid "Failed to connect to location service" msgstr "Failed to connect to location service" #: src/mainWindow.js:527 msgid "Turn on location services" msgstr "Turn on location services" #: src/mainWindow.js:528 msgid "Location Settings" msgstr "Location Settings" #: src/mainWindow.js:645 msgid "translator-credits" msgstr "" "Philip Withnall \n" "David King \n" "Bruce Cowan \n" "Zander Brown \n" "Andi Chandler " #: src/mainWindow.js:649 msgid "Copyright © 2011 – 2023 Red Hat, Inc. and The GNOME Maps authors" msgstr "Copyright © 2011 – 2023 Red Hat, Inc. and The GNOME Maps authors" #: src/mainWindow.js:665 #, javascript-format msgid "Map data by %s and contributors" msgstr "Map data by %s and contributors" #: src/mainWindow.js:666 msgid "Map Data Provider" msgstr "Map Data Provider" #: src/mainWindow.js:678 msgid "Map Tile Provider" msgstr "Map Tile Provider" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:686 #, javascript-format msgid "Map tiles provided by %s" msgstr "Map tiles provided by %s" #: src/mainWindow.js:716 msgid "Search Provider" msgstr "Search Provider" #: src/mainWindow.js:719 #, javascript-format msgid "Search provided by %s using %s" msgstr "Search provided by %s using %s" #: src/mapView.js:645 src/mapView.js:710 msgid "Failed to open layer" msgstr "Failed to open layer" #: src/mapView.js:664 msgid "Do you want to continue?" msgstr "Do you want to continue?" #: src/mapView.js:665 #, javascript-format msgid "" "You are about to open files with a total size of %s MB. This could take some " "time to load" msgstr "" "You are about to open files with a total size of %s MB. This could take some " "time to load" #: src/mapView.js:672 src/transitplugins/openTripPlanner.js:1239 #: src/transitplugins/openTripPlanner2.js:267 msgid "Continue" msgstr "Continue" #: src/mapView.js:704 msgid "File type is not supported" msgstr "File type is not supported" #: src/mapView.js:741 msgid "Failed to open GeoURI" msgstr "Failed to open GeoURI" #: src/mapView.js:1205 msgid "Nothing found here!" msgstr "Nothing found here!" #: src/mapView.js:1245 msgid "Zoom in to add location" msgstr "Zoom in to add location" #: src/mapView.js:1266 msgid "Location was added in OpenStreetMap" msgstr "Location was added in OpenStreetMap" #. switch back to the sign-in view, and show a toast indicating #. that verification failed #: src/osmAccountDialog.js:134 msgid "The verification code didn’t match, please try again." msgstr "The verification code didn’t match, please try again." #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:335 msgid "Incorrect user name or password" msgstr "Incorrect user name or password" #: src/osmConnection.js:337 msgid "Success" msgstr "Success" #: src/osmConnection.js:339 msgid "Bad request" msgstr "Bad request" #: src/osmConnection.js:341 msgid "Object not found" msgstr "Object not found" #: src/osmConnection.js:343 msgid "Conflict, someone else has just modified the object" msgstr "Conflict, someone else has just modified the object" #: src/osmConnection.js:345 msgid "Object has been deleted" msgstr "Object has been deleted" #: src/osmConnection.js:347 msgid "Way or relation refers to non-existing children" msgstr "Way or relation refers to non-existing children" #: src/osmEditDialog.js:106 msgid "Name" msgstr "Name" #: src/osmEditDialog.js:109 msgid "The official name. This is typically what appears on signs." msgstr "The official name. This is typically what appears on signs." #: src/osmEditDialog.js:112 msgid "Address" msgstr "Address" #: src/osmEditDialog.js:120 src/placeView.js:275 msgid "Website" msgstr "Website" #: src/osmEditDialog.js:124 msgid "This is not a valid URL. Make sure to include http:// or https://." msgstr "This is not a valid URL. Make sure to include http:// or https://." #: src/osmEditDialog.js:125 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." #: src/osmEditDialog.js:130 msgid "Phone" msgstr "Phone" #: src/osmEditDialog.js:134 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." #: src/osmEditDialog.js:139 msgid "E-mail" msgstr "E-mail" #: src/osmEditDialog.js:144 msgid "" "This is not a valid email address. Make sure to not include the mailto: " "protocol prefix." msgstr "" "This is not a valid email address. Make sure to not include the mailto: " "protocol prefix." #: src/osmEditDialog.js:145 msgid "" "Contact email address for inquiries. Add only email addresses that are " "intended to be publicly used." msgstr "" "Contact e-mail address for inquiries. Only add e-mail addresses that are " "intended to be publicly used." #. Translators: This is the text for the "Wikipedia" link at the end #. of summaries #: src/osmEditDialog.js:149 src/placeView.js:727 msgid "Wikipedia" msgstr "Wikipedia" #: src/osmEditDialog.js:156 src/placeView.js:399 msgid "Opening hours" msgstr "Opening hours" #: src/osmEditDialog.js:161 msgid "See the link in the label for help on format." msgstr "See the link in the label for help on format." #. TODO: this is a bit of a work-around to re-interpret the population, #. * stored as a string into an integer to convert back to a locale- #. * formatted string. Ideally it should be kept as an integer value #. * in the Place class. But this will also need to be handled by the #. * PlaceStore, possible in a backwards-compatible way #. #: src/osmEditDialog.js:164 src/placeView.js:509 msgid "Population" msgstr "Population" #: src/osmEditDialog.js:169 src/placeView.js:538 msgid "Altitude" msgstr "Altitude" #: src/osmEditDialog.js:172 msgid "Elevation (height above sea level) of a point in meters." msgstr "Elevation (height above sea level) of a point in metres." #: src/osmEditDialog.js:175 msgid "Wheelchair access" msgstr "Wheelchair access" #: src/osmEditDialog.js:178 src/osmEditDialog.js:187 src/osmEditDialog.js:198 #: src/osmEditDialog.js:233 msgid "Yes" msgstr "Yes" #: src/osmEditDialog.js:179 src/osmEditDialog.js:188 src/osmEditDialog.js:199 #: src/osmEditDialog.js:234 msgid "No" msgstr "No" #: src/osmEditDialog.js:180 msgid "Limited" msgstr "Limited" #: src/osmEditDialog.js:181 msgid "Designated" msgstr "Designated" #: src/osmEditDialog.js:184 msgid "Internet access" msgstr "Internet access" #: src/osmEditDialog.js:189 msgid "Wi-Fi" msgstr "Wi-Fi" #: src/osmEditDialog.js:190 msgid "Wired" msgstr "Wired" #: src/osmEditDialog.js:191 msgid "Terminal" msgstr "Terminal" #: src/osmEditDialog.js:192 msgid "Service" msgstr "Service" #: src/osmEditDialog.js:195 msgid "Takeout" msgstr "Takeaway" #: src/osmEditDialog.js:200 msgid "Only" msgstr "Only" #: src/osmEditDialog.js:203 msgid "Religion" msgstr "Religion" #: src/osmEditDialog.js:206 src/translations.js:286 msgid "Animism" msgstr "Animism" #: src/osmEditDialog.js:207 msgid "Bahá’í" msgstr "Bahá’í" #: src/osmEditDialog.js:208 src/translations.js:288 msgid "Buddhism" msgstr "Buddhism" #: src/osmEditDialog.js:209 src/translations.js:289 msgid "Caodaism" msgstr "Caodaism" #: src/osmEditDialog.js:210 src/translations.js:290 msgid "Christianity" msgstr "Christianity" #: src/osmEditDialog.js:211 src/translations.js:291 msgid "Confucianism" msgstr "Confucianism" #: src/osmEditDialog.js:212 src/translations.js:292 msgid "Hinduism" msgstr "Hinduism" #: src/osmEditDialog.js:213 src/translations.js:293 msgid "Jainism" msgstr "Jainism" #: src/osmEditDialog.js:214 src/translations.js:294 msgid "Judaism" msgstr "Judaism" #: src/osmEditDialog.js:215 src/translations.js:295 msgid "Islam" msgstr "Islam" #: src/osmEditDialog.js:216 src/translations.js:296 msgid "Multiple Religions" msgstr "Multiple Religions" #: src/osmEditDialog.js:217 src/translations.js:297 msgid "Paganism" msgstr "Paganism" #: src/osmEditDialog.js:218 src/translations.js:298 msgid "Pastafarianism" msgstr "Pastafarianism" #: src/osmEditDialog.js:219 src/translations.js:299 msgid "Scientology" msgstr "Scientology" #: src/osmEditDialog.js:220 src/translations.js:300 msgid "Shinto" msgstr "Shinto" #: src/osmEditDialog.js:221 src/translations.js:301 msgid "Sikhism" msgstr "Sikhism" #: src/osmEditDialog.js:222 src/translations.js:302 msgid "Spiritualism" msgstr "Spiritualism" #: src/osmEditDialog.js:223 src/translations.js:303 msgid "Taoism" msgstr "Taoism" #: src/osmEditDialog.js:224 src/translations.js:304 msgid "Unitarian Universalism" msgstr "Unitarian Universalism" #: src/osmEditDialog.js:225 src/translations.js:305 msgid "Voodoo" msgstr "Voodoo" #: src/osmEditDialog.js:226 src/translations.js:306 msgid "Yazidism" msgstr "Yazidism" #: src/osmEditDialog.js:227 src/translations.js:307 msgid "Zoroastrianism" msgstr "Zoroastrianism" #: src/osmEditDialog.js:230 src/poiCategories.js:176 msgid "Toilets" msgstr "Toilets" #: src/osmEditDialog.js:237 msgid "Note" msgstr "Note" #: src/osmEditDialog.js:240 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." #: src/osmEditDialog.js:339 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "Add to OpenStreetMap" #: src/osmEditDialog.js:393 msgid "Select Type" msgstr "Select Type" #: src/osmEditDialog.js:515 msgid "Done" msgstr "Done" #: src/osmEditDialog.js:818 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "" "The format used should include the language code and the article title like " "“en:Article title”." #: src/osmEditDialog.js:824 msgid "Use the reload button to load the Wikidata tag for the selected article" msgstr "" "Use the reload button to load the Wikidata tag for the selected article" #: src/osmEditDialog.js:832 msgid "Couldn't find Wikidata tag for article" msgstr "Couldn't find Wikidata tag for article" #: src/photonUtils.js:118 msgid "Unnamed place" msgstr "Unnamed place" #: src/placeEntry.js:274 msgid "Failed to parse Geo URI" msgstr "Failed to parse Geo URI" #: src/placeEntry.js:286 msgid "Failed to parse Maps URI" msgstr "Failed to parse Maps URI" #. 300 ft (300 * 12 * 0.0254 m) #. #. * Translators: This a format string for showing a distance to a place #. * is lower than a "quite short" distance. #. * The "less than" symbol can be substituded with an appropriate one, if #. * needed (e.g. using the correct direction, or alternative symbol). #. * The %s should be kept, and is substituted with a label representing the #. * short distance. The \u2009 (thin space) could also be adjusted if needed #: src/placeListRow.js:46 #, javascript-format msgctxt "short distance format string" msgid "< %s" msgstr "< %s" #: src/placeView.js:263 msgid "Coordinates" msgstr "Coordinates" #: src/placeView.js:267 msgid "Accuracy" msgstr "Accuracy" #. Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) #: src/placeView.js:270 #, javascript-format msgid "Accuracy: %s" msgstr "Accuracy: %s" #. since the phone numbers are typically always rendered #. * left-to-right, insert an explicit LRM char to avoid issues #. * with phone numbers in international format starting with a + #. * which is considered a "weak" character to determine Unicode #. * text direction #. #: src/placeView.js:289 msgid "Phone number" msgstr "Phone number" #: src/placeView.js:308 msgid "Email" msgstr "E-mail" #. If a reference to a named floor (named or symbolic) exists #. * refer to it directly. #. #. Translators: #. * This is a reference to named building floor, using a label #. * or a code, as "displayed in the elevator" #. #: src/placeView.js:323 src/placeView.js:362 msgid "Floor" msgstr "Floor" #: src/placeView.js:325 #, javascript-format msgid "Floor %s" msgstr "Floor %s" #: src/placeView.js:337 msgid "At ground level" msgstr "At ground level" #. Translators: #. * This is a reference to a number of floors above #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:346 #, javascript-format msgid "%s floor above ground level" msgid_plural "%s floors above ground level" msgstr[0] "%s floor above ground level" msgstr[1] "%s floors above ground level" #. Translators: #. * This is a reference to a number of floors below #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:357 #, javascript-format msgid "%s floor below ground level" msgid_plural "%s floors below ground level" msgstr[0] "%s floor below ground level" msgstr[1] "%s floors below ground level" #. Translators: #. * The establishment offers customers to purchase meals #. * (or similar) to be consumed elsewhere #. #: src/placeView.js:375 msgid "Offers takeout" msgstr "Offers takeaway" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed on-premise. #. #: src/placeView.js:383 msgid "Does not offer takeout" msgstr "Does not offer takeaway" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed elsewhere. E.g. #. * there is no seating on-premise for eating/drinking #. #: src/placeView.js:392 msgid "Only offers takeout" msgstr "Only offers takeaway" #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/placeView.js:409 msgid "Public internet access" msgstr "Public internet access" #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/placeView.js:418 msgid "No internet access" msgstr "No internet access" #. Translators: #. * This means a WLAN Hotspot, also known as wireless, wifi or Wi-Fi. #. #: src/placeView.js:426 msgid "Public Wi-Fi" msgstr "Public Wi-Fi" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/placeView.js:434 msgid "Wired internet access" msgstr "Wired internet access" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/placeView.js:442 msgid "Computers available for use" msgstr "Computers available for use" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/placeView.js:450 msgid "Internet assistance available" msgstr "Internet assistance available" #: src/placeView.js:456 msgid "No toilets available" msgstr "No toilets available" #: src/placeView.js:459 msgid "Toilets available" msgstr "Toilets available" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #: src/placeView.js:468 msgid "Wheelchair accessible" msgstr "Wheelchair accessible" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/placeView.js:478 msgid "Limited wheelchair accessibility" msgstr "Limited wheelchair accessibility" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #: src/placeView.js:487 msgid "Not wheelchair accessible" msgstr "Not wheelchair accessible" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/placeView.js:497 msgid "Designated for wheelchair users" msgstr "Designated for wheelchair users" #. * #. * Translators: this is a label indicating an altitude below #. * sea level, where the %s placeholder is the altitude relative #. * to mean sea level in the "negative direction" #. #: src/placeView.js:528 #, javascript-format msgid "%s below sea level" msgstr "%s below sea level" #. * #. * Translators: this indicates a place is located at (or very #. * close to) mean sea level #. #: src/placeView.js:535 msgid "At sea level" msgstr "At sea level" #: src/placeView.js:544 msgid "Religion:" msgstr "Religion:" #: src/place.js:570 msgid "Place not found in OpenStreetMap" msgstr "Place not found in OpenStreetMap" #: src/place.js:577 msgid "Coordinates in URL are not valid" msgstr "Coordinates in URL are not valid" #: src/place.js:586 msgid "URL is not supported" msgstr "URL is not supported" #: src/poiCategories.js:132 msgid "Amenities" msgstr "Amenities" #: src/poiCategories.js:135 msgid "ATMs" msgstr "ATMs" #: src/poiCategories.js:141 msgid "Post Boxes" msgstr "Post Boxes" #: src/poiCategories.js:147 msgid "Post Offices" msgstr "Post Offices" #: src/poiCategories.js:153 msgid "Police" msgstr "Police" #: src/poiCategories.js:159 msgid "Libraries" msgstr "Libraries" #: src/poiCategories.js:165 msgid "Pharmacies" msgstr "Pharmacies" #: src/poiCategories.js:171 msgid "Recycling" msgstr "Recycling" #: src/poiCategories.js:182 msgid "Wheelchair-accessible Toilets" msgstr "Wheelchair-accessible Toilets" #: src/poiCategories.js:188 msgid "Baggage Lockers" msgstr "Baggage Lockers" #: src/poiCategories.js:196 msgid "Eating & Drinking" msgstr "Eating & Drinking" #: src/poiCategories.js:200 msgid "Restaurants" msgstr "Restaurants" #: src/poiCategories.js:205 msgid "Fast Food" msgstr "Fast Food" #: src/poiCategories.js:210 msgid "Food Courts" msgstr "Food Courts" #: src/poiCategories.js:215 msgid "Pubs" msgstr "Pubs" #: src/poiCategories.js:221 msgid "Bars" msgstr "Bars" #: src/poiCategories.js:226 msgid "Cafes" msgstr "Cafes" #: src/poiCategories.js:231 msgid "Ice Cream" msgstr "Ice Cream" #: src/poiCategories.js:236 msgid "Food, Snacks, and Beverage Machines" msgstr "Food, Snacks, and Beverage Machines" #: src/poiCategories.js:244 msgid "Shopping" msgstr "Shopping" #: src/poiCategories.js:248 msgid "Supermarkets" msgstr "Supermarkets" #: src/poiCategories.js:254 msgid "Convenience Stores" msgstr "Convenience Shops" #: src/poiCategories.js:259 msgid "Shopping Malls" msgstr "Shopping Centres" #: src/poiCategories.js:265 msgid "Clothes" msgstr "Clothes" #: src/poiCategories.js:271 msgid "Shoes" msgstr "Shoes" #: src/poiCategories.js:276 msgid "Electronics" msgstr "Electronics" #: src/poiCategories.js:282 msgid "Alcohol" msgstr "Alcohol" #: src/poiCategories.js:288 msgid "Bakeries" msgstr "Bakeries" #: src/poiCategories.js:294 msgid "Flowers" msgstr "Flowers" #: src/poiCategories.js:301 msgid "Transportation" msgstr "Transportation" #: src/poiCategories.js:305 msgid "Bus & Tram Stops" msgstr "Bus & Tram Stops" #: src/poiCategories.js:313 msgid "Train & Subway Stations" msgstr "Train & Subway Stations" #: src/poiCategories.js:321 msgid "Tickets" msgstr "Tickets" #: src/poiCategories.js:329 msgid "Parking" msgstr "Parking" #: src/poiCategories.js:334 msgid "Bicycle Parking" msgstr "Bicycle Parking" #: src/poiCategories.js:339 msgid "Bicycle Rental" msgstr "Bicycle Rental" #: src/poiCategories.js:344 msgid "Car Rental" msgstr "Car Rental" #: src/poiCategories.js:349 msgid "Fuel" msgstr "Fuel" #: src/poiCategories.js:354 msgid "EV Charging" msgstr "EV Charging" #: src/poiCategories.js:362 msgid "Healthcare" msgstr "Healthcare" #: src/poiCategories.js:366 msgid "Clinics" msgstr "Clinics" #: src/poiCategories.js:372 msgid "Hospitals" msgstr "Hospitals" #: src/poiCategories.js:378 msgid "Dentists" msgstr "Dentists" #: src/poiCategories.js:386 msgid "Accommodation" msgstr "Accommodation" #: src/poiCategories.js:390 msgid "Hotels" msgstr "Hotels" #: src/poiCategories.js:395 msgid "Hostels" msgstr "Hostels" #: src/poiCategories.js:400 msgid "Bed & Breakfast" msgstr "Bed & Breakfast" #: src/poiCategories.js:405 msgid "Campings" msgstr "Camping site" #: src/poiCategories.js:412 msgid "Recreation" msgstr "Recreation" #: src/poiCategories.js:416 msgid "Parks" msgstr "Parks" #: src/poiCategories.js:421 msgid "Playgrounds" msgstr "Playgrounds" #: src/poiCategories.js:425 msgid "Beaches" msgstr "Beaches" #: src/poiCategories.js:430 msgid "Nature Reserves" msgstr "Nature Reserves" #: src/poiCategories.js:436 msgid "Theme Parks" msgstr "Theme Parks" #: src/poiCategories.js:441 msgid "Theaters" msgstr "Theatres" #: src/poiCategories.js:447 msgid "Movie Theaters" msgstr "Cinemas" #: src/poiCategories.js:453 msgid "Night Clubs" msgstr "Night Clubs" #: src/poiCategories.js:460 msgid "Tourism" msgstr "Tourism" #: src/poiCategories.js:464 msgid "Museums" msgstr "Museums" #: src/poiCategories.js:470 msgid "Attractions" msgstr "Attractions" #: src/poiCategories.js:475 msgid "Artworks" msgstr "Artworks" #: src/poiCategories.js:480 msgid "Tourist Information" msgstr "Tourist Information" #: src/poiCategories.js:487 msgid "Sports" msgstr "Sports" #: src/poiCategories.js:491 msgid "Gyms" msgstr "Gyms" #: src/poiCategories.js:497 msgid "Outdoor Gyms" msgstr "Outdoor Gyms" #: src/poiCategories.js:503 msgid "Golf Courses" msgstr "Golf Courses" #: src/printLayout.js:350 #, javascript-format msgid "From %s to %s" msgstr "From %s to %s" #: src/printOperation.js:49 msgid "Loading map tiles for printing" msgstr "Loading map tiles for printing" #: src/printOperation.js:50 msgid "You can abort printing if this takes too long" msgstr "You can abort printing if this takes too long" #: src/printOperation.js:52 msgid "Abort printing" msgstr "Abort printing" #. Translators: this is add via location tooltip #: src/routeEntry.js:60 msgid "Add via location" msgstr "Add via location" #. Translators: this is remove via location tooltip #: src/routeEntry.js:70 msgid "Remove via location" msgstr "Remove via location" #. Translators: this is reverse route tooltip #: src/routeEntry.js:76 msgid "Reverse route" msgstr "Reverse route" #: src/searchBar.js:45 msgid "Search" msgstr "Search" #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:84 #, javascript-format msgid "Add %s to %s" msgstr "Add %s to %s" #: src/sendToDialog.js:181 msgid "Failed to open URI" msgstr "Failed to open URI" #: src/sendToDialog.js:246 #, javascript-format msgid "Open with %s" msgstr "Open with %s" #: src/shapeLayer.js:109 msgid "failed to load file" msgstr "failed to load file" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:328 #, javascript-format msgid "Estimated time: %s" msgstr "Estimated time: %s" #: src/sidebar.js:398 #, javascript-format msgid "Itineraries provided by %s" msgstr "Itineraries provided by %s" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:39 #, javascript-format msgid "Start at %s" msgstr "Start at %s" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:45 src/transitplugins/openTripPlanner2.js:236 msgid "Start" msgstr "Start" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:63 #, javascript-format msgid "Walk %s" msgstr "Walk %s" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:77 #, javascript-format msgid "Arrive at %s" msgstr "Arrive at %s" #: src/transit.js:79 src/transitplugins/openTripPlanner.js:1176 #: src/transitplugins/openTripPlanner2.js:255 msgid "Arrive" msgstr "Arrive" #: src/transitLegRow.js:69 msgid "Show walking instructions" msgstr "Show walking instructions" #: src/transitLegRow.js:70 msgid "Hide walking instructions" msgstr "Hide walking instructions" #: src/transitMoreRow.js:37 msgid "Load earlier alternatives" msgstr "Load earlier alternatives" #: src/transitMoreRow.js:39 msgid "Load later alternatives" msgstr "Load later alternatives" #: src/transitMoreRow.js:52 msgid "No earlier alternatives found." msgstr "No earlier alternatives found." #: src/transitMoreRow.js:54 msgid "No later alternatives found." msgstr "No later alternatives found." #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:138 msgctxt "month-day-date" msgid "%b %e" msgstr "%e %b" #: src/transitPlan.js:171 msgid "No timetable data found for this route." msgstr "No timetable data found for this route." #: src/transitPlan.js:179 msgid "No provider found for this route." msgstr "No provider found for this route." #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:300 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:331 #, javascript-format msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "%s minute" msgstr[1] "%s minutes" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:343 #, javascript-format msgid "%s hour" msgid_plural "%s hours" msgstr[0] "%s hour" msgstr[1] "%s hours" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:351 #, javascript-format msgid "%s:%s hour" msgid_plural "%s:%s hours" msgstr[0] "%s:%s hour" msgstr[1] "%s:%s hours" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:744 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: src/translations.js:55 msgid "Around the clock" msgstr "Around the clock" #: src/translations.js:57 msgid "From sunrise to sunset" msgstr "From sunrise to sunset" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:123 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s,%s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:137 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s,%s,%s" #: src/translations.js:156 msgid "Every day" msgstr "Every day" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:168 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:179 msgid "Public holidays" msgstr "Public holidays" #: src/translations.js:181 msgid "School holidays" msgstr "School holidays" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:221 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: src/translations.js:235 msgid "not open" msgstr "not open" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:250 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:287 msgid "Bahá'í" msgstr "Bahá'í" #. Translators: Accuracy of user location information #: src/utils.js:248 msgid "Unknown" msgstr "Unknown" #. Translators: Accuracy of user location information #: src/utils.js:251 msgid "Exact" msgstr "Exact" #. Translators: this is a duration with only hours, using #. * an abbreviation for hours, corresponding to 'h' in English #. #: src/utils.js:307 #, javascript-format msgid "%s h" msgstr "%s h" #. Translators: this is a duration with hours and minutes parts #. * using abbreviations for hours and minutes, corresponding to 'h' #. * and 'min' in English. The minutes has appropriate plural variations #. #: src/utils.js:313 #, javascript-format msgid "%s h %s min" msgid_plural "%s h %s min" msgstr[0] "%s h %s min" msgstr[1] "%s h %s mins" #. Translators: this is a duration with minutes part #. * using abbreviation for minutes, corresponding to 'min' in English #. * with appropriate plural variations #. #: src/utils.js:320 #, javascript-format msgid "%s min" msgid_plural "%s min" msgstr[0] "%s min" msgstr[1] "%s mins" #. Translators: this is a duration of less than one minute #. * with seconds using an abbreviation for seconds, corresponding to #. * 's' in English with appropriate plural forms #. #: src/utils.js:326 #, javascript-format msgid "%s s" msgid_plural "%s s" msgstr[0] "%s s" msgstr[1] "%s s" #. Translators: This is a distance measured in kilometers #: src/utils.js:337 #, javascript-format msgid "%s km" msgstr "%s km" #. Translators: This is a distance measured in meters #: src/utils.js:340 #, javascript-format msgid "%s m" msgstr "%s m" #. Translators: This is a distance measured in miles #: src/utils.js:348 #, javascript-format msgid "%s mi" msgstr "%s mi" #. Translators: This is a distance measured in feet #: src/utils.js:351 #, javascript-format msgid "%s ft" msgstr "%s ft" #: src/transitplugins/goMetro.js:61 msgid "This plugin doesn't support latest arrival" msgstr "This plug-in doesn't support latest arrival" #: src/transitplugins/openTripPlanner.js:1237 #: src/transitplugins/openTripPlanner2.js:266 #, javascript-format msgid "Continue on %s" msgstr "Continue on %s" #: src/transitplugins/openTripPlanner.js:1242 #: src/transitplugins/openTripPlanner2.js:270 #, javascript-format msgid "Turn left on %s" msgstr "Turn left on %s" #: src/transitplugins/openTripPlanner.js:1244 #: src/transitplugins/openTripPlanner2.js:271 msgid "Turn left" msgstr "Turn left" #: src/transitplugins/openTripPlanner.js:1247 #: src/transitplugins/openTripPlanner2.js:275 #, javascript-format msgid "Turn slightly left on %s" msgstr "Turn slightly left on %s" #: src/transitplugins/openTripPlanner.js:1249 #: src/transitplugins/openTripPlanner2.js:276 msgid "Turn slightly left" msgstr "Turn slightly left" #: src/transitplugins/openTripPlanner.js:1252 #: src/transitplugins/openTripPlanner2.js:280 #, javascript-format msgid "Turn sharp left on %s" msgstr "Turn sharp left on %s" #: src/transitplugins/openTripPlanner.js:1254 #: src/transitplugins/openTripPlanner2.js:281 msgid "Turn sharp left" msgstr "Turn sharp left" #: src/transitplugins/openTripPlanner.js:1257 #: src/transitplugins/openTripPlanner2.js:284 #, javascript-format msgid "Turn right on %s" msgstr "Turn right on %s" #: src/transitplugins/openTripPlanner.js:1259 #: src/transitplugins/openTripPlanner2.js:285 msgid "Turn right" msgstr "Turn right" #: src/transitplugins/openTripPlanner.js:1262 #: src/transitplugins/openTripPlanner2.js:289 #, javascript-format msgid "Turn slightly right on %s" msgstr "Turn slightly right on %s" #: src/transitplugins/openTripPlanner.js:1264 #: src/transitplugins/openTripPlanner2.js:290 msgid "Turn slightly right" msgstr "Turn slightly right" #: src/transitplugins/openTripPlanner.js:1267 #: src/transitplugins/openTripPlanner2.js:294 #, javascript-format msgid "Turn sharp right on %s" msgstr "Turn sharp right on %s" #: src/transitplugins/openTripPlanner.js:1269 #: src/transitplugins/openTripPlanner2.js:295 msgid "Turn sharp right" msgstr "Turn sharp right" #: src/transitplugins/openTripPlanner.js:1275 #: src/transitplugins/openTripPlanner2.js:302 #, javascript-format msgid "At the roundabout, take exit %s" msgstr "At the roundabout, take exit %s" #: src/transitplugins/openTripPlanner.js:1277 #: src/transitplugins/openTripPlanner2.js:305 #, javascript-format msgid "At the roundabout, take exit to %s" msgstr "At the roundabout, take exit to %s" #: src/transitplugins/openTripPlanner.js:1279 #: src/transitplugins/openTripPlanner2.js:307 msgid "Take the roundabout" msgstr "Take the roundabout" #: src/transitplugins/openTripPlanner.js:1283 #: src/transitplugins/openTripPlanner2.js:315 #, javascript-format msgid "Take the elevator and get off at %s" msgstr "Take the lift and get off at %s" #: src/transitplugins/openTripPlanner.js:1285 #: src/transitplugins/openTripPlanner2.js:316 msgid "Take the elevator" msgstr "Take the lift" #: src/transitplugins/openTripPlanner.js:1289 #: src/transitplugins/openTripPlanner2.js:320 #, javascript-format msgid "Make a left u-turn onto %s" msgstr "Make a left u-turn onto %s" #: src/transitplugins/openTripPlanner.js:1291 #: src/transitplugins/openTripPlanner2.js:321 msgid "Make a left u-turn" msgstr "Make a left u-turn" #: src/transitplugins/openTripPlanner.js:1294 #: src/transitplugins/openTripPlanner2.js:325 #, javascript-format msgid "Make a right u-turn onto %s" msgstr "Make a right u-turn onto %s" #: src/transitplugins/openTripPlanner.js:1296 #: src/transitplugins/openTripPlanner2.js:326 msgid "Make a right u-turn" msgstr "Make a right u-turn" #~ msgid "Sign in to edit maps" #~ msgstr "Sign in to edit maps" #~ msgid "" #~ "Sign in to authorize access in a web browser.\n" #~ "Then fill in the obtained verification code here in the next step." #~ msgstr "" #~ "Sign in to authorise access in a web browser.\n" #~ "Then fill in the obtained verification code here in the next step." #~ msgid "Signed In" #~ msgstr "Signed In" #~ msgid "Sign up" #~ msgstr "Sign up" #~ msgid "Filesystem is read only" #~ msgstr "Filesystem is read only" #~ msgid "You do not have permission to save there" #~ msgstr "You do not have permission to save there" #~ msgid "The directory does not exist" #~ msgstr "The directory does not exist" #~ msgid "No filename specified" #~ msgstr "No filename specified" #~ msgid "" #~ "Location was added to the map, note that it may take a while before it " #~ "shows on the map and in search results." #~ msgstr "" #~ "Location was added to the map, note that it may take a while before it " #~ "shows on the map and in search results." #~ msgid "Takeaway" #~ msgstr "Takeaway" #~ msgid "GNOME Maps" #~ msgstr "GNOME Maps" #~ msgid "Foursquare check-in privacy setting" #~ msgstr "Foursquare check-in privacy setting" #~ msgid "" #~ "Latest used Foursquare check-in privacy setting. Possible values are: " #~ "public, followers or private." #~ msgstr "" #~ "Latest used Foursquare check-in privacy setting. Possible values are: " #~ "public, followers or private." #~ msgid "Foursquare check-in Facebook broadcasting" #~ msgstr "Foursquare check-in Facebook broadcasting" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a post in the " #~ "Facebook account associated with the Foursquare account." #~ msgstr "" #~ "Indicates if Foursquare should broadcast the check-in as a post in the " #~ "Facebook account associated with the Foursquare account." #~ msgid "Foursquare check-in Twitter broadcasting" #~ msgstr "Foursquare check-in Twitter broadcasting" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a tweet in the " #~ "Twitter account associated with the Foursquare account." #~ msgstr "" #~ "Indicates if Foursquare should broadcast the check-in as a tweet in the " #~ "Twitter account associated with the Foursquare account." #~ msgid "Night mode" #~ msgstr "Night mode" #~ msgid "Whether the application is in night mode." #~ msgstr "Whether the application is in night mode." #~ msgid "Use hybrid aerial tiles" #~ msgstr "Use hybrid aerial tiles" #~ msgid "Whether aerial tiles should use hybrid style (with labels)." #~ msgstr "Whether aerial tiles should use hybrid style (with labels)." #~ msgid "Visibility" #~ msgstr "Visibility" #~ msgid "Post on Facebook" #~ msgstr "Post on Facebook" #~ msgid "Post on Twitter" #~ msgstr "Post on Twitter" #~ msgid "C_heck in" #~ msgstr "C_heck in" #~ msgid "Public" #~ msgstr "Public" #~ msgid "Private" #~ msgstr "Private" #~ msgid "Include route and markers" #~ msgstr "Include route and markers" #~ msgid "Go to current location" #~ msgstr "Go to current location" #~ msgid "Choose map type" #~ msgstr "Choose map type" #~ msgid "Zoom in" #~ msgstr "Zoom in" #~ msgid "Night Mode" #~ msgstr "Night Mode" #~ msgid "Maps is offline!" #~ msgstr "Maps is offline!" #~ msgid "" #~ "Maps need an active internet connection to function properly, but one " #~ "can’t be found." #~ msgstr "" #~ "Maps need an active internet connection to function properly, but one " #~ "can’t be found." #~ msgid "Check your connection and proxy settings." #~ msgstr "Check your connection and proxy settings." #~ msgid "Password" #~ msgstr "Password" #~ msgid "" #~ "Sorry, that didn’t work. Please try again, or visit\n" #~ "OpenStreetMap to reset your password." #~ msgstr "" #~ "Sorry, that didn’t work. Please try again, or visit\n" #~ "OpenStreetMap to reset your password." #~ msgid "Drag to change order of the route" #~ msgstr "Drag to change order of the route" #~ msgid "Check In…" #~ msgstr "Check In…" #~ msgid "Ignore network availability" #~ msgstr "Ignore network availability" #~ msgid "Select an account" #~ msgstr "Select an account" #~ msgid "Loading" #~ msgstr "Loading" #~ msgid "" #~ "Maps cannot find the place to check in to with Foursquare. Please select " #~ "one from this list." #~ msgstr "" #~ "Maps cannot find the place to check in to with Foursquare. Please select " #~ "one from this list." #, javascript-format #~ msgid "Check in to %s" #~ msgstr "Check in to %s" #, javascript-format #~ msgid "Write an optional message to check in to %s." #~ msgstr "Write an optional message to check in to %s." #, javascript-format #~ msgid "Cannot find “%s” in the social service" #~ msgstr "Cannot find “%s” in the social service" #~ msgid "Cannot find a suitable place to check-in in this location" #~ msgstr "Cannot find a suitable place to check-in in this location" #~ msgid "" #~ "Credentials have expired, please open Online Accounts to sign in and " #~ "enable this account" #~ msgstr "" #~ "Credentials have expired, please open Online Accounts to sign in and " #~ "enable this account" #~ msgid "A map application for GNOME" #~ msgstr "A map application for GNOME" #~ msgid "" #~ "You can even search for specific types of locations, such as “Pubs near " #~ "Main Street, Boston” or “Hotels near Alexanderplatz, Berlin”." #~ msgstr "" #~ "You can even search for specific types of locations, such as “Pubs near " #~ "Main Street, Boston” or “Hotels near Alexanderplatz, Berlin”." #~ msgid "Facebook check-in privacy setting" #~ msgstr "Facebook check-in privacy setting" #~ msgid "" #~ "Latest used Facebook check-in privacy setting. Possible values are: " #~ "EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS or SELF." #~ msgstr "" #~ "Latest used Facebook check-in privacy setting. Possible values are: " #~ "EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS or SELF." #~ msgid "Everyone" #~ msgstr "Everyone" #~ msgid "Friends of friends" #~ msgstr "Friends of friends" #~ msgid "Just friends" #~ msgstr "Just friends" #~ msgid "Just me" #~ msgstr "Just me" #~ msgid "" #~ "Maps cannot find the place to check in to with Facebook. Please select " #~ "one from this list." #~ msgstr "" #~ "Maps cannot find the place to check in to with Facebook. Please select " #~ "one from this list." #~ msgid "Find a Route" #~ msgstr "Find a Route" #~ msgid "Check in here" #~ msgstr "Check in here" #~ msgid "Population:" #~ msgstr "Population:" #~ msgid "Altitude:" #~ msgstr "Altitude:" #~ msgid "Opening hours:" #~ msgstr "Opening hours:" #~ msgid "Internet access:" #~ msgstr "Internet access:" #~ msgid "Toilets:" #~ msgstr "Toilets:" #~ msgid "Wheelchair access:" #~ msgstr "Wheelchair access:" #~ msgid "Phone:" #~ msgstr "Phone:" #~ msgid "yes" #~ msgstr "yes" #~ msgid "limited" #~ msgstr "limited" #~ msgid "no" #~ msgstr "no" #~ msgid "designated" #~ msgstr "designated" #~ msgid "OpenStreetMap URL is not valid" #~ msgstr "OpenStreetMap URL is not valid" #~ msgctxt "time range list" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgctxt "time range list" #~ msgid "%s %s %s" #~ msgstr "%s %s %s" #~ msgctxt "time range component" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgid "wired" #~ msgstr "wired" #~ msgid "terminal" #~ msgstr "terminal" #~ msgid "service" #~ msgstr "service" #~ msgid "Primary menu" #~ msgstr "Primary menu" #~ msgid "Don’t have an account?" #~ msgstr "Don’t have an account?" #~ msgid "%f h" #~ msgstr "%f h" #~ msgid "%f min" #~ msgstr "%f min" #~ msgid "%f s" #~ msgstr "%f s" #~ msgid "Add destination" #~ msgstr "Add destination" #~ msgid "Route search by OpenTripPlanner" #~ msgstr "Route search by OpenTripPlanner" #~ msgid "Quit" #~ msgstr "Quit" #~ msgid "Load Map Layer" #~ msgstr "Load Map Layer" #~ msgid "Open with another application" #~ msgstr "Open with another application" #~ msgid "Press enter to search" #~ msgstr "Press enter to search" #~ msgid "OK" #~ msgstr "OK" #~ msgid "%f km" #~ msgstr "%f km" #~ msgid "%f m" #~ msgstr "%f m" #~ msgid "%f mi" #~ msgstr "%f mi" #~ msgid "%f ft" #~ msgstr "%f ft" #~ msgid "Last known location and accuracy" #~ msgstr "Last known location and accuracy" #~ msgid "" #~ "Last known location (latitude and longitude in degrees) and accuracy (in " #~ "meters)." #~ msgstr "" #~ "Last known location (latitude and longitude in degrees) and accuracy (in " #~ "metres)." #~ msgid "Description of last known location of user." #~ msgstr "Description of last known location of user." #~ msgid "Last known location was set manually by user." #~ msgstr "Whether the last known location was set manually by the user." #~ msgid "I'm here!" #~ msgstr "I’m here!" #~ msgid "Satellite" #~ msgstr "Satellite" #~ msgid " km²" #~ msgstr " km²" 070701000001BB000081A4000000000000000000000001664134090000F09C000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/eo.po# Esperanto translation for gnome-maps. # Copyright (C) 2013 Free Software Foundation, Inc. # This file is distributed under the same license as the gnome-maps package. # Ryan LORTIE , 2013. # Matthew CHISHOLM , 2013. # Daniel PUENTES , 2015. # Nicolas MAIA , 2015. # Baptiste DARTHENAY , 2016. # Carmen Bianca BAKKER , 2018. # Tirifto , 2019. # Kristjan SCHMIDT , 2013-2023. # msgid "" msgstr "" "Project-Id-Version: gnome-maps master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2023-09-16 17:55+0000\n" "PO-Revision-Date: 2023-09-21 00:08+0200\n" "Last-Translator: Kristjan SCHMIDT \n" "Language-Team: Esperanto \n" "Language: eo\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: Poedit 3.2.2\n" "X-DamnedLies-Scope: partial\n" "X-Project-Style: gnome\n" #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.appdata.xml.in.in:6 data/org.gnome.Maps.desktop.in.in:4 #: data/ui/main-window.ui:27 src/application.js:61 src/mainWindow.js:143 #: src/mainWindow.js:591 msgid "Maps" msgstr "Mapoj" #: data/org.gnome.Maps.appdata.xml.in.in:7 msgid "Find places around the world" msgstr "Trovi lokojn tra la mondo" #: data/org.gnome.Maps.appdata.xml.in.in:9 msgid "Maps gives you quick access to maps all across the world. It allows you to quickly find the place you’re looking for by searching for a city or street, or locate a place to meet a friend." msgstr "Mapoj donas al vi rapidan aliron al mapoj de la tuta mondo. Ĝi ebligas vin rapide trovi la lokon, kiun vi serĉas, serĉante urbon aŭ straton, aŭ trovi lokon por renkonti amikon." #: data/org.gnome.Maps.appdata.xml.in.in:14 msgid "Maps uses the collaborative OpenStreetMap database, made by hundreds of thousands of people across the globe." msgstr "Mapoj uzas la kunlaboran datumbazon OpenStreetMap, farita de centoj da miloj da personoj tra la tuta mondo." #: data/org.gnome.Maps.appdata.xml.in.in:414 src/mainWindow.js:588 msgid "The GNOME Project" msgstr "La projekto GNOME" #: data/org.gnome.Maps.desktop.in.in:5 msgid "A simple maps application" msgstr "Simpla mapa aplikaĵo" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in.in:14 msgid "Maps;" msgstr "Mapoj;" #: data/org.gnome.Maps.desktop.in.in:17 msgid "Allows your location to be shown on the map." msgstr "Ebligas montri vian pozicion sur la mapo." #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "laste vidita loko" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "Koordinatoj de laste vidita loko." #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "zomo" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "Zomnivelo" #: data/org.gnome.Maps.gschema.xml:21 msgid "rotation" msgstr "turno" #: data/org.gnome.Maps.gschema.xml:22 msgid "Map rotation in radians" msgstr "Maprotacio en radianoj" #: data/org.gnome.Maps.gschema.xml:26 msgid "Map type" msgstr "Speco de mapo" #: data/org.gnome.Maps.gschema.xml:27 msgid "The type of map to display (street, aerial, etc.)" msgstr "La speco de mapo por montri (strato, aera, ktp.)" #: data/org.gnome.Maps.gschema.xml:31 msgid "Window size" msgstr "Fenestra grando" #: data/org.gnome.Maps.gschema.xml:32 msgid "Window size (width and height)." msgstr "Fenestra grando (larĝo kaj alto)." #: data/org.gnome.Maps.gschema.xml:36 msgid "Window position" msgstr "Fenestra pozicio" #: data/org.gnome.Maps.gschema.xml:37 msgid "Window position (X and Y)." msgstr "Pozicio de fenestro (x kaj y)." #: data/org.gnome.Maps.gschema.xml:41 msgid "Window maximized" msgstr "Fenestro maksimumigita" #: data/org.gnome.Maps.gschema.xml:42 msgid "Window maximization state" msgstr "Maksimumiga stato de fenestro" #: data/org.gnome.Maps.gschema.xml:46 msgid "Maximum number of search results" msgstr "Maksimuma numero da serĉa rezultoj" #: data/org.gnome.Maps.gschema.xml:47 msgid "Maximum number of search results from geocode search." msgstr "Maksimuma numero da serĉa rezultoj de geocode-a serĉo." #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent places to store" msgstr "Nombro de lastatempaj lokoj por konservi" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited places to store." msgstr "Nombro de lastatempaj lokoj por konservi." #: data/org.gnome.Maps.gschema.xml:56 msgid "Number of recent routes to store" msgstr "Nombro de lastatempaj kursoj por konservi" #: data/org.gnome.Maps.gschema.xml:57 msgid "Number of recently visited routes to store." msgstr "Nombro da lastatempe vizititaj kursoj por konservi." #: data/org.gnome.Maps.gschema.xml:61 msgid "OpenStreetMap username or e-mail address" msgstr "OpenStreetMap-uzantonomo aŭ retpoŝtadreso" #: data/org.gnome.Maps.gschema.xml:62 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "Indikas ĉu la uzanto estas salutinta por redakti OpenStreetMap-datumojn." #: data/org.gnome.Maps.gschema.xml:66 msgid "Last used transportation type for routing" msgstr "Laste uzata transporta tipo por vojigo" #: data/org.gnome.Maps.gschema.xml:70 msgid "Show scale" msgstr "Montri skalon" #: data/org.gnome.Maps.gschema.xml:71 msgid "Whether to show the scale." msgstr "Ĉu montri la skalon." #: data/ui/context-menu.ui:6 msgid "Route from Here" msgstr "Kurso ekde ĉi tie" #: data/ui/context-menu.ui:10 msgid "Add Intermediate Destination" msgstr "Aldoni survojan celon" #: data/ui/context-menu.ui:14 msgid "Route to Here" msgstr "Kurso ĝis ĉi tie" #: data/ui/context-menu.ui:20 msgid "What's Here?" msgstr "Kio estas ĉi tie?" #: data/ui/context-menu.ui:24 msgid "Copy Location" msgstr "Kopii lokon" #: data/ui/context-menu.ui:28 msgid "Add to OpenStreetMap…" msgstr "Aldoni al OpenStreetMap…" #: data/ui/export-view-dialog.ui:7 msgid "Export view" msgstr "Elporta vido" #: data/ui/export-view-dialog.ui:16 data/ui/send-to-dialog.ui:10 #: data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "_Nuligi" #: data/ui/export-view-dialog.ui:26 msgid "_Export" msgstr "_Elporti" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:11 src/geoclue.js:106 msgid "Current Location" msgstr "Aktuala loko" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:19 msgid "Layers" msgstr "Tavoloj" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:11 msgid "Print Route" msgstr "Presi la kurson" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:21 msgid "Favorites" msgstr "Ŝatataj" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:30 msgid "Route Planner" msgstr "Kursa planilo" #: data/ui/help-overlay.ui:12 msgctxt "shortcut window" msgid "General" msgstr "Ĝenerale" #: data/ui/help-overlay.ui:15 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "Montri la klavkombinojn" #: data/ui/help-overlay.ui:21 msgctxt "shortcut window" msgid "Search" msgstr "Serĉo" #: data/ui/help-overlay.ui:27 msgctxt "shortcut window" msgid "Explore points-of-interest" msgstr "Esplori punktojn de intereso" #: data/ui/help-overlay.ui:33 msgctxt "shortcut window" msgid "Show last search results" msgstr "Montri lastajn serĉrezultojn" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "Baskuligi kursan planilon" #: data/ui/help-overlay.ui:45 msgctxt "shortcut window" msgid "Print route" msgstr "Presi la kurson" #: data/ui/help-overlay.ui:51 msgctxt "shortcut window" msgid "Quit" msgstr "Ĉesi" #: data/ui/help-overlay.ui:57 msgctxt "shortcut window" msgid "Open main menu" msgstr "Malfermi ĉefan menuo" #: data/ui/help-overlay.ui:65 msgctxt "shortcut window" msgid "Map View" msgstr "Mapa vido" #: data/ui/help-overlay.ui:68 msgctxt "shortcut window" msgid "Zoom in" msgstr "Zomi" #: data/ui/help-overlay.ui:74 msgctxt "shortcut window" msgid "Zoom out" msgstr "Malzomi" #: data/ui/help-overlay.ui:80 msgctxt "shortcut window" msgid "Rotate clockwise" msgstr "Turni laŭhorloĝe" #: data/ui/help-overlay.ui:86 msgctxt "shortcut window" msgid "Rotate counter-clockwise" msgstr "Turni maldekstrume" #: data/ui/help-overlay.ui:92 msgctxt "shortcut window" msgid "Reset rotation" msgstr "Restarigi rotacion" #: data/ui/help-overlay.ui:98 msgctxt "shortcut window" msgid "Toggle scale" msgstr "Baskuligi skalon" #: data/ui/help-overlay.ui:104 msgctxt "shortcut window" msgid "Go to current location" msgstr "Iri al aktuala loko" #: data/ui/help-overlay.ui:114 msgctxt "shortcut window" msgid "Switch to street view" msgstr "Ŝalti al strata vido" #: data/ui/help-overlay.ui:121 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "Baskuligi al aera vido" #: data/ui/help-overlay.ui:127 msgctxt "shortcut window" msgid "Open shape layer" msgstr "Malfermi forman tavolon" #: data/ui/layers-popover.ui:7 msgid "Show Scale" msgstr "Montri skalon" #: data/ui/layers-popover.ui:16 msgid "Enable Experimental Map" msgstr "Ebligu eksperimentan mapon" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:21 msgid "Open Shape Layer…" msgstr "Malfermi forman tavolon…" #: data/ui/main-window.ui:8 msgid "Set up OpenStreetMap Account…" msgstr "Agordi OpenStreetMap-konton…" #: data/ui/main-window.ui:12 msgid "Export as Image…" msgstr "Elporti kiel bildo…" #: data/ui/main-window.ui:17 msgid "_Keyboard Shortcuts" msgstr "_Klavkombinoj" #: data/ui/main-window.ui:22 msgid "About Maps" msgstr "Pri Mapoj" #: data/ui/main-window.ui:48 msgid "Main Menu" msgstr "Ĉefa menuo" #: data/ui/osm-account-dialog.ui:6 msgid "OpenStreetMap Account" msgstr "OpenStreetMap-konto" #: data/ui/osm-account-dialog.ui:26 msgid "Sign in to edit maps" msgstr "Salutu por redakti mapojn" #: data/ui/osm-account-dialog.ui:39 msgid "Help to improve the map, using an\n" "OpenStreetMap account." msgstr "Helpu plibonigi la mapon uzante\n" "OpenStreetMap-konton." #: data/ui/osm-account-dialog.ui:52 msgid "Sign in to authorize access in a web browser.\n" "Then fill in the obtained verification code here in the next step." msgstr "Ensalutu por rajtigi aliron en retumilo.\n" "Poste plenigu la akiritan konfirmkodon ĉi tie en la sekva paŝo." #: data/ui/osm-account-dialog.ui:67 msgid "Sign In" msgstr "Saluti" #: data/ui/osm-account-dialog.ui:111 msgid "Copy verification code shown when authorizing access in the browser" msgstr "Kopii konfirmkodo montrita kiam rajtigante aliron en la retumilo" #: data/ui/osm-account-dialog.ui:121 msgid "Verification code" msgstr "Konfirmkodo" #: data/ui/osm-account-dialog.ui:132 msgid "Verify" msgstr "Kontroli" #: data/ui/osm-account-dialog.ui:160 msgid "Signed In" msgstr "Salutinta" #: data/ui/osm-account-dialog.ui:172 msgid "Your OpenStreetMap account is active." msgstr "Via OpenStreetMap-konto estas aktiva." #: data/ui/osm-account-dialog.ui:202 msgid "Sign Out" msgstr "Adiaŭi" #: data/ui/osm-edit-address.ui:11 msgid "Street" msgstr "Strato" #: data/ui/osm-edit-address.ui:22 msgid "House number" msgstr "Domnumero" #: data/ui/osm-edit-address.ui:33 msgid "Postal code" msgstr "Poŝtkodo" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:44 msgid "City" msgstr "Urbo" #: data/ui/osm-edit-dialog.ui:8 msgctxt "dialog title" msgid "Edit on OpenStreetMap" msgstr "Redakti en OpenStreetMap" #: data/ui/osm-edit-dialog.ui:57 msgid "Type" msgstr "Tipo" #: data/ui/osm-edit-dialog.ui:79 msgid "None" msgstr "Neniu" #: data/ui/osm-edit-dialog.ui:108 msgid "Add Field" msgstr "Aldoni kampon" #: data/ui/osm-edit-dialog.ui:130 msgid "Comment" msgstr "Komento" #: data/ui/osm-edit-dialog.ui:158 msgid "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "Mapaj redaktoj videblos en ĉiuj mapoj kiuj uzas\n" "OpenStreetMap-datumojn." #: data/ui/osm-edit-dialog.ui:186 msgid "Recently Used" msgstr "Freŝe uzitaj" #: data/ui/osm-edit-dialog.ui:225 src/mapView.js:541 msgid "Cancel" msgstr "Nuligi" #: data/ui/osm-edit-dialog.ui:238 src/osmEditDialog.js:531 msgid "Next" msgstr "Sekva" #: data/ui/osm-edit-wikipedia.ui:8 msgid "Article" msgstr "Artikolo" #: data/ui/osm-edit-wikipedia.ui:21 msgid "Wikidata tag" msgstr "Vikidatumoj-etikedo" #: data/ui/osm-edit-wikipedia.ui:32 msgid "Load Wikidata tag for article" msgstr "Ŝargi Vikidatuman etikedon por artikolo" #: data/ui/place-popover.ui:23 src/searchBar.js:54 msgid "Explore Nearby Places" msgstr "Esploru proksimajn lokojn" #: data/ui/place-popover.ui:82 src/application.js:274 msgid "No results found" msgstr "Ne trovis rezulton" #: data/ui/place-popover.ui:92 src/application.js:252 msgid "An error has occurred" msgstr "Eraro okazis" #. Translators: This is a tooltip #: data/ui/route-entry.ui:12 msgid "Change Route Order" msgstr "Ŝanĝi ordon de itinero" #: data/ui/send-to-dialog.ui:7 msgid "Open Location" msgstr "Malfermi lokon" #: data/ui/send-to-dialog.ui:64 msgid "Copy" msgstr "Kopii" #: data/ui/send-to-dialog.ui:70 msgid "Send To…" msgstr "Sendi al…" #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:64 msgid "Open Shape Layer" msgstr "Malfermi forman tavolon" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "_Malfermi" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:32 msgid "Toggle visible" msgstr "Baskuligi videblecon" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:44 msgid "Remove Shape Layer" msgstr "Forigi forman tavolon" #: data/ui/sidebar.ui:207 msgid "Route search by GraphHopper" msgstr "Kursa serĉado de GraphHopper" #: data/ui/sidebar.ui:272 msgid "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of transportation,\n" "e.g. a national provider might not include airlines, and a local provider could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when applicable." msgstr "Planado de kursoj kun publikaj transportiloj estas provizata\n" "de eksteraj servoj.\n" "GNOME ne povas garantii ĝustecon de la montrataj kursoj kaj planoj.\n" "Rimarku, ke iuj provizantoj eble ne traktas ĉiujn specojn de transportado. Ekzemple,\n" "landa provizanto eble ne traktus aviadon, kaj loka liveranto eble ne traktus regionajn\n" "vagonarojn.\n" "Nomojn kaj varmarkojn prezentatajn rigardu kiel registritajn posedaĵojn, kiam tio taŭgas." #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:98 msgid "Hide intermediate stops and information" msgstr "Kaŝi intermezajn staciojn kaj informojn" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:156 msgid "Show intermediate stops and information" msgstr "Montri intermezajn staciojn kaj informojn" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:16 msgid "Leave Now" msgstr "Ekveturi nun" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:17 msgid "Leave By" msgstr "Ekveturi je" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:18 msgid "Arrive By" msgstr "Alveni je" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:85 msgid "Show" msgstr "Montri" #: data/ui/transit-options-panel.ui:95 msgid "Buses" msgstr "Busoj" #: data/ui/transit-options-panel.ui:101 msgid "Trams" msgstr "Tramoj" #: data/ui/transit-options-panel.ui:107 msgid "Trains" msgstr "Vagonaroj" #: data/ui/transit-options-panel.ui:113 msgid "Subway" msgstr "Subtera fervojo" #: data/ui/transit-options-panel.ui:119 msgid "Ferries" msgstr "Pramŝipoj" #: data/ui/transit-options-panel.ui:125 msgid "Airplanes" msgstr "Aviadiloj" #. Translators: This is a tooltip #: data/ui/place-bar.ui:28 data/ui/place-buttons.ui:27 msgid "Share Location" msgstr "Kunhavigi lokon" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:11 msgid "Add to new route" msgstr "Aldoni al nova kurso" #. Translators: This is the button to find a route to a place #: data/ui/place-buttons.ui:15 msgid "Directions" msgstr "Direktoj" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:36 msgid "Mark as Favorite" msgstr "Marki kiel ŝatatan" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:44 msgid "Edit on OpenStreetMap" msgstr "Redakti en OpenStreetMap" #. Translators: This is a tooltip #: data/ui/place-view.ui:52 msgid "Share location" msgstr "Kunhavigi lokon" #: data/ui/poi-category-goback-row.ui:22 msgid "Back to Main Categories" msgstr "Reen al ĉefaj kategorioj" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:15 src/mapView.js:1121 msgid "Zoom In" msgstr "Zomi" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:28 msgid "Zoom Out" msgstr "Malzomi" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:49 msgid "Reset Rotation" msgstr "Restarigi rotacion" #: lib/maps-file-data-source.c:262 lib/maps-file-data-source.c:338 #: lib/maps-file-data-source.c:418 msgid "Failed to find tile structure in directory" msgstr "Malsukcesis trovi kahelan strukturon en dosierujo" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "Malsukcesis analizi la XML-dokumenton" #: lib/maps-osm.c:250 lib/maps-osm.c:403 msgid "Missing required attributes" msgstr "Mankas bezonataj atributoj" #: lib/maps-osm.c:451 lib/maps-osm.c:494 msgid "Could not find OSM element" msgstr "Ne sukcesis trovi la OSM-elementon" #: lib/maps-osm.c:508 msgid "Could not find user element" msgstr "Ne eblis trovi uzantan elementon" #: src/application.js:74 msgid "A path to a local tiles directory structure" msgstr "Vojo al loka kahela dosieruja strukturo" #: src/application.js:80 msgid "Tile size for local tiles directory" msgstr "Kahela grandeco por loka kahela dosierujo" #: src/application.js:84 msgid "Show the version of the program" msgstr "Montri la version de la programo" #: src/application.js:90 msgid "Search for places" msgstr "Serĉi lokojn" #: src/application.js:101 src/application.js:102 msgid "[FILE…|URI]" msgstr "[DOSIERO…|URI]" #: src/application.js:281 #, javascript-format msgid "Invalid maps: URI: %s" msgstr "Nevalidaj mapoj: URI: %s" #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:74 #, javascript-format msgid "Maps at %f, %f.png" msgstr "Mapoj ĉe %f, %f.png" #: src/exportViewDialog.js:153 msgid "Unable to export view" msgstr "Ne eblas elporti la vidon" #: src/geoJSONSource.js:73 msgid "invalid coordinate" msgstr "nevalida koordinato" #: src/geoJSONSource.js:118 src/geoJSONSource.js:158 src/geoJSONSource.js:173 msgid "parse error" msgstr "analizeraro" #: src/geoJSONSource.js:152 msgid "unknown geometry" msgstr "nekonata geometrio" #: src/graphHopper.js:121 src/transitPlan.js:174 msgid "Route request failed." msgstr "Kurs-peto malsukcesis." #: src/graphHopper.js:128 src/transitPlan.js:166 msgid "No route found." msgstr "Ne trovis kurson." #: src/graphHopper.js:215 src/transitplugins/openTripPlanner.js:1131 msgid "Start!" msgstr "Ek!" #: src/mainWindow.js:61 msgid "All Layer Files" msgstr "Ĉiuj tavolaj dosieroj" #: src/mainWindow.js:468 msgid "Failed to connect to location service" msgstr "Malsukcesis konekti al loka servo" #: src/mainWindow.js:473 msgid "Turn on location services" msgstr "Ŝalti lokservojn" #: src/mainWindow.js:474 msgid "Location Settings" msgstr "Agordoj de loko" #: src/mainWindow.js:589 msgid "translator-credits" msgstr "Ryan LORTIE\n" "Kristjan SCHMIDT\n" "Matthew CHISHOLM\n" "Daniel PUENTES\n" "Nicolas MAIA\n" "Baptiste DARTHENAY\n" "Carmen Bianca BAKKER \n" "Tirifto " #: src/mainWindow.js:593 msgid "Copyright © 2011 – 2023 Red Hat, Inc. and The GNOME Maps authors" msgstr "Kopirajto © 2011 – 2023 Red Hat, Inc. kaj la kontribuintoj de GNOME Mapoj" #: src/mainWindow.js:609 #, javascript-format msgid "Map data by %s and contributors" msgstr "Mapdatumoj de %s kaj kontribuantoj" #: src/mainWindow.js:610 msgid "Map Data Provider" msgstr "Provizanto de datumoj de mapoj" #: src/mainWindow.js:622 msgid "Map Tile Provider" msgstr "Provizanto de kaheloj de mapo" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:630 #, javascript-format msgid "Map tiles provided by %s" msgstr "Mapajn kahelojn provizas %s" #: src/mainWindow.js:660 msgid "Search Provider" msgstr "Serĉo-provizanto" #: src/mainWindow.js:663 #, javascript-format msgid "Search provided by %s using %s" msgstr "Serĉo povigita de %s per %s" #: src/mapView.js:515 src/mapView.js:580 msgid "Failed to open layer" msgstr "Malsukcesis malfermi la tavolon" #: src/mapView.js:534 msgid "Do you want to continue?" msgstr "Ĉu vi volas daŭrigi?" #: src/mapView.js:535 #, javascript-format msgid "You are about to open files with a total size of %s MB. This could take some time to load" msgstr "Vi estas malfermonta dosierojn kun totala grandeco de %s MB. Ĉi tio povus preni iom da tempo por ŝarĝi" #: src/mapView.js:542 src/transitplugins/openTripPlanner.js:1207 msgid "Continue" msgstr "Daŭrigi" #: src/mapView.js:574 msgid "File type is not supported" msgstr "Dosiertipo ne estas subtenata" #: src/mapView.js:611 msgid "Failed to open GeoURI" msgstr "Malsukcesis malfermi la Geo-URI" #: src/mapView.js:1080 msgid "Nothing found here!" msgstr "Nenio trovita ĉi tie!" #: src/mapView.js:1120 msgid "Zoom in to add location" msgstr "Zomi por aldoni lokon" #: src/mapView.js:1141 msgid "Location was added in OpenStreetMap" msgstr "Loko estis aldonita al OpenStreetMap" #: src/osmAccountDialog.js:134 msgid "The verification code didn’t match, please try again." msgstr "La kontrolkodo ne kongruis, bonvolu provi denove." #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:335 msgid "Incorrect user name or password" msgstr "Malkorekta uzantonomo aŭ pasvorto" #: src/osmConnection.js:337 msgid "Success" msgstr "Sukceso" #: src/osmConnection.js:339 msgid "Bad request" msgstr "Malbona peto" #: src/osmConnection.js:341 msgid "Object not found" msgstr "Objekto ne trovita" #: src/osmConnection.js:343 msgid "Conflict, someone else has just modified the object" msgstr "Konflikto, iu alia ĵus redaktis tiun objekton" #: src/osmConnection.js:345 msgid "Object has been deleted" msgstr "La objekto estis forigita" #: src/osmConnection.js:347 msgid "Way or relation refers to non-existing children" msgstr "Vojo aŭ rilato referencas al neekzistantaj idoj" #: src/osmEditDialog.js:106 msgid "Name" msgstr "Nomo" #: src/osmEditDialog.js:109 msgid "The official name. This is typically what appears on signs." msgstr "La oficiala nomo. Tio ĉi kutime aperas sur signoj." #: src/osmEditDialog.js:112 msgid "Address" msgstr "Adreso" #: src/osmEditDialog.js:120 src/placeView.js:261 msgid "Website" msgstr "Retejo" #: src/osmEditDialog.js:124 msgid "This is not a valid URL. Make sure to include http:// or https://." msgstr "Ĉi tio ne estas valida URL. Nepre inkluzivi http:// aŭ https://." #: src/osmEditDialog.js:125 msgid "The official website. Try to use the most basic form of a URL i.e. http://example.com instead of http://example.com/index.html." msgstr "La oficiala retejo. Provo uzi la plej bazan formon de URL t.e. http://example.com anstataŭ http://example.com/index.html." #: src/osmEditDialog.js:130 msgid "Phone" msgstr "Telefono" #: src/osmEditDialog.js:134 msgid "Phone number. Use the international format, starting with a + sign. Beware of local privacy laws, especially for private phone numbers." msgstr "Telefona numero. Uzu la internacian formon, komencantan kun la signo “+”. Observu lokajn privatecajn leĝojn, precipe por privataj telefonaj numeroj." #: src/osmEditDialog.js:139 src/placeView.js:294 msgid "E-mail" msgstr "Retpoŝto" #: src/osmEditDialog.js:144 msgid "This is not a valid e-mail address. Make sure to not include the mailto: protocol prefix." msgstr "Ĉi tio ne estas valida retadreso. Certigu ne inkluzivi la mailto: protokola prefikson." #: src/osmEditDialog.js:145 msgid "Contact e-mail address for inquiries. Add only email addresses that are intended to be publicly used." msgstr "Kontaktu retpoŝtadreson por demandoj. Aldonu nur retadresojn kiuj estas intencitaj por esti publike uzataj." #. Translators: This is the text for the "Wikipedia" link at the end #. of summaries #: src/osmEditDialog.js:149 src/placeView.js:646 msgid "Wikipedia" msgstr "Vikipedio" #: src/osmEditDialog.js:156 src/placeView.js:331 msgid "Opening hours" msgstr "Horoj de malfermo" #: src/osmEditDialog.js:161 msgid "See the link in the label for help on format." msgstr "Vidi la ligon en la etikedo por helpo sur formo." #. TODO: this is a bit of a work-around to re-interpret the population, #. * stored as a string into an integer to convert back to a locale- #. * formatted string. Ideally it should be kept as an integer value #. * in the Place class. But this will also need to be handled by the #. * PlaceStore, possible in a backwards-compatible way #. #: src/osmEditDialog.js:164 src/placeView.js:441 msgid "Population" msgstr "Loĝantaro" #: src/osmEditDialog.js:169 src/placeView.js:470 msgid "Altitude" msgstr "Altitudo" #: src/osmEditDialog.js:172 msgid "Elevation (height above sea level) of a point in metres." msgstr "Alteco (alto super mara nivelo) de punkto per metroj." #: src/osmEditDialog.js:175 msgid "Wheelchair access" msgstr "Rulseĝa aliro" #: src/osmEditDialog.js:178 src/osmEditDialog.js:187 src/osmEditDialog.js:198 #: src/osmEditDialog.js:233 msgid "Yes" msgstr "Jes" #: src/osmEditDialog.js:179 src/osmEditDialog.js:188 src/osmEditDialog.js:199 #: src/osmEditDialog.js:234 msgid "No" msgstr "Ne" #: src/osmEditDialog.js:180 msgid "Limited" msgstr "Limigita" #: src/osmEditDialog.js:181 msgid "Designated" msgstr "Indikita" #: src/osmEditDialog.js:184 msgid "Internet access" msgstr "Interreta aliro" #: src/osmEditDialog.js:189 msgid "Wi-Fi" msgstr "Sendrata" #: src/osmEditDialog.js:190 msgid "Wired" msgstr "Drata" #: src/osmEditDialog.js:191 msgid "Terminal" msgstr "Terminalo" #: src/osmEditDialog.js:192 msgid "Service" msgstr "Servo" #: src/osmEditDialog.js:195 msgid "Takeout" msgstr "Elporto" #: src/osmEditDialog.js:200 msgid "Only" msgstr "Nur" #: src/osmEditDialog.js:203 msgid "Religion" msgstr "Religio" #: src/osmEditDialog.js:206 src/translations.js:286 msgid "Animism" msgstr "Animismo" #: src/osmEditDialog.js:207 msgid "Bahá’í" msgstr "Bahaismo" #: src/osmEditDialog.js:208 src/translations.js:288 msgid "Buddhism" msgstr "Budaismo" #: src/osmEditDialog.js:209 src/translations.js:289 msgid "Caodaism" msgstr "Kaodaismo" #: src/osmEditDialog.js:210 src/translations.js:290 msgid "Christianity" msgstr "Kristanismo" #: src/osmEditDialog.js:211 src/translations.js:291 msgid "Confucianism" msgstr "Konfuceismo" #: src/osmEditDialog.js:212 src/translations.js:292 msgid "Hinduism" msgstr "Hinduismo" #: src/osmEditDialog.js:213 src/translations.js:293 msgid "Jainism" msgstr "Ĝajnismo" #: src/osmEditDialog.js:214 src/translations.js:294 msgid "Judaism" msgstr "Judismo" #: src/osmEditDialog.js:215 src/translations.js:295 msgid "Islam" msgstr "Islamo" #: src/osmEditDialog.js:216 src/translations.js:296 msgid "Multiple Religions" msgstr "Pluraj religioj" #: src/osmEditDialog.js:217 src/translations.js:297 msgid "Paganism" msgstr "Paganismo" #: src/osmEditDialog.js:218 src/translations.js:298 msgid "Pastafarianism" msgstr "Pastafarianismo" #: src/osmEditDialog.js:219 src/translations.js:299 msgid "Scientology" msgstr "Scientologio" #: src/osmEditDialog.js:220 src/translations.js:300 msgid "Shinto" msgstr "Ŝintoismo" #: src/osmEditDialog.js:221 src/translations.js:301 msgid "Sikhism" msgstr "Sikismo" #: src/osmEditDialog.js:222 src/translations.js:302 msgid "Spiritualism" msgstr "Spiritismo" #: src/osmEditDialog.js:223 src/translations.js:303 msgid "Taoism" msgstr "Taoismo" #: src/osmEditDialog.js:224 src/translations.js:304 msgid "Unitarian Universalism" msgstr "Unitaria Universalismo" #: src/osmEditDialog.js:225 src/translations.js:305 msgid "Voodoo" msgstr "Voduismo" #: src/osmEditDialog.js:226 src/translations.js:306 msgid "Yazidism" msgstr "Jezidismo" #: src/osmEditDialog.js:227 src/translations.js:307 msgid "Zoroastrianism" msgstr "Zaratuŝtrismo" #: src/osmEditDialog.js:230 src/poiCategories.js:174 msgid "Toilets" msgstr "Necesejoj" #: src/osmEditDialog.js:237 msgid "Note" msgstr "Noto" #: src/osmEditDialog.js:240 msgid "Information used to inform other mappers about non-obvious information about an element, the author’s intent when creating it, or hints for further improvement." msgstr "Informo uzota por sciigi nememkompreneblajn informojn al aliaj mapistoj pri elemento, intenco de ĝia aŭtoro, aŭ helpiloj por plia plibonigado." #: src/osmEditDialog.js:339 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "Aldoni al OpenStreetMap" #: src/osmEditDialog.js:393 msgid "Select Type" msgstr "Elekti tipon" #: src/osmEditDialog.js:515 msgid "Done" msgstr "Farite" #: src/osmEditDialog.js:818 msgid "The format used should include the language code and the article title like “en:Article title”." msgstr "La uzata formo devus inkluzivi lingvan kodon kaj la artikolan titolon, kiel “eo:artikola titolo”." #: src/osmEditDialog.js:824 msgid "Use the reload button to load the Wikidata tag for the selected article" msgstr "Uzu la reŝargi butonon por ŝargi la Vikidatuman etikedon por la elektita artikolo" #: src/osmEditDialog.js:832 msgid "Couldn't find Wikidata tag for article" msgstr "Ne eblis trovi Vikidatuman etikedon por artikolo" #: src/photonUtils.js:118 msgid "Unnamed place" msgstr "Sennoma loko" #: src/placeEntry.js:261 msgid "Failed to parse Geo URI" msgstr "Malsukcesis analizi Geo-URI" #: src/placeEntry.js:273 msgid "Failed to parse Maps URI" msgstr "Malsukcesis analizi Maps-URI" #. 300 ft (300 * 12 * 0.0254 m) #. #. * Translators: This a format string for showing a distance to a place #. * is lower than a "quite short" distance. #. * The "less than" symbol can be substituded with an appropriate one, if #. * needed (e.g. using the correct direction, or alternative symbol). #. * The %s should be kept, and is substituted with a label representing the #. * short distance. The \u2009 (thin space) could also be adjusted if needed #: src/placeListRow.js:46 #, javascript-format msgctxt "short distance format string" msgid "< %s" msgstr "< %s" #: src/placeView.js:249 msgid "Coordinates" msgstr "Koordinatoj" #: src/placeView.js:253 msgid "Accuracy" msgstr "Precizeco" #. Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) #: src/placeView.js:256 #, javascript-format msgid "Accuracy: %s" msgstr "Precizeco: %s" #. since the phone numbers are typically always rendered #. * left-to-right, insert an explicit LRM char to avoid issues #. * with phone numbers in international format starting with a + #. * which is considered a "weak" character to determine Unicode #. * text direction #. #: src/placeView.js:275 msgid "Phone number" msgstr "Telefonnumero" #. Translators: #. * The establishment offers customers to purchase meals #. * (or similar) to be consumed elsewhere #. #: src/placeView.js:307 msgid "Offers takeout" msgstr "Ofertas elporton" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed on-premise. #. #: src/placeView.js:315 msgid "Does not offer takeout" msgstr "Ne ofertas elprenadon" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed elsewhere. E.g. #. * there is no seating on-premise for eating/drinking #. #: src/placeView.js:324 msgid "Only offers takeout" msgstr "Nur proponas elporton" #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/placeView.js:341 msgid "Public internet access" msgstr "Publika interreta aliro" #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/placeView.js:350 msgid "No internet access" msgstr "Neniu interreta aliro" #. Translators: #. * This means a WLAN Hotspot, also known as wireless, wifi or Wi-Fi. #. #: src/placeView.js:358 msgid "Public Wi-Fi" msgstr "Publika WLAN" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/placeView.js:366 msgid "Wired internet access" msgstr "Kablita interreta aliro" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/placeView.js:374 msgid "Computers available for use" msgstr "Komputiloj disponeblaj por uzo" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/placeView.js:382 msgid "Internet assistance available" msgstr "Interreta helpo disponebla" #: src/placeView.js:388 msgid "No toilets available" msgstr "Ne disponeblaj necesejoj" #: src/placeView.js:391 msgid "Toilets available" msgstr "Necesejoj haveblaj" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #: src/placeView.js:400 msgid "Wheelchair accessible" msgstr "Rulseĝo alirebla" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/placeView.js:410 msgid "Limited wheelchair accessibility" msgstr "Limigita rulseĝo alirebleco" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #: src/placeView.js:419 msgid "Not wheelchair accessible" msgstr "Ne alirebla por rulseĝo" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/placeView.js:429 msgid "Designated for wheelchair users" msgstr "Destinite por rulseĝaj uzantoj" #. * #. * Translators: this is a label indicating an altitude below #. * sea level, where the %s placeholder is the altitude relative #. * to mean sea level in the "negative direction" #. #: src/placeView.js:460 #, javascript-format msgid "%s below sea level" msgstr "%s sub la marnivelo" #. * #. * Translators: this indicates a place is located at (or very #. * close to) mean sea level #. #: src/placeView.js:467 msgid "At sea level" msgstr "Ĉe marnivelo" #: src/placeView.js:476 msgid "Religion:" msgstr "Religio:" #: src/place.js:543 msgid "Place not found in OpenStreetMap" msgstr "Loko ne troviĝis en OpenStreetMap" #: src/place.js:550 msgid "Coordinates in URL are not valid" msgstr "Koordinatoj en URL ne estas validaj" #: src/place.js:559 msgid "URL is not supported" msgstr "URL ne estas subtenata" #: src/poiCategories.js:132 msgid "Amenities" msgstr "Agrablaĵoj" #: src/poiCategories.js:135 msgid "ATMs" msgstr "Monmaŝino" #: src/poiCategories.js:141 msgid "Post Boxes" msgstr "Poŝtkestoj" #: src/poiCategories.js:147 msgid "Post Offices" msgstr "Poŝtejoj" #: src/poiCategories.js:153 msgid "Police" msgstr "Polico" #: src/poiCategories.js:159 msgid "Libraries" msgstr "Bibliotekoj" #: src/poiCategories.js:165 msgid "Pharmacies" msgstr "Apotekoj" #: src/poiCategories.js:170 msgid "Recycling" msgstr "Reciklado" #: src/poiCategories.js:180 msgid "Wheelchair-accessible Toilets" msgstr "Necesejoj alireblaj por rulseĝoj" #: src/poiCategories.js:186 msgid "Baggage Lockers" msgstr "Pakaĵŝrankoj" #: src/poiCategories.js:194 msgid "Eating & Drinking" msgstr "Manĝado & trinkado" #: src/poiCategories.js:198 msgid "Restaurants" msgstr "Restoracioj" #: src/poiCategories.js:203 msgid "Fast Food" msgstr "Rapida manĝo" #: src/poiCategories.js:208 msgid "Food Courts" msgstr "Manĝejoj" #: src/poiCategories.js:213 msgid "Pubs" msgstr "Drinkejoj" #: src/poiCategories.js:219 msgid "Bars" msgstr "Trinkejoj" #: src/poiCategories.js:224 msgid "Cafes" msgstr "Kafejoj" #: src/poiCategories.js:229 msgid "Ice Cream" msgstr "Glaciaĵo" #: src/poiCategories.js:233 msgid "Food, Snacks, and Beverage Machines" msgstr "Manĝaĵoj, manĝaĵoj kaj trinkaĵoj" #: src/poiCategories.js:241 msgid "Shopping" msgstr "Butikumado" #: src/poiCategories.js:245 msgid "Supermarkets" msgstr "Superbazaroj" #: src/poiCategories.js:251 msgid "Convenience Stores" msgstr "Konvenaj vendejoj" #: src/poiCategories.js:256 msgid "Shopping Malls" msgstr "Butikcentroj" #: src/poiCategories.js:262 msgid "Clothes" msgstr "Vestaĵoj" #: src/poiCategories.js:267 msgid "Shoes" msgstr "Ŝuoj" #: src/poiCategories.js:272 msgid "Electronics" msgstr "Elektroniko" #: src/poiCategories.js:278 msgid "Alcohol" msgstr "Alkoholo" #: src/poiCategories.js:284 msgid "Bakeries" msgstr "Bakejoj" #: src/poiCategories.js:290 msgid "Flowers" msgstr "Floroj" #: src/poiCategories.js:297 msgid "Transportation" msgstr "Transportado" #: src/poiCategories.js:301 msgid "Bus & Tram Stops" msgstr "Busaj kaj tramaj haltejoj" #: src/poiCategories.js:309 msgid "Train & Subway Stations" msgstr "Trajnaj kaj metroaj stacidomoj" #: src/poiCategories.js:317 msgid "Tickets" msgstr "Biletoj" #: src/poiCategories.js:325 msgid "Parking" msgstr "Parkejo" #: src/poiCategories.js:330 msgid "Bicycle Parking" msgstr "Parkado de bicikloj" #: src/poiCategories.js:335 msgid "Bicycle Rental" msgstr "Luo de bicikloj" #: src/poiCategories.js:340 msgid "Car Rental" msgstr "Luo de aŭtoj" #: src/poiCategories.js:345 msgid "Fuel" msgstr "Fuelo" #: src/poiCategories.js:350 msgid "EV Charging" msgstr "Ŝargado de EV" #: src/poiCategories.js:358 msgid "Healthcare" msgstr "Sanzorgo" #: src/poiCategories.js:362 msgid "Clinics" msgstr "Klinikoj" #: src/poiCategories.js:368 msgid "Hospitals" msgstr "Malsanulejoj" #: src/poiCategories.js:374 msgid "Dentists" msgstr "Dentistoj" #: src/poiCategories.js:381 msgid "Accommodation" msgstr "Loĝado" #: src/poiCategories.js:385 msgid "Hotels" msgstr "Hoteloj" #: src/poiCategories.js:390 msgid "Hostels" msgstr "Gastejoj" #: src/poiCategories.js:395 msgid "Bed & Breakfast" msgstr "Lito & Matenmanĝo" #: src/poiCategories.js:400 msgid "Campings" msgstr "Kampadejoj" #: src/poiCategories.js:407 msgid "Recreation" msgstr "Rekreado" #: src/poiCategories.js:411 msgid "Parks" msgstr "Parkoj" #: src/poiCategories.js:416 msgid "Playgrounds" msgstr "Ludejoj" #: src/poiCategories.js:420 msgid "Beaches" msgstr "Plaĝoj" #: src/poiCategories.js:425 msgid "Nature Reserves" msgstr "Naturrezervejoj" #: src/poiCategories.js:431 msgid "Theme Parks" msgstr "Temaj parkoj" #: src/poiCategories.js:436 msgid "Theaters" msgstr "Teatroj" #: src/poiCategories.js:442 msgid "Movie Theaters" msgstr "Kinejoj" #: src/poiCategories.js:448 msgid "Night Clubs" msgstr "Noktaj kluboj" #: src/poiCategories.js:455 msgid "Tourism" msgstr "Turismo" #: src/poiCategories.js:459 msgid "Museums" msgstr "Museoj" #: src/poiCategories.js:465 msgid "Attractions" msgstr "Altiroj" #: src/poiCategories.js:470 msgid "Artworks" msgstr "Artaĵoj" #: src/poiCategories.js:475 msgid "Tourist Information" msgstr "Turisma informo" #: src/poiCategories.js:482 msgid "Sports" msgstr "Sportoj" #: src/poiCategories.js:486 msgid "Gyms" msgstr "Gimnastikejoj" #: src/poiCategories.js:492 msgid "Outdoor Gyms" msgstr "Subĉielaj gimnastikejoj" #: src/poiCategories.js:498 msgid "Golf Courses" msgstr "Golfejoj" #: src/printLayout.js:350 #, javascript-format msgid "From %s to %s" msgstr "De %s ĝis %s" #: src/printOperation.js:49 msgid "Loading map tiles for printing" msgstr "Ŝarĝante maperojn por presado" #: src/printOperation.js:50 msgid "You can abort printing if this takes too long" msgstr "Vi rajtas ĉesigi presadon se tro daŭras" #: src/printOperation.js:52 msgid "Abort printing" msgstr "Ĉesigi presadon" #. Translators: this is add via location tooltip #: src/routeEntry.js:60 msgid "Add via location" msgstr "Aldoni per loko" #. Translators: this is remove via location tooltip #: src/routeEntry.js:70 msgid "Remove via location" msgstr "Forigi per loko" #. Translators: this is reverse route tooltip #: src/routeEntry.js:76 msgid "Reverse route" msgstr "Renversi kurson" #: src/searchBar.js:45 msgid "Search" msgstr "Serĉu" #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:84 #, javascript-format msgid "Add %s to %s" msgstr "Aldoni %s al %s" #: src/sendToDialog.js:181 msgid "Failed to open URI" msgstr "Malsukcesis malfermi la URI" #: src/sendToDialog.js:246 #, javascript-format msgid "Open with %s" msgstr "Malfermi per %s" #: src/shapeLayer.js:108 msgid "failed to load file" msgstr "malsukcesis ŝarĝi la dosieron" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:329 #, javascript-format msgid "Estimated time: %s" msgstr "Antaŭkalkulita tempo: %s" #: src/sidebar.js:399 #, javascript-format msgid "Itineraries provided by %s" msgstr "Kursojn provizas %s" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:39 #, javascript-format msgid "Start at %s" msgstr "Alveturi je %s" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:45 msgid "Start" msgstr "Ek" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:63 #, javascript-format msgid "Walk %s" msgstr "Promeni %s" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:77 #, javascript-format msgid "Arrive at %s" msgstr "Alveni je %s" #: src/transit.js:79 src/transitplugins/openTripPlanner.js:1144 msgid "Arrive" msgstr "Alveni" #: src/transitLegRow.js:69 msgid "Show walking instructions" msgstr "Montri promenajn instrukciojn" #: src/transitLegRow.js:70 msgid "Hide walking instructions" msgstr "Kaŝi promenajn instrukciojn" #: src/transitMoreRow.js:37 msgid "Load earlier alternatives" msgstr "Ŝargi antaŭajn alternativojn" #: src/transitMoreRow.js:39 msgid "Load later alternatives" msgstr "Ŝargi postajn alternativojn" #: src/transitMoreRow.js:52 msgid "No earlier alternatives found." msgstr "Neniu antaŭa alternativo trovita." #: src/transitMoreRow.js:54 msgid "No later alternatives found." msgstr "Neniu posta alternativo trovita." #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:136 msgctxt "month-day-date" msgid "%b %e" msgstr "%-e-a de %b" #: src/transitPlan.js:170 msgid "No timetable data found for this route." msgstr "Neniuj horaraj datumoj trovitaj por ĉi tiu kurso." #: src/transitPlan.js:178 msgid "No provider found for this route." msgstr "Neniu provizanto trovita por ĉi tiu kurso." #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:295 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:324 #, javascript-format msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "%s minuto" msgstr[1] "%s minutoj" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:336 #, javascript-format msgid "%s hour" msgid_plural "%s hours" msgstr[0] "%s horo" msgstr[1] "%s horoj" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:344 #, javascript-format msgid "%s:%s hour" msgid_plural "%s:%s hours" msgstr[0] "%s:%s horo" msgstr[1] "%s:%s horoj" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:698 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: src/translations.js:55 msgid "Around the clock" msgstr "Tuttaga" #: src/translations.js:57 msgid "From sunrise to sunset" msgstr "De sunleviĝo ĝis sunsubiro" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:123 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s,%s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:137 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s,%s,%s" #: src/translations.js:156 msgid "Every day" msgstr "Ĉiun tagon" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:168 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s–%s" #: src/translations.js:179 msgid "Public holidays" msgstr "Publikaj festotagoj" #: src/translations.js:181 msgid "School holidays" msgstr "Lernejaj ferioj" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:221 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: src/translations.js:235 msgid "not open" msgstr "ne malfermita" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:250 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s–%s" #: src/translations.js:287 msgid "Bahá'í" msgstr "Bahaismo" #. Translators: Accuracy of user location information #: src/utils.js:257 msgid "Unknown" msgstr "Nekonata" #. Translators: Accuracy of user location information #: src/utils.js:260 msgid "Exact" msgstr "Preciza" #. Translators: this is a duration with only hours, using #. * an abbreviation for hours, corresponding to 'h' in English #. #: src/utils.js:345 #, javascript-format msgid "%s h" msgstr "%s h" #. Translators: this is a duration with hours and minutes parts #. * using abbreviations for hours and minutes, corresponding to 'h' #. * and 'min' in English. The minutes has appropriate plural variations #. #: src/utils.js:351 #, javascript-format msgid "%s h %s min" msgid_plural "%s h %s min" msgstr[0] "%s h %s min" msgstr[1] "%s h %s min" #. Translators: this is a duration with minutes part #. * using abbreviation for minutes, corresponding to 'min' in English #. * with appropriate plural variations #. #: src/utils.js:358 #, javascript-format msgid "%s min" msgid_plural "%s min" msgstr[0] "%s min" msgstr[1] "%s min" #. Translators: this is a duration of less than one minute #. * with seconds using an abbreviation for seconds, corresponding to #. * 's' in English with appropriate plural forms #. #: src/utils.js:364 #, javascript-format msgid "%s s" msgid_plural "%s s" msgstr[0] "%s s" msgstr[1] "%s s" #. Translators: This is a distance measured in kilometers #: src/utils.js:375 #, javascript-format msgid "%s km" msgstr "%s km" #. Translators: This is a distance measured in meters #: src/utils.js:378 #, javascript-format msgid "%s m" msgstr "%s m" #. Translators: This is a distance measured in miles #: src/utils.js:386 #, javascript-format msgid "%s mi" msgstr "%s mej" #. Translators: This is a distance measured in feet #: src/utils.js:389 #, javascript-format msgid "%s ft" msgstr "%s ft" #: src/transitplugins/goMetro.js:61 msgid "This plugin doesn't support latest arrival" msgstr "Ĉi tiu kromaĵo ne subtenas lastan alvenon" #: src/transitplugins/openTripPlanner.js:1205 #, javascript-format msgid "Continue on %s" msgstr "Daŭrigi je %s" #: src/transitplugins/openTripPlanner.js:1210 #, javascript-format msgid "Turn left on %s" msgstr "Turni maldekstren je %s" #: src/transitplugins/openTripPlanner.js:1212 msgid "Turn left" msgstr "Turni maldekstren" #: src/transitplugins/openTripPlanner.js:1215 #, javascript-format msgid "Turn slightly left on %s" msgstr "Turni maldekstren iomete je %s" #: src/transitplugins/openTripPlanner.js:1217 msgid "Turn slightly left" msgstr "Turni maldekstren iomete" #: src/transitplugins/openTripPlanner.js:1220 #, javascript-format msgid "Turn sharp left on %s" msgstr "Turni maldekstren akre je %s" #: src/transitplugins/openTripPlanner.js:1222 msgid "Turn sharp left" msgstr "Turni maldekstren akre" #: src/transitplugins/openTripPlanner.js:1225 #, javascript-format msgid "Turn right on %s" msgstr "Turni dekstren je %s" #: src/transitplugins/openTripPlanner.js:1227 msgid "Turn right" msgstr "Turni dekstren" #: src/transitplugins/openTripPlanner.js:1230 #, javascript-format msgid "Turn slightly right on %s" msgstr "Turni dekstren iomete je %s" #: src/transitplugins/openTripPlanner.js:1232 msgid "Turn slightly right" msgstr "Turni dekstren iomete" #: src/transitplugins/openTripPlanner.js:1235 #, javascript-format msgid "Turn sharp right on %s" msgstr "Turni dekstren akre je %s" #: src/transitplugins/openTripPlanner.js:1237 msgid "Turn sharp right" msgstr "Turni dekstren akre" #: src/transitplugins/openTripPlanner.js:1243 #, javascript-format msgid "At the roundabout, take exit %s" msgstr "Ĉe la trafikcirklo, prenu elirejon %s" #: src/transitplugins/openTripPlanner.js:1245 #, javascript-format msgid "At the roundabout, take exit to %s" msgstr "Ĉe la trafikcirklo, prenu elirejon al %s" #: src/transitplugins/openTripPlanner.js:1247 msgid "Take the roundabout" msgstr "Iru la rondirejon" #: src/transitplugins/openTripPlanner.js:1251 #, javascript-format msgid "Take the elevator and get off at %s" msgstr "Uzu la lifton kaj eliru je %s" #: src/transitplugins/openTripPlanner.js:1253 msgid "Take the elevator" msgstr "Uzu la lifton" #: src/transitplugins/openTripPlanner.js:1257 #, javascript-format msgid "Make a left u-turn onto %s" msgstr "Turni maldekstren reen al %s" #: src/transitplugins/openTripPlanner.js:1259 msgid "Make a left u-turn" msgstr "Turni maldekstren reen" #: src/transitplugins/openTripPlanner.js:1262 #, javascript-format msgid "Make a right u-turn onto %s" msgstr "Turniĝu dekstren reen al %s" #: src/transitplugins/openTripPlanner.js:1264 msgid "Make a right u-turn" msgstr "Turni dekstren reen" #~ msgid "GNOME Maps" #~ msgstr "GNOME Mapoj" #~ msgid "" #~ "You can even search for specific types of locations, such as “Pubs near " #~ "Main Street, Boston” or “Hotels near Alexanderplatz, Berlin”." #~ msgstr "" #~ "Vi eĉ povas serĉi specifajn specojn de lokoj, kiel ekzemple “Trinkejo " #~ "proksime al Main Street, Bostono” aŭ “Hotelo proksime al Alexanderplatz, " #~ "Berlin”." #~ msgid "Facebook check-in privacy setting" #~ msgstr "Privateca agordo de Facebook-prezentiĝo" #~ msgid "" #~ "Latest used Facebook check-in privacy setting. Possible values are: " #~ "EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS or SELF." #~ msgstr "" #~ "Laste uzata privateca agordo de Facebook-prezentiĝo. Eblaj valoroj estas: " #~ "EVERYONE (ĉiuj), FRIENDS_OF_FRIENDS (amikoj de amikoj), ALL_FRIENDS (ĉiuj " #~ "amikoj), aŭ SELF (sin mem)." #~ msgid "Foursquare check-in privacy setting" #~ msgstr "Privateca agordo de Foursquare-prezentiĝo" #~ msgid "" #~ "Latest used Foursquare check-in privacy setting. Possible values are: " #~ "public, followers or private." #~ msgstr "" #~ "Laste uzata privateca agordo de Facebook-prezentiĝo. Eblaj valoroj estas: " #~ "public (publika), followers (sekvantoj), aŭ private (privata)." #~ msgid "Foursquare check-in Facebook broadcasting" #~ msgstr "Elsendo de Foursquare-prezentiĝo al Facebook" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a post in the " #~ "Facebook account associated with the Foursquare account." #~ msgstr "" #~ "Indikas ĉu Foursquare elsendu la prezentiĝon kiel publikaĵo en lakonto de " #~ "Facebook ligita al la konto de Foursquare." #~ msgid "Foursquare check-in Twitter broadcasting" #~ msgstr "Elsendo de Foursquare-prezentiĝo al Twitter" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a tweet in the " #~ "Twitter account associated with the Foursquare account." #~ msgstr "" #~ "Indikas ĉu Foursquare elsendu la prezentiĝon kiel publikaĵo en lakonto de " #~ "Twitter ligita al la konto de Foursquare." #~ msgid "Visibility" #~ msgstr "Videbleco" #~ msgid "Post on Facebook" #~ msgstr "Afiŝi ĉe Facebook" #~ msgid "Post on Twitter" #~ msgstr "Alfiŝi ĉe Twitter" #~ msgid "C_heck in" #~ msgstr "P_rezentiĝi" #~ msgid "Everyone" #~ msgstr "Ĉiu" #~ msgid "Friends of friends" #~ msgstr "Amikoj de amikoj" #~ msgid "Just friends" #~ msgstr "Nur amikoj" #~ msgid "Just me" #~ msgstr "Nur mi" #~ msgid "Private" #~ msgstr "Privata" #~ msgid "Include route and markers" #~ msgstr "Inkluzivi kurson kaj markilojn" #~ msgid "Go to current location" #~ msgstr "Iri al aktuala loko" #~ msgid "Choose map type" #~ msgstr "Elekti specon de mapo" #~ msgid "Zoom in" #~ msgstr "Zomi" #~ msgid "Maps is offline!" #~ msgstr "Mapoj estas nekonektitaj!" #~ msgid "" #~ "Maps need an active internet connection to function properly, but one " #~ "can’t be found." #~ msgstr "" #~ "Mapoj bezonas interretaliron por bone funkcii, sed oni ne trovis ĝin." #~ msgid "Check your connection and proxy settings." #~ msgstr "Kontrolu vian konekton kaj agordojn de la prokurilo." #~ msgid "Check in here" #~ msgstr "Prezentiĝi ĉi tie" #~ msgid "Password" #~ msgstr "Pasvorto" #~ msgid "Don’t have an account?" #~ msgstr "Ĉu vi ne havas konton?" #~ msgid "" #~ "Sorry, that didn’t work. Please try again, or visit\n" #~ "OpenStreetMap to reset your password." #~ msgstr "" #~ "Pardonon, tio ne funkciis. Bonvolu provi denove, aŭ viziti\n" #~ "OpenStreetMap por reagordi vian pasvorton." #~ msgid "Drag to change order of the route" #~ msgstr "Ŝovu por ŝangi la ordon de la kurso" #~ msgid "Ignore network availability" #~ msgstr "Malatenti atingeblecon de reto" #~ msgid "Select an account" #~ msgstr "Elekti konton" #~ msgid "Loading" #~ msgstr "Ŝarĝante" #~ msgid "" #~ "Maps cannot find the place to check in to with Facebook. Please select " #~ "one from this list." #~ msgstr "" #~ "Mapoj ne eblas trovi la lokon por prezentiĝi ĉe Facebook. Bonvole elektu " #~ "unu el ĉi tiu listo." #~ msgid "" #~ "Maps cannot find the place to check in to with Foursquare. Please select " #~ "one from this list." #~ msgstr "" #~ "Mapoj ne eblas trovi la lokon por prezentiĝi ĉe Foursquare. Bonvole " #~ "elektu unu el ĉi tiu listo." #, javascript-format #~ msgid "Check in to %s" #~ msgstr "Prezentiĝi al %s" #, javascript-format #~ msgid "Write an optional message to check in to %s." #~ msgstr "Skribi malnepran mesaĝon por prezentiĝi ĉe %s." #, javascript-format #~ msgid "Cannot find “%s” in the social service" #~ msgstr "Ne povis trovi na “%s” en la socia servo" #~ msgid "Cannot find a suitable place to check-in in this location" #~ msgstr "Ne trovis taŭgan lokon por prezentiĝi en tiu ĉi lokon" #~ msgid "" #~ "Credentials have expired, please open Online Accounts to sign in and " #~ "enable this account" #~ msgstr "" #~ "La salutiloj malvalidiĝis, bonvole lanĉu Enretajn Kontojn por saluti kaj " #~ "ebligi ĉi tiun konton" #~ msgid "" #~ "Location was added to the map, note that it may take a while before it " #~ "shows on the map and in search results." #~ msgstr "" #~ "Loko estis aldonita al la mapo, rimarku ke ĝi povas preni momenton antaŭ " #~ "ĝi montras sur la mapo kaj en serĉrezultoj." #~ msgid "Filesystem is read only" #~ msgstr "Dosiersistemo estas nurlega" #~ msgid "You do not have permission to save there" #~ msgstr "Vi ne havas la permeson por tie konservi" #~ msgid "The directory does not exist" #~ msgstr "La dosierujo ne ekzistas" #~ msgid "No filename specified" #~ msgstr "Neniu dosiernomo specifita" #~ msgid "A map application for GNOME" #~ msgstr "Mapa aplikaĵo por GNOME" #~ msgid "Population:" #~ msgstr "Loĝantaro:" #~ msgid "Altitude:" #~ msgstr "Alto:" #~ msgid "Opening hours:" #~ msgstr "Horoj de malfermo:" #~ msgid "Internet access:" #~ msgstr "Interreta aliro:" #~ msgid "Toilets:" #~ msgstr "Necesejoj:" #~ msgid "Wheelchair access:" #~ msgstr "Rulseĝa aliro:" #~ msgid "Phone:" #~ msgstr "Telefono:" #~ msgid "yes" #~ msgstr "jes" #~ msgid "limited" #~ msgstr "limigita" #~ msgid "no" #~ msgstr "ne" #~ msgid "designated" #~ msgstr "indikita" #~ msgid "OpenStreetMap URL is not valid" #~ msgstr "URL de OpenStreetMap ne estas valida" #, javascript-format #~ msgctxt "time range list" #~ msgid "%s %s" #~ msgstr "%s %s" #, javascript-format #~ msgctxt "time range component" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgid "wired" #~ msgstr "drata" #~ msgid "terminal" #~ msgstr "terminalo" #~ msgid "service" #~ msgstr "servo" #, javascript-format #~ msgid "%f h" #~ msgstr "%f h" #, javascript-format #~ msgid "%f min" #~ msgstr "%f min" #, javascript-format #~ msgid "%f s" #~ msgstr "%f s" #~ msgid "Route search by OpenTripPlanner" #~ msgstr "Kursa serĉado de OpenTripPlanner" #~ msgid "org.gnome.Maps" #~ msgstr "org.gnome.Maps" #~ msgid "Open with another application" #~ msgstr "Malfermi per alia aplikaĵo" #~ msgid "Press enter to search" #~ msgstr "Premu la enigan klavon por serĉi" #~ msgid "Quit" #~ msgstr "Ĉesi" #~ msgid "Load Map Layer" #~ msgstr "Ŝarĝi mapan tavolon" #~ msgid "OK" #~ msgstr "En ordo" #~ msgid "%f km" #~ msgstr "%f km" #~ msgid "%f m" #~ msgstr "%f m" #~ msgid "%f mi" #~ msgstr "%f me" #~ msgid "%f ft" #~ msgstr "%f ft" #~ msgid "Country code: %s" #~ msgstr "Landkodo: %s" #~ msgid "Last known location and accuracy" #~ msgstr "Laste-sciita loko kaj ekzakto" #~ msgid "" #~ "Last known location (latitude and longitude in degrees) and accuracy (in " #~ "meters)." #~ msgstr "" #~ "Laste-sciita loko (latitudo kaj longitudo en gradoj) kaj ekzakto (en " #~ "metroj)." #~ msgid "Description of last known location of user." #~ msgstr "Priskribo de laste sciita loko de la uzanto." #~ msgid "Whether the last known location was set manually by the user." #~ msgstr "Ĉu la laste sciatan lokon agordis permane la uzanto" #~ msgid "I’m here!" #~ msgstr "Mi estas ĉi tie!" #~ msgid "Satellite" #~ msgstr "Satelito" #~ msgid " km²" #~ msgstr " km²" 070701000001BC000081A40000000000000000000000016641340900010A02000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/es.po# Spanish translation for gnome-maps. # Copyright (C) 2013 gnome-maps's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-maps package. # FIRST AUTHOR , YEAR. # Julián Villodre , 2024. # Daniel Mustieles , 2022-2024. # msgid "" msgstr "" "Project-Id-Version: gnome-maps master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2024-02-25 20:49+0000\n" "PO-Revision-Date: 2024-02-26 13:43+0100\n" "Last-Translator: Daniel Mustieles \n" "Language-Team: Spanish - Spain \n" "Language: es_ES\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" "X-Generator: Gtranslator 45.3\n" #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.appdata.xml.in.in:6 data/org.gnome.Maps.desktop.in.in:4 #: data/ui/main-window.ui:27 src/application.js:64 src/mainWindow.js:147 #: src/mainWindow.js:647 msgid "Maps" msgstr "Mapas" #: data/org.gnome.Maps.appdata.xml.in.in:7 msgid "Find places around the world" msgstr "Encuentre lugares por todo el mundo" #: data/org.gnome.Maps.appdata.xml.in.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "Mapas le ofrece un acceso rápido a mapas de todo el mundo. Le permite " "encontrar lugares rápidamente buscando por ciudad o por calle, o buscar un " "lugar para encontrarse con un amigo." #: data/org.gnome.Maps.appdata.xml.in.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "Mapas usa la base de datos colaborativa OpenStreetMap, hecha por cientos de " "miles de personas de todo el mundo." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Maps.appdata.xml.in.in:451 src/mainWindow.js:644 msgid "The GNOME Project" msgstr "El Proyecto GNOME" #: data/org.gnome.Maps.desktop.in.in:5 msgid "A simple maps application" msgstr "Una sencilla aplicación de mapas" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in.in:14 msgid "Maps;" msgstr "Mapas;" #: data/org.gnome.Maps.desktop.in.in:17 msgid "Allows your location to be shown on the map." msgstr "Permite mostrar su ubicación en el mapa." #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "última ubicación vista" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "Coordenadas de la última ubicación vista." #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "ampliación" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "Nivel de ampliación" #: data/org.gnome.Maps.gschema.xml:21 msgid "rotation" msgstr "rotación" #: data/org.gnome.Maps.gschema.xml:22 msgid "Map rotation in radians" msgstr "Rotación del mapa, en radianes" #: data/org.gnome.Maps.gschema.xml:26 msgid "Map type" msgstr "Tipo de mapa" #: data/org.gnome.Maps.gschema.xml:27 msgid "The type of map to display (street, aerial, etc.)" msgstr "El tipo de mapa que mostrar (callejero, aéreo, etc.)" #: data/org.gnome.Maps.gschema.xml:31 msgid "Window size" msgstr "Tamaño de la ventana" #: data/org.gnome.Maps.gschema.xml:32 msgid "Window size (width and height)." msgstr "Tamaño de la ventana (anchura y altura)." #: data/org.gnome.Maps.gschema.xml:36 msgid "Window position" msgstr "Posición de la ventana" #: data/org.gnome.Maps.gschema.xml:37 msgid "Window position (X and Y)." msgstr "Posición de la ventana (X e Y)." #: data/org.gnome.Maps.gschema.xml:41 msgid "Window maximized" msgstr "Ventana maximizada" #: data/org.gnome.Maps.gschema.xml:42 msgid "Window maximization state" msgstr "Estado maximizado de la ventana" #: data/org.gnome.Maps.gschema.xml:46 msgid "Maximum number of search results" msgstr "Número máximo de resultados de búsqueda" #: data/org.gnome.Maps.gschema.xml:47 msgid "Maximum number of search results from geocode search." msgstr "Número máximo de resultados de búsqueda para búsquedas por geocódigo." #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent places to store" msgstr "Número de lugares recientes que guardar" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited places to store." msgstr "Número de lugares visitados recientemente que guardar." #: data/org.gnome.Maps.gschema.xml:56 msgid "Number of recent routes to store" msgstr "Número de rutas recientes que guardar" #: data/org.gnome.Maps.gschema.xml:57 msgid "Number of recently visited routes to store." msgstr "Número de rutas visitadas recientemente que guardar." #: data/org.gnome.Maps.gschema.xml:61 msgid "OpenStreetMap username or email address" msgstr "Nombre de usuario de OpenStreetMap o cuenta de correo-e" #: data/org.gnome.Maps.gschema.xml:62 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "" "Indica si el usuario ha iniciado sesión para editar los datos de " "OpenStreetMap." #: data/org.gnome.Maps.gschema.xml:66 msgid "Last used transportation type for routing" msgstr "Último tipo de transporte usado para la ruta" #: data/org.gnome.Maps.gschema.xml:70 msgid "Show scale" msgstr "Mostrar escala" #: data/org.gnome.Maps.gschema.xml:71 msgid "Whether to show the scale." msgstr "Indica si se debe mostrar la escala." #: data/ui/context-menu.ui:6 msgid "Route from Here" msgstr "Ruta desde aquí" #: data/ui/context-menu.ui:10 msgid "Add Intermediate Destination" msgstr "Añadir destino intermedio" #: data/ui/context-menu.ui:14 msgid "Route to Here" msgstr "Ruta hasta aquí" #: data/ui/context-menu.ui:20 msgid "What's Here?" msgstr "¿Qué hay aquí?" #: data/ui/context-menu.ui:24 msgid "Copy Location" msgstr "Copiar ubicación" #: data/ui/context-menu.ui:28 msgid "Add to OpenStreetMap…" msgstr "Añadir a OpenStreetMap…" #: data/ui/export-view-dialog.ui:7 msgid "Export view" msgstr "Exportar vista" #: data/ui/export-view-dialog.ui:16 data/ui/send-to-dialog.ui:10 #: data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "_Cancelar" #: data/ui/export-view-dialog.ui:26 msgid "_Export" msgstr "_Exportar" #. Translators: This is a tooltip #: data/ui/favorite-list-row.ui:72 msgid "Remove Favorite" msgstr "Quitar favorito" #: data/ui/favorites-popover.ui:11 msgid "No Favorites" msgstr "No hay favoritos" #: data/ui/favorites-popover.ui:12 msgid "Add places to your favorites to get them listed here" msgstr "Añada lugares a sus favoritos para que aparezcan aquí" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:11 src/geoclue.js:106 msgid "Current Location" msgstr "Ubicación actual" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:19 msgid "Layers" msgstr "Capas" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:11 msgid "Print Route" msgstr "Imprimir ruta" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:21 msgid "Favorites" msgstr "Favoritos" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:30 msgid "Route Planner" msgstr "Planificador de rutas" #: data/ui/help-overlay.ui:12 msgctxt "shortcut window" msgid "General" msgstr "General" #: data/ui/help-overlay.ui:15 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "Mostrar atajos" #: data/ui/help-overlay.ui:21 msgctxt "shortcut window" msgid "Search" msgstr "Buscar" #: data/ui/help-overlay.ui:27 msgctxt "shortcut window" msgid "Explore points-of-interest" msgstr "Explorar puntos de interés" #: data/ui/help-overlay.ui:33 msgctxt "shortcut window" msgid "Show last search results" msgstr "Mostrar los últimos resultados de búsqueda" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "Conmutar el planificador de rutas" #: data/ui/help-overlay.ui:45 msgctxt "shortcut window" msgid "Print route" msgstr "Imprimir ruta" #: data/ui/help-overlay.ui:51 msgctxt "shortcut window" msgid "Quit" msgstr "Salir" #: data/ui/help-overlay.ui:57 msgctxt "shortcut window" msgid "Open main menu" msgstr "Abrir el menú principal" #: data/ui/help-overlay.ui:65 msgctxt "shortcut window" msgid "Map View" msgstr "Vista de mapa" #: data/ui/help-overlay.ui:68 msgctxt "shortcut window" msgid "Zoom in" msgstr "Ampliar" #: data/ui/help-overlay.ui:74 msgctxt "shortcut window" msgid "Zoom out" msgstr "Reducir" #: data/ui/help-overlay.ui:80 msgctxt "shortcut window" msgid "Rotate clockwise" msgstr "Rotar en sentido horario" #: data/ui/help-overlay.ui:86 msgctxt "shortcut window" msgid "Rotate counter-clockwise" msgstr "Rotar en sentido antihorario" #: data/ui/help-overlay.ui:92 msgctxt "shortcut window" msgid "Reset rotation" msgstr "Restaurar rotación" #: data/ui/help-overlay.ui:98 msgctxt "shortcut window" msgid "Toggle scale" msgstr "Conmutar escalado" #: data/ui/help-overlay.ui:104 msgctxt "shortcut window" msgid "Go to current location" msgstr "Ir a la ubicación actual" #: data/ui/help-overlay.ui:114 msgctxt "shortcut window" msgid "Switch to street view" msgstr "Cambiar a vista de calle" #: data/ui/help-overlay.ui:121 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "Cambiar a vista aérea" #: data/ui/help-overlay.ui:127 msgctxt "shortcut window" msgid "Open shape layer" msgstr "Abrir capa de formas" #: data/ui/layers-popover.ui:7 msgid "Show Scale" msgstr "Mostrar escala" #: data/ui/layers-popover.ui:16 msgid "Enable Experimental Map" msgstr "Activar mapa experimental" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:21 msgid "Open Shape Layer…" msgstr "Abrir capa de formas…" #: data/ui/main-window.ui:8 msgid "Set up OpenStreetMap Account…" msgstr "Configurar cuenta de OpenStreetMap…" #: data/ui/main-window.ui:12 msgid "Export as Image…" msgstr "Exportar como imagen…" #: data/ui/main-window.ui:17 msgid "_Keyboard Shortcuts" msgstr "_Atajos del teclado" #: data/ui/main-window.ui:22 msgid "About Maps" msgstr "Acerca de Mapas" #: data/ui/main-window.ui:48 msgid "Main Menu" msgstr "Menú principal" #: data/ui/osm-account-dialog.ui:5 msgid "OpenStreetMap Account" msgstr "Cuenta de OpenStreetMap" #: data/ui/osm-account-dialog.ui:31 msgid "Sign In To Edit Maps" msgstr "Iniciar sesión para editar mapas" #: data/ui/osm-account-dialog.ui:32 msgid "Help to improve the map, using an OpenStreetMap account." msgstr "Ayude a mejorar el mapa, usando una cuenta de OpenStreetMap." #: data/ui/osm-account-dialog.ui:36 msgid "Sign In" msgstr "Iniciar sesión" #: data/ui/osm-account-dialog.ui:59 msgid "Verification" msgstr "Verificación" #: data/ui/osm-account-dialog.ui:60 msgid "" "Copy the verification code shown when authorizing access in the browser." msgstr "" "Copie el código de verificación mostrado al autorizar el acceso en el " "navegador." #: data/ui/osm-account-dialog.ui:69 msgid "Verification Code" msgstr "Código de verificación" #: data/ui/osm-account-dialog.ui:75 msgid "Verify" msgstr "Verificar" #: data/ui/osm-account-dialog.ui:110 msgid "Signed In" msgstr "Sesión iniciada" #: data/ui/osm-account-dialog.ui:111 msgid "Your OpenStreetMap account is active." msgstr "Su cuenta de OpenStreetMap está activada." #: data/ui/osm-account-dialog.ui:129 msgid "Sign Out" msgstr "Cerrar sesión" #: data/ui/osm-edit-address.ui:11 msgid "Street" msgstr "Calle" #: data/ui/osm-edit-address.ui:22 msgid "House number" msgstr "Número" #: data/ui/osm-edit-address.ui:33 msgid "Postal code" msgstr "Código postal" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:44 msgid "City" msgstr "Ciudad" #: data/ui/osm-edit-dialog.ui:8 msgctxt "dialog title" msgid "Edit on OpenStreetMap" msgstr "Editar en OpenStreetMap" #: data/ui/osm-edit-dialog.ui:57 msgid "Type" msgstr "Tipo" #: data/ui/osm-edit-dialog.ui:79 msgid "None" msgstr "Ninguno" #: data/ui/osm-edit-dialog.ui:108 msgid "Add Field" msgstr "Añadir campo" #: data/ui/osm-edit-dialog.ui:130 msgid "Comment" msgstr "Comentario" #: data/ui/osm-edit-dialog.ui:158 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "Los cambios en los mapas serán visibles en todos los mapas que usen\n" "datos de OpenStreetMap." #: data/ui/osm-edit-dialog.ui:186 msgid "Recently Used" msgstr "Usado recientemente" #: data/ui/osm-edit-dialog.ui:225 src/mapView.js:671 msgid "Cancel" msgstr "Cancelar" #: data/ui/osm-edit-dialog.ui:238 src/osmEditDialog.js:531 msgid "Next" msgstr "Siguiente" #: data/ui/osm-edit-wikipedia.ui:8 msgid "Article" msgstr "Artículo" #: data/ui/osm-edit-wikipedia.ui:21 msgid "Wikidata tag" msgstr "Etiqueta Wikidata" #: data/ui/osm-edit-wikipedia.ui:32 msgid "Load Wikidata tag for article" msgstr "Cargar etiquetas Wikidata para el artículo" #: data/ui/place-popover.ui:23 src/searchBar.js:55 msgid "Explore Nearby Places" msgstr "Explorar lugares cercanos" #: data/ui/place-popover.ui:82 src/application.js:277 msgid "No results found" msgstr "No se han encontrado resultados" #: data/ui/place-popover.ui:92 src/application.js:255 msgid "An error has occurred" msgstr "Ha ocurrido un error" #. Translators: This is a tooltip #: data/ui/route-entry.ui:12 msgid "Change Route Order" msgstr "Cambiar el orden de la ruta" #: data/ui/send-to-dialog.ui:7 msgid "Open Location" msgstr "Abrir ubicación" #: data/ui/send-to-dialog.ui:64 msgid "Copy" msgstr "Copiar" #: data/ui/send-to-dialog.ui:70 msgid "Send To…" msgstr "Enviar a…" #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:62 msgid "Open Shape Layer" msgstr "Abrir capa de formas" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "_Abrir" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:32 msgid "Toggle visible" msgstr "Conmutar estado visible" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:44 msgid "Remove Shape Layer" msgstr "Quitar capa de formas" #: data/ui/sidebar.ui:207 msgid "Route search by GraphHopper" msgstr "Ruta buscada por GraphHopper" #: data/ui/sidebar.ui:272 msgid "" "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of " "transportation,\n" "e.g. a national provider might not include airlines, and a local provider " "could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" "Los itinerarios de las rutas para viajes públicos los proporciona\n" "un servicio de terceros.\n" "GNOME no puede garantizar la corrección de los itinerarios y los tiempos " "mostrados.\n" "Algunos proveedores pueden no incluir todos mos medios de transporte " "disponibles,\n" "ej. un proveedor nacional puede no incluir aerolíneas y un proveedor local " "puede\n" "no incluir trenes regionales.\n" "Los nombres y las marcas mostradas se consideran marcas registradas cuando " "sea aplicable." #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:98 msgid "Hide intermediate stops and information" msgstr "Ocultar información y paradas intermedias" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:156 msgid "Show intermediate stops and information" msgstr "Mostrar información y paradas intermedias" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:16 msgid "Leave Now" msgstr "Salir ahora" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:17 msgid "Leave By" msgstr "Salir en" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:18 msgid "Arrive By" msgstr "Llegar por" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:85 msgid "Show" msgstr "Mostrar" #: data/ui/transit-options-panel.ui:95 msgid "Buses" msgstr "Autobuses" #: data/ui/transit-options-panel.ui:101 msgid "Trams" msgstr "Tranvías" #: data/ui/transit-options-panel.ui:107 msgid "Trains" msgstr "Trenes" #: data/ui/transit-options-panel.ui:113 msgid "Subway" msgstr "Metro" #: data/ui/transit-options-panel.ui:119 msgid "Ferries" msgstr "Ferris" #: data/ui/transit-options-panel.ui:125 msgid "Airplanes" msgstr "Aviones" #. Translators: This is a tooltip #: data/ui/place-bar.ui:33 data/ui/place-buttons.ui:27 msgid "Share Location" msgstr "Compartir ubicación" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:11 msgid "Add to new route" msgstr "Añadir a la ruta nueva" #. Translators: This is the button to find a route to a place #: data/ui/place-buttons.ui:15 msgid "Directions" msgstr "Direcciones" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:36 msgid "Mark as Favorite" msgstr "Marcar como favorita" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:44 msgid "Edit on OpenStreetMap" msgstr "Editar en OpenStreetMap" #. Translators: This is a tooltip #: data/ui/place-view.ui:52 msgid "Share location" msgstr "Compartir ubicación" #: data/ui/poi-category-goback-row.ui:22 msgid "Back to Main Categories" msgstr "Volver a las categorías principales" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:19 msgid "Reset Rotation" msgstr "Restaurar rotación" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:32 msgid "Zoom Out" msgstr "Reducir" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:43 src/mapView.js:1246 msgid "Zoom In" msgstr "Ampliar" #: lib/maps-file-data-source.c:262 lib/maps-file-data-source.c:338 #: lib/maps-file-data-source.c:418 msgid "Failed to find tile structure in directory" msgstr "Falló al buscar la estructura de la cuadrícula en la carpeta" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "Falló al analizar el documento XML" #: lib/maps-osm.c:250 lib/maps-osm.c:403 msgid "Missing required attributes" msgstr "Faltan los atributos necesarios" #: lib/maps-osm.c:451 lib/maps-osm.c:494 msgid "Could not find OSM element" msgstr "No se pudo encontrar el elemento OSM" #: lib/maps-osm.c:508 msgid "Could not find user element" msgstr "No se pudo encontrar el elemento usuario" #: src/application.js:78 msgid "A path to a local tiles directory structure" msgstr "Una ruta a la estructura de carpetas locales de cuadrículas" #: src/application.js:84 msgid "Tile size for local tiles directory" msgstr "Tamaño de cuadrícula para carpeta de cuadrículas locales" #: src/application.js:88 msgid "Show the version of the program" msgstr "Mostrar la versión del programa" #: src/application.js:94 msgid "Search for places" msgstr "Buscar lugares" #: src/application.js:105 src/application.js:106 msgid "[FILE…|URI]" msgstr "[ARCHIVO…|URI]" #: src/application.js:284 #, javascript-format msgid "Invalid maps: URI: %s" msgstr "Mapas no válidos: URI: %s" #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:75 #, javascript-format msgid "Maps at %f, %f.png" msgstr "Mapas en %f, %f.png" #: src/exportViewDialog.js:174 msgid "Unable to export view" msgstr "No se puede exportar la vista" #: src/favoriteListRow.js:42 msgid "Favorite removed" msgstr "Favoritos quitados" #: src/favoriteListRow.js:43 msgid "Undo" msgstr "Deshacer" #: src/geoJSONSource.js:73 msgid "invalid coordinate" msgstr "coordenada no válida" #: src/geoJSONSource.js:126 src/geoJSONSource.js:166 src/geoJSONSource.js:181 msgid "parse error" msgstr "error al analizar" #: src/geoJSONSource.js:160 msgid "unknown geometry" msgstr "geometría desconocida" #: src/graphHopper.js:101 src/transitPlan.js:175 msgid "Route request failed." msgstr "Falló al solicitar la ruta." #: src/graphHopper.js:108 src/transitPlan.js:167 msgid "No route found." msgstr "No se ha encontrado la ruta." #: src/graphHopper.js:195 src/transitplugins/openTripPlanner.js:1163 msgid "Start!" msgstr "Empezar!" #: src/mainWindow.js:59 msgid "All Layer Files" msgstr "Todos los archivos de capas" #: src/mainWindow.js:522 msgid "Failed to connect to location service" msgstr "Falló al conectar al servicio de ubicación" #: src/mainWindow.js:527 msgid "Turn on location services" msgstr "Activar los servicios de ubicación" #: src/mainWindow.js:528 msgid "Location Settings" msgstr "Configuración de la ubicación" #: src/mainWindow.js:645 msgid "translator-credits" msgstr "" "Julián Villodre , 2024\n" "Daniel Mustieles , 2013 - 2021" #: src/mainWindow.js:649 msgid "Copyright © 2011 – 2023 Red Hat, Inc. and The GNOME Maps authors" msgstr "Copyright © 2011 – 2023 Red Hat, Inc. y los autores de Mapas de GNOME" #: src/mainWindow.js:665 #, javascript-format msgid "Map data by %s and contributors" msgstr "Datos de mapas por %s y colaboradores" #: src/mainWindow.js:666 msgid "Map Data Provider" msgstr "Proveedor de datos de mapas" #: src/mainWindow.js:678 msgid "Map Tile Provider" msgstr "Proveedor de cuadrículas de mapas" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:686 #, javascript-format msgid "Map tiles provided by %s" msgstr "Cuadrículas de mapas proporcionadas por %s" #: src/mainWindow.js:716 msgid "Search Provider" msgstr "Proveedor de búsqueda" #: src/mainWindow.js:719 #, javascript-format msgid "Search provided by %s using %s" msgstr "Búsqueda proporcionada por %s usando %s" #: src/mapView.js:645 src/mapView.js:710 msgid "Failed to open layer" msgstr "Falló al abrir la capa" #: src/mapView.js:664 msgid "Do you want to continue?" msgstr "¿Quiere continuar?" #: src/mapView.js:665 #, javascript-format msgid "" "You are about to open files with a total size of %s MB. This could take some " "time to load" msgstr "" "Va a abrir archivos con un total de %s MB. Esto puede tardar bastante tiempo " "en cargar" #: src/mapView.js:672 src/transitplugins/openTripPlanner.js:1239 #: src/transitplugins/openTripPlanner2.js:267 msgid "Continue" msgstr "Continúe" #: src/mapView.js:704 msgid "File type is not supported" msgstr "Tipo de archivo no soportado" #: src/mapView.js:741 msgid "Failed to open GeoURI" msgstr "Falló al abrir el GeoURI" #: src/mapView.js:1205 msgid "Nothing found here!" msgstr "No se ha encontrado nada aquí." #: src/mapView.js:1245 msgid "Zoom in to add location" msgstr "Ampliar para añadir la ubicación" #: src/mapView.js:1266 msgid "Location was added in OpenStreetMap" msgstr "La ubicación se ha añadido a OpenStreetMap" #. switch back to the sign-in view, and show a toast indicating #. that verification failed #: src/osmAccountDialog.js:134 msgid "The verification code didn’t match, please try again." msgstr "El código de verificación no coincide, inténtelo de nuevo." #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:335 msgid "Incorrect user name or password" msgstr "Nombre de usuario o contraseña no válidos" #: src/osmConnection.js:337 msgid "Success" msgstr "Correcto" #: src/osmConnection.js:339 msgid "Bad request" msgstr "Solicitud incorrecta" #: src/osmConnection.js:341 msgid "Object not found" msgstr "Objeto no encontrado" #: src/osmConnection.js:343 msgid "Conflict, someone else has just modified the object" msgstr "Conflicto, alguien acaba de modificar el objeto" #: src/osmConnection.js:345 msgid "Object has been deleted" msgstr "Se ha eliminado el objeto" #: src/osmConnection.js:347 msgid "Way or relation refers to non-existing children" msgstr "La vía o la relación se refiere a hijos no existentes" #: src/osmEditDialog.js:106 msgid "Name" msgstr "Nombre" #: src/osmEditDialog.js:109 msgid "The official name. This is typically what appears on signs." msgstr "El nombre oficial. Esto es lo que normalmente aparece en las firmas." #: src/osmEditDialog.js:112 msgid "Address" msgstr "Dirección" #: src/osmEditDialog.js:120 src/placeView.js:275 msgid "Website" msgstr "Página web" #: src/osmEditDialog.js:124 msgid "This is not a valid URL. Make sure to include http:// or https://." msgstr "Esto no es un URL válido. asegúrese de incluir http:// o https://." #: src/osmEditDialog.js:125 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" "La página web oficial. Pruebe a usar la forma más sencilla de URL, por " "ejemplo http://ejemplo.com en lugar de of http://ejemplo.com/index.html." #: src/osmEditDialog.js:130 msgid "Phone" msgstr "Teléfono" #: src/osmEditDialog.js:134 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" "Número de teléfono. Use el formato internacional, empezando por el signo +. " "Tenga en cuenta las leyes de privacidad locales, especialmente en el caso de " "números privados." #: src/osmEditDialog.js:139 src/placeView.js:308 msgid "Email" msgstr "Correo-e" #: src/osmEditDialog.js:144 msgid "" "This is not a valid email address. Make sure to not include the mailto: " "protocol prefix." msgstr "" "Esto no es una dirección de correo válida. Asegúrese de no incluir el " "prefijo del protocolo mailto:." #: src/osmEditDialog.js:145 msgid "" "Contact email address for inquiries. Add only email addresses that are " "intended to be publicly used." msgstr "" "Dirección de correo de contacto para preguntas. Añada sólo las direcciones " "de correo que quiera usar públicamente." #. Translators: This is the text for the "Wikipedia" link at the end #. of summaries #: src/osmEditDialog.js:149 src/placeView.js:727 msgid "Wikipedia" msgstr "Wikipedia" #: src/osmEditDialog.js:156 src/placeView.js:399 msgid "Opening hours" msgstr "Horario de apertura" #: src/osmEditDialog.js:161 msgid "See the link in the label for help on format." msgstr "Consulte el enlace en la etiqueta para obtener ayuda sobre el formato." #. TODO: this is a bit of a work-around to re-interpret the population, #. * stored as a string into an integer to convert back to a locale- #. * formatted string. Ideally it should be kept as an integer value #. * in the Place class. But this will also need to be handled by the #. * PlaceStore, possible in a backwards-compatible way #. #: src/osmEditDialog.js:164 src/placeView.js:509 msgid "Population" msgstr "Población" #: src/osmEditDialog.js:169 src/placeView.js:538 msgid "Altitude" msgstr "Altitud" #: src/osmEditDialog.js:172 msgid "Elevation (height above sea level) of a point in meters." msgstr "Elevación (altura sobre el nivel del mar) de un punto, en metros." #: src/osmEditDialog.js:175 msgid "Wheelchair access" msgstr "Acceso para sillas de ruedas" #: src/osmEditDialog.js:178 src/osmEditDialog.js:187 src/osmEditDialog.js:198 #: src/osmEditDialog.js:233 msgid "Yes" msgstr "Sí" #: src/osmEditDialog.js:179 src/osmEditDialog.js:188 src/osmEditDialog.js:199 #: src/osmEditDialog.js:234 msgid "No" msgstr "No" #: src/osmEditDialog.js:180 msgid "Limited" msgstr "Limitado" #: src/osmEditDialog.js:181 msgid "Designated" msgstr "Designado" #: src/osmEditDialog.js:184 msgid "Internet access" msgstr "Acceso a Internet" #: src/osmEditDialog.js:189 msgid "Wi-Fi" msgstr "Inalámbrica" #: src/osmEditDialog.js:190 msgid "Wired" msgstr "Cableada" #: src/osmEditDialog.js:191 msgid "Terminal" msgstr "Terminal" #: src/osmEditDialog.js:192 msgid "Service" msgstr "Servicio" #: src/osmEditDialog.js:195 msgid "Takeout" msgstr "Para llevar" #: src/osmEditDialog.js:200 msgid "Only" msgstr "Sólo" #: src/osmEditDialog.js:203 msgid "Religion" msgstr "Religión" #: src/osmEditDialog.js:206 src/translations.js:286 msgid "Animism" msgstr "Animismo" #: src/osmEditDialog.js:207 msgid "Bahá’í" msgstr "Bahaísmo" #: src/osmEditDialog.js:208 src/translations.js:288 msgid "Buddhism" msgstr "Budismo" #: src/osmEditDialog.js:209 src/translations.js:289 msgid "Caodaism" msgstr "Caodaísmo" #: src/osmEditDialog.js:210 src/translations.js:290 msgid "Christianity" msgstr "Cristianismo" #: src/osmEditDialog.js:211 src/translations.js:291 msgid "Confucianism" msgstr "Confucionismo" #: src/osmEditDialog.js:212 src/translations.js:292 msgid "Hinduism" msgstr "Hinduismo" #: src/osmEditDialog.js:213 src/translations.js:293 msgid "Jainism" msgstr "Jainismo" #: src/osmEditDialog.js:214 src/translations.js:294 msgid "Judaism" msgstr "Judaísmo" #: src/osmEditDialog.js:215 src/translations.js:295 msgid "Islam" msgstr "Islam" #: src/osmEditDialog.js:216 src/translations.js:296 msgid "Multiple Religions" msgstr "Varias religiones" #: src/osmEditDialog.js:217 src/translations.js:297 msgid "Paganism" msgstr "Paganismo" #: src/osmEditDialog.js:218 src/translations.js:298 msgid "Pastafarianism" msgstr "Pastafarismo" #: src/osmEditDialog.js:219 src/translations.js:299 msgid "Scientology" msgstr "Cienciología" #: src/osmEditDialog.js:220 src/translations.js:300 msgid "Shinto" msgstr "Sintoísmo" #: src/osmEditDialog.js:221 src/translations.js:301 msgid "Sikhism" msgstr "Sijismo" #: src/osmEditDialog.js:222 src/translations.js:302 msgid "Spiritualism" msgstr "Espiritualismo" #: src/osmEditDialog.js:223 src/translations.js:303 msgid "Taoism" msgstr "Taoismo" #: src/osmEditDialog.js:224 src/translations.js:304 msgid "Unitarian Universalism" msgstr "Unitarismo universalista" #: src/osmEditDialog.js:225 src/translations.js:305 msgid "Voodoo" msgstr "Vudú" #: src/osmEditDialog.js:226 src/translations.js:306 msgid "Yazidism" msgstr "Yazidismo" #: src/osmEditDialog.js:227 src/translations.js:307 msgid "Zoroastrianism" msgstr "Zoroastrismo" #: src/osmEditDialog.js:230 src/poiCategories.js:176 msgid "Toilets" msgstr "Baño" #: src/osmEditDialog.js:237 msgid "Note" msgstr "Nota" #: src/osmEditDialog.js:240 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" "Información usada para notificar a otros mapeadores sobre información no " "obvia sobre un elemento, un intento del autor de crearlo o pistas sobre " "futuras mejoras." #: src/osmEditDialog.js:339 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "Añadir a OpenStreetMap" #: src/osmEditDialog.js:393 msgid "Select Type" msgstr "Seleccionar tipo" #: src/osmEditDialog.js:515 msgid "Done" msgstr "Hecho" #: src/osmEditDialog.js:818 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "" "El formato usado debe incluir el código del idioma y el título del artículo, " "similar a «es:Título del artículo»." #: src/osmEditDialog.js:824 msgid "Use the reload button to load the Wikidata tag for the selected article" msgstr "" "Use el botón de actualizar para volver a cargar la etiqueta Wikidata para el " "artículo seleccionado" #: src/osmEditDialog.js:832 msgid "Couldn't find Wikidata tag for article" msgstr "No se pudo encontrar la etiqueta Wikidata para el artículo" #: src/photonUtils.js:118 msgid "Unnamed place" msgstr "Lugar sin nombre" #: src/placeEntry.js:274 msgid "Failed to parse Geo URI" msgstr "Falló al analizar el URI de Geo" #: src/placeEntry.js:286 msgid "Failed to parse Maps URI" msgstr "Falló al analizar el URI de Mapas" #. 300 ft (300 * 12 * 0.0254 m) #. #. * Translators: This a format string for showing a distance to a place #. * is lower than a "quite short" distance. #. * The "less than" symbol can be substituded with an appropriate one, if #. * needed (e.g. using the correct direction, or alternative symbol). #. * The %s should be kept, and is substituted with a label representing the #. * short distance. The \u2009 (thin space) could also be adjusted if needed #: src/placeListRow.js:46 #, javascript-format msgctxt "short distance format string" msgid "< %s" msgstr "< %s" #: src/placeView.js:263 msgid "Coordinates" msgstr "Coordenadas" #: src/placeView.js:267 msgid "Accuracy" msgstr "Precisión" #. Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) #: src/placeView.js:270 #, javascript-format msgid "Accuracy: %s" msgstr "Precisión: %s" #. since the phone numbers are typically always rendered #. * left-to-right, insert an explicit LRM char to avoid issues #. * with phone numbers in international format starting with a + #. * which is considered a "weak" character to determine Unicode #. * text direction #. #: src/placeView.js:289 msgid "Phone number" msgstr "Número de teléfono" #. If a reference to a named floor (named or symbolic) exists #. * refer to it directly. #. #. Translators: #. * This is a reference to named building floor, using a label #. * or a code, as "displayed in the elevator" #. #: src/placeView.js:323 src/placeView.js:362 msgid "Floor" msgstr "Piso" #: src/placeView.js:325 #, javascript-format msgid "Floor %s" msgstr "Piso %s" #: src/placeView.js:337 msgid "At ground level" msgstr "A nivel del suelo" #. Translators: #. * This is a reference to a number of floors above #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:346 #, javascript-format msgid "%s floor above ground level" msgid_plural "%s floors above ground level" msgstr[0] "%s piso por encima del nivel del suelo" msgstr[1] "%s pisos por encima del nivel del suelo" #. Translators: #. * This is a reference to a number of floors below #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:357 #, javascript-format msgid "%s floor below ground level" msgid_plural "%s floors below ground level" msgstr[0] "%s piso por debajo del nivel del suelo" msgstr[1] "%s pisos por debajo del nivel del suelo" #. Translators: #. * The establishment offers customers to purchase meals #. * (or similar) to be consumed elsewhere #. #: src/placeView.js:375 msgid "Offers takeout" msgstr "Ofrece para llevar" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed on-premise. #. #: src/placeView.js:383 msgid "Does not offer takeout" msgstr "No ofrece para llevar" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed elsewhere. E.g. #. * there is no seating on-premise for eating/drinking #. #: src/placeView.js:392 msgid "Only offers takeout" msgstr "Sólo ofrece para llevar" #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/placeView.js:409 msgid "Public internet access" msgstr "Acceso público a Internet" #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/placeView.js:418 msgid "No internet access" msgstr "Sin acceso a Internet" #. Translators: #. * This means a WLAN Hotspot, also known as wireless, wifi or Wi-Fi. #. #: src/placeView.js:426 msgid "Public Wi-Fi" msgstr "Red Wi-Fi pública" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/placeView.js:434 msgid "Wired internet access" msgstr "Acceso a Internet por cable" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/placeView.js:442 msgid "Computers available for use" msgstr "Ordenadores disponibles para su uso" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/placeView.js:450 msgid "Internet assistance available" msgstr "Asistencia de Internet disponible" #: src/placeView.js:456 msgid "No toilets available" msgstr "Sin baños disponibles" #: src/placeView.js:459 msgid "Toilets available" msgstr "Baños disponibles" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #: src/placeView.js:468 msgid "Wheelchair accessible" msgstr "Accesible para sillas de ruedas" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/placeView.js:478 msgid "Limited wheelchair accessibility" msgstr "Accesibilidad limitada para sillas de ruedas" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #: src/placeView.js:487 msgid "Not wheelchair accessible" msgstr "Sin acceso para sillas de ruedas" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/placeView.js:497 msgid "Designated for wheelchair users" msgstr "Diseñador para usuarios de sillas de ruedas" #. * #. * Translators: this is a label indicating an altitude below #. * sea level, where the %s placeholder is the altitude relative #. * to mean sea level in the "negative direction" #. #: src/placeView.js:528 #, javascript-format msgid "%s below sea level" msgstr "%s por debajo del nivel del mar" #. * #. * Translators: this indicates a place is located at (or very #. * close to) mean sea level #. #: src/placeView.js:535 msgid "At sea level" msgstr "A nivel del mar" #: src/placeView.js:544 msgid "Religion:" msgstr "Religión:" #: src/place.js:570 msgid "Place not found in OpenStreetMap" msgstr "Lugar no encontrado en OpenStreetMap" #: src/place.js:577 msgid "Coordinates in URL are not valid" msgstr "Las coordenadas del URL no son válidas" #: src/place.js:586 msgid "URL is not supported" msgstr "URL no soportado" #: src/poiCategories.js:132 msgid "Amenities" msgstr "Facilidades" #: src/poiCategories.js:135 msgid "ATMs" msgstr "ATM" #: src/poiCategories.js:141 msgid "Post Boxes" msgstr "Buzones" #: src/poiCategories.js:147 msgid "Post Offices" msgstr "Oficinas postales" #: src/poiCategories.js:153 msgid "Police" msgstr "Policía" #: src/poiCategories.js:159 msgid "Libraries" msgstr "Bibliotecas" #: src/poiCategories.js:165 msgid "Pharmacies" msgstr "Farmacias" #: src/poiCategories.js:171 msgid "Recycling" msgstr "Reciclado" #: src/poiCategories.js:182 msgid "Wheelchair-accessible Toilets" msgstr "Baños accesibles para sillas de ruedas" #: src/poiCategories.js:188 msgid "Baggage Lockers" msgstr "Taquillas para maletas" #: src/poiCategories.js:196 msgid "Eating & Drinking" msgstr "Comer y beber" #: src/poiCategories.js:200 msgid "Restaurants" msgstr "Restaurantes" #: src/poiCategories.js:205 msgid "Fast Food" msgstr "Comida rápida" #: src/poiCategories.js:210 msgid "Food Courts" msgstr "Zonas de comida" #: src/poiCategories.js:215 msgid "Pubs" msgstr "Pubs" #: src/poiCategories.js:221 msgid "Bars" msgstr "Bares" #: src/poiCategories.js:226 msgid "Cafes" msgstr "Cafés" #: src/poiCategories.js:231 msgid "Ice Cream" msgstr "Helados" #: src/poiCategories.js:236 msgid "Food, Snacks, and Beverage Machines" msgstr "Máquinas de comida, snacks y bebidas" #: src/poiCategories.js:244 msgid "Shopping" msgstr "Tiendas" #: src/poiCategories.js:248 msgid "Supermarkets" msgstr "Supermercados" #: src/poiCategories.js:254 msgid "Convenience Stores" msgstr "Tiendas" #: src/poiCategories.js:259 msgid "Shopping Malls" msgstr "Centros comerciales" #: src/poiCategories.js:265 msgid "Clothes" msgstr "Ropa" #: src/poiCategories.js:271 msgid "Shoes" msgstr "Zapatos" #: src/poiCategories.js:276 msgid "Electronics" msgstr "Electrónica" #: src/poiCategories.js:282 msgid "Alcohol" msgstr "Alcohol" #: src/poiCategories.js:288 msgid "Bakeries" msgstr "Pastelerías" #: src/poiCategories.js:294 msgid "Flowers" msgstr "Flores" #: src/poiCategories.js:301 msgid "Transportation" msgstr "Transportes" #: src/poiCategories.js:305 msgid "Bus & Tram Stops" msgstr "Paradas de bus y tranvía" #: src/poiCategories.js:313 msgid "Train & Subway Stations" msgstr "Estaciones de tren y metro" #: src/poiCategories.js:321 msgid "Tickets" msgstr "Entradas" #: src/poiCategories.js:329 msgid "Parking" msgstr "Parking" #: src/poiCategories.js:334 msgid "Bicycle Parking" msgstr "Parking de bicicletas" #: src/poiCategories.js:339 msgid "Bicycle Rental" msgstr "Alquiler de bicicletas" #: src/poiCategories.js:344 msgid "Car Rental" msgstr "Alquiler de coches" #: src/poiCategories.js:349 msgid "Fuel" msgstr "Gasolina" #: src/poiCategories.js:354 msgid "EV Charging" msgstr "Cargador EV" #: src/poiCategories.js:362 msgid "Healthcare" msgstr "Primeros auxilios" #: src/poiCategories.js:366 msgid "Clinics" msgstr "Clínicas" #: src/poiCategories.js:372 msgid "Hospitals" msgstr "Hospitales" #: src/poiCategories.js:378 msgid "Dentists" msgstr "Dentistas" #: src/poiCategories.js:386 msgid "Accommodation" msgstr "Hospedaje" #: src/poiCategories.js:390 msgid "Hotels" msgstr "Hoteles" #: src/poiCategories.js:395 msgid "Hostels" msgstr "Hostales" #: src/poiCategories.js:400 msgid "Bed & Breakfast" msgstr "Cama y desayuno" #: src/poiCategories.js:405 msgid "Campings" msgstr "Campings" #: src/poiCategories.js:412 msgid "Recreation" msgstr "Diversión" #: src/poiCategories.js:416 msgid "Parks" msgstr "Parques" #: src/poiCategories.js:421 msgid "Playgrounds" msgstr "Zona de juegos" #: src/poiCategories.js:425 msgid "Beaches" msgstr "Playas" #: src/poiCategories.js:430 msgid "Nature Reserves" msgstr "Reservas naturales" #: src/poiCategories.js:436 msgid "Theme Parks" msgstr "Parques temáticos" #: src/poiCategories.js:441 msgid "Theaters" msgstr "Teatros" #: src/poiCategories.js:447 msgid "Movie Theaters" msgstr "Teatros" #: src/poiCategories.js:453 msgid "Night Clubs" msgstr "Clubs nocturnos" #: src/poiCategories.js:460 msgid "Tourism" msgstr "Turismo" #: src/poiCategories.js:464 msgid "Museums" msgstr "Museos" #: src/poiCategories.js:470 msgid "Attractions" msgstr "Atracciones" #: src/poiCategories.js:475 msgid "Artworks" msgstr "Cultura" #: src/poiCategories.js:480 msgid "Tourist Information" msgstr "Información turística" #: src/poiCategories.js:487 msgid "Sports" msgstr "Deportes" #: src/poiCategories.js:491 msgid "Gyms" msgstr "Gimnasios" #: src/poiCategories.js:497 msgid "Outdoor Gyms" msgstr "Gimnasios al aire libre" #: src/poiCategories.js:503 msgid "Golf Courses" msgstr "Campos de golf" #: src/printLayout.js:350 #, javascript-format msgid "From %s to %s" msgstr "De %s a %s" #: src/printOperation.js:49 msgid "Loading map tiles for printing" msgstr "Cargando mapa para imprimir" #: src/printOperation.js:50 msgid "You can abort printing if this takes too long" msgstr "Puede cancelar la impresión si esto tarda mucho" #: src/printOperation.js:52 msgid "Abort printing" msgstr "Cancelar la impresión" #. Translators: this is add via location tooltip #: src/routeEntry.js:60 msgid "Add via location" msgstr "Añadir ubicación de la vía" #. Translators: this is remove via location tooltip #: src/routeEntry.js:70 msgid "Remove via location" msgstr "Quitar ubicación de la vía" #. Translators: this is reverse route tooltip #: src/routeEntry.js:76 msgid "Reverse route" msgstr "Ruta inversa" #: src/searchBar.js:45 msgid "Search" msgstr "Buscar" #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:84 #, javascript-format msgid "Add %s to %s" msgstr "Añadir %s a %s" #: src/sendToDialog.js:181 msgid "Failed to open URI" msgstr "Falló al abrir el URI" #: src/sendToDialog.js:246 #, javascript-format msgid "Open with %s" msgstr "Abrir con %s" #: src/shapeLayer.js:109 msgid "failed to load file" msgstr "falló al cargar el archivo" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:328 #, javascript-format msgid "Estimated time: %s" msgstr "Tiempo estimado: %s" #: src/sidebar.js:398 #, javascript-format msgid "Itineraries provided by %s" msgstr "Itinerarios proporcionados por %s" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:39 #, javascript-format msgid "Start at %s" msgstr "Empezar en %s" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:45 src/transitplugins/openTripPlanner2.js:236 msgid "Start" msgstr "Inicio" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:63 #, javascript-format msgid "Walk %s" msgstr "Caminar %s" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:77 #, javascript-format msgid "Arrive at %s" msgstr "Llegar a %s" #: src/transit.js:79 src/transitplugins/openTripPlanner.js:1176 #: src/transitplugins/openTripPlanner2.js:255 msgid "Arrive" msgstr "Llegar" #: src/transitLegRow.js:69 msgid "Show walking instructions" msgstr "Mostrar instrucciones del camino" #: src/transitLegRow.js:70 msgid "Hide walking instructions" msgstr "Ocultar instrucciones del camino" #: src/transitMoreRow.js:37 msgid "Load earlier alternatives" msgstr "Cargar alternativas anteriores" #: src/transitMoreRow.js:39 msgid "Load later alternatives" msgstr "Cargar alternativas posteriores" #: src/transitMoreRow.js:52 msgid "No earlier alternatives found." msgstr "No hay alternativas anteriores." #: src/transitMoreRow.js:54 msgid "No later alternatives found." msgstr "No hay alternativas posteriores." #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:138 msgctxt "month-day-date" msgid "%b %e" msgstr "%b %e" #: src/transitPlan.js:171 msgid "No timetable data found for this route." msgstr "No hay datos en la tabla de tiempos para esta ruta." #: src/transitPlan.js:179 msgid "No provider found for this route." msgstr "No se ha encontrado un proveedor para esta ruta." #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:300 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:331 #, javascript-format msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "%s minuto" msgstr[1] "%s minutos" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:343 #, javascript-format msgid "%s hour" msgid_plural "%s hours" msgstr[0] "%s hora" msgstr[1] "%s horas" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:351 #, javascript-format msgid "%s:%s hour" msgid_plural "%s:%s hours" msgstr[0] "%s:%s hora" msgstr[1] "%s:%s horas" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:744 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: src/translations.js:55 msgid "Around the clock" msgstr "Todo el día" #: src/translations.js:57 msgid "From sunrise to sunset" msgstr "Desde el amanecer hasta la puesta del sol" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:123 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s,%s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:137 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s,%s,%s" #: src/translations.js:156 msgid "Every day" msgstr "Cada día" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:168 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:179 msgid "Public holidays" msgstr "Festivos" #: src/translations.js:181 msgid "School holidays" msgstr "Vacaciones escolares" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:221 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: src/translations.js:235 msgid "not open" msgstr "cerrado" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:250 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:287 msgid "Bahá'í" msgstr "Bahá'í" #. Translators: Accuracy of user location information #: src/utils.js:248 msgid "Unknown" msgstr "Desconocida" #. Translators: Accuracy of user location information #: src/utils.js:251 msgid "Exact" msgstr "Exacta" #. Translators: this is a duration with only hours, using #. * an abbreviation for hours, corresponding to 'h' in English #. #: src/utils.js:307 #, javascript-format msgid "%s h" msgstr "%s h" #. Translators: this is a duration with hours and minutes parts #. * using abbreviations for hours and minutes, corresponding to 'h' #. * and 'min' in English. The minutes has appropriate plural variations #. #: src/utils.js:313 #, javascript-format msgid "%s h %s min" msgid_plural "%s h %s min" msgstr[0] "%s h %s min" msgstr[1] "%s h %s min" #. Translators: this is a duration with minutes part #. * using abbreviation for minutes, corresponding to 'min' in English #. * with appropriate plural variations #. #: src/utils.js:320 #, javascript-format msgid "%s min" msgid_plural "%s min" msgstr[0] "%s min" msgstr[1] "%s min" #. Translators: this is a duration of less than one minute #. * with seconds using an abbreviation for seconds, corresponding to #. * 's' in English with appropriate plural forms #. #: src/utils.js:326 #, javascript-format msgid "%s s" msgid_plural "%s s" msgstr[0] "%s s" msgstr[1] "%s s" #. Translators: This is a distance measured in kilometers #: src/utils.js:337 #, javascript-format msgid "%s km" msgstr "%s km" #. Translators: This is a distance measured in meters #: src/utils.js:340 #, javascript-format msgid "%s m" msgstr "%s m" #. Translators: This is a distance measured in miles #: src/utils.js:348 #, javascript-format msgid "%s mi" msgstr "%s mi" #. Translators: This is a distance measured in feet #: src/utils.js:351 #, javascript-format msgid "%s ft" msgstr "%s ft" #: src/transitplugins/goMetro.js:61 msgid "This plugin doesn't support latest arrival" msgstr "Este complemento no soporta la última llegada" #: src/transitplugins/openTripPlanner.js:1237 #: src/transitplugins/openTripPlanner2.js:266 #, javascript-format msgid "Continue on %s" msgstr "Continúe por %s" #: src/transitplugins/openTripPlanner.js:1242 #: src/transitplugins/openTripPlanner2.js:270 #, javascript-format msgid "Turn left on %s" msgstr "Gire a la izquierda en %s" #: src/transitplugins/openTripPlanner.js:1244 #: src/transitplugins/openTripPlanner2.js:271 msgid "Turn left" msgstr "Gire a la izquierda" #: src/transitplugins/openTripPlanner.js:1247 #: src/transitplugins/openTripPlanner2.js:275 #, javascript-format msgid "Turn slightly left on %s" msgstr "Gire levemente a la izquierda en %s" #: src/transitplugins/openTripPlanner.js:1249 #: src/transitplugins/openTripPlanner2.js:276 msgid "Turn slightly left" msgstr "Gire levemente a la izquierda" #: src/transitplugins/openTripPlanner.js:1252 #: src/transitplugins/openTripPlanner2.js:280 #, javascript-format msgid "Turn sharp left on %s" msgstr "Gire bruscamente a la izquierda en %s" #: src/transitplugins/openTripPlanner.js:1254 #: src/transitplugins/openTripPlanner2.js:281 msgid "Turn sharp left" msgstr "Gire bruscamente a la izquierda" #: src/transitplugins/openTripPlanner.js:1257 #: src/transitplugins/openTripPlanner2.js:284 #, javascript-format msgid "Turn right on %s" msgstr "Gire a la derecha en %s" #: src/transitplugins/openTripPlanner.js:1259 #: src/transitplugins/openTripPlanner2.js:285 msgid "Turn right" msgstr "Gire a la derecha" #: src/transitplugins/openTripPlanner.js:1262 #: src/transitplugins/openTripPlanner2.js:289 #, javascript-format msgid "Turn slightly right on %s" msgstr "Gire levemente a la derecha en %s" #: src/transitplugins/openTripPlanner.js:1264 #: src/transitplugins/openTripPlanner2.js:290 msgid "Turn slightly right" msgstr "Gire levemente a la derecha" #: src/transitplugins/openTripPlanner.js:1267 #: src/transitplugins/openTripPlanner2.js:294 #, javascript-format msgid "Turn sharp right on %s" msgstr "Gire bruscamente a la derecha en %s" #: src/transitplugins/openTripPlanner.js:1269 #: src/transitplugins/openTripPlanner2.js:295 msgid "Turn sharp right" msgstr "Gire bruscamente a la derecha" #: src/transitplugins/openTripPlanner.js:1275 #: src/transitplugins/openTripPlanner2.js:302 #, javascript-format msgid "At the roundabout, take exit %s" msgstr "En la rotonda, coja la salida %s" #: src/transitplugins/openTripPlanner.js:1277 #: src/transitplugins/openTripPlanner2.js:305 #, javascript-format msgid "At the roundabout, take exit to %s" msgstr "En la rotonda, coja la salida hacia %s" #: src/transitplugins/openTripPlanner.js:1279 #: src/transitplugins/openTripPlanner2.js:307 msgid "Take the roundabout" msgstr "Entre en la rotonda" #: src/transitplugins/openTripPlanner.js:1283 #: src/transitplugins/openTripPlanner2.js:315 #, javascript-format msgid "Take the elevator and get off at %s" msgstr "Coja el ascensor y salga en %s" #: src/transitplugins/openTripPlanner.js:1285 #: src/transitplugins/openTripPlanner2.js:316 msgid "Take the elevator" msgstr "Coja el ascensor" #: src/transitplugins/openTripPlanner.js:1289 #: src/transitplugins/openTripPlanner2.js:320 #, javascript-format msgid "Make a left u-turn onto %s" msgstr "Dé la vuelta hacia la izquierda en %s" #: src/transitplugins/openTripPlanner.js:1291 #: src/transitplugins/openTripPlanner2.js:321 msgid "Make a left u-turn" msgstr "Dé la vuelta hacia la izquierda" #: src/transitplugins/openTripPlanner.js:1294 #: src/transitplugins/openTripPlanner2.js:325 #, javascript-format msgid "Make a right u-turn onto %s" msgstr "Dé la vuelta hacia la derecha en %s" #: src/transitplugins/openTripPlanner.js:1296 #: src/transitplugins/openTripPlanner2.js:326 msgid "Make a right u-turn" msgstr "Dé la vuelta hacia la derecha" #~ msgid "E-mail" #~ msgstr "Correo-e" #~ msgid "Sign in to edit maps" #~ msgstr "" #~ "Inicie sesión para editar mapas" #~ msgid "" #~ "Sign in to authorize access in a web browser.\n" #~ "Then fill in the obtained verification code here in the next step." #~ msgstr "" #~ "Inicie sesión para autorizar el acceso en un navegador web.\n" #~ "Introduzca el código de verificación aquí en el siguiente paso." #~ msgid "Signed In" #~ msgstr "Sesión iniciada" #~ msgid "Sign up" #~ msgstr "Registrarse" #~ msgid "Filesystem is read only" #~ msgstr "El sistema de archivos es de solo lectura" #~ msgid "You do not have permission to save there" #~ msgstr "No tiene permisos para guardar ahí" #~ msgid "The directory does not exist" #~ msgstr "La carpeta no existe" #~ msgid "No filename specified" #~ msgstr "No se ha especificado un nombre de archivo" #~ msgid "" #~ "Location was added to the map, note that it may take a while before it " #~ "shows on the map and in search results." #~ msgstr "" #~ "Se ha añadido la ubicación al mapa, tenga en cuenta que puede tardar un " #~ "rato antes de mostrarse en el mapa y en los resultados de búsqueda." #~ msgid "Takeaway" #~ msgstr "Para llevar" #~ msgid "Go to current location" #~ msgstr "Ir a la ubicación actual" #~ msgid "Choose map type" #~ msgstr "Elegir el tipo de mapa" #~ msgid "Zoom in" #~ msgstr "Ampliar" #~ msgid "Drag to change order of the route" #~ msgstr "Arrastre para cambiar el orden de la ruta" #~ msgid "A map application for GNOME" #~ msgstr "Una aplicación de mapas para GNOME" #~ msgid "Failed to authorize access" #~ msgstr "Falló al autorizar el acceso" #~ msgid "Try again" #~ msgstr "Inténtelo de nuevo" #~ msgid "Include route and markers" #~ msgstr "Incluir ruta y marcadores" #~ msgid "Use hybrid aerial tiles" #~ msgstr "Usar cuadrículas aéreas híbridas" #~ msgid "Whether aerial tiles should use hybrid style (with labels)." #~ msgstr "" #~ "Indica si las cuadrículas aéreas se deben usar con un estilo híbrido (con " #~ "etiquetas)." #~ msgid "Show Labels" #~ msgstr "Mostrar etiquetas" #~ msgid "Foursquare check-in privacy setting" #~ msgstr "Configuración de privacidad del registro de Foursquare" #~ msgid "" #~ "Latest used Foursquare check-in privacy setting. Possible values are: " #~ "public, followers or private." #~ msgstr "" #~ "Última configuración de privacidad de registro de Foursquare usada. Los " #~ "valores posibles son: EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS or SELF." #~ msgid "Foursquare check-in Facebook broadcasting" #~ msgstr "Difusión en Facebook del registro en Foursquare" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a post in the " #~ "Facebook account associated with the Foursquare account." #~ msgstr "" #~ "Indica si Foursquare debe difundir el registro como un mensaje nuevo en " #~ "la cuenta de Facebook asociada a la cuenta de Foursquare." #~ msgid "Foursquare check-in Twitter broadcasting" #~ msgstr "Difusión en Twitter del registro en Foursquare" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a tweet in the " #~ "Twitter account associated with the Foursquare account." #~ msgstr "" #~ "Indica si Foursquare debe difundir el registro como un mensaje nuevo en " #~ "la cuenta de Twitter asociada a la cuenta de Foursquare." #~ msgid "Visibility" #~ msgstr "Visibilidad" #~ msgid "Post on Facebook" #~ msgstr "Publicar el Facebook" #~ msgid "Post on Twitter" #~ msgstr "Publicar el Twitter" #~ msgid "C_heck in" #~ msgstr "_Registrar" #~ msgid "Public" #~ msgstr "Público" #~ msgid "Private" #~ msgstr "Privado" #~ msgid "Maps is offline!" #~ msgstr "Mapas está desconectado" #~ msgid "" #~ "Maps need an active internet connection to function properly, but one " #~ "can’t be found." #~ msgstr "" #~ "Mapas necesita una conexión a Internet activa para funcionar " #~ "correctamente, pero no se ha encontrado ninguna." #~ msgid "Check your connection and proxy settings." #~ msgstr "Compruebe la configuración de su conexión y de su proxy." #~ msgid "Password" #~ msgstr "Contraseña" #~ msgid "" #~ "Sorry, that didn’t work. Please try again, or visit\n" #~ "OpenStreetMap to reset your password." #~ msgstr "" #~ "Eso no ha funcionado. Inténtelo de nuevo o visite\n" #~ "OpenStreetMap para restablecer su contraseña." #~ msgid "Check In…" #~ msgstr "Registrar…" #~ msgid "Ignore network availability" #~ msgstr "Ignorar la disponibilidad de la red" #~ msgid "Select an account" #~ msgstr "Seleccionar una cuenta" #~ msgid "Loading" #~ msgstr "Cargando" #~ msgid "Select a place" #~ msgstr "Seleccionar un lugar" #~ msgid "" #~ "Maps cannot find the place to check in to with Foursquare. Please select " #~ "one from this list." #~ msgstr "" #~ "Mapas no puede encontrar el lugar con el que registrarse en Foursquare. " #~ "Seleccione uno de la lista." #, javascript-format #~ msgid "Check in to %s" #~ msgstr "Registrarse en %s" #, javascript-format #~ msgid "Write an optional message to check in to %s." #~ msgstr "Escribir un mensaje opcional para registrarse en %s." #, javascript-format #~ msgid "Cannot find “%s” in the social service" #~ msgstr "No se puede encontrar «%s» en la red social" #~ msgid "Cannot find a suitable place to check-in in this location" #~ msgstr "" #~ "No se puede encontrar un lugar adecuado para registrarse en esta ubicación" #~ msgid "" #~ "Credentials have expired, please open Online Accounts to sign in and " #~ "enable this account" #~ msgstr "" #~ "Las credenciales han caducado. Abra las Cuentas en línea para iniciar " #~ "sesión y activar esta cuenta." #~ msgid "GNOME Maps" #~ msgstr "Mapas de GNOME" #~ msgid "Night mode" #~ msgstr "Modo nocturno" #~ msgid "Whether the application is in night mode." #~ msgstr "indica si la aplicación está en modo nocturno." #~ msgid "Night Mode" #~ msgstr "Modo nocturno" #~ msgid "Facebook check-in privacy setting" #~ msgstr "Configuración de privacidad del registro de Facebook" #~ msgid "" #~ "Latest used Facebook check-in privacy setting. Possible values are: " #~ "EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS or SELF." #~ msgstr "" #~ "Última configuración de privacidad de registro de Facebook usada. Los " #~ "valores posibles son: EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS or SELF." #~ msgid "" #~ "You can even search for specific types of locations, such as “Pubs near " #~ "Main Street, Boston” or “Hotels near Alexanderplatz, Berlin”." #~ msgstr "" #~ "También puede buscar por tipos de ubicaciones específicos como «Bares " #~ "cerca de la Gran Vía, Madrid» u «Hoteles cerca de la Plaza Mayor, Madrid»." #~ msgid "Everyone" #~ msgstr "Todos" #~ msgid "Friends of friends" #~ msgstr "Amigos de amigos" #~ msgid "Just friends" #~ msgstr "Solo amigos" #~ msgid "Just me" #~ msgstr "Solo yo" #~ msgid "" #~ "Maps cannot find the place to check in to with Facebook. Please select " #~ "one from this list." #~ msgstr "" #~ "Mapas no puede encontrar el lugar con el que registrarse en Facebook. " #~ "Seleccione uno de la lista." #~ msgid "OpenStreetMap URL is not valid" #~ msgstr "El URL de OpenStreetMap no es válido" #~ msgctxt "time range list" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgctxt "time range list" #~ msgid "%s %s %s" #~ msgstr "%s %s %s" #~ msgctxt "time range component" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgid "Find a Route" #~ msgstr "Buscar una ruta" #~ msgid "Check in here" #~ msgstr "Registrarse aquí" #~ msgid "Population:" #~ msgstr "Población:" #~ msgid "Altitude:" #~ msgstr "Altitud:" #~ msgid "Opening hours:" #~ msgstr "Horario de apertura:" #~ msgid "Internet access:" #~ msgstr "Acceso a Internet:" #~ msgid "Toilets:" #~ msgstr "Baño:" #~ msgid "Wheelchair access:" #~ msgstr "Acceso para sillas de ruedas:" #~ msgid "Phone:" #~ msgstr "Teléfono:" #~ msgid "yes" #~ msgstr "sí" #~ msgid "limited" #~ msgstr "limitado" #~ msgid "no" #~ msgstr "no" #~ msgid "designated" #~ msgstr "designado" #~ msgid "wired" #~ msgstr "cableada" #~ msgid "terminal" #~ msgstr "terminal" #~ msgid "service" #~ msgstr "servicio" #~ msgid "Primary menu" #~ msgstr "Menú primario" #~ msgid "Don’t have an account?" #~ msgstr "¿No tiene una cuenta?" #~ msgid "%f h" #~ msgstr "%f h" #~ msgid "%f min" #~ msgstr "%f min" #~ msgid "%f s" #~ msgstr "%f s" #~ msgid "Add destination" #~ msgstr "Añadir destino" #~ msgid "Route search by OpenTripPlanner" #~ msgstr "Ruta buscada por OpenTripPlanner" #~ msgid "Open with another application" #~ msgstr "Abrir con otra aplicación" #~ msgid "Press enter to search" #~ msgstr "Pulse Intro para buscar" #~ msgid "org.gnome.Maps" #~ msgstr "org.gnome.Maps" #~ msgid "Quit" #~ msgstr "Salir" #~ msgid "OK" #~ msgstr "Aceptar" #~| msgctxt "shortcut window" #~| msgid "Open shape layer" #~ msgid "Open Shape Layer…" #~ msgstr "Abrir capa de formas…" #~ msgid "Load Map Layer" #~ msgstr "Cargar capa de mapa" #~ msgid "%f km" #~ msgstr "%f km" #~ msgid "%f m" #~ msgstr "%f m" #~ msgid "%f mi" #~ msgstr "%f mi" #~ msgid "%f ft" #~ msgstr "%f pies" #~ msgid "Position not found" #~ msgstr "Posición no encontrada" #~ msgid "Country code: %s" #~ msgstr "Código del país: %s" #~ msgid "Population: %s" #~ msgstr "Población: %s" #~ msgid "Wheelchair access: %s" #~ msgstr "Acceso para sillas de ruedas: %s" #~ msgid "Failed to parse GeoJSON file" #~ msgstr "Falló al analizar el archivo GeoJSON" #~ msgid "_Share" #~ msgstr "_Compartir" #~ msgid "Last known location and accuracy" #~ msgstr "Última ubicación conocida y precisión" #~ msgid "" #~ "Last known location (latitude and longitude in degrees) and accuracy (in " #~ "meters)." #~ msgstr "" #~ "Última ubicación conocida (latitud y longitud en grados) y precisión (en " #~ "metros)." #~ msgid "Description of last known location of user." #~ msgstr "Descripción de la última ubicación conocida del usuario." #~ msgid "User set last known location" #~ msgstr "Última ubicación conocida establecida por el usuario" #~ msgid "Whether the last known location was set manually by the user." #~ msgstr "" #~ "Indica si la última ubicación conocida la estableció el usuario " #~ "manualmente." #~ msgid "I’m here!" #~ msgstr "Yo estoy aquí" #~ msgid "%f km²" #~ msgstr "%f km²" #~ msgid "To" #~ msgstr "A" #~ msgid "From" #~ msgstr "Desde" #~ msgid " km2" #~ msgstr " km2" #~ msgid "Satellite" #~ msgstr "Satélite" #~ msgid "Track user location." #~ msgstr "Rastrear la ubicación del usuario." #~ msgid "Map Type" #~ msgstr "Tipo de mapa" #~ msgid "Transit" #~ msgstr "Tránsito" 070701000001BD000081A4000000000000000000000001664134090000103D000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/et.po# Estonian translation for gnome-maps. # Copyright (C) 2013 gnome-maps's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-maps package. # Mattias Põldaru , 2013, # Priit Laes , 2013. # msgid "" msgstr "" "Project-Id-Version: gnome-maps master\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "maps&keywords=I18N+L10N&component=general\n" "POT-Creation-Date: 2013-09-11 10:56+0000\n" "PO-Revision-Date: 2013-09-20 10:20+0300\n" "Last-Translator: Priit Laes \n" "Language-Team: Estonian \n" "Language: et\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: Poedit 1.5.4\n" msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you're looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "Kaardirakendus võimaldab kiiret ligipääsu kaartidele üle terve maailma. " "See võimaldab kiiresti leida otsitava koha kasutades linna- või tänavanime, või" "määrata kohta sõbraga kokkusaamiseks." msgid "" "
  • Search for country, region, city or street.
  • Search for specific " "types of locations, such as \"Pubs near Main Street, Boston\" or \"WiFi " "Access near Alexanderplatz, Berlin\"
  • " msgstr "" "
  • Otsi riiki, regiooni, linna või tänavat.
  • Otsi erinevat liiki " "asukohti nagu \"Pubs near Main Street, Boston\" või \"WiFi Access near " "Alexanderplatz, Berlin\"
  • " msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "Kaardid kasutavad ühistööna valminud OpenStreetMap andmebaasi, millele on " "kaasa aidanud tuhanded inimesed üle maailma." #. Translators: This is the program name. msgid "Maps" msgstr "Kaardid" msgid "A simple maps application" msgstr "Lihtne kaardirakendus" msgid "Maps;" msgstr "Kaardid;Kaart;" msgid "Window size" msgstr "Akna suurus" msgid "Window size (width and height)." msgstr "Akna suurus (laius ja kõrgus)." msgid "Window position" msgstr "Akna asukoht" msgid "Window position (x and y)." msgstr "Akna asukoht (x ja y)." msgid "Window maximized" msgstr "Aken on maksimeeritud" msgid "Window maximized state" msgstr "Akna maksimeerituse olek" msgid "Last known location and accuracy" msgstr "Viimane teadaolev asukoht ja täpsus" msgid "" "Last known location (latitude and longitude in degrees) and accuracy (in " "meters)." msgstr "" "Viimane teadaolev asukoht (laius- ja pikkuskraadid) ning täpsus (meetrites)." msgid "Description of last known location" msgstr "Viimase teadaoleva asukoha kirjeldus" msgid "Description of last known location of user." msgstr "Kasutaja viimase teadaoleva asukoha kirjeldus." msgid "Maximum number of search results" msgstr "Otsingutulemuste maksimaalne arv" msgid "Maximum number of search results from geocode search." msgstr "Geokoodi otsingu tulemuste maksimaalne arv." msgid "User set last known location" msgstr "Kasutaja määratud viimane teadaolev asukoht" msgid "Last known location was set manually by user." msgstr "Kasutaja poolt käsitsi määratud viimane teadaolev asukoht." msgid "About" msgstr "Programmist" msgid "Quit" msgstr "Lõpeta" msgid "What's here?" msgstr "Mis siin on?" msgid "I'm here!" msgstr "Mina olen siin!" msgid "translator-credits" msgstr "Mattias Põldaru, 2013,\nPriit Laes, 2013" msgid "A map application for GNOME" msgstr "GNOME kaardirakendus" msgid "Street" msgstr "Tänav" msgid "Satellite" msgstr "Satelliit" #. Translators: Accuracy of user location information msgid "Unknown" msgstr "Teadmata" #. Translators: Accuracy of user location information msgid "Exact" msgstr "Täpne" msgid " km²" msgstr " km²" #. Translators: Showing name of place where user currently is and #. accuracy of this information (which is translated #. separately) #. #, c-format msgid "" "%s\n" "Position Accuracy: %s" msgstr "" "%s\n" "Asukoha täpsus: %s" 070701000001BE000081A400000000000000000000000166413409000106DC000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/eu.po# Basque translation for gnome-maps. # Copyright (C) 2013 gnome-maps's COPYRIGHT HOLDER # Copyright (C) 2013-2014 Free Software Foundation, Inc. # This file is distributed under the same license as the gnome-maps package. # # Iñaki Larrañaga Murgoitio , 2013, 2014, 2015, 2016, 2017. # Asier Sarasua Garmendia , 2019, 2020, 2021, 2022, 2023, 2024. # msgid "" msgstr "Project-Id-Version: gnome-maps master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2024-02-14 22:30+0000\n" "PO-Revision-Date: 2024-02-18 10:00+0100\n" "Last-Translator: Asier Sarasua Garmendia \n" "Language-Team: Basque \n" "Language: eu\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" #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.appdata.xml.in.in:6 data/org.gnome.Maps.desktop.in.in:4 #: data/ui/main-window.ui:27 src/application.js:64 src/mainWindow.js:147 #: src/mainWindow.js:647 msgid "Maps" msgstr "Mapak" #: data/org.gnome.Maps.appdata.xml.in.in:7 msgid "Find places around the world" msgstr "Bilatu lekuak munduan zehar" #: data/org.gnome.Maps.appdata.xml.in.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "Mapek mundu osoan zeharreko mapetarako atzipen azkarra eskaintzen dizu. Bilatzen ari zaren lekua modu azkar batean aurkitzen lagunduko dizu kalearen edo herriaren izena bilatuz, edo bilatu leku bat lagunekin aurkitzeko." #: data/org.gnome.Maps.appdata.xml.in.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "Mapak auzolanean eraikitako OpenStreetMap datu-basea darabil, mundu osoan zehar ehun eta milaka pertsonen artean sortutakoa" #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Maps.appdata.xml.in.in:451 src/mainWindow.js:644 msgid "The GNOME Project" msgstr "GNOME proiektua" #: data/org.gnome.Maps.desktop.in.in:5 msgid "A simple maps application" msgstr "Mapen aplikazio xume bat" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in.in:14 msgid "Maps;" msgstr "Mapak;" #: data/org.gnome.Maps.desktop.in.in:17 msgid "Allows your location to be shown on the map." msgstr "Zure kokalekua maparen gainean erakustea baimentzen du." #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "ikusitako azken kokalekua" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "ikusitako azken kokalekuaren koordenatuak." #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "zooma" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "Zoomaren maila" #: data/org.gnome.Maps.gschema.xml:21 msgid "rotation" msgstr "biraketa" #: data/org.gnome.Maps.gschema.xml:22 msgid "Map rotation in radians" msgstr "Maparen biraketa radianetan" #: data/org.gnome.Maps.gschema.xml:26 msgid "Map type" msgstr "Mapa mota" #: data/org.gnome.Maps.gschema.xml:27 msgid "The type of map to display (street, aerial, etc.)" msgstr "Bistaratuko den mapa mota (kalekoa, airekoa eta abar)" #: data/org.gnome.Maps.gschema.xml:31 msgid "Window size" msgstr "Leihoaren tamaina" #: data/org.gnome.Maps.gschema.xml:32 msgid "Window size (width and height)." msgstr "Leihoaren tamaina (zabalera eta altuera)." #: data/org.gnome.Maps.gschema.xml:36 msgid "Window position" msgstr "Leihoaren posizioa" #: data/org.gnome.Maps.gschema.xml:37 msgid "Window position (X and Y)." msgstr "Leihoaren posizioa (X eta Y)." #: data/org.gnome.Maps.gschema.xml:41 msgid "Window maximized" msgstr "Leihoa maximizatuta" #: data/org.gnome.Maps.gschema.xml:42 msgid "Window maximization state" msgstr "Leihoaren maximizazioaren egoera" #: data/org.gnome.Maps.gschema.xml:46 msgid "Maximum number of search results" msgstr "Bilaketaren emaitzen gehieneko kopurua" #: data/org.gnome.Maps.gschema.xml:47 msgid "Maximum number of search results from geocode search." msgstr "Bilaketaren emaitzen gehieneko kopurua geokodifikazioaren bilaketatik." #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent places to store" msgstr "Azken aldiko lekuen kopurua gordetzeko" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited places to store." msgstr "Azken aldian bisitatutako lekuen kopurua gordetzeko." #: data/org.gnome.Maps.gschema.xml:56 msgid "Number of recent routes to store" msgstr "Azken aldiko ibilbideen kopurua gordetzeko" #: data/org.gnome.Maps.gschema.xml:57 msgid "Number of recently visited routes to store." msgstr "Azken aldian bisitatutako ibilbideen kopurua gordetzeko." #: data/org.gnome.Maps.gschema.xml:61 msgid "OpenStreetMap username or email address" msgstr "OpenStreetMap-eko erabiltzaile-izena edo helbide elektronikoa" #: data/org.gnome.Maps.gschema.xml:62 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "OpenStreetMap-eko datuak editatzeko erabiltzaileak sinatu duen edo ez adierazten du." #: data/org.gnome.Maps.gschema.xml:66 msgid "Last used transportation type for routing" msgstr "Erabilitako azken garraio mota bidea egiteko" #: data/org.gnome.Maps.gschema.xml:70 msgid "Show scale" msgstr "Erakutsi eskala" #: data/org.gnome.Maps.gschema.xml:71 msgid "Whether to show the scale." msgstr "Eskala erakutsiko den ala ez." #: data/ui/context-menu.ui:6 msgid "Route from Here" msgstr "Ibilbidea hemendik" #: data/ui/context-menu.ui:10 msgid "Add Intermediate Destination" msgstr "Gehitu tarteko helmuga" #: data/ui/context-menu.ui:14 msgid "Route to Here" msgstr "Ibilbidea hona" #: data/ui/context-menu.ui:20 msgid "What's Here?" msgstr "Zer dago hemen?" #: data/ui/context-menu.ui:24 msgid "Copy Location" msgstr "Kopiatu kokalekua" #: data/ui/context-menu.ui:28 msgid "Add to OpenStreetMap…" msgstr "Gehitu OpenStreetMap-en…" #: data/ui/export-view-dialog.ui:7 msgid "Export view" msgstr "Esportatu ikuspegia" #: data/ui/export-view-dialog.ui:16 data/ui/send-to-dialog.ui:10 #: data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "_Utzi" #: data/ui/export-view-dialog.ui:26 msgid "_Export" msgstr "_Esportatu" #. Translators: This is a tooltip #: data/ui/favorite-list-row.ui:72 msgid "Remove Favorite" msgstr "Kendu gogokoa" #: data/ui/favorites-popover.ui:11 msgid "No Favorites" msgstr "Gogokorik ez" #: data/ui/favorites-popover.ui:12 msgid "Add places to your favorites to get them listed here" msgstr "Gehitu lekuak zure gogokoei hemen zerrendatuak izan daitezen" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:11 src/geoclue.js:106 msgid "Current Location" msgstr "Uneko kokalekua" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:19 msgid "Layers" msgstr "Geruzak" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:11 msgid "Print Route" msgstr "Inprimatu ibilbidea" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:21 msgid "Favorites" msgstr "Gogokoak" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:30 msgid "Route Planner" msgstr "Ibilbideen planifikatzailea" #: data/ui/help-overlay.ui:12 msgctxt "shortcut window" msgid "General" msgstr "Orokorra" #: data/ui/help-overlay.ui:15 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "Erakutsi lasterbideak" #: data/ui/help-overlay.ui:21 msgctxt "shortcut window" msgid "Search" msgstr "Bilatu" #: data/ui/help-overlay.ui:27 msgctxt "shortcut window" msgid "Explore points-of-interest" msgstr "Arakatu puntu interesgarriak" #: data/ui/help-overlay.ui:33 msgctxt "shortcut window" msgid "Show last search results" msgstr "Erakutsi bilaketaren azken emaitzak" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "Txandakatu ibilbidearen planifikatzailea" #: data/ui/help-overlay.ui:45 msgctxt "shortcut window" msgid "Print route" msgstr "Inprimatu ibilbidea" #: data/ui/help-overlay.ui:51 msgctxt "shortcut window" msgid "Quit" msgstr "Irten" #: data/ui/help-overlay.ui:57 msgctxt "shortcut window" msgid "Open main menu" msgstr "Ireki menu nagusia" #: data/ui/help-overlay.ui:65 msgctxt "shortcut window" msgid "Map View" msgstr "Maparen ikuspegia" #: data/ui/help-overlay.ui:68 msgctxt "shortcut window" msgid "Zoom in" msgstr "Handiagotu" #: data/ui/help-overlay.ui:74 msgctxt "shortcut window" msgid "Zoom out" msgstr "Txikiagotu" #: data/ui/help-overlay.ui:80 msgctxt "shortcut window" msgid "Rotate clockwise" msgstr "Biratu erlojuaren noranzkoan" #: data/ui/help-overlay.ui:86 msgctxt "shortcut window" msgid "Rotate counter-clockwise" msgstr "Biratu erlojuaren noranzkoaren aurka" #: data/ui/help-overlay.ui:92 msgctxt "shortcut window" msgid "Reset rotation" msgstr "Berrezarri biraketa" #: data/ui/help-overlay.ui:98 msgctxt "shortcut window" msgid "Toggle scale" msgstr "Txandakatu eskala" #: data/ui/help-overlay.ui:104 msgctxt "shortcut window" msgid "Go to current location" msgstr "Joan uneko kokalekura" #: data/ui/help-overlay.ui:114 msgctxt "shortcut window" msgid "Switch to street view" msgstr "Aldatu kaleen ikuspegira" #: data/ui/help-overlay.ui:121 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "Aldatu aireko ikuspegira" #: data/ui/help-overlay.ui:127 msgctxt "shortcut window" msgid "Open shape layer" msgstr "Ireki formen geruza" #: data/ui/layers-popover.ui:7 msgid "Show Scale" msgstr "Erakutsi eskala" #: data/ui/layers-popover.ui:16 msgid "Enable Experimental Map" msgstr "Gaitu mapa esperimentalak" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:21 msgid "Open Shape Layer…" msgstr "Ireki formen geruza…" #: data/ui/main-window.ui:8 msgid "Set up OpenStreetMap Account…" msgstr "Konfiguratu OpenStreetMap-eko kontua…" #: data/ui/main-window.ui:12 msgid "Export as Image…" msgstr "Esportatu irudi gisa…" #: data/ui/main-window.ui:17 msgid "_Keyboard Shortcuts" msgstr "Las_ter-teklak" #: data/ui/main-window.ui:22 msgid "About Maps" msgstr "Mapak aplikazioari buruz" #: data/ui/main-window.ui:48 msgid "Main Menu" msgstr "Menu nagusia" #: data/ui/osm-account-dialog.ui:5 msgid "OpenStreetMap Account" msgstr "OpenStreetMap-eko kontua" #: data/ui/osm-account-dialog.ui:31 msgid "Sign In To Edit Maps" msgstr "Hasi saioa mapa editatzeko" #: data/ui/osm-account-dialog.ui:32 msgid "Help to improve the map, using an OpenStreetMap account." msgstr "Lagundu mapa hobetzen OpenStreetMap-eko kontu bat erabiliz." #: data/ui/osm-account-dialog.ui:36 msgid "Sign In" msgstr "Hasi saioa" #: data/ui/osm-account-dialog.ui:59 msgid "Verification" msgstr "Egiaztatzea" #: data/ui/osm-account-dialog.ui:60 msgid "" "Copy the verification code shown when authorizing access in the browser." msgstr "Kopiatu hemen nabigatzailean sarbidea baimendu denean jasotako egiaztatze-kodea" #: data/ui/osm-account-dialog.ui:69 msgid "Verification Code" msgstr "Egiaztatze-kodea" #: data/ui/osm-account-dialog.ui:75 msgid "Verify" msgstr "Egiaztatu" #: data/ui/osm-account-dialog.ui:110 msgid "Signed In" msgstr "Saioa hasi da" #: data/ui/osm-account-dialog.ui:111 msgid "Your OpenStreetMap account is active." msgstr "Zure OpenStreetMap-eko kontua aktibo dago." #: data/ui/osm-account-dialog.ui:129 msgid "Sign Out" msgstr "Amaitu saioa" #: data/ui/osm-edit-address.ui:11 msgid "Street" msgstr "Kalea" #: data/ui/osm-edit-address.ui:22 msgid "House number" msgstr "Zenbakia" #: data/ui/osm-edit-address.ui:33 msgid "Postal code" msgstr "Posta-kodea" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:44 msgid "City" msgstr "Hiria" #: data/ui/osm-edit-dialog.ui:8 msgctxt "dialog title" msgid "Edit on OpenStreetMap" msgstr "Editatu OpenStreetMap-en" #: data/ui/osm-edit-dialog.ui:57 msgid "Type" msgstr "Mota" #: data/ui/osm-edit-dialog.ui:79 msgid "None" msgstr "Bat ere ez" #: data/ui/osm-edit-dialog.ui:108 msgid "Add Field" msgstr "Gehitu eremua" #: data/ui/osm-edit-dialog.ui:130 msgid "Comment" msgstr "Iruzkina" #: data/ui/osm-edit-dialog.ui:158 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "Mapen aldaketak ikusgai egongo dira OpenStreetMap-eko\n" "datuak erabiltzen dituzten mapa guztietan." #: data/ui/osm-edit-dialog.ui:186 msgid "Recently Used" msgstr "Azken aldian erabilia" #: data/ui/osm-edit-dialog.ui:225 src/mapView.js:663 msgid "Cancel" msgstr "Utzi" #: data/ui/osm-edit-dialog.ui:238 src/osmEditDialog.js:531 msgid "Next" msgstr "Hurrengoa" #: data/ui/osm-edit-wikipedia.ui:8 msgid "Article" msgstr "Artikulua" #: data/ui/osm-edit-wikipedia.ui:21 msgid "Wikidata tag" msgstr "Wikidatako etiketa" #: data/ui/osm-edit-wikipedia.ui:32 msgid "Load Wikidata tag for article" msgstr "Kargatu artikulurako wikidata etiketa" #: data/ui/place-popover.ui:23 src/searchBar.js:55 msgid "Explore Nearby Places" msgstr "Arakatu hurbileko tokiak" #: data/ui/place-popover.ui:82 src/application.js:277 msgid "No results found" msgstr "Ez da emaitzarik aurkitu" #: data/ui/place-popover.ui:92 src/application.js:255 msgid "An error has occurred" msgstr "Errore bat gertatu da" #. Translators: This is a tooltip #: data/ui/route-entry.ui:12 msgid "Change Route Order" msgstr "Aldatu ibilbidearen ordena" #: data/ui/send-to-dialog.ui:7 msgid "Open Location" msgstr "Ireki kokalekua" #: data/ui/send-to-dialog.ui:64 msgid "Copy" msgstr "Kopiatu" #: data/ui/send-to-dialog.ui:70 msgid "Send To…" msgstr "Bidali hona…" #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:62 msgid "Open Shape Layer" msgstr "Ireki formen geruza" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "_Ireki" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:32 msgid "Toggle visible" msgstr "Txandakatu ikusgaitasuna" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:44 msgid "Remove Shape Layer" msgstr "Kendu formen geruza" #: data/ui/sidebar.ui:207 msgid "Route search by GraphHopper" msgstr "Ibilbide-bilaketa GraphHopper bidez" #: data/ui/sidebar.ui:272 msgid "" "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of " "transportation,\n" "e.g. a national provider might not include airlines, and a local provider " "could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "Ibilbide publikoen bideak hirugarrenek eskaintzen dituzte.\n" "GNOMEk ezin du bermatu erakutsitako ibilbideen eta ordutegien zuzentasuna.\n" "Kontuan izan zenbait hornitzailek ez dituztela garraio modu guztiak kontuan hartzen, adibidez nazio mailako hornitzaile batek beharbada ez ditu hegaldiak kontuan hartzen, eta hornitzaile lokal batek agian ez ditu eskualde mailako trenak erakusten.\n" "Erakutsitako izenak eta markak erregistratutako marka gisa hartuko dira dagokienenean." #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:98 msgid "Hide intermediate stops and information" msgstr "Ezkutatu bitarteko puntuak eta informazioak" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:156 msgid "Show intermediate stops and information" msgstr "Erakutsi bitarteko puntuak eta informazioak" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:16 msgid "Leave Now" msgstr "Irten orain" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:17 msgid "Leave By" msgstr "Irten:" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:18 msgid "Arrive By" msgstr "Iritsi:" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:85 msgid "Show" msgstr "Erakutsi" #: data/ui/transit-options-panel.ui:95 msgid "Buses" msgstr "Autobusak" #: data/ui/transit-options-panel.ui:101 msgid "Trams" msgstr "Tranbia" #: data/ui/transit-options-panel.ui:107 msgid "Trains" msgstr "Trenak" #: data/ui/transit-options-panel.ui:113 msgid "Subway" msgstr "Metroak" #: data/ui/transit-options-panel.ui:119 msgid "Ferries" msgstr "Ferryak" #: data/ui/transit-options-panel.ui:125 msgid "Airplanes" msgstr "Hegazkinak" #. Translators: This is a tooltip #: data/ui/place-bar.ui:33 data/ui/place-buttons.ui:27 msgid "Share Location" msgstr "Partekatu kokalekua" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:11 msgid "Add to new route" msgstr "Gehitu ibilbide berriari" #. Translators: This is the button to find a route to a place #: data/ui/place-buttons.ui:15 msgid "Directions" msgstr "Norabideak" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:36 msgid "Mark as Favorite" msgstr "Markatu gogoko gisa" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:44 msgid "Edit on OpenStreetMap" msgstr "Editatu OpenStreetMap-en" #. Translators: This is a tooltip #: data/ui/place-view.ui:52 msgid "Share location" msgstr "Partekatu kokalekua" #: data/ui/poi-category-goback-row.ui:22 msgid "Back to Main Categories" msgstr "Itzuli kategoria nagusietara" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:19 msgid "Reset Rotation" msgstr "Berrezarri biraketa" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:32 msgid "Zoom Out" msgstr "Txikiagotu" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:43 src/mapView.js:1238 msgid "Zoom In" msgstr "Handiagotu" #: lib/maps-file-data-source.c:262 lib/maps-file-data-source.c:338 #: lib/maps-file-data-source.c:418 msgid "Failed to find tile structure in directory" msgstr "Huts egin du lauzaren egitura direktorioan bilatzean" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "Huts egin du XML dokumentua aztertzean" #: lib/maps-osm.c:250 lib/maps-osm.c:403 msgid "Missing required attributes" msgstr "Beharrezko atributuak falta dira" #: lib/maps-osm.c:451 lib/maps-osm.c:494 msgid "Could not find OSM element" msgstr "Ezin izan da OSM elementua aurkitu" #: lib/maps-osm.c:508 msgid "Could not find user element" msgstr "Ez da aurkitu erabiltzaile-elementua" #: src/application.js:78 msgid "A path to a local tiles directory structure" msgstr "Lokaleko lauzen direktorioaren egituraren bide-izena" #: src/application.js:84 msgid "Tile size for local tiles directory" msgstr "Lokaleko lauzen direktorioaren lauza-tamaina" #: src/application.js:88 msgid "Show the version of the program" msgstr "Erakutsi programaren bertsioa" #: src/application.js:94 msgid "Search for places" msgstr "Bilatu lekuak" #: src/application.js:105 src/application.js:106 msgid "[FILE…|URI]" msgstr "[FITXATEGIA…|URIA]" #: src/application.js:284 #, javascript-format msgid "Invalid maps: URI: %s" msgstr "Mapa baliogabeak: URI: %s" #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:75 #, javascript-format msgid "Maps at %f, %f.png" msgstr "Mapak hemen: %f, %f.png" #: src/exportViewDialog.js:174 msgid "Unable to export view" msgstr "Ezin da ikuspegia esportatu" #: src/favoriteListRow.js:42 msgid "Favorite removed" msgstr "Gogokoa kendu da" #: src/favoriteListRow.js:43 msgid "Undo" msgstr "Desegin" #: src/geoJSONSource.js:73 msgid "invalid coordinate" msgstr "baliogabeko koordenatua" #: src/geoJSONSource.js:126 src/geoJSONSource.js:166 src/geoJSONSource.js:181 msgid "parse error" msgstr "analisi-errorea" #: src/geoJSONSource.js:160 msgid "unknown geometry" msgstr "geometria ezezaguna" #: src/graphHopper.js:101 src/transitPlan.js:175 msgid "Route request failed." msgstr "Huts egin du ibilbidearen eskaerak." #: src/graphHopper.js:108 src/transitPlan.js:167 msgid "No route found." msgstr "Ez da ibilbiderik aurkitu." #: src/graphHopper.js:195 src/transitplugins/openTripPlanner.js:1163 msgid "Start!" msgstr "Hasi!" #: src/mainWindow.js:59 msgid "All Layer Files" msgstr "Geruzen fitxategi guztiak" #: src/mainWindow.js:522 msgid "Failed to connect to location service" msgstr "Huts egin du kokapen-zerbitzuarekin konektatzean" #: src/mainWindow.js:527 msgid "Turn on location services" msgstr "Aktibatu kokaleku-zerbitzuak" #: src/mainWindow.js:528 msgid "Location Settings" msgstr "Kokapenaren ezarpenak" #: src/mainWindow.js:645 msgid "translator-credits" msgstr "translator-credits" #: src/mainWindow.js:649 msgid "Copyright © 2011 – 2023 Red Hat, Inc. and The GNOME Maps authors" msgstr "Copyright © 2011 – 2023 Red Hat, Inc. eta GNOME Mapak aplikazioaren egileak" #: src/mainWindow.js:665 #, javascript-format msgid "Map data by %s and contributors" msgstr "Maparen datuen sortzaileak: %s eta laguntzaileak" #: src/mainWindow.js:666 msgid "Map Data Provider" msgstr "Mapa-datuen hornitzailea" #: src/mainWindow.js:678 msgid "Map Tile Provider" msgstr "Mapa-lauzen hornitzailea" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:686 #, javascript-format msgid "Map tiles provided by %s" msgstr "Mapa-lauzen hornitzaileak: %s" #: src/mainWindow.js:716 msgid "Search Provider" msgstr "Bilaketen hornitzailea" #: src/mainWindow.js:719 #, javascript-format msgid "Search provided by %s using %s" msgstr "%s motorrak hornitutako bilaketa %s bidez" #: src/mapView.js:637 src/mapView.js:702 msgid "Failed to open layer" msgstr "Huts egin du geruza irekitzean" #: src/mapView.js:656 msgid "Do you want to continue?" msgstr "Jarraitu nahi duzu?" #: src/mapView.js:657 #, javascript-format msgid "" "You are about to open files with a total size of %s MB. This could take some " "time to load" msgstr "Guztira %s MB dituzten fitxategiak irekitzera zoaz. Horrek denbora bat beharko du" #: src/mapView.js:664 src/transitplugins/openTripPlanner.js:1239 #: src/transitplugins/openTripPlanner2.js:267 msgid "Continue" msgstr "Jarraitu" #: src/mapView.js:696 msgid "File type is not supported" msgstr "Fitxategi mota ez dago onartuta" #: src/mapView.js:733 msgid "Failed to open GeoURI" msgstr "Huts egin du GeoURIa irekitzean" #: src/mapView.js:1197 msgid "Nothing found here!" msgstr "Ez da ezer aurkitu." #: src/mapView.js:1237 msgid "Zoom in to add location" msgstr "Handiagotu zooma kokalekua gehitzeko" #: src/mapView.js:1258 msgid "Location was added in OpenStreetMap" msgstr "Kokalekua OpenStreetMap-i gehitu zaio" #. switch back to the sign-in view, and show a toast indicating #. that verification failed #: src/osmAccountDialog.js:134 msgid "The verification code didn’t match, please try again." msgstr "Egiaztapen-kodea ez dator bat, saiatu berriro." #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:335 msgid "Incorrect user name or password" msgstr "Okerreko erabiltzaile-izena edo pasahitza" #: src/osmConnection.js:337 msgid "Success" msgstr "Ongi burutu da" #: src/osmConnection.js:339 msgid "Bad request" msgstr "Eskaera okerra" #: src/osmConnection.js:341 msgid "Object not found" msgstr "Objektua ez da aurkitu" #: src/osmConnection.js:343 msgid "Conflict, someone else has just modified the object" msgstr "Gatazka, beste norbaitek objektua aldatu du" #: src/osmConnection.js:345 msgid "Object has been deleted" msgstr "Objektua ezabatua izan da" #: src/osmConnection.js:347 msgid "Way or relation refers to non-existing children" msgstr "Bideak edo erlazioak ez dauden umeei egiten diote erreferentzia" #: src/osmEditDialog.js:106 msgid "Name" msgstr "Izena" #: src/osmEditDialog.js:109 msgid "The official name. This is typically what appears on signs." msgstr "Izen ofiziala. Saioa hastean agertu ohi izaten da." #: src/osmEditDialog.js:112 msgid "Address" msgstr "Helbidea" #: src/osmEditDialog.js:120 src/placeView.js:275 msgid "Website" msgstr "Webgunea" #: src/osmEditDialog.js:124 msgid "This is not a valid URL. Make sure to include http:// or https://." msgstr "URLa ez da baliozkoa. Ziurtatu http:// edo https:// gehitzen diozula." #: src/osmEditDialog.js:125 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "Webgune ofiziala. Saiatu URL baten oinarrizko modua erabiltzen. Adib. http://example.com erabili http://example.com/index.html URLaren ordez." #: src/osmEditDialog.js:130 msgid "Phone" msgstr "Telefonoa" #: src/osmEditDialog.js:134 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "Telefono zenbakia. Erabili nazioarteko formatua, + ikurrarekin hasiz. Kontutan eduki pribatutasunari buruzko bertako legeak, telefono zenbaki pribatuei dagokiena bereziki." #: src/osmEditDialog.js:139 msgid "E-mail" msgstr "Posta elektronikoa" #: src/osmEditDialog.js:144 msgid "" "This is not a valid email address. Make sure to not include the mailto: " "protocol prefix." msgstr "Hau ez da baliozko posta elektronikoko helbidea. Ziurtatu ez duzula mailto: protokolo-aurrizkia sartu." #: src/osmEditDialog.js:145 msgid "" "Contact email address for inquiries. Add only email addresses that are " "intended to be publicly used." msgstr "Kontakturako helbide elektronikoa, galderetarako. Gehitu publikoki erabiltzeko pentsatuta dauden helbideak soilik." #. Translators: This is the text for the "Wikipedia" link at the end #. of summaries #: src/osmEditDialog.js:149 src/placeView.js:727 msgid "Wikipedia" msgstr "Wikipedia" #: src/osmEditDialog.js:156 src/placeView.js:399 msgid "Opening hours" msgstr "Irekiera orduak" #: src/osmEditDialog.js:161 msgid "See the link in the label for help on format." msgstr "Ikusi esteka etiketan formatua ematean laguntzeko." #. TODO: this is a bit of a work-around to re-interpret the population, #. * stored as a string into an integer to convert back to a locale- #. * formatted string. Ideally it should be kept as an integer value #. * in the Place class. But this will also need to be handled by the #. * PlaceStore, possible in a backwards-compatible way #. #: src/osmEditDialog.js:164 src/placeView.js:509 msgid "Population" msgstr "Populazioa" #: src/osmEditDialog.js:169 src/placeView.js:538 msgid "Altitude" msgstr "Altitudea" #: src/osmEditDialog.js:172 msgid "Elevation (height above sea level) of a point in meters." msgstr "Puntu baten garaiera (itsas mailaren gaineko altuera) metrotan." #: src/osmEditDialog.js:175 msgid "Wheelchair access" msgstr "Gurpil-aulkien irisgarritasuna" #: src/osmEditDialog.js:178 src/osmEditDialog.js:187 src/osmEditDialog.js:198 #: src/osmEditDialog.js:233 msgid "Yes" msgstr "Bai" #: src/osmEditDialog.js:179 src/osmEditDialog.js:188 src/osmEditDialog.js:199 #: src/osmEditDialog.js:234 msgid "No" msgstr "Ez" #: src/osmEditDialog.js:180 msgid "Limited" msgstr "Mugatua" #: src/osmEditDialog.js:181 msgid "Designated" msgstr "Izendatuta" #: src/osmEditDialog.js:184 msgid "Internet access" msgstr "Interneterako sarbidea" #: src/osmEditDialog.js:189 msgid "Wi-Fi" msgstr "Wifia" #: src/osmEditDialog.js:190 msgid "Wired" msgstr "Hariduna" #: src/osmEditDialog.js:191 msgid "Terminal" msgstr "Terminala" #: src/osmEditDialog.js:192 msgid "Service" msgstr "Zerbitzua" #: src/osmEditDialog.js:195 msgid "Takeout" msgstr "Eramateko" #: src/osmEditDialog.js:200 msgid "Only" msgstr "Soilik" #: src/osmEditDialog.js:203 msgid "Religion" msgstr "Erlijioa" #: src/osmEditDialog.js:206 src/translations.js:286 msgid "Animism" msgstr "Animismoa" #: src/osmEditDialog.js:207 msgid "Bahá’í" msgstr "Bahá’í" #: src/osmEditDialog.js:208 src/translations.js:288 msgid "Buddhism" msgstr "Budismoa" #: src/osmEditDialog.js:209 src/translations.js:289 msgid "Caodaism" msgstr "Caodaismoa" #: src/osmEditDialog.js:210 src/translations.js:290 msgid "Christianity" msgstr "Kristautasuna" #: src/osmEditDialog.js:211 src/translations.js:291 msgid "Confucianism" msgstr "Konfuzianismoa" #: src/osmEditDialog.js:212 src/translations.js:292 msgid "Hinduism" msgstr "Hinduismoa" #: src/osmEditDialog.js:213 src/translations.js:293 msgid "Jainism" msgstr "Jainismoa" #: src/osmEditDialog.js:214 src/translations.js:294 msgid "Judaism" msgstr "Judaismoa" #: src/osmEditDialog.js:215 src/translations.js:295 msgid "Islam" msgstr "Islama" #: src/osmEditDialog.js:216 src/translations.js:296 msgid "Multiple Religions" msgstr "Hainbat erlijio" #: src/osmEditDialog.js:217 src/translations.js:297 msgid "Paganism" msgstr "Paganismoa" #: src/osmEditDialog.js:218 src/translations.js:298 msgid "Pastafarianism" msgstr "Pastafarianismoa" #: src/osmEditDialog.js:219 src/translations.js:299 msgid "Scientology" msgstr "Zientziologia" #: src/osmEditDialog.js:220 src/translations.js:300 msgid "Shinto" msgstr "Shinto" #: src/osmEditDialog.js:221 src/translations.js:301 msgid "Sikhism" msgstr "Sikhismoa" #: src/osmEditDialog.js:222 src/translations.js:302 msgid "Spiritualism" msgstr "Espiritualismoa" #: src/osmEditDialog.js:223 src/translations.js:303 msgid "Taoism" msgstr "Taoismoa" #: src/osmEditDialog.js:224 src/translations.js:304 msgid "Unitarian Universalism" msgstr "Unitarismo unibertsalista" #: src/osmEditDialog.js:225 src/translations.js:305 msgid "Voodoo" msgstr "Voodoo" #: src/osmEditDialog.js:226 src/translations.js:306 msgid "Yazidism" msgstr "Yazidismoa" #: src/osmEditDialog.js:227 src/translations.js:307 msgid "Zoroastrianism" msgstr "Zoroastrianismoa" #: src/osmEditDialog.js:230 src/poiCategories.js:176 msgid "Toilets" msgstr "Komunak" #: src/osmEditDialog.js:237 msgid "Note" msgstr "Oharra" #: src/osmEditDialog.js:240 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "Mapen beste sortzaileei elementu bati buruzko hain garbia ez den informazioari buruz, egilearen asmoa hura sortzean edo argibideak hobekuntza gehiagorako jakinarazteko informazioa." #: src/osmEditDialog.js:339 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "Gehitu OpenStreetMap-i" #: src/osmEditDialog.js:393 msgid "Select Type" msgstr "Hautatu mota" #: src/osmEditDialog.js:515 msgid "Done" msgstr "Eginda" #: src/osmEditDialog.js:818 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "Erabilitako formatuak hizkuntzaren kodea eta artikuluaren titulua ”eu:Artikuluaren titulua\" gisa eduki beharko lituzke." #: src/osmEditDialog.js:824 msgid "Use the reload button to load the Wikidata tag for the selected article" msgstr "Erabili birkargatzeko botoia artikulu hautatuaren wikidata etiketa kargatzeko" #: src/osmEditDialog.js:832 msgid "Couldn't find Wikidata tag for article" msgstr "Ez da wikidata etiketarik aurkitu artikulurako" #: src/photonUtils.js:118 msgid "Unnamed place" msgstr "Izenik gabeko tokia" #: src/placeEntry.js:274 msgid "Failed to parse Geo URI" msgstr "Huts egin du Geo URIa aztertzean" #: src/placeEntry.js:286 msgid "Failed to parse Maps URI" msgstr "Huts egin du Maps URIaren analisiak" #. 300 ft (300 * 12 * 0.0254 m) #. #. * Translators: This a format string for showing a distance to a place #. * is lower than a "quite short" distance. #. * The "less than" symbol can be substituded with an appropriate one, if #. * needed (e.g. using the correct direction, or alternative symbol). #. * The %s should be kept, and is substituted with a label representing the #. * short distance. The \u2009 (thin space) could also be adjusted if needed #: src/placeListRow.js:46 #, javascript-format msgctxt "short distance format string" msgid "< %s" msgstr "< %s" #: src/placeView.js:263 msgid "Coordinates" msgstr "Koordenatuak" #: src/placeView.js:267 msgid "Accuracy" msgstr "Zehaztasuna" #. Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) #: src/placeView.js:270 #, javascript-format msgid "Accuracy: %s" msgstr "Zehaztasuna: %s" #. since the phone numbers are typically always rendered #. * left-to-right, insert an explicit LRM char to avoid issues #. * with phone numbers in international format starting with a + #. * which is considered a "weak" character to determine Unicode #. * text direction #. #: src/placeView.js:289 msgid "Phone number" msgstr "Telefono-zenbakia" #: src/placeView.js:308 msgid "Email" msgstr "Posta elektronikoa" #. If a reference to a named floor (named or symbolic) exists #. * refer to it directly. #. #. Translators: #. * This is a reference to named building floor, using a label #. * or a code, as "displayed in the elevator" #. #: src/placeView.js:323 src/placeView.js:362 msgid "Floor" msgstr "Solairua" #: src/placeView.js:325 #, javascript-format msgid "Floor %s" msgstr "%s. solairua" #: src/placeView.js:337 msgid "At ground level" msgstr "Kaleko mailan" #. Translators: #. * This is a reference to a number of floors above #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:346 #, javascript-format msgid "%s floor above ground level" msgid_plural "%s floors above ground level" msgstr[0] "Solairu %s kaleko mailaren gainetik" msgstr[1] "%s solairu kaleko mailaren gainetik" #. Translators: #. * This is a reference to a number of floors below #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:357 #, javascript-format msgid "%s floor below ground level" msgid_plural "%s floors below ground level" msgstr[0] "Solairu %s kaleko mailaren azpitik" msgstr[1] "%s solairu kaleko mailaren azpitik" #. Translators: #. * The establishment offers customers to purchase meals #. * (or similar) to be consumed elsewhere #. #: src/placeView.js:375 msgid "Offers takeout" msgstr "Eramatekoa eskaintzen du" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed on-premise. #. #: src/placeView.js:383 msgid "Does not offer takeout" msgstr "Ez du eskaintzen eramatekoa" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed elsewhere. E.g. #. * there is no seating on-premise for eating/drinking #. #: src/placeView.js:392 msgid "Only offers takeout" msgstr "Eramatekoa soilik eskaintzen du" #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/placeView.js:409 msgid "Public internet access" msgstr "Interneteko sarbide publikoa" #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/placeView.js:418 msgid "No internet access" msgstr "Ez dago interneteko sarbiderik" #. Translators: #. * This means a WLAN Hotspot, also known as wireless, wifi or Wi-Fi. #. #: src/placeView.js:426 msgid "Public Wi-Fi" msgstr "Wifi publikoa" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/placeView.js:434 msgid "Wired internet access" msgstr "Interneteko haridun sarbidea" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/placeView.js:442 msgid "Computers available for use" msgstr "Erabilgarri dauden ordenagailuak" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/placeView.js:450 msgid "Internet assistance available" msgstr "Internet laguntza erabilgarri" #: src/placeView.js:456 msgid "No toilets available" msgstr "Ez dago komunik erabilgarri" #: src/placeView.js:459 msgid "Toilets available" msgstr "Komunak erabilgarri" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #: src/placeView.js:468 msgid "Wheelchair accessible" msgstr "Gurpil-aulkientzat irisgarri" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/placeView.js:478 msgid "Limited wheelchair accessibility" msgstr "Gurpil-aulkien irisgarritasun mugatua" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #: src/placeView.js:487 msgid "Not wheelchair accessible" msgstr "Ez da gurpil-aulkientzat irisgarri" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/placeView.js:497 msgid "Designated for wheelchair users" msgstr "Gurpil-aulkien erabiltzaileentzako prestatua" #. * #. * Translators: this is a label indicating an altitude below #. * sea level, where the %s placeholder is the altitude relative #. * to mean sea level in the "negative direction" #. #: src/placeView.js:528 #, javascript-format msgid "%s below sea level" msgstr "%s itsas mailaren azpitik" #. * #. * Translators: this indicates a place is located at (or very #. * close to) mean sea level #. #: src/placeView.js:535 msgid "At sea level" msgstr "Itsas mailan" #: src/placeView.js:544 msgid "Religion:" msgstr "Erlijioa:" #: src/place.js:568 msgid "Place not found in OpenStreetMap" msgstr "OpenStreetMap zerbitzuan aurkitu ez den tokia" #: src/place.js:575 msgid "Coordinates in URL are not valid" msgstr "URLaren koordenatuak ez dira baliozkoak" #: src/place.js:584 msgid "URL is not supported" msgstr "URLa ez da onartzen" #: src/poiCategories.js:132 msgid "Amenities" msgstr "Zerbitzuak" #: src/poiCategories.js:135 msgid "ATMs" msgstr "ATMak" #: src/poiCategories.js:141 msgid "Post Boxes" msgstr "Postontziak" #: src/poiCategories.js:147 msgid "Post Offices" msgstr "Posta-bulegoak" #: src/poiCategories.js:153 msgid "Police" msgstr "Polizia" #: src/poiCategories.js:159 msgid "Libraries" msgstr "Liburutegiak" #: src/poiCategories.js:165 msgid "Pharmacies" msgstr "Farmaziak" #: src/poiCategories.js:171 msgid "Recycling" msgstr "Birziklapena" #: src/poiCategories.js:182 msgid "Wheelchair-accessible Toilets" msgstr "Gurpil-aulkientzat irisgarriak diren komunak" #: src/poiCategories.js:188 msgid "Baggage Lockers" msgstr "Maleta-zaindegiak" #: src/poiCategories.js:196 msgid "Eating & Drinking" msgstr "Janaria eta edaria" #: src/poiCategories.js:200 msgid "Restaurants" msgstr "Jatetxeak" #: src/poiCategories.js:205 msgid "Fast Food" msgstr "Janari lasterra" #: src/poiCategories.js:210 msgid "Food Courts" msgstr "Jatetxeen gunea" #: src/poiCategories.js:215 msgid "Pubs" msgstr "Pubak" #: src/poiCategories.js:221 msgid "Bars" msgstr "Tabernak" #: src/poiCategories.js:226 msgid "Cafes" msgstr "Kafetegiak" #: src/poiCategories.js:231 msgid "Ice Cream" msgstr "Izozki-dendak" #: src/poiCategories.js:236 msgid "Food, Snacks, and Beverage Machines" msgstr "Janariaren, litxarrerien eta edarien makinak" #: src/poiCategories.js:244 msgid "Shopping" msgstr "Dendak" #: src/poiCategories.js:248 msgid "Supermarkets" msgstr "Supermerkatuak" #: src/poiCategories.js:254 msgid "Convenience Stores" msgstr "Auzoko dendak" #: src/poiCategories.js:259 msgid "Shopping Malls" msgstr "Merkataritza-zentroak" #: src/poiCategories.js:265 msgid "Clothes" msgstr "Jantziak" #: src/poiCategories.js:271 msgid "Shoes" msgstr "Oinetakoak" #: src/poiCategories.js:276 msgid "Electronics" msgstr "Elektronika" #: src/poiCategories.js:282 msgid "Alcohol" msgstr "Alkohola" #: src/poiCategories.js:288 msgid "Bakeries" msgstr "Okindegiak" #: src/poiCategories.js:294 msgid "Flowers" msgstr "Loreak" #: src/poiCategories.js:301 msgid "Transportation" msgstr "Garraio" #: src/poiCategories.js:305 msgid "Bus & Tram Stops" msgstr "Autobus- eta tranbia-geltokiak" #: src/poiCategories.js:313 msgid "Train & Subway Stations" msgstr "Tren- eta metro-geltokiak" #: src/poiCategories.js:321 msgid "Tickets" msgstr "Txartelak" #: src/poiCategories.js:329 msgid "Parking" msgstr "Aparkalekua" #: src/poiCategories.js:334 msgid "Bicycle Parking" msgstr "Bizikleta-aparkalekua" #: src/poiCategories.js:339 msgid "Bicycle Rental" msgstr "Bizikleta-mailegua" #: src/poiCategories.js:344 msgid "Car Rental" msgstr "Auto-mailegua" #: src/poiCategories.js:349 msgid "Fuel" msgstr "Erregaia" #: src/poiCategories.js:354 msgid "EV Charging" msgstr "Ibilgailu elektrikoen karga" #: src/poiCategories.js:362 msgid "Healthcare" msgstr "Osasuna" #: src/poiCategories.js:366 msgid "Clinics" msgstr "Klinika" #: src/poiCategories.js:372 msgid "Hospitals" msgstr "Ospitalea" #: src/poiCategories.js:378 msgid "Dentists" msgstr "Dentistak" #: src/poiCategories.js:386 msgid "Accommodation" msgstr "Ostatua" #: src/poiCategories.js:390 msgid "Hotels" msgstr "Hotelak" #: src/poiCategories.js:395 msgid "Hostels" msgstr "Hostalak" #: src/poiCategories.js:400 msgid "Bed & Breakfast" msgstr "Ohe eta gosaria" #: src/poiCategories.js:405 msgid "Campings" msgstr "Akanpalekuak" #: src/poiCategories.js:412 msgid "Recreation" msgstr "Aisialdia" #: src/poiCategories.js:416 msgid "Parks" msgstr "Parkeak" #: src/poiCategories.js:421 msgid "Playgrounds" msgstr "Jolastokiak" #: src/poiCategories.js:425 msgid "Beaches" msgstr "Hondartzak" #: src/poiCategories.js:430 msgid "Nature Reserves" msgstr "Parke naturalak" #: src/poiCategories.js:436 msgid "Theme Parks" msgstr "Parke tematikoa" #: src/poiCategories.js:441 msgid "Theaters" msgstr "Antzokiak" #: src/poiCategories.js:447 msgid "Movie Theaters" msgstr "Zinemak" #: src/poiCategories.js:453 msgid "Night Clubs" msgstr "Diskotekak" #: src/poiCategories.js:460 msgid "Tourism" msgstr "Turismoa" #: src/poiCategories.js:464 msgid "Museums" msgstr "Museoak" #: src/poiCategories.js:470 msgid "Attractions" msgstr "Atrakzioak" #: src/poiCategories.js:475 msgid "Artworks" msgstr "Artelanak" #: src/poiCategories.js:480 msgid "Tourist Information" msgstr "Informazio turistikoa" #: src/poiCategories.js:487 msgid "Sports" msgstr "Kirolak" #: src/poiCategories.js:491 msgid "Gyms" msgstr "Gimnasioak" #: src/poiCategories.js:497 msgid "Outdoor Gyms" msgstr "Kanpoko gimnasioak" #: src/poiCategories.js:503 msgid "Golf Courses" msgstr "Golf-zelaiak" #: src/printLayout.js:350 #, javascript-format msgid "From %s to %s" msgstr "“%s”(e)ndik “%s”(e)ra" #: src/printOperation.js:49 msgid "Loading map tiles for printing" msgstr "Mapen lauzak inprimatzeko kargatzen" #: src/printOperation.js:50 msgid "You can abort printing if this takes too long" msgstr "Inprimatzea bertan behera utz dezakezu denbora gehiegi badarama" #: src/printOperation.js:52 msgid "Abort printing" msgstr "Utzi inprimatzea bertan behera" #. Translators: this is add via location tooltip #: src/routeEntry.js:60 msgid "Add via location" msgstr "Gehitu bidearen kokalekua" #. Translators: this is remove via location tooltip #: src/routeEntry.js:70 msgid "Remove via location" msgstr "Kendu bidearen kokalekua" #. Translators: this is reverse route tooltip #: src/routeEntry.js:76 msgid "Reverse route" msgstr "Alderantzikatu ibilbidea" #: src/searchBar.js:45 msgid "Search" msgstr "Bilatu" #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:84 #, javascript-format msgid "Add %s to %s" msgstr "Gehitu %s honi: %s" #: src/sendToDialog.js:181 msgid "Failed to open URI" msgstr "Huts egin du URIa irekitzean" #: src/sendToDialog.js:246 #, javascript-format msgid "Open with %s" msgstr "Ireki honekin: %s" #: src/shapeLayer.js:109 msgid "failed to load file" msgstr "huts egin du fitxategia kargatzean" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:328 #, javascript-format msgid "Estimated time: %s" msgstr "Aurreikusitako denbora: %s" #: src/sidebar.js:398 #, javascript-format msgid "Itineraries provided by %s" msgstr "Ibilbideen hornitzailea: %s" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:39 #, javascript-format msgid "Start at %s" msgstr "Hasiera: %s" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:45 src/transitplugins/openTripPlanner2.js:236 msgid "Start" msgstr "Hasiera" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:63 #, javascript-format msgid "Walk %s" msgstr "Oinez: %s" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:77 #, javascript-format msgid "Arrive at %s" msgstr "Iritsi: %s" #: src/transit.js:79 src/transitplugins/openTripPlanner.js:1176 #: src/transitplugins/openTripPlanner2.js:255 msgid "Arrive" msgstr "Iritsi" #: src/transitLegRow.js:69 msgid "Show walking instructions" msgstr "Erakutsi oinezkoen instrukzioak" #: src/transitLegRow.js:70 msgid "Hide walking instructions" msgstr "Ezkutatu oinezkoen instrukzioak" #: src/transitMoreRow.js:37 msgid "Load earlier alternatives" msgstr "Kargatu alternatibak lehenago" #: src/transitMoreRow.js:39 msgid "Load later alternatives" msgstr "Kargatu alternatibak geroago" #: src/transitMoreRow.js:52 msgid "No earlier alternatives found." msgstr "Ez da aurreragoko ordezkorik aurkitu." #: src/transitMoreRow.js:54 msgid "No later alternatives found." msgstr "Ez da ondorengoko ordezkorik aurkitu." #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:138 msgctxt "month-day-date" msgid "%b %e" msgstr "%b %e" #: src/transitPlan.js:171 msgid "No timetable data found for this route." msgstr "Ez da ordutegiaren daturik aurkitu ibilbide honetan." #: src/transitPlan.js:179 msgid "No provider found for this route." msgstr "Ez da hornitzailerik aurkitu ibilbide honetarako." #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:300 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:331 #, javascript-format msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "minutu %s" msgstr[1] "%s minutu" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:343 #, javascript-format msgid "%s hour" msgid_plural "%s hours" msgstr[0] "ordu %s" msgstr[1] "%s ordu" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:351 #, javascript-format msgid "%s:%s hour" msgid_plural "%s:%s hours" msgstr[0] "%s:%s ordu" msgstr[1] "%s:%s ordu" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:744 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: src/translations.js:55 msgid "Around the clock" msgstr "Egun osoan" #: src/translations.js:57 msgid "From sunrise to sunset" msgstr "Egunsentitik ilunabarrera" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:123 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s,%s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:137 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s,%s,%s" #: src/translations.js:156 msgid "Every day" msgstr "Egunero" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:168 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:179 msgid "Public holidays" msgstr "Jaiegunak" #: src/translations.js:181 msgid "School holidays" msgstr "Eskolako jaiegunak" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:221 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: src/translations.js:235 msgid "not open" msgstr "ez ireki" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:250 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:287 msgid "Bahá'í" msgstr "Bahá'í-a" #. Translators: Accuracy of user location information #: src/utils.js:248 msgid "Unknown" msgstr "Ezezaguna" #. Translators: Accuracy of user location information #: src/utils.js:251 msgid "Exact" msgstr "Zehatza" #. Translators: this is a duration with only hours, using #. * an abbreviation for hours, corresponding to 'h' in English #. #: src/utils.js:307 #, javascript-format msgid "%s h" msgstr "%s h" #. Translators: this is a duration with hours and minutes parts #. * using abbreviations for hours and minutes, corresponding to 'h' #. * and 'min' in English. The minutes has appropriate plural variations #. #: src/utils.js:313 #, javascript-format msgid "%s h %s min" msgid_plural "%s h %s min" msgstr[0] "%s h %s min" msgstr[1] "%s h %s min" #. Translators: this is a duration with minutes part #. * using abbreviation for minutes, corresponding to 'min' in English #. * with appropriate plural variations #. #: src/utils.js:320 #, javascript-format msgid "%s min" msgid_plural "%s min" msgstr[0] "%s min" msgstr[1] "%s min" #. Translators: this is a duration of less than one minute #. * with seconds using an abbreviation for seconds, corresponding to #. * 's' in English with appropriate plural forms #. #: src/utils.js:326 #, javascript-format msgid "%s s" msgid_plural "%s s" msgstr[0] "%s s" msgstr[1] "%s s" #. Translators: This is a distance measured in kilometers #: src/utils.js:337 #, javascript-format msgid "%s km" msgstr "%s km" #. Translators: This is a distance measured in meters #: src/utils.js:340 #, javascript-format msgid "%s m" msgstr "%s m" #. Translators: This is a distance measured in miles #: src/utils.js:348 #, javascript-format msgid "%s mi" msgstr "%s mi" #. Translators: This is a distance measured in feet #: src/utils.js:351 #, javascript-format msgid "%s ft" msgstr "%s ft" #: src/transitplugins/goMetro.js:61 msgid "This plugin doesn't support latest arrival" msgstr "Plugin honek ez du onartzen azken iritsiera" #: src/transitplugins/openTripPlanner.js:1237 #: src/transitplugins/openTripPlanner2.js:266 #, javascript-format msgid "Continue on %s" msgstr "Jarraitu hemen: %s" #: src/transitplugins/openTripPlanner.js:1242 #: src/transitplugins/openTripPlanner2.js:270 #, javascript-format msgid "Turn left on %s" msgstr "Biratu ezkerrera hemen: %s" #: src/transitplugins/openTripPlanner.js:1244 #: src/transitplugins/openTripPlanner2.js:271 msgid "Turn left" msgstr "Biratu ezkerrera" #: src/transitplugins/openTripPlanner.js:1247 #: src/transitplugins/openTripPlanner2.js:275 #, javascript-format msgid "Turn slightly left on %s" msgstr "Biratu pixka bat ezkerrera hemen: %s" #: src/transitplugins/openTripPlanner.js:1249 #: src/transitplugins/openTripPlanner2.js:276 msgid "Turn slightly left" msgstr "Biratu pixka bat ezkerrera" #: src/transitplugins/openTripPlanner.js:1252 #: src/transitplugins/openTripPlanner2.js:280 #, javascript-format msgid "Turn sharp left on %s" msgstr "Biratu erabat ezkerrera hemen: %s" #: src/transitplugins/openTripPlanner.js:1254 #: src/transitplugins/openTripPlanner2.js:281 msgid "Turn sharp left" msgstr "Biratu erabat ezkerrera" #: src/transitplugins/openTripPlanner.js:1257 #: src/transitplugins/openTripPlanner2.js:284 #, javascript-format msgid "Turn right on %s" msgstr "Biratu eskuinera hemen: %s" #: src/transitplugins/openTripPlanner.js:1259 #: src/transitplugins/openTripPlanner2.js:285 msgid "Turn right" msgstr "Biratu eskuinera" #: src/transitplugins/openTripPlanner.js:1262 #: src/transitplugins/openTripPlanner2.js:289 #, javascript-format msgid "Turn slightly right on %s" msgstr "Biratu pixka bat eskuinera hemen: %s" #: src/transitplugins/openTripPlanner.js:1264 #: src/transitplugins/openTripPlanner2.js:290 msgid "Turn slightly right" msgstr "Biratu pixka bat eskuinera" #: src/transitplugins/openTripPlanner.js:1267 #: src/transitplugins/openTripPlanner2.js:294 #, javascript-format msgid "Turn sharp right on %s" msgstr "Biratu erabat eskuinera hemen: %s" #: src/transitplugins/openTripPlanner.js:1269 #: src/transitplugins/openTripPlanner2.js:295 msgid "Turn sharp right" msgstr "Biratu erabat eskuinera" #: src/transitplugins/openTripPlanner.js:1275 #: src/transitplugins/openTripPlanner2.js:302 #, javascript-format msgid "At the roundabout, take exit %s" msgstr "Biribilgunean, hartu %s irteera" #: src/transitplugins/openTripPlanner.js:1277 #: src/transitplugins/openTripPlanner2.js:305 #, javascript-format msgid "At the roundabout, take exit to %s" msgstr "Biribilgunean, hartu %s helbidera joateko irteera" #: src/transitplugins/openTripPlanner.js:1279 #: src/transitplugins/openTripPlanner2.js:307 msgid "Take the roundabout" msgstr "Hartu biribilgunea" #: src/transitplugins/openTripPlanner.js:1283 #: src/transitplugins/openTripPlanner2.js:315 #, javascript-format msgid "Take the elevator and get off at %s" msgstr "Hartu igogailua eta utzi hemen: %s" #: src/transitplugins/openTripPlanner.js:1285 #: src/transitplugins/openTripPlanner2.js:316 msgid "Take the elevator" msgstr "Hartu igogailua" #: src/transitplugins/openTripPlanner.js:1289 #: src/transitplugins/openTripPlanner2.js:320 #, javascript-format msgid "Make a left u-turn onto %s" msgstr "Aldatu noranzkoa ezkerrerantz hemen: %s" #: src/transitplugins/openTripPlanner.js:1291 #: src/transitplugins/openTripPlanner2.js:321 msgid "Make a left u-turn" msgstr "Aldatu noranzkoa ezkerrerantz" #: src/transitplugins/openTripPlanner.js:1294 #: src/transitplugins/openTripPlanner2.js:325 #, javascript-format msgid "Make a right u-turn onto %s" msgstr "Aldatu noranzkoa eskuinerantz hemen: %s" #: src/transitplugins/openTripPlanner.js:1296 #: src/transitplugins/openTripPlanner2.js:326 msgid "Make a right u-turn" msgstr "Aldatu noranzkoa eskuinerantz" #~ msgid "Sign in to edit maps" #~ msgstr "" #~ "Hasi saioa mapak editatzeko" #~ msgid "" #~ "Sign in to authorize access in a web browser.\n" #~ "Then fill in the obtained verification code here in the next step." #~ msgstr "" #~ "Hasi saioa web-nabigatzaile baten bidez sarbidea baimentzeko.\n" #~ "Ondoren, idatzi hemen, hurrengo urratsean, jasotako egiaztapen-kodea." #~ msgid "Signed In" #~ msgstr "Saioa hasita" #~ msgid "Sign up" #~ msgstr "Erregistratu" #~ msgid "Filesystem is read only" #~ msgstr "Fitxategi-sistema irakurtzeko soilik da" #~ msgid "You do not have permission to save there" #~ msgstr "Ez duzu baimenik han gordetzeko" #~ msgid "The directory does not exist" #~ msgstr "Direktorioa ez da existitzen" #~ msgid "No filename specified" #~ msgstr "Ez da fitxategi-izenik zehaztu" #~ msgid "" #~ "Location was added to the map, note that it may take a while before it " #~ "shows on the map and in search results." #~ msgstr "" #~ "Kokalekua mapari gehitu zaio. Jakin ezazu denbora bat igaroko dela " #~ "mapetan eta bilaketen emaitzetan erakutsi aurretik." #~ msgid "Takeaway" #~ msgstr "Eramatekoa" #~ msgid "Go to current location" #~ msgstr "Joan uneko kokalekura" #~ msgid "Choose map type" #~ msgstr "Aukeratu mapa mota" #~ msgid "Zoom in" #~ msgstr "Handiagotu" #~ msgid "Drag to change order of the route" #~ msgstr "Arrastatu ibilbidearen ordena aldatzeko" #~ msgid "Include route and markers" #~ msgstr "Txertatu ibilbidea eta markatzaileak" #~ msgid "A map application for GNOME" #~ msgstr "GNOMEren mapen aplikazioa" #~ msgid "Failed to authorize access" #~ msgstr "Huts egin du sarbidea baimentzeak" #~ msgid "Try again" #~ msgstr "Saiatu berriro" #~ msgid "Foursquare check-in privacy setting" #~ msgstr "Foursquare-ren erregistroaren pribatutasunaren ezarpena" #~ msgid "" #~ "Latest used Foursquare check-in privacy setting. Possible values are: " #~ "public, followers or private." #~ msgstr "" #~ "Foursquare-ren erregistroaren pribatutasunaren erabilitako azken " #~ "ezarpena. Balio erabilgarriak: 'public' (publikoa), " #~ "'followers' (jarraitzaileak) edo 'private' (pribatua)." #~ msgid "Foursquare check-in Facebook broadcasting" #~ msgstr "Foursquare-ren erregistroaren Facebook-eko igorpena" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a post in the " #~ "Facebook account associated with the Foursquare account." #~ msgstr "" #~ "Foursquare-k erregistroa Facebook-eko kontuan posta gisa esleitutako " #~ "Foursquare kontuarekin igorri behar duen edo ez adierazten du." #~ msgid "Foursquare check-in Twitter broadcasting" #~ msgstr "Foursquare-ren erregistroaren Twitter-eko igorpena" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a tweet in the " #~ "Twitter account associated with the Foursquare account." #~ msgstr "" #~ "Foursquare-k erregistroa Twitter-eko kontuan posta gisa esleitutako " #~ "Foursquare kontuarekin igorri behar duen edo ez adierazten du." #~ msgid "Use hybrid aerial tiles" #~ msgstr "Erabili aireko lauza hibridoak" #~ msgid "Whether aerial tiles should use hybrid style (with labels)." #~ msgstr "Aireko lauzek estilo hibridoa (etiketekin) erabiliko duten ala ez." #~ msgid "Visibility" #~ msgstr "Ikusgaitasuna" #~ msgid "Post on Facebook" #~ msgstr "Argitaratu Facebook-en" #~ msgid "Post on Twitter" #~ msgstr "Argitaratu Twitter-en" #~ msgid "C_heck in" #~ msgstr "Erregistratu" #~ msgid "Public" #~ msgstr "Publikoa" #~ msgid "Private" #~ msgstr "Pribatua" #~ msgid "Show Labels" #~ msgstr "Erakutsi etiketak" #~ msgid "Maps is offline!" #~ msgstr "Mapa lineaz kanpo dago!" #~ msgid "" #~ "Maps need an active internet connection to function properly, but one " #~ "can’t be found." #~ msgstr "" #~ "Mapak interneteko konexio aktiboa behar du ongi funtzionatzeko, baina ez " #~ "da bat ere aurkitu." #~ msgid "Check your connection and proxy settings." #~ msgstr "Egiaztatu konexioaren eta proxyaren ezarpenak." #~ msgid "Password" #~ msgstr "Pasahitza" #~ msgid "" #~ "Sorry, that didn’t work. Please try again, or visit\n" #~ "OpenStreetMap to reset your password." #~ msgstr "" #~ "Ez du funtzionatzen. Saiatu berriro, edo bisitatu\n" #~ "OpenStreetMap zure pasahitza berrezartzeko." #~ msgid "Check In…" #~ msgstr "Eregistratu…" #~ msgid "Ignore network availability" #~ msgstr "Ezikusi egin sarearen erabilgarritasunari" #~ msgid "Select an account" #~ msgstr "Hautatu kontua" #~ msgid "Loading" #~ msgstr "Kargatzen" #~ msgid "Select a place" #~ msgstr "Hautatu lekua" #~ msgid "" #~ "Maps cannot find the place to check in to with Foursquare. Please select " #~ "one from this list." #~ msgstr "" #~ "Mapak ezin du lekua aurkitu Foursquare-rekin erregistratzeko Hautatu bat " #~ "zerrendatik." #, javascript-format #~ msgid "Check in to %s" #~ msgstr "%s(e)n erregistratzen" #, javascript-format #~ msgid "Write an optional message to check in to %s." #~ msgstr "Idatzi aukerako mezua '%s'(e)n erregistratzeko." #, javascript-format #~ msgid "Cannot find “%s” in the social service" #~ msgstr "Ezin da “%s” aurkitu zerbitzu sozialean" #~ msgid "Cannot find a suitable place to check-in in this location" #~ msgstr "Ezin da leku egokirik aurkitu kokaleku honetan erregistratzeko" #~ msgid "" #~ "Credentials have expired, please open Online Accounts to sign in and " #~ "enable this account" #~ msgstr "" #~ "Kredentzialak iraungi egin dira. Ireki 'Lineako kontuak' kontu hau " #~ "sinatzeko eta gaitzeko" #~ msgid "GNOME Maps" #~ msgstr "GNOME Mapak" #~ msgid "Night mode" #~ msgstr "Gaueko modua" #~ msgid "Whether the application is in night mode." #~ msgstr "Aplikazioa gaueko moduan dagoen edo ez." #~ msgid "Night Mode" #~ msgstr "Gauko modua" #~ msgid "" #~ "You can even search for specific types of locations, such as “Pubs near " #~ "Main Street, Boston” or “Hotels near Alexanderplatz, Berlin”." #~ msgstr "" #~ "Bilatu kokaleku mota zehatz bat, adibidez 'Diru-truke bulegoa, Bilbo' edo " #~ "'Hotelak kale nagusia, Bilbo'" #~ msgid "Facebook check-in privacy setting" #~ msgstr "Facebook-en erregistroaren pribatutasunaren ezarpena" #~ msgid "" #~ "Latest used Facebook check-in privacy setting. Possible values are: " #~ "EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS or SELF." #~ msgstr "" #~ "Facebook-en erregistroaren pribatutasunaren erabilitako azken ezarpena. " #~ "Balio erabilgarriak: 'EVERYONE' (edonor), 'FRIENDS_OF_FRIENDS' (lagunen " #~ "lagunak), 'ALL_FRIENDS' (lagun guztiak) edo 'SELF' (norbera)." #~ msgid "Everyone" #~ msgstr "Edonor" #~ msgid "Friends of friends" #~ msgstr "Lagunen lagunak" #~ msgid "Just friends" #~ msgstr "Lagunak soilik" #~ msgid "Just me" #~ msgstr "Nik bakarrik" #~ msgid "" #~ "Maps cannot find the place to check in to with Facebook. Please select " #~ "one from this list." #~ msgstr "" #~ "Mapak ezin du lekua aurkitu Facebook-ekin erregistratzeko. Hautatu bat " #~ "zerrendatik." #~ msgid "Find a Route" #~ msgstr "Bilatu ibilbide bat" #~ msgid "Check in here" #~ msgstr "Erregistratu hemen" #~ msgid "Population:" #~ msgstr "Populazioa:" #~ msgid "Altitude:" #~ msgstr "Altitudea:" #~ msgid "Opening hours:" #~ msgstr "Irekiera orduak:" #~ msgid "Internet access:" #~ msgstr "Interneterako sarbidea:" #~ msgid "Toilets:" #~ msgstr "Komunak:" #~ msgid "Wheelchair access:" #~ msgstr "Gurpil-aulkien irisgarritasuna:" #~ msgid "Phone:" #~ msgstr "Telefonoa:" #~ msgid "yes" #~ msgstr "bai" #~ msgid "limited" #~ msgstr "mugatua" #~ msgid "no" #~ msgstr "ez" #~ msgid "designated" #~ msgstr "zehaztutakoa" #~ msgid "OpenStreetMap URL is not valid" #~ msgstr "OpenStreetMap URLa ez da baliozkoa" #~ msgctxt "time range list" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgctxt "time range list" #~ msgid "%s %s %s" #~ msgstr "%s %s %s" #~ msgctxt "time range component" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgid "wired" #~ msgstr "hariduna" #~ msgid "terminal" #~ msgstr "terminala" #~ msgid "service" #~ msgstr "zerbitzua" #~ msgid "Primary menu" #~ msgstr "Menu nagusia" #~ msgid "Don’t have an account?" #~ msgstr "Ez daukazu konturik?" #~ msgid "%f h" #~ msgstr "%f o" #~ msgid "%f min" #~ msgstr "%f min" #~ msgid "%f s" #~ msgstr "%f s" #~ msgid "Add destination" #~ msgstr "Gehitu helmuga" #~ msgid "Route search by OpenTripPlanner" #~ msgstr "ibilbidea OpenTripPlanner-ek bilatuta" #~ msgid "org.gnome.Maps" #~ msgstr "org.gnome.Maps" #~ msgid "Open with another application" #~ msgstr "Ireki beste aplikazio batekin" #~ msgid "Press enter to search" #~ msgstr "Sakatu Sartu bilatzeko" #~ msgid "Quit" #~ msgstr "Irten" #~ msgid "Load Map Layer" #~ msgstr "Kargatu maparen geruza" #~ msgid "OK" #~ msgstr "Ados" #~ msgid "%f km" #~ msgstr "%f km" #~ msgid "%f m" #~ msgstr "%f m" #~ msgid "%f mi" #~ msgstr "%f mi" #~ msgid "%f ft" #~ msgstr "%f oin" #~ msgid "Country code: %s" #~ msgstr "Estatuaren kodea: %s" #~ msgid "_Share" #~ msgstr "_Partekatu" #~ msgid "Last known location and accuracy" #~ msgstr "Azken kokaleku ezaguna eta zehaztasuna" #~ msgid "" #~ "Last known location (latitude and longitude in degrees) and accuracy (in " #~ "meters)." #~ msgstr "" #~ "Azken kokaleku ezaguna (latitudea eta longitudea gradutan) eta " #~ "zehaztasuna (metrotan)." #~ msgid "Description of last known location of user." #~ msgstr "Erabiltzailearen azken kokaleku ezagunaren azalpena." #~ msgid "User set last known location" #~ msgstr "Erabiltzaileak ezarritako azken kokaleku ezaguna" #~ msgid "Whether the last known location was set manually by the user." #~ msgstr "Azken kokaleku ezaguna erabiltzaileak eskuz ezarri zuen edo ez." #~ msgid "I’m here!" #~ msgstr "Hemen nago!" #~ msgid " km2" #~ msgstr " km2" #~ msgid "To" #~ msgstr "Nora" #~ msgid "From" #~ msgstr "Nondik" #~ msgid "Satellite" #~ msgstr "Satelitea" #~ msgid " km²" #~ msgstr " km²" #~ msgid "Track user location." #~ msgstr "Rastrear la ubicación del usuario." #~ msgid "Map Type" #~ msgstr "Tipo de mapa" #~ msgid "Transit" #~ msgstr "Tránsito" 070701000001BF000081A40000000000000000000000016641340900011FAA000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/fa.po# Persian translation for gnome-maps. # Copyright (C) 2013 gnome-maps's COPYRIGHT HOLDER # Arash Mousavi , 2013-2016. # Danial Behzadi , 2017-2024. # msgid "" msgstr "" "Project-Id-Version: gnome-maps gnome-3-10\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2024-02-14 22:30+0000\n" "PO-Revision-Date: 2024-02-16 00:55+0330\n" "Last-Translator: Danial Behzadi \n" "Language-Team: Persian\n" "Language: fa\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-DamnedLies-Scope: partial\n" "X-Generator: Poedit 3.4.2\n" #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.appdata.xml.in.in:6 data/org.gnome.Maps.desktop.in.in:4 #: data/ui/main-window.ui:27 src/application.js:64 src/mainWindow.js:147 #: src/mainWindow.js:647 msgid "Maps" msgstr "نقشه‌ها" #: data/org.gnome.Maps.appdata.xml.in.in:7 msgid "Find places around the world" msgstr "یافتن مکان‌ها در هر جایی از جهان" #: data/org.gnome.Maps.appdata.xml.in.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, or " "locate a place to meet a friend." msgstr "" "نقشه‌ها دسترسی سریعی به نقشه‌ها در تمام جهان را می‌دهد. این برنامه می‌گذارد با جست‌وجو " "برای یک شهر یا خیابان، مکانی را که به دنبالشید یافته یا مکانی را برای قرار مشخّص " "کنید." #: data/org.gnome.Maps.appdata.xml.in.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of thousands " "of people across the globe." msgstr "" "نقشه‌ها از پایگاه دادهٔ مشارکتی اوپن‌استریت‌مپ استفاده می‌کند که به دست صدها هزار نفر " "در سراسر جهان درست شده است." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Maps.appdata.xml.in.in:451 src/mainWindow.js:644 msgid "The GNOME Project" msgstr "پروژهٔ گنوم" #: data/org.gnome.Maps.desktop.in.in:5 msgid "A simple maps application" msgstr "یک برنامهٔ ساده نقشه" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in.in:14 msgid "Maps;" msgstr "نقشه;Maps;" #: data/org.gnome.Maps.desktop.in.in:17 msgid "Allows your location to be shown on the map." msgstr "اجازهٔ نمایش موقعیتتان روی نقشه." #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "آخرین موقعیت دیده شده" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "مختصات آخرین موقعیت سر زده." #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "بزرگ‌نمایی" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "سطح بزرگ‌نمایی" #: data/org.gnome.Maps.gschema.xml:21 msgid "rotation" msgstr "چرخش" #: data/org.gnome.Maps.gschema.xml:22 msgid "Map rotation in radians" msgstr "چرخش نقشه به رادیان" #: data/org.gnome.Maps.gschema.xml:26 msgid "Map type" msgstr "گونهٔ نقشه" #: data/org.gnome.Maps.gschema.xml:27 msgid "The type of map to display (street, aerial, etc.)" msgstr "گونهٔ نمایشی نقشه (خیابانی، هوایی و…)" #: data/org.gnome.Maps.gschema.xml:31 msgid "Window size" msgstr "اندازهٔ پنجره" #: data/org.gnome.Maps.gschema.xml:32 msgid "Window size (width and height)." msgstr "اندازهٔ پنجره (پهنا و بلندا)" #: data/org.gnome.Maps.gschema.xml:36 msgid "Window position" msgstr "موقعیت پنجره" #: data/org.gnome.Maps.gschema.xml:37 msgid "Window position (X and Y)." msgstr "موقعیت پنجره (x و y)." #: data/org.gnome.Maps.gschema.xml:41 msgid "Window maximized" msgstr "پنجره بیشینه شد" #: data/org.gnome.Maps.gschema.xml:42 msgid "Window maximization state" msgstr "وضعیت بیشینهٔ پنجره" #: data/org.gnome.Maps.gschema.xml:46 msgid "Maximum number of search results" msgstr "بیشینهٔ تعداد نتایج جست‌وجو" #: data/org.gnome.Maps.gschema.xml:47 msgid "Maximum number of search results from geocode search." msgstr "بیشینهٔ تعداد نتایج جست‌وجو از طریق جست‌وجوی کد جغرافیایی." #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent places to store" msgstr "تعداد مکان‌های اخیر برای ذخیره" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited places to store." msgstr "تعداد مکان‌های اخیر سر زده شده برای ذخیره." #: data/org.gnome.Maps.gschema.xml:56 msgid "Number of recent routes to store" msgstr "تعداد مسیرهای اخیر برای ذخیره" #: data/org.gnome.Maps.gschema.xml:57 msgid "Number of recently visited routes to store." msgstr "تعداد مسیرهای اخیر سر زده شده برای ذخیره." #: data/org.gnome.Maps.gschema.xml:61 msgid "OpenStreetMap username or email address" msgstr "نام‌کاربری یا نشانی رایانامهٔ اوپن‌استریت‌مپ" #: data/org.gnome.Maps.gschema.xml:62 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "مشخّص می‌کند که آیا کاربر برای ویرایش داده‌های اوپن‌استریت‌مپ وارد شده یا نه." #: data/org.gnome.Maps.gschema.xml:66 msgid "Last used transportation type for routing" msgstr "آخرین گونهٔ حمل‌ونقل برای مسیریابی" #: data/org.gnome.Maps.gschema.xml:70 msgid "Show scale" msgstr "نمایش مقیاس" #: data/org.gnome.Maps.gschema.xml:71 msgid "Whether to show the scale." msgstr "این که مقیاس نشان داده شود یا نه." #: data/ui/context-menu.ui:6 msgid "Route from Here" msgstr "مسیر از این‌جا" #: data/ui/context-menu.ui:10 msgid "Add Intermediate Destination" msgstr "افزودن مقصد میانی" #: data/ui/context-menu.ui:14 msgid "Route to Here" msgstr "مسیر به این‌جا" #: data/ui/context-menu.ui:20 msgid "What's Here?" msgstr "این‌جا چیست؟" #: data/ui/context-menu.ui:24 msgid "Copy Location" msgstr "رونوشت از مکان" #: data/ui/context-menu.ui:28 msgid "Add to OpenStreetMap…" msgstr "افزودن به اوپن‌استریت‌مپ…" #: data/ui/export-view-dialog.ui:7 msgid "Export view" msgstr "نمای برون‌ریزی" #: data/ui/export-view-dialog.ui:16 data/ui/send-to-dialog.ui:10 #: data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "_لغو" #: data/ui/export-view-dialog.ui:26 msgid "_Export" msgstr "_برون‌ریزی" #. Translators: This is a tooltip #: data/ui/favorite-list-row.ui:72 msgid "Remove Favorite" msgstr "برداشتن برگزیده" #: data/ui/favorites-popover.ui:11 msgid "No Favorites" msgstr "بدون برگزیده" #: data/ui/favorites-popover.ui:12 msgid "Add places to your favorites to get them listed here" msgstr "افزودن نقشه‌ها به برگزیده‌هایتان برای سیاهه شدنشان در این‌جا" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:11 src/geoclue.js:106 msgid "Current Location" msgstr "موقعیت کنونی" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:19 msgid "Layers" msgstr "لایه‌ها" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:11 msgid "Print Route" msgstr "چاپ مسیر" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:21 msgid "Favorites" msgstr "برگزیده‌ها" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:30 msgid "Route Planner" msgstr "برنامه‌ریز مسیر" #: data/ui/help-overlay.ui:12 msgctxt "shortcut window" msgid "General" msgstr "عمومی" #: data/ui/help-overlay.ui:15 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "نمایش میان‌برها" #: data/ui/help-overlay.ui:21 msgctxt "shortcut window" msgid "Search" msgstr "جست‌وجو" #: data/ui/help-overlay.ui:27 msgctxt "shortcut window" msgid "Explore points-of-interest" msgstr "مرور نقطه‌های علاقه‌مندی" #: data/ui/help-overlay.ui:33 msgctxt "shortcut window" msgid "Show last search results" msgstr "نمایش آخرین نتیجه‌ها" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "تغییر وضعیت برنامه‌ریز مسیر" #: data/ui/help-overlay.ui:45 msgctxt "shortcut window" msgid "Print route" msgstr "چاپ مسیر" #: data/ui/help-overlay.ui:51 msgctxt "shortcut window" msgid "Quit" msgstr "خروج" #: data/ui/help-overlay.ui:57 msgctxt "shortcut window" msgid "Open main menu" msgstr "گشودن فهرست اصلی" #: data/ui/help-overlay.ui:65 msgctxt "shortcut window" msgid "Map View" msgstr "نمای نقشه" #: data/ui/help-overlay.ui:68 msgctxt "shortcut window" msgid "Zoom in" msgstr "بزرگ‌نمایی به داخل" #: data/ui/help-overlay.ui:74 msgctxt "shortcut window" msgid "Zoom out" msgstr "بزرگ‌نمایی به خارج" #: data/ui/help-overlay.ui:80 msgctxt "shortcut window" msgid "Rotate clockwise" msgstr "چرخش ساعتگرد" #: data/ui/help-overlay.ui:86 msgctxt "shortcut window" msgid "Rotate counter-clockwise" msgstr "چرخش پادساعتگرد" #: data/ui/help-overlay.ui:92 msgctxt "shortcut window" msgid "Reset rotation" msgstr "بازنشانی چرخش" #: data/ui/help-overlay.ui:98 msgctxt "shortcut window" msgid "Toggle scale" msgstr "تغییر وضعیت مقیاس" #: data/ui/help-overlay.ui:104 msgctxt "shortcut window" msgid "Go to current location" msgstr "رفتن به موقعیت فعلی" #: data/ui/help-overlay.ui:114 msgctxt "shortcut window" msgid "Switch to street view" msgstr "تعویض به نمای خیابانی" #: data/ui/help-overlay.ui:121 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "تعویض به نمای هوایی" #: data/ui/help-overlay.ui:127 msgctxt "shortcut window" msgid "Open shape layer" msgstr "گشودن لایهٔ شکل" #: data/ui/layers-popover.ui:7 msgid "Show Scale" msgstr "نمایش مقیاس" #: data/ui/layers-popover.ui:16 msgid "Enable Experimental Map" msgstr "به کار انداختن نقشهٔ ازمایشی" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:21 msgid "Open Shape Layer…" msgstr "گشودن لایهٔ شکل…" #: data/ui/main-window.ui:8 msgid "Set up OpenStreetMap Account…" msgstr "برپاسازی حساب اوپن‌استریت‌مپ…" #: data/ui/main-window.ui:12 msgid "Export as Image…" msgstr "برون‌ریزی به عنوان تصویر…" #: data/ui/main-window.ui:17 msgid "_Keyboard Shortcuts" msgstr "میان‌برهای _صفحه‌کلید" #: data/ui/main-window.ui:22 msgid "About Maps" msgstr "دربارهٔ نقشه‌ها" #: data/ui/main-window.ui:48 msgid "Main Menu" msgstr "فهرست اصلی" #: data/ui/osm-account-dialog.ui:5 msgid "OpenStreetMap Account" msgstr "حساب اوپن‌استریت‌مپ" #: data/ui/osm-account-dialog.ui:31 msgid "Sign In To Edit Maps" msgstr "ورود برای ویرایش نقشه‌ها" #: data/ui/osm-account-dialog.ui:32 msgid "Help to improve the map, using an OpenStreetMap account." msgstr "کمک به گسترش نقشه با استفاده از حساب اوپن‌استریت‌مپ." #: data/ui/osm-account-dialog.ui:36 msgid "Sign In" msgstr "ورود" #: data/ui/osm-account-dialog.ui:59 msgid "Verification" msgstr "تأیید" #: data/ui/osm-account-dialog.ui:60 msgid "Copy the verification code shown when authorizing access in the browser." msgstr "رونوشت از رمز تأیید نشان داده هنگام گرفتن دسترسی در مرورگر." #: data/ui/osm-account-dialog.ui:69 msgid "Verification Code" msgstr "رمز تأیید" #: data/ui/osm-account-dialog.ui:75 msgid "Verify" msgstr "تأیید" #: data/ui/osm-account-dialog.ui:110 msgid "Signed In" msgstr "وارد شده" #: data/ui/osm-account-dialog.ui:111 msgid "Your OpenStreetMap account is active." msgstr "حساب اوپن‌استریت‌مپتان فعّال است." #: data/ui/osm-account-dialog.ui:129 msgid "Sign Out" msgstr "خروج" #: data/ui/osm-edit-address.ui:11 msgid "Street" msgstr "خیابان" #: data/ui/osm-edit-address.ui:22 msgid "House number" msgstr "پلاک خانه" #: data/ui/osm-edit-address.ui:33 msgid "Postal code" msgstr "کد پستی" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:44 msgid "City" msgstr "شهر" #: data/ui/osm-edit-dialog.ui:8 msgctxt "dialog title" msgid "Edit on OpenStreetMap" msgstr "ویرایش روی اوپن‌استریت‌مپ" #: data/ui/osm-edit-dialog.ui:57 msgid "Type" msgstr "گونه" #: data/ui/osm-edit-dialog.ui:79 msgid "None" msgstr "هیچ‌کدام" #: data/ui/osm-edit-dialog.ui:108 msgid "Add Field" msgstr "افزودن زمینه" #: data/ui/osm-edit-dialog.ui:130 msgid "Comment" msgstr "توضیح" #: data/ui/osm-edit-dialog.ui:158 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "تغییرات نقشه در تمام نقشه‌هایی که از داده‌های\n" "اوپن‌استریت‌مپ استفاده می‌کنند قابل مشاهده است." #: data/ui/osm-edit-dialog.ui:186 msgid "Recently Used" msgstr "به‌تازگی استفاده شده" #: data/ui/osm-edit-dialog.ui:225 src/mapView.js:663 msgid "Cancel" msgstr "لغو" #: data/ui/osm-edit-dialog.ui:238 src/osmEditDialog.js:531 msgid "Next" msgstr "بعدی" #: data/ui/osm-edit-wikipedia.ui:8 msgid "Article" msgstr "مقاله" #: data/ui/osm-edit-wikipedia.ui:21 msgid "Wikidata tag" msgstr "برچسب ویکی‌داده" #: data/ui/osm-edit-wikipedia.ui:32 msgid "Load Wikidata tag for article" msgstr "بار کردن برچسب ویکی‌داده برای مقاله" #: data/ui/place-popover.ui:23 src/searchBar.js:55 msgid "Explore Nearby Places" msgstr "مرور جاهای نزدیک" #: data/ui/place-popover.ui:82 src/application.js:277 msgid "No results found" msgstr "هیچ نتیجه‌ای پیدا نشد" #: data/ui/place-popover.ui:92 src/application.js:255 msgid "An error has occurred" msgstr "خطایی رخ داد" #. Translators: This is a tooltip #: data/ui/route-entry.ui:12 msgid "Change Route Order" msgstr "تغییر ترتیب مسیریابی" #: data/ui/send-to-dialog.ui:7 msgid "Open Location" msgstr "گشودن موقعیت" #: data/ui/send-to-dialog.ui:64 msgid "Copy" msgstr "رونوشت" #: data/ui/send-to-dialog.ui:70 msgid "Send To…" msgstr "فرستادن به…" #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:62 msgid "Open Shape Layer" msgstr "گشودن لایهٔ شکل" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "_گشودن" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:32 msgid "Toggle visible" msgstr "تغییر وضعیت نمایانی" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:44 msgid "Remove Shape Layer" msgstr "برداشتن لایهٔ شکل" #: data/ui/sidebar.ui:207 msgid "Route search by GraphHopper" msgstr "جست‌وجوی مسیر به دست GraphHopper" #: data/ui/sidebar.ui:272 msgid "" "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of " "transportation,\n" "e.g. a national provider might not include airlines, and a local provider could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" "مسیریابی برنامهٔ سفر برای حمل‌ونقل عمومی به دست خدمات ثالث فراهم شده است.\n" "گنوم نمی‌تواند درستی برنامهٔ سفر و زمان‌بندی‌های نمایش داده‌شده را تصمین کند.\n" "به خاطر داشته باشید که ممکن است برخی فراهم‌کنندگان، تمام حالت‌های موجود برای\n" "حمل‌ونقل را نداشته باشند. مثلاً ممکن است یک فراهم‌کنندهٔ ملّی، خطوط هوایی را نداشته\n" "باشد و یک فراهم‌کنندهٔ محلّی می‌تواند قطارهای منطقه‌ای را نشان ندهد.\n" "نام‌ها و برندهای نمایش‌داده‌شده باید هنگام امکان به عنوان علایم تجاری در نظر گرفته " "شوند." #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:98 msgid "Hide intermediate stops and information" msgstr "نهفتن اطّلاعات و توقّف‌های میانی" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:156 msgid "Show intermediate stops and information" msgstr "نمایش اطّلاعات و توقّف‌های میانی" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:16 msgid "Leave Now" msgstr "اکنون خارج شوید" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:17 msgid "Leave By" msgstr "شروع حرکت از" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:18 msgid "Arrive By" msgstr "رسیدن به مقصد از" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:85 msgid "Show" msgstr "نمایش" #: data/ui/transit-options-panel.ui:95 msgid "Buses" msgstr "اتوبوس‌ها" #: data/ui/transit-options-panel.ui:101 msgid "Trams" msgstr "ترامواها" #: data/ui/transit-options-panel.ui:107 msgid "Trains" msgstr "قطارها" #: data/ui/transit-options-panel.ui:113 msgid "Subway" msgstr "مترو" #: data/ui/transit-options-panel.ui:119 msgid "Ferries" msgstr "قایق‌ها" #: data/ui/transit-options-panel.ui:125 msgid "Airplanes" msgstr "هواپیماها" #. Translators: This is a tooltip #: data/ui/place-bar.ui:33 data/ui/place-buttons.ui:27 msgid "Share Location" msgstr "هم‌رسانی مکان" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:11 msgid "Add to new route" msgstr "افزودن به مسیر جدید" #. Translators: This is the button to find a route to a place #: data/ui/place-buttons.ui:15 msgid "Directions" msgstr "مسیرها" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:36 msgid "Mark as Favorite" msgstr "علامت‌گذاری به عنوان برگزیده" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:44 msgid "Edit on OpenStreetMap" msgstr "ویرایش روی اوپن‌استریت‌مپ" #. Translators: This is a tooltip #: data/ui/place-view.ui:52 msgid "Share location" msgstr "هم‌رسانی موقعیت" #: data/ui/poi-category-goback-row.ui:22 msgid "Back to Main Categories" msgstr "بازگشت به دسته‌های اصلی" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:19 msgid "Reset Rotation" msgstr "بازنشانی چرخش" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:32 msgid "Zoom Out" msgstr "کوچک‌نمایی" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:43 src/mapView.js:1238 msgid "Zoom In" msgstr "بزرگ‌نمایی" #: lib/maps-file-data-source.c:262 lib/maps-file-data-source.c:338 #: lib/maps-file-data-source.c:418 msgid "Failed to find tile structure in directory" msgstr "شکست در یافتن ساختار کاشی در شاخه" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "شکست در تجزیهٔ سند XML" #: lib/maps-osm.c:250 lib/maps-osm.c:403 msgid "Missing required attributes" msgstr "ویژگی‌های لازم وجود ندارند" #: lib/maps-osm.c:451 lib/maps-osm.c:494 msgid "Could not find OSM element" msgstr "ناتوان در یافتن عنصر OSM" #: lib/maps-osm.c:508 msgid "Could not find user element" msgstr "ناتوان در یافتن عنصر کاربر" #: src/application.js:78 msgid "A path to a local tiles directory structure" msgstr "مسیری به ساختار شاخهٔ کاشی‌های محلّی" #: src/application.js:84 msgid "Tile size for local tiles directory" msgstr "اندازهٔ شاخهٔ کاشی‌های محلّی" #: src/application.js:88 msgid "Show the version of the program" msgstr "نمایش نگارش برنامه" #: src/application.js:94 msgid "Search for places" msgstr "جست‌وجوی مکان" #: src/application.js:105 src/application.js:106 msgid "[FILE…|URI]" msgstr "[FILE…|URI]" #: src/application.js:284 #, javascript-format msgid "Invalid maps: URI: %s" msgstr "نقشه‌های نامعتبر: نشانی: %s" #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:75 #, javascript-format msgid "Maps at %f, %f.png" msgstr "نقشه‌ها در %If، %If.png" #: src/exportViewDialog.js:174 msgid "Unable to export view" msgstr "ناتوان در برون‌ریزی نما" #: src/favoriteListRow.js:42 msgid "Favorite removed" msgstr "برگزیده برداشته شد" #: src/favoriteListRow.js:43 msgid "Undo" msgstr "برگردان" #: src/geoJSONSource.js:73 msgid "invalid coordinate" msgstr "مختصات نامعتبر" #: src/geoJSONSource.js:126 src/geoJSONSource.js:166 src/geoJSONSource.js:181 msgid "parse error" msgstr "خطای تجزیه" #: src/geoJSONSource.js:160 msgid "unknown geometry" msgstr "هندسهٔ ناشناخته" #: src/graphHopper.js:101 src/transitPlan.js:175 msgid "Route request failed." msgstr "درخواست مسیر شکست خورد." #: src/graphHopper.js:108 src/transitPlan.js:167 msgid "No route found." msgstr "هیچ مسیری پیدا نشد." #: src/graphHopper.js:195 src/transitplugins/openTripPlanner.js:1163 msgid "Start!" msgstr "شروع!" #: src/mainWindow.js:59 msgid "All Layer Files" msgstr "تمام پرونده‌های لایه" #: src/mainWindow.js:522 msgid "Failed to connect to location service" msgstr "شکست در اتّصال به خدمت مکانی" #: src/mainWindow.js:527 msgid "Turn on location services" msgstr "روشن کردن خدمات مکانی" #: src/mainWindow.js:528 msgid "Location Settings" msgstr "تنظیمات موقعیت" #: src/mainWindow.js:645 msgid "translator-credits" msgstr "" "دانیال بهزادی \n" "آرش موسوی " #: src/mainWindow.js:649 msgid "Copyright © 2011 – 2023 Red Hat, Inc. and The GNOME Maps authors" msgstr "حق رونوشت © ۲۰۱۱ – ۲۰۲۳ شرکت ردهت و نگارندگان نقشه‌های گنوم" #: src/mainWindow.js:665 #, javascript-format msgid "Map data by %s and contributors" msgstr "داده‌های نقشه به دست %s و مشارکت‌کنندگان" #: src/mainWindow.js:666 msgid "Map Data Provider" msgstr "فراهم‌کنندهٔ داده‌های نقشه" #: src/mainWindow.js:678 msgid "Map Tile Provider" msgstr "فراهم‌کنندهٔ کاشی نقشه" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:686 #, javascript-format msgid "Map tiles provided by %s" msgstr "کاشی‌های نقشه به دست %s فراهم شده" #: src/mainWindow.js:716 msgid "Search Provider" msgstr "فراهم‌کنندهٔ جست‌وجو" #: src/mainWindow.js:719 #, javascript-format msgid "Search provided by %s using %s" msgstr "جست‌وجو به دست %s با استفاده از %s فراهم شده" #: src/mapView.js:637 src/mapView.js:702 msgid "Failed to open layer" msgstr "شکست در گشودن لایه" #: src/mapView.js:656 msgid "Do you want to continue?" msgstr "می‌خواهید ادامه دهید؟" #: src/mapView.js:657 #, javascript-format msgid "" "You are about to open files with a total size of %s MB. This could take some time " "to load" msgstr "در حال گشودن پرونده‌ای با حجم کل %s م‌ب هستید. بار شدنش ممکن است کمی طول بکشد" #: src/mapView.js:664 src/transitplugins/openTripPlanner.js:1239 #: src/transitplugins/openTripPlanner2.js:267 msgid "Continue" msgstr "ادامه" #: src/mapView.js:696 msgid "File type is not supported" msgstr "گونهٔ پرونده پشتیبانی نمی‌شود" #: src/mapView.js:733 msgid "Failed to open GeoURI" msgstr "شکست در گشودن نشانی جغرافیایی" #: src/mapView.js:1197 msgid "Nothing found here!" msgstr "این‌جا چیزی پیدا نشد!" #: src/mapView.js:1237 msgid "Zoom in to add location" msgstr "بزرگ‌نمایی برای افزودن مکان" #: src/mapView.js:1258 msgid "Location was added in OpenStreetMap" msgstr "مکان به اوپن استریت مپ افزوده شد" #. switch back to the sign-in view, and show a toast indicating #. that verification failed #: src/osmAccountDialog.js:134 msgid "The verification code didn’t match, please try again." msgstr "کد تأیید مطابق نبود، لطفاً دوباره بیازمایید." #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:335 msgid "Incorrect user name or password" msgstr "گذرواژه یا نام‌کاربری نادرست" #: src/osmConnection.js:337 msgid "Success" msgstr "موفّقیت" #: src/osmConnection.js:339 msgid "Bad request" msgstr "درخواست بد" #: src/osmConnection.js:341 msgid "Object not found" msgstr "شی پیدا نشد" #: src/osmConnection.js:343 msgid "Conflict, someone else has just modified the object" msgstr "تداخل، گسی دیگر به تازگی شی را تغییر داده" #: src/osmConnection.js:345 msgid "Object has been deleted" msgstr "شی پاک شد" #: src/osmConnection.js:347 msgid "Way or relation refers to non-existing children" msgstr "راه یا ارتباط به فرزندی ناموجود اشاره می‌کند" #: src/osmEditDialog.js:106 msgid "Name" msgstr "نام" #: src/osmEditDialog.js:109 msgid "The official name. This is typically what appears on signs." msgstr "نام رسمی. معمولاً نامیست که روی تابلوها نوشته." #: src/osmEditDialog.js:112 msgid "Address" msgstr "نشانی" #: src/osmEditDialog.js:120 src/placeView.js:275 msgid "Website" msgstr "پایگاه وب" #: src/osmEditDialog.js:124 msgid "This is not a valid URL. Make sure to include http:// or https://." msgstr "نشنی اینترنتی معتبر نیست. مطمئن شوید دارای ‪http://‬ یا ‪https://‬ است." #: src/osmEditDialog.js:125 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://example." "com instead of http://example.com/index.html." msgstr "" "پایگاه وب رسمی. سعی کنید از ساده‌ترین شکل آدرس استفاده کنید مثلا http://example." "com به جای http://example.com/index.html." #: src/osmEditDialog.js:130 msgid "Phone" msgstr "تلفن" #: src/osmEditDialog.js:134 msgid "" "Phone number. Use the international format, starting with a + sign. Beware of " "local privacy laws, especially for private phone numbers." msgstr "" "شماره تلفن. از قالب بین‌المللی که با + شروع می‌شود اشتفاده کنید. لطفاً قوانین " "محرمانگی محلّی را در نظر داشته باشید، به خصوص برای شماره‌های تلفن خصوصی." #: src/osmEditDialog.js:139 msgid "E-mail" msgstr "رایانامه" #: src/osmEditDialog.js:144 msgid "" "This is not a valid email address. Make sure to not include the mailto: protocol " "prefix." msgstr "نشانی رایانامه معتبر نیست. مطمئن شوید دارای پیشوند شیوه‌نامهٔ ‪mailto:‬ نیست." #: src/osmEditDialog.js:145 msgid "" "Contact email address for inquiries. Add only email addresses that are intended " "to be publicly used." msgstr "" "نشانی رایانامهٔ تمایش برای پرس‌وجوها. تنها نشانی‌های رایانامه‌ای را بیفزایید که برای " "استفادهٔ عمومی در نظر گرفته شده‌اند." #. Translators: This is the text for the "Wikipedia" link at the end #. of summaries #: src/osmEditDialog.js:149 src/placeView.js:727 msgid "Wikipedia" msgstr "ویکی‌پدیا" #: src/osmEditDialog.js:156 src/placeView.js:399 msgid "Opening hours" msgstr "ساعت‌های کار" #: src/osmEditDialog.js:161 msgid "See the link in the label for help on format." msgstr "پیوند روی برچسب را برای راهنمایی قالب ببینید." #. TODO: this is a bit of a work-around to re-interpret the population, #. * stored as a string into an integer to convert back to a locale- #. * formatted string. Ideally it should be kept as an integer value #. * in the Place class. But this will also need to be handled by the #. * PlaceStore, possible in a backwards-compatible way #. #: src/osmEditDialog.js:164 src/placeView.js:509 msgid "Population" msgstr "جمعیت" #: src/osmEditDialog.js:169 src/placeView.js:538 msgid "Altitude" msgstr "بلندی" #: src/osmEditDialog.js:172 msgid "Elevation (height above sea level) of a point in meters." msgstr "بلندی (فاصله از سطح دریا) یک نقطه به متر." #: src/osmEditDialog.js:175 msgid "Wheelchair access" msgstr "دسترسی صندلی چرخ‌دار" #: src/osmEditDialog.js:178 src/osmEditDialog.js:187 src/osmEditDialog.js:198 #: src/osmEditDialog.js:233 msgid "Yes" msgstr "بله" #: src/osmEditDialog.js:179 src/osmEditDialog.js:188 src/osmEditDialog.js:199 #: src/osmEditDialog.js:234 msgid "No" msgstr "خیر" #: src/osmEditDialog.js:180 msgid "Limited" msgstr "محدود" #: src/osmEditDialog.js:181 msgid "Designated" msgstr "تعیین شده" #: src/osmEditDialog.js:184 msgid "Internet access" msgstr "دسترسی اینترنتی" #: src/osmEditDialog.js:189 msgid "Wi-Fi" msgstr "وای‌فای" #: src/osmEditDialog.js:190 msgid "Wired" msgstr "سیمی" #: src/osmEditDialog.js:191 msgid "Terminal" msgstr "پایانه" #: src/osmEditDialog.js:192 msgid "Service" msgstr "خدمت" #: src/osmEditDialog.js:195 msgid "Takeout" msgstr "بیرون بردن" #: src/osmEditDialog.js:200 msgid "Only" msgstr "فقط" #: src/osmEditDialog.js:203 msgid "Religion" msgstr "دین" #: src/osmEditDialog.js:206 src/translations.js:286 msgid "Animism" msgstr "جانگرایی" #: src/osmEditDialog.js:207 msgid "Bahá’í" msgstr "بهایی" #: src/osmEditDialog.js:208 src/translations.js:288 msgid "Buddhism" msgstr "بوداییسم" #: src/osmEditDialog.js:209 src/translations.js:289 msgid "Caodaism" msgstr "کایوداییسم" #: src/osmEditDialog.js:210 src/translations.js:290 msgid "Christianity" msgstr "مسیحیت" #: src/osmEditDialog.js:211 src/translations.js:291 msgid "Confucianism" msgstr "کنفسیوسیسم" #: src/osmEditDialog.js:212 src/translations.js:292 msgid "Hinduism" msgstr "هندوییسم" #: src/osmEditDialog.js:213 src/translations.js:293 msgid "Jainism" msgstr "برهما‌بوداییسم" #: src/osmEditDialog.js:214 src/translations.js:294 msgid "Judaism" msgstr "یهودیت" #: src/osmEditDialog.js:215 src/translations.js:295 msgid "Islam" msgstr "اسلام" #: src/osmEditDialog.js:216 src/translations.js:296 msgid "Multiple Religions" msgstr "دین‌های مختلف" #: src/osmEditDialog.js:217 src/translations.js:297 msgid "Paganism" msgstr "پگانیسم" #: src/osmEditDialog.js:218 src/translations.js:298 msgid "Pastafarianism" msgstr "پاستاپرستی" #: src/osmEditDialog.js:219 src/translations.js:299 msgid "Scientology" msgstr "علمگرایی" #: src/osmEditDialog.js:220 src/translations.js:300 msgid "Shinto" msgstr "شینتو" #: src/osmEditDialog.js:221 src/translations.js:301 msgid "Sikhism" msgstr "سیک" #: src/osmEditDialog.js:222 src/translations.js:302 msgid "Spiritualism" msgstr "روحگرایی" #: src/osmEditDialog.js:223 src/translations.js:303 msgid "Taoism" msgstr "تائوییسم" #: src/osmEditDialog.js:224 src/translations.js:304 msgid "Unitarian Universalism" msgstr "جهانگرایی یکتاپرست" #: src/osmEditDialog.js:225 src/translations.js:305 msgid "Voodoo" msgstr "وودو" #: src/osmEditDialog.js:226 src/translations.js:306 msgid "Yazidism" msgstr "یزیدی" #: src/osmEditDialog.js:227 src/translations.js:307 msgid "Zoroastrianism" msgstr "زرتشتی" #: src/osmEditDialog.js:230 src/poiCategories.js:176 msgid "Toilets" msgstr "دستشویی‌ها" #: src/osmEditDialog.js:237 msgid "Note" msgstr "نکته" #: src/osmEditDialog.js:240 msgid "" "Information used to inform other mappers about non-obvious information about an " "element, the author’s intent when creating it, or hints for further improvement." msgstr "" "اطّلاعات برای آگاه کردن دیگر نقشه‌کش‌ها دربارهٔ اطّلاعات نابدیهی دربارهٔ یک عنصر، قصد " "نگارنده هنگام ایجادش یا راهنمایی برای بهبودهای بعدی." #: src/osmEditDialog.js:339 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "افزودن به اوپن‌استریت‌مپ" #: src/osmEditDialog.js:393 msgid "Select Type" msgstr "گزینش گونه" #: src/osmEditDialog.js:515 msgid "Done" msgstr "انجام شد" #: src/osmEditDialog.js:818 msgid "" "The format used should include the language code and the article title like “en:" "Article title”." msgstr "" "قالب استفاده شده باید شامل کد زبان و عنوان مقاله باید مثل «en:Article title» باشد." #: src/osmEditDialog.js:824 msgid "Use the reload button to load the Wikidata tag for the selected article" msgstr "از دکمهٔ بازخوانی برای بار کردن برچسب ویکی‌دادهٔ مقالهٔ برگزیده استفاده کنید" #: src/osmEditDialog.js:832 msgid "Couldn't find Wikidata tag for article" msgstr "ناتوانی در یافتن برچسب ویکی‌دادهٔ مقاله" #: src/photonUtils.js:118 msgid "Unnamed place" msgstr "مکان بی‌نام" #: src/placeEntry.js:274 msgid "Failed to parse Geo URI" msgstr "شکست در تجزیهٔ نشانی جغرافیایی" #: src/placeEntry.js:286 msgid "Failed to parse Maps URI" msgstr "شکست در تجزیهٔ نشانی نقشه‌ها" #. 300 ft (300 * 12 * 0.0254 m) #. #. * Translators: This a format string for showing a distance to a place #. * is lower than a "quite short" distance. #. * The "less than" symbol can be substituded with an appropriate one, if #. * needed (e.g. using the correct direction, or alternative symbol). #. * The %s should be kept, and is substituted with a label representing the #. * short distance. The \u2009 (thin space) could also be adjusted if needed #: src/placeListRow.js:46 #, javascript-format msgctxt "short distance format string" msgid "< %s" msgstr "< %s" #: src/placeView.js:263 msgid "Coordinates" msgstr "مختصات" #: src/placeView.js:267 msgid "Accuracy" msgstr "دقّت" #. Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) #: src/placeView.js:270 #, javascript-format msgid "Accuracy: %s" msgstr "دقّت: %s" #. since the phone numbers are typically always rendered #. * left-to-right, insert an explicit LRM char to avoid issues #. * with phone numbers in international format starting with a + #. * which is considered a "weak" character to determine Unicode #. * text direction #. #: src/placeView.js:289 msgid "Phone number" msgstr "شماره تلفن" #: src/placeView.js:308 msgid "Email" msgstr "رایانامه" #. If a reference to a named floor (named or symbolic) exists #. * refer to it directly. #. #. Translators: #. * This is a reference to named building floor, using a label #. * or a code, as "displayed in the elevator" #. #: src/placeView.js:323 src/placeView.js:362 msgid "Floor" msgstr "طبقه" #: src/placeView.js:325 #, javascript-format msgid "Floor %s" msgstr "طبقهٔ %s" #: src/placeView.js:337 msgid "At ground level" msgstr "در سطح زمین" #. Translators: #. * This is a reference to a number of floors above #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:346 #, javascript-format msgid "%s floor above ground level" msgid_plural "%s floors above ground level" msgstr[0] "%s طبقه بالای سطح" #. Translators: #. * This is a reference to a number of floors below #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:357 #, javascript-format msgid "%s floor below ground level" msgid_plural "%s floors below ground level" msgstr[0] "%s طبقه زیر سطح" #. Translators: #. * The establishment offers customers to purchase meals #. * (or similar) to be consumed elsewhere #. #: src/placeView.js:375 msgid "Offers takeout" msgstr "ارائه بیرون بردنی" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed on-premise. #. #: src/placeView.js:383 msgid "Does not offer takeout" msgstr "بدون ارائه بیرون بردنی" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed elsewhere. E.g. #. * there is no seating on-premise for eating/drinking #. #: src/placeView.js:392 msgid "Only offers takeout" msgstr "فقط ارائه بیرون‌بردنی" #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/placeView.js:409 msgid "Public internet access" msgstr "دسترسی عمومی به اینترنت" #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/placeView.js:418 msgid "No internet access" msgstr "بدون دسترسی به اینترنت" #. Translators: #. * This means a WLAN Hotspot, also known as wireless, wifi or Wi-Fi. #. #: src/placeView.js:426 msgid "Public Wi-Fi" msgstr "وای‌فای عمومی" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/placeView.js:434 msgid "Wired internet access" msgstr "دسترسی سیمی به اینترنت" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/placeView.js:442 msgid "Computers available for use" msgstr "رایانه‌های موجود برای استفاده" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/placeView.js:450 msgid "Internet assistance available" msgstr "همیار اینترنت در دسترس" #: src/placeView.js:456 msgid "No toilets available" msgstr "دستشویی در دسترس نیست" #: src/placeView.js:459 msgid "Toilets available" msgstr "دستشویی در دسترس" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #: src/placeView.js:468 msgid "Wheelchair accessible" msgstr "قابل دسترسی با صندلی چرخ‌دار" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/placeView.js:478 msgid "Limited wheelchair accessibility" msgstr "قابلیت دسترسی محدود با صندلی چرخ‌دار" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #: src/placeView.js:487 msgid "Not wheelchair accessible" msgstr "بدون قابلیت دسترسی با صندلی چرخ‌دار" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/placeView.js:497 msgid "Designated for wheelchair users" msgstr "مخصوص استفاده‌کنندگان از صندلی چرخ‌دار" #. * #. * Translators: this is a label indicating an altitude below #. * sea level, where the %s placeholder is the altitude relative #. * to mean sea level in the "negative direction" #. #: src/placeView.js:528 #, javascript-format msgid "%s below sea level" msgstr "%s زیر سطح دریا" #. * #. * Translators: this indicates a place is located at (or very #. * close to) mean sea level #. #: src/placeView.js:535 msgid "At sea level" msgstr "در سطح دریا" #: src/placeView.js:544 msgid "Religion:" msgstr "دین:" #: src/place.js:568 msgid "Place not found in OpenStreetMap" msgstr "مکان در اوپن استریت مپ پیدا نشد" #: src/place.js:575 msgid "Coordinates in URL are not valid" msgstr "مختصات نشانی نامعتبر" #: src/place.js:584 msgid "URL is not supported" msgstr "نشانی پشتیبانی نمی‌شود" #: src/poiCategories.js:132 msgid "Amenities" msgstr "پناهگاه‌ها" #: src/poiCategories.js:135 msgid "ATMs" msgstr "خودپردازها" #: src/poiCategories.js:141 msgid "Post Boxes" msgstr "صندوق‌های پستی" #: src/poiCategories.js:147 msgid "Post Offices" msgstr "اداره‌های پست" #: src/poiCategories.js:153 msgid "Police" msgstr "پلیس" #: src/poiCategories.js:159 msgid "Libraries" msgstr "کتابخانه‌ها" #: src/poiCategories.js:165 msgid "Pharmacies" msgstr "داروخانه‌ها" #: src/poiCategories.js:171 msgid "Recycling" msgstr "بازیافت" #: src/poiCategories.js:182 msgid "Wheelchair-accessible Toilets" msgstr "دستشویی‌های قابل دسترسی با صندلی چرخ‌دار" #: src/poiCategories.js:188 msgid "Baggage Lockers" msgstr "قفسه‌های چمدان" #: src/poiCategories.js:196 msgid "Eating & Drinking" msgstr "خورد و خوراک" #: src/poiCategories.js:200 msgid "Restaurants" msgstr "رستوران‌ها" #: src/poiCategories.js:205 msgid "Fast Food" msgstr "غذای سریع" #: src/poiCategories.js:210 msgid "Food Courts" msgstr "مجموعهٔ غذایی" #: src/poiCategories.js:215 msgid "Pubs" msgstr "میخانه‌ها" #: src/poiCategories.js:221 msgid "Bars" msgstr "نوشخانه‌ها" #: src/poiCategories.js:226 msgid "Cafes" msgstr "کافه‌ها" #: src/poiCategories.js:231 msgid "Ice Cream" msgstr "بستنی" #: src/poiCategories.js:236 msgid "Food, Snacks, and Beverage Machines" msgstr "دستگاه‌های غذا و نوشیدنی" #: src/poiCategories.js:244 msgid "Shopping" msgstr "خرید" #: src/poiCategories.js:248 msgid "Supermarkets" msgstr "سوپرمارکت‌ها" #: src/poiCategories.js:254 msgid "Convenience Stores" msgstr "فروشگاه‌های راحتی" #: src/poiCategories.js:259 msgid "Shopping Malls" msgstr "پاساژهای خرید" #: src/poiCategories.js:265 msgid "Clothes" msgstr "لباس" #: src/poiCategories.js:271 msgid "Shoes" msgstr "کفش" #: src/poiCategories.js:276 msgid "Electronics" msgstr "لوازم برقی" #: src/poiCategories.js:282 msgid "Alcohol" msgstr "الکل" #: src/poiCategories.js:288 msgid "Bakeries" msgstr "نانوایی‌ّا" #: src/poiCategories.js:294 msgid "Flowers" msgstr "گل‌فروشی‌ها" #: src/poiCategories.js:301 msgid "Transportation" msgstr "حمل‌ونقل" #: src/poiCategories.js:305 msgid "Bus & Tram Stops" msgstr "ایستگاه‌های اتوبوس و قطار" #: src/poiCategories.js:313 msgid "Train & Subway Stations" msgstr "ایستگاه‌های قطار و قطار شهری" #: src/poiCategories.js:321 msgid "Tickets" msgstr "بلیت" #: src/poiCategories.js:329 msgid "Parking" msgstr "پارکینگ" #: src/poiCategories.js:334 msgid "Bicycle Parking" msgstr "پارکینگ دوچرخه" #: src/poiCategories.js:339 msgid "Bicycle Rental" msgstr "اجارهٔ دوچرخه" #: src/poiCategories.js:344 msgid "Car Rental" msgstr "اجارهٔ ماشین" #: src/poiCategories.js:349 msgid "Fuel" msgstr "سوخت" #: src/poiCategories.js:354 msgid "EV Charging" msgstr "شارژ خودروی برقی" #: src/poiCategories.js:362 msgid "Healthcare" msgstr "بهداری‌های" #: src/poiCategories.js:366 msgid "Clinics" msgstr "درمانگاه‌ها" #: src/poiCategories.js:372 msgid "Hospitals" msgstr "بیمارستان‌ها" #: src/poiCategories.js:378 msgid "Dentists" msgstr "دندان‌پزشکی‌ها" #: src/poiCategories.js:386 msgid "Accommodation" msgstr "اقامتگاه" #: src/poiCategories.js:390 msgid "Hotels" msgstr "هتل‌ها" #: src/poiCategories.js:395 msgid "Hostels" msgstr "خوابگاه‌ها" #: src/poiCategories.js:400 msgid "Bed & Breakfast" msgstr "تخت و ناشتا" #: src/poiCategories.js:405 msgid "Campings" msgstr "کمپ" #: src/poiCategories.js:412 msgid "Recreation" msgstr "تفریح" #: src/poiCategories.js:416 msgid "Parks" msgstr "پارک‌ها" #: src/poiCategories.js:421 msgid "Playgrounds" msgstr "زمین‌های بازی" #: src/poiCategories.js:425 msgid "Beaches" msgstr "ساحل‌ها" #: src/poiCategories.js:430 msgid "Nature Reserves" msgstr "ذخایر طبیعی" #: src/poiCategories.js:436 msgid "Theme Parks" msgstr "شهربازی‌ها" #: src/poiCategories.js:441 msgid "Theaters" msgstr "تماشاخانه‌ها" #: src/poiCategories.js:447 msgid "Movie Theaters" msgstr "سالن‌های سینما" #: src/poiCategories.js:453 msgid "Night Clubs" msgstr "باشگاه‌های شبانه" #: src/poiCategories.js:460 msgid "Tourism" msgstr "گردشگری" #: src/poiCategories.js:464 msgid "Museums" msgstr "موزه" #: src/poiCategories.js:470 msgid "Attractions" msgstr "جاذبه‌ها" #: src/poiCategories.js:475 msgid "Artworks" msgstr "کارهای هنری" #: src/poiCategories.js:480 msgid "Tourist Information" msgstr "اطّلاعات گردشگری" #: src/poiCategories.js:487 msgid "Sports" msgstr "ورزشی" #: src/poiCategories.js:491 msgid "Gyms" msgstr "ورزشگاه‌ها" #: src/poiCategories.js:497 msgid "Outdoor Gyms" msgstr "ورزشگاه‌های سرباز" #: src/poiCategories.js:503 msgid "Golf Courses" msgstr "زمین‌های گلف" #: src/printLayout.js:350 #, javascript-format msgid "From %s to %s" msgstr "از %s تا %s" #: src/printOperation.js:49 msgid "Loading map tiles for printing" msgstr "در حال بار کردن کاشی‌های نقشه برای چاپ" #: src/printOperation.js:50 msgid "You can abort printing if this takes too long" msgstr "اگر خیلی طول کشید، می‌توانید چاپ را خاتمه دهید" #: src/printOperation.js:52 msgid "Abort printing" msgstr "خاتمهٔ چاپ" #. Translators: this is add via location tooltip #: src/routeEntry.js:60 msgid "Add via location" msgstr "افزودن از راه موقعیت" #. Translators: this is remove via location tooltip #: src/routeEntry.js:70 msgid "Remove via location" msgstr "برداشتن از راه موقعیت" #. Translators: this is reverse route tooltip #: src/routeEntry.js:76 msgid "Reverse route" msgstr "مسیر برعکس" #: src/searchBar.js:45 msgid "Search" msgstr "جست‌وجو" #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:84 #, javascript-format msgid "Add %s to %s" msgstr "افزودن %s به %s" #: src/sendToDialog.js:181 msgid "Failed to open URI" msgstr "شکست در گشودن نشانی" #: src/sendToDialog.js:246 #, javascript-format msgid "Open with %s" msgstr "گشودن با %s" #: src/shapeLayer.js:109 msgid "failed to load file" msgstr "شکست در بارگیری پرونده" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:328 #, javascript-format msgid "Estimated time: %s" msgstr "زمان تخمینی: %s" #: src/sidebar.js:398 #, javascript-format msgid "Itineraries provided by %s" msgstr "برنامه سفر فراهم شده به دست %s" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:39 #, javascript-format msgid "Start at %s" msgstr "شروع در %s" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:45 src/transitplugins/openTripPlanner2.js:236 msgid "Start" msgstr "شروع" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:63 #, javascript-format msgid "Walk %s" msgstr "%s قدم بزنید" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:77 #, javascript-format msgid "Arrive at %s" msgstr "رسیدن به مقصد در %s" #: src/transit.js:79 src/transitplugins/openTripPlanner.js:1176 #: src/transitplugins/openTripPlanner2.js:255 msgid "Arrive" msgstr "رسیدن" #: src/transitLegRow.js:69 msgid "Show walking instructions" msgstr "نمایش دستور کار قدم زدن" #: src/transitLegRow.js:70 msgid "Hide walking instructions" msgstr "نهفتن دستور کار قدم زدن" #: src/transitMoreRow.js:37 msgid "Load earlier alternatives" msgstr "بار کردن جایگزین‌های قدیمی‌تر" #: src/transitMoreRow.js:39 msgid "Load later alternatives" msgstr "بار کردن جایگزین‌های جدیدتر" #: src/transitMoreRow.js:52 msgid "No earlier alternatives found." msgstr "جایگزین‌های قدیمی‌تری پیدا نشدند." #: src/transitMoreRow.js:54 msgid "No later alternatives found." msgstr "جایگزین‌های جدیدتری پیدا نشدند." #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:138 msgctxt "month-day-date" msgid "%b %e" msgstr "%b %Oe" #: src/transitPlan.js:171 msgid "No timetable data found for this route." msgstr "برای این مسیر هیچ دادهٔ جدول زمانی‌ای پیدا نشد." #: src/transitPlan.js:179 msgid "No provider found for this route." msgstr "برای این مسیر هیچ فراهم کننده‌ای پیدا نشد." #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:300 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:331 #, javascript-format msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "%s دقیقه" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:343 #, javascript-format msgid "%s hour" msgid_plural "%s hours" msgstr[0] "%s ساعت" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:351 #, javascript-format msgid "%s:%s hour" msgid_plural "%s:%s hours" msgstr[0] "%s:%s ساعت" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:744 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: src/translations.js:55 msgid "Around the clock" msgstr "حدود ساعت" #: src/translations.js:57 msgid "From sunrise to sunset" msgstr "از سپیده‌دم تا غروب" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:123 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s و %s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:137 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s، %s و %s" #: src/translations.js:156 msgid "Every day" msgstr "هر روز" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:168 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:179 msgid "Public holidays" msgstr "تعطیلات عمومی" #: src/translations.js:181 msgid "School holidays" msgstr "تعطیلات مدرسه" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:221 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s، %s" #: src/translations.js:235 msgid "not open" msgstr "باز نیست" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:250 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:287 msgid "Bahá'í" msgstr "بهایی" #. Translators: Accuracy of user location information #: src/utils.js:248 msgid "Unknown" msgstr "ناشناخته" #. Translators: Accuracy of user location information #: src/utils.js:251 msgid "Exact" msgstr "دقیقاً" #. Translators: this is a duration with only hours, using #. * an abbreviation for hours, corresponding to 'h' in English #. #: src/utils.js:307 #, javascript-format msgid "%s h" msgstr "%s س" #. Translators: this is a duration with hours and minutes parts #. * using abbreviations for hours and minutes, corresponding to 'h' #. * and 'min' in English. The minutes has appropriate plural variations #. #: src/utils.js:313 #, javascript-format msgid "%s h %s min" msgid_plural "%s h %s min" msgstr[0] "%s س %s د" #. Translators: this is a duration with minutes part #. * using abbreviation for minutes, corresponding to 'min' in English #. * with appropriate plural variations #. #: src/utils.js:320 #, javascript-format msgid "%s min" msgid_plural "%s min" msgstr[0] "%s د" #. Translators: this is a duration of less than one minute #. * with seconds using an abbreviation for seconds, corresponding to #. * 's' in English with appropriate plural forms #. #: src/utils.js:326 #, javascript-format msgid "%s s" msgid_plural "%s s" msgstr[0] "%s ث" #. Translators: This is a distance measured in kilometers #: src/utils.js:337 #, javascript-format msgid "%s km" msgstr "%s ک‌م" #. Translators: This is a distance measured in meters #: src/utils.js:340 #, javascript-format msgid "%s m" msgstr "%s م" #. Translators: This is a distance measured in miles #: src/utils.js:348 #, javascript-format msgid "%s mi" msgstr "%s ما" #. Translators: This is a distance measured in feet #: src/utils.js:351 #, javascript-format msgid "%s ft" msgstr "%s پا" #: src/transitplugins/goMetro.js:61 msgid "This plugin doesn't support latest arrival" msgstr "این افزایه، جدیدترین زمان حضور را پشتیبانی نمی‌کند" #: src/transitplugins/openTripPlanner.js:1237 #: src/transitplugins/openTripPlanner2.js:266 #, javascript-format msgid "Continue on %s" msgstr "در %s ادامه دهید" #: src/transitplugins/openTripPlanner.js:1242 #: src/transitplugins/openTripPlanner2.js:270 #, javascript-format msgid "Turn left on %s" msgstr "در %s به چپ بپیچید" #: src/transitplugins/openTripPlanner.js:1244 #: src/transitplugins/openTripPlanner2.js:271 msgid "Turn left" msgstr "به چپ بپیچید" #: src/transitplugins/openTripPlanner.js:1247 #: src/transitplugins/openTripPlanner2.js:275 #, javascript-format msgid "Turn slightly left on %s" msgstr "در %s آرام به چپ بپیچید" #: src/transitplugins/openTripPlanner.js:1249 #: src/transitplugins/openTripPlanner2.js:276 msgid "Turn slightly left" msgstr "آرام به چپ بپیچید" #: src/transitplugins/openTripPlanner.js:1252 #: src/transitplugins/openTripPlanner2.js:280 #, javascript-format msgid "Turn sharp left on %s" msgstr "در %s تند به چپ بپیچید" #: src/transitplugins/openTripPlanner.js:1254 #: src/transitplugins/openTripPlanner2.js:281 msgid "Turn sharp left" msgstr "تند به چپ بپیچید" #: src/transitplugins/openTripPlanner.js:1257 #: src/transitplugins/openTripPlanner2.js:284 #, javascript-format msgid "Turn right on %s" msgstr "در %s به راست بپیچید" #: src/transitplugins/openTripPlanner.js:1259 #: src/transitplugins/openTripPlanner2.js:285 msgid "Turn right" msgstr "به راست بپیچید" #: src/transitplugins/openTripPlanner.js:1262 #: src/transitplugins/openTripPlanner2.js:289 #, javascript-format msgid "Turn slightly right on %s" msgstr "در %s آرام به راست بپیچید" #: src/transitplugins/openTripPlanner.js:1264 #: src/transitplugins/openTripPlanner2.js:290 msgid "Turn slightly right" msgstr "آرام به راست بپیچید" #: src/transitplugins/openTripPlanner.js:1267 #: src/transitplugins/openTripPlanner2.js:294 #, javascript-format msgid "Turn sharp right on %s" msgstr "در %s تند به راست بپیچید" #: src/transitplugins/openTripPlanner.js:1269 #: src/transitplugins/openTripPlanner2.js:295 msgid "Turn sharp right" msgstr "تند به رایت بپیچید" #: src/transitplugins/openTripPlanner.js:1275 #: src/transitplugins/openTripPlanner2.js:302 #, javascript-format msgid "At the roundabout, take exit %s" msgstr "در میدان از %s خارج شوید" #: src/transitplugins/openTripPlanner.js:1277 #: src/transitplugins/openTripPlanner2.js:305 #, javascript-format msgid "At the roundabout, take exit to %s" msgstr "در میدان به %s خارج شوید" #: src/transitplugins/openTripPlanner.js:1279 #: src/transitplugins/openTripPlanner2.js:307 msgid "Take the roundabout" msgstr "وارد میدان شوید" #: src/transitplugins/openTripPlanner.js:1283 #: src/transitplugins/openTripPlanner2.js:315 #, javascript-format msgid "Take the elevator and get off at %s" msgstr "وارد آسانسور شده و در %s حارج شوید" #: src/transitplugins/openTripPlanner.js:1285 #: src/transitplugins/openTripPlanner2.js:316 msgid "Take the elevator" msgstr "وارد آسانسور شوید" #: src/transitplugins/openTripPlanner.js:1289 #: src/transitplugins/openTripPlanner2.js:320 #, javascript-format msgid "Make a left u-turn onto %s" msgstr "به %s گردش به چپ کنید" #: src/transitplugins/openTripPlanner.js:1291 #: src/transitplugins/openTripPlanner2.js:321 msgid "Make a left u-turn" msgstr "گردش به چپ کنید" #: src/transitplugins/openTripPlanner.js:1294 #: src/transitplugins/openTripPlanner2.js:325 #, javascript-format msgid "Make a right u-turn onto %s" msgstr "به %s گردش به راست کنید" #: src/transitplugins/openTripPlanner.js:1296 #: src/transitplugins/openTripPlanner2.js:326 msgid "Make a right u-turn" msgstr "گردش به راست کنید" #~ msgid "Sign in to edit maps" #~ msgstr "ورود به ویرایش نقشه‌ها" #~ msgid "" #~ "Sign in to authorize access in a web browser.\n" #~ "Then fill in the obtained verification code here in the next step." #~ msgstr "" #~ "برای دادن دسترسی در مرورگر وبی وارد شوید.\n" #~ "سپس رمز تأیید به دست آمده را در گام بعدی این‌جا پر کنید." #~ msgid "Signed In" #~ msgstr "وارد شده" #~ msgid "Sign up" #~ msgstr "ثبت‌نام" #~ msgid "Filesystem is read only" #~ msgstr "سامانه‌پرونده فقط-خواندنی است" #~ msgid "You do not have permission to save there" #~ msgstr "برای ذخیره در آن‌جا دسترسی ندارید" #~ msgid "The directory does not exist" #~ msgstr "شاخه وجود ندارد" #~ msgid "No filename specified" #~ msgstr "نامی برای پرونده مشخّص نشده" #~ msgid "" #~ "Location was added to the map, note that it may take a while before it shows " #~ "on the map and in search results." #~ msgstr "" #~ "موقعیت به نقشه اضافه شد. خواستان باشد که نمایشش در نقشه و نتایج جست‌وجو، ممکن " #~ "است کمی طول بکشد." #~ msgid "Takeaway" #~ msgstr "بیرون‌بردنی" #~ msgid "Go to current location" #~ msgstr "رفتن به موقعیت فعلی" #~ msgid "Choose map type" #~ msgstr "گزینش گونهٔ نقشه" #~ msgid "Zoom in" #~ msgstr "بزرگ‌نمایی به داخل" #~ msgid "Drag to change order of the route" #~ msgstr "برای تغییر ترتیب مسیر بکشید" #~ msgid "A map application for GNOME" #~ msgstr "یک برنامهٔ نقشه برای گنوم" #~ msgid "Failed to authorize access" #~ msgstr "شکست در تأیید هویت دسترسی" #~ msgid "Try again" #~ msgstr "تلاش دوباره" #~ msgid "Include route and markers" #~ msgstr "شامل مسیر و علائم شدن" #~ msgid "Use hybrid aerial tiles" #~ msgstr "استفاده از کاشی‌های هوایی پیوندی" #~ msgid "Whether aerial tiles should use hybrid style (with labels)." #~ msgstr "این که کاشی‌های هوایی باید از سبک پیوندی (با برچسب‌ها) استفاده کنند یا نه." #~ msgid "Show Labels" #~ msgstr "نمایش برچسب‌ها" #~ msgid "Foursquare check-in privacy setting" #~ msgstr "تنظیمات محرمانگی اعلام حضور فوراسکور" #~ msgid "" #~ "Latest used Foursquare check-in privacy setting. Possible values are: public, " #~ "followers or private." #~ msgstr "" #~ "آخرین تنظیمات استفاده شدهٔ محرمانگی اعلام حضور فوراسکور. مقادیر مجاز عبارتند " #~ "از: public، followers یا private." #~ msgid "Foursquare check-in Facebook broadcasting" #~ msgstr "اعلام حضور در فوراسکور و انتشار در فیس‌بوک" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a post in the " #~ "Facebook account associated with the Foursquare account." #~ msgstr "" #~ "مشخّص می‌کند که آیا فوراسکور باید اعلام حضور را به عنوان یک فرسته در حساب فیس‌بوک " #~ "مرتبط با حساب فوراسکور منتشر کند یا نه." #~ msgid "Foursquare check-in Twitter broadcasting" #~ msgstr "اعلام حضور فوراسکور و انتشار در توییتر" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a tweet in the " #~ "Twitter account associated with the Foursquare account." #~ msgstr "" #~ "مشخّص می‌کند که آیا فوراسکور باید اعلام حضور را به عنوان یک توییت در حساب توییتر " #~ "مرتبط با حساب فوراسکور منتشر کند یا نه." #~ msgid "Visibility" #~ msgstr "نمایانی" #~ msgid "Post on Facebook" #~ msgstr "فرستادن به فیس‌بوک" #~ msgid "Post on Twitter" #~ msgstr "فرستادن به توییتر" #~ msgid "C_heck in" #~ msgstr "اعلام _حضور" #~ msgid "Public" #~ msgstr "عمومی" #~ msgid "Private" #~ msgstr "خصوصی" #~ msgid "Maps is offline!" #~ msgstr "نقشه‌ها برون‌خط است!" #~ msgid "" #~ "Maps need an active internet connection to function properly, but one can’t be " #~ "found." #~ msgstr "نقشه‌ها برای عملکرد صحیح نیاز به اینترنت دارد." #~ msgid "Check your connection and proxy settings." #~ msgstr "تنظیمات پیشکار و اتّصالتان را بررسی کنید." #~ msgid "Password" #~ msgstr "گذرواژه" #~ msgid "" #~ "Sorry, that didn’t work. Please try again, or visit\n" #~ "OpenStreetMap to reset your password." #~ msgstr "" #~ "متأسّفانه تأثیری نداشت. لطفا دوباره تلاش کرده یا برای\n" #~ "باز نشانی گذرواژه‌تان به OpenStreetMap سر بزنید." #~ msgid "Check In…" #~ msgstr "اعلام حضور…" #~ msgid "Ignore network availability" #~ msgstr "نادیده گرفتن موجود بودن شبکه" #~ msgid "Select an account" #~ msgstr "گزینش یک حساب" #~ msgid "Loading" #~ msgstr "در حال بار کردن" #~ msgid "Select a place" #~ msgstr "گزینش یک موقعیت" #~ msgid "" #~ "Maps cannot find the place to check in to with Foursquare. Please select one " #~ "from this list." #~ msgstr "" #~ "نقشه‌ها نمی‌تواند مکان را برای اعلام حضور در فوراسکور بیابد. لطفاً موقعیتی را از " #~ "فهرست برگزینید." #, javascript-format #~ msgid "Check in to %s" #~ msgstr "اعلام حضور در %s" #, javascript-format #~ msgid "Write an optional message to check in to %s." #~ msgstr "نوشتن اختیاری پیامی برای اعلام حضور در %s." #, javascript-format #~ msgid "Cannot find “%s” in the social service" #~ msgstr "نمی‌توان «%s» را در خدمت اجتماعی یافت" #~ msgid "Cannot find a suitable place to check-in in this location" #~ msgstr "نمی‌توان مکانی مناسب برای اعلام حضور در این موقعیت یافت" #~ msgid "" #~ "Credentials have expired, please open Online Accounts to sign in and enable " #~ "this account" #~ msgstr "" #~ "اعتبارنامه‌ها منقضی شده‌اند. لطفاً برای ورود و به کار انداختن این حساب، حساب‌های " #~ "برخط را بگشایید" #~ msgid "GNOME Maps" #~ msgstr "نقشه‌های گنوم" #~ msgid "Night mode" #~ msgstr "حالت شب" #~ msgid "Whether the application is in night mode." #~ msgstr "این که برنامه در حالت شب است یا نه." #~ msgid "Night Mode" #~ msgstr "حالت شب" #~ msgid "" #~ "You can even search for specific types of locations, such as “Pubs near Main " #~ "Street, Boston” or “Hotels near Alexanderplatz, Berlin”." #~ msgstr "" #~ "حتا می‌توانید گونه‌های خاصی از موقعیت‌ها را، مثل «Pubs near Main Street, Boston» " #~ "یا «WiFi Access near Alexanderplatz, Berlin» جست‌وجو کنید." #~ msgid "Facebook check-in privacy setting" #~ msgstr "تنظیمات محرمانگی اعلام حضور فیس‌بوک" #~ msgid "" #~ "Latest used Facebook check-in privacy setting. Possible values are: EVERYONE, " #~ "FRIENDS_OF_FRIENDS, ALL_FRIENDS or SELF." #~ msgstr "" #~ "آخرین تنظیمات استفاده شدهٔ محرمانگی اعلام حضور فیس‌بوک. مقادیر مجاز عبارتند از: " #~ "EVERYONE، FRIENDS_OF_FRIENDS، ALL_FRIENDS و SELF." #~ msgid "Everyone" #~ msgstr "همه" #~ msgid "Friends of friends" #~ msgstr "دوستانِ دوستان" #~ msgid "Just friends" #~ msgstr "فقط دوستان" #~ msgid "Just me" #~ msgstr "فقط خودم" #~ msgid "" #~ "Maps cannot find the place to check in to with Facebook. Please select one " #~ "from this list." #~ msgstr "" #~ "نقشه‌ها نمی‌تواند مکان را برای اعلام حضور در فیس‌بوک بیابد. لطفاً موقعیتی را از " #~ "فهرست برگزینید." #~ msgid "Find a Route" #~ msgstr "یافتن یک مسیر" #~ msgid "Check in here" #~ msgstr "اعلام حضور در این‌جا" #~ msgid "Population:" #~ msgstr "جمعیت:" #~ msgid "Altitude:" #~ msgstr "بلندی:" #~ msgid "Opening hours:" #~ msgstr "ساعت‌های کار:" #~ msgid "Internet access:" #~ msgstr "دسترسی اینترنتی:" #~ msgid "Toilets:" #~ msgstr "دستشویی‌ها:" #~ msgid "Wheelchair access:" #~ msgstr "دسترسی صندلی چرخ‌دار:" #~ msgid "Phone:" #~ msgstr "تلفن:" #~ msgid "yes" #~ msgstr "بله" #~ msgid "limited" #~ msgstr "محدود" #~ msgid "no" #~ msgstr "خیر" #~ msgid "designated" #~ msgstr "تعیین شده" #~ msgid "OpenStreetMap URL is not valid" #~ msgstr "نشانی OpenStreetMap نامعتبر است" #~ msgctxt "time range list" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgctxt "time range list" #~ msgid "%s %s %s" #~ msgstr "%s %s %s" #~ msgctxt "time range component" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgid "wired" #~ msgstr "سیمی" #~ msgid "terminal" #~ msgstr "پایانه" #~ msgid "service" #~ msgstr "خدمت" #~ msgid "Don’t have an account?" #~ msgstr "حسابی ندارید؟" #~ msgid "%f h" #~ msgstr "%If ساعت" #~ msgid "%f min" #~ msgstr "%If دقیقه" #~ msgid "%f s" #~ msgstr "%f s" #~ msgid "Add destination" #~ msgstr "افزودن مقصد" #~ msgid "Route search by OpenTripPlanner" #~ msgstr "جست‌وجوی مسیر به دست OpenTripPlanner" #~ msgid "Quit" #~ msgstr "خروج" #~ msgid "Load Map Layer" #~ msgstr "بار کردن لایه نقشه" #~ msgid "Open with another application" #~ msgstr "گشودن با برنامه‌ای دیگر" #~ msgid "Press enter to search" #~ msgstr "برای جست‌وجو دکمه Enter را فشار دهید" #~ msgid "OK" #~ msgstr "تایید" #~ msgid "%f km" #~ msgstr "%If کیلومتر" #~ msgid "%f m" #~ msgstr "%If متر" #~ msgid "%f mi" #~ msgstr "%If مایل" #~ msgid "%f ft" #~ msgstr "%If فوت" #~ msgid "Country code: %s" #~ msgstr "کد کشور: %s" #~ msgid "Last known location and accuracy" #~ msgstr "آخرین مکان و دقت شناخته شده" #~ msgid "" #~ "Last known location (latitude and longitude in degrees) and accuracy (in " #~ "meters)." #~ msgstr "آخرین مکان شناخته شده (عرض و طول جغرافیایی به درجه) و دقت (به متر)" #~ msgid "Description of last known location of user." #~ msgstr "توضیحات آخرین مکان شناخته شده کاربر." #~ msgid "Whether the last known location was set manually by the user." #~ msgstr "این که آخرین مکان شناخته شده به صورت دستی توسط کاربر تنظیم شده یا نه." #~ msgid "I’m here!" #~ msgstr "من این‌جا هستم!" #~ msgid "Satellite" #~ msgstr "ماهواره" #~ msgid " km²" #~ msgstr "کیلومتر مربع" 070701000001C0000081A400000000000000000000000166413409000104DF000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/fi.po# Finnish translation for gnome-maps. # Copyright (C) 2013 gnome-maps's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-maps package. # Jiri Grönroos , 2013, 2014, 2015, 2016, 2017. # msgid "" msgstr "" "Project-Id-Version: gnome-maps master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2024-02-14 22:30+0000\n" "PO-Revision-Date: 2024-02-22 20:16+0200\n" "Last-Translator: Jiri Grönroos \n" "Language-Team: suomi \n" "Language: fi\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: Poedit 3.4.2\n" #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.appdata.xml.in.in:6 data/org.gnome.Maps.desktop.in.in:4 #: data/ui/main-window.ui:27 src/application.js:64 src/mainWindow.js:147 #: src/mainWindow.js:647 msgid "Maps" msgstr "Kartat" #: data/org.gnome.Maps.appdata.xml.in.in:7 msgid "Find places around the world" msgstr "Löydä sijainteja ympäri maailman" #: data/org.gnome.Maps.appdata.xml.in.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "Kartat mahdollistaa maailmanlaajuisen karttatiedon käytön nopeasti. Voit " "paikallistaa haluamasi paikan etsimällä vaikkapa kaupunkia tai katua." #: data/org.gnome.Maps.appdata.xml.in.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "Kartat hyödyntää tuhansien ihmisten yhdessä luomaa OpenStreetMap-tietokantaa." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Maps.appdata.xml.in.in:451 src/mainWindow.js:644 msgid "The GNOME Project" msgstr "Gnome-projekti" #: data/org.gnome.Maps.desktop.in.in:5 msgid "A simple maps application" msgstr "Yksinkertainen karttasovellus" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in.in:14 msgid "Maps;" msgstr "Maps;Kartta;Kartat;Reitit;Reitti;" #: data/org.gnome.Maps.desktop.in.in:17 msgid "Allows your location to be shown on the map." msgstr "Sallii sijaintisi näytettävän kartalla." #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "viimeksi katsottu sijainti" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "Viimeksi katsotun sijainnin koordinaatit." #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "zoom" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "Zoomaustaso" #: data/org.gnome.Maps.gschema.xml:21 msgid "rotation" msgstr "kierto" #: data/org.gnome.Maps.gschema.xml:22 msgid "Map rotation in radians" msgstr "Kartan kierto radiaaneissa" #: data/org.gnome.Maps.gschema.xml:26 msgid "Map type" msgstr "Kartan tyyppi" #: data/org.gnome.Maps.gschema.xml:27 msgid "The type of map to display (street, aerial, etc.)" msgstr "Näytettävän kartan tyyppi (katu, ilma jne.)" #: data/org.gnome.Maps.gschema.xml:31 msgid "Window size" msgstr "Ikkunan koko" #: data/org.gnome.Maps.gschema.xml:32 msgid "Window size (width and height)." msgstr "Ikkunan koko (leveys ja korkeus)." #: data/org.gnome.Maps.gschema.xml:36 msgid "Window position" msgstr "Ikkunan sijainti" #: data/org.gnome.Maps.gschema.xml:37 msgid "Window position (X and Y)." msgstr "Ikkunan sijainti (x ja y)." #: data/org.gnome.Maps.gschema.xml:41 msgid "Window maximized" msgstr "Ikkuna suurennettu" #: data/org.gnome.Maps.gschema.xml:42 msgid "Window maximization state" msgstr "Ikkunan suurennuksen tila" #: data/org.gnome.Maps.gschema.xml:46 msgid "Maximum number of search results" msgstr "Hakutulosten enimmäismäärä" #: data/org.gnome.Maps.gschema.xml:47 msgid "Maximum number of search results from geocode search." msgstr "Geocode-haun tulosten enimmäismäärä." #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent places to store" msgstr "Äskettäisten sijaintien varastoitava lukumäärä" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited places to store." msgstr "Äskettäin käytyjen sijaintin varastoitava lukumäärä." #: data/org.gnome.Maps.gschema.xml:56 msgid "Number of recent routes to store" msgstr "Äskettäisten reittien varastoitava lukumäärä" #: data/org.gnome.Maps.gschema.xml:57 msgid "Number of recently visited routes to store." msgstr "Äskettäin käytyjen reittien varastoitava lukumäärä." #: data/org.gnome.Maps.gschema.xml:61 msgid "OpenStreetMap username or email address" msgstr "OpenStreetMap-käyttäjätunnus tai -sähköposti" #: data/org.gnome.Maps.gschema.xml:62 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "Ilmaisee onko käyttäjä kirjautunut muokatakseen OpenStreetMap-tietoja." #: data/org.gnome.Maps.gschema.xml:66 msgid "Last used transportation type for routing" msgstr "Reitityksessä viimeksi käytetty matkatapa" #: data/org.gnome.Maps.gschema.xml:70 msgid "Show scale" msgstr "Näytä mittakaava" #: data/org.gnome.Maps.gschema.xml:71 msgid "Whether to show the scale." msgstr "Näytetäänkö mittakaava vai ei." #: data/ui/context-menu.ui:6 msgid "Route from Here" msgstr "Reitti täältä" #: data/ui/context-menu.ui:10 msgid "Add Intermediate Destination" msgstr "Lisää välietappi" #: data/ui/context-menu.ui:14 msgid "Route to Here" msgstr "Reitti tänne" #: data/ui/context-menu.ui:20 msgid "What's Here?" msgstr "Mitä täällä on?" #: data/ui/context-menu.ui:24 msgid "Copy Location" msgstr "Kopioi sijainti" #: data/ui/context-menu.ui:28 msgid "Add to OpenStreetMap…" msgstr "Lisää OpenStreetMapiin…" #: data/ui/export-view-dialog.ui:7 msgid "Export view" msgstr "Vie näkymä" #: data/ui/export-view-dialog.ui:16 data/ui/send-to-dialog.ui:10 #: data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "_Peru" #: data/ui/export-view-dialog.ui:26 msgid "_Export" msgstr "_Vie" #. Translators: This is a tooltip #: data/ui/favorite-list-row.ui:72 msgid "Remove Favorite" msgstr "Poista suosikki" #: data/ui/favorites-popover.ui:11 msgid "No Favorites" msgstr "Ei suosikkeja" #: data/ui/favorites-popover.ui:12 msgid "Add places to your favorites to get them listed here" msgstr "Lisää paikkoja suosikkeihisi, jotta ne näkyvät täällä" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:11 src/geoclue.js:106 msgid "Current Location" msgstr "Nykyinen sijainti" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:19 msgid "Layers" msgstr "Tasot" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:11 msgid "Print Route" msgstr "Tulosta reitti" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:21 msgid "Favorites" msgstr "Suosikit" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:30 msgid "Route Planner" msgstr "Reittisuunnittelu" #: data/ui/help-overlay.ui:12 msgctxt "shortcut window" msgid "General" msgstr "Yleiset" #: data/ui/help-overlay.ui:15 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "Näytä pikanäppäimet" #: data/ui/help-overlay.ui:21 msgctxt "shortcut window" msgid "Search" msgstr "Etsi" #: data/ui/help-overlay.ui:27 msgctxt "shortcut window" msgid "Explore points-of-interest" msgstr "Selaa kohdepisteitä" #: data/ui/help-overlay.ui:33 msgctxt "shortcut window" msgid "Show last search results" msgstr "Näytä viimeisimmät hakutulokset" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "Näytä/piilota reittisuunnittelu" #: data/ui/help-overlay.ui:45 msgctxt "shortcut window" msgid "Print route" msgstr "Tulosta reitti" #: data/ui/help-overlay.ui:51 msgctxt "shortcut window" msgid "Quit" msgstr "Lopeta" #: data/ui/help-overlay.ui:57 msgctxt "shortcut window" msgid "Open main menu" msgstr "Avaa päävalikko" #: data/ui/help-overlay.ui:65 msgctxt "shortcut window" msgid "Map View" msgstr "Karttanäkymä" #: data/ui/help-overlay.ui:68 msgctxt "shortcut window" msgid "Zoom in" msgstr "Lähennä" #: data/ui/help-overlay.ui:74 msgctxt "shortcut window" msgid "Zoom out" msgstr "Loitonna" #: data/ui/help-overlay.ui:80 msgctxt "shortcut window" msgid "Rotate clockwise" msgstr "Kierrä myötäpäivään" #: data/ui/help-overlay.ui:86 msgctxt "shortcut window" msgid "Rotate counter-clockwise" msgstr "Kierrä vastapäivään" #: data/ui/help-overlay.ui:92 msgctxt "shortcut window" msgid "Reset rotation" msgstr "Nollaa kierto" #: data/ui/help-overlay.ui:98 msgctxt "shortcut window" msgid "Toggle scale" msgstr "Näytä/piilota mittakaava" #: data/ui/help-overlay.ui:104 msgctxt "shortcut window" msgid "Go to current location" msgstr "Siirry nykyiseen sijaintiin" #: data/ui/help-overlay.ui:114 msgctxt "shortcut window" msgid "Switch to street view" msgstr "Vaihda katunäkymään" #: data/ui/help-overlay.ui:121 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "Vaihda ilmanäkymään" #: data/ui/help-overlay.ui:127 msgctxt "shortcut window" msgid "Open shape layer" msgstr "Avaa muototaso" #: data/ui/layers-popover.ui:7 msgid "Show Scale" msgstr "Näytä mittakaava" #: data/ui/layers-popover.ui:16 msgid "Enable Experimental Map" msgstr "Käytä kokeellista karttaa" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:21 msgid "Open Shape Layer…" msgstr "Avaa muototaso…" #: data/ui/main-window.ui:8 msgid "Set up OpenStreetMap Account…" msgstr "Määritä OpenStreetMap-tili…" #: data/ui/main-window.ui:12 msgid "Export as Image…" msgstr "Vie kuvana…" #: data/ui/main-window.ui:17 msgid "_Keyboard Shortcuts" msgstr "_Pikanäppäimet" #: data/ui/main-window.ui:22 msgid "About Maps" msgstr "Tietoja - Kartat" #: data/ui/main-window.ui:48 msgid "Main Menu" msgstr "Päävalikko" #: data/ui/osm-account-dialog.ui:5 msgid "OpenStreetMap Account" msgstr "OpenStreetMap-tili" #: data/ui/osm-account-dialog.ui:31 msgid "Sign In To Edit Maps" msgstr "Kirjaudu sisään muokataksesi karttoja" #: data/ui/osm-account-dialog.ui:32 msgid "Help to improve the map, using an OpenStreetMap account." msgstr "Auta parantamaan karttaa OpenStreetMap-tiliä käyttäen." #: data/ui/osm-account-dialog.ui:36 msgid "Sign In" msgstr "Kirjaudu sisään" #: data/ui/osm-account-dialog.ui:59 msgid "Verification" msgstr "Vahvistus" #: data/ui/osm-account-dialog.ui:60 msgid "" "Copy the verification code shown when authorizing access in the browser." msgstr "Kopioi näytettävä vahvistuskoodi kun valtuutat pääsyä selaimessa." #: data/ui/osm-account-dialog.ui:69 msgid "Verification Code" msgstr "Vahvistuskoodi" #: data/ui/osm-account-dialog.ui:75 msgid "Verify" msgstr "Vahvista" #: data/ui/osm-account-dialog.ui:110 msgid "Signed In" msgstr "Sisäänkirjautunut" #: data/ui/osm-account-dialog.ui:111 msgid "Your OpenStreetMap account is active." msgstr "OpenStreetMap-tilisi on aktiivinen." #: data/ui/osm-account-dialog.ui:129 msgid "Sign Out" msgstr "Kirjaudu ulos" #: data/ui/osm-edit-address.ui:11 msgid "Street" msgstr "Katu" #: data/ui/osm-edit-address.ui:22 msgid "House number" msgstr "Talon numero" #: data/ui/osm-edit-address.ui:33 msgid "Postal code" msgstr "Postinumero" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:44 msgid "City" msgstr "Kaupunki" #: data/ui/osm-edit-dialog.ui:8 msgctxt "dialog title" msgid "Edit on OpenStreetMap" msgstr "Muokkaa OpenStreetMapissa" #: data/ui/osm-edit-dialog.ui:57 msgid "Type" msgstr "Tyyppi" #: data/ui/osm-edit-dialog.ui:79 msgid "None" msgstr "Ei mitään" #: data/ui/osm-edit-dialog.ui:108 msgid "Add Field" msgstr "Lisää kenttä" #: data/ui/osm-edit-dialog.ui:130 msgid "Comment" msgstr "Kommentti" #: data/ui/osm-edit-dialog.ui:158 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "Karttamuutokset näkyvät kaikissa OpenStreetMapin\n" "sisältöä käyttävissä kartoissa." #: data/ui/osm-edit-dialog.ui:186 msgid "Recently Used" msgstr "Viimeksi käytetty" #: data/ui/osm-edit-dialog.ui:225 src/mapView.js:663 msgid "Cancel" msgstr "Peru" #: data/ui/osm-edit-dialog.ui:238 src/osmEditDialog.js:531 msgid "Next" msgstr "Seuraava" #: data/ui/osm-edit-wikipedia.ui:8 msgid "Article" msgstr "Artikkeli" #: data/ui/osm-edit-wikipedia.ui:21 msgid "Wikidata tag" msgstr "Wikidata-tunniste" #: data/ui/osm-edit-wikipedia.ui:32 msgid "Load Wikidata tag for article" msgstr "Lataa artikkelin Wikidata-tunniste" #: data/ui/place-popover.ui:23 src/searchBar.js:55 msgid "Explore Nearby Places" msgstr "Selaa lähellä olevia paikkoja" #: data/ui/place-popover.ui:82 src/application.js:277 msgid "No results found" msgstr "Tuloksia ei löytynyt" #: data/ui/place-popover.ui:92 src/application.js:255 msgid "An error has occurred" msgstr "Tapahtui virhe" #. Translators: This is a tooltip #: data/ui/route-entry.ui:12 msgid "Change Route Order" msgstr "Muuta reitin järjestystä" #: data/ui/send-to-dialog.ui:7 msgid "Open Location" msgstr "Avaa sijainti" #: data/ui/send-to-dialog.ui:64 msgid "Copy" msgstr "Kopioi" #: data/ui/send-to-dialog.ui:70 msgid "Send To…" msgstr "Lähetä…" #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:62 msgid "Open Shape Layer" msgstr "Avaa muototaso" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "_Avaa" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:32 msgid "Toggle visible" msgstr "Näytä/piilota" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:44 msgid "Remove Shape Layer" msgstr "Avaa muototaso" #: data/ui/sidebar.ui:207 msgid "Route search by GraphHopper" msgstr "Reittihaun tarjoaa GraphHopper" #: data/ui/sidebar.ui:272 msgid "" "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of " "transportation,\n" "e.g. a national provider might not include airlines, and a local provider " "could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" "Julkisen liikenteen reitityksen matkareitit tarjoaa Gnome\n" "käyttäen kolmansien osapuolien palveluja.\n" "Gnome ei voi taata näytettävien matkareittien ja aikataulujen " "oikeellisuutta.\n" "Huomioi, että jotkin palveluntarjoajat eivät välttämättä sisällytä kaikkia\n" "liikennöintimuotoja, esimerkiksi kansalliset palveluntarjoajat eivät " "välttämättä\n" "huomioi lentoreittejä, tai paikalliset palveluntarjoajat eivät välttämättä\n" "huomioi valtakunnallisia junia.\n" "Näytettävät nimet ja tuotemerkit on soveltuvin osin oletettava " "rekisteröidyiksi." #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:98 msgid "Hide intermediate stops and information" msgstr "Piilota välipysäkit ja tiedot" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:156 msgid "Show intermediate stops and information" msgstr "Näytä välipysäkit ja tiedot" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:16 msgid "Leave Now" msgstr "Lähde nyt" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:17 msgid "Leave By" msgstr "Lähde määrättynä aikana" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:18 msgid "Arrive By" msgstr "Saavu määrättynä aikana" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:85 msgid "Show" msgstr "Näytä" #: data/ui/transit-options-panel.ui:95 msgid "Buses" msgstr "Bussit" #: data/ui/transit-options-panel.ui:101 msgid "Trams" msgstr "Raitiovaunut" #: data/ui/transit-options-panel.ui:107 msgid "Trains" msgstr "Junat" #: data/ui/transit-options-panel.ui:113 msgid "Subway" msgstr "Metro" #: data/ui/transit-options-panel.ui:119 msgid "Ferries" msgstr "Lautat" #: data/ui/transit-options-panel.ui:125 msgid "Airplanes" msgstr "Lentokoneet" #. Translators: This is a tooltip #: data/ui/place-bar.ui:33 data/ui/place-buttons.ui:27 msgid "Share Location" msgstr "Jaa sijainti" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:11 msgid "Add to new route" msgstr "Lisää uusi reitti" #. Translators: This is the button to find a route to a place #: data/ui/place-buttons.ui:15 msgid "Directions" msgstr "Reittiohjeet" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:36 msgid "Mark as Favorite" msgstr "Merkitse suosikiksi" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:44 msgid "Edit on OpenStreetMap" msgstr "Muokkaa OpenStreetMapissa" #. Translators: This is a tooltip #: data/ui/place-view.ui:52 msgid "Share location" msgstr "Jaa sijainti" #: data/ui/poi-category-goback-row.ui:22 msgid "Back to Main Categories" msgstr "Takaisin pääluokkiin" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:19 msgid "Reset Rotation" msgstr "Nollaa kierto" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:32 msgid "Zoom Out" msgstr "Loitonna" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:43 src/mapView.js:1238 msgid "Zoom In" msgstr "Lähennä" #: lib/maps-file-data-source.c:262 lib/maps-file-data-source.c:338 #: lib/maps-file-data-source.c:418 msgid "Failed to find tile structure in directory" msgstr "Tiilirakennetta ei löytynyt hakemistosta" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "XML-asiakirjan jäsentäminen epäonnistui" #: lib/maps-osm.c:250 lib/maps-osm.c:403 msgid "Missing required attributes" msgstr "Vaaditut attribuutit puuttuvat" #: lib/maps-osm.c:451 lib/maps-osm.c:494 msgid "Could not find OSM element" msgstr "OSM-elementtiä ei löytynyt" #: lib/maps-osm.c:508 msgid "Could not find user element" msgstr "Käyttäjäelementtiä ei löytynyt" #: src/application.js:78 msgid "A path to a local tiles directory structure" msgstr "Polku paikallisten tiilien hakemistorakenteeseen" #: src/application.js:84 msgid "Tile size for local tiles directory" msgstr "Tiilen koko paikalliseen tiilten hakemistoon" #: src/application.js:88 msgid "Show the version of the program" msgstr "Näytä ohjelman versio" #: src/application.js:94 msgid "Search for places" msgstr "Etsi paikkoja" #: src/application.js:105 src/application.js:106 msgid "[FILE…|URI]" msgstr "[TIEDOSTO…|URI]" #: src/application.js:284 #, javascript-format msgid "Invalid maps: URI: %s" msgstr "Virheelliset kartat: URI: %s" #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:75 #, javascript-format msgid "Maps at %f, %f.png" msgstr "Kartta sijainnissa %f, %f.png" #: src/exportViewDialog.js:174 msgid "Unable to export view" msgstr "Näkymän vienti epäonnistui" #: src/favoriteListRow.js:42 msgid "Favorite removed" msgstr "Suosikki poistettu" #: src/favoriteListRow.js:43 msgid "Undo" msgstr "Kumoa" #: src/geoJSONSource.js:73 msgid "invalid coordinate" msgstr "virheellinen koordinaatti" #: src/geoJSONSource.js:126 src/geoJSONSource.js:166 src/geoJSONSource.js:181 msgid "parse error" msgstr "jäsentämisvirhe" #: src/geoJSONSource.js:160 msgid "unknown geometry" msgstr "tuntematon geometria" #: src/graphHopper.js:101 src/transitPlan.js:175 msgid "Route request failed." msgstr "Reittipyyntö epäonnistui." #: src/graphHopper.js:108 src/transitPlan.js:167 msgid "No route found." msgstr "Reittiä ei löytynyt." #: src/graphHopper.js:195 src/transitplugins/openTripPlanner.js:1163 msgid "Start!" msgstr "Aloitus!" #: src/mainWindow.js:59 msgid "All Layer Files" msgstr "Kaikki tasotiedostot" #: src/mainWindow.js:522 msgid "Failed to connect to location service" msgstr "Yhteys sijaintipalveluun epäonnistui" #: src/mainWindow.js:527 msgid "Turn on location services" msgstr "Ota sijaintipalvelut käyttöön" #: src/mainWindow.js:528 msgid "Location Settings" msgstr "Sijaintipalvelut" #: src/mainWindow.js:645 msgid "translator-credits" msgstr "Jiri Grönroos" #: src/mainWindow.js:649 msgid "Copyright © 2011 – 2023 Red Hat, Inc. and The GNOME Maps authors" msgstr "" "Tekijänoikeus © 2011 – 2023 Red Hat, Inc. ja Gnomen karttasovelluksen " "kehittäjät" #: src/mainWindow.js:665 #, javascript-format msgid "Map data by %s and contributors" msgstr "Karttatiedot tarjoaa %s ja avustajat" #: src/mainWindow.js:666 msgid "Map Data Provider" msgstr "Karttatietojen tarjoaja" #: src/mainWindow.js:678 msgid "Map Tile Provider" msgstr "Karttatiilten tarjoaja" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:686 #, javascript-format msgid "Map tiles provided by %s" msgstr "Karttatiilet tarjoaa %s" #: src/mainWindow.js:716 msgid "Search Provider" msgstr "Haun tarjoaja" #: src/mainWindow.js:719 #, javascript-format msgid "Search provided by %s using %s" msgstr "Haun tarjoaa %s käyttämällä %s" #: src/mapView.js:637 src/mapView.js:702 msgid "Failed to open layer" msgstr "Tason avaaminen epäonnistui" #: src/mapView.js:656 msgid "Do you want to continue?" msgstr "Haluatko jatkaa?" #: src/mapView.js:657 #, javascript-format msgid "" "You are about to open files with a total size of %s MB. This could take some " "time to load" msgstr "" "Olet aikeissa avata tiedostoja, joiden koko yhteensä on %s Mt. Näiden " "lataaminen saattaa kestää jonkin aikaa" #: src/mapView.js:664 src/transitplugins/openTripPlanner.js:1239 #: src/transitplugins/openTripPlanner2.js:267 msgid "Continue" msgstr "Jatka" #: src/mapView.js:696 msgid "File type is not supported" msgstr "Tiedostotyyppi ei ole tuettu" #: src/mapView.js:733 msgid "Failed to open GeoURI" msgstr "GeoURI:n avaaminen epäonnistui" #: src/mapView.js:1197 msgid "Nothing found here!" msgstr "Täältä ei löytynyt mitään!" #: src/mapView.js:1237 msgid "Zoom in to add location" msgstr "Lähennä lisätäksesi sijainnin" #: src/mapView.js:1258 msgid "Location was added in OpenStreetMap" msgstr "Sijainti lisättiin OpenStreetMapissa" #. switch back to the sign-in view, and show a toast indicating #. that verification failed #: src/osmAccountDialog.js:134 msgid "The verification code didn’t match, please try again." msgstr "Vahvistuskoodi ei kelvannut, yritä uudelleen." #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:335 msgid "Incorrect user name or password" msgstr "Virheellinen käyttäjätunnus tai salasana" #: src/osmConnection.js:337 msgid "Success" msgstr "Onnistui" #: src/osmConnection.js:339 msgid "Bad request" msgstr "Virheellinen pyyntö" #: src/osmConnection.js:341 msgid "Object not found" msgstr "Objektia ei löytynyt" #: src/osmConnection.js:343 msgid "Conflict, someone else has just modified the object" msgstr "Ristiriita, joku toinen muokkasi juuri objektia" #: src/osmConnection.js:345 msgid "Object has been deleted" msgstr "Objekti on poistettu" #: src/osmConnection.js:347 msgid "Way or relation refers to non-existing children" msgstr "Tie tai relaatio viittaa lapseen, jota ei ole olemassa" #: src/osmEditDialog.js:106 msgid "Name" msgstr "Nimi" #: src/osmEditDialog.js:109 msgid "The official name. This is typically what appears on signs." msgstr "Virallinen nimi. Tämä on yleensä näkyvillä kyltissä." #: src/osmEditDialog.js:112 msgid "Address" msgstr "Osoite" #: src/osmEditDialog.js:120 src/placeView.js:275 msgid "Website" msgstr "Verkkosivusto" #: src/osmEditDialog.js:124 msgid "This is not a valid URL. Make sure to include http:// or https://." msgstr "" "Tämä ei ole kelvollinen URL-osoite. Varmista että osoitteen alussa on " "http:// tai https://." #: src/osmEditDialog.js:125 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" "Virallinen verkkosivusto. Käytä verkkotunnuksen perusmuotoa, eli mieluummin " "http://esimerkki.fi kuin http://esimerkki.fi/index.html." #: src/osmEditDialog.js:130 msgid "Phone" msgstr "Puhelin" #: src/osmEditDialog.js:134 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" "Puhelinnumero. Käytä kansainvälistä muotoa, aloita +-merkillä. Ota huomioon " "mahdolliset paikalliset yksityisyyslait, jotka voivat koskea salaisia " "puhelinnumeroita." #: src/osmEditDialog.js:139 msgid "E-mail" msgstr "Sähköposti" #: src/osmEditDialog.js:144 msgid "" "This is not a valid email address. Make sure to not include the mailto: " "protocol prefix." msgstr "" "Tämä ei ole kelvollinen sähköpostiosoite. Varmista ettei osoite sisällä " "\"mailto:\"-etuliitettä." #: src/osmEditDialog.js:145 msgid "" "Contact email address for inquiries. Add only email addresses that are " "intended to be publicly used." msgstr "" "Sähköpostiosoite kyselyjä varten. Lisää vain sähköpostiosoitteita, jotka " "ovat tarkoitettu julkisesti näytettäväksi." #. Translators: This is the text for the "Wikipedia" link at the end #. of summaries #: src/osmEditDialog.js:149 src/placeView.js:727 msgid "Wikipedia" msgstr "Wikipedia" #: src/osmEditDialog.js:156 src/placeView.js:399 msgid "Opening hours" msgstr "Aukioloajat" #: src/osmEditDialog.js:161 msgid "See the link in the label for help on format." msgstr "Avaa linkki nähdäksesi muotoilua koskevan ohjeen." #. TODO: this is a bit of a work-around to re-interpret the population, #. * stored as a string into an integer to convert back to a locale- #. * formatted string. Ideally it should be kept as an integer value #. * in the Place class. But this will also need to be handled by the #. * PlaceStore, possible in a backwards-compatible way #. #: src/osmEditDialog.js:164 src/placeView.js:509 msgid "Population" msgstr "Asukasluku" #: src/osmEditDialog.js:169 src/placeView.js:538 msgid "Altitude" msgstr "Korkeus" #: src/osmEditDialog.js:172 msgid "Elevation (height above sea level) of a point in meters." msgstr "Korkeustaso (korkeus merenpinnan yläpuolella) metreissä." #: src/osmEditDialog.js:175 msgid "Wheelchair access" msgstr "Pääsy pyörätuolilla" #: src/osmEditDialog.js:178 src/osmEditDialog.js:187 src/osmEditDialog.js:198 #: src/osmEditDialog.js:233 msgid "Yes" msgstr "Kyllä" #: src/osmEditDialog.js:179 src/osmEditDialog.js:188 src/osmEditDialog.js:199 #: src/osmEditDialog.js:234 msgid "No" msgstr "Ei" #: src/osmEditDialog.js:180 msgid "Limited" msgstr "Rajoitettu" #: src/osmEditDialog.js:181 msgid "Designated" msgstr "Suunniteltu" #: src/osmEditDialog.js:184 msgid "Internet access" msgstr "Internet-käyttö" #: src/osmEditDialog.js:189 msgid "Wi-Fi" msgstr "Wi-Fi" #: src/osmEditDialog.js:190 msgid "Wired" msgstr "Kiinteä" #: src/osmEditDialog.js:191 msgid "Terminal" msgstr "Pääte" #: src/osmEditDialog.js:192 msgid "Service" msgstr "Palvelu" #: src/osmEditDialog.js:195 msgid "Takeout" msgstr "Noutoruoka" #: src/osmEditDialog.js:200 msgid "Only" msgstr "Vain" #: src/osmEditDialog.js:203 msgid "Religion" msgstr "Uskonto" #: src/osmEditDialog.js:206 src/translations.js:286 msgid "Animism" msgstr "Animismi" #: src/osmEditDialog.js:207 msgid "Bahá’í" msgstr "Bahá’í" #: src/osmEditDialog.js:208 src/translations.js:288 msgid "Buddhism" msgstr "Buddhalaisuus" #: src/osmEditDialog.js:209 src/translations.js:289 msgid "Caodaism" msgstr "Caodaismi" #: src/osmEditDialog.js:210 src/translations.js:290 msgid "Christianity" msgstr "Kristinusko" #: src/osmEditDialog.js:211 src/translations.js:291 msgid "Confucianism" msgstr "Kungfutselaisuus" #: src/osmEditDialog.js:212 src/translations.js:292 msgid "Hinduism" msgstr "Hindulaisuus" #: src/osmEditDialog.js:213 src/translations.js:293 msgid "Jainism" msgstr "Jainalaisuus" #: src/osmEditDialog.js:214 src/translations.js:294 msgid "Judaism" msgstr "Juutalaisuus" #: src/osmEditDialog.js:215 src/translations.js:295 msgid "Islam" msgstr "Islam" #: src/osmEditDialog.js:216 src/translations.js:296 msgid "Multiple Religions" msgstr "Useita uskontoja" #: src/osmEditDialog.js:217 src/translations.js:297 msgid "Paganism" msgstr "Pakanuus" #: src/osmEditDialog.js:218 src/translations.js:298 msgid "Pastafarianism" msgstr "Pastafarilaisuus" #: src/osmEditDialog.js:219 src/translations.js:299 msgid "Scientology" msgstr "Skientologia" #: src/osmEditDialog.js:220 src/translations.js:300 msgid "Shinto" msgstr "Šintolaisuus" #: src/osmEditDialog.js:221 src/translations.js:301 msgid "Sikhism" msgstr "Sikhiläisyys" #: src/osmEditDialog.js:222 src/translations.js:302 msgid "Spiritualism" msgstr "Spiritualismi" #: src/osmEditDialog.js:223 src/translations.js:303 msgid "Taoism" msgstr "Taolaisuus" #: src/osmEditDialog.js:224 src/translations.js:304 msgid "Unitarian Universalism" msgstr "Unitaariuniversalismi" #: src/osmEditDialog.js:225 src/translations.js:305 msgid "Voodoo" msgstr "Voodoo" #: src/osmEditDialog.js:226 src/translations.js:306 msgid "Yazidism" msgstr "Jesidismi" #: src/osmEditDialog.js:227 src/translations.js:307 msgid "Zoroastrianism" msgstr "Zarathustralaisuus" #: src/osmEditDialog.js:230 src/poiCategories.js:176 msgid "Toilets" msgstr "Vessat" #: src/osmEditDialog.js:237 msgid "Note" msgstr "Huomio" #: src/osmEditDialog.js:240 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" "Tietoja muille kartoittajille elementistä, sen luomisen tarkoituksesta tai " "vihjeitä parannusten suhteen." #: src/osmEditDialog.js:339 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "Lisää OpenStreetMapiin" #: src/osmEditDialog.js:393 msgid "Select Type" msgstr "Valitse tyyppi" #: src/osmEditDialog.js:515 msgid "Done" msgstr "Valmis" #: src/osmEditDialog.js:818 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "" "Käytettävän muotoilun tulisi sisältää kielikoodin ja artikkelin nimen, kuten " "”en:Article title”." #: src/osmEditDialog.js:824 msgid "Use the reload button to load the Wikidata tag for the selected article" msgstr "" "Käytä päivityspainiketta ladataksesi Wikidata-tunnisteen valitulle " "artikkelille" #: src/osmEditDialog.js:832 msgid "Couldn't find Wikidata tag for article" msgstr "Artikkelin Wikidata-tunnistetta ei löytynyt" #: src/photonUtils.js:118 msgid "Unnamed place" msgstr "Nimetön paikka" #: src/placeEntry.js:274 msgid "Failed to parse Geo URI" msgstr "Geo URI:n jäsentäminen epäonnistui" #: src/placeEntry.js:286 msgid "Failed to parse Maps URI" msgstr "Maps URI:n jäsentäminen epäonnistui" #. 300 ft (300 * 12 * 0.0254 m) #. #. * Translators: This a format string for showing a distance to a place #. * is lower than a "quite short" distance. #. * The "less than" symbol can be substituded with an appropriate one, if #. * needed (e.g. using the correct direction, or alternative symbol). #. * The %s should be kept, and is substituted with a label representing the #. * short distance. The \u2009 (thin space) could also be adjusted if needed #: src/placeListRow.js:46 #, javascript-format msgctxt "short distance format string" msgid "< %s" msgstr "< %s" #: src/placeView.js:263 msgid "Coordinates" msgstr "Koordinaatit" #: src/placeView.js:267 msgid "Accuracy" msgstr "Tarkkuus" #. Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) #: src/placeView.js:270 #, javascript-format msgid "Accuracy: %s" msgstr "Tarkkuus: %s" #. since the phone numbers are typically always rendered #. * left-to-right, insert an explicit LRM char to avoid issues #. * with phone numbers in international format starting with a + #. * which is considered a "weak" character to determine Unicode #. * text direction #. #: src/placeView.js:289 msgid "Phone number" msgstr "Puhelinnumero" #: src/placeView.js:308 msgid "Email" msgstr "Sähköposti" #. If a reference to a named floor (named or symbolic) exists #. * refer to it directly. #. #. Translators: #. * This is a reference to named building floor, using a label #. * or a code, as "displayed in the elevator" #. #: src/placeView.js:323 src/placeView.js:362 msgid "Floor" msgstr "Kerros" #: src/placeView.js:325 #, javascript-format msgid "Floor %s" msgstr "Kerros %s" #: src/placeView.js:337 msgid "At ground level" msgstr "Maanpinnalla" #. Translators: #. * This is a reference to a number of floors above #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:346 #, javascript-format msgid "%s floor above ground level" msgid_plural "%s floors above ground level" msgstr[0] "%s kerros maanpinnan yläpuolella" msgstr[1] "%s kerrosta maanpinnan yläpuolella" #. Translators: #. * This is a reference to a number of floors below #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:357 #, javascript-format msgid "%s floor below ground level" msgid_plural "%s floors below ground level" msgstr[0] "%s kerros maanpinnan alapuolella" msgstr[1] "%s kerrosta maanpinnan alapuolella" #. Translators: #. * The establishment offers customers to purchase meals #. * (or similar) to be consumed elsewhere #. #: src/placeView.js:375 msgid "Offers takeout" msgstr "Tarjoaa noutoruokaa" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed on-premise. #. #: src/placeView.js:383 msgid "Does not offer takeout" msgstr "Ei tarjoa noutoruokaa" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed elsewhere. E.g. #. * there is no seating on-premise for eating/drinking #. #: src/placeView.js:392 msgid "Only offers takeout" msgstr "Tarjoaa vain noutoruokaa" #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/placeView.js:409 msgid "Public internet access" msgstr "Julkinen internetyhteys" #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/placeView.js:418 msgid "No internet access" msgstr "Ei internetyhteyttä" #. Translators: #. * This means a WLAN Hotspot, also known as wireless, wifi or Wi-Fi. #. #: src/placeView.js:426 msgid "Public Wi-Fi" msgstr "Julkinen Wi-Fi" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/placeView.js:434 msgid "Wired internet access" msgstr "Langallinen internetyhteys" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/placeView.js:442 msgid "Computers available for use" msgstr "Tietokoneita käytettävissä" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/placeView.js:450 msgid "Internet assistance available" msgstr "Internetopastusta saatavilla" #: src/placeView.js:456 msgid "No toilets available" msgstr "Vessoja ei käytettävissä" #: src/placeView.js:459 msgid "Toilets available" msgstr "Vessoja käytettävissä" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #: src/placeView.js:468 msgid "Wheelchair accessible" msgstr "Pääsy pyörätuolilla" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/placeView.js:478 msgid "Limited wheelchair accessibility" msgstr "Rajoitettu pääsy pyörätuolilla" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #: src/placeView.js:487 msgid "Not wheelchair accessible" msgstr "Ei pääsyä pyörätuolilla" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/placeView.js:497 msgid "Designated for wheelchair users" msgstr "Suunniteltu pyörätuolikäyttäjille" #. * #. * Translators: this is a label indicating an altitude below #. * sea level, where the %s placeholder is the altitude relative #. * to mean sea level in the "negative direction" #. #: src/placeView.js:528 #, javascript-format msgid "%s below sea level" msgstr "%s merenpinnan tason alapuolella" #. * #. * Translators: this indicates a place is located at (or very #. * close to) mean sea level #. #: src/placeView.js:535 msgid "At sea level" msgstr "Merenpinnan tasolla" #: src/placeView.js:544 msgid "Religion:" msgstr "Uskonto:" #: src/place.js:568 msgid "Place not found in OpenStreetMap" msgstr "Paikkaa ei löytynyt OpenStreetMapista" #: src/place.js:575 msgid "Coordinates in URL are not valid" msgstr "Koordinaatit osoitteessa eivät ole kelvolliset" #: src/place.js:584 msgid "URL is not supported" msgstr "Osoite ei ole tuettu" #: src/poiCategories.js:132 msgid "Amenities" msgstr "Palvelut" #: src/poiCategories.js:135 msgid "ATMs" msgstr "Pankkiautomaatit" #: src/poiCategories.js:141 msgid "Post Boxes" msgstr "Postilokerot" #: src/poiCategories.js:147 msgid "Post Offices" msgstr "Postitoimistot" #: src/poiCategories.js:153 msgid "Police" msgstr "Poliisi" #: src/poiCategories.js:159 msgid "Libraries" msgstr "Kirjastot" #: src/poiCategories.js:165 msgid "Pharmacies" msgstr "Apteekit" #: src/poiCategories.js:171 msgid "Recycling" msgstr "Kierrätys" #: src/poiCategories.js:182 msgid "Wheelchair-accessible Toilets" msgstr "Esteettömät vessat" #: src/poiCategories.js:188 msgid "Baggage Lockers" msgstr "Matkatavaralokerot" #: src/poiCategories.js:196 msgid "Eating & Drinking" msgstr "Ruokailu ja juomat" #: src/poiCategories.js:200 msgid "Restaurants" msgstr "Ravintolat" #: src/poiCategories.js:205 msgid "Fast Food" msgstr "Pikaruoka" #: src/poiCategories.js:210 msgid "Food Courts" msgstr "Ruokailualueet" #: src/poiCategories.js:215 msgid "Pubs" msgstr "Pubit" #: src/poiCategories.js:221 msgid "Bars" msgstr "Baarit" #: src/poiCategories.js:226 msgid "Cafes" msgstr "Kahvilat" #: src/poiCategories.js:231 msgid "Ice Cream" msgstr "Jäätelö" #: src/poiCategories.js:236 msgid "Food, Snacks, and Beverage Machines" msgstr "Ruoka, naposteltava ja virvoitusjuomakoneet" #: src/poiCategories.js:244 msgid "Shopping" msgstr "Ostokset" #: src/poiCategories.js:248 msgid "Supermarkets" msgstr "Supermarketit" #: src/poiCategories.js:254 msgid "Convenience Stores" msgstr "Lähikaupat" #: src/poiCategories.js:259 msgid "Shopping Malls" msgstr "Ostoskeskukset" #: src/poiCategories.js:265 msgid "Clothes" msgstr "Vaatteet" #: src/poiCategories.js:271 msgid "Shoes" msgstr "Kengät" #: src/poiCategories.js:276 msgid "Electronics" msgstr "Elektroniikka" #: src/poiCategories.js:282 msgid "Alcohol" msgstr "Alkoholi" #: src/poiCategories.js:288 msgid "Bakeries" msgstr "Leipomot" #: src/poiCategories.js:294 msgid "Flowers" msgstr "Kukat" #: src/poiCategories.js:301 msgid "Transportation" msgstr "Kuljetus" #: src/poiCategories.js:305 msgid "Bus & Tram Stops" msgstr "Bussi- ja raitiovaunupysäkit" #: src/poiCategories.js:313 msgid "Train & Subway Stations" msgstr "Juna- ja metroasemat" #: src/poiCategories.js:321 msgid "Tickets" msgstr "Matkaliput" #: src/poiCategories.js:329 msgid "Parking" msgstr "Pysäköinti" #: src/poiCategories.js:334 msgid "Bicycle Parking" msgstr "Pyöräparkki" #: src/poiCategories.js:339 msgid "Bicycle Rental" msgstr "Pyörävuokraus" #: src/poiCategories.js:344 msgid "Car Rental" msgstr "Autovuokraus" #: src/poiCategories.js:349 msgid "Fuel" msgstr "Polttoaine" #: src/poiCategories.js:354 msgid "EV Charging" msgstr "Sähköauton lataus" #: src/poiCategories.js:362 msgid "Healthcare" msgstr "Terveydenhuolto" #: src/poiCategories.js:366 msgid "Clinics" msgstr "Terveyskeskukset" #: src/poiCategories.js:372 msgid "Hospitals" msgstr "Sairaalat" #: src/poiCategories.js:378 msgid "Dentists" msgstr "Hammaslääkärit" #: src/poiCategories.js:386 msgid "Accommodation" msgstr "Majoitus" #: src/poiCategories.js:390 msgid "Hotels" msgstr "Hotellit" #: src/poiCategories.js:395 msgid "Hostels" msgstr "Hostellit" #: src/poiCategories.js:400 msgid "Bed & Breakfast" msgstr "Bed & Breakfast" #: src/poiCategories.js:405 msgid "Campings" msgstr "Leirintä" #: src/poiCategories.js:412 msgid "Recreation" msgstr "Ajanviete" #: src/poiCategories.js:416 msgid "Parks" msgstr "Puistot" #: src/poiCategories.js:421 msgid "Playgrounds" msgstr "Leikkikentät" #: src/poiCategories.js:425 msgid "Beaches" msgstr "Rannat" #: src/poiCategories.js:430 msgid "Nature Reserves" msgstr "Luonnonsuojelualueet" #: src/poiCategories.js:436 msgid "Theme Parks" msgstr "Huvipuistot" #: src/poiCategories.js:441 msgid "Theaters" msgstr "Teatterit" #: src/poiCategories.js:447 msgid "Movie Theaters" msgstr "Elokuvateatterit" #: src/poiCategories.js:453 msgid "Night Clubs" msgstr "Yökerhot" #: src/poiCategories.js:460 msgid "Tourism" msgstr "Turismi" #: src/poiCategories.js:464 msgid "Museums" msgstr "Museot" #: src/poiCategories.js:470 msgid "Attractions" msgstr "Nähtävyydet" #: src/poiCategories.js:475 msgid "Artworks" msgstr "Taideteokset" #: src/poiCategories.js:480 msgid "Tourist Information" msgstr "Turisti-informaatio" #: src/poiCategories.js:487 msgid "Sports" msgstr "Liikunta" #: src/poiCategories.js:491 msgid "Gyms" msgstr "Kuntosalit" #: src/poiCategories.js:497 msgid "Outdoor Gyms" msgstr "Ulkokuntosalit" #: src/poiCategories.js:503 msgid "Golf Courses" msgstr "Golfkentät" #: src/printLayout.js:350 #, javascript-format msgid "From %s to %s" msgstr "Alkupisteestä %s päätepisteeseen %s" #: src/printOperation.js:49 msgid "Loading map tiles for printing" msgstr "Ladataan karttatiiliä tulostusta varten" #: src/printOperation.js:50 msgid "You can abort printing if this takes too long" msgstr "Voit perua tulostuksen, jos siinä kestää liian kauan" #: src/printOperation.js:52 msgid "Abort printing" msgstr "Peru tulostus" #. Translators: this is add via location tooltip #: src/routeEntry.js:60 msgid "Add via location" msgstr "Lisää välisijainti" #. Translators: this is remove via location tooltip #: src/routeEntry.js:70 msgid "Remove via location" msgstr "Poista välisijainti" #. Translators: this is reverse route tooltip #: src/routeEntry.js:76 msgid "Reverse route" msgstr "Käänteinen reitti" #: src/searchBar.js:45 msgid "Search" msgstr "Etsi" #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:84 #, javascript-format msgid "Add %s to %s" msgstr "Lisää %s sovellukseen %s" #: src/sendToDialog.js:181 msgid "Failed to open URI" msgstr "URI:n avaaminen epäonnistui" #: src/sendToDialog.js:246 #, javascript-format msgid "Open with %s" msgstr "Avaa sovelluksella %s" #: src/shapeLayer.js:109 msgid "failed to load file" msgstr "tiedoston lataaminen epäonnistui" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:328 #, javascript-format msgid "Estimated time: %s" msgstr "Arvioitu aika: %s" #: src/sidebar.js:398 #, javascript-format msgid "Itineraries provided by %s" msgstr "Matkareitit tarjoaa %s" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:39 #, javascript-format msgid "Start at %s" msgstr "Aloita %s" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:45 src/transitplugins/openTripPlanner2.js:236 msgid "Start" msgstr "Aloita" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:63 #, javascript-format msgid "Walk %s" msgstr "Kävele %s" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:77 #, javascript-format msgid "Arrive at %s" msgstr "Saavu %s" #: src/transit.js:79 src/transitplugins/openTripPlanner.js:1176 #: src/transitplugins/openTripPlanner2.js:255 msgid "Arrive" msgstr "Saavu" #: src/transitLegRow.js:69 msgid "Show walking instructions" msgstr "Näytä kävelyohjeet" #: src/transitLegRow.js:70 msgid "Hide walking instructions" msgstr "Piilota kävelyohjeet" #: src/transitMoreRow.js:37 msgid "Load earlier alternatives" msgstr "Lataa aiemmat vaihtoehdot" #: src/transitMoreRow.js:39 msgid "Load later alternatives" msgstr "Lataa myöhemmät vaihtoehdot" #: src/transitMoreRow.js:52 msgid "No earlier alternatives found." msgstr "Aiempia vaihtoehtoja ei löytynyt." #: src/transitMoreRow.js:54 msgid "No later alternatives found." msgstr "Myöhempiä vaihtoehtoja ei löytynyt." #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:138 msgctxt "month-day-date" msgid "%b %e" msgstr "%e. %b" #: src/transitPlan.js:171 msgid "No timetable data found for this route." msgstr "Tälle reitille ei löytynyt aikataulutietoja." #: src/transitPlan.js:179 msgid "No provider found for this route." msgstr "Tälle reitille ei löytynyt palveluntarjoajaa." #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:300 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:331 #, javascript-format msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "%s minuutti" msgstr[1] "%s minuuttia" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:343 #, javascript-format msgid "%s hour" msgid_plural "%s hours" msgstr[0] "%s tunti" msgstr[1] "%s tuntia" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:351 #, javascript-format msgid "%s:%s hour" msgid_plural "%s:%s hours" msgstr[0] "%s:%02s tunti" msgstr[1] "%s:%02s tuntia" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:744 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: src/translations.js:55 msgid "Around the clock" msgstr "Kellon ympäri" #: src/translations.js:57 msgid "From sunrise to sunset" msgstr "Auringonnoususta auringonlaskuun" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:123 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s, %s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:137 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s, %s, %s" #: src/translations.js:156 msgid "Every day" msgstr "Päivittäin" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:168 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s–%s" #: src/translations.js:179 msgid "Public holidays" msgstr "Yleiset vapaapäivät" #: src/translations.js:181 msgid "School holidays" msgstr "Koulujen vapaapäivät" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:221 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: src/translations.js:235 msgid "not open" msgstr "ei avoinna" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:250 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:287 msgid "Bahá'í" msgstr "Bahá'í" #. Translators: Accuracy of user location information #: src/utils.js:248 msgid "Unknown" msgstr "Tuntematon" #. Translators: Accuracy of user location information #: src/utils.js:251 msgid "Exact" msgstr "Tarkka" #. Translators: this is a duration with only hours, using #. * an abbreviation for hours, corresponding to 'h' in English #. #: src/utils.js:307 #, javascript-format msgid "%s h" msgstr "%s h" #. Translators: this is a duration with hours and minutes parts #. * using abbreviations for hours and minutes, corresponding to 'h' #. * and 'min' in English. The minutes has appropriate plural variations #. #: src/utils.js:313 #, javascript-format msgid "%s h %s min" msgid_plural "%s h %s min" msgstr[0] "%s h %s min" msgstr[1] "%s h %s min" #. Translators: this is a duration with minutes part #. * using abbreviation for minutes, corresponding to 'min' in English #. * with appropriate plural variations #. #: src/utils.js:320 #, javascript-format msgid "%s min" msgid_plural "%s min" msgstr[0] "%s min" msgstr[1] "%s min" #. Translators: this is a duration of less than one minute #. * with seconds using an abbreviation for seconds, corresponding to #. * 's' in English with appropriate plural forms #. #: src/utils.js:326 #, javascript-format msgid "%s s" msgid_plural "%s s" msgstr[0] "%s s" msgstr[1] "%s s" #. Translators: This is a distance measured in kilometers #: src/utils.js:337 #, javascript-format msgid "%s km" msgstr "%s km" #. Translators: This is a distance measured in meters #: src/utils.js:340 #, javascript-format msgid "%s m" msgstr "%s m" #. Translators: This is a distance measured in miles #: src/utils.js:348 #, javascript-format msgid "%s mi" msgstr "%s mi" #. Translators: This is a distance measured in feet #: src/utils.js:351 #, javascript-format msgid "%s ft" msgstr "%s ft" #: src/transitplugins/goMetro.js:61 msgid "This plugin doesn't support latest arrival" msgstr "Tämä liitännäinen ei tue myöhäisintä saapumista" #: src/transitplugins/openTripPlanner.js:1237 #: src/transitplugins/openTripPlanner2.js:266 #, javascript-format msgid "Continue on %s" msgstr "Jatka %s" #: src/transitplugins/openTripPlanner.js:1242 #: src/transitplugins/openTripPlanner2.js:270 #, javascript-format msgid "Turn left on %s" msgstr "Käänny vasemmalle kohdasta %s" #: src/transitplugins/openTripPlanner.js:1244 #: src/transitplugins/openTripPlanner2.js:271 msgid "Turn left" msgstr "Käänny vasemmalle" #: src/transitplugins/openTripPlanner.js:1247 #: src/transitplugins/openTripPlanner2.js:275 #, javascript-format msgid "Turn slightly left on %s" msgstr "Käänny hieman vasemmalle kohdasta %s" #: src/transitplugins/openTripPlanner.js:1249 #: src/transitplugins/openTripPlanner2.js:276 msgid "Turn slightly left" msgstr "Käänny hieman vasemmalle" #: src/transitplugins/openTripPlanner.js:1252 #: src/transitplugins/openTripPlanner2.js:280 #, javascript-format msgid "Turn sharp left on %s" msgstr "Käänny terävästi vasemmalle kohdasta %s" #: src/transitplugins/openTripPlanner.js:1254 #: src/transitplugins/openTripPlanner2.js:281 msgid "Turn sharp left" msgstr "Käänny terävästi vasemmalle" #: src/transitplugins/openTripPlanner.js:1257 #: src/transitplugins/openTripPlanner2.js:284 #, javascript-format msgid "Turn right on %s" msgstr "Käänny oikealle kohdasta %s" #: src/transitplugins/openTripPlanner.js:1259 #: src/transitplugins/openTripPlanner2.js:285 msgid "Turn right" msgstr "Käänny oikealle" #: src/transitplugins/openTripPlanner.js:1262 #: src/transitplugins/openTripPlanner2.js:289 #, javascript-format msgid "Turn slightly right on %s" msgstr "Käänny hieman oikealle kohdasta %s" #: src/transitplugins/openTripPlanner.js:1264 #: src/transitplugins/openTripPlanner2.js:290 msgid "Turn slightly right" msgstr "Käänny hieman oikealle" #: src/transitplugins/openTripPlanner.js:1267 #: src/transitplugins/openTripPlanner2.js:294 #, javascript-format msgid "Turn sharp right on %s" msgstr "Käänny terävästi oikealle kohdasta %s" #: src/transitplugins/openTripPlanner.js:1269 #: src/transitplugins/openTripPlanner2.js:295 msgid "Turn sharp right" msgstr "Käänny terävästi oikealle" #: src/transitplugins/openTripPlanner.js:1275 #: src/transitplugins/openTripPlanner2.js:302 #, javascript-format msgid "At the roundabout, take exit %s" msgstr "Kiertoliittymässä ota poistumistie %s" #: src/transitplugins/openTripPlanner.js:1277 #: src/transitplugins/openTripPlanner2.js:305 #, javascript-format msgid "At the roundabout, take exit to %s" msgstr "Kiertoliittymässä ota poistumistie suuntaan %s" #: src/transitplugins/openTripPlanner.js:1279 #: src/transitplugins/openTripPlanner2.js:307 msgid "Take the roundabout" msgstr "Mene kiertoliittymään" #: src/transitplugins/openTripPlanner.js:1283 #: src/transitplugins/openTripPlanner2.js:315 #, javascript-format msgid "Take the elevator and get off at %s" msgstr "Ota hissi ja jää pois kerroksessa %s" #: src/transitplugins/openTripPlanner.js:1285 #: src/transitplugins/openTripPlanner2.js:316 msgid "Take the elevator" msgstr "Ota hissi" #: src/transitplugins/openTripPlanner.js:1289 #: src/transitplugins/openTripPlanner2.js:320 #, javascript-format msgid "Make a left u-turn onto %s" msgstr "Tee u-käännös vasemmalle kohtaan %s" #: src/transitplugins/openTripPlanner.js:1291 #: src/transitplugins/openTripPlanner2.js:321 msgid "Make a left u-turn" msgstr "Tee u-käännös vasemmalle" #: src/transitplugins/openTripPlanner.js:1294 #: src/transitplugins/openTripPlanner2.js:325 #, javascript-format msgid "Make a right u-turn onto %s" msgstr "Tee u-käännös oikealle kohtaan %s" #: src/transitplugins/openTripPlanner.js:1296 #: src/transitplugins/openTripPlanner2.js:326 msgid "Make a right u-turn" msgstr "Tee u-käännös oikealle" #~ msgid "Sign in to edit maps" #~ msgstr "" #~ "Kirjaudu sisään muokataksesi " #~ "karttoja" #~ msgid "" #~ "Sign in to authorize access in a web browser.\n" #~ "Then fill in the obtained verification code here in the next step." #~ msgstr "" #~ "Kirjaudu sisään valtuuttaaksesi pääsyn verkkoselaimessa.\n" #~ "Sen jälkeen täytä saatu vahvistuskoodi seuraavassa vaiheessa." #~ msgid "Signed In" #~ msgstr "Sisäänkirjautunut" #~ msgid "Sign up" #~ msgstr "Rekisteröidy" #~ msgid "Filesystem is read only" #~ msgstr "Tiedostojärjestemä on \"vain luku\"-muodossa" #~ msgid "You do not have permission to save there" #~ msgstr "Oikeutesi eivät riitä tänne tallentamiseen" #~ msgid "The directory does not exist" #~ msgstr "Kansiota ei ole olemassa" #~ msgid "No filename specified" #~ msgstr "Tiedostonimeä ei määritetty" #~ msgid "" #~ "Location was added to the map, note that it may take a while before it " #~ "shows on the map and in search results." #~ msgstr "" #~ "Sijainti lisättiin karttaan. Ota huomioon, että sen näkymisessä kartalla " #~ "ja hakutuloksissa saattaa kestää jonkin aikaa." #~ msgid "Takeaway" #~ msgstr "Takeaway" #~ msgid "Go to current location" #~ msgstr "Siirry nykyiseen sijaintiin" #~ msgid "Choose map type" #~ msgstr "Valitse kartan tyyppi" #~ msgid "Zoom in" #~ msgstr "Lähennä" #~ msgid "Drag to change order of the route" #~ msgstr "Vedä muuttaaksesi reitin määritystä" #~ msgid "Include route and markers" #~ msgstr "Sisällytä reitti ja merkit" #~ msgid "A map application for GNOME" #~ msgstr "Karttasovellus Gnomelle" #~ msgid "Failed to authorize access" #~ msgstr "Pääsyn valtuutus epäonnistui" #~ msgid "Try again" #~ msgstr "Yritä uudelleen" #~ msgid "Foursquare check-in privacy setting" #~ msgstr "Foursquare-paikkakirjautumisen yksityisyysasetus" #~ msgid "" #~ "Latest used Foursquare check-in privacy setting. Possible values are: " #~ "public, followers or private." #~ msgstr "" #~ "Viimeisin käytetty Foursquare-paikkakirjautumisen yksityisyysasetus. " #~ "Mahdolliset arvot ovat: public, followers tai private." #~ msgid "Foursquare check-in Facebook broadcasting" #~ msgstr "Foursquare-paikkakirjautumisen lähetys Facebookiin" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a post in the " #~ "Facebook account associated with the Foursquare account." #~ msgstr "" #~ "Ilmaisee pitäisikö Foursquaren välittää paikkakirjautuminen viestinä " #~ "Foursquare-tiliin liitetylle Facebook-tilille." #~ msgid "Foursquare check-in Twitter broadcasting" #~ msgstr "Foursquare-paikkakirjautumisen lähetys Twitteriin" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a tweet in the " #~ "Twitter account associated with the Foursquare account." #~ msgstr "" #~ "Ilmaisee pitäisikö Foursquaren välittää paikkakirjautuminen twiittinä " #~ "Foursquare-tiliin liitetylle Twitter-tilille." #~ msgid "Use hybrid aerial tiles" #~ msgstr "Käytä hybridejä ilmatiilejä" #~ msgid "Whether aerial tiles should use hybrid style (with labels)." #~ msgstr "Tuleeko ilmatiilten käyttää hybridityyliä (selitteiden kera)." #~ msgid "Visibility" #~ msgstr "Näkyvyys" #~ msgid "Post on Facebook" #~ msgstr "Lähetä Facebookiin" #~ msgid "Post on Twitter" #~ msgstr "Lähetä Twitteriin" #~ msgid "C_heck in" #~ msgstr "_Kirjaudu" #~ msgid "Public" #~ msgstr "Julkinen" #~ msgid "Private" #~ msgstr "Yksityinen" #~ msgid "Show Labels" #~ msgstr "Näytä selitteet" #~ msgid "Maps is offline!" #~ msgstr "Kartat on verkottomassa tilassa!" #~ msgid "" #~ "Maps need an active internet connection to function properly, but one " #~ "can’t be found." #~ msgstr "" #~ "Kartat tarvitsee aktiivisen internetyhteyden toimiakseen kunnolla, mutta " #~ "sellaista ei kuitenkaan havaittu." #~ msgid "Check your connection and proxy settings." #~ msgstr "Tarkista yhteytesi ja välityspalvelimen asetukset." #~ msgid "Password" #~ msgstr "Salasana" #~ msgid "" #~ "Sorry, that didn’t work. Please try again, or visit\n" #~ "OpenStreetMap to reset your password." #~ msgstr "" #~ "Valitettavasti se ei kelvannut. Yritä uudelleen tai siirry\n" #~ "OpenStreetMapiin nollataksesi salasanasi." #~ msgid "Check In…" #~ msgstr "_Ilmoittaudu…" #~ msgid "Ignore network availability" #~ msgstr "Älä huomioi verkon saatavuutta" #~ msgid "Select an account" #~ msgstr "Valitse tili" #~ msgid "Loading" #~ msgstr "Ladataan" #~ msgid "Select a place" #~ msgstr "Valitse paikka" #~ msgid "" #~ "Maps cannot find the place to check in to with Foursquare. Please select " #~ "one from this list." #~ msgstr "" #~ "Kartat ei löydä Foursquaresta paikkaa kirjautumista varten. Valitse " #~ "paikka luettelosta." #, javascript-format #~ msgid "Check in to %s" #~ msgstr "Kirjaudu paikkaan %s" #, javascript-format #~ msgid "Write an optional message to check in to %s." #~ msgstr "Kirjoita valinnainen viesti paikkaan %s kirjautumisen yhteydessä." #, javascript-format #~ msgid "Cannot find “%s” in the social service" #~ msgstr "Paikkaa \"%s\" ei löydy sosiaalisista palveluista" #~ msgid "Cannot find a suitable place to check-in in this location" #~ msgstr "Tästä sijainnista ei löydy kelvollista paikkaa kirjautumista varten" #~ msgid "" #~ "Credentials have expired, please open Online Accounts to sign in and " #~ "enable this account" #~ msgstr "" #~ "Kirjautumistiedot ovat vanhentuneet. Avaa verkkotilien asetukset " #~ "kirjautuaksesi ja käyttääksesi tätä tiliä" #~ msgid "GNOME Maps" #~ msgstr "Gnomen kartat" #~ msgid "Night mode" #~ msgstr "Yötila" #~ msgid "Whether the application is in night mode." #~ msgstr "Onko sovellus yötilassa vai ei." #~ msgid "Night Mode" #~ msgstr "Yötila" #~ msgid "" #~ "You can even search for specific types of locations, such as “Pubs near " #~ "Main Street, Boston” or “Hotels near Alexanderplatz, Berlin”." #~ msgstr "" #~ "Voit myös etsiä tietynlaista sijaintia, kuten \"Pubit lähellä Kallio, " #~ "Helsinki\" tai \"Hotellit lähellä Berliini, Saksa\"." #~ msgid "Facebook check-in privacy setting" #~ msgstr "Facebook-paikkakirjautumisen yksityisyysasetus" #~ msgid "" #~ "Latest used Facebook check-in privacy setting. Possible values are: " #~ "EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS or SELF." #~ msgstr "" #~ "Viimeisin käytetty Facebook-paikkakirjautumisen yksityisyysasetus. " #~ "Mahdolliset arvot ovat: EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS tai " #~ "SELF." #~ msgid "Everyone" #~ msgstr "Kaikki" #~ msgid "Friends of friends" #~ msgstr "Kaverien kaverit" #~ msgid "Just friends" #~ msgstr "Vain kaverit" #~ msgid "Just me" #~ msgstr "Vain minä" #~ msgid "" #~ "Maps cannot find the place to check in to with Facebook. Please select " #~ "one from this list." #~ msgstr "" #~ "Kartat ei löydä Facebookista paikkaa kirjautumista varten. Valitse paikka " #~ "luettelosta." #~ msgid "Find a Route" #~ msgstr "Hae reitti" #~ msgid "Check in here" #~ msgstr "Kirjaudu tänne" #~ msgid "Population:" #~ msgstr "Asukasluku:" #~ msgid "Altitude:" #~ msgstr "Korkeus:" #~ msgid "Opening hours:" #~ msgstr "Aukioloajat:" #~ msgid "Internet access:" #~ msgstr "Internetin käyttö:" #~ msgid "Toilets:" #~ msgstr "Vessat:" #~ msgid "Wheelchair access:" #~ msgstr "Pääsy pyörätuolilla:" #~ msgid "Phone:" #~ msgstr "Puhelin:" #~ msgid "yes" #~ msgstr "kyllä" #~ msgid "limited" #~ msgstr "rajoitettu" #~ msgid "no" #~ msgstr "ei" #~ msgid "designated" #~ msgstr "suunniteltu esteettömäksi" #~ msgid "OpenStreetMap URL is not valid" #~ msgstr "OpenStreetMap-osoite ei ole kelvollinen" #~ msgctxt "time range list" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgctxt "time range list" #~ msgid "%s %s %s" #~ msgstr "%s %s %s" #~ msgctxt "time range component" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgid "wired" #~ msgstr "kiinteä" #~ msgid "terminal" #~ msgstr "pääte" #~ msgid "service" #~ msgstr "palvelu" #~ msgid "Don’t have an account?" #~ msgstr "Oletko vailla tiliä?" #~ msgid "%f h" #~ msgstr "%f t" #~ msgid "%f min" #~ msgstr "%f min" #~ msgid "%f s" #~ msgstr "%f s" #~ msgid "Add destination" #~ msgstr "Lisää välipiste" #~ msgid "Route search by OpenTripPlanner" #~ msgstr "Reittihaun tarjoaa OpenTripPlanner" #~ msgid "org.gnome.Maps" #~ msgstr "org.gnome.Maps" #~ msgid "Open with another application" #~ msgstr "Avaa muussa sovelluksessa" #~ msgid "Press enter to search" #~ msgstr "Paina enter etsiäksesi" #~ msgid "Quit" #~ msgstr "Lopeta" #~ msgid "Open Shape Layer…" #~ msgstr "Avaa muototaso…" #~ msgid "OK" #~ msgstr "OK" #~ msgid "Load Map Layer" #~ msgstr "Lataa karttataso" #~ msgid "%f km" #~ msgstr "%f km" #~ msgid "%f m" #~ msgstr "%f m" #~ msgid "%f mi" #~ msgstr "%f mi" #~ msgid "%f ft" #~ msgstr "%f ft" #~ msgid "Position not found" #~ msgstr "Sijaintia ei löytynyt" #~ msgid "Country code: %s" #~ msgstr "Maanumero: %s" #~ msgid "Population: %s" #~ msgstr "Asukasluku: %s" #~ msgid "Wheelchair access: %s" #~ msgstr "Pääsy pyörätuolilla: %s" #~ msgid "Failed to parse GeoJSON file" #~ msgstr "GeoJSON-tiedoston jäsentäminen epäonnistui" #~ msgid "Last known location and accuracy" #~ msgstr "Viimeksi tunnettu sijainti ja tarkkuus" #~ msgid "" #~ "Last known location (latitude and longitude in degrees) and accuracy (in " #~ "meters)." #~ msgstr "" #~ "Viimeksi tunnettu sijainti (leveys ja pituus asteissa) ja tarkkuus " #~ "(metreissä)." #~ msgid "Description of last known location of user." #~ msgstr "Käyttäjän viimeksi tunnetun sijainnin kuvaus." #~ msgid "Whether the last known location was set manually by the user." #~ msgstr "Asetettiinko viimeksi tunnettu sijainti käyttäjän toimesta." #~ msgid "I’m here!" #~ msgstr "Minä, minä olen täällä!" #~ msgid "%f km²" #~ msgstr "%f km²" #~ msgid "Satellite" #~ msgstr "Satelliitti" #~ msgid " km2" #~ msgstr " km2" 070701000001C1000081A4000000000000000000000001664134090000FEA2000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/fr.po# French Translation of GNOME Maps. # Copyright (C) 2013-2022 Free Software Foundation, Inc. # This file is distributed under the same license as the gnome-maps package. # Ouharzoune Mohammed , 2013 # Claude Paroz , 2013-2017, 2020-2022 # Alexandre Franke , 2016. # Guillaume Bernard , 2014-2021 # Alain Lojewski ,2018 # vanadiae , 2020-2021. # Charles Monzat , 2018-2022. # Irénée THIRION , 2023. # msgid "" msgstr "" "Project-Id-Version: gnome-maps master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2024-02-14 22:30+0000\n" "PO-Revision-Date: 2024-02-23 12:34+0100\n" "Last-Translator: Guillaume Bernard \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: Poedit 3.3.2\n" #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.appdata.xml.in.in:6 data/org.gnome.Maps.desktop.in.in:4 #: data/ui/main-window.ui:27 src/application.js:64 src/mainWindow.js:147 #: src/mainWindow.js:647 msgid "Maps" msgstr "Cartes" #: data/org.gnome.Maps.appdata.xml.in.in:7 msgid "Find places around the world" msgstr "Recherche d’emplacements autour du monde" #: data/org.gnome.Maps.appdata.xml.in.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "L’application Cartes vous donne un accès rapide à des cartes du monde " "entier. Elle permet de trouver rapidement un emplacement en recherchant par " "ville ou par rue, ou de situer un endroit de rencontre avec un ami." #: data/org.gnome.Maps.appdata.xml.in.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "Les cartes utilisent la base de données collaborative OpenStreetMap, à " "laquelle contribuent des centaines de milliers de personnes dans le monde " "entier." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Maps.appdata.xml.in.in:451 src/mainWindow.js:644 msgid "The GNOME Project" msgstr "Le projet GNOME" #: data/org.gnome.Maps.desktop.in.in:5 msgid "A simple maps application" msgstr "Une application cartographique simple" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in.in:14 msgid "Maps;" msgstr "Cartes;" #: data/org.gnome.Maps.desktop.in.in:17 msgid "Allows your location to be shown on the map." msgstr "Permet d’afficher votre emplacement sur la carte." #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "dernier emplacement affiché" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "Coordonnées du dernier emplacement affiché." #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "zoom" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "Niveau de zoom" #: data/org.gnome.Maps.gschema.xml:21 msgid "rotation" msgstr "rotation" #: data/org.gnome.Maps.gschema.xml:22 msgid "Map rotation in radians" msgstr "Rotation de la carte en radians" #: data/org.gnome.Maps.gschema.xml:26 msgid "Map type" msgstr "Type de carte" #: data/org.gnome.Maps.gschema.xml:27 msgid "The type of map to display (street, aerial, etc.)" msgstr "Le type de carte à afficher (plan, satellite, etc.)" #: data/org.gnome.Maps.gschema.xml:31 msgid "Window size" msgstr "Taille de la fenêtre" #: data/org.gnome.Maps.gschema.xml:32 msgid "Window size (width and height)." msgstr "Taille de la fenêtre (hauteur et largeur)." #: data/org.gnome.Maps.gschema.xml:36 msgid "Window position" msgstr "Position de la fenêtre" #: data/org.gnome.Maps.gschema.xml:37 msgid "Window position (X and Y)." msgstr "Position de la fenêtre (X et Y)." #: data/org.gnome.Maps.gschema.xml:41 msgid "Window maximized" msgstr "Fenêtre agrandie" #: data/org.gnome.Maps.gschema.xml:42 msgid "Window maximization state" msgstr "État d’agrandissement de la fenêtre" #: data/org.gnome.Maps.gschema.xml:46 msgid "Maximum number of search results" msgstr "Nombre maximum de résultats de recherche" #: data/org.gnome.Maps.gschema.xml:47 msgid "Maximum number of search results from geocode search." msgstr "Nombre maximum de résultats d’une recherche par géocode." #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent places to store" msgstr "Nombre de positions récentes à conserver" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited places to store." msgstr "Nombre de positions récemment visitées à conserver." #: data/org.gnome.Maps.gschema.xml:56 msgid "Number of recent routes to store" msgstr "Nombre d’itinéraires récents à conserver" #: data/org.gnome.Maps.gschema.xml:57 msgid "Number of recently visited routes to store." msgstr "Nombre d’itinéraires récemment visités à conserver." #: data/org.gnome.Maps.gschema.xml:61 msgid "OpenStreetMap username or email address" msgstr "Nom d’utilisateur ou adresse de courriel OpenStreetMap" #: data/org.gnome.Maps.gschema.xml:62 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "" "Indique si l’utilisateur s’est identifié pour modifier des données " "OpenStreetMap." #: data/org.gnome.Maps.gschema.xml:66 msgid "Last used transportation type for routing" msgstr "Type de transport utilisé lors du dernier itinéraire" #: data/org.gnome.Maps.gschema.xml:70 msgid "Show scale" msgstr "Afficher l’échelle" #: data/org.gnome.Maps.gschema.xml:71 msgid "Whether to show the scale." msgstr "Indique si l’échelle doit être affichée." #: data/ui/context-menu.ui:6 msgid "Route from Here" msgstr "Itinéraire depuis ici" #: data/ui/context-menu.ui:10 msgid "Add Intermediate Destination" msgstr "Ajouter une destination intermédiaire" #: data/ui/context-menu.ui:14 msgid "Route to Here" msgstr "Itinéraire jusqu’à ce point" #: data/ui/context-menu.ui:20 msgid "What's Here?" msgstr "Qu’y a-t-il ici ?" #: data/ui/context-menu.ui:24 msgid "Copy Location" msgstr "Copier l’emplacement" # :../data/ui/context-menu.ui.h:4 ../src/osmEditDialog.js:167 #: data/ui/context-menu.ui:28 msgid "Add to OpenStreetMap…" msgstr "Ajouter à OpenStreetMap…" #: data/ui/export-view-dialog.ui:7 msgid "Export view" msgstr "Exportation de l’affichage" #: data/ui/export-view-dialog.ui:16 data/ui/send-to-dialog.ui:10 #: data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "_Annuler" #: data/ui/export-view-dialog.ui:26 msgid "_Export" msgstr "_Exporter" #. Translators: This is a tooltip #: data/ui/favorite-list-row.ui:72 msgid "Remove Favorite" msgstr "Retirer le favori" #: data/ui/favorites-popover.ui:11 msgid "No Favorites" msgstr "Aucun favori" #: data/ui/favorites-popover.ui:12 msgid "Add places to your favorites to get them listed here" msgstr "Ajouter des lieux à vos favoris pour qu’ils s’affichent ici" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:11 src/geoclue.js:106 msgid "Current Location" msgstr "Lieu actuel" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:19 msgid "Layers" msgstr "Couches" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:11 msgid "Print Route" msgstr "Imprimer l’itinéraire" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:21 msgid "Favorites" msgstr "Favoris" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:30 msgid "Route Planner" msgstr "Itinéraire" #: data/ui/help-overlay.ui:12 msgctxt "shortcut window" msgid "General" msgstr "Général" #: data/ui/help-overlay.ui:15 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "Afficher les raccourcis" #: data/ui/help-overlay.ui:21 msgctxt "shortcut window" msgid "Search" msgstr "Rechercher" #: data/ui/help-overlay.ui:27 msgctxt "shortcut window" msgid "Explore points-of-interest" msgstr "Explorer les points d’intérêt" #: data/ui/help-overlay.ui:33 msgctxt "shortcut window" msgid "Show last search results" msgstr "Afficher les derniers résultats de recherche" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "Basculer vers l’itinéraire" #: data/ui/help-overlay.ui:45 msgctxt "shortcut window" msgid "Print route" msgstr "Imprimer l’itinéraire" #: data/ui/help-overlay.ui:51 msgctxt "shortcut window" msgid "Quit" msgstr "Quitter" #: data/ui/help-overlay.ui:57 msgctxt "shortcut window" msgid "Open main menu" msgstr "Ouvrir le menu principal" #: data/ui/help-overlay.ui:65 msgctxt "shortcut window" msgid "Map View" msgstr "Afficher la carte" #: data/ui/help-overlay.ui:68 msgctxt "shortcut window" msgid "Zoom in" msgstr "Zoom avant" #: data/ui/help-overlay.ui:74 msgctxt "shortcut window" msgid "Zoom out" msgstr "Zoom arrière" #: data/ui/help-overlay.ui:80 msgctxt "shortcut window" msgid "Rotate clockwise" msgstr "Rotation horaire" #: data/ui/help-overlay.ui:86 msgctxt "shortcut window" msgid "Rotate counter-clockwise" msgstr "Rotation antihoraire" #: data/ui/help-overlay.ui:92 msgctxt "shortcut window" msgid "Reset rotation" msgstr "Réinitialiser la rotation" #: data/ui/help-overlay.ui:98 msgctxt "shortcut window" msgid "Toggle scale" msgstr "Afficher/masquer l’échelle" #: data/ui/help-overlay.ui:104 msgctxt "shortcut window" msgid "Go to current location" msgstr "Aller à ma position actuelle" #: data/ui/help-overlay.ui:114 msgctxt "shortcut window" msgid "Switch to street view" msgstr "Passer en vue cartographique" #: data/ui/help-overlay.ui:121 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "Passer en vue aérienne" #: data/ui/help-overlay.ui:127 msgctxt "shortcut window" msgid "Open shape layer" msgstr "Ouvrir une couche de formes" #: data/ui/layers-popover.ui:7 msgid "Show Scale" msgstr "Afficher l’échelle" #: data/ui/layers-popover.ui:16 msgid "Enable Experimental Map" msgstr "Activer la carte expérimentale" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:21 msgid "Open Shape Layer…" msgstr "Ouvrir une couche de formes…" #: data/ui/main-window.ui:8 msgid "Set up OpenStreetMap Account…" msgstr "Configurer un compte OpenStreetMap…" #: data/ui/main-window.ui:12 msgid "Export as Image…" msgstr "Exporter comme image…" #: data/ui/main-window.ui:17 msgid "_Keyboard Shortcuts" msgstr "_Raccourcis clavier" #: data/ui/main-window.ui:22 msgid "About Maps" msgstr "À propos de Cartes" #: data/ui/main-window.ui:48 msgid "Main Menu" msgstr "Menu principal" #: data/ui/osm-account-dialog.ui:5 msgid "OpenStreetMap Account" msgstr "Compte OpenStreetMap" #: data/ui/osm-account-dialog.ui:31 msgid "Sign In To Edit Maps" msgstr "Se connecter pour modifier les cartes" #: data/ui/osm-account-dialog.ui:32 msgid "Help to improve the map, using an OpenStreetMap account." msgstr "" "Aider à l’amélioration des cartes avec un compte OpenStreetMap." #: data/ui/osm-account-dialog.ui:36 msgid "Sign In" msgstr "S’identifier" #: data/ui/osm-account-dialog.ui:59 msgid "Verification" msgstr "Vérification" #: data/ui/osm-account-dialog.ui:60 msgid "" "Copy the verification code shown when authorizing access in the browser." msgstr "" "Copiez le code de vérification affiché dans le navigateur lors de la demande " "d’accès." #: data/ui/osm-account-dialog.ui:69 msgid "Verification Code" msgstr "Code de vérification" #: data/ui/osm-account-dialog.ui:75 msgid "Verify" msgstr "Vérifier" #: data/ui/osm-account-dialog.ui:110 msgid "Signed In" msgstr "Identifié" #: data/ui/osm-account-dialog.ui:111 msgid "Your OpenStreetMap account is active." msgstr "Votre compte OpenStreetMap est actif." #: data/ui/osm-account-dialog.ui:129 msgid "Sign Out" msgstr "Se déconnecter" #: data/ui/osm-edit-address.ui:11 msgid "Street" msgstr "Rue" #: data/ui/osm-edit-address.ui:22 msgid "House number" msgstr "Numéro" #: data/ui/osm-edit-address.ui:33 msgid "Postal code" msgstr "Code postal" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:44 msgid "City" msgstr "Ville" #: data/ui/osm-edit-dialog.ui:8 msgctxt "dialog title" msgid "Edit on OpenStreetMap" msgstr "Modifier sur OpenStreetMap" #: data/ui/osm-edit-dialog.ui:57 msgid "Type" msgstr "Type" #: data/ui/osm-edit-dialog.ui:79 msgid "None" msgstr "Aucun" #: data/ui/osm-edit-dialog.ui:108 msgid "Add Field" msgstr "Ajouter un champ" #: data/ui/osm-edit-dialog.ui:130 msgid "Comment" msgstr "Commentaire" #: data/ui/osm-edit-dialog.ui:158 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "Les modifications de la carte seront visibles sur toutes\n" "les cartes qui utilisent des données OpenStreetMap." #: data/ui/osm-edit-dialog.ui:186 msgid "Recently Used" msgstr "Dernièrement utilisé" #: data/ui/osm-edit-dialog.ui:225 src/mapView.js:663 msgid "Cancel" msgstr "Annuler" #: data/ui/osm-edit-dialog.ui:238 src/osmEditDialog.js:531 msgid "Next" msgstr "Suivant" #: data/ui/osm-edit-wikipedia.ui:8 msgid "Article" msgstr "Article" #: data/ui/osm-edit-wikipedia.ui:21 msgid "Wikidata tag" msgstr "Balise Wikidata" #: data/ui/osm-edit-wikipedia.ui:32 msgid "Load Wikidata tag for article" msgstr "Charger la balise Wikidata pour l’article" #: data/ui/place-popover.ui:23 src/searchBar.js:55 msgid "Explore Nearby Places" msgstr "Explorer les lieux alentours" #: data/ui/place-popover.ui:82 src/application.js:277 msgid "No results found" msgstr "Aucun résultat trouvé" #: data/ui/place-popover.ui:92 src/application.js:255 msgid "An error has occurred" msgstr "Une erreur est survenue" #. Translators: This is a tooltip #: data/ui/route-entry.ui:12 msgid "Change Route Order" msgstr "Modifier l’ordre d’itinéraire" #: data/ui/send-to-dialog.ui:7 msgid "Open Location" msgstr "Ouvrir l’emplacement" #: data/ui/send-to-dialog.ui:64 msgid "Copy" msgstr "Copier" #: data/ui/send-to-dialog.ui:70 msgid "Send To…" msgstr "Envoyer vers…" #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:62 msgid "Open Shape Layer" msgstr "Ouvrir une couche de formes" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "_Ouvrir" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:32 msgid "Toggle visible" msgstr "Inverser la visibilité" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:44 msgid "Remove Shape Layer" msgstr "Supprimer une couche de formes" #: data/ui/sidebar.ui:207 msgid "Route search by GraphHopper" msgstr "Recherche d’itinéraire avec GraphHopper" #: data/ui/sidebar.ui:272 msgid "" "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of " "transportation,\n" "e.g. a national provider might not include airlines, and a local provider " "could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" "Les itinéraires par transport public sont fournis par des services tiers\n" "GNOME ne peut garantir l’exactitude des itinéraires et horaires présentés.\n" "Notez que certains fournisseurs ne présentent pas toujours tous les modes " "de\n" "transport disponibles, par ex. un fournisseur national n’indiquerait peut-" "être\n" "pas les lignes aériennes ou un fournisseur local pourrait omettre les trains " "régionaux\n" ".Les noms et marques affichés doivent être considérés comme des marques " "déposées, le cas échéant." #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:98 msgid "Hide intermediate stops and information" msgstr "Masquer les arrêts et informations intermédiaires" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:156 msgid "Show intermediate stops and information" msgstr "Afficher les arrêts et informations intermédiaires" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:16 msgid "Leave Now" msgstr "Partir maintenant" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:17 msgid "Leave By" msgstr "Départ" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:18 msgid "Arrive By" msgstr "Arrivée" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:85 msgid "Show" msgstr "Afficher" #: data/ui/transit-options-panel.ui:95 msgid "Buses" msgstr "Bus" #: data/ui/transit-options-panel.ui:101 msgid "Trams" msgstr "Trams" #: data/ui/transit-options-panel.ui:107 msgid "Trains" msgstr "Trains" #: data/ui/transit-options-panel.ui:113 msgid "Subway" msgstr "Métros" #: data/ui/transit-options-panel.ui:119 msgid "Ferries" msgstr "Bateaux" #: data/ui/transit-options-panel.ui:125 msgid "Airplanes" msgstr "Avions" #. Translators: This is a tooltip #: data/ui/place-bar.ui:33 data/ui/place-buttons.ui:27 msgid "Share Location" msgstr "Partager l’emplacement" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:11 msgid "Add to new route" msgstr "Ajouter à un nouvel itinéraire" #. Translators: This is the button to find a route to a place #: data/ui/place-buttons.ui:15 msgid "Directions" msgstr "Directions" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:36 msgid "Mark as Favorite" msgstr "Marquer comme favori" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:44 msgid "Edit on OpenStreetMap" msgstr "Modifier sur OpenStreetMap" #. Translators: This is a tooltip #: data/ui/place-view.ui:52 msgid "Share location" msgstr "Partager l’emplacement" #: data/ui/poi-category-goback-row.ui:22 msgid "Back to Main Categories" msgstr "Retour vers les catégories principales" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:19 msgid "Reset Rotation" msgstr "Réinitialiser la rotation" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:32 msgid "Zoom Out" msgstr "Zoom arrière" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:43 src/mapView.js:1238 msgid "Zoom In" msgstr "Zoom avant" #: lib/maps-file-data-source.c:262 lib/maps-file-data-source.c:338 #: lib/maps-file-data-source.c:418 msgid "Failed to find tile structure in directory" msgstr "Impossible de trouver une structure de tuiles dans le répertoire" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "Échec d’analyse d’un document XML" #: lib/maps-osm.c:250 lib/maps-osm.c:403 msgid "Missing required attributes" msgstr "Attributs obligatoires manquants" #: lib/maps-osm.c:451 lib/maps-osm.c:494 msgid "Could not find OSM element" msgstr "Impossible de trouver l’élément OSM" #: lib/maps-osm.c:508 msgid "Could not find user element" msgstr "Impossible de trouver l’élément utilisateur" #: src/application.js:78 msgid "A path to a local tiles directory structure" msgstr "Un chemin vers un répertoire local de structure de tuiles" #: src/application.js:84 msgid "Tile size for local tiles directory" msgstr "Taille de tuile pour le répertoire local de tuiles" #: src/application.js:88 msgid "Show the version of the program" msgstr "Afficher la version du logiciel" #: src/application.js:94 msgid "Search for places" msgstr "Rechercher des lieux" #: src/application.js:105 src/application.js:106 msgid "[FILE…|URI]" msgstr "[FICHIER…|URI]" #: src/application.js:284 #, javascript-format msgid "Invalid maps: URI: %s" msgstr "URI maps: non valide : %s" #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:75 #, javascript-format msgid "Maps at %f, %f.png" msgstr "Cartes situées à %f, %f.png" #: src/exportViewDialog.js:174 msgid "Unable to export view" msgstr "Impossible d’exporter l’affichage" #: src/favoriteListRow.js:42 msgid "Favorite removed" msgstr "Favori retiré" #: src/favoriteListRow.js:43 msgid "Undo" msgstr "Annuler" #: src/geoJSONSource.js:73 msgid "invalid coordinate" msgstr "coordonnée non valable" #: src/geoJSONSource.js:126 src/geoJSONSource.js:166 src/geoJSONSource.js:181 msgid "parse error" msgstr "erreur d’analyse" #: src/geoJSONSource.js:160 msgid "unknown geometry" msgstr "géométrie inconnue" #: src/graphHopper.js:101 src/transitPlan.js:175 msgid "Route request failed." msgstr "Échec de la recherche d’itinéraire." #: src/graphHopper.js:108 src/transitPlan.js:167 msgid "No route found." msgstr "Aucun itinéraire trouvé." #: src/graphHopper.js:195 src/transitplugins/openTripPlanner.js:1163 msgid "Start!" msgstr "C’est parti !" #: src/mainWindow.js:59 msgid "All Layer Files" msgstr "Tous les fichiers de couches" #: src/mainWindow.js:522 msgid "Failed to connect to location service" msgstr "Échec à la connexion au service de localisation" #: src/mainWindow.js:527 msgid "Turn on location services" msgstr "Activer les services de localisation" #: src/mainWindow.js:528 msgid "Location Settings" msgstr "Paramètres de localisation" #: src/mainWindow.js:645 msgid "translator-credits" msgstr "" "Ouharzoune Mohammed \n" "Claude Paroz \n" "Guillaume Bernard \n" "Charles Monzat " #: src/mainWindow.js:649 msgid "Copyright © 2011 – 2023 Red Hat, Inc. and The GNOME Maps authors" msgstr "" "Copyright © 2011 – 2023 Red Hat, Inc. et les auteurs de Cartes de GNOME" #: src/mainWindow.js:665 #, javascript-format msgid "Map data by %s and contributors" msgstr "Données cartographiques de %s et contributeurs" #: src/mainWindow.js:666 msgid "Map Data Provider" msgstr "Fournisseur de données cartographiques" #: src/mainWindow.js:678 msgid "Map Tile Provider" msgstr "Fournisseur de fonds de cartes" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:686 #, javascript-format msgid "Map tiles provided by %s" msgstr "Fonds de cartes fournis par %s" #: src/mainWindow.js:716 msgid "Search Provider" msgstr "Fournisseur de recherche" #: src/mainWindow.js:719 #, javascript-format msgid "Search provided by %s using %s" msgstr "Recherche fournie par %s utilisant %s" #: src/mapView.js:637 src/mapView.js:702 msgid "Failed to open layer" msgstr "Échec d’ouverture de la couche" #: src/mapView.js:656 msgid "Do you want to continue?" msgstr "Voulez-vous continuer ?" #: src/mapView.js:657 #, javascript-format msgid "" "You are about to open files with a total size of %s MB. This could take some " "time to load" msgstr "" "Vous êtes sur le point d’ouvrir des fichiers pour une taille totale de " "%s Mo. Cela peut prendre un certain temps à charger" #: src/mapView.js:664 src/transitplugins/openTripPlanner.js:1239 #: src/transitplugins/openTripPlanner2.js:267 msgid "Continue" msgstr "Continuer" #: src/mapView.js:696 msgid "File type is not supported" msgstr "Le type de fichier n’est pas pris en charge" #: src/mapView.js:733 msgid "Failed to open GeoURI" msgstr "Échec d’ouverture de la Geo URI" #: src/mapView.js:1197 msgid "Nothing found here!" msgstr "Rien n’a été trouvé à cet endroit !" #: src/mapView.js:1237 msgid "Zoom in to add location" msgstr "Zoomez pour ajouter un emplacement" #: src/mapView.js:1258 msgid "Location was added in OpenStreetMap" msgstr "Emplacement ajouté sur OpenStreetMap" #. switch back to the sign-in view, and show a toast indicating #. that verification failed #: src/osmAccountDialog.js:134 msgid "The verification code didn’t match, please try again." msgstr "Le code de vérification ne correspond pas, essayez encore une fois." #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:335 msgid "Incorrect user name or password" msgstr "Nom d’utilisateur ou mot de passe incorrect" #: src/osmConnection.js:337 msgid "Success" msgstr "Succès" #: src/osmConnection.js:339 msgid "Bad request" msgstr "Mauvaise requête" #: src/osmConnection.js:341 msgid "Object not found" msgstr "Objet non trouvé" #: src/osmConnection.js:343 msgid "Conflict, someone else has just modified the object" msgstr "Conflit, quelqu’un d’autre vient de modifier l’objet" #: src/osmConnection.js:345 msgid "Object has been deleted" msgstr "L’objet a été supprimé" #: src/osmConnection.js:347 msgid "Way or relation refers to non-existing children" msgstr "Le chemin ou la relation se réfère à des enfants qui n’existent pas" #: src/osmEditDialog.js:106 msgid "Name" msgstr "Nom" #: src/osmEditDialog.js:109 msgid "The official name. This is typically what appears on signs." msgstr "Le nom officiel. C’est en général ce qui est écrit sur l’enseigne." #: src/osmEditDialog.js:112 msgid "Address" msgstr "Adresse" #: src/osmEditDialog.js:120 src/placeView.js:275 msgid "Website" msgstr "Site web" #: src/osmEditDialog.js:124 msgid "This is not a valid URL. Make sure to include http:// or https://." msgstr "" "Cette URL n’est pas valide. Assurez-vous d’inclure http:// ou https://." #: src/osmEditDialog.js:125 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" "Le site officiel. Essayez d’utiliser la forme la plus simple pour l’URL, " "c’est-à-dire http://example.com au lieu de http://example.com/index.html." #: src/osmEditDialog.js:130 msgid "Phone" msgstr "Téléphone" #: src/osmEditDialog.js:134 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" "Numéro de téléphone. Utilisez le format international, en commençant par un " "signe +. Attention aux lois locales sur la vie privée, surtout pour les " "numéros de téléphone des particuliers." #: src/osmEditDialog.js:139 msgid "E-mail" msgstr "Adresse de courriel" #: src/osmEditDialog.js:144 msgid "" "This is not a valid email address. Make sure to not include the mailto: " "protocol prefix." msgstr "" "Adresse de courriel non valide. Vérifiez que vous n’avez pas inclus le " "préfixe de protocole mailto:." #: src/osmEditDialog.js:145 msgid "" "Contact email address for inquiries. Add only email addresses that are " "intended to be publicly used." msgstr "" "Adresse de courriel de contact pour les demandes de renseignement. Ajoutez " "des adresses de courriel qui sont destinées à être utilisées publiquement." #. Translators: This is the text for the "Wikipedia" link at the end #. of summaries #: src/osmEditDialog.js:149 src/placeView.js:727 msgid "Wikipedia" msgstr "Wikipédia" #: src/osmEditDialog.js:156 src/placeView.js:399 msgid "Opening hours" msgstr "Heures d’ouverture" #: src/osmEditDialog.js:161 msgid "See the link in the label for help on format." msgstr "Voir le lien dans l’étiquette pour de l’aide sur le format." #. TODO: this is a bit of a work-around to re-interpret the population, #. * stored as a string into an integer to convert back to a locale- #. * formatted string. Ideally it should be kept as an integer value #. * in the Place class. But this will also need to be handled by the #. * PlaceStore, possible in a backwards-compatible way #. #: src/osmEditDialog.js:164 src/placeView.js:509 msgid "Population" msgstr "Population" #: src/osmEditDialog.js:169 src/placeView.js:538 msgid "Altitude" msgstr "Altitude" #: src/osmEditDialog.js:172 msgid "Elevation (height above sea level) of a point in meters." msgstr "" "Élévation (hauteur au-dessus du niveau de la mer) d’un point en mètres." #: src/osmEditDialog.js:175 msgid "Wheelchair access" msgstr "Accès aux fauteuils roulants" #: src/osmEditDialog.js:178 src/osmEditDialog.js:187 src/osmEditDialog.js:198 #: src/osmEditDialog.js:233 msgid "Yes" msgstr "Oui" #: src/osmEditDialog.js:179 src/osmEditDialog.js:188 src/osmEditDialog.js:199 #: src/osmEditDialog.js:234 msgid "No" msgstr "Non" #: src/osmEditDialog.js:180 msgid "Limited" msgstr "Limité" #: src/osmEditDialog.js:181 msgid "Designated" msgstr "Réservé" #: src/osmEditDialog.js:184 msgid "Internet access" msgstr "Accès à Internet" #: src/osmEditDialog.js:189 msgid "Wi-Fi" msgstr "Wi-Fi" #: src/osmEditDialog.js:190 msgid "Wired" msgstr "Filaire" #: src/osmEditDialog.js:191 msgid "Terminal" msgstr "Terminal" #: src/osmEditDialog.js:192 msgid "Service" msgstr "Service" #: src/osmEditDialog.js:195 msgid "Takeout" msgstr "À emporter" #: src/osmEditDialog.js:200 msgid "Only" msgstr "Uniquement" #: src/osmEditDialog.js:203 msgid "Religion" msgstr "Religion" #: src/osmEditDialog.js:206 src/translations.js:286 msgid "Animism" msgstr "Animisme" #: src/osmEditDialog.js:207 msgid "Bahá’í" msgstr "Bahaïsme" #: src/osmEditDialog.js:208 src/translations.js:288 msgid "Buddhism" msgstr "Bouddhisme" #: src/osmEditDialog.js:209 src/translations.js:289 msgid "Caodaism" msgstr "Caodaïsme" #: src/osmEditDialog.js:210 src/translations.js:290 msgid "Christianity" msgstr "Christianisme" #: src/osmEditDialog.js:211 src/translations.js:291 msgid "Confucianism" msgstr "Confucianisme" #: src/osmEditDialog.js:212 src/translations.js:292 msgid "Hinduism" msgstr "Hindouisme" #: src/osmEditDialog.js:213 src/translations.js:293 msgid "Jainism" msgstr "Jainisme" #: src/osmEditDialog.js:214 src/translations.js:294 msgid "Judaism" msgstr "Judaïsme" #: src/osmEditDialog.js:215 src/translations.js:295 msgid "Islam" msgstr "Islam" #: src/osmEditDialog.js:216 src/translations.js:296 msgid "Multiple Religions" msgstr "Plusieurs religions" #: src/osmEditDialog.js:217 src/translations.js:297 msgid "Paganism" msgstr "Paganisme" #: src/osmEditDialog.js:218 src/translations.js:298 msgid "Pastafarianism" msgstr "Pastafarisme" #: src/osmEditDialog.js:219 src/translations.js:299 msgid "Scientology" msgstr "Scientologie" #: src/osmEditDialog.js:220 src/translations.js:300 msgid "Shinto" msgstr "Shintoïsme" #: src/osmEditDialog.js:221 src/translations.js:301 msgid "Sikhism" msgstr "Sikhisme" #: src/osmEditDialog.js:222 src/translations.js:302 msgid "Spiritualism" msgstr "Spiritualisme" #: src/osmEditDialog.js:223 src/translations.js:303 msgid "Taoism" msgstr "Taoïsme" #: src/osmEditDialog.js:224 src/translations.js:304 msgid "Unitarian Universalism" msgstr "Unitarisme universaliste" #: src/osmEditDialog.js:225 src/translations.js:305 msgid "Voodoo" msgstr "Vaudou" #: src/osmEditDialog.js:226 src/translations.js:306 msgid "Yazidism" msgstr "Yézidisme" #: src/osmEditDialog.js:227 src/translations.js:307 msgid "Zoroastrianism" msgstr "Zoroastrisme" #: src/osmEditDialog.js:230 src/poiCategories.js:176 msgid "Toilets" msgstr "Toilettes" #: src/osmEditDialog.js:237 msgid "Note" msgstr "Note" #: src/osmEditDialog.js:240 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" "Informations utilisées pour informer d’autres cartographes sur les " "informations non évidentes sur un élément, l’intention de l’auteur lors de " "sa création ou des indications pour de possibles améliorations." # :../data/ui/context-menu.ui.h:4 ../src/osmEditDialog.js:167 #: src/osmEditDialog.js:339 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "Ajout à OpenStreetMap" #: src/osmEditDialog.js:393 msgid "Select Type" msgstr "Sélectionner le type" #: src/osmEditDialog.js:515 msgid "Done" msgstr "Terminé" #: src/osmEditDialog.js:818 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "" "Le format utilisé devrait comprendre le code langue et le titre de " "l’article, comme « fr:Titre de l’article »." #: src/osmEditDialog.js:824 msgid "Use the reload button to load the Wikidata tag for the selected article" msgstr "" "Utilisez le bouton de rechargement pour charger la balise Wikidata de " "l’article sélectionné" #: src/osmEditDialog.js:832 msgid "Couldn't find Wikidata tag for article" msgstr "Impossible de trouver la balise Wikidata pour l’article." #: src/photonUtils.js:118 msgid "Unnamed place" msgstr "Emplacement sans nom" #: src/placeEntry.js:274 msgid "Failed to parse Geo URI" msgstr "Échec à l’analyse de la Geo URI" #: src/placeEntry.js:286 msgid "Failed to parse Maps URI" msgstr "Échec d’analyse de l’URI Maps" #. 300 ft (300 * 12 * 0.0254 m) #. #. * Translators: This a format string for showing a distance to a place #. * is lower than a "quite short" distance. #. * The "less than" symbol can be substituded with an appropriate one, if #. * needed (e.g. using the correct direction, or alternative symbol). #. * The %s should be kept, and is substituted with a label representing the #. * short distance. The \u2009 (thin space) could also be adjusted if needed #: src/placeListRow.js:46 #, javascript-format msgctxt "short distance format string" msgid "< %s" msgstr "< %s" #: src/placeView.js:263 msgid "Coordinates" msgstr "Coordonnées" #: src/placeView.js:267 msgid "Accuracy" msgstr "Précision de la position" #. Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) #: src/placeView.js:270 #, javascript-format msgid "Accuracy: %s" msgstr "Précision de la position : %s" #. since the phone numbers are typically always rendered #. * left-to-right, insert an explicit LRM char to avoid issues #. * with phone numbers in international format starting with a + #. * which is considered a "weak" character to determine Unicode #. * text direction #. #: src/placeView.js:289 msgid "Phone number" msgstr "Numéro de téléphone" #: src/placeView.js:308 msgid "Email" msgstr "Adresse électronique" #. If a reference to a named floor (named or symbolic) exists #. * refer to it directly. #. #. Translators: #. * This is a reference to named building floor, using a label #. * or a code, as "displayed in the elevator" #. #: src/placeView.js:323 src/placeView.js:362 msgid "Floor" msgstr "Étage" #: src/placeView.js:325 #, javascript-format msgid "Floor %s" msgstr "Étage %s" #: src/placeView.js:337 msgid "At ground level" msgstr "Au niveau du sol" #. Translators: #. * This is a reference to a number of floors above #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:346 #, javascript-format msgid "%s floor above ground level" msgid_plural "%s floors above ground level" msgstr[0] "%s étage au-dessus du niveau du sol" msgstr[1] "%s étages au-dessus du niveau du sol" #. Translators: #. * This is a reference to a number of floors below #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:357 #, javascript-format msgid "%s floor below ground level" msgid_plural "%s floors below ground level" msgstr[0] "%s étage sous le niveau du sol" msgstr[1] "%s étages sous le niveau du sol" #. Translators: #. * The establishment offers customers to purchase meals #. * (or similar) to be consumed elsewhere #. #: src/placeView.js:375 msgid "Offers takeout" msgstr "Plats à emporter" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed on-premise. #. #: src/placeView.js:383 msgid "Does not offer takeout" msgstr "Ne propose pas de plats à emporter" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed elsewhere. E.g. #. * there is no seating on-premise for eating/drinking #. #: src/placeView.js:392 msgid "Only offers takeout" msgstr "Seulement des plats à emporter" #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/placeView.js:409 msgid "Public internet access" msgstr "Accès public à Internet" #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/placeView.js:418 msgid "No internet access" msgstr "Aucun accès à Internet" #. Translators: #. * This means a WLAN Hotspot, also known as wireless, wifi or Wi-Fi. #. #: src/placeView.js:426 msgid "Public Wi-Fi" msgstr "Wi-Fi public" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/placeView.js:434 msgid "Wired internet access" msgstr "Accès internet filaire" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/placeView.js:442 msgid "Computers available for use" msgstr "Ordinateurs disponibles pour utilisation" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/placeView.js:450 msgid "Internet assistance available" msgstr "Assistance internet disponible" #: src/placeView.js:456 msgid "No toilets available" msgstr "Toilettes indisponibles" #: src/placeView.js:459 msgid "Toilets available" msgstr "Toilettes disponibles" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #: src/placeView.js:468 msgid "Wheelchair accessible" msgstr "Accessible aux fauteuils roulants" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/placeView.js:478 msgid "Limited wheelchair accessibility" msgstr "Accessibilité limitée aux fauteuils roulants" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #: src/placeView.js:487 msgid "Not wheelchair accessible" msgstr "Aucune accessibilité aux fauteuils roulants" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/placeView.js:497 msgid "Designated for wheelchair users" msgstr "Accès destiné aux utilisateurs de fauteuils roulants" #. * #. * Translators: this is a label indicating an altitude below #. * sea level, where the %s placeholder is the altitude relative #. * to mean sea level in the "negative direction" #. #: src/placeView.js:528 #, javascript-format msgid "%s below sea level" msgstr "%s sous le niveau de la mer" #. * #. * Translators: this indicates a place is located at (or very #. * close to) mean sea level #. #: src/placeView.js:535 msgid "At sea level" msgstr "Au niveau de la mer" #: src/placeView.js:544 msgid "Religion:" msgstr "Religion :" #: src/place.js:568 msgid "Place not found in OpenStreetMap" msgstr "Emplacement introuvable sur OpenStreetMap" #: src/place.js:575 msgid "Coordinates in URL are not valid" msgstr "Les coordonnées dans l’URL ne sont pas valides" #: src/place.js:584 msgid "URL is not supported" msgstr "L’URL n’est pas prise en charge" #: src/poiCategories.js:132 msgid "Amenities" msgstr "Équipements" #: src/poiCategories.js:135 msgid "ATMs" msgstr "Distributeurs de billets" #: src/poiCategories.js:141 msgid "Post Boxes" msgstr "Boîtes postales" #: src/poiCategories.js:147 msgid "Post Offices" msgstr "Bureaux de poste" #: src/poiCategories.js:153 msgid "Police" msgstr "Police" #: src/poiCategories.js:159 msgid "Libraries" msgstr "Bibliothèques" #: src/poiCategories.js:165 msgid "Pharmacies" msgstr "Pharmacies" #: src/poiCategories.js:171 msgid "Recycling" msgstr "Recyclage" #: src/poiCategories.js:182 msgid "Wheelchair-accessible Toilets" msgstr "Toilettes accessibles aux fauteuils roulants" #: src/poiCategories.js:188 msgid "Baggage Lockers" msgstr "Consignes à bagages" #: src/poiCategories.js:196 msgid "Eating & Drinking" msgstr "Manger et boire" #: src/poiCategories.js:200 msgid "Restaurants" msgstr "Restaurants" #: src/poiCategories.js:205 msgid "Fast Food" msgstr "Restauration rapide" #: src/poiCategories.js:210 msgid "Food Courts" msgstr "Espaces de restauration" #: src/poiCategories.js:215 msgid "Pubs" msgstr "Pubs" #: src/poiCategories.js:221 msgid "Bars" msgstr "Bars" #: src/poiCategories.js:226 msgid "Cafes" msgstr "Cafés" #: src/poiCategories.js:231 msgid "Ice Cream" msgstr "Glace" #: src/poiCategories.js:236 msgid "Food, Snacks, and Beverage Machines" msgstr "Distributeurs de nourriture et de boissons" #: src/poiCategories.js:244 msgid "Shopping" msgstr "Faire du shopping" #: src/poiCategories.js:248 msgid "Supermarkets" msgstr "Supermarchés" #: src/poiCategories.js:254 msgid "Convenience Stores" msgstr "Supérettes" #: src/poiCategories.js:259 msgid "Shopping Malls" msgstr "Centres commerciaux" #: src/poiCategories.js:265 msgid "Clothes" msgstr "Vêtements" #: src/poiCategories.js:271 msgid "Shoes" msgstr "Chaussures" #: src/poiCategories.js:276 msgid "Electronics" msgstr "Électronique" #: src/poiCategories.js:282 msgid "Alcohol" msgstr "Alcool" #: src/poiCategories.js:288 msgid "Bakeries" msgstr "Boulangeries" #: src/poiCategories.js:294 msgid "Flowers" msgstr "Fleuristes" #: src/poiCategories.js:301 msgid "Transportation" msgstr "Transports" #: src/poiCategories.js:305 msgid "Bus & Tram Stops" msgstr "Arrêts de bus et de tram" #: src/poiCategories.js:313 msgid "Train & Subway Stations" msgstr "Stations de train et de métro" #: src/poiCategories.js:321 msgid "Tickets" msgstr "Tickets" #: src/poiCategories.js:329 msgid "Parking" msgstr "Parking" #: src/poiCategories.js:334 msgid "Bicycle Parking" msgstr "Parking à vélos" #: src/poiCategories.js:339 msgid "Bicycle Rental" msgstr "Location de vélos" #: src/poiCategories.js:344 msgid "Car Rental" msgstr "Location de voitures" #: src/poiCategories.js:349 msgid "Fuel" msgstr "Essence" #: src/poiCategories.js:354 msgid "EV Charging" msgstr "Station de charge électrique" #: src/poiCategories.js:362 msgid "Healthcare" msgstr "Santé et soins" #: src/poiCategories.js:366 msgid "Clinics" msgstr "Cliniques" #: src/poiCategories.js:372 msgid "Hospitals" msgstr "Hôpitaux" #: src/poiCategories.js:378 msgid "Dentists" msgstr "Dentistes" #: src/poiCategories.js:386 msgid "Accommodation" msgstr "Hébergements" #: src/poiCategories.js:390 msgid "Hotels" msgstr "Hôtels" #: src/poiCategories.js:395 msgid "Hostels" msgstr "Auberges de jeunesse" #: src/poiCategories.js:400 msgid "Bed & Breakfast" msgstr "Chambres d’hôtes" #: src/poiCategories.js:405 msgid "Campings" msgstr "Campings" #: src/poiCategories.js:412 msgid "Recreation" msgstr "Loisirs" #: src/poiCategories.js:416 msgid "Parks" msgstr "Parcs" #: src/poiCategories.js:421 msgid "Playgrounds" msgstr "Terrains de jeux" #: src/poiCategories.js:425 msgid "Beaches" msgstr "Plages" #: src/poiCategories.js:430 msgid "Nature Reserves" msgstr "Réserves naturelles" #: src/poiCategories.js:436 msgid "Theme Parks" msgstr "Parcs à thème" #: src/poiCategories.js:441 msgid "Theaters" msgstr "Théâtres" #: src/poiCategories.js:447 msgid "Movie Theaters" msgstr "Cinémas" #: src/poiCategories.js:453 msgid "Night Clubs" msgstr "Discothèques" #: src/poiCategories.js:460 msgid "Tourism" msgstr "Tourisme" #: src/poiCategories.js:464 msgid "Museums" msgstr "Musées" #: src/poiCategories.js:470 msgid "Attractions" msgstr "Attractions" #: src/poiCategories.js:475 msgid "Artworks" msgstr "Œuvres d’art" #: src/poiCategories.js:480 msgid "Tourist Information" msgstr "Informations touristiques" #: src/poiCategories.js:487 msgid "Sports" msgstr "Sports" #: src/poiCategories.js:491 msgid "Gyms" msgstr "Salles de sport" #: src/poiCategories.js:497 msgid "Outdoor Gyms" msgstr "Installations sportives de plein air" #: src/poiCategories.js:503 msgid "Golf Courses" msgstr "Terrains de golf" #: src/printLayout.js:350 #, javascript-format msgid "From %s to %s" msgstr "De %s à %s" #: src/printOperation.js:49 msgid "Loading map tiles for printing" msgstr "Chargement des tuiles de carte pour l’impression" #: src/printOperation.js:50 msgid "You can abort printing if this takes too long" msgstr "Vous pouvez interrompre l’impression si cela prend trop de temps" #: src/printOperation.js:52 msgid "Abort printing" msgstr "Interrompre l’impression" #. Translators: this is add via location tooltip #: src/routeEntry.js:60 msgid "Add via location" msgstr "Ajouter un emplacement intermédiaire" #. Translators: this is remove via location tooltip #: src/routeEntry.js:70 msgid "Remove via location" msgstr "Supprimer l’emplacement intermédiaire" #. Translators: this is reverse route tooltip #: src/routeEntry.js:76 msgid "Reverse route" msgstr "Chemin inverse" #: src/searchBar.js:45 msgid "Search" msgstr "Rechercher" #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:84 #, javascript-format msgid "Add %s to %s" msgstr "Ajouter %s à %s" #: src/sendToDialog.js:181 msgid "Failed to open URI" msgstr "Échec d’ouverture de l’URI" #: src/sendToDialog.js:246 #, javascript-format msgid "Open with %s" msgstr "Ouvrir avec %s" #: src/shapeLayer.js:109 msgid "failed to load file" msgstr "impossible de charger le fichier" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:328 #, javascript-format msgid "Estimated time: %s" msgstr "Temps estimé : %s" #: src/sidebar.js:398 #, javascript-format msgid "Itineraries provided by %s" msgstr "Itinéraires fournis par %s" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:39 #, javascript-format msgid "Start at %s" msgstr "Départ de %s" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:45 src/transitplugins/openTripPlanner2.js:236 msgid "Start" msgstr "Départ" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:63 #, javascript-format msgid "Walk %s" msgstr "Marcher %s" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:77 #, javascript-format msgid "Arrive at %s" msgstr "Arrivée à %s" #: src/transit.js:79 src/transitplugins/openTripPlanner.js:1176 #: src/transitplugins/openTripPlanner2.js:255 msgid "Arrive" msgstr "Arrivée" #: src/transitLegRow.js:69 msgid "Show walking instructions" msgstr "Montrer les instructions de marche à pied" #: src/transitLegRow.js:70 msgid "Hide walking instructions" msgstr "Masquer les instructions de marche à pied" #: src/transitMoreRow.js:37 msgid "Load earlier alternatives" msgstr "Charger les alternatives précédentes" #: src/transitMoreRow.js:39 msgid "Load later alternatives" msgstr "Charger les alternatives suivantes" #: src/transitMoreRow.js:52 msgid "No earlier alternatives found." msgstr "Aucune alternative précédente trouvée." #: src/transitMoreRow.js:54 msgid "No later alternatives found." msgstr "Aucune alternative suivante trouvée." #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:138 msgctxt "month-day-date" msgid "%b %e" msgstr "%e %b" #: src/transitPlan.js:171 msgid "No timetable data found for this route." msgstr "Aucun horaire trouvé pour cet itinéraire." #: src/transitPlan.js:179 msgid "No provider found for this route." msgstr "Aucun fournisseur trouvé pour cet itinéraire." #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:300 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:331 #, javascript-format msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "%s minute" msgstr[1] "%s minutes" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:343 #, javascript-format msgid "%s hour" msgid_plural "%s hours" msgstr[0] "%s heure" msgstr[1] "%s heures" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:351 #, javascript-format msgid "%s:%s hour" msgid_plural "%s:%s hours" msgstr[0] "%s:%s heure" msgstr[1] "%s:%s heures" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:744 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: src/translations.js:55 msgid "Around the clock" msgstr "24 h/24" #: src/translations.js:57 msgid "From sunrise to sunset" msgstr "Du lever au coucher du soleil" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:123 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s, %s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:137 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s, %s, %s" #: src/translations.js:156 msgid "Every day" msgstr "Tous les jours" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:168 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s — %s" #: src/translations.js:179 msgid "Public holidays" msgstr "Jours fériés" #: src/translations.js:181 msgid "School holidays" msgstr "Vacances scolaires" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:221 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: src/translations.js:235 msgid "not open" msgstr "fermé" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:250 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s — %s" #: src/translations.js:287 msgid "Bahá'í" msgstr "Bahaïsme" #. Translators: Accuracy of user location information #: src/utils.js:248 msgid "Unknown" msgstr "Inconnue" #. Translators: Accuracy of user location information #: src/utils.js:251 msgid "Exact" msgstr "Exacte" #. Translators: this is a duration with only hours, using #. * an abbreviation for hours, corresponding to 'h' in English #. #: src/utils.js:307 #, javascript-format msgid "%s h" msgstr "%s h" #. Translators: this is a duration with hours and minutes parts #. * using abbreviations for hours and minutes, corresponding to 'h' #. * and 'min' in English. The minutes has appropriate plural variations #. #: src/utils.js:313 #, javascript-format msgid "%s h %s min" msgid_plural "%s h %s min" msgstr[0] "%s h %s min" msgstr[1] "%s h %s min" #. Translators: this is a duration with minutes part #. * using abbreviation for minutes, corresponding to 'min' in English #. * with appropriate plural variations #. #: src/utils.js:320 #, javascript-format msgid "%s min" msgid_plural "%s min" msgstr[0] "%s min" msgstr[1] "%s min" #. Translators: this is a duration of less than one minute #. * with seconds using an abbreviation for seconds, corresponding to #. * 's' in English with appropriate plural forms #. #: src/utils.js:326 #, javascript-format msgid "%s s" msgid_plural "%s s" msgstr[0] "%s s" msgstr[1] "%s s" #. Translators: This is a distance measured in kilometers #: src/utils.js:337 #, javascript-format msgid "%s km" msgstr "%s km" #. Translators: This is a distance measured in meters #: src/utils.js:340 #, javascript-format msgid "%s m" msgstr "%s m" #. Translators: This is a distance measured in miles #: src/utils.js:348 #, javascript-format msgid "%s mi" msgstr "%s miles" #. Translators: This is a distance measured in feet #: src/utils.js:351 #, javascript-format msgid "%s ft" msgstr "%s pieds" #: src/transitplugins/goMetro.js:61 msgid "This plugin doesn't support latest arrival" msgstr "Ce greffon ne prend pas en charge les dernières arrivées" #: src/transitplugins/openTripPlanner.js:1237 #: src/transitplugins/openTripPlanner2.js:266 #, javascript-format msgid "Continue on %s" msgstr "Continuer sur %s" #: src/transitplugins/openTripPlanner.js:1242 #: src/transitplugins/openTripPlanner2.js:270 #, javascript-format msgid "Turn left on %s" msgstr "Tourner à gauche sur %s" #: src/transitplugins/openTripPlanner.js:1244 #: src/transitplugins/openTripPlanner2.js:271 msgid "Turn left" msgstr "Tourner à gauche" #: src/transitplugins/openTripPlanner.js:1247 #: src/transitplugins/openTripPlanner2.js:275 #, javascript-format msgid "Turn slightly left on %s" msgstr "Tourner légèrement à gauche sur %s" #: src/transitplugins/openTripPlanner.js:1249 #: src/transitplugins/openTripPlanner2.js:276 msgid "Turn slightly left" msgstr "Tourner légèrement à gauche" #: src/transitplugins/openTripPlanner.js:1252 #: src/transitplugins/openTripPlanner2.js:280 #, javascript-format msgid "Turn sharp left on %s" msgstr "Tourner franchement à gauche sur %s" #: src/transitplugins/openTripPlanner.js:1254 #: src/transitplugins/openTripPlanner2.js:281 msgid "Turn sharp left" msgstr "Tourner franchement à gauche" #: src/transitplugins/openTripPlanner.js:1257 #: src/transitplugins/openTripPlanner2.js:284 #, javascript-format msgid "Turn right on %s" msgstr "Tourner à droite sur %s" #: src/transitplugins/openTripPlanner.js:1259 #: src/transitplugins/openTripPlanner2.js:285 msgid "Turn right" msgstr "Tourner à droite" #: src/transitplugins/openTripPlanner.js:1262 #: src/transitplugins/openTripPlanner2.js:289 #, javascript-format msgid "Turn slightly right on %s" msgstr "Tourner légèrement à droite sur %s" #: src/transitplugins/openTripPlanner.js:1264 #: src/transitplugins/openTripPlanner2.js:290 msgid "Turn slightly right" msgstr "Tourner légèrement à droite" #: src/transitplugins/openTripPlanner.js:1267 #: src/transitplugins/openTripPlanner2.js:294 #, javascript-format msgid "Turn sharp right on %s" msgstr "Tourner franchement à droite sur %s" #: src/transitplugins/openTripPlanner.js:1269 #: src/transitplugins/openTripPlanner2.js:295 msgid "Turn sharp right" msgstr "Tourner franchement à droite" #: src/transitplugins/openTripPlanner.js:1275 #: src/transitplugins/openTripPlanner2.js:302 #, javascript-format msgid "At the roundabout, take exit %s" msgstr "Au giratoire, prendre la sortie %s" #: src/transitplugins/openTripPlanner.js:1277 #: src/transitplugins/openTripPlanner2.js:305 #, javascript-format msgid "At the roundabout, take exit to %s" msgstr "Au giratoire, prendre la sortie vers %s" #: src/transitplugins/openTripPlanner.js:1279 #: src/transitplugins/openTripPlanner2.js:307 msgid "Take the roundabout" msgstr "S’engager dans le giratoire" #: src/transitplugins/openTripPlanner.js:1283 #: src/transitplugins/openTripPlanner2.js:315 #, javascript-format msgid "Take the elevator and get off at %s" msgstr "Prendre l’ascenseur et sortir à %s" #: src/transitplugins/openTripPlanner.js:1285 #: src/transitplugins/openTripPlanner2.js:316 msgid "Take the elevator" msgstr "Prendre l’ascenseur" #: src/transitplugins/openTripPlanner.js:1289 #: src/transitplugins/openTripPlanner2.js:320 #, javascript-format msgid "Make a left u-turn onto %s" msgstr "Faire un demi-tour à gauche sur %s" #: src/transitplugins/openTripPlanner.js:1291 #: src/transitplugins/openTripPlanner2.js:321 msgid "Make a left u-turn" msgstr "Faire un demi-tour à gauche" #: src/transitplugins/openTripPlanner.js:1294 #: src/transitplugins/openTripPlanner2.js:325 #, javascript-format msgid "Make a right u-turn onto %s" msgstr "Faire un demi-tour à droite sur %s" #: src/transitplugins/openTripPlanner.js:1296 #: src/transitplugins/openTripPlanner2.js:326 msgid "Make a right u-turn" msgstr "Faire un demi-tour à droite" #~ msgid "Sign in to edit maps" #~ msgstr "" #~ "S’identifier pour modifier des " #~ "cartes" #~ msgid "" #~ "Sign in to authorize access in a web browser.\n" #~ "Then fill in the obtained verification code here in the next step." #~ msgstr "" #~ "Obtenez une autorisation d’accès en vous connectant au travers d’un " #~ "navigateur web.\n" #~ "Puis saisissez ici le code de vérification obtenu à l’étape suivante." #~ msgid "Signed In" #~ msgstr "Vous êtes inscrit" #~ msgid "Sign up" #~ msgstr "S’inscrire" #~ msgid "Filesystem is read only" #~ msgstr "Le système de fichiers est en lecture seule" #~ msgid "You do not have permission to save there" #~ msgstr "Vous n’avez pas la permission d’enregistrer à cet endroit" #~ msgid "The directory does not exist" #~ msgstr "Le dossier n’existe pas" #~ msgid "No filename specified" #~ msgstr "Aucun nom de fichier indiqué" #~ msgid "" #~ "Location was added to the map, note that it may take a while before it " #~ "shows on the map and in search results." #~ msgstr "" #~ "L’emplacement a été ajouté à la carte, notez que cela peut prendre un " #~ "moment avant qu’il n’apparaisse sur la carte et dans les résultats de " #~ "recherche." #~ msgid "Takeaway" #~ msgstr "À emporter" #~ msgid "Go to current location" #~ msgstr "Aller à ma position actuelle" #~ msgid "Choose map type" #~ msgstr "Choisir le type de carte" #~ msgid "Zoom in" #~ msgstr "Zoom avant" #~ msgid "Drag to change order of the route" #~ msgstr "Faites glisser pour modifier l’ordre de l’itinéraire" #~ msgid "Include route and markers" #~ msgstr "Inclure l’itinéraire et les marqueurs" #~ msgid "A map application for GNOME" #~ msgstr "Une application cartographique pour GNOME" #~ msgid "Failed to authorize access" #~ msgstr "Échec d’autorisation d’accès" #~ msgid "Try again" #~ msgstr "Essayer à nouveau" #~ msgid "Use hybrid aerial tiles" #~ msgstr "Utiliser les tuiles aériennes hybrides" #~ msgid "Whether aerial tiles should use hybrid style (with labels)." #~ msgstr "" #~ "Indique si les tuiles aériennes doivent être utilisées en mode hybride " #~ "(avec étiquettes)." #~ msgid "Visibility" #~ msgstr "Visibilité" #~ msgid "C_heck in" #~ msgstr "A_nnoncer sa localisation" #~ msgid "Public" #~ msgstr "Publique" #~ msgid "Private" #~ msgstr "Privé" #~ msgid "Show Labels" #~ msgstr "Afficher les étiquettes" #~ msgid "Maps is offline!" #~ msgstr "Cartes est hors ligne !" #~ msgid "" #~ "Maps need an active internet connection to function properly, but one " #~ "can’t be found." #~ msgstr "" #~ "Cartes a besoin d’une connexion internet active et fonctionnelle, mais " #~ "aucune n’a été trouvée." #~ msgid "Check your connection and proxy settings." #~ msgstr "Vérifiez votre connexion et vos paramètres de proxy." #~ msgid "Password" #~ msgstr "Mot de passe" #~ msgid "" #~ "Sorry, that didn’t work. Please try again, or visit\n" #~ "OpenStreetMap to reset your password." #~ msgstr "" #~ "Désolé, ça n’a pas fonctionné. Veuillez réessayer ou visiter\n" #~ "OpenStreetMap pour réinitialiser votre mot de passe." #~ msgid "Check In…" #~ msgstr "Annoncer sa localisation…" #~ msgid "Ignore network availability" #~ msgstr "Ignorer la disponibilité du réseau" #~ msgid "Select an account" #~ msgstr "Sélectionner un compte" #~ msgid "Loading" #~ msgstr "Chargement" #~ msgid "Select a place" #~ msgstr "Sélectionner un lieu" #~ msgid "" #~ "Maps cannot find the place to check in to with Foursquare. Please select " #~ "one from this list." #~ msgstr "" #~ "Cartes ne trouve pas de lieu pour signaler sa localisation sur " #~ "Foursquare. Veuillez en sélectionner un dans cette liste." #, javascript-format #~ msgid "Check in to %s" #~ msgstr "Annoncer sa localisation à %s" #, javascript-format #~ msgid "Write an optional message to check in to %s." #~ msgstr "" #~ "Écrire un message optionnel pour votre annonce de localisation à %s." #, javascript-format #~ msgid "Cannot find “%s” in the social service" #~ msgstr "Impossible de trouver « %s » sur le réseau social" #~ msgid "Cannot find a suitable place to check-in in this location" #~ msgstr "" #~ "Impossible de trouver un endroit correspondant pour annoncer sa " #~ "localisation ici" #~ msgid "" #~ "Credentials have expired, please open Online Accounts to sign in and " #~ "enable this account" #~ msgstr "" #~ "Les informations d’authentification ont expiré, ouvrez Comptes en ligne " #~ "pour vous connecter et activer ce compte" #~ msgid "GNOME Maps" #~ msgstr "Cartes de GNOME" #~ msgid "Night mode" #~ msgstr "Mode nuit" #~ msgid "Whether the application is in night mode." #~ msgstr "Indique si l’application est en mode nuit." #~ msgid "Night Mode" #~ msgstr "Mode nuit" #~ msgid "" #~ "You can even search for specific types of locations, such as “Pubs near " #~ "Main Street, Boston” or “Hotels near Alexanderplatz, Berlin”." #~ msgstr "" #~ "Vous pouvez même chercher des lieux spécifiques, comme « Restaurants à " #~ "côté de la Cathédrale de Strasbourg » ou « Hôtels à côté d’Alexanderplatz " #~ "à Berlin »." #~ msgid "Everyone" #~ msgstr "Tout le monde" #~ msgid "Check in here" #~ msgstr "Annoncer cet emplacement comme localisation" #~ msgid "Population:" #~ msgstr "Population :" #~ msgid "Altitude:" #~ msgstr "Altitude :" #~ msgid "Opening hours:" #~ msgstr "Heures d’ouverture :" #~ msgid "Internet access:" #~ msgstr "Accès à Internet :" #~ msgid "Toilets:" #~ msgstr "Toilettes :" #~ msgid "Wheelchair access:" #~ msgstr "Accès aux fauteuils roulants :" #~ msgid "Phone:" #~ msgstr "Téléphone :" #~ msgid "limited" #~ msgstr "limité" #~ msgid "designated" #~ msgstr "réservé" #~ msgid "OpenStreetMap URL is not valid" #~ msgstr "L’URL de OpenStreetMap n’est pas valide" #~ msgid "wired" #~ msgstr "filaire" #~ msgid "Find a Route" #~ msgstr "Trouver un itinéraire" #~ msgid "Primary menu" #~ msgstr "Menu principal" #~ msgid "Don’t have an account?" #~ msgstr "Vous n’avez pas de compte ?" 070701000001C2000081A400000000000000000000000166413409000103B4000000000000000000000000000000000000001B00000000gnome-maps-46.11/po/fur.po# Friulian translation for gnome-maps. # Copyright (C) 2013 gnome-maps's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-maps package. # Fabio Tomat , 2013. # msgid "" msgstr "" "Project-Id-Version: gnome-maps master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2024-02-10 10:18+0000\n" "PO-Revision-Date: 2024-02-11 05:07+0100\n" "Last-Translator: Fabio T. \n" "Language-Team: Friulian \n" "Language: fur\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-Editor: HaiPO 1.4 beta\n" "X-Generator: Poedit 3.4.2\n" #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.appdata.xml.in.in:6 data/org.gnome.Maps.desktop.in.in:4 #: data/ui/main-window.ui:27 src/application.js:64 src/mainWindow.js:147 #: src/mainWindow.js:647 msgid "Maps" msgstr "Mapis" #: data/org.gnome.Maps.appdata.xml.in.in:7 msgid "Find places around the world" msgstr "Cjate puescj tor atôr pal mont" #: data/org.gnome.Maps.appdata.xml.in.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "Mapis ti da un acès veloç a lis mapis ator pal mont. Ti permet di cjatâ di " "corse il puest che ti interesse cirint citât o vie, o cirî un puest dulà " "cjatâsi cuntun ami." #: data/org.gnome.Maps.appdata.xml.in.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "Mapis al dopre il database colaboratîf OpenStreetMap, fat da centenârs di " "miârs di personis ator pal mont." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Maps.appdata.xml.in.in:451 src/mainWindow.js:644 msgid "The GNOME Project" msgstr "Il progjet GNOME" #: data/org.gnome.Maps.desktop.in.in:5 msgid "A simple maps application" msgstr "Une semplice aplicazion pes mapis" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in.in:14 msgid "Maps;" msgstr "Mapis;" #: data/org.gnome.Maps.desktop.in.in:17 msgid "Allows your location to be shown on the map." msgstr "Permet ae tô posizion di jessi mostrade te mape." #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "ultime posizion viodude" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "Coordenadis de ultime posizion viodude." #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "ingrandiment" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "Nivel di ingrandiment" #: data/org.gnome.Maps.gschema.xml:21 msgid "rotation" msgstr "rotazion" #: data/org.gnome.Maps.gschema.xml:22 msgid "Map rotation in radians" msgstr "Rotazion de mape in radiants" #: data/org.gnome.Maps.gschema.xml:26 msgid "Map type" msgstr "Gjenar di mape" #: data/org.gnome.Maps.gschema.xml:27 msgid "The type of map to display (street, aerial, etc.)" msgstr "Il gjenar di mape di mostrâ (stradâl, aerie, ...)" #: data/org.gnome.Maps.gschema.xml:31 msgid "Window size" msgstr "Dimension barcon" #: data/org.gnome.Maps.gschema.xml:32 msgid "Window size (width and height)." msgstr "Dimension barcon (largjece e altece)." #: data/org.gnome.Maps.gschema.xml:36 msgid "Window position" msgstr "Posizion barcon" #: data/org.gnome.Maps.gschema.xml:37 msgid "Window position (X and Y)." msgstr "Posizion barcon (X e Y)." #: data/org.gnome.Maps.gschema.xml:41 msgid "Window maximized" msgstr "Barcon massimizât" #: data/org.gnome.Maps.gschema.xml:42 msgid "Window maximization state" msgstr "Stat massimizât dal barcon" #: data/org.gnome.Maps.gschema.xml:46 msgid "Maximum number of search results" msgstr "Massim numar di risultâts di ricercje" #: data/org.gnome.Maps.gschema.xml:47 msgid "Maximum number of search results from geocode search." msgstr "Massim numar di risultâts de ricercje da codifiche gjeografiche." #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent places to store" msgstr "Numar di lûcs resints di archiviâ" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited places to store." msgstr "Numar di lûcs resints viodûts di tegnî di cont." #: data/org.gnome.Maps.gschema.xml:56 msgid "Number of recent routes to store" msgstr "Numar di percors resints di archiviâ" #: data/org.gnome.Maps.gschema.xml:57 msgid "Number of recently visited routes to store." msgstr "Numar di percors resints fats di memorizâ." #: data/org.gnome.Maps.gschema.xml:61 msgid "OpenStreetMap username or e-mail address" msgstr "Non utent o direzion e-mail OpenStreetMap" #: data/org.gnome.Maps.gschema.xml:62 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "" "Al indiche se l'utent al è jentrât te session par modificâ dâts " "OpenStreetMap." #: data/org.gnome.Maps.gschema.xml:66 msgid "Last used transportation type for routing" msgstr "L'ultin gjenar di traspuart doprât par spostâsi" #: data/org.gnome.Maps.gschema.xml:70 msgid "Show scale" msgstr "Mostre la scjale" #: data/org.gnome.Maps.gschema.xml:71 msgid "Whether to show the scale." msgstr "Indiche se mostrâ la scjale." #: data/ui/context-menu.ui:6 msgid "Route from Here" msgstr "Percors di chi" #: data/ui/context-menu.ui:10 msgid "Add Intermediate Destination" msgstr "Zonte destinazion intermedie" #: data/ui/context-menu.ui:14 msgid "Route to Here" msgstr "Percors par rivâ chi" #: data/ui/context-menu.ui:20 msgid "What's Here?" msgstr "Ce isal achì?" #: data/ui/context-menu.ui:24 msgid "Copy Location" msgstr "Copie posizion" #: data/ui/context-menu.ui:28 msgid "Add to OpenStreetMap…" msgstr "Zonte a OpenStreetMap…" #: data/ui/export-view-dialog.ui:7 msgid "Export view" msgstr "Espuarte viodude" #: data/ui/export-view-dialog.ui:16 data/ui/send-to-dialog.ui:10 #: data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "_Anule" #: data/ui/export-view-dialog.ui:26 msgid "_Export" msgstr "_Espuarte" #. Translators: This is a tooltip #: data/ui/favorite-list-row.ui:72 msgid "Remove Favorite" msgstr "Gjave preferît" #: data/ui/favorites-popover.ui:11 msgid "No favorites" msgstr "Nissun preferît" #: data/ui/favorites-popover.ui:12 msgid "Add places to your favorites to get them listed here" msgstr "Zonte puescj ai tiei preferîts par fâju vignî fûr achì" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:11 src/geoclue.js:106 msgid "Current Location" msgstr "Posizion atuâl" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:19 msgid "Layers" msgstr "Strâts" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:11 msgid "Print Route" msgstr "Stampe percors" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:21 msgid "Favorites" msgstr "Preferîts" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:30 msgid "Route Planner" msgstr "Plan di percors" #: data/ui/help-overlay.ui:12 msgctxt "shortcut window" msgid "General" msgstr "Gjenerâl" #: data/ui/help-overlay.ui:15 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "Mostre scurtis" #: data/ui/help-overlay.ui:21 msgctxt "shortcut window" msgid "Search" msgstr "Cîr" #: data/ui/help-overlay.ui:27 msgctxt "shortcut window" msgid "Explore points-of-interest" msgstr "Esplore ponts di interès" #: data/ui/help-overlay.ui:33 msgctxt "shortcut window" msgid "Show last search results" msgstr "Mostre i ultins risultâts di ricercje" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "Cambie plan di percors" #: data/ui/help-overlay.ui:45 msgctxt "shortcut window" msgid "Print route" msgstr "Stampe percors" #: data/ui/help-overlay.ui:51 msgctxt "shortcut window" msgid "Quit" msgstr "Jes" #: data/ui/help-overlay.ui:57 msgctxt "shortcut window" msgid "Open main menu" msgstr "Vierç il menù principâl" #: data/ui/help-overlay.ui:65 msgctxt "shortcut window" msgid "Map View" msgstr "Viodude mape" #: data/ui/help-overlay.ui:68 msgctxt "shortcut window" msgid "Zoom in" msgstr "Aumente ingrandiment" #: data/ui/help-overlay.ui:74 msgctxt "shortcut window" msgid "Zoom out" msgstr "Diminuìs ingrandiment" #: data/ui/help-overlay.ui:80 msgctxt "shortcut window" msgid "Rotate clockwise" msgstr "Volte in sens orari" #: data/ui/help-overlay.ui:86 msgctxt "shortcut window" msgid "Rotate counter-clockwise" msgstr "Volte in sens anti-orari" #: data/ui/help-overlay.ui:92 msgctxt "shortcut window" msgid "Reset rotation" msgstr "Azere rotazion" #: data/ui/help-overlay.ui:98 msgctxt "shortcut window" msgid "Toggle scale" msgstr "Cambiâ scjale" #: data/ui/help-overlay.ui:104 msgctxt "shortcut window" msgid "Go to current location" msgstr "Va te posizion atuâl" #: data/ui/help-overlay.ui:114 msgctxt "shortcut window" msgid "Switch to street view" msgstr "Passe ae viodude stradâl" #: data/ui/help-overlay.ui:121 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "Passe ae viodude aerie" #: data/ui/help-overlay.ui:127 msgctxt "shortcut window" msgid "Open shape layer" msgstr "Vierç strât sagome" #: data/ui/layers-popover.ui:7 msgid "Show Scale" msgstr "Mostre la scjale" #: data/ui/layers-popover.ui:16 msgid "Enable Experimental Map" msgstr "Abilite mape sperimentâl" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:21 msgid "Open Shape Layer…" msgstr "Vierç strât sagome…" #: data/ui/main-window.ui:8 msgid "Set up OpenStreetMap Account…" msgstr "Configure Account OpenStreetMap…" #: data/ui/main-window.ui:12 msgid "Export as Image…" msgstr "Espuarte come imagjin…" #: data/ui/main-window.ui:17 msgid "_Keyboard Shortcuts" msgstr "_Scurtis tastiere" #: data/ui/main-window.ui:22 msgid "About Maps" msgstr "Informazions su Mapis" #: data/ui/main-window.ui:48 msgid "Main Menu" msgstr "Menù principâl" #: data/ui/osm-account-dialog.ui:5 msgid "OpenStreetMap Account" msgstr "Account OpenStreetMap" #: data/ui/osm-account-dialog.ui:31 msgid "Sign In To Edit Maps" msgstr "Jentre par modificâ mapis" #: data/ui/osm-account-dialog.ui:32 msgid "Help to improve the map, using an OpenStreetMap account." msgstr "Jude a miorâ la mape doprant un account OpenStreetMap." #: data/ui/osm-account-dialog.ui:36 msgid "Sign In" msgstr "Jentre" #: data/ui/osm-account-dialog.ui:59 msgid "Verification" msgstr "Verifiche" #: data/ui/osm-account-dialog.ui:60 msgid "" "Copy the verification code shown when authorizing access in the browser." msgstr "" "Copie il codiç di verifiche mostrât cuant che al ven autorizât l'acès intal " "navigadôr." #: data/ui/osm-account-dialog.ui:69 msgid "Verification Code" msgstr "Codiç di verifiche" #: data/ui/osm-account-dialog.ui:75 msgid "Verify" msgstr "Verifiche" #: data/ui/osm-account-dialog.ui:110 msgid "Signed In" msgstr "Jentrât" #: data/ui/osm-account-dialog.ui:111 msgid "Your OpenStreetMap account is active." msgstr "Il tô account OpenStreetMap al è atîf." #: data/ui/osm-account-dialog.ui:129 msgid "Sign Out" msgstr "Jes" #: data/ui/osm-edit-address.ui:11 msgid "Street" msgstr "Vie" #: data/ui/osm-edit-address.ui:22 msgid "House number" msgstr "Numar civic" #: data/ui/osm-edit-address.ui:33 msgid "Postal code" msgstr "Codiç postâl" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:44 msgid "City" msgstr "Citât" #: data/ui/osm-edit-dialog.ui:8 msgctxt "dialog title" msgid "Edit on OpenStreetMap" msgstr "Modifiche su OpenStreetMap" #: data/ui/osm-edit-dialog.ui:57 msgid "Type" msgstr "Gjenar" #: data/ui/osm-edit-dialog.ui:79 msgid "None" msgstr "Nissun" #: data/ui/osm-edit-dialog.ui:108 msgid "Add Field" msgstr "Zonte cjamp" #: data/ui/osm-edit-dialog.ui:130 msgid "Comment" msgstr "Coment" #: data/ui/osm-edit-dialog.ui:158 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "I cambiaments de mape a saran visibii in dutis lis mapis che a doprin\n" "dâts OpenStreetMap." #: data/ui/osm-edit-dialog.ui:186 msgid "Recently Used" msgstr "Doprâts di resint" #: data/ui/osm-edit-dialog.ui:225 src/mapView.js:663 msgid "Cancel" msgstr "Anule" #: data/ui/osm-edit-dialog.ui:238 src/osmEditDialog.js:531 msgid "Next" msgstr "Prossim" #: data/ui/osm-edit-wikipedia.ui:8 msgid "Article" msgstr "Articul" #: data/ui/osm-edit-wikipedia.ui:21 msgid "Wikidata tag" msgstr "Etichete Wikidata" #: data/ui/osm-edit-wikipedia.ui:32 msgid "Load Wikidata tag for article" msgstr "Cjame la etichete Wikidata pal articul" #: data/ui/place-popover.ui:23 src/searchBar.js:55 msgid "Explore Nearby Places" msgstr "Esplore i puescj dongje" #: data/ui/place-popover.ui:82 src/application.js:277 msgid "No results found" msgstr "Nissun risultât cjatât" #: data/ui/place-popover.ui:92 src/application.js:255 msgid "An error has occurred" msgstr "Si è verificât un erôr" #. Translators: This is a tooltip #: data/ui/route-entry.ui:12 msgid "Change Route Order" msgstr "Cambie ordin percors" #: data/ui/send-to-dialog.ui:7 msgid "Open Location" msgstr "Vierç posizion" #: data/ui/send-to-dialog.ui:64 msgid "Copy" msgstr "Copie" #: data/ui/send-to-dialog.ui:70 msgid "Send To…" msgstr "Invie a…" #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:62 msgid "Open Shape Layer" msgstr "Vierç strât sagome" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "_Vierç" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:32 msgid "Toggle visible" msgstr "Cambiâ stât visibil" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:44 msgid "Remove Shape Layer" msgstr "Gjave strât sagome" #: data/ui/sidebar.ui:207 msgid "Route search by GraphHopper" msgstr "Ricercje dal percors cun GraphHopper" #: data/ui/sidebar.ui:272 msgid "" "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of " "transportation,\n" "e.g. a national provider might not include airlines, and a local provider " "could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" "I itineraris di percors pai mieçs publics a son furnîts di servizis di\n" "tiercis parts.\n" "GNOME nol pues garantî la justece dai itineraris e dai oraris mostrâts.\n" "Viôt che cualchi furnidôr al podarès no includi dutis lis modalitâts di " "traspuart disponibilis,\n" "p.e. un furnidôr nazionâl al podarès no includi lis tratis aeronautichis e " "un furnidôr locâl\n" "al pues no includi i trens regjionâi.\n" "I nons e lis marchis mostradis si àn di considerâ come marchis regjistradis " "cuant che si puedin aplicâ." #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:98 msgid "Hide intermediate stops and information" msgstr "Plate fermadis intermediis e informazions" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:156 msgid "Show intermediate stops and information" msgstr "Mostre fermadis intermediis e informazions" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:16 msgid "Leave Now" msgstr "Partî cumò" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:17 msgid "Leave By" msgstr "Partî tor" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:18 msgid "Arrive By" msgstr "Rivâ tor" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:85 msgid "Show" msgstr "Mostre" #: data/ui/transit-options-panel.ui:95 msgid "Buses" msgstr "Autobus" #: data/ui/transit-options-panel.ui:101 msgid "Trams" msgstr "Trams" #: data/ui/transit-options-panel.ui:107 msgid "Trains" msgstr "Trens" #: data/ui/transit-options-panel.ui:113 msgid "Subway" msgstr "Metropolitane" #: data/ui/transit-options-panel.ui:119 msgid "Ferries" msgstr "Traghets" #: data/ui/transit-options-panel.ui:125 msgid "Airplanes" msgstr "Avions" #. Translators: This is a tooltip #: data/ui/place-bar.ui:33 data/ui/place-buttons.ui:27 msgid "Share Location" msgstr "Condivît posizion" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:11 msgid "Add to new route" msgstr "Zonte a gnûf percors" #. Translators: This is the button to find a route to a place #: data/ui/place-buttons.ui:15 msgid "Directions" msgstr "Direzions" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:36 msgid "Mark as Favorite" msgstr "Segne come preferît" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:44 msgid "Edit on OpenStreetMap" msgstr "Modifiche su OpenStreetMap" #. Translators: This is a tooltip #: data/ui/place-view.ui:52 msgid "Share location" msgstr "Condivît posizion" #: data/ui/poi-category-goback-row.ui:22 msgid "Back to Main Categories" msgstr "Torne aes categoriis princpâls" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:19 msgid "Reset Rotation" msgstr "Ripristine rotazion" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:32 msgid "Zoom Out" msgstr "Impiçulìs" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:43 src/mapView.js:1238 msgid "Zoom In" msgstr "Ingrandìs" #: lib/maps-file-data-source.c:262 lib/maps-file-data-source.c:338 #: lib/maps-file-data-source.c:418 msgid "Failed to find tile structure in directory" msgstr "Impussibil cjatâ la struture dai tassei de mape te cartele" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "Impussibil analizâ il document XML" #: lib/maps-osm.c:250 lib/maps-osm.c:403 msgid "Missing required attributes" msgstr "E mancjin i atribûts necessaris" #: lib/maps-osm.c:451 lib/maps-osm.c:494 msgid "Could not find OSM element" msgstr "Impussibil cjatâ l'element OSM" #: lib/maps-osm.c:508 msgid "Could not find user element" msgstr "Impussibil cjatâ l'element dal utent" #: src/application.js:78 msgid "A path to a local tiles directory structure" msgstr "Un percors par une struture de cartele dai tassei de mape locâi" #: src/application.js:84 msgid "Tile size for local tiles directory" msgstr "La dimension dai tassei de mape pe cartele dai tassei locâi" #: src/application.js:88 msgid "Show the version of the program" msgstr "Mostre la version dal program" #: src/application.js:94 msgid "Search for places" msgstr "Cîr un lûc" #: src/application.js:105 src/application.js:106 msgid "[FILE…|URI]" msgstr "[FILE…|URI]" #: src/application.js:284 #, javascript-format msgid "Invalid maps: URI: %s" msgstr "Mapis no validis: URI: %s" #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:75 #, javascript-format msgid "Maps at %f, %f.png" msgstr "Mapis a %f, %f.png" #: src/exportViewDialog.js:174 msgid "Unable to export view" msgstr "Impussibil espuartâ la viodude" #: src/favoriteListRow.js:42 msgid "Favorite removed" msgstr "Preferît gjavât" #: src/favoriteListRow.js:43 msgid "Undo" msgstr "Disfe" #: src/geoJSONSource.js:73 msgid "invalid coordinate" msgstr "coordenade no valide" #: src/geoJSONSource.js:126 src/geoJSONSource.js:166 src/geoJSONSource.js:181 msgid "parse error" msgstr "erôr tal analizâ" #: src/geoJSONSource.js:160 msgid "unknown geometry" msgstr "gjeometrie no valide" #: src/graphHopper.js:101 src/transitPlan.js:175 msgid "Route request failed." msgstr "Richieste dal percors falide." #: src/graphHopper.js:108 src/transitPlan.js:167 msgid "No route found." msgstr "Percors no cjatât." #: src/graphHopper.js:195 src/transitplugins/openTripPlanner.js:1163 msgid "Start!" msgstr "Invie!" #: src/mainWindow.js:59 msgid "All Layer Files" msgstr "Ducj i files di strât" #: src/mainWindow.js:522 msgid "Failed to connect to location service" msgstr "Impussibil conetisi al servizi di localizazion" #: src/mainWindow.js:527 msgid "Turn on location services" msgstr "Ative i servizis di localizazion" #: src/mainWindow.js:528 msgid "Location Settings" msgstr "Impostazions di localizazion" #: src/mainWindow.js:645 msgid "translator-credits" msgstr "Fabio Tomat, " #: src/mainWindow.js:649 msgid "Copyright © 2011 – 2023 Red Hat, Inc. and The GNOME Maps authors" msgstr "Copyright © 2011 – 2023 Red Hat, Inc. e i autôrs di GNOME Mapis" #: src/mainWindow.js:665 #, javascript-format msgid "Map data by %s and contributors" msgstr "Dâts mape di %s e colaboradôrs" #: src/mainWindow.js:666 msgid "Map Data Provider" msgstr "Furnidôr dâts des mapis" #: src/mainWindow.js:678 msgid "Map Tile Provider" msgstr "Furnidôr tassei de mape" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:686 #, javascript-format msgid "Map tiles provided by %s" msgstr "Tassei de mape furnîts di %s" #: src/mainWindow.js:716 msgid "Search Provider" msgstr "Furnidôr ricercjis" #: src/mainWindow.js:719 #, javascript-format msgid "Search provided by %s using %s" msgstr "Ricercje furnide di %s doprant %s" #: src/mapView.js:637 src/mapView.js:702 msgid "Failed to open layer" msgstr "Impussibil vierzi il strât" #: src/mapView.js:656 msgid "Do you want to continue?" msgstr "Desideristu continuâ?" #: src/mapView.js:657 #, javascript-format msgid "" "You are about to open files with a total size of %s MB. This could take some " "time to load" msgstr "" "Tu stâs par vierzi files che a àn un totâl di %s MB di dimension. Al podarès " "tirâle a dilunc par cjariâju" #: src/mapView.js:664 src/transitplugins/openTripPlanner.js:1239 #: src/transitplugins/openTripPlanner2.js:267 msgid "Continue" msgstr "Continue" #: src/mapView.js:696 msgid "File type is not supported" msgstr "Gjenar di file no supuartât" #: src/mapView.js:733 msgid "Failed to open GeoURI" msgstr "Impussibil vierzi il GeoURI" #: src/mapView.js:1197 msgid "Nothing found here!" msgstr "Nol è nuie culì!" #: src/mapView.js:1237 msgid "Zoom in to add location" msgstr "Aumente l'ingrandiment par zontâ un puest" #: src/mapView.js:1258 msgid "Location was added in OpenStreetMap" msgstr "Il lûc al è stât zontât su OpenStreetMap" #. switch back to the sign-in view, and show a toast indicating #. that verification failed #: src/osmAccountDialog.js:134 msgid "The verification code didn’t match, please try again." msgstr "Il codiç di verifiche nol corispuint, torne prove." #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:335 msgid "Incorrect user name or password" msgstr "Non utent o password sbaliâts" #: src/osmConnection.js:337 msgid "Success" msgstr "Sucès" #: src/osmConnection.js:339 msgid "Bad request" msgstr "Richieste no juste" #: src/osmConnection.js:341 msgid "Object not found" msgstr "Element no cjatât" #: src/osmConnection.js:343 msgid "Conflict, someone else has just modified the object" msgstr "Conflit, cualchidun altri al à apene modificât l'element" #: src/osmConnection.js:345 msgid "Object has been deleted" msgstr "L'element al è stât eliminât" #: src/osmConnection.js:347 msgid "Way or relation refers to non-existing children" msgstr "La vie o la relazion si riferìs a fîs no-esistents" #: src/osmEditDialog.js:106 msgid "Name" msgstr "Non" #: src/osmEditDialog.js:109 msgid "The official name. This is typically what appears on signs." msgstr "Il non uficiâl. Chest al è, di solit, chel che al ven fûr tes firmis." #: src/osmEditDialog.js:112 msgid "Address" msgstr "Recapit" #: src/osmEditDialog.js:120 src/placeView.js:275 msgid "Website" msgstr "Sît web" #: src/osmEditDialog.js:124 msgid "This is not a valid URL. Make sure to include http:// or https://." msgstr "Chest nol è un URL valit. Controle di includi http:// o https://." #: src/osmEditDialog.js:125 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" "Il sît web uficiâl. Cîr di doprâ la plui semplice forme di direzion, vâl a " "dî http://example.com invezit di http://example.com/index.html." #: src/osmEditDialog.js:130 msgid "Phone" msgstr "Telefon" #: src/osmEditDialog.js:134 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" "Numar di telefon. Dopre il formât internazionâl, tacant cuntun segn +f. Sta " "atent des leçs locâls su la privacy, in particolâr par numars di telefon " "privâts." #: src/osmEditDialog.js:139 src/placeView.js:308 msgid "E-mail" msgstr "E-mail" #: src/osmEditDialog.js:144 msgid "" "This is not a valid e-mail address. Make sure to not include the mailto: " "protocol prefix." msgstr "" "Cheste no je une direzion e-mail valide. Controle di includi il prefìs di " "protocol mailto: ." #: src/osmEditDialog.js:145 msgid "" "Contact e-mail address for inquiries. Add only email addresses that are " "intended to be publicly used." msgstr "" "Contate la direzion e-mail par domandis. Zonte dome direzions e-mail " "destinadis pal ûs cul public." #. Translators: This is the text for the "Wikipedia" link at the end #. of summaries #: src/osmEditDialog.js:149 src/placeView.js:727 msgid "Wikipedia" msgstr "Wikipedie" #: src/osmEditDialog.js:156 src/placeView.js:399 msgid "Opening hours" msgstr "Orari di viertidure" #: src/osmEditDialog.js:161 msgid "See the link in the label for help on format." msgstr "Viôt il leam te etichete pal jutori sul formât." #. TODO: this is a bit of a work-around to re-interpret the population, #. * stored as a string into an integer to convert back to a locale- #. * formatted string. Ideally it should be kept as an integer value #. * in the Place class. But this will also need to be handled by the #. * PlaceStore, possible in a backwards-compatible way #. #: src/osmEditDialog.js:164 src/placeView.js:509 msgid "Population" msgstr "Popolazion" #: src/osmEditDialog.js:169 src/placeView.js:538 msgid "Altitude" msgstr "Altitudin" #: src/osmEditDialog.js:172 msgid "Elevation (height above sea level) of a point in metres." msgstr "Elevazion (altece sul nivel dal mâr) di un pont in metris." #: src/osmEditDialog.js:175 msgid "Wheelchair access" msgstr "Acès disabii" #: src/osmEditDialog.js:178 src/osmEditDialog.js:187 src/osmEditDialog.js:198 #: src/osmEditDialog.js:233 msgid "Yes" msgstr "Sì" #: src/osmEditDialog.js:179 src/osmEditDialog.js:188 src/osmEditDialog.js:199 #: src/osmEditDialog.js:234 msgid "No" msgstr "No" #: src/osmEditDialog.js:180 msgid "Limited" msgstr "Limitât par disabii" #: src/osmEditDialog.js:181 msgid "Designated" msgstr "Specific par disabii" #: src/osmEditDialog.js:184 msgid "Internet access" msgstr "Acès internet" #: src/osmEditDialog.js:189 msgid "Wi-Fi" msgstr "Wi-Fi" #: src/osmEditDialog.js:190 msgid "Wired" msgstr "Cablade" #: src/osmEditDialog.js:191 msgid "Terminal" msgstr "Terminâl" #: src/osmEditDialog.js:192 msgid "Service" msgstr "Servizi" #: src/osmEditDialog.js:195 msgid "Takeout" msgstr "Puartâ vie" #: src/osmEditDialog.js:200 msgid "Only" msgstr "Dome" #: src/osmEditDialog.js:203 msgid "Religion" msgstr "Religjon" #: src/osmEditDialog.js:206 src/translations.js:286 msgid "Animism" msgstr "Animisim" #: src/osmEditDialog.js:207 msgid "Bahá’í" msgstr "Bahá’í" #: src/osmEditDialog.js:208 src/translations.js:288 msgid "Buddhism" msgstr "Budisim" #: src/osmEditDialog.js:209 src/translations.js:289 msgid "Caodaism" msgstr "Caodaisim" #: src/osmEditDialog.js:210 src/translations.js:290 msgid "Christianity" msgstr "Cristianitât" #: src/osmEditDialog.js:211 src/translations.js:291 msgid "Confucianism" msgstr "Confucianisim" #: src/osmEditDialog.js:212 src/translations.js:292 msgid "Hinduism" msgstr "Induisim" #: src/osmEditDialog.js:213 src/translations.js:293 msgid "Jainism" msgstr "Jainisim" #: src/osmEditDialog.js:214 src/translations.js:294 msgid "Judaism" msgstr "Judaisim" #: src/osmEditDialog.js:215 src/translations.js:295 msgid "Islam" msgstr "Islam" #: src/osmEditDialog.js:216 src/translations.js:296 msgid "Multiple Religions" msgstr "Religjons multiplis" #: src/osmEditDialog.js:217 src/translations.js:297 msgid "Paganism" msgstr "Paganisim" #: src/osmEditDialog.js:218 src/translations.js:298 msgid "Pastafarianism" msgstr "Pastafarianisim" #: src/osmEditDialog.js:219 src/translations.js:299 msgid "Scientology" msgstr "Scientology" #: src/osmEditDialog.js:220 src/translations.js:300 msgid "Shinto" msgstr "Shinto" #: src/osmEditDialog.js:221 src/translations.js:301 msgid "Sikhism" msgstr "Sikhisim" #: src/osmEditDialog.js:222 src/translations.js:302 msgid "Spiritualism" msgstr "Spiritualisim" #: src/osmEditDialog.js:223 src/translations.js:303 msgid "Taoism" msgstr "Taoisim" #: src/osmEditDialog.js:224 src/translations.js:304 msgid "Unitarian Universalism" msgstr "Universalisim Unitari" #: src/osmEditDialog.js:225 src/translations.js:305 msgid "Voodoo" msgstr "Voodoo" #: src/osmEditDialog.js:226 src/translations.js:306 msgid "Yazidism" msgstr "Yazidisim" #: src/osmEditDialog.js:227 src/translations.js:307 msgid "Zoroastrianism" msgstr "Zoroastrianisim" #: src/osmEditDialog.js:230 src/poiCategories.js:176 msgid "Toilets" msgstr "Gabinets" #: src/osmEditDialog.js:237 msgid "Note" msgstr "Note" #: src/osmEditDialog.js:240 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" "Informazion doprade par informâ altris mapadôrs su no evidentis informazions " "suntun element, l’intent dai autôrs tal creâlu o sugjeriments par ulteriôrs " "mioraments." #: src/osmEditDialog.js:339 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "Zonte a OpenStreetMap" #: src/osmEditDialog.js:393 msgid "Select Type" msgstr "Selezione un gjenar" #: src/osmEditDialog.js:515 msgid "Done" msgstr "Fat" #: src/osmEditDialog.js:818 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "" "Il formât doprât al à di includi il codiç de lenghe e il titul dal articul " "come \"fur:Titul dal articul\"." #: src/osmEditDialog.js:824 msgid "Use the reload button to load the Wikidata tag for the selected article" msgstr "" "Dopre il boton “torne cjame” par cjariâ la etichete Wikidata pal articul " "selezionât" #: src/osmEditDialog.js:832 msgid "Couldn't find Wikidata tag for article" msgstr "Impussibil cjatâ la etichete Wikidata pal articul" #: src/photonUtils.js:118 msgid "Unnamed place" msgstr "Puest cence non" #: src/placeEntry.js:274 msgid "Failed to parse Geo URI" msgstr "Impussibil analizâ il Geo URI" #: src/placeEntry.js:286 msgid "Failed to parse Maps URI" msgstr "Impussibil analizâ l'URI di Mapis" #. 300 ft (300 * 12 * 0.0254 m) #. #. * Translators: This a format string for showing a distance to a place #. * is lower than a "quite short" distance. #. * The "less than" symbol can be substituded with an appropriate one, if #. * needed (e.g. using the correct direction, or alternative symbol). #. * The %s should be kept, and is substituted with a label representing the #. * short distance. The \u2009 (thin space) could also be adjusted if needed #: src/placeListRow.js:46 #, javascript-format msgctxt "short distance format string" msgid "< %s" msgstr "< %s" #: src/placeView.js:263 msgid "Coordinates" msgstr "Coordenadis" #: src/placeView.js:267 msgid "Accuracy" msgstr "Precision" #. Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) #: src/placeView.js:270 #, javascript-format msgid "Accuracy: %s" msgstr "Precision de posizion: %s" #. since the phone numbers are typically always rendered #. * left-to-right, insert an explicit LRM char to avoid issues #. * with phone numbers in international format starting with a + #. * which is considered a "weak" character to determine Unicode #. * text direction #. #: src/placeView.js:289 msgid "Phone number" msgstr "Numar di telefon" #. If a reference to a named floor (named or symbolic) exists #. * refer to it directly. #. #. Translators: #. * This is a reference to named building floor, using a label #. * or a code, as "displayed in the elevator" #. #: src/placeView.js:323 src/placeView.js:362 msgid "Floor" msgstr "Plan" #: src/placeView.js:325 #, javascript-format msgid "Floor %s" msgstr "Plan %s" #: src/placeView.js:337 msgid "At ground level" msgstr "A nivel dal teren" #. Translators: #. * This is a reference to a number of floors above #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:346 #, javascript-format msgid "%s floor above ground level" msgid_plural "%s floors above ground level" msgstr[0] "Plan %s sore dal nivel dal teren" msgstr[1] "Plans %s sore dal nivel dal teren" #. Translators: #. * This is a reference to a number of floors below #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:357 #, javascript-format msgid "%s floor below ground level" msgid_plural "%s floors below ground level" msgstr[0] "Plan di %s sot dal nivel dal teren" msgstr[1] "Plans di %s sot dal nivel dal teren" #. Translators: #. * The establishment offers customers to purchase meals #. * (or similar) to be consumed elsewhere #. #: src/placeView.js:375 msgid "Offers takeout" msgstr "Al ufrìs mangjative di puartâ vie" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed on-premise. #. #: src/placeView.js:383 msgid "Does not offer takeout" msgstr "Nol ufrìs mangjative di puartâ vie" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed elsewhere. E.g. #. * there is no seating on-premise for eating/drinking #. #: src/placeView.js:392 msgid "Only offers takeout" msgstr "Al ufrìs dome mangjative di puartâ vie" #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/placeView.js:409 msgid "Public internet access" msgstr "Acès internet public" #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/placeView.js:418 msgid "No internet access" msgstr "Nissun acès internet" #. Translators: #. * This means a WLAN Hotspot, also known as wireless, wifi or Wi-Fi. #. #: src/placeView.js:426 msgid "Public Wi-Fi" msgstr "Wi-Fi public" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/placeView.js:434 msgid "Wired internet access" msgstr "Acès internet vie fîl" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/placeView.js:442 msgid "Computers available for use" msgstr "Computers disponibii di doprâ" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/placeView.js:450 msgid "Internet assistance available" msgstr "Assistence internet disponibile" #: src/placeView.js:456 msgid "No toilets available" msgstr "Nissun gabinet disponibil" #: src/placeView.js:459 msgid "Toilets available" msgstr "Gabinets disponibii" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #: src/placeView.js:468 msgid "Wheelchair accessible" msgstr "Acessibil in carocele" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/placeView.js:478 msgid "Limited wheelchair accessibility" msgstr "Acessibil in carocele in mût limitât" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #: src/placeView.js:487 msgid "Not wheelchair accessible" msgstr "No acessibil in carocele" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/placeView.js:497 msgid "Designated for wheelchair users" msgstr "Progjetât pai utents in carocele" #. * #. * Translators: this is a label indicating an altitude below #. * sea level, where the %s placeholder is the altitude relative #. * to mean sea level in the "negative direction" #. #: src/placeView.js:528 #, javascript-format msgid "%s below sea level" msgstr "%s sot dal nivel dal mâr" #. * #. * Translators: this indicates a place is located at (or very #. * close to) mean sea level #. #: src/placeView.js:535 msgid "At sea level" msgstr "A nivel dal mâr" #: src/placeView.js:544 msgid "Religion:" msgstr "Religjon:" #: src/place.js:568 msgid "Place not found in OpenStreetMap" msgstr "Lûc no cjatât su OpenStreetMap" #: src/place.js:575 msgid "Coordinates in URL are not valid" msgstr "Lis coordenadis tal URL no son validis" #: src/place.js:584 msgid "URL is not supported" msgstr "URL nol è supuartât" #: src/poiCategories.js:132 msgid "Amenities" msgstr "Amenitâts" #: src/poiCategories.js:135 msgid "ATMs" msgstr "Casse automatiche" #: src/poiCategories.js:141 msgid "Post Boxes" msgstr "Busis des letaris" #: src/poiCategories.js:147 msgid "Post Offices" msgstr "Uficis postâi" #: src/poiCategories.js:153 msgid "Police" msgstr "Polizie" #: src/poiCategories.js:159 msgid "Libraries" msgstr "Librariis" #: src/poiCategories.js:165 msgid "Pharmacies" msgstr "Farmaciis" #: src/poiCategories.js:171 msgid "Recycling" msgstr "Racuelte diferenziade" #: src/poiCategories.js:182 msgid "Wheelchair-accessible Toilets" msgstr "Toilette acessibile pe carocele" #: src/poiCategories.js:188 msgid "Baggage Lockers" msgstr "Armaruts bagais" #: src/poiCategories.js:196 msgid "Eating & Drinking" msgstr "Mangjâ e bevi" #: src/poiCategories.js:200 msgid "Restaurants" msgstr "Ristorants" #: src/poiCategories.js:205 msgid "Fast Food" msgstr "Fast Food" #: src/poiCategories.js:210 msgid "Food Courts" msgstr "Aree di ristorazion" #: src/poiCategories.js:215 msgid "Pubs" msgstr "Pubs" #: src/poiCategories.js:221 msgid "Bars" msgstr "Bars" #: src/poiCategories.js:226 msgid "Cafes" msgstr "Cafês" #: src/poiCategories.js:231 msgid "Ice Cream" msgstr "Gjelât" #: src/poiCategories.js:236 msgid "Food, Snacks, and Beverage Machines" msgstr "Machinutis di mangjative, mirindis e bevandis" #: src/poiCategories.js:244 msgid "Shopping" msgstr "Compris" #: src/poiCategories.js:248 msgid "Supermarkets" msgstr "Supermarcjât" #: src/poiCategories.js:254 msgid "Convenience Stores" msgstr "Minimarket" #: src/poiCategories.js:259 msgid "Shopping Malls" msgstr "Centri comerciâl" #: src/poiCategories.js:265 msgid "Clothes" msgstr "Vistîts" #: src/poiCategories.js:271 msgid "Shoes" msgstr "Scarpis" #: src/poiCategories.js:276 msgid "Electronics" msgstr "Eletroniche" #: src/poiCategories.js:282 msgid "Alcohol" msgstr "Alcolics" #: src/poiCategories.js:288 msgid "Bakeries" msgstr "Fors" #: src/poiCategories.js:294 msgid "Flowers" msgstr "Rosis" #: src/poiCategories.js:301 msgid "Transportation" msgstr "Traspuarts" #: src/poiCategories.js:305 msgid "Bus & Tram Stops" msgstr "Fermadis autobus e tram" #: src/poiCategories.js:313 msgid "Train & Subway Stations" msgstr "Stazions di tren e metropolitane" #: src/poiCategories.js:321 msgid "Tickets" msgstr "Biliets" #: src/poiCategories.js:329 msgid "Parking" msgstr "Parcament" #: src/poiCategories.js:334 msgid "Bicycle Parking" msgstr "Parcament di bicicletis" #: src/poiCategories.js:339 msgid "Bicycle Rental" msgstr "Nauli di biciclete" #: src/poiCategories.js:344 msgid "Car Rental" msgstr "Nauli di machine" #: src/poiCategories.js:349 msgid "Fuel" msgstr "Carburant" #: src/poiCategories.js:354 msgid "EV Charging" msgstr "Ricjarie Veicui Eletrics" #: src/poiCategories.js:362 msgid "Healthcare" msgstr "Sanitât" #: src/poiCategories.js:366 msgid "Clinics" msgstr "Clinichis" #: src/poiCategories.js:372 msgid "Hospitals" msgstr "Ospedâi" #: src/poiCategories.js:378 msgid "Dentists" msgstr "Dentiscj" #: src/poiCategories.js:386 msgid "Accommodation" msgstr "Lozament / Ricet" #: src/poiCategories.js:390 msgid "Hotels" msgstr "Hotel" #: src/poiCategories.js:395 msgid "Hostels" msgstr "Ostel" #: src/poiCategories.js:400 msgid "Bed & Breakfast" msgstr "B&B" #: src/poiCategories.js:405 msgid "Campings" msgstr "Campings" #: src/poiCategories.js:412 msgid "Recreation" msgstr "Ricreazion" #: src/poiCategories.js:416 msgid "Parks" msgstr "Parcs" #: src/poiCategories.js:421 msgid "Playgrounds" msgstr "Zardins/Cjamps di zûc" #: src/poiCategories.js:425 msgid "Beaches" msgstr "Splazis" #: src/poiCategories.js:430 msgid "Nature Reserves" msgstr "Riservis naturâls" #: src/poiCategories.js:436 msgid "Theme Parks" msgstr "Parcs a teme" #: src/poiCategories.js:441 msgid "Theaters" msgstr "Teatris" #: src/poiCategories.js:447 msgid "Movie Theaters" msgstr "Cine" #: src/poiCategories.js:453 msgid "Night Clubs" msgstr "Locâi noturnis" #: src/poiCategories.js:460 msgid "Tourism" msgstr "Turisim" #: src/poiCategories.js:464 msgid "Museums" msgstr "Museus" #: src/poiCategories.js:470 msgid "Attractions" msgstr "Atrazions" #: src/poiCategories.js:475 msgid "Artworks" msgstr "Oparis di art" #: src/poiCategories.js:480 msgid "Tourist Information" msgstr "Informazions turistichis" #: src/poiCategories.js:487 msgid "Sports" msgstr "Sport" #: src/poiCategories.js:491 msgid "Gyms" msgstr "Palestris" #: src/poiCategories.js:497 msgid "Outdoor Gyms" msgstr "Palestris a viert" #: src/poiCategories.js:503 msgid "Golf Courses" msgstr "Cjamps di golf" #: src/printLayout.js:350 #, javascript-format msgid "From %s to %s" msgstr "Di %s a %s" #: src/printOperation.js:49 msgid "Loading map tiles for printing" msgstr "Daûr a cjariâ i tassei de mape pe stampe" #: src/printOperation.js:50 msgid "You can abort printing if this takes too long" msgstr "Tu puedis fermâ di stampâ se al sta masse" #: src/printOperation.js:52 msgid "Abort printing" msgstr "Ferme stampe" #. Translators: this is add via location tooltip #: src/routeEntry.js:60 msgid "Add via location" msgstr "Zonte posizion de vie" #. Translators: this is remove via location tooltip #: src/routeEntry.js:70 msgid "Remove via location" msgstr "Gjave posizion de vie" #. Translators: this is reverse route tooltip #: src/routeEntry.js:76 msgid "Reverse route" msgstr "Percors inviers" #: src/searchBar.js:45 msgid "Search" msgstr "Ricercje" #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:84 #, javascript-format msgid "Add %s to %s" msgstr "Zonte %s a %s" #: src/sendToDialog.js:181 msgid "Failed to open URI" msgstr "Impussibil vierzi il URI" #: src/sendToDialog.js:246 #, javascript-format msgid "Open with %s" msgstr "Vierç cun %s" #: src/shapeLayer.js:109 msgid "failed to load file" msgstr "impussibil cjariâ il file" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:328 #, javascript-format msgid "Estimated time: %s" msgstr "Timp stimât: %s" #: src/sidebar.js:398 #, javascript-format msgid "Itineraries provided by %s" msgstr "Itineraris furnîts di %s" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:39 #, javascript-format msgid "Start at %s" msgstr "Partìs di %s" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:45 src/transitplugins/openTripPlanner2.js:236 msgid "Start" msgstr "Partence" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:63 #, javascript-format msgid "Walk %s" msgstr "Cjaminâ %s" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:77 #, javascript-format msgid "Arrive at %s" msgstr "Rive a %s" #: src/transit.js:79 src/transitplugins/openTripPlanner.js:1176 #: src/transitplugins/openTripPlanner2.js:255 msgid "Arrive" msgstr "Rivade" #: src/transitLegRow.js:69 msgid "Show walking instructions" msgstr "Mostre istruzions par lâ a pît" #: src/transitLegRow.js:70 msgid "Hide walking instructions" msgstr "Plate istruzions par lâ a pît" #: src/transitMoreRow.js:37 msgid "Load earlier alternatives" msgstr "Cjariâ alternativis plui adore" #: src/transitMoreRow.js:39 msgid "Load later alternatives" msgstr "Cjariâ alternativis plui tart" #: src/transitMoreRow.js:52 msgid "No earlier alternatives found." msgstr "Nissune alternative plui adore cjatade." #: src/transitMoreRow.js:54 msgid "No later alternatives found." msgstr "Nissune alternative plui tart cjatade." #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:138 msgctxt "month-day-date" msgid "%b %e" msgstr "%e di %b" #: src/transitPlan.js:171 msgid "No timetable data found for this route." msgstr "Nissun dât di oraris cjatât par chest percors." #: src/transitPlan.js:179 msgid "No provider found for this route." msgstr "Nissun furnidôr cjatât par chest percors." #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:300 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:331 #, javascript-format msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "%s minût" msgstr[1] "%s minûts" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:343 #, javascript-format msgid "%s hour" msgid_plural "%s hours" msgstr[0] "%s ore" msgstr[1] "%s oris" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:351 #, javascript-format msgid "%s:%s hour" msgid_plural "%s:%s hours" msgstr[0] "%s:%s ore" msgstr[1] "%s:%s oris" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:744 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: src/translations.js:55 msgid "Around the clock" msgstr "Dut il dì" #: src/translations.js:57 msgid "From sunrise to sunset" msgstr "Di un scûr a chel altri" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:123 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s,%s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:137 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s,%s,%s" #: src/translations.js:156 msgid "Every day" msgstr "Ogni dì" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:168 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:179 msgid "Public holidays" msgstr "Festîfs" #: src/translations.js:181 msgid "School holidays" msgstr "Vacancis di scuele" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:221 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: src/translations.js:235 msgid "not open" msgstr "no viert" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:250 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:287 msgid "Bahá'í" msgstr "Bahá’í" #. Translators: Accuracy of user location information #: src/utils.js:248 msgid "Unknown" msgstr "No cognossût" #. Translators: Accuracy of user location information #: src/utils.js:251 msgid "Exact" msgstr "Di precîs" #. Translators: this is a duration with only hours, using #. * an abbreviation for hours, corresponding to 'h' in English #. #: src/utils.js:307 #, javascript-format msgid "%s h" msgstr "%s h" #. Translators: this is a duration with hours and minutes parts #. * using abbreviations for hours and minutes, corresponding to 'h' #. * and 'min' in English. The minutes has appropriate plural variations #. #: src/utils.js:313 #, javascript-format msgid "%s h %s min" msgid_plural "%s h %s min" msgstr[0] "%s h %s min" msgstr[1] "%s h %s min" #. Translators: this is a duration with minutes part #. * using abbreviation for minutes, corresponding to 'min' in English #. * with appropriate plural variations #. #: src/utils.js:320 #, javascript-format msgid "%s min" msgid_plural "%s min" msgstr[0] "%s min" msgstr[1] "%s min" #. Translators: this is a duration of less than one minute #. * with seconds using an abbreviation for seconds, corresponding to #. * 's' in English with appropriate plural forms #. #: src/utils.js:326 #, javascript-format msgid "%s s" msgid_plural "%s s" msgstr[0] "%s s" msgstr[1] "%s s" #. Translators: This is a distance measured in kilometers #: src/utils.js:337 #, javascript-format msgid "%s km" msgstr "%s km" #. Translators: This is a distance measured in meters #: src/utils.js:340 #, javascript-format msgid "%s m" msgstr "%s m" #. Translators: This is a distance measured in miles #: src/utils.js:348 #, javascript-format msgid "%s mi" msgstr "%s mi" #. Translators: This is a distance measured in feet #: src/utils.js:351 #, javascript-format msgid "%s ft" msgstr "%s ft" #: src/transitplugins/goMetro.js:61 msgid "This plugin doesn't support latest arrival" msgstr "Chest plugin nol supuarte la ultime rivade" #: src/transitplugins/openTripPlanner.js:1237 #: src/transitplugins/openTripPlanner2.js:266 #, javascript-format msgid "Continue on %s" msgstr "Continue su %s" #: src/transitplugins/openTripPlanner.js:1242 #: src/transitplugins/openTripPlanner2.js:270 #, javascript-format msgid "Turn left on %s" msgstr "Svolte a çampe su %s" #: src/transitplugins/openTripPlanner.js:1244 #: src/transitplugins/openTripPlanner2.js:271 msgid "Turn left" msgstr "Svolte a çampe" #: src/transitplugins/openTripPlanner.js:1247 #: src/transitplugins/openTripPlanner2.js:275 #, javascript-format msgid "Turn slightly left on %s" msgstr "Svolte di pôc a çampe su %s" #: src/transitplugins/openTripPlanner.js:1249 #: src/transitplugins/openTripPlanner2.js:276 msgid "Turn slightly left" msgstr "Svolte di pôc a çampe" #: src/transitplugins/openTripPlanner.js:1252 #: src/transitplugins/openTripPlanner2.js:280 #, javascript-format msgid "Turn sharp left on %s" msgstr "Svolte di bot a çampe su %s" #: src/transitplugins/openTripPlanner.js:1254 #: src/transitplugins/openTripPlanner2.js:281 msgid "Turn sharp left" msgstr "Svolte di bot a çampe" #: src/transitplugins/openTripPlanner.js:1257 #: src/transitplugins/openTripPlanner2.js:284 #, javascript-format msgid "Turn right on %s" msgstr "Svolte a diestre su %s" #: src/transitplugins/openTripPlanner.js:1259 #: src/transitplugins/openTripPlanner2.js:285 msgid "Turn right" msgstr "Svolte a diestre" #: src/transitplugins/openTripPlanner.js:1262 #: src/transitplugins/openTripPlanner2.js:289 #, javascript-format msgid "Turn slightly right on %s" msgstr "Svolte di pôc a diestre su %s" #: src/transitplugins/openTripPlanner.js:1264 #: src/transitplugins/openTripPlanner2.js:290 msgid "Turn slightly right" msgstr "Svolte di pôc a diestre" #: src/transitplugins/openTripPlanner.js:1267 #: src/transitplugins/openTripPlanner2.js:294 #, javascript-format msgid "Turn sharp right on %s" msgstr "Svolte di bot a diestre su %s" #: src/transitplugins/openTripPlanner.js:1269 #: src/transitplugins/openTripPlanner2.js:295 msgid "Turn sharp right" msgstr "Svolte di bot a diestre" #: src/transitplugins/openTripPlanner.js:1275 #: src/transitplugins/openTripPlanner2.js:302 #, javascript-format msgid "At the roundabout, take exit %s" msgstr "Te taronde, cjape la jessude %s" #: src/transitplugins/openTripPlanner.js:1277 #: src/transitplugins/openTripPlanner2.js:305 #, javascript-format msgid "At the roundabout, take exit to %s" msgstr "Te taronde, cjape la jessude par %s" #: src/transitplugins/openTripPlanner.js:1279 #: src/transitplugins/openTripPlanner2.js:307 msgid "Take the roundabout" msgstr "Cjape la taronde" #: src/transitplugins/openTripPlanner.js:1283 #: src/transitplugins/openTripPlanner2.js:315 #, javascript-format msgid "Take the elevator and get off at %s" msgstr "Cjape l'assensôr e jes a %s" #: src/transitplugins/openTripPlanner.js:1285 #: src/transitplugins/openTripPlanner2.js:316 msgid "Take the elevator" msgstr "Cjape l'assensôr" #: src/transitplugins/openTripPlanner.js:1289 #: src/transitplugins/openTripPlanner2.js:320 #, javascript-format msgid "Make a left u-turn onto %s" msgstr "Fâs une inversion a U a çampe su %s" #: src/transitplugins/openTripPlanner.js:1291 #: src/transitplugins/openTripPlanner2.js:321 msgid "Make a left u-turn" msgstr "Fâs une inversion a U a çampe" #: src/transitplugins/openTripPlanner.js:1294 #: src/transitplugins/openTripPlanner2.js:325 #, javascript-format msgid "Make a right u-turn onto %s" msgstr "Fâs une inversion a U a diestre su %s" #: src/transitplugins/openTripPlanner.js:1296 #: src/transitplugins/openTripPlanner2.js:326 msgid "Make a right u-turn" msgstr "Fâs une inversion a U a diestre" #~ msgid "Sign in to edit maps" #~ msgstr "" #~ "Jentre par modificâ lis mapis" #~ msgid "" #~ "Sign in to authorize access in a web browser.\n" #~ "Then fill in the obtained verification code here in the next step." #~ msgstr "" #~ "Jentre par autorizâ l'acès intun navigadôr web.\n" #~ "Dopo inserìs achì il codiç di verifiche otignût intal prossim passaç." #~ msgid "Signed In" #~ msgstr "Jentrât" #~ msgid "Sign up" #~ msgstr "Regjistriti" #~ msgid "Filesystem is read only" #~ msgstr "Il file di sisteme al è in modalitât dome-leture" #~ msgid "You do not have permission to save there" #~ msgstr "No tu âs i permès par salvâ là" #~ msgid "The directory does not exist" #~ msgstr "La cartele no esist" #~ msgid "No filename specified" #~ msgstr "Nissun non file specificât" #~ msgid "" #~ "Location was added to the map, note that it may take a while before it " #~ "shows on the map and in search results." #~ msgstr "" #~ "Il lûc al è stât zontât te mape, viôt che al podarès coventâ un pôc prime " #~ "che al vegni fûr te mape e tai risultâts di ricercje." #~ msgid "Takeaway" #~ msgstr "Robe di puartâ vie" #~ msgid "Go to current location" #~ msgstr "Va te posizion atuâl" #~ msgid "Choose map type" #~ msgstr "Sielç il gjenar di mape" #~ msgid "Zoom in" #~ msgstr "Ingrandìs" #~ msgid "Drag to change order of the route" #~ msgstr "Strissine par cambiâ l'ordin de strade" #~ msgid "Use hybrid aerial tiles" #~ msgstr "Dopre sezions aeriis ibridis" #~ msgid "Whether aerial tiles should use hybrid style (with labels)." #~ msgstr "" #~ "Indiche se lis sezions de mape aeriis a àn di doprâ il stîl ibrit (cun " #~ "etichetis)." #~ msgid "Include route and markers" #~ msgstr "Inclût stradis e marcadôrs" #~ msgid "Show Labels" #~ msgstr "Mostre etichetis" #~ msgid "A map application for GNOME" #~ msgstr "Une aplicazion di GNOME pes mapis" #~ msgid "Foursquare check-in privacy setting" #~ msgstr "Impostazions pe privacy dai check-in su Foursquare" #~ msgid "" #~ "Latest used Foursquare check-in privacy setting. Possible values are: " #~ "public, followers or private." #~ msgstr "" #~ "Ultime impostazion pe privacy dai check-in doprade. I valôrs pussibii a " #~ "son: public, followers o private." #~ msgid "Foursquare check-in Facebook broadcasting" #~ msgstr "Trasmission a Facebook dai check-in di Foursquare" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a post in the " #~ "Facebook account associated with the Foursquare account." #~ msgstr "" #~ "Indiche se Foursquare al à di inviâ il check-in come un post tal account " #~ "Facebook associât cun l'account di Foursquare." #~ msgid "Foursquare check-in Twitter broadcasting" #~ msgstr "Trasmission a Twitter dai check-in di Foursquare" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a tweet in the " #~ "Twitter account associated with the Foursquare account." #~ msgstr "" #~ "Indiche se Foursquare al à di inviâ il check-in come un tweet tal account " #~ "Twitter associât cun l'account di Foursquare." #~ msgid "Visibility" #~ msgstr "Visibilitât" #~ msgid "Post on Facebook" #~ msgstr "Publiche su Facebook" #~ msgid "Post on Twitter" #~ msgstr "Publiche su Twitter" #~ msgid "C_heck in" #~ msgstr "C_heck in" #~ msgid "Public" #~ msgstr "Public" #~ msgid "Private" #~ msgstr "Privât" #~ msgid "Maps is offline!" #~ msgstr "Mapis al è offline!" # cjatâ'nt indi? #~ msgid "" #~ "Maps need an active internet connection to function properly, but one " #~ "can’t be found." #~ msgstr "" #~ "Mapis a scugne vê une conession internet ative par podê funzionâ, ma no " #~ "si 'nt rive a cjatâ une." #~ msgid "Check your connection and proxy settings." #~ msgstr "Controle le tô conession e lis impostazions proxy." #~ msgid "Email" #~ msgstr "E-mail" #~ msgid "Password" #~ msgstr "Password" #~ msgid "" #~ "Sorry, that didn’t work. Please try again, or visit\n" #~ "OpenStreetMap to reset your password." #~ msgstr "" #~ "Mi displâs, nol funzione. Torne prove o visite\n" #~ "OpenStreetMap par tornâ a configurâ la tô password." #~ msgid "Check In…" #~ msgstr "Check In…" #~ msgid "Ignore network availability" #~ msgstr "Ignore disponibilitât rêt" #~ msgid "Select an account" #~ msgstr "Selezione un account" #~ msgid "Loading" #~ msgstr "Daûr a cjamâ" #~ msgid "Select a place" #~ msgstr "Selezione un lûc" #~ msgid "" #~ "Maps cannot find the place to check in to with Foursquare. Please select " #~ "one from this list." #~ msgstr "" #~ "Mapis nol pues cjatâ il puest pal check-in cun Foursquare. Selezionâ un " #~ "di cheste liste." #, javascript-format #~ msgid "Check in to %s" #~ msgstr "Check-in là di %s" #, javascript-format #~ msgid "Write an optional message to check in to %s." #~ msgstr "Scrivi un coment opzionâl pal check-in là di %s." #, javascript-format #~ msgid "Cannot find “%s” in the social service" #~ msgstr "No rivi a cjatâ “%s” tal servizi social" #~ msgid "Cannot find a suitable place to check-in in this location" #~ msgstr "Impussibil cjatâ un puest adat pal check-in in chest lûc" #~ msgid "" #~ "Credentials have expired, please open Online Accounts to sign in and " #~ "enable this account" #~ msgstr "" #~ "Lis credenziâi a son scjadudis, vierç Accounts Online par coneti e " #~ "abilitâ chest account" #~ msgid "GNOME Maps" #~ msgstr "Mapis GNOME" #~ msgid "Night mode" #~ msgstr "Modalitât gnot" #~ msgid "Whether the application is in night mode." #~ msgstr "Indiche se la aplicazion e je in modalitât gnot." #~ msgid "Night Mode" #~ msgstr "Modalitât gnot" #~ msgid "" #~ "You can even search for specific types of locations, such as “Pubs near " #~ "Main Street, Boston” or “Hotels near Alexanderplatz, Berlin”." #~ msgstr "" #~ "Tu puedis ancje cirî par specifics gjenars di puescj, come \"Pubs near " #~ "Main Street, Boston\" o \"Hotels near Alexanderplatz, Berlin”." #~ msgid "Facebook check-in privacy setting" #~ msgstr "Impostazions privacy dai check-in su Facebook" #~ msgid "" #~ "Latest used Facebook check-in privacy setting. Possible values are: " #~ "EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS or SELF." #~ msgstr "" #~ "Ultime impostazion pe privacy dai check-in su Facebook doprade. I valôrs " #~ "pussibii a son: EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS o SELF." #~ msgid "Everyone" #~ msgstr "Ducj" #~ msgid "Friends of friends" #~ msgstr "Amîs di amîs" #~ msgid "Just friends" #~ msgstr "Nome amîs" #~ msgid "Just me" #~ msgstr "Nome jo" #~ msgid "" #~ "Maps cannot find the place to check in to with Facebook. Please select " #~ "one from this list." #~ msgstr "" #~ "Mapis nol pues cjatâ il puest pal check-in cun Facebook. Selezionâ un di " #~ "cheste liste." #~ msgid "Check in here" #~ msgstr "Fâs il check-in chi" #~ msgid "Population:" #~ msgstr "Popolazion:" #~ msgid "Altitude:" #~ msgstr "Altitudin:" #~ msgid "Opening hours:" #~ msgstr "Orari di viertidure:" #~ msgid "Internet access:" #~ msgstr "Acès internet:" #~ msgid "Toilets:" #~ msgstr "Gabinets:" #~ msgid "Wheelchair access:" #~ msgstr "Acès disabii:" #~ msgid "Phone:" #~ msgstr "Telefon:" #~ msgid "yes" #~ msgstr "sì" #~ msgid "limited" #~ msgstr "limitât pai disabii" #~ msgid "no" #~ msgstr "no" #~ msgid "designated" #~ msgstr "specific par disabii" #~ msgid "OpenStreetMap URL is not valid" #~ msgstr "URL di OpenStreetMap nol è valit" #~ msgctxt "time range list" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgctxt "time range list" #~ msgid "%s %s %s" #~ msgstr "%s %s %s" #~ msgctxt "time range component" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgid "wired" #~ msgstr "cablade" #~ msgid "terminal" #~ msgstr "terminâl" #~ msgid "service" #~ msgstr "servizi" #~ msgid "Find a Route" #~ msgstr "Cjate un percors" #~ msgid "Primary menu" #~ msgstr "Menù primari" #~ msgid "Don’t have an account?" #~ msgstr "No tu âs un account?" #~ msgid "Add destination" #~ msgstr "Zonte destinazion" #~ msgid "%f h" #~ msgstr "%f h" #~ msgid "%f min" #~ msgstr "%f min" #~ msgid "%f s" #~ msgstr "%f s" #~ msgid "Route search by OpenTripPlanner" #~ msgstr "Ricercje dal percors cun OpenTripPlanner" #~ msgid "Open with another application" #~ msgstr "Vierç cuntune altre aplicazion" #~ msgid "Press enter to search" #~ msgstr "Frache Invie par cirî" #~ msgid "org.gnome.Maps" #~ msgstr "org.gnome.Maps" #~ msgid "Quit" #~ msgstr "Jes" #~ msgid "OK" #~ msgstr "OK" #~ msgid "Open Shape Layer…" #~ msgstr "Vierç strât sagome…" #~ msgid "Load Map Layer" #~ msgstr "Cjarie strât de mape" #~ msgid "%f km" #~ msgstr "%f km" #~ msgid "%f m" #~ msgstr "%f m" #~ msgid "%f mi" #~ msgstr "%f mi" #~ msgid "%f ft" #~ msgstr "%f ft" #~ msgid "Country code: %s" #~ msgstr "Codiç paîs: %s" #~ msgid "_Share" #~ msgstr "_Condivît" #~ msgid "Last known location and accuracy" #~ msgstr "L'ultime posizion e precision cognossude" #~ msgid "" #~ "Last known location (latitude and longitude in degrees) and accuracy (in " #~ "meters)." #~ msgstr "" #~ "L'ultime posizion (latitudin e longjitudin in grâts) e precision (in " #~ "metris) cognossude." #~ msgid "Description of last known location of user." #~ msgstr "Descrizion de ultime posizion dal utent." #~ msgid "User set last known location" #~ msgstr "Ultime posizion cognossude impuestade dal utent." #~ msgid "Whether the last known location was set manually by the user." #~ msgstr "" #~ "Indiche se l'ultime posizion cognossude a je stade impuestade a man dal " #~ "utent." #~ msgid "I’m here!" #~ msgstr "O soi chi!" #~ msgid "Satellite" #~ msgstr "Satelit" #~ msgid " km²" #~ msgstr " km²" 070701000001C3000081A40000000000000000000000016641340900003E8D000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/ga.po# Irish translations for gnome-maps package. # Copyright (C) 2013-2015 Free Software Foundation, Inc. # This file is distributed under the same license as the gnome-maps package. # Seán de Búrca , 2013-2015. # msgid "" msgstr "" "Project-Id-Version: gnome-maps.master\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-10-01 14:40-0600\n" "PO-Revision-Date: 2015-10-01 14:52-0600\n" "Last-Translator: Seán de Búrca \n" "Language-Team: Irish \n" "Language: ga\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : " "4;\n" #: ../data/org.gnome.Maps.appdata.xml.in.h:1 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" #: ../data/org.gnome.Maps.appdata.xml.in.h:2 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" #. Translators: Search is carried out on OpenStreetMap data using Nominatim. #. Visit http://wiki.openstreetmap.org/wiki/Nominatim/Special_Phrases and click #. your language to see what words you can use for the translated search. #: ../data/org.gnome.Maps.appdata.xml.in.h:6 msgid "" "You can even search for specific types of locations, such as “Pubs near Main " "Street, Boston” or “Hotels near Alexanderplatz, Berlin”." msgstr "" #. Translators: This is the program name. #: ../data/org.gnome.Maps.desktop.in.h:1 ../data/ui/main-window.ui.h:1 #: ../src/application.js:77 ../src/mainWindow.js:373 msgid "Maps" msgstr "Léarscáileanna" #: ../data/org.gnome.Maps.desktop.in.h:2 msgid "A simple maps application" msgstr "Feidhmchlár simplí léarscáileanna" #: ../data/org.gnome.Maps.desktop.in.h:3 msgid "Maps;" msgstr "Léarscáileanna;" #: ../data/org.gnome.Maps.gschema.xml.h:1 msgid "Window size" msgstr "Méid na fuinneoige" #: ../data/org.gnome.Maps.gschema.xml.h:2 msgid "Window size (width and height)." msgstr "Méid na fuinneoige (leithead agus airde)." #: ../data/org.gnome.Maps.gschema.xml.h:3 msgid "Window position" msgstr "Ionad na fuinneoige" #: ../data/org.gnome.Maps.gschema.xml.h:4 #, fuzzy msgid "Window position (X and Y)." msgstr "Ionad na fuinneoige (x agus y)." #: ../data/org.gnome.Maps.gschema.xml.h:5 msgid "Window maximized" msgstr "Uasmhéadaíodh an fhuinneog" #: ../data/org.gnome.Maps.gschema.xml.h:6 #, fuzzy msgid "Window maximization state" msgstr "Staid uasmhéadaithe na fuinneoige" #: ../data/org.gnome.Maps.gschema.xml.h:7 msgid "Maximum number of search results" msgstr "" #: ../data/org.gnome.Maps.gschema.xml.h:8 msgid "Maximum number of search results from geocode search." msgstr "" #: ../data/org.gnome.Maps.gschema.xml.h:9 msgid "Number of recent places to store" msgstr "" #: ../data/org.gnome.Maps.gschema.xml.h:10 msgid "Number of recently visited places to store." msgstr "" #: ../data/org.gnome.Maps.gschema.xml.h:11 msgid "Number of recent routes to store" msgstr "" #: ../data/org.gnome.Maps.gschema.xml.h:12 msgid "Number of recently visited routes to store." msgstr "" #: ../data/org.gnome.Maps.gschema.xml.h:13 msgid "Facebook check-in privacy setting" msgstr "" #: ../data/org.gnome.Maps.gschema.xml.h:14 msgid "" "Latest used Facebook check-in privacy setting. Possible values are: " "EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS or SELF." msgstr "" #: ../data/org.gnome.Maps.gschema.xml.h:15 msgid "Foursquare check-in privacy setting" msgstr "" #: ../data/org.gnome.Maps.gschema.xml.h:16 msgid "" "Latest used Foursquare check-in privacy setting. Possible values are: " "public, followers or private." msgstr "" #: ../data/org.gnome.Maps.gschema.xml.h:17 msgid "Foursquare check-in Facebook broadcasting" msgstr "" #: ../data/org.gnome.Maps.gschema.xml.h:18 msgid "" "Indicates if Foursquare should broadcast the check-in as a post in the " "Facebook account associated with the Foursquare account." msgstr "" #: ../data/org.gnome.Maps.gschema.xml.h:19 msgid "Foursquare check-in Twitter broadcasting" msgstr "" #: ../data/org.gnome.Maps.gschema.xml.h:20 msgid "" "Indicates if Foursquare should broadcast the check-in as a tweet in the " "Twitter account associated with the Foursquare account." msgstr "" #: ../data/ui/app-menu.ui.h:1 msgid "About" msgstr "Maidir Leis Seo" #: ../data/ui/app-menu.ui.h:2 msgid "Quit" msgstr "Scoir" #: ../data/ui/check-in-dialog.ui.h:1 msgid "Visibility" msgstr "" #: ../data/ui/check-in-dialog.ui.h:2 msgid "Post on Facebook" msgstr "" #: ../data/ui/check-in-dialog.ui.h:3 msgid "Post on Twitter" msgstr "" #: ../data/ui/check-in-dialog.ui.h:4 ../data/ui/send-to-dialog.ui.h:2 msgid "_Cancel" msgstr "_Cealaigh" #. Translators: Check in is used as a verb #: ../data/ui/check-in-dialog.ui.h:5 ../data/ui/map-bubble.ui.h:5 msgid "C_heck in" msgstr "" #: ../data/ui/check-in-dialog.ui.h:6 msgid "Everyone" msgstr "" #: ../data/ui/check-in-dialog.ui.h:7 msgid "Friends of friends" msgstr "" #: ../data/ui/check-in-dialog.ui.h:8 msgid "Just friends" msgstr "" #: ../data/ui/check-in-dialog.ui.h:9 msgid "Just me" msgstr "" #: ../data/ui/check-in-dialog.ui.h:10 msgid "Public" msgstr "" #: ../data/ui/check-in-dialog.ui.h:11 msgid "Followers" msgstr "" #: ../data/ui/check-in-dialog.ui.h:12 msgid "Private" msgstr "Príobháideach" #: ../data/ui/context-menu.ui.h:1 msgid "What’s here?" msgstr "Cad atá anseo?" #: ../data/ui/context-menu.ui.h:2 msgid "Copy Location" msgstr "Cóipeáil Suíomh" #: ../data/ui/location-service-notification.ui.h:1 msgid "Turn on location services to find your location" msgstr "" #: ../data/ui/location-service-notification.ui.h:2 msgid "Location Settings" msgstr "Socruithe Suímh" #: ../data/ui/main-window.ui.h:2 msgid "Go to current location" msgstr "Téigh go dtí an suíomh reatha" #: ../data/ui/main-window.ui.h:3 msgid "Choose map type" msgstr "Roghnaigh cineál léarscáile" #: ../data/ui/main-window.ui.h:4 msgid "Toggle route planner" msgstr "" #: ../data/ui/main-window.ui.h:5 msgid "Toggle favorites" msgstr "" #: ../data/ui/main-window.ui.h:6 msgid "Maps is offline!" msgstr "Tá Léarscáileanna as líne!" #: ../data/ui/main-window.ui.h:7 msgid "" "Maps need an active internet connection to function properly, but one can't " "be found." msgstr "" #: ../data/ui/main-window.ui.h:8 msgid "Check your connection and proxy settings." msgstr "" #: ../data/ui/map-bubble.ui.h:1 msgid "Add to new route" msgstr "Cuir le bealach nua" #: ../data/ui/map-bubble.ui.h:2 msgid "Open with another application" msgstr "Oscail le feidhmchlár eile" #: ../data/ui/map-bubble.ui.h:3 msgid "Mark as favorite" msgstr "" #: ../data/ui/map-bubble.ui.h:6 msgid "Check in here" msgstr "" #: ../data/ui/search-popup.ui.h:1 msgid "Press enter to search" msgstr "" #: ../data/ui/send-to-dialog.ui.h:1 msgid "Open location" msgstr "Oscail suíomh" #: ../data/ui/send-to-dialog.ui.h:3 msgid "_Open" msgstr "_Oscail" #: ../data/ui/sidebar.ui.h:1 msgid "Route search by GraphHopper" msgstr "Cuardach bealaí ag GraphHopper" #: ../data/ui/social-place-more-results-row.ui.h:1 msgid "Show more results" msgstr "Taispeáin tuilleadh torthaí" #: ../data/ui/user-location-bubble.ui.h:1 ../src/geoclue.js:209 msgid "Current location" msgstr "Suíomh reatha" #. To translators: %s can be "Unknown", "Exact" or "%f km²" #: ../data/ui/user-location-bubble.ui.h:4 #, no-c-format msgid "Accuracy: %s" msgstr "Cruinneas: %s" #: ../lib/maps-file-tile-source.c:303 ../lib/maps-file-tile-source.c:379 #: ../lib/maps-file-tile-source.c:459 msgid "Failed to find tile structure in directory" msgstr "" #: ../src/application.js:86 msgid "A path to a local tiles directory structure" msgstr "" #: ../src/checkInDialog.js:176 msgid "Select an account" msgstr "" #: ../src/checkInDialog.js:181 ../src/checkInDialog.js:253 msgid "Loading" msgstr "Á luchtú" #: ../src/checkInDialog.js:205 msgid "Select a place" msgstr "Roghnaigh áit" #: ../src/checkInDialog.js:210 msgid "" "Maps cannot find the place to check in to with Facebook. Please select one " "from this list." msgstr "" #: ../src/checkInDialog.js:212 msgid "" "Maps cannot find the place to check in to with Foursquare. Please select one " "from this list." msgstr "" #. Translators: %s is the name of the place to check in. #. #: ../src/checkInDialog.js:227 #, javascript-format msgid "Check in to %s" msgstr "" #. Translators: %s is the name of the place to check in. #. #: ../src/checkInDialog.js:237 #, javascript-format msgid "Write an optional message to check in to %s." msgstr "" #: ../src/checkInDialog.js:289 ../src/checkIn.js:153 msgid "An error has occurred" msgstr "Tharla earráid" #. Translators: %s is the place name that user wanted to check-in #: ../src/checkIn.js:135 #, javascript-format msgid "Cannot find \"%s\" in the social service" msgstr "" #: ../src/checkIn.js:137 msgid "Cannot find a suitable place to check-in in this location" msgstr "" #: ../src/checkIn.js:141 msgid "" "Credentials have expired, please open Online Accounts to sign in and enable " "this account" msgstr "" #: ../src/mainWindow.js:321 msgid "Failed to connect to location service" msgstr "" #: ../src/mainWindow.js:326 msgid "Position not found" msgstr "" #: ../src/mainWindow.js:371 msgid "translator-credits" msgstr "Seán de Búrca " #: ../src/mainWindow.js:374 msgid "A map application for GNOME" msgstr "Feidhmchlár léarscáile do GNOME" #: ../src/placeBubble.js:101 #, javascript-format msgid "Postal code: %s" msgstr "Cód poist: %s" #: ../src/placeBubble.js:103 #, javascript-format msgid "Country code: %s" msgstr "Cód tíre: %s" #: ../src/placeBubble.js:112 #, javascript-format msgid "Population: %s" msgstr "Daonra: %s" #: ../src/placeBubble.js:115 #, javascript-format msgid "Opening hours: %s" msgstr "Uaireanta oscailte: %s" #: ../src/placeBubble.js:120 msgid "Wikipedia" msgstr "Vicipéid" #: ../src/placeBubble.js:125 #, javascript-format msgid "Wheelchair access: %s" msgstr "Bealach isteach do chathaoireacha rothaí: %s" #: ../src/placeEntry.js:215 msgid "Failed to parse Geo URI" msgstr "" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #: ../src/place.js:121 msgid "yes" msgstr "" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: ../src/place.js:128 msgid "limited" msgstr "" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #: ../src/place.js:134 msgid "no" msgstr "" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: ../src/place.js:141 msgid "designated" msgstr "" #: ../src/routeService.js:90 msgid "No route found." msgstr "Bealach gan aimsiú." #: ../src/routeService.js:97 msgid "Route request failed." msgstr "" #: ../src/routeService.js:168 msgid "Start!" msgstr "Tosaigh!" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: ../src/sidebar.js:230 #, javascript-format msgid "Estimated time: %s" msgstr "Am measta: %s" #: ../src/translations.js:55 ../src/translations.js:57 msgid "around the clock" msgstr "" #: ../src/translations.js:59 msgid "from sunrise to sunset" msgstr "" #. Translators: #. * This is a format string with two separate time ranges #. * such as "Mo-Fr 10:00-19:00 Sa 12:00-16:00" #. * The space between the format place holders could be #. * substituted with the appropriate separator. #. #: ../src/translations.js:78 #, javascript-format msgctxt "time range list" msgid "%s %s" msgstr "%s %s" #. Translators: #. * This is a format string with three separate time ranges #. * such as "Mo-Fr 10:00-19:00 Sa 10:00-17:00 Su 12:00-16:00" #. * The space between the format place holders could be #. * substituted with the appropriate separator. #. #: ../src/translations.js:90 #, javascript-format msgctxt "time range list" msgid "%s %s %s" msgstr "%s %s %s" #. Translators: #. * This is a format string consisting of a part specifying the days for #. * which the specified time is applied and the time interval #. * specification as the second argument. #. * The space between the format place holders could be substituted with #. * the appropriate separator or phrase and the ordering of the arguments #. * can be rearranged with the %n#s syntax. #: ../src/translations.js:121 #, javascript-format msgctxt "time range component" msgid "%s %s" msgstr "%s %s" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: ../src/translations.js:153 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s,%s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: ../src/translations.js:167 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s,%s,%s" #: ../src/translations.js:186 msgid "every day" msgstr "gach lá" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: ../src/translations.js:198 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s-%s" #: ../src/translations.js:209 msgid "public holidays" msgstr "" #: ../src/translations.js:211 msgid "school holidays" msgstr "" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: ../src/translations.js:251 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: ../src/translations.js:265 msgid "not open" msgstr "" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: ../src/translations.js:280 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s-%s" #. Translators: Accuracy of user location information #: ../src/utils.js:256 msgid "Unknown" msgstr "Anaithnid" #. Translators: Accuracy of user location information #: ../src/utils.js:259 msgid "Exact" msgstr "" #: ../src/utils.js:354 #, javascript-format msgid "%f h" msgstr "%f u" #: ../src/utils.js:356 #, javascript-format msgid "%f min" msgstr "%f n" #: ../src/utils.js:358 #, javascript-format msgid "%f s" msgstr "%f s" #. Translators: This is a distance measured in kilometers #: ../src/utils.js:369 #, javascript-format msgid "%f km" msgstr "%f cm" #. Translators: This is a distance measured in meters #: ../src/utils.js:372 #, javascript-format msgid "%f m" msgstr "%f m" #. Translators: This is a distance measured in miles #: ../src/utils.js:380 #, javascript-format msgid "%f mi" msgstr "%f mí" #. Translators: This is a distance measured in feet #: ../src/utils.js:383 #, javascript-format msgid "%f ft" msgstr "%f tr" 070701000001C4000081A4000000000000000000000001664134090000AE0B000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/gd.po# Scottish Gaelic translation for gnome-maps. # Copyright (C) 2016 gnome-maps's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-maps package. # GunChleoc , 2016, 2017, 2018. msgid "" msgstr "" "Project-Id-Version: gnome-maps gnome-3-20\n" "Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product" "=gnome-maps&keywords=I18N+L10N&component=general\n" "POT-Creation-Date: 2017-09-11 20:24+0000\n" "PO-Revision-Date: 2018-03-02 10:29+0100\n" "Last-Translator: GunChleoc \n" "Language-Team: Fòram na Gàidhlig\n" "Language: gd\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : " "(n > 2 && n < 20) ? 2 : 3;\n" "X-Generator: Virtaal 0.7.1\n" "X-Project-Style: gnome\n" #: ../data/org.gnome.Maps.appdata.xml.in.h:1 msgid "GNOME Maps" msgstr "Mapaichean GNOME" #: ../data/org.gnome.Maps.appdata.xml.in.h:2 msgid "Find places around the world" msgstr "Lorg àitichean air feadh an t-saoghail" #: ../data/org.gnome.Maps.appdata.xml.in.h:3 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "Bheir Mapaichean dhut inntrigeadh luath dha mhapaichean air feadh an t-" "saoghail. Leigidh e leat àite a lorg gu luath a-rèir baile no sràide no an t-" "àite a lorg far a bheil thu airson tachairt ri caraid." #: ../data/org.gnome.Maps.appdata.xml.in.h:4 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "Cleachdaidh Mapaichean stòr-dàta OpenStreetMap co-obrachail a chaidh a " "chruthachadh leis na mìltean mòra de dhaoine o fheadh an t-saoghail." #. Translators: Search is carried out on OpenStreetMap data using Nominatim. #. Visit http://wiki.openstreetmap.org/wiki/Nominatim/Special_Phrases and click #. your language to see what words you can use for the translated search. #: ../data/org.gnome.Maps.appdata.xml.in.h:8 msgid "" "You can even search for specific types of locations, such as “Pubs near Main " "Street, Boston” or “Hotels near Alexanderplatz, Berlin”." msgstr "" "’S urrainn dut fiù ’s lorg airson ionadan sònraichte, can “Taighean-seinnse " "faisg air Sràid nam Prionnsachan, Dùn Èideann” no “Taighean-òsta faisg air " "Sràid Sauchiehall, Glaschu”." #. Translators: This is the program name. #: ../data/org.gnome.Maps.desktop.in.h:1 ../data/ui/main-window.ui.h:1 #: ../src/application.js:87 ../src/mainWindow.js:489 msgid "Maps" msgstr "Mapaichean" #: ../data/org.gnome.Maps.desktop.in.h:2 msgid "A simple maps application" msgstr "Aplacaid mhapaichean shimplidh" #: ../data/org.gnome.Maps.desktop.in.h:3 msgid "Maps;" msgstr "Maps;mapaichean;" #: ../data/org.gnome.Maps.desktop.in.h:4 msgid "Allows your location to be shown on the map." msgstr "Faodaidh far a bheil thu a nochdadh air a’ mhapa le seo." #: ../data/org.gnome.Maps.gschema.xml.h:1 msgid "last viewed location" msgstr "an t-ionad mu dheireadh a chaidh a shealltainn" #: ../data/org.gnome.Maps.gschema.xml.h:2 msgid "Coordinates of last viewed location." msgstr "Co-chomharran an ionaid mu dheireadh a chaidh a shealltainn." #: ../data/org.gnome.Maps.gschema.xml.h:3 msgid "Window size" msgstr "Meud na h-uinneige" #: ../data/org.gnome.Maps.gschema.xml.h:4 msgid "Window size (width and height)." msgstr "Meud na h-uinneige (leud ’s àirde)." #: ../data/org.gnome.Maps.gschema.xml.h:5 msgid "Window position" msgstr "Ionad na h-uinneige" #: ../data/org.gnome.Maps.gschema.xml.h:6 msgid "Window position (X and Y)." msgstr "Ionad na h-uinneige (x is y)." #: ../data/org.gnome.Maps.gschema.xml.h:7 msgid "Window maximized" msgstr "Làn-mheud air an uinneag" #: ../data/org.gnome.Maps.gschema.xml.h:8 msgid "Window maximization state" msgstr "Staid làn-mheud na h-uinneige" #: ../data/org.gnome.Maps.gschema.xml.h:9 msgid "Maximum number of search results" msgstr "An àireamh as motha de thoraidhean luirg" #: ../data/org.gnome.Maps.gschema.xml.h:10 msgid "Maximum number of search results from geocode search." msgstr "An àireamh as motha de thoraidhean luirg o lorg geocode." #: ../data/org.gnome.Maps.gschema.xml.h:11 msgid "Number of recent places to store" msgstr "Àireamh dhe dh’ionadan o chionn ghoirid ri an sàbhaladh" #: ../data/org.gnome.Maps.gschema.xml.h:12 msgid "Number of recently visited places to store." msgstr "" "Àireamh dhe dh’ionadan air an deach tadhal o chionn ghoirid ri an sàbhaladh" #: ../data/org.gnome.Maps.gschema.xml.h:13 msgid "Number of recent routes to store" msgstr "Àireamh dhe shlighean o chionn ghoirid ri an sàbhaladh" #: ../data/org.gnome.Maps.gschema.xml.h:14 msgid "Number of recently visited routes to store." msgstr "" "Àireamh dhe shlighean air an deach tadhal o chionn ghoirid ri an sàbhaladh" #: ../data/org.gnome.Maps.gschema.xml.h:15 msgid "Facebook check-in privacy setting" msgstr "Roghainn prìobhaideachd airson nochdadh air Facebook" #: ../data/org.gnome.Maps.gschema.xml.h:16 msgid "" "Latest used Facebook check-in privacy setting. Possible values are: " "EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS or SELF." msgstr "" "An roghainn prìobhaideachd mu dheireadh a chaidh a chleachdadh airson " "nochdadh air Facebook. Seo na luachan as urrainn dhut cleachdadh: EVERYONE, " "FRIENDS_OF_FRIENDS, ALL_FRIENDS no SELF." #: ../data/org.gnome.Maps.gschema.xml.h:17 msgid "Foursquare check-in privacy setting" msgstr "Roghainn prìobhaideachd airson nochdadh air Foursquare" #: ../data/org.gnome.Maps.gschema.xml.h:18 msgid "" "Latest used Foursquare check-in privacy setting. Possible values are: " "public, followers or private." msgstr "" "An roghainn prìobhaideachd mu dheireadh a chaidh a chleachdadh airson " "nochdadh air Foursquare. Seo na luachan as urrainn dhut cleachdadh: public, " "followers no private." #: ../data/org.gnome.Maps.gschema.xml.h:19 msgid "Foursquare check-in Facebook broadcasting" msgstr "Craoladh Facebook airson nochdadh air Foursquare" #: ../data/org.gnome.Maps.gschema.xml.h:20 msgid "" "Indicates if Foursquare should broadcast the check-in as a post in the " "Facebook account associated with the Foursquare account." msgstr "" "Innsidh seo am bu còir Foursquare na nochd thu air a chraoladh mar phost sa " "chunntas Facebook a tha co-cheangailte ris a’ chunntas Foursquare gus nach " "bu chòir." #: ../data/org.gnome.Maps.gschema.xml.h:21 msgid "Foursquare check-in Twitter broadcasting" msgstr "Craoladh Twitter airson nochdadh air Foursquare" #: ../data/org.gnome.Maps.gschema.xml.h:22 msgid "" "Indicates if Foursquare should broadcast the check-in as a tweet in the " "Twitter account associated with the Foursquare account." msgstr "" "Innsidh seo am bu còir Foursquare na nochd thu air a chraoladh mar tweet sa " "chunntas Twitter a tha co-cheangailte ris a’ chunntas Foursquare gus nach bu " "chòir." #: ../data/org.gnome.Maps.gschema.xml.h:23 msgid "OpenStreetMap username or e-mail address" msgstr "Ainm-cleachdaiche no seòladh puist-d OpenStreetMap" #: ../data/org.gnome.Maps.gschema.xml.h:24 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "" "Innsidh seo an do clàraich an cleachdaiche a-steach gus dàta OpenStreetMap a " "dheasachadh gus nach do chlàraich." #: ../data/org.gnome.Maps.gschema.xml.h:25 msgid "Last used transportation type for routing" msgstr "" #: ../data/ui/app-menu.ui.h:1 msgid "Set up OpenStreetMap Account" msgstr "Suidhich cunntas OpenStreetMap" #: ../data/ui/app-menu.ui.h:2 msgid "_Keyboard Shortcuts" msgstr "Ath-ghoiridean a’ _mheur-chlàir" #: ../data/ui/app-menu.ui.h:3 msgid "About" msgstr "Mu dhèidhinn" #: ../data/ui/app-menu.ui.h:4 msgid "Quit" msgstr "Fàg an-seo" #: ../data/ui/check-in-dialog.ui.h:1 msgid "Visibility" msgstr "Faicsinneachd" #: ../data/ui/check-in-dialog.ui.h:2 msgid "Post on Facebook" msgstr "Postaich air Facebook" #: ../data/ui/check-in-dialog.ui.h:3 msgid "Post on Twitter" msgstr "Postaich air Twitter" #: ../data/ui/check-in-dialog.ui.h:4 ../data/ui/export-view-dialog.ui.h:2 #: ../data/ui/send-to-dialog.ui.h:2 ../data/ui/shape-layer-file-chooser.ui.h:3 msgid "_Cancel" msgstr "_Sguir dheth" #. Translators: Check in is used as a verb #: ../data/ui/check-in-dialog.ui.h:5 ../data/ui/map-bubble.ui.h:8 msgid "C_heck in" msgstr "Noc_hd air" #: ../data/ui/check-in-dialog.ui.h:6 msgid "Everyone" msgstr "A h-uile duine" #: ../data/ui/check-in-dialog.ui.h:7 msgid "Friends of friends" msgstr "Caraidean nan caraidean" #: ../data/ui/check-in-dialog.ui.h:8 msgid "Just friends" msgstr "Caraidean a-mhàin" #: ../data/ui/check-in-dialog.ui.h:9 msgid "Just me" msgstr "Mise a-mhàin" #: ../data/ui/check-in-dialog.ui.h:10 msgid "Public" msgstr "Poblach" #: ../data/ui/check-in-dialog.ui.h:11 msgid "Followers" msgstr "Daoine a leanas orm" #: ../data/ui/check-in-dialog.ui.h:12 msgid "Private" msgstr "Prìobhaideach" #: ../data/ui/context-menu.ui.h:1 msgid "What’s here?" msgstr "Dè tha an-seo?" #: ../data/ui/context-menu.ui.h:2 msgid "Copy Location" msgstr "Dèan lethbhreac dhen ionad" #: ../data/ui/context-menu.ui.h:3 msgid "Export As Image" msgstr "Às-phortaich mar dhealbh" #: ../data/ui/context-menu.ui.h:4 msgid "Add to OpenStreetMap" msgstr "Cuir ri OpenStreetMap" #: ../data/ui/export-view-dialog.ui.h:1 msgid "Export view" msgstr "Às-phortaich an sealladh" #: ../data/ui/export-view-dialog.ui.h:3 msgid "_Export" msgstr "À_s-phortaich" #: ../data/ui/export-view-dialog.ui.h:4 msgid "Include route and markers" msgstr "Gabh a-steach an t-slighe is na comharran" #: ../data/ui/help-overlay.ui.h:1 msgctxt "shortcut window" msgid "General" msgstr "Coitcheann" #: ../data/ui/help-overlay.ui.h:2 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "Seall na h-ath-ghoiridean" #: ../data/ui/help-overlay.ui.h:3 msgctxt "shortcut window" msgid "Search" msgstr "Lorg" #: ../data/ui/help-overlay.ui.h:4 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "Toglaich am planadair shlighean" #: ../data/ui/help-overlay.ui.h:5 msgctxt "shortcut window" msgid "Print route" msgstr "Clò-bhuail an t-slighe" #: ../data/ui/help-overlay.ui.h:6 msgctxt "shortcut window" msgid "Quit" msgstr "Fàg an-seo" #: ../data/ui/help-overlay.ui.h:7 msgctxt "shortcut window" msgid "Map View" msgstr "Sealladh a’ mhapa" #: ../data/ui/help-overlay.ui.h:8 msgctxt "shortcut window" msgid "Zoom in" msgstr "Sùm a-steach" #: ../data/ui/help-overlay.ui.h:9 msgctxt "shortcut window" msgid "Zoom out" msgstr "Sùm a-mach" #: ../data/ui/help-overlay.ui.h:10 msgctxt "shortcut window" msgid "Toggle scale" msgstr "Toglaich an sgèile" #: ../data/ui/help-overlay.ui.h:11 msgctxt "shortcut window" msgid "Go to current location" msgstr "Rach dhan ionad làithreach" #: ../data/ui/help-overlay.ui.h:12 msgctxt "shortcut window" msgid "Switch to street view" msgstr "" #: ../data/ui/help-overlay.ui.h:13 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "" #: ../data/ui/help-overlay.ui.h:14 #, fuzzy #| msgid "Open Layer" msgctxt "shortcut window" msgid "Open shape layer" msgstr "Fosgail breath" #: ../data/ui/layers-popover.ui.h:1 msgid "Load Map Layer" msgstr "Luchdaich breath a’ mhapa" #: ../data/ui/location-service-notification.ui.h:1 msgid "Turn on location services to find your location" msgstr "Cuir seirbheisean ionaid air gus lorg far a bheil thu" #: ../data/ui/location-service-notification.ui.h:2 msgid "Location Settings" msgstr "Roghainnean ionaid" #. Translators: This is a tooltip #: ../data/ui/main-window.ui.h:3 msgid "Go to current location" msgstr "Rach dhan ionad làithreach" #. Translators: This is a tooltip #: ../data/ui/main-window.ui.h:5 msgid "Choose map type" msgstr "Tagh seòrsa a’ mhapa" #. Translators: This is a tooltip #: ../data/ui/main-window.ui.h:7 msgid "Toggle route planner" msgstr "Toglaich am planadair shlighean" #. Translators: This is a tooltip #: ../data/ui/main-window.ui.h:9 msgid "Toggle favorites" msgstr "Toglaich na h-annsachdan" #. Translators: This is a tooltip #: ../data/ui/main-window.ui.h:11 msgid "Print Route" msgstr "Clò-bhuail an t-slighe" #: ../data/ui/main-window.ui.h:12 msgid "Maps is offline!" msgstr "Tha Mapaichean far loidhne!" #: ../data/ui/main-window.ui.h:13 #, fuzzy #| msgid "" #| "Maps need an active internet connection to function properly, but one " #| "can't be found." msgid "" "Maps need an active internet connection to function properly, but one can’t " "be found." msgstr "" "Tha Mapaichean feumach air ceangal dhan eadar-lìon gus obrachadh mar bu " "chòir ach cha deach gin a lorg." #: ../data/ui/main-window.ui.h:14 msgid "Check your connection and proxy settings." msgstr "Thoir sùil air roghainnean a’ cheangail ’s a’ phrogsaidh agad." #. Translators: This is a tooltip #: ../data/ui/map-bubble.ui.h:2 msgid "Add to new route" msgstr "Cuir ri slighe ùr" #. Translators: This is a tooltip #: ../data/ui/map-bubble.ui.h:4 msgid "Open with another application" msgstr "Fosgail le aplacaid eile" #. Translators: This is a tooltip #: ../data/ui/map-bubble.ui.h:6 msgid "Mark as favorite" msgstr "Comharraich ’na h-annsachd" #. Translators: This is a tooltip #: ../data/ui/map-bubble.ui.h:10 msgid "Check in here" msgstr "Nochd seo" #: ../data/ui/osm-account-dialog.ui.h:1 msgid "OpenStreetMap Account" msgstr "Cunntas OpenStreetMap" #: ../data/ui/osm-account-dialog.ui.h:2 msgid "Sign in to edit maps" msgstr "" "Clàraich a-steach gus mapaichean a " "dheasachadh" #: ../data/ui/osm-account-dialog.ui.h:3 msgid "" "Help to improve the map, using an\n" "OpenStreetMap account." msgstr "" "Cuidich gus piseach a thoirt air a’ mhapa\n" "le cunntas OpenStreetMap." #: ../data/ui/osm-account-dialog.ui.h:5 msgid "Email" msgstr "Post-d" #: ../data/ui/osm-account-dialog.ui.h:6 msgid "Password" msgstr "Facal-faire" #: ../data/ui/osm-account-dialog.ui.h:7 msgid "Sign In" msgstr "Clàraich a-steach" #: ../data/ui/osm-account-dialog.ui.h:8 #, fuzzy #| msgid "Don't have an account?" msgid "Don’t have an account?" msgstr "Nach eil cunntas agad?" #. The label should contain the link to the OSM reset password page with a translated title #: ../data/ui/osm-account-dialog.ui.h:10 #| msgid "" #| "Sorry, that didn't work. Please try again, or visit\n" #| "OpenStreetMap to reset your password." msgid "" "Sorry, that didn’t work. Please try again, or visit\n" "OpenStreetMap to reset your password." msgstr "" "Tha sinn duilich ach cha do dh’obraich sin. Feuch ris a-rithist no tadhail " "air\n" "OpenStreetMap gus am facal-faire agad ath-shuidheachadh." #: ../data/ui/osm-account-dialog.ui.h:12 #| msgid "The verification code didn't match, please try again." msgid "The verification code didn’t match, please try again." msgstr "Cha robh an còd dearbhaidh mar bu chòir, am feuch thu ris a-rithist?" #: ../data/ui/osm-account-dialog.ui.h:13 msgid "Enter verification code shown above" msgstr "Cuir a-steach an còd dearbhaidh a chì thu gu h-àrd" #: ../data/ui/osm-account-dialog.ui.h:14 msgid "Verify" msgstr "Dearbhaich" #: ../data/ui/osm-account-dialog.ui.h:15 msgid "Signed In" msgstr "Air do chlàradh a-steach" #: ../data/ui/osm-account-dialog.ui.h:16 msgid "Your OpenStreetMap account is active." msgstr "Tha an cunntas OpenStreetMap agad gnìomhach." #: ../data/ui/osm-account-dialog.ui.h:17 msgid "Sign Out" msgstr "Clàraich a-mach" #: ../data/ui/osm-edit-address.ui.h:1 msgid "Street" msgstr "Sràid" #: ../data/ui/osm-edit-address.ui.h:2 msgid "House number" msgstr "Àireamh an taighe" #: ../data/ui/osm-edit-address.ui.h:3 msgid "Postal code" msgstr "Còd-puist" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: ../data/ui/osm-edit-address.ui.h:5 msgid "City" msgstr "Baile" #: ../data/ui/osm-edit-dialog.ui.h:1 msgid "Type" msgstr "Seòrsa" #: ../data/ui/osm-edit-dialog.ui.h:2 msgid "None" msgstr "Chan eil gin" #: ../data/ui/osm-edit-dialog.ui.h:3 msgid "Add Field" msgstr "Cuir raon ris" #: ../data/ui/osm-edit-dialog.ui.h:4 msgid "Comment" msgstr "Beachd" #: ../data/ui/osm-edit-dialog.ui.h:5 #| msgid "" #| "Map changes will be visible on all maps that use\n" #| " OpenStreetMap data." msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "Chithear atharraichean a’ mhapa air a h-uile mapa a chleachdas\n" "dàta OpenStreetMap." #: ../data/ui/osm-edit-dialog.ui.h:7 msgid "Recently Used" msgstr "Air an cleachdadh o chionn ghoirid" #: ../data/ui/osm-edit-dialog.ui.h:8 #| msgid "Edit on OpenStreetMap" msgctxt "dialog title" msgid "Edit on OpenStreetMap" msgstr "Deasaich air OpenStreetMap" #: ../data/ui/osm-edit-dialog.ui.h:9 msgid "Cancel" msgstr "Sguir dheth" #: ../data/ui/osm-edit-dialog.ui.h:10 ../src/osmEditDialog.js:516 msgid "Next" msgstr "Air adhart" #. Translators: This is a tooltip #: ../data/ui/place-bubble.ui.h:2 msgid "Edit on OpenStreetMap" msgstr "Deasaich air OpenStreetMap" #. Translators: This is a tooltip #: ../data/ui/place-bubble.ui.h:4 msgid "Show more information" msgstr "Seall barrachd fiosrachaidh" #: ../data/ui/place-popover.ui.h:1 msgid "Press enter to search" msgstr "Brùth air Enter airson lorg" #: ../data/ui/place-popover.ui.h:2 #| msgid "No route found." msgid "No results found" msgstr "Cha deach toradh a lorg" #. Translators: This is a tooltip #: ../data/ui/route-entry.ui.h:2 msgid "Drag to change order of the route" msgstr "Slaod gus òrdugh na slighe atharrachadh" #: ../data/ui/send-to-dialog.ui.h:1 msgid "Open location" msgstr "Fosgail ionad" #: ../data/ui/send-to-dialog.ui.h:3 ../data/ui/shape-layer-file-chooser.ui.h:2 msgid "_Open" msgstr "F_osgail" #: ../data/ui/shape-layer-file-chooser.ui.h:1 msgid "Open Layer" msgstr "Fosgail breath" #. Translators: This is a tooltip #: ../data/ui/shape-layer-row.ui.h:2 msgid "Toggle visible" msgstr "Toglaich an fhaicsinneachd" #: ../data/ui/sidebar.ui.h:1 msgid "Route search by GraphHopper" msgstr "Lorg shlighean le GraphHopper" #: ../data/ui/sidebar.ui.h:2 #| msgid "Route search by GraphHopper" msgid "Route search by OpenTripPlanner" msgstr "Lorg shlighean le OpenTripPlanner" #: ../data/ui/sidebar.ui.h:3 msgid "" "Routing itineraries for public transit is provided by GNOME\n" "using timetable data obtained from transit companies or agencies.\n" "The companies and agencies can not be held responsible for the results " "shown.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" #: ../data/ui/social-place-more-results-row.ui.h:1 msgid "Show more results" msgstr "Seall barrachd toraidhean" #. Translators: This is a tooltip #: ../data/ui/transit-leg-row.ui.h:2 msgid "Hide intermediate stops and information" msgstr "" #. Translators: This is a tooltip #: ../data/ui/transit-leg-row.ui.h:4 #| msgid "Show more information" msgid "Show intermediate stops and information" msgstr "" #. Indicates searching for the next available itineraries #: ../data/ui/transit-options-panel.ui.h:2 msgid "Leave Now" msgstr "" #. Indicates searching for itineraries leaving at the specified time at the earliest #: ../data/ui/transit-options-panel.ui.h:4 msgid "Leave By" msgstr "" #. Indicates searching for itineraries arriving no later than the specified time #: ../data/ui/transit-options-panel.ui.h:6 msgid "Arrive By" msgstr "" #. Header indicating selected modes of transit #: ../data/ui/transit-options-panel.ui.h:8 msgid "Show" msgstr "" #: ../data/ui/transit-options-panel.ui.h:9 msgid "Buses" msgstr "" #: ../data/ui/transit-options-panel.ui.h:10 msgid "Trams" msgstr "" #: ../data/ui/transit-options-panel.ui.h:11 msgid "Trains" msgstr "" #: ../data/ui/transit-options-panel.ui.h:12 msgid "Subway" msgstr "" #: ../data/ui/transit-options-panel.ui.h:13 msgid "Ferries" msgstr "" #: ../data/ui/user-location-bubble.ui.h:1 ../src/geoclue.js:120 msgid "Current location" msgstr "An t-ionad làithreach" #. To translators: %s can be "Unknown", "Exact" or "%f km²" #: ../data/ui/user-location-bubble.ui.h:4 #, no-c-format msgid "Accuracy: %s" msgstr "Pongalachd: %s" #: ../data/ui/zoom-in-notification.ui.h:1 msgid "Zoom in to add location!" msgstr "Sùm a-steach gus ionad a chur ris!" #: ../data/ui/zoom-in-notification.ui.h:2 msgid "OK" msgstr "Ceart ma-thà" #: ../lib/maps-file-tile-source.c:303 ../lib/maps-file-tile-source.c:379 #: ../lib/maps-file-tile-source.c:459 msgid "Failed to find tile structure in directory" msgstr "Cha deach leinn structar leacagan a lorg sa phasgan" #: ../lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "Dh’fhàillig le parsadh na sgrìobhainn XML" #: ../lib/maps-osm.c:252 ../lib/maps-osm.c:405 msgid "Missing required attributes" msgstr "Tha roghainnean riatanach a dhìth" #: ../lib/maps-osm.c:453 msgid "Could not find OSM element" msgstr "Cha deach leinn eileamaid OSM a lorg" #: ../src/application.js:102 msgid "A path to a local tiles directory structure" msgstr "Slighe gu structar pasgain leacagan ionadail" #: ../src/checkInDialog.js:175 msgid "Select an account" msgstr "Tagh cunntas" #: ../src/checkInDialog.js:180 ../src/checkInDialog.js:252 msgid "Loading" msgstr "’Ga luchdadh" #: ../src/checkInDialog.js:204 msgid "Select a place" msgstr "Tagh àite" #: ../src/checkInDialog.js:209 msgid "" "Maps cannot find the place to check in to with Facebook. Please select one " "from this list." msgstr "" "Cha deach le Mapaichean àite a lorg gus a nochdadh air Facebook. Tagh fear " "on liosta seo." #: ../src/checkInDialog.js:211 msgid "" "Maps cannot find the place to check in to with Foursquare. Please select one " "from this list." msgstr "" "Cha deach le Mapaichean àite a lorg gus a nochdadh air Foursquare. Tagh fear " "on liosta seo." #. Translators: %s is the name of the place to check in. #. #: ../src/checkInDialog.js:226 #, javascript-format msgid "Check in to %s" msgstr "Nochd %s" #. Translators: %s is the name of the place to check in. #. #: ../src/checkInDialog.js:236 #, javascript-format msgid "Write an optional message to check in to %s." msgstr "Sgrìobh teachdaireachd ma thogras tu gus %s a nochdadh." #: ../src/checkInDialog.js:288 ../src/checkIn.js:165 #: ../src/osmEditDialog.js:553 msgid "An error has occurred" msgstr "Thachair mearachd" #. Translators: %s is the place name that user wanted to check-in #: ../src/checkIn.js:147 #, javascript-format #| msgid "Cannot find \"%s\" in the social service" msgid "Cannot find “%s” in the social service" msgstr "Cha b’ urrainn dhuinn “%s” a lorg san t-seirbheis sòisealta" #: ../src/checkIn.js:149 msgid "Cannot find a suitable place to check-in in this location" msgstr "" "Cha b’ urrainn dhuinn àite iomchaidh a lorg gus an t-ionad seo a nochdadh" #: ../src/checkIn.js:153 msgid "" "Credentials have expired, please open Online Accounts to sign in and enable " "this account" msgstr "" "Dh’fhalbh an ùine air an teisteas, fosgail na cunntasan air loidhne gus " "clàradh a-steach agus an cunntas seo a chur an comas" #: ../src/contextMenu.js:99 msgid "Route from here" msgstr "Slighe on a sheo" #: ../src/contextMenu.js:101 msgid "Add destination" msgstr "Cuir ceann-uidhe ris" #: ../src/contextMenu.js:103 msgid "Route to here" msgstr "Slighe dhan a sheo" #: ../src/contextMenu.js:132 msgid "Nothing found here!" msgstr "Cha deach dad a lorg an-seo!" #: ../src/contextMenu.js:189 msgid "" "Location was added to the map, note that it may take a while before it shows " "on the map and in search results." msgstr "" "Chaidh an t-ionad a chur ris a’ mhapa. Thoir an aire gun doir e greis mhath " "mus nochd e air a’ mhapa agus ann an toraidhean luirg." #: ../src/exportViewDialog.js:156 msgid "Filesystem is read only" msgstr "Tha an siostam-faidhlichean ri leughadh a-màin" #: ../src/exportViewDialog.js:158 msgid "You do not have permission to save there" msgstr "Chan eil cead agad gus rud a shàbhaladh an-seo" #: ../src/exportViewDialog.js:160 #| msgid "The directory does not exists" msgid "The directory does not exist" msgstr "Chan eil am pasgan ann" #: ../src/exportViewDialog.js:162 msgid "No filename specified" msgstr "Cha deach ainm-faidhle a shònrachadh" #: ../src/exportViewDialog.js:170 msgid "Unable to export view" msgstr "Cha b’ urrainn dhuinn an sealladh às-phortadh" #: ../src/geoJSONSource.js:98 msgid "invalid coordinate" msgstr "co-chomharran mì-dhligheach" #: ../src/geoJSONSource.js:149 ../src/geoJSONSource.js:189 #: ../src/geoJSONSource.js:204 msgid "parse error" msgstr "mearachd parsaidh" #: ../src/geoJSONSource.js:183 msgid "unknown geometry" msgstr "geomatras nach aithne dhuinn" #: ../src/graphHopper.js:93 ../src/openTripPlanner.js:665 msgid "Route request failed." msgstr "Dh’fhàillig le iarrtas slighe." #: ../src/graphHopper.js:101 ../src/openTripPlanner.js:628 msgid "No route found." msgstr "Cha deach slighe a lorg." #: ../src/graphHopper.js:193 msgid "Start!" msgstr "Tòisich!" #: ../src/mainWindow.js:59 msgid "All Layer Files" msgstr "A h-uile faidhle breatha" #: ../src/mainWindow.js:431 msgid "Failed to connect to location service" msgstr "Dh’fhàillig an ceangal ris an t-seirbheis ionadan" #: ../src/mainWindow.js:487 msgid "translator-credits" msgstr "GunChleoc " #: ../src/mainWindow.js:490 msgid "A map application for GNOME" msgstr "Aplacaid mhapaichean airson GNOME" #: ../src/mapView.js:356 msgid "File type is not supported" msgstr "Cha chuirear taic ris an t-seòrsa faidhle" #: ../src/mapView.js:363 msgid "Failed to open layer" msgstr "Dh’fhàillig le fosgladh na breatha" #: ../src/mapView.js:399 msgid "Failed to open GeoURI" msgstr "Dh’fhàillig le fosgladh GeoURI" #: ../src/openTripPlanner.js:622 msgid "No earlier alternatives found." msgstr "" #: ../src/openTripPlanner.js:623 #| msgid "No route found." msgid "No later alternatives found." msgstr "" #: ../src/openTripPlanner.js:661 msgid "No timetable data found for this route." msgstr "" #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: ../src/osmConnection.js:442 msgid "Incorrect user name or password" msgstr "" "Chan eil an t-ainm-cleachdaiche no chan eil am facal-faire mar bu chòir" #: ../src/osmConnection.js:444 msgid "Success" msgstr "Shoirbhich leis" #: ../src/osmConnection.js:446 msgid "Bad request" msgstr "Droch iarrtas" #: ../src/osmConnection.js:448 msgid "Object not found" msgstr "Cha deach an t-oibseact a lorg" #: ../src/osmConnection.js:450 msgid "Conflict, someone else has just modified the object" msgstr "Còmhstri, tha cuideigin eile dìreach air an t-oibseact atharrachadh" #: ../src/osmConnection.js:452 msgid "Object has been deleted" msgstr "Chaidh an t-oibseact a sguabadh às" #: ../src/osmConnection.js:454 msgid "Way or relation refers to non-existing children" msgstr "Tha an t-slighe no an dàimh a’ toirt iomradh air clann nach eil ann" #: ../src/osmEditDialog.js:104 msgid "Name" msgstr "Ainm" #: ../src/osmEditDialog.js:107 msgid "The official name. This is typically what appears on signs." msgstr "Ainm oifigeil. Seo na nochdas air sanasan mar as trice." #: ../src/osmEditDialog.js:110 msgid "Address" msgstr "Seòladh" #: ../src/osmEditDialog.js:118 msgid "Website" msgstr "Làrach-lìn" #: ../src/osmEditDialog.js:121 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" "An làrach-lìn oifigeil. Feuch an cleachd thu an dreach as bunasaiche dhen " "URL, can http://ball-eisimpleir.com seach http://ball-eisimpleir.com/index." "html." #: ../src/osmEditDialog.js:126 msgid "Phone" msgstr "Fòn" #: ../src/osmEditDialog.js:130 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" "An àireamh fòn. Cleachd am fòrmat eadar-nàiseanta, a’ tòiseachadh le samhla " "+. Thoir an aire air laghan prìobhaideachd ionadail, gu h-àraidh a thaobh " "àireamhan prìobhaideach." #: ../src/osmEditDialog.js:135 ../src/placeBubble.js:170 msgid "Wikipedia" msgstr "An Uicipeid" #: ../src/osmEditDialog.js:139 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "" "Bu chòir dhan fhòrmat a chleachdas tu an còd cànan agus tiotal na h-aiste a " "ghabhail a-steach, can “gd:Tiotal na h-aiste”." #: ../src/osmEditDialog.js:143 msgid "Opening hours" msgstr "Uairean fosglaidh" #: ../src/osmEditDialog.js:148 msgid "See the link in the label for help on format." msgstr "Faic an ceangal san leubail airson cobhair mun fòrmat." #: ../src/osmEditDialog.js:151 msgid "Population" msgstr "Sluagh" #: ../src/osmEditDialog.js:156 msgid "Altitude" msgstr "Àirde" #: ../src/osmEditDialog.js:159 msgid "Elevation (height above sea level) of a point in metres." msgstr "Meatair a dh’àirde (os cionn na mara) aig puing." #: ../src/osmEditDialog.js:162 msgid "Wheelchair access" msgstr "Inntrigeadh cathrach-cuibhle" #: ../src/osmEditDialog.js:165 ../src/osmEditDialog.js:174 #: ../src/osmEditDialog.js:212 msgid "Yes" msgstr "Tha inntrigeadh ann" #: ../src/osmEditDialog.js:166 ../src/osmEditDialog.js:175 #: ../src/osmEditDialog.js:213 msgid "No" msgstr "Chan eil inntrigeadh ann" #: ../src/osmEditDialog.js:167 msgid "Limited" msgstr "Cuingichte" #: ../src/osmEditDialog.js:168 msgid "Designated" msgstr "Ainmichte" #: ../src/osmEditDialog.js:171 msgid "Internet access" msgstr "Inntrigeadh an eadar-lìn" #. Translators: #. * This means a WLAN Hotspot, also know as wireless, wifi or Wi-Fi. #. #: ../src/osmEditDialog.js:176 ../src/translations.js:340 msgid "Wi-Fi" msgstr "WiFi" #: ../src/osmEditDialog.js:177 msgid "Wired" msgstr "Le uèir" #: ../src/osmEditDialog.js:178 msgid "Terminal" msgstr "Tèirmineal" #: ../src/osmEditDialog.js:179 msgid "Service" msgstr "Seirbheis" #: ../src/osmEditDialog.js:182 msgid "Religion" msgstr "Creideamh" #: ../src/osmEditDialog.js:185 ../src/translations.js:363 msgid "Animism" msgstr "" #: ../src/osmEditDialog.js:186 msgid "Bahá’í" msgstr "Bahá’í" #: ../src/osmEditDialog.js:187 ../src/translations.js:365 msgid "Buddhism" msgstr "" #: ../src/osmEditDialog.js:188 ../src/translations.js:366 msgid "Caodaism" msgstr "" #: ../src/osmEditDialog.js:189 ../src/translations.js:367 msgid "Christianity" msgstr "" #: ../src/osmEditDialog.js:190 ../src/translations.js:368 msgid "Confucianism" msgstr "" #: ../src/osmEditDialog.js:191 ../src/translations.js:369 msgid "Hinduism" msgstr "" #: ../src/osmEditDialog.js:192 ../src/translations.js:370 msgid "Jainism" msgstr "" #: ../src/osmEditDialog.js:193 ../src/translations.js:371 msgid "Judaism" msgstr "" #: ../src/osmEditDialog.js:194 ../src/translations.js:372 msgid "Islam" msgstr "" #: ../src/osmEditDialog.js:195 ../src/translations.js:373 msgid "Multiple Religions" msgstr "" #: ../src/osmEditDialog.js:196 ../src/translations.js:374 msgid "Paganism" msgstr "" #: ../src/osmEditDialog.js:197 ../src/translations.js:375 msgid "Pastafarianism" msgstr "" #: ../src/osmEditDialog.js:198 ../src/translations.js:376 msgid "Scientology" msgstr "" #: ../src/osmEditDialog.js:199 ../src/translations.js:377 msgid "Shinto" msgstr "" #: ../src/osmEditDialog.js:200 ../src/translations.js:378 msgid "Sikhism" msgstr "" #: ../src/osmEditDialog.js:201 ../src/translations.js:379 msgid "Spiritualism" msgstr "" #: ../src/osmEditDialog.js:202 ../src/translations.js:380 msgid "Taoism" msgstr "" #: ../src/osmEditDialog.js:203 ../src/translations.js:381 msgid "Unitarian Universalism" msgstr "" #: ../src/osmEditDialog.js:204 ../src/translations.js:382 msgid "Voodoo" msgstr "" #: ../src/osmEditDialog.js:205 ../src/translations.js:383 msgid "Yazidism" msgstr "" #: ../src/osmEditDialog.js:206 ../src/translations.js:384 msgid "Zoroastrianism" msgstr "" #: ../src/osmEditDialog.js:209 msgid "Toilets" msgstr "" #: ../src/osmEditDialog.js:216 msgid "Note" msgstr "An aire" #: ../src/osmEditDialog.js:219 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" #: ../src/osmEditDialog.js:328 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "Cuir ri OpenStreetMap" #: ../src/osmEditDialog.js:381 msgid "Select Type" msgstr "Tagh seòrsa" #: ../src/osmEditDialog.js:500 msgid "Done" msgstr "Deiseil" #: ../src/placeBubble.js:122 msgid "Population:" msgstr "Sluagh:" #: ../src/placeBubble.js:128 msgid "Altitude:" msgstr "Àirde:" #: ../src/placeBubble.js:133 msgid "Opening hours:" msgstr "Uairean fosglaidh:" #: ../src/placeBubble.js:138 msgid "Internet access:" msgstr "Inntrigeadh an eadar-lìn:" #: ../src/placeBubble.js:143 msgid "Religion:" msgstr "Creideamh:" #: ../src/placeBubble.js:148 msgid "Toilets:" msgstr "Taighean-beaga:" #: ../src/placeBubble.js:153 msgid "Wheelchair access:" msgstr "Inntrigeadh cathrach-cuibhle:" #: ../src/placeBubble.js:159 ../src/placeBubble.js:163 msgid "Phone:" msgstr "Fòn:" #: ../src/placeEntry.js:190 msgid "Failed to parse Geo URI" msgstr "Dh’fhàillig le parsadh a’ Geo URI" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: ../src/place.js:219 ../src/translations.js:329 ../src/translations.js:391 msgid "yes" msgstr "tha inntrigeadh ann" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: ../src/place.js:226 msgid "limited" msgstr "cuingichte" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: ../src/place.js:232 ../src/translations.js:335 ../src/translations.js:392 msgid "no" msgstr "chan eil inntrigeadh ann" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: ../src/place.js:239 msgid "designated" msgstr "ainmichte" #: ../src/printLayout.js:244 #, javascript-format msgid "From %s to %s" msgstr "O %s gu %s" #: ../src/printOperation.js:48 msgid "Loading map tiles for printing" msgstr "A’ luchdadh leacagan a’ mhapa a chum clò-bhualaidh" #: ../src/printOperation.js:49 msgid "You can abort printing if this takes too long" msgstr "’S urrainn dhut sgur dhen chlò-bhualadh ma bheir e ro fhada" #: ../src/printOperation.js:51 msgid "Abort printing" msgstr "Sguir dhen chlò-bhualadh" #: ../src/sendToDialog.js:179 msgid "Failed to open URI" msgstr "Dh’fhàillig le fosgladh URI" #: ../src/shapeLayer.js:92 msgid "failed to load file" msgstr "dh’fhàillig le luchdadh faidhle" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: ../src/sidebar.js:294 #, javascript-format msgid "Estimated time: %s" msgstr "Tuairmse air an ùine: %s" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: ../src/transitArrivalRow.js:56 #, javascript-format msgid "Arrive at %s" msgstr "" #: ../src/transitArrivalRow.js:58 msgid "Arrive" msgstr "" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: ../src/transitLegRow.js:73 #, javascript-format msgid "Start at %s" msgstr "" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: ../src/transitLegRow.js:79 #| msgid "Start!" msgid "Start" msgstr "Toiseach" #: ../src/transitLegRow.js:107 msgid "Show walking instructions" msgstr "" #: ../src/transitLegRow.js:108 msgid "Hide walking instructions" msgstr "" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: ../src/transitLegRow.js:133 #, javascript-format msgid "Walk %s" msgstr "" #: ../src/transitMoreRow.js:41 msgid "Load earlier alternatives" msgstr "" #: ../src/transitMoreRow.js:43 msgid "Load later alternatives" msgstr "" #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: ../src/transitOptionsPanel.js:142 msgctxt "month-day-date" msgid "%b %e" msgstr "" #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: ../src/transitPlan.js:253 #, javascript-format msgid "%s – %s" msgstr "" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: ../src/transitPlan.js:280 #, javascript-format #| msgid "%f min" msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "%d mhionaid" msgstr[1] "%d mhionaid" msgstr[2] "%d mionaidean" msgstr[3] "%d mionaid" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: ../src/transitPlan.js:291 #, javascript-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "%d uair a thìde" msgstr[1] "%d uair a thìde" msgstr[2] "%d uairean a thìde" msgstr[3] "%d uair a thìde" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: ../src/transitPlan.js:297 #, javascript-format msgid "%d:%02d hour" msgid_plural "%d:%02d hours" msgstr[0] "%d:%02d uair a thìde" msgstr[1] "%d:%02d uair a thìde" msgstr[2] "%d:%02d uairean a thìde" msgstr[3] "%d:%02d uair a thìde" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: ../src/transitPlan.js:649 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: ../src/translations.js:56 msgid "around the clock" msgstr "fad an latha" #: ../src/translations.js:58 msgid "from sunrise to sunset" msgstr "o èirigh gu laighe na grèine" #. Translators: #. * This is a format string with two separate time ranges #. * such as "Mo-Fr 10:00-19:00 Sa 12:00-16:00" #. * The space between the format place holders could be #. * substituted with the appropriate separator. #. #: ../src/translations.js:77 #, javascript-format msgctxt "time range list" msgid "%s %s" msgstr "%s %s" #. Translators: #. * This is a format string with three separate time ranges #. * such as "Mo-Fr 10:00-19:00 Sa 10:00-17:00 Su 12:00-16:00" #. * The space between the format place holders could be #. * substituted with the appropriate separator. #. #: ../src/translations.js:89 #, javascript-format msgctxt "time range list" msgid "%s %s %s" msgstr "%s %s %s" #. Translators: #. * This is a format string consisting of a part specifying the days for #. * which the specified time is applied and the time interval #. * specification as the second argument. #. * The space between the format place holders could be substituted with #. * the appropriate separator or phrase and the ordering of the arguments #. * can be rearranged with the %n#s syntax. #: ../src/translations.js:120 #, javascript-format msgctxt "time range component" msgid "%s %s" msgstr "%s %s" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: ../src/translations.js:152 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s,%s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: ../src/translations.js:166 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s,%s,%s" #: ../src/translations.js:185 msgid "every day" msgstr "gach latha" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: ../src/translations.js:197 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s-%s" #: ../src/translations.js:208 msgid "public holidays" msgstr "saor-làithean poblach" #: ../src/translations.js:210 msgid "school holidays" msgstr "saor-làithean sgoile" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: ../src/translations.js:250 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: ../src/translations.js:264 msgid "not open" msgstr "dùinte" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: ../src/translations.js:279 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s-%s" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: ../src/translations.js:345 msgid "wired" msgstr "le uèir" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: ../src/translations.js:350 msgid "terminal" msgstr "tèirmineal" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: ../src/translations.js:355 msgid "service" msgstr "seirbheis" #. Translators: Accuracy of user location information #: ../src/utils.js:231 msgid "Unknown" msgstr "Chan eil fhios" #. Translators: Accuracy of user location information #: ../src/utils.js:234 msgid "Exact" msgstr "Pongail" #: ../src/utils.js:337 #, javascript-format msgid "%f h" msgstr "%f u" #: ../src/utils.js:339 #, javascript-format msgid "%f min" msgstr "%f mion" #: ../src/utils.js:341 #, javascript-format msgid "%f s" msgstr "%f d" #. Translators: This is a distance measured in kilometers #: ../src/utils.js:352 #, javascript-format msgid "%s km" msgstr "%s km" #. Translators: This is a distance measured in meters #: ../src/utils.js:355 #, javascript-format msgid "%s m" msgstr "%s m" #. Translators: This is a distance measured in miles #: ../src/utils.js:363 #, javascript-format msgid "%s mi" msgstr "%s mì" #. Translators: This is a distance measured in feet #: ../src/utils.js:366 #, javascript-format msgid "%s ft" msgstr "%s troigh" #~ msgid "%f km" #~ msgstr "%f km" #~ msgid "%f m" #~ msgstr "%f m" #~ msgid "%f mi" #~ msgstr "%f mì" #~ msgid "%f ft" #~ msgstr "%f troigh" 070701000001C5000081A40000000000000000000000016641340900010031000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/gl.po# Galician translations for PACKAGE package. # Copyright (C) 2013 THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Fran Diéguez , 2013. # Fran Dieguez , 2013-2022. # msgid "" msgstr "" "Project-Id-Version: gnome-maps master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2024-02-14 22:30+0000\n" "PO-Revision-Date: 2024-02-15 03:03+0100\n" "Last-Translator: Fran Dieguez \n" "Language-Team: Galician \n" "Language: gl\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: Poedit 3.4.2\n" "X-Project-Style: gnome\n" "X-DL-Team: gl\n" "X-DL-Module: gnome-maps\n" "X-DL-Branch: main\n" "X-DL-Domain: po\n" "X-DL-State: Translating\n" #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.appdata.xml.in.in:6 data/org.gnome.Maps.desktop.in.in:4 #: data/ui/main-window.ui:27 src/application.js:64 src/mainWindow.js:147 #: src/mainWindow.js:647 msgid "Maps" msgstr "Mapas" #: data/org.gnome.Maps.appdata.xml.in.in:7 msgid "Find places around the world" msgstr "Busque lugares por todo o mundo" #: data/org.gnome.Maps.appdata.xml.in.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "Mapas dálle acceso a mapas de todo o mundo. Permítelle buscar de forma " "rápida o lugar que está buscando por cidade ou rúa, ou localizar un lugar " "para encontrarse con un amigo." #: data/org.gnome.Maps.appdata.xml.in.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "Mapa usa a base de datos colaborativa de OpenStreetMap, feita por centos de " "persoas por todo o mundo." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Maps.appdata.xml.in.in:451 src/mainWindow.js:644 msgid "The GNOME Project" msgstr "O Proxecto GNOME" #: data/org.gnome.Maps.desktop.in.in:5 msgid "A simple maps application" msgstr "Unha aplicación sinxela de mapas" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in.in:14 msgid "Maps;" msgstr "Mapas;" #: data/org.gnome.Maps.desktop.in.in:17 msgid "Allows your location to be shown on the map." msgstr "Permitir que se mostre a súa localización no mapa." #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "última localización vista" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "Coordenadas da última localización vista." #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "ampliación" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "Nivel de ampliación" #: data/org.gnome.Maps.gschema.xml:21 msgid "rotation" msgstr "rotación" #: data/org.gnome.Maps.gschema.xml:22 msgid "Map rotation in radians" msgstr "Rotación do mapa en radiáns" #: data/org.gnome.Maps.gschema.xml:26 msgid "Map type" msgstr "Tipo de mapa" #: data/org.gnome.Maps.gschema.xml:27 msgid "The type of map to display (street, aerial, etc.)" msgstr "O tipo de mapa a mostrar (rúas, aéreo, etc.)" #: data/org.gnome.Maps.gschema.xml:31 msgid "Window size" msgstr "Tamaño da xanela" #: data/org.gnome.Maps.gschema.xml:32 msgid "Window size (width and height)." msgstr "Tamaño da xanela (ancho e alto)." #: data/org.gnome.Maps.gschema.xml:36 msgid "Window position" msgstr "Posición da xanela" #: data/org.gnome.Maps.gschema.xml:37 msgid "Window position (X and Y)." msgstr "Posición da xanela (X e Y)." #: data/org.gnome.Maps.gschema.xml:41 msgid "Window maximized" msgstr "Xanela maximizada" #: data/org.gnome.Maps.gschema.xml:42 msgid "Window maximization state" msgstr "Estado de maximizado de xanela" #: data/org.gnome.Maps.gschema.xml:46 msgid "Maximum number of search results" msgstr "Número máximo de resultados de busca" #: data/org.gnome.Maps.gschema.xml:47 msgid "Maximum number of search results from geocode search." msgstr "Número de máximo de resultados de busca para as buscas xeolocalizada." #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent places to store" msgstr "Número de lugares recentes a almacenar" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited places to store." msgstr "Número de lugares visitados recentemente a almacenar." #: data/org.gnome.Maps.gschema.xml:56 msgid "Number of recent routes to store" msgstr "Número de rutas recentes a almacenar" #: data/org.gnome.Maps.gschema.xml:57 msgid "Number of recently visited routes to store." msgstr "Número de lugares visitados recentemente a almacenar." #: data/org.gnome.Maps.gschema.xml:61 msgid "OpenStreetMap username or email address" msgstr "Nome de usuario ou enderezo de correo de OpenStreetMap" #: data/org.gnome.Maps.gschema.xml:62 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "Indica se o usuario iniciou sesión para editar datos en OpenStreetMap." #: data/org.gnome.Maps.gschema.xml:66 msgid "Last used transportation type for routing" msgstr "O último tipo de transporte para enrutado usado" #: data/org.gnome.Maps.gschema.xml:70 msgid "Show scale" msgstr "Mostrar escala" #: data/org.gnome.Maps.gschema.xml:71 msgid "Whether to show the scale." msgstr "Indica se mostrar ou non a escala." #: data/ui/context-menu.ui:6 msgid "Route from Here" msgstr "Ruta desde aquí" #: data/ui/context-menu.ui:10 msgid "Add Intermediate Destination" msgstr "Engadir un destino intermedio" #: data/ui/context-menu.ui:14 msgid "Route to Here" msgstr "Ruta a aquí" #: data/ui/context-menu.ui:20 msgid "What's Here?" msgstr "Que hai aquí?" #: data/ui/context-menu.ui:24 msgid "Copy Location" msgstr "Copiar localización" #: data/ui/context-menu.ui:28 msgid "Add to OpenStreetMap…" msgstr "Engadir a OpenStreetMap…" #: data/ui/export-view-dialog.ui:7 msgid "Export view" msgstr "Exportar vista" #: data/ui/export-view-dialog.ui:16 data/ui/send-to-dialog.ui:10 #: data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "_Cancelar" #: data/ui/export-view-dialog.ui:26 msgid "_Export" msgstr "_Exportar" #. Translators: This is a tooltip #: data/ui/favorite-list-row.ui:72 msgid "Remove Favorite" msgstr "Retirar de favoritos" #: data/ui/favorites-popover.ui:11 msgid "No Favorites" msgstr "Non hai favoritos" #: data/ui/favorites-popover.ui:12 msgid "Add places to your favorites to get them listed here" msgstr "Engada lugares aos seus favoritos para mostralos aquí" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:11 src/geoclue.js:106 msgid "Current Location" msgstr "Localización actual" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:19 msgid "Layers" msgstr "Capas" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:11 msgid "Print Route" msgstr "Imprimir ruta" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:21 msgid "Favorites" msgstr "Favoritos" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:30 msgid "Route Planner" msgstr "Planificador de rutas" #: data/ui/help-overlay.ui:12 msgctxt "shortcut window" msgid "General" msgstr "Xeral" #: data/ui/help-overlay.ui:15 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "Mostrar atallos" #: data/ui/help-overlay.ui:21 msgctxt "shortcut window" msgid "Search" msgstr "Buscar" #: data/ui/help-overlay.ui:27 msgctxt "shortcut window" msgid "Explore points-of-interest" msgstr "Explorar os puntos de interese" #: data/ui/help-overlay.ui:33 msgctxt "shortcut window" msgid "Show last search results" msgstr "Mostrar os últimos resultados de busca" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "Trocar o planificador de rutas" #: data/ui/help-overlay.ui:45 msgctxt "shortcut window" msgid "Print route" msgstr "Imprimir ruta" #: data/ui/help-overlay.ui:51 msgctxt "shortcut window" msgid "Quit" msgstr "Saír" #: data/ui/help-overlay.ui:57 msgctxt "shortcut window" msgid "Open main menu" msgstr "Abrir o menú principal" #: data/ui/help-overlay.ui:65 msgctxt "shortcut window" msgid "Map View" msgstr "Vista do mapa" #: data/ui/help-overlay.ui:68 msgctxt "shortcut window" msgid "Zoom in" msgstr "Ampliar" #: data/ui/help-overlay.ui:74 msgctxt "shortcut window" msgid "Zoom out" msgstr "Afastar" #: data/ui/help-overlay.ui:80 msgctxt "shortcut window" msgid "Rotate clockwise" msgstr "Rotar en sentido horario" #: data/ui/help-overlay.ui:86 msgctxt "shortcut window" msgid "Rotate counter-clockwise" msgstr "Rotar en sentido antihorario" #: data/ui/help-overlay.ui:92 msgctxt "shortcut window" msgid "Reset rotation" msgstr "Restabelecer rotación" #: data/ui/help-overlay.ui:98 msgctxt "shortcut window" msgid "Toggle scale" msgstr "Trocar escala" #: data/ui/help-overlay.ui:104 msgctxt "shortcut window" msgid "Go to current location" msgstr "Ir á localización actual" #: data/ui/help-overlay.ui:114 msgctxt "shortcut window" msgid "Switch to street view" msgstr "Trocar á vista de rúa" #: data/ui/help-overlay.ui:121 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "Trocar á vista aérea" #: data/ui/help-overlay.ui:127 msgctxt "shortcut window" msgid "Open shape layer" msgstr "Abrir a capa de relieve" #: data/ui/layers-popover.ui:7 msgid "Show Scale" msgstr "Mostrar escala" #: data/ui/layers-popover.ui:16 msgid "Enable Experimental Map" msgstr "Activar o mapa experimental" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:21 msgid "Open Shape Layer…" msgstr "Abrir a capa de relieve…" #: data/ui/main-window.ui:8 msgid "Set up OpenStreetMap Account…" msgstr "Configurar unha conta de OpenStreetMap…" #: data/ui/main-window.ui:12 msgid "Export as Image…" msgstr "Exportar como imaxe…" #: data/ui/main-window.ui:17 msgid "_Keyboard Shortcuts" msgstr "Atallos de _teclado" #: data/ui/main-window.ui:22 msgid "About Maps" msgstr "Sobre Mapas" #: data/ui/main-window.ui:48 msgid "Main Menu" msgstr "Menú principal" #: data/ui/osm-account-dialog.ui:5 msgid "OpenStreetMap Account" msgstr "Conta de OpenStreetMap" #: data/ui/osm-account-dialog.ui:31 msgid "Sign In To Edit Maps" msgstr "Iniciar sesión para editar Mapas" #: data/ui/osm-account-dialog.ui:32 msgid "Help to improve the map, using an OpenStreetMap account." msgstr "Axude a mellorar o mapa usando unha conta de OpenStreetMap." #: data/ui/osm-account-dialog.ui:36 msgid "Sign In" msgstr "Iniciar sesión" #: data/ui/osm-account-dialog.ui:59 msgid "Verification" msgstr "Verificación" #: data/ui/osm-account-dialog.ui:60 msgid "" "Copy the verification code shown when authorizing access in the browser." msgstr "" "Copie o código de verificación mostrado ao autorizar o acceso no navegador." #: data/ui/osm-account-dialog.ui:69 msgid "Verification Code" msgstr "Código de verificación" #: data/ui/osm-account-dialog.ui:75 msgid "Verify" msgstr "Comprobar" #: data/ui/osm-account-dialog.ui:110 msgid "Signed In" msgstr "Iniciar sesión" #: data/ui/osm-account-dialog.ui:111 msgid "Your OpenStreetMap account is active." msgstr "A súa conta de OpenStreetMap está activa." #: data/ui/osm-account-dialog.ui:129 msgid "Sign Out" msgstr "Pechar a sesión" #: data/ui/osm-edit-address.ui:11 msgid "Street" msgstr "Rúa" #: data/ui/osm-edit-address.ui:22 msgid "House number" msgstr "Número de casa" #: data/ui/osm-edit-address.ui:33 msgid "Postal code" msgstr "Código postal" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:44 msgid "City" msgstr "Cidade" #: data/ui/osm-edit-dialog.ui:8 msgctxt "dialog title" msgid "Edit on OpenStreetMap" msgstr "Editar en OpenStreetMap" #: data/ui/osm-edit-dialog.ui:57 msgid "Type" msgstr "Tipo" #: data/ui/osm-edit-dialog.ui:79 msgid "None" msgstr "Ningún" #: data/ui/osm-edit-dialog.ui:108 msgid "Add Field" msgstr "Engadir campo" #: data/ui/osm-edit-dialog.ui:130 msgid "Comment" msgstr "Comentario" #: data/ui/osm-edit-dialog.ui:158 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "Os cambios no mapa serán visíbeis en todos os\n" "mapas que usen datos de OpenStreetMap." #: data/ui/osm-edit-dialog.ui:186 msgid "Recently Used" msgstr "Usados recentemente" #: data/ui/osm-edit-dialog.ui:225 src/mapView.js:663 msgid "Cancel" msgstr "Cancelar" #: data/ui/osm-edit-dialog.ui:238 src/osmEditDialog.js:531 msgid "Next" msgstr "Seguinte" #: data/ui/osm-edit-wikipedia.ui:8 msgid "Article" msgstr "Artigo" #: data/ui/osm-edit-wikipedia.ui:21 msgid "Wikidata tag" msgstr "Etiqueta de Wikidata" #: data/ui/osm-edit-wikipedia.ui:32 msgid "Load Wikidata tag for article" msgstr "Cargar a etiqueta de Wikidata para o artigo" #: data/ui/place-popover.ui:23 src/searchBar.js:55 msgid "Explore Nearby Places" msgstr "Explorar lugares cercanos" #: data/ui/place-popover.ui:82 src/application.js:277 msgid "No results found" msgstr "Non se atoparon resultados" #: data/ui/place-popover.ui:92 src/application.js:255 msgid "An error has occurred" msgstr "Produciuse un erro" #. Translators: This is a tooltip #: data/ui/route-entry.ui:12 msgid "Change Route Order" msgstr "Cambiar orde da ruta" #: data/ui/send-to-dialog.ui:7 msgid "Open Location" msgstr "Abrir localización" #: data/ui/send-to-dialog.ui:64 msgid "Copy" msgstr "Copiar" #: data/ui/send-to-dialog.ui:70 msgid "Send To…" msgstr "Enviar a…" #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:62 msgid "Open Shape Layer" msgstr "Abrir a capa de relieve" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "_Abrir" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:32 msgid "Toggle visible" msgstr "Trocar visibilidade" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:44 msgid "Remove Shape Layer" msgstr "Eliminar a capa de contorno" #: data/ui/sidebar.ui:207 msgid "Route search by GraphHopper" msgstr "Busca de ruta por GraphHopper" #: data/ui/sidebar.ui:272 msgid "" "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of " "transportation,\n" "e.g. a national provider might not include airlines, and a local provider " "could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" "Os itinerarios de ruta para o tránsito público están fornecidos por servizos " "de terceiros.\n" "GNOME non ofrece ningunha garantía de que os datos e horarios dos " "itinerarios sexan\n" "correctos. \n" "Teña en conta que algúns fornecedores poden non incluír todos os modos " "dispoñíbeis\n" "de transporte, por exemplo o fornecedor nacional pode non incluír as " "aeroliñas, e o \n" "fornecedor local pode omitir os trens rexionais." #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:98 msgid "Hide intermediate stops and information" msgstr "Ocultar paradas intermedias e información" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:156 msgid "Show intermediate stops and information" msgstr "Mostrar paradas intermedias e información" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:16 msgid "Leave Now" msgstr "Saír agora" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:17 msgid "Leave By" msgstr "Sae ás" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:18 msgid "Arrive By" msgstr "Chega ás" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:85 msgid "Show" msgstr "Mostrar" #: data/ui/transit-options-panel.ui:95 msgid "Buses" msgstr "Buses" #: data/ui/transit-options-panel.ui:101 msgid "Trams" msgstr "Tranvías" #: data/ui/transit-options-panel.ui:107 msgid "Trains" msgstr "Trens" #: data/ui/transit-options-panel.ui:113 msgid "Subway" msgstr "Metro" #: data/ui/transit-options-panel.ui:119 msgid "Ferries" msgstr "Ferris" #: data/ui/transit-options-panel.ui:125 msgid "Airplanes" msgstr "Avións" #. Translators: This is a tooltip #: data/ui/place-bar.ui:33 data/ui/place-buttons.ui:27 msgid "Share Location" msgstr "Compartir localización" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:11 msgid "Add to new route" msgstr "Engadir unha nova ruta" #. Translators: This is the button to find a route to a place #: data/ui/place-buttons.ui:15 msgid "Directions" msgstr "Direccións" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:36 msgid "Mark as Favorite" msgstr "Marcar como favorito" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:44 msgid "Edit on OpenStreetMap" msgstr "Editar en OpenStreetMap" #. Translators: This is a tooltip #: data/ui/place-view.ui:52 msgid "Share location" msgstr "Compartir localización" #: data/ui/poi-category-goback-row.ui:22 msgid "Back to Main Categories" msgstr "Volver ás categorías principais" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:19 msgid "Reset Rotation" msgstr "Restabelecer rotación" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:32 msgid "Zoom Out" msgstr "Afastar" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:43 src/mapView.js:1238 msgid "Zoom In" msgstr "Ampliar" #: lib/maps-file-data-source.c:262 lib/maps-file-data-source.c:338 #: lib/maps-file-data-source.c:418 msgid "Failed to find tile structure in directory" msgstr "Produciuse un fallo ao atopar a estrutura de teselas no cartafol" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "Produciuse un fallo ao analizar o XML do documento" #: lib/maps-osm.c:250 lib/maps-osm.c:403 msgid "Missing required attributes" msgstr "Faltan atributos requiridos" #: lib/maps-osm.c:451 lib/maps-osm.c:494 msgid "Could not find OSM element" msgstr "Non foi posíbel atopar o elemento de OSM" #: lib/maps-osm.c:508 msgid "Could not find user element" msgstr "Non foi posíbel atopar o elemento do usuario" #: src/application.js:78 msgid "A path to a local tiles directory structure" msgstr "Unha ruta a unha estrutura de directorios de teselas locais" #: src/application.js:84 msgid "Tile size for local tiles directory" msgstr "O tamaño de tesela para o cartafol de teselas locais" #: src/application.js:88 msgid "Show the version of the program" msgstr "Mostra a versión do programa" #: src/application.js:94 msgid "Search for places" msgstr "Buscar por lugares" #: src/application.js:105 src/application.js:106 msgid "[FILE…|URI]" msgstr "[FICHEIRO…|URI]" #: src/application.js:284 #, javascript-format msgid "Invalid maps: URI: %s" msgstr "Mapas non válidos: URI: %s" #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:75 #, javascript-format msgid "Maps at %f, %f.png" msgstr "Mapas en %f, %f.png" #: src/exportViewDialog.js:174 msgid "Unable to export view" msgstr "Non foi posíbel exportar a vista" #: src/favoriteListRow.js:42 msgid "Favorite removed" msgstr "Favorito retirado" #: src/favoriteListRow.js:43 msgid "Undo" msgstr "Desfacer" #: src/geoJSONSource.js:73 msgid "invalid coordinate" msgstr "coordenada non válida" #: src/geoJSONSource.js:126 src/geoJSONSource.js:166 src/geoJSONSource.js:181 msgid "parse error" msgstr "erro na análise" #: src/geoJSONSource.js:160 msgid "unknown geometry" msgstr "xeometría descoñecida" #: src/graphHopper.js:101 src/transitPlan.js:175 msgid "Route request failed." msgstr "Produciuse un fallo na solicitude de ruta." #: src/graphHopper.js:108 src/transitPlan.js:167 msgid "No route found." msgstr "Non se atopou a ruta." #: src/graphHopper.js:195 src/transitplugins/openTripPlanner.js:1163 msgid "Start!" msgstr "Comezar!" #: src/mainWindow.js:59 msgid "All Layer Files" msgstr "Todos os ficheiros de capa" #: src/mainWindow.js:522 msgid "Failed to connect to location service" msgstr "Produciuse un fallo ao conectar co servizo de localización" #: src/mainWindow.js:527 msgid "Turn on location services" msgstr "Activar os servizos de localización" #: src/mainWindow.js:528 msgid "Location Settings" msgstr "Preferencias de localización" #: src/mainWindow.js:645 msgid "translator-credits" msgstr "Fran Diéguez , 2013-2024" #: src/mainWindow.js:649 msgid "Copyright © 2011 – 2023 Red Hat, Inc. and The GNOME Maps authors" msgstr "Copyright © 2011 – 2023 Red Hat, Inc. e os autores de Mapas de GNOME" #: src/mainWindow.js:665 #, javascript-format msgid "Map data by %s and contributors" msgstr "Datos do mapa por %s e contribuidores" #: src/mainWindow.js:666 msgid "Map Data Provider" msgstr "Fornecedor dos datos do mapa" #: src/mainWindow.js:678 msgid "Map Tile Provider" msgstr "Fornecedor das teselas do mapa" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:686 #, javascript-format msgid "Map tiles provided by %s" msgstr "Teselas de mapas fornecidas por %s" #: src/mainWindow.js:716 msgid "Search Provider" msgstr "Fornecedor de busca" #: src/mainWindow.js:719 #, javascript-format msgid "Search provided by %s using %s" msgstr "Busca fornecida por %s usando %s" #: src/mapView.js:637 src/mapView.js:702 msgid "Failed to open layer" msgstr "Produciuse un fallo ao abrir a capa" #: src/mapView.js:656 msgid "Do you want to continue?" msgstr "Desexa continuar?" #: src/mapView.js:657 #, javascript-format msgid "" "You are about to open files with a total size of %s MB. This could take some " "time to load" msgstr "" "Está a piques de abrir ficheiros con un tamaño total de %s MB. Isto pode " "tardar algún tempo en cargar" #: src/mapView.js:664 src/transitplugins/openTripPlanner.js:1239 #: src/transitplugins/openTripPlanner2.js:267 msgid "Continue" msgstr "Continuar" #: src/mapView.js:696 msgid "File type is not supported" msgstr "Tipo de ficheiro non admitido" #: src/mapView.js:733 msgid "Failed to open GeoURI" msgstr "Produciuse un fallo ao abrir o GeoURI" #: src/mapView.js:1197 msgid "Nothing found here!" msgstr "Non se atopou nada aquí!" #: src/mapView.js:1237 msgid "Zoom in to add location" msgstr "Amplíe para engadir unha localización" #: src/mapView.js:1258 msgid "Location was added in OpenStreetMap" msgstr "Lugar engadido en OpenStreetMap" #. switch back to the sign-in view, and show a toast indicating #. that verification failed #: src/osmAccountDialog.js:134 msgid "The verification code didn’t match, please try again." msgstr "O código de verificación non coincide, probe de novo." #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:335 msgid "Incorrect user name or password" msgstr "Nome de usuario ou contrasinal non correcto" #: src/osmConnection.js:337 msgid "Success" msgstr "Éxito" #: src/osmConnection.js:339 msgid "Bad request" msgstr "Solicitude non válida" #: src/osmConnection.js:341 msgid "Object not found" msgstr "O obxecto non se atopou" #: src/osmConnection.js:343 msgid "Conflict, someone else has just modified the object" msgstr "Conflito, alguén modificou o obxecto" #: src/osmConnection.js:345 msgid "Object has been deleted" msgstr "O obxecto foi eliminado" #: src/osmConnection.js:347 msgid "Way or relation refers to non-existing children" msgstr "A forma ou relación refírese aos fillos non existentes" #: src/osmEditDialog.js:106 msgid "Name" msgstr "Nome" #: src/osmEditDialog.js:109 msgid "The official name. This is typically what appears on signs." msgstr "O nome oficial. Isto é o aparece normalmente nos sinais." #: src/osmEditDialog.js:112 msgid "Address" msgstr "Enderezo" #: src/osmEditDialog.js:120 src/placeView.js:275 msgid "Website" msgstr "Sitio web" #: src/osmEditDialog.js:124 msgid "This is not a valid URL. Make sure to include http:// or https://." msgstr "Esta non é un URL válido. Asegúrese que inclúe http:// ou https://." #: src/osmEditDialog.js:125 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" "O sitio web oficial. Tente usar o formulario máis básico de URL p.ex. http://" "exemplo.gal no lugar de http://exemplo.gal/index.html." #: src/osmEditDialog.js:130 msgid "Phone" msgstr "Teléfono" #: src/osmEditDialog.js:134 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" "Número de teléfono. Use o formato internacional, comezando polo signo +. " "Teña en conta as leis de privacidade locais." #: src/osmEditDialog.js:139 msgid "E-mail" msgstr "Correo electrónico" #: src/osmEditDialog.js:144 msgid "" "This is not a valid email address. Make sure to not include the mailto: " "protocol prefix." msgstr "" "Esta non é un enderezo de correo electrónico válido. Asegúrese que non " "inclúe o prefixo de protocolo «mailto:»." #: src/osmEditDialog.js:145 msgid "" "Contact email address for inquiries. Add only email addresses that are " "intended to be publicly used." msgstr "" "Enderezo de correo electrónico de contacto para solicitudes. Engada só un " "enderezo de correo electrónico para o seu uso de forma pública." #. Translators: This is the text for the "Wikipedia" link at the end #. of summaries #: src/osmEditDialog.js:149 src/placeView.js:727 msgid "Wikipedia" msgstr "Wikipedia" #: src/osmEditDialog.js:156 src/placeView.js:399 msgid "Opening hours" msgstr "Horas de apertura" #: src/osmEditDialog.js:161 msgid "See the link in the label for help on format." msgstr "Vexa a ligazón na etiqueta para obter axuda no formatado." #. TODO: this is a bit of a work-around to re-interpret the population, #. * stored as a string into an integer to convert back to a locale- #. * formatted string. Ideally it should be kept as an integer value #. * in the Place class. But this will also need to be handled by the #. * PlaceStore, possible in a backwards-compatible way #. #: src/osmEditDialog.js:164 src/placeView.js:509 msgid "Population" msgstr "Poboación" #: src/osmEditDialog.js:169 src/placeView.js:538 msgid "Altitude" msgstr "Altitude" #: src/osmEditDialog.js:172 msgid "Elevation (height above sea level) of a point in meters." msgstr "Elevación (altura sobre o nivel do mar) do punto en metros." #: src/osmEditDialog.js:175 msgid "Wheelchair access" msgstr "Acceso con cadeira de rodas" #: src/osmEditDialog.js:178 src/osmEditDialog.js:187 src/osmEditDialog.js:198 #: src/osmEditDialog.js:233 msgid "Yes" msgstr "Si" #: src/osmEditDialog.js:179 src/osmEditDialog.js:188 src/osmEditDialog.js:199 #: src/osmEditDialog.js:234 msgid "No" msgstr "Non" #: src/osmEditDialog.js:180 msgid "Limited" msgstr "Limitado" #: src/osmEditDialog.js:181 msgid "Designated" msgstr "Deseñado" #: src/osmEditDialog.js:184 msgid "Internet access" msgstr "Acceso a internet" #: src/osmEditDialog.js:189 msgid "Wi-Fi" msgstr "Sen fíos" #: src/osmEditDialog.js:190 msgid "Wired" msgstr "Con fíos" #: src/osmEditDialog.js:191 msgid "Terminal" msgstr "Terminal" #: src/osmEditDialog.js:192 msgid "Service" msgstr "Servizo" #: src/osmEditDialog.js:195 msgid "Takeout" msgstr "Para levar" #: src/osmEditDialog.js:200 msgid "Only" msgstr "Só" #: src/osmEditDialog.js:203 msgid "Religion" msgstr "Relixión" #: src/osmEditDialog.js:206 src/translations.js:286 msgid "Animism" msgstr "Animismo" #: src/osmEditDialog.js:207 msgid "Bahá’í" msgstr "Bahaísmo" #: src/osmEditDialog.js:208 src/translations.js:288 msgid "Buddhism" msgstr "Budismo" #: src/osmEditDialog.js:209 src/translations.js:289 msgid "Caodaism" msgstr "Caodaísmo" #: src/osmEditDialog.js:210 src/translations.js:290 msgid "Christianity" msgstr "Cristianismo" #: src/osmEditDialog.js:211 src/translations.js:291 msgid "Confucianism" msgstr "Confucionismo" #: src/osmEditDialog.js:212 src/translations.js:292 msgid "Hinduism" msgstr "Hinduísmo" #: src/osmEditDialog.js:213 src/translations.js:293 msgid "Jainism" msgstr "Xainismo" #: src/osmEditDialog.js:214 src/translations.js:294 msgid "Judaism" msgstr "Xudaísmo" #: src/osmEditDialog.js:215 src/translations.js:295 msgid "Islam" msgstr "Islamismo" #: src/osmEditDialog.js:216 src/translations.js:296 msgid "Multiple Religions" msgstr "Múltiples relixións" #: src/osmEditDialog.js:217 src/translations.js:297 msgid "Paganism" msgstr "Paganismo" #: src/osmEditDialog.js:218 src/translations.js:298 msgid "Pastafarianism" msgstr "Pastafarianismo" #: src/osmEditDialog.js:219 src/translations.js:299 msgid "Scientology" msgstr "Cienciloxía" #: src/osmEditDialog.js:220 src/translations.js:300 msgid "Shinto" msgstr "Xintoísmo" #: src/osmEditDialog.js:221 src/translations.js:301 msgid "Sikhism" msgstr "Sixismo" #: src/osmEditDialog.js:222 src/translations.js:302 msgid "Spiritualism" msgstr "Espiritualismo" #: src/osmEditDialog.js:223 src/translations.js:303 msgid "Taoism" msgstr "Taoísmo" #: src/osmEditDialog.js:224 src/translations.js:304 msgid "Unitarian Universalism" msgstr "Universalismo unitario" #: src/osmEditDialog.js:225 src/translations.js:305 msgid "Voodoo" msgstr "Vodú" #: src/osmEditDialog.js:226 src/translations.js:306 msgid "Yazidism" msgstr "Xazidismo" #: src/osmEditDialog.js:227 src/translations.js:307 msgid "Zoroastrianism" msgstr "Zoroastrismo" #: src/osmEditDialog.js:230 src/poiCategories.js:176 msgid "Toilets" msgstr "Baño" #: src/osmEditDialog.js:237 msgid "Note" msgstr "Nota" #: src/osmEditDialog.js:240 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" "Información usada para informar a outros mapeadores sobre información non " "obvia sobre un elemento, un intento do autor de crealo ou pistas sobre " "futuras melloras." #: src/osmEditDialog.js:339 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "Engadir a OpenStreetMap" #: src/osmEditDialog.js:393 msgid "Select Type" msgstr "Seleccione tipo" #: src/osmEditDialog.js:515 msgid "Done" msgstr "Feito" #: src/osmEditDialog.js:818 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "" "O formato usado debería incluír o código de idioma e o título do artigo como " "«gl:Título do artigo»." #: src/osmEditDialog.js:824 msgid "Use the reload button to load the Wikidata tag for the selected article" msgstr "" "Use o botón de recargar para cargar a etiqueta de Wikidata para os artigos " "seleccionados" #: src/osmEditDialog.js:832 msgid "Couldn't find Wikidata tag for article" msgstr "Non foi posíbel atopar a etiqueta de Wikidata para o artigo" #: src/photonUtils.js:118 msgid "Unnamed place" msgstr "Lugar sen nome" #: src/placeEntry.js:274 msgid "Failed to parse Geo URI" msgstr "Produciuse un fallo ao analizar o URI Geo" #: src/placeEntry.js:286 msgid "Failed to parse Maps URI" msgstr "Produciuse un fallo ao analizar o URI de Mapas" #. 300 ft (300 * 12 * 0.0254 m) #. #. * Translators: This a format string for showing a distance to a place #. * is lower than a "quite short" distance. #. * The "less than" symbol can be substituded with an appropriate one, if #. * needed (e.g. using the correct direction, or alternative symbol). #. * The %s should be kept, and is substituted with a label representing the #. * short distance. The \u2009 (thin space) could also be adjusted if needed #: src/placeListRow.js:46 #, javascript-format msgctxt "short distance format string" msgid "< %s" msgstr "< %s" #: src/placeView.js:263 msgid "Coordinates" msgstr "Coordenadas" #: src/placeView.js:267 msgid "Accuracy" msgstr "Precisión" #. Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) #: src/placeView.js:270 #, javascript-format msgid "Accuracy: %s" msgstr "Precisión: %s" #. since the phone numbers are typically always rendered #. * left-to-right, insert an explicit LRM char to avoid issues #. * with phone numbers in international format starting with a + #. * which is considered a "weak" character to determine Unicode #. * text direction #. #: src/placeView.js:289 msgid "Phone number" msgstr "Número de teléfono" #: src/placeView.js:308 msgid "Email" msgstr "Correo electrónico" #. If a reference to a named floor (named or symbolic) exists #. * refer to it directly. #. #. Translators: #. * This is a reference to named building floor, using a label #. * or a code, as "displayed in the elevator" #. #: src/placeView.js:323 src/placeView.js:362 msgid "Floor" msgstr "Planta" #: src/placeView.js:325 #, javascript-format msgid "Floor %s" msgstr "Planta %s" #: src/placeView.js:337 msgid "At ground level" msgstr "Ao nivel do chan" #. Translators: #. * This is a reference to a number of floors above #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:346 #, javascript-format msgid "%s floor above ground level" msgid_plural "%s floors above ground level" msgstr[0] "%s planta sobre o nivel do chan" msgstr[1] "%s plantas sobre o nivel do chan" #. Translators: #. * This is a reference to a number of floors below #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:357 #, javascript-format msgid "%s floor below ground level" msgid_plural "%s floors below ground level" msgstr[0] "%s planta baixo o nivel de chan" msgstr[1] "%s plantas baixo o nivel de chan" #. Translators: #. * The establishment offers customers to purchase meals #. * (or similar) to be consumed elsewhere #. #: src/placeView.js:375 msgid "Offers takeout" msgstr "Ofrece para levar" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed on-premise. #. #: src/placeView.js:383 msgid "Does not offer takeout" msgstr "Non ofrece para levar" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed elsewhere. E.g. #. * there is no seating on-premise for eating/drinking #. #: src/placeView.js:392 msgid "Only offers takeout" msgstr "Só ofrece para levar" #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/placeView.js:409 msgid "Public internet access" msgstr "Acceso a internet pública" #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/placeView.js:418 msgid "No internet access" msgstr "Non hai acceso a internet" #. Translators: #. * This means a WLAN Hotspot, also known as wireless, wifi or Wi-Fi. #. #: src/placeView.js:426 msgid "Public Wi-Fi" msgstr "Wifi público" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/placeView.js:434 msgid "Wired internet access" msgstr "Acceso a internet cableado" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/placeView.js:442 msgid "Computers available for use" msgstr "Computadores dispoñíbeis para o uso" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/placeView.js:450 msgid "Internet assistance available" msgstr "Asistencia a internet dispoñíbel" #: src/placeView.js:456 msgid "No toilets available" msgstr "Sen baños dispoñíbeis" #: src/placeView.js:459 msgid "Toilets available" msgstr "Baños dispoñíbeis" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #: src/placeView.js:468 msgid "Wheelchair accessible" msgstr "Acceso con cadeira de rodas" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/placeView.js:478 msgid "Limited wheelchair accessibility" msgstr "Acceso con cadeira de rodas limitado" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #: src/placeView.js:487 msgid "Not wheelchair accessible" msgstr "Sen acceso con cadeira de rodas" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/placeView.js:497 msgid "Designated for wheelchair users" msgstr "Deseñado para usuarios de cadeira de rodas" #. * #. * Translators: this is a label indicating an altitude below #. * sea level, where the %s placeholder is the altitude relative #. * to mean sea level in the "negative direction" #. #: src/placeView.js:528 #, javascript-format msgid "%s below sea level" msgstr "%s baixo o nivel de mar" #. * #. * Translators: this indicates a place is located at (or very #. * close to) mean sea level #. #: src/placeView.js:535 msgid "At sea level" msgstr "Ao nivel do mar" #: src/placeView.js:544 msgid "Religion:" msgstr "Relixión:" #: src/place.js:568 msgid "Place not found in OpenStreetMap" msgstr "Lugar non atopada en OpenStreetMap" #: src/place.js:575 msgid "Coordinates in URL are not valid" msgstr "As coordenadas na URL non son válidas" #: src/place.js:584 msgid "URL is not supported" msgstr "O URL non é compatíbel" #: src/poiCategories.js:132 msgid "Amenities" msgstr "Comodidades" #: src/poiCategories.js:135 msgid "ATMs" msgstr "Caixeiros automáticos" #: src/poiCategories.js:141 msgid "Post Boxes" msgstr "Caixas de correos" #: src/poiCategories.js:147 msgid "Post Offices" msgstr "Oficinas de corros" #: src/poiCategories.js:153 msgid "Police" msgstr "Policia" #: src/poiCategories.js:159 msgid "Libraries" msgstr "Bibliotecas" #: src/poiCategories.js:165 msgid "Pharmacies" msgstr "Farmacias" #: src/poiCategories.js:171 msgid "Recycling" msgstr "Reciclado" #: src/poiCategories.js:182 msgid "Wheelchair-accessible Toilets" msgstr "Baño con acceso con cadeira de rodas" #: src/poiCategories.js:188 msgid "Baggage Lockers" msgstr "Armarios de bagaxe" #: src/poiCategories.js:196 msgid "Eating & Drinking" msgstr "Comer e beber" #: src/poiCategories.js:200 msgid "Restaurants" msgstr "Restaurantes" #: src/poiCategories.js:205 msgid "Fast Food" msgstr "Comida rápida" #: src/poiCategories.js:210 msgid "Food Courts" msgstr "Plazas de abastos" #: src/poiCategories.js:215 msgid "Pubs" msgstr "Pubs" #: src/poiCategories.js:221 msgid "Bars" msgstr "Bares" #: src/poiCategories.js:226 msgid "Cafes" msgstr "Cafeterías" #: src/poiCategories.js:231 msgid "Ice Cream" msgstr "Xeados" #: src/poiCategories.js:236 msgid "Food, Snacks, and Beverage Machines" msgstr "Máquinas expendedoras de comida, snacks e bebidas" #: src/poiCategories.js:244 msgid "Shopping" msgstr "Compras" #: src/poiCategories.js:248 msgid "Supermarkets" msgstr "Supermercados" #: src/poiCategories.js:254 msgid "Convenience Stores" msgstr "Tenda de barrio" #: src/poiCategories.js:259 msgid "Shopping Malls" msgstr "Centros comerciais" #: src/poiCategories.js:265 msgid "Clothes" msgstr "Roupa" #: src/poiCategories.js:271 msgid "Shoes" msgstr "Calzado" #: src/poiCategories.js:276 msgid "Electronics" msgstr "Electrónica" #: src/poiCategories.js:282 msgid "Alcohol" msgstr "Alcohol" #: src/poiCategories.js:288 msgid "Bakeries" msgstr "Panaderías" #: src/poiCategories.js:294 msgid "Flowers" msgstr "Flores" #: src/poiCategories.js:301 msgid "Transportation" msgstr "Transporte" #: src/poiCategories.js:305 msgid "Bus & Tram Stops" msgstr "Paradas de bus e tranvía" #: src/poiCategories.js:313 msgid "Train & Subway Stations" msgstr "Estacións de tren e metro" #: src/poiCategories.js:321 msgid "Tickets" msgstr "Tickets" #: src/poiCategories.js:329 msgid "Parking" msgstr "Aparcamento" #: src/poiCategories.js:334 msgid "Bicycle Parking" msgstr "Aparcamento de bicicletas" #: src/poiCategories.js:339 msgid "Bicycle Rental" msgstr "Aluguer de bicicletas" #: src/poiCategories.js:344 msgid "Car Rental" msgstr "Aluguer de coches" #: src/poiCategories.js:349 msgid "Fuel" msgstr "Combustíbel" #: src/poiCategories.js:354 msgid "EV Charging" msgstr "Carga de vehículo eléctico" #: src/poiCategories.js:362 msgid "Healthcare" msgstr "Asistencia sanitaria" #: src/poiCategories.js:366 msgid "Clinics" msgstr "Clínicas" #: src/poiCategories.js:372 msgid "Hospitals" msgstr "Hospitais" #: src/poiCategories.js:378 msgid "Dentists" msgstr "Dentistas" #: src/poiCategories.js:386 msgid "Accommodation" msgstr "Aloxamento" #: src/poiCategories.js:390 msgid "Hotels" msgstr "Hoteis" #: src/poiCategories.js:395 msgid "Hostels" msgstr "Hosteis" #: src/poiCategories.js:400 msgid "Bed & Breakfast" msgstr "Cama e almorzo" #: src/poiCategories.js:405 msgid "Campings" msgstr "Acampamentos" #: src/poiCategories.js:412 msgid "Recreation" msgstr "Recreación" #: src/poiCategories.js:416 msgid "Parks" msgstr "Parques" #: src/poiCategories.js:421 msgid "Playgrounds" msgstr "Espazos de xogo" #: src/poiCategories.js:425 msgid "Beaches" msgstr "Praias" #: src/poiCategories.js:430 msgid "Nature Reserves" msgstr "Reservas naturais" #: src/poiCategories.js:436 msgid "Theme Parks" msgstr "Parques temáticos" #: src/poiCategories.js:441 msgid "Theaters" msgstr "Teatros" #: src/poiCategories.js:447 msgid "Movie Theaters" msgstr "Cines" #: src/poiCategories.js:453 msgid "Night Clubs" msgstr "Clubes nocturnos" #: src/poiCategories.js:460 msgid "Tourism" msgstr "Tuismo" #: src/poiCategories.js:464 msgid "Museums" msgstr "Museos" #: src/poiCategories.js:470 msgid "Attractions" msgstr "Atraccións" #: src/poiCategories.js:475 msgid "Artworks" msgstr "Obras de arte" #: src/poiCategories.js:480 msgid "Tourist Information" msgstr "Información turística" #: src/poiCategories.js:487 msgid "Sports" msgstr "Deportes" #: src/poiCategories.js:491 msgid "Gyms" msgstr "Ximnasios" #: src/poiCategories.js:497 msgid "Outdoor Gyms" msgstr "Ximnasios ao aire libre" #: src/poiCategories.js:503 msgid "Golf Courses" msgstr "Campos de golf" #: src/printLayout.js:350 #, javascript-format msgid "From %s to %s" msgstr "Desde %s a %s" #: src/printOperation.js:49 msgid "Loading map tiles for printing" msgstr "Cargando teselas do mapa para a impresión" #: src/printOperation.js:50 msgid "You can abort printing if this takes too long" msgstr "Pode abortar a impresión se isto leva moito tempo" #: src/printOperation.js:52 msgid "Abort printing" msgstr "Abortar impresión" #. Translators: this is add via location tooltip #: src/routeEntry.js:60 msgid "Add via location" msgstr "Engadir mediante localización" #. Translators: this is remove via location tooltip #: src/routeEntry.js:70 msgid "Remove via location" msgstr "Quitar mediante localización" #. Translators: this is reverse route tooltip #: src/routeEntry.js:76 msgid "Reverse route" msgstr "Inverter ruta" #: src/searchBar.js:45 msgid "Search" msgstr "Buscar" #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:84 #, javascript-format msgid "Add %s to %s" msgstr "Engadir %s a %s" #: src/sendToDialog.js:181 msgid "Failed to open URI" msgstr "Produciuse un fallo ao abrir o URI" #: src/sendToDialog.js:246 #, javascript-format msgid "Open with %s" msgstr "Abrir con %s" #: src/shapeLayer.js:109 msgid "failed to load file" msgstr "produciuse un fallo ao cargar o ficheiro" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:328 #, javascript-format msgid "Estimated time: %s" msgstr "Tempo estimado: %s" #: src/sidebar.js:398 #, javascript-format msgid "Itineraries provided by %s" msgstr "Itinerarios fornecidos por %s" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:39 #, javascript-format msgid "Start at %s" msgstr "Comezar en %s" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:45 src/transitplugins/openTripPlanner2.js:236 msgid "Start" msgstr "Inicio" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:63 #, javascript-format msgid "Walk %s" msgstr "Camiñar %s" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:77 #, javascript-format msgid "Arrive at %s" msgstr "Chega ás %s" #: src/transit.js:79 src/transitplugins/openTripPlanner.js:1176 #: src/transitplugins/openTripPlanner2.js:255 msgid "Arrive" msgstr "Chegar" #: src/transitLegRow.js:69 msgid "Show walking instructions" msgstr "Mostrar instrucións do camiño" #: src/transitLegRow.js:70 msgid "Hide walking instructions" msgstr "Ocultar instrucións do camiño" #: src/transitMoreRow.js:37 msgid "Load earlier alternatives" msgstr "Cargar alternativas anteriores" #: src/transitMoreRow.js:39 msgid "Load later alternatives" msgstr "Cargar alternativas posteriores" #: src/transitMoreRow.js:52 msgid "No earlier alternatives found." msgstr "Non hai alternativas anteriores." #: src/transitMoreRow.js:54 msgid "No later alternatives found." msgstr "Non hai alternativas posteriores." #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:138 msgctxt "month-day-date" msgid "%b %e" msgstr "%b %e" #: src/transitPlan.js:171 msgid "No timetable data found for this route." msgstr "Non se atoparon datos de horarios para esta ruta." #: src/transitPlan.js:179 msgid "No provider found for this route." msgstr "Non hai un fornecedor para esta ruta." #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:300 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:331 #, javascript-format msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "%s minuto" msgstr[1] "%s minutos" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:343 #, javascript-format msgid "%s hour" msgid_plural "%s hours" msgstr[0] "%s hora" msgstr[1] "%s horas" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:351 #, javascript-format msgid "%s:%s hour" msgid_plural "%s:%s hours" msgstr[0] "%s:%s hora" msgstr[1] "%s:%s horas" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:744 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: src/translations.js:55 msgid "Around the clock" msgstr "Todo o día" #: src/translations.js:57 msgid "From sunrise to sunset" msgstr "Desde o solpor ao amencer" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:123 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s,%s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:137 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s,%s,%s" #: src/translations.js:156 msgid "Every day" msgstr "Cada día" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:168 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:179 msgid "Public holidays" msgstr "Vacacións públicas" #: src/translations.js:181 msgid "School holidays" msgstr "Vacacións de escola" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:221 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: src/translations.js:235 msgid "not open" msgstr "non aberto" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:250 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:287 msgid "Bahá'í" msgstr "Bahá'í" #. Translators: Accuracy of user location information #: src/utils.js:248 msgid "Unknown" msgstr "Descoñecida" #. Translators: Accuracy of user location information #: src/utils.js:251 msgid "Exact" msgstr "Exacta" #. Translators: this is a duration with only hours, using #. * an abbreviation for hours, corresponding to 'h' in English #. #: src/utils.js:307 #, javascript-format msgid "%s h" msgstr "%s h" #. Translators: this is a duration with hours and minutes parts #. * using abbreviations for hours and minutes, corresponding to 'h' #. * and 'min' in English. The minutes has appropriate plural variations #. #: src/utils.js:313 #, javascript-format msgid "%s h %s min" msgid_plural "%s h %s min" msgstr[0] "%s h %s min" msgstr[1] "%s h %s min" #. Translators: this is a duration with minutes part #. * using abbreviation for minutes, corresponding to 'min' in English #. * with appropriate plural variations #. #: src/utils.js:320 #, javascript-format msgid "%s min" msgid_plural "%s min" msgstr[0] "%s min" msgstr[1] "%s min" #. Translators: this is a duration of less than one minute #. * with seconds using an abbreviation for seconds, corresponding to #. * 's' in English with appropriate plural forms #. #: src/utils.js:326 #, javascript-format msgid "%s s" msgid_plural "%s s" msgstr[0] "%s s" msgstr[1] "%s s" #. Translators: This is a distance measured in kilometers #: src/utils.js:337 #, javascript-format msgid "%s km" msgstr "%s km" #. Translators: This is a distance measured in meters #: src/utils.js:340 #, javascript-format msgid "%s m" msgstr "%s m" #. Translators: This is a distance measured in miles #: src/utils.js:348 #, javascript-format msgid "%s mi" msgstr "%s mi" #. Translators: This is a distance measured in feet #: src/utils.js:351 #, javascript-format msgid "%s ft" msgstr "%s pes" #: src/transitplugins/goMetro.js:61 msgid "This plugin doesn't support latest arrival" msgstr "Este engadido non admite a última chegada" #: src/transitplugins/openTripPlanner.js:1237 #: src/transitplugins/openTripPlanner2.js:266 #, javascript-format msgid "Continue on %s" msgstr "Continuar en %s" #: src/transitplugins/openTripPlanner.js:1242 #: src/transitplugins/openTripPlanner2.js:270 #, javascript-format msgid "Turn left on %s" msgstr "Xire á esquerda en %s" #: src/transitplugins/openTripPlanner.js:1244 #: src/transitplugins/openTripPlanner2.js:271 msgid "Turn left" msgstr "Xire á esquerda" #: src/transitplugins/openTripPlanner.js:1247 #: src/transitplugins/openTripPlanner2.js:275 #, javascript-format msgid "Turn slightly left on %s" msgstr "Xire lixeiramente á esquerda en %s" #: src/transitplugins/openTripPlanner.js:1249 #: src/transitplugins/openTripPlanner2.js:276 msgid "Turn slightly left" msgstr "Xire lixeiramente á esquerda" #: src/transitplugins/openTripPlanner.js:1252 #: src/transitplugins/openTripPlanner2.js:280 #, javascript-format msgid "Turn sharp left on %s" msgstr "Xire bruscamente á esquerda en %s" #: src/transitplugins/openTripPlanner.js:1254 #: src/transitplugins/openTripPlanner2.js:281 msgid "Turn sharp left" msgstr "Xire bruscamente á esquerda" #: src/transitplugins/openTripPlanner.js:1257 #: src/transitplugins/openTripPlanner2.js:284 #, javascript-format msgid "Turn right on %s" msgstr "Xire á dereita en %s" #: src/transitplugins/openTripPlanner.js:1259 #: src/transitplugins/openTripPlanner2.js:285 msgid "Turn right" msgstr "Xire á dereita" #: src/transitplugins/openTripPlanner.js:1262 #: src/transitplugins/openTripPlanner2.js:289 #, javascript-format msgid "Turn slightly right on %s" msgstr "Xire lixeiramente á dereita en %s" #: src/transitplugins/openTripPlanner.js:1264 #: src/transitplugins/openTripPlanner2.js:290 msgid "Turn slightly right" msgstr "Xire lixeiramente á dereita" #: src/transitplugins/openTripPlanner.js:1267 #: src/transitplugins/openTripPlanner2.js:294 #, javascript-format msgid "Turn sharp right on %s" msgstr "Xire bruscamente á dereita en %s" #: src/transitplugins/openTripPlanner.js:1269 #: src/transitplugins/openTripPlanner2.js:295 msgid "Turn sharp right" msgstr "Xire bruscamente á dereita" #: src/transitplugins/openTripPlanner.js:1275 #: src/transitplugins/openTripPlanner2.js:302 #, javascript-format msgid "At the roundabout, take exit %s" msgstr "Na rotonda, tome a saída %s" #: src/transitplugins/openTripPlanner.js:1277 #: src/transitplugins/openTripPlanner2.js:305 #, javascript-format msgid "At the roundabout, take exit to %s" msgstr "Na rotonda, tome a saída a %s" #: src/transitplugins/openTripPlanner.js:1279 #: src/transitplugins/openTripPlanner2.js:307 msgid "Take the roundabout" msgstr "Tome a rotonda" #: src/transitplugins/openTripPlanner.js:1283 #: src/transitplugins/openTripPlanner2.js:315 #, javascript-format msgid "Take the elevator and get off at %s" msgstr "Colla o ascensor e saia en %s" #: src/transitplugins/openTripPlanner.js:1285 #: src/transitplugins/openTripPlanner2.js:316 msgid "Take the elevator" msgstr "Colla o ascensor" #: src/transitplugins/openTripPlanner.js:1289 #: src/transitplugins/openTripPlanner2.js:320 #, javascript-format msgid "Make a left u-turn onto %s" msgstr "Faga un xiro en U cara %s" #: src/transitplugins/openTripPlanner.js:1291 #: src/transitplugins/openTripPlanner2.js:321 msgid "Make a left u-turn" msgstr "Faga un xiro en U" #: src/transitplugins/openTripPlanner.js:1294 #: src/transitplugins/openTripPlanner2.js:325 #, javascript-format msgid "Make a right u-turn onto %s" msgstr "Faga un xiro en U cara %s" #: src/transitplugins/openTripPlanner.js:1296 #: src/transitplugins/openTripPlanner2.js:326 msgid "Make a right u-turn" msgstr "Faga un xiro en U á dereita" #~ msgid "Sign in to edit maps" #~ msgstr "" #~ "Iniciar sesión para editar mapas" #~ msgid "" #~ "Sign in to authorize access in a web browser.\n" #~ "Then fill in the obtained verification code here in the next step." #~ msgstr "" #~ "Iniciar sesión para autorizar o acceso nun navegador web.\n" #~ "Logo complete o código de verificación obtido no seguinte paso." #~ msgid "Signed In" #~ msgstr "Sesión iniciada" #~ msgid "Sign up" #~ msgstr "Rexistrarse" #~ msgid "Filesystem is read only" #~ msgstr "O sistema de ficheiros é de só lectura" #~ msgid "You do not have permission to save there" #~ msgstr "Non ten permiso para gardar aquí" #~ msgid "The directory does not exist" #~ msgstr "O cartafol non existe" #~ msgid "No filename specified" #~ msgstr "Nome de ficheiro non especificado" #~ msgid "" #~ "Location was added to the map, note that it may take a while before it " #~ "shows on the map and in search results." #~ msgstr "" #~ "Engadiuse a localización ao mapa, teña en conta que pode tardar algún " #~ "tempo antes de que se mostre no mapa e nos resultados de busca." #~ msgid "Takeaway" #~ msgstr "Para levar" #~ msgid "Go to current location" #~ msgstr "Ir á localización actual" #~ msgid "Choose map type" #~ msgstr "Escolla o tipo de mapa" #~ msgid "Zoom in" #~ msgstr "Ampliar" #~ msgid "Drag to change order of the route" #~ msgstr "Arrastrar a orde de cambio de ruta" #~ msgid "A map application for GNOME" #~ msgstr "Unha aplicación de mapas para GNOME" #~| msgid "Failed to open layer" #~ msgid "Failed to authorize access" #~ msgstr "Produciuse un fallo ao autorizar o acceso" #~ msgid "Try again" #~ msgstr "Ténteo de novo" #~ msgid "Use hybrid aerial tiles" #~ msgstr "Usar teselas aéreas híbridas" #~ msgid "Whether aerial tiles should use hybrid style (with labels)." #~ msgstr "" #~ "Indica se as teselas aéreas deberían usar o estilo híbrido (con etiquetas)" #~ msgid "Include route and markers" #~ msgstr "Incluír rutas e marcadores" #~ msgid "Show Labels" #~ msgstr "Mostrar etiquetas" #~ msgid "Foursquare check-in privacy setting" #~ msgstr "Configuración de privacidade do rexistro de Foursquare" #~ msgid "" #~ "Latest used Foursquare check-in privacy setting. Possible values are: " #~ "public, followers or private." #~ msgstr "" #~ "Última configuración de privacidade do rexistro de Foursquare. Os valores " #~ "posíbeis son: public, followers ou private." #~ msgid "Foursquare check-in Facebook broadcasting" #~ msgstr "Difusión en Facebook do rexistro de Foursquare" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a post in the " #~ "Facebook account associated with the Foursquare account." #~ msgstr "" #~ "Indica se Foursquare debe difundir o rexistro como un mensaxe novo na " #~ "conta de Facebook asociada coa de Foursquare." #~ msgid "Foursquare check-in Twitter broadcasting" #~ msgstr "Difusión en Twitter do rexistro de Foursquare" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a tweet in the " #~ "Twitter account associated with the Foursquare account." #~ msgstr "" #~ "Indica se Foursquare debe difundir o rexistro como un chío novo na conta " #~ "de Twitter asociada coa de Foursquare." #~ msgid "Visibility" #~ msgstr "Visibilidade" #~ msgid "Post on Facebook" #~ msgstr "Enviar a Facebook" #~ msgid "Post on Twitter" #~ msgstr "Enviar a Twitter" #~ msgid "C_heck in" #~ msgstr "_Rexistrar" #~ msgid "Public" #~ msgstr "Público" #~ msgid "Private" #~ msgstr "Privado" #~ msgid "Maps is offline!" #~ msgstr "Mapas está desconectado!" #~ msgid "" #~ "Maps need an active internet connection to function properly, but one " #~ "can’t be found." #~ msgstr "" #~ "Mapa precisa unha conexión a internet activa para funcionar " #~ "correctamente, pero non se atopou ningunha." #~ msgid "Check your connection and proxy settings." #~ msgstr "Comprobe a súa conexión ou preferencias do seu proxy." #~ msgid "Password" #~ msgstr "Contrasinal" #~ msgid "" #~ "Sorry, that didn’t work. Please try again, or visit\n" #~ "OpenStreetMap to reset your password." #~ msgstr "" #~ "Isto non funcionou. Ténteo de novo ou visite\n" #~ "OpenStreetMap para restabelecer o seu contrasinal." #~ msgid "Check In…" #~ msgstr "Rexistrarse…" #~ msgid "Ignore network availability" #~ msgstr "Ignorar a dispoñibilidade da rede" #~ msgid "Select an account" #~ msgstr "Seleccione unha conta" #~ msgid "Loading" #~ msgstr "Cargando" #~ msgid "Select a place" #~ msgstr "Seleccione un lugar" #~ msgid "" #~ "Maps cannot find the place to check in to with Foursquare. Please select " #~ "one from this list." #~ msgstr "" #~ "Mapas non pode atopar un lugar onde rexistrarse con Foursquare. Por favor " #~ "seleccione un desde a lista." #, javascript-format #~ msgid "Check in to %s" #~ msgstr "Rexistrarse en %s" #, javascript-format #~ msgid "Write an optional message to check in to %s." #~ msgstr "Escriba unha mensaxe opcional para rexistrarse en %s." #, javascript-format #~ msgid "Cannot find “%s” in the social service" #~ msgstr "Non se pode atopar «%s» no servizo social" #~ msgid "Cannot find a suitable place to check-in in this location" #~ msgstr "" #~ "Non é posíbel atopar un lugar axeitado para rexistrarse nesta localización" #~ msgid "" #~ "Credentials have expired, please open Online Accounts to sign in and " #~ "enable this account" #~ msgstr "" #~ "As súas credenciais expiraron, abra as «Contas en liña» para iniciar " #~ "sesión e activar esta conta" #~ msgid "GNOME Maps" #~ msgstr "Mapas de GNOME" #~ msgid "Night mode" #~ msgstr "Modo noite" #~ msgid "Whether the application is in night mode." #~ msgstr "Indica se a aplicación está en modo noite." #~ msgid "Night Mode" #~ msgstr "Modo noite" #~ msgid "" #~ "You can even search for specific types of locations, such as “Pubs near " #~ "Main Street, Boston” or “Hotels near Alexanderplatz, Berlin”." #~ msgstr "" #~ "Incluso pode buscar por tipos de localizacións específicos como «Bares " #~ "cerca de Rúa Nova, Compostela» ou «Puntos Wifi cerca de Praza de Galiza, " #~ "Vilagarcía»." #~ msgid "Facebook check-in privacy setting" #~ msgstr "Configuración de privacidade do rexistro de Facebook" #~ msgid "" #~ "Latest used Facebook check-in privacy setting. Possible values are: " #~ "EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS or SELF." #~ msgstr "" #~ "Última configuración de privacidade do rexistro de Facebook. Os valores " #~ "posíbeis son: EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS ou SELF." #~ msgid "Everyone" #~ msgstr "Todos" #~ msgid "Friends of friends" #~ msgstr "Amigos de amigos" #~ msgid "Just friends" #~ msgstr "Só amigos" #~ msgid "Just me" #~ msgstr "Só eu" #~ msgid "" #~ "Maps cannot find the place to check in to with Facebook. Please select " #~ "one from this list." #~ msgstr "" #~ "Mapas non pode atopar un lugar onde rexistrarse con Facebook. Por favor " #~ "seleccione un desde a lista." #~| msgid "Print Route" #~ msgid "Find a Route" #~ msgstr "Buscar unha ruta" #~ msgid "Check in here" #~ msgstr "Rexistrarse aquí" #~ msgid "Population:" #~ msgstr "Poboación:" #~ msgid "Altitude:" #~ msgstr "Altitude:" #~ msgid "Opening hours:" #~ msgstr "Horario de apertura:" #~ msgid "Internet access:" #~ msgstr "Acceso a internet:" #~ msgid "Toilets:" #~ msgstr "Baño:" #~ msgid "Wheelchair access:" #~ msgstr "Acceso con cadeira de rodas:" #~ msgid "Phone:" #~ msgstr "Teléfono:" #~ msgid "yes" #~ msgstr "sí" #~ msgid "limited" #~ msgstr "limitado" #~ msgid "no" #~ msgstr "non" #~ msgid "designated" #~ msgstr "designado" #~ msgid "OpenStreetMap URL is not valid" #~ msgstr "O URL de OpenStreetMap non é válido" #~ msgctxt "time range list" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgctxt "time range list" #~ msgid "%s %s %s" #~ msgstr "%s %s %s" #~ msgctxt "time range component" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgid "wired" #~ msgstr "con fíos" #~ msgid "terminal" #~ msgstr "terminal" #~ msgid "service" #~ msgstr "servizo" #~ msgid "Don’t have an account?" #~ msgstr "Non ten unha conta?" #~ msgid "%f h" #~ msgstr "%f h" #~ msgid "%f min" #~ msgstr "%f min" #~ msgid "%f s" #~ msgstr "%f s" #~ msgid "Add destination" #~ msgstr "Engadir destino" 070701000001C6000081A40000000000000000000000016641340900011335000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/he.po# Hebrew translations for gnome-maps package. # Copyright (C) 2013 THE gnome-maps'S COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-maps package. # יוסף אור בוצ׳קו , 2013. # Yosef Or Boczko , 2013-2023. # msgid "" msgstr "" "Project-Id-Version: gnome-maps 3.9.91\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2024-02-14 22:30+0000\n" "PO-Revision-Date: 2024-02-16 23:31+0200\n" "Last-Translator: Yaron Shahrabani \n" "Language-Team: Hebrew \n" "Language: he\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n==1 ? 0 : n==2 ? 1 : n>10 && n%10==0 ? " "2 : 3);\n" "X-Generator: Poedit 3.4.1\n" #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.appdata.xml.in.in:6 data/org.gnome.Maps.desktop.in.in:4 #: data/ui/main-window.ui:27 src/application.js:64 src/mainWindow.js:147 #: src/mainWindow.js:647 msgid "Maps" msgstr "מפות" #: data/org.gnome.Maps.appdata.xml.in.in:7 msgid "Find places around the world" msgstr "איתור מקומות מסביב לעולם" #: data/org.gnome.Maps.appdata.xml.in.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "מפות נותן לך גישה מהירה למפות על פני כל העולם. הוא מאפשר לך למצוא במהירות את " "המקום שאתה מחפש באמצעות חיפוש עיר או רחוב, או לאתר מקום לפגישת חבר." #: data/org.gnome.Maps.appdata.xml.in.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "מפות משתמש במסד הנתונים השיתופי OpenStreetMap, שנוצר על ידי מאות אלפי אנשים " "על פני כדור הארץ." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Maps.appdata.xml.in.in:451 src/mainWindow.js:644 msgid "The GNOME Project" msgstr "מיזם GNOME" #: data/org.gnome.Maps.desktop.in.in:5 msgid "A simple maps application" msgstr "יישום מפות פשוט" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in.in:14 msgid "Maps;" msgstr "מפות;מפה;maps;Maps;" #: data/org.gnome.Maps.desktop.in.in:17 msgid "Allows your location to be shown on the map." msgstr "מאפשר למיקום שלך להיראות על המפה." #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "המקום האחרון שנצפה" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "נקודות הציון של המקום האחרון שנצפה." #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "תקריב" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "רמת תקריב" #: data/org.gnome.Maps.gschema.xml:21 msgid "rotation" msgstr "סיבוב" #: data/org.gnome.Maps.gschema.xml:22 msgid "Map rotation in radians" msgstr "סיבוב מפה ברדיאנים" #: data/org.gnome.Maps.gschema.xml:26 msgid "Map type" msgstr "סוג מפה" #: data/org.gnome.Maps.gschema.xml:27 msgid "The type of map to display (street, aerial, etc.)" msgstr "סוג המפה להצגה (רחוב, אווירית וכו׳)" #: data/org.gnome.Maps.gschema.xml:31 msgid "Window size" msgstr "גודל החלון" #: data/org.gnome.Maps.gschema.xml:32 msgid "Window size (width and height)." msgstr "גודל החלון (רוחב וגובה)." #: data/org.gnome.Maps.gschema.xml:36 msgid "Window position" msgstr "מיקום החלון" #: data/org.gnome.Maps.gschema.xml:37 msgid "Window position (X and Y)." msgstr "מיקום החלון (X ו־Y)." #: data/org.gnome.Maps.gschema.xml:41 msgid "Window maximized" msgstr "חלון מוגדל" #: data/org.gnome.Maps.gschema.xml:42 msgid "Window maximization state" msgstr "מצב חלון מוגדל" #: data/org.gnome.Maps.gschema.xml:46 msgid "Maximum number of search results" msgstr "מספר תוצאות החיפוש המרבי" #: data/org.gnome.Maps.gschema.xml:47 msgid "Maximum number of search results from geocode search." msgstr "מספר תוצאות החיפוש המרבי בחיפוש קודים גאוגרפיים (geocodes)." #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent places to store" msgstr "מספר המקומות האחרונים לשמירה" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited places to store." msgstr "מספר המקומות האחרונים בהם ביקרת לשמירה." #: data/org.gnome.Maps.gschema.xml:56 msgid "Number of recent routes to store" msgstr "מספר הנתיבים האחרונים לשמירה" #: data/org.gnome.Maps.gschema.xml:57 msgid "Number of recently visited routes to store." msgstr "מספר הנתיבים האחרונים בהם ביקרת לשמירה." #: data/org.gnome.Maps.gschema.xml:61 msgid "OpenStreetMap username or email address" msgstr "שם משתמש או כתובת דוא״ל ב־OpenStreetMap" #: data/org.gnome.Maps.gschema.xml:62 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "מציין האם המשתמש נכנס כדי לערוך נתוני OpenStreetMap." #: data/org.gnome.Maps.gschema.xml:66 msgid "Last used transportation type for routing" msgstr "סוג התחבורה האחרונה לניווט" #: data/org.gnome.Maps.gschema.xml:70 msgid "Show scale" msgstr "הצגת קנה מידה" #: data/org.gnome.Maps.gschema.xml:71 msgid "Whether to show the scale." msgstr "האם להציג את קנה המידה." #: data/ui/context-menu.ui:6 msgid "Route from Here" msgstr "מסלול מכאן" #: data/ui/context-menu.ui:10 msgid "Add Intermediate Destination" msgstr "הוספת יעד ביניים" #: data/ui/context-menu.ui:14 msgid "Route to Here" msgstr "מסלול לכאן" #: data/ui/context-menu.ui:20 msgid "What's Here?" msgstr "מה יש כאן?" #: data/ui/context-menu.ui:24 msgid "Copy Location" msgstr "העתקת מיקום" #: data/ui/context-menu.ui:28 msgid "Add to OpenStreetMap…" msgstr "הוספה ל־OpenStreetMap…" #: data/ui/export-view-dialog.ui:7 msgid "Export view" msgstr "תצוגת ייצוא" #: data/ui/export-view-dialog.ui:16 data/ui/send-to-dialog.ui:10 #: data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "_ביטול" #: data/ui/export-view-dialog.ui:26 msgid "_Export" msgstr "יי_צוא" #. Translators: This is a tooltip #: data/ui/favorite-list-row.ui:72 msgid "Remove Favorite" msgstr "הסרה מהמועדפים" #: data/ui/favorites-popover.ui:11 msgid "No Favorites" msgstr "אין מועדפים" #: data/ui/favorites-popover.ui:12 msgid "Add places to your favorites to get them listed here" msgstr "ניתן להוסיף מקומות למועדפים שלך כדי שיופיעו כאן" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:11 src/geoclue.js:106 msgid "Current Location" msgstr "מיקום נוכחי" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:19 msgid "Layers" msgstr "שכבות" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:11 msgid "Print Route" msgstr "הדפסת מסלול" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:21 msgid "Favorites" msgstr "מועדפים" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:30 msgid "Route Planner" msgstr "תכנון מסלול" #: data/ui/help-overlay.ui:12 msgctxt "shortcut window" msgid "General" msgstr "כללי" #: data/ui/help-overlay.ui:15 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "הצגת צירופי מקשים" #: data/ui/help-overlay.ui:21 msgctxt "shortcut window" msgid "Search" msgstr "חיפוש" #: data/ui/help-overlay.ui:27 msgctxt "shortcut window" msgid "Explore points-of-interest" msgstr "חקירת נקודת עניין" #: data/ui/help-overlay.ui:33 msgctxt "shortcut window" msgid "Show last search results" msgstr "הצגת תוצאות החיפוש האחרון" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "הצגת/הסתרת מתכנן מסלול" #: data/ui/help-overlay.ui:45 msgctxt "shortcut window" msgid "Print route" msgstr "הדפסת מסלול" #: data/ui/help-overlay.ui:51 msgctxt "shortcut window" msgid "Quit" msgstr "יציאה" #: data/ui/help-overlay.ui:57 msgctxt "shortcut window" msgid "Open main menu" msgstr "פתיחת התפריט הראשי" #: data/ui/help-overlay.ui:65 msgctxt "shortcut window" msgid "Map View" msgstr "תצוגת מפה" #: data/ui/help-overlay.ui:68 msgctxt "shortcut window" msgid "Zoom in" msgstr "התקרבות" #: data/ui/help-overlay.ui:74 msgctxt "shortcut window" msgid "Zoom out" msgstr "התרחקות" #: data/ui/help-overlay.ui:80 msgctxt "shortcut window" msgid "Rotate clockwise" msgstr "סיבוב עם כיוון השעון" #: data/ui/help-overlay.ui:86 msgctxt "shortcut window" msgid "Rotate counter-clockwise" msgstr "סיבוב נגד כיוון השעון" #: data/ui/help-overlay.ui:92 msgctxt "shortcut window" msgid "Reset rotation" msgstr "איפוס הסביבו" #: data/ui/help-overlay.ui:98 msgctxt "shortcut window" msgid "Toggle scale" msgstr "הצגת סרגל קנה מידה" #: data/ui/help-overlay.ui:104 msgctxt "shortcut window" msgid "Go to current location" msgstr "מעבר למיקום הנוכחי" #: data/ui/help-overlay.ui:114 msgctxt "shortcut window" msgid "Switch to street view" msgstr "מעבר לתצוגת רחוב" #: data/ui/help-overlay.ui:121 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "מעבר לתצוגה אווירית" #: data/ui/help-overlay.ui:127 msgctxt "shortcut window" msgid "Open shape layer" msgstr "לפתוח שכבת צורות" #: data/ui/layers-popover.ui:7 msgid "Show Scale" msgstr "הצגת קנה מידה" #: data/ui/layers-popover.ui:16 msgid "Enable Experimental Map" msgstr "לאפשר מפה ניסיונית" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:21 msgid "Open Shape Layer…" msgstr "לפתוח שכבת צורות…" #: data/ui/main-window.ui:8 msgid "Set up OpenStreetMap Account…" msgstr "הגדרת חשבון OpenStreetMap…" #: data/ui/main-window.ui:12 msgid "Export as Image…" msgstr "ייצוא כתמונה…" #: data/ui/main-window.ui:17 msgid "_Keyboard Shortcuts" msgstr "_צירופי מקשים" #: data/ui/main-window.ui:22 msgid "About Maps" msgstr "על תכנית המפות" #: data/ui/main-window.ui:48 msgid "Main Menu" msgstr "תפריט ראשי" #: data/ui/osm-account-dialog.ui:5 msgid "OpenStreetMap Account" msgstr "חשבון OpenStreetMap" #: data/ui/osm-account-dialog.ui:31 msgid "Sign In To Edit Maps" msgstr "יש להיכנס כדי לערוך מפות" #: data/ui/osm-account-dialog.ui:32 msgid "Help to improve the map, using an OpenStreetMap account." msgstr "עזרה בשיפור המפה, באמצעות חשבון OpenStreetMap." #: data/ui/osm-account-dialog.ui:36 msgid "Sign In" msgstr "כניסה" #: data/ui/osm-account-dialog.ui:59 msgid "Verification" msgstr "אימות" #: data/ui/osm-account-dialog.ui:60 msgid "" "Copy the verification code shown when authorizing access in the browser." msgstr "יש להעתיק את קוד האימות המוצג במתן גישה בדפדפן." #: data/ui/osm-account-dialog.ui:69 msgid "Verification Code" msgstr "קוד אימות" #: data/ui/osm-account-dialog.ui:75 msgid "Verify" msgstr "אימות" #: data/ui/osm-account-dialog.ui:110 msgid "Signed In" msgstr "נכנסת" #: data/ui/osm-account-dialog.ui:111 msgid "Your OpenStreetMap account is active." msgstr "חשבון ה־OpenStreetMap שלך פעיל." #: data/ui/osm-account-dialog.ui:129 msgid "Sign Out" msgstr "יציאה" #: data/ui/osm-edit-address.ui:11 msgid "Street" msgstr "רחוב" #: data/ui/osm-edit-address.ui:22 msgid "House number" msgstr "מספר בית" #: data/ui/osm-edit-address.ui:33 msgid "Postal code" msgstr "מיקוד" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:44 msgid "City" msgstr "עיר" #: data/ui/osm-edit-dialog.ui:8 msgctxt "dialog title" msgid "Edit on OpenStreetMap" msgstr "עריכה ב־OpenStreetMap" #: data/ui/osm-edit-dialog.ui:57 msgid "Type" msgstr "סוג" #: data/ui/osm-edit-dialog.ui:79 msgid "None" msgstr "ללא" #: data/ui/osm-edit-dialog.ui:108 msgid "Add Field" msgstr "הוספת שדה" #: data/ui/osm-edit-dialog.ui:130 msgid "Comment" msgstr "הערות" #: data/ui/osm-edit-dialog.ui:158 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "שינויים במפה יופיעו בכל המפות המשתמשות\n" "במידע מ־OpenStreetMap." #: data/ui/osm-edit-dialog.ui:186 msgid "Recently Used" msgstr "בשימוש לאחרונה" #: data/ui/osm-edit-dialog.ui:225 src/mapView.js:663 msgid "Cancel" msgstr "ביטול" #: data/ui/osm-edit-dialog.ui:238 src/osmEditDialog.js:531 msgid "Next" msgstr "הבא" #: data/ui/osm-edit-wikipedia.ui:8 msgid "Article" msgstr "ערך" #: data/ui/osm-edit-wikipedia.ui:21 msgid "Wikidata tag" msgstr "תג וויקינתונים" #: data/ui/osm-edit-wikipedia.ui:32 msgid "Load Wikidata tag for article" msgstr "טעינת תגית וויקינתונים לערך" #: data/ui/place-popover.ui:23 src/searchBar.js:55 msgid "Explore Nearby Places" msgstr "לחקור מקומות סמוכים" #: data/ui/place-popover.ui:82 src/application.js:277 msgid "No results found" msgstr "לא נמצאו תוצאות" #: data/ui/place-popover.ui:92 src/application.js:255 msgid "An error has occurred" msgstr "התרחשה שגיאה" #. Translators: This is a tooltip #: data/ui/route-entry.ui:12 msgid "Change Route Order" msgstr "שינוי כיוון מסלול" #: data/ui/send-to-dialog.ui:7 msgid "Open Location" msgstr "לפתוח את המיקום" #: data/ui/send-to-dialog.ui:64 msgid "Copy" msgstr "העתקה" #: data/ui/send-to-dialog.ui:70 msgid "Send To…" msgstr "לשלוח אל…" #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:62 msgid "Open Shape Layer" msgstr "לפתוח שכבת צורות" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "_פתיחה" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:32 msgid "Toggle visible" msgstr "הצגה" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:44 msgid "Remove Shape Layer" msgstr "למחוק שכבת צורות" #: data/ui/sidebar.ui:207 msgid "Route search by GraphHopper" msgstr "חיפוש מסלולים באמצעות GraphHopper" #: data/ui/sidebar.ui:272 msgid "" "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of " "transportation,\n" "e.g. a national provider might not include airlines, and a local provider " "could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" "הרכבת מסלולי הנסיעה בתחבורה הציבורית מסופקת על ידי שירותי‬\n" "‫צד־שלישי.‬\n" "‫ל־GNOME אין אפשרות לאמת את תוקף המידע של המסלולים ולוחות הזמנים המופיעים.‬\n" "‫נא לשים לב שחלק מהספקים עשויים לא לכלול את כל תצורות התחבורה הזמינות,‬\n" "‫למשל ספק לאומי עשוי שלא לכלול קווי תעופה וספק מקומי יכול לפספס רכבות " "אזוריות.‬\n" "‫יש להתייחס לשמות ולמותגים כסימני מסחר רשומים בהתאם לצרכים." #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:98 msgid "Hide intermediate stops and information" msgstr "להסתיר מידע ותחנות ביניים" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:156 msgid "Show intermediate stops and information" msgstr "להציג מידע ותחנות ביניים" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:16 msgid "Leave Now" msgstr "לצאת כעת" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:17 msgid "Leave By" msgstr "לצאת עד" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:18 msgid "Arrive By" msgstr "להגיע עד" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:85 msgid "Show" msgstr "הצגה" #: data/ui/transit-options-panel.ui:95 msgid "Buses" msgstr "אוטובוסים" #: data/ui/transit-options-panel.ui:101 msgid "Trams" msgstr "חשמליות" #: data/ui/transit-options-panel.ui:107 msgid "Trains" msgstr "רכבות" #: data/ui/transit-options-panel.ui:113 msgid "Subway" msgstr "רכבת תחתית" #: data/ui/transit-options-panel.ui:119 msgid "Ferries" msgstr "מעבורות" #: data/ui/transit-options-panel.ui:125 msgid "Airplanes" msgstr "מטוסים" #. Translators: This is a tooltip #: data/ui/place-bar.ui:33 data/ui/place-buttons.ui:27 msgid "Share Location" msgstr "שיתוף מיקום" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:11 msgid "Add to new route" msgstr "הוספה למסלול חדש" #. Translators: This is the button to find a route to a place #: data/ui/place-buttons.ui:15 msgid "Directions" msgstr "הנחיות" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:36 msgid "Mark as Favorite" msgstr "סימון כמועדף" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:44 msgid "Edit on OpenStreetMap" msgstr "עריכה ב־OpenStreetMap" #. Translators: This is a tooltip #: data/ui/place-view.ui:52 msgid "Share location" msgstr "שיתוף מיקום" #: data/ui/poi-category-goback-row.ui:22 msgid "Back to Main Categories" msgstr "חזרה לקטגוריות הראשיות" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:19 msgid "Reset Rotation" msgstr "איפוס הסיבוב" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:32 msgid "Zoom Out" msgstr "התרחקות" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:43 src/mapView.js:1238 msgid "Zoom In" msgstr "התקרבות" #: lib/maps-file-data-source.c:262 lib/maps-file-data-source.c:338 #: lib/maps-file-data-source.c:418 msgid "Failed to find tile structure in directory" msgstr "חיפוש מבנה אריח בתיקייה נכשל" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "ניתוח מסמך XML נכשל" #: lib/maps-osm.c:250 lib/maps-osm.c:403 msgid "Missing required attributes" msgstr "חסרות תכונות חיוניות" #: lib/maps-osm.c:451 lib/maps-osm.c:494 msgid "Could not find OSM element" msgstr "לא ניתן למצוא רכיב OSM" #: lib/maps-osm.c:508 msgid "Could not find user element" msgstr "לא ניתן למצוא רכיב משתמש" #: src/application.js:78 msgid "A path to a local tiles directory structure" msgstr "נתיב למבנה תיקיות אריחים מקומי" #: src/application.js:84 msgid "Tile size for local tiles directory" msgstr "גודל תיקיית האריחים המקומית" #: src/application.js:88 msgid "Show the version of the program" msgstr "להציג את גרסת התכנית" #: src/application.js:94 msgid "Search for places" msgstr "חיפוש מקומות" #: src/application.js:105 src/application.js:106 msgid "[FILE…|URI]" msgstr "[קובץ…|כתובת]" #: src/application.js:284 #, javascript-format msgid "Invalid maps: URI: %s" msgstr "מפות שגויות: URI: ‏%s" #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:75 #, javascript-format msgid "Maps at %f, %f.png" msgstr "מפות ב־%f,‏ %f.png" #: src/exportViewDialog.js:174 msgid "Unable to export view" msgstr "לא ניתן לייצא תצוגה" #: src/favoriteListRow.js:42 msgid "Favorite removed" msgstr "הוסר מהמועדפים" #: src/favoriteListRow.js:43 msgid "Undo" msgstr "ביטול" #: src/geoJSONSource.js:73 msgid "invalid coordinate" msgstr "נקודת ציון לא חוקית" #: src/geoJSONSource.js:126 src/geoJSONSource.js:166 src/geoJSONSource.js:181 msgid "parse error" msgstr "שגיאת ניתוח" #: src/geoJSONSource.js:160 msgid "unknown geometry" msgstr "שגיאה הנדסית" #: src/graphHopper.js:101 src/transitPlan.js:175 msgid "Route request failed." msgstr "בקשת המסלול נכשלה." #: src/graphHopper.js:108 src/transitPlan.js:167 msgid "No route found." msgstr "לא נמצא מסלול." #: src/graphHopper.js:195 src/transitplugins/openTripPlanner.js:1163 msgid "Start!" msgstr "להתחיל!" #: src/mainWindow.js:59 msgid "All Layer Files" msgstr "כל שכבות הקבצים" #: src/mainWindow.js:522 msgid "Failed to connect to location service" msgstr "ההתחברות לשרת האיכון נכשלה" #: src/mainWindow.js:527 msgid "Turn on location services" msgstr "הפעלת שירותי איכון" #: src/mainWindow.js:528 msgid "Location Settings" msgstr "הגדרות מיקום" #: src/mainWindow.js:645 msgid "translator-credits" msgstr "" "יוסף אור בוצ׳קו \n" "מיזם תרגום GNOME לעברית https://l10n.gnome.org/teams/he/" #: src/mainWindow.js:649 msgid "Copyright © 2011 – 2023 Red Hat, Inc. and The GNOME Maps authors" msgstr "" "כל הזכויות שמורות © 2011 – 2023 ל־Red Hat בע״מ וליוצרי תכנית המפות של GNOME" #: src/mainWindow.js:665 #, javascript-format msgid "Map data by %s and contributors" msgstr "נתוני המפה באדיבות %s והמתנדבים במיזם" #: src/mainWindow.js:666 msgid "Map Data Provider" msgstr "ספק מידע המפה" #: src/mainWindow.js:678 msgid "Map Tile Provider" msgstr "ספק אריחי המפה" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:686 #, javascript-format msgid "Map tiles provided by %s" msgstr "אריחי המפה סופקו על ידי %s" #: src/mainWindow.js:716 msgid "Search Provider" msgstr "ספק חיפוש" #: src/mainWindow.js:719 #, javascript-format msgid "Search provided by %s using %s" msgstr "החיפוש סופק על ידי %s בעזרת %s" #: src/mapView.js:637 src/mapView.js:702 msgid "Failed to open layer" msgstr "פתיחת שכבה נכשלה" #: src/mapView.js:656 msgid "Do you want to continue?" msgstr "להמשיך?" #: src/mapView.js:657 #, javascript-format msgid "" "You are about to open files with a total size of %s MB. This could take some " "time to load" msgstr "פעולה זו תפתח קבצים בגודל כולל של %s מ״ב. הטעינה עשויה לארוך זמן מה" #: src/mapView.js:664 src/transitplugins/openTripPlanner.js:1239 #: src/transitplugins/openTripPlanner2.js:267 msgid "Continue" msgstr "להמשיך" #: src/mapView.js:696 msgid "File type is not supported" msgstr "סוג הקובץ אינו נתמך" #: src/mapView.js:733 msgid "Failed to open GeoURI" msgstr "פתיחת GeoURI נכשלה" #: src/mapView.js:1197 msgid "Nothing found here!" msgstr "לא נמצא כאן דבר!" #: src/mapView.js:1237 msgid "Zoom in to add location" msgstr "יש להתקרב כדי להוסיף מיקום" #: src/mapView.js:1258 msgid "Location was added in OpenStreetMap" msgstr "המקום נוסף ב־OpenStreetMap" #. switch back to the sign-in view, and show a toast indicating #. that verification failed #: src/osmAccountDialog.js:134 msgid "The verification code didn’t match, please try again." msgstr "קוד האימות לא מתאים, נא לנסות שוב." #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:335 msgid "Incorrect user name or password" msgstr "שם משתמש או ססמה לא נכונים" #: src/osmConnection.js:337 msgid "Success" msgstr "הצלחה" #: src/osmConnection.js:339 msgid "Bad request" msgstr "בקשה שגויה" #: src/osmConnection.js:341 msgid "Object not found" msgstr "עצם לא נמצא" #: src/osmConnection.js:343 msgid "Conflict, someone else has just modified the object" msgstr "התנגשות, מישהו אחר שינה את העצם זה עתה" #: src/osmConnection.js:345 msgid "Object has been deleted" msgstr "העצם נמחק" #: src/osmConnection.js:347 msgid "Way or relation refers to non-existing children" msgstr "נתיב או יחס מפנה לצאצאים לא קיימים" #: src/osmEditDialog.js:106 msgid "Name" msgstr "שם" #: src/osmEditDialog.js:109 msgid "The official name. This is typically what appears on signs." msgstr "השם הרשמי. זה בדרך כלל מה שמופיע על השילוטים." #: src/osmEditDialog.js:112 msgid "Address" msgstr "כתובת" #: src/osmEditDialog.js:120 src/placeView.js:275 msgid "Website" msgstr "אתר אינטרנט" #: src/osmEditDialog.js:124 msgid "This is not a valid URL. Make sure to include http:// or https://." msgstr "זו אינה כתובת תקפה. נא לוודא שכללת את התחיליות http://‎ או https://‎." #: src/osmEditDialog.js:125 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" "אתר האינטרנט הרשמי. יש לנסות להשתמש בצורה הבסיסית ביותר של הכתובת. למשל " "http://example.com במקום http://example.com/index.html." #: src/osmEditDialog.js:130 msgid "Phone" msgstr "טלפון" #: src/osmEditDialog.js:134 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" "מספר טלפון. יש להשתמש בתבנית בינלאומית, המתחיל עם סימן פלוס +. יש להיזהר " "מחוקי הפרטיות, בפרט עבור מספרי טלפון פרטיים." #: src/osmEditDialog.js:139 msgid "E-mail" msgstr "דוא״ל" #: src/osmEditDialog.js:144 msgid "" "This is not a valid email address. Make sure to not include the mailto: " "protocol prefix." msgstr "זו אינה כתובת דוא״ל תקפה. נא לוודא שלא הוספת את הקידומת mailto:‎." #: src/osmEditDialog.js:145 msgid "" "Contact email address for inquiries. Add only email addresses that are " "intended to be publicly used." msgstr "דוא״ל יצירת קשר לשאלות. נא להוסיף כתובות שמיועדות לשימוש הציבור בלבד." #. Translators: This is the text for the "Wikipedia" link at the end #. of summaries #: src/osmEditDialog.js:149 src/placeView.js:727 msgid "Wikipedia" msgstr "ויקיפדיה" #: src/osmEditDialog.js:156 src/placeView.js:399 msgid "Opening hours" msgstr "שעות פתיחה" #: src/osmEditDialog.js:161 msgid "See the link in the label for help on format." msgstr "ניתן לקבל עזרה עבור התבנית בקישור בתווית." #. TODO: this is a bit of a work-around to re-interpret the population, #. * stored as a string into an integer to convert back to a locale- #. * formatted string. Ideally it should be kept as an integer value #. * in the Place class. But this will also need to be handled by the #. * PlaceStore, possible in a backwards-compatible way #. #: src/osmEditDialog.js:164 src/placeView.js:509 msgid "Population" msgstr "אוכלוסיה" #: src/osmEditDialog.js:169 src/placeView.js:538 msgid "Altitude" msgstr "גובה" #: src/osmEditDialog.js:172 msgid "Elevation (height above sea level) of a point in meters." msgstr "גובה (גובה מעל פני הים) של נקודה במטרים." #: src/osmEditDialog.js:175 msgid "Wheelchair access" msgstr "נגישות נכים" #: src/osmEditDialog.js:178 src/osmEditDialog.js:187 src/osmEditDialog.js:198 #: src/osmEditDialog.js:233 msgid "Yes" msgstr "יש" #: src/osmEditDialog.js:179 src/osmEditDialog.js:188 src/osmEditDialog.js:199 #: src/osmEditDialog.js:234 msgid "No" msgstr "אין" #: src/osmEditDialog.js:180 msgid "Limited" msgstr "מוגבל" #: src/osmEditDialog.js:181 msgid "Designated" msgstr "מובנה" #: src/osmEditDialog.js:184 msgid "Internet access" msgstr "גישה לאינטרנט" #: src/osmEditDialog.js:189 msgid "Wi-Fi" msgstr "רשת אלחוטית" #: src/osmEditDialog.js:190 msgid "Wired" msgstr "רשת קווית" #: src/osmEditDialog.js:191 msgid "Terminal" msgstr "מסוף" #: src/osmEditDialog.js:192 msgid "Service" msgstr "שרת" #: src/osmEditDialog.js:195 msgid "Takeout" msgstr "לקחת וללכת" #: src/osmEditDialog.js:200 msgid "Only" msgstr "בלבד" #: src/osmEditDialog.js:203 msgid "Religion" msgstr "דת" #: src/osmEditDialog.js:206 src/translations.js:286 msgid "Animism" msgstr "אנימיזם" #: src/osmEditDialog.js:207 msgid "Bahá’í" msgstr "בהאית" #: src/osmEditDialog.js:208 src/translations.js:288 msgid "Buddhism" msgstr "בודהיזם" #: src/osmEditDialog.js:209 src/translations.js:289 msgid "Caodaism" msgstr "קאודאיזם" #: src/osmEditDialog.js:210 src/translations.js:290 msgid "Christianity" msgstr "נצרות" #: src/osmEditDialog.js:211 src/translations.js:291 msgid "Confucianism" msgstr "קונפוציוסיזם" #: src/osmEditDialog.js:212 src/translations.js:292 msgid "Hinduism" msgstr "הינדואיזם" #: src/osmEditDialog.js:213 src/translations.js:293 msgid "Jainism" msgstr "ג׳ייניזם" #: src/osmEditDialog.js:214 src/translations.js:294 msgid "Judaism" msgstr "יהדות" #: src/osmEditDialog.js:215 src/translations.js:295 msgid "Islam" msgstr "אסלאם" #: src/osmEditDialog.js:216 src/translations.js:296 msgid "Multiple Religions" msgstr "מגוון דתות" #: src/osmEditDialog.js:217 src/translations.js:297 msgid "Paganism" msgstr "פגניות" #: src/osmEditDialog.js:218 src/translations.js:298 msgid "Pastafarianism" msgstr "פסטפריאניזם" #: src/osmEditDialog.js:219 src/translations.js:299 msgid "Scientology" msgstr "סיינטולוגיה" #: src/osmEditDialog.js:220 src/translations.js:300 msgid "Shinto" msgstr "שינטו" #: src/osmEditDialog.js:221 src/translations.js:301 msgid "Sikhism" msgstr "סיקיזם" #: src/osmEditDialog.js:222 src/translations.js:302 msgid "Spiritualism" msgstr "ספיריטואליזם" #: src/osmEditDialog.js:223 src/translations.js:303 msgid "Taoism" msgstr "דאואיזם" #: src/osmEditDialog.js:224 src/translations.js:304 msgid "Unitarian Universalism" msgstr "אוניברסליזם אוניטריאני" #: src/osmEditDialog.js:225 src/translations.js:305 msgid "Voodoo" msgstr "וודו" #: src/osmEditDialog.js:226 src/translations.js:306 msgid "Yazidism" msgstr "יזידיזם" #: src/osmEditDialog.js:227 src/translations.js:307 msgid "Zoroastrianism" msgstr "זורואסטריות" #: src/osmEditDialog.js:230 src/poiCategories.js:176 msgid "Toilets" msgstr "שירותים" #: src/osmEditDialog.js:237 msgid "Note" msgstr "הערה" #: src/osmEditDialog.js:240 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" "מידע שמשמש ליידע ממפים אחרים בנוגע למידע בלתי מובן מאליו בנוגע לרכיב, מטרת " "הכותב בעת יצירתה או רמזים לשיפור נוסף." #: src/osmEditDialog.js:339 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "הוספה ל־OpenStreetMap" #: src/osmEditDialog.js:393 msgid "Select Type" msgstr "בחירת סוג" #: src/osmEditDialog.js:515 msgid "Done" msgstr "בוצה" #: src/osmEditDialog.js:818 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "" "התבנית בשימוש צריכה לכלול את קוד השפה ואת כותרת הערך. למשל: „he:כותרת הערך”." #: src/osmEditDialog.js:824 msgid "Use the reload button to load the Wikidata tag for the selected article" msgstr "יש להשתמש בכפתור הטעינה מחדש לטעינה של תג וויקינתונים לערך הנבחר" #: src/osmEditDialog.js:832 msgid "Couldn't find Wikidata tag for article" msgstr "לא ניתן למצוא תגית וויקינתונים לערך" #: src/photonUtils.js:118 msgid "Unnamed place" msgstr "מקום ללא שם" #: src/placeEntry.js:274 msgid "Failed to parse Geo URI" msgstr "ניתוח כתובת Geo נכשל" #: src/placeEntry.js:286 msgid "Failed to parse Maps URI" msgstr "ניתוח כתובת המפות נכשל" #. 300 ft (300 * 12 * 0.0254 m) #. #. * Translators: This a format string for showing a distance to a place #. * is lower than a "quite short" distance. #. * The "less than" symbol can be substituded with an appropriate one, if #. * needed (e.g. using the correct direction, or alternative symbol). #. * The %s should be kept, and is substituted with a label representing the #. * short distance. The \u2009 (thin space) could also be adjusted if needed #: src/placeListRow.js:46 #, javascript-format msgctxt "short distance format string" msgid "< %s" msgstr "‎< %s" #: src/placeView.js:263 msgid "Coordinates" msgstr "נקודת ציון" #: src/placeView.js:267 msgid "Accuracy" msgstr "דיוק" #. Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) #: src/placeView.js:270 #, javascript-format msgid "Accuracy: %s" msgstr "דיוק: ‏%s" #. since the phone numbers are typically always rendered #. * left-to-right, insert an explicit LRM char to avoid issues #. * with phone numbers in international format starting with a + #. * which is considered a "weak" character to determine Unicode #. * text direction #. #: src/placeView.js:289 msgid "Phone number" msgstr "מספר טלפון" #: src/placeView.js:308 msgid "Email" msgstr "דוא״ל" #. If a reference to a named floor (named or symbolic) exists #. * refer to it directly. #. #. Translators: #. * This is a reference to named building floor, using a label #. * or a code, as "displayed in the elevator" #. #: src/placeView.js:323 src/placeView.js:362 msgid "Floor" msgstr "קומה" #: src/placeView.js:325 #, javascript-format msgid "Floor %s" msgstr "קומה %s" #: src/placeView.js:337 msgid "At ground level" msgstr "בגובה הקרקע" #. Translators: #. * This is a reference to a number of floors above #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:346 #, javascript-format msgid "%s floor above ground level" msgid_plural "%s floors above ground level" msgstr[0] "קומה מעל הקרקע" msgstr[1] "שתי קומות מעל הקרקע" msgstr[2] "%s קומות מעל הקרקע" msgstr[3] "%s קומות מעל הקרקע" #. Translators: #. * This is a reference to a number of floors below #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:357 #, javascript-format msgid "%s floor below ground level" msgid_plural "%s floors below ground level" msgstr[0] "קומה מעל הקרקע" msgstr[1] "שתי קומות מעל הקרקע" msgstr[2] "%s קומות מעל הקרקע" msgstr[3] "%s קומות מעל הקרקע" #. Translators: #. * The establishment offers customers to purchase meals #. * (or similar) to be consumed elsewhere #. #: src/placeView.js:375 msgid "Offers takeout" msgstr "אפשרות לאיסוף עצמי" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed on-premise. #. #: src/placeView.js:383 msgid "Does not offer takeout" msgstr "אין אפשרות לאיסוף עצמי" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed elsewhere. E.g. #. * there is no seating on-premise for eating/drinking #. #: src/placeView.js:392 msgid "Only offers takeout" msgstr "איסוף עצמי בלבד" #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/placeView.js:409 msgid "Public internet access" msgstr "גישה ציבורית לאינטרנט" #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/placeView.js:418 msgid "No internet access" msgstr "אין גישה לאינטרנט" #. Translators: #. * This means a WLAN Hotspot, also known as wireless, wifi or Wi-Fi. #. #: src/placeView.js:426 msgid "Public Wi-Fi" msgstr "רשת אלחוטית ציבורית" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/placeView.js:434 msgid "Wired internet access" msgstr "גישה לאינטרנט עם כבל" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/placeView.js:442 msgid "Computers available for use" msgstr "מחשבים זמינים לשימוש" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/placeView.js:450 msgid "Internet assistance available" msgstr "יש עזרה עם האינטרנט" #: src/placeView.js:456 msgid "No toilets available" msgstr "אין שירותים זמינים" #: src/placeView.js:459 msgid "Toilets available" msgstr "יש שירותים זמינים" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #: src/placeView.js:468 msgid "Wheelchair accessible" msgstr "גישה לנכים" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/placeView.js:478 msgid "Limited wheelchair accessibility" msgstr "גישה מוגבלת לנכים" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #: src/placeView.js:487 msgid "Not wheelchair accessible" msgstr "אין גישה לנכים" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/placeView.js:497 msgid "Designated for wheelchair users" msgstr "מוקצה למשתמשי כסאות גלגלים" #. * #. * Translators: this is a label indicating an altitude below #. * sea level, where the %s placeholder is the altitude relative #. * to mean sea level in the "negative direction" #. #: src/placeView.js:528 #, javascript-format msgid "%s below sea level" msgstr "‫%s מתחת לפני הים" #. * #. * Translators: this indicates a place is located at (or very #. * close to) mean sea level #. #: src/placeView.js:535 msgid "At sea level" msgstr "בגובה פני הים" #: src/placeView.js:544 msgid "Religion:" msgstr "דת:" #: src/place.js:568 msgid "Place not found in OpenStreetMap" msgstr "המקום לא נמצא ב־OpenStreetMap" #: src/place.js:575 msgid "Coordinates in URL are not valid" msgstr "נקודות הציון שבכתובת שגויות" #: src/place.js:584 msgid "URL is not supported" msgstr "הכתובת לא נתמכת" #: src/poiCategories.js:132 msgid "Amenities" msgstr "שירותים ומתקנים" #: src/poiCategories.js:135 msgid "ATMs" msgstr "כספומטים" #: src/poiCategories.js:141 msgid "Post Boxes" msgstr "תיבות דואר" #: src/poiCategories.js:147 msgid "Post Offices" msgstr "משרדי דואר" #: src/poiCategories.js:153 msgid "Police" msgstr "משטרה" #: src/poiCategories.js:159 msgid "Libraries" msgstr "ספריות" #: src/poiCategories.js:165 msgid "Pharmacies" msgstr "בתי מרקחת" #: src/poiCategories.js:171 msgid "Recycling" msgstr "מחזור" #: src/poiCategories.js:182 msgid "Wheelchair-accessible Toilets" msgstr "שירותים נגישים" #: src/poiCategories.js:188 msgid "Baggage Lockers" msgstr "ארונות לכבודה" #: src/poiCategories.js:196 msgid "Eating & Drinking" msgstr "אכילה ושתייה" #: src/poiCategories.js:200 msgid "Restaurants" msgstr "מסעדות" #: src/poiCategories.js:205 msgid "Fast Food" msgstr "מזון מהיר" #: src/poiCategories.js:210 msgid "Food Courts" msgstr "דוכני מזון" #: src/poiCategories.js:215 msgid "Pubs" msgstr "פאבים" #: src/poiCategories.js:221 msgid "Bars" msgstr "ברים" #: src/poiCategories.js:226 msgid "Cafes" msgstr "בתי קפה" #: src/poiCategories.js:231 msgid "Ice Cream" msgstr "גלידה" #: src/poiCategories.js:236 msgid "Food, Snacks, and Beverage Machines" msgstr "מכונות אוכל, חטיפים ומשקאות" #: src/poiCategories.js:244 msgid "Shopping" msgstr "קניות" #: src/poiCategories.js:248 msgid "Supermarkets" msgstr "סופרמרקטים" #: src/poiCategories.js:254 msgid "Convenience Stores" msgstr "חנויות נוחות" #: src/poiCategories.js:259 msgid "Shopping Malls" msgstr "מרכזי קניות" #: src/poiCategories.js:265 msgid "Clothes" msgstr "בגדים" #: src/poiCategories.js:271 msgid "Shoes" msgstr "נעליים" #: src/poiCategories.js:276 msgid "Electronics" msgstr "אלקטרוניקה" #: src/poiCategories.js:282 msgid "Alcohol" msgstr "אלכוהול" #: src/poiCategories.js:288 msgid "Bakeries" msgstr "מאפיות" #: src/poiCategories.js:294 msgid "Flowers" msgstr "משתלות" #: src/poiCategories.js:301 msgid "Transportation" msgstr "תחבורה" #: src/poiCategories.js:305 msgid "Bus & Tram Stops" msgstr "תחנות אוטובוס ורכבות קלות" #: src/poiCategories.js:313 msgid "Train & Subway Stations" msgstr "תחנות רכבת ורכבת תחתית" #: src/poiCategories.js:321 msgid "Tickets" msgstr "כרטיסים" #: src/poiCategories.js:329 msgid "Parking" msgstr "חניון" #: src/poiCategories.js:334 msgid "Bicycle Parking" msgstr "חניון אופניים" #: src/poiCategories.js:339 msgid "Bicycle Rental" msgstr "השכרת אופניים" #: src/poiCategories.js:344 msgid "Car Rental" msgstr "השכרת רכב" #: src/poiCategories.js:349 msgid "Fuel" msgstr "תחנת דלק" #: src/poiCategories.js:354 msgid "EV Charging" msgstr "תחנת טעינה חשמלית" #: src/poiCategories.js:362 msgid "Healthcare" msgstr "בריאות" #: src/poiCategories.js:366 msgid "Clinics" msgstr "מרפאות" #: src/poiCategories.js:372 msgid "Hospitals" msgstr "בתי חולים" #: src/poiCategories.js:378 msgid "Dentists" msgstr "מרפאות שיניים" #: src/poiCategories.js:386 msgid "Accommodation" msgstr "דיור" #: src/poiCategories.js:390 msgid "Hotels" msgstr "בתי מלון" #: src/poiCategories.js:395 msgid "Hostels" msgstr "אכסניות" #: src/poiCategories.js:400 msgid "Bed & Breakfast" msgstr "לינה וארוחת בוקר" #: src/poiCategories.js:405 msgid "Campings" msgstr "מחנאות" #: src/poiCategories.js:412 msgid "Recreation" msgstr "פנאי" #: src/poiCategories.js:416 msgid "Parks" msgstr "גנים ציבוריים" #: src/poiCategories.js:421 msgid "Playgrounds" msgstr "מגרשי משחקים" #: src/poiCategories.js:425 msgid "Beaches" msgstr "חופים" #: src/poiCategories.js:430 msgid "Nature Reserves" msgstr "שמורות טבע" #: src/poiCategories.js:436 msgid "Theme Parks" msgstr "פארקי שעשועים" #: src/poiCategories.js:441 msgid "Theaters" msgstr "תאטראות" #: src/poiCategories.js:447 msgid "Movie Theaters" msgstr "בתי קולנוע" #: src/poiCategories.js:453 msgid "Night Clubs" msgstr "מועדוני לילה" #: src/poiCategories.js:460 msgid "Tourism" msgstr "תיירות" #: src/poiCategories.js:464 msgid "Museums" msgstr "מוזיאונים" #: src/poiCategories.js:470 msgid "Attractions" msgstr "מוקדי משיכה" #: src/poiCategories.js:475 msgid "Artworks" msgstr "אומנות" #: src/poiCategories.js:480 msgid "Tourist Information" msgstr "מידע תיירותי" #: src/poiCategories.js:487 msgid "Sports" msgstr "ספורט" #: src/poiCategories.js:491 msgid "Gyms" msgstr "חדרי כושר" #: src/poiCategories.js:497 msgid "Outdoor Gyms" msgstr "חדרי כושר חיצוניים" #: src/poiCategories.js:503 msgid "Golf Courses" msgstr "מגרשי גולף" #: src/printLayout.js:350 #, javascript-format msgid "From %s to %s" msgstr "מ־%s אל %s" #: src/printOperation.js:49 msgid "Loading map tiles for printing" msgstr "אריחי מפה להדפסה נטענים" #: src/printOperation.js:50 msgid "You can abort printing if this takes too long" msgstr "נתן לבטל ההדפסה אם היא לוקחת יותר מדי זמן" #: src/printOperation.js:52 msgid "Abort printing" msgstr "ביטול הדפסה" #. Translators: this is add via location tooltip #: src/routeEntry.js:60 msgid "Add via location" msgstr "הוספה דרך מיקום" #. Translators: this is remove via location tooltip #: src/routeEntry.js:70 msgid "Remove via location" msgstr "הסרה דרך מיקום" #. Translators: this is reverse route tooltip #: src/routeEntry.js:76 msgid "Reverse route" msgstr "להפוך את המסלול" # msgctxt "shortcut window" #: src/searchBar.js:45 msgid "Search" msgstr "חיפוש" #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:84 #, javascript-format msgid "Add %s to %s" msgstr "הוספת %s אל %s" #: src/sendToDialog.js:181 msgid "Failed to open URI" msgstr "פתיחת הכתובת נכשלה" #: src/sendToDialog.js:246 #, javascript-format msgid "Open with %s" msgstr "לפתוח עם %s" #: src/shapeLayer.js:109 msgid "failed to load file" msgstr "אירע כשל בטעינת הקובץ" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:328 #, javascript-format msgid "Estimated time: %s" msgstr "זמן משוער: %s" #: src/sidebar.js:398 #, javascript-format msgid "Itineraries provided by %s" msgstr "המסלולים סופקו על ידי %s" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:39 #, javascript-format msgid "Start at %s" msgstr "להתחיל בנקודה %s" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:45 src/transitplugins/openTripPlanner2.js:236 msgid "Start" msgstr "התחלה" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:63 #, javascript-format msgid "Walk %s" msgstr "ללכת %s" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:77 #, javascript-format msgid "Arrive at %s" msgstr "להגיע אל %s" #: src/transit.js:79 src/transitplugins/openTripPlanner.js:1176 #: src/transitplugins/openTripPlanner2.js:255 msgid "Arrive" msgstr "הגעה" #: src/transitLegRow.js:69 msgid "Show walking instructions" msgstr "להציג הנחיות הליכה" #: src/transitLegRow.js:70 msgid "Hide walking instructions" msgstr "להסתיר הנחיות הליכה" #: src/transitMoreRow.js:37 msgid "Load earlier alternatives" msgstr "לטעון חלופות קודמות" #: src/transitMoreRow.js:39 msgid "Load later alternatives" msgstr "לטעון חלופות מאוחרות" #: src/transitMoreRow.js:52 msgid "No earlier alternatives found." msgstr "לא נמצאו חלופות מוקדמות." #: src/transitMoreRow.js:54 msgid "No later alternatives found." msgstr "לא נמצאו חלופות מאוחרות יותר." #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:138 msgctxt "month-day-date" msgid "%b %e" msgstr "%e ב%b" #: src/transitPlan.js:171 msgid "No timetable data found for this route." msgstr "לא נמצאו נתוני לוח זמנים למסלול הזה." #: src/transitPlan.js:179 msgid "No provider found for this route." msgstr "לא נמצא ספק למסלול הזה." #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:300 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:331 #, javascript-format msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "דקה" msgstr[1] "שתי דקות" msgstr[2] "‫%s דקות" msgstr[3] "‫%s דקות" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:343 #, javascript-format msgid "%s hour" msgid_plural "%s hours" msgstr[0] "שעה" msgstr[1] "שעתיים" msgstr[2] "‫%s שעות" msgstr[3] "‏‫%s שעות" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:351 #, javascript-format msgid "%s:%s hour" msgid_plural "%s:%s hours" msgstr[0] "‫%s:%s שעה" msgstr[1] "‫%s:%s שעתיים" msgstr[2] "‫%s:%s שעות" msgstr[3] "‫%s:%s שעות" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:744 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: src/translations.js:55 msgid "Around the clock" msgstr "מסביב לשעון" #: src/translations.js:57 msgid "From sunrise to sunset" msgstr "מהזריחה עד השקיעה" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:123 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s,%s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:137 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s,%s,%s" #: src/translations.js:156 msgid "Every day" msgstr "כל יום" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:168 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s – %s" #: src/translations.js:179 msgid "Public holidays" msgstr "חגים ציבוריים" #: src/translations.js:181 msgid "School holidays" msgstr "חופשי בית ספר" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:221 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: src/translations.js:235 msgid "not open" msgstr "לא פתוח" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:250 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s – %s" #: src/translations.js:287 msgid "Bahá'í" msgstr "בהאית" #. Translators: Accuracy of user location information #: src/utils.js:248 msgid "Unknown" msgstr "לא ידוע" #. Translators: Accuracy of user location information #: src/utils.js:251 msgid "Exact" msgstr "מדויק" #. Translators: this is a duration with only hours, using #. * an abbreviation for hours, corresponding to 'h' in English #. #: src/utils.js:307 #, javascript-format msgid "%s h" msgstr "‫%s שע׳" #. Translators: this is a duration with hours and minutes parts #. * using abbreviations for hours and minutes, corresponding to 'h' #. * and 'min' in English. The minutes has appropriate plural variations #. #: src/utils.js:313 #, javascript-format msgid "%s h %s min" msgid_plural "%s h %s min" msgstr[0] "‫%s שע׳ %s דק׳" msgstr[1] "‏‫%s שע׳ %s דק׳" msgstr[2] "‏‫%s שע׳ %s דק׳" msgstr[3] "‏‫%s שע׳ %s דק׳" #. Translators: this is a duration with minutes part #. * using abbreviation for minutes, corresponding to 'min' in English #. * with appropriate plural variations #. #: src/utils.js:320 #, javascript-format msgid "%s min" msgid_plural "%s min" msgstr[0] "‫%s דק׳" msgstr[1] "‫%s דק׳" msgstr[2] "‫%s דק׳" msgstr[3] "‫%s דק׳‎" #. Translators: this is a duration of less than one minute #. * with seconds using an abbreviation for seconds, corresponding to #. * 's' in English with appropriate plural forms #. #: src/utils.js:326 #, javascript-format msgid "%s s" msgid_plural "%s s" msgstr[0] "‏‫%s שנ׳" msgstr[1] "‏‫%s שנ׳" msgstr[2] "‏‫%s שנ׳" msgstr[3] "‏‫%s שנ׳" #. Translators: This is a distance measured in kilometers #: src/utils.js:337 #, javascript-format msgid "%s km" msgstr "‫%s ק״מ" #. Translators: This is a distance measured in meters #: src/utils.js:340 #, javascript-format msgid "%s m" msgstr "‫%s מ׳" #. Translators: This is a distance measured in miles #: src/utils.js:348 #, javascript-format msgid "%s mi" msgstr "‫%s מיל" #. Translators: This is a distance measured in feet #: src/utils.js:351 #, javascript-format msgid "%s ft" msgstr "‫%s רגל" #: src/transitplugins/goMetro.js:61 msgid "This plugin doesn't support latest arrival" msgstr "התוסף הזה לא תומך בהגעה המאוחרת ביותר" #: src/transitplugins/openTripPlanner.js:1237 #: src/transitplugins/openTripPlanner2.js:266 #, javascript-format msgid "Continue on %s" msgstr "להמשיך על %s" #: src/transitplugins/openTripPlanner.js:1242 #: src/transitplugins/openTripPlanner2.js:270 #, javascript-format msgid "Turn left on %s" msgstr "לפנות שמאלה אל %s" #: src/transitplugins/openTripPlanner.js:1244 #: src/transitplugins/openTripPlanner2.js:271 msgid "Turn left" msgstr "לפנות שמאלה" #: src/transitplugins/openTripPlanner.js:1247 #: src/transitplugins/openTripPlanner2.js:275 #, javascript-format msgid "Turn slightly left on %s" msgstr "לסטות שמאלה אל %s" #: src/transitplugins/openTripPlanner.js:1249 #: src/transitplugins/openTripPlanner2.js:276 msgid "Turn slightly left" msgstr "לסטות שמאלה" #: src/transitplugins/openTripPlanner.js:1252 #: src/transitplugins/openTripPlanner2.js:280 #, javascript-format msgid "Turn sharp left on %s" msgstr "לפנות שמאלה בחדות אל %s" #: src/transitplugins/openTripPlanner.js:1254 #: src/transitplugins/openTripPlanner2.js:281 msgid "Turn sharp left" msgstr "לפנות שמאלה בחדות" #: src/transitplugins/openTripPlanner.js:1257 #: src/transitplugins/openTripPlanner2.js:284 #, javascript-format msgid "Turn right on %s" msgstr "לפנות ימינה אל %s" #: src/transitplugins/openTripPlanner.js:1259 #: src/transitplugins/openTripPlanner2.js:285 msgid "Turn right" msgstr "לפנות ימינה" #: src/transitplugins/openTripPlanner.js:1262 #: src/transitplugins/openTripPlanner2.js:289 #, javascript-format msgid "Turn slightly right on %s" msgstr "לסטות ימינה אל %s" #: src/transitplugins/openTripPlanner.js:1264 #: src/transitplugins/openTripPlanner2.js:290 msgid "Turn slightly right" msgstr "לסטות ימינה" #: src/transitplugins/openTripPlanner.js:1267 #: src/transitplugins/openTripPlanner2.js:294 #, javascript-format msgid "Turn sharp right on %s" msgstr "לפנות ימינה בחדות אל %s" #: src/transitplugins/openTripPlanner.js:1269 #: src/transitplugins/openTripPlanner2.js:295 msgid "Turn sharp right" msgstr "לפנות ימינה בחדות" #: src/transitplugins/openTripPlanner.js:1275 #: src/transitplugins/openTripPlanner2.js:302 #, javascript-format msgid "At the roundabout, take exit %s" msgstr "בכיכר, לצאת ביציאה ה%s" #: src/transitplugins/openTripPlanner.js:1277 #: src/transitplugins/openTripPlanner2.js:305 #, javascript-format msgid "At the roundabout, take exit to %s" msgstr "בכיכר, לצאת ביציאה אל %s" #: src/transitplugins/openTripPlanner.js:1279 #: src/transitplugins/openTripPlanner2.js:307 msgid "Take the roundabout" msgstr "להיכנס לכיכר" #: src/transitplugins/openTripPlanner.js:1283 #: src/transitplugins/openTripPlanner2.js:315 #, javascript-format msgid "Take the elevator and get off at %s" msgstr "להשתמש במעלית ולצאת בקומה %s" #: src/transitplugins/openTripPlanner.js:1285 #: src/transitplugins/openTripPlanner2.js:316 msgid "Take the elevator" msgstr "להשתמש במעלית" #: src/transitplugins/openTripPlanner.js:1289 #: src/transitplugins/openTripPlanner2.js:320 #, javascript-format msgid "Make a left u-turn onto %s" msgstr "לפנות פניית פרסה שמאלה אל %s" #: src/transitplugins/openTripPlanner.js:1291 #: src/transitplugins/openTripPlanner2.js:321 msgid "Make a left u-turn" msgstr "לפנות פניית פרסה שמאלה" #: src/transitplugins/openTripPlanner.js:1294 #: src/transitplugins/openTripPlanner2.js:325 #, javascript-format msgid "Make a right u-turn onto %s" msgstr "לפנות פניית פרסה ימינה אל %s" #: src/transitplugins/openTripPlanner.js:1296 #: src/transitplugins/openTripPlanner2.js:326 msgid "Make a right u-turn" msgstr "לפנות פניית פרסה ימינה" #~ msgid "Sign in to edit maps" #~ msgstr "התחברות לעריכת מפות" #~ msgid "" #~ "Sign in to authorize access in a web browser.\n" #~ "Then fill in the obtained verification code here in the next step." #~ msgstr "" #~ "על מנת לאפשר גישה יש להתחבר באמצעות הדפדפן.\n" #~ "לאחר מכן יש למלא כאן את קוד האימות שיתקבל בצעד הבא. " #~ msgid "Signed In" #~ msgstr "נכנסת" #~ msgid "Sign up" #~ msgstr "הרשמה" #~ msgid "Filesystem is read only" #~ msgstr "מערכת הקבצים היא לקריאה בלבד" #~ msgid "You do not have permission to save there" #~ msgstr "אין לך הרשאות לשמירה כאן" #~ msgid "The directory does not exist" #~ msgstr "התיקייה אינה קיימת" #~ msgid "No filename specified" #~ msgstr "לא צוין שם קובץ" #~ msgid "" #~ "Location was added to the map, note that it may take a while before it " #~ "shows on the map and in search results." #~ msgstr "" #~ "מיקום נוסף למפה, יש לשים לב כי עשוי ילעבור זמן מה לפני שהוא יוצג על המפה " #~ "ובתוצאות החיפוש." #~ msgid "Takeaway" #~ msgstr "איסוף עצמי" #~ msgid "Go to current location" #~ msgstr "מעבר למיקום הנוכחי" #~ msgid "Choose map type" #~ msgstr "בחירת סוג המפה" #~ msgid "Zoom in" #~ msgstr "להתקרב" #~ msgid "Drag to change order of the route" #~ msgstr "יש לגרור לשינוי סדר המסלול" #~ msgid "Include route and markers" #~ msgstr "לכלול מסלול וסימונים" #~ msgid "A map application for GNOME" #~ msgstr "יישום מפות עבור GNOME" #~| msgid "Failed to open layer" #~ msgid "Failed to authorize access" #~ msgstr "קבלת הגישה נכשלה" #~ msgid "Try again" #~ msgstr "ניסיון חוזר" #~ msgid "Use hybrid aerial tiles" #~ msgstr "להשתמש באריחים אוויריים משולבים" #~ msgid "Whether aerial tiles should use hybrid style (with labels)." #~ msgstr "האם אריחים אוויריים אמורים להשתמש בסגנון משולב (עם תוויות)." #~ msgid "Show Labels" #~ msgstr "להציג תוויות" #~ msgid "Foursquare check-in privacy setting" #~ msgstr "Foursquare check-in privacy setting" #~ msgid "" #~ "Latest used Foursquare check-in privacy setting. Possible values are: " #~ "public, followers or private." #~ msgstr "" #~ "Latest used Foursquare check-in privacy setting. Possible values are: " #~ "public, followers or private." #~ msgid "Foursquare check-in Facebook broadcasting" #~ msgstr "Foursquare check-in Facebook broadcasting" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a post in the " #~ "Facebook account associated with the Foursquare account." #~ msgstr "" #~ "Indicates if Foursquare should broadcast the check-in as a post in the " #~ "Facebook account associated with the Foursquare account." #~ msgid "Foursquare check-in Twitter broadcasting" #~ msgstr "Foursquare check-in Twitter broadcasting" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a tweet in the " #~ "Twitter account associated with the Foursquare account." #~ msgstr "" #~ "Indicates if Foursquare should broadcast the check-in as a tweet in the " #~ "Twitter account associated with the Foursquare account." #~ msgid "Visibility" #~ msgstr "נראה" #~ msgid "Post on Facebook" #~ msgstr "לפרסם בפייסבוק" #~ msgid "Post on Twitter" #~ msgstr "לפרסם בטוויטר" #~ msgid "C_heck in" #~ msgstr "ה_רשמה" #~ msgid "Public" #~ msgstr "ציבורי" #~ msgid "Private" #~ msgstr "פרטי" #~ msgid "Maps is offline!" #~ msgstr "היישום מפות אינו מקוון!" #~ msgid "" #~ "Maps need an active internet connection to function properly, but one " #~ "can’t be found." #~ msgstr "למפות דרוש חיבור אינטרנט פעיל כדי לתפקד כראוי, אך אין כזה." #~ msgid "Check your connection and proxy settings." #~ msgstr "יש לבדוק את החיבור שלך ואת הגדרות המתווך." #~ msgid "Password" #~ msgstr "ססמה" #~ msgid "" #~ "Sorry, that didn’t work. Please try again, or visit\n" #~ "OpenStreetMap to reset your password." #~ msgstr "" #~ "זה לא עבד, עמך הסליחה. נא לנסות שוב או לבקר\n" #~ "‫‫ב־OpenStreetMap כדי לאפס את הססמה שלך." #~ msgid "Check In…" #~ msgstr "להירשם במיקום…" #~ msgid "Ignore network availability" #~ msgstr "להתעלם מזמינות הרשת" #~ msgid "Select an account" #~ msgstr "בחירת חשבון" #~ msgid "Loading" #~ msgstr "בטעינה" #~ msgid "Select a place" #~ msgstr "בחירת מקום" #~ msgid "" #~ "Maps cannot find the place to check in to with Foursquare. Please select " #~ "one from this list." #~ msgstr "מפות לא מוצא את המקום להירשם עם Foursquare. נא לבחור אחד מרשימה זו." #, javascript-format #~ msgid "Check in to %s" #~ msgstr "נרשם עבור %s" #, javascript-format #~ msgid "Write an optional message to check in to %s." #~ msgstr "כתיבת הודעה אפשרית להרשמה עבור %s." #, javascript-format #~ msgid "Cannot find “%s” in the social service" #~ msgstr "לא ניתן למצוא את „%s” בשירות הרשת החברתי" #~ msgid "Cannot find a suitable place to check-in in this location" #~ msgstr "לא ניתן למצוא מקום מתאים להירשם במיקום זה" #~ msgid "" #~ "Credentials have expired, please open Online Accounts to sign in and " #~ "enable this account" #~ msgstr "" #~ "האישורים פגי תוקף, נא לפתוח חשבונות מקוונים להתחברות ולאפשר חשבון זה" #~ msgid "GNOME Maps" #~ msgstr "GNOME מפות" #~ msgid "Night mode" #~ msgstr "מצב לילה" #~ msgid "Whether the application is in night mode." #~ msgstr "האם היישום הוא במצב לילה." #~ msgid "Night Mode" #~ msgstr "מצב לילה" #~ msgid "" #~ "You can even search for specific types of locations, such as “Pubs near " #~ "Main Street, Boston” or “Hotels near Alexanderplatz, Berlin”." #~ msgstr "" #~ "ניתן לחפש גם מקום מסוים, כמו „בית קפה ליד הרחוב הראשי, ירושלים” או „מלון " #~ "קרוב לאוניברסיטה, תל אביב”." #~ msgid "Facebook check-in privacy setting" #~ msgstr "Facebook check-in privacy setting" #~ msgid "" #~ "Latest used Facebook check-in privacy setting. Possible values are: " #~ "EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS or SELF." #~ msgstr "" #~ "Latest used Facebook check-in privacy setting. Possible values are: " #~ "EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS or SELF." #~ msgid "Everyone" #~ msgstr "כולם" #~ msgid "Friends of friends" #~ msgstr "חברים של חברים" #~ msgid "Just friends" #~ msgstr "חברים בלבד" #~ msgid "Just me" #~ msgstr "רק אני" #~ msgid "" #~ "Maps cannot find the place to check in to with Facebook. Please select " #~ "one from this list." #~ msgstr "מפות לא מוצא את המקום להירשם עם Facebook. נא לבחור אחד מרשימה זו." #~ msgid "Quit" #~ msgstr "יציאה" #~ msgid "Load Map Layer" #~ msgstr "טעינת שכבת מפה" #~ msgid "Open with another application" #~ msgstr "פתיחה באמצעות יישום אחר" #~ msgid "Check in here" #~ msgstr "הרשמה כאן" #~ msgid "Don't have an account?" #~ msgstr "אין לך חשבון?" #~ msgid "Press enter to search" #~ msgstr "יש ללחוץ Enter לחיפוש" #~ msgid "OK" #~ msgstr "אישור" #~ msgid "Population:" #~ msgstr "אוכלוסייה:" #~ msgid "Altitude:" #~ msgstr "גובה:" #~ msgid "Opening hours:" #~ msgstr "שעות פתיחה:" #~ msgid "Internet access:" #~ msgstr "גישת אינטרנט:" #~ msgid "Wheelchair access:" #~ msgstr "נגישות נכים:" #~ msgid "Phone:" #~ msgstr "טלפון:" #~ msgid "yes" #~ msgstr "יש" #~ msgid "limited" #~ msgstr "מוגבל" #~ msgid "no" #~ msgstr "אין" #~ msgid "designated" #~ msgstr "מובנה" #~ msgctxt "time range list" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgctxt "time range component" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgid "wired" #~ msgstr "אתרנט" #~ msgid "terminal" #~ msgstr "מסוף" #~ msgid "service" #~ msgstr "שרת" #~ msgid "%f h" #~ msgstr "%f שעות" #~ msgid "%f s" #~ msgstr "%f שניות" #~ msgid "%f km" #~ msgstr "%f ק״מ" #~ msgid "%f m" #~ msgstr "%f מ׳" #~ msgid "%f mi" #~ msgstr "%f מיל" #~ msgid "%f ft" #~ msgstr "%f רגל" #~ msgid "Country code: %s" #~ msgstr "קוד מדינה: %s" #~ msgid "_Share" #~ msgstr "_שיתוף" #~ msgid "Last known location and accuracy" #~ msgstr "Last known location and accuracy" #~ msgid "" #~ "Last known location (latitude and longitude in degrees) and accuracy (in " #~ "meters)." #~ msgstr "" #~ "Last known location (latitude and longitude in degrees) and accuracy (in " #~ "meters)." #~ msgid "Description of last known location of user." #~ msgstr "Description of last known location of user." #~ msgid "User set last known location" #~ msgstr "User set last known location" #~ msgid "Whether the last known location was set manually by the user." #~ msgstr "Whether the last known location was set manually by the user." #~ msgid "I’m here!" #~ msgstr "אני כאן!" #~ msgid "%f km²" #~ msgstr "‏%f ק״מ²" #~ msgid "To" #~ msgstr "אל" #~ msgid "From" #~ msgstr "מ" #~ msgid " km2" #~ msgstr " ק״מ2" #~ msgid "Satellite" #~ msgstr "לווין" 070701000001C7000081A40000000000000000000000016641340900010EAF000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/hi.po# Hindi translation for gnome-maps. # Copyright (C) 2014 gnome-maps's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-maps package. # Solomon Nadar , 2014. # Scrambled777 , 2024. # msgid "" msgstr "" "Project-Id-Version: gnome-maps master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2024-05-07 14:58+0000\n" "PO-Revision-Date: 2024-05-08 11:10+0530\n" "Last-Translator: Scrambled777 \n" "Language-Team: Hindi\n" "Language: hi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Gtranslator 46.1\n" #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.appdata.xml.in.in:6 data/org.gnome.Maps.desktop.in.in:4 #: data/ui/main-window.ui:27 src/application.js:64 src/mainWindow.js:147 #: src/mainWindow.js:647 msgid "Maps" msgstr "मानचित्र" #: data/org.gnome.Maps.appdata.xml.in.in:7 msgid "Find places around the world" msgstr "दुनिया भर में स्थान खोजें" #: data/org.gnome.Maps.appdata.xml.in.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "मानचित्र आपको दुनिया भर के मानचित्रों तक त्वरित पहुंच प्रदान करता है। यह आपको किसी शहर " "या सड़क की खोज करके, या किसी मित्र से मिलने के लिए जगह ढूंढकर तुरंत वह स्थान ढूंढने की " "अनुमति देता है जिसे आप ढूंढ रहे हैं।" #: data/org.gnome.Maps.appdata.xml.in.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "मानचित्र सहयोगी OpenStreetMap डेटाबेस का उपयोग करता है, जो दुनिया भर में सैकड़ों हजारों " "लोगों द्वारा बनाया गया है।" #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Maps.appdata.xml.in.in:475 src/mainWindow.js:644 msgid "The GNOME Project" msgstr "GNOME परियोजना" #: data/org.gnome.Maps.desktop.in.in:5 msgid "A simple maps application" msgstr "एक सरल मानचित्र अनुप्रयोग" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in.in:14 msgid "Maps;" msgstr "मानचित्र;नक्शा;" #: data/org.gnome.Maps.desktop.in.in:17 msgid "Allows your location to be shown on the map." msgstr "आपके स्थान को मानचित्र पर दिखाने की अनुमति देता है।" #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "अंतिम देखा गया स्थान" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "अंतिम देखे गए स्थान के निर्देशांक।" #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "ज़ूम" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "ज़ूम स्तर" #: data/org.gnome.Maps.gschema.xml:21 msgid "rotation" msgstr "घूर्णन" #: data/org.gnome.Maps.gschema.xml:22 msgid "Map rotation in radians" msgstr "रेडियन में मानचित्र घूर्णन" #: data/org.gnome.Maps.gschema.xml:26 msgid "Map type" msgstr "मानचित्र प्रकार" #: data/org.gnome.Maps.gschema.xml:27 msgid "The type of map to display (street, aerial, etc.)" msgstr "प्रदर्शित करने के लिए मानचित्र का प्रकार (सड़क, हवाई, आदि)" #: data/org.gnome.Maps.gschema.xml:31 msgid "Window size" msgstr "खिड़की का आकर" #: data/org.gnome.Maps.gschema.xml:32 msgid "Window size (width and height)." msgstr "खिड़की का आकर (चौड़ाई और ऊंचाई)।" #: data/org.gnome.Maps.gschema.xml:36 msgid "Window position" msgstr "खिड़की स्थान" #: data/org.gnome.Maps.gschema.xml:37 msgid "Window position (X and Y)." msgstr "खिड़की स्थान (X और Y)।" #: data/org.gnome.Maps.gschema.xml:41 msgid "Window maximized" msgstr "खिड़की अधिकतम पर" #: data/org.gnome.Maps.gschema.xml:42 msgid "Window maximization state" msgstr "खिड़की अधिकतम स्थिति" #: data/org.gnome.Maps.gschema.xml:46 msgid "Maximum number of search results" msgstr "खोज परिणामों की अधिकतम संख्या" #: data/org.gnome.Maps.gschema.xml:47 msgid "Maximum number of search results from geocode search." msgstr "जियोकोड खोज से खोज परिणामों की अधिकतम संख्या।" #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent places to store" msgstr "जमा करने हाल के स्थानों की संख्या" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited places to store." msgstr "जमा करने हाल के दर्शन किये स्थानों की संख्या।" #: data/org.gnome.Maps.gschema.xml:56 msgid "Number of recent routes to store" msgstr "जमा करने हाल के स्थानों की संख्या" #: data/org.gnome.Maps.gschema.xml:57 msgid "Number of recently visited routes to store." msgstr "जमा करने के लिए हाल ही में देखे गए मार्गों की संख्या।" #: data/org.gnome.Maps.gschema.xml:61 msgid "OpenStreetMap username or email address" msgstr "OpenStreetMap उपयोक्तानाम या ईमेल पता" #: data/org.gnome.Maps.gschema.xml:62 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "" "इंगित करता है कि क्या उपयोगकर्ता ने OpenStreetMap डेटा को संपादित करने के लिए साइन इन " "किया है।" #: data/org.gnome.Maps.gschema.xml:66 msgid "Last used transportation type for routing" msgstr "अनुमार्गण के लिए अंतिम बार प्रयुक्त परिवहन प्रकार" #: data/org.gnome.Maps.gschema.xml:70 msgid "Show scale" msgstr "पैमाना दिखाएं" #: data/org.gnome.Maps.gschema.xml:71 msgid "Whether to show the scale." msgstr "पैमाना दिखाना है या नहीं।" #: data/ui/context-menu.ui:6 msgid "Route from Here" msgstr "यहां से मार्ग" #: data/ui/context-menu.ui:10 msgid "Add Intermediate Destination" msgstr "मध्यवर्ती गंतव्य जोड़ें" #: data/ui/context-menu.ui:14 msgid "Route to Here" msgstr "यहां का मार्ग" #: data/ui/context-menu.ui:20 msgid "What's Here?" msgstr "यहां क्या है?" #: data/ui/context-menu.ui:24 msgid "Copy Location" msgstr "स्थान कॉपी करें" #: data/ui/context-menu.ui:28 msgid "Add to OpenStreetMap…" msgstr "OpenStreetMap में जोड़ें…" #: data/ui/export-view-dialog.ui:7 msgid "Export view" msgstr "निर्यात दृश्य" #: data/ui/export-view-dialog.ui:16 data/ui/send-to-dialog.ui:10 #: data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "रद्द (_C)" #: data/ui/export-view-dialog.ui:26 msgid "_Export" msgstr "निर्यात (_E)" #. Translators: This is a tooltip #: data/ui/favorite-list-row.ui:72 msgid "Remove Favorite" msgstr "पसंदीदा हटाएं" #: data/ui/favorites-popover.ui:11 msgid "No Favorites" msgstr "कोई पसंदीदा नहीं" #: data/ui/favorites-popover.ui:12 msgid "Add places to your favorites to get them listed here" msgstr "स्थानों को यहां सूचीबद्ध करने के लिए उन्हें अपने पसंदीदा में जोड़ें" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:11 src/geoclue.js:106 src/placeBar.js:91 msgid "Current Location" msgstr "वर्तमान स्थान" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:19 msgid "Layers" msgstr "परतें" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:11 msgid "Print Route" msgstr "मार्ग मुद्रित करें" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:21 msgid "Favorites" msgstr "पसंदीदा" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:30 msgid "Route Planner" msgstr "मार्ग योजनाकार" #: data/ui/help-overlay.ui:12 msgctxt "shortcut window" msgid "General" msgstr "सामान्य" #: data/ui/help-overlay.ui:15 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "शॉर्टकट दिखाएं" #: data/ui/help-overlay.ui:21 msgctxt "shortcut window" msgid "Search" msgstr "खोजें" #: data/ui/help-overlay.ui:27 msgctxt "shortcut window" msgid "Explore points-of-interest" msgstr "रुचि-की-जगहों का अन्वेषण करें" #: data/ui/help-overlay.ui:33 msgctxt "shortcut window" msgid "Show last search results" msgstr "अंतिम खोज परिणाम दिखाएं" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "मार्ग योजनाकार टॉगल करें" #: data/ui/help-overlay.ui:45 msgctxt "shortcut window" msgid "Print route" msgstr "मार्ग मुद्रित करें" #: data/ui/help-overlay.ui:51 msgctxt "shortcut window" msgid "Quit" msgstr "छोड़ें" #: data/ui/help-overlay.ui:57 msgctxt "shortcut window" msgid "Open main menu" msgstr "मुख्य मेनू खोलें" #: data/ui/help-overlay.ui:65 msgctxt "shortcut window" msgid "Map View" msgstr "मानचित्र दृश्य" #: data/ui/help-overlay.ui:68 msgctxt "shortcut window" msgid "Zoom in" msgstr "ज़ूम इन" #: data/ui/help-overlay.ui:74 msgctxt "shortcut window" msgid "Zoom out" msgstr "ज़ूम आउट" #: data/ui/help-overlay.ui:80 msgctxt "shortcut window" msgid "Rotate clockwise" msgstr "दक्षिणावर्त घुमाएं" #: data/ui/help-overlay.ui:86 msgctxt "shortcut window" msgid "Rotate counter-clockwise" msgstr "वामावर्त घुमाएं" #: data/ui/help-overlay.ui:92 msgctxt "shortcut window" msgid "Reset rotation" msgstr "घुमाव रीसेट करें" #: data/ui/help-overlay.ui:98 msgctxt "shortcut window" msgid "Toggle scale" msgstr "पैमाने को टॉगल करें" #: data/ui/help-overlay.ui:104 msgctxt "shortcut window" msgid "Go to current location" msgstr "वर्तमान स्थान पर जाएं" #: data/ui/help-overlay.ui:114 msgctxt "shortcut window" msgid "Switch to street view" msgstr "सड़क दृश्य पर जाएं" #: data/ui/help-overlay.ui:121 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "हवाई दृश्य पर जाएं" #: data/ui/help-overlay.ui:127 msgctxt "shortcut window" msgid "Open shape layer" msgstr "आकृति परत खोलें" #: data/ui/layers-popover.ui:7 msgid "Show Scale" msgstr "पैमाना दिखाएं" #: data/ui/layers-popover.ui:16 msgid "Enable Experimental Map" msgstr "प्रयोगात्मक मानचित्र सक्षम करें" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:21 msgid "Open Shape Layer…" msgstr "आकृति परत खोलें…" #: data/ui/main-window.ui:8 msgid "Set up OpenStreetMap Account…" msgstr "OpenStreetMap खाता स्थापित करें…" #: data/ui/main-window.ui:12 msgid "Export as Image…" msgstr "छवि के रूप में निर्यात करें…" #: data/ui/main-window.ui:17 msgid "_Keyboard Shortcuts" msgstr "कीबोर्ड शॉर्टकट (_K)" #: data/ui/main-window.ui:22 msgid "About Maps" msgstr "मानचित्र के बारे में" #: data/ui/main-window.ui:48 msgid "Main Menu" msgstr "मुख्य मेनू" #: data/ui/osm-account-dialog.ui:5 msgid "OpenStreetMap Account" msgstr "OpenStreetMap खाता" #: data/ui/osm-account-dialog.ui:31 msgid "Sign In To Edit Maps" msgstr "मानचित्र संपादित करने के लिए साइन इन करें" #: data/ui/osm-account-dialog.ui:32 msgid "Help to improve the map, using an OpenStreetMap account." msgstr "OpenStreetMap खाते का उपयोग करके मानचित्र को बेहतर बनाने में सहायता करें।" #: data/ui/osm-account-dialog.ui:36 msgid "Sign In" msgstr "साइन इन" #: data/ui/osm-account-dialog.ui:59 msgid "Verification" msgstr "सत्यापन" #: data/ui/osm-account-dialog.ui:60 msgid "" "Copy the verification code shown when authorizing access in the browser." msgstr "ब्राउज़र में पहुंच को अधिकृत करते समय दिखाए गए सत्यापन कोड को कॉपी करें।" #: data/ui/osm-account-dialog.ui:69 msgid "Verification Code" msgstr "सत्यापन कोड" #: data/ui/osm-account-dialog.ui:75 msgid "Verify" msgstr "सत्यापित करें" #: data/ui/osm-account-dialog.ui:110 msgid "Signed In" msgstr "साइन इन किया गया" #: data/ui/osm-account-dialog.ui:111 msgid "Your OpenStreetMap account is active." msgstr "आपका OpenStreetMap खाता सक्रिय है।" #: data/ui/osm-account-dialog.ui:129 msgid "Sign Out" msgstr "साइन आउट" #: data/ui/osm-edit-address.ui:11 msgid "Street" msgstr "गली" #: data/ui/osm-edit-address.ui:22 msgid "House number" msgstr "मकान संख्या" #: data/ui/osm-edit-address.ui:33 msgid "Postal code" msgstr "डाक कोड" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:44 msgid "City" msgstr "शहर" #: data/ui/osm-edit-dialog.ui:8 msgctxt "dialog title" msgid "Edit on OpenStreetMap" msgstr "OpenStreetMap पर संपादित करें" #: data/ui/osm-edit-dialog.ui:57 msgid "Type" msgstr "प्रकार" #: data/ui/osm-edit-dialog.ui:79 msgid "None" msgstr "कोई नहीं" #: data/ui/osm-edit-dialog.ui:108 msgid "Add Field" msgstr "क्षेत्र जोड़ें" #: data/ui/osm-edit-dialog.ui:130 msgid "Comment" msgstr "टिप्पणी" #: data/ui/osm-edit-dialog.ui:158 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "मानचित्र परिवर्तन उन सभी मानचित्रों पर दिखाई देंगे जो OpenStreetMap डेटा का उपयोग " "करते हैं।" #: data/ui/osm-edit-dialog.ui:186 msgid "Recently Used" msgstr "हालिया प्रयुक्त" #: data/ui/osm-edit-dialog.ui:225 src/mapView.js:671 msgid "Cancel" msgstr "रद्द" #: data/ui/osm-edit-dialog.ui:238 src/osmEditDialog.js:531 msgid "Next" msgstr "अगला" #: data/ui/osm-edit-wikipedia.ui:8 msgid "Article" msgstr "लेख" #: data/ui/osm-edit-wikipedia.ui:21 msgid "Wikidata tag" msgstr "Wikidata टैग" #: data/ui/osm-edit-wikipedia.ui:32 msgid "Load Wikidata tag for article" msgstr "लेख के लिए Wikidata टैग लोड करें" #: data/ui/place-popover.ui:23 src/searchBar.js:55 msgid "Explore Nearby Places" msgstr "निकटवर्ती स्थानों का अन्वेषण करें" #: data/ui/place-popover.ui:82 src/application.js:277 msgid "No results found" msgstr "कोई परिणाम नहीं मिला" #: data/ui/place-popover.ui:92 src/application.js:255 msgid "An error has occurred" msgstr "एक त्रुटि हुई है" #. Translators: This is a tooltip #: data/ui/route-entry.ui:12 msgid "Change Route Order" msgstr "मार्ग क्रम बदलें" #: data/ui/send-to-dialog.ui:7 msgid "Open Location" msgstr "स्थान खोलें" #: data/ui/send-to-dialog.ui:64 msgid "Copy" msgstr "कॉपी" #: data/ui/send-to-dialog.ui:70 msgid "Send To…" msgstr "यहां भेजें…" #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:62 msgid "Open Shape Layer" msgstr "आकृति परत खोलें" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "खोलें (_O)" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:32 msgid "Toggle visible" msgstr "दृश्यमान टॉगल करें" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:44 msgid "Remove Shape Layer" msgstr "आकृति परत हटाएं" #: data/ui/sidebar.ui:207 msgid "Route search by GraphHopper" msgstr "GraphHopper द्वारा मार्ग खोज" #: data/ui/sidebar.ui:272 msgid "" "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of " "transportation,\n" "e.g. a national provider might not include airlines, and a local provider " "could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" "सार्वजनिक परिवहन के लिए अनुमार्गण कार्यक्रम तृतीय-पक्ष सेवाओं द्वारा प्रदान किया जाता " "है।\n" "GNOME दिखाए गए यात्रा कार्यक्रमों और अनुसूची की शुद्धता की गारंटी नहीं दे सकता।\n" "ध्यान दें कि कुछ प्रदाता परिवहन के सभी उपलब्ध तरीकों को शामिल नहीं कर सकते हैं, जैसे एक " "राष्ट्रीय प्रदाता में एयरलाइंस \n" "शामिल नहीं हो सकती है, और एक स्थानीय प्रदाता क्षेत्रीय ट्रेनों को मिस कर सकता है।\n" "दिखाए गए नामों और ब्रांडों को लागू होने पर पंजीकृत ट्रेडमार्क माना जाएगा।" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:98 msgid "Hide intermediate stops and information" msgstr "मध्यवर्ती स्टॉप और जानकारी छुपाएं" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:156 msgid "Show intermediate stops and information" msgstr "मध्यवर्ती स्टॉप और जानकारी दिखाएं" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:16 msgid "Leave Now" msgstr "अब प्रस्थान" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:17 msgid "Leave By" msgstr "इस तक प्रस्थान" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:18 msgid "Arrive By" msgstr "इस तक आगमन" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:85 msgid "Show" msgstr "दिखाएं" #: data/ui/transit-options-panel.ui:95 msgid "Buses" msgstr "बसें" #: data/ui/transit-options-panel.ui:101 msgid "Trams" msgstr "ट्राम" #: data/ui/transit-options-panel.ui:107 msgid "Trains" msgstr "ट्रेनें" #: data/ui/transit-options-panel.ui:113 msgid "Subway" msgstr "भूमिगत मार्ग" #: data/ui/transit-options-panel.ui:119 msgid "Ferries" msgstr "नौका" #: data/ui/transit-options-panel.ui:125 msgid "Airplanes" msgstr "हवाई जहाज" #. Translators: This is a tooltip #: data/ui/place-bar.ui:33 data/ui/place-buttons.ui:27 msgid "Share Location" msgstr "स्थान साझा करें" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:11 msgid "Add to new route" msgstr "नए मार्ग में जोड़ें" #. Translators: This is the button to find a route to a place #: data/ui/place-buttons.ui:15 msgid "Directions" msgstr "दिशा-निर्देश" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:36 msgid "Mark as Favorite" msgstr "पसंदीदा चिह्नित करें" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:44 msgid "Edit on OpenStreetMap" msgstr "OpenStreetMap पर संपादित करें" #. Translators: This is a tooltip #: data/ui/place-view.ui:52 msgid "Share location" msgstr "स्थान साझा करें" #: data/ui/poi-category-goback-row.ui:22 msgid "Back to Main Categories" msgstr "मुख्य श्रेणियों पर वापस जाएं" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:19 msgid "Reset Rotation" msgstr "घूर्णन रीसेट करें" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:32 msgid "Zoom Out" msgstr "ज़ूम आउट" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:43 src/mapView.js:1246 msgid "Zoom In" msgstr "ज़ूम इन" #: lib/maps-file-data-source.c:262 lib/maps-file-data-source.c:338 #: lib/maps-file-data-source.c:418 msgid "Failed to find tile structure in directory" msgstr "निर्देशिका में टाइल संरचना खोजने में विफल" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "XML दस्तावेज़ का विश्लेषण करने में विफल" #: lib/maps-osm.c:250 lib/maps-osm.c:403 msgid "Missing required attributes" msgstr "आवश्यक विशेषताएँ गुम हैं" #: lib/maps-osm.c:451 lib/maps-osm.c:494 msgid "Could not find OSM element" msgstr "OSM तत्व नहीं मिल सका" #: lib/maps-osm.c:508 msgid "Could not find user element" msgstr "उपयोगकर्ता तत्व नहीं मिल सका" #: src/application.js:78 msgid "A path to a local tiles directory structure" msgstr "स्थानीय टाइल्स निर्देशिका संरचना का पथ" #: src/application.js:84 msgid "Tile size for local tiles directory" msgstr "स्थानीय टाइल्स निर्देशिका के लिए टाइल का आकार" #: src/application.js:88 msgid "Show the version of the program" msgstr "प्रोग्राम का संस्करण दिखाएं" #: src/application.js:94 msgid "Search for places" msgstr "स्थान खोजें" #: src/application.js:105 src/application.js:106 msgid "[FILE…|URI]" msgstr "[फाइल…|URI]" #: src/application.js:284 #, javascript-format msgid "Invalid maps: URI: %s" msgstr "अमान्य मानचित्र: URI: %s" #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:75 #, javascript-format msgid "Maps at %f, %f.png" msgstr "%f, %f.png पर मानचित्र" #: src/exportViewDialog.js:174 msgid "Unable to export view" msgstr "दृश्य निर्यात करने में असमर्थ" #: src/favoriteListRow.js:42 msgid "Favorite removed" msgstr "पसंदीदा हटा दिया गया" #: src/favoriteListRow.js:43 msgid "Undo" msgstr "पूर्ववत करें" #: src/geoJSONSource.js:73 msgid "invalid coordinate" msgstr "अमान्य निर्देशांक" #: src/geoJSONSource.js:126 src/geoJSONSource.js:166 src/geoJSONSource.js:181 msgid "parse error" msgstr "विश्लेषण त्रुटि" #: src/geoJSONSource.js:160 msgid "unknown geometry" msgstr "अज्ञात ज्यामिति" #: src/graphHopper.js:101 src/transitPlan.js:175 msgid "Route request failed." msgstr "मार्ग अनुरोध विफल।" #: src/graphHopper.js:108 src/transitPlan.js:167 msgid "No route found." msgstr "कोई मार्ग नहीं मिला।" #: src/graphHopper.js:195 src/transitplugins/openTripPlanner.js:1163 msgid "Start!" msgstr "शुरू करो!" #: src/mainWindow.js:59 msgid "All Layer Files" msgstr "सभी परत फाइलें" #: src/mainWindow.js:522 msgid "Failed to connect to location service" msgstr "स्थान सेवा से जुड़ने में विफल" #: src/mainWindow.js:527 msgid "Turn on location services" msgstr "स्थान सेवाएं चालू करें" #: src/mainWindow.js:528 msgid "Location Settings" msgstr "स्थान सेटिंग्स" #: src/mainWindow.js:645 msgid "translator-credits" msgstr "" "Solomon Nadar \n" "Scrambled777 " #: src/mainWindow.js:649 msgid "Copyright © 2011 – 2023 Red Hat, Inc. and The GNOME Maps authors" msgstr "कॉपीराइट © 2011 - 2023 रेड हैट, इंक. और GNOME मानचित्र लेखक" #: src/mainWindow.js:665 #, javascript-format msgid "Map data by %s and contributors" msgstr "%s और योगदानकर्ताओं द्वारा मानचित्र डेटा" #: src/mainWindow.js:666 msgid "Map Data Provider" msgstr "मानचित्र डेटा प्रदाता" #: src/mainWindow.js:678 msgid "Map Tile Provider" msgstr "मानचित्र टाइल प्रदाता" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:686 #, javascript-format msgid "Map tiles provided by %s" msgstr "मानचित्र टाइलें %s द्वारा प्रदान की गईं" #: src/mainWindow.js:716 msgid "Search Provider" msgstr "खोज प्रदाता" #: src/mainWindow.js:719 #, javascript-format msgid "Search provided by %s using %s" msgstr "%s द्वारा %s का उपयोग करके खोज प्रदान की गई" #: src/mapView.js:645 src/mapView.js:710 msgid "Failed to open layer" msgstr "परत खोलने में विफल" #: src/mapView.js:664 msgid "Do you want to continue?" msgstr "क्या आप जारी रखना चाहते हैं?" #: src/mapView.js:665 #, javascript-format msgid "" "You are about to open files with a total size of %s MB. This could take some " "time to load" msgstr "आप %s MB के कुल आकार वाली फाइलें खोलने वाले हैं। इसे लोड होने में कुछ समय लग सकता है" #: src/mapView.js:672 src/transitplugins/openTripPlanner.js:1239 #: src/transitplugins/openTripPlanner2.js:267 msgid "Continue" msgstr "जारी रखें" #: src/mapView.js:704 msgid "File type is not supported" msgstr "फाइल प्रकार समर्थित नहीं है" #: src/mapView.js:741 msgid "Failed to open GeoURI" msgstr "GeURI खोलने में विफल" #: src/mapView.js:1205 msgid "Nothing found here!" msgstr "यहां कुछ नहीं मिला!" #: src/mapView.js:1245 msgid "Zoom in to add location" msgstr "स्थान जोड़ने के लिए ज़ूम करें" #: src/mapView.js:1266 msgid "Location was added in OpenStreetMap" msgstr "स्थान OpenStreetMap में जोड़ा गया" #. switch back to the sign-in view, and show a toast indicating #. that verification failed #: src/osmAccountDialog.js:134 msgid "The verification code didn’t match, please try again." msgstr "सत्यापन कोड मेल नहीं खाता, कृपया पुनः प्रयास करें।" #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:335 msgid "Incorrect user name or password" msgstr "ग़लत उपयोक्तानाम या पासवर्ड" #: src/osmConnection.js:337 msgid "Success" msgstr "सफलता" #: src/osmConnection.js:339 msgid "Bad request" msgstr "ग़लत अनुरोध" #: src/osmConnection.js:341 msgid "Object not found" msgstr "वस्तु नहीं मिली" #: src/osmConnection.js:343 msgid "Conflict, someone else has just modified the object" msgstr "विरोध, किसी और ने अभी-अभी वस्तु को संशोधित किया है" #: src/osmConnection.js:345 msgid "Object has been deleted" msgstr "वस्तु हटा दी गई है" #: src/osmConnection.js:347 msgid "Way or relation refers to non-existing children" msgstr "पथ या संदर्भ गैर-मौजूद उप-वस्तुओं को संदर्भित करता है" #: src/osmEditDialog.js:106 msgid "Name" msgstr "नाम" #: src/osmEditDialog.js:109 msgid "The official name. This is typically what appears on signs." msgstr "आधिकारिक नाम। यह आमतौर पर संकेतों पर दिखाई देता है।" #: src/osmEditDialog.js:112 msgid "Address" msgstr "पता" #: src/osmEditDialog.js:120 src/placeView.js:275 msgid "Website" msgstr "वेबसाइट" #: src/osmEditDialog.js:124 msgid "This is not a valid URL. Make sure to include http:// or https://." msgstr "यह एक मान्य URL नहीं है। http:// या https:// शामिल करना सुनिश्चित करें।" #: src/osmEditDialog.js:125 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" "आधिकारिक वेबसाइट । URL के सबसे बुनियादी रूप यानी http://example.com/index.html के " "बजाय http://example.com का उपयोग करने का प्रयास करें।" #: src/osmEditDialog.js:130 msgid "Phone" msgstr "फोन" #: src/osmEditDialog.js:134 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" "फोन नंबर. + चिह्न से प्रारंभ करते हुए, अंतर्राष्ट्रीय प्रारूप का उपयोग करें। स्थानीय " "गोपनीयता कानूनों से सावधान रहें, विशेषकर निजी फोन नंबरों के लिए।" #: src/osmEditDialog.js:139 src/placeView.js:308 msgid "Email" msgstr "ईमेल" #: src/osmEditDialog.js:144 msgid "" "This is not a valid email address. Make sure to not include the mailto: " "protocol prefix." msgstr "" "यह कोई मान्य ईमेल पता नहीं है। सुनिश्चित करें कि mailto: प्रोटोकॉल उपसर्ग शामिल न हो।" #: src/osmEditDialog.js:145 msgid "" "Contact email address for inquiries. Add only email addresses that are " "intended to be publicly used." msgstr "" "पूछताछ के लिए ईमेल पते पर संपर्क करें। केवल वही ईमेल पते जोड़ें जिनका सार्वजनिक रूप से उपयोग " "किया जाना है।" #. Translators: This is the text for the "Wikipedia" link at the end #. of summaries #: src/osmEditDialog.js:149 src/placeView.js:727 msgid "Wikipedia" msgstr "Wikipedia" #: src/osmEditDialog.js:156 src/placeView.js:399 msgid "Opening hours" msgstr "खुलने का समय" #: src/osmEditDialog.js:161 msgid "See the link in the label for help on format." msgstr "प्रारूप पर सहायता के लिए लेबल में लिंक देखें।" #. TODO: this is a bit of a work-around to re-interpret the population, #. * stored as a string into an integer to convert back to a locale- #. * formatted string. Ideally it should be kept as an integer value #. * in the Place class. But this will also need to be handled by the #. * PlaceStore, possible in a backwards-compatible way #. #: src/osmEditDialog.js:164 src/placeView.js:509 msgid "Population" msgstr "जनसंख्या" #: src/osmEditDialog.js:169 src/placeView.js:538 msgid "Altitude" msgstr "ऊंचाई" #: src/osmEditDialog.js:172 msgid "Elevation (height above sea level) of a point in meters." msgstr "किसी बिंदु की ऊंचाई (समुद्र तल से ऊंचाई) मीटर में।" #: src/osmEditDialog.js:175 msgid "Wheelchair access" msgstr "व्हीलचेयर सुलभता" #: src/osmEditDialog.js:178 src/osmEditDialog.js:187 src/osmEditDialog.js:198 #: src/osmEditDialog.js:233 msgid "Yes" msgstr "हाँ" #: src/osmEditDialog.js:179 src/osmEditDialog.js:188 src/osmEditDialog.js:199 #: src/osmEditDialog.js:234 msgid "No" msgstr "नहीं" #: src/osmEditDialog.js:180 msgid "Limited" msgstr "सीमित" #: src/osmEditDialog.js:181 msgid "Designated" msgstr "मनोनीत" #: src/osmEditDialog.js:184 msgid "Internet access" msgstr "इंटरनेट सुविधा" #: src/osmEditDialog.js:189 msgid "Wi-Fi" msgstr "Wi-Fi" #: src/osmEditDialog.js:190 msgid "Wired" msgstr "तारयुक्त" #: src/osmEditDialog.js:191 msgid "Terminal" msgstr "टर्मिनल" #: src/osmEditDialog.js:192 msgid "Service" msgstr "सेवा" #: src/osmEditDialog.js:195 msgid "Takeout" msgstr "टेकआउट" #: src/osmEditDialog.js:200 msgid "Only" msgstr "केवल" #: src/osmEditDialog.js:203 msgid "Religion" msgstr "धर्म" #: src/osmEditDialog.js:206 src/translations.js:286 msgid "Animism" msgstr "जीववाद" #: src/osmEditDialog.js:207 msgid "Bahá’í" msgstr "बहाई" #: src/osmEditDialog.js:208 src/translations.js:288 msgid "Buddhism" msgstr "बुद्ध धर्म" #: src/osmEditDialog.js:209 src/translations.js:289 msgid "Caodaism" msgstr "काओदावाद" #: src/osmEditDialog.js:210 src/translations.js:290 msgid "Christianity" msgstr "ईसाई धर्म" #: src/osmEditDialog.js:211 src/translations.js:291 msgid "Confucianism" msgstr "कन्फ्यूशीवाद" #: src/osmEditDialog.js:212 src/translations.js:292 msgid "Hinduism" msgstr "हिन्दू धर्म" #: src/osmEditDialog.js:213 src/translations.js:293 msgid "Jainism" msgstr "जैन धर्म" #: src/osmEditDialog.js:214 src/translations.js:294 msgid "Judaism" msgstr "यहूदी धर्म" #: src/osmEditDialog.js:215 src/translations.js:295 msgid "Islam" msgstr "इस्लाम" #: src/osmEditDialog.js:216 src/translations.js:296 msgid "Multiple Religions" msgstr "एकाधिक धर्म" #: src/osmEditDialog.js:217 src/translations.js:297 msgid "Paganism" msgstr "बुतपरस्ती" #: src/osmEditDialog.js:218 src/translations.js:298 msgid "Pastafarianism" msgstr "पास्ताफ़ेरियनवाद" #: src/osmEditDialog.js:219 src/translations.js:299 msgid "Scientology" msgstr "साइंटोलॉजी" #: src/osmEditDialog.js:220 src/translations.js:300 msgid "Shinto" msgstr "शिंटो" #: src/osmEditDialog.js:221 src/translations.js:301 msgid "Sikhism" msgstr "सिख धर्म" #: src/osmEditDialog.js:222 src/translations.js:302 msgid "Spiritualism" msgstr "अध्यात्मवाद" #: src/osmEditDialog.js:223 src/translations.js:303 msgid "Taoism" msgstr "ताओ धर्म" #: src/osmEditDialog.js:224 src/translations.js:304 msgid "Unitarian Universalism" msgstr "इकाईवादी सार्वभौमवाद" #: src/osmEditDialog.js:225 src/translations.js:305 msgid "Voodoo" msgstr "वूडू" #: src/osmEditDialog.js:226 src/translations.js:306 msgid "Yazidism" msgstr "यजीदीवाद" #: src/osmEditDialog.js:227 src/translations.js:307 msgid "Zoroastrianism" msgstr "पारसी धर्म" #: src/osmEditDialog.js:230 src/poiCategories.js:176 msgid "Toilets" msgstr "शौचालय" #: src/osmEditDialog.js:237 msgid "Note" msgstr "टिप्पणी" #: src/osmEditDialog.js:240 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" "किसी तत्व के बारे में गैर-स्पष्ट जानकारी, इसे बनाते समय लेखक के इरादे, या आगे सुधार के संकेत के " "बारे में अन्य मानचित्रकारों को सूचित करने के लिए उपयोग की जाने वाली जानकारी।" #: src/osmEditDialog.js:339 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "OpenStreetMap में जोड़ें" #: src/osmEditDialog.js:393 msgid "Select Type" msgstr "प्रकार चुनें" #: src/osmEditDialog.js:515 msgid "Done" msgstr "संपन्न" #: src/osmEditDialog.js:818 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "" "उपयोग किए गए प्रारूप में भाषा कोड और लेख का शीर्षक जैसे \"en:Article title\" शामिल " "होना चाहिए।" #: src/osmEditDialog.js:824 msgid "Use the reload button to load the Wikidata tag for the selected article" msgstr "चयनित आलेख के लिए Wikidata टैग लोड करने के लिए पुनः लोड बटन का उपयोग करें" #: src/osmEditDialog.js:832 msgid "Couldn't find Wikidata tag for article" msgstr "आलेख के लिए Wikidata टैग नहीं मिल सका" #: src/photonUtils.js:118 msgid "Unnamed place" msgstr "अनाम स्थान" #: src/placeEntry.js:274 msgid "Failed to parse Geo URI" msgstr "Geo URI का विश्लेषण करने में विफल" #: src/placeEntry.js:286 msgid "Failed to parse Maps URI" msgstr "Maps URI का विश्लेषण करने में विफल" #. 300 ft (300 * 12 * 0.0254 m) #. #. * Translators: This a format string for showing a distance to a place #. * is lower than a "quite short" distance. #. * The "less than" symbol can be substituded with an appropriate one, if #. * needed (e.g. using the correct direction, or alternative symbol). #. * The %s should be kept, and is substituted with a label representing the #. * short distance. The \u2009 (thin space) could also be adjusted if needed #: src/placeListRow.js:46 #, javascript-format msgctxt "short distance format string" msgid "< %s" msgstr "< %s" #: src/placeView.js:263 msgid "Coordinates" msgstr "निर्देशांक" #: src/placeView.js:267 msgid "Accuracy" msgstr "सटीकता" #. Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) #: src/placeView.js:270 #, javascript-format msgid "Accuracy: %s" msgstr "सटीकता: %s" #. since the phone numbers are typically always rendered #. * left-to-right, insert an explicit LRM char to avoid issues #. * with phone numbers in international format starting with a + #. * which is considered a "weak" character to determine Unicode #. * text direction #. #: src/placeView.js:289 msgid "Phone number" msgstr "फोन नंबर" #. If a reference to a named floor (named or symbolic) exists #. * refer to it directly. #. #. Translators: #. * This is a reference to named building floor, using a label #. * or a code, as "displayed in the elevator" #. #: src/placeView.js:323 src/placeView.js:362 msgid "Floor" msgstr "मंज़िल" #: src/placeView.js:325 #, javascript-format msgid "Floor %s" msgstr "मंज़िल %s" #: src/placeView.js:337 msgid "At ground level" msgstr "जमीनी स्तर पर" #. Translators: #. * This is a reference to a number of floors above #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:346 #, javascript-format msgid "%s floor above ground level" msgid_plural "%s floors above ground level" msgstr[0] "%s मंजिल जमीनी स्तर से ऊपर" msgstr[1] "%s मंजिलें जमीनी स्तर से ऊपर" #. Translators: #. * This is a reference to a number of floors below #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:357 #, javascript-format msgid "%s floor below ground level" msgid_plural "%s floors below ground level" msgstr[0] "%s मंजिल जमीनी स्तर से नीचे" msgstr[1] "%s मंजिलें जमीनी स्तर से नीचे" #. Translators: #. * The establishment offers customers to purchase meals #. * (or similar) to be consumed elsewhere #. #: src/placeView.js:375 msgid "Offers takeout" msgstr "टेकआउट उपलब्ध है" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed on-premise. #. #: src/placeView.js:383 msgid "Does not offer takeout" msgstr "टेकआउट उपलब्ध नहीं है" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed elsewhere. E.g. #. * there is no seating on-premise for eating/drinking #. #: src/placeView.js:392 msgid "Only offers takeout" msgstr "केवल टेकआउट उपलब्ध है" #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/placeView.js:409 msgid "Public internet access" msgstr "सार्वजनिक इंटरनेट सुविधा" #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/placeView.js:418 msgid "No internet access" msgstr "इंटरनेट की सुविधा नहीं" #. Translators: #. * This means a WLAN Hotspot, also known as wireless, wifi or Wi-Fi. #. #: src/placeView.js:426 msgid "Public Wi-Fi" msgstr "सार्वजनिक Wi-Fi" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/placeView.js:434 msgid "Wired internet access" msgstr "तारयुक्त इंटरनेट की सुविधा" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/placeView.js:442 msgid "Computers available for use" msgstr "उपयोग हेतु कम्प्यूटर उपलब्ध हैं" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/placeView.js:450 msgid "Internet assistance available" msgstr "इंटरनेट सहायता उपलब्ध है" #: src/placeView.js:456 msgid "No toilets available" msgstr "कोई शौचालय उपलब्ध नहीं" #: src/placeView.js:459 msgid "Toilets available" msgstr "शौचालय उपलब्ध है" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #: src/placeView.js:468 msgid "Wheelchair accessible" msgstr "व्हीलचेयर सुलभ" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/placeView.js:478 msgid "Limited wheelchair accessibility" msgstr "सीमित व्हीलचेयर सुलभता" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #: src/placeView.js:487 msgid "Not wheelchair accessible" msgstr "व्हीलचेयर सुलभ नहीं है" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/placeView.js:497 msgid "Designated for wheelchair users" msgstr "व्हीलचेयर उपयोगकर्ताओं के लिए नामित" #. * #. * Translators: this is a label indicating an altitude below #. * sea level, where the %s placeholder is the altitude relative #. * to mean sea level in the "negative direction" #. #: src/placeView.js:528 #, javascript-format msgid "%s below sea level" msgstr "समुद्र तल से %s नीचे" #. * #. * Translators: this indicates a place is located at (or very #. * close to) mean sea level #. #: src/placeView.js:535 msgid "At sea level" msgstr "समुद्र तल पर" #: src/placeView.js:544 msgid "Religion:" msgstr "धर्म:" #: src/place.js:585 msgid "Place not found in OpenStreetMap" msgstr "OpenStreetMap में स्थान नहीं मिला" #: src/place.js:592 msgid "Coordinates in URL are not valid" msgstr "URL में निर्देशांक मान्य नहीं हैं" #: src/place.js:601 msgid "URL is not supported" msgstr "URL समर्थित नहीं है" #: src/poiCategories.js:132 msgid "Amenities" msgstr "सुविधाएं" #: src/poiCategories.js:135 msgid "ATMs" msgstr "ATMs" #: src/poiCategories.js:141 msgid "Post Boxes" msgstr "पोस्ट बक्सा" #: src/poiCategories.js:147 msgid "Post Offices" msgstr "डाक घर" #: src/poiCategories.js:153 msgid "Police" msgstr "पुलिस" #: src/poiCategories.js:159 msgid "Libraries" msgstr "पुस्तकालय" #: src/poiCategories.js:165 msgid "Pharmacies" msgstr "फार्मेसी" #: src/poiCategories.js:171 msgid "Recycling" msgstr "पुनर्चक्रण" #: src/poiCategories.js:182 msgid "Wheelchair-accessible Toilets" msgstr "व्हीलचेयर-सुलभ शौचालय" #: src/poiCategories.js:188 msgid "Baggage Lockers" msgstr "सामान लॉकर" #: src/poiCategories.js:196 msgid "Eating & Drinking" msgstr "खाना-पीना" #: src/poiCategories.js:200 msgid "Restaurants" msgstr "रेस्टोरेंट" #: src/poiCategories.js:205 msgid "Fast Food" msgstr "फास्ट फूड" #: src/poiCategories.js:210 msgid "Food Courts" msgstr "फूड कोर्ट" #: src/poiCategories.js:215 msgid "Pubs" msgstr "पब" #: src/poiCategories.js:221 msgid "Bars" msgstr "बार" #: src/poiCategories.js:226 msgid "Cafes" msgstr "कैफे" #: src/poiCategories.js:231 msgid "Ice Cream" msgstr "आइस क्रीम" #: src/poiCategories.js:236 msgid "Food, Snacks, and Beverage Machines" msgstr "भोजन, नाश्ता और पेय मशीन" #: src/poiCategories.js:244 msgid "Shopping" msgstr "खरीदारी" #: src/poiCategories.js:248 msgid "Supermarkets" msgstr "सुपरमार्केट" #: src/poiCategories.js:254 msgid "Convenience Stores" msgstr "सुलभ दुकान" #: src/poiCategories.js:259 msgid "Shopping Malls" msgstr "शॉपिंग मॉल" #: src/poiCategories.js:265 msgid "Clothes" msgstr "कपड़े" #: src/poiCategories.js:271 msgid "Shoes" msgstr "जूते" #: src/poiCategories.js:276 msgid "Electronics" msgstr "इलेक्ट्रॉनिक्स" #: src/poiCategories.js:282 msgid "Alcohol" msgstr "शराब" #: src/poiCategories.js:288 msgid "Bakeries" msgstr "बेकरी" #: src/poiCategories.js:294 msgid "Flowers" msgstr "पुष्प" #: src/poiCategories.js:301 msgid "Transportation" msgstr "परिवहन" #: src/poiCategories.js:305 msgid "Bus & Tram Stops" msgstr "बस एवं ट्राम स्टॉप" #: src/poiCategories.js:313 msgid "Train & Subway Stations" msgstr "ट्रेन एवं सबवे स्टेशन" #: src/poiCategories.js:321 msgid "Tickets" msgstr "टिकट" #: src/poiCategories.js:329 msgid "Parking" msgstr "पार्किंग" #: src/poiCategories.js:334 msgid "Bicycle Parking" msgstr "साइकिल पार्किंग" #: src/poiCategories.js:339 msgid "Bicycle Rental" msgstr "किराये पर साइकिल" #: src/poiCategories.js:344 msgid "Car Rental" msgstr "किराये पर कार" #: src/poiCategories.js:349 msgid "Fuel" msgstr "इंधन" #: src/poiCategories.js:354 msgid "EV Charging" msgstr "EV चार्जिंग" #: src/poiCategories.js:362 msgid "Healthcare" msgstr "स्वास्थ्य सेवा" #: src/poiCategories.js:366 msgid "Clinics" msgstr "क्लिनिक" #: src/poiCategories.js:372 msgid "Hospitals" msgstr "अस्पताल" #: src/poiCategories.js:378 msgid "Dentists" msgstr "दंत चिकित्सक" #: src/poiCategories.js:386 msgid "Accommodation" msgstr "आवास" #: src/poiCategories.js:390 msgid "Hotels" msgstr "होटल" #: src/poiCategories.js:395 msgid "Hostels" msgstr "छात्रावास" #: src/poiCategories.js:400 msgid "Bed & Breakfast" msgstr "बिस्तर एवं नाश्ता" #: src/poiCategories.js:405 msgid "Campings" msgstr "शिविर" #: src/poiCategories.js:412 msgid "Recreation" msgstr "मनोरंजन" #: src/poiCategories.js:416 msgid "Parks" msgstr "पार्क" #: src/poiCategories.js:421 msgid "Playgrounds" msgstr "खेल के मैदान" #: src/poiCategories.js:425 msgid "Beaches" msgstr "समुद्रतट" #: src/poiCategories.js:430 msgid "Nature Reserves" msgstr "प्राकृतिक संरक्षण" #: src/poiCategories.js:436 msgid "Theme Parks" msgstr "थीम पार्क" #: src/poiCategories.js:441 msgid "Theaters" msgstr "सिनेमाघर" #: src/poiCategories.js:447 msgid "Movie Theaters" msgstr "फिल्म सिनेमाघर" #: src/poiCategories.js:453 msgid "Night Clubs" msgstr "रात्रि क्लब" #: src/poiCategories.js:460 msgid "Tourism" msgstr "पर्यटन" #: src/poiCategories.js:464 msgid "Museums" msgstr "संग्रहालय" #: src/poiCategories.js:470 msgid "Attractions" msgstr "आकर्षण" #: src/poiCategories.js:475 msgid "Artworks" msgstr "कलाकृतियां" #: src/poiCategories.js:480 msgid "Tourist Information" msgstr "पर्यटक सूचना" #: src/poiCategories.js:487 msgid "Sports" msgstr "खेलकूद" #: src/poiCategories.js:491 msgid "Gyms" msgstr "व्यायामशाला" #: src/poiCategories.js:497 msgid "Outdoor Gyms" msgstr "बाहरी व्यायामशाला" #: src/poiCategories.js:503 msgid "Golf Courses" msgstr "गोल्फ कोर्स" #: src/printLayout.js:350 #, javascript-format msgid "From %s to %s" msgstr "%s से %s तक" #: src/printOperation.js:49 msgid "Loading map tiles for printing" msgstr "मुद्रण के लिए मानचित्र टाइलें लोड हो रही हैं" #: src/printOperation.js:50 msgid "You can abort printing if this takes too long" msgstr "यदि इसमें बहुत अधिक समय लगता है तो आप मुद्रण रोक सकते हैं" #: src/printOperation.js:52 msgid "Abort printing" msgstr "मुद्रण रोकें" #. Translators: this is add via location tooltip #: src/routeEntry.js:60 msgid "Add via location" msgstr "स्थान के जरिए जोड़ें" #. Translators: this is remove via location tooltip #: src/routeEntry.js:70 msgid "Remove via location" msgstr "स्थान के जरिए हटाएं" #. Translators: this is reverse route tooltip #: src/routeEntry.js:76 msgid "Reverse route" msgstr "उलटा मार्ग" #: src/searchBar.js:45 msgid "Search" msgstr "खोजें" #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:84 #, javascript-format msgid "Add %s to %s" msgstr "%s को %s में जोड़ें" #: src/sendToDialog.js:181 msgid "Failed to open URI" msgstr "URI खोलने में विफल" #: src/sendToDialog.js:246 #, javascript-format msgid "Open with %s" msgstr "%s के साथ खोलें" #: src/shapeLayer.js:109 msgid "failed to load file" msgstr "फाइल लोड करने में विफल" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:328 #, javascript-format msgid "Estimated time: %s" msgstr "अनुमानित समय: %s" #: src/sidebar.js:398 #, javascript-format msgid "Itineraries provided by %s" msgstr "यात्रा कार्यक्रम %s द्वारा प्रदान किए गए" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:39 #, javascript-format msgid "Start at %s" msgstr "%s से प्रारंभ" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:45 src/transitplugins/openTripPlanner2.js:236 msgid "Start" msgstr "प्रारंभ" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:63 #, javascript-format msgid "Walk %s" msgstr "%s चलें" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:77 #, javascript-format msgid "Arrive at %s" msgstr "%s पर पहुंचें" #: src/transit.js:79 src/transitplugins/openTripPlanner.js:1176 #: src/transitplugins/openTripPlanner2.js:255 msgid "Arrive" msgstr "पहुंचें" #: src/transitLegRow.js:69 msgid "Show walking instructions" msgstr "चलने के निर्देश दिखाएं" #: src/transitLegRow.js:70 msgid "Hide walking instructions" msgstr "चलने के निर्देश छिपाएं" #: src/transitMoreRow.js:37 msgid "Load earlier alternatives" msgstr "पहले के विकल्प लोड करें" #: src/transitMoreRow.js:39 msgid "Load later alternatives" msgstr "बाद के विकल्प लोड करें" #: src/transitMoreRow.js:52 msgid "No earlier alternatives found." msgstr "कोई पूर्व विकल्प नहीं मिला।" #: src/transitMoreRow.js:54 msgid "No later alternatives found." msgstr "कोई बाद का विकल्प नहीं मिला।" #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:138 msgctxt "month-day-date" msgid "%b %e" msgstr "%b %e" #: src/transitPlan.js:171 msgid "No timetable data found for this route." msgstr "इस मार्ग के लिए कोई समय सारिणी डेटा नहीं मिला।" #: src/transitPlan.js:179 msgid "No provider found for this route." msgstr "इस मार्ग के लिए कोई प्रदाता नहीं मिला।" #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:300 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:331 #, javascript-format msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "%s मिनट" msgstr[1] "%s मिनट" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:343 #, javascript-format msgid "%s hour" msgid_plural "%s hours" msgstr[0] "%s घंटा" msgstr[1] "%s घंटे" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:351 #, javascript-format msgid "%s:%s hour" msgid_plural "%s:%s hours" msgstr[0] "%s:%s घंटा" msgstr[1] "%s:%s घंटे" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:744 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: src/translations.js:55 msgid "Around the clock" msgstr "चौबीस घंटे" #: src/translations.js:57 msgid "From sunrise to sunset" msgstr "सूर्योदय से सूर्यास्त तक" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:123 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s,%s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:137 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s,%s,%s" #: src/translations.js:156 msgid "Every day" msgstr "हर दिन" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:168 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:179 msgid "Public holidays" msgstr "सार्वजनिक छुट्टियां" #: src/translations.js:181 msgid "School holidays" msgstr "स्कूल की छुट्टियां" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:221 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: src/translations.js:235 msgid "not open" msgstr "खुला नहीं" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:250 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:287 msgid "Bahá'í" msgstr "बहाई" #. Translators: Accuracy of user location information #: src/utils.js:248 msgid "Unknown" msgstr "अज्ञात" #. Translators: Accuracy of user location information #: src/utils.js:251 msgid "Exact" msgstr "सटीक" #. Translators: this is a duration with only hours, using #. * an abbreviation for hours, corresponding to 'h' in English #. #: src/utils.js:307 #, javascript-format msgid "%s h" msgstr "%s घं" #. Translators: this is a duration with hours and minutes parts #. * using abbreviations for hours and minutes, corresponding to 'h' #. * and 'min' in English. The minutes has appropriate plural variations #. #: src/utils.js:313 #, javascript-format msgid "%s h %s min" msgid_plural "%s h %s min" msgstr[0] "%s घं %s मिन" msgstr[1] "%s घं %s मिन" #. Translators: this is a duration with minutes part #. * using abbreviation for minutes, corresponding to 'min' in English #. * with appropriate plural variations #. #: src/utils.js:320 #, javascript-format msgid "%s min" msgid_plural "%s min" msgstr[0] "%s मिन" msgstr[1] "%s मिन" #. Translators: this is a duration of less than one minute #. * with seconds using an abbreviation for seconds, corresponding to #. * 's' in English with appropriate plural forms #. #: src/utils.js:326 #, javascript-format msgid "%s s" msgid_plural "%s s" msgstr[0] "%s से" msgstr[1] "%s से" #. Translators: This is a distance measured in kilometers #: src/utils.js:337 #, javascript-format msgid "%s km" msgstr "%s किमी" #. Translators: This is a distance measured in meters #: src/utils.js:340 #, javascript-format msgid "%s m" msgstr "%s मी" #. Translators: This is a distance measured in miles #: src/utils.js:348 #, javascript-format msgid "%s mi" msgstr "%s मील" #. Translators: This is a distance measured in feet #: src/utils.js:351 #, javascript-format msgid "%s ft" msgstr "%s फुट" #: src/transitplugins/goMetro.js:61 msgid "This plugin doesn't support latest arrival" msgstr "यह प्लगइन नवीनतम आगमन का समर्थन नहीं करता" #: src/transitplugins/openTripPlanner.js:1237 #: src/transitplugins/openTripPlanner2.js:266 #, javascript-format msgid "Continue on %s" msgstr "%s पर जारी रखें" #: src/transitplugins/openTripPlanner.js:1242 #: src/transitplugins/openTripPlanner2.js:270 #, javascript-format msgid "Turn left on %s" msgstr "%s पर बाएं मुड़ें" #: src/transitplugins/openTripPlanner.js:1244 #: src/transitplugins/openTripPlanner2.js:271 msgid "Turn left" msgstr "बाएं मुड़ें" #: src/transitplugins/openTripPlanner.js:1247 #: src/transitplugins/openTripPlanner2.js:275 #, javascript-format msgid "Turn slightly left on %s" msgstr "%s पर थोड़ा बाएं मुड़ें" #: src/transitplugins/openTripPlanner.js:1249 #: src/transitplugins/openTripPlanner2.js:276 msgid "Turn slightly left" msgstr "थोड़ा बाएं मुड़ें" #: src/transitplugins/openTripPlanner.js:1252 #: src/transitplugins/openTripPlanner2.js:280 #, javascript-format msgid "Turn sharp left on %s" msgstr "%s पर एकदम बाएं मुड़ें" #: src/transitplugins/openTripPlanner.js:1254 #: src/transitplugins/openTripPlanner2.js:281 msgid "Turn sharp left" msgstr "एकदम बाएं मुड़ें" #: src/transitplugins/openTripPlanner.js:1257 #: src/transitplugins/openTripPlanner2.js:284 #, javascript-format msgid "Turn right on %s" msgstr "%s पर दाएं मुड़ें" #: src/transitplugins/openTripPlanner.js:1259 #: src/transitplugins/openTripPlanner2.js:285 msgid "Turn right" msgstr "दाएं मुड़ें" #: src/transitplugins/openTripPlanner.js:1262 #: src/transitplugins/openTripPlanner2.js:289 #, javascript-format msgid "Turn slightly right on %s" msgstr "%s पर थोड़ा दाएं मुड़ें" #: src/transitplugins/openTripPlanner.js:1264 #: src/transitplugins/openTripPlanner2.js:290 msgid "Turn slightly right" msgstr "थोड़ा दाएं मुड़ें" #: src/transitplugins/openTripPlanner.js:1267 #: src/transitplugins/openTripPlanner2.js:294 #, javascript-format msgid "Turn sharp right on %s" msgstr "%s पर एकदम दाएं मुड़ें" #: src/transitplugins/openTripPlanner.js:1269 #: src/transitplugins/openTripPlanner2.js:295 msgid "Turn sharp right" msgstr "एकदम दाएं मुड़ें" #: src/transitplugins/openTripPlanner.js:1275 #: src/transitplugins/openTripPlanner2.js:302 #, javascript-format msgid "At the roundabout, take exit %s" msgstr "गोलचक्कर पर, %s से बाहर निकलें" #: src/transitplugins/openTripPlanner.js:1277 #: src/transitplugins/openTripPlanner2.js:305 #, javascript-format msgid "At the roundabout, take exit to %s" msgstr "गोलचक्कर पर, %s से बाहर निकलें" #: src/transitplugins/openTripPlanner.js:1279 #: src/transitplugins/openTripPlanner2.js:307 msgid "Take the roundabout" msgstr "गोलचक्कर लीजिए" #: src/transitplugins/openTripPlanner.js:1283 #: src/transitplugins/openTripPlanner2.js:315 #, javascript-format msgid "Take the elevator and get off at %s" msgstr "लिफ्ट लें और %s पर उतरें" #: src/transitplugins/openTripPlanner.js:1285 #: src/transitplugins/openTripPlanner2.js:316 msgid "Take the elevator" msgstr "लिफ्ट लें" #: src/transitplugins/openTripPlanner.js:1289 #: src/transitplugins/openTripPlanner2.js:320 #, javascript-format msgid "Make a left u-turn onto %s" msgstr "%s पर बाएं यू-टर्न लें" #: src/transitplugins/openTripPlanner.js:1291 #: src/transitplugins/openTripPlanner2.js:321 msgid "Make a left u-turn" msgstr "बाएं यू-टर्न लें" #: src/transitplugins/openTripPlanner.js:1294 #: src/transitplugins/openTripPlanner2.js:325 #, javascript-format msgid "Make a right u-turn onto %s" msgstr "%s पर दाएं यू-टर्न लें" #: src/transitplugins/openTripPlanner.js:1296 #: src/transitplugins/openTripPlanner2.js:326 msgid "Make a right u-turn" msgstr "दाएं यू-टर्न लें" 070701000001C8000081A4000000000000000000000001664134090000D62E000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/hr.po# Croatian translation for gnome-maps. # Copyright (C) 2017 gnome-maps's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-maps package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: gnome-maps master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2022-08-27 20:34+0000\n" "PO-Revision-Date: 2022-08-29 13:49+0200\n" "Last-Translator: gogo \n" "Language-Team: Croatian \n" "Language: hr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Poedit 3.1.1\n" #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.appdata.xml.in.in:6 data/org.gnome.Maps.desktop.in.in:4 #: data/ui/main-window.ui:29 src/application.js:61 src/mainWindow.js:133 #: src/mainWindow.js:499 msgid "Maps" msgstr "Karte" #: data/org.gnome.Maps.appdata.xml.in.in:7 msgid "Find places around the world" msgstr "Potražite mjesta diljem svijeta" #: data/org.gnome.Maps.appdata.xml.in.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "Karte vam daju brz pristup kartama diljem svijeta. Omogućuju vam brz " "pronalazak traženog mjesta pretragom gradova ili ulica, ili lociranje mjesta " "za sastanak s prijateljem." #: data/org.gnome.Maps.appdata.xml.in.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "Karte koriste suradničku OpenStreetMap bazu podataka, načinjenu od strane " "stotine tisuća ljudi diljem svijeta." #: data/org.gnome.Maps.appdata.xml.in.in:279 src/mainWindow.js:496 msgid "The GNOME Project" msgstr "GNOME projekt" #: data/org.gnome.Maps.desktop.in.in:5 msgid "A simple maps application" msgstr "Jednostava aplikacija za karte" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in.in:14 msgid "Maps;" msgstr "Karte;" #: data/org.gnome.Maps.desktop.in.in:17 msgid "Allows your location to be shown on the map." msgstr "Omogućuje vašoj lokaciji da bude prikazana na mapi." #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "posljednja pogledana lokacija" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "Koordinate posljednje pogledane lokacije." #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "uvećanje" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "Razina uvećanja" #: data/org.gnome.Maps.gschema.xml:21 msgid "Map type" msgstr "Vrsta karte" #: data/org.gnome.Maps.gschema.xml:22 msgid "The type of map to display (street, aerial, etc.)" msgstr "Vrsta prikazane karte (ulice, područje, itd.)" #: data/org.gnome.Maps.gschema.xml:26 msgid "Window size" msgstr "Veličina prozora" #: data/org.gnome.Maps.gschema.xml:27 msgid "Window size (width and height)." msgstr "Veličina prozora (širina i visina)." #: data/org.gnome.Maps.gschema.xml:31 msgid "Window position" msgstr "Položaj prozora" #: data/org.gnome.Maps.gschema.xml:32 msgid "Window position (X and Y)." msgstr "Položaj prozora (x-os i y-os)" #: data/org.gnome.Maps.gschema.xml:36 msgid "Window maximized" msgstr "Prozor uvećan" #: data/org.gnome.Maps.gschema.xml:37 msgid "Window maximization state" msgstr "Stanje uvećanja prozora" #: data/org.gnome.Maps.gschema.xml:41 msgid "Maximum number of search results" msgstr "Najveći broj rezultata pretrage" #: data/org.gnome.Maps.gschema.xml:42 msgid "Maximum number of search results from geocode search." msgstr "Najveći broj rezultata pretrage iz geokôd pretrage." #: data/org.gnome.Maps.gschema.xml:46 msgid "Number of recent places to store" msgstr "Broj nedavnih mjesta za spremanje" #: data/org.gnome.Maps.gschema.xml:47 msgid "Number of recently visited places to store." msgstr "Broj nedavno posjećenih mjesta za spremanje." #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent routes to store" msgstr "Broj nedavnih ruta za spremanje" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited routes to store." msgstr "Broj nedavno posjećenih ruta za spremanje." #: data/org.gnome.Maps.gschema.xml:56 msgid "OpenStreetMap username or e-mail address" msgstr "OpenStreetMap korisničko ime ili adresa e-pošte" #: data/org.gnome.Maps.gschema.xml:57 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "" "Označava je li se korisnik prijavio za uređivanje OpenStreetMap karata." #: data/org.gnome.Maps.gschema.xml:61 msgid "Last used transportation type for routing" msgstr "Posljednja korištena vrsta prijevoza za određivanje rute" #: data/org.gnome.Maps.gschema.xml:65 msgid "Show scale" msgstr "Prikaži mjerilo" #: data/org.gnome.Maps.gschema.xml:66 msgid "Whether to show the scale." msgstr "Treba li prikazati mjerilo." #: data/ui/context-menu.ui:6 msgid "Route from here" msgstr "Početak rute" #: data/ui/context-menu.ui:10 msgid "Add intermediate destination" msgstr "Dodaj međuodredište" #: data/ui/context-menu.ui:14 msgid "Route to here" msgstr "Završetak rute" #: data/ui/context-menu.ui:20 msgid "What's here?" msgstr "Što je ovdje?" #: data/ui/context-menu.ui:24 msgid "Copy location" msgstr "Kopiraj lokaciju" #: data/ui/context-menu.ui:28 msgid "Add to OpenStreetMap" msgstr "Dodaj na OpenStreetMap" #: data/ui/export-view-dialog.ui:7 msgid "Export view" msgstr "Izvezi prikaz" #: data/ui/export-view-dialog.ui:16 data/ui/send-to-dialog.ui:10 #: data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "_Odustani" #: data/ui/export-view-dialog.ui:26 msgid "_Export" msgstr "_Izvoz" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:11 msgid "Go to current location" msgstr "Idi na trenutnu lokaciju" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:19 msgid "Choose map type" msgstr "Odaberi vrstu karte" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:28 msgid "Zoom out" msgstr "Udalji" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:37 msgid "Zoom in" msgstr "Približi" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:11 msgid "Print Route" msgstr "Ispiši rutu" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:21 msgid "Toggle favorites" msgstr "Uklj/Isklj omiljene" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:30 msgid "Toggle route planner" msgstr "Uklj/Isklj planiranje rute" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "General" msgstr "Općenito" #: data/ui/help-overlay.ui:18 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "Prikaži prečice" #: data/ui/help-overlay.ui:25 msgctxt "shortcut window" msgid "Search" msgstr "Pretraga" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "Uklj/Isklj planiranje rute" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Print route" msgstr "Ispiši rutu" #: data/ui/help-overlay.ui:46 msgctxt "shortcut window" msgid "Quit" msgstr "Zatvori" #: data/ui/help-overlay.ui:53 msgctxt "shortcut window" msgid "Open main menu" msgstr "Otvori glavni izbornik" #: data/ui/help-overlay.ui:62 msgctxt "shortcut window" msgid "Map View" msgstr "Prikaz karte" #: data/ui/help-overlay.ui:66 msgctxt "shortcut window" msgid "Zoom in" msgstr "Približi" #: data/ui/help-overlay.ui:73 msgctxt "shortcut window" msgid "Zoom out" msgstr "Udalji" #: data/ui/help-overlay.ui:80 msgctxt "shortcut window" msgid "Toggle scale" msgstr "Uklj/Isklj promjenu veličine" #: data/ui/help-overlay.ui:87 msgctxt "shortcut window" msgid "Go to current location" msgstr "Idi na trenutnu lokaciju" #: data/ui/help-overlay.ui:97 msgctxt "shortcut window" msgid "Switch to street view" msgstr "Prebaci na prikaz ulica" #: data/ui/help-overlay.ui:104 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "Prebaci na satelitski prikaz" #: data/ui/help-overlay.ui:111 msgctxt "shortcut window" msgid "Open shape layer" msgstr "Otvori sloj karte" #: data/ui/layers-popover.ui:7 msgid "Show Scale" msgstr "Prikaži ljestvicu" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:16 msgid "Open Shape Layer…" msgstr "Otvori sloj karte…" #: data/ui/location-service-dialog.ui:16 msgid "Turn on location services to find your location" msgstr "Uključite uslugu lociranja kako bi pronašli svoju lokaciju" #: data/ui/location-service-dialog.ui:28 data/ui/osm-edit-dialog.ui:219 #: data/ui/zoom-in-dialog.ui:21 msgid "Cancel" msgstr "Odustani" #: data/ui/location-service-dialog.ui:38 msgid "Location Settings" msgstr "Postavke lokacije" #: data/ui/main-window.ui:8 msgid "Set up OpenStreetMap Account" msgstr "Prijava na OpenStreetMap račun" #: data/ui/main-window.ui:12 msgid "Export as Image" msgstr "Izvezi kao sliku" #: data/ui/main-window.ui:17 msgid "_Keyboard Shortcuts" msgstr "_Prečaci tipkovnice" #: data/ui/main-window.ui:22 msgid "About Maps" msgstr "O Kartama" #: data/ui/main-window.ui:40 msgid "Open main menu" msgstr "Otvori glavni izbornik" #: data/ui/osm-account-dialog.ui:6 msgid "OpenStreetMap Account" msgstr "OpenStreetMap račun" #: data/ui/osm-account-dialog.ui:24 msgid "Sign in to edit maps" msgstr "" "Prijavi se za uređivanje karata" #: data/ui/osm-account-dialog.ui:38 msgid "" "Help to improve the map, using an\n" "OpenStreetMap account." msgstr "" "Pomozite poboljšati karte, koristeći\n" "OpenStreetMap račun." #: data/ui/osm-account-dialog.ui:52 msgid "" "Sign in to authorize access in a web browser.\n" "Then fill in the obtained verification code here in the next step." msgstr "" "Prijavite se kako bi ovjerili pristup u web pregledniku.\n" "Zatim navedite dobiveni kôd ovjere ovdje u sljedećem koraku." #: data/ui/osm-account-dialog.ui:68 msgid "Sign up" msgstr "Odjava" #: data/ui/osm-account-dialog.ui:81 msgid "Sign In" msgstr "Prijava" #: data/ui/osm-account-dialog.ui:123 msgid "Copy verification code shown when authorizing access in the browser" msgstr "Kopirajte kôd ovjere prikazan pri pristupu ovjere u web pregledniku" #: data/ui/osm-account-dialog.ui:133 msgid "Verification code" msgstr "Kôd ovjere" #: data/ui/osm-account-dialog.ui:144 msgid "Verify" msgstr "Provjeri" #: data/ui/osm-account-dialog.ui:172 msgid "Signed In" msgstr "Prijavljeni" #: data/ui/osm-account-dialog.ui:184 msgid "Your OpenStreetMap account is active." msgstr "Vaš OpenStreetMap račun je aktivan." #: data/ui/osm-account-dialog.ui:214 msgid "Sign Out" msgstr "Odjava" #: data/ui/osm-edit-address.ui:11 msgid "Street" msgstr "Ulica" #: data/ui/osm-edit-address.ui:22 msgid "House number" msgstr "Kućni broj" #: data/ui/osm-edit-address.ui:33 msgid "Postal code" msgstr "Poštanski broj" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:44 msgid "City" msgstr "Grad" #: data/ui/osm-edit-dialog.ui:53 msgid "Type" msgstr "Vrsta" #: data/ui/osm-edit-dialog.ui:75 msgid "None" msgstr "Nijedno" #: data/ui/osm-edit-dialog.ui:104 msgid "Add Field" msgstr "Dodaj polje" #: data/ui/osm-edit-dialog.ui:126 msgid "Comment" msgstr "Komentar" #: data/ui/osm-edit-dialog.ui:154 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "Promjene karte biti će vidljive na svim kartama koje\n" "koriste OpenStreetMap podatke." #: data/ui/osm-edit-dialog.ui:182 msgid "Recently Used" msgstr "Nedavno korišteno" #: data/ui/osm-edit-dialog.ui:232 src/osmEditDialog.js:539 msgid "Next" msgstr "Sljedeće" #: data/ui/place-popover.ui:40 src/application.js:269 msgid "No results found" msgstr "Nema pronađenih rezultata" #: data/ui/place-popover.ui:50 src/application.js:246 src/osmEditDialog.js:576 msgid "An error has occurred" msgstr "Dogodila se greška" #. Translators: This is a tooltip #: data/ui/route-entry.ui:12 msgid "Drag to change order of the route" msgstr "Ispusti za promjenu redoslijeda rute" #: data/ui/send-to-dialog.ui:7 msgid "Open Location" msgstr "Otvori lokaciju" #: data/ui/send-to-dialog.ui:62 msgid "Copy" msgstr "Kopiraj" #: data/ui/send-to-dialog.ui:68 msgid "Send To…" msgstr "Pošalji u…" #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:64 msgid "Open Shape Layer" msgstr "Otvori sloj karte" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "_Otvori" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:32 msgid "Toggle visible" msgstr "Uklj/Isklj vidljivost" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:44 msgid "Remove Shape Layer" msgstr "Ukloni sloj oblika" #: data/ui/sidebar.ui:215 msgid "Route search by GraphHopper" msgstr "Ruta se traži pomoću GraphHopper" #: data/ui/sidebar.ui:282 msgid "" "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of " "transportation,\n" "e.g. a national provider might not include airlines, and a local provider " "could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" "Plan ruta za javni prijevoz omogućio je GNOME\n" "pomoću rasporeda podataka dobivenih od prijevozničkih tvrtki ili agencija.\n" "Prijevozničke tvrtke ili agencije ne mogu biti odgovorne za prikazane " "rezultate.\n" "GNOME ne može jamčiti točnost prikazanih planova i rasporeda.\n" "Prikazani nazivi i trgovačke marke trebaju se smatrati registriranim " "zaštitinim zankovima kada je primjenjivo." #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:98 msgid "Hide intermediate stops and information" msgstr "Sakrij posredna zaustavljanja i informacije" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:156 msgid "Show intermediate stops and information" msgstr "Prikaži posredna zaustavljanja i informacije" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:16 msgid "Leave Now" msgstr "Kreni odmah" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:17 msgid "Leave By" msgstr "Odlazak" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:18 msgid "Arrive By" msgstr "Dolazak" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:85 msgid "Show" msgstr "Prikaz" #: data/ui/transit-options-panel.ui:95 msgid "Buses" msgstr "Busevi" #: data/ui/transit-options-panel.ui:101 msgid "Trams" msgstr "Tramvaji" #: data/ui/transit-options-panel.ui:107 msgid "Trains" msgstr "Valkovi" #: data/ui/transit-options-panel.ui:113 msgid "Subway" msgstr "Podzemna" #: data/ui/transit-options-panel.ui:119 msgid "Ferries" msgstr "Trajekti" #: data/ui/transit-options-panel.ui:125 msgid "Airplanes" msgstr "Zrakoplovi" #. Translators: This is a tooltip #: data/ui/place-bar.ui:28 data/ui/place-buttons.ui:27 data/ui/place-view.ui:53 msgid "Share location" msgstr "Dijeli lokaciju" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:11 msgid "Add to new route" msgstr "Dodaj u novu rutu" #. Translators: This is the button to find a route to a place #: data/ui/place-buttons.ui:15 msgid "Directions" msgstr "Smjerovi" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:36 msgid "Mark as favorite" msgstr "Označi kao omiljeno" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:44 msgid "Edit on OpenStreetMap" msgstr "Uredi na OpenStreetMap" #: data/ui/zoom-in-dialog.ui:11 msgid "Zoom in to add location!" msgstr "Uvećaj za dodavanje lokacije!" #: data/ui/zoom-in-dialog.ui:27 msgid "Zoom In" msgstr "Približi" #: lib/maps-file-data-source.c:262 lib/maps-file-data-source.c:338 #: lib/maps-file-data-source.c:418 msgid "Failed to find tile structure in directory" msgstr "Neuspješna pretraga strukture pločice u direktoriju" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "Neuspješna obrada XML dokumenta" #: lib/maps-osm.c:250 lib/maps-osm.c:403 msgid "Missing required attributes" msgstr "Nedostaju potrebna svojstva" #: lib/maps-osm.c:451 lib/maps-osm.c:494 msgid "Could not find OSM element" msgstr "Nemoguć pronalazak OSM elementa" #: lib/maps-osm.c:508 msgid "Could not find user element" msgstr "Nemoguć pronalazak elementa korisnika" #: src/application.js:74 msgid "A path to a local tiles directory structure" msgstr "Putanja do lokalne strukture bloka u direktoriju" #: src/application.js:80 msgid "Tile size for local tiles directory" msgstr "Veličina bloka za direktorij lokalnih blokova" #: src/application.js:84 msgid "Show the version of the program" msgstr "Prikaži inačicu programa" #: src/application.js:90 msgid "Search for places" msgstr "Pretraži mjesto" #: src/application.js:101 src/application.js:102 msgid "[FILE…|URI]" msgstr "[DATOTEKA…|URI]" #: src/application.js:277 #, javascript-format msgid "Invalid maps: URI: %s" msgstr "Nevaljane karte: URI: %s" #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:85 #, javascript-format msgid "Maps at %f, %f.png" msgstr "Karta na %f, %f.png" #: src/exportViewDialog.js:167 msgid "Filesystem is read only" msgstr "Datotečni sustav je samo za čitanje" #: src/exportViewDialog.js:169 msgid "You do not have permission to save there" msgstr "Nemate za tamo dozvolu spremanja" #: src/exportViewDialog.js:171 msgid "The directory does not exist" msgstr "Direktorij ne postoji" #: src/exportViewDialog.js:173 msgid "No filename specified" msgstr "Naziv datoteke nije naveden" #: src/exportViewDialog.js:181 msgid "Unable to export view" msgstr "Nemoguće izvesti prikaz" #: src/geoclue.js:106 msgid "Current Location" msgstr "Trenutna lokacija" #: src/geoJSONSource.js:78 msgid "invalid coordinate" msgstr "pogrešne koordinate" #: src/geoJSONSource.js:123 src/geoJSONSource.js:163 src/geoJSONSource.js:178 msgid "parse error" msgstr "greška obrade" #: src/geoJSONSource.js:157 msgid "unknown geometry" msgstr "nepoznata geometrija" #: src/graphHopper.js:121 src/transitPlan.js:174 msgid "Route request failed." msgstr "Zahtjev rute neuspio." #: src/graphHopper.js:128 src/transitPlan.js:166 msgid "No route found." msgstr "Ruta nije pronađena." #: src/graphHopper.js:215 src/transitplugins/openTripPlanner.js:1121 msgid "Start!" msgstr "Kreni!" #: src/mainWindow.js:61 msgid "All Layer Files" msgstr "Sve datoteke sloja" #: src/mainWindow.js:410 msgid "Failed to connect to location service" msgstr "Neuspjelo povezivanje s uslugom lociranja" #: src/mainWindow.js:497 msgid "translator-credits" msgstr "gogo https://launchpad.net/~trebelnik-stefina" #: src/mainWindow.js:501 msgid "Copyright © 2011 – 2022 Red Hat, Inc. and The GNOME Maps authors" msgstr "Autorsko pravo © 2011 – 2022 Red Hat, Inc. i autori GNOME karta" #: src/mainWindow.js:517 #, javascript-format msgid "Map data by %s and contributors" msgstr "Podatke karte omogućili %s i doprinositelji" #: src/mainWindow.js:518 msgid "Map Data Provider" msgstr "Pružatelj usluga podataka karte" #: src/mainWindow.js:530 msgid "Map Tile Provider" msgstr "Pružatelj usluga blokova karte" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:538 #, javascript-format msgid "Map tiles provided by %s" msgstr "Blokove karte je omogućio %s" #: src/mainWindow.js:568 msgid "Search Provider" msgstr "Pružatelj usluga pretrage" #: src/mainWindow.js:571 #, javascript-format msgid "Search provided by %s using %s" msgstr "Pretragu je omogućio %s koristeći %s" #: src/mapView.js:502 src/mapView.js:562 msgid "Failed to open layer" msgstr "Neuspjelo otvaranje sloja" #: src/mapView.js:523 msgid "Do you want to continue?" msgstr "Želite li nastaviti?" #: src/mapView.js:524 #, javascript-format msgid "" "You are about to open files with a total size of %s MB. This could take some " "time to load" msgstr "" "Otvorit ćete datoteku s ukupnom veličinom od %s MB. Ovo može potrajati dulje " "vrijeme" #: src/mapView.js:556 msgid "File type is not supported" msgstr "Vrsta datoteke nije podržana" #: src/mapView.js:594 msgid "Failed to open GeoURI" msgstr "Neuspjelo otvaranje GeoURI-ja" #: src/mapView.js:1025 msgid "Nothing found here!" msgstr "Ništa nije pronađeno ovdje!" #: src/mapView.js:1086 msgid "" "Location was added to the map, note that it may take a while before it shows " "on the map and in search results." msgstr "" "Lokacija je dodana na kartu, zapamtite da može potrajati prije nego se " "pojavi na karti i u rezultatima pretrage." #: src/osmAccountDialog.js:139 msgid "The verification code didn’t match, please try again." msgstr "Kôd ovjere se ne podudara, pokušajte ponovno." #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:337 msgid "Incorrect user name or password" msgstr "Neispravno korisničko ime ili lozinka" #: src/osmConnection.js:339 msgid "Success" msgstr "Uspjeh" #: src/osmConnection.js:341 msgid "Bad request" msgstr "Neispravan zahtjev" #: src/osmConnection.js:343 msgid "Object not found" msgstr "Objekt nije pronađen" #: src/osmConnection.js:345 msgid "Conflict, someone else has just modified the object" msgstr "Sukob, netko drugi je upravo promijenio objekt" #: src/osmConnection.js:347 msgid "Object has been deleted" msgstr "Objekt je obrisan" #: src/osmConnection.js:349 msgid "Way or relation refers to non-existing children" msgstr "Način ili veza povezana za nepostojeći objekt" #: src/osmEditDialog.js:116 msgid "Name" msgstr "Naziv" #: src/osmEditDialog.js:119 msgid "The official name. This is typically what appears on signs." msgstr "Službeni naziv. To se uobičajeno pojavljuje na znakovima." #: src/osmEditDialog.js:122 msgid "Address" msgstr "Adresa" #: src/osmEditDialog.js:130 src/placeView.js:262 msgid "Website" msgstr "Web stranica" #: src/osmEditDialog.js:134 msgid "This is not a valid URL. Make sure to include http:// or https://." msgstr "Ovo nije valjan URL. Pobrinite se da sadrži http:// ili https://." #: src/osmEditDialog.js:135 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" "Službena web stranca. Pokušajte koristiti najosnovnije od URL-a npr. http://" "primjer.com umjesto http://primjer.com/index.html." #: src/osmEditDialog.js:140 msgid "Phone" msgstr "Telefon" #: src/osmEditDialog.js:144 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" "Broj telefona. Koristite međunarodni format, započinjući s + znakom. Ne " "zaboravite lokalne zakone, osobito za privatne telefonske linije." #: src/osmEditDialog.js:149 src/placeView.js:290 msgid "E-mail" msgstr "E-pošta" #: src/osmEditDialog.js:154 msgid "" "This is not a valid e-mail address. Make sure to not include the mailto: " "protocol prefix." msgstr "" "Ovo nije valjana adresa e-pošte. Provjerite da niste uključili mailto: " "prefiks protokola." #: src/osmEditDialog.js:155 msgid "" "Contact e-mail address for inquiries. Add only email addresses that are " "intended to be publicly used." msgstr "" "Kontakt adresa e-pošte za upite. Dodajte samo adrese e-pošte koje su " "namijenjene za javnu upotrebu." #. Translators: This is the text for the "Wikipedia" link at the end #. of summaries #: src/osmEditDialog.js:159 src/placeView.js:624 msgid "Wikipedia" msgstr "Wikipedia" #: src/osmEditDialog.js:164 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "" "Korišteni format trebao bi uključiti kôd jezika i naslov članka poput “hr:" "Naslov članka”." #: src/osmEditDialog.js:168 src/placeView.js:327 msgid "Opening hours" msgstr "Vrijeme otvaranja" #: src/osmEditDialog.js:173 msgid "See the link in the label for help on format." msgstr "Pogledajte poveznicu u naslovu za pomoć formata." #. TODO: this is a bit of a work-around to re-interpret the population, #. * stored as a string into an integer to convert back to a locale- #. * formatted string. Ideally it should be kept as an integer value #. * in the Place class. But this will also need to be handled by the #. * PlaceStore, possible in a backwards-compatible way #. #: src/osmEditDialog.js:176 src/placeView.js:437 msgid "Population" msgstr "Populacija" #: src/osmEditDialog.js:181 src/placeView.js:466 msgid "Altitude" msgstr "Visina" #: src/osmEditDialog.js:184 msgid "Elevation (height above sea level) of a point in metres." msgstr "Uzvišenje (nadmorska visina) od točke u metrima." #: src/osmEditDialog.js:187 msgid "Wheelchair access" msgstr "Pristup za invalidska kolica" #: src/osmEditDialog.js:190 src/osmEditDialog.js:199 src/osmEditDialog.js:210 #: src/osmEditDialog.js:245 msgid "Yes" msgstr "Da" #: src/osmEditDialog.js:191 src/osmEditDialog.js:200 src/osmEditDialog.js:211 #: src/osmEditDialog.js:246 msgid "No" msgstr "Ne" #: src/osmEditDialog.js:192 msgid "Limited" msgstr "Ograničeno" #: src/osmEditDialog.js:193 msgid "Designated" msgstr "Određeno" #: src/osmEditDialog.js:196 msgid "Internet access" msgstr "Pristup internetu" #: src/osmEditDialog.js:201 msgid "Wi-Fi" msgstr "Bežična mreža" #: src/osmEditDialog.js:202 msgid "Wired" msgstr "Žična mreža" #: src/osmEditDialog.js:203 msgid "Terminal" msgstr "Terminal" #: src/osmEditDialog.js:204 msgid "Service" msgstr "Usluga" #: src/osmEditDialog.js:207 msgid "Takeaway" msgstr "Usluga za van" #: src/osmEditDialog.js:212 msgid "Only" msgstr "Samo" #: src/osmEditDialog.js:215 msgid "Religion" msgstr "Religija" #: src/osmEditDialog.js:218 src/translations.js:286 msgid "Animism" msgstr "Animizam" #: src/osmEditDialog.js:219 msgid "Bahá’í" msgstr "Bahaizam" #: src/osmEditDialog.js:220 src/translations.js:288 msgid "Buddhism" msgstr "Budizam" #: src/osmEditDialog.js:221 src/translations.js:289 msgid "Caodaism" msgstr "Caodaizam" #: src/osmEditDialog.js:222 src/translations.js:290 msgid "Christianity" msgstr "Kršćanstvo" #: src/osmEditDialog.js:223 src/translations.js:291 msgid "Confucianism" msgstr "Konfucijanizam" #: src/osmEditDialog.js:224 src/translations.js:292 msgid "Hinduism" msgstr "Hinduizam" #: src/osmEditDialog.js:225 src/translations.js:293 msgid "Jainism" msgstr "Džainizam" #: src/osmEditDialog.js:226 src/translations.js:294 msgid "Judaism" msgstr "Judaizam" #: src/osmEditDialog.js:227 src/translations.js:295 msgid "Islam" msgstr "Islam" #: src/osmEditDialog.js:228 src/translations.js:296 msgid "Multiple Religions" msgstr "Više religija" #: src/osmEditDialog.js:229 src/translations.js:297 msgid "Paganism" msgstr "Paganizam" #: src/osmEditDialog.js:230 src/translations.js:298 msgid "Pastafarianism" msgstr "Pastafarianizam" #: src/osmEditDialog.js:231 src/translations.js:299 msgid "Scientology" msgstr "Scijentologija" #: src/osmEditDialog.js:232 src/translations.js:300 msgid "Shinto" msgstr "Šintoizam" #: src/osmEditDialog.js:233 src/translations.js:301 msgid "Sikhism" msgstr "Sikizam" #: src/osmEditDialog.js:234 src/translations.js:302 msgid "Spiritualism" msgstr "Spiritualizam" #: src/osmEditDialog.js:235 src/translations.js:303 msgid "Taoism" msgstr "Taoizam" #: src/osmEditDialog.js:236 src/translations.js:304 msgid "Unitarian Universalism" msgstr "Unitarni univerzalizam" #: src/osmEditDialog.js:237 src/translations.js:305 msgid "Voodoo" msgstr "Vudu" #: src/osmEditDialog.js:238 src/translations.js:306 msgid "Yazidism" msgstr "Jezidizam" #: src/osmEditDialog.js:239 src/translations.js:307 msgid "Zoroastrianism" msgstr "Zoroastrizam" #: src/osmEditDialog.js:242 msgid "Toilets" msgstr "Toaleti" #: src/osmEditDialog.js:249 msgid "Note" msgstr "Napomena" #: src/osmEditDialog.js:252 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" "Informacije koje se koriste za informiranje drugih kartografa o neočekivanim " "informacijama o nekom elementu, o autorovoj namjeri prilikom izrade, ili " "savjeti za buduće poboljšanje." #: src/osmEditDialog.js:347 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "Dodaj u OpenStreetMap" #: src/osmEditDialog.js:401 msgid "Select Type" msgstr "Odaberi vrstu" #: src/osmEditDialog.js:523 msgid "Done" msgstr "Završeno" #: src/photonUtils.js:118 msgid "Unnamed place" msgstr "Neimenovano mjesto" #: src/placeEntry.js:223 msgid "Failed to parse Geo URI" msgstr "Neuspješna obrada Geo URI-ja" #: src/placeEntry.js:236 msgid "Failed to parse Maps URI" msgstr "Neuspješna obrada URI-ja karta" #: src/placeView.js:250 msgid "Coordinates" msgstr "Koordinate" #: src/placeView.js:254 msgid "Accuracy" msgstr "Točnost" #. Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) #: src/placeView.js:257 #, javascript-format msgid "Accuracy: %s" msgstr "Točnost: %s" #. since the phone numbers are typically always rendered #. * left-to-right, insert an explicit LRM char to avoid issues #. * with phone numbers in international format starting with a + #. * which is considered a "weak" character to determine Unicode #. * text direction #. #: src/placeView.js:276 msgid "Phone number" msgstr "Telefonski broj" #. Translators: #. * The establishment offers customers to purchase meals #. * (or similar) to be consumed elsewhere #. #: src/placeView.js:303 msgid "Offers takeaway" msgstr "Pruža uslugu za van" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed on-premise. #. #: src/placeView.js:311 msgid "Does not offer takeaway" msgstr "Ne pruža uslugu za van" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed elsewhere. E.g. #. * there is no seating on-premise for eating/drinking #. #: src/placeView.js:320 msgid "Only offers takeaway" msgstr "Samo pruža uslugu za van" #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/placeView.js:337 msgid "Public internet access" msgstr "Javni pristup internetu" #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/placeView.js:346 msgid "No internet access" msgstr "Nema pristupa internetu" #. Translators: #. * This means a WLAN Hotspot, also known as wireless, wifi or Wi-Fi. #. #: src/placeView.js:354 msgid "Public Wi-Fi" msgstr "Javno bežična mreža" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/placeView.js:362 msgid "Wired internet access" msgstr "Žični pristup internetu" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/placeView.js:370 msgid "Computers available for use" msgstr "Računala dostupna za upotrebu" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/placeView.js:378 msgid "Internet assistance available" msgstr "Dostupan je internet pomoćnik" #: src/placeView.js:384 msgid "No toilets available" msgstr "Nema dostupnih toaleta" #: src/placeView.js:387 msgid "Toilets available" msgstr "Dostupni toaleti" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #: src/placeView.js:396 msgid "Wheelchair accessible" msgstr "Potuni pristup za invalidska kolica" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/placeView.js:406 msgid "Limited wheelchair accessibility" msgstr "Ograničeni pristup za invalidska kolica" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #: src/placeView.js:415 msgid "Not wheelchair accessible" msgstr "Nema pristupa za invalidska kolica" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/placeView.js:425 msgid "Designated for wheelchair users" msgstr "Namijenjeno za korisnike invalidskih kolica" #. * #. * Translators: this is a label indicating an altitude below #. * sea level, where the %s placeholder is the altitude relative #. * to mean sea level in the "negative direction" #. #: src/placeView.js:456 #, javascript-format msgid "%s below sea level" msgstr "%s ispod razine mora" #. * #. * Translators: this indicates a place is located at (or very #. * close to) mean sea level #. #: src/placeView.js:463 msgid "At sea level" msgstr "U razini mora" #: src/placeView.js:472 msgid "Religion:" msgstr "Religija:" #: src/place.js:531 msgid "Place not found in OpenStreetMap" msgstr "Mjesto nije pronađeno na OpenStreetMapama" #: src/place.js:538 msgid "Coordinates in URL are not valid" msgstr "Koordinate u URL-u nisu valjane" #: src/place.js:547 msgid "URL is not supported" msgstr "URL nije podržan" #: src/printLayout.js:362 #, javascript-format msgid "From %s to %s" msgstr "Od %s do %s" #: src/printOperation.js:50 msgid "Loading map tiles for printing" msgstr "Učitavanje bloka karte za ispis" #: src/printOperation.js:51 msgid "You can abort printing if this takes too long" msgstr "Možete prekinuti ispisivanje ako traje predugo" #: src/printOperation.js:53 msgid "Abort printing" msgstr "Prekini ispisivanje" #. Translators: this is add via location tooltip #: src/routeEntry.js:69 msgid "Add via location" msgstr "Dodaj pomoću lokacije" #. Translators: this is remove via location tooltip #: src/routeEntry.js:79 msgid "Remove via location" msgstr "Ukloni pomoću lokacije" #. Translators: this is reverse route tooltip #: src/routeEntry.js:85 msgid "Reverse route" msgstr "Obrni rutu" #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:92 #, javascript-format msgid "Add %s to %s" msgstr "Dodaj %s u %s" #: src/sendToDialog.js:189 msgid "Failed to open URI" msgstr "Neuspjelo otvaranje URI-ja" #: src/sendToDialog.js:256 #, javascript-format msgid "Open with %s" msgstr "Otvori sa %s" #: src/shapeLayer.js:93 msgid "failed to load file" msgstr "neuspješno učitavanje datoteke" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:348 #, javascript-format msgid "Estimated time: %s" msgstr "Vrijeme dolaska: %s" #: src/sidebar.js:418 #, javascript-format msgid "Itineraries provided by %s" msgstr "Planove je omogućio %s" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:39 #, javascript-format msgid "Start at %s" msgstr "Polazak u %s" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:45 msgid "Start" msgstr "Polazak" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:63 #, javascript-format msgid "Walk %s" msgstr "Pješači %s" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:77 #, javascript-format msgid "Arrive at %s" msgstr "Dolazak u %s" #: src/transit.js:79 src/transitplugins/openTripPlanner.js:1134 msgid "Arrive" msgstr "Dolazak" #: src/transitLegRow.js:78 msgid "Show walking instructions" msgstr "Prikaži upute pješačenja" #: src/transitLegRow.js:79 msgid "Hide walking instructions" msgstr "Sakrij upute pješačenja" #: src/transitMoreRow.js:37 msgid "Load earlier alternatives" msgstr "Učitaj ranije alternative" #: src/transitMoreRow.js:39 msgid "Load later alternatives" msgstr "Učitaj kasnije alternative" #: src/transitMoreRow.js:52 msgid "No earlier alternatives found." msgstr "Nema pronađenih ranijih alternativa." #: src/transitMoreRow.js:54 msgid "No later alternatives found." msgstr "Nema pronađenih kasnijih alternativa." #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:136 msgctxt "month-day-date" msgid "%b %e" msgstr "%e %b" #: src/transitPlan.js:170 msgid "No timetable data found for this route." msgstr "Nema pronađenih podataka rasporeda za ovu rutu." #: src/transitPlan.js:178 msgid "No provider found for this route." msgstr "Nema pronađenih pružatelja usluge za ovu rutu." #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:295 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:324 #, javascript-format msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "%s minuta" msgstr[1] "%s minute" msgstr[2] "%s minuta" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:336 #, javascript-format msgid "%s hour" msgid_plural "%s hours" msgstr[0] "%s sat" msgstr[1] "%s sata" msgstr[2] "%s sati" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:344 #, javascript-format msgid "%s:%s hour" msgid_plural "%s:%s hours" msgstr[0] "%s:%s sat" msgstr[1] "%s:%s sata" msgstr[2] "%s:%s sati" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:698 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: src/translations.js:55 msgid "Around the clock" msgstr "Oko sata" #: src/translations.js:57 msgid "From sunrise to sunset" msgstr "Od sumraka do zore" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:123 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s,%s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:137 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s,%s,%s" #: src/translations.js:156 msgid "Every day" msgstr "Svaki dan" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:168 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:179 msgid "Public holidays" msgstr "Javni praznici" #: src/translations.js:181 msgid "School holidays" msgstr "Školski praznici" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:221 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: src/translations.js:235 msgid "not open" msgstr "nije otvoreno" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:250 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s-%s" #. Translators: Accuracy of user location information #: src/utils.js:256 msgid "Unknown" msgstr "Napoznato" #. Translators: Accuracy of user location information #: src/utils.js:259 msgid "Exact" msgstr "Točno" #. Translators: this is a duration with only hours, using #. * an abbreviation for hours, corresponding to 'h' in English #. #: src/utils.js:360 #, javascript-format msgid "%s h" msgstr "% sat(a)" #. Translators: this is a duration with hours and minutes parts #. * using abbreviations for hours and minutes, corresponding to 'h' #. * and 'min' in English. The minutes has appropriate plural variations #. #: src/utils.js:366 #, javascript-format msgid "%s h %s min" msgid_plural "%s h %s min" msgstr[0] "%s sat(a) %s min" msgstr[1] "%s sat(a) %s min" msgstr[2] "%s sat(a) %s min" #. Translators: this is a duration with minutes part #. * using abbreviation for minutes, corresponding to 'min' in English #. * with appropriate plural variations #. #: src/utils.js:373 #, javascript-format msgid "%s min" msgid_plural "%s min" msgstr[0] "%s min" msgstr[1] "%s min" msgstr[2] "%s min" #. Translators: this is a duration of less than one minute #. * with seconds using an abbreviation for seconds, corresponding to #. * 's' in English with appropriate plural forms #. #: src/utils.js:379 #, javascript-format msgid "%s s" msgid_plural "%s s" msgstr[0] "%s s" msgstr[1] "%s s" msgstr[2] "%s s" #. Translators: This is a distance measured in kilometers #: src/utils.js:390 #, javascript-format msgid "%s km" msgstr "%s km" #. Translators: This is a distance measured in meters #: src/utils.js:393 #, javascript-format msgid "%s m" msgstr "%s m" #. Translators: This is a distance measured in miles #: src/utils.js:401 #, javascript-format msgid "%s mi" msgstr "%s mi" #. Translators: This is a distance measured in feet #: src/utils.js:404 #, javascript-format msgid "%s ft" msgstr "%s ft" #: src/transitplugins/goMetro.js:61 msgid "This plugin doesn't support latest arrival" msgstr "Priključak ne podržava posljednji dolazak" #: src/transitplugins/openTripPlanner.js:1195 #, javascript-format msgid "Continue on %s" msgstr "Nastavi u %s" #: src/transitplugins/openTripPlanner.js:1197 msgid "Continue" msgstr "Nastavi" #: src/transitplugins/openTripPlanner.js:1200 #, javascript-format msgid "Turn left on %s" msgstr "Skrenite lijevo na %s" #: src/transitplugins/openTripPlanner.js:1202 msgid "Turn left" msgstr "Skrenite lijevo" #: src/transitplugins/openTripPlanner.js:1205 #, javascript-format msgid "Turn slightly left on %s" msgstr "Skrenite blago ulijevo na %s" #: src/transitplugins/openTripPlanner.js:1207 msgid "Turn slightly left" msgstr "Skrenite blago ulijevo" #: src/transitplugins/openTripPlanner.js:1210 #, javascript-format msgid "Turn sharp left on %s" msgstr "Skrenite oštro ulijevo na %s" #: src/transitplugins/openTripPlanner.js:1212 msgid "Turn sharp left" msgstr "Skrenite oštro ulijevo" #: src/transitplugins/openTripPlanner.js:1215 #, javascript-format msgid "Turn right on %s" msgstr "Skrenite desno na %s" #: src/transitplugins/openTripPlanner.js:1217 msgid "Turn right" msgstr "Skrenite desno" #: src/transitplugins/openTripPlanner.js:1220 #, javascript-format msgid "Turn slightly right on %s" msgstr "Skrenite blago udesno na %s" #: src/transitplugins/openTripPlanner.js:1222 msgid "Turn slightly right" msgstr "Skrenite blago udesno" #: src/transitplugins/openTripPlanner.js:1225 #, javascript-format msgid "Turn sharp right on %s" msgstr "Skrenite oštro udesno na %s" #: src/transitplugins/openTripPlanner.js:1227 msgid "Turn sharp right" msgstr "Skrenite oštro udesno" #: src/transitplugins/openTripPlanner.js:1233 #, javascript-format msgid "At the roundabout, take exit %s" msgstr "Na kružnom toku, izađite na %s" #: src/transitplugins/openTripPlanner.js:1235 #, javascript-format msgid "At the roundabout, take exit to %s" msgstr "Na kružnom toku, izađite na %s" #: src/transitplugins/openTripPlanner.js:1237 msgid "Take the roundabout" msgstr "Idite na kružni tok" #: src/transitplugins/openTripPlanner.js:1241 #, javascript-format msgid "Take the elevator and get off at %s" msgstr "Idite u dizalo i izađite na %s" #: src/transitplugins/openTripPlanner.js:1243 msgid "Take the elevator" msgstr "Idite u dizalo" #: src/transitplugins/openTripPlanner.js:1247 #, javascript-format msgid "Make a left u-turn onto %s" msgstr "Skrenite lijevo u %s" #: src/transitplugins/openTripPlanner.js:1249 msgid "Make a left u-turn" msgstr "Skrenite lijevo" #: src/transitplugins/openTripPlanner.js:1252 #, javascript-format msgid "Make a right u-turn onto %s" msgstr "Skrenite desno u %s" #: src/transitplugins/openTripPlanner.js:1254 msgid "Make a right u-turn" msgstr "Skrenite desno" #~ msgid "A map application for GNOME" #~ msgstr "Aplikacija karata za GNOME" #~ msgid "Failed to authorize access" #~ msgstr "Neuspjela ovjera pristupa" #~ msgid "Try again" #~ msgstr "Pokušaj ponovno" #~ msgid "Include route and markers" #~ msgstr "Uključi rute i oznake" #~ msgctxt "dialog title" #~ msgid "Edit on OpenStreetMap" #~ msgstr "Uredi na OpenStreetMap" #~ msgid "Foursquare check-in privacy setting" #~ msgstr "Postavke privatnosti Foursquare provjere" #~ msgid "" #~ "Latest used Foursquare check-in privacy setting. Possible values are: " #~ "public, followers or private." #~ msgstr "" #~ "Posljednje korištene postavke privatnosti Foursquare provjere. Moguće " #~ "vrijednosti su: public, followers ili private." #~ msgid "Foursquare check-in Facebook broadcasting" #~ msgstr "Foursquare emitira provjeru na Facebook" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a post in the " #~ "Facebook account associated with the Foursquare account." #~ msgstr "" #~ "Označava treba li Foursquare emitirati provjeru kao objavu na Facebook " #~ "računu pridruženu s Foursquare računom." #~ msgid "Foursquare check-in Twitter broadcasting" #~ msgstr "Foursquare emitira provjeru na Twitter" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a tweet in the " #~ "Twitter account associated with the Foursquare account." #~ msgstr "" #~ "Označava treba li Foursquare emitirati provjeru kao objavu na Twitter " #~ "računu pridruženu s Foursquare računom." #~ msgid "Use hybrid aerial tiles" #~ msgstr "Koristi hibridne zračne nazive" #~ msgid "Whether aerial tiles should use hybrid style (with labels)." #~ msgstr "Trebaju li zračni nazivi koristiti hibridni izgled (s oznakama)." #~ msgid "Visibility" #~ msgstr "Vidljivost" #~ msgid "Post on Facebook" #~ msgstr "Objavi na Facebooku" #~ msgid "Post on Twitter" #~ msgstr "Objavi na Twitteru" #~ msgid "C_heck in" #~ msgstr "P_rovjeri" #~ msgid "Public" #~ msgstr "Javno" #~ msgid "Followers" #~ msgstr "Sljedbenike" #~ msgid "Private" #~ msgstr "Privatno" #~ msgid "Show Labels" #~ msgstr "Prikaži oznake" #~ msgid "Maps is offline!" #~ msgstr "Karta je nedostupna!" #~ msgid "" #~ "Maps need an active internet connection to function properly, but one " #~ "can’t be found." #~ msgstr "" #~ "Karta treba aktivni internet povezivanje kako bi ispravno funkcionirala, " #~ "ali se ne može nijedan pronaći." #~ msgid "Check your connection and proxy settings." #~ msgstr "Provjerite vaše povezivanje i proxy postavke." #~ msgid "Email" #~ msgstr "E-pošta" #~ msgid "Password" #~ msgstr "Lozinka" #~ msgid "" #~ "Sorry, that didn’t work. Please try again, or visit\n" #~ "OpenStreetMap to reset your password." #~ msgstr "" #~ "Nažalost, to nije uspjelo. Pokušajte ponovno, ili posjetite\n" #~ "OpenStreetMap za obnovu lozinke." #~ msgid "Check In…" #~ msgstr "Provjeri…" #~ msgid "Show more results" #~ msgstr "Prikaži više rezultata" #~ msgid "Ignore network availability" #~ msgstr "Zanemari mrežnu dostupnost" #~ msgid "Select an account" #~ msgstr "Odaberi račun" #~ msgid "Loading" #~ msgstr "Učitavanje" #~ msgid "Select a place" #~ msgstr "Odaberi mjesto" #~ msgid "" #~ "Maps cannot find the place to check in to with Foursquare. Please select " #~ "one from this list." #~ msgstr "" #~ "Karte ne mogu pronaći mjesto za provjeru sa Foursquara. Odaberite jedno s " #~ "popisa." #, javascript-format #~ msgid "Check in to %s" #~ msgstr "Provjeri u %s" #, javascript-format #~ msgid "Write an optional message to check in to %s." #~ msgstr "Napiši neobaveznu poruku za provjeru u %s." #, javascript-format #~ msgid "Cannot find “%s” in the social service" #~ msgstr "Nemoguće je pronaći “%s” na društvenim mrežama" #~ msgid "Cannot find a suitable place to check-in in this location" #~ msgstr "Nemoguće je pronaći prikladno mjesto za provjeru ove lokacije" #~ msgid "" #~ "Credentials have expired, please open Online Accounts to sign in and " #~ "enable this account" #~ msgstr "" #~ "Vjerodajnice su istekle, otvorite mrežne račune za prijavu i omogućavanje " #~ "ovog računa" #~ msgid "GNOME Maps" #~ msgstr "GNOME Karte" #~ msgid "Night mode" #~ msgstr "Koristi noćni način rada" #~ msgid "Whether the application is in night mode." #~ msgstr "Je li aplikacija u noćnom načinu rada." #~ msgid "Night Mode" #~ msgstr "Noćni način rada" #~ msgid "" #~ "You can even search for specific types of locations, such as “Pubs near " #~ "Main Street, Boston” or “Hotels near Alexanderplatz, Berlin”." #~ msgstr "" #~ "Možete čak pretražiti određenu vrstu lokacije, poput \"Kavane blizu " #~ "Jelačić placa, Zagreb\" ili \"Hoteli blizu Straduna, Dubrovnik\"." #~ msgid "Facebook check-in privacy setting" #~ msgstr "Postavke privatnosti Facebook provjere" #~ msgid "" #~ "Latest used Facebook check-in privacy setting. Possible values are: " #~ "EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS or SELF." #~ msgstr "" #~ "Posljednje korištene postavke privatnosti Facebook provjere. Moguće " #~ "vrijednosti su: EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS ili SELF." #~ msgid "Everyone" #~ msgstr "Svakog" #~ msgid "Friends of friends" #~ msgstr "Prijatelje prijatelja" #~ msgid "Just friends" #~ msgstr "Samo prijatelje" #~ msgid "Just me" #~ msgstr "Samo meni" #~ msgid "" #~ "Maps cannot find the place to check in to with Facebook. Please select " #~ "one from this list." #~ msgstr "" #~ "Karte ne mogu pronaći mjesto za provjeru sa Facebooka. Odaberite jedno s " #~ "popisa." #~ msgid "Find a Route" #~ msgstr "Potraži rutu" #~ msgid "Check in here" #~ msgstr "Provjeri ovdje" #~ msgid "Show more information" #~ msgstr "Prikaži više informacija" #~ msgid "Population:" #~ msgstr "Populacija:" #~ msgid "Altitude:" #~ msgstr "Visina:" #~ msgid "Opening hours:" #~ msgstr "Vrijeme otvaranja:" #~ msgid "Internet access:" #~ msgstr "Pristup internetu:" #~ msgid "Toilets:" #~ msgstr "Toaleti:" #~ msgid "Wheelchair access:" #~ msgstr "Pristup za invalidska kolica:" #~ msgid "Phone:" #~ msgstr "Telefon:" #~ msgid "yes" #~ msgstr "da" #~ msgid "limited" #~ msgstr "ograničeno" #~ msgid "no" #~ msgstr "ne" #~ msgid "designated" #~ msgstr "određeno" #~ msgid "OpenStreetMap URL is not valid" #~ msgstr "OpenStreetMap URL nije valjan" #~ msgctxt "time range list" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgctxt "time range list" #~ msgid "%s %s %s" #~ msgstr "%s %s %s" #~ msgctxt "time range component" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgid "wired" #~ msgstr "žični priključak" #~ msgid "terminal" #~ msgstr "terminal" #~ msgid "service" #~ msgstr "usluga" #~ msgid "Don’t have an account?" #~ msgstr "Nemate račun?" #~ msgid "%f h" #~ msgstr "%f sat" #~ msgid "%f min" #~ msgstr "%f min" #~ msgid "%f s" #~ msgstr "%f s" #~ msgid "Route search by OpenTripPlanner" #~ msgstr "Ruta se traži pomoću OpenTripPlanner" #~ msgid "Add destination" #~ msgstr "Dodaj odredište" #~ msgid "org.gnome.Maps" #~ msgstr "org.gnome.Maps" #~ msgid "Open with another application" #~ msgstr "Otvori s drugom aplikacijom" #~ msgid "Press enter to search" #~ msgstr "Pritisnite Enter za pretragu" #~ msgid "Quit" #~ msgstr "Zatvori" #~ msgid "OK" #~ msgstr "U REDU" #~ msgid "Open Shape Layer…" #~ msgstr "Otvori sloj karte…" #~ msgid "Load Map Layer" #~ msgstr "Učitaj sloj karte" #~ msgid "Open Layer" #~ msgstr "Otvori sloj" #~ msgid "%f km" #~ msgstr "%f km" #~ msgid "%f m" #~ msgstr "%f m" #~ msgid "%f mi" #~ msgstr "%f mi" #~ msgid "%f ft" #~ msgstr "%f ft" 070701000001C9000081A4000000000000000000000001664134090000E548000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/hu.po# Hungarian translation for gnome-maps. # Copyright (C) 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024 Free Software Foundation, Inc. # This file is distributed under the same license as the gnome-maps package. # # Balázs Úr , 2013, 2014, 2015, 2016, 2018, 2019, 2020, 2021, 2022, 2023, 2024. # Gabor Kelemen , 2013, 2015, 2016, 2017. # Balázs Meskó , 2020, 2021, 2024. msgid "" msgstr "" "Project-Id-Version: gnome-maps master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2024-02-25 20:49+0000\n" "PO-Revision-Date: 2024-03-02 11:27+0100\n" "Last-Translator: Balázs Úr \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: Lokalize 23.08.4\n" #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.appdata.xml.in.in:6 data/org.gnome.Maps.desktop.in.in:4 #: data/ui/main-window.ui:27 src/application.js:64 src/mainWindow.js:147 #: src/mainWindow.js:647 msgid "Maps" msgstr "Térképek" #: data/org.gnome.Maps.appdata.xml.in.in:7 msgid "Find places around the world" msgstr "Helyek keresése a világ minden pontján" #: data/org.gnome.Maps.appdata.xml.in.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "A Térképek gyors hozzáférést ad térképekhez az egész világról. Lehetővé " "teszi egy keresett hely gyors megtalálását település vagy utca keresésével, " "vagy találni egy helyet, ahol ismerőseivel találkozhat." #: data/org.gnome.Maps.appdata.xml.in.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "A Térképek az együttműködésen alapuló OpenStreetMap adatbázist használja, " "amelyet több százezer ember készít a világ minden részén." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Maps.appdata.xml.in.in:451 src/mainWindow.js:644 msgid "The GNOME Project" msgstr "A GNOME projekt" #: data/org.gnome.Maps.desktop.in.in:5 msgid "A simple maps application" msgstr "Egyszerű térképalkalmazás" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in.in:14 msgid "Maps;" msgstr "Térképek;" #: data/org.gnome.Maps.desktop.in.in:17 msgid "Allows your location to be shown on the map." msgstr "Lehetővé teszi a földrajzi helyének megjelenítését a térképen." #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "legutóbbi megtekintett hely" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "Az utolsó megtekintett hely koordinátái." #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "nagyítás" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "Nagyítási szint" #: data/org.gnome.Maps.gschema.xml:21 msgid "rotation" msgstr "forgatás" #: data/org.gnome.Maps.gschema.xml:22 msgid "Map rotation in radians" msgstr "Térkép forgatása radiánban" #: data/org.gnome.Maps.gschema.xml:26 msgid "Map type" msgstr "Térképtípus" #: data/org.gnome.Maps.gschema.xml:27 msgid "The type of map to display (street, aerial, etc.)" msgstr "A megjelenítendő térkép típusa (utca, légi, stb.)" #: data/org.gnome.Maps.gschema.xml:31 msgid "Window size" msgstr "Ablakméret" #: data/org.gnome.Maps.gschema.xml:32 msgid "Window size (width and height)." msgstr "Ablak mérete (szélesség és magasság)." #: data/org.gnome.Maps.gschema.xml:36 msgid "Window position" msgstr "Ablakpozíció" #: data/org.gnome.Maps.gschema.xml:37 msgid "Window position (X and Y)." msgstr "Ablakpozíció (X és Y)." #: data/org.gnome.Maps.gschema.xml:41 msgid "Window maximized" msgstr "Ablak teljes méretű" #: data/org.gnome.Maps.gschema.xml:42 msgid "Window maximization state" msgstr "Az ablak maximalizált állapota" #: data/org.gnome.Maps.gschema.xml:46 msgid "Maximum number of search results" msgstr "A keresési találatok maximális száma" #: data/org.gnome.Maps.gschema.xml:47 msgid "Maximum number of search results from geocode search." msgstr "A keresési találatok maximális száma a geokód keresésből." #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent places to store" msgstr "A tárolandó legutóbbi helyek száma" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited places to store." msgstr "A tárolandó legutóbb látogatott helyek száma." #: data/org.gnome.Maps.gschema.xml:56 msgid "Number of recent routes to store" msgstr "A tárolandó legutóbbi útvonalak száma" #: data/org.gnome.Maps.gschema.xml:57 msgid "Number of recently visited routes to store." msgstr "A tárolandó legutóbb látogatott útvonalak száma." #: data/org.gnome.Maps.gschema.xml:61 #| msgid "OpenStreetMap username or e-mail address" msgid "OpenStreetMap username or email address" msgstr "OpenStreetMap felhasználónév vagy e-mail-cím" #: data/org.gnome.Maps.gschema.xml:62 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "" "Jelzi, hogy a felhasználó bejelentkezett-e az OpenStreetMap adatok " "szerkesztéséhez." #: data/org.gnome.Maps.gschema.xml:66 msgid "Last used transportation type for routing" msgstr "Legutóbb útvonaltervezéshez használt közlekedéstípus" #: data/org.gnome.Maps.gschema.xml:70 msgid "Show scale" msgstr "Méretarány megjelenítése" #: data/org.gnome.Maps.gschema.xml:71 msgid "Whether to show the scale." msgstr "Megjelenjen-e a méretarány." #: data/ui/context-menu.ui:6 msgid "Route from Here" msgstr "Útvonal innen" #: data/ui/context-menu.ui:10 msgid "Add Intermediate Destination" msgstr "Közbenső megálló hozzáadása" #: data/ui/context-menu.ui:14 msgid "Route to Here" msgstr "Útvonal ide" #: data/ui/context-menu.ui:20 msgid "What's Here?" msgstr "Mi van itt?" #: data/ui/context-menu.ui:24 msgid "Copy Location" msgstr "Hely másolása" #: data/ui/context-menu.ui:28 msgid "Add to OpenStreetMap…" msgstr "Hozzáadás az OpenStreetMaphez…" #: data/ui/export-view-dialog.ui:7 msgid "Export view" msgstr "Exportálási nézet" #: data/ui/export-view-dialog.ui:16 data/ui/send-to-dialog.ui:10 #: data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "_Mégse" #: data/ui/export-view-dialog.ui:26 msgid "_Export" msgstr "_Exportálás" #. Translators: This is a tooltip #: data/ui/favorite-list-row.ui:72 #| msgid "Favorites" msgid "Remove Favorite" msgstr "Kedvenc eltávolítása" #: data/ui/favorites-popover.ui:11 #| msgid "Favorites" msgid "No Favorites" msgstr "Nincsenek kedvencek" #: data/ui/favorites-popover.ui:12 msgid "Add places to your favorites to get them listed here" msgstr "Adjon helyeket a kedvencekhez, hogy itt jelenjenek meg" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:11 src/geoclue.js:106 msgid "Current Location" msgstr "Jelenlegi hely" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:19 msgid "Layers" msgstr "Rétegek" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:11 msgid "Print Route" msgstr "Útvonal nyomtatása" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:21 msgid "Favorites" msgstr "Kedvencek" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:30 msgid "Route Planner" msgstr "Útvonaltervező" #: data/ui/help-overlay.ui:12 msgctxt "shortcut window" msgid "General" msgstr "Általános" #: data/ui/help-overlay.ui:15 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "Gyorsbillentyűk megjelenítése" #: data/ui/help-overlay.ui:21 msgctxt "shortcut window" msgid "Search" msgstr "Keresés" #: data/ui/help-overlay.ui:27 msgctxt "shortcut window" msgid "Explore points-of-interest" msgstr "Érdekes pontok felfedezése" #: data/ui/help-overlay.ui:33 msgctxt "shortcut window" msgid "Show last search results" msgstr "Utolsó keresési eredmények megjelenítése" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "Útvonaltervező ki- és bekapcsolása" #: data/ui/help-overlay.ui:45 msgctxt "shortcut window" msgid "Print route" msgstr "Útvonal nyomtatása" #: data/ui/help-overlay.ui:51 msgctxt "shortcut window" msgid "Quit" msgstr "Kilépés" #: data/ui/help-overlay.ui:57 msgctxt "shortcut window" msgid "Open main menu" msgstr "Főmenü megnyitása" #: data/ui/help-overlay.ui:65 msgctxt "shortcut window" msgid "Map View" msgstr "Térkép nézet" #: data/ui/help-overlay.ui:68 msgctxt "shortcut window" msgid "Zoom in" msgstr "Nagyítás" #: data/ui/help-overlay.ui:74 msgctxt "shortcut window" msgid "Zoom out" msgstr "Kicsinyítés" #: data/ui/help-overlay.ui:80 msgctxt "shortcut window" msgid "Rotate clockwise" msgstr "Forgatás az óramutató irányába" #: data/ui/help-overlay.ui:86 msgctxt "shortcut window" msgid "Rotate counter-clockwise" msgstr "Forgatás az óramutatóval ellentétes irányba" #: data/ui/help-overlay.ui:92 msgctxt "shortcut window" msgid "Reset rotation" msgstr "Forgatás visszaállítása" #: data/ui/help-overlay.ui:98 msgctxt "shortcut window" msgid "Toggle scale" msgstr "Méretarány ki- és bekapcsolása" #: data/ui/help-overlay.ui:104 msgctxt "shortcut window" msgid "Go to current location" msgstr "Ugrás a jelenlegi helyre" #: data/ui/help-overlay.ui:114 msgctxt "shortcut window" msgid "Switch to street view" msgstr "Váltás utcanézetre" #: data/ui/help-overlay.ui:121 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "Váltás légifelvételre" #: data/ui/help-overlay.ui:127 msgctxt "shortcut window" msgid "Open shape layer" msgstr "Alak réteg megnyitása" #: data/ui/layers-popover.ui:7 msgid "Show Scale" msgstr "Méretarány megjelenítése" #: data/ui/layers-popover.ui:16 msgid "Enable Experimental Map" msgstr "Kísérleti térkép engedélyezése" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:21 msgid "Open Shape Layer…" msgstr "Alak réteg megnyitása…" #: data/ui/main-window.ui:8 msgid "Set up OpenStreetMap Account…" msgstr "OpenStreetMap-fiók beállítása…" #: data/ui/main-window.ui:12 msgid "Export as Image…" msgstr "Exportálás képként…" #: data/ui/main-window.ui:17 msgid "_Keyboard Shortcuts" msgstr "_Gyorsbillentyűk" #: data/ui/main-window.ui:22 msgid "About Maps" msgstr "A Térképek névjegye" #: data/ui/main-window.ui:48 msgid "Main Menu" msgstr "Főmenü" #: data/ui/osm-account-dialog.ui:5 msgid "OpenStreetMap Account" msgstr "OpenStreetMap-fiók" #: data/ui/osm-account-dialog.ui:31 msgid "Sign In To Edit Maps" msgstr "Bejelentkezés a térképek szerkesztéséhez" #: data/ui/osm-account-dialog.ui:32 #| msgid "" #| "Help to improve the map, using an\n" #| "OpenStreetMap account." msgid "Help to improve the map, using an OpenStreetMap account." msgstr "Segítsen a térkép javításában, egy OpenStreetMap-fiók használatával." #: data/ui/osm-account-dialog.ui:36 msgid "Sign In" msgstr "Bejelentkezés" #: data/ui/osm-account-dialog.ui:59 #| msgid "Verification code" msgid "Verification" msgstr "Ellenőrzés" #: data/ui/osm-account-dialog.ui:60 #| msgid "Copy verification code shown when authorizing access in the browser" msgid "" "Copy the verification code shown when authorizing access in the browser." msgstr "" "Másolja ki a böngészőben történő jogosultság-ellenőrzéskor megjelenített " "ellenőrzőkódot." #: data/ui/osm-account-dialog.ui:69 #| msgid "Verification code" msgid "Verification Code" msgstr "Ellenőrzőkód" #: data/ui/osm-account-dialog.ui:75 msgid "Verify" msgstr "Ellenőrzés" #: data/ui/osm-account-dialog.ui:110 #| msgid "Sign In" msgid "Signed In" msgstr "Bejelentkezve" #: data/ui/osm-account-dialog.ui:111 msgid "Your OpenStreetMap account is active." msgstr "Az OpenStreetMap-fiókja aktív." #: data/ui/osm-account-dialog.ui:129 msgid "Sign Out" msgstr "Kijelentkezés" #: data/ui/osm-edit-address.ui:11 msgid "Street" msgstr "Utca" #: data/ui/osm-edit-address.ui:22 msgid "House number" msgstr "Házszám" #: data/ui/osm-edit-address.ui:33 msgid "Postal code" msgstr "Irányítószám" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:44 msgid "City" msgstr "Város" #: data/ui/osm-edit-dialog.ui:8 msgctxt "dialog title" msgid "Edit on OpenStreetMap" msgstr "Szerkesztés az OpenStreetMapen" #: data/ui/osm-edit-dialog.ui:57 msgid "Type" msgstr "Típus" #: data/ui/osm-edit-dialog.ui:79 msgid "None" msgstr "Nincs" #: data/ui/osm-edit-dialog.ui:108 msgid "Add Field" msgstr "Mező hozzáadása" #: data/ui/osm-edit-dialog.ui:130 msgid "Comment" msgstr "Megjegyzés" #: data/ui/osm-edit-dialog.ui:158 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "A térképváltozások mindenhol láthatóvá válnak,\n" "ahol OpenStreetMap adatokat használnak." #: data/ui/osm-edit-dialog.ui:186 msgid "Recently Used" msgstr "Nemrég használt" #: data/ui/osm-edit-dialog.ui:225 src/mapView.js:671 msgid "Cancel" msgstr "Mégse" #: data/ui/osm-edit-dialog.ui:238 src/osmEditDialog.js:531 msgid "Next" msgstr "Következő" #: data/ui/osm-edit-wikipedia.ui:8 msgid "Article" msgstr "Szócikk" #: data/ui/osm-edit-wikipedia.ui:21 msgid "Wikidata tag" msgstr "Wikidata-címke" #: data/ui/osm-edit-wikipedia.ui:32 msgid "Load Wikidata tag for article" msgstr "Wikidata-címke betöltése a szócikkhez" #: data/ui/place-popover.ui:23 src/searchBar.js:55 msgid "Explore Nearby Places" msgstr "Közeli helyek felfedezése" #: data/ui/place-popover.ui:82 src/application.js:277 msgid "No results found" msgstr "Nincs találat" #: data/ui/place-popover.ui:92 src/application.js:255 msgid "An error has occurred" msgstr "Hiba történt" #. Translators: This is a tooltip #: data/ui/route-entry.ui:12 msgid "Change Route Order" msgstr "Útvonalsorrend megváltoztatása" #: data/ui/send-to-dialog.ui:7 msgid "Open Location" msgstr "Hely megnyitása" #: data/ui/send-to-dialog.ui:64 msgid "Copy" msgstr "Másolás" #: data/ui/send-to-dialog.ui:70 msgid "Send To…" msgstr "Küldés neki…" #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:62 msgid "Open Shape Layer" msgstr "Alak réteg megnyitása" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "_Megnyitás" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:32 msgid "Toggle visible" msgstr "Láthatóság ki- és bekapcsolása" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:44 msgid "Remove Shape Layer" msgstr "Alak réteg eltávolítása" #: data/ui/sidebar.ui:207 msgid "Route search by GraphHopper" msgstr "Útvonalkeresés a GraphHopperrel" #: data/ui/sidebar.ui:272 msgid "" "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of " "transportation,\n" "e.g. a national provider might not include airlines, and a local provider " "could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" "A közlekedési útvonalak harmadik féltől származó szolgáltatásból\n" "származnak.\n" "A GNOME nem garantálhatja a megjelenített útvonalak és menetrendek " "helyességét.\n" "Ne feledje, hogy egyes szolgáltatók lehet hogy nem tartalmazzák az összes " "elérhető\n" "közlekedési módokat, például egy nemzeti szolgáltató lehet, hogy nem " "tartalmazza\n" "a légitársaságokat, egy helyi szolgáltató pedig nem tartalmazza a " "regionális\n" "vonatokat.\n" "A megjelenített nevek és márkák adott esetben bejegyzett védjegyeknek " "tekintendők." #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:98 msgid "Hide intermediate stops and information" msgstr "Közbenső megállók és információk elrejtése" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:156 msgid "Show intermediate stops and information" msgstr "Közbenső megállók és információk megjelenítése" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:16 msgid "Leave Now" msgstr "Indulás most" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:17 msgid "Leave By" msgstr "Indulás ekkor" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:18 msgid "Arrive By" msgstr "Érkezés ekkor" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:85 msgid "Show" msgstr "Megjelenítés" #: data/ui/transit-options-panel.ui:95 msgid "Buses" msgstr "Buszok" #: data/ui/transit-options-panel.ui:101 msgid "Trams" msgstr "Villamosok" #: data/ui/transit-options-panel.ui:107 msgid "Trains" msgstr "Vonatok" #: data/ui/transit-options-panel.ui:113 msgid "Subway" msgstr "Metró" #: data/ui/transit-options-panel.ui:119 msgid "Ferries" msgstr "Kompok" #: data/ui/transit-options-panel.ui:125 msgid "Airplanes" msgstr "Repülőgépek" #. Translators: This is a tooltip #: data/ui/place-bar.ui:33 data/ui/place-buttons.ui:27 msgid "Share Location" msgstr "Hely megosztása" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:11 msgid "Add to new route" msgstr "Hozzáadás új útvonalhoz" #. Translators: This is the button to find a route to a place #: data/ui/place-buttons.ui:15 msgid "Directions" msgstr "Útvonal" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:36 msgid "Mark as Favorite" msgstr "Megjelölés kedvencként" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:44 msgid "Edit on OpenStreetMap" msgstr "Szerkesztés az OpenStreetMapen" #. Translators: This is a tooltip #: data/ui/place-view.ui:52 msgid "Share location" msgstr "Hely megosztása" #: data/ui/poi-category-goback-row.ui:22 msgid "Back to Main Categories" msgstr "Vissza a fő kategóriákhoz" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:19 msgid "Reset Rotation" msgstr "Forgatás visszaállítása" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:32 msgid "Zoom Out" msgstr "Kicsinyítés" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:43 src/mapView.js:1246 msgid "Zoom In" msgstr "Nagyítás" #: lib/maps-file-data-source.c:262 lib/maps-file-data-source.c:338 #: lib/maps-file-data-source.c:418 msgid "Failed to find tile structure in directory" msgstr "Nem sikerült csempeszerkezetet találni a könyvtárban" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "Az XML dokumentum feldolgozása sikertelen" #: lib/maps-osm.c:250 lib/maps-osm.c:403 msgid "Missing required attributes" msgstr "Szükséges attribútumok hiányoznak" #: lib/maps-osm.c:451 lib/maps-osm.c:494 msgid "Could not find OSM element" msgstr "Nem sikerült megtalálni az OSM elemet" #: lib/maps-osm.c:508 msgid "Could not find user element" msgstr "Nem sikerült megtalálni a felhasználó elemet" #: src/application.js:78 msgid "A path to a local tiles directory structure" msgstr "Egy útvonal a helyi csempék könyvtárszerkezetéhez" #: src/application.js:84 msgid "Tile size for local tiles directory" msgstr "A csempék mérete a helyi csempék könyvtárához" #: src/application.js:88 msgid "Show the version of the program" msgstr "A program verziószámának megjelenítése" #: src/application.js:94 msgid "Search for places" msgstr "Keressen helyeket" #: src/application.js:105 src/application.js:106 msgid "[FILE…|URI]" msgstr "[FÁJL…|URI]" #: src/application.js:284 #, javascript-format msgid "Invalid maps: URI: %s" msgstr "Érvénytelen térképek: URI: %s" #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:75 #, javascript-format msgid "Maps at %f, %f.png" msgstr "Térképek itt: %f, %f.png" #: src/exportViewDialog.js:174 msgid "Unable to export view" msgstr "A nézet exportálása sikertelen" #: src/favoriteListRow.js:42 #| msgid "Favorites" msgid "Favorite removed" msgstr "Kedvenc eltávolítva" #: src/favoriteListRow.js:43 msgid "Undo" msgstr "Visszavonás" #: src/geoJSONSource.js:73 msgid "invalid coordinate" msgstr "érvénytelen koordináta" #: src/geoJSONSource.js:126 src/geoJSONSource.js:166 src/geoJSONSource.js:181 msgid "parse error" msgstr "feldolgozási hiba" #: src/geoJSONSource.js:160 msgid "unknown geometry" msgstr "ismeretlen geometria" #: src/graphHopper.js:101 src/transitPlan.js:175 msgid "Route request failed." msgstr "Az útvonalkérés nem sikerült." #: src/graphHopper.js:108 src/transitPlan.js:167 msgid "No route found." msgstr "Nem található útvonal." #: src/graphHopper.js:195 src/transitplugins/openTripPlanner.js:1163 msgid "Start!" msgstr "Indulás!" #: src/mainWindow.js:59 msgid "All Layer Files" msgstr "Minden rétegfájl" #: src/mainWindow.js:522 msgid "Failed to connect to location service" msgstr "Nem sikerült kapcsolódni a helymeghatározó szolgáltatáshoz" #: src/mainWindow.js:527 msgid "Turn on location services" msgstr "Helymeghatározó szolgáltatások bekapcsolása" #: src/mainWindow.js:528 msgid "Location Settings" msgstr "Helybeállítások" #: src/mainWindow.js:645 msgid "translator-credits" msgstr "" "Meskó Balázs \n" "Úr Balázs " #: src/mainWindow.js:649 msgid "Copyright © 2011 – 2023 Red Hat, Inc. and The GNOME Maps authors" msgstr "Copyright © 2011 – 2023 Red Hat, Inc. és a GNOME Térképek szerzői" #: src/mainWindow.js:665 #, javascript-format msgid "Map data by %s and contributors" msgstr "Térképadatok: %s és közreműködők" #: src/mainWindow.js:666 msgid "Map Data Provider" msgstr "Térképadatok szolgáltatója" #: src/mainWindow.js:678 msgid "Map Tile Provider" msgstr "Térképcsempék szolgáltatója" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:686 #, javascript-format msgid "Map tiles provided by %s" msgstr "A térképcsempéket a(z) %s szolgáltatja" #: src/mainWindow.js:716 msgid "Search Provider" msgstr "Keresési szolgáltató" #: src/mainWindow.js:719 #, javascript-format msgid "Search provided by %s using %s" msgstr "A keresést a(z) %s biztosította %s használatával" #: src/mapView.js:645 src/mapView.js:710 msgid "Failed to open layer" msgstr "A réteg megnyitása nem sikerült" #: src/mapView.js:664 msgid "Do you want to continue?" msgstr "Szeretné folytatni?" #: src/mapView.js:665 #, javascript-format msgid "" "You are about to open files with a total size of %s MB. This could take some " "time to load" msgstr "" "Arra készül, hogy %s MB-nyi összméretű fájlokat nyit meg. A betöltése több " "időt vehet igénybe." #: src/mapView.js:672 src/transitplugins/openTripPlanner.js:1239 #: src/transitplugins/openTripPlanner2.js:267 msgid "Continue" msgstr "Haladjon tovább" #: src/mapView.js:704 msgid "File type is not supported" msgstr "A fájltípus nem támogatott" #: src/mapView.js:741 msgid "Failed to open GeoURI" msgstr "A GeoURI megnyitása nem sikerült" #: src/mapView.js:1205 msgid "Nothing found here!" msgstr "Itt nincs semmi!" #: src/mapView.js:1245 msgid "Zoom in to add location" msgstr "Nagyítson a hely hozzáadásához" #: src/mapView.js:1266 msgid "Location was added in OpenStreetMap" msgstr "A hely hozzá lett adva az OpenStreetMapen" #. switch back to the sign-in view, and show a toast indicating #. that verification failed #: src/osmAccountDialog.js:134 msgid "The verification code didn’t match, please try again." msgstr "Az ellenőrző kód nem egyezik, próbálja újra." #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:335 msgid "Incorrect user name or password" msgstr "Helytelen felhasználónév vagy jelszó" #: src/osmConnection.js:337 msgid "Success" msgstr "Sikerült" #: src/osmConnection.js:339 msgid "Bad request" msgstr "Rossz kérés" #: src/osmConnection.js:341 msgid "Object not found" msgstr "Nem található objektum" #: src/osmConnection.js:343 msgid "Conflict, someone else has just modified the object" msgstr "Konfliktus, valaki épp most módosította az objektumot" #: src/osmConnection.js:345 msgid "Object has been deleted" msgstr "Az objektum törlésre került" #: src/osmConnection.js:347 msgid "Way or relation refers to non-existing children" msgstr "Út vagy kapcsolat nem létező gyermekekre hivatkozik" #: src/osmEditDialog.js:106 msgid "Name" msgstr "Név" #: src/osmEditDialog.js:109 msgid "The official name. This is typically what appears on signs." msgstr "A hivatalos név. Jellemzően ez jelenik meg a jelzéseken." #: src/osmEditDialog.js:112 msgid "Address" msgstr "Cím" #: src/osmEditDialog.js:120 src/placeView.js:275 msgid "Website" msgstr "Weboldal" #: src/osmEditDialog.js:124 msgid "This is not a valid URL. Make sure to include http:// or https://." msgstr "" "Ez nem érvényes URL. Győződjön meg róla, hogy tartalmazza a http:// vagy " "https:// protokollt." #: src/osmEditDialog.js:125 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" "A hivatalos honlap. Próbálja meg az URL alapvető formáját használni, pl. " "http://pelda.hu a http://pelda.hu/index.html helyett." #: src/osmEditDialog.js:130 msgid "Phone" msgstr "Telefon" #: src/osmEditDialog.js:134 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" "Telefonszám. Használja a nemzetközi formátumot a + jellel. Figyeljen a helyi " "adatvédelmi törvényekre, különösen a magántelefonszámokra." #: src/osmEditDialog.js:139 src/placeView.js:308 #| msgid "E-mail" msgid "Email" msgstr "E-mail-cím" #: src/osmEditDialog.js:144 #| msgid "" #| "This is not a valid e-mail address. Make sure to not include the mailto: " #| "protocol prefix." msgid "" "This is not a valid email address. Make sure to not include the mailto: " "protocol prefix." msgstr "" "Ez nem érvényes e-mail-cím. Győződjön meg arról, hogy ne tartalmazza a " "mailto: protokollelőtagot." #: src/osmEditDialog.js:145 #| msgid "" #| "Contact e-mail address for inquiries. Add only email addresses that are " #| "intended to be publicly used." msgid "" "Contact email address for inquiries. Add only email addresses that are " "intended to be publicly used." msgstr "" "Kapcsolati e-mail-cím a kérdésekhez. Csak olyan e-mail-címet adjon meg, " "amelyet nyilvánosan használhatónak szán." #. Translators: This is the text for the "Wikipedia" link at the end #. of summaries #: src/osmEditDialog.js:149 src/placeView.js:727 msgid "Wikipedia" msgstr "Wikipédia" #: src/osmEditDialog.js:156 src/placeView.js:399 msgid "Opening hours" msgstr "Nyitva tartás" #: src/osmEditDialog.js:161 msgid "See the link in the label for help on format." msgstr "Kövesse a címke hivatkozását formázási segítségért." #. TODO: this is a bit of a work-around to re-interpret the population, #. * stored as a string into an integer to convert back to a locale- #. * formatted string. Ideally it should be kept as an integer value #. * in the Place class. But this will also need to be handled by the #. * PlaceStore, possible in a backwards-compatible way #. #: src/osmEditDialog.js:164 src/placeView.js:509 msgid "Population" msgstr "Népesség" #: src/osmEditDialog.js:169 src/placeView.js:538 msgid "Altitude" msgstr "Magasság" #: src/osmEditDialog.js:172 #| msgid "Elevation (height above sea level) of a point in metres." msgid "Elevation (height above sea level) of a point in meters." msgstr "Egy pont tengerszint feletti magassága méterben." #: src/osmEditDialog.js:175 msgid "Wheelchair access" msgstr "Kerekesszékes elérés" #: src/osmEditDialog.js:178 src/osmEditDialog.js:187 src/osmEditDialog.js:198 #: src/osmEditDialog.js:233 msgid "Yes" msgstr "Igen" #: src/osmEditDialog.js:179 src/osmEditDialog.js:188 src/osmEditDialog.js:199 #: src/osmEditDialog.js:234 msgid "No" msgstr "Nem" #: src/osmEditDialog.js:180 msgid "Limited" msgstr "Korlátozott" #: src/osmEditDialog.js:181 msgid "Designated" msgstr "Kijelölt" #: src/osmEditDialog.js:184 msgid "Internet access" msgstr "Internet-hozzáférés" #: src/osmEditDialog.js:189 msgid "Wi-Fi" msgstr "Wi-Fi" #: src/osmEditDialog.js:190 msgid "Wired" msgstr "Vezetékes" #: src/osmEditDialog.js:191 msgid "Terminal" msgstr "Terminál" #: src/osmEditDialog.js:192 msgid "Service" msgstr "Szolgáltatás" #: src/osmEditDialog.js:195 msgid "Takeout" msgstr "Elvitel" #: src/osmEditDialog.js:200 msgid "Only" msgstr "Kizárólag" #: src/osmEditDialog.js:203 msgid "Religion" msgstr "Vallás" #: src/osmEditDialog.js:206 src/translations.js:286 msgid "Animism" msgstr "Animizmus" #: src/osmEditDialog.js:207 msgid "Bahá’í" msgstr "Bahá’í" #: src/osmEditDialog.js:208 src/translations.js:288 msgid "Buddhism" msgstr "Buddhizmus" #: src/osmEditDialog.js:209 src/translations.js:289 msgid "Caodaism" msgstr "Kaodaizmus" #: src/osmEditDialog.js:210 src/translations.js:290 msgid "Christianity" msgstr "Kereszténység" #: src/osmEditDialog.js:211 src/translations.js:291 msgid "Confucianism" msgstr "Konfucianizmus" #: src/osmEditDialog.js:212 src/translations.js:292 msgid "Hinduism" msgstr "Hinduizmus" #: src/osmEditDialog.js:213 src/translations.js:293 msgid "Jainism" msgstr "Dzsainizmus" #: src/osmEditDialog.js:214 src/translations.js:294 msgid "Judaism" msgstr "Judaizmus" #: src/osmEditDialog.js:215 src/translations.js:295 msgid "Islam" msgstr "Iszlám" #: src/osmEditDialog.js:216 src/translations.js:296 msgid "Multiple Religions" msgstr "Több vallás" #: src/osmEditDialog.js:217 src/translations.js:297 msgid "Paganism" msgstr "Pogányság" #: src/osmEditDialog.js:218 src/translations.js:298 msgid "Pastafarianism" msgstr "Pasztafarizmus" #: src/osmEditDialog.js:219 src/translations.js:299 msgid "Scientology" msgstr "Szcientológia" #: src/osmEditDialog.js:220 src/translations.js:300 msgid "Shinto" msgstr "Sintoizmus" #: src/osmEditDialog.js:221 src/translations.js:301 msgid "Sikhism" msgstr "Szikhizmus" #: src/osmEditDialog.js:222 src/translations.js:302 msgid "Spiritualism" msgstr "Spiritualizmus" #: src/osmEditDialog.js:223 src/translations.js:303 msgid "Taoism" msgstr "Taoizmus" #: src/osmEditDialog.js:224 src/translations.js:304 msgid "Unitarian Universalism" msgstr "Unitárius univerzalizmus" #: src/osmEditDialog.js:225 src/translations.js:305 msgid "Voodoo" msgstr "Vudu" #: src/osmEditDialog.js:226 src/translations.js:306 msgid "Yazidism" msgstr "Jezidizmus" #: src/osmEditDialog.js:227 src/translations.js:307 msgid "Zoroastrianism" msgstr "Zoroasztrizmus" #: src/osmEditDialog.js:230 src/poiCategories.js:176 msgid "Toilets" msgstr "Toalett" #: src/osmEditDialog.js:237 msgid "Note" msgstr "Megjegyzés" #: src/osmEditDialog.js:240 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" "Más térképezőknek szánt információ, egy elem nem egyértelmű " "tulajdonságairól, a szerző szándékáról, vagy tippek a további finomításokhoz." #: src/osmEditDialog.js:339 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "Hozzáadás az OpenStreetMaphez" #: src/osmEditDialog.js:393 msgid "Select Type" msgstr "Válasszon egy típust" #: src/osmEditDialog.js:515 msgid "Done" msgstr "Kész" #: src/osmEditDialog.js:818 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "" "A használt formátumban legyen benne a nyelvi kód és a cikk címe, mint " "például „hu:Cikk címe”." #: src/osmEditDialog.js:824 msgid "Use the reload button to load the Wikidata tag for the selected article" msgstr "" "Használja az újratöltés gombot a kiválasztott szócikk Wikidata-címkéjének " "betöltéséhez" #: src/osmEditDialog.js:832 msgid "Couldn't find Wikidata tag for article" msgstr "Nem sikerült Wikidata-címkét találni a szócikkhez" #: src/photonUtils.js:118 msgid "Unnamed place" msgstr "Névtelen hely" #: src/placeEntry.js:274 msgid "Failed to parse Geo URI" msgstr "A Geo URI feldolgozása nem sikerült" #: src/placeEntry.js:286 msgid "Failed to parse Maps URI" msgstr "A térképek URI feldolgozása nem sikerült" #. 300 ft (300 * 12 * 0.0254 m) #. #. * Translators: This a format string for showing a distance to a place #. * is lower than a "quite short" distance. #. * The "less than" symbol can be substituded with an appropriate one, if #. * needed (e.g. using the correct direction, or alternative symbol). #. * The %s should be kept, and is substituted with a label representing the #. * short distance. The \u2009 (thin space) could also be adjusted if needed #: src/placeListRow.js:46 #, javascript-format msgctxt "short distance format string" msgid "< %s" msgstr "< %s" #: src/placeView.js:263 msgid "Coordinates" msgstr "Koordináták" #: src/placeView.js:267 msgid "Accuracy" msgstr "Pontosság" #. Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) #: src/placeView.js:270 #, javascript-format msgid "Accuracy: %s" msgstr "Pontosság: %s" #. since the phone numbers are typically always rendered #. * left-to-right, insert an explicit LRM char to avoid issues #. * with phone numbers in international format starting with a + #. * which is considered a "weak" character to determine Unicode #. * text direction #. #: src/placeView.js:289 msgid "Phone number" msgstr "Telefonszám" #. If a reference to a named floor (named or symbolic) exists #. * refer to it directly. #. #. Translators: #. * This is a reference to named building floor, using a label #. * or a code, as "displayed in the elevator" #. #: src/placeView.js:323 src/placeView.js:362 msgid "Floor" msgstr "Emelet" #: src/placeView.js:325 #, javascript-format msgid "Floor %s" msgstr "%s. emelet" #: src/placeView.js:337 #| msgid "At sea level" msgid "At ground level" msgstr "Földszinten" #. Translators: #. * This is a reference to a number of floors above #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:346 #, javascript-format msgid "%s floor above ground level" msgid_plural "%s floors above ground level" msgstr[0] "%s emelettel a földszint fölött" msgstr[1] "%s emelettel a földszint fölött" #. Translators: #. * This is a reference to a number of floors below #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:357 #, javascript-format #| msgid "%s below sea level" msgid "%s floor below ground level" msgid_plural "%s floors below ground level" msgstr[0] "%s emelettel a földszint alatt" msgstr[1] "%s emelettel a földszint alatt" #. Translators: #. * The establishment offers customers to purchase meals #. * (or similar) to be consumed elsewhere #. #: src/placeView.js:375 msgid "Offers takeout" msgstr "Elvitelt kínál" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed on-premise. #. #: src/placeView.js:383 msgid "Does not offer takeout" msgstr "Nem kínál elvitelt" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed elsewhere. E.g. #. * there is no seating on-premise for eating/drinking #. #: src/placeView.js:392 msgid "Only offers takeout" msgstr "Csak elvitelt kínál" #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/placeView.js:409 msgid "Public internet access" msgstr "Nyilvános internet-hozzáférés" #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/placeView.js:418 msgid "No internet access" msgstr "Nincs internet-hozzáférés" #. Translators: #. * This means a WLAN Hotspot, also known as wireless, wifi or Wi-Fi. #. #: src/placeView.js:426 msgid "Public Wi-Fi" msgstr "Nyilvános Wi-Fi" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/placeView.js:434 msgid "Wired internet access" msgstr "Vezetékes internet-hozzáférés" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/placeView.js:442 msgid "Computers available for use" msgstr "Használható számítógépek" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/placeView.js:450 msgid "Internet assistance available" msgstr "Internetes segítség érhető el" #: src/placeView.js:456 msgid "No toilets available" msgstr "Toalett nem érhető el" #: src/placeView.js:459 msgid "Toilets available" msgstr "Toalett elérhető" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #: src/placeView.js:468 msgid "Wheelchair accessible" msgstr "Kerekesszékkel elérhető" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/placeView.js:478 msgid "Limited wheelchair accessibility" msgstr "Kerekesszékkel korlátozottan érhető el" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #: src/placeView.js:487 msgid "Not wheelchair accessible" msgstr "Kerekesszékkel nem érhető el" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/placeView.js:497 msgid "Designated for wheelchair users" msgstr "Kerekesszéket használóknak kijelölt" #. * #. * Translators: this is a label indicating an altitude below #. * sea level, where the %s placeholder is the altitude relative #. * to mean sea level in the "negative direction" #. #: src/placeView.js:528 #, javascript-format msgid "%s below sea level" msgstr "Ennyivel a tengerszint alatt: %s" #. * #. * Translators: this indicates a place is located at (or very #. * close to) mean sea level #. #: src/placeView.js:535 msgid "At sea level" msgstr "Tengerszinten" #: src/placeView.js:544 msgid "Religion:" msgstr "Vallás:" #: src/place.js:570 msgid "Place not found in OpenStreetMap" msgstr "A hely nem található az OpenStreetMapen" #: src/place.js:577 msgid "Coordinates in URL are not valid" msgstr "Az URL-ben lévő koordináták nem érvényesek" #: src/place.js:586 msgid "URL is not supported" msgstr "Az URL nem támogatott" #: src/poiCategories.js:132 msgid "Amenities" msgstr "Szolgáltatások" #: src/poiCategories.js:135 msgid "ATMs" msgstr "ATM-ek" #: src/poiCategories.js:141 msgid "Post Boxes" msgstr "Postaládák" #: src/poiCategories.js:147 msgid "Post Offices" msgstr "Postahivatalok" #: src/poiCategories.js:153 msgid "Police" msgstr "Rendőrség" #: src/poiCategories.js:159 msgid "Libraries" msgstr "Könyvtárak" #: src/poiCategories.js:165 msgid "Pharmacies" msgstr "Gyógyszertárak" #: src/poiCategories.js:171 msgid "Recycling" msgstr "Újrahasznosítás" #: src/poiCategories.js:182 msgid "Wheelchair-accessible Toilets" msgstr "Kerekesszékkel elérhető WC-k" #: src/poiCategories.js:188 msgid "Baggage Lockers" msgstr "Poggyászmegőrző szekrények" #: src/poiCategories.js:196 msgid "Eating & Drinking" msgstr "Étkezés és ivás" #: src/poiCategories.js:200 msgid "Restaurants" msgstr "Éttermek" #: src/poiCategories.js:205 msgid "Fast Food" msgstr "Gyorsétterem" #: src/poiCategories.js:210 msgid "Food Courts" msgstr "Ételudvarok" #: src/poiCategories.js:215 msgid "Pubs" msgstr "Kocsmák" #: src/poiCategories.js:221 msgid "Bars" msgstr "Bárok" #: src/poiCategories.js:226 msgid "Cafes" msgstr "Kávézók" #: src/poiCategories.js:231 msgid "Ice Cream" msgstr "Fagylalt" #: src/poiCategories.js:236 msgid "Food, Snacks, and Beverage Machines" msgstr "Élelmiszer-, rágcsálnivaló- és italautomaták" #: src/poiCategories.js:244 msgid "Shopping" msgstr "Bevásárlás" #: src/poiCategories.js:248 msgid "Supermarkets" msgstr "Szupermarketek" #: src/poiCategories.js:254 msgid "Convenience Stores" msgstr "Kiskereskedelmi üzletek" #: src/poiCategories.js:259 msgid "Shopping Malls" msgstr "Bevásárlóközpontok" #: src/poiCategories.js:265 msgid "Clothes" msgstr "Ruházat" #: src/poiCategories.js:271 msgid "Shoes" msgstr "Cipők" #: src/poiCategories.js:276 msgid "Electronics" msgstr "Elektronika" #: src/poiCategories.js:282 msgid "Alcohol" msgstr "Alkohol" #: src/poiCategories.js:288 msgid "Bakeries" msgstr "Pékségek" #: src/poiCategories.js:294 msgid "Flowers" msgstr "Virágok" #: src/poiCategories.js:301 msgid "Transportation" msgstr "Közlekedés" #: src/poiCategories.js:305 msgid "Bus & Tram Stops" msgstr "Busz- és villamosmegállók" #: src/poiCategories.js:313 msgid "Train & Subway Stations" msgstr "Vasút- és metróállomások" #: src/poiCategories.js:321 msgid "Tickets" msgstr "Jegyek" #: src/poiCategories.js:329 msgid "Parking" msgstr "Parkolás" #: src/poiCategories.js:334 msgid "Bicycle Parking" msgstr "Kerékpárparkolás" #: src/poiCategories.js:339 msgid "Bicycle Rental" msgstr "Kerékpárkölcsönzés" #: src/poiCategories.js:344 msgid "Car Rental" msgstr "Autókölcsönzés" #: src/poiCategories.js:349 msgid "Fuel" msgstr "Üzemanyag" #: src/poiCategories.js:354 msgid "EV Charging" msgstr "Elektromosautó-töltés" #: src/poiCategories.js:362 msgid "Healthcare" msgstr "Egészségügy" #: src/poiCategories.js:366 msgid "Clinics" msgstr "Klinikák" #: src/poiCategories.js:372 msgid "Hospitals" msgstr "Kórházak" #: src/poiCategories.js:378 msgid "Dentists" msgstr "Fogorvosok" #: src/poiCategories.js:386 msgid "Accommodation" msgstr "Szálláshely" #: src/poiCategories.js:390 msgid "Hotels" msgstr "Hotelek" #: src/poiCategories.js:395 msgid "Hostels" msgstr "Szállók" #: src/poiCategories.js:400 msgid "Bed & Breakfast" msgstr "Panzió és reggeli" #: src/poiCategories.js:405 msgid "Campings" msgstr "Kempingek" #: src/poiCategories.js:412 msgid "Recreation" msgstr "Szabadidő" #: src/poiCategories.js:416 msgid "Parks" msgstr "Parkok" #: src/poiCategories.js:421 msgid "Playgrounds" msgstr "Játszóterek" #: src/poiCategories.js:425 msgid "Beaches" msgstr "Strandok" #: src/poiCategories.js:430 msgid "Nature Reserves" msgstr "Természetvédelmi területek" #: src/poiCategories.js:436 msgid "Theme Parks" msgstr "Vidámparkok" #: src/poiCategories.js:441 msgid "Theaters" msgstr "Színházak" #: src/poiCategories.js:447 msgid "Movie Theaters" msgstr "Mozik" #: src/poiCategories.js:453 msgid "Night Clubs" msgstr "Éjszakai klubok" #: src/poiCategories.js:460 msgid "Tourism" msgstr "Turizmus" #: src/poiCategories.js:464 msgid "Museums" msgstr "Múzeumok" #: src/poiCategories.js:470 msgid "Attractions" msgstr "Látványosságok" #: src/poiCategories.js:475 msgid "Artworks" msgstr "Műalkotások" #: src/poiCategories.js:480 msgid "Tourist Information" msgstr "Turisztikai információk" #: src/poiCategories.js:487 msgid "Sports" msgstr "Sportok" #: src/poiCategories.js:491 msgid "Gyms" msgstr "Edzőtermek" #: src/poiCategories.js:497 msgid "Outdoor Gyms" msgstr "Szabadtéri edzőtermek" #: src/poiCategories.js:503 msgid "Golf Courses" msgstr "Golfpályák" #: src/printLayout.js:350 #, javascript-format msgid "From %s to %s" msgstr "Ettől: %s, eddig: %s" #: src/printOperation.js:49 msgid "Loading map tiles for printing" msgstr "Térképszelvények betöltése nyomtatáshoz" #: src/printOperation.js:50 msgid "You can abort printing if this takes too long" msgstr "Megszakíthatja a nyomtatást, ha ez túl sokáig tart" #: src/printOperation.js:52 msgid "Abort printing" msgstr "Nyomtatás megszakítása" #. Translators: this is add via location tooltip #: src/routeEntry.js:60 msgid "Add via location" msgstr "Hozzáadás hely szerint" #. Translators: this is remove via location tooltip #: src/routeEntry.js:70 msgid "Remove via location" msgstr "Eltávolítás hely szerint" #. Translators: this is reverse route tooltip #: src/routeEntry.js:76 msgid "Reverse route" msgstr "Fordított útvonal" #: src/searchBar.js:45 msgid "Search" msgstr "Keresés" #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:84 #, javascript-format msgid "Add %s to %s" msgstr "%s hozzáadása ehhez: %s" #: src/sendToDialog.js:181 msgid "Failed to open URI" msgstr "Az URI megnyitása nem sikerült" #: src/sendToDialog.js:246 #, javascript-format msgid "Open with %s" msgstr "Megnyitás %s használatával" #: src/shapeLayer.js:109 msgid "failed to load file" msgstr "nem sikerült betölteni a fájlt" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:328 #, javascript-format msgid "Estimated time: %s" msgstr "Becsült idő: %s" #: src/sidebar.js:398 #, javascript-format msgid "Itineraries provided by %s" msgstr "Az útvonalakat a(z) %s szolgáltatja" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:39 #, javascript-format msgid "Start at %s" msgstr "Indulás innen: %s" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:45 src/transitplugins/openTripPlanner2.js:236 msgid "Start" msgstr "Indulás" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:63 #, javascript-format msgid "Walk %s" msgstr "Gyaloglás: %s" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:77 #, javascript-format msgid "Arrive at %s" msgstr "Érkezés ide: %s" #: src/transit.js:79 src/transitplugins/openTripPlanner.js:1176 #: src/transitplugins/openTripPlanner2.js:255 msgid "Arrive" msgstr "Érkezés" #: src/transitLegRow.js:69 msgid "Show walking instructions" msgstr "Gyaloglási utasítások megjelenítése" #: src/transitLegRow.js:70 msgid "Hide walking instructions" msgstr "Gyaloglási utasítások elrejtése" #: src/transitMoreRow.js:37 msgid "Load earlier alternatives" msgstr "Korábbi lehetőségek betöltése" #: src/transitMoreRow.js:39 msgid "Load later alternatives" msgstr "Későbbi lehetőségek betöltése" #: src/transitMoreRow.js:52 msgid "No earlier alternatives found." msgstr "Nem található korábbi lehetőség." #: src/transitMoreRow.js:54 msgid "No later alternatives found." msgstr "Nem található későbbi lehetőség." #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:138 msgctxt "month-day-date" msgid "%b %e" msgstr "%b. %e." #: src/transitPlan.js:171 msgid "No timetable data found for this route." msgstr "Nem található menetrend ehhez az útvonalhoz." #: src/transitPlan.js:179 msgid "No provider found for this route." msgstr "Nem található szolgáltató ehhez az útvonalhoz." #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:300 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:331 #, javascript-format msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "%s perc" msgstr[1] "%s perc" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:343 #, javascript-format msgid "%s hour" msgid_plural "%s hours" msgstr[0] "%s óra" msgstr[1] "%s óra" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:351 #, javascript-format msgid "%s:%s hour" msgid_plural "%s:%s hours" msgstr[0] "%s:%s óra" msgstr[1] "%s:%s óra" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:744 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: src/translations.js:55 msgid "Around the clock" msgstr "Éjjel-nappal" #: src/translations.js:57 msgid "From sunrise to sunset" msgstr "Napkeltétől napnyugtáig" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:123 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s, %s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:137 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s, %s, %s" #: src/translations.js:156 msgid "Every day" msgstr "Minden nap" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:168 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:179 msgid "Public holidays" msgstr "Munkaszüneti napok" #: src/translations.js:181 msgid "School holidays" msgstr "Tanszüneti napok" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:221 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: src/translations.js:235 msgid "not open" msgstr "nincs nyitva" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:250 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:287 msgid "Bahá'í" msgstr "Bahá'í" #. Translators: Accuracy of user location information #: src/utils.js:248 msgid "Unknown" msgstr "Ismeretlen" #. Translators: Accuracy of user location information #: src/utils.js:251 msgid "Exact" msgstr "Pontos" #. Translators: this is a duration with only hours, using #. * an abbreviation for hours, corresponding to 'h' in English #. #: src/utils.js:307 #, javascript-format msgid "%s h" msgstr "%s ó" #. Translators: this is a duration with hours and minutes parts #. * using abbreviations for hours and minutes, corresponding to 'h' #. * and 'min' in English. The minutes has appropriate plural variations #. #: src/utils.js:313 #, javascript-format msgid "%s h %s min" msgid_plural "%s h %s min" msgstr[0] "%s ó %s perc" msgstr[1] "%s ó %s perc" #. Translators: this is a duration with minutes part #. * using abbreviation for minutes, corresponding to 'min' in English #. * with appropriate plural variations #. #: src/utils.js:320 #, javascript-format msgid "%s min" msgid_plural "%s min" msgstr[0] "%s perc" msgstr[1] "%s perc" #. Translators: this is a duration of less than one minute #. * with seconds using an abbreviation for seconds, corresponding to #. * 's' in English with appropriate plural forms #. #: src/utils.js:326 #, javascript-format msgid "%s s" msgid_plural "%s s" msgstr[0] "%s mp" msgstr[1] "%s mp" #. Translators: This is a distance measured in kilometers #: src/utils.js:337 #, javascript-format msgid "%s km" msgstr "%s km" #. Translators: This is a distance measured in meters #: src/utils.js:340 #, javascript-format msgid "%s m" msgstr "%s m" #. Translators: This is a distance measured in miles #: src/utils.js:348 #, javascript-format msgid "%s mi" msgstr "%s mi" #. Translators: This is a distance measured in feet #: src/utils.js:351 #, javascript-format msgid "%s ft" msgstr "%s ft" #: src/transitplugins/goMetro.js:61 msgid "This plugin doesn't support latest arrival" msgstr "A bővítmény nem támogatja a legkésőbbi érkezést" #: src/transitplugins/openTripPlanner.js:1237 #: src/transitplugins/openTripPlanner2.js:266 #, javascript-format msgid "Continue on %s" msgstr "Haladjon tovább ezen: %s" #: src/transitplugins/openTripPlanner.js:1242 #: src/transitplugins/openTripPlanner2.js:270 #, javascript-format msgid "Turn left on %s" msgstr "Forduljon balra erre: %s" #: src/transitplugins/openTripPlanner.js:1244 #: src/transitplugins/openTripPlanner2.js:271 msgid "Turn left" msgstr "Forduljon balra" #: src/transitplugins/openTripPlanner.js:1247 #: src/transitplugins/openTripPlanner2.js:275 #, javascript-format msgid "Turn slightly left on %s" msgstr "Forduljon enyhén balra erre: %s" #: src/transitplugins/openTripPlanner.js:1249 #: src/transitplugins/openTripPlanner2.js:276 msgid "Turn slightly left" msgstr "Forduljon enyhén balra" #: src/transitplugins/openTripPlanner.js:1252 #: src/transitplugins/openTripPlanner2.js:280 #, javascript-format msgid "Turn sharp left on %s" msgstr "Forduljon élesen balra erre: %s" #: src/transitplugins/openTripPlanner.js:1254 #: src/transitplugins/openTripPlanner2.js:281 msgid "Turn sharp left" msgstr "Forduljon élesen balra" #: src/transitplugins/openTripPlanner.js:1257 #: src/transitplugins/openTripPlanner2.js:284 #, javascript-format msgid "Turn right on %s" msgstr "Forduljon jobbra erre: %s" #: src/transitplugins/openTripPlanner.js:1259 #: src/transitplugins/openTripPlanner2.js:285 msgid "Turn right" msgstr "Forduljon jobbra" #: src/transitplugins/openTripPlanner.js:1262 #: src/transitplugins/openTripPlanner2.js:289 #, javascript-format msgid "Turn slightly right on %s" msgstr "Forduljon enyhén jobbra erre: %s" #: src/transitplugins/openTripPlanner.js:1264 #: src/transitplugins/openTripPlanner2.js:290 msgid "Turn slightly right" msgstr "Forduljon enyhén jobbra" #: src/transitplugins/openTripPlanner.js:1267 #: src/transitplugins/openTripPlanner2.js:294 #, javascript-format msgid "Turn sharp right on %s" msgstr "Forduljon élesen jobbra erre: %s" #: src/transitplugins/openTripPlanner.js:1269 #: src/transitplugins/openTripPlanner2.js:295 msgid "Turn sharp right" msgstr "Forduljon élesen jobbra" #: src/transitplugins/openTripPlanner.js:1275 #: src/transitplugins/openTripPlanner2.js:302 #, javascript-format msgid "At the roundabout, take exit %s" msgstr "A körforgalomban válassza a(z) %s. kijáratot" #: src/transitplugins/openTripPlanner.js:1277 #: src/transitplugins/openTripPlanner2.js:305 #, javascript-format msgid "At the roundabout, take exit to %s" msgstr "A körforgalomban válassza a(z) %s felé tartó kijáratot" #: src/transitplugins/openTripPlanner.js:1279 #: src/transitplugins/openTripPlanner2.js:307 msgid "Take the roundabout" msgstr "Menjen a körforgalomba" #: src/transitplugins/openTripPlanner.js:1283 #: src/transitplugins/openTripPlanner2.js:315 #, javascript-format msgid "Take the elevator and get off at %s" msgstr "Menjen a lifthez, és szálljon ki itt: %s" #: src/transitplugins/openTripPlanner.js:1285 #: src/transitplugins/openTripPlanner2.js:316 msgid "Take the elevator" msgstr "Menjen a lifthez" #: src/transitplugins/openTripPlanner.js:1289 #: src/transitplugins/openTripPlanner2.js:320 #, javascript-format msgid "Make a left u-turn onto %s" msgstr "Forduljon vissza balra erre: %s" #: src/transitplugins/openTripPlanner.js:1291 #: src/transitplugins/openTripPlanner2.js:321 msgid "Make a left u-turn" msgstr "Forduljon vissza balra" #: src/transitplugins/openTripPlanner.js:1294 #: src/transitplugins/openTripPlanner2.js:325 #, javascript-format msgid "Make a right u-turn onto %s" msgstr "Forduljon vissza jobbra erre: %s" #: src/transitplugins/openTripPlanner.js:1296 #: src/transitplugins/openTripPlanner2.js:326 msgid "Make a right u-turn" msgstr "Forduljon vissza jobbra" 070701000001CA000081A4000000000000000000000001664134090000DD7D000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/id.po# Indonesian translation for gnome-maps. # Copyright (C) 2013 gnome-maps's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-maps package. # Andika Triwidada , 2013-2016, 2018, 2019, 2023. # Kukuh Syafaat , 2017-2024. # msgid "" msgstr "" "Project-Id-Version: gnome-maps main\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2024-02-14 22:30+0000\n" "PO-Revision-Date: 2024-02-16 21:09+0700\n" "Last-Translator: Kukuh Syafaat \n" "Language-Team: Indonesian \n" "Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 3.4.2\n" #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.appdata.xml.in.in:6 data/org.gnome.Maps.desktop.in.in:4 #: data/ui/main-window.ui:27 src/application.js:64 src/mainWindow.js:147 #: src/mainWindow.js:647 msgid "Maps" msgstr "Peta" #: data/org.gnome.Maps.appdata.xml.in.in:7 msgid "Find places around the world" msgstr "Temukan tempat di seluruh dunia" #: data/org.gnome.Maps.appdata.xml.in.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "Peta memberi Anda akses cepat ke peta di seluruh penjuru dunia. Ini " "memungkinkan Anda secara cepat menemukan tempat yang Anda cari dengan " "mencari suatu kota atau jalan, atau menemukan tempat untuk bertemu dengan " "teman." #: data/org.gnome.Maps.appdata.xml.in.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "Peta memakai basis data kolaboratif OpenStreetMap, yang dibuat oleh ratusan " "ribu orang di seluruh dunia." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Maps.appdata.xml.in.in:451 src/mainWindow.js:644 msgid "The GNOME Project" msgstr "Proyek GNOME" #: data/org.gnome.Maps.desktop.in.in:5 msgid "A simple maps application" msgstr "Aplikasi peta sederhana" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in.in:14 msgid "Maps;" msgstr "Peta;" #: data/org.gnome.Maps.desktop.in.in:17 msgid "Allows your location to be shown on the map." msgstr "Memungkinkan ditunjukkannya lokasi Anda pada peta." #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "lokasi yang terakhir dilihat" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "Koordinat dari lokasi yang terakhir dilihat." #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "perbesar" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "Tingkat perbesaran" #: data/org.gnome.Maps.gschema.xml:21 msgid "rotation" msgstr "rotasi" #: data/org.gnome.Maps.gschema.xml:22 msgid "Map rotation in radians" msgstr "Rotasi peta dalam radian" #: data/org.gnome.Maps.gschema.xml:26 msgid "Map type" msgstr "Jenis Peta" #: data/org.gnome.Maps.gschema.xml:27 msgid "The type of map to display (street, aerial, etc.)" msgstr "Jenis peta untuk ditampilkan (jalan, udara, dll.)" #: data/org.gnome.Maps.gschema.xml:31 msgid "Window size" msgstr "Ukuran jendela" #: data/org.gnome.Maps.gschema.xml:32 msgid "Window size (width and height)." msgstr "Ukuran jendela (lebar dan tinggi)." #: data/org.gnome.Maps.gschema.xml:36 msgid "Window position" msgstr "Posisi jendela" #: data/org.gnome.Maps.gschema.xml:37 msgid "Window position (X and Y)." msgstr "Posisi jendela (X dan Y)." #: data/org.gnome.Maps.gschema.xml:41 msgid "Window maximized" msgstr "Jendela dimaksimalkan" #: data/org.gnome.Maps.gschema.xml:42 msgid "Window maximization state" msgstr "Keadaan termaksimalkan jendela" #: data/org.gnome.Maps.gschema.xml:46 msgid "Maximum number of search results" msgstr "Banyaknya hasil pencarian maksimum" #: data/org.gnome.Maps.gschema.xml:47 msgid "Maximum number of search results from geocode search." msgstr "Banyanyak hasil pencarian maksimum dari pencarian geocode." #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent places to store" msgstr "Cacah lokasi baru-baru ini yang disimpan" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited places to store." msgstr "Banyaknya lokasi baru-baru ini dikunjungi yang disimpan." #: data/org.gnome.Maps.gschema.xml:56 msgid "Number of recent routes to store" msgstr "Cacah rute baru-baru ini yang akan disimpan" #: data/org.gnome.Maps.gschema.xml:57 msgid "Number of recently visited routes to store." msgstr "Banyaknya rute baru-baru ini dikunjungi yang akan disimpan." #: data/org.gnome.Maps.gschema.xml:61 msgid "OpenStreetMap username or email address" msgstr "Nama pengguna atau alamat surel OpenStreetMap" #: data/org.gnome.Maps.gschema.xml:62 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "" "Menandakan apakah pengguna telah masuk untuk menyunting data OpenStreetMap." #: data/org.gnome.Maps.gschema.xml:66 msgid "Last used transportation type for routing" msgstr "Jenis transportasi terakhir yang digunakan untuk rute" #: data/org.gnome.Maps.gschema.xml:70 msgid "Show scale" msgstr "Tampilkan skala" #: data/org.gnome.Maps.gschema.xml:71 msgid "Whether to show the scale." msgstr "Apakah akan menampilkan skala." #: data/ui/context-menu.ui:6 msgid "Route from Here" msgstr "Rute dari Sini" #: data/ui/context-menu.ui:10 msgid "Add Intermediate Destination" msgstr "Tambahkan Tujuan Antara" #: data/ui/context-menu.ui:14 msgid "Route to Here" msgstr "Rute ke Sini" #: data/ui/context-menu.ui:20 msgid "What's Here?" msgstr "Ada Apa Di Sini?" #: data/ui/context-menu.ui:24 msgid "Copy Location" msgstr "Salin Lokasi" #: data/ui/context-menu.ui:28 msgid "Add to OpenStreetMap…" msgstr "Tambahkan ke OpenStreetMap…" #: data/ui/export-view-dialog.ui:7 msgid "Export view" msgstr "Ekspor tilikan" #: data/ui/export-view-dialog.ui:16 data/ui/send-to-dialog.ui:10 #: data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "_Batal" #: data/ui/export-view-dialog.ui:26 msgid "_Export" msgstr "_Ekspor" #. Translators: This is a tooltip #: data/ui/favorite-list-row.ui:72 msgid "Remove Favorite" msgstr "Hapus Favorit" #: data/ui/favorites-popover.ui:11 msgid "No Favorites" msgstr "Tak Ada Favorit" #: data/ui/favorites-popover.ui:12 msgid "Add places to your favorites to get them listed here" msgstr "Tambahkan tempat ke favorit Anda agar tercantum di sini" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:11 src/geoclue.js:106 msgid "Current Location" msgstr "Lokasi Sekarang" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:19 msgid "Layers" msgstr "Lapisan" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:11 msgid "Print Route" msgstr "Cetak Rute" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:21 msgid "Favorites" msgstr "Favorit" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:30 msgid "Route Planner" msgstr "Perencana Rute" #: data/ui/help-overlay.ui:12 msgctxt "shortcut window" msgid "General" msgstr "Umum" #: data/ui/help-overlay.ui:15 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "Tampilkan Pintasan" #: data/ui/help-overlay.ui:21 msgctxt "shortcut window" msgid "Search" msgstr "Cari" #: data/ui/help-overlay.ui:27 msgctxt "shortcut window" msgid "Explore points-of-interest" msgstr "Jelajahi tempat menarik" #: data/ui/help-overlay.ui:33 msgctxt "shortcut window" msgid "Show last search results" msgstr "Tampilkan hasil pencarian terakhir" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "Jungkitkan perencana rute" #: data/ui/help-overlay.ui:45 msgctxt "shortcut window" msgid "Print route" msgstr "Cetak rute" #: data/ui/help-overlay.ui:51 msgctxt "shortcut window" msgid "Quit" msgstr "Keluar" #: data/ui/help-overlay.ui:57 msgctxt "shortcut window" msgid "Open main menu" msgstr "Buka menu utama" #: data/ui/help-overlay.ui:65 msgctxt "shortcut window" msgid "Map View" msgstr "Tilikan Peta" #: data/ui/help-overlay.ui:68 msgctxt "shortcut window" msgid "Zoom in" msgstr "Perbesar" #: data/ui/help-overlay.ui:74 msgctxt "shortcut window" msgid "Zoom out" msgstr "Perkecil" #: data/ui/help-overlay.ui:80 msgctxt "shortcut window" msgid "Rotate clockwise" msgstr "Putar searah jarum jam" #: data/ui/help-overlay.ui:86 msgctxt "shortcut window" msgid "Rotate counter-clockwise" msgstr "Putar berlawanan jarum jam" #: data/ui/help-overlay.ui:92 msgctxt "shortcut window" msgid "Reset rotation" msgstr "Setel ulang rotasi" #: data/ui/help-overlay.ui:98 msgctxt "shortcut window" msgid "Toggle scale" msgstr "Jungkitkan skala" #: data/ui/help-overlay.ui:104 msgctxt "shortcut window" msgid "Go to current location" msgstr "Pergi ke lokasi saat ini" #: data/ui/help-overlay.ui:114 msgctxt "shortcut window" msgid "Switch to street view" msgstr "Beralih ke tampilan jalan" #: data/ui/help-overlay.ui:121 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "Beralih ke tampilan udara" #: data/ui/help-overlay.ui:127 msgctxt "shortcut window" msgid "Open shape layer" msgstr "Buka layer shape" #: data/ui/layers-popover.ui:7 msgid "Show Scale" msgstr "Tampilkan Skala" #: data/ui/layers-popover.ui:16 msgid "Enable Experimental Map" msgstr "Aktifkan Peta Eksperimental" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:21 msgid "Open Shape Layer…" msgstr "Buka Layer Shape…" #: data/ui/main-window.ui:8 msgid "Set up OpenStreetMap Account…" msgstr "Menyiapkan Akun OpenStreetMap…" #: data/ui/main-window.ui:12 msgid "Export as Image…" msgstr "Ekspor sebagai Citra…" #: data/ui/main-window.ui:17 msgid "_Keyboard Shortcuts" msgstr "_Tombol Pintas" #: data/ui/main-window.ui:22 msgid "About Maps" msgstr "Tentang Peta" #: data/ui/main-window.ui:48 msgid "Main Menu" msgstr "Menu Utama" #: data/ui/osm-account-dialog.ui:5 msgid "OpenStreetMap Account" msgstr "Akun OpenStreetMap" #: data/ui/osm-account-dialog.ui:31 msgid "Sign In To Edit Maps" msgstr "Masuk Untuk Menyunting Peta" #: data/ui/osm-account-dialog.ui:32 msgid "Help to improve the map, using an OpenStreetMap account." msgstr "Bantulah memperbaiki peta, memakai akun OpenStreetMap." #: data/ui/osm-account-dialog.ui:36 msgid "Sign In" msgstr "Masuk" #: data/ui/osm-account-dialog.ui:59 msgid "Verification" msgstr "Verifikasi" #: data/ui/osm-account-dialog.ui:60 msgid "" "Copy the verification code shown when authorizing access in the browser." msgstr "" "Salin kode verifikasi yang ditampilkan saat mengotorisasi akses di permaban." #: data/ui/osm-account-dialog.ui:69 msgid "Verification Code" msgstr "Kode Verifikasi" #: data/ui/osm-account-dialog.ui:75 msgid "Verify" msgstr "Verifikasi" #: data/ui/osm-account-dialog.ui:110 msgid "Signed In" msgstr "Sudah Masuk" #: data/ui/osm-account-dialog.ui:111 msgid "Your OpenStreetMap account is active." msgstr "Akun OpenStreetMap Anda aktif." #: data/ui/osm-account-dialog.ui:129 msgid "Sign Out" msgstr "Keluar" #: data/ui/osm-edit-address.ui:11 msgid "Street" msgstr "Jalan" #: data/ui/osm-edit-address.ui:22 msgid "House number" msgstr "Nomor rumah" #: data/ui/osm-edit-address.ui:33 msgid "Postal code" msgstr "Kode pos" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:44 msgid "City" msgstr "Kota" #: data/ui/osm-edit-dialog.ui:8 msgctxt "dialog title" msgid "Edit on OpenStreetMap" msgstr "Sunting pada OpenStreetMap" #: data/ui/osm-edit-dialog.ui:57 msgid "Type" msgstr "Jenis" #: data/ui/osm-edit-dialog.ui:79 msgid "None" msgstr "Nihil" #: data/ui/osm-edit-dialog.ui:108 msgid "Add Field" msgstr "Tambah Ruas" #: data/ui/osm-edit-dialog.ui:130 msgid "Comment" msgstr "Komentar" #: data/ui/osm-edit-dialog.ui:158 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "Perubahan peta akan tampak pada semua peta yang memakai\n" "data OpenStreetMap." #: data/ui/osm-edit-dialog.ui:186 msgid "Recently Used" msgstr "Baru-baru Ini Dipakai" #: data/ui/osm-edit-dialog.ui:225 src/mapView.js:663 msgid "Cancel" msgstr "Batal" #: data/ui/osm-edit-dialog.ui:238 src/osmEditDialog.js:531 msgid "Next" msgstr "Selanjutnya" #: data/ui/osm-edit-wikipedia.ui:8 msgid "Article" msgstr "Artikel" #: data/ui/osm-edit-wikipedia.ui:21 msgid "Wikidata tag" msgstr "Tag Wikidata" #: data/ui/osm-edit-wikipedia.ui:32 msgid "Load Wikidata tag for article" msgstr "Muat tag Wikidata untuk artikel" #: data/ui/place-popover.ui:23 src/searchBar.js:55 msgid "Explore Nearby Places" msgstr "Jelajahi Tempat Terdekat" #: data/ui/place-popover.ui:82 src/application.js:277 msgid "No results found" msgstr "Hasil tak ditemukan" #: data/ui/place-popover.ui:92 src/application.js:255 msgid "An error has occurred" msgstr "Terjadi suatu kesalahan" #. Translators: This is a tooltip #: data/ui/route-entry.ui:12 msgid "Change Route Order" msgstr "Ubah Urutan Rute" #: data/ui/send-to-dialog.ui:7 msgid "Open Location" msgstr "Buka Lokasi" #: data/ui/send-to-dialog.ui:64 msgid "Copy" msgstr "Salin" #: data/ui/send-to-dialog.ui:70 msgid "Send To…" msgstr "Kirim Ke…" #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:62 msgid "Open Shape Layer" msgstr "Buka Layer Shape" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "_Buka" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:32 msgid "Toggle visible" msgstr "Jungkitkan kenampakan" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:44 msgid "Remove Shape Layer" msgstr "Hapus Layer Shape" #: data/ui/sidebar.ui:207 msgid "Route search by GraphHopper" msgstr "Pencarian rute oleh GraphHopper" #: data/ui/sidebar.ui:272 msgid "" "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of " "transportation,\n" "e.g. a national provider might not include airlines, and a local provider " "could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" "Rute perjalanan untuk angkutan umum disediakan oleh layanan pihak ketiga.\n" "GNOME tidak dapat menjamin kebenaran dari perjalanan dan jadwal yang " "ditampilkan.\n" "Perhatikan bawa beberapa penyedia mungkin tidak menyertakan semua mode " "transportasi\n" "yang tersedia, mis. sebuah penyedia nasional mungkin tidak menyertakan " "penerbangan,\n" "dan suatu penyedia lokal mungkin tidak punya jadwal kereta regional.\n" "Nama dan merek yang ditampilkan dianggap sebagai merek dagang terdaftar " "ketika berlaku." #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:98 msgid "Hide intermediate stops and information" msgstr "Sembunyikan informasi dan perhentian antara" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:156 msgid "Show intermediate stops and information" msgstr "Tampilkan berhenti menengah dan informasi" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:16 msgid "Leave Now" msgstr "Pergi Sekarang" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:17 msgid "Leave By" msgstr "Pergi Pada" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:18 msgid "Arrive By" msgstr "Tiba Pada" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:85 msgid "Show" msgstr "Tampilkan" #: data/ui/transit-options-panel.ui:95 msgid "Buses" msgstr "Bis" #: data/ui/transit-options-panel.ui:101 msgid "Trams" msgstr "Trem" #: data/ui/transit-options-panel.ui:107 msgid "Trains" msgstr "Kereta api" #: data/ui/transit-options-panel.ui:113 msgid "Subway" msgstr "Kereta bawah tanah" #: data/ui/transit-options-panel.ui:119 msgid "Ferries" msgstr "Feri" #: data/ui/transit-options-panel.ui:125 msgid "Airplanes" msgstr "Penerbangan" #. Translators: This is a tooltip #: data/ui/place-bar.ui:33 data/ui/place-buttons.ui:27 msgid "Share Location" msgstr "Bagikan Lokasi" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:11 msgid "Add to new route" msgstr "Tambah ke rute baru" #. Translators: This is the button to find a route to a place #: data/ui/place-buttons.ui:15 msgid "Directions" msgstr "Petunjuk Arah" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:36 msgid "Mark as Favorite" msgstr "Tandai sebagai Favorit" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:44 msgid "Edit on OpenStreetMap" msgstr "Sunting pada OpenStreetMap" #. Translators: This is a tooltip #: data/ui/place-view.ui:52 msgid "Share location" msgstr "Bagikan lokasi" #: data/ui/poi-category-goback-row.ui:22 msgid "Back to Main Categories" msgstr "Kembali ke Kategori Utama" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:19 msgid "Reset Rotation" msgstr "Setel Ulang Rotasi" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:32 msgid "Zoom Out" msgstr "Perkecil" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:43 src/mapView.js:1238 msgid "Zoom In" msgstr "Perbesar" #: lib/maps-file-data-source.c:262 lib/maps-file-data-source.c:338 #: lib/maps-file-data-source.c:418 msgid "Failed to find tile structure in directory" msgstr "Gagal menemukan struktur ubin dalam direktori" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "Gagal mengurai dokumen XML" #: lib/maps-osm.c:250 lib/maps-osm.c:403 msgid "Missing required attributes" msgstr "Atribut yang diperlukan kurang" #: lib/maps-osm.c:451 lib/maps-osm.c:494 msgid "Could not find OSM element" msgstr "Tak bisa temukan elemen OSM" #: lib/maps-osm.c:508 msgid "Could not find user element" msgstr "Tidak dapat menemukan elemen pengguna" #: src/application.js:78 msgid "A path to a local tiles directory structure" msgstr "Suatu path ke sebuah struktur direktori ubin lokal" #: src/application.js:84 msgid "Tile size for local tiles directory" msgstr "Ukuran ubin untuk direktori ubin lokal" #: src/application.js:88 msgid "Show the version of the program" msgstr "Tampilkan versi program" #: src/application.js:94 msgid "Search for places" msgstr "Cari tempat" #: src/application.js:105 src/application.js:106 msgid "[FILE…|URI]" msgstr "[FILE…|URI]" #: src/application.js:284 #, javascript-format msgid "Invalid maps: URI: %s" msgstr "Peta tidak valid: URI: %s" #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:75 #, javascript-format msgid "Maps at %f, %f.png" msgstr "Peta di %f, %f.png" #: src/exportViewDialog.js:174 msgid "Unable to export view" msgstr "Tak bisa mengekspor tilikan" #: src/favoriteListRow.js:42 msgid "Favorite removed" msgstr "Favorit dihapus" #: src/favoriteListRow.js:43 msgid "Undo" msgstr "Tak Jadi" #: src/geoJSONSource.js:73 msgid "invalid coordinate" msgstr "koordinat tak valid" #: src/geoJSONSource.js:126 src/geoJSONSource.js:166 src/geoJSONSource.js:181 msgid "parse error" msgstr "galat penguraian" #: src/geoJSONSource.js:160 msgid "unknown geometry" msgstr "geometri tak dikenal" #: src/graphHopper.js:101 src/transitPlan.js:175 msgid "Route request failed." msgstr "Permintaan rute gagal." #: src/graphHopper.js:108 src/transitPlan.js:167 msgid "No route found." msgstr "Rute tak ditemukan." #: src/graphHopper.js:195 src/transitplugins/openTripPlanner.js:1163 msgid "Start!" msgstr "Mulai!" #: src/mainWindow.js:59 msgid "All Layer Files" msgstr "Semua Berkas Lapisan" #: src/mainWindow.js:522 msgid "Failed to connect to location service" msgstr "Gagal menyambung ke layanan lokasi" #: src/mainWindow.js:527 msgid "Turn on location services" msgstr "Nyalakan layanan lokasi" #: src/mainWindow.js:528 msgid "Location Settings" msgstr "Pengaturan Lokasi" #: src/mainWindow.js:645 msgid "translator-credits" msgstr "" "Andika Triwidada , 2013-2016, 2018, 2019, 2023.\n" "Kukuh Syafaat , 2017-2024." #: src/mainWindow.js:649 msgid "Copyright © 2011 – 2023 Red Hat, Inc. and The GNOME Maps authors" msgstr "Hak Cipta © 2011 – 2023 Red Hat, Inc. dan Penulis GNOME Peta" #: src/mainWindow.js:665 #, javascript-format msgid "Map data by %s and contributors" msgstr "Data peta oleh %s dan kontributor" #: src/mainWindow.js:666 msgid "Map Data Provider" msgstr "Penyedia Data Peta" #: src/mainWindow.js:678 msgid "Map Tile Provider" msgstr "Penyedia Ubin Peta" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:686 #, javascript-format msgid "Map tiles provided by %s" msgstr "Ubin peta disediakan oleh %s" #: src/mainWindow.js:716 msgid "Search Provider" msgstr "Penyedia Pencarian" #: src/mainWindow.js:719 #, javascript-format msgid "Search provided by %s using %s" msgstr "Pencarian disediakan oleh %s menggunakan %s" #: src/mapView.js:637 src/mapView.js:702 msgid "Failed to open layer" msgstr "Gagal membuka layer" #: src/mapView.js:656 msgid "Do you want to continue?" msgstr "Apakah Anda ingin melanjutkan?" #: src/mapView.js:657 #, javascript-format msgid "" "You are about to open files with a total size of %s MB. This could take some " "time to load" msgstr "" "Anda berencana membuka berkas dengan ukuran total %s MB. Ini bisa memakan " "waktu untuk memuat" #: src/mapView.js:664 src/transitplugins/openTripPlanner.js:1239 #: src/transitplugins/openTripPlanner2.js:267 msgid "Continue" msgstr "Lanjutkan" #: src/mapView.js:696 msgid "File type is not supported" msgstr "Jenis berkas tak didukung" #: src/mapView.js:733 msgid "Failed to open GeoURI" msgstr "Gagal membuka GeoURI" #: src/mapView.js:1197 msgid "Nothing found here!" msgstr "Tak ada yang ditemukan di sini!" #: src/mapView.js:1237 msgid "Zoom in to add location" msgstr "Perbesar untuk menambah lokasi" #: src/mapView.js:1258 msgid "Location was added in OpenStreetMap" msgstr "Lokasi ditambahkan pada OpenStreetMap" #. switch back to the sign-in view, and show a toast indicating #. that verification failed #: src/osmAccountDialog.js:134 msgid "The verification code didn’t match, please try again." msgstr "Kode verifikasi tidak cocok, silakan coba lagi." #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:335 msgid "Incorrect user name or password" msgstr "Nama pengguna atau sandi salah" #: src/osmConnection.js:337 msgid "Success" msgstr "Berhasil" #: src/osmConnection.js:339 msgid "Bad request" msgstr "Permintaan yang buruk" #: src/osmConnection.js:341 msgid "Object not found" msgstr "Objek tak ditemukan" #: src/osmConnection.js:343 msgid "Conflict, someone else has just modified the object" msgstr "Konflik, seseorang baru saja mengubah objek itu" #: src/osmConnection.js:345 msgid "Object has been deleted" msgstr "Objek telah dihapus" #: src/osmConnection.js:347 msgid "Way or relation refers to non-existing children" msgstr "Cara atau hubungan mengacu ke anak yang tak ada" #: src/osmEditDialog.js:106 msgid "Name" msgstr "Nama" #: src/osmEditDialog.js:109 msgid "The official name. This is typically what appears on signs." msgstr "Nama resmi. Ini biasanya apa yang tertulis pada rambu." #: src/osmEditDialog.js:112 msgid "Address" msgstr "Alamat" #: src/osmEditDialog.js:120 src/placeView.js:275 msgid "Website" msgstr "Situs web" #: src/osmEditDialog.js:124 msgid "This is not a valid URL. Make sure to include http:// or https://." msgstr "" "Ini bukan URL yang valid. Pastikan untuk menyertakan http:// atau https://." #: src/osmEditDialog.js:125 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" "Situs web resmi. Cobalah memakai bentuk URL paling dasar yaitu http://" "example.com/ bukan http://example.com/index.html." #: src/osmEditDialog.js:130 msgid "Phone" msgstr "Telepon" #: src/osmEditDialog.js:134 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" "Nomor telepon. Gunakan format internasional, diawali dengan tanda +. Hati-" "hati dengan perundangan privasi lokal, khususnya untuk nomor telepon pribadi." #: src/osmEditDialog.js:139 msgid "E-mail" msgstr "Surel" #: src/osmEditDialog.js:144 msgid "" "This is not a valid email address. Make sure to not include the mailto: " "protocol prefix." msgstr "" "Ini bukan alamat surel yang valid. Pastikan untuk tidak menyertakan awalan " "protokol mailto:." #: src/osmEditDialog.js:145 msgid "" "Contact email address for inquiries. Add only email addresses that are " "intended to be publicly used." msgstr "" "Hubungi alamat surel untuk pertanyaan. Tambahkan hanya alamat surel yang " "dimaksudkan untuk digunakan secara publik." #. Translators: This is the text for the "Wikipedia" link at the end #. of summaries #: src/osmEditDialog.js:149 src/placeView.js:727 msgid "Wikipedia" msgstr "Wikipedia" #: src/osmEditDialog.js:156 src/placeView.js:399 msgid "Opening hours" msgstr "Jam buka" #: src/osmEditDialog.js:161 msgid "See the link in the label for help on format." msgstr "Lihat taut dalam label untuk bantuan tentang format." #. TODO: this is a bit of a work-around to re-interpret the population, #. * stored as a string into an integer to convert back to a locale- #. * formatted string. Ideally it should be kept as an integer value #. * in the Place class. But this will also need to be handled by the #. * PlaceStore, possible in a backwards-compatible way #. #: src/osmEditDialog.js:164 src/placeView.js:509 msgid "Population" msgstr "Populasi" #: src/osmEditDialog.js:169 src/placeView.js:538 msgid "Altitude" msgstr "Ketinggian" #: src/osmEditDialog.js:172 msgid "Elevation (height above sea level) of a point in meters." msgstr "Elevasi (ketinggian di atas muka laut) dari suatu titik dalam meter." #: src/osmEditDialog.js:175 msgid "Wheelchair access" msgstr "Akses kursi roda" #: src/osmEditDialog.js:178 src/osmEditDialog.js:187 src/osmEditDialog.js:198 #: src/osmEditDialog.js:233 msgid "Yes" msgstr "Ya" #: src/osmEditDialog.js:179 src/osmEditDialog.js:188 src/osmEditDialog.js:199 #: src/osmEditDialog.js:234 msgid "No" msgstr "Tidak" #: src/osmEditDialog.js:180 msgid "Limited" msgstr "Terbatas" #: src/osmEditDialog.js:181 msgid "Designated" msgstr "Ditugaskan" #: src/osmEditDialog.js:184 msgid "Internet access" msgstr "Akses internet" #: src/osmEditDialog.js:189 msgid "Wi-Fi" msgstr "Wi-Fi" #: src/osmEditDialog.js:190 msgid "Wired" msgstr "Ethernet" #: src/osmEditDialog.js:191 msgid "Terminal" msgstr "Terminal" #: src/osmEditDialog.js:192 msgid "Service" msgstr "Layanan" #: src/osmEditDialog.js:195 msgid "Takeout" msgstr "Bawa Pulang" #: src/osmEditDialog.js:200 msgid "Only" msgstr "Hanya" #: src/osmEditDialog.js:203 msgid "Religion" msgstr "Agama" #: src/osmEditDialog.js:206 src/translations.js:286 msgid "Animism" msgstr "Animisme" #: src/osmEditDialog.js:207 msgid "Bahá’í" msgstr "Bahá’í" #: src/osmEditDialog.js:208 src/translations.js:288 msgid "Buddhism" msgstr "Buddhisme" #: src/osmEditDialog.js:209 src/translations.js:289 msgid "Caodaism" msgstr "Caodaisme" #: src/osmEditDialog.js:210 src/translations.js:290 msgid "Christianity" msgstr "Kekristenan" #: src/osmEditDialog.js:211 src/translations.js:291 msgid "Confucianism" msgstr "Konfusianisme" #: src/osmEditDialog.js:212 src/translations.js:292 msgid "Hinduism" msgstr "Hinduisme" #: src/osmEditDialog.js:213 src/translations.js:293 msgid "Jainism" msgstr "Jainisme" #: src/osmEditDialog.js:214 src/translations.js:294 msgid "Judaism" msgstr "Judaisme" #: src/osmEditDialog.js:215 src/translations.js:295 msgid "Islam" msgstr "Islam" #: src/osmEditDialog.js:216 src/translations.js:296 msgid "Multiple Religions" msgstr "Multi Agama" #: src/osmEditDialog.js:217 src/translations.js:297 msgid "Paganism" msgstr "Pagan" #: src/osmEditDialog.js:218 src/translations.js:298 msgid "Pastafarianism" msgstr "Pastafarianisme" #: src/osmEditDialog.js:219 src/translations.js:299 msgid "Scientology" msgstr "Saintologi" #: src/osmEditDialog.js:220 src/translations.js:300 msgid "Shinto" msgstr "Shinto" #: src/osmEditDialog.js:221 src/translations.js:301 msgid "Sikhism" msgstr "Sikhisme" #: src/osmEditDialog.js:222 src/translations.js:302 msgid "Spiritualism" msgstr "Spiritualisme" #: src/osmEditDialog.js:223 src/translations.js:303 msgid "Taoism" msgstr "Taoisme" #: src/osmEditDialog.js:224 src/translations.js:304 msgid "Unitarian Universalism" msgstr "Universalisme Unitarian" #: src/osmEditDialog.js:225 src/translations.js:305 msgid "Voodoo" msgstr "Voodoo" #: src/osmEditDialog.js:226 src/translations.js:306 msgid "Yazidism" msgstr "Yazidisme" #: src/osmEditDialog.js:227 src/translations.js:307 msgid "Zoroastrianism" msgstr "Zoroastrianisme" #: src/osmEditDialog.js:230 src/poiCategories.js:176 msgid "Toilets" msgstr "Toilet" #: src/osmEditDialog.js:237 msgid "Note" msgstr "Catatan" #: src/osmEditDialog.js:240 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" "Informasi yang digunakan untuk menginformasikan pemeta lain mengenai " "informasi yang tidak jelas tentang suatu elemen, maksud penulis saat " "membuatnya, atau petunjuk untuk perbaikan lebih lanjut." #: src/osmEditDialog.js:339 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "Tambahkan ke OpenStreetMap" #: src/osmEditDialog.js:393 msgid "Select Type" msgstr "Pilih Jenis" #: src/osmEditDialog.js:515 msgid "Done" msgstr "Selesai" #: src/osmEditDialog.js:818 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "" "Format yang dipakai mesti menyertakan kode bahasa dan judul artikel seperti " "\"id:Judul artikel\"." #: src/osmEditDialog.js:824 msgid "Use the reload button to load the Wikidata tag for the selected article" msgstr "" "Gunakan tombol muat ulang untuk memuat tag Wikidata untuk artikel yang " "dipilih" #: src/osmEditDialog.js:832 msgid "Couldn't find Wikidata tag for article" msgstr "Tidak dapat menemukan tag Wikidata untuk artikel" #: src/photonUtils.js:118 msgid "Unnamed place" msgstr "Tempat tanpa nama" #: src/placeEntry.js:274 msgid "Failed to parse Geo URI" msgstr "Gagal mengurai URI Geo" #: src/placeEntry.js:286 msgid "Failed to parse Maps URI" msgstr "Gagal mengurai Peta URI" #. 300 ft (300 * 12 * 0.0254 m) #. #. * Translators: This a format string for showing a distance to a place #. * is lower than a "quite short" distance. #. * The "less than" symbol can be substituded with an appropriate one, if #. * needed (e.g. using the correct direction, or alternative symbol). #. * The %s should be kept, and is substituted with a label representing the #. * short distance. The \u2009 (thin space) could also be adjusted if needed #: src/placeListRow.js:46 #, javascript-format msgctxt "short distance format string" msgid "< %s" msgstr "< %s" #: src/placeView.js:263 msgid "Coordinates" msgstr "Koordinat" #: src/placeView.js:267 msgid "Accuracy" msgstr "Akurasi" #. Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) #: src/placeView.js:270 #, javascript-format msgid "Accuracy: %s" msgstr "Akurasi: %s" #. since the phone numbers are typically always rendered #. * left-to-right, insert an explicit LRM char to avoid issues #. * with phone numbers in international format starting with a + #. * which is considered a "weak" character to determine Unicode #. * text direction #. #: src/placeView.js:289 msgid "Phone number" msgstr "Nomor telepon" #: src/placeView.js:308 msgid "Email" msgstr "Surel" #. If a reference to a named floor (named or symbolic) exists #. * refer to it directly. #. #. Translators: #. * This is a reference to named building floor, using a label #. * or a code, as "displayed in the elevator" #. #: src/placeView.js:323 src/placeView.js:362 msgid "Floor" msgstr "Lantai" #: src/placeView.js:325 #, javascript-format msgid "Floor %s" msgstr "Lantai %s" #: src/placeView.js:337 msgid "At ground level" msgstr "Di permukaan tanah" #. Translators: #. * This is a reference to a number of floors above #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:346 #, javascript-format msgid "%s floor above ground level" msgid_plural "%s floors above ground level" msgstr[0] "%s lantai di atas permukaan tanah" #. Translators: #. * This is a reference to a number of floors below #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:357 #, javascript-format msgid "%s floor below ground level" msgid_plural "%s floors below ground level" msgstr[0] "%s lantai di bawah permukaan tanah" #. Translators: #. * The establishment offers customers to purchase meals #. * (or similar) to be consumed elsewhere #. #: src/placeView.js:375 msgid "Offers takeout" msgstr "Menawarkan bawa pulang" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed on-premise. #. #: src/placeView.js:383 msgid "Does not offer takeout" msgstr "Tidak menawarkan bawa pulang" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed elsewhere. E.g. #. * there is no seating on-premise for eating/drinking #. #: src/placeView.js:392 msgid "Only offers takeout" msgstr "Hanya menawarkan bawa pulang" #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/placeView.js:409 msgid "Public internet access" msgstr "Akses internet publik" #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/placeView.js:418 msgid "No internet access" msgstr "Tidak ada akses internet" #. Translators: #. * This means a WLAN Hotspot, also known as wireless, wifi or Wi-Fi. #. #: src/placeView.js:426 msgid "Public Wi-Fi" msgstr "Wi-Fi Publik" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/placeView.js:434 msgid "Wired internet access" msgstr "Akses internet berkabel" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/placeView.js:442 msgid "Computers available for use" msgstr "Komputer tersedia untuk digunakan" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/placeView.js:450 msgid "Internet assistance available" msgstr "Bantuan Internet tersedia" #: src/placeView.js:456 msgid "No toilets available" msgstr "Tidak ada toilet yang tersedia" #: src/placeView.js:459 msgid "Toilets available" msgstr "Toilet tersedia" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #: src/placeView.js:468 msgid "Wheelchair accessible" msgstr "Dapat diakses kursi roda" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/placeView.js:478 msgid "Limited wheelchair accessibility" msgstr "Aksesibilitas kursi roda terbatas" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #: src/placeView.js:487 msgid "Not wheelchair accessible" msgstr "Tidak dapat diakses kursi roda" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/placeView.js:497 msgid "Designated for wheelchair users" msgstr "Ditunjuk untuk pengguna kursi roda" #. * #. * Translators: this is a label indicating an altitude below #. * sea level, where the %s placeholder is the altitude relative #. * to mean sea level in the "negative direction" #. #: src/placeView.js:528 #, javascript-format msgid "%s below sea level" msgstr "%s di bawah permukaan laut" #. * #. * Translators: this indicates a place is located at (or very #. * close to) mean sea level #. #: src/placeView.js:535 msgid "At sea level" msgstr "Di permukaan laut" #: src/placeView.js:544 msgid "Religion:" msgstr "Agama:" #: src/place.js:568 msgid "Place not found in OpenStreetMap" msgstr "Tempat tidak ditemukan pada OpenStreetMap" #: src/place.js:575 msgid "Coordinates in URL are not valid" msgstr "Koordinat dalam URL tak valid" #: src/place.js:584 msgid "URL is not supported" msgstr "URL tak didukung" #: src/poiCategories.js:132 msgid "Amenities" msgstr "Fasilitas" #: src/poiCategories.js:135 msgid "ATMs" msgstr "ATM" #: src/poiCategories.js:141 msgid "Post Boxes" msgstr "Kotak Pos" #: src/poiCategories.js:147 msgid "Post Offices" msgstr "Kantor Pos" #: src/poiCategories.js:153 msgid "Police" msgstr "Polisi" #: src/poiCategories.js:159 msgid "Libraries" msgstr "Perpustakaan" #: src/poiCategories.js:165 msgid "Pharmacies" msgstr "Apotek" #: src/poiCategories.js:171 msgid "Recycling" msgstr "Daur ulang" #: src/poiCategories.js:182 msgid "Wheelchair-accessible Toilets" msgstr "Toilet yang dapat diakses kursi roda" #: src/poiCategories.js:188 msgid "Baggage Lockers" msgstr "Baggage Lockers" #: src/poiCategories.js:196 msgid "Eating & Drinking" msgstr "Makan & Minum" #: src/poiCategories.js:200 msgid "Restaurants" msgstr "Restoran" #: src/poiCategories.js:205 msgid "Fast Food" msgstr "Makanan Cepat Saji" #: src/poiCategories.js:210 msgid "Food Courts" msgstr "Pujasera" #: src/poiCategories.js:215 msgid "Pubs" msgstr "Pub" #: src/poiCategories.js:221 msgid "Bars" msgstr "Bar" #: src/poiCategories.js:226 msgid "Cafes" msgstr "Kafe" #: src/poiCategories.js:231 msgid "Ice Cream" msgstr "Es Krim" #: src/poiCategories.js:236 msgid "Food, Snacks, and Beverage Machines" msgstr "Mesin Makanan, Jajanan, dan Minuman" #: src/poiCategories.js:244 msgid "Shopping" msgstr "Belanja" #: src/poiCategories.js:248 msgid "Supermarkets" msgstr "Supermarkets" #: src/poiCategories.js:254 msgid "Convenience Stores" msgstr "Toko Serba Ada" #: src/poiCategories.js:259 msgid "Shopping Malls" msgstr "Shopping Malls" #: src/poiCategories.js:265 msgid "Clothes" msgstr "Pakaian" #: src/poiCategories.js:271 msgid "Shoes" msgstr "Sepatu" #: src/poiCategories.js:276 msgid "Electronics" msgstr "Elektronik" #: src/poiCategories.js:282 msgid "Alcohol" msgstr "Alkohol" #: src/poiCategories.js:288 msgid "Bakeries" msgstr "Toko Roti" #: src/poiCategories.js:294 msgid "Flowers" msgstr "Bunga-bunga" #: src/poiCategories.js:301 msgid "Transportation" msgstr "Transportasi" #: src/poiCategories.js:305 msgid "Bus & Tram Stops" msgstr "Halte Bus & Trem" #: src/poiCategories.js:313 msgid "Train & Subway Stations" msgstr "Stasiun Kereta & Kereta Bawah Tanah" #: src/poiCategories.js:321 msgid "Tickets" msgstr "Tiket" #: src/poiCategories.js:329 msgid "Parking" msgstr "Parkir" #: src/poiCategories.js:334 msgid "Bicycle Parking" msgstr "Bicycle Parking" #: src/poiCategories.js:339 msgid "Bicycle Rental" msgstr "Penyewaan Sepeda" #: src/poiCategories.js:344 msgid "Car Rental" msgstr "Penyewaan Mobil" #: src/poiCategories.js:349 msgid "Fuel" msgstr "Bahan Bakar" #: src/poiCategories.js:354 msgid "EV Charging" msgstr "Pengisian EV" #: src/poiCategories.js:362 msgid "Healthcare" msgstr "Kesehatan" #: src/poiCategories.js:366 msgid "Clinics" msgstr "Klinik" #: src/poiCategories.js:372 msgid "Hospitals" msgstr "Rumah Sakit" #: src/poiCategories.js:378 msgid "Dentists" msgstr "Dokter Gigi" #: src/poiCategories.js:386 msgid "Accommodation" msgstr "Akomodasi" #: src/poiCategories.js:390 msgid "Hotels" msgstr "Hotel" #: src/poiCategories.js:395 msgid "Hostels" msgstr "Hostel" #: src/poiCategories.js:400 msgid "Bed & Breakfast" msgstr "Tempat Tidur & Sarapan" #: src/poiCategories.js:405 msgid "Campings" msgstr "Berkemah" #: src/poiCategories.js:412 msgid "Recreation" msgstr "Rekreasi" #: src/poiCategories.js:416 msgid "Parks" msgstr "Taman" #: src/poiCategories.js:421 msgid "Playgrounds" msgstr "Taman Bermain" #: src/poiCategories.js:425 msgid "Beaches" msgstr "Pantai" #: src/poiCategories.js:430 msgid "Nature Reserves" msgstr "Cagar Alam" #: src/poiCategories.js:436 msgid "Theme Parks" msgstr "Taman Hiburan" #: src/poiCategories.js:441 msgid "Theaters" msgstr "Teater" #: src/poiCategories.js:447 msgid "Movie Theaters" msgstr "Bioskop" #: src/poiCategories.js:453 msgid "Night Clubs" msgstr "Klub Malam" #: src/poiCategories.js:460 msgid "Tourism" msgstr "Pariwisata" #: src/poiCategories.js:464 msgid "Museums" msgstr "Museum" #: src/poiCategories.js:470 msgid "Attractions" msgstr "Atraksi" #: src/poiCategories.js:475 msgid "Artworks" msgstr "Karya Seni" #: src/poiCategories.js:480 msgid "Tourist Information" msgstr "Informasi Turis" #: src/poiCategories.js:487 msgid "Sports" msgstr "Olah Raga" #: src/poiCategories.js:491 msgid "Gyms" msgstr "Gym" #: src/poiCategories.js:497 msgid "Outdoor Gyms" msgstr "Gym Luar Ruangan" #: src/poiCategories.js:503 msgid "Golf Courses" msgstr "Lapangan Golf" #: src/printLayout.js:350 #, javascript-format msgid "From %s to %s" msgstr "Dari %s ke %s" #: src/printOperation.js:49 msgid "Loading map tiles for printing" msgstr "Memuat ubin peta untuk pencetakan" #: src/printOperation.js:50 msgid "You can abort printing if this takes too long" msgstr "Anda dapat menggugurkan pencetakan bila ini makan waktu terlalu lama" #: src/printOperation.js:52 msgid "Abort printing" msgstr "Gugurkan pencetakan" #. Translators: this is add via location tooltip #: src/routeEntry.js:60 msgid "Add via location" msgstr "Tambah lewat lokasi" #. Translators: this is remove via location tooltip #: src/routeEntry.js:70 msgid "Remove via location" msgstr "Hapus lewat lokasi" #. Translators: this is reverse route tooltip #: src/routeEntry.js:76 msgid "Reverse route" msgstr "Rute sebaliknya" #: src/searchBar.js:45 msgid "Search" msgstr "Cari" #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:84 #, javascript-format msgid "Add %s to %s" msgstr "Tambahkan %s ke %s" #: src/sendToDialog.js:181 msgid "Failed to open URI" msgstr "Gagal membuka URI" #: src/sendToDialog.js:246 #, javascript-format msgid "Open with %s" msgstr "Buka dengan %s" #: src/shapeLayer.js:109 msgid "failed to load file" msgstr "gagal memuat berkas" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:328 #, javascript-format msgid "Estimated time: %s" msgstr "Perkiraan waktu: %s" #: src/sidebar.js:398 #, javascript-format msgid "Itineraries provided by %s" msgstr "Jadwal disediakan oleh %s" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:39 #, javascript-format msgid "Start at %s" msgstr "Mulai dari %s" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:45 src/transitplugins/openTripPlanner2.js:236 msgid "Start" msgstr "Mulai" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:63 #, javascript-format msgid "Walk %s" msgstr "Berjalan %s" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:77 #, javascript-format msgid "Arrive at %s" msgstr "Tiba di %s" #: src/transit.js:79 src/transitplugins/openTripPlanner.js:1176 #: src/transitplugins/openTripPlanner2.js:255 msgid "Arrive" msgstr "Tiba" #: src/transitLegRow.js:69 msgid "Show walking instructions" msgstr "Tampilkan petunjuk berjalan" #: src/transitLegRow.js:70 msgid "Hide walking instructions" msgstr "Sembunyikan petunjuk berjalan" #: src/transitMoreRow.js:37 msgid "Load earlier alternatives" msgstr "Memuat alternatif sebelumnya" #: src/transitMoreRow.js:39 msgid "Load later alternatives" msgstr "Memuat alternatif kemudian" #: src/transitMoreRow.js:52 msgid "No earlier alternatives found." msgstr "Tidak ditemukan alternatif sebelumnya." #: src/transitMoreRow.js:54 msgid "No later alternatives found." msgstr "Tidak ada alternatif lain yang ditemukan." #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:138 msgctxt "month-day-date" msgid "%b %e" msgstr "%e %b" #: src/transitPlan.js:171 msgid "No timetable data found for this route." msgstr "Tidak ada data jadwal yang ditemukan untuk rute ini." #: src/transitPlan.js:179 msgid "No provider found for this route." msgstr "Tidak ada penyedia yang ditemukan untuk rute ini." #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:300 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:331 #, javascript-format msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "%s menit" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:343 #, javascript-format msgid "%s hour" msgid_plural "%s hours" msgstr[0] "%s jam" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:351 #, javascript-format msgid "%s:%s hour" msgid_plural "%s:%s hours" msgstr[0] "%s:%s jam" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:744 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: src/translations.js:55 msgid "Around the clock" msgstr "Sepanjang waktu" #: src/translations.js:57 msgid "From sunrise to sunset" msgstr "Dari matahari terbit sampai terbenam" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:123 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s,%s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:137 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s,%s,%s" #: src/translations.js:156 msgid "Every day" msgstr "Setiap hari" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:168 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:179 msgid "Public holidays" msgstr "Hari libur publik" #: src/translations.js:181 msgid "School holidays" msgstr "Hari libur sekolah" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:221 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: src/translations.js:235 msgid "not open" msgstr "tidak buka" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:250 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:287 msgid "Bahá'í" msgstr "Bahá’í" #. Translators: Accuracy of user location information #: src/utils.js:248 msgid "Unknown" msgstr "Tak diketahui" #. Translators: Accuracy of user location information #: src/utils.js:251 msgid "Exact" msgstr "Eksak" #. Translators: this is a duration with only hours, using #. * an abbreviation for hours, corresponding to 'h' in English #. #: src/utils.js:307 #, javascript-format msgid "%s h" msgstr "%s j" #. Translators: this is a duration with hours and minutes parts #. * using abbreviations for hours and minutes, corresponding to 'h' #. * and 'min' in English. The minutes has appropriate plural variations #. #: src/utils.js:313 #, javascript-format msgid "%s h %s min" msgid_plural "%s h %s min" msgstr[0] "%s j %s mnt" #. Translators: this is a duration with minutes part #. * using abbreviation for minutes, corresponding to 'min' in English #. * with appropriate plural variations #. #: src/utils.js:320 #, javascript-format msgid "%s min" msgid_plural "%s min" msgstr[0] "%s mnt" #. Translators: this is a duration of less than one minute #. * with seconds using an abbreviation for seconds, corresponding to #. * 's' in English with appropriate plural forms #. #: src/utils.js:326 #, javascript-format msgid "%s s" msgid_plural "%s s" msgstr[0] "%s dtk" #. Translators: This is a distance measured in kilometers #: src/utils.js:337 #, javascript-format msgid "%s km" msgstr "%s km" #. Translators: This is a distance measured in meters #: src/utils.js:340 #, javascript-format msgid "%s m" msgstr "%s m" #. Translators: This is a distance measured in miles #: src/utils.js:348 #, javascript-format msgid "%s mi" msgstr "%s mil" #. Translators: This is a distance measured in feet #: src/utils.js:351 #, javascript-format msgid "%s ft" msgstr "%s kaki" #: src/transitplugins/goMetro.js:61 msgid "This plugin doesn't support latest arrival" msgstr "Pengaya ini tidak mendukung kedatangan terbaru" #: src/transitplugins/openTripPlanner.js:1237 #: src/transitplugins/openTripPlanner2.js:266 #, javascript-format msgid "Continue on %s" msgstr "Lanjutkan pada %s" #: src/transitplugins/openTripPlanner.js:1242 #: src/transitplugins/openTripPlanner2.js:270 #, javascript-format msgid "Turn left on %s" msgstr "Belok kiri di %s" #: src/transitplugins/openTripPlanner.js:1244 #: src/transitplugins/openTripPlanner2.js:271 msgid "Turn left" msgstr "Belok kiri" #: src/transitplugins/openTripPlanner.js:1247 #: src/transitplugins/openTripPlanner2.js:275 #, javascript-format msgid "Turn slightly left on %s" msgstr "Belok sedikit ke kiri pada %s" #: src/transitplugins/openTripPlanner.js:1249 #: src/transitplugins/openTripPlanner2.js:276 msgid "Turn slightly left" msgstr "Belok sedikit ke kiri" #: src/transitplugins/openTripPlanner.js:1252 #: src/transitplugins/openTripPlanner2.js:280 #, javascript-format msgid "Turn sharp left on %s" msgstr "Belok kiri tajam pada %s" #: src/transitplugins/openTripPlanner.js:1254 #: src/transitplugins/openTripPlanner2.js:281 msgid "Turn sharp left" msgstr "Belok kiri tajam" #: src/transitplugins/openTripPlanner.js:1257 #: src/transitplugins/openTripPlanner2.js:284 #, javascript-format msgid "Turn right on %s" msgstr "Belok kanan pada %s" #: src/transitplugins/openTripPlanner.js:1259 #: src/transitplugins/openTripPlanner2.js:285 msgid "Turn right" msgstr "Belok kanan" #: src/transitplugins/openTripPlanner.js:1262 #: src/transitplugins/openTripPlanner2.js:289 #, javascript-format msgid "Turn slightly right on %s" msgstr "Belok sedikit ke kanan pada %s" #: src/transitplugins/openTripPlanner.js:1264 #: src/transitplugins/openTripPlanner2.js:290 msgid "Turn slightly right" msgstr "Belok sedikit ke kanan" #: src/transitplugins/openTripPlanner.js:1267 #: src/transitplugins/openTripPlanner2.js:294 #, javascript-format msgid "Turn sharp right on %s" msgstr "Belok kanan tajam pada %s" #: src/transitplugins/openTripPlanner.js:1269 #: src/transitplugins/openTripPlanner2.js:295 msgid "Turn sharp right" msgstr "Belok kanan tajam" #: src/transitplugins/openTripPlanner.js:1275 #: src/transitplugins/openTripPlanner2.js:302 #, javascript-format msgid "At the roundabout, take exit %s" msgstr "Di bundaran, ambil jalur keluar %s" #: src/transitplugins/openTripPlanner.js:1277 #: src/transitplugins/openTripPlanner2.js:305 #, javascript-format msgid "At the roundabout, take exit to %s" msgstr "Di bundaran, ambil jalur ke %s" #: src/transitplugins/openTripPlanner.js:1279 #: src/transitplugins/openTripPlanner2.js:307 msgid "Take the roundabout" msgstr "Ambil bundaran" #: src/transitplugins/openTripPlanner.js:1283 #: src/transitplugins/openTripPlanner2.js:315 #, javascript-format msgid "Take the elevator and get off at %s" msgstr "Naik lift dan turun di %s" #: src/transitplugins/openTripPlanner.js:1285 #: src/transitplugins/openTripPlanner2.js:316 msgid "Take the elevator" msgstr "Naik lift" #: src/transitplugins/openTripPlanner.js:1289 #: src/transitplugins/openTripPlanner2.js:320 #, javascript-format msgid "Make a left u-turn onto %s" msgstr "Putar balik kiri ke %s" #: src/transitplugins/openTripPlanner.js:1291 #: src/transitplugins/openTripPlanner2.js:321 msgid "Make a left u-turn" msgstr "Putar balik kiri" #: src/transitplugins/openTripPlanner.js:1294 #: src/transitplugins/openTripPlanner2.js:325 #, javascript-format msgid "Make a right u-turn onto %s" msgstr "Putar balik kanan ke %s" #: src/transitplugins/openTripPlanner.js:1296 #: src/transitplugins/openTripPlanner2.js:326 msgid "Make a right u-turn" msgstr "Putar balik kanan" #~ msgid "Sign in to edit maps" #~ msgstr "" #~ "Masuklah untuk menyunting peta" #~ msgid "" #~ "Sign in to authorize access in a web browser.\n" #~ "Then fill in the obtained verification code here in the next step." #~ msgstr "" #~ "Masuk untuk mengotorisasi akses di peramban web.\n" #~ "Kemudian isi kode verifikasi yang diperoleh di sini pada langkah " #~ "selanjutnya." #~ msgid "Signed In" #~ msgstr "Masuk" #~ msgid "Sign up" #~ msgstr "Daftar" #~ msgid "Filesystem is read only" #~ msgstr "Sistem berkas hanya baca" #~ msgid "You do not have permission to save there" #~ msgstr "Anda tak punya ijin untuk menyimpan di sana" #~ msgid "The directory does not exist" #~ msgstr "Direktori tidak ada" #~ msgid "No filename specified" #~ msgstr "Tak ada nama berkas yang dinyatakan" 070701000001CB000081A4000000000000000000000001664134090000DE14000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/is.po# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Sveinn í Felli , 2015, 2017, 2018, 2019, 2021, 2022, 2023. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2023-03-21 16:37+0000\n" "PO-Revision-Date: 2023-06-18 10:09+0000\n" "Last-Translator: Sveinn í Felli \n" "Language-Team: Icelandic\n" "Language: is\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Lokalize 21.12.3\n" #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.appdata.xml.in.in:6 data/org.gnome.Maps.desktop.in.in:4 #: data/ui/main-window.ui:27 src/application.js:61 src/mainWindow.js:134 #: src/mainWindow.js:531 msgid "Maps" msgstr "Landakort" #: data/org.gnome.Maps.appdata.xml.in.in:7 msgid "Find places around the world" msgstr "Finndu staði út um allan heim" #: data/org.gnome.Maps.appdata.xml.in.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "Landakortaforritið gefur aðgang að landakortum hvaðanæva úr heiminum. Það " "hjálpar þér að finna staði, til dæmis með því að leita að götu eða bæ, nú " "eða með því að skoða kort til að finna góðan stað til að hitta vinina." #: data/org.gnome.Maps.appdata.xml.in.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "Landakortaforritið notar OpenStreetMap gagnagrunninn, sem er " "samvinnuverkefni hundruða þúsunda manna víðsvegar um heiminn." #: data/org.gnome.Maps.appdata.xml.in.in:369 src/mainWindow.js:528 msgid "The GNOME Project" msgstr "GNOME verkefnið" #: data/org.gnome.Maps.desktop.in.in:5 msgid "A simple maps application" msgstr "Einfalt landakortaforrit" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in.in:14 msgid "Maps;" msgstr "Landakort;" #: data/org.gnome.Maps.desktop.in.in:17 msgid "Allows your location to be shown on the map." msgstr "Leyfir að staðsetning þín sé birt á kortinu." #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "síðasta skoðuð staðsetning" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "Hnit síðast skoðuðu staðsetningar." #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "aðdráttur" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "Aðdráttarstig" #: data/org.gnome.Maps.gschema.xml:21 msgid "Map type" msgstr "Tegund landakorts" #: data/org.gnome.Maps.gschema.xml:22 msgid "The type of map to display (street, aerial, etc.)" msgstr "Tegund landakorts sem á að birta (götukort, loftmynd, o.s.frv.)" #: data/org.gnome.Maps.gschema.xml:26 msgid "Window size" msgstr "Gluggastærð" #: data/org.gnome.Maps.gschema.xml:27 msgid "Window size (width and height)." msgstr "Gluggastærð (breidd og hæð)." #: data/org.gnome.Maps.gschema.xml:31 msgid "Window position" msgstr "Staðsetning glugga" #: data/org.gnome.Maps.gschema.xml:32 msgid "Window position (X and Y)." msgstr "Staðsetning glugga (x og y)." #: data/org.gnome.Maps.gschema.xml:36 msgid "Window maximized" msgstr "Gluggi hámarkaður" #: data/org.gnome.Maps.gschema.xml:37 msgid "Window maximization state" msgstr "Staða hámörkunar glugga" #: data/org.gnome.Maps.gschema.xml:41 msgid "Maximum number of search results" msgstr "Hámarksfjöldi leitarniðurstaðna" #: data/org.gnome.Maps.gschema.xml:42 msgid "Maximum number of search results from geocode search." msgstr "Hámarksfjöldi niðurstaðna úr leit með geocode." #: data/org.gnome.Maps.gschema.xml:46 msgid "Number of recent places to store" msgstr "Fjöldi nýlegra staða sem á að geyma" #: data/org.gnome.Maps.gschema.xml:47 msgid "Number of recently visited places to store." msgstr "Fjöldi nýlega heimsóttra staða sem á að geyma." #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent routes to store" msgstr "Fjöldi nýlegra leiða sem á að geyma" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited routes to store." msgstr "Fjöldi nýlega notaðra leiða sem á að geyma." #: data/org.gnome.Maps.gschema.xml:56 msgid "OpenStreetMap username or e-mail address" msgstr "Notandanafn eða netfang á OpenStreetMap" #: data/org.gnome.Maps.gschema.xml:57 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "" "Gefur til kynna hvort notandinn hafi skráð sig inn til að breyta gögnum í " "OpenStreetMap." #: data/org.gnome.Maps.gschema.xml:61 msgid "Last used transportation type for routing" msgstr "Síðast notaða gerð samgangna fyrir leiðaval" #: data/org.gnome.Maps.gschema.xml:65 msgid "Show scale" msgstr "Birta kvarða" #: data/org.gnome.Maps.gschema.xml:66 msgid "Whether to show the scale." msgstr "Hvort eigi að birta mælikvarða." #: data/ui/context-menu.ui:6 #| msgid "Route from here" msgid "Route from Here" msgstr "Leið héðan" #: data/ui/context-menu.ui:10 #| msgid "Add intermediate destination" msgid "Add Intermediate Destination" msgstr "Bæta við milliáfanga" #: data/ui/context-menu.ui:14 #| msgid "Route to here" msgid "Route to Here" msgstr "Leið hingað" #: data/ui/context-menu.ui:20 #| msgid "What's here?" msgid "What's Here?" msgstr "Hvað er hér?" #: data/ui/context-menu.ui:24 #| msgid "Copy location" msgid "Copy Location" msgstr "Afrita staðsetningu" #: data/ui/context-menu.ui:28 #| msgid "Add to OpenStreetMap" msgid "Add to OpenStreetMap…" msgstr "Bæta í OpenStreetMap…" #: data/ui/export-view-dialog.ui:7 msgid "Export view" msgstr "Flytja út sýn" #: data/ui/export-view-dialog.ui:16 data/ui/send-to-dialog.ui:10 #: data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "_Hætta við" #: data/ui/export-view-dialog.ui:26 msgid "_Export" msgstr "_Flytja út" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:11 src/geoclue.js:106 msgid "Current Location" msgstr "Núverandi staðsetning" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:19 #| msgid "Open Layer" msgid "Layers" msgstr "Lög" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:28 #| msgid "Zoom out" msgid "Zoom Out" msgstr "Renna frá" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:37 data/ui/zoom-in-dialog.ui:27 msgid "Zoom In" msgstr "Renna að" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:11 msgid "Print Route" msgstr "Prenta leið" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:21 #| msgid "Toggle favorites" msgid "Favorites" msgstr "Eftirlæti" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:30 #| msgid "Toggle route planner" msgid "Route Planner" msgstr "Leiðagerð" #: data/ui/help-overlay.ui:12 msgctxt "shortcut window" msgid "General" msgstr "Almennt" #: data/ui/help-overlay.ui:15 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "Birta flýtilykla" #: data/ui/help-overlay.ui:21 msgctxt "shortcut window" msgid "Search" msgstr "Leita" #: data/ui/help-overlay.ui:27 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "Víxla leiðagerð af/á" #: data/ui/help-overlay.ui:33 msgctxt "shortcut window" msgid "Print route" msgstr "Prenta leið" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Quit" msgstr "Hætta" #: data/ui/help-overlay.ui:45 msgctxt "shortcut window" msgid "Open main menu" msgstr "Opna aðalvalmynd" #: data/ui/help-overlay.ui:53 msgctxt "shortcut window" msgid "Map View" msgstr "Kortasýn" #: data/ui/help-overlay.ui:56 msgctxt "shortcut window" msgid "Zoom in" msgstr "Renna að" #: data/ui/help-overlay.ui:62 msgctxt "shortcut window" msgid "Zoom out" msgstr "Renna frá" #: data/ui/help-overlay.ui:68 msgctxt "shortcut window" msgid "Toggle scale" msgstr "Víxla á milli kvarða" #: data/ui/help-overlay.ui:74 msgctxt "shortcut window" msgid "Go to current location" msgstr "Fara á núverandi staðsetningu" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Switch to street view" msgstr "Skipta yfir í götusýn" #: data/ui/help-overlay.ui:91 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "Skipta yfir í loftmyndasýn" #: data/ui/help-overlay.ui:97 msgctxt "shortcut window" msgid "Open shape layer" msgstr "Opna lag með lögunum" #: data/ui/layers-popover.ui:7 msgid "Show Scale" msgstr "Birta kvarða" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:16 msgid "Open Shape Layer…" msgstr "Opna lag með lögunum…" #: data/ui/location-service-dialog.ui:12 data/ui/osm-edit-dialog.ui:220 #: data/ui/zoom-in-dialog.ui:21 msgid "Cancel" msgstr "Hætta við" #: data/ui/location-service-dialog.ui:18 msgid "Location Settings" msgstr "Staðsetningarstillingar" #: data/ui/location-service-dialog.ui:32 msgid "Turn on location services to find your location" msgstr "Kveikja á staðsetningarþjónustum til að finna staðsetningu þína" #: data/ui/main-window.ui:8 #| msgid "Set up OpenStreetMap Account" msgid "Set up OpenStreetMap Account…" msgstr "Setja upp OpenStreetMap-aðgang…" #: data/ui/main-window.ui:12 #| msgid "Export as Image" msgid "Export as Image…" msgstr "Flytja út sem mynd…" #: data/ui/main-window.ui:17 msgid "_Keyboard Shortcuts" msgstr "Flýtily_klar" #: data/ui/main-window.ui:22 msgid "About Maps" msgstr "Um hugbúnaðinn" #: data/ui/main-window.ui:38 #| msgid "Open main menu" msgid "Main Menu" msgstr "Aðalvalmynd" #: data/ui/osm-account-dialog.ui:6 msgid "OpenStreetMap Account" msgstr "OpenStreetMap aðgangur" #: data/ui/osm-account-dialog.ui:24 msgid "Sign in to edit maps" msgstr "" "Skrá inn til að breyta kortum" #: data/ui/osm-account-dialog.ui:38 msgid "" "Help to improve the map, using an\n" "OpenStreetMap account." msgstr "" "Hjálpa til við að bæta kortið, með því\n" "að nota OpenStreetMap-aðgang." #: data/ui/osm-account-dialog.ui:52 msgid "" "Sign in to authorize access in a web browser.\n" "Then fill in the obtained verification code here in the next step." msgstr "" "Skráðu inn í vafra til að heimila aðgang.\n" "Fylltu síðan inn með sannvottunarkóðanum í næsta skrefi." #: data/ui/osm-account-dialog.ui:68 msgid "Sign up" msgstr "Nýskrá" #: data/ui/osm-account-dialog.ui:81 msgid "Sign In" msgstr "Skrá inn" #: data/ui/osm-account-dialog.ui:123 msgid "Copy verification code shown when authorizing access in the browser" msgstr "" "Afritaðu sannvottunarkóðann sem birtist þegar aðgangur er heimilaður í " "vafranum" #: data/ui/osm-account-dialog.ui:133 msgid "Verification code" msgstr "Sannvottunarkóði" #: data/ui/osm-account-dialog.ui:144 msgid "Verify" msgstr "Sannreyna" #: data/ui/osm-account-dialog.ui:172 msgid "Signed In" msgstr "Skráð inn" #: data/ui/osm-account-dialog.ui:184 msgid "Your OpenStreetMap account is active." msgstr "OpenStreetMap aðgangurinn þinn er virkur." #: data/ui/osm-account-dialog.ui:214 msgid "Sign Out" msgstr "Skrá út" #: data/ui/osm-edit-address.ui:11 msgid "Street" msgstr "Gata" #: data/ui/osm-edit-address.ui:22 msgid "House number" msgstr "Húsnúmer" #: data/ui/osm-edit-address.ui:33 msgid "Postal code" msgstr "Póstnúmer" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:44 msgid "City" msgstr "Borg" #: data/ui/osm-edit-dialog.ui:54 msgid "Type" msgstr "Tegund" #: data/ui/osm-edit-dialog.ui:76 msgid "None" msgstr "Ekkert" #: data/ui/osm-edit-dialog.ui:105 msgid "Add Field" msgstr "Bæta við reit" #: data/ui/osm-edit-dialog.ui:127 msgid "Comment" msgstr "Athugasemd" #: data/ui/osm-edit-dialog.ui:155 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "Breytingar á korti verða sýnilegar á öllum kortum sem nota\n" "OpenStreetMap gögn." #: data/ui/osm-edit-dialog.ui:183 msgid "Recently Used" msgstr "Nýlega notað" #: data/ui/osm-edit-dialog.ui:233 src/osmEditDialog.js:531 msgid "Next" msgstr "Næsta" #: data/ui/osm-edit-wikipedia.ui:8 msgid "Article" msgstr "Grein" #: data/ui/osm-edit-wikipedia.ui:21 msgid "Wikidata tag" msgstr "Wikidata-merki" #: data/ui/place-popover.ui:44 src/application.js:275 msgid "No results found" msgstr "Engar niðurstöður fundust" #: data/ui/place-popover.ui:54 src/application.js:252 src/osmEditDialog.js:568 msgid "An error has occurred" msgstr "Villa hefur átt sér stað" #. Translators: This is a tooltip #: data/ui/route-entry.ui:12 msgid "Change Route Order" msgstr "Breyta röð leiðar" #: data/ui/send-to-dialog.ui:7 msgid "Open Location" msgstr "Opna staðsetningu" #: data/ui/send-to-dialog.ui:62 msgid "Copy" msgstr "Afrita" #: data/ui/send-to-dialog.ui:68 msgid "Send To…" msgstr "Senda til..." #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:65 msgid "Open Shape Layer" msgstr "Opna lag með lögunum" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "_Opna" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:32 msgid "Toggle visible" msgstr "Víxla sýnilegu" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:44 msgid "Remove Shape Layer" msgstr "Fjarlægja lag með lögunum" #: data/ui/sidebar.ui:215 msgid "Route search by GraphHopper" msgstr "Leita að leiðum með GraphHopper" #: data/ui/sidebar.ui:282 msgid "" "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of " "transportation,\n" "e.g. a national provider might not include airlines, and a local provider " "could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" "Leiðatöflur almenningssamgangna koma í gegnum tímatöflugögn frá " "utanaðkomandi rekstraraðilum.\n" "GNOME getur ekki ábyrgst áreiðanleika þessara leiða og áætlana.\n" "Athugaðu að sumar þjónustuveitur taka ekki með allar gerðir samgangna,\n" "t.d. gæti rekstraraðili á landsvísu sleppt flugsamgöngum og rekstraraðili\n" " innan héraðs gæti sleppt einhverjum lestasamgöngum.\n" "Nöfn og vörumerki ber að líta á sem eign viðkomandi fyrirtækja þegar slíkt á " "við." #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:98 msgid "Hide intermediate stops and information" msgstr "Fela biðstöðvar á leiðinni og upplýsingar" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:156 msgid "Show intermediate stops and information" msgstr "Sýna biðstöðvar á leiðinni og upplýsingar" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:16 msgid "Leave Now" msgstr "Fara núna" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:17 msgid "Leave By" msgstr "Fara um" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:18 msgid "Arrive By" msgstr "Koma um" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:85 msgid "Show" msgstr "Birta" #: data/ui/transit-options-panel.ui:95 msgid "Buses" msgstr "Strætisvagna" #: data/ui/transit-options-panel.ui:101 msgid "Trams" msgstr "Sporvagnar" #: data/ui/transit-options-panel.ui:107 msgid "Trains" msgstr "Lestir" #: data/ui/transit-options-panel.ui:113 msgid "Subway" msgstr "Neðanjarðarlestir" #: data/ui/transit-options-panel.ui:119 msgid "Ferries" msgstr "Ferjur" #: data/ui/transit-options-panel.ui:125 msgid "Airplanes" msgstr "Flugvélar" #. Translators: This is a tooltip #: data/ui/place-bar.ui:28 data/ui/place-buttons.ui:27 #| msgid "Share location" msgid "Share Location" msgstr "Deila staðsetningu" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:11 msgid "Add to new route" msgstr "Bæta við nýja leið" #. Translators: This is the button to find a route to a place #: data/ui/place-buttons.ui:15 msgid "Directions" msgstr "Stefnur" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:36 #| msgid "Mark as favorite" msgid "Mark as Favorite" msgstr "Merkja sem eftirlæti" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:44 msgid "Edit on OpenStreetMap" msgstr "Breyta í OpenStreetMap" #. Translators: This is a tooltip #: data/ui/place-view.ui:52 msgid "Share location" msgstr "Deila staðsetningu" #: data/ui/zoom-in-dialog.ui:11 msgid "Zoom in to add location!" msgstr "Renndu að til að bæta við staðsetningu!" #: lib/maps-file-data-source.c:262 lib/maps-file-data-source.c:338 #: lib/maps-file-data-source.c:418 msgid "Failed to find tile structure in directory" msgstr "Mistókst að finna kortaflísaskipan í möppu" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "Gat ekki þáttað XML-skjal" #: lib/maps-osm.c:250 lib/maps-osm.c:403 msgid "Missing required attributes" msgstr "Nauðsynleg eigindi vantar" #: lib/maps-osm.c:451 lib/maps-osm.c:494 msgid "Could not find OSM element" msgstr "Gat ekki fundið OSM-stak" #: lib/maps-osm.c:508 msgid "Could not find user element" msgstr "Gat ekki fundið notandaeinindi" #: src/application.js:74 msgid "A path to a local tiles directory structure" msgstr "Slóð á möppuuppbyggingu fyrir kortaflísar á tölvunni" #: src/application.js:80 msgid "Tile size for local tiles directory" msgstr "Stærð kortaflísa fyrir kortaflísamöppu á tölvunni" #: src/application.js:84 msgid "Show the version of the program" msgstr "Sýna útgáfu forrits" #: src/application.js:90 msgid "Search for places" msgstr "Leita að stöðum" #: src/application.js:101 src/application.js:102 msgid "[FILE…|URI]" msgstr "[SKRÁ…|SLÓÐ]" #: src/application.js:283 #, javascript-format msgid "Invalid maps: URI: %s" msgstr "Ógild kort: URI: %s" #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:74 #, javascript-format msgid "Maps at %f, %f.png" msgstr "Landakort á %f, %f.png" #: src/exportViewDialog.js:156 msgid "Filesystem is read only" msgstr "Skráakerfi er aðeins til lestrar" #: src/exportViewDialog.js:158 msgid "You do not have permission to save there" msgstr "Þú hefur ekki nægar aðgangsheimildir til að vista þarna" #: src/exportViewDialog.js:160 msgid "The directory does not exist" msgstr "Mappan er ekki til" #: src/exportViewDialog.js:162 msgid "No filename specified" msgstr "Ekkert skráarheiti tilgreint" #: src/exportViewDialog.js:170 msgid "Unable to export view" msgstr "Tókst ekki að flytja út sýnina" #: src/geoJSONSource.js:73 msgid "invalid coordinate" msgstr "ógild hnit" #: src/geoJSONSource.js:118 src/geoJSONSource.js:158 src/geoJSONSource.js:173 msgid "parse error" msgstr "þáttunarvilla" #: src/geoJSONSource.js:152 msgid "unknown geometry" msgstr "óþekkt gerð rúmfræði" #: src/graphHopper.js:121 src/transitPlan.js:174 msgid "Route request failed." msgstr "Leiðarbeiðni mistókst." #: src/graphHopper.js:128 src/transitPlan.js:166 msgid "No route found." msgstr "Engin leið fannst." #: src/graphHopper.js:215 src/transitplugins/openTripPlanner.js:1121 msgid "Start!" msgstr "Byrja!" #: src/mainWindow.js:62 msgid "All Layer Files" msgstr "Allar lagaskrár" #: src/mainWindow.js:442 msgid "Failed to connect to location service" msgstr "Tókst ekki að tengjast staðsetningarþjónustu" #: src/mainWindow.js:529 msgid "translator-credits" msgstr "Sveinn í Felli, sv1@fellsnet.is" #: src/mainWindow.js:533 #| msgid "Copyright © 2011 – 2022 Red Hat, Inc. and The GNOME Maps authors" msgid "Copyright © 2011 – 2023 Red Hat, Inc. and The GNOME Maps authors" msgstr "Höfundarréttur © 2011 – 2023 Red Hat, Inc. og höfundar GNOME Maps" #: src/mainWindow.js:549 #, javascript-format msgid "Map data by %s and contributors" msgstr "Kortagögn frá %s og meðhöfundum" #: src/mainWindow.js:550 msgid "Map Data Provider" msgstr "Útgefandi kortagagna" #: src/mainWindow.js:562 msgid "Map Tile Provider" msgstr "Útgefandi kortaflísa" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:570 #, javascript-format msgid "Map tiles provided by %s" msgstr "Kortaflísar gefnar út af %s" #: src/mainWindow.js:600 msgid "Search Provider" msgstr "Leitarþjónusta" #: src/mainWindow.js:603 #, javascript-format msgid "Search provided by %s using %s" msgstr "Leitarniðurstöður í boði %s með %s" #: src/mapView.js:501 src/mapView.js:561 msgid "Failed to open layer" msgstr "Mistókst að opna lag" #: src/mapView.js:522 msgid "Do you want to continue?" msgstr "Viltu halda áfram?" #: src/mapView.js:523 #, javascript-format msgid "" "You are about to open files with a total size of %s MB. This could take some " "time to load" msgstr "" "Þú ert að fara að opna skrár sem eru alls %s MB. Það gæti tekið svolítinn " "tíma að hlaða þeim inn" #: src/mapView.js:555 msgid "File type is not supported" msgstr "Það er enginn stuðningur við skráategundina" #: src/mapView.js:593 msgid "Failed to open GeoURI" msgstr "Mistókst að opna Geo URI-slóð" #: src/mapView.js:1033 msgid "Nothing found here!" msgstr "Ekkert fannst hér!" #: src/mapView.js:1094 msgid "" "Location was added to the map, note that it may take a while before it shows " "on the map and in search results." msgstr "" "Staðsetningunni var bætt á kortið, athugaðu að nokkur tími getur liðið " "þangað til hún fer að sjást á kortinu eða koma upp í leitarniðurstöðum." #: src/osmAccountDialog.js:134 msgid "The verification code didn’t match, please try again." msgstr "Sannvottunarkóðinn stemmdi ekki, prófaðu aftur." #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:335 msgid "Incorrect user name or password" msgstr "Rangt notandanafn eða lykilorð" #: src/osmConnection.js:337 msgid "Success" msgstr "Tókst" #: src/osmConnection.js:339 msgid "Bad request" msgstr "Óleyfileg beiðni" #: src/osmConnection.js:341 msgid "Object not found" msgstr "Hluturinn fannst ekki" #: src/osmConnection.js:343 msgid "Conflict, someone else has just modified the object" msgstr "Árekstur, einhver annar er nýbúinn að breyta atriðinu" #: src/osmConnection.js:345 msgid "Object has been deleted" msgstr "Hlutnum hefur verið eytt" #: src/osmConnection.js:347 msgid "Way or relation refers to non-existing children" msgstr "Leið eða vensl vísa í afleiður sem ekki eru til" #: src/osmEditDialog.js:106 msgid "Name" msgstr "Nafn" #: src/osmEditDialog.js:109 msgid "The official name. This is typically what appears on signs." msgstr "Opinbera heitið. Venjulega það sem birt væri á skiltum og þess háttar" #: src/osmEditDialog.js:112 msgid "Address" msgstr "Heimilisfang" #: src/osmEditDialog.js:120 src/placeView.js:254 msgid "Website" msgstr "Vefsvæði" #: src/osmEditDialog.js:124 msgid "This is not a valid URL. Make sure to include http:// or https://." msgstr "" "Þetta er ekki gild URL-slóð. Gakktu úr skugga um að hafa með http:// eða " "https://." #: src/osmEditDialog.js:125 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" "Opinbera vefsvæðið. Reyndu að nota grunnform slóðarinnar, t.d. http://vefur." "is í stað http://dæmi.is/index.html." #: src/osmEditDialog.js:130 msgid "Phone" msgstr "Símanúmer" #: src/osmEditDialog.js:134 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" "Símanúmer. Notaðu alþjóðlega framsetningu, sem byrjar á + merki. Vertu " "meðvitaður um reglur þær sem í gildi eru á svæðinu, sérstaklega varðandi " "persónulega friðhelgi." #: src/osmEditDialog.js:139 src/placeView.js:282 msgid "E-mail" msgstr "Tölvupóstur" #: src/osmEditDialog.js:144 msgid "" "This is not a valid e-mail address. Make sure to not include the mailto: " "protocol prefix." msgstr "" "Þetta er ekki gilt tölvupóstfang. Gakktu úr skugga um að ekki sé með mailto: " "forskeytið" #: src/osmEditDialog.js:145 msgid "" "Contact e-mail address for inquiries. Add only email addresses that are " "intended to be publicly used." msgstr "" "Tölvupóstfang fyrir fyrirspurnir. Bættu bara við tölvupóstföngum sem ætlast " "er til að séu í notkun opinberlega." #. Translators: This is the text for the "Wikipedia" link at the end #. of summaries #: src/osmEditDialog.js:149 src/placeView.js:630 msgid "Wikipedia" msgstr "Wikipedia" #: src/osmEditDialog.js:156 src/placeView.js:319 msgid "Opening hours" msgstr "Opnunartímar" #: src/osmEditDialog.js:161 msgid "See the link in the label for help on format." msgstr "" "Skoðaðu tengilinn í skýringum um hvar hægt sé að fá hjálp varðandi snið." #. TODO: this is a bit of a work-around to re-interpret the population, #. * stored as a string into an integer to convert back to a locale- #. * formatted string. Ideally it should be kept as an integer value #. * in the Place class. But this will also need to be handled by the #. * PlaceStore, possible in a backwards-compatible way #. #: src/osmEditDialog.js:164 src/placeView.js:429 msgid "Population" msgstr "Fólksfjöldi" #: src/osmEditDialog.js:169 src/placeView.js:458 msgid "Altitude" msgstr "Hæð" #: src/osmEditDialog.js:172 msgid "Elevation (height above sea level) of a point in metres." msgstr "Hæð yfir sjávarmáli í metrum." #: src/osmEditDialog.js:175 msgid "Wheelchair access" msgstr "Hjólastólaaðgangur" #: src/osmEditDialog.js:178 src/osmEditDialog.js:187 src/osmEditDialog.js:198 #: src/osmEditDialog.js:233 msgid "Yes" msgstr "Já" #: src/osmEditDialog.js:179 src/osmEditDialog.js:188 src/osmEditDialog.js:199 #: src/osmEditDialog.js:234 msgid "No" msgstr "Nei" #: src/osmEditDialog.js:180 msgid "Limited" msgstr "takmarkað" #: src/osmEditDialog.js:181 msgid "Designated" msgstr "uppgefið" #: src/osmEditDialog.js:184 msgid "Internet access" msgstr "Internetaðgangur" #: src/osmEditDialog.js:189 msgid "Wi-Fi" msgstr "Þráðlaust net" #: src/osmEditDialog.js:190 msgid "Wired" msgstr "Um kapal" #: src/osmEditDialog.js:191 msgid "Terminal" msgstr "Útstöð" #: src/osmEditDialog.js:192 msgid "Service" msgstr "Þjónusta" #: src/osmEditDialog.js:195 msgid "Takeaway" msgstr "Brottnám (takeaway)" #: src/osmEditDialog.js:200 msgid "Only" msgstr "Aðeins" #: src/osmEditDialog.js:203 msgid "Religion" msgstr "Trúarbrögð" #: src/osmEditDialog.js:206 src/translations.js:286 msgid "Animism" msgstr "Andatrú" #: src/osmEditDialog.js:207 msgid "Bahá’í" msgstr "Bahá’í" #: src/osmEditDialog.js:208 src/translations.js:288 msgid "Buddhism" msgstr "Búddismi" #: src/osmEditDialog.js:209 src/translations.js:289 msgid "Caodaism" msgstr "Kao-Daí" #: src/osmEditDialog.js:210 src/translations.js:290 msgid "Christianity" msgstr "Kristindómur" #: src/osmEditDialog.js:211 src/translations.js:291 msgid "Confucianism" msgstr "Konfúsíusismi" #: src/osmEditDialog.js:212 src/translations.js:292 msgid "Hinduism" msgstr "Hindúismi" #: src/osmEditDialog.js:213 src/translations.js:293 msgid "Jainism" msgstr "Jaínismi" #: src/osmEditDialog.js:214 src/translations.js:294 msgid "Judaism" msgstr "Gyðingdómur" #: src/osmEditDialog.js:215 src/translations.js:295 msgid "Islam" msgstr "Íslam" #: src/osmEditDialog.js:216 src/translations.js:296 msgid "Multiple Religions" msgstr "Margra trúarbragða" #: src/osmEditDialog.js:217 src/translations.js:297 msgid "Paganism" msgstr "Heiðni" #: src/osmEditDialog.js:218 src/translations.js:298 msgid "Pastafarianism" msgstr "Pastafaríanismi" #: src/osmEditDialog.js:219 src/translations.js:299 msgid "Scientology" msgstr "Vísindakirkjan" #: src/osmEditDialog.js:220 src/translations.js:300 msgid "Shinto" msgstr "Shinto" #: src/osmEditDialog.js:221 src/translations.js:301 msgid "Sikhism" msgstr "Sikhismi" #: src/osmEditDialog.js:222 src/translations.js:302 msgid "Spiritualism" msgstr "Spírítismi" #: src/osmEditDialog.js:223 src/translations.js:303 msgid "Taoism" msgstr "Taóismi" #: src/osmEditDialog.js:224 src/translations.js:304 msgid "Unitarian Universalism" msgstr "Alþjóðlegur únítarismi" #: src/osmEditDialog.js:225 src/translations.js:305 msgid "Voodoo" msgstr "Vúdú" #: src/osmEditDialog.js:226 src/translations.js:306 msgid "Yazidism" msgstr "Jasismi" #: src/osmEditDialog.js:227 src/translations.js:307 msgid "Zoroastrianism" msgstr "Sóróismi" #: src/osmEditDialog.js:230 msgid "Toilets" msgstr "Snyrtingar" #: src/osmEditDialog.js:237 msgid "Note" msgstr "Athugasemd" #: src/osmEditDialog.js:240 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" "Upplýsingar sem notaðar eru til að gefa öðrum kortahönnuðum ekki-augljósar " "ábendingar um tiltekið atriði, markmið höfundar þegar hann útbjó atriði, eða " "ábendingar um hvernig hægt yrði að þróa/bæta það." #: src/osmEditDialog.js:339 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "Bæta í OpenStreetMap" #: src/osmEditDialog.js:393 msgid "Select Type" msgstr "Veldu tegund" #: src/osmEditDialog.js:515 msgid "Done" msgstr "Lokið" #: src/osmEditDialog.js:827 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "" "Sniðið ætti að innihalda tungumálskóða og titil greinar, til dæmis \"is:" "Heiti greinar\"." #: src/osmEditDialog.js:833 msgid "Use the reload button to load the Wikidata tag for the selected article" msgstr "" "Notaðu endurhleðsluhnappinn til að hlaða inn Wikidata-merkinu fyrir völdu" " greinina" #: src/osmEditDialog.js:841 msgid "Couldn't find Wikidata tag for article" msgstr "Fann ekki Wikidata-merkið fyrir greinina" #: src/photonUtils.js:118 msgid "Unnamed place" msgstr "Nafnlaus staður" #: src/placeEntry.js:267 msgid "Failed to parse Geo URI" msgstr "Gat ekki þáttað Geo URI-slóð" #: src/placeEntry.js:280 msgid "Failed to parse Maps URI" msgstr "Gat ekki þáttað URI-slóð korta" #: src/placeView.js:242 msgid "Coordinates" msgstr "Hnit" #: src/placeView.js:246 msgid "Accuracy" msgstr "Nákvæmni" #. Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) #: src/placeView.js:249 #, javascript-format msgid "Accuracy: %s" msgstr "Nákvæmni: %s" #. since the phone numbers are typically always rendered #. * left-to-right, insert an explicit LRM char to avoid issues #. * with phone numbers in international format starting with a + #. * which is considered a "weak" character to determine Unicode #. * text direction #. #: src/placeView.js:268 msgid "Phone number" msgstr "Símanúmer" #. Translators: #. * The establishment offers customers to purchase meals #. * (or similar) to be consumed elsewhere #. #: src/placeView.js:295 msgid "Offers takeaway" msgstr "Býður upp á brottnám (takeaway)" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed on-premise. #. #: src/placeView.js:303 msgid "Does not offer takeaway" msgstr "Býður ekki upp á brottnám (takeaway)" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed elsewhere. E.g. #. * there is no seating on-premise for eating/drinking #. #: src/placeView.js:312 msgid "Only offers takeaway" msgstr "Býður einungis upp á brottnám (takeaway)" #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/placeView.js:329 msgid "Public internet access" msgstr "Opinn internetaðgangur" #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/placeView.js:338 msgid "No internet access" msgstr "Enginn internetaðgangur" #. Translators: #. * This means a WLAN Hotspot, also known as wireless, wifi or Wi-Fi. #. #: src/placeView.js:346 msgid "Public Wi-Fi" msgstr "Opið Wi-Fi" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/placeView.js:354 msgid "Wired internet access" msgstr "Internetaðgangur um kapal" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/placeView.js:362 msgid "Computers available for use" msgstr "Tölvur í boði til notkunar" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/placeView.js:370 msgid "Internet assistance available" msgstr "Aðstoð við internettengingu í boði" #: src/placeView.js:376 msgid "No toilets available" msgstr "Engin salerni á staðnum" #: src/placeView.js:379 msgid "Toilets available" msgstr "Salerni á staðnum" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #: src/placeView.js:388 msgid "Wheelchair accessible" msgstr "Aðgengilegt í hjólastól" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/placeView.js:398 msgid "Limited wheelchair accessibility" msgstr "Takmarkað aðgengi fyrir hjólastóla" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #: src/placeView.js:407 msgid "Not wheelchair accessible" msgstr "Ekki hjólastólaaðgangur" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/placeView.js:417 msgid "Designated for wheelchair users" msgstr "Frátekið fyrir notendur hjólastóla" #. * #. * Translators: this is a label indicating an altitude below #. * sea level, where the %s placeholder is the altitude relative #. * to mean sea level in the "negative direction" #. #: src/placeView.js:448 #, javascript-format msgid "%s below sea level" msgstr "%s undir sjávarmáli" #. * #. * Translators: this indicates a place is located at (or very #. * close to) mean sea level #. #: src/placeView.js:455 msgid "At sea level" msgstr "Við sjávarmál" #: src/placeView.js:464 msgid "Religion:" msgstr "Trúarbrögð:" #: src/place.js:543 msgid "Place not found in OpenStreetMap" msgstr "Staður fannst ekki í OpenStreetMap" #: src/place.js:550 msgid "Coordinates in URL are not valid" msgstr "Hnitin í URL-slóðinni eru ógild" #: src/place.js:559 msgid "URL is not supported" msgstr "URL-slóð er ekki studd" #: src/printLayout.js:350 #, javascript-format msgid "From %s to %s" msgstr "Frá %s til %s" #: src/printOperation.js:49 msgid "Loading map tiles for printing" msgstr "Hleð inn kortaflísum fyrir prentun" #: src/printOperation.js:50 msgid "You can abort printing if this takes too long" msgstr "Þú getur hætt við prentun ef þetta tekur of langan tíma" #: src/printOperation.js:52 msgid "Abort printing" msgstr "Hætta við prentun" #. Translators: this is add via location tooltip #: src/routeEntry.js:60 msgid "Add via location" msgstr "Bæta við í gegnum staðsetningu" #. Translators: this is remove via location tooltip #: src/routeEntry.js:70 msgid "Remove via location" msgstr "Fjarlægja í gegnum staðsetningu" #. Translators: this is reverse route tooltip #: src/routeEntry.js:76 msgid "Reverse route" msgstr "Snúa við leið" #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:84 #, javascript-format msgid "Add %s to %s" msgstr "Bæta %s við %s" #: src/sendToDialog.js:181 msgid "Failed to open URI" msgstr "Gat ekki opnað URI-slóð" #: src/sendToDialog.js:248 #, javascript-format msgid "Open with %s" msgstr "Opna með %s" #: src/shapeLayer.js:108 msgid "failed to load file" msgstr "mistókst að hlaða inn skrá" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:349 #, javascript-format msgid "Estimated time: %s" msgstr "Áætlaður tími: %s" #: src/sidebar.js:419 #, javascript-format msgid "Itineraries provided by %s" msgstr "Leiðartöflur gefnar út af %s" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:39 #, javascript-format msgid "Start at %s" msgstr "Byrja í %s" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:45 msgid "Start" msgstr "Upphaf" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:63 #, javascript-format msgid "Walk %s" msgstr "Ganga %s" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:77 #, javascript-format msgid "Arrive at %s" msgstr "Koma til %s" #: src/transit.js:79 src/transitplugins/openTripPlanner.js:1134 msgid "Arrive" msgstr "Koma" #: src/transitLegRow.js:69 msgid "Show walking instructions" msgstr "Birta gönguleiðbeiningar" #: src/transitLegRow.js:70 msgid "Hide walking instructions" msgstr "Fela gönguleiðbeiningar" #: src/transitMoreRow.js:37 msgid "Load earlier alternatives" msgstr "Hlaða inn fyrri valkostum" #: src/transitMoreRow.js:39 msgid "Load later alternatives" msgstr "Hlaða inn síðari valkostum" #: src/transitMoreRow.js:52 msgid "No earlier alternatives found." msgstr "Engir fyrri möguleikar fundust." #: src/transitMoreRow.js:54 msgid "No later alternatives found." msgstr "Engir síðari möguleikar fundust." #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:136 msgctxt "month-day-date" msgid "%b %e" msgstr "%e. %b" #: src/transitPlan.js:170 msgid "No timetable data found for this route." msgstr "Engin tímatöflugögn fundust fyrir þessa leið." #: src/transitPlan.js:178 msgid "No provider found for this route." msgstr "Engin veita fannst fyrir þessa leið." #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:295 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:324 #, javascript-format msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "%s mínúta" msgstr[1] "%s mínútur" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:336 #, javascript-format msgid "%s hour" msgid_plural "%s hours" msgstr[0] "%s klukkustund" msgstr[1] "%s klukkustundir" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:344 #, javascript-format msgid "%s:%s hour" msgid_plural "%s:%s hours" msgstr[0] "%s:%s klukkustund" msgstr[1] "%s:%s klukkustundir" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:698 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: src/translations.js:55 msgid "Around the clock" msgstr "Allan sólarhringinn" #: src/translations.js:57 msgid "From sunrise to sunset" msgstr "Frá sólarupprás til sólarlags" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:123 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s,%s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:137 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s,%s,%s" #: src/translations.js:156 msgid "Every day" msgstr "Alla daga" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:168 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:179 msgid "Public holidays" msgstr "Almennir frídagar" #: src/translations.js:181 msgid "School holidays" msgstr "Skólafrídagar" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:221 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: src/translations.js:235 msgid "not open" msgstr "ekki opið" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:250 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:287 #| msgid "Bahá’í" msgid "Bahá'í" msgstr "Bahá'í" #. Translators: Accuracy of user location information #: src/utils.js:256 msgid "Unknown" msgstr "Óþekkt" #. Translators: Accuracy of user location information #: src/utils.js:259 msgid "Exact" msgstr "Nákvæmt" #. Translators: this is a duration with only hours, using #. * an abbreviation for hours, corresponding to 'h' in English #. #: src/utils.js:360 #, javascript-format msgid "%s h" msgstr "%s klst" #. Translators: this is a duration with hours and minutes parts #. * using abbreviations for hours and minutes, corresponding to 'h' #. * and 'min' in English. The minutes has appropriate plural variations #. #: src/utils.js:366 #, javascript-format msgid "%s h %s min" msgid_plural "%s h %s min" msgstr[0] "%s klst %s mín" msgstr[1] "%s klst %s mín" #. Translators: this is a duration with minutes part #. * using abbreviation for minutes, corresponding to 'min' in English #. * with appropriate plural variations #. #: src/utils.js:373 #, javascript-format msgid "%s min" msgid_plural "%s min" msgstr[0] "%s mín" msgstr[1] "%s míl" #. Translators: this is a duration of less than one minute #. * with seconds using an abbreviation for seconds, corresponding to #. * 's' in English with appropriate plural forms #. #: src/utils.js:379 #, javascript-format msgid "%s s" msgid_plural "%s s" msgstr[0] "%s s" msgstr[1] "%s s" #. Translators: This is a distance measured in kilometers #: src/utils.js:390 #, javascript-format msgid "%s km" msgstr "%s km" #. Translators: This is a distance measured in meters #: src/utils.js:393 #, javascript-format msgid "%s m" msgstr "%s m" #. Translators: This is a distance measured in miles #: src/utils.js:401 #, javascript-format msgid "%s mi" msgstr "%s míl" #. Translators: This is a distance measured in feet #: src/utils.js:404 #, javascript-format msgid "%s ft" msgstr "%s fet" #: src/transitplugins/goMetro.js:61 msgid "This plugin doesn't support latest arrival" msgstr "Þessi viðbót styður ekki síðustu komu" #: src/transitplugins/openTripPlanner.js:1195 #, javascript-format msgid "Continue on %s" msgstr "Halda áfram á %s" #: src/transitplugins/openTripPlanner.js:1197 msgid "Continue" msgstr "Halda áfram" #: src/transitplugins/openTripPlanner.js:1200 #, javascript-format msgid "Turn left on %s" msgstr "Beygðu til vinstri yfir á %s" #: src/transitplugins/openTripPlanner.js:1202 msgid "Turn left" msgstr "Beygðu til vinstri" #: src/transitplugins/openTripPlanner.js:1205 #, javascript-format msgid "Turn slightly left on %s" msgstr "Beygðu lítillega til vinstri yfir á %s" #: src/transitplugins/openTripPlanner.js:1207 msgid "Turn slightly left" msgstr "Beygðu lítillega til vinstri" #: src/transitplugins/openTripPlanner.js:1210 #, javascript-format msgid "Turn sharp left on %s" msgstr "Beygðu skarpt til vinstri yfir á %s" #: src/transitplugins/openTripPlanner.js:1212 msgid "Turn sharp left" msgstr "Beygðu skarpt til vinstri" #: src/transitplugins/openTripPlanner.js:1215 #, javascript-format msgid "Turn right on %s" msgstr "Beygðu til hægri yfir á %s" #: src/transitplugins/openTripPlanner.js:1217 msgid "Turn right" msgstr "Beygðu til hægri" #: src/transitplugins/openTripPlanner.js:1220 #, javascript-format msgid "Turn slightly right on %s" msgstr "Beygðu lítillega til hægri yfir á %s" #: src/transitplugins/openTripPlanner.js:1222 msgid "Turn slightly right" msgstr "Beygðu lítillega til hægri" #: src/transitplugins/openTripPlanner.js:1225 #, javascript-format msgid "Turn sharp right on %s" msgstr "Beygðu skarpt til hægri yfir á %s" #: src/transitplugins/openTripPlanner.js:1227 msgid "Turn sharp right" msgstr "Beygðu skarpt til hægri" #: src/transitplugins/openTripPlanner.js:1233 #, javascript-format msgid "At the roundabout, take exit %s" msgstr "Í hringtorginu skaltu beygja útaf við %s afrein" #: src/transitplugins/openTripPlanner.js:1235 #, javascript-format msgid "At the roundabout, take exit to %s" msgstr "Í hringtorginu skaltu beygja útaf yfir á %s" #: src/transitplugins/openTripPlanner.js:1237 msgid "Take the roundabout" msgstr "Farðu inn á hringtorgið" #: src/transitplugins/openTripPlanner.js:1241 #, javascript-format msgid "Take the elevator and get off at %s" msgstr "Taktu lyftuna og farðu út á %s" #: src/transitplugins/openTripPlanner.js:1243 msgid "Take the elevator" msgstr "Taktu lyftuna" #: src/transitplugins/openTripPlanner.js:1247 #, javascript-format msgid "Make a left u-turn onto %s" msgstr "Taktu U-beygju til vinstri yfir á %s" #: src/transitplugins/openTripPlanner.js:1249 msgid "Make a left u-turn" msgstr "Taktu U-beygju til vinstri" #: src/transitplugins/openTripPlanner.js:1252 #, javascript-format msgid "Make a right u-turn onto %s" msgstr "Taktu U-beygju til hægri yfir á %s" #: src/transitplugins/openTripPlanner.js:1254 msgid "Make a right u-turn" msgstr "Taktu U-beygju til hægri" #~ msgid "Go to current location" #~ msgstr "Fara á núverandi staðsetningu" #~ msgid "Choose map type" #~ msgstr "Veldu tegund landakorts" #~ msgid "Zoom in" #~ msgstr "Renna að" #~ msgid "Drag to change order of the route" #~ msgstr "Dragðu til að breyta röð leiðarinnar" #~ msgid "Foursquare check-in privacy setting" #~ msgstr "Persónuleyndarstillingar við innskráningu á Foursquare" #~ msgid "" #~ "Latest used Foursquare check-in privacy setting. Possible values are: " #~ "public, followers or private." #~ msgstr "" #~ "Síðast notuðu persónuleyndarstillingar við innskráningu á Foursquare. " #~ "Möguleg gildi eru: opinbert, fylgjendur eða einka." #~ msgid "Foursquare check-in Facebook broadcasting" #~ msgstr "Tilkynning á Facebook við innskráningu á Foursquare" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a post in the " #~ "Facebook account associated with the Foursquare account." #~ msgstr "" #~ "Gefur til kynna hvort Foursquare eigi að senda tilkynningu um " #~ "innskráningu inn á Facebook-aðganginn sem tengist viðkomandi Foursquare-" #~ "reikningi." #~ msgid "Foursquare check-in Twitter broadcasting" #~ msgstr "Tilkynning á Twitter við innskráningu á Foursquare" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a tweet in the " #~ "Twitter account associated with the Foursquare account." #~ msgstr "" #~ "Gefur til kynna hvort Foursquare eigi að senda tíst um innskráningu inn á " #~ "Twitter-aðganginn sem tengist viðkomandi Foursquare-reikningi." #~ msgid "Use hybrid aerial tiles" #~ msgstr "Nota blendings-loftmyndaflísar" #~ msgid "Whether aerial tiles should use hybrid style (with labels)." #~ msgstr "Hvort loftmyndaflísar eigi að nota blandaðan stíl (með merkingum)" #~ msgid "Visibility" #~ msgstr "Sýnileiki" #~ msgid "Post on Facebook" #~ msgstr "Senda á Facebook" #~ msgid "Post on Twitter" #~ msgstr "Senda á Twitter" #~ msgid "C_heck in" #~ msgstr "S_krá inn" #~ msgid "Public" #~ msgstr "Opið (public)" #~ msgid "Followers" #~ msgstr "Fylgjendur" #~ msgid "Private" #~ msgstr "Einka" #~ msgid "Include route and markers" #~ msgstr "Hafa með leið og merkingar" #~ msgid "Show Labels" #~ msgstr "Birta merkingar" #~ msgid "Maps is offline!" #~ msgstr "Kortin eru án nettengingar!" #~ msgid "" #~ "Maps need an active internet connection to function properly, but one " #~ "can’t be found." #~ msgstr "" #~ "Landakortaforritið þarf virka internet-tengingu til að virka almennilega, " #~ "en ekki hefur gengið að finna neina slíka." #~ msgid "Check your connection and proxy settings." #~ msgstr "Athugaðu tengi- og milliþjónastillingarnar þínar." #~ msgid "Email" #~ msgstr "Tölvupóstur" #~ msgid "Password" #~ msgstr "Lykilorð" #~ msgid "" #~ "Sorry, that didn’t work. Please try again, or visit\n" #~ "OpenStreetMap to reset your password." #~ msgstr "" #~ "Æ, þetta virkaði ekki. Endilega reyndu aftur, eða farðu á\n" #~ "OpenStreetMap til að endurstilla lykilorðið þitt." #~ msgctxt "dialog title" #~ msgid "Edit on OpenStreetMap" #~ msgstr "Breyta í OpenStreetMap" #~ msgid "Check In…" #~ msgstr "Skrá inn…" #~ msgid "Show more results" #~ msgstr "Birta fleiri niðurstöður" #~ msgid "Ignore network availability" #~ msgstr "Hunsa hvort netsamband sé í boði" #~ msgid "Select an account" #~ msgstr "Veldu aðgang" #~ msgid "Loading" #~ msgstr "Hleð inn" #~ msgid "Select a place" #~ msgstr "Veldu stað" #~ msgid "" #~ "Maps cannot find the place to check in to with Foursquare. Please select " #~ "one from this list." #~ msgstr "" #~ "Get ekki fundið staðinn til að skrá inn á Foursquare. Veldu einn af " #~ "þessum lista." #, javascript-format #~ msgid "Check in to %s" #~ msgstr "Skrá inn í %s" #, javascript-format #~ msgid "Write an optional message to check in to %s." #~ msgstr "Þú getur skrifað skilaboð með innskráningunni í %s." #, javascript-format #~ msgid "Cannot find “%s” in the social service" #~ msgstr "Finn ekki \"%s\" á samfélagsmiðilsþjónustunni" #~ msgid "Cannot find a suitable place to check-in in this location" #~ msgstr "" #~ "Get ekki fundið hentugan stað til að skrá inn á þessari staðsetningu" #~ msgid "" #~ "Credentials have expired, please open Online Accounts to sign in and " #~ "enable this account" #~ msgstr "" #~ "Auðkennin eru útrunnin, opnaðu \"Aðgangar á neti\" til að skrá þig inn og " #~ "virkja þennan aðgang" #~ msgid "A map application for GNOME" #~ msgstr "Landakortaforrit fyrir GNOME" #~ msgid "GNOME Maps" #~ msgstr "GNOME-landakort" #~ msgid "Night mode" #~ msgstr "Næturhamur" #~ msgid "Whether the application is in night mode." #~ msgstr "Hvort forritið sé í næturham." #~ msgid "Night Mode" #~ msgstr "Næturhamur" #~ msgid "" #~ "You can even search for specific types of locations, such as “Pubs near " #~ "Main Street, Boston” or “Hotels near Alexanderplatz, Berlin”." #~ msgstr "" #~ "Þú getur líka leitað að sérstökum tegundum staðsetninga, eins og “Pöbbar " #~ "nálægt Main Street, Boston”, \"Myndbandaleigur á Selfossi\" eða “Hótel " #~ "nálægt Alexanderplatz, Berlín”." #~ msgid "Facebook check-in privacy setting" #~ msgstr "Persónuleyndarstillingar við innskráningu á Facebook" #~ msgid "" #~ "Latest used Facebook check-in privacy setting. Possible values are: " #~ "EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS or SELF." #~ msgstr "" #~ "Síðast notuðu persónuleyndarstillingar við innskráningu á Facebook. " #~ "Möguleg gildi eru: ALLIR, VINIR_VINA, ALLIR_VINIR eða SJÁLF(UR)." #~ msgid "Everyone" #~ msgstr "Allir" #~ msgid "Friends of friends" #~ msgstr "Vinir vina" #~ msgid "Just friends" #~ msgstr "Bara vinir" #~ msgid "Just me" #~ msgstr "Bara ég" #~ msgid "Open with another application" #~ msgstr "Opna með öðru forriti" #~ msgid "Check in here" #~ msgstr "Skrá inn hér" #~ msgid "Don’t have an account?" #~ msgstr "Ertu ekki með aðgang?" #~ msgid "Show more information" #~ msgstr "Birta nánari upplýsingar" #~ msgid "Press enter to search" #~ msgstr "Ýttu á Enter til að leita" #~ msgid "Route search by OpenTripPlanner" #~ msgstr "Leita að leiðum með OpenTripPlanner" #~ msgid "" #~ "Maps cannot find the place to check in to with Facebook. Please select " #~ "one from this list." #~ msgstr "" #~ "Get ekki fundið staðinn til að skrá inn á Facebook. Veldu einn af þessum " #~ "lista." #~ msgid "Add destination" #~ msgstr "Bæta við áfangastað" #~ msgid "Population:" #~ msgstr "Fólksfjöldi:" #~ msgid "Altitude:" #~ msgstr "Hæð:" #~ msgid "Opening hours:" #~ msgstr "Opnunartímar:" #~ msgid "Internet access:" #~ msgstr "Internetaðgangur:" #~ msgid "Toilets:" #~ msgstr "Snyrtingar:" #~ msgid "Wheelchair access:" #~ msgstr "Hjólastólaaðgangur:" #~ msgid "Phone:" #~ msgstr "Sími:" #~ msgid "yes" #~ msgstr "já" #~ msgid "limited" #~ msgstr "takmarkað" #~ msgid "no" #~ msgstr "nei" #~ msgid "designated" #~ msgstr "uppgefið" #~ msgctxt "time range list" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgctxt "time range component" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgid "wired" #~ msgstr "um kapal" #~ msgid "terminal" #~ msgstr "útstöð" #~ msgid "service" #~ msgstr "þjónusta" #~ msgid "%f h" #~ msgstr "%f klst" #~ msgid "%f min" #~ msgstr "%f mín" #~ msgid "%f s" #~ msgstr "%f sek" #~ msgid "org.gnome.Maps" #~ msgstr "org.gnome.Maps" #~ msgid "Quit" #~ msgstr "Hætta" #~ msgid "OK" #~ msgstr "Í lagi" #~ msgid "Load Map Layer" #~ msgstr "Hlaða inn kortalagi" #~ msgid "%f km" #~ msgstr "%f km" #~ msgid "%f m" #~ msgstr "%f m" #~ msgid "%f mi" #~ msgstr "%f mi" #~ msgid "%f ft" #~ msgstr "%f fet" #~ msgid "Country code: %s" #~ msgstr "Landskóði: %s" 070701000001CC000081A4000000000000000000000001664134090000DFC1000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/it.po# Italian translation for gnome-maps. # Copyright (C) 2013 - 2019, 2021, 2024 Red Hat & gnome-maps authors # This file is distributed under the same license as the gnome-maps package. # Claudio Arseni , 2013, 2014, 2015. # Gianvito Cavasoli , 2016-2023. # Vittorio Monti , 2024. # msgid "" msgstr "" "Project-Id-Version: gnome-maps master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2024-02-26 12:47+0000\n" "PO-Revision-Date: 2024-02-28 14:55+0100\n" "Last-Translator: Milo Casagrande \n" "Language-Team: Italian \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.4.1\n" "X-Project-Style: gnome\n" #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.appdata.xml.in.in:6 data/org.gnome.Maps.desktop.in.in:4 #: data/ui/main-window.ui:27 src/application.js:64 src/mainWindow.js:147 #: src/mainWindow.js:647 msgid "Maps" msgstr "Mappe" #: data/org.gnome.Maps.appdata.xml.in.in:7 msgid "Find places around the world" msgstr "Trova luoghi in giro per il mondo" #: data/org.gnome.Maps.appdata.xml.in.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "Mappe fornisce un rapido accesso alla cartografia mondiale. Consente di " "trovare velocemente i luoghi utilizzando la ricerca per città o per " "indirizzo e di trovare i luoghi in cui incontrare i propri amici." #: data/org.gnome.Maps.appdata.xml.in.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "Mappe usa il database OpenStreetMap creato dalla collaborazione di centinaia " "di migliaia di persone da ogni parte del mondo." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Maps.appdata.xml.in.in:451 src/mainWindow.js:644 msgid "The GNOME Project" msgstr "Il progetto GNOME" #: data/org.gnome.Maps.desktop.in.in:5 msgid "A simple maps application" msgstr "Una semplice applicazione per le mappe" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in.in:14 msgid "Maps;" msgstr "Mappe;" #: data/org.gnome.Maps.desktop.in.in:17 msgid "Allows your location to be shown on the map." msgstr "Consente alla vostra posizione di essere mostrata sulla mappa." #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "ultima posizione visualizzata" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "Coordinate dell'ultima posizione visualizzata." #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "ingrandimento" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "Livello d'ingrandimento" #: data/org.gnome.Maps.gschema.xml:21 msgid "rotation" msgstr "rotazione" #: data/org.gnome.Maps.gschema.xml:22 msgid "Map rotation in radians" msgstr "Rotazione della mappa in radianti" #: data/org.gnome.Maps.gschema.xml:26 msgid "Map type" msgstr "Tipo di mappa" #: data/org.gnome.Maps.gschema.xml:27 msgid "The type of map to display (street, aerial, etc.)" msgstr "Il tipo di mappa da mostrare (stradale, aerea, ecc.)" #: data/org.gnome.Maps.gschema.xml:31 msgid "Window size" msgstr "Dimensione finestra" #: data/org.gnome.Maps.gschema.xml:32 msgid "Window size (width and height)." msgstr "Dimensione della finestra (larghezza e altezza)." #: data/org.gnome.Maps.gschema.xml:36 msgid "Window position" msgstr "Posizione finestra" #: data/org.gnome.Maps.gschema.xml:37 msgid "Window position (X and Y)." msgstr "Posizione della finestra (X e Y)." #: data/org.gnome.Maps.gschema.xml:41 msgid "Window maximized" msgstr "Finestra massimizzata" #: data/org.gnome.Maps.gschema.xml:42 msgid "Window maximization state" msgstr "Stato massimizzazione della finestra" #: data/org.gnome.Maps.gschema.xml:46 msgid "Maximum number of search results" msgstr "Numero massimo di risultati per la ricerca" #: data/org.gnome.Maps.gschema.xml:47 msgid "Maximum number of search results from geocode search." msgstr "Numero massimo di risultati per la ricerca da codifica geografica." #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent places to store" msgstr "Numero di luoghi recenti da archiviare" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited places to store." msgstr "Numero di luoghi visitati di recente di cui tenere traccia." #: data/org.gnome.Maps.gschema.xml:56 msgid "Number of recent routes to store" msgstr "Numero di percorsi recenti da archiviare" #: data/org.gnome.Maps.gschema.xml:57 msgid "Number of recently visited routes to store." msgstr "Numero di percorsi effettuati di recente di cui tenere traccia." #: data/org.gnome.Maps.gschema.xml:61 msgid "OpenStreetMap username or email address" msgstr "Nome utente o indirizzo email di OpenStreetMap" #: data/org.gnome.Maps.gschema.xml:62 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "" "Indica se l'utente ha effettuato l'accesso per modificare i dati " "OpenStreetMap." #: data/org.gnome.Maps.gschema.xml:66 msgid "Last used transportation type for routing" msgstr "L'ultimo tipo di trasporto usato per il percorso" #: data/org.gnome.Maps.gschema.xml:70 msgid "Show scale" msgstr "Mostra scala" #: data/org.gnome.Maps.gschema.xml:71 msgid "Whether to show the scale." msgstr "Indica se mostrare la scala." #: data/ui/context-menu.ui:6 msgid "Route from Here" msgstr "Percorso da qui" #: data/ui/context-menu.ui:10 msgid "Add Intermediate Destination" msgstr "Aggiungi destinazione intermedia" #: data/ui/context-menu.ui:14 msgid "Route to Here" msgstr "Percorso fino a qui" #: data/ui/context-menu.ui:20 msgid "What's Here?" msgstr "Cosa c'è qui?" #: data/ui/context-menu.ui:24 msgid "Copy Location" msgstr "Copia posizione" #: data/ui/context-menu.ui:28 msgid "Add to OpenStreetMap…" msgstr "Aggiungi a OpenStreetMap…" #: data/ui/export-view-dialog.ui:7 msgid "Export view" msgstr "Esporta visualizzazione" #: data/ui/export-view-dialog.ui:16 data/ui/send-to-dialog.ui:10 #: data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "A_nnulla" #: data/ui/export-view-dialog.ui:26 msgid "_Export" msgstr "_Esporta" #. Translators: This is a tooltip #: data/ui/favorite-list-row.ui:72 msgid "Remove Favorite" msgstr "Rimuovi preferito" #: data/ui/favorites-popover.ui:11 msgid "No Favorites" msgstr "Non ci sono preferiti" #: data/ui/favorites-popover.ui:12 msgid "Add places to your favorites to get them listed here" msgstr "Aggiungi luoghi ai preferiti per elencarli qui" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:11 src/geoclue.js:106 msgid "Current Location" msgstr "Posizione attuale" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:19 msgid "Layers" msgstr "Livelli" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:11 msgid "Print Route" msgstr "Stampa percorso" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:21 msgid "Favorites" msgstr "Preferiti" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:30 msgid "Route Planner" msgstr "Pianificazione percorso" #: data/ui/help-overlay.ui:12 msgctxt "shortcut window" msgid "General" msgstr "Generale" #: data/ui/help-overlay.ui:15 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "Mostra scorciatoie" #: data/ui/help-overlay.ui:21 msgctxt "shortcut window" msgid "Search" msgstr "Ricerca" #: data/ui/help-overlay.ui:27 msgctxt "shortcut window" msgid "Explore points-of-interest" msgstr "Esplora i luoghi d'interesse" #: data/ui/help-overlay.ui:33 msgctxt "shortcut window" msgid "Show last search results" msgstr "Mostra i risultati dell'ultima ricerca" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "Attiva/Disattiva pianificazione percorso" #: data/ui/help-overlay.ui:45 msgctxt "shortcut window" msgid "Print route" msgstr "Stampa il percorso" #: data/ui/help-overlay.ui:51 msgctxt "shortcut window" msgid "Quit" msgstr "Esci" #: data/ui/help-overlay.ui:57 msgctxt "shortcut window" msgid "Open main menu" msgstr "Apre il menù principale" #: data/ui/help-overlay.ui:65 msgctxt "shortcut window" msgid "Map View" msgstr "Visualizzazione mappa" #: data/ui/help-overlay.ui:68 msgctxt "shortcut window" msgid "Zoom in" msgstr "Aumenta l'ingrandimento" #: data/ui/help-overlay.ui:74 msgctxt "shortcut window" msgid "Zoom out" msgstr "Diminuisce l'ingrandimento" #: data/ui/help-overlay.ui:80 msgctxt "shortcut window" msgid "Rotate clockwise" msgstr "Ruota in senso orario" #: data/ui/help-overlay.ui:86 msgctxt "shortcut window" msgid "Rotate counter-clockwise" msgstr "Ruota in senso antiorario" #: data/ui/help-overlay.ui:92 msgctxt "shortcut window" msgid "Reset rotation" msgstr "Ripristina rotazione" #: data/ui/help-overlay.ui:98 msgctxt "shortcut window" msgid "Toggle scale" msgstr "Attiva/Disattiva scala" #: data/ui/help-overlay.ui:104 msgctxt "shortcut window" msgid "Go to current location" msgstr "Va a alla posizione attuale" #: data/ui/help-overlay.ui:114 msgctxt "shortcut window" msgid "Switch to street view" msgstr "Passa alla visualizzazione stradale" #: data/ui/help-overlay.ui:121 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "Passa alla visualizzazione aerea" #: data/ui/help-overlay.ui:127 msgctxt "shortcut window" msgid "Open shape layer" msgstr "Apre livello di forma" #: data/ui/layers-popover.ui:7 msgid "Show Scale" msgstr "Mostra scala" #: data/ui/layers-popover.ui:16 msgid "Enable Experimental Map" msgstr "Abilita la mappa sperimentale" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:21 msgid "Open Shape Layer…" msgstr "Apri livello di forma…" #: data/ui/main-window.ui:8 msgid "Set up OpenStreetMap Account…" msgstr "Impostazione account OpenStreetMap…" #: data/ui/main-window.ui:12 msgid "Export as Image…" msgstr "Esporta come immagine…" #: data/ui/main-window.ui:17 msgid "_Keyboard Shortcuts" msgstr "Scorciatoie da _tastiera" #: data/ui/main-window.ui:22 msgid "About Maps" msgstr "Informazioni su Mappe" #: data/ui/main-window.ui:48 msgid "Main Menu" msgstr "Menù principale" #: data/ui/osm-account-dialog.ui:5 msgid "OpenStreetMap Account" msgstr "Account OpenStreetMap" #: data/ui/osm-account-dialog.ui:31 msgid "Sign In To Edit Maps" msgstr "Accedere per modificare le mappe" #: data/ui/osm-account-dialog.ui:32 msgid "Help to improve the map, using an OpenStreetMap account." msgstr "Aiuta a migliorare la mappa, usando un account OpenStreetMap." #: data/ui/osm-account-dialog.ui:36 msgid "Sign In" msgstr "Accedi" #: data/ui/osm-account-dialog.ui:59 msgid "Verification" msgstr "Verifica" #: data/ui/osm-account-dialog.ui:60 msgid "" "Copy the verification code shown when authorizing access in the browser." msgstr "" "Copia il codice di verifica mostrato quando si autorizza l'accesso nel " "browser." #: data/ui/osm-account-dialog.ui:69 msgid "Verification Code" msgstr "Codice di verifica" #: data/ui/osm-account-dialog.ui:75 msgid "Verify" msgstr "Verifica" #: data/ui/osm-account-dialog.ui:110 msgid "Signed In" msgstr "Autenticato" #: data/ui/osm-account-dialog.ui:111 msgid "Your OpenStreetMap account is active." msgstr "L'account OpenStreetMap è attivo." #: data/ui/osm-account-dialog.ui:129 msgid "Sign Out" msgstr "Disconnetti" #: data/ui/osm-edit-address.ui:11 msgid "Street" msgstr "Strada" #: data/ui/osm-edit-address.ui:22 msgid "House number" msgstr "Numero civico" #: data/ui/osm-edit-address.ui:33 msgid "Postal code" msgstr "Codice postale" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:44 msgid "City" msgstr "Città" #: data/ui/osm-edit-dialog.ui:8 msgctxt "dialog title" msgid "Edit on OpenStreetMap" msgstr "Modifica su OpenStreetMap" #: data/ui/osm-edit-dialog.ui:57 msgid "Type" msgstr "Tipo" #: data/ui/osm-edit-dialog.ui:79 msgid "None" msgstr "Nessuno" #: data/ui/osm-edit-dialog.ui:108 msgid "Add Field" msgstr "Aggiungi campo" #: data/ui/osm-edit-dialog.ui:130 msgid "Comment" msgstr "Commento" #: data/ui/osm-edit-dialog.ui:158 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "Le modifiche alla mappa saranno visibili su tutte le mappe che usano\n" "dati di OpenStreetMap." #: data/ui/osm-edit-dialog.ui:186 msgid "Recently Used" msgstr "Usate recentemente" #: data/ui/osm-edit-dialog.ui:225 src/mapView.js:671 msgid "Cancel" msgstr "Annulla" #: data/ui/osm-edit-dialog.ui:238 src/osmEditDialog.js:531 msgid "Next" msgstr "Successiva" #: data/ui/osm-edit-wikipedia.ui:8 msgid "Article" msgstr "Articolo" #: data/ui/osm-edit-wikipedia.ui:21 msgid "Wikidata tag" msgstr "Etichetta Wikidata" #: data/ui/osm-edit-wikipedia.ui:32 msgid "Load Wikidata tag for article" msgstr "Carica l'etichetta di Wikidata per l'articolo" #: data/ui/place-popover.ui:23 src/searchBar.js:55 msgid "Explore Nearby Places" msgstr "Esplora luoghi nelle vicinanze" #: data/ui/place-popover.ui:82 src/application.js:277 msgid "No results found" msgstr "Nessun risultato trovato" #: data/ui/place-popover.ui:92 src/application.js:255 msgid "An error has occurred" msgstr "Si è verificato un errore" #. Translators: This is a tooltip #: data/ui/route-entry.ui:12 msgid "Change Route Order" msgstr "Cambia l'ordine di percorso" #: data/ui/send-to-dialog.ui:7 msgid "Open Location" msgstr "Apri posizione" #: data/ui/send-to-dialog.ui:64 msgid "Copy" msgstr "Copia" #: data/ui/send-to-dialog.ui:70 msgid "Send To…" msgstr "Invia a…" #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:62 msgid "Open Shape Layer" msgstr "Apri livello di forma" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "_Apri" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:32 msgid "Toggle visible" msgstr "Attiva/Disattiva visibilità" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:44 msgid "Remove Shape Layer" msgstr "Rimuove il livello di forma" #: data/ui/sidebar.ui:207 msgid "Route search by GraphHopper" msgstr "Ricerca del percorso con GraphHopper" #: data/ui/sidebar.ui:272 msgid "" "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of " "transportation,\n" "e.g. a national provider might not include airlines, and a local provider " "could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" "I percorsi itineranti per il trasporto pubblico sono forniti da servizi\n" "di terze parti.\n" "GNOME non può garantire la correttezza degli itinerari e degli orari " "indicati.\n" "Notare che alcuni fornitori potrebbero non includere tutte le modalità di " "trasporto disponibili,\n" "per esempio un fornitore nazionale potrebbe non includere le linee aeree, e " "un fornitore locale\n" "potrebbe non includere treni regionali.\n" "Nomi e marchi riportati sono da considerarsi, quando applicabile, come " "marchi registrati." #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:98 msgid "Hide intermediate stops and information" msgstr "Nasconde le fermate intermedie e informazioni" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:156 msgid "Show intermediate stops and information" msgstr "Mostra le fermate intermedie e informazioni" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:16 msgid "Leave Now" msgstr "Partire ora" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:17 msgid "Leave By" msgstr "Partire alle" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:18 msgid "Arrive By" msgstr "Arrivare alle" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:85 msgid "Show" msgstr "Mostra" #: data/ui/transit-options-panel.ui:95 msgid "Buses" msgstr "Autobus" #: data/ui/transit-options-panel.ui:101 msgid "Trams" msgstr "Tram" #: data/ui/transit-options-panel.ui:107 msgid "Trains" msgstr "Treni" #: data/ui/transit-options-panel.ui:113 msgid "Subway" msgstr "Metropolitana" #: data/ui/transit-options-panel.ui:119 msgid "Ferries" msgstr "Traghetti" #: data/ui/transit-options-panel.ui:125 msgid "Airplanes" msgstr "Aeroplani" #. Translators: This is a tooltip #: data/ui/place-bar.ui:33 data/ui/place-buttons.ui:27 msgid "Share Location" msgstr "Condivide la posizione" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:11 msgid "Add to new route" msgstr "Aggiungi a nuovo percorso" #. Translators: This is the button to find a route to a place #: data/ui/place-buttons.ui:15 msgid "Directions" msgstr "Direzioni" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:36 msgid "Mark as Favorite" msgstr "Contrassegna come preferito" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:44 msgid "Edit on OpenStreetMap" msgstr "Modifica su OpenStreetMap" #. Translators: This is a tooltip #: data/ui/place-view.ui:52 msgid "Share location" msgstr "Condivide la posizione" #: data/ui/poi-category-goback-row.ui:22 msgid "Back to Main Categories" msgstr "Torna alle categorie principali" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:19 msgid "Reset Rotation" msgstr "Ripristina rotazione" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:32 msgid "Zoom Out" msgstr "Diminuisce l'ingrandimento" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:43 src/mapView.js:1246 msgid "Zoom In" msgstr "Aumenta ingrandimento" #: lib/maps-file-data-source.c:262 lib/maps-file-data-source.c:338 #: lib/maps-file-data-source.c:418 msgid "Failed to find tile structure in directory" msgstr "Impossibile trovare sezioni delle mappe nella directory" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "Analisi del documento XML non riuscita" #: lib/maps-osm.c:250 lib/maps-osm.c:403 msgid "Missing required attributes" msgstr "Attributi richiesti mancanti" #: lib/maps-osm.c:451 lib/maps-osm.c:494 msgid "Could not find OSM element" msgstr "Impossibile trovare l'elemento OSM" #: lib/maps-osm.c:508 msgid "Could not find user element" msgstr "Impossibile trovare l'elemento utente" #: src/application.js:78 msgid "A path to a local tiles directory structure" msgstr "Un percorso di una directory locale contenente sezioni delle mappe" #: src/application.js:84 msgid "Tile size for local tiles directory" msgstr "Dimensione mappa per la directory locale delle mappe" #: src/application.js:88 msgid "Show the version of the program" msgstr "Mostra la versione del programma" #: src/application.js:94 msgid "Search for places" msgstr "Cerca luoghi" #: src/application.js:105 src/application.js:106 msgid "[FILE…|URI]" msgstr "[FILE…|URI]" #: src/application.js:284 #, javascript-format msgid "Invalid maps: URI: %s" msgstr "Mappe non valide: URI %s" #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:75 #, javascript-format msgid "Maps at %f, %f.png" msgstr "Mappe di %f, %f.png" #: src/exportViewDialog.js:174 msgid "Unable to export view" msgstr "Impossibile esportare la visualizzazione" #: src/favoriteListRow.js:42 msgid "Favorite removed" msgstr "Preferito rimosso" #: src/favoriteListRow.js:43 msgid "Undo" msgstr "Annulla" #: src/geoJSONSource.js:73 msgid "invalid coordinate" msgstr "coordinate non valide" #: src/geoJSONSource.js:126 src/geoJSONSource.js:166 src/geoJSONSource.js:181 msgid "parse error" msgstr "errore di analisi" #: src/geoJSONSource.js:160 msgid "unknown geometry" msgstr "geometria sconosciuta" #: src/graphHopper.js:101 src/transitPlan.js:175 msgid "Route request failed." msgstr "Richiesta del percorso non riuscita." #: src/graphHopper.js:108 src/transitPlan.js:167 msgid "No route found." msgstr "Percorso non trovato." #: src/graphHopper.js:195 src/transitplugins/openTripPlanner.js:1163 msgid "Start!" msgstr "Avvia!" #: src/mainWindow.js:59 msgid "All Layer Files" msgstr "Tutti i file livello" #: src/mainWindow.js:522 msgid "Failed to connect to location service" msgstr "Impossibile connettersi al servizio di localizzazione" #: src/mainWindow.js:527 msgid "Turn on location services" msgstr "Attivare i servizi di localizzazione" #: src/mainWindow.js:528 msgid "Location Settings" msgstr "Impostazioni di localizzazione" #: src/mainWindow.js:645 msgid "translator-credits" msgstr "" "Claudio Arseni \n" "Gianvito Cavasoli " #: src/mainWindow.js:649 msgid "Copyright © 2011 – 2023 Red Hat, Inc. and The GNOME Maps authors" msgstr "Copyright © 2011 – 2023 Red Hat, Inc. e gli autori di GNOME Mappe" #: src/mainWindow.js:665 #, javascript-format msgid "Map data by %s and contributors" msgstr "I dati delle mappe sono di %s e collaboratori" #: src/mainWindow.js:666 msgid "Map Data Provider" msgstr "Fornitore dati delle mappe" #: src/mainWindow.js:678 msgid "Map Tile Provider" msgstr "Fornitore sezioni delle mappe" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:686 #, javascript-format msgid "Map tiles provided by %s" msgstr "Le sezioni delle mappe sono fornite da %s" #: src/mainWindow.js:716 msgid "Search Provider" msgstr "Fornitore ricerca" #: src/mainWindow.js:719 #, javascript-format msgid "Search provided by %s using %s" msgstr "Ricerca fornita da %s usando %s" #: src/mapView.js:645 src/mapView.js:710 msgid "Failed to open layer" msgstr "Apertura del livello non riuscita" #: src/mapView.js:664 msgid "Do you want to continue?" msgstr "Continuare?" #: src/mapView.js:665 #, javascript-format msgid "" "You are about to open files with a total size of %s MB. This could take some " "time to load" msgstr "" "Si stanno per aprire dei file con una dimensione totale di %s MB. Il " "caricamento potrebbe richiedere del tempo" #: src/mapView.js:672 src/transitplugins/openTripPlanner.js:1239 #: src/transitplugins/openTripPlanner2.js:267 msgid "Continue" msgstr "Continua" #: src/mapView.js:704 msgid "File type is not supported" msgstr "Il tipo di file non è supportato" #: src/mapView.js:741 msgid "Failed to open GeoURI" msgstr "Apertura di GeoURI non riuscita" #: src/mapView.js:1205 msgid "Nothing found here!" msgstr "Non c'è niente qui!" #: src/mapView.js:1245 msgid "Zoom in to add location" msgstr "Ingrandire per aggiungere la posizione" #: src/mapView.js:1266 msgid "Location was added in OpenStreetMap" msgstr "Luogo aggiunto in OpenStreetMap" #. switch back to the sign-in view, and show a toast indicating #. that verification failed #: src/osmAccountDialog.js:134 msgid "The verification code didn’t match, please try again." msgstr "Il codice di verifica non corrisponde, riprovare." #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:335 msgid "Incorrect user name or password" msgstr "Nome utente o password non corretti" #: src/osmConnection.js:337 msgid "Success" msgstr "Successo" #: src/osmConnection.js:339 msgid "Bad request" msgstr "Richiesta errata" #: src/osmConnection.js:341 msgid "Object not found" msgstr "Oggetto non trovato" #: src/osmConnection.js:343 msgid "Conflict, someone else has just modified the object" msgstr "Conflitto, qualcun altro ha già modificato l'oggetto" #: src/osmConnection.js:345 msgid "Object has been deleted" msgstr "L'oggetto è stato eliminato" #: src/osmConnection.js:347 msgid "Way or relation refers to non-existing children" msgstr "Percorso o relazione in riferimento a un nodo figlio non esistente" #: src/osmEditDialog.js:106 msgid "Name" msgstr "Nome" #: src/osmEditDialog.js:109 msgid "The official name. This is typically what appears on signs." msgstr "Il nome ufficiale. Questo è tipicamente quello che appare all'accesso." #: src/osmEditDialog.js:112 msgid "Address" msgstr "Indirizzo" #: src/osmEditDialog.js:120 src/placeView.js:275 msgid "Website" msgstr "Sito web" #: src/osmEditDialog.js:124 msgid "This is not a valid URL. Make sure to include http:// or https://." msgstr "Questo URL non è valido. Assicurarsi di includere http:// o https://." #: src/osmEditDialog.js:125 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" "Il sito web ufficiale. Provare a usare la forma più basica di un URL, " "esempio http://example.com invece di http://example.com/index.html." #: src/osmEditDialog.js:130 msgid "Phone" msgstr "Telefono" #: src/osmEditDialog.js:134 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" "Il numero di telefono. Usare il formato internazionale, a partire dal " "simbolo +. Fare attenzione alle leggi locali sulla privacy, specialmente per " "i numeri di telefono privati." #: src/osmEditDialog.js:139 src/placeView.js:308 msgid "Email" msgstr "Email" #: src/osmEditDialog.js:144 msgid "" "This is not a valid email address. Make sure to not include the mailto: " "protocol prefix." msgstr "" "Questo indirizzo email non è valido. Assicurarsi di non includere il " "prefisso di protocollo mailto:." #: src/osmEditDialog.js:145 msgid "" "Contact email address for inquiries. Add only email addresses that are " "intended to be publicly used." msgstr "" "Indirizzo email di contatto per le richieste. Aggiungere solo indirizzi " "email destinati a un uso pubblico." #. Translators: This is the text for the "Wikipedia" link at the end #. of summaries #: src/osmEditDialog.js:149 src/placeView.js:727 msgid "Wikipedia" msgstr "Wikipedia" #: src/osmEditDialog.js:156 src/placeView.js:399 msgid "Opening hours" msgstr "Orari di apertura" #: src/osmEditDialog.js:161 msgid "See the link in the label for help on format." msgstr "Vedere il collegamento nell'etichetta per un aiuto sul formato." #. TODO: this is a bit of a work-around to re-interpret the population, #. * stored as a string into an integer to convert back to a locale- #. * formatted string. Ideally it should be kept as an integer value #. * in the Place class. But this will also need to be handled by the #. * PlaceStore, possible in a backwards-compatible way #. #: src/osmEditDialog.js:164 src/placeView.js:509 msgid "Population" msgstr "Popolazione" #: src/osmEditDialog.js:169 src/placeView.js:538 msgid "Altitude" msgstr "Altitudine" #: src/osmEditDialog.js:172 msgid "Elevation (height above sea level) of a point in meters." msgstr "Altitudine (altezza sopra il livello del mare) di un punto in metri." #: src/osmEditDialog.js:175 msgid "Wheelchair access" msgstr "Accesso per disabili" #: src/osmEditDialog.js:178 src/osmEditDialog.js:187 src/osmEditDialog.js:198 #: src/osmEditDialog.js:233 msgid "Yes" msgstr "Sì" #: src/osmEditDialog.js:179 src/osmEditDialog.js:188 src/osmEditDialog.js:199 #: src/osmEditDialog.js:234 msgid "No" msgstr "No" #: src/osmEditDialog.js:180 msgid "Limited" msgstr "Limitato" #: src/osmEditDialog.js:181 msgid "Designated" msgstr "Designato" #: src/osmEditDialog.js:184 msgid "Internet access" msgstr "Accesso Internet" #: src/osmEditDialog.js:189 msgid "Wi-Fi" msgstr "Wi-Fi" #: src/osmEditDialog.js:190 msgid "Wired" msgstr "Via cavo" #: src/osmEditDialog.js:191 msgid "Terminal" msgstr "Terminale" #: src/osmEditDialog.js:192 msgid "Service" msgstr "Servizio" #: src/osmEditDialog.js:195 msgid "Takeout" msgstr "Da asporto" #: src/osmEditDialog.js:200 msgid "Only" msgstr "Soltanto" #: src/osmEditDialog.js:203 msgid "Religion" msgstr "Religione" #: src/osmEditDialog.js:206 src/translations.js:286 msgid "Animism" msgstr "Animismo" #: src/osmEditDialog.js:207 msgid "Bahá’í" msgstr "Bahá’í" #: src/osmEditDialog.js:208 src/translations.js:288 msgid "Buddhism" msgstr "Buddhismo" #: src/osmEditDialog.js:209 src/translations.js:289 msgid "Caodaism" msgstr "Caodaismo" #: src/osmEditDialog.js:210 src/translations.js:290 msgid "Christianity" msgstr "Cristianesimo" #: src/osmEditDialog.js:211 src/translations.js:291 msgid "Confucianism" msgstr "Confucianesimo" #: src/osmEditDialog.js:212 src/translations.js:292 msgid "Hinduism" msgstr "Induismo" #: src/osmEditDialog.js:213 src/translations.js:293 msgid "Jainism" msgstr "Giainismo" #: src/osmEditDialog.js:214 src/translations.js:294 msgid "Judaism" msgstr "Ebraismo" #: src/osmEditDialog.js:215 src/translations.js:295 msgid "Islam" msgstr "Islam" #: src/osmEditDialog.js:216 src/translations.js:296 msgid "Multiple Religions" msgstr "Religioni multiple" #: src/osmEditDialog.js:217 src/translations.js:297 msgid "Paganism" msgstr "Paganesimo" #: src/osmEditDialog.js:218 src/translations.js:298 msgid "Pastafarianism" msgstr "Pastafarianesimo" #: src/osmEditDialog.js:219 src/translations.js:299 msgid "Scientology" msgstr "Scientology" #: src/osmEditDialog.js:220 src/translations.js:300 msgid "Shinto" msgstr "Shintoismo" #: src/osmEditDialog.js:221 src/translations.js:301 msgid "Sikhism" msgstr "Sikhismo" #: src/osmEditDialog.js:222 src/translations.js:302 msgid "Spiritualism" msgstr "Spiritualismo" #: src/osmEditDialog.js:223 src/translations.js:303 msgid "Taoism" msgstr "Taoismo" #: src/osmEditDialog.js:224 src/translations.js:304 msgid "Unitarian Universalism" msgstr "Unitariani universalisti" #: src/osmEditDialog.js:225 src/translations.js:305 msgid "Voodoo" msgstr "Voodoo" #: src/osmEditDialog.js:226 src/translations.js:306 msgid "Yazidism" msgstr "Yazidismo" #: src/osmEditDialog.js:227 src/translations.js:307 msgid "Zoroastrianism" msgstr "Zoroastrismo" #: src/osmEditDialog.js:230 src/poiCategories.js:176 msgid "Toilets" msgstr "Servizi igienici" #: src/osmEditDialog.js:237 msgid "Note" msgstr "Nota" #: src/osmEditDialog.js:240 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" "Indicazioni utilizzate per comunicare ad altri mappatori informazioni non " "evidenti su un elemento, l'intento dell'autore quando lo ha creato o " "suggerimenti per futuri miglioramenti." #: src/osmEditDialog.js:339 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "Aggiungi a OpenStreetMap" #: src/osmEditDialog.js:393 msgid "Select Type" msgstr "Seleziona tipo" #: src/osmEditDialog.js:515 msgid "Done" msgstr "Fatto" #: src/osmEditDialog.js:818 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "" "Il formato usato deve includere il codice della lingua e il titolo " "dell'articolo tipo «it:Titolo dell'articolo»." #: src/osmEditDialog.js:824 msgid "Use the reload button to load the Wikidata tag for the selected article" msgstr "" "Usare il pulsante di aggiornamento per caricare l'etichetta Wikidata per gli " "articoli selezionati" #: src/osmEditDialog.js:832 msgid "Couldn't find Wikidata tag for article" msgstr "Impossibile trovare l'etichetta Wikidata per l'articolo" #: src/photonUtils.js:118 msgid "Unnamed place" msgstr "Luogo senza nome" #: src/placeEntry.js:274 msgid "Failed to parse Geo URI" msgstr "Analisi dell'URI geografico non riuscita" #: src/placeEntry.js:286 msgid "Failed to parse Maps URI" msgstr "Analisi dell'URI delle mappe non riuscita" #. 300 ft (300 * 12 * 0.0254 m) #. #. * Translators: This a format string for showing a distance to a place #. * is lower than a "quite short" distance. #. * The "less than" symbol can be substituded with an appropriate one, if #. * needed (e.g. using the correct direction, or alternative symbol). #. * The %s should be kept, and is substituted with a label representing the #. * short distance. The \u2009 (thin space) could also be adjusted if needed #: src/placeListRow.js:46 #, javascript-format msgctxt "short distance format string" msgid "< %s" msgstr "< %s" #: src/placeView.js:263 msgid "Coordinates" msgstr "Coordinate" #: src/placeView.js:267 msgid "Accuracy" msgstr "Precisione" #. Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) #: src/placeView.js:270 #, javascript-format msgid "Accuracy: %s" msgstr "Precisione: %s" #. since the phone numbers are typically always rendered #. * left-to-right, insert an explicit LRM char to avoid issues #. * with phone numbers in international format starting with a + #. * which is considered a "weak" character to determine Unicode #. * text direction #. #: src/placeView.js:289 msgid "Phone number" msgstr "Numero di telefono" #. If a reference to a named floor (named or symbolic) exists #. * refer to it directly. #. #. Translators: #. * This is a reference to named building floor, using a label #. * or a code, as "displayed in the elevator" #. #: src/placeView.js:323 src/placeView.js:362 msgid "Floor" msgstr "Piano" #: src/placeView.js:325 #, javascript-format msgid "Floor %s" msgstr "Piano %s" #: src/placeView.js:337 msgid "At ground level" msgstr "Al livello del terreno" #. Translators: #. * This is a reference to a number of floors above #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:346 #, javascript-format msgid "%s floor above ground level" msgid_plural "%s floors above ground level" msgstr[0] "%s piano sopra il livello del terreno" msgstr[1] "%s piani sopra il livello del terreno" #. Translators: #. * This is a reference to a number of floors below #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:357 #, javascript-format msgid "%s floor below ground level" msgid_plural "%s floors below ground level" msgstr[0] "%s piano sotto il livello del terreno" msgstr[1] "%s piani sotto il livello del terreno" #. Translators: #. * The establishment offers customers to purchase meals #. * (or similar) to be consumed elsewhere #. #: src/placeView.js:375 msgid "Offers takeout" msgstr "Offre asporto" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed on-premise. #. #: src/placeView.js:383 msgid "Does not offer takeout" msgstr "Non offre asporto" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed elsewhere. E.g. #. * there is no seating on-premise for eating/drinking #. #: src/placeView.js:392 msgid "Only offers takeout" msgstr "Offre soltanto asporto" #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/placeView.js:409 msgid "Public internet access" msgstr "Accesso pubblico a Internet" #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/placeView.js:418 msgid "No internet access" msgstr "Nessun accesso a Internet" #. Translators: #. * This means a WLAN Hotspot, also known as wireless, wifi or Wi-Fi. #. #: src/placeView.js:426 msgid "Public Wi-Fi" msgstr "Wi-Fi pubblico" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/placeView.js:434 msgid "Wired internet access" msgstr "Accesso a Internet via cavo" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/placeView.js:442 msgid "Computers available for use" msgstr "Computer disponibili all'uso" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/placeView.js:450 msgid "Internet assistance available" msgstr "Assistenza Internet disponibile" #: src/placeView.js:456 msgid "No toilets available" msgstr "Nessun bagno disponibile" #: src/placeView.js:459 msgid "Toilets available" msgstr "Bagno disponibile" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #: src/placeView.js:468 msgid "Wheelchair accessible" msgstr "Accessibile per sedie a rotelle" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/placeView.js:478 msgid "Limited wheelchair accessibility" msgstr "Accesso limitato per sedie a rotelle" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #: src/placeView.js:487 msgid "Not wheelchair accessible" msgstr "Non accessibile per sedie a rotelle" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/placeView.js:497 msgid "Designated for wheelchair users" msgstr "Progettato per gli utenti con sedia a rotelle" #. * #. * Translators: this is a label indicating an altitude below #. * sea level, where the %s placeholder is the altitude relative #. * to mean sea level in the "negative direction" #. #: src/placeView.js:528 #, javascript-format msgid "%s below sea level" msgstr "%s sotto il livello del mare" #. * #. * Translators: this indicates a place is located at (or very #. * close to) mean sea level #. #: src/placeView.js:535 msgid "At sea level" msgstr "Al livello del mare" #: src/placeView.js:544 msgid "Religion:" msgstr "Religione:" #: src/place.js:570 msgid "Place not found in OpenStreetMap" msgstr "Luogo non trovato su OpenStreetMap" #: src/place.js:577 msgid "Coordinates in URL are not valid" msgstr "L'URL delle coordinate non è valido" #: src/place.js:586 msgid "URL is not supported" msgstr "L'URL non è supportato" #: src/poiCategories.js:132 msgid "Amenities" msgstr "Servizi" #: src/poiCategories.js:135 msgid "ATMs" msgstr "Bancomat" #: src/poiCategories.js:141 msgid "Post Boxes" msgstr "Cassette postali" #: src/poiCategories.js:147 msgid "Post Offices" msgstr "Uffici postali" #: src/poiCategories.js:153 msgid "Police" msgstr "Polizia" #: src/poiCategories.js:159 msgid "Libraries" msgstr "Biblioteche" #: src/poiCategories.js:165 msgid "Pharmacies" msgstr "Farmacie" #: src/poiCategories.js:171 msgid "Recycling" msgstr "Riciclaggio" #: src/poiCategories.js:182 msgid "Wheelchair-accessible Toilets" msgstr "Servizi igienici per disabili" #: src/poiCategories.js:188 msgid "Baggage Lockers" msgstr "Armadietti per bagagli" #: src/poiCategories.js:196 msgid "Eating & Drinking" msgstr "Mangiare e bere" #: src/poiCategories.js:200 msgid "Restaurants" msgstr "Ristoranti" #: src/poiCategories.js:205 msgid "Fast Food" msgstr "Fast food" #: src/poiCategories.js:210 msgid "Food Courts" msgstr "Zone di ristoro" #: src/poiCategories.js:215 msgid "Pubs" msgstr "Pub" #: src/poiCategories.js:221 msgid "Bars" msgstr "Bar" #: src/poiCategories.js:226 msgid "Cafes" msgstr "Caffè" #: src/poiCategories.js:231 msgid "Ice Cream" msgstr "Gelato" #: src/poiCategories.js:236 msgid "Food, Snacks, and Beverage Machines" msgstr "Macchine per alimenti, spuntini e bevande" #: src/poiCategories.js:244 msgid "Shopping" msgstr "Shopping" #: src/poiCategories.js:248 msgid "Supermarkets" msgstr "Supermercati" #: src/poiCategories.js:254 msgid "Convenience Stores" msgstr "Negozi" #: src/poiCategories.js:259 msgid "Shopping Malls" msgstr "Centri commerciali" #: src/poiCategories.js:265 msgid "Clothes" msgstr "Abbigliamento" #: src/poiCategories.js:271 msgid "Shoes" msgstr "Scarpe" #: src/poiCategories.js:276 msgid "Electronics" msgstr "Elettronica" #: src/poiCategories.js:282 msgid "Alcohol" msgstr "Alcolici" #: src/poiCategories.js:288 msgid "Bakeries" msgstr "Panetterie" #: src/poiCategories.js:294 msgid "Flowers" msgstr "Fiori" #: src/poiCategories.js:301 msgid "Transportation" msgstr "Trasporti" #: src/poiCategories.js:305 msgid "Bus & Tram Stops" msgstr "Fermate di autobus e tram" #: src/poiCategories.js:313 msgid "Train & Subway Stations" msgstr "Stazioni ferroviarie e della metropolitana" #: src/poiCategories.js:321 msgid "Tickets" msgstr "Biglietti" #: src/poiCategories.js:329 msgid "Parking" msgstr "Parcheggio" #: src/poiCategories.js:334 msgid "Bicycle Parking" msgstr "Parcheggio per biciclette" #: src/poiCategories.js:339 msgid "Bicycle Rental" msgstr "Noleggio biciclette" #: src/poiCategories.js:344 msgid "Car Rental" msgstr "Noleggio auto" #: src/poiCategories.js:349 msgid "Fuel" msgstr "Carburante" #: src/poiCategories.js:354 msgid "EV Charging" msgstr "Ricarica veicoli elettrici" #: src/poiCategories.js:362 msgid "Healthcare" msgstr "Assistenza sanitaria" #: src/poiCategories.js:366 msgid "Clinics" msgstr "Cliniche" #: src/poiCategories.js:372 msgid "Hospitals" msgstr "Ospedali" #: src/poiCategories.js:378 msgid "Dentists" msgstr "Dentisti" #: src/poiCategories.js:386 msgid "Accommodation" msgstr "Alloggio" #: src/poiCategories.js:390 msgid "Hotels" msgstr "Alberghi" #: src/poiCategories.js:395 msgid "Hostels" msgstr "Ostelli" #: src/poiCategories.js:400 msgid "Bed & Breakfast" msgstr "Bed & Breakfast" #: src/poiCategories.js:405 msgid "Campings" msgstr "Campeggi" #: src/poiCategories.js:412 msgid "Recreation" msgstr "Svago" #: src/poiCategories.js:416 msgid "Parks" msgstr "Parchi" #: src/poiCategories.js:421 msgid "Playgrounds" msgstr "Campi da gioco" #: src/poiCategories.js:425 msgid "Beaches" msgstr "Spiagge" #: src/poiCategories.js:430 msgid "Nature Reserves" msgstr "Riserve naturali" #: src/poiCategories.js:436 msgid "Theme Parks" msgstr "Parchi tematici" #: src/poiCategories.js:441 msgid "Theaters" msgstr "Teatri" #: src/poiCategories.js:447 msgid "Movie Theaters" msgstr "Cinema" #: src/poiCategories.js:453 msgid "Night Clubs" msgstr "Locali notturni" #: src/poiCategories.js:460 msgid "Tourism" msgstr "Turismo" #: src/poiCategories.js:464 msgid "Museums" msgstr "Musei" #: src/poiCategories.js:470 msgid "Attractions" msgstr "Attrazioni" #: src/poiCategories.js:475 msgid "Artworks" msgstr "Opere d'arte" #: src/poiCategories.js:480 msgid "Tourist Information" msgstr "Informazioni turistiche" #: src/poiCategories.js:487 msgid "Sports" msgstr "Sport" #: src/poiCategories.js:491 msgid "Gyms" msgstr "Palestre" #: src/poiCategories.js:497 msgid "Outdoor Gyms" msgstr "Palestre all'aperto" #: src/poiCategories.js:503 msgid "Golf Courses" msgstr "Campi da golf" #: src/printLayout.js:350 #, javascript-format msgid "From %s to %s" msgstr "Da %s a %s" #: src/printOperation.js:49 msgid "Loading map tiles for printing" msgstr "Caricamento sezioni della mappa per la stampa" #: src/printOperation.js:50 msgid "You can abort printing if this takes too long" msgstr "Si può interrompere la stampa se questa prende troppo tempo" #: src/printOperation.js:52 msgid "Abort printing" msgstr "Interrompi stampa" #. Translators: this is add via location tooltip #: src/routeEntry.js:60 msgid "Add via location" msgstr "Aggiunge tramite posizione" #. Translators: this is remove via location tooltip #: src/routeEntry.js:70 msgid "Remove via location" msgstr "Rimuove tramite posizione" #. Translators: this is reverse route tooltip #: src/routeEntry.js:76 msgid "Reverse route" msgstr "Percorso inverso" #: src/searchBar.js:45 msgid "Search" msgstr "Ricerca" #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:84 #, javascript-format msgid "Add %s to %s" msgstr "Aggiungi %s in %s" #: src/sendToDialog.js:181 msgid "Failed to open URI" msgstr "Apertura dell'URI non riuscita" #: src/sendToDialog.js:246 #, javascript-format msgid "Open with %s" msgstr "Apri con %s" #: src/shapeLayer.js:109 msgid "failed to load file" msgstr "caricamento file non riuscito" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:328 #, javascript-format msgid "Estimated time: %s" msgstr "Tempo stimato: %s" #: src/sidebar.js:398 #, javascript-format msgid "Itineraries provided by %s" msgstr "Itinerari forniti da %s" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:39 #, javascript-format msgid "Start at %s" msgstr "Partenza da %s" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:45 src/transitplugins/openTripPlanner2.js:236 msgid "Start" msgstr "Partenza" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:63 #, javascript-format msgid "Walk %s" msgstr "Camminare per %s" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:77 #, javascript-format msgid "Arrive at %s" msgstr "Arriva in %s" #: src/transit.js:79 src/transitplugins/openTripPlanner.js:1176 #: src/transitplugins/openTripPlanner2.js:255 msgid "Arrive" msgstr "Arrivo" #: src/transitLegRow.js:69 msgid "Show walking instructions" msgstr "Mostra il percorso a piedi" #: src/transitLegRow.js:70 msgid "Hide walking instructions" msgstr "Nasconde il percorso a piedi" #: src/transitMoreRow.js:37 msgid "Load earlier alternatives" msgstr "Caricare alternative precedenti" #: src/transitMoreRow.js:39 msgid "Load later alternatives" msgstr "Caricare alternative successive" #: src/transitMoreRow.js:52 msgid "No earlier alternatives found." msgstr "Non è stata trovata alcuna alternativa precedente." #: src/transitMoreRow.js:54 msgid "No later alternatives found." msgstr "Non è stata trovata alcuna alternativa successiva." #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:138 msgctxt "month-day-date" msgid "%b %e" msgstr "%e %b" #: src/transitPlan.js:171 msgid "No timetable data found for this route." msgstr "Nessun dato trovato sugli orari di questo percorso." #: src/transitPlan.js:179 msgid "No provider found for this route." msgstr "Nessun fornitore trovato per questo percorso." #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:300 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:331 #, javascript-format msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "%s minuto" msgstr[1] "%s minuti" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:343 #, javascript-format msgid "%s hour" msgid_plural "%s hours" msgstr[0] "%s ora" msgstr[1] "%s ore" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:351 #, javascript-format msgid "%s:%s hour" msgid_plural "%s:%s hours" msgstr[0] "%s:%s ora" msgstr[1] "%s:%s ore" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:744 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: src/translations.js:55 msgid "Around the clock" msgstr "Tutto il giorno" #: src/translations.js:57 msgid "From sunrise to sunset" msgstr "Dal tramonto all'alba" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:123 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s,%s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:137 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s,%s,%s" #: src/translations.js:156 msgid "Every day" msgstr "Ogni giorno" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:168 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:179 msgid "Public holidays" msgstr "Giorni festivi" #: src/translations.js:181 msgid "School holidays" msgstr "Vacanze scolastiche" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:221 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: src/translations.js:235 msgid "not open" msgstr "chiuso" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:250 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:287 msgid "Bahá'í" msgstr "Bahá’í" #. Translators: Accuracy of user location information #: src/utils.js:248 msgid "Unknown" msgstr "Sconosciuta" #. Translators: Accuracy of user location information #: src/utils.js:251 msgid "Exact" msgstr "Esatta" #. Translators: this is a duration with only hours, using #. * an abbreviation for hours, corresponding to 'h' in English #. #: src/utils.js:307 #, javascript-format msgid "%s h" msgstr "%s ora" #. Translators: this is a duration with hours and minutes parts #. * using abbreviations for hours and minutes, corresponding to 'h' #. * and 'min' in English. The minutes has appropriate plural variations #. #: src/utils.js:313 #, javascript-format msgid "%s h %s min" msgid_plural "%s h %s min" msgstr[0] "%s ora %s min" msgstr[1] "%s ore %s min" #. Translators: this is a duration with minutes part #. * using abbreviation for minutes, corresponding to 'min' in English #. * with appropriate plural variations #. #: src/utils.js:320 #, javascript-format msgid "%s min" msgid_plural "%s min" msgstr[0] "%s min" msgstr[1] "%s min" #. Translators: this is a duration of less than one minute #. * with seconds using an abbreviation for seconds, corresponding to #. * 's' in English with appropriate plural forms #. #: src/utils.js:326 #, javascript-format msgid "%s s" msgid_plural "%s s" msgstr[0] "%s sec" msgstr[1] "%s sec" #. Translators: This is a distance measured in kilometers #: src/utils.js:337 #, javascript-format msgid "%s km" msgstr "%s km" #. Translators: This is a distance measured in meters #: src/utils.js:340 #, javascript-format msgid "%s m" msgstr "%s m" #. Translators: This is a distance measured in miles #: src/utils.js:348 #, javascript-format msgid "%s mi" msgstr "%s mi" #. Translators: This is a distance measured in feet #: src/utils.js:351 #, javascript-format msgid "%s ft" msgstr "%s ft" #: src/transitplugins/goMetro.js:61 msgid "This plugin doesn't support latest arrival" msgstr "Questo plugin non supporta l'ultimo arrivo" #: src/transitplugins/openTripPlanner.js:1237 #: src/transitplugins/openTripPlanner2.js:266 #, javascript-format msgid "Continue on %s" msgstr "Continua su %s" #: src/transitplugins/openTripPlanner.js:1242 #: src/transitplugins/openTripPlanner2.js:270 #, javascript-format msgid "Turn left on %s" msgstr "Svolta a sinistra su %s" #: src/transitplugins/openTripPlanner.js:1244 #: src/transitplugins/openTripPlanner2.js:271 msgid "Turn left" msgstr "Svolta a sinistra" #: src/transitplugins/openTripPlanner.js:1247 #: src/transitplugins/openTripPlanner2.js:275 #, javascript-format msgid "Turn slightly left on %s" msgstr "Svolta leggermente a sinistra su %s" #: src/transitplugins/openTripPlanner.js:1249 #: src/transitplugins/openTripPlanner2.js:276 msgid "Turn slightly left" msgstr "Svolta leggermente a sinistra" #: src/transitplugins/openTripPlanner.js:1252 #: src/transitplugins/openTripPlanner2.js:280 #, javascript-format msgid "Turn sharp left on %s" msgstr "Svolta brusca a sinistra su %s" #: src/transitplugins/openTripPlanner.js:1254 #: src/transitplugins/openTripPlanner2.js:281 msgid "Turn sharp left" msgstr "Svolta brusca a sinistra" #: src/transitplugins/openTripPlanner.js:1257 #: src/transitplugins/openTripPlanner2.js:284 #, javascript-format msgid "Turn right on %s" msgstr "Svolta a destra su %s" #: src/transitplugins/openTripPlanner.js:1259 #: src/transitplugins/openTripPlanner2.js:285 msgid "Turn right" msgstr "Svolta a destra" #: src/transitplugins/openTripPlanner.js:1262 #: src/transitplugins/openTripPlanner2.js:289 #, javascript-format msgid "Turn slightly right on %s" msgstr "Svolta leggermente a destra su %s" #: src/transitplugins/openTripPlanner.js:1264 #: src/transitplugins/openTripPlanner2.js:290 msgid "Turn slightly right" msgstr "Svolta leggermente a destra" #: src/transitplugins/openTripPlanner.js:1267 #: src/transitplugins/openTripPlanner2.js:294 #, javascript-format msgid "Turn sharp right on %s" msgstr "Svolta brusca a destra su %s" #: src/transitplugins/openTripPlanner.js:1269 #: src/transitplugins/openTripPlanner2.js:295 msgid "Turn sharp right" msgstr "Svolta brusca a destra" #: src/transitplugins/openTripPlanner.js:1275 #: src/transitplugins/openTripPlanner2.js:302 #, javascript-format msgid "At the roundabout, take exit %s" msgstr "Alla rotonda, prendere l'uscita %s" #: src/transitplugins/openTripPlanner.js:1277 #: src/transitplugins/openTripPlanner2.js:305 #, javascript-format msgid "At the roundabout, take exit to %s" msgstr "Alla rotonda, prendere l'uscita verso %s" #: src/transitplugins/openTripPlanner.js:1279 #: src/transitplugins/openTripPlanner2.js:307 msgid "Take the roundabout" msgstr "Prendere la rotonda" #: src/transitplugins/openTripPlanner.js:1283 #: src/transitplugins/openTripPlanner2.js:315 #, javascript-format msgid "Take the elevator and get off at %s" msgstr "Prendere l'ascensore e scendere a %s" #: src/transitplugins/openTripPlanner.js:1285 #: src/transitplugins/openTripPlanner2.js:316 msgid "Take the elevator" msgstr "Prendere l'ascensore" #: src/transitplugins/openTripPlanner.js:1289 #: src/transitplugins/openTripPlanner2.js:320 #, javascript-format msgid "Make a left u-turn onto %s" msgstr "Fare un'inversione a sinistra su %s" #: src/transitplugins/openTripPlanner.js:1291 #: src/transitplugins/openTripPlanner2.js:321 msgid "Make a left u-turn" msgstr "Fare un'inversione a sinistra" #: src/transitplugins/openTripPlanner.js:1294 #: src/transitplugins/openTripPlanner2.js:325 #, javascript-format msgid "Make a right u-turn onto %s" msgstr "Fare un'inversione a destra su %s" #: src/transitplugins/openTripPlanner.js:1296 #: src/transitplugins/openTripPlanner2.js:326 msgid "Make a right u-turn" msgstr "Fare un'inversione a destra" 070701000001CD000081A400000000000000000000000166413409000099B6000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/ja.po# Japanese translation for gnome-maps. # Copyright (C) 2013 gnome-maps's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-maps package. # victory , 2013. # Jiro Matsuzawa , 2013. # Ikuya Awashiro , 2014. # Hajime Taira , 2014-2015. # msgid "" msgstr "" "Project-Id-Version: gnome-maps master\n" "Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "maps&keywords=I18N+L10N&component=general\n" "POT-Creation-Date: 2017-03-16 20:35+0000\n" "PO-Revision-Date: 2016-04-06 07:08+0900\n" "Last-Translator: sujiniku \n" "Language-Team: Japanese \n" "Language: ja\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: Poedit 1.8.7.1\n" #: ../data/org.gnome.Maps.appdata.xml.in.h:1 msgid "GNOME Maps" msgstr "" #: ../data/org.gnome.Maps.appdata.xml.in.h:2 msgid "Find places around the world" msgstr "" #: ../data/org.gnome.Maps.appdata.xml.in.h:3 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "世界中あらゆる場所の地図に簡単にアクセスできます。都市や住所を検索して、お探" "しの場所をさっと見つけられ、待ち合わせ場所もすぐに特定できます。" #: ../data/org.gnome.Maps.appdata.xml.in.h:4 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "この地図アプリは、OpenStreetMap データベースを利用しています。このデータベー" "スは、世界中の膨大な人々が協力して作成しています。" #. Translators: Search is carried out on OpenStreetMap data using Nominatim. #. Visit http://wiki.openstreetmap.org/wiki/Nominatim/Special_Phrases and click #. your language to see what words you can use for the translated search. #: ../data/org.gnome.Maps.appdata.xml.in.h:8 msgid "" "You can even search for specific types of locations, such as “Pubs near Main " "Street, Boston” or “Hotels near Alexanderplatz, Berlin”." msgstr "" "特定のタイプにより検索することができます。場所の特定の種類による検索。" "例:“Pubs near Main Street, Boston“ あるいは “Hotel near Alexanderplatz, " "Berlin“" #. Translators: This is the program name. #: ../data/org.gnome.Maps.desktop.in.h:1 ../data/ui/main-window.ui.h:1 #: ../src/application.js:87 ../src/mainWindow.js:441 msgid "Maps" msgstr "地図" #: ../data/org.gnome.Maps.desktop.in.h:2 msgid "A simple maps application" msgstr "シンプルな地図アプリケーション" #: ../data/org.gnome.Maps.desktop.in.h:3 msgid "Maps;" msgstr "Maps;地図;マップ;" #: ../data/org.gnome.Maps.desktop.in.h:4 msgid "Allows your location to be shown on the map." msgstr "" #: ../data/org.gnome.Maps.gschema.xml.h:1 #, fuzzy #| msgid "User set last known location" msgid "last viewed location" msgstr "直近の既知の位置がユーザー設定によるものかどうか" #: ../data/org.gnome.Maps.gschema.xml.h:2 #, fuzzy #| msgid "Description of last known location" msgid "Coordinates of last viewed location." msgstr "直近の既知の位置の詳細" #: ../data/org.gnome.Maps.gschema.xml.h:3 msgid "Window size" msgstr "ウィンドウサイズ" #: ../data/org.gnome.Maps.gschema.xml.h:4 msgid "Window size (width and height)." msgstr "ウィンドウサイズ (幅と高さ) です。" #: ../data/org.gnome.Maps.gschema.xml.h:5 msgid "Window position" msgstr "ウィンドウの位置" #: ../data/org.gnome.Maps.gschema.xml.h:6 msgid "Window position (X and Y)." msgstr "ウィンドウの位置 (横位置と縦位置) です。" #: ../data/org.gnome.Maps.gschema.xml.h:7 msgid "Window maximized" msgstr "ウィンドウ最大化" #: ../data/org.gnome.Maps.gschema.xml.h:8 msgid "Window maximization state" msgstr "ウィンドウを最大化しているかどうかの設定です。" #: ../data/org.gnome.Maps.gschema.xml.h:9 msgid "Maximum number of search results" msgstr "検索結果の最大数" #: ../data/org.gnome.Maps.gschema.xml.h:10 msgid "Maximum number of search results from geocode search." msgstr "geocode 検索の検索結果として表示する最大数。" #: ../data/org.gnome.Maps.gschema.xml.h:11 msgid "Number of recent places to store" msgstr "記録する最近の場所の数" #: ../data/org.gnome.Maps.gschema.xml.h:12 msgid "Number of recently visited places to store." msgstr "最近訪れた場所を記録する件数。" #: ../data/org.gnome.Maps.gschema.xml.h:13 msgid "Number of recent routes to store" msgstr "記録する最近のルートの数" #: ../data/org.gnome.Maps.gschema.xml.h:14 msgid "Number of recently visited routes to store." msgstr "最近訪れたルートを記録する件数。" #: ../data/org.gnome.Maps.gschema.xml.h:15 msgid "Facebook check-in privacy setting" msgstr "Facebookへチェックイン時のプライバシー設定" #: ../data/org.gnome.Maps.gschema.xml.h:16 msgid "" "Latest used Facebook check-in privacy setting. Possible values are: " "EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS or SELF." msgstr "" "最新のFacebookのチェックイン時のプライバシー設定で指定可能な値: EVERYONE, " "FRIENDS_OF_FRIENDS, ALL_FRIENDS, SELF" #: ../data/org.gnome.Maps.gschema.xml.h:17 msgid "Foursquare check-in privacy setting" msgstr "Foursquareへチェックイン時のプライバシー設定" #: ../data/org.gnome.Maps.gschema.xml.h:18 msgid "" "Latest used Foursquare check-in privacy setting. Possible values are: " "public, followers or private." msgstr "" "最新のFoursquareのチェックイン時のプライバシー設定で指定可能な値: public, " "followers, private" #: ../data/org.gnome.Maps.gschema.xml.h:19 msgid "Foursquare check-in Facebook broadcasting" msgstr "FoursquareのチェックインをFacebookにも投稿する" #: ../data/org.gnome.Maps.gschema.xml.h:20 msgid "" "Indicates if Foursquare should broadcast the check-in as a post in the " "Facebook account associated with the Foursquare account." msgstr "" "FacebookアカウントがFoursquareアカウントに関連付けられている場合、Foursquare" "のチェックインをFacebookにも投稿するかどうかの設定です。" #: ../data/org.gnome.Maps.gschema.xml.h:21 msgid "Foursquare check-in Twitter broadcasting" msgstr "FoursquareのチェックインをTwitterにも投稿する" #: ../data/org.gnome.Maps.gschema.xml.h:22 msgid "" "Indicates if Foursquare should broadcast the check-in as a tweet in the " "Twitter account associated with the Foursquare account." msgstr "" "TwitterアカウントがFoursquareアカウントに関連付けられている場合、Foursquareの" "チェックインをTwitterにも投稿するかどうかの設定です。" #: ../data/org.gnome.Maps.gschema.xml.h:23 msgid "OpenStreetMap username or e-mail address" msgstr "" #: ../data/org.gnome.Maps.gschema.xml.h:24 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "" #: ../data/ui/app-menu.ui.h:1 msgid "Set up OpenStreetMap Account" msgstr "OpenStreetMap アカウントの設定" #: ../data/ui/app-menu.ui.h:2 msgid "_Keyboard Shortcuts" msgstr "キーボードショートカット(_K)" #: ../data/ui/app-menu.ui.h:3 msgid "About" msgstr "このアプリケーションについて" #: ../data/ui/app-menu.ui.h:4 msgid "Quit" msgstr "終了" #: ../data/ui/check-in-dialog.ui.h:1 msgid "Visibility" msgstr "公開範囲" #: ../data/ui/check-in-dialog.ui.h:2 msgid "Post on Facebook" msgstr "Facebookに投稿" #: ../data/ui/check-in-dialog.ui.h:3 msgid "Post on Twitter" msgstr "Twitterに投稿" #: ../data/ui/check-in-dialog.ui.h:4 ../data/ui/export-view-dialog.ui.h:2 #: ../data/ui/send-to-dialog.ui.h:2 ../data/ui/shape-layer-file-chooser.ui.h:3 msgid "_Cancel" msgstr "キャンセル(_C)" #. Translators: Check in is used as a verb #: ../data/ui/check-in-dialog.ui.h:5 ../data/ui/map-bubble.ui.h:5 msgid "C_heck in" msgstr "チェックイン(_H)" #: ../data/ui/check-in-dialog.ui.h:6 msgid "Everyone" msgstr "誰でも" #: ../data/ui/check-in-dialog.ui.h:7 msgid "Friends of friends" msgstr "友達の友達まで" #: ../data/ui/check-in-dialog.ui.h:8 msgid "Just friends" msgstr "友達のみ" #: ../data/ui/check-in-dialog.ui.h:9 msgid "Just me" msgstr "自分のみ" #: ../data/ui/check-in-dialog.ui.h:10 msgid "Public" msgstr "公開" #: ../data/ui/check-in-dialog.ui.h:11 msgid "Followers" msgstr "フォロワー" #: ../data/ui/check-in-dialog.ui.h:12 msgid "Private" msgstr "プライベート" #: ../data/ui/context-menu.ui.h:1 msgid "What’s here?" msgstr "ここはどこ?" #: ../data/ui/context-menu.ui.h:2 msgid "Copy Location" msgstr "場所をコピー" #: ../data/ui/context-menu.ui.h:3 msgid "Export As Image" msgstr "画像としてエクスポート" #: ../data/ui/context-menu.ui.h:4 msgid "Add to OpenStreetMap" msgstr "" #: ../data/ui/export-view-dialog.ui.h:1 msgid "Export view" msgstr "ビューのエクスポート" #: ../data/ui/export-view-dialog.ui.h:3 msgid "_Export" msgstr "" #: ../data/ui/export-view-dialog.ui.h:4 msgid "Include route and markers" msgstr "ルートとマーカーを含む" #: ../data/ui/help-overlay.ui.h:1 msgctxt "shortcut window" msgid "General" msgstr "一般" #: ../data/ui/help-overlay.ui.h:2 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "ショートカットを表示する" #: ../data/ui/help-overlay.ui.h:3 msgctxt "shortcut window" msgid "Search" msgstr "検索する" #: ../data/ui/help-overlay.ui.h:4 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "ルート案内の有無を切り替える" #: ../data/ui/help-overlay.ui.h:5 msgctxt "shortcut window" msgid "Print route" msgstr "ルートを印刷する" #: ../data/ui/help-overlay.ui.h:6 msgctxt "shortcut window" msgid "Quit" msgstr "終了する" #: ../data/ui/help-overlay.ui.h:7 msgctxt "shortcut window" msgid "Map View" msgstr "地図の表示" #: ../data/ui/help-overlay.ui.h:8 msgctxt "shortcut window" msgid "Zoom in" msgstr "拡大する" #: ../data/ui/help-overlay.ui.h:9 msgctxt "shortcut window" msgid "Zoom out" msgstr "縮小する" #: ../data/ui/help-overlay.ui.h:10 msgctxt "shortcut window" msgid "Toggle scale" msgstr "縮尺の有無を切り替える" #: ../data/ui/help-overlay.ui.h:11 msgctxt "shortcut window" msgid "Go to current location" msgstr "現在の位置へ移動する" #: ../data/ui/layers-popover.ui.h:1 msgid "Load Map Layer" msgstr "" #: ../data/ui/location-service-notification.ui.h:1 msgid "Turn on location services to find your location" msgstr "現在位置を特定するには位置情報サービスをオンにしてください" #: ../data/ui/location-service-notification.ui.h:2 msgid "Location Settings" msgstr "場所の設定" #: ../data/ui/main-window.ui.h:2 msgid "Go to current location" msgstr "現在の位置へ移動します" #: ../data/ui/main-window.ui.h:3 msgid "Choose map type" msgstr "地図の種類を選択" #: ../data/ui/main-window.ui.h:4 msgid "Toggle route planner" msgstr "ルート案内" #: ../data/ui/main-window.ui.h:5 msgid "Toggle favorites" msgstr "お気に入り" #: ../data/ui/main-window.ui.h:6 msgid "Print Route" msgstr "ルートの印刷" #: ../data/ui/main-window.ui.h:7 msgid "Maps is offline!" msgstr "地図はオフラインです。" #: ../data/ui/main-window.ui.h:8 #, fuzzy #| msgid "" #| "Maps need an active internet connection to function properly, but one " #| "can't be found." msgid "" "Maps need an active internet connection to function properly, but one can’t " "be found." msgstr "" "インターネット接続がありません。このアプリケーションが適切に機能するためにイ" "ンターネット接続が必要です。" #: ../data/ui/main-window.ui.h:9 msgid "Check your connection and proxy settings." msgstr "インターネット接続とプロキシの設定を確認してください。" #: ../data/ui/map-bubble.ui.h:1 msgid "Add to new route" msgstr "新しいルートを追加" #: ../data/ui/map-bubble.ui.h:2 msgid "Open with another application" msgstr "別のアプリケーションで開く" #: ../data/ui/map-bubble.ui.h:3 msgid "Mark as favorite" msgstr "お気に入りに追加" #: ../data/ui/map-bubble.ui.h:6 msgid "Check in here" msgstr "ここにチェックイン" #: ../data/ui/osm-account-dialog.ui.h:1 msgid "OpenStreetMap Account" msgstr "OpenStreetMap アカウント" #: ../data/ui/osm-account-dialog.ui.h:2 msgid "Sign in to edit maps" msgstr "" "地図編集のためのサインイン" #: ../data/ui/osm-account-dialog.ui.h:3 msgid "" "Help to improve the map, using an\n" "OpenStreetMap account." msgstr "" #: ../data/ui/osm-account-dialog.ui.h:5 msgid "Email" msgstr "メールアドレス" #: ../data/ui/osm-account-dialog.ui.h:6 msgid "Password" msgstr "パスワード" #: ../data/ui/osm-account-dialog.ui.h:7 msgid "Sign In" msgstr "サインイン" #: ../data/ui/osm-account-dialog.ui.h:8 #, fuzzy #| msgid "Don't have an account?" msgid "Don’t have an account?" msgstr "アカウントをお持ちでありませんか?" #. The label should contain the link to the OSM reset password page with a translated title #: ../data/ui/osm-account-dialog.ui.h:10 msgid "" "Sorry, that didn’t work. Please try again, or visit\n" "OpenStreetMap to reset your password." msgstr "" #: ../data/ui/osm-account-dialog.ui.h:12 #, fuzzy #| msgid "The verification code didn't match, please try again." msgid "The verification code didn’t match, please try again." msgstr "認証コードが一致しません、やりなおしてください。" #: ../data/ui/osm-account-dialog.ui.h:13 msgid "Enter verification code shown above" msgstr "上記の認証コードを入力" #: ../data/ui/osm-account-dialog.ui.h:14 msgid "Verify" msgstr "検証" #: ../data/ui/osm-account-dialog.ui.h:15 msgid "Signed In" msgstr "サインイン済み" #: ../data/ui/osm-account-dialog.ui.h:16 msgid "Your OpenStreetMap account is active." msgstr "あなたの OpenStreetMap account アカウントはアクティブです。" #: ../data/ui/osm-account-dialog.ui.h:17 msgid "Sign Out" msgstr "サインアウト" #: ../data/ui/osm-edit-address.ui.h:1 msgid "Street" msgstr "道路地図" #: ../data/ui/osm-edit-address.ui.h:2 msgid "House number" msgstr "" #: ../data/ui/osm-edit-address.ui.h:3 #, fuzzy #| msgid "Postal code: %s" msgid "Postal code" msgstr "郵便番号: %s" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: ../data/ui/osm-edit-address.ui.h:5 msgid "City" msgstr "" #: ../data/ui/osm-edit-dialog.ui.h:1 msgid "Type" msgstr "" #: ../data/ui/osm-edit-dialog.ui.h:2 msgid "None" msgstr "" #: ../data/ui/osm-edit-dialog.ui.h:3 msgid "Add Field" msgstr "" #: ../data/ui/osm-edit-dialog.ui.h:4 msgid "Comment" msgstr "" #: ../data/ui/osm-edit-dialog.ui.h:5 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" #: ../data/ui/osm-edit-dialog.ui.h:7 msgid "Recently Used" msgstr "" #: ../data/ui/osm-edit-dialog.ui.h:8 msgid "Edit on OpenStreetMap" msgstr "" #: ../data/ui/osm-edit-dialog.ui.h:9 #, fuzzy #| msgid "_Cancel" msgid "Cancel" msgstr "キャンセル(_C)" #: ../data/ui/osm-edit-dialog.ui.h:10 ../src/osmEditDialog.js:472 msgid "Next" msgstr "" #: ../data/ui/place-bubble.ui.h:1 #, fuzzy #| msgid "Show more results" msgid "Show more information" msgstr "さらに結果を表示" #: ../data/ui/place-popover.ui.h:1 msgid "Press enter to search" msgstr "Enterキーを押すと検索します" #: ../data/ui/route-entry.ui.h:1 msgid "Drag to change order of the route" msgstr "ルートの順序をドラッグで変更" #: ../data/ui/send-to-dialog.ui.h:1 msgid "Open location" msgstr "場所を開く" #: ../data/ui/send-to-dialog.ui.h:3 ../data/ui/shape-layer-file-chooser.ui.h:2 msgid "_Open" msgstr "開く(_O)" #: ../data/ui/shape-layer-file-chooser.ui.h:1 msgid "Open Layer" msgstr "" #: ../data/ui/shape-layer-row.ui.h:1 #, fuzzy #| msgid "Toggle favorites" msgid "Toggle visible" msgstr "お気に入り" #: ../data/ui/sidebar.ui.h:1 msgid "Route search by GraphHopper" msgstr "GraphHopperによるルート検索" #: ../data/ui/sidebar.ui.h:2 #, fuzzy #| msgid "Route search by GraphHopper" msgid "Route search by OpenTripPlanner" msgstr "GraphHopperによるルート検索" #: ../data/ui/sidebar.ui.h:3 msgid "" "Routing itineraries for public transit is provided by GNOME\n" "using timetable data obtained from transit companies or agencies.\n" "The companies and agencies can not be held responsible for the results " "shown.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" #: ../data/ui/social-place-more-results-row.ui.h:1 msgid "Show more results" msgstr "さらに結果を表示" #: ../data/ui/transit-leg-row.ui.h:1 msgid "Hide intermediate stops and information" msgstr "" #: ../data/ui/transit-leg-row.ui.h:2 #, fuzzy #| msgid "Show more results" msgid "Show intermediate stops and information" msgstr "さらに結果を表示" #. Indicates searching for the next available itineraries #: ../data/ui/transit-options-panel.ui.h:2 msgid "Leave Now" msgstr "" #. Indicates searching for itineraries leaving at the specified time at the earliest #: ../data/ui/transit-options-panel.ui.h:4 msgid "Leave By" msgstr "" #. Indicates searching for itineraries arriving no later than the specified time #: ../data/ui/transit-options-panel.ui.h:6 msgid "Arrive By" msgstr "" #. Header indicating selected modes of transit #: ../data/ui/transit-options-panel.ui.h:8 msgid "Show" msgstr "" #: ../data/ui/transit-options-panel.ui.h:9 msgid "Buses" msgstr "" #: ../data/ui/transit-options-panel.ui.h:10 msgid "Trams" msgstr "" #: ../data/ui/transit-options-panel.ui.h:11 msgid "Trains" msgstr "" #: ../data/ui/transit-options-panel.ui.h:12 msgid "Subway" msgstr "" #: ../data/ui/transit-options-panel.ui.h:13 msgid "Ferries" msgstr "" #: ../data/ui/user-location-bubble.ui.h:1 ../src/geoclue.js:120 msgid "Current location" msgstr "現在の位置" #. To translators: %s can be "Unknown", "Exact" or "%f km²" #: ../data/ui/user-location-bubble.ui.h:4 #, no-c-format msgid "Accuracy: %s" msgstr "位置精度: %s" #: ../data/ui/zoom-in-notification.ui.h:1 msgid "Zoom in to add location!" msgstr "" #: ../data/ui/zoom-in-notification.ui.h:2 msgid "OK" msgstr "" #: ../lib/maps-file-tile-source.c:303 ../lib/maps-file-tile-source.c:379 #: ../lib/maps-file-tile-source.c:459 msgid "Failed to find tile structure in directory" msgstr "" #: ../lib/maps-osm.c:56 #, fuzzy #| msgid "Failed to parse Geo URI" msgid "Failed to parse XML document" msgstr "Geo URIの解析に失敗しました" #: ../lib/maps-osm.c:252 ../lib/maps-osm.c:405 msgid "Missing required attributes" msgstr "" #: ../lib/maps-osm.c:453 msgid "Could not find OSM element" msgstr "" #: ../src/application.js:103 msgid "A path to a local tiles directory structure" msgstr "" #: ../src/checkInDialog.js:175 msgid "Select an account" msgstr "アカウントの選択" #: ../src/checkInDialog.js:180 ../src/checkInDialog.js:252 msgid "Loading" msgstr "読み込み中" #: ../src/checkInDialog.js:204 msgid "Select a place" msgstr "場所の選択" #: ../src/checkInDialog.js:209 msgid "" "Maps cannot find the place to check in to with Facebook. Please select one " "from this list." msgstr "" "Facebookでチェックインする場所を見つけることができませんでした。次のリストか" "ら1つ選択してください。" #: ../src/checkInDialog.js:211 msgid "" "Maps cannot find the place to check in to with Foursquare. Please select one " "from this list." msgstr "" "Foursquareでチェックインする場所を見つけることができませんでした。次のリスト" "から1つ選択してください。" #. Translators: %s is the name of the place to check in. #. #: ../src/checkInDialog.js:226 #, javascript-format msgid "Check in to %s" msgstr "%sへチェックイン" #. Translators: %s is the name of the place to check in. #. #: ../src/checkInDialog.js:236 #, javascript-format msgid "Write an optional message to check in to %s." msgstr "%sへチェックイン時に添えるコメントを書きます。" #: ../src/checkInDialog.js:288 ../src/checkIn.js:165 #: ../src/osmEditDialog.js:509 msgid "An error has occurred" msgstr "エラーが発生しました" #. Translators: %s is the place name that user wanted to check-in #: ../src/checkIn.js:147 #, fuzzy, javascript-format #| msgid "Cannot find \"%s\" in the social service" msgid "Cannot find “%s” in the social service" msgstr "ソーシャルサービスにて \"%s\" を見つけることができません" #: ../src/checkIn.js:149 msgid "Cannot find a suitable place to check-in in this location" msgstr "この場所にチェックインするために適切な場所を見つけることができません" #: ../src/checkIn.js:153 msgid "" "Credentials have expired, please open Online Accounts to sign in and enable " "this account" msgstr "" "認証情報が失効しました。オンラインアカウント設定を開き、再度アカウントを認証" "してください" #: ../src/contextMenu.js:96 msgid "Route from here" msgstr "ここからのルート" #: ../src/contextMenu.js:98 msgid "Add destination" msgstr "行き先を追加" #: ../src/contextMenu.js:100 msgid "Route to here" msgstr "ここまでのルート" #: ../src/contextMenu.js:129 msgid "Nothing found here!" msgstr "" #: ../src/contextMenu.js:186 msgid "" "Location was added to the map, note that it may take a while before it shows " "on the map and in search results." msgstr "" #: ../src/exportViewDialog.js:156 msgid "Filesystem is read only" msgstr "" #: ../src/exportViewDialog.js:158 msgid "You do not have permission to save there" msgstr "" #: ../src/exportViewDialog.js:160 msgid "The directory does not exist" msgstr "" #: ../src/exportViewDialog.js:162 msgid "No filename specified" msgstr "" #: ../src/exportViewDialog.js:170 msgid "Unable to export view" msgstr "" #: ../src/geoJSONSource.js:98 msgid "invalid coordinate" msgstr "" #: ../src/geoJSONSource.js:149 ../src/geoJSONSource.js:189 #: ../src/geoJSONSource.js:204 msgid "parse error" msgstr "" #: ../src/geoJSONSource.js:183 msgid "unknown geometry" msgstr "" #: ../src/graphHopper.js:93 ../src/openTripPlanner.js:630 msgid "Route request failed." msgstr "ルート要求は失敗しました。" #: ../src/graphHopper.js:101 ../src/openTripPlanner.js:614 #: ../src/openTripPlanner.js:728 msgid "No route found." msgstr "ルートが見つかりません。" #: ../src/graphHopper.js:193 msgid "Start!" msgstr "開始!" #: ../src/layersPopover.js:62 msgid "All Layer Files" msgstr "" #: ../src/mainWindow.js:387 msgid "Failed to connect to location service" msgstr "位置情報サービスに接続できません" #: ../src/mainWindow.js:439 msgid "translator-credits" msgstr "" "松澤 二郎 \n" "victory \n" "Ikuya Awashiro \n" "Hajime Taira \n" "日本GNOMEユーザー会 " #: ../src/mainWindow.js:442 msgid "A map application for GNOME" msgstr "GNOME 向け地図アプリケーション" #: ../src/mapView.js:354 msgid "File type is not supported" msgstr "" #: ../src/mapView.js:361 #, fuzzy #| msgid "Failed to parse Geo URI" msgid "Failed to open layer" msgstr "Geo URIの解析に失敗しました" #: ../src/mapView.js:397 #, fuzzy #| msgid "Failed to parse Geo URI" msgid "Failed to open GeoURI" msgstr "Geo URIの解析に失敗しました" #: ../src/openTripPlanner.js:626 msgid "No timetable data found for this route." msgstr "" #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: ../src/osmConnection.js:442 msgid "Incorrect user name or password" msgstr "" #: ../src/osmConnection.js:444 msgid "Success" msgstr "" #: ../src/osmConnection.js:446 msgid "Bad request" msgstr "" #: ../src/osmConnection.js:448 #, fuzzy #| msgid "Position not found" msgid "Object not found" msgstr "位置が見つかりません" #: ../src/osmConnection.js:450 msgid "Conflict, someone else has just modified the object" msgstr "" #: ../src/osmConnection.js:452 msgid "Object has been deleted" msgstr "" #: ../src/osmConnection.js:454 msgid "Way or relation refers to non-existing children" msgstr "" #: ../src/osmEditDialog.js:104 msgid "Name" msgstr "" #: ../src/osmEditDialog.js:107 msgid "The official name. This is typically what appears on signs." msgstr "" #: ../src/osmEditDialog.js:110 msgid "Address" msgstr "" #: ../src/osmEditDialog.js:118 ../src/placeBubble.js:159 msgid "Website" msgstr "" #: ../src/osmEditDialog.js:121 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" #: ../src/osmEditDialog.js:126 msgid "Phone" msgstr "" #: ../src/osmEditDialog.js:130 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" #: ../src/osmEditDialog.js:135 ../src/placeBubble.js:165 msgid "Wikipedia" msgstr "Wikipedia" #: ../src/osmEditDialog.js:139 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "" #: ../src/osmEditDialog.js:143 #, fuzzy #| msgid "Opening hours: %s" msgid "Opening hours" msgstr "営業時間: %s" #: ../src/osmEditDialog.js:148 msgid "See the link in the label for help on format." msgstr "" #: ../src/osmEditDialog.js:151 #, fuzzy #| msgid "Population: %s" msgid "Population" msgstr "人口: %s" #: ../src/osmEditDialog.js:156 msgid "Altitude" msgstr "" #: ../src/osmEditDialog.js:159 msgid "Elevation (height above sea level) of a point in metres." msgstr "" #: ../src/osmEditDialog.js:162 #, fuzzy #| msgid "Wheelchair access: %s" msgid "Wheelchair access" msgstr "車いすでのアクセス: %s" #: ../src/osmEditDialog.js:165 ../src/osmEditDialog.js:174 #, fuzzy #| msgid "yes" msgid "Yes" msgstr "可能" #: ../src/osmEditDialog.js:166 ../src/osmEditDialog.js:175 msgid "No" msgstr "" #: ../src/osmEditDialog.js:167 #, fuzzy #| msgid "limited" msgid "Limited" msgstr "制限あり" #: ../src/osmEditDialog.js:168 #, fuzzy #| msgid "designated" msgid "Designated" msgstr "車いす専用" #: ../src/osmEditDialog.js:171 msgid "Internet access" msgstr "" #. Translators: #. * This means a WLAN Hotspot, also know as wireless, wifi or Wi-Fi. #. #: ../src/osmEditDialog.js:176 ../src/translations.js:340 msgid "Wi-Fi" msgstr "" #: ../src/osmEditDialog.js:177 msgid "Wired" msgstr "" #: ../src/osmEditDialog.js:178 msgid "Terminal" msgstr "" #: ../src/osmEditDialog.js:179 msgid "Service" msgstr "" #: ../src/osmEditDialog.js:288 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "" #: ../src/osmEditDialog.js:340 #, fuzzy #| msgid "Select a place" msgid "Select Type" msgstr "場所の選択" #: ../src/osmEditDialog.js:458 msgid "Done" msgstr "" #: ../src/placeBubble.js:122 #, fuzzy #| msgid "Population: %s" msgid "Population:" msgstr "人口: %s" #: ../src/placeBubble.js:128 msgid "Altitude:" msgstr "" #: ../src/placeBubble.js:133 #, fuzzy #| msgid "Opening hours: %s" msgid "Opening hours:" msgstr "営業時間: %s" #: ../src/placeBubble.js:138 msgid "Internet access:" msgstr "" #: ../src/placeBubble.js:143 #, fuzzy #| msgid "Wheelchair access: %s" msgid "Wheelchair access:" msgstr "車いすでのアクセス: %s" #: ../src/placeBubble.js:149 ../src/placeBubble.js:153 msgid "Phone:" msgstr "" #: ../src/placeEntry.js:190 msgid "Failed to parse Geo URI" msgstr "Geo URIの解析に失敗しました" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: ../src/place.js:178 ../src/translations.js:329 msgid "yes" msgstr "可能" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: ../src/place.js:185 msgid "limited" msgstr "制限あり" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: ../src/place.js:191 ../src/translations.js:335 msgid "no" msgstr "困難" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: ../src/place.js:198 msgid "designated" msgstr "車いす専用" #: ../src/printLayout.js:244 #, javascript-format msgid "From %s to %s" msgstr "" #: ../src/printOperation.js:48 msgid "Loading map tiles for printing" msgstr "" #: ../src/printOperation.js:49 msgid "You can abort printing if this takes too long" msgstr "" #: ../src/printOperation.js:51 msgid "Abort printing" msgstr "" #: ../src/sendToDialog.js:179 #, fuzzy #| msgid "Failed to parse Geo URI" msgid "Failed to open URI" msgstr "Geo URIの解析に失敗しました" #: ../src/shapeLayer.js:92 msgid "failed to load file" msgstr "" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: ../src/sidebar.js:285 #, javascript-format msgid "Estimated time: %s" msgstr "所要時間: %s" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: ../src/transitArrivalRow.js:56 #, javascript-format msgid "Arrive at %s" msgstr "" #: ../src/transitArrivalRow.js:58 msgid "Arrive" msgstr "" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: ../src/transitLegRow.js:74 #, javascript-format msgid "Start at %s" msgstr "" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: ../src/transitLegRow.js:80 #, fuzzy #| msgid "Start!" msgid "Start" msgstr "開始!" #: ../src/transitLegRow.js:108 msgid "Show walking instructions" msgstr "" #: ../src/transitLegRow.js:109 msgid "Hide walking instructions" msgstr "" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: ../src/transitLegRow.js:134 #, javascript-format msgid "Walk %s" msgstr "" #: ../src/transitMoreRow.js:41 msgid "Load earlier alternatives" msgstr "" #: ../src/transitMoreRow.js:43 msgid "Load later alternatives" msgstr "" #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: ../src/transitOptionsPanel.js:141 msgctxt "month-day-date" msgid "%b %e" msgstr "" #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: ../src/transitPlan.js:248 #, javascript-format msgid "%s – %s" msgstr "" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: ../src/transitPlan.js:275 #, fuzzy, javascript-format #| msgid "%f min" msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "%f 分" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: ../src/transitPlan.js:286 #, javascript-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: ../src/transitPlan.js:292 #, javascript-format msgid "%d:%02d hour" msgid_plural "%d:%02d hours" msgstr[0] "" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: ../src/transitPlan.js:611 #, javascript-format msgid "%s–%s" msgstr "" #: ../src/translations.js:56 msgid "around the clock" msgstr "24時間体制" #: ../src/translations.js:58 msgid "from sunrise to sunset" msgstr "日の出から日没まで" #. Translators: #. * This is a format string with two separate time ranges #. * such as "Mo-Fr 10:00-19:00 Sa 12:00-16:00" #. * The space between the format place holders could be #. * substituted with the appropriate separator. #. #: ../src/translations.js:77 #, javascript-format msgctxt "time range list" msgid "%s %s" msgstr "%s %s" #. Translators: #. * This is a format string with three separate time ranges #. * such as "Mo-Fr 10:00-19:00 Sa 10:00-17:00 Su 12:00-16:00" #. * The space between the format place holders could be #. * substituted with the appropriate separator. #. #: ../src/translations.js:89 #, javascript-format msgctxt "time range list" msgid "%s %s %s" msgstr "%s %s %s" #. Translators: #. * This is a format string consisting of a part specifying the days for #. * which the specified time is applied and the time interval #. * specification as the second argument. #. * The space between the format place holders could be substituted with #. * the appropriate separator or phrase and the ordering of the arguments #. * can be rearranged with the %n#s syntax. #: ../src/translations.js:120 #, javascript-format msgctxt "time range component" msgid "%s %s" msgstr "%s %s" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: ../src/translations.js:152 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s,%s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: ../src/translations.js:166 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s,%s,%s" #: ../src/translations.js:185 msgid "every day" msgstr "毎日" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: ../src/translations.js:197 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s-%s" #: ../src/translations.js:208 msgid "public holidays" msgstr "祝日" #: ../src/translations.js:210 msgid "school holidays" msgstr "学校休日" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: ../src/translations.js:250 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: ../src/translations.js:264 msgid "not open" msgstr "休業" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: ../src/translations.js:279 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s-%s" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: ../src/translations.js:345 msgid "wired" msgstr "" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: ../src/translations.js:350 msgid "terminal" msgstr "" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: ../src/translations.js:355 msgid "service" msgstr "" #. Translators: Accuracy of user location information #: ../src/utils.js:231 msgid "Unknown" msgstr "不明" #. Translators: Accuracy of user location information #: ../src/utils.js:234 msgid "Exact" msgstr "正確" #: ../src/utils.js:337 #, javascript-format msgid "%f h" msgstr "%f 時間" #: ../src/utils.js:339 #, javascript-format msgid "%f min" msgstr "%f 分" #: ../src/utils.js:341 #, javascript-format msgid "%f s" msgstr "%f 秒" #. Translators: This is a distance measured in kilometers #: ../src/utils.js:352 #, javascript-format msgid "%f km" msgstr "%f km" #. Translators: This is a distance measured in meters #: ../src/utils.js:355 #, javascript-format msgid "%f m" msgstr "%f m" #. Translators: This is a distance measured in miles #: ../src/utils.js:363 #, javascript-format msgid "%f mi" msgstr "%f マイル" #. Translators: This is a distance measured in feet #: ../src/utils.js:366 #, javascript-format msgid "%f ft" msgstr "%f フィート" #~ msgid "Country code: %s" #~ msgstr "国コード: %s" #~ msgid "Last known location and accuracy" #~ msgstr "直近の既知の位置と精度" #~ msgid "" #~ "Last known location (latitude and longitude in degrees) and accuracy (in " #~ "meters)." #~ msgstr "" #~ "直近の既知の位置 (緯度と経度を度単位で) と精度 (メートル単位) です。" #~ msgid "Description of last known location of user." #~ msgstr "ユーザーの直近の既知の位置の詳細です。" #~ msgid "Whether the last known location was set manually by the user." #~ msgstr "" #~ "直近の既知の位置が、ユーザーが手動で設定したものかどうかの設定です。" #~ msgid "I’m here!" #~ msgstr "私はここにいます!" #~ msgid "To" #~ msgstr "目的地" #~ msgid "From" #~ msgstr "出発地点" #~ msgid " km2" #~ msgstr " km2" #~ msgid "Satellite" #~ msgstr "衛星写真" 070701000001CE000081A40000000000000000000000016641340900012310000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/ka.po# Georgian translation for gnome-maps # Copyright (C) 2023, gnome-maps authors # This file is distributed under the same license as the gnome-maps package. # Ekaterine Papava , 2023-2024. # msgid "" msgstr "" "Project-Id-Version: gnome-maps\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2024-02-14 22:30+0000\n" "PO-Revision-Date: 2024-02-15 07:49+0100\n" "Last-Translator: Ekaterine Papava \n" "Language-Team: Georgian <(nothing)>\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: Poedit 3.3.2\n" #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.appdata.xml.in.in:6 data/org.gnome.Maps.desktop.in.in:4 #: data/ui/main-window.ui:27 src/application.js:64 src/mainWindow.js:147 #: src/mainWindow.js:647 msgid "Maps" msgstr "რუკები" #: data/org.gnome.Maps.appdata.xml.in.in:7 msgid "Find places around the world" msgstr "იპოვეთ ადგილები მთელ დედამიწაზე" #: data/org.gnome.Maps.appdata.xml.in.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "Maps მთელი დედამიწის რუკებთან სწრაფ წვდომას გაძლევთ. ის საშუალებას გაძლევთ, " "სწრაფად იპოვოთ ადგილი, რომელსაც ეძებთ, ქალაქით, ქუჩით ან რამე სხვა პირობით." #: data/org.gnome.Maps.appdata.xml.in.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "Maps ღია კოდის მქონე OpenStreetmap ბაზას იყენებს, რომელიც მთელი მსოფლიოდან, " "ასობით ათასი ადამიანის მიერ იქნება." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Maps.appdata.xml.in.in:451 src/mainWindow.js:644 msgid "The GNOME Project" msgstr "პროექტი \"GNOME\"" #: data/org.gnome.Maps.desktop.in.in:5 msgid "A simple maps application" msgstr "რუკების მარტივი აპლიკაცია" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in.in:14 msgid "Maps;" msgstr "რუკები;" #: data/org.gnome.Maps.desktop.in.in:17 msgid "Allows your location to be shown on the map." msgstr "შესაძლებელს ხდის თქვენი მდებარეობის რუკაზე ჩვენებას." #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "ბოლოს ნანახი მდებარეობა" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "ბოლოს ნანახი მდებარეობის კოორდინატები." #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "გადიდება" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "გადიდების დონე" #: data/org.gnome.Maps.gschema.xml:21 msgid "rotation" msgstr "შემობრუნება" #: data/org.gnome.Maps.gschema.xml:22 msgid "Map rotation in radians" msgstr "რუკის მობრუნება რადიანებში" #: data/org.gnome.Maps.gschema.xml:26 msgid "Map type" msgstr "რუკის ტიპი" #: data/org.gnome.Maps.gschema.xml:27 msgid "The type of map to display (street, aerial, etc.)" msgstr "საჩვენებელი რუკს ტიპი (ქუჩები, ზედხედი, ა.შ.)" #: data/org.gnome.Maps.gschema.xml:31 msgid "Window size" msgstr "ფანჯრის ზომა" #: data/org.gnome.Maps.gschema.xml:32 msgid "Window size (width and height)." msgstr "ფანჯრის ზომა (სიგანე, სიმაღლე)" #: data/org.gnome.Maps.gschema.xml:36 msgid "Window position" msgstr "ფანჯრის მდებარეობა" #: data/org.gnome.Maps.gschema.xml:37 msgid "Window position (X and Y)." msgstr "ფანჯრის მდებარეობა (x და y)" #: data/org.gnome.Maps.gschema.xml:41 msgid "Window maximized" msgstr "გადიდებული ფანჯარა" #: data/org.gnome.Maps.gschema.xml:42 msgid "Window maximization state" msgstr "ფანჯრის გადიდების რეჟიმი" #: data/org.gnome.Maps.gschema.xml:46 msgid "Maximum number of search results" msgstr "ძებნის შედეგების მაქსიმალური რიცხვი" #: data/org.gnome.Maps.gschema.xml:47 msgid "Maximum number of search results from geocode search." msgstr "გეოკოდის ძებნის შედეგების მაქსიმალური რიცხვი." #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent places to store" msgstr "დამახსოვრებული ბოლოს ნანახი ადგილების რაოდენობა" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited places to store." msgstr "ბოლოს ნანახი ადგილების დამახსოვრებული რაოდენობა." #: data/org.gnome.Maps.gschema.xml:56 msgid "Number of recent routes to store" msgstr "დამახსოვრებული ბოლო გზების რაოდენობა" #: data/org.gnome.Maps.gschema.xml:57 msgid "Number of recently visited routes to store." msgstr "ბოლოს ნანახი მარშრუტების დამახსოვრებული რაოდენობა." #: data/org.gnome.Maps.gschema.xml:61 msgid "OpenStreetMap username or email address" msgstr "OpenStreetMap მომხმარებლის სახელი ან ელფოსტის მისამართი" #: data/org.gnome.Maps.gschema.xml:62 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "მიუთითებს, შესულია თუ არა OpenStreetMap-ის რუკების ჩასასწორებლად." #: data/org.gnome.Maps.gschema.xml:66 msgid "Last used transportation type for routing" msgstr "გზის ბოლოს გამოყენებული ტრანსპორტის ტიპი" #: data/org.gnome.Maps.gschema.xml:70 msgid "Show scale" msgstr "მასშტაბის ჩვენება" #: data/org.gnome.Maps.gschema.xml:71 msgid "Whether to show the scale." msgstr "მასშტაბი იქნება ნაჩვენები თუ არა." #: data/ui/context-menu.ui:6 msgid "Route from Here" msgstr "გზა ამ წერტილიდან" #: data/ui/context-menu.ui:10 msgid "Add Intermediate Destination" msgstr "შუალედური დანიშნულების პუნქტის დამატება" #: data/ui/context-menu.ui:14 msgid "Route to Here" msgstr "გზა ამ წერტილამდე" #: data/ui/context-menu.ui:20 msgid "What's Here?" msgstr "რა არის აქ?" #: data/ui/context-menu.ui:24 msgid "Copy Location" msgstr "მდებარეობის კოპირება" #: data/ui/context-menu.ui:28 msgid "Add to OpenStreetMap…" msgstr "OpenStreetMap-ზე დამატება…" #: data/ui/export-view-dialog.ui:7 msgid "Export view" msgstr "ხედის გატანა" #: data/ui/export-view-dialog.ui:16 data/ui/send-to-dialog.ui:10 #: data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "_გაუქმება" #: data/ui/export-view-dialog.ui:26 msgid "_Export" msgstr "_გატანა" #. Translators: This is a tooltip #: data/ui/favorite-list-row.ui:72 msgid "Remove Favorite" msgstr "სანიშნის წაშლა" #: data/ui/favorites-popover.ui:11 msgid "No Favorites" msgstr "სანიშნეების გარეშე" #: data/ui/favorites-popover.ui:12 msgid "Add places to your favorites to get them listed here" msgstr "დაამატეთ ადგილები თქვენს რჩეულებში და ისინი აქ გამოჩნდება" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:11 src/geoclue.js:106 msgid "Current Location" msgstr "მიმდინარე მდებარეობა" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:19 msgid "Layers" msgstr "ფენები" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:11 msgid "Print Route" msgstr "გზის დაბეჭდვა" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:21 msgid "Favorites" msgstr "სანიშნები" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:30 msgid "Route Planner" msgstr "გზების მგეგმავი" #: data/ui/help-overlay.ui:12 msgctxt "shortcut window" msgid "General" msgstr "ძირითადი" #: data/ui/help-overlay.ui:15 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "მალსახმობების ჩვენება" #: data/ui/help-overlay.ui:21 msgctxt "shortcut window" msgid "Search" msgstr "ძებნა" #: data/ui/help-overlay.ui:27 msgctxt "shortcut window" msgid "Explore points-of-interest" msgstr "ღირსშესანიშნაობების დათვალიერება" #: data/ui/help-overlay.ui:33 msgctxt "shortcut window" msgid "Show last search results" msgstr "ბოლო ძებნის შედეგების ჩვენება" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "გზების მგეგმავის გადართვა" #: data/ui/help-overlay.ui:45 msgctxt "shortcut window" msgid "Print route" msgstr "გზის დაბეჭდვა" #: data/ui/help-overlay.ui:51 msgctxt "shortcut window" msgid "Quit" msgstr "გასვლა" #: data/ui/help-overlay.ui:57 msgctxt "shortcut window" msgid "Open main menu" msgstr "მთავარი მენიუს გახსნა" #: data/ui/help-overlay.ui:65 msgctxt "shortcut window" msgid "Map View" msgstr "რუკის ხედი" #: data/ui/help-overlay.ui:68 msgctxt "shortcut window" msgid "Zoom in" msgstr "გადიდება" #: data/ui/help-overlay.ui:74 msgctxt "shortcut window" msgid "Zoom out" msgstr "დაპატარავება" #: data/ui/help-overlay.ui:80 msgctxt "shortcut window" msgid "Rotate clockwise" msgstr "საათის ისრის მიმართულებით შებრუნება" #: data/ui/help-overlay.ui:86 msgctxt "shortcut window" msgid "Rotate counter-clockwise" msgstr "საათის საწინააღმდეგო მიმართულებით შემობრუნება" #: data/ui/help-overlay.ui:92 msgctxt "shortcut window" msgid "Reset rotation" msgstr "მობრუნების განულება" #: data/ui/help-overlay.ui:98 msgctxt "shortcut window" msgid "Toggle scale" msgstr "მასშტაბის გადართვა" #: data/ui/help-overlay.ui:104 msgctxt "shortcut window" msgid "Go to current location" msgstr "მიმდინარე მდებარეობაზე გადასვლა" #: data/ui/help-overlay.ui:114 msgctxt "shortcut window" msgid "Switch to street view" msgstr "ქუჩის ხედზე გადართვა" #: data/ui/help-overlay.ui:121 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "საჰაერო ხედზე გადართვა" #: data/ui/help-overlay.ui:127 msgctxt "shortcut window" msgid "Open shape layer" msgstr "მოხაზულობის ფენის გახსნა" #: data/ui/layers-popover.ui:7 msgid "Show Scale" msgstr "მასშტაბის ჩვენება" #: data/ui/layers-popover.ui:16 msgid "Enable Experimental Map" msgstr "ექსპერიმენტული რუკის ჩართვა" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:21 msgid "Open Shape Layer…" msgstr "მოხაზულობის ფენის გახსნა…" #: data/ui/main-window.ui:8 msgid "Set up OpenStreetMap Account…" msgstr "OpenStreeMap-ის ანგარიშის შექმნა…" #: data/ui/main-window.ui:12 msgid "Export as Image…" msgstr "გამოსახულების სახით გატანა…" #: data/ui/main-window.ui:17 msgid "_Keyboard Shortcuts" msgstr "_კლავიატურის მალსახმობები" #: data/ui/main-window.ui:22 msgid "About Maps" msgstr "რუკების შესახებ" #: data/ui/main-window.ui:48 msgid "Main Menu" msgstr "მთავარი მენიუ" #: data/ui/osm-account-dialog.ui:5 msgid "OpenStreetMap Account" msgstr "OpenStreeMap-ის ანგარიში" #: data/ui/osm-account-dialog.ui:31 msgid "Sign In To Edit Maps" msgstr "რუკების ჩასასწორებლად შედით" #: data/ui/osm-account-dialog.ui:32 msgid "Help to improve the map, using an OpenStreetMap account." msgstr "" "დაგვეხმარეთ რუკის გაუმჯობესებაში OpenStreetMap-ის ანგარიშის გამოყენებით." #: data/ui/osm-account-dialog.ui:36 msgid "Sign In" msgstr "შესვლა" #: data/ui/osm-account-dialog.ui:59 msgid "Verification" msgstr "გადამოწმება" #: data/ui/osm-account-dialog.ui:60 msgid "" "Copy the verification code shown when authorizing access in the browser." msgstr "" "დააკოპირეთ გადამოწმების კოდი, რომელსაც ბრაუზერში წვდომის ავტორიზაციისას " "გაჩვენებთ." #: data/ui/osm-account-dialog.ui:69 msgid "Verification Code" msgstr "გადამოწმების კოდი" #: data/ui/osm-account-dialog.ui:75 msgid "Verify" msgstr "სემოწმება" #: data/ui/osm-account-dialog.ui:110 msgid "Signed In" msgstr "Შესული" #: data/ui/osm-account-dialog.ui:111 msgid "Your OpenStreetMap account is active." msgstr "OpenStreeMap-ის თქვენი ანგარიში აქტიურია." #: data/ui/osm-account-dialog.ui:129 msgid "Sign Out" msgstr "გასვლა" #: data/ui/osm-edit-address.ui:11 msgid "Street" msgstr "ქუჩა" #: data/ui/osm-edit-address.ui:22 msgid "House number" msgstr "სახლის ნომერი" #: data/ui/osm-edit-address.ui:33 msgid "Postal code" msgstr "საფოსტო კოდი" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:44 msgid "City" msgstr "ქალაქი" #: data/ui/osm-edit-dialog.ui:8 msgctxt "dialog title" msgid "Edit on OpenStreetMap" msgstr "OpenStreetMap-ზე ჩასწორება" #: data/ui/osm-edit-dialog.ui:57 msgid "Type" msgstr "ტიპი" #: data/ui/osm-edit-dialog.ui:79 msgid "None" msgstr "არც_ერთი" #: data/ui/osm-edit-dialog.ui:108 msgid "Add Field" msgstr "ველის დამატება" #: data/ui/osm-edit-dialog.ui:130 msgid "Comment" msgstr "კომენტარი" #: data/ui/osm-edit-dialog.ui:158 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "რუკის ცვლილებები ხილული იქნება ყველა რუკაზე, რომელიც\n" "OpenStreetMap-ის მონაცემებს იყენებს." #: data/ui/osm-edit-dialog.ui:186 msgid "Recently Used" msgstr "ახლახანს _გამოყენებული" #: data/ui/osm-edit-dialog.ui:225 src/mapView.js:663 msgid "Cancel" msgstr "გაუქმება" #: data/ui/osm-edit-dialog.ui:238 src/osmEditDialog.js:531 msgid "Next" msgstr "შემდეგი" #: data/ui/osm-edit-wikipedia.ui:8 msgid "Article" msgstr "სტატია" #: data/ui/osm-edit-wikipedia.ui:21 msgid "Wikidata tag" msgstr "ვიკიმონაცემების ჭდე" #: data/ui/osm-edit-wikipedia.ui:32 msgid "Load Wikidata tag for article" msgstr "ვიკიმონაცემების ჭდის ჩატვირთვა სტატიისთვის" #: data/ui/place-popover.ui:23 src/searchBar.js:55 msgid "Explore Nearby Places" msgstr "ახლომდებარე ადგილების დათვალიერება" #: data/ui/place-popover.ui:82 src/application.js:277 msgid "No results found" msgstr "პროგრამა ვერ მოიძებნა" #: data/ui/place-popover.ui:92 src/application.js:255 msgid "An error has occurred" msgstr "შეცდომა" #. Translators: This is a tooltip #: data/ui/route-entry.ui:12 msgid "Change Route Order" msgstr "გზის მიმდევრობის შეცვლა" #: data/ui/send-to-dialog.ui:7 msgid "Open Location" msgstr "მდებარეობის გახსნა" #: data/ui/send-to-dialog.ui:64 msgid "Copy" msgstr "კოპირება" #: data/ui/send-to-dialog.ui:70 msgid "Send To…" msgstr "გაგზავნა…" #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:62 msgid "Open Shape Layer" msgstr "მოხაზულობის ფენის გახსნა" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "გახსნა" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:32 msgid "Toggle visible" msgstr "ხილვადობის გადართვა" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:44 msgid "Remove Shape Layer" msgstr "მოხაზულობის ფენის გახსნა" #: data/ui/sidebar.ui:207 msgid "Route search by GraphHopper" msgstr "გზის GraphHopper-თ ძებნა" #: data/ui/sidebar.ui:272 msgid "" "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of " "transportation,\n" "e.g. a national provider might not include airlines, and a local provider " "could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" "გზები საჯარო მგზავრობითვის მესამე პირების მიერაა წარმოდგენილი.\n" "\n" "GNOME-ს არ შეუძლია ამ გზების სისწორის გარანტა მოგცეთ.\n" "დაიმახსოვრეთ, რომ ზოგიერთ მომწოდებელს შეუძლია, ტრანსპორტის ყველა რეჟიმი\n" "არ გადმოგვცეს. მაგ: ნაციონალური მომწოდებელი, შეიძლება, არ შეიცავდეს " "ავიახაზებს და\n" "ლოკალური მომწოდებელი, შეიძლება, რეგიონალურ მატარებლებს არ შეიცავდეს.\n" "სახელები და ბრენდები, რომლებიც ნაჩვენებია, მიღებულია, რომ რეგისტრირებული " "სავაჭრო ნიშანი იყოს, როცა ეს საჭიროა." #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:98 msgid "Hide intermediate stops and information" msgstr "შუალედური გაჩერებებისა და ინფორმაციის დამალვა" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:156 msgid "Show intermediate stops and information" msgstr "შუალედური გაჩერებებისა და ინფორმაციის ჩვენება" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:16 msgid "Leave Now" msgstr "ახლავე გასვლა" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:17 msgid "Leave By" msgstr "გასვლის დრო" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:18 msgid "Arrive By" msgstr "მისვლის დრო" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:85 msgid "Show" msgstr "ჩვენება" #: data/ui/transit-options-panel.ui:95 msgid "Buses" msgstr "ავტობუსები" #: data/ui/transit-options-panel.ui:101 msgid "Trams" msgstr "ტრამვაები" #: data/ui/transit-options-panel.ui:107 msgid "Trains" msgstr "მატარებლები" #: data/ui/transit-options-panel.ui:113 msgid "Subway" msgstr "მეტრო" #: data/ui/transit-options-panel.ui:119 msgid "Ferries" msgstr "ბორნები" #: data/ui/transit-options-panel.ui:125 msgid "Airplanes" msgstr "თვითმფრინავი" #. Translators: This is a tooltip #: data/ui/place-bar.ui:33 data/ui/place-buttons.ui:27 msgid "Share Location" msgstr "მდებარეობის გაზიარება" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:11 msgid "Add to new route" msgstr "ახალი გზის დამატება" #. Translators: This is the button to find a route to a place #: data/ui/place-buttons.ui:15 msgid "Directions" msgstr "მიმართულებები" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:36 msgid "Mark as Favorite" msgstr "რჩეულად მონიშვნა" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:44 msgid "Edit on OpenStreetMap" msgstr "OpenStreetMap-ზე ჩასწორება" #. Translators: This is a tooltip #: data/ui/place-view.ui:52 msgid "Share location" msgstr "მდებარეობის გაზიარება" #: data/ui/poi-category-goback-row.ui:22 msgid "Back to Main Categories" msgstr "მთავარ კატეგორიებზე დაბრუნება" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:19 msgid "Reset Rotation" msgstr "მობრუნების განულება" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:32 msgid "Zoom Out" msgstr "დაპატარავება" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:43 src/mapView.js:1238 msgid "Zoom In" msgstr "გა_დიდება" #: lib/maps-file-data-source.c:262 lib/maps-file-data-source.c:338 #: lib/maps-file-data-source.c:418 msgid "Failed to find tile structure in directory" msgstr "საქაღალდეში ფაილების სტრუქტურა ვერ ვიპოვე" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "XML დოკუმენტის დამუშავების შეცდომა" #: lib/maps-osm.c:250 lib/maps-osm.c:403 msgid "Missing required attributes" msgstr "აკლია საჭირო ატრიბუტები" #: lib/maps-osm.c:451 lib/maps-osm.c:494 msgid "Could not find OSM element" msgstr "OSM ელემენტის პოვნა შეუძლებელია" #: lib/maps-osm.c:508 msgid "Could not find user element" msgstr "მომხმარებლის ელემენტის პოვნა შეუძლებელია" #: src/application.js:78 msgid "A path to a local tiles directory structure" msgstr "ბილიკი ლოკალური ფილების საქაღალდის სტრუქტურამდე" #: src/application.js:84 msgid "Tile size for local tiles directory" msgstr "ფილის ზომა ლოკალური ფილების საქაღალდისთვის" #: src/application.js:88 msgid "Show the version of the program" msgstr "პროგრამის ვერსიის ჩვენება" #: src/application.js:94 msgid "Search for places" msgstr "ადგილების ძებნა" #: src/application.js:105 src/application.js:106 msgid "[FILE…|URI]" msgstr "[ფაილი...|URI]" #: src/application.js:284 #, javascript-format msgid "Invalid maps: URI: %s" msgstr "რუკის არასწორი URI: %s" #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:75 #, javascript-format msgid "Maps at %f, %f.png" msgstr "რუკები მისამართზე %f, %f.png" #: src/exportViewDialog.js:174 msgid "Unable to export view" msgstr "ხედის გატანა შეუძლებელია" #: src/favoriteListRow.js:42 msgid "Favorite removed" msgstr "სანიშნე წაშლილია" #: src/favoriteListRow.js:43 msgid "Undo" msgstr "დაბრუნება" #: src/geoJSONSource.js:73 msgid "invalid coordinate" msgstr "არასწორი კოორდინატები" #: src/geoJSONSource.js:126 src/geoJSONSource.js:166 src/geoJSONSource.js:181 msgid "parse error" msgstr "დამუშავების შეცდომა" #: src/geoJSONSource.js:160 msgid "unknown geometry" msgstr "უცნობი გეომეტრია" #: src/graphHopper.js:101 src/transitPlan.js:175 msgid "Route request failed." msgstr "გზის მოთხოვნის შეცდომა." #: src/graphHopper.js:108 src/transitPlan.js:167 msgid "No route found." msgstr "გზა ვერ ვიპოვე." #: src/graphHopper.js:195 src/transitplugins/openTripPlanner.js:1163 msgid "Start!" msgstr "დაწყება!" #: src/mainWindow.js:59 msgid "All Layer Files" msgstr "ფენის ყველა ფაილი" #: src/mainWindow.js:522 msgid "Failed to connect to location service" msgstr "მდებარეობის სერვისთან მიერთების შეცდომა" #: src/mainWindow.js:527 msgid "Turn on location services" msgstr "მდებარეობის სერვისების ჩართვა" #: src/mainWindow.js:528 msgid "Location Settings" msgstr "მდებარეობის მორგება" #: src/mainWindow.js:645 msgid "translator-credits" msgstr "temuri doghonadze" #: src/mainWindow.js:649 msgid "Copyright © 2011 – 2023 Red Hat, Inc. and The GNOME Maps authors" msgstr "Copyright © 2011 – 2023 Red Hat, Inc. and The GNOME Maps authors" #: src/mainWindow.js:665 #, javascript-format msgid "Map data by %s and contributors" msgstr "რუკის მონაცემების ავტორია %s და მოხალისეები" #: src/mainWindow.js:666 msgid "Map Data Provider" msgstr "რუკის მონაცემების მომწოდებელი" #: src/mainWindow.js:678 msgid "Map Tile Provider" msgstr "რუკის ფილების მომწოდებელი" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:686 #, javascript-format msgid "Map tiles provided by %s" msgstr "რუკის ფილებს ავტორია %s" #: src/mainWindow.js:716 msgid "Search Provider" msgstr "საძიებო სისტემა" #: src/mainWindow.js:719 #, javascript-format msgid "Search provided by %s using %s" msgstr "ძებნა მოწოდებულია %s-ის მიერ %s-ის გამოყენებით" #: src/mapView.js:637 src/mapView.js:702 msgid "Failed to open layer" msgstr "ფენის გახსნის შეცდომა" #: src/mapView.js:656 msgid "Do you want to continue?" msgstr "გნებავთ, გააგრძელოთ?" #: src/mapView.js:657 #, javascript-format msgid "" "You are about to open files with a total size of %s MB. This could take some " "time to load" msgstr "" "აპირებთ, გახსნათ ფაილები ჯამური ზომით %s მბ. ამას საკმაოდ დრო შეიძლება, " "დასჭირდეს" #: src/mapView.js:664 src/transitplugins/openTripPlanner.js:1239 #: src/transitplugins/openTripPlanner2.js:267 msgid "Continue" msgstr "გაგრძელება" #: src/mapView.js:696 msgid "File type is not supported" msgstr "ფაილის ტიპი მხარდაუჭერელია" #: src/mapView.js:733 msgid "Failed to open GeoURI" msgstr "GeoURI-ის გახსნის შეცდომა" #: src/mapView.js:1197 msgid "Nothing found here!" msgstr "ვერაფერი ვიპოვე!" #: src/mapView.js:1237 msgid "Zoom in to add location" msgstr "მდებარეობის დასამატებლად დააპატარავეთ" #: src/mapView.js:1258 msgid "Location was added in OpenStreetMap" msgstr "ადგილი დაემატა OpenStreetMap-ზე" #. switch back to the sign-in view, and show a toast indicating #. that verification failed #: src/osmAccountDialog.js:134 msgid "The verification code didn’t match, please try again." msgstr "გადამოწმების კოდი არ დაემთხვა. თავიდან სცადეთ." #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:335 msgid "Incorrect user name or password" msgstr "არასწორი მომხმარებელი ან პაროლი" #: src/osmConnection.js:337 msgid "Success" msgstr "წარმატება" #: src/osmConnection.js:339 msgid "Bad request" msgstr "ცუდი მოთხოვნა" #: src/osmConnection.js:341 msgid "Object not found" msgstr "ობიექტი ვერ ვიპოვე" #: src/osmConnection.js:343 msgid "Conflict, someone else has just modified the object" msgstr "კონფლიქტი. ვიღაცამ ახლახანს ობიექტი შეცვალა" #: src/osmConnection.js:345 msgid "Object has been deleted" msgstr "ობიექტი წაიშალა" #: src/osmConnection.js:347 msgid "Way or relation refers to non-existing children" msgstr "ურთიერთობა ან გზა არარსებულ შვილებს მიმართავს" #: src/osmEditDialog.js:106 msgid "Name" msgstr "სახელი" #: src/osmEditDialog.js:109 msgid "The official name. This is typically what appears on signs." msgstr "ოფიციალური სახელი. ჩვეულებრივ აწერია საგზაო ნიშნებზე." #: src/osmEditDialog.js:112 msgid "Address" msgstr "მისამართი" #: src/osmEditDialog.js:120 src/placeView.js:275 msgid "Website" msgstr "ვებგვერდი" #: src/osmEditDialog.js:124 msgid "This is not a valid URL. Make sure to include http:// or https://." msgstr "არასწორი URL. დარწმუნდით, რომ იწყება http://-ით ან https://-ით." #: src/osmEditDialog.js:125 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" "ოფიციალური ვებგვერდი. სცადეთ, გამოიყენოთ ბმულის ყველაზე მარტივი ფორმა. მაგ: " "http://example.com http://example.com/index.html-ის მაგიერ." #: src/osmEditDialog.js:130 msgid "Phone" msgstr "ტელეფონი" #: src/osmEditDialog.js:134 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" "ტელეფონის ნომერი. გამოიყენეთ საერთაშორისო ფორმატი, რომელიც + ნიშნით იწყება. " "ფრთხილად იყავით ადგილობრივ კონფიდენციალობის კანონებთან, განსაკუთრებით პირად " "ნომრებთან დაკავშირებით." #: src/osmEditDialog.js:139 msgid "E-mail" msgstr "ელფოსტა" #: src/osmEditDialog.js:144 msgid "" "This is not a valid email address. Make sure to not include the mailto: " "protocol prefix." msgstr "" "ეს არასწორი ელფოსტის მისამართია. დარწმუნდით, რომ ის არ შეიცავს mailto: " "პროტოკოლის პრეფიქსს." #: src/osmEditDialog.js:145 msgid "" "Contact email address for inquiries. Add only email addresses that are " "intended to be publicly used." msgstr "" "კონტაქტის ელფოსტა დასაკავშირებლად. დაამატეთ მხოლოდ ის ელფოსტის მისამართები, " "რომლებიც საჯაროდ გამოყენებისთვისაა განკუთვნილი." #. Translators: This is the text for the "Wikipedia" link at the end #. of summaries #: src/osmEditDialog.js:149 src/placeView.js:727 msgid "Wikipedia" msgstr "Wikipedia - უფასო ენციკლოპედია" #: src/osmEditDialog.js:156 src/placeView.js:399 msgid "Opening hours" msgstr "სამუშაო საათები" #: src/osmEditDialog.js:161 msgid "See the link in the label for help on format." msgstr "ფორმატზე დახმარებისთვის იხილეთ ბმული ჭდეზე." #. TODO: this is a bit of a work-around to re-interpret the population, #. * stored as a string into an integer to convert back to a locale- #. * formatted string. Ideally it should be kept as an integer value #. * in the Place class. But this will also need to be handled by the #. * PlaceStore, possible in a backwards-compatible way #. #: src/osmEditDialog.js:164 src/placeView.js:509 msgid "Population" msgstr "მოსახლეობა" #: src/osmEditDialog.js:169 src/placeView.js:538 msgid "Altitude" msgstr "სიმაღლე" #: src/osmEditDialog.js:172 msgid "Elevation (height above sea level) of a point in meters." msgstr "სიმაღლე ზღვის დონიდან, მეტრებში." #: src/osmEditDialog.js:175 msgid "Wheelchair access" msgstr "სავარძლით წვდომა" #: src/osmEditDialog.js:178 src/osmEditDialog.js:187 src/osmEditDialog.js:198 #: src/osmEditDialog.js:233 msgid "Yes" msgstr "დიახ" #: src/osmEditDialog.js:179 src/osmEditDialog.js:188 src/osmEditDialog.js:199 #: src/osmEditDialog.js:234 msgid "No" msgstr "არა" #: src/osmEditDialog.js:180 msgid "Limited" msgstr "შეზღუდული" #: src/osmEditDialog.js:181 msgid "Designated" msgstr "სპეციალიზებული" #: src/osmEditDialog.js:184 msgid "Internet access" msgstr "წვდომა ინტერნეტთან" #: src/osmEditDialog.js:189 msgid "Wi-Fi" msgstr "Wi-Fi" #: src/osmEditDialog.js:190 msgid "Wired" msgstr "მავთულით" #: src/osmEditDialog.js:191 msgid "Terminal" msgstr "ტერმინალი" #: src/osmEditDialog.js:192 msgid "Service" msgstr "სერვისი" #: src/osmEditDialog.js:195 msgid "Takeout" msgstr "წაღება" #: src/osmEditDialog.js:200 msgid "Only" msgstr "მხოლოდ" #: src/osmEditDialog.js:203 msgid "Religion" msgstr "რელიგია" #: src/osmEditDialog.js:206 src/translations.js:286 msgid "Animism" msgstr "ანიმიზმი" #: src/osmEditDialog.js:207 msgid "Bahá’í" msgstr "ბაჰაი" #: src/osmEditDialog.js:208 src/translations.js:288 msgid "Buddhism" msgstr "ბუდიზმი" #: src/osmEditDialog.js:209 src/translations.js:289 msgid "Caodaism" msgstr "კაოდაიზმი" #: src/osmEditDialog.js:210 src/translations.js:290 msgid "Christianity" msgstr "ქრისტიანობა" #: src/osmEditDialog.js:211 src/translations.js:291 msgid "Confucianism" msgstr "კონფიციანიზმი" #: src/osmEditDialog.js:212 src/translations.js:292 msgid "Hinduism" msgstr "ჰინდუიზმი" #: src/osmEditDialog.js:213 src/translations.js:293 msgid "Jainism" msgstr "იანიზმი" #: src/osmEditDialog.js:214 src/translations.js:294 msgid "Judaism" msgstr "იუდაიზმი" #: src/osmEditDialog.js:215 src/translations.js:295 msgid "Islam" msgstr "ისლამი" #: src/osmEditDialog.js:216 src/translations.js:296 msgid "Multiple Religions" msgstr "მრავალი რელიგია" #: src/osmEditDialog.js:217 src/translations.js:297 msgid "Paganism" msgstr "პაგანიზმი" #: src/osmEditDialog.js:218 src/translations.js:298 msgid "Pastafarianism" msgstr "პასტაფარიანიზმი" #: src/osmEditDialog.js:219 src/translations.js:299 msgid "Scientology" msgstr "საინტოლოგია" #: src/osmEditDialog.js:220 src/translations.js:300 msgid "Shinto" msgstr "შინტო" #: src/osmEditDialog.js:221 src/translations.js:301 msgid "Sikhism" msgstr "შიხიზმი" #: src/osmEditDialog.js:222 src/translations.js:302 msgid "Spiritualism" msgstr "სპირიტუალიზმი" #: src/osmEditDialog.js:223 src/translations.js:303 msgid "Taoism" msgstr "ტაოიზმი" #: src/osmEditDialog.js:224 src/translations.js:304 msgid "Unitarian Universalism" msgstr "უნიტარული უნივერსალიზმი" #: src/osmEditDialog.js:225 src/translations.js:305 msgid "Voodoo" msgstr "ვუდუ" #: src/osmEditDialog.js:226 src/translations.js:306 msgid "Yazidism" msgstr "იეზდიზმი" #: src/osmEditDialog.js:227 src/translations.js:307 msgid "Zoroastrianism" msgstr "ზოროასტირანიზმი" #: src/osmEditDialog.js:230 src/poiCategories.js:176 msgid "Toilets" msgstr "ტუალეტები" #: src/osmEditDialog.js:237 msgid "Note" msgstr "შენიშვნა" #: src/osmEditDialog.js:240 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" "ინფორმაცია, რომელიც გამოიყენება სხვა მერუკეებისთვის ელემენტის შესახებ " "არატრივიალური ინფორმაციის მისაწოდებლად, ავტორის მიზანი მისი შექმნისას ან " "მინიშნებები მომავალი გაუმჯობესებებისთვის." #: src/osmEditDialog.js:339 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "Add to OpenStreetMap" #: src/osmEditDialog.js:393 msgid "Select Type" msgstr "აირჩიეთ ტიპი" #: src/osmEditDialog.js:515 msgid "Done" msgstr "დასრულებულია" #: src/osmEditDialog.js:818 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "" "გამოყენებული ფორმატი ენის კოდს და სტატიის სათაურს უნდა შეიცავდეს \"en:" "Article title\"." #: src/osmEditDialog.js:824 msgid "Use the reload button to load the Wikidata tag for the selected article" msgstr "" "გამოიყენეთ თავიდან ჩატვირთვის ღილაკი მონიშნული სტატიისთვის ვიკიმონაცემების " "ჭდის ჩასატვირთად" #: src/osmEditDialog.js:832 msgid "Couldn't find Wikidata tag for article" msgstr "სტატიისთვის ვიკიმონაცემების ჭდე ვერ ვიპოვე" #: src/photonUtils.js:118 msgid "Unnamed place" msgstr "უსახელო ადგილი" #: src/placeEntry.js:274 msgid "Failed to parse Geo URI" msgstr "Geo URI-ის დამუშავების შეცდომა" #: src/placeEntry.js:286 msgid "Failed to parse Maps URI" msgstr "რუკის URI-ის დამუშავების შეცდომა" #. 300 ft (300 * 12 * 0.0254 m) #. #. * Translators: This a format string for showing a distance to a place #. * is lower than a "quite short" distance. #. * The "less than" symbol can be substituded with an appropriate one, if #. * needed (e.g. using the correct direction, or alternative symbol). #. * The %s should be kept, and is substituted with a label representing the #. * short distance. The \u2009 (thin space) could also be adjusted if needed #: src/placeListRow.js:46 #, javascript-format msgctxt "short distance format string" msgid "< %s" msgstr "< %s" #: src/placeView.js:263 msgid "Coordinates" msgstr "კოორდინატები" #: src/placeView.js:267 msgid "Accuracy" msgstr "სიზუსტე" #. Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) #: src/placeView.js:270 #, javascript-format msgid "Accuracy: %s" msgstr "სიზუსტე: %s" #. since the phone numbers are typically always rendered #. * left-to-right, insert an explicit LRM char to avoid issues #. * with phone numbers in international format starting with a + #. * which is considered a "weak" character to determine Unicode #. * text direction #. #: src/placeView.js:289 msgid "Phone number" msgstr "ტელეფონის ნომერი" #: src/placeView.js:308 msgid "Email" msgstr "ელფოტა" #. If a reference to a named floor (named or symbolic) exists #. * refer to it directly. #. #. Translators: #. * This is a reference to named building floor, using a label #. * or a code, as "displayed in the elevator" #. #: src/placeView.js:323 src/placeView.js:362 msgid "Floor" msgstr "სართული" #: src/placeView.js:325 #, javascript-format msgid "Floor %s" msgstr "სართული %s" #: src/placeView.js:337 msgid "At ground level" msgstr "ზედაპირის დონეზე" #. Translators: #. * This is a reference to a number of floors above #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:346 #, javascript-format msgid "%s floor above ground level" msgid_plural "%s floors above ground level" msgstr[0] "%s სართულით მაღლა ზედაპირიდან" msgstr[1] "%s სართულით მაღლა ზედაპირიდან" #. Translators: #. * This is a reference to a number of floors below #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:357 #, javascript-format msgid "%s floor below ground level" msgid_plural "%s floors below ground level" msgstr[0] "%s სართულით დაბლა ზედაპირიდან" msgstr[1] "%s სართულით დაბლა ზედაპირიდან" #. Translators: #. * The establishment offers customers to purchase meals #. * (or similar) to be consumed elsewhere #. #: src/placeView.js:375 msgid "Offers takeout" msgstr "გთავაზობთ წასაღებად" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed on-premise. #. #: src/placeView.js:383 msgid "Does not offer takeout" msgstr "არ გთავაზობთ წასაღებად" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed elsewhere. E.g. #. * there is no seating on-premise for eating/drinking #. #: src/placeView.js:392 msgid "Only offers takeout" msgstr "გთავაზობთ მხოლოდ წასაღებად" #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/placeView.js:409 msgid "Public internet access" msgstr "საჯარო წვდომა ინტერნეტთან" #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/placeView.js:418 msgid "No internet access" msgstr "ინტერნეტთან წვდომის გარეშე" #. Translators: #. * This means a WLAN Hotspot, also known as wireless, wifi or Wi-Fi. #. #: src/placeView.js:426 msgid "Public Wi-Fi" msgstr "საჯარო Wi-Fi" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/placeView.js:434 msgid "Wired internet access" msgstr "ინტერნეტთან წვდომა მავთულით" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/placeView.js:442 msgid "Computers available for use" msgstr "ხელმისაწვდომია გამოყენებადი კომპიუტერები" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/placeView.js:450 msgid "Internet assistance available" msgstr "ხელმისაწვდომია ინტერნეტით მხარდაჭერა" #: src/placeView.js:456 msgid "No toilets available" msgstr "ტუალეტების გარეშე" #: src/placeView.js:459 msgid "Toilets available" msgstr "ხელმისაწვდომია ტუალეტები" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #: src/placeView.js:468 msgid "Wheelchair accessible" msgstr "სავარძლით წვდომადი" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/placeView.js:478 msgid "Limited wheelchair accessibility" msgstr "შეზღუდული წვდომა სავარძლით" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #: src/placeView.js:487 msgid "Not wheelchair accessible" msgstr "სავარძლით წვდომის გარეშე" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/placeView.js:497 msgid "Designated for wheelchair users" msgstr "განკუთვნილია სავარძლს მომხმარებლებისთვის" #. * #. * Translators: this is a label indicating an altitude below #. * sea level, where the %s placeholder is the altitude relative #. * to mean sea level in the "negative direction" #. #: src/placeView.js:528 #, javascript-format msgid "%s below sea level" msgstr "%s ზღვის დონეზე დაბლა" #. * #. * Translators: this indicates a place is located at (or very #. * close to) mean sea level #. #: src/placeView.js:535 msgid "At sea level" msgstr "ზღვის დონეზე" #: src/placeView.js:544 msgid "Religion:" msgstr "რელიგია:" #: src/place.js:568 msgid "Place not found in OpenStreetMap" msgstr "ადგილი OpenStreetMap-ზე ნაპოვნი არაა" #: src/place.js:575 msgid "Coordinates in URL are not valid" msgstr "URL-ში შეცული კოორდინატები არასწორია" #: src/place.js:584 msgid "URL is not supported" msgstr "URL მხარდაუჭერელია" #: src/poiCategories.js:132 msgid "Amenities" msgstr "პირობები" #: src/poiCategories.js:135 msgid "ATMs" msgstr "ბანკომატები" #: src/poiCategories.js:141 msgid "Post Boxes" msgstr "საფოსტო ყუთები" #: src/poiCategories.js:147 msgid "Post Offices" msgstr "საფოსტო ოფისები" #: src/poiCategories.js:153 msgid "Police" msgstr "პოლიცია" #: src/poiCategories.js:159 msgid "Libraries" msgstr "ბიბლიოთეკები" #: src/poiCategories.js:165 msgid "Pharmacies" msgstr "აფთიაქები" #: src/poiCategories.js:171 msgid "Recycling" msgstr "გადამუშავება" #: src/poiCategories.js:182 msgid "Wheelchair-accessible Toilets" msgstr "სავარძლით წვდომადი ტუალეტები" #: src/poiCategories.js:188 msgid "Baggage Lockers" msgstr "ბარგის სეიფები" #: src/poiCategories.js:196 msgid "Eating & Drinking" msgstr "საჭმელ-სასმელი" #: src/poiCategories.js:200 msgid "Restaurants" msgstr "რესტორნები" #: src/poiCategories.js:205 msgid "Fast Food" msgstr "სწრაფი საჭმელი" #: src/poiCategories.js:210 msgid "Food Courts" msgstr "სწრაფი კვების მოედნები" #: src/poiCategories.js:215 msgid "Pubs" msgstr "პაბები" #: src/poiCategories.js:221 msgid "Bars" msgstr "მართკუთხედები" #: src/poiCategories.js:226 msgid "Cafes" msgstr "კაფეები" #: src/poiCategories.js:231 msgid "Ice Cream" msgstr "ნაყინი" #: src/poiCategories.js:236 msgid "Food, Snacks, and Beverage Machines" msgstr "საჭმლის, მისაყოლებლის და სასმლის მანქანები" #: src/poiCategories.js:244 msgid "Shopping" msgstr "შოპინგი" #: src/poiCategories.js:248 msgid "Supermarkets" msgstr "სუპერმარკეტები" #: src/poiCategories.js:254 msgid "Convenience Stores" msgstr "თვითმომსახურების სასურსათო მაღაზია" #: src/poiCategories.js:259 msgid "Shopping Malls" msgstr "მოლები" #: src/poiCategories.js:265 msgid "Clothes" msgstr "ტანსაცმელი" #: src/poiCategories.js:271 msgid "Shoes" msgstr "ფეხსაცმელი" #: src/poiCategories.js:276 msgid "Electronics" msgstr "ელექტრონიკა" #: src/poiCategories.js:282 msgid "Alcohol" msgstr "ალკოჰოლი" #: src/poiCategories.js:288 msgid "Bakeries" msgstr "საცხობები" #: src/poiCategories.js:294 msgid "Flowers" msgstr "ყვავილები" #: src/poiCategories.js:301 msgid "Transportation" msgstr "ტრანსპორტი" #: src/poiCategories.js:305 msgid "Bus & Tram Stops" msgstr "ავტობუსის და ტრამვაის გაჩერებები" #: src/poiCategories.js:313 msgid "Train & Subway Stations" msgstr "მატარებლისა და მეტროს სადგურები" #: src/poiCategories.js:321 msgid "Tickets" msgstr "ბილეთები" #: src/poiCategories.js:329 msgid "Parking" msgstr "მიმდინარეობს დამაგრება" #: src/poiCategories.js:334 msgid "Bicycle Parking" msgstr "ველოსიპედის პარკინგი" #: src/poiCategories.js:339 msgid "Bicycle Rental" msgstr "ველოსიპედის ქირაობა" #: src/poiCategories.js:344 msgid "Car Rental" msgstr "მანქანის ქირაობა" #: src/poiCategories.js:349 msgid "Fuel" msgstr "საწვავი" #: src/poiCategories.js:354 msgid "EV Charging" msgstr "ელექტრომობილის სატენები" #: src/poiCategories.js:362 msgid "Healthcare" msgstr "ჯანდაცვა" #: src/poiCategories.js:366 msgid "Clinics" msgstr "კლინიკები" #: src/poiCategories.js:372 msgid "Hospitals" msgstr "სავადმყოფოები" #: src/poiCategories.js:378 msgid "Dentists" msgstr "კბილის ექიმები" #: src/poiCategories.js:386 msgid "Accommodation" msgstr "აკომოდაცია" #: src/poiCategories.js:390 msgid "Hotels" msgstr "სასტუმროები" #: src/poiCategories.js:395 msgid "Hostels" msgstr "ჰოსტელები" #: src/poiCategories.js:400 msgid "Bed & Breakfast" msgstr "საწოლი და საუზმე" #: src/poiCategories.js:405 msgid "Campings" msgstr "ლაშქრობა" #: src/poiCategories.js:412 msgid "Recreation" msgstr "გართობა" #: src/poiCategories.js:416 msgid "Parks" msgstr "პარკი" #: src/poiCategories.js:421 msgid "Playgrounds" msgstr "სათამაშო მოედანი" #: src/poiCategories.js:425 msgid "Beaches" msgstr "პლაჟი" #: src/poiCategories.js:430 msgid "Nature Reserves" msgstr "ნაკრძალები" #: src/poiCategories.js:436 msgid "Theme Parks" msgstr "თემური პარკები" #: src/poiCategories.js:441 msgid "Theaters" msgstr "თეატრები" #: src/poiCategories.js:447 msgid "Movie Theaters" msgstr "კინოთეატრები" #: src/poiCategories.js:453 msgid "Night Clubs" msgstr "ღამის კლუბები" #: src/poiCategories.js:460 msgid "Tourism" msgstr "ტურიზმი" #: src/poiCategories.js:464 msgid "Museums" msgstr "მუზეუმები" #: src/poiCategories.js:470 msgid "Attractions" msgstr "ატრაქციონები" #: src/poiCategories.js:475 msgid "Artworks" msgstr "ნაჩხაპნები" #: src/poiCategories.js:480 msgid "Tourist Information" msgstr "ტურისტული ინფორმაცია" #: src/poiCategories.js:487 msgid "Sports" msgstr "სპორტი" #: src/poiCategories.js:491 msgid "Gyms" msgstr "ჯიმები" #: src/poiCategories.js:497 msgid "Outdoor Gyms" msgstr "გარე ჯიმები" #: src/poiCategories.js:503 msgid "Golf Courses" msgstr "გოლფის კურსები" #: src/printLayout.js:350 #, javascript-format msgid "From %s to %s" msgstr "%s-დან %s-მდე" #: src/printOperation.js:49 msgid "Loading map tiles for printing" msgstr "იტვირთება რუკის ფილები დასაბეჭდად" #: src/printOperation.js:50 msgid "You can abort printing if this takes too long" msgstr "თუ ბეჭდვას დიდი დრო დასჭირდა, ის შეგიძლიათ, გააუქმოთ" #: src/printOperation.js:52 msgid "Abort printing" msgstr "დაბეჭდვის გაუქმება" #. Translators: this is add via location tooltip #: src/routeEntry.js:60 msgid "Add via location" msgstr "გასავლელი მდებარეობის დამატება" #. Translators: this is remove via location tooltip #: src/routeEntry.js:70 msgid "Remove via location" msgstr "გასავლელი მდებარეობის წაშლა" #. Translators: this is reverse route tooltip #: src/routeEntry.js:76 msgid "Reverse route" msgstr "გზის შემობრუნება" #: src/searchBar.js:45 msgid "Search" msgstr "ძებნა" #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:84 #, javascript-format msgid "Add %s to %s" msgstr "%s-ის %s-ზე მიმატება" #: src/sendToDialog.js:181 msgid "Failed to open URI" msgstr "URI-ის გახსნის შეცდომა" #: src/sendToDialog.js:246 #, javascript-format msgid "Open with %s" msgstr "%s-ით გახსნა" #: src/shapeLayer.js:109 msgid "failed to load file" msgstr "ფაილის ჩატვირთვის შეცდომა" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:328 #, javascript-format msgid "Estimated time: %s" msgstr "დარჩენილი დრო: %s" #: src/sidebar.js:398 #, javascript-format msgid "Itineraries provided by %s" msgstr "მარშრუტების მომწოდებელია %s" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:39 #, javascript-format msgid "Start at %s" msgstr "%s-ზე დაწყება" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:45 src/transitplugins/openTripPlanner2.js:236 msgid "Start" msgstr "დაწყება" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:63 #, javascript-format msgid "Walk %s" msgstr "%s-ის გავლა" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:77 #, javascript-format msgid "Arrive at %s" msgstr "%s-ზე მისვლა" #: src/transit.js:79 src/transitplugins/openTripPlanner.js:1176 #: src/transitplugins/openTripPlanner2.js:255 msgid "Arrive" msgstr "მისვლის დრო" #: src/transitLegRow.js:69 msgid "Show walking instructions" msgstr "სიარულის ინსტრუქციების ჩვენება" #: src/transitLegRow.js:70 msgid "Hide walking instructions" msgstr "სიარულის ინსტრუქციების დამალვა" #: src/transitMoreRow.js:37 msgid "Load earlier alternatives" msgstr "წინა შესაძლო ვარიანტების ჩატვირთვა" #: src/transitMoreRow.js:39 msgid "Load later alternatives" msgstr "შემდეგი შესაძლო ვარიანტების ჩატვირთვა" #: src/transitMoreRow.js:52 msgid "No earlier alternatives found." msgstr "წინა ვარიანტების გარეშე." #: src/transitMoreRow.js:54 msgid "No later alternatives found." msgstr "შემდეგი ვარიანტების გარეშე." #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:138 msgctxt "month-day-date" msgid "%b %e" msgstr "%b %e" #: src/transitPlan.js:171 msgid "No timetable data found for this route." msgstr "ამ გზისთვის დროის ცხრილის მონაცემები აღმოჩენილი არაა." #: src/transitPlan.js:179 msgid "No provider found for this route." msgstr "ამ გზისთვის მომწოდებელი აღმოჩენილი არაა." #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:300 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:331 #, javascript-format msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "%s წუთი" msgstr[1] "%s minutes" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:343 #, javascript-format msgid "%s hour" msgid_plural "%s hours" msgstr[0] "%s საათი" msgstr[1] "%s hours" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:351 #, javascript-format msgid "%s:%s hour" msgid_plural "%s:%s hours" msgstr[0] "%s:%s საათი" msgstr[1] "%s:%s hours" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:744 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: src/translations.js:55 msgid "Around the clock" msgstr "მთელი დღე" #: src/translations.js:57 msgid "From sunrise to sunset" msgstr "დაისიდან აისამდე" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:123 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s,%s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:137 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s,%s,%s" #: src/translations.js:156 msgid "Every day" msgstr "ყოველდღე" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:168 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:179 msgid "Public holidays" msgstr "დასვენებები" #: src/translations.js:181 msgid "School holidays" msgstr "სკოლის დასვენებები" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:221 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: src/translations.js:235 msgid "not open" msgstr "ღია არაა" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:250 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:287 msgid "Bahá'í" msgstr "ბაჰაი" #. Translators: Accuracy of user location information #: src/utils.js:248 msgid "Unknown" msgstr "უცნობი" #. Translators: Accuracy of user location information #: src/utils.js:251 msgid "Exact" msgstr "ზუსტი" #. Translators: this is a duration with only hours, using #. * an abbreviation for hours, corresponding to 'h' in English #. #: src/utils.js:307 #, javascript-format msgid "%s h" msgstr "%s h" #. Translators: this is a duration with hours and minutes parts #. * using abbreviations for hours and minutes, corresponding to 'h' #. * and 'min' in English. The minutes has appropriate plural variations #. #: src/utils.js:313 #, javascript-format msgid "%s h %s min" msgid_plural "%s h %s min" msgstr[0] "%s h %s წუთი" msgstr[1] "%s h %s min" #. Translators: this is a duration with minutes part #. * using abbreviation for minutes, corresponding to 'min' in English #. * with appropriate plural variations #. #: src/utils.js:320 #, javascript-format msgid "%s min" msgid_plural "%s min" msgstr[0] "%s წუთი" msgstr[1] "%s min" #. Translators: this is a duration of less than one minute #. * with seconds using an abbreviation for seconds, corresponding to #. * 's' in English with appropriate plural forms #. #: src/utils.js:326 #, javascript-format msgid "%s s" msgid_plural "%s s" msgstr[0] "%s წმ" msgstr[1] "%s s" #. Translators: This is a distance measured in kilometers #: src/utils.js:337 #, javascript-format msgid "%s km" msgstr "%s კმ" #. Translators: This is a distance measured in meters #: src/utils.js:340 #, javascript-format msgid "%s m" msgstr "%s მ" #. Translators: This is a distance measured in miles #: src/utils.js:348 #, javascript-format msgid "%s mi" msgstr "%s მილ" #. Translators: This is a distance measured in feet #: src/utils.js:351 #, javascript-format msgid "%s ft" msgstr "%s ფტ" #: src/transitplugins/goMetro.js:61 msgid "This plugin doesn't support latest arrival" msgstr "ამ დამატებას ბოლოს მისვლის მხარდაჭერა არ გააჩნია" #: src/transitplugins/openTripPlanner.js:1237 #: src/transitplugins/openTripPlanner2.js:266 #, javascript-format msgid "Continue on %s" msgstr "%s-ზე გაგრძელება" #: src/transitplugins/openTripPlanner.js:1242 #: src/transitplugins/openTripPlanner2.js:270 #, javascript-format msgid "Turn left on %s" msgstr "%s-ზე მარცხნივ შეუხვიეთ" #: src/transitplugins/openTripPlanner.js:1244 #: src/transitplugins/openTripPlanner2.js:271 msgid "Turn left" msgstr "მარცხნივ შეუხვიეთ" #: src/transitplugins/openTripPlanner.js:1247 #: src/transitplugins/openTripPlanner2.js:275 #, javascript-format msgid "Turn slightly left on %s" msgstr "%s-ზე ოდნავ მარცხნივ შეუხვიეთ" #: src/transitplugins/openTripPlanner.js:1249 #: src/transitplugins/openTripPlanner2.js:276 msgid "Turn slightly left" msgstr "ოდნავ მარცხნივ შეუხვიეთ" #: src/transitplugins/openTripPlanner.js:1252 #: src/transitplugins/openTripPlanner2.js:280 #, javascript-format msgid "Turn sharp left on %s" msgstr "%s-ზე მკვეთრად შეუხვიეთ მარცხნივ" #: src/transitplugins/openTripPlanner.js:1254 #: src/transitplugins/openTripPlanner2.js:281 msgid "Turn sharp left" msgstr "მკვეთრად შეუხვიეთ მარცხნივ" #: src/transitplugins/openTripPlanner.js:1257 #: src/transitplugins/openTripPlanner2.js:284 #, javascript-format msgid "Turn right on %s" msgstr "%s-ზე მარჯვნივ შეუხვიეთ" #: src/transitplugins/openTripPlanner.js:1259 #: src/transitplugins/openTripPlanner2.js:285 msgid "Turn right" msgstr "მარჯვნივ შეუხვიეთ" #: src/transitplugins/openTripPlanner.js:1262 #: src/transitplugins/openTripPlanner2.js:289 #, javascript-format msgid "Turn slightly right on %s" msgstr "%s-ზე ოდნავ მარჯვნივ შეუხვიეთ" #: src/transitplugins/openTripPlanner.js:1264 #: src/transitplugins/openTripPlanner2.js:290 msgid "Turn slightly right" msgstr "ოდნავ მარჯვნივ შეუხვიეთ" #: src/transitplugins/openTripPlanner.js:1267 #: src/transitplugins/openTripPlanner2.js:294 #, javascript-format msgid "Turn sharp right on %s" msgstr "%s-ზე მკვეთრად შეუხვიეთ მარჯვნივ" #: src/transitplugins/openTripPlanner.js:1269 #: src/transitplugins/openTripPlanner2.js:295 msgid "Turn sharp right" msgstr "მკვეთრად შეუხვიეთ მარჯვნივ" #: src/transitplugins/openTripPlanner.js:1275 #: src/transitplugins/openTripPlanner2.js:302 #, javascript-format msgid "At the roundabout, take exit %s" msgstr "მოსახვევში შეუხვიეთ %s" #: src/transitplugins/openTripPlanner.js:1277 #: src/transitplugins/openTripPlanner2.js:305 #, javascript-format msgid "At the roundabout, take exit to %s" msgstr "მოსახვევში გადადით %s" #: src/transitplugins/openTripPlanner.js:1279 #: src/transitplugins/openTripPlanner2.js:307 msgid "Take the roundabout" msgstr "შედით მოსახვევში" #: src/transitplugins/openTripPlanner.js:1283 #: src/transitplugins/openTripPlanner2.js:315 #, javascript-format msgid "Take the elevator and get off at %s" msgstr "შედით ლიფტში და გამოდით %s-ზე" #: src/transitplugins/openTripPlanner.js:1285 #: src/transitplugins/openTripPlanner2.js:316 msgid "Take the elevator" msgstr "შედით ლიფტში" #: src/transitplugins/openTripPlanner.js:1289 #: src/transitplugins/openTripPlanner2.js:320 #, javascript-format msgid "Make a left u-turn onto %s" msgstr "მარცხნიდან შემობრუნდით %s-ზე" #: src/transitplugins/openTripPlanner.js:1291 #: src/transitplugins/openTripPlanner2.js:321 msgid "Make a left u-turn" msgstr "მარცხენა მხარეს შებრუნდთ" #: src/transitplugins/openTripPlanner.js:1294 #: src/transitplugins/openTripPlanner2.js:325 #, javascript-format msgid "Make a right u-turn onto %s" msgstr "მარჯვენა მხარეს შებრუნდით %s-ზე" #: src/transitplugins/openTripPlanner.js:1296 #: src/transitplugins/openTripPlanner2.js:326 msgid "Make a right u-turn" msgstr "მარჯვენა მხარეს შებრუნდით" #~ msgid "Sign in to edit maps" #~ msgstr "" #~ "რუკების ჩასწორებისთვის შედით" #~ msgid "Signed In" #~ msgstr "შეხვედით" #~ msgid "Sign up" #~ msgstr "რეგისტრაცია" #~ msgid "Filesystem is read only" #~ msgstr "ფაილური სისტემა მხოლოდ-კითხვადია" #~ msgid "You do not have permission to save there" #~ msgstr "აქ შენახვის წვდომა არ გაქვთ" #~ msgid "The directory does not exist" #~ msgstr "საქაღალდე არ არსებობს" #~ msgid "No filename specified" #~ msgstr "ფაილის სახელი მითითებული არაა" #~ msgid "Takeaway" #~ msgstr "წასაღები" #~ msgid "Go to current location" #~ msgstr "მიმდინარე მდებარეობაზე გადასვლა" #~ msgid "Choose map type" #~ msgstr "აირჩიეთ რუკის ტიპი" #~ msgid "Zoom in" #~ msgstr "გადიდება" #~ msgid "Drag to change order of the route" #~ msgstr "გზის მიმდევრობის შესაცვლელად გადაათრიეთ" #~ msgid "A map application for GNOME" #~ msgstr "GNOME-ის რუკის აპლიკაცია" #~ msgid "Failed to authorize access" #~ msgstr "ფენის გახსნის შეცდომა" #~ msgid "Try again" #~ msgstr "კიდევ სცადეთ" #~ msgid "Include route and markers" #~ msgstr "გზებისა და ნიშნების ჩათვლით" #~ msgid "Show Labels" #~ msgstr "ჭდეების ჩვენება" 070701000001CF000081A4000000000000000000000001664134090000DBA3000000000000000000000000000000000000001B00000000gnome-maps-46.11/po/kab.po# Kabyle translation for gnome-maps. # Copyright (C) 2024 gnome-maps's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-maps package. # FIRST AUTHOR , YEAR. # ButterflyOfFire , 2024. # msgid "" msgstr "" "Project-Id-Version: gnome-maps main\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2024-03-11 08:50+0000\n" "PO-Revision-Date: 2024-04-04 02:43+0200\n" "Last-Translator: sa\n" "Language-Team: Kabyle <>\n" "Language: kab\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-DL-Team: kab\n" "X-DL-Module: gnome-maps\n" "X-DL-Branch: main\n" "X-DL-Domain: po\n" "X-DL-State: Translating\n" "X-Generator: Poedit 3.4.2\n" #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.appdata.xml.in.in:6 data/org.gnome.Maps.desktop.in.in:4 #: data/ui/main-window.ui:27 src/application.js:64 src/mainWindow.js:147 #: src/mainWindow.js:647 msgid "Maps" msgstr "Tikarḍiwin" #: data/org.gnome.Maps.appdata.xml.in.in:7 msgid "Find places around the world" msgstr "Af idgan yellan deg umaḍal" #: data/org.gnome.Maps.appdata.xml.in.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "Tikarḍiwin ad ak-muddent anekcum uzrib ɣer meṛṛa tikarḍiwin n umaḍal. Ad ak-" "yall ad tafeḍ s zzerb adeg iɣef i tettnadiḍ s unadi n temdint neɣ abrid, neɣ " "adeg ideg yella umeddakkel wukkud ara temlileḍ." #: data/org.gnome.Maps.appdata.xml.in.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "Maps isseqdac taffa n yisefka n OpenStreetMap n tallalt, yettwagen sɣur " "imelyan n yimdanen deg umaḍal." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Maps.appdata.xml.in.in:458 src/mainWindow.js:644 msgid "The GNOME Project" msgstr "Asenfar n GNOME" #: data/org.gnome.Maps.desktop.in.in:5 msgid "A simple maps application" msgstr "Asnas n tkarḍiwin afessas" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in.in:14 msgid "Maps;" msgstr "Tikarḍiwin;" #: data/org.gnome.Maps.desktop.in.in:17 msgid "Allows your location to be shown on the map." msgstr "Yessarag adig-k i wakken ad d-iban ɣef tkarḍa." #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "adig aneggaru yettwaskanen" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "Umlan n wadig aneggaru i tmuqqleḍ." #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "zoom" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "Aswir n zoom" #: data/org.gnome.Maps.gschema.xml:21 msgid "rotation" msgstr "tuzzya" #: data/org.gnome.Maps.gschema.xml:22 msgid "Map rotation in radians" msgstr "Tuzzya n tkarḍa s radyan" #: data/org.gnome.Maps.gschema.xml:26 msgid "Map type" msgstr "Anaw n tkarḍa" #: data/org.gnome.Maps.gschema.xml:27 msgid "The type of map to display (street, aerial, etc.)" msgstr "Anaw n tkarḍa ara yettwaskanen (abrid, deg yigenni, tgr.)" #: data/org.gnome.Maps.gschema.xml:31 msgid "Window size" msgstr "Teɣzi n usfaylu" #: data/org.gnome.Maps.gschema.xml:32 msgid "Window size (width and height)." msgstr "Teɣzi n usfaylu (tehri d teɣzi)." #: data/org.gnome.Maps.gschema.xml:36 msgid "Window position" msgstr "Adeg n usfaylu" #: data/org.gnome.Maps.gschema.xml:37 msgid "Window position (X and Y)." msgstr "Adeg n usfaylu (X akked Y)" #: data/org.gnome.Maps.gschema.xml:41 msgid "Window maximized" msgstr "Asfaylu meqqren" #: data/org.gnome.Maps.gschema.xml:42 msgid "Window maximization state" msgstr "Addad n usemɣer n usfaylu" #: data/org.gnome.Maps.gschema.xml:46 msgid "Maximum number of search results" msgstr "Amḍan afellay n yigmaḍ n unadi" #: data/org.gnome.Maps.gschema.xml:47 msgid "Maximum number of search results from geocode search." msgstr "Amḍan afellay n yigmaḍ n unadi seg unadi n tengalt tarakalt." #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent places to store" msgstr "Amḍan n tallunin n melmi kan i uḥraz" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited places to store." msgstr "Amḍan n tallunin n uḥraz yemmeẓren melmi kan." #: data/org.gnome.Maps.gschema.xml:56 msgid "Number of recent routes to store" msgstr "Amḍan n yiberdan n melmi kan i uḥraz" #: data/org.gnome.Maps.gschema.xml:57 msgid "Number of recently visited routes to store." msgstr "Amḍan n yiberdan n uḥraz yemmeẓren melmi kan." #: data/org.gnome.Maps.gschema.xml:61 msgid "OpenStreetMap username or email address" msgstr "Isem n useqdac neɣ tansa n yimayl ɣef OpenStreetMap" #: data/org.gnome.Maps.gschema.xml:62 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "Yemmal ma yella aseqdac yeqqen ad yeẓreg isefka n OpenStreetMap." #: data/org.gnome.Maps.gschema.xml:66 msgid "Last used transportation type for routing" msgstr "Anaw aneggaru n ttawil n usiweḍ i teṭṭfeḍ" #: data/org.gnome.Maps.gschema.xml:70 msgid "Show scale" msgstr "Sken taskala" #: data/org.gnome.Maps.gschema.xml:71 msgid "Whether to show the scale." msgstr "Ma ilaq ad d-yettwaskan taskala." #: data/ui/context-menu.ui:6 msgid "Route from Here" msgstr "Abrid syagi" #: data/ui/context-menu.ui:10 msgid "Add Intermediate Destination" msgstr "Rnu adig alemmas" #: data/ui/context-menu.ui:14 msgid "Route to Here" msgstr "Abrid ɣer dagi" #: data/ui/context-menu.ui:20 msgid "What's Here?" msgstr "Acu i yellan dagi?" #: data/ui/context-menu.ui:24 msgid "Copy Location" msgstr "Nɣel adig" #: data/ui/context-menu.ui:28 msgid "Add to OpenStreetMap…" msgstr "Rnu ɣer OpenStreetMap…" #: data/ui/export-view-dialog.ui:7 msgid "Export view" msgstr "Sifeḍ taskant" #: data/ui/export-view-dialog.ui:16 data/ui/send-to-dialog.ui:10 #: data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "Sefsex (_C)" #: data/ui/export-view-dialog.ui:26 msgid "_Export" msgstr "_Sifeḍ" #. Translators: This is a tooltip #: data/ui/favorite-list-row.ui:72 msgid "Remove Favorite" msgstr "Kkes asmenyif" #: data/ui/favorites-popover.ui:11 msgid "No Favorites" msgstr "Ulac imenyafen" #: data/ui/favorites-popover.ui:12 msgid "Add places to your favorites to get them listed here" msgstr "Rnu idgan ɣer yismenyifen-ik i wakken ad d-ttwabdaren dagi" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:11 src/geoclue.js:106 src/placeBar.js:91 msgid "Current Location" msgstr "Adig amiran" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:19 msgid "Layers" msgstr "Tissiyin" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:11 msgid "Print Route" msgstr "Siggez abrid" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:21 msgid "Favorites" msgstr "Imenyafen" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:30 msgid "Route Planner" msgstr "Aɣawas n ubrid" #: data/ui/help-overlay.ui:12 msgctxt "shortcut window" msgid "General" msgstr "Amatu" #: data/ui/help-overlay.ui:15 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "Sken inegzumen" #: data/ui/help-overlay.ui:21 msgctxt "shortcut window" msgid "Search" msgstr "Nadi" #: data/ui/help-overlay.ui:27 msgctxt "shortcut window" msgid "Explore points-of-interest" msgstr "Snirem tinqiḍin timeɣladin" #: data/ui/help-overlay.ui:33 msgctxt "shortcut window" msgid "Show last search results" msgstr "Sken igmaḍ n unadi" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "Rmed/Sens ameɣwas n ubrid" #: data/ui/help-overlay.ui:45 msgctxt "shortcut window" msgid "Print route" msgstr "Siggez abrid" #: data/ui/help-overlay.ui:51 msgctxt "shortcut window" msgid "Quit" msgstr "Ffeɣ" #: data/ui/help-overlay.ui:57 msgctxt "shortcut window" msgid "Open main menu" msgstr "Ldi umuɣ agejdan" #: data/ui/help-overlay.ui:65 msgctxt "shortcut window" msgid "Map View" msgstr "Taskant n tkarḍa" #: data/ui/help-overlay.ui:68 msgctxt "shortcut window" msgid "Zoom in" msgstr "Semɣeṛ" #: data/ui/help-overlay.ui:74 msgctxt "shortcut window" msgid "Zoom out" msgstr "Semẓi" #: data/ui/help-overlay.ui:80 msgctxt "shortcut window" msgid "Rotate clockwise" msgstr "Zzi di tnila n tsegnatin n temrilt" #: data/ui/help-overlay.ui:86 msgctxt "shortcut window" msgid "Rotate counter-clockwise" msgstr "Zzi di tnila tanemgalt n tsegnatin n temrilt" #: data/ui/help-overlay.ui:92 msgctxt "shortcut window" msgid "Reset rotation" msgstr "Wennez tuzzya" #: data/ui/help-overlay.ui:98 msgctxt "shortcut window" msgid "Toggle scale" msgstr "Rmed/Sens taskala" #: data/ui/help-overlay.ui:104 msgctxt "shortcut window" msgid "Go to current location" msgstr "Ddu ɣer wadig amiran" #: data/ui/help-overlay.ui:114 msgctxt "shortcut window" msgid "Switch to street view" msgstr "Uɣal ɣer teskant n ubrid" #: data/ui/help-overlay.ui:121 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "Uɣal ɣer uskan azwuyan" #: data/ui/help-overlay.ui:127 msgctxt "shortcut window" msgid "Open shape layer" msgstr "Ldi tissi n talɣa" #: data/ui/layers-popover.ui:7 msgid "Show Scale" msgstr "Sken taskala" #: data/ui/layers-popover.ui:16 msgid "Enable Experimental Map" msgstr "Rmed takarḍa tarmitant" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:21 msgid "Open Shape Layer…" msgstr "Ldi tissi n talɣa…" #: data/ui/main-window.ui:8 msgid "Set up OpenStreetMap Account…" msgstr "Sbadu amiḍan OpenStreetMap…" #: data/ui/main-window.ui:12 msgid "Export as Image…" msgstr "Sifeḍ am tugna…" #: data/ui/main-window.ui:17 msgid "_Keyboard Shortcuts" msgstr "Inegzumen n unasiw (_K)" #: data/ui/main-window.ui:22 msgid "About Maps" msgstr "Γef tkarḍiwin" #: data/ui/main-window.ui:48 msgid "Main Menu" msgstr "Umuɣ agejdan" #: data/ui/osm-account-dialog.ui:5 msgid "OpenStreetMap Account" msgstr "Amiḍan n OpenStreetMap" #: data/ui/osm-account-dialog.ui:31 msgid "Sign In To Edit Maps" msgstr "Qqen i uẓrag n tkarḍiwin" #: data/ui/osm-account-dialog.ui:32 msgid "Help to improve the map, using an OpenStreetMap account." msgstr "All i usnerni n tkarḍa, s useqdec n umiḍan OpenStreetMap." #: data/ui/osm-account-dialog.ui:36 msgid "Sign In" msgstr "Qqen" #: data/ui/osm-account-dialog.ui:59 msgid "Verification" msgstr "Asenqed" #: data/ui/osm-account-dialog.ui:60 msgid "" "Copy the verification code shown when authorizing access in the browser." msgstr "Nɣel tangalt n usenqed yeskanen mi ara tsirgeḍ anekcum deg yiminig." #: data/ui/osm-account-dialog.ui:69 msgid "Verification Code" msgstr "Tangalt n usenqed" #: data/ui/osm-account-dialog.ui:75 msgid "Verify" msgstr "Senqed" #: data/ui/osm-account-dialog.ui:110 msgid "Signed In" msgstr "Qqen" #: data/ui/osm-account-dialog.ui:111 msgid "Your OpenStreetMap account is active." msgstr "Amiḍan-ik OpenStreetMap yermed." #: data/ui/osm-account-dialog.ui:129 msgid "Sign Out" msgstr "Ffeɣ" #: data/ui/osm-edit-address.ui:11 msgid "Street" msgstr "Abrid" #: data/ui/osm-edit-address.ui:22 msgid "House number" msgstr "Uṭṭun n uxxam" #: data/ui/osm-edit-address.ui:33 msgid "Postal code" msgstr "Tangalt n lbuṣṭa" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:44 msgid "City" msgstr "Tiɣremt" #: data/ui/osm-edit-dialog.ui:8 msgctxt "dialog title" msgid "Edit on OpenStreetMap" msgstr "Ẓreg ɣef OpenStreetMap" #: data/ui/osm-edit-dialog.ui:57 msgid "Type" msgstr "Anaw" #: data/ui/osm-edit-dialog.ui:79 msgid "None" msgstr "Ula yiwen" #: data/ui/osm-edit-dialog.ui:108 msgid "Add Field" msgstr "Rnu urti" #: data/ui/osm-edit-dialog.ui:130 msgid "Comment" msgstr "Awennit" #: data/ui/osm-edit-dialog.ui:158 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "Isenfal n tkarḍa ad d-banen ɣef meṛṛa tikarḍiwin i yesseqdacen\n" "isefka n OpenStreetMap." #: data/ui/osm-edit-dialog.ui:186 msgid "Recently Used" msgstr "Yettwaseqdec melmi kan" #: data/ui/osm-edit-dialog.ui:225 src/mapView.js:671 msgid "Cancel" msgstr "Sefsex" #: data/ui/osm-edit-dialog.ui:238 src/osmEditDialog.js:531 msgid "Next" msgstr "Uḍfir" #: data/ui/osm-edit-wikipedia.ui:8 msgid "Article" msgstr "Amagrad" #: data/ui/osm-edit-wikipedia.ui:21 msgid "Wikidata tag" msgstr "Tabzimt n Wikidata" #: data/ui/osm-edit-wikipedia.ui:32 msgid "Load Wikidata tag for article" msgstr "Sali tabzimt n Wikidata i umagrad" #: data/ui/place-popover.ui:23 src/searchBar.js:55 msgid "Explore Nearby Places" msgstr "Snirem idgan iqerben" #: data/ui/place-popover.ui:82 src/application.js:277 msgid "No results found" msgstr "Ulac igmaḍ yettwafen" #: data/ui/place-popover.ui:92 src/application.js:255 msgid "An error has occurred" msgstr "Teḍra-d tuccḍa" #. Translators: This is a tooltip #: data/ui/route-entry.ui:12 msgid "Change Route Order" msgstr "Beddel amizwer n ubrid-a" #: data/ui/send-to-dialog.ui:7 msgid "Open Location" msgstr "Ldi adig" #: data/ui/send-to-dialog.ui:64 msgid "Copy" msgstr "Nɣel" #: data/ui/send-to-dialog.ui:70 msgid "Send To…" msgstr "Azen i…" #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:62 msgid "Open Shape Layer" msgstr "Ldi tissi n talɣa" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "Ldi (_O)" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:32 msgid "Toggle visible" msgstr "Rmed/Sens abani" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:44 msgid "Remove Shape Layer" msgstr "Kkes tissi n talɣa" #: data/ui/sidebar.ui:207 msgid "Route search by GraphHopper" msgstr "Anadi n ubrid s GrapgHopper" #: data/ui/sidebar.ui:272 msgid "" "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of " "transportation,\n" "e.g. a national provider might not include airlines, and a local provider " "could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" "Iberdan n ttawilat n usiweḍ ttwamudden sɣur umeẓlu\n" "n wis kraḍ.\n" "GNOME ur yezmir ara ad yeḍmen iberdan d yisragen i d-yettwaskanen.\n" "Ẓer belli kra n yisaǧǧawen ur ḍemmnen ara akk timudam n usiweḍ i yellan,\n" "amedya: asaǧǧaw naɣelnaw yemer ur iseεεu ara asiweḍ s tmesriffgin, maca " "yezmer ad t-yesεu usaǧǧaw adigan\n" "ur tessawḍeḍ ara lasaṭat tidiganin.\n" "Ismawen d tecraḍ yettwaskanen ilaq ad ttenuḥsabent d ticraḍ yettwajerrden mi " "ara d-yawi ad ttwasnasent." #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:98 msgid "Hide intermediate stops and information" msgstr "Ffer tiɣtas akked telɣut tilemmasin" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:156 msgid "Show intermediate stops and information" msgstr "Sken tiɣtas akked telɣut tilemmasin" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:16 msgid "Leave Now" msgstr "Eǧǧ tura" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:17 msgid "Leave By" msgstr "Eǧǧ s" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:18 msgid "Arrive By" msgstr "Yewweḍ s" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:85 msgid "Show" msgstr "Sken" #: data/ui/transit-options-panel.ui:95 msgid "Buses" msgstr "Inesmudda" #: data/ui/transit-options-panel.ui:101 msgid "Trams" msgstr "Tram" #: data/ui/transit-options-panel.ui:107 msgid "Trains" msgstr "Lasatat" #: data/ui/transit-options-panel.ui:113 msgid "Subway" msgstr "Amitru" #: data/ui/transit-options-panel.ui:119 msgid "Ferries" msgstr "Tizegrawin" #: data/ui/transit-options-panel.ui:125 msgid "Airplanes" msgstr "Timesriffgin" #. Translators: This is a tooltip #: data/ui/place-bar.ui:33 data/ui/place-buttons.ui:27 msgid "Share Location" msgstr "Bḍu adig" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:11 msgid "Add to new route" msgstr "Rnu abrid amaynut" #. Translators: This is the button to find a route to a place #: data/ui/place-buttons.ui:15 msgid "Directions" msgstr "Tinilwa" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:36 msgid "Mark as Favorite" msgstr "Creḍ d asmenyif" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:44 msgid "Edit on OpenStreetMap" msgstr "Ẓreg deg OpenStreetMap" #. Translators: This is a tooltip #: data/ui/place-view.ui:52 msgid "Share location" msgstr "Bḍu adig" #: data/ui/poi-category-goback-row.ui:22 msgid "Back to Main Categories" msgstr "Uɣal ɣer taggayin tigejdanin" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:19 msgid "Reset Rotation" msgstr "Wennez tuzzya" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:32 msgid "Zoom Out" msgstr "Semɣer" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:43 src/mapView.js:1246 msgid "Zoom In" msgstr "Semẓi" #: lib/maps-file-data-source.c:262 lib/maps-file-data-source.c:338 #: lib/maps-file-data-source.c:418 msgid "Failed to find tile structure in directory" msgstr "Tecceḍ tifin n tɣessa n tbursa deg uakaram" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "Yecceḍ uslaḍ n yisemli XML" #: lib/maps-osm.c:250 lib/maps-osm.c:403 msgid "Missing required attributes" msgstr "Xuṣṣen imyerren yettwasran" #: lib/maps-osm.c:451 lib/maps-osm.c:494 msgid "Could not find OSM element" msgstr "Yegguma ad yaf aferdis OSM" #: lib/maps-osm.c:508 msgid "Could not find user element" msgstr "YEgguma ad yaf aferdis n useqdac" #: src/application.js:78 msgid "A path to a local tiles directory structure" msgstr "Abrid n tɣessa n ukaram n tbursatin adigan" #: src/application.js:84 msgid "Tile size for local tiles directory" msgstr "Teɣzi n tbursa i ukaram n tbursatin adigan" #: src/application.js:88 msgid "Show the version of the program" msgstr "Sken lqem n wahil" #: src/application.js:94 msgid "Search for places" msgstr "Nadi ɣef tallunin" #: src/application.js:105 src/application.js:106 msgid "[FILE…|URI]" msgstr "[AFAYLU…|URI]" #: src/application.js:284 #, javascript-format msgid "Invalid maps: URI: %s" msgstr "Tikarḍiwin tirimeɣta: URI: %s" #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:75 #, javascript-format msgid "Maps at %f, %f.png" msgstr "Tikarḍiwin deg %f, %f.png" #: src/exportViewDialog.js:174 msgid "Unable to export view" msgstr "D awezɣi usifeḍ n teskant" #: src/favoriteListRow.js:42 msgid "Favorite removed" msgstr "Asmenyif yettwakkes" #: src/favoriteListRow.js:43 msgid "Undo" msgstr "Err-d" #: src/geoJSONSource.js:73 msgid "invalid coordinate" msgstr "amsideg arameɣtu" #: src/geoJSONSource.js:126 src/geoJSONSource.js:166 src/geoJSONSource.js:181 msgid "parse error" msgstr "tuccḍa deg tesleḍt" #: src/geoJSONSource.js:160 msgid "unknown geometry" msgstr "tanzeggit tarussint" #: src/graphHopper.js:101 src/transitPlan.js:175 msgid "Route request failed." msgstr "Assuter n ubrid yecceḍ." #: src/graphHopper.js:108 src/transitPlan.js:167 msgid "No route found." msgstr "Abrid ur yettwaf ara." #: src/graphHopper.js:195 src/transitplugins/openTripPlanner.js:1163 msgid "Start!" msgstr "Bdu!" #: src/mainWindow.js:59 msgid "All Layer Files" msgstr "Akk ifuyla n tissi" #: src/mainWindow.js:522 msgid "Failed to connect to location service" msgstr "Tecceḍ tuqqna ɣer umeẓlu n uideg" #: src/mainWindow.js:527 msgid "Turn on location services" msgstr "Rmed imeẓla n usideg" #: src/mainWindow.js:528 msgid "Location Settings" msgstr "Iɣewwaren n usideg" #: src/mainWindow.js:645 msgid "translator-credits" msgstr "amsuqqel-isemdan" #: src/mainWindow.js:649 msgid "Copyright © 2011 – 2023 Red Hat, Inc. and The GNOME Maps authors" msgstr "" "Izerfan © 2011 – 2023 Red Hat, Inc. akked imeskaren n tkarḍiwin n GNOME" #: src/mainWindow.js:665 #, javascript-format msgid "Map data by %s and contributors" msgstr "Isefka n tkarḍiwin s %s akked yimttekkiyen" #: src/mainWindow.js:666 msgid "Map Data Provider" msgstr "Asaǧǧaw n yisefka n tkarḍiwin" #: src/mainWindow.js:678 msgid "Map Tile Provider" msgstr "Asaǧǧaw n tbursatin n tkarḍiwin" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:686 #, javascript-format msgid "Map tiles provided by %s" msgstr "Tibursatin n tkarḍiwin yettwamudden s %s" #: src/mainWindow.js:716 msgid "Search Provider" msgstr "Nadi asaǧǧaw" #: src/mainWindow.js:719 #, javascript-format msgid "Search provided by %s using %s" msgstr "Anadi yettwamudd s %s s useqdec n %s" #: src/mapView.js:645 src/mapView.js:710 msgid "Failed to open layer" msgstr "Yecceḍ ulday n tissi" #: src/mapView.js:664 msgid "Do you want to continue?" msgstr "Tebɣiḍ ad tkemmleḍ?" #: src/mapView.js:665 #, javascript-format msgid "" "You are about to open files with a total size of %s MB. This could take some " "time to load" msgstr "" "Tebɣiḍ ad teldiḍ ifuyla s teɣzi tasemdayt n %sMAṬ. Ayagi ad yeṭṭef cwiya " "aked i usali" #: src/mapView.js:672 src/transitplugins/openTripPlanner.js:1239 #: src/transitplugins/openTripPlanner2.js:267 msgid "Continue" msgstr "Kemmel" #: src/mapView.js:704 msgid "File type is not supported" msgstr "Anaw n ufaylu ur yettusefrak ara" #: src/mapView.js:741 msgid "Failed to open GeoURI" msgstr "Yecceḍ ulday n GEOURI" #: src/mapView.js:1205 msgid "Nothing found here!" msgstr "Ulac acu i yettwafen dagi!" #: src/mapView.js:1245 msgid "Zoom in to add location" msgstr "Semɣer i wakken ad ternuḍ adig" #: src/mapView.js:1266 msgid "Location was added in OpenStreetMap" msgstr "Adig yettwarna deg OpenStreetMap" #. switch back to the sign-in view, and show a toast indicating #. that verification failed #: src/osmAccountDialog.js:134 msgid "The verification code didn’t match, please try again." msgstr "Tangalt n usenqed ur temṣada ara, ttxil-k εreḍ tikkelt niḍen." #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:335 msgid "Incorrect user name or password" msgstr "Isem n useqdac neɣ awal n uεeddi d arameɣtu" #: src/osmConnection.js:337 msgid "Success" msgstr "Yedda" #: src/osmConnection.js:339 msgid "Bad request" msgstr "Yir tuttra" #: src/osmConnection.js:341 msgid "Object not found" msgstr "Ur tettwaf ara tɣawsa" #: src/osmConnection.js:343 msgid "Conflict, someone else has just modified the object" msgstr "Amennuɣ, yella win ibeddlen taɣawsa" #: src/osmConnection.js:345 msgid "Object has been deleted" msgstr "Taɣawsa tettwakkes" #: src/osmConnection.js:347 msgid "Way or relation refers to non-existing children" msgstr "Abrid neɣ assaɣ yettuɣal ɣer yigerdan ulac-iten" #: src/osmEditDialog.js:106 msgid "Name" msgstr "Isem" #: src/osmEditDialog.js:109 msgid "The official name. This is typically what appears on signs." msgstr "Isem unṣib. D wagi swaswa ara d-ibanen deg tuqqna." #: src/osmEditDialog.js:112 msgid "Address" msgstr "Tansa" #: src/osmEditDialog.js:120 src/placeView.js:275 msgid "Website" msgstr "Asmel Web" #: src/osmEditDialog.js:124 msgid "This is not a valid URL. Make sure to include http:// or https://." msgstr "Wagi mačči d URL ameɣtu. Ḍmen ad ternuḍ http:// or https://." #: src/osmEditDialog.js:125 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" "Asmel unṣib. Ԑreḍ ad tesqedceḍ talɣa taddayt n URL i.e. http://example.com " "deg wadeg n http://example.com/index.html." #: src/osmEditDialog.js:130 msgid "Phone" msgstr "Tiliɣri" #: src/osmEditDialog.js:134 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" "Uṭṭun n tiliɣri. Seqdec amasal agreɣlan, beddu s a + sign. Ḥader seg yisuḍaf " "idiganen, aṭas aṭas wid yerzan uṭṭunen n tiliɣri usligen." #: src/osmEditDialog.js:139 src/placeView.js:308 msgid "Email" msgstr "Imayl" #: src/osmEditDialog.js:144 msgid "" "This is not a valid email address. Make sure to not include the mailto: " "protocol prefix." msgstr "" "Tagi mačči d tansa n yimayl tameɣtut. Ḍmen ur tseddaḍ ara azwir n uneggaf " "mailto." #: src/osmEditDialog.js:145 msgid "" "Contact email address for inquiries. Add only email addresses that are " "intended to be publicly used." msgstr "" "Tansa n yimayl n unermis i al tuttra ɣef kra n talɣut. Rnu kan tansiwin n " "yimayl yettwagen i useqdec azayaz." #. Translators: This is the text for the "Wikipedia" link at the end #. of summaries #: src/osmEditDialog.js:149 src/placeView.js:727 msgid "Wikipedia" msgstr "Wikipedia" #: src/osmEditDialog.js:156 src/placeView.js:399 msgid "Opening hours" msgstr "Alday n yisragen" #: src/osmEditDialog.js:161 msgid "See the link in the label for help on format." msgstr "Wali aseɣwen deg tebzimt i tallalt ɣef umasal." #. TODO: this is a bit of a work-around to re-interpret the population, #. * stored as a string into an integer to convert back to a locale- #. * formatted string. Ideally it should be kept as an integer value #. * in the Place class. But this will also need to be handled by the #. * PlaceStore, possible in a backwards-compatible way #. #: src/osmEditDialog.js:164 src/placeView.js:509 msgid "Population" msgstr "Imdanen" #: src/osmEditDialog.js:169 src/placeView.js:538 msgid "Altitude" msgstr "Tiddi" #: src/osmEditDialog.js:172 msgid "Elevation (height above sea level) of a point in meters." msgstr "Tiddi (tiddi seg yiri yilel d asawen) seg kra n tenqiḍt s yimitriten." #: src/osmEditDialog.js:175 msgid "Wheelchair access" msgstr "Anekcum i at ukersi n yimeεdar" #: src/osmEditDialog.js:178 src/osmEditDialog.js:187 src/osmEditDialog.js:198 #: src/osmEditDialog.js:233 msgid "Yes" msgstr "Ih" #: src/osmEditDialog.js:179 src/osmEditDialog.js:188 src/osmEditDialog.js:199 #: src/osmEditDialog.js:234 msgid "No" msgstr "Uhu" #: src/osmEditDialog.js:180 msgid "Limited" msgstr "Yesεa tilas" #: src/osmEditDialog.js:181 msgid "Designated" msgstr "Yettufeṣṣel" #: src/osmEditDialog.js:184 msgid "Internet access" msgstr "Anekcum ɣer internet" #: src/osmEditDialog.js:189 msgid "Wi-Fi" msgstr "Wi-Fi" #: src/osmEditDialog.js:190 msgid "Wired" msgstr "S ugatu" #: src/osmEditDialog.js:191 msgid "Terminal" msgstr "Tadiwent" #: src/osmEditDialog.js:192 msgid "Service" msgstr "Ameẓlu" #: src/osmEditDialog.js:195 msgid "Takeout" msgstr "Ffeɣ" #: src/osmEditDialog.js:200 msgid "Only" msgstr "Daya" #: src/osmEditDialog.js:203 msgid "Religion" msgstr "Tadeyyanit" #: src/osmEditDialog.js:206 src/translations.js:286 msgid "Animism" msgstr "Taruḥanit" #: src/osmEditDialog.js:207 msgid "Bahá’í" msgstr "Bahá’í" #: src/osmEditDialog.js:208 src/translations.js:288 msgid "Buddhism" msgstr "Tabudit" #: src/osmEditDialog.js:209 src/translations.js:289 msgid "Caodaism" msgstr "Takawdiyat" #: src/osmEditDialog.js:210 src/translations.js:290 msgid "Christianity" msgstr "Tamasiḥit" #: src/osmEditDialog.js:211 src/translations.js:291 msgid "Confucianism" msgstr "Takunfucyusit" #: src/osmEditDialog.js:212 src/translations.js:292 msgid "Hinduism" msgstr "Tahindit" #: src/osmEditDialog.js:213 src/translations.js:293 msgid "Jainism" msgstr "Tayanyit" #: src/osmEditDialog.js:214 src/translations.js:294 msgid "Judaism" msgstr "Tayahudit" #: src/osmEditDialog.js:215 src/translations.js:295 msgid "Islam" msgstr "Tineslemt" #: src/osmEditDialog.js:216 src/translations.js:296 msgid "Multiple Religions" msgstr "Aṭas n teddeyanin" #: src/osmEditDialog.js:217 src/translations.js:297 msgid "Paganism" msgstr "Tawatanit" #: src/osmEditDialog.js:218 src/translations.js:298 msgid "Pastafarianism" msgstr "Tabafariyanit" #: src/osmEditDialog.js:219 src/translations.js:299 msgid "Scientology" msgstr "Tasyantuluǧit" #: src/osmEditDialog.js:220 src/translations.js:300 msgid "Shinto" msgstr "Cintu" #: src/osmEditDialog.js:221 src/translations.js:301 msgid "Sikhism" msgstr "Tasixit" #: src/osmEditDialog.js:222 src/translations.js:302 msgid "Spiritualism" msgstr "Taruḥanit" #: src/osmEditDialog.js:223 src/translations.js:303 msgid "Taoism" msgstr "Taṭawyit" #: src/osmEditDialog.js:224 src/translations.js:304 msgid "Unitarian Universalism" msgstr "Aɣzur abuyan" #: src/osmEditDialog.js:225 src/translations.js:305 msgid "Voodoo" msgstr "Tabudut" #: src/osmEditDialog.js:226 src/translations.js:306 msgid "Yazidism" msgstr "Tayizidit" #: src/osmEditDialog.js:227 src/translations.js:307 msgid "Zoroastrianism" msgstr "Tazradictit" #: src/osmEditDialog.js:230 src/poiCategories.js:176 msgid "Toilets" msgstr "Abduz" #: src/osmEditDialog.js:237 msgid "Note" msgstr "Tazmilt" #: src/osmEditDialog.js:240 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" "Talɣut i yettusqedcen i uselɣu n wid yesseqdacen tikarḍiwin ɣef yir telɣut " "ɣef kra n uferdis, nniya n umeskar lawan n usnulfu, neɣ ɣef yiwellihen i " "usnerni sya ɣer sdat." #: src/osmEditDialog.js:339 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "Rnu ɣer OpenStreetMap" #: src/osmEditDialog.js:393 msgid "Select Type" msgstr "Fren anaw" #: src/osmEditDialog.js:515 msgid "Done" msgstr "Immed" #: src/osmEditDialog.js:818 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "" "Amasal yettwaseqdacen ilaq ad tili deg-s tengalt n tutlayt d uzwel n umagrad " "am “en:Article title”." #: src/osmEditDialog.js:824 msgid "Use the reload button to load the Wikidata tag for the selected article" msgstr "" "Seqdec taqeffalt n wallus n usali i usali n tebzimt Wikidata i umagrad i " "yettwafernen" #: src/osmEditDialog.js:832 msgid "Couldn't find Wikidata tag for article" msgstr "Yegguma ad d-yaf tabzimt Wikidata i umagrad" #: src/photonUtils.js:118 msgid "Unnamed place" msgstr "Adeg war isem" #: src/placeEntry.js:274 msgid "Failed to parse Geo URI" msgstr "Yecceḍ uslaḍ n URI arakal" #: src/placeEntry.js:286 msgid "Failed to parse Maps URI" msgstr "Yecceḍ uslaḍ n URI n tkarḍiwin" #. 300 ft (300 * 12 * 0.0254 m) #. #. * Translators: This a format string for showing a distance to a place #. * is lower than a "quite short" distance. #. * The "less than" symbol can be substituded with an appropriate one, if #. * needed (e.g. using the correct direction, or alternative symbol). #. * The %s should be kept, and is substituted with a label representing the #. * short distance. The \u2009 (thin space) could also be adjusted if needed #: src/placeListRow.js:46 #, javascript-format msgctxt "short distance format string" msgid "< %s" msgstr "< %s" #: src/placeView.js:263 msgid "Coordinates" msgstr "Tisidag" #: src/placeView.js:267 msgid "Accuracy" msgstr "Tiseddi" #. Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) #: src/placeView.js:270 #, javascript-format msgid "Accuracy: %s" msgstr "Tiseddi: %s" #. since the phone numbers are typically always rendered #. * left-to-right, insert an explicit LRM char to avoid issues #. * with phone numbers in international format starting with a + #. * which is considered a "weak" character to determine Unicode #. * text direction #. #: src/placeView.js:289 msgid "Phone number" msgstr "Uṭṭun n tilifun" #. If a reference to a named floor (named or symbolic) exists #. * refer to it directly. #. #. Translators: #. * This is a reference to named building floor, using a label #. * or a code, as "displayed in the elevator" #. #: src/placeView.js:323 src/placeView.js:362 msgid "Floor" msgstr "Unnig" #: src/placeView.js:325 #, javascript-format msgid "Floor %s" msgstr "Unnig %s" #: src/placeView.js:337 msgid "At ground level" msgstr "Swaswa akked wagens" #. Translators: #. * This is a reference to a number of floors above #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:346 #, javascript-format msgid "%s floor above ground level" msgid_plural "%s floors above ground level" msgstr[0] "%s wunnig nnig wagens" msgstr[1] "%s wunnigen nnig wagens" #. Translators: #. * This is a reference to a number of floors below #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:357 #, javascript-format msgid "%s floor below ground level" msgid_plural "%s floors below ground level" msgstr[0] "%s wunnig ddaw wagens" msgstr[1] "%s wunnigen ddaw wagens" #. Translators: #. * The establishment offers customers to purchase meals #. * (or similar) to be consumed elsewhere #. #: src/placeView.js:375 msgid "Offers takeout" msgstr "Yettmuddu tagella fessusen" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed on-premise. #. #: src/placeView.js:383 msgid "Does not offer takeout" msgstr "Ulac tagella ar beṛṛa" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed elsewhere. E.g. #. * there is no seating on-premise for eating/drinking #. #: src/placeView.js:392 msgid "Only offers takeout" msgstr "Yettmuddu tagella kan ar beṛṛa" #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/placeView.js:409 msgid "Public internet access" msgstr "Anekcum azayz ɣer internet" #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/placeView.js:418 msgid "No internet access" msgstr "Ulac anekcum ɣer internet" #. Translators: #. * This means a WLAN Hotspot, also known as wireless, wifi or Wi-Fi. #. #: src/placeView.js:426 msgid "Public Wi-Fi" msgstr "Wi-Fi azayaz" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/placeView.js:434 msgid "Wired internet access" msgstr "Anekcum ɣer internet agatwan" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/placeView.js:442 msgid "Computers available for use" msgstr "Llan iselkimen i useqdec" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/placeView.js:450 msgid "Internet assistance available" msgstr "Tallalt internet tella" #: src/placeView.js:456 msgid "No toilets available" msgstr "Ulac abduz" #: src/placeView.js:459 msgid "Toilets available" msgstr "Yella ubduz" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #: src/placeView.js:468 msgid "Wheelchair accessible" msgstr "D anekcum i at ukersi n yimeεdar" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/placeView.js:478 msgid "Limited wheelchair accessibility" msgstr "Anekcum i at ukersi yesεa tilas" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #: src/placeView.js:487 msgid "Not wheelchair accessible" msgstr "Ulac anekcum i at ukersi n yimeεdar" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/placeView.js:497 msgid "Designated for wheelchair users" msgstr "Yettwag i at ukersi n yimeεdar" #. * #. * Translators: this is a label indicating an altitude below #. * sea level, where the %s placeholder is the altitude relative #. * to mean sea level in the "negative direction" #. #: src/placeView.js:528 #, javascript-format msgid "%s below sea level" msgstr "%s ddaw n yiri n yilel" #. * #. * Translators: this indicates a place is located at (or very #. * close to) mean sea level #. #: src/placeView.js:535 msgid "At sea level" msgstr "Γef yiri n yilel" #: src/placeView.js:544 msgid "Religion:" msgstr "Tadeyyanit:" #: src/place.js:576 msgid "Place not found in OpenStreetMap" msgstr "Adeg ur yettwaf ara deg OpenStreetMap" #: src/place.js:583 msgid "Coordinates in URL are not valid" msgstr "Imsidgan deg URL d irimeɣta" #: src/place.js:592 msgid "URL is not supported" msgstr "URL ur yettwasefrek ara" #: src/poiCategories.js:132 msgid "Amenities" msgstr "Isgerziyen" #: src/poiCategories.js:135 msgid "ATMs" msgstr "ATMs" #: src/poiCategories.js:141 msgid "Post Boxes" msgstr "Tinakatin n lbusṭa" #: src/poiCategories.js:147 msgid "Post Offices" msgstr "Lbiruwat n lbusṭa" #: src/poiCategories.js:153 msgid "Police" msgstr "Iɣallen n laman" #: src/poiCategories.js:159 msgid "Libraries" msgstr "Timsedlisin" #: src/poiCategories.js:165 msgid "Pharmacies" msgstr "Timsafarin" #: src/poiCategories.js:171 msgid "Recycling" msgstr "Aεiwed n useqdec" #: src/poiCategories.js:182 msgid "Wheelchair-accessible Toilets" msgstr "Abduz i at ukersi n yimeεdar" #: src/poiCategories.js:188 msgid "Baggage Lockers" msgstr "Tanaḍin n yifecka" #: src/poiCategories.js:196 msgid "Eating & Drinking" msgstr "Učči & Tissit" #: src/poiCategories.js:200 msgid "Restaurants" msgstr "Timesgelliwin" #: src/poiCategories.js:205 msgid "Fast Food" msgstr "Tagella" #: src/poiCategories.js:210 msgid "Food Courts" msgstr "Tizeɣwa n wučči" #: src/poiCategories.js:215 msgid "Pubs" msgstr "Ttbernat" #: src/poiCategories.js:221 msgid "Bars" msgstr "Ttbernat" #: src/poiCategories.js:226 msgid "Cafes" msgstr "Lqahwa" #: src/poiCategories.js:231 msgid "Ice Cream" msgstr "TiseƔƔaḍin" #: src/poiCategories.js:236 msgid "Food, Snacks, and Beverage Machines" msgstr "Timacinin i tgella, asewwi axfifan akked yiẓman i tissit" #: src/poiCategories.js:244 msgid "Shopping" msgstr "Tiɣin" #: src/poiCategories.js:248 msgid "Supermarkets" msgstr "Tiḥuna" #: src/poiCategories.js:254 msgid "Convenience Stores" msgstr "Tḥuna timecṭaḥ" #: src/poiCategories.js:259 msgid "Shopping Malls" msgstr "Leswaq" #: src/poiCategories.js:265 msgid "Clothes" msgstr "Iselsa" #: src/poiCategories.js:271 msgid "Shoes" msgstr "Isebaḍen" #: src/poiCategories.js:276 msgid "Electronics" msgstr "Tiɣawsiwin tiliktrunikin" #: src/poiCategories.js:282 msgid "Alcohol" msgstr "Tissit" #: src/poiCategories.js:288 msgid "Bakeries" msgstr "Taseɣreft" #: src/poiCategories.js:294 msgid "Flowers" msgstr "Ijeǧǧigen" #: src/poiCategories.js:301 msgid "Transportation" msgstr "Ttawil n usiweḍ" #: src/poiCategories.js:305 msgid "Bus & Tram Stops" msgstr "Tiɣtasin n unesmedday akked utṛam" #: src/poiCategories.js:313 msgid "Train & Subway Stations" msgstr "Taɣsert n tmacint & amitru" #: src/poiCategories.js:321 msgid "Tickets" msgstr "Itikiyen" #: src/poiCategories.js:329 msgid "Parking" msgstr "Asefreg" #: src/poiCategories.js:334 msgid "Bicycle Parking" msgstr "Asefreg n yiviluten" #: src/poiCategories.js:339 msgid "Bicycle Rental" msgstr "Lekra n uvilu" #: src/poiCategories.js:344 msgid "Car Rental" msgstr "Lekra n tkeṛṛust" #: src/poiCategories.js:349 msgid "Fuel" msgstr "Amsuɣed" #: src/poiCategories.js:354 msgid "EV Charging" msgstr "Aεebbi n EV" #: src/poiCategories.js:362 msgid "Healthcare" msgstr "Annaren n usgunfu" #: src/poiCategories.js:366 msgid "Clinics" msgstr "Tasdusit" #: src/poiCategories.js:372 msgid "Hospitals" msgstr "Sbiṭarat" #: src/poiCategories.js:378 msgid "Dentists" msgstr "Imsujjiyen n tuɣmas" #: src/poiCategories.js:386 msgid "Accommodation" msgstr "Asezdeɣ" #: src/poiCategories.js:390 msgid "Hotels" msgstr "Isensuyen" #: src/poiCategories.js:395 msgid "Hostels" msgstr "Izebrizen" #: src/poiCategories.js:400 msgid "Bed & Breakfast" msgstr "Taguni & Tagella n tnezzayt" #: src/poiCategories.js:405 msgid "Campings" msgstr "Asder" #: src/poiCategories.js:412 msgid "Recreation" msgstr "Imezlan" #: src/poiCategories.js:416 msgid "Parks" msgstr "Inannaren" #: src/poiCategories.js:421 msgid "Playgrounds" msgstr "Annaren n wurar" #: src/poiCategories.js:425 msgid "Beaches" msgstr "Tiftisin" #: src/poiCategories.js:430 msgid "Nature Reserves" msgstr "Inegmaḍen imaganen" #: src/poiCategories.js:436 msgid "Theme Parks" msgstr "Annaren n zzehwan" #: src/poiCategories.js:441 msgid "Theaters" msgstr "Amezgun" #: src/poiCategories.js:447 msgid "Movie Theaters" msgstr "Tizeɣwa n ssinima" #: src/poiCategories.js:453 msgid "Night Clubs" msgstr "Iqusisen n yiḍ" #: src/poiCategories.js:460 msgid "Tourism" msgstr "Amerreḥ" #: src/poiCategories.js:464 msgid "Museums" msgstr "Isalayen" #: src/poiCategories.js:470 msgid "Attractions" msgstr "Inzaɣen" #: src/poiCategories.js:475 msgid "Artworks" msgstr "Taẓuri" #: src/poiCategories.js:480 msgid "Tourist Information" msgstr "Talɣut n tmerrit" #: src/poiCategories.js:487 msgid "Sports" msgstr "Addal" #: src/poiCategories.js:491 msgid "Gyms" msgstr "Tizeɣwa n waddal" #: src/poiCategories.js:497 msgid "Outdoor Gyms" msgstr "Ahareg" #: src/poiCategories.js:503 msgid "Golf Courses" msgstr "Timsirin n Gulf" #: src/printLayout.js:350 #, javascript-format msgid "From %s to %s" msgstr "Seg %s ɣer %s" #: src/printOperation.js:49 msgid "Loading map tiles for printing" msgstr "Asali n tbursatin n tkarḍiwin i usiggez" #: src/printOperation.js:50 msgid "You can abort printing if this takes too long" msgstr "Tzemreḍ ad tesfesxeḍ asiggez ma yella ad yeṭṭef aṭas n wakud" #: src/printOperation.js:52 msgid "Abort printing" msgstr "Sefsex asiggez" #. Translators: this is add via location tooltip #: src/routeEntry.js:60 msgid "Add via location" msgstr "Rnu seg wadig" #. Translators: this is remove via location tooltip #: src/routeEntry.js:70 msgid "Remove via location" msgstr "Kkes seg wadig" #. Translators: this is reverse route tooltip #: src/routeEntry.js:76 msgid "Reverse route" msgstr "Abrid amutti" #: src/searchBar.js:45 msgid "Search" msgstr "Nadi" #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:84 #, javascript-format msgid "Add %s to %s" msgstr "Rnu %s ɣer %s" #: src/sendToDialog.js:181 msgid "Failed to open URI" msgstr "Yecceḍ ulday n URI" #: src/sendToDialog.js:246 #, javascript-format msgid "Open with %s" msgstr "Ldi s %s" #: src/shapeLayer.js:109 msgid "failed to load file" msgstr "yecceḍ usali n ufaylu" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:328 #, javascript-format msgid "Estimated time: %s" msgstr "Akud ara yeṭṭef: %s" #: src/sidebar.js:398 #, javascript-format msgid "Itineraries provided by %s" msgstr "Iberdan ttwamudden s %s" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:39 #, javascript-format msgid "Start at %s" msgstr "Bdu seg %s" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:45 src/transitplugins/openTripPlanner2.js:236 msgid "Start" msgstr "Bdu" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:63 #, javascript-format msgid "Walk %s" msgstr "Tikli %s" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:77 #, javascript-format msgid "Arrive at %s" msgstr "Aweḍ ɣer %s" #: src/transit.js:79 src/transitplugins/openTripPlanner.js:1176 #: src/transitplugins/openTripPlanner2.js:255 msgid "Arrive" msgstr "Awwaḍ" #: src/transitLegRow.js:69 msgid "Show walking instructions" msgstr "Sken iwellihen n tikli" #: src/transitLegRow.js:70 msgid "Hide walking instructions" msgstr "Ffer iwellihen n tikli" #: src/transitMoreRow.js:37 msgid "Load earlier alternatives" msgstr "Sali timlellay tudfirin" #: src/transitMoreRow.js:39 msgid "Load later alternatives" msgstr "Sali timlellay tuḍfirin" #: src/transitMoreRow.js:52 msgid "No earlier alternatives found." msgstr "Ulac timlellay tudfirin i yettwafen." #: src/transitMoreRow.js:54 msgid "No later alternatives found." msgstr "Ulac timlellay tuḍfirin i yettwafen." #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:138 msgctxt "month-day-date" msgid "%b %e" msgstr "%b %e" #: src/transitPlan.js:171 msgid "No timetable data found for this route." msgstr "Ulac isefka israganen i yettwafen i ubrid-a." #: src/transitPlan.js:179 msgid "No provider found for this route." msgstr "Ulac asaǧǧaw i yettwafen i ubrid-a." #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:300 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:331 #, javascript-format msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "%s n tesdidt" msgstr[1] "%s n tesdidin" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:343 #, javascript-format msgid "%s hour" msgid_plural "%s hours" msgstr[0] "%s n usrag" msgstr[1] "%s n isragen" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:351 #, javascript-format msgid "%s:%s hour" msgid_plural "%s:%s hours" msgstr[0] "%s;%s usrag" msgstr[1] "%s;%s yisragen" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:744 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: src/translations.js:55 msgid "Around the clock" msgstr "Γef teɣzi n tamert" #: src/translations.js:57 msgid "From sunrise to sunset" msgstr "Seg ucraq ɣer uɣelluy n yiṭij" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:123 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s,%s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:137 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s,%s,%s" #: src/translations.js:156 msgid "Every day" msgstr "Yal ass" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:168 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:179 msgid "Public holidays" msgstr "Ismiras izayazen" #: src/translations.js:181 msgid "School holidays" msgstr "Ismiras iɣurbizen" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:221 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: src/translations.js:235 msgid "not open" msgstr "ur yeldi ara" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:250 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:287 msgid "Bahá'í" msgstr "Bahá'í" #. Translators: Accuracy of user location information #: src/utils.js:248 msgid "Unknown" msgstr "Arussin" #. Translators: Accuracy of user location information #: src/utils.js:251 msgid "Exact" msgstr "Usdid" #. Translators: this is a duration with only hours, using #. * an abbreviation for hours, corresponding to 'h' in English #. #: src/utils.js:307 #, javascript-format msgid "%s h" msgstr "%s srg" #. Translators: this is a duration with hours and minutes parts #. * using abbreviations for hours and minutes, corresponding to 'h' #. * and 'min' in English. The minutes has appropriate plural variations #. #: src/utils.js:313 #, javascript-format msgid "%s h %s min" msgid_plural "%s h %s min" msgstr[0] "%s srg %s tsd" msgstr[1] "%s srgn %s tsdn" #. Translators: this is a duration with minutes part #. * using abbreviation for minutes, corresponding to 'min' in English #. * with appropriate plural variations #. #: src/utils.js:320 #, javascript-format msgid "%s min" msgid_plural "%s min" msgstr[0] "%s n tsedidt" msgstr[1] "%s n tsedidt" #. Translators: this is a duration of less than one minute #. * with seconds using an abbreviation for seconds, corresponding to #. * 's' in English with appropriate plural forms #. #: src/utils.js:326 #, javascript-format msgid "%s s" msgid_plural "%s s" msgstr[0] "%s s" msgstr[1] "%s s" #. Translators: This is a distance measured in kilometers #: src/utils.js:337 #, javascript-format msgid "%s km" msgstr "%s km" #. Translators: This is a distance measured in meters #: src/utils.js:340 #, javascript-format msgid "%s m" msgstr "%s m" #. Translators: This is a distance measured in miles #: src/utils.js:348 #, javascript-format msgid "%s mi" msgstr "%s mi" #. Translators: This is a distance measured in feet #: src/utils.js:351 #, javascript-format msgid "%s ft" msgstr "%s ḍr" #: src/transitplugins/goMetro.js:61 msgid "This plugin doesn't support latest arrival" msgstr "Azegrir-a ur yessefrak ara tistin taneggarut" #: src/transitplugins/openTripPlanner.js:1237 #: src/transitplugins/openTripPlanner2.js:266 #, javascript-format msgid "Continue on %s" msgstr "Kemmel ɣef %s" #: src/transitplugins/openTripPlanner.js:1242 #: src/transitplugins/openTripPlanner2.js:270 #, javascript-format msgid "Turn left on %s" msgstr "Zzi ɣer zelmeḍ n %s" #: src/transitplugins/openTripPlanner.js:1244 #: src/transitplugins/openTripPlanner2.js:271 msgid "Turn left" msgstr "Bren ɣer tama tazelmaḍt" #: src/transitplugins/openTripPlanner.js:1247 #: src/transitplugins/openTripPlanner2.js:275 #, javascript-format msgid "Turn slightly left on %s" msgstr "Zzi cwiṭ ɣer zelmeḍ n %s" #: src/transitplugins/openTripPlanner.js:1249 #: src/transitplugins/openTripPlanner2.js:276 msgid "Turn slightly left" msgstr "Zzi cwiṭ ɣer zelmeḍ" #: src/transitplugins/openTripPlanner.js:1252 #: src/transitplugins/openTripPlanner2.js:280 #, javascript-format msgid "Turn sharp left on %s" msgstr "Zzi akk ɣer zelmeḍ n %s" #: src/transitplugins/openTripPlanner.js:1254 #: src/transitplugins/openTripPlanner2.js:281 msgid "Turn sharp left" msgstr "Zzi akk ɣer zelmeḍ" #: src/transitplugins/openTripPlanner.js:1257 #: src/transitplugins/openTripPlanner2.js:284 #, javascript-format msgid "Turn right on %s" msgstr "Zzi ɣer yeffus n %s" #: src/transitplugins/openTripPlanner.js:1259 #: src/transitplugins/openTripPlanner2.js:285 msgid "Turn right" msgstr "Bren ɣer tama tayeffust" #: src/transitplugins/openTripPlanner.js:1262 #: src/transitplugins/openTripPlanner2.js:289 #, javascript-format msgid "Turn slightly right on %s" msgstr "Zzi cwiṭ ɣer yeffus n %s" #: src/transitplugins/openTripPlanner.js:1264 #: src/transitplugins/openTripPlanner2.js:290 msgid "Turn slightly right" msgstr "Zzi cwiṭ ɣer yeffus" #: src/transitplugins/openTripPlanner.js:1267 #: src/transitplugins/openTripPlanner2.js:294 #, javascript-format msgid "Turn sharp right on %s" msgstr "Zzi akk ɣer yeffus n %s" #: src/transitplugins/openTripPlanner.js:1269 #: src/transitplugins/openTripPlanner2.js:295 msgid "Turn sharp right" msgstr "Zzi akk ɣer yeffus" #: src/transitplugins/openTripPlanner.js:1275 #: src/transitplugins/openTripPlanner2.js:302 #, javascript-format msgid "At the roundabout, take exit %s" msgstr "Γer wazzi, ffeɣ seg %s" #: src/transitplugins/openTripPlanner.js:1277 #: src/transitplugins/openTripPlanner2.js:305 #, javascript-format msgid "At the roundabout, take exit to %s" msgstr "Γer wazzi, err ɣer tuffɣa %s" #: src/transitplugins/openTripPlanner.js:1279 #: src/transitplugins/openTripPlanner2.js:307 msgid "Take the roundabout" msgstr "Ṭṭef azzi" #: src/transitplugins/openTripPlanner.js:1283 #: src/transitplugins/openTripPlanner2.js:315 #, javascript-format msgid "Take the elevator and get off at %s" msgstr "Ṭṭef asawan tsubbeḍ ɣer %s" #: src/transitplugins/openTripPlanner.js:1285 #: src/transitplugins/openTripPlanner2.js:316 msgid "Take the elevator" msgstr "Ṭṭef asawan" #: src/transitplugins/openTripPlanner.js:1289 #: src/transitplugins/openTripPlanner2.js:320 #, javascript-format msgid "Make a left u-turn onto %s" msgstr "Zzi ɣer zelmeḍ, ad txedmeḍ U ɣer %s" #: src/transitplugins/openTripPlanner.js:1291 #: src/transitplugins/openTripPlanner2.js:321 msgid "Make a left u-turn" msgstr "Zzi ɣer zelmeḍ, ad txedmeḍ U" #: src/transitplugins/openTripPlanner.js:1294 #: src/transitplugins/openTripPlanner2.js:325 #, javascript-format msgid "Make a right u-turn onto %s" msgstr "Zzi ɣer yeffus, ad txedmeḍ U ɣer %s" #: src/transitplugins/openTripPlanner.js:1296 #: src/transitplugins/openTripPlanner2.js:326 msgid "Make a right u-turn" msgstr "Zzi ɣer yeffus, ad txedmeḍ U" 070701000001D0000081A40000000000000000000000016641340900012CCE000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/kk.po# Kazakh translation for gnome-maps. # Copyright (C) 2014 gnome-maps's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-maps package. # Baurzhan Muftakhidinov , 2014-2021. # msgid "" msgstr "" "Project-Id-Version: gnome-maps master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2024-02-14 22:30+0000\n" "PO-Revision-Date: 2024-02-25 10:44+0600\n" "Last-Translator: Baurzhan Muftakhidinov \n" "Language-Team: Kazakh \n" "Language: kk\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: Poedit 3.4.2\n" #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.appdata.xml.in.in:6 data/org.gnome.Maps.desktop.in.in:4 #: data/ui/main-window.ui:27 src/application.js:64 src/mainWindow.js:147 #: src/mainWindow.js:647 msgid "Maps" msgstr "Карталар" #: data/org.gnome.Maps.appdata.xml.in.in:7 msgid "Find places around the world" msgstr "Дүниежүзілік орындарды табу" #: data/org.gnome.Maps.appdata.xml.in.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "Карталар қолданбасы сізге дүниежүзі карталарына жылдам қатынауды мүмкін " "қылады. Оның көмегімен керек болған орынды оның орналасқан қаласын не " "көшесін енгізу арқылы табуға, немесе доспен кездесу үшін орынды табуға " "болады." #: data/org.gnome.Maps.appdata.xml.in.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "Карталар қолданбасы қауымдастық ұсынатын OpenStreetMap дерекқорын қолданады, " "оны дүниежүзінің әр жеріндегі мыңдаған адамдар жасайды." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Maps.appdata.xml.in.in:451 src/mainWindow.js:644 msgid "The GNOME Project" msgstr "GNOME жобасы" #: data/org.gnome.Maps.desktop.in.in:5 msgid "A simple maps application" msgstr "Қарапайым карталар қолданбасы" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in.in:14 msgid "Maps;" msgstr "Maps;Карталар;" #: data/org.gnome.Maps.desktop.in.in:17 msgid "Allows your location to be shown on the map." msgstr "Картада сіздің орналасуыңызды көрсете алады." #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "соңғы қаралған орналасу" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "Соңғы қаралған орналасудың координаттары." #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "масштабтау" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "Масштабтау деңгейі" #: data/org.gnome.Maps.gschema.xml:21 msgid "rotation" msgstr "бұру" #: data/org.gnome.Maps.gschema.xml:22 msgid "Map rotation in radians" msgstr "Картаның бұрылуы, радиан есебімен" #: data/org.gnome.Maps.gschema.xml:26 msgid "Map type" msgstr "Карта түрі" #: data/org.gnome.Maps.gschema.xml:27 msgid "The type of map to display (street, aerial, etc.)" msgstr "Көрсетілетін карта түрі (көше, әуе және т.б.)" #: data/org.gnome.Maps.gschema.xml:31 msgid "Window size" msgstr "Терезе өлшемі" #: data/org.gnome.Maps.gschema.xml:32 msgid "Window size (width and height)." msgstr "Терезе өлшемі (ені мен биіктігі)." #: data/org.gnome.Maps.gschema.xml:36 msgid "Window position" msgstr "Терезе орны" #: data/org.gnome.Maps.gschema.xml:37 msgid "Window position (X and Y)." msgstr "Терезе орны (x және y)." #: data/org.gnome.Maps.gschema.xml:41 msgid "Window maximized" msgstr "Терезе максималды етілген" #: data/org.gnome.Maps.gschema.xml:42 msgid "Window maximization state" msgstr "Терезенің максималды күйі" #: data/org.gnome.Maps.gschema.xml:46 msgid "Maximum number of search results" msgstr "Іздеу нәтижелерінің максималды саны" #: data/org.gnome.Maps.gschema.xml:47 msgid "Maximum number of search results from geocode search." msgstr "Геокодын іздеуі қайтаратын нәтижелерінің максималды саны." #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent places to store" msgstr "Соңғы орындардың сақталатын саны" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited places to store." msgstr "Соңғы болған орындардың қаншауын сақтау керек." #: data/org.gnome.Maps.gschema.xml:56 msgid "Number of recent routes to store" msgstr "Соңғы бағыттардың сақталатын саны" #: data/org.gnome.Maps.gschema.xml:57 msgid "Number of recently visited routes to store." msgstr "Соңғы бағыттардың нешеуін сақтау керек." #: data/org.gnome.Maps.gschema.xml:61 msgid "OpenStreetMap username or email address" msgstr "OpenStreetMap пайдаланушы аты немесе эл. пошта адресі" #: data/org.gnome.Maps.gschema.xml:62 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "" "Пайдаланушы OpenStreetMap деректерін түзету үшін кірген ба, соны анықтайды." #: data/org.gnome.Maps.gschema.xml:66 msgid "Last used transportation type for routing" msgstr "Бағдарды құрастыру кезінде соңғы қолданылған көлік түрі" #: data/org.gnome.Maps.gschema.xml:70 msgid "Show scale" msgstr "Масштабты көрсету" #: data/org.gnome.Maps.gschema.xml:71 msgid "Whether to show the scale." msgstr "Масштабты көрсету керек пе." #: data/ui/context-menu.ui:6 msgid "Route from Here" msgstr "Осыдан бағдар" #: data/ui/context-menu.ui:10 msgid "Add Intermediate Destination" msgstr "Аралық мақсатты қосу" #: data/ui/context-menu.ui:14 msgid "Route to Here" msgstr "Осыған дейін бағдар" #: data/ui/context-menu.ui:20 msgid "What's Here?" msgstr "Осында не бар?" #: data/ui/context-menu.ui:24 msgid "Copy Location" msgstr "Орналасуды көшіріп алу" #: data/ui/context-menu.ui:28 msgid "Add to OpenStreetMap…" msgstr "OpenStreetMap ішіне қосу…" #: data/ui/export-view-dialog.ui:7 msgid "Export view" msgstr "Көріністі экспорттау" #: data/ui/export-view-dialog.ui:16 data/ui/send-to-dialog.ui:10 #: data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "Ба_с тарту" #: data/ui/export-view-dialog.ui:26 msgid "_Export" msgstr "Э_кспорт" #. Translators: This is a tooltip #: data/ui/favorite-list-row.ui:72 msgid "Remove Favorite" msgstr "Таңдамалыны өшіру" #: data/ui/favorites-popover.ui:11 msgid "No Favorites" msgstr "Таңдамалылар жоқ" #: data/ui/favorites-popover.ui:12 msgid "Add places to your favorites to get them listed here" msgstr "Осында көрсету үшін орындарды таңдамалыларға қосыңыз" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:11 src/geoclue.js:106 msgid "Current Location" msgstr "Ағымдағы орналасу" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:19 msgid "Layers" msgstr "Қабаттар" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:11 msgid "Print Route" msgstr "Бағдарды баспаға шығару" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:21 msgid "Favorites" msgstr "Таңдамалылар" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:30 msgid "Route Planner" msgstr "Маршрутты жоспарлаушы" #: data/ui/help-overlay.ui:12 msgctxt "shortcut window" msgid "General" msgstr "Жалпы" #: data/ui/help-overlay.ui:15 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "Пернетақта жарлықтарын көрсету" #: data/ui/help-overlay.ui:21 msgctxt "shortcut window" msgid "Search" msgstr "Іздеу" #: data/ui/help-overlay.ui:27 msgctxt "shortcut window" msgid "Explore points-of-interest" msgstr "Қызықты жерлерді зерттеңіз" #: data/ui/help-overlay.ui:33 msgctxt "shortcut window" msgid "Show last search results" msgstr "Соңғы іздеу нәтижелерін көрсету" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "Бағдар жоспарлаушысын іске қосу/сөндіру" #: data/ui/help-overlay.ui:45 msgctxt "shortcut window" msgid "Print route" msgstr "Бағдарды баспаға шығару" #: data/ui/help-overlay.ui:51 msgctxt "shortcut window" msgid "Quit" msgstr "Шығу" #: data/ui/help-overlay.ui:57 msgctxt "shortcut window" msgid "Open main menu" msgstr "Негізгі мәзірді ашу" #: data/ui/help-overlay.ui:65 msgctxt "shortcut window" msgid "Map View" msgstr "Карта көрінісі" #: data/ui/help-overlay.ui:68 msgctxt "shortcut window" msgid "Zoom in" msgstr "Үлкейту" #: data/ui/help-overlay.ui:74 msgctxt "shortcut window" msgid "Zoom out" msgstr "Кішірейту" #: data/ui/help-overlay.ui:80 msgctxt "shortcut window" msgid "Rotate clockwise" msgstr "Сағат тілі бойымен бұру" #: data/ui/help-overlay.ui:86 msgctxt "shortcut window" msgid "Rotate counter-clockwise" msgstr "Сағат тілі бойына қарсы бұру" #: data/ui/help-overlay.ui:92 msgctxt "shortcut window" msgid "Reset rotation" msgstr "Бұруды тастау" #: data/ui/help-overlay.ui:98 msgctxt "shortcut window" msgid "Toggle scale" msgstr "Масштабты іске қосу/сөндіру" #: data/ui/help-overlay.ui:104 msgctxt "shortcut window" msgid "Go to current location" msgstr "Ағымдағы орналасуға өту" #: data/ui/help-overlay.ui:114 msgctxt "shortcut window" msgid "Switch to street view" msgstr "Көше көрінісіне ауысу" #: data/ui/help-overlay.ui:121 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "Ауадан көрінісіне ауысу" #: data/ui/help-overlay.ui:127 msgctxt "shortcut window" msgid "Open shape layer" msgstr "Қабатты (shape) ашу" #: data/ui/layers-popover.ui:7 msgid "Show Scale" msgstr "Масштабты көрсету" #: data/ui/layers-popover.ui:16 msgid "Enable Experimental Map" msgstr "Сынамалы картаны іске қосу" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:21 msgid "Open Shape Layer…" msgstr "Қабатты (shape) ашу…" #: data/ui/main-window.ui:8 msgid "Set up OpenStreetMap Account…" msgstr "OpenStreetMap тіркелгісін баптау…" #: data/ui/main-window.ui:12 msgid "Export as Image…" msgstr "Сурет ретінде экспорттау…" #: data/ui/main-window.ui:17 msgid "_Keyboard Shortcuts" msgstr "П_ернетақта жарлықтары" #: data/ui/main-window.ui:22 msgid "About Maps" msgstr "Карталар қолданбасы туралы" #: data/ui/main-window.ui:48 msgid "Main Menu" msgstr "Басты мәзір" #: data/ui/osm-account-dialog.ui:5 msgid "OpenStreetMap Account" msgstr "OpenStreetMap тіркелгісі" #: data/ui/osm-account-dialog.ui:31 msgid "Sign In To Edit Maps" msgstr "Карталарды өңдеу үшін кіру" #: data/ui/osm-account-dialog.ui:32 msgid "Help to improve the map, using an OpenStreetMap account." msgstr "OpenStreetMap тіркелгісі көмегімен карталарды жақсартуға көмектесіңіз." #: data/ui/osm-account-dialog.ui:36 msgid "Sign In" msgstr "Кіру" #: data/ui/osm-account-dialog.ui:59 msgid "Verification" msgstr "Тексеру" #: data/ui/osm-account-dialog.ui:60 msgid "" "Copy the verification code shown when authorizing access in the browser." msgstr "" "Браузерде рұқсатты авторизациялау кезінде көрсетілген тексеру кодын көшіріп " "алыңыз." #: data/ui/osm-account-dialog.ui:69 msgid "Verification Code" msgstr "Тексеру коды" #: data/ui/osm-account-dialog.ui:75 msgid "Verify" msgstr "Растау" #: data/ui/osm-account-dialog.ui:110 msgid "Signed In" msgstr "Жүйеге кірген" #: data/ui/osm-account-dialog.ui:111 msgid "Your OpenStreetMap account is active." msgstr "Сіздің OpenStreetMap тіркелгіңіз белсенді." #: data/ui/osm-account-dialog.ui:129 msgid "Sign Out" msgstr "Шығу" #: data/ui/osm-edit-address.ui:11 msgid "Street" msgstr "Көше" #: data/ui/osm-edit-address.ui:22 msgid "House number" msgstr "Үй нөмірі" #: data/ui/osm-edit-address.ui:33 msgid "Postal code" msgstr "Пошталық индексі" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:44 msgid "City" msgstr "Қала" #: data/ui/osm-edit-dialog.ui:8 msgctxt "dialog title" msgid "Edit on OpenStreetMap" msgstr "OpenStreetMap ішінде түзету" #: data/ui/osm-edit-dialog.ui:57 msgid "Type" msgstr "Түрі" #: data/ui/osm-edit-dialog.ui:79 msgid "None" msgstr "Жоқ" #: data/ui/osm-edit-dialog.ui:108 msgid "Add Field" msgstr "Өрісті қосу" #: data/ui/osm-edit-dialog.ui:130 msgid "Comment" msgstr "Пікір" #: data/ui/osm-edit-dialog.ui:158 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "Карта өзгерістері OpenStreetMap деректерін қолданатын\n" "барлық карталарда көрінетін болады." #: data/ui/osm-edit-dialog.ui:186 msgid "Recently Used" msgstr "Жақында қолданылған" #: data/ui/osm-edit-dialog.ui:225 src/mapView.js:663 msgid "Cancel" msgstr "Бас тарту" #: data/ui/osm-edit-dialog.ui:238 src/osmEditDialog.js:531 msgid "Next" msgstr "Келесі" #: data/ui/osm-edit-wikipedia.ui:8 msgid "Article" msgstr "Мақала" #: data/ui/osm-edit-wikipedia.ui:21 msgid "Wikidata tag" msgstr "Wikidata тегі" #: data/ui/osm-edit-wikipedia.ui:32 msgid "Load Wikidata tag for article" msgstr "Мақала үшін Wikidata тегін жүктеу" #: data/ui/place-popover.ui:23 src/searchBar.js:55 msgid "Explore Nearby Places" msgstr "Жақын орындарды зерттеңіз" #: data/ui/place-popover.ui:82 src/application.js:277 msgid "No results found" msgstr "Нәтижелер табылмады" #: data/ui/place-popover.ui:92 src/application.js:255 msgid "An error has occurred" msgstr "Қате орын алды" #. Translators: This is a tooltip #: data/ui/route-entry.ui:12 msgid "Change Route Order" msgstr "Бағыт ретін өзгерту" #: data/ui/send-to-dialog.ui:7 msgid "Open Location" msgstr "Орналасуды ашу" #: data/ui/send-to-dialog.ui:64 msgid "Copy" msgstr "Көшіру" #: data/ui/send-to-dialog.ui:70 msgid "Send To…" msgstr "Қайда жіберу…" #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:62 msgid "Open Shape Layer" msgstr "Қабатты (shape) ашу" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "_Ашу" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:32 msgid "Toggle visible" msgstr "Көрінуін іске қосу/сөндіру" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:44 msgid "Remove Shape Layer" msgstr "Қабатты (shape) өшіру" #: data/ui/sidebar.ui:207 msgid "Route search by GraphHopper" msgstr "Бағдарды іздеу GraphHopper ұсынады" #: data/ui/sidebar.ui:272 msgid "" "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of " "transportation,\n" "e.g. a national provider might not include airlines, and a local provider " "could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" "Қоғамдық көліктің маршруттары үшінші жақты қызметтермен\n" "ұсынылған.\n" "GNOME көрсетілген бағдарлар және уақыттар үшін жауапты емес.\n" "Кейбір провайдерлер тасымалдаудың барлық қолжетімді түрлерін қамтымауы " "мүмкін\n" "екенін ескеріңіз, мысалы, ұлттық провайдер авиакомпанияларды қамтымауы " "мүмкін және\n" "жергілікті провайдер аймақтық поездарды қамтымауы мүмкін\n" "Көрсетілген атаулар және брендтер тіркелген сауда белгілері ретінде " "қарастырылуы тиіс." #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:98 msgid "Hide intermediate stops and information" msgstr "Аралық аялдамалар және ақпаратты жасыру" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:156 msgid "Show intermediate stops and information" msgstr "Аралық аялдамалар және ақпаратты көрсету" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:16 msgid "Leave Now" msgstr "Қазір кету" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:17 msgid "Leave By" msgstr "Кету, " #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:18 msgid "Arrive By" msgstr "Жету, " #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:85 msgid "Show" msgstr "Көрсету" #: data/ui/transit-options-panel.ui:95 msgid "Buses" msgstr "Автобустар" #: data/ui/transit-options-panel.ui:101 msgid "Trams" msgstr "Трамвайлар" #: data/ui/transit-options-panel.ui:107 msgid "Trains" msgstr "Пойыздар" #: data/ui/transit-options-panel.ui:113 msgid "Subway" msgstr "Метро" #: data/ui/transit-options-panel.ui:119 msgid "Ferries" msgstr "Паромдар" #: data/ui/transit-options-panel.ui:125 msgid "Airplanes" msgstr "Ұшақтар" #. Translators: This is a tooltip #: data/ui/place-bar.ui:33 data/ui/place-buttons.ui:27 msgid "Share Location" msgstr "Орналасумен бөлісу" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:11 msgid "Add to new route" msgstr "Жаңа бағдарға қосу" #. Translators: This is the button to find a route to a place #: data/ui/place-buttons.ui:15 msgid "Directions" msgstr "Бағыттар" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:36 msgid "Mark as Favorite" msgstr "Таңдамалы ретінде белгілеу" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:44 msgid "Edit on OpenStreetMap" msgstr "OpenStreetMap ішінде түзету" #. Translators: This is a tooltip #: data/ui/place-view.ui:52 msgid "Share location" msgstr "Орналасумен бөлісу" #: data/ui/poi-category-goback-row.ui:22 msgid "Back to Main Categories" msgstr "Негізгі санаттарға оралу" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:19 msgid "Reset Rotation" msgstr "Бұруды тастау" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:32 msgid "Zoom Out" msgstr "Кішірейту" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:43 src/mapView.js:1238 msgid "Zoom In" msgstr "Үлкейту" #: lib/maps-file-data-source.c:262 lib/maps-file-data-source.c:338 #: lib/maps-file-data-source.c:418 msgid "Failed to find tile structure in directory" msgstr "Бумадан мозаикалық құрылымды табу сәтсіз аяқталды" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "XML құжатын талдау қатемен аяқталды" #: lib/maps-osm.c:250 lib/maps-osm.c:403 msgid "Missing required attributes" msgstr "Керек атрибуттар жетіспейді" #: lib/maps-osm.c:451 lib/maps-osm.c:494 msgid "Could not find OSM element" msgstr "OSM элементін табу мүмкін емес" #: lib/maps-osm.c:508 msgid "Could not find user element" msgstr "Пайдаланушы элементін табу мүмкін емес" #: src/application.js:78 msgid "A path to a local tiles directory structure" msgstr "Жергілікті плиткалық бумалар құрылымына дейінгі жол" #: src/application.js:84 msgid "Tile size for local tiles directory" msgstr "Жергілікті мозаика бумасының өлшемі" #: src/application.js:88 msgid "Show the version of the program" msgstr "Бағдарлама нұсқасын көрсету" #: src/application.js:94 msgid "Search for places" msgstr "Орындарды іздеу" #: src/application.js:105 src/application.js:106 msgid "[FILE…|URI]" msgstr "[ФАЙЛ…|URI]" #: src/application.js:284 #, javascript-format msgid "Invalid maps: URI: %s" msgstr "Жарамсыз карталар: URI: %s" #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:75 #, javascript-format msgid "Maps at %f, %f.png" msgstr "Карта, %f, %f.png" #: src/exportViewDialog.js:174 msgid "Unable to export view" msgstr "Көріністі экспорттау мүмкін емес" #: src/favoriteListRow.js:42 msgid "Favorite removed" msgstr "Таңдамалы өшірілді" #: src/favoriteListRow.js:43 msgid "Undo" msgstr "Болдырмау" #: src/geoJSONSource.js:73 msgid "invalid coordinate" msgstr "координаттар жарамсыз" #: src/geoJSONSource.js:126 src/geoJSONSource.js:166 src/geoJSONSource.js:181 msgid "parse error" msgstr "талдау қатесі" #: src/geoJSONSource.js:160 msgid "unknown geometry" msgstr "геометрия белгісіз" #: src/graphHopper.js:101 src/transitPlan.js:175 msgid "Route request failed." msgstr "Бағдар сұранымы сәтсіз." #: src/graphHopper.js:108 src/transitPlan.js:167 msgid "No route found." msgstr "Бағдар табылмады." #: src/graphHopper.js:195 src/transitplugins/openTripPlanner.js:1163 msgid "Start!" msgstr "Бастау!" #: src/mainWindow.js:59 msgid "All Layer Files" msgstr "Барлық қабаттар файлдары" #: src/mainWindow.js:522 msgid "Failed to connect to location service" msgstr "Орналасулар қызметіне байланысу сәтсіз аяқталды" #: src/mainWindow.js:527 msgid "Turn on location services" msgstr "Орналасулар қызметін іске қосу" #: src/mainWindow.js:528 msgid "Location Settings" msgstr "Орналасу баптаулары" #: src/mainWindow.js:645 msgid "translator-credits" msgstr "Baurzhan Muftakhidinov " #: src/mainWindow.js:649 msgid "Copyright © 2011 – 2023 Red Hat, Inc. and The GNOME Maps authors" msgstr "Copyright © 2011 – 2023 Red Hat, Inc. және GNOME Maps авторлары" #: src/mainWindow.js:665 #, javascript-format msgid "Map data by %s and contributors" msgstr "Карта деректерін ұсынған %s және үлес қосушылар" #: src/mainWindow.js:666 msgid "Map Data Provider" msgstr "Карта деректерін ұсынушысы" #: src/mainWindow.js:678 msgid "Map Tile Provider" msgstr "Карта мозаикасын ұсынушысы" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:686 #, javascript-format msgid "Map tiles provided by %s" msgstr "Карта мозаикасын ұсынған %s" #: src/mainWindow.js:716 msgid "Search Provider" msgstr "Іздеу деректерін ұсынушысы" #: src/mainWindow.js:719 #, javascript-format msgid "Search provided by %s using %s" msgstr "Іздеуді %s ұсынған, %s негізінде" #: src/mapView.js:637 src/mapView.js:702 msgid "Failed to open layer" msgstr "Қабатты ашу сәтсіз аяқталды" #: src/mapView.js:656 msgid "Do you want to continue?" msgstr "Жалғастыруды қалайсыз ба?" #: src/mapView.js:657 #, javascript-format msgid "" "You are about to open files with a total size of %s MB. This could take some " "time to load" msgstr "" "Жалпы өлшемі %s МБ болатын файлдарды ашуға дайынсыз. Бұл жүктелуге біраз " "уақытты алуы мүмкін" #: src/mapView.js:664 src/transitplugins/openTripPlanner.js:1239 #: src/transitplugins/openTripPlanner2.js:267 msgid "Continue" msgstr "Жалғастыру" #: src/mapView.js:696 msgid "File type is not supported" msgstr "Файл түріне қолдау жоқ" #: src/mapView.js:733 msgid "Failed to open GeoURI" msgstr "GeoURI ашу сәтсіз аяқталды" #: src/mapView.js:1197 msgid "Nothing found here!" msgstr "Осында ешнәрсе табылмады!" #: src/mapView.js:1237 msgid "Zoom in to add location" msgstr "Орналасуды қосу үшін масштабты үлкейтіңіз" #: src/mapView.js:1258 msgid "Location was added in OpenStreetMap" msgstr "Орын OpenStreetMap ішінде қосылды" #. switch back to the sign-in view, and show a toast indicating #. that verification failed #: src/osmAccountDialog.js:134 msgid "The verification code didn’t match, please try again." msgstr "Растау коды сәйкес болмады, қайталап көріңіз." #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:335 msgid "Incorrect user name or password" msgstr "Пайдаланушы аты не паролі қате" #: src/osmConnection.js:337 msgid "Success" msgstr "Сәтті" #: src/osmConnection.js:339 msgid "Bad request" msgstr "Қате сұраным" #: src/osmConnection.js:341 msgid "Object not found" msgstr "Объект табылмады" #: src/osmConnection.js:343 msgid "Conflict, someone else has just modified the object" msgstr "Ерегесу, біреу бұл объектті жаңа ғана түзеткен" #: src/osmConnection.js:345 msgid "Object has been deleted" msgstr "Объект өшірілген" #: src/osmConnection.js:347 msgid "Way or relation refers to non-existing children" msgstr "Жол немесе байланыс жоқ ұрпақтарға сілтеп тұр" #: src/osmEditDialog.js:106 msgid "Name" msgstr "Аты" #: src/osmEditDialog.js:109 msgid "The official name. This is typically what appears on signs." msgstr "Ресми аты. Әдетте бұл белгілерде көрсетіледі." #: src/osmEditDialog.js:112 msgid "Address" msgstr "Адресі" #: src/osmEditDialog.js:120 src/placeView.js:275 msgid "Website" msgstr "Веб сайт" #: src/osmEditDialog.js:124 msgid "This is not a valid URL. Make sure to include http:// or https://." msgstr "Бұл дұрыс URL емес. http:// немесе https:// қосылғанын тексеріңіз." #: src/osmEditDialog.js:125 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" "Ресми веб сайты. Оңайлатылған түрін қолдануға тырысыңыз, мысалы, http://" "example.com (http://example.com/index.html емес)." #: src/osmEditDialog.js:130 msgid "Phone" msgstr "Телефон" #: src/osmEditDialog.js:134 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" "Телефон нөмірі. +таңбасынан басталатын халықаралық пішімді қолданыңыз. " "Жергілікті жекелік заңдарды ескертіңіз, әсіресе, жеке нөмірлер үшін." #: src/osmEditDialog.js:139 msgid "E-mail" msgstr "Эл. пошта" #: src/osmEditDialog.js:144 msgid "" "This is not a valid email address. Make sure to not include the mailto: " "protocol prefix." msgstr "" "Бұл дұрыс эл. пошта адресі емес. mailto: хаттама префиксінің қосылмағанын " "тексеріңіз." #: src/osmEditDialog.js:145 msgid "" "Contact email address for inquiries. Add only email addresses that are " "intended to be publicly used." msgstr "" "Сұраулар үшін байланыс эл. пошта адресі. Публикалық пайдалануға арналған эл. " "пошта адрестерін ғана қосыңыз." #. Translators: This is the text for the "Wikipedia" link at the end #. of summaries #: src/osmEditDialog.js:149 src/placeView.js:727 msgid "Wikipedia" msgstr "Wikipedia" #: src/osmEditDialog.js:156 src/placeView.js:399 msgid "Opening hours" msgstr "Жұмыс істеу уақыты" #: src/osmEditDialog.js:161 msgid "See the link in the label for help on format." msgstr "Пішім көмегін алу үшін белгі сілтемесін қараңыз." #. TODO: this is a bit of a work-around to re-interpret the population, #. * stored as a string into an integer to convert back to a locale- #. * formatted string. Ideally it should be kept as an integer value #. * in the Place class. But this will also need to be handled by the #. * PlaceStore, possible in a backwards-compatible way #. #: src/osmEditDialog.js:164 src/placeView.js:509 msgid "Population" msgstr "Халық саны" #: src/osmEditDialog.js:169 src/placeView.js:538 msgid "Altitude" msgstr "Теңіз деңгейінен биіктігі" #: src/osmEditDialog.js:172 msgid "Elevation (height above sea level) of a point in meters." msgstr "Нүктенің биіктігі (теңіз деңгейінен), метр есебімен." #: src/osmEditDialog.js:175 msgid "Wheelchair access" msgstr "Мүгедектер арбасымен қатынау" #: src/osmEditDialog.js:178 src/osmEditDialog.js:187 src/osmEditDialog.js:198 #: src/osmEditDialog.js:233 msgid "Yes" msgstr "Иә" #: src/osmEditDialog.js:179 src/osmEditDialog.js:188 src/osmEditDialog.js:199 #: src/osmEditDialog.js:234 msgid "No" msgstr "Жоқ" #: src/osmEditDialog.js:180 msgid "Limited" msgstr "Шектелген" #: src/osmEditDialog.js:181 msgid "Designated" msgstr "Арнайы" #: src/osmEditDialog.js:184 msgid "Internet access" msgstr "Интернетпен байланыс" #: src/osmEditDialog.js:189 msgid "Wi-Fi" msgstr "Wi-Fi" #: src/osmEditDialog.js:190 msgid "Wired" msgstr "Сымды" #: src/osmEditDialog.js:191 msgid "Terminal" msgstr "Терминал" #: src/osmEditDialog.js:192 msgid "Service" msgstr "Қызмет" #: src/osmEditDialog.js:195 msgid "Takeout" msgstr "Тамақты алып кету" #: src/osmEditDialog.js:200 msgid "Only" msgstr "Тек қана" #: src/osmEditDialog.js:203 msgid "Religion" msgstr "Дін" #: src/osmEditDialog.js:206 src/translations.js:286 msgid "Animism" msgstr "Анимизм" #: src/osmEditDialog.js:207 msgid "Bahá’í" msgstr "Бахаи" #: src/osmEditDialog.js:208 src/translations.js:288 msgid "Buddhism" msgstr "Буддизм" #: src/osmEditDialog.js:209 src/translations.js:289 msgid "Caodaism" msgstr "Каодай" #: src/osmEditDialog.js:210 src/translations.js:290 msgid "Christianity" msgstr "Христиан" #: src/osmEditDialog.js:211 src/translations.js:291 msgid "Confucianism" msgstr "Конфуциандық" #: src/osmEditDialog.js:212 src/translations.js:292 msgid "Hinduism" msgstr "Индуизм" #: src/osmEditDialog.js:213 src/translations.js:293 msgid "Jainism" msgstr "Джайнизм" #: src/osmEditDialog.js:214 src/translations.js:294 msgid "Judaism" msgstr "Иудаизм" #: src/osmEditDialog.js:215 src/translations.js:295 msgid "Islam" msgstr "Ислам" #: src/osmEditDialog.js:216 src/translations.js:296 msgid "Multiple Religions" msgstr "Бірнеше дін" #: src/osmEditDialog.js:217 src/translations.js:297 msgid "Paganism" msgstr "Паганизм" #: src/osmEditDialog.js:218 src/translations.js:298 msgid "Pastafarianism" msgstr "Пастафариандық" #: src/osmEditDialog.js:219 src/translations.js:299 msgid "Scientology" msgstr "Сайентология" #: src/osmEditDialog.js:220 src/translations.js:300 msgid "Shinto" msgstr "Шинто" #: src/osmEditDialog.js:221 src/translations.js:301 msgid "Sikhism" msgstr "Сикхизм" #: src/osmEditDialog.js:222 src/translations.js:302 msgid "Spiritualism" msgstr "Спиритуализм" #: src/osmEditDialog.js:223 src/translations.js:303 msgid "Taoism" msgstr "Таоизм" #: src/osmEditDialog.js:224 src/translations.js:304 msgid "Unitarian Universalism" msgstr "Унитариандық универсализм" #: src/osmEditDialog.js:225 src/translations.js:305 msgid "Voodoo" msgstr "Вуду" #: src/osmEditDialog.js:226 src/translations.js:306 msgid "Yazidism" msgstr "Езидизм" #: src/osmEditDialog.js:227 src/translations.js:307 msgid "Zoroastrianism" msgstr "Зороастризм" #: src/osmEditDialog.js:230 src/poiCategories.js:176 msgid "Toilets" msgstr "Әжетханалар" #: src/osmEditDialog.js:237 msgid "Note" msgstr "Естелік" #: src/osmEditDialog.js:240 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" "Басқа карталар жасаушыларға элемент туралы айқын емес ақпаратты жеткізуге " "қолданатын ақпарат, немесе оны жасау кезіндегі автордың пікірі, немесе " "болашақ жақсартулар туралы кеңестер." #: src/osmEditDialog.js:339 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "OpenStreetMap ішіне қосу" #: src/osmEditDialog.js:393 msgid "Select Type" msgstr "Түрін таңдаңыз" #: src/osmEditDialog.js:515 msgid "Done" msgstr "Дайын" #: src/osmEditDialog.js:818 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "" "Қолданылатын пішімі тіл коды және мақала атауынан тұруы керек (мыс, ”kk:" "Мақала атауы”)." #: src/osmEditDialog.js:824 msgid "Use the reload button to load the Wikidata tag for the selected article" msgstr "" "Таңдалған мақала үшін Wikidata тегті жүктеу үшін қайта жүктеу батырмасын " "пайдаланыңыз" #: src/osmEditDialog.js:832 msgid "Couldn't find Wikidata tag for article" msgstr "Мақала үшін Wikidata тегті табу сәтсіз аяқталды" #: src/photonUtils.js:118 msgid "Unnamed place" msgstr "Аталмаған орын" #: src/placeEntry.js:274 msgid "Failed to parse Geo URI" msgstr "Geo URI талдау сәтсіз аяқталды" #: src/placeEntry.js:286 msgid "Failed to parse Maps URI" msgstr "Maps URI талдау сәтсіз аяқталды" #. 300 ft (300 * 12 * 0.0254 m) #. #. * Translators: This a format string for showing a distance to a place #. * is lower than a "quite short" distance. #. * The "less than" symbol can be substituded with an appropriate one, if #. * needed (e.g. using the correct direction, or alternative symbol). #. * The %s should be kept, and is substituted with a label representing the #. * short distance. The \u2009 (thin space) could also be adjusted if needed #: src/placeListRow.js:46 #, javascript-format msgctxt "short distance format string" msgid "< %s" msgstr "< %s" #: src/placeView.js:263 msgid "Coordinates" msgstr "Координаттар" #: src/placeView.js:267 msgid "Accuracy" msgstr "Дәлдік" #. Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) #: src/placeView.js:270 #, javascript-format msgid "Accuracy: %s" msgstr "Дәлдігі: %s" #. since the phone numbers are typically always rendered #. * left-to-right, insert an explicit LRM char to avoid issues #. * with phone numbers in international format starting with a + #. * which is considered a "weak" character to determine Unicode #. * text direction #. #: src/placeView.js:289 msgid "Phone number" msgstr "Телефон нөмірі" #: src/placeView.js:308 msgid "Email" msgstr "Эл. пошта" #. If a reference to a named floor (named or symbolic) exists #. * refer to it directly. #. #. Translators: #. * This is a reference to named building floor, using a label #. * or a code, as "displayed in the elevator" #. #: src/placeView.js:323 src/placeView.js:362 msgid "Floor" msgstr "Қабат" #: src/placeView.js:325 #, javascript-format msgid "Floor %s" msgstr "Қабат %s" #: src/placeView.js:337 msgid "At ground level" msgstr "Жер деңгейінде" #. Translators: #. * This is a reference to a number of floors above #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:346 #, javascript-format msgid "%s floor above ground level" msgid_plural "%s floors above ground level" msgstr[0] "Жер деңгейінен %s қабат жоғары" #. Translators: #. * This is a reference to a number of floors below #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:357 #, javascript-format msgid "%s floor below ground level" msgid_plural "%s floors below ground level" msgstr[0] "Жер деңгейінен %s қабат төмен" #. Translators: #. * The establishment offers customers to purchase meals #. * (or similar) to be consumed elsewhere #. #: src/placeView.js:375 msgid "Offers takeout" msgstr "Алып кету мүмкіндігі бар" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed on-premise. #. #: src/placeView.js:383 msgid "Does not offer takeout" msgstr "Алып кету мүмкіндігі жоқ" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed elsewhere. E.g. #. * there is no seating on-premise for eating/drinking #. #: src/placeView.js:392 msgid "Only offers takeout" msgstr "Тек алып кетуді ұсынады" #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/placeView.js:409 msgid "Public internet access" msgstr "Интернетпен публикалық байланыс" #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/placeView.js:418 msgid "No internet access" msgstr "Интернетпен байланыс жоқ" #. Translators: #. * This means a WLAN Hotspot, also known as wireless, wifi or Wi-Fi. #. #: src/placeView.js:426 msgid "Public Wi-Fi" msgstr "Публикалық Wi-Fi" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/placeView.js:434 msgid "Wired internet access" msgstr "Интернетпен сымды байланыс" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/placeView.js:442 msgid "Computers available for use" msgstr "Пайдалану үшін қолжетімді компьютерлер" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/placeView.js:450 msgid "Internet assistance available" msgstr "Интернетпен көмек көрсетуі бар" #: src/placeView.js:456 msgid "No toilets available" msgstr "Дәретханалар жоқ" #: src/placeView.js:459 msgid "Toilets available" msgstr "Қолжетімді дәретханалар" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #: src/placeView.js:468 msgid "Wheelchair accessible" msgstr "Мүгедектер арбасымен қатынау" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/placeView.js:478 msgid "Limited wheelchair accessibility" msgstr "Мүгедектер арбасымен шектелген қатынау" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #: src/placeView.js:487 msgid "Not wheelchair accessible" msgstr "Мүгедектер арбасымен қатынау жоқ" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/placeView.js:497 msgid "Designated for wheelchair users" msgstr "Мүгедектер арбасын қолданушыларына арналған" #. * #. * Translators: this is a label indicating an altitude below #. * sea level, where the %s placeholder is the altitude relative #. * to mean sea level in the "negative direction" #. #: src/placeView.js:528 #, javascript-format msgid "%s below sea level" msgstr "Теңіз деңгейінен %s төмен" #. * #. * Translators: this indicates a place is located at (or very #. * close to) mean sea level #. #: src/placeView.js:535 msgid "At sea level" msgstr "Теңіз деңгейінде" #: src/placeView.js:544 msgid "Religion:" msgstr "Дін:" #: src/place.js:568 msgid "Place not found in OpenStreetMap" msgstr "Орын OpenStreetMap ішінен табылмады" #: src/place.js:575 msgid "Coordinates in URL are not valid" msgstr "URL ішіндегі координаталар жарамсыз" #: src/place.js:584 msgid "URL is not supported" msgstr "URL түріне қолдау жоқ" #: src/poiCategories.js:132 msgid "Amenities" msgstr "Қызметтер" #: src/poiCategories.js:135 msgid "ATMs" msgstr "Банкоматтар" #: src/poiCategories.js:141 msgid "Post Boxes" msgstr "Пошта жәшіктері" #: src/poiCategories.js:147 msgid "Post Offices" msgstr "Пошта бөлімшелері" #: src/poiCategories.js:153 msgid "Police" msgstr "Полиция" #: src/poiCategories.js:159 msgid "Libraries" msgstr "Кітапханалар" #: src/poiCategories.js:165 msgid "Pharmacies" msgstr "Дәріханалар" #: src/poiCategories.js:171 msgid "Recycling" msgstr "Қайта өңдеу" #: src/poiCategories.js:182 msgid "Wheelchair-accessible Toilets" msgstr "Мүгедектер арбасымен қатынауға болатын дәретханалар" #: src/poiCategories.js:188 msgid "Baggage Lockers" msgstr "Багажды сақтау камералары" #: src/poiCategories.js:196 msgid "Eating & Drinking" msgstr "Тамақтану және ішу" #: src/poiCategories.js:200 msgid "Restaurants" msgstr "Ресторандар" #: src/poiCategories.js:205 msgid "Fast Food" msgstr "Фастфуд" #: src/poiCategories.js:210 msgid "Food Courts" msgstr "Фуд-корттары" #: src/poiCategories.js:215 msgid "Pubs" msgstr "Пабтар" #: src/poiCategories.js:221 msgid "Bars" msgstr "Барлар" #: src/poiCategories.js:226 msgid "Cafes" msgstr "Кафелер" #: src/poiCategories.js:231 msgid "Ice Cream" msgstr "Балмұздақ" #: src/poiCategories.js:236 msgid "Food, Snacks, and Beverage Machines" msgstr "Азық-түлік, тағамдар және сусындар машиналары" #: src/poiCategories.js:244 msgid "Shopping" msgstr "Шопинг" #: src/poiCategories.js:248 msgid "Supermarkets" msgstr "Супермаркеттер" #: src/poiCategories.js:254 msgid "Convenience Stores" msgstr "Дүкендер" #: src/poiCategories.js:259 msgid "Shopping Malls" msgstr "Сауда орталықтары" #: src/poiCategories.js:265 msgid "Clothes" msgstr "Киім" #: src/poiCategories.js:271 msgid "Shoes" msgstr "Аяқ киім" #: src/poiCategories.js:276 msgid "Electronics" msgstr "Электроника" #: src/poiCategories.js:282 msgid "Alcohol" msgstr "Алкоголь" #: src/poiCategories.js:288 msgid "Bakeries" msgstr "Наубайханалар" #: src/poiCategories.js:294 msgid "Flowers" msgstr "Гүлдер" #: src/poiCategories.js:301 msgid "Transportation" msgstr "Тасымалдау" #: src/poiCategories.js:305 msgid "Bus & Tram Stops" msgstr "Автобус және трамвай аялдамалары" #: src/poiCategories.js:313 msgid "Train & Subway Stations" msgstr "Пойыз және метро станциялары" #: src/poiCategories.js:321 msgid "Tickets" msgstr "Билеттер" #: src/poiCategories.js:329 msgid "Parking" msgstr "Көлік тұрағы" #: src/poiCategories.js:334 msgid "Bicycle Parking" msgstr "Велосипед тұрағы" #: src/poiCategories.js:339 msgid "Bicycle Rental" msgstr "Велосипедті жалға беру" #: src/poiCategories.js:344 msgid "Car Rental" msgstr "Автокөлікті жалға беру" #: src/poiCategories.js:349 msgid "Fuel" msgstr "Жаңармай" #: src/poiCategories.js:354 msgid "EV Charging" msgstr "Электр машиналарды зарядтау" #: src/poiCategories.js:362 msgid "Healthcare" msgstr "Денсаулық сақтау" #: src/poiCategories.js:366 msgid "Clinics" msgstr "Клиникалар" #: src/poiCategories.js:372 msgid "Hospitals" msgstr "Ауруханалар" #: src/poiCategories.js:378 msgid "Dentists" msgstr "Тіс дәрігерлері" #: src/poiCategories.js:386 msgid "Accommodation" msgstr "Тұрақтау" #: src/poiCategories.js:390 msgid "Hotels" msgstr "Қонақ үйлер" #: src/poiCategories.js:395 msgid "Hostels" msgstr "Хостелдер" #: src/poiCategories.js:400 msgid "Bed & Breakfast" msgstr "Төсек және таңғы ас" #: src/poiCategories.js:405 msgid "Campings" msgstr "Кемпингтер" #: src/poiCategories.js:412 msgid "Recreation" msgstr "Демалыс" #: src/poiCategories.js:416 msgid "Parks" msgstr "Саябақтар" #: src/poiCategories.js:421 msgid "Playgrounds" msgstr "Ойын алаңдары" #: src/poiCategories.js:425 msgid "Beaches" msgstr "Жағажайлар" #: src/poiCategories.js:430 msgid "Nature Reserves" msgstr "Қорықтар" #: src/poiCategories.js:436 msgid "Theme Parks" msgstr "Тақырыптық саябақтар" #: src/poiCategories.js:441 msgid "Theaters" msgstr "Театрлар" #: src/poiCategories.js:447 msgid "Movie Theaters" msgstr "Кинотеатрлар" #: src/poiCategories.js:453 msgid "Night Clubs" msgstr "Түнгі клубтар" #: src/poiCategories.js:460 msgid "Tourism" msgstr "Туризм" #: src/poiCategories.js:464 msgid "Museums" msgstr "Мұражайлар" #: src/poiCategories.js:470 msgid "Attractions" msgstr "Аттракциондар" #: src/poiCategories.js:475 msgid "Artworks" msgstr "Өнер туындылары" #: src/poiCategories.js:480 msgid "Tourist Information" msgstr "Туристік ақпарат" #: src/poiCategories.js:487 msgid "Sports" msgstr "Спорт" #: src/poiCategories.js:491 msgid "Gyms" msgstr "Спорт залдары" #: src/poiCategories.js:497 msgid "Outdoor Gyms" msgstr "Спорт алаңдары" #: src/poiCategories.js:503 msgid "Golf Courses" msgstr "Гольф алаңдары" #: src/printLayout.js:350 #, javascript-format msgid "From %s to %s" msgstr "%s және %s арасында" #: src/printOperation.js:49 msgid "Loading map tiles for printing" msgstr "Баспаға шығару үшін картаны жүктеп алу" #: src/printOperation.js:50 msgid "You can abort printing if this takes too long" msgstr "Баспаға шығару тым көп уақыт алса, оны үзе аласыз" #: src/printOperation.js:52 msgid "Abort printing" msgstr "Баспаға шығару туралы" #. Translators: this is add via location tooltip #: src/routeEntry.js:60 msgid "Add via location" msgstr "Орналасуы бойынша қосу" #. Translators: this is remove via location tooltip #: src/routeEntry.js:70 msgid "Remove via location" msgstr "Орналасуы бойынша өшіру" #. Translators: this is reverse route tooltip #: src/routeEntry.js:76 msgid "Reverse route" msgstr "Кері бағыт" #: src/searchBar.js:45 msgid "Search" msgstr "Іздеу" #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:84 #, javascript-format msgid "Add %s to %s" msgstr "%s %s ішіне қосу" #: src/sendToDialog.js:181 msgid "Failed to open URI" msgstr "URI ашу сәтсіз аяқталды" #: src/sendToDialog.js:246 #, javascript-format msgid "Open with %s" msgstr "%s көмегімен ашу" #: src/shapeLayer.js:109 msgid "failed to load file" msgstr "файлды жүктеу сәтсіз" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:328 #, javascript-format msgid "Estimated time: %s" msgstr "Шамамен уақыты: %s" #: src/sidebar.js:398 #, javascript-format msgid "Itineraries provided by %s" msgstr "Маршруттарды ұсынған %s" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:39 #, javascript-format msgid "Start at %s" msgstr "%s адресінен бастау" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:45 src/transitplugins/openTripPlanner2.js:236 msgid "Start" msgstr "Бастау" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:63 #, javascript-format msgid "Walk %s" msgstr "Жүріс %s" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:77 #, javascript-format msgid "Arrive at %s" msgstr "%s адресіне жету" #: src/transit.js:79 src/transitplugins/openTripPlanner.js:1176 #: src/transitplugins/openTripPlanner2.js:255 msgid "Arrive" msgstr "Жету" #: src/transitLegRow.js:69 msgid "Show walking instructions" msgstr "Жүріс ақпаратын көрсету" #: src/transitLegRow.js:70 msgid "Hide walking instructions" msgstr "Жүріс ақпаратын жасыру" #: src/transitMoreRow.js:37 msgid "Load earlier alternatives" msgstr "Ертерек балама нұсқаларын жүктеу" #: src/transitMoreRow.js:39 msgid "Load later alternatives" msgstr "Кейінірек балама нұсқаларын жүктеу" #: src/transitMoreRow.js:52 msgid "No earlier alternatives found." msgstr "Ертерек балама нұсқалары табылмады." #: src/transitMoreRow.js:54 msgid "No later alternatives found." msgstr "Кейінірек балама нұсқалары табылмады." #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:138 msgctxt "month-day-date" msgid "%b %e" msgstr "%b %e" #: src/transitPlan.js:171 msgid "No timetable data found for this route." msgstr "Бұл бағдар үшін кесте жоспары табылмады." #: src/transitPlan.js:179 msgid "No provider found for this route." msgstr "Бұл маршрут үшін ұсынушы табылмады." #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:300 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:331 #, javascript-format msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "%s минут" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:343 #, javascript-format msgid "%s hour" msgid_plural "%s hours" msgstr[0] "%s сағат" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:351 #, javascript-format msgid "%s:%s hour" msgid_plural "%s:%s hours" msgstr[0] "%s:%s сағат" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:744 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: src/translations.js:55 msgid "Around the clock" msgstr "Тәулік бойы" #: src/translations.js:57 msgid "From sunrise to sunset" msgstr "Күн шыққаннан бастап күн батқанға дейін" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:123 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s,%s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:137 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s,%s,%s" #: src/translations.js:156 msgid "Every day" msgstr "Күнде" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:168 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:179 msgid "Public holidays" msgstr "Мемлекеттік мерекелер" #: src/translations.js:181 msgid "School holidays" msgstr "Мектеп демалыстары" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:221 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: src/translations.js:235 msgid "not open" msgstr "ашық емес" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:250 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:287 msgid "Bahá'í" msgstr "Бахаи" #. Translators: Accuracy of user location information #: src/utils.js:248 msgid "Unknown" msgstr "Белгісіз" #. Translators: Accuracy of user location information #: src/utils.js:251 msgid "Exact" msgstr "Дәл" #. Translators: this is a duration with only hours, using #. * an abbreviation for hours, corresponding to 'h' in English #. #: src/utils.js:307 #, javascript-format msgid "%s h" msgstr "%s сағ" #. Translators: this is a duration with hours and minutes parts #. * using abbreviations for hours and minutes, corresponding to 'h' #. * and 'min' in English. The minutes has appropriate plural variations #. #: src/utils.js:313 #, javascript-format msgid "%s h %s min" msgid_plural "%s h %s min" msgstr[0] "%s сағ %s мин" #. Translators: this is a duration with minutes part #. * using abbreviation for minutes, corresponding to 'min' in English #. * with appropriate plural variations #. #: src/utils.js:320 #, javascript-format msgid "%s min" msgid_plural "%s min" msgstr[0] "%s мин" #. Translators: this is a duration of less than one minute #. * with seconds using an abbreviation for seconds, corresponding to #. * 's' in English with appropriate plural forms #. #: src/utils.js:326 #, javascript-format msgid "%s s" msgid_plural "%s s" msgstr[0] "%s сек" #. Translators: This is a distance measured in kilometers #: src/utils.js:337 #, javascript-format msgid "%s km" msgstr "%s км" #. Translators: This is a distance measured in meters #: src/utils.js:340 #, javascript-format msgid "%s m" msgstr "%s м" #. Translators: This is a distance measured in miles #: src/utils.js:348 #, javascript-format msgid "%s mi" msgstr "%s миля" #. Translators: This is a distance measured in feet #: src/utils.js:351 #, javascript-format msgid "%s ft" msgstr "%s фут" #: src/transitplugins/goMetro.js:61 msgid "This plugin doesn't support latest arrival" msgstr "Бұл плагині соңғы келуді қолдамайды" #: src/transitplugins/openTripPlanner.js:1237 #: src/transitplugins/openTripPlanner2.js:266 #, javascript-format msgid "Continue on %s" msgstr "%s көмегімен жалғастыру" #: src/transitplugins/openTripPlanner.js:1242 #: src/transitplugins/openTripPlanner2.js:270 #, javascript-format msgid "Turn left on %s" msgstr "%s жерінде солға бұрылу" #: src/transitplugins/openTripPlanner.js:1244 #: src/transitplugins/openTripPlanner2.js:271 msgid "Turn left" msgstr "Солға бұрылу" #: src/transitplugins/openTripPlanner.js:1247 #: src/transitplugins/openTripPlanner2.js:275 #, javascript-format msgid "Turn slightly left on %s" msgstr "%s жерінде сол жаққа жайлап бұрылу" #: src/transitplugins/openTripPlanner.js:1249 #: src/transitplugins/openTripPlanner2.js:276 msgid "Turn slightly left" msgstr "Сол жаққа жайлап бұрылу" #: src/transitplugins/openTripPlanner.js:1252 #: src/transitplugins/openTripPlanner2.js:280 #, javascript-format msgid "Turn sharp left on %s" msgstr "%s жерінде сол жаққа лезде бұрылу" #: src/transitplugins/openTripPlanner.js:1254 #: src/transitplugins/openTripPlanner2.js:281 msgid "Turn sharp left" msgstr "Сол жаққа лезде бұрылу" #: src/transitplugins/openTripPlanner.js:1257 #: src/transitplugins/openTripPlanner2.js:284 #, javascript-format msgid "Turn right on %s" msgstr "%s жерінде оңға бұрылу" #: src/transitplugins/openTripPlanner.js:1259 #: src/transitplugins/openTripPlanner2.js:285 msgid "Turn right" msgstr "Оңға бұрылу" #: src/transitplugins/openTripPlanner.js:1262 #: src/transitplugins/openTripPlanner2.js:289 #, javascript-format msgid "Turn slightly right on %s" msgstr "%s жерінде оң жаққа жайлап бұрылу" #: src/transitplugins/openTripPlanner.js:1264 #: src/transitplugins/openTripPlanner2.js:290 msgid "Turn slightly right" msgstr "Оң жаққа жайлап бұрылу" #: src/transitplugins/openTripPlanner.js:1267 #: src/transitplugins/openTripPlanner2.js:294 #, javascript-format msgid "Turn sharp right on %s" msgstr "%s жерінде оң жаққа лезде бұрылу" #: src/transitplugins/openTripPlanner.js:1269 #: src/transitplugins/openTripPlanner2.js:295 msgid "Turn sharp right" msgstr "Оң жаққа лезде бұрылу" #: src/transitplugins/openTripPlanner.js:1275 #: src/transitplugins/openTripPlanner2.js:302 #, javascript-format msgid "At the roundabout, take exit %s" msgstr "Сақиналы қиылыстан %s шығысын қолданыңыз" #: src/transitplugins/openTripPlanner.js:1277 #: src/transitplugins/openTripPlanner2.js:305 #, javascript-format msgid "At the roundabout, take exit to %s" msgstr "Сақиналы қиылыстан %s үшін шығысын қолданыңыз" #: src/transitplugins/openTripPlanner.js:1279 #: src/transitplugins/openTripPlanner2.js:307 msgid "Take the roundabout" msgstr "Сақиналы қиылысын қолдану" #: src/transitplugins/openTripPlanner.js:1283 #: src/transitplugins/openTripPlanner2.js:315 #, javascript-format msgid "Take the elevator and get off at %s" msgstr "Лифтті қолданып, %s жерінен шығу" #: src/transitplugins/openTripPlanner.js:1285 #: src/transitplugins/openTripPlanner2.js:316 msgid "Take the elevator" msgstr "Лифтті қолдану" #: src/transitplugins/openTripPlanner.js:1289 #: src/transitplugins/openTripPlanner2.js:320 #, javascript-format msgid "Make a left u-turn onto %s" msgstr "%s үшін сол жақ кері бұрылысын қолдану" #: src/transitplugins/openTripPlanner.js:1291 #: src/transitplugins/openTripPlanner2.js:321 msgid "Make a left u-turn" msgstr "Сол жақ кері бұрылысын қолдану" #: src/transitplugins/openTripPlanner.js:1294 #: src/transitplugins/openTripPlanner2.js:325 #, javascript-format msgid "Make a right u-turn onto %s" msgstr "%s үшін оң жақ кері бұрылысын қолдану" #: src/transitplugins/openTripPlanner.js:1296 #: src/transitplugins/openTripPlanner2.js:326 msgid "Make a right u-turn" msgstr "Оң жақ кері бұрылысын қолдану" #~ msgid "Sign in to edit maps" #~ msgstr "" #~ "Карталарды түзету үшін кіріңіз" #~ msgid "" #~ "Sign in to authorize access in a web browser.\n" #~ "Then fill in the obtained verification code here in the next step." #~ msgstr "" #~ "Веб-браузерде рұқсатты авторизациялау үшін кіріңіз.\n" #~ "Сосын келесі қадамда алынған тексеру кодын осында енгіңіз." #~ msgid "Signed In" #~ msgstr "Кіру орындалды" #~ msgid "Go to current location" #~ msgstr "Ағымдағы орналасуға өту" #~ msgid "Choose map type" #~ msgstr "Карта түрін таңдаңыз" #~ msgid "Zoom in" #~ msgstr "Үлкейту" #~ msgid "Sign up" #~ msgstr "Тіркелу" #~ msgid "Drag to change order of the route" #~ msgstr "Бағдар ретін ауыстыру үшін тартып апарыңыз" #~ msgid "Filesystem is read only" #~ msgstr "Файлдық жүйе тек оқу үшін қолжетерлік" #~ msgid "You do not have permission to save there" #~ msgstr "Осында сақтау үшін керек рұқсаттарыңыз жоқ" #~ msgid "The directory does not exist" #~ msgstr "Бума жоқ болып тұр" #~ msgid "No filename specified" #~ msgstr "Файл аты көрсетілмеген" #~ msgid "" #~ "Location was added to the map, note that it may take a while before it " #~ "shows on the map and in search results." #~ msgstr "" #~ "Орналасу картаға қосылды. Бірақ, ол картада және іздеу нәтижелерінде " #~ "көрінуіне дейін біршама уақыт өту керек болуын ескертіңіз." #~ msgid "Takeaway" #~ msgstr "Алып кету" #~ msgid "Foursquare check-in privacy setting" #~ msgstr "Foursquare көмегімен белгіленудің жекелік баптауы" #~ msgid "" #~ "Latest used Foursquare check-in privacy setting. Possible values are: " #~ "public, followers or private." #~ msgstr "" #~ "Foursquare көмегімен белгіленудің соңғы қолданылған жекелік баптауы. " #~ "Мүмкін мәндері: public, followers не private." #~ msgid "Foursquare check-in Facebook broadcasting" #~ msgstr "Foursquare көмегімен белгіленудің Facebook ішіне жариялауы" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a post in the " #~ "Facebook account associated with the Foursquare account." #~ msgstr "" #~ "Foursquare көмегімен белгілену жасалса, оны ол Foursquare тіркелгісімен " #~ "байланысқан Facebook тіркелгісіне жазба ретінде жариялау керек пе, соны " #~ "анықтайды." #~ msgid "Foursquare check-in Twitter broadcasting" #~ msgstr "Foursquare көмегімен белгіленудің Twitter ішіне жариялауы" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a tweet in the " #~ "Twitter account associated with the Foursquare account." #~ msgstr "" #~ "Foursquare көмегімен белгілену жасалса, оны ол Foursquare тіркелгісімен " #~ "байланысқан Twitter тіркелгісіне твит ретінде жариялау керек пе, соны " #~ "анықтайды." #~ msgid "Use hybrid aerial tiles" #~ msgstr "Гибридті әуе мозаикасын пайдалану" #~ msgid "Whether aerial tiles should use hybrid style (with labels)." #~ msgstr "Әуе мозаикасы гибридтік стильді (белгілермен) пайдалануы керек пе." #~ msgid "Visibility" #~ msgstr "Көрінуі" #~ msgid "Post on Facebook" #~ msgstr "Facebook-те жариялау" #~ msgid "Post on Twitter" #~ msgstr "Twitter-де жариялау" #~ msgid "C_heck in" #~ msgstr "Б_елгілену" #~ msgid "Public" #~ msgstr "Публикалық" #~ msgid "Private" #~ msgstr "Жеке" #~ msgid "Include route and markers" #~ msgstr "Бағдар және маркерлерді қоса" #~ msgid "Show Labels" #~ msgstr "Белгілерді көрсету" #~ msgid "Maps is offline!" #~ msgstr "Карталар желіге қосылмаған!" #~ msgid "" #~ "Maps need an active internet connection to function properly, but one " #~ "can’t be found." #~ msgstr "" #~ "Карталар дұрыс жұмысы үшін интернетпен байланыс керек, бірақ ондай " #~ "байланыс табылмады." #~ msgid "Check your connection and proxy settings." #~ msgstr "Байланысу және прокси баптауларын тексеріңіз." #~ msgid "Password" #~ msgstr "Пароль" #~ msgid "" #~ "Sorry, that didn’t work. Please try again, or visit\n" #~ "OpenStreetMap to reset your password." #~ msgstr "" #~ "Кешіріңіз, бұл жасамады. Қайталап көріңіз, немесе\n" #~ "пароліңізді тастау үшін, OpenStreetMap сайтын шолыңыз." #~ msgid "Check In…" #~ msgstr "Белгілену…" #~ msgid "Ignore network availability" #~ msgstr "Желінің қолжетімділігін елемеу" #~ msgid "Select an account" #~ msgstr "Тіркелгіні таңдаңыз" #~ msgid "Loading" #~ msgstr "Жүктелуде" #~ msgid "Select a place" #~ msgstr "Орынды таңдаңыз" #~ msgid "" #~ "Maps cannot find the place to check in to with Foursquare. Please select " #~ "one from this list." #~ msgstr "" #~ "Карталар Foursquare көмегімен белгілену үшін орынды таба алмады. Тізімнен " #~ "біреуін таңдаңыз." #, javascript-format #~ msgid "Check in to %s" #~ msgstr "%s жерінде белгілену" #, javascript-format #~ msgid "Write an optional message to check in to %s." #~ msgstr "%s жерінде белгіленудің міндетті емес хабарламасын жазыңыз." #, javascript-format #~ msgid "Cannot find “%s” in the social service" #~ msgstr "\"%s\" орнын әлеуметтік қызметтен табу мүмкін емес" #~ msgid "Cannot find a suitable place to check-in in this location" #~ msgstr "Бұл орналасуда белгілену үшін жарамды орынды табу мүмкін емес" #~ msgid "" #~ "Credentials have expired, please open Online Accounts to sign in and " #~ "enable this account" #~ msgstr "" #~ "Тіркелу деректерінің мерзімі аяқталған, бұл тіркелгіге кіру және оны іске " #~ "қосу үшін желілік тіркелгілерді ашыңыз" #~ msgid "A map application for GNOME" #~ msgstr "GNOME үшін карталар қолданбасы" #~ msgid "GNOME Maps" #~ msgstr "GNOME карталары" #~ msgid "Night mode" #~ msgstr "Түнгі режимі" #~ msgid "Whether the application is in night mode." #~ msgstr "Қолданба түнгі режимінде ме, соны көрсетеді." #~ msgid "Night Mode" #~ msgstr "Түнгі режимі" #~ msgid "" #~ "You can even search for specific types of locations, such as “Pubs near " #~ "Main Street, Boston” or “Hotels near Alexanderplatz, Berlin”." #~ msgstr "" #~ "Сонымен қатар, орналасулардың нақты түрлерін де іздеуге болады, мысалы " #~ "\"Гостиницы Астаны возле Байтерека\" немесе \"Hotels near Gorky Park, " #~ "Almaty\" (қазақша іздеу әлі мүмкін емес)." #~ msgid "Facebook check-in privacy setting" #~ msgstr "Facebook көмегімен белгіленудің жекелік баптауы" #~ msgid "" #~ "Latest used Facebook check-in privacy setting. Possible values are: " #~ "EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS or SELF." #~ msgstr "" #~ "Facebook көмегімен белгіленудің соңғы қолданылған жекелік баптауы. Мүмкін " #~ "мәндері EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS және SELF." #~ msgid "Everyone" #~ msgstr "Әркім" #~ msgid "Friends of friends" #~ msgstr "Достардың достары" #~ msgid "Just friends" #~ msgstr "Тек достар" #~ msgid "Just me" #~ msgstr "Тек мен" #~ msgid "" #~ "Maps cannot find the place to check in to with Facebook. Please select " #~ "one from this list." #~ msgstr "" #~ "Карталар Facebook көмегімен белгілену үшін орынды таба алмады. Тізімнен " #~ "біреуін таңдаңыз." #~ msgid "Find a Route" #~ msgstr "Бағдарды табу" #~ msgid "Check in here" #~ msgstr "Осында белгілену" #~ msgid "Population:" #~ msgstr "Халық саны:" #~ msgid "Altitude:" #~ msgstr "Теңіз деңгейінен биіктігі:" #~ msgid "Opening hours:" #~ msgstr "Жұмыс істеу уақыты:" #~ msgid "Internet access:" #~ msgstr "Интернетпен байланыс:" #~ msgid "Toilets:" #~ msgstr "Әжетханалар:" #~ msgid "Wheelchair access:" #~ msgstr "Мүгедектер арбасымен қатынау:" #~ msgid "Phone:" #~ msgstr "Телефон:" #~ msgid "yes" #~ msgstr "иә" #~ msgid "limited" #~ msgstr "шектелген" #~ msgid "no" #~ msgstr "жоқ" #~ msgid "designated" #~ msgstr "арнайы" #~ msgid "OpenStreetMap URL is not valid" #~ msgstr "OpenStreetMap URL жарамсыз" #~ msgctxt "time range list" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgctxt "time range list" #~ msgid "%s %s %s" #~ msgstr "%s %s %s" #~ msgctxt "time range component" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgid "wired" #~ msgstr "сымды" #~ msgid "terminal" #~ msgstr "терминал" #~ msgid "service" #~ msgstr "қызмет" #~ msgid "Primary menu" #~ msgstr "Басты мәзір" #~ msgid "Don’t have an account?" #~ msgstr "Тіркелгіңіз жоқ па?" #~ msgid "%f h" #~ msgstr "%f сағ" #~ msgid "%f min" #~ msgstr "%f мин" #~ msgid "%f s" #~ msgstr "%f с" #~ msgid "org.gnome.Maps" #~ msgstr "org.gnome.Maps" #~ msgid "Open with another application" #~ msgstr "Басқа қолданбамен ашу" #~ msgid "Press enter to search" #~ msgstr "Іздеу үшін enter басыңыз" #~ msgid "Route search by OpenTripPlanner" #~ msgstr "Бағдарды іздеу OpenTripPlanner ұсынады" #~ msgid "Add destination" #~ msgstr "Мақсатты қосу" #~ msgid "Quit" #~ msgstr "Шығу" #~ msgid "Open Shape Layer…" #~ msgstr "Қабатты (shape) ашу…" #~ msgid "OK" #~ msgstr "ОК" #~ msgid "Load Map Layer" #~ msgstr "Карта қабатын жүктеу" #~ msgid "%f km" #~ msgstr "%f км" #~ msgid "%f m" #~ msgstr "%f м" #~ msgid "%f mi" #~ msgstr "%f миля" #~ msgid "%f ft" #~ msgstr "%f фут" #~ msgid "Position not found" #~ msgstr "Орны табылмады" #~ msgid "Failed to parse GeoJSON file" #~ msgstr "GeoJSON файлын талдау қатемен аяқталды" #~ msgid "Country code: %s" #~ msgstr "Ел коды: %s" #~ msgid "Population: %s" #~ msgstr "Халық саны: %s" #~ msgid "Wheelchair access: %s" #~ msgstr "Мүгедектер арбасымен қатынау: %s" #~ msgid "Last known location and accuracy" #~ msgstr "Соңғы белгілі орналасу және дәлдігі" #~ msgid "" #~ "Last known location (latitude and longitude in degrees) and accuracy (in " #~ "meters)." #~ msgstr "" #~ "Соңғы белгілі орналасу (ендігі және бойлығы, градуспен) және дәлдігі " #~ "(метрмен)." #~ msgid "Description of last known location of user." #~ msgstr "Пайдаланушының соңғы белгілі орналасудың сипаттамасы." #~ msgid "Whether the last known location was set manually by the user." #~ msgstr "" #~ "Соңғы белгілі орналасуды пайдаланушы қолмен көрсеткен ба, соны анықтайды." #~ msgid "I’m here!" #~ msgstr "Мен осындамын!" 070701000001D1000081A4000000000000000000000001664134090000134E000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/kn.po# Kannada translation for gnome-maps. # Copyright (C) 2013 gnome-maps's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-maps package. # prabodhcp , 2013 # Shankar Prasad , 2013. msgid "" msgstr "" "Project-Id-Version: gnome-maps gnome-3-10\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "maps&keywords=I18N+L10N&component=general\n" "POT-Creation-Date: 2013-12-18 20:54+0000\n" "PO-Revision-Date: 2013-12-30 17:35+0630\n" "Last-Translator: Shankar Prasad \n" "Language-Team: Kannada \n" "Language: kn\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Lokalize 1.5\n" #: ../data/gnome-maps.appdata.xml.in.h:1 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you're looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" #: ../data/gnome-maps.appdata.xml.in.h:2 msgid "" "
  • Search for country, region, city or street.
  • Search for specific " "types of locations, such as \"Pubs near Main Street, Boston\" or \"WiFi " "Access near Alexanderplatz, Berlin\"
  • " msgstr "" #: ../data/gnome-maps.appdata.xml.in.h:3 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" #. Translators: This is the program name. #: ../data/gnome-maps.desktop.in.in.h:1 ../src/application.js:54 #: ../src/mainWindow.js:341 ../src/main-window.ui.h:3 msgid "Maps" msgstr "ಮ್ಯಾಪ್ಸ್" #: ../data/gnome-maps.desktop.in.in.h:2 msgid "A simple maps application" msgstr "ಒಂದು ಸರಳ ನಕ್ಷೆಗಳ ಅನ್ವಯ" #: ../data/gnome-maps.desktop.in.in.h:3 msgid "Maps;" msgstr "ನಕ್ಷೆಗಳು;" #: ../data/org.gnome.maps.gschema.xml.in.h:1 msgid "Window size" msgstr "ಕಿಟಕಿ ಗಾತ್ರ" #: ../data/org.gnome.maps.gschema.xml.in.h:2 msgid "Window size (width and height)." msgstr "ಕಿಟಕಿಯ ಗಾತ್ರ (ಉದ್ದ ಮತ್ತು ಅಗಲ)" #: ../data/org.gnome.maps.gschema.xml.in.h:3 msgid "Window position" msgstr "ಕಿಟಕಿಯ ಸ್ಥಾನ" #: ../data/org.gnome.maps.gschema.xml.in.h:4 msgid "Window position (x and y)." msgstr "ಕಿಟಕಿಯ ಸ್ಥಾನ (x ಮತ್ತು y)." #: ../data/org.gnome.maps.gschema.xml.in.h:5 msgid "Window maximized" msgstr "" #: ../data/org.gnome.maps.gschema.xml.in.h:6 msgid "Window maximized state" msgstr "" #: ../data/org.gnome.maps.gschema.xml.in.h:7 msgid "Last known location and accuracy" msgstr "" #: ../data/org.gnome.maps.gschema.xml.in.h:8 msgid "" "Last known location (latitude and longitude in degrees) and accuracy (in " "meters)." msgstr "" #: ../data/org.gnome.maps.gschema.xml.in.h:9 msgid "Description of last known location" msgstr "" #: ../data/org.gnome.maps.gschema.xml.in.h:10 msgid "Description of last known location of user." msgstr "" #: ../data/org.gnome.maps.gschema.xml.in.h:11 msgid "Maximum number of search results" msgstr "" #: ../data/org.gnome.maps.gschema.xml.in.h:12 msgid "Maximum number of search results from geocode search." msgstr "" #: ../data/org.gnome.maps.gschema.xml.in.h:13 msgid "User set last known location" msgstr "" #: ../data/org.gnome.maps.gschema.xml.in.h:14 msgid "Last known location was set manually by user." msgstr "" #: ../src/app-menu.ui.h:1 msgid "About" msgstr "ಕುರಿತು" #: ../src/app-menu.ui.h:2 msgid "Quit" msgstr "ನಿರ್ಗಮಿಸು" #: ../src/context-menu.ui.h:1 msgid "What's here?" msgstr "ಇಲ್ಲೇನಿದೆ?" #: ../src/context-menu.ui.h:2 msgid "I'm here!" msgstr "ನಾನಿಲ್ಲಿದ್ದೇನೆ!" #: ../src/mainWindow.js:339 msgid "translator-credits" msgstr "prabodhcp , ಶಂಕರ್ ಪ್ರಸಾದ್ " #: ../src/mainWindow.js:342 msgid "A map application for GNOME" msgstr "GNOME ಗಾಗಿ ಒಂದು ನಕ್ಷೆಗಳ ಅನ್ವಯ" #: ../src/main-window.ui.h:1 msgid "Street" msgstr "ರಸ್ತೆ" #: ../src/main-window.ui.h:2 msgid "Satellite" msgstr "ಉಪಗ್ರಹ" #. Translators: Accuracy of user location information #: ../src/mapLocation.js:116 msgid "Unknown" msgstr "ಗೊತ್ತಿರದ" #. Translators: Accuracy of user location information #: ../src/mapLocation.js:119 msgid "Exact" msgstr "ನಿಖರ" #: ../src/mapLocation.js:123 msgid " km²" msgstr " km²" #. Translators: Showing name of place where user currently is and #. accuracy of this information (which is translated #. separately) #. #: ../src/userLocation.js:62 #, c-format msgid "" "%s\n" "Position Accuracy: %s" msgstr "" "%s\n" "ಸ್ಥಾನ ನಿಖರತೆ: %s" 070701000001D2000081A4000000000000000000000001664134090001020D000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/ko.po# Korean translation for gnome-maps. # Copyright (C) 2013 gnome-maps's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-maps package. # Seong-ho Cho , 2013-2019. # Kwangseob Jeong , 2018. # Jeeyong Um , 2019-2023. msgid "" msgstr "" "Project-Id-Version: gnome-maps master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2024-02-25 20:49+0000\n" "PO-Revision-Date: 2024-03-11 11:36+0900\n" "Last-Translator: Jeeyong Um \n" "Language-Team: GNOME Korea \n" "Language: ko\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: Poedit 3.4.2\n" #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.appdata.xml.in.in:6 data/org.gnome.Maps.desktop.in.in:4 #: data/ui/main-window.ui:27 src/application.js:64 src/mainWindow.js:147 #: src/mainWindow.js:647 msgid "Maps" msgstr "지도" #: data/org.gnome.Maps.appdata.xml.in.in:7 msgid "Find places around the world" msgstr "전세계의 장소를 찾아봅니다" # NOTE: false alarm #: data/org.gnome.Maps.appdata.xml.in.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "지도로 전 세계 모든 지도에 빠르게 접근할 수 있습니다. 도시, 거리, 친구를 만" "날 여러분이 찾는 장소를 빠르게 찾을 수 있습니다." #: data/org.gnome.Maps.appdata.xml.in.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "지도는 전세계 수많은 사람이 함께 만든 OpenStreenMap 데이터베이스를 사용합니" "다." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Maps.appdata.xml.in.in:451 src/mainWindow.js:644 msgid "The GNOME Project" msgstr "그놈 프로젝트" #: data/org.gnome.Maps.desktop.in.in:5 msgid "A simple maps application" msgstr "간단한 지도 프로그램" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in.in:14 msgid "Maps;" msgstr "Maps;지도;맵;" #: data/org.gnome.Maps.desktop.in.in:17 msgid "Allows your location to be shown on the map." msgstr "사용자 위치를 지도에 표시합니다." #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "최근 본 위치" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "최근 살펴본 위치의 좌표." #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "확대" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "확대 수준" #: data/org.gnome.Maps.gschema.xml:21 msgid "rotation" msgstr "회전하기" #: data/org.gnome.Maps.gschema.xml:22 msgid "Map rotation in radians" msgstr "라디안 단위로 지도 회전" #: data/org.gnome.Maps.gschema.xml:26 msgid "Map type" msgstr "지도 형식" #: data/org.gnome.Maps.gschema.xml:27 msgid "The type of map to display (street, aerial, etc.)" msgstr "지도 표시 형식(거리, 항공 등)" #: data/org.gnome.Maps.gschema.xml:31 msgid "Window size" msgstr "창 크기" #: data/org.gnome.Maps.gschema.xml:32 msgid "Window size (width and height)." msgstr "창 크기(너비 및 높이)." #: data/org.gnome.Maps.gschema.xml:36 msgid "Window position" msgstr "창 위치" #: data/org.gnome.Maps.gschema.xml:37 msgid "Window position (X and Y)." msgstr "창 위치(가로 및 세로)." #: data/org.gnome.Maps.gschema.xml:41 msgid "Window maximized" msgstr "창 최대화" #: data/org.gnome.Maps.gschema.xml:42 msgid "Window maximization state" msgstr "창 최대화 상태" #: data/org.gnome.Maps.gschema.xml:46 msgid "Maximum number of search results" msgstr "최대 검색 결과 수" #: data/org.gnome.Maps.gschema.xml:47 msgid "Maximum number of search results from geocode search." msgstr "지오코드 검색 결과의 최대 결과 개수." #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent places to store" msgstr "최근 위치를 저장할 개수" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited places to store." msgstr "최근 방문할 위치를 저장할 개수." #: data/org.gnome.Maps.gschema.xml:56 msgid "Number of recent routes to store" msgstr "최근 경로를 저장할 개수" #: data/org.gnome.Maps.gschema.xml:57 msgid "Number of recently visited routes to store." msgstr "최근 방문 경로를 저장할 개수." #: data/org.gnome.Maps.gschema.xml:61 msgid "OpenStreetMap username or email address" msgstr "OpenStreetMap 사용자 이름 및 전자메일 주소" #: data/org.gnome.Maps.gschema.xml:62 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "" "사용자가 OpenStreetMap 데이터를 편집하려고 접속했는지 여부를 나타냅니다." #: data/org.gnome.Maps.gschema.xml:66 msgid "Last used transportation type for routing" msgstr "최근 확인한 경로 안내 대중교통" #: data/org.gnome.Maps.gschema.xml:70 msgid "Show scale" msgstr "축척 표시" #: data/org.gnome.Maps.gschema.xml:71 msgid "Whether to show the scale." msgstr "축척 표시 여부." #: data/ui/context-menu.ui:6 msgid "Route from Here" msgstr "여기서부터 경로 표시" #: data/ui/context-menu.ui:10 msgid "Add Intermediate Destination" msgstr "경유지 추가" #: data/ui/context-menu.ui:14 msgid "Route to Here" msgstr "여기까지 경로 표시" #: data/ui/context-menu.ui:20 msgid "What's Here?" msgstr "여기에 무엇이 있나요?" #: data/ui/context-menu.ui:24 msgid "Copy Location" msgstr "위치 복사" #: data/ui/context-menu.ui:28 msgid "Add to OpenStreetMap…" msgstr "OpenStreetMap에 추가…" #: data/ui/export-view-dialog.ui:7 msgid "Export view" msgstr "내보내기 보기" #: data/ui/export-view-dialog.ui:16 data/ui/send-to-dialog.ui:10 #: data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "취소(_C)" #: data/ui/export-view-dialog.ui:26 msgid "_Export" msgstr "내보내기(_E)" #. Translators: This is a tooltip #: data/ui/favorite-list-row.ui:72 msgid "Remove Favorite" msgstr "즐겨찾기 삭제" #: data/ui/favorites-popover.ui:11 msgid "No Favorites" msgstr "즐겨찾기 없음" #: data/ui/favorites-popover.ui:12 msgid "Add places to your favorites to get them listed here" msgstr "이 목록에 장소를 표시하려면 즐겨찾기에 추가하세요" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:11 src/geoclue.js:106 msgid "Current Location" msgstr "현재 위치" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:19 msgid "Layers" msgstr "레이어" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:11 msgid "Print Route" msgstr "경로 인쇄" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:21 msgid "Favorites" msgstr "즐겨찾기" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:30 msgid "Route Planner" msgstr "경로 계획 도우미" #: data/ui/help-overlay.ui:12 msgctxt "shortcut window" msgid "General" msgstr "일반" #: data/ui/help-overlay.ui:15 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "바로 가기 표시" #: data/ui/help-overlay.ui:21 msgctxt "shortcut window" msgid "Search" msgstr "검색" #: data/ui/help-overlay.ui:27 msgctxt "shortcut window" msgid "Explore points-of-interest" msgstr "관심 지점 둘러보기" #: data/ui/help-overlay.ui:33 msgctxt "shortcut window" msgid "Show last search results" msgstr "마지막 검색 결과 보기" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "경로 계획 도우미 전환" #: data/ui/help-overlay.ui:45 msgctxt "shortcut window" msgid "Print route" msgstr "경로 인쇄" #: data/ui/help-overlay.ui:51 msgctxt "shortcut window" msgid "Quit" msgstr "끝내기" #: data/ui/help-overlay.ui:57 msgctxt "shortcut window" msgid "Open main menu" msgstr "메인 메뉴 열기" #: data/ui/help-overlay.ui:65 msgctxt "shortcut window" msgid "Map View" msgstr "지도 보기" #: data/ui/help-overlay.ui:68 msgctxt "shortcut window" msgid "Zoom in" msgstr "확대" #: data/ui/help-overlay.ui:74 msgctxt "shortcut window" msgid "Zoom out" msgstr "축소" #: data/ui/help-overlay.ui:80 msgctxt "shortcut window" msgid "Rotate clockwise" msgstr "시계 방향으로 회전" #: data/ui/help-overlay.ui:86 msgctxt "shortcut window" msgid "Rotate counter-clockwise" msgstr "반시계 방향으로 회전" #: data/ui/help-overlay.ui:92 msgctxt "shortcut window" msgid "Reset rotation" msgstr "회전 초기화" #: data/ui/help-overlay.ui:98 msgctxt "shortcut window" msgid "Toggle scale" msgstr "축척 바꾸기" #: data/ui/help-overlay.ui:104 msgctxt "shortcut window" msgid "Go to current location" msgstr "현재 위치로 이동" #: data/ui/help-overlay.ui:114 msgctxt "shortcut window" msgid "Switch to street view" msgstr "거리 보기로 전환" #: data/ui/help-overlay.ui:121 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "공중 보기로 전환" #: data/ui/help-overlay.ui:127 msgctxt "shortcut window" msgid "Open shape layer" msgstr "도형 레이어 열기" #: data/ui/layers-popover.ui:7 msgid "Show Scale" msgstr "축척 표시" #: data/ui/layers-popover.ui:16 msgid "Enable Experimental Map" msgstr "실험적인 지도 사용하기" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:21 msgid "Open Shape Layer…" msgstr "도형 레이어 열기…" #: data/ui/main-window.ui:8 msgid "Set up OpenStreetMap Account…" msgstr "OpenStreetMap 계정 설정…" #: data/ui/main-window.ui:12 msgid "Export as Image…" msgstr "그림으로 내보내기…" #: data/ui/main-window.ui:17 msgid "_Keyboard Shortcuts" msgstr "키보드 바로 가기 키(_K)" #: data/ui/main-window.ui:22 msgid "About Maps" msgstr "지도 정보" #: data/ui/main-window.ui:48 msgid "Main Menu" msgstr "주 메뉴" #: data/ui/osm-account-dialog.ui:5 msgid "OpenStreetMap Account" msgstr "OpenStreetMap 계정" #: data/ui/osm-account-dialog.ui:31 msgid "Sign In To Edit Maps" msgstr "지도를 수정하기 위해 로그인" #: data/ui/osm-account-dialog.ui:32 msgid "Help to improve the map, using an OpenStreetMap account." msgstr "지도 개선을 도와주세요. OpenStreetMap 계정을 사용할 수 있습니다." #: data/ui/osm-account-dialog.ui:36 msgid "Sign In" msgstr "접속" #: data/ui/osm-account-dialog.ui:59 msgid "Verification" msgstr "인증" #: data/ui/osm-account-dialog.ui:60 msgid "" "Copy the verification code shown when authorizing access in the browser." msgstr "웹 브라우저에서 접근을 허용하려면 여기 보이는 인증 코드를 복사하세요." #: data/ui/osm-account-dialog.ui:69 msgid "Verification Code" msgstr "인증 코드" #: data/ui/osm-account-dialog.ui:75 msgid "Verify" msgstr "검증" #: data/ui/osm-account-dialog.ui:110 msgid "Signed In" msgstr "로그인 함" #: data/ui/osm-account-dialog.ui:111 msgid "Your OpenStreetMap account is active." msgstr "OpenStreetMap 계정을 활성화했습니다." #: data/ui/osm-account-dialog.ui:129 msgid "Sign Out" msgstr "나가기" #: data/ui/osm-edit-address.ui:11 msgid "Street" msgstr "거리" #: data/ui/osm-edit-address.ui:22 msgid "House number" msgstr "지번" #: data/ui/osm-edit-address.ui:33 msgid "Postal code" msgstr "우편 번호" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:44 msgid "City" msgstr "도시" #: data/ui/osm-edit-dialog.ui:8 msgctxt "dialog title" msgid "Edit on OpenStreetMap" msgstr "OpenStreetMap에서 편집" #: data/ui/osm-edit-dialog.ui:57 msgid "Type" msgstr "형식" #: data/ui/osm-edit-dialog.ui:79 msgid "None" msgstr "없음" #: data/ui/osm-edit-dialog.ui:108 msgid "Add Field" msgstr "필드 추가" #: data/ui/osm-edit-dialog.ui:130 msgid "Comment" msgstr "설명" #: data/ui/osm-edit-dialog.ui:158 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "OpenStreetMap 데이터를 활용하는 모든 지도에\n" "바뀐 지도가 나타납니다." #: data/ui/osm-edit-dialog.ui:186 msgid "Recently Used" msgstr "최근 사용" #: data/ui/osm-edit-dialog.ui:225 src/mapView.js:671 msgid "Cancel" msgstr "취소" #: data/ui/osm-edit-dialog.ui:238 src/osmEditDialog.js:531 msgid "Next" msgstr "다음" #: data/ui/osm-edit-wikipedia.ui:8 msgid "Article" msgstr "관련 문서" #: data/ui/osm-edit-wikipedia.ui:21 msgid "Wikidata tag" msgstr "위키데이터 태그" #: data/ui/osm-edit-wikipedia.ui:32 msgid "Load Wikidata tag for article" msgstr "관련 위키데이터 태그 불러오기" #: data/ui/place-popover.ui:23 src/searchBar.js:55 msgid "Explore Nearby Places" msgstr "주변 장소 둘러보기" #: data/ui/place-popover.ui:82 src/application.js:277 msgid "No results found" msgstr "결과가 없습니다" #: data/ui/place-popover.ui:92 src/application.js:255 msgid "An error has occurred" msgstr "오류가 발생했습니다" #. Translators: This is a tooltip #: data/ui/route-entry.ui:12 msgid "Change Route Order" msgstr "경로 순서 바꾸기" #: data/ui/send-to-dialog.ui:7 msgid "Open Location" msgstr "위치 열기" #: data/ui/send-to-dialog.ui:64 msgid "Copy" msgstr "복사" #: data/ui/send-to-dialog.ui:70 msgid "Send To…" msgstr "보내기…" #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:62 msgid "Open Shape Layer" msgstr "도형 레이어 열기" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "열기(_O)" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:32 msgid "Toggle visible" msgstr "보기 상태 전환" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:44 msgid "Remove Shape Layer" msgstr "도형 레이어 제거" #: data/ui/sidebar.ui:207 msgid "Route search by GraphHopper" msgstr "그래프 하퍼 경로 검색" #: data/ui/sidebar.ui:272 msgid "" "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of " "transportation,\n" "e.g. a national provider might not include airlines, and a local provider " "could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" "제 3자 서비스에서 제공하는 대중 교통 운행 일정입니다.\n" "그놈에서는 운행 경로와 일정의 정확성을 보증할 수 없습니다.\n" "서비스 제공자에 따라 이용 가능한 모든 교통 수단을 제공하는 것은 아님에\n" "주의해주세요. 예를 들어 전국 단위 제공자는 항공편을 제공하지 않는다거나\n" "지역 제공자가 지방 열차편 정보를 제공하지 않을 수 있습니다.\n" "명칭과 브랜드는 상표법 적용이 가능할 경우 등록 상표로 간주합니다." #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:98 msgid "Hide intermediate stops and information" msgstr "중간 정류장 및 정보 숨김" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:156 msgid "Show intermediate stops and information" msgstr "중간 정류장 및 정보 표시" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:16 msgid "Leave Now" msgstr "지금 출발" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:17 msgid "Leave By" msgstr "출발 수단" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:18 msgid "Arrive By" msgstr "도착 수단" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:85 msgid "Show" msgstr "보이기" #: data/ui/transit-options-panel.ui:95 msgid "Buses" msgstr "버스" #: data/ui/transit-options-panel.ui:101 msgid "Trams" msgstr "트램" #: data/ui/transit-options-panel.ui:107 msgid "Trains" msgstr "열차" #: data/ui/transit-options-panel.ui:113 msgid "Subway" msgstr "지하철" #: data/ui/transit-options-panel.ui:119 msgid "Ferries" msgstr "선박" #: data/ui/transit-options-panel.ui:125 msgid "Airplanes" msgstr "비행기" #. Translators: This is a tooltip #: data/ui/place-bar.ui:33 data/ui/place-buttons.ui:27 msgid "Share Location" msgstr "위치 공유" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:11 msgid "Add to new route" msgstr "새 경로에 추가" #. Translators: This is the button to find a route to a place #: data/ui/place-buttons.ui:15 msgid "Directions" msgstr "방향" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:36 msgid "Mark as Favorite" msgstr "즐겨찾기 표시" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:44 msgid "Edit on OpenStreetMap" msgstr "OpenStreetMap에서 편집" #. Translators: This is a tooltip #: data/ui/place-view.ui:52 msgid "Share location" msgstr "위치 공유" #: data/ui/poi-category-goback-row.ui:22 msgid "Back to Main Categories" msgstr "주요 분류로 돌아가기" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:19 msgid "Reset Rotation" msgstr "회전 초기화" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:32 msgid "Zoom Out" msgstr "축소" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:43 src/mapView.js:1246 msgid "Zoom In" msgstr "확대" #: lib/maps-file-data-source.c:262 lib/maps-file-data-source.c:338 #: lib/maps-file-data-source.c:418 msgid "Failed to find tile structure in directory" msgstr "디렉터리에서 타일 구조 찾기에 실패했습니다" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "XML 문서 해석에 실패했습니다" #: lib/maps-osm.c:250 lib/maps-osm.c:403 msgid "Missing required attributes" msgstr "필요한 속성이 빠졌습니다" #: lib/maps-osm.c:451 lib/maps-osm.c:494 msgid "Could not find OSM element" msgstr "OSM 구성 요소를 찾을 수 없습니다" #: lib/maps-osm.c:508 msgid "Could not find user element" msgstr "사용자 구성 요소를 찾을 수 없습니다" #: src/application.js:78 msgid "A path to a local tiles directory structure" msgstr "로컬 타일 디렉터리 구조 경로" #: src/application.js:84 msgid "Tile size for local tiles directory" msgstr "로컬 타일 디렉터리의 타일 크기" #: src/application.js:88 msgid "Show the version of the program" msgstr "프로그램 버전 보기" #: src/application.js:94 msgid "Search for places" msgstr "장소 검색" #: src/application.js:105 src/application.js:106 msgid "[FILE…|URI]" msgstr "[<파일>…|]" #: src/application.js:284 #, javascript-format msgid "Invalid maps: URI: %s" msgstr "잘못된 지도: URI: %s" #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:75 #, javascript-format msgid "Maps at %f, %f.png" msgstr "%f, %f의 지도.png" #: src/exportViewDialog.js:174 msgid "Unable to export view" msgstr "보기 화면을 내보낼 수 없습니다" #: src/favoriteListRow.js:42 msgid "Favorite removed" msgstr "즐겨찾기를 삭제함" #: src/favoriteListRow.js:43 msgid "Undo" msgstr "실행 취소" #: src/geoJSONSource.js:73 msgid "invalid coordinate" msgstr "잘못된 좌표" #: src/geoJSONSource.js:126 src/geoJSONSource.js:166 src/geoJSONSource.js:181 msgid "parse error" msgstr "해석 오류" #: src/geoJSONSource.js:160 msgid "unknown geometry" msgstr "알 수 없는 지형 정보" #: src/graphHopper.js:101 src/transitPlan.js:175 msgid "Route request failed." msgstr "경로 요청에 실패했습니다." #: src/graphHopper.js:108 src/transitPlan.js:167 msgid "No route found." msgstr "경로가 없습니다." #: src/graphHopper.js:195 src/transitplugins/openTripPlanner.js:1163 msgid "Start!" msgstr "시작!" #: src/mainWindow.js:59 msgid "All Layer Files" msgstr "모든 레이어 파일" #: src/mainWindow.js:522 msgid "Failed to connect to location service" msgstr "위치 서비스 연결에 실패했습니다" #: src/mainWindow.js:527 msgid "Turn on location services" msgstr "위치 서비스 켜기" #: src/mainWindow.js:528 msgid "Location Settings" msgstr "위치 정보 설정" #: src/mainWindow.js:645 msgid "translator-credits" msgstr "" "조성호 \n" "정광섭 \n" "엄지용 " #: src/mainWindow.js:649 msgid "Copyright © 2011 – 2023 Red Hat, Inc. and The GNOME Maps authors" msgstr "Copyright © 2011 – 2023 Red Hat, Inc. and The GNOME Maps authors" #: src/mainWindow.js:665 #, javascript-format msgid "Map data by %s and contributors" msgstr "%s와(과) 기여자의 지도 데이터" #: src/mainWindow.js:666 msgid "Map Data Provider" msgstr "지도 데이터 제공자" #: src/mainWindow.js:678 msgid "Map Tile Provider" msgstr "지도 타일 제공자" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:686 #, javascript-format msgid "Map tiles provided by %s" msgstr "%s에서 제공한 지도 타일" #: src/mainWindow.js:716 msgid "Search Provider" msgstr "검색 제공자" #: src/mainWindow.js:719 #, javascript-format msgid "Search provided by %s using %s" msgstr "%s에서 %s을(를) 활용한 검색 기능 제공함" #: src/mapView.js:645 src/mapView.js:710 msgid "Failed to open layer" msgstr "레이어 열기에 실패했습니다" #: src/mapView.js:664 msgid "Do you want to continue?" msgstr "계속 하시겠습니까?" #: src/mapView.js:665 #, javascript-format msgid "" "You are about to open files with a total size of %s MB. This could take some " "time to load" msgstr "%s MB 크기의 파일 열기를 시도하였습니다. 이 작업은 시간이 걸립니다" #: src/mapView.js:672 src/transitplugins/openTripPlanner.js:1239 #: src/transitplugins/openTripPlanner2.js:267 msgid "Continue" msgstr "계속 진행" #: src/mapView.js:704 msgid "File type is not supported" msgstr "파일 형식을 지원하지 않습니다" #: src/mapView.js:741 msgid "Failed to open GeoURI" msgstr "GeoURI 열기에 실패했습니다" #: src/mapView.js:1205 msgid "Nothing found here!" msgstr "여기에 아무것도 없습니다!" #: src/mapView.js:1245 msgid "Zoom in to add location" msgstr "위치 추가를 위해 확대" #: src/mapView.js:1266 msgid "Location was added in OpenStreetMap" msgstr "OpenStreetMap에 위치를 추가했습니다" #. switch back to the sign-in view, and show a toast indicating #. that verification failed #: src/osmAccountDialog.js:134 msgid "The verification code didn’t match, please try again." msgstr "인증 코드가 일치하지 않습니다. 다시 시도하십시오." #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:335 msgid "Incorrect user name or password" msgstr "사용자 이름 또는 암호가 올바르지 않습니다" #: src/osmConnection.js:337 msgid "Success" msgstr "성공" #: src/osmConnection.js:339 msgid "Bad request" msgstr "잘못된 요청" #: src/osmConnection.js:341 msgid "Object not found" msgstr "객체가 없습니다" #: src/osmConnection.js:343 msgid "Conflict, someone else has just modified the object" msgstr "누군가가 객체를 수정하여 바꾼 동작이 중복됐습니다" #: src/osmConnection.js:345 msgid "Object has been deleted" msgstr "객체를 삭제했습니다" #: src/osmConnection.js:347 msgid "Way or relation refers to non-existing children" msgstr "길 또는 관계는 '없는 하위 구성 요소'를 참조합니다" #: src/osmEditDialog.js:106 msgid "Name" msgstr "이름" #: src/osmEditDialog.js:109 msgid "The official name. This is typically what appears on signs." msgstr "공식 이름입니다. 보통 이정표에 나타납니다." #: src/osmEditDialog.js:112 msgid "Address" msgstr "주소" #: src/osmEditDialog.js:120 src/placeView.js:275 msgid "Website" msgstr "웹사이트" #: src/osmEditDialog.js:124 msgid "This is not a valid URL. Make sure to include http:// or https://." msgstr "" "올바른 URL이 아닙니다. http:// 또는 https:// 를 포함하고 있는지 확인해주세요." #: src/osmEditDialog.js:125 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" "공식 웹사이트입니다. http://example.com/index.html 대신 http://example.com과 " "같은 식의 기본 URL 형식을 활용하십시오." #: src/osmEditDialog.js:130 msgid "Phone" msgstr "전화번호" #: src/osmEditDialog.js:134 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" "전화번호입니다. + 기호로 시작하는 국제 전화번호 형식을 사용하십시오. 개인 전" "화번호를 입력할 때 해당 국가의 개인 정보 보호법을 따르십시오." #: src/osmEditDialog.js:139 src/placeView.js:308 msgid "Email" msgstr "전자메일" #: src/osmEditDialog.js:144 msgid "" "This is not a valid email address. Make sure to not include the mailto: " "protocol prefix." msgstr "올바른 전자메일 주소가 아닙니다. mailto: 를 제외했는지 확인해주세요." #: src/osmEditDialog.js:145 msgid "" "Contact email address for inquiries. Add only email addresses that are " "intended to be publicly used." msgstr "" "문의사항은 전자메일로 연락주세요. 공개적으로 사용할 전자메일 주소만 추가해야 " "합니다." #. Translators: This is the text for the "Wikipedia" link at the end #. of summaries #: src/osmEditDialog.js:149 src/placeView.js:727 msgid "Wikipedia" msgstr "위키피디아" #: src/osmEditDialog.js:156 src/placeView.js:399 msgid "Opening hours" msgstr "개장 시간" #: src/osmEditDialog.js:161 msgid "See the link in the label for help on format." msgstr "형식 도움말을 보려면 레이블의 링크를 살펴보십시오." #. TODO: this is a bit of a work-around to re-interpret the population, #. * stored as a string into an integer to convert back to a locale- #. * formatted string. Ideally it should be kept as an integer value #. * in the Place class. But this will also need to be handled by the #. * PlaceStore, possible in a backwards-compatible way #. #: src/osmEditDialog.js:164 src/placeView.js:509 msgid "Population" msgstr "인구" #: src/osmEditDialog.js:169 src/placeView.js:538 msgid "Altitude" msgstr "고도" #: src/osmEditDialog.js:172 msgid "Elevation (height above sea level) of a point in meters." msgstr "미터 단위의 높이(해발고도)입니다." #: src/osmEditDialog.js:175 msgid "Wheelchair access" msgstr "휠체어 접근" #: src/osmEditDialog.js:178 src/osmEditDialog.js:187 src/osmEditDialog.js:198 #: src/osmEditDialog.js:233 msgid "Yes" msgstr "예" #: src/osmEditDialog.js:179 src/osmEditDialog.js:188 src/osmEditDialog.js:199 #: src/osmEditDialog.js:234 msgid "No" msgstr "아니요" #: src/osmEditDialog.js:180 msgid "Limited" msgstr "제한" #: src/osmEditDialog.js:181 msgid "Designated" msgstr "지정됨" #: src/osmEditDialog.js:184 msgid "Internet access" msgstr "인터넷 접속" #: src/osmEditDialog.js:189 msgid "Wi-Fi" msgstr "무선 네트워크" #: src/osmEditDialog.js:190 msgid "Wired" msgstr "유선" #: src/osmEditDialog.js:191 msgid "Terminal" msgstr "터미널" #: src/osmEditDialog.js:192 msgid "Service" msgstr "서비스" #: src/osmEditDialog.js:195 msgid "Takeout" msgstr "포장 판매" #: src/osmEditDialog.js:200 msgid "Only" msgstr "포장만" #: src/osmEditDialog.js:203 msgid "Religion" msgstr "종교" #: src/osmEditDialog.js:206 src/translations.js:286 msgid "Animism" msgstr "애니미즘" #: src/osmEditDialog.js:207 msgid "Bahá’í" msgstr "바하이교" #: src/osmEditDialog.js:208 src/translations.js:288 msgid "Buddhism" msgstr "불교" #: src/osmEditDialog.js:209 src/translations.js:289 msgid "Caodaism" msgstr "까오다이교" #: src/osmEditDialog.js:210 src/translations.js:290 msgid "Christianity" msgstr "크리스트교" #: src/osmEditDialog.js:211 src/translations.js:291 msgid "Confucianism" msgstr "유교" #: src/osmEditDialog.js:212 src/translations.js:292 msgid "Hinduism" msgstr "힌두교" #: src/osmEditDialog.js:213 src/translations.js:293 msgid "Jainism" msgstr "자이나교" #: src/osmEditDialog.js:214 src/translations.js:294 msgid "Judaism" msgstr "유대교" #: src/osmEditDialog.js:215 src/translations.js:295 msgid "Islam" msgstr "이슬람교" #: src/osmEditDialog.js:216 src/translations.js:296 msgid "Multiple Religions" msgstr "다신교" #: src/osmEditDialog.js:217 src/translations.js:297 msgid "Paganism" msgstr "켈트 파가니즘" #: src/osmEditDialog.js:218 src/translations.js:298 msgid "Pastafarianism" msgstr "FSM교" #: src/osmEditDialog.js:219 src/translations.js:299 msgid "Scientology" msgstr "사이언톨로지" #: src/osmEditDialog.js:220 src/translations.js:300 msgid "Shinto" msgstr "신토(しんとう)" #: src/osmEditDialog.js:221 src/translations.js:301 msgid "Sikhism" msgstr "시크교" #: src/osmEditDialog.js:222 src/translations.js:302 msgid "Spiritualism" msgstr "심령술" #: src/osmEditDialog.js:223 src/translations.js:303 msgid "Taoism" msgstr "도교" #: src/osmEditDialog.js:224 src/translations.js:304 msgid "Unitarian Universalism" msgstr "유니테리안 유니버설리즘" #: src/osmEditDialog.js:225 src/translations.js:305 msgid "Voodoo" msgstr "부두교" #: src/osmEditDialog.js:226 src/translations.js:306 msgid "Yazidism" msgstr "야지디교" #: src/osmEditDialog.js:227 src/translations.js:307 msgid "Zoroastrianism" msgstr "조로아스터교" #: src/osmEditDialog.js:230 src/poiCategories.js:176 msgid "Toilets" msgstr "화장실" #: src/osmEditDialog.js:237 msgid "Note" msgstr "참고" #: src/osmEditDialog.js:240 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" "요소, 작성자의 작성 의도, 사후 개선을 위한 힌트에 대해 명확하지 않은 정보를 " "알리려는 용도로 사용하는 정보입니다." #: src/osmEditDialog.js:339 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "OpenStreetMap에 추가" #: src/osmEditDialog.js:393 msgid "Select Type" msgstr "형식 선택" #: src/osmEditDialog.js:515 msgid "Done" msgstr "완료" #: src/osmEditDialog.js:818 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "" "사용하는 형식에는 “ko:게시글 제목”처럼 언어 코드 및 게시글 제목을 넣어야합니" "다." #: src/osmEditDialog.js:824 msgid "Use the reload button to load the Wikidata tag for the selected article" msgstr "선택한 문서의 위키데이터 태그를 불러오려면 다시 읽기 단추를 눌러주세요" #: src/osmEditDialog.js:832 msgid "Couldn't find Wikidata tag for article" msgstr "해당 문서에 대한 위키데이터 태그를 찾을 수 없습니다" #: src/photonUtils.js:118 msgid "Unnamed place" msgstr "이름 없는 장소" #: src/placeEntry.js:274 msgid "Failed to parse Geo URI" msgstr "지리 URI 해석에 실패했습니다" #: src/placeEntry.js:286 msgid "Failed to parse Maps URI" msgstr "지도 URI 해석에 실패했습니다" #. 300 ft (300 * 12 * 0.0254 m) #. #. * Translators: This a format string for showing a distance to a place #. * is lower than a "quite short" distance. #. * The "less than" symbol can be substituded with an appropriate one, if #. * needed (e.g. using the correct direction, or alternative symbol). #. * The %s should be kept, and is substituted with a label representing the #. * short distance. The \u2009 (thin space) could also be adjusted if needed #: src/placeListRow.js:46 #, javascript-format msgctxt "short distance format string" msgid "< %s" msgstr "< %s" #: src/placeView.js:263 msgid "Coordinates" msgstr "좌표" #: src/placeView.js:267 msgid "Accuracy" msgstr "위치 정확도" #. Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) #: src/placeView.js:270 #, javascript-format msgid "Accuracy: %s" msgstr "위치 정확도: %s" #. since the phone numbers are typically always rendered #. * left-to-right, insert an explicit LRM char to avoid issues #. * with phone numbers in international format starting with a + #. * which is considered a "weak" character to determine Unicode #. * text direction #. #: src/placeView.js:289 msgid "Phone number" msgstr "전화번호" #. If a reference to a named floor (named or symbolic) exists #. * refer to it directly. #. #. Translators: #. * This is a reference to named building floor, using a label #. * or a code, as "displayed in the elevator" #. #: src/placeView.js:323 src/placeView.js:362 msgid "Floor" msgstr "층" #: src/placeView.js:325 #, javascript-format msgid "Floor %s" msgstr "%s층" #: src/placeView.js:337 msgid "At ground level" msgstr "지상층" #. Translators: #. * This is a reference to a number of floors above #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:346 #, javascript-format msgid "%s floor above ground level" msgid_plural "%s floors above ground level" msgstr[0] "지상 %s층" #. Translators: #. * This is a reference to a number of floors below #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:357 #, javascript-format msgid "%s floor below ground level" msgid_plural "%s floors below ground level" msgstr[0] "지하 %s층" #. Translators: #. * The establishment offers customers to purchase meals #. * (or similar) to be consumed elsewhere #. #: src/placeView.js:375 msgid "Offers takeout" msgstr "포장 가능" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed on-premise. #. #: src/placeView.js:383 msgid "Does not offer takeout" msgstr "포장 불가능" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed elsewhere. E.g. #. * there is no seating on-premise for eating/drinking #. #: src/placeView.js:392 msgid "Only offers takeout" msgstr "포장만 가능" #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/placeView.js:409 msgid "Public internet access" msgstr "공공 인터넷 접속" #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/placeView.js:418 msgid "No internet access" msgstr "인터넷 접속 불가" #. Translators: #. * This means a WLAN Hotspot, also known as wireless, wifi or Wi-Fi. #. #: src/placeView.js:426 msgid "Public Wi-Fi" msgstr "공개 와이파이" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/placeView.js:434 msgid "Wired internet access" msgstr "유선 인터넷 접속" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/placeView.js:442 msgid "Computers available for use" msgstr "컴퓨터 사용 가능" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/placeView.js:450 msgid "Internet assistance available" msgstr "인터넷 지원 가능" #: src/placeView.js:456 msgid "No toilets available" msgstr "화장실 사용 불가" #: src/placeView.js:459 msgid "Toilets available" msgstr "화장실 사용 가능" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #: src/placeView.js:468 msgid "Wheelchair accessible" msgstr "휠체어 접근 가능" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/placeView.js:478 msgid "Limited wheelchair accessibility" msgstr "제한적 휠체어 접근성" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #: src/placeView.js:487 msgid "Not wheelchair accessible" msgstr "휠체어 접근 불가" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/placeView.js:497 msgid "Designated for wheelchair users" msgstr "휠체어 사용자용" #. * #. * Translators: this is a label indicating an altitude below #. * sea level, where the %s placeholder is the altitude relative #. * to mean sea level in the "negative direction" #. #: src/placeView.js:528 #, javascript-format msgid "%s below sea level" msgstr "해수면 밑 %s" #. * #. * Translators: this indicates a place is located at (or very #. * close to) mean sea level #. #: src/placeView.js:535 msgid "At sea level" msgstr "해수면" #: src/placeView.js:544 msgid "Religion:" msgstr "종교시설:" #: src/place.js:570 msgid "Place not found in OpenStreetMap" msgstr "OpenStreetMap에 해당 위치가 없습니다" #: src/place.js:577 msgid "Coordinates in URL are not valid" msgstr "URL 좌표가 올바르지 않습니다" #: src/place.js:586 msgid "URL is not supported" msgstr "URL을 지원하지 않습니다" #: src/poiCategories.js:132 msgid "Amenities" msgstr "편의 시설" #: src/poiCategories.js:135 msgid "ATMs" msgstr "ATM" #: src/poiCategories.js:141 msgid "Post Boxes" msgstr "우체통" #: src/poiCategories.js:147 msgid "Post Offices" msgstr "우체국" #: src/poiCategories.js:153 msgid "Police" msgstr "경찰서" #: src/poiCategories.js:159 msgid "Libraries" msgstr "도서관" #: src/poiCategories.js:165 msgid "Pharmacies" msgstr "약국" #: src/poiCategories.js:171 msgid "Recycling" msgstr "분리수거함" #: src/poiCategories.js:182 msgid "Wheelchair-accessible Toilets" msgstr "장애인 화장실" #: src/poiCategories.js:188 msgid "Baggage Lockers" msgstr "물품보관함" #: src/poiCategories.js:196 msgid "Eating & Drinking" msgstr "식음료 시설" #: src/poiCategories.js:200 msgid "Restaurants" msgstr "식당" #: src/poiCategories.js:205 msgid "Fast Food" msgstr "패스트푸드" #: src/poiCategories.js:210 msgid "Food Courts" msgstr "푸드코트" #: src/poiCategories.js:215 msgid "Pubs" msgstr "술집(Pub)" #: src/poiCategories.js:221 msgid "Bars" msgstr "술집(Bar)" #: src/poiCategories.js:226 msgid "Cafes" msgstr "카페" #: src/poiCategories.js:231 msgid "Ice Cream" msgstr "아이스크림" #: src/poiCategories.js:236 msgid "Food, Snacks, and Beverage Machines" msgstr "식음료 자판기" #: src/poiCategories.js:244 msgid "Shopping" msgstr "쇼핑" #: src/poiCategories.js:248 msgid "Supermarkets" msgstr "슈퍼마켓" #: src/poiCategories.js:254 msgid "Convenience Stores" msgstr "편의점" #: src/poiCategories.js:259 msgid "Shopping Malls" msgstr "쇼핑몰" #: src/poiCategories.js:265 msgid "Clothes" msgstr "의류 매장" #: src/poiCategories.js:271 msgid "Shoes" msgstr "신발 매장" #: src/poiCategories.js:276 msgid "Electronics" msgstr "전자제품 매장" #: src/poiCategories.js:282 msgid "Alcohol" msgstr "주류 매장" #: src/poiCategories.js:288 msgid "Bakeries" msgstr "제과점" #: src/poiCategories.js:294 msgid "Flowers" msgstr "꽃집" #: src/poiCategories.js:301 msgid "Transportation" msgstr "교통" #: src/poiCategories.js:305 msgid "Bus & Tram Stops" msgstr "버스(트램)정류장" #: src/poiCategories.js:313 msgid "Train & Subway Stations" msgstr "기차(지하철)역" #: src/poiCategories.js:321 msgid "Tickets" msgstr "매표소" #: src/poiCategories.js:329 msgid "Parking" msgstr "주차장" #: src/poiCategories.js:334 msgid "Bicycle Parking" msgstr "자전거 주차장" #: src/poiCategories.js:339 msgid "Bicycle Rental" msgstr "자전거 대여소" #: src/poiCategories.js:344 msgid "Car Rental" msgstr "차량 대여소" #: src/poiCategories.js:349 msgid "Fuel" msgstr "주유소" #: src/poiCategories.js:354 msgid "EV Charging" msgstr "전기차 충전소" #: src/poiCategories.js:362 msgid "Healthcare" msgstr "보건 시설" #: src/poiCategories.js:366 msgid "Clinics" msgstr "진료소" #: src/poiCategories.js:372 msgid "Hospitals" msgstr "병원" #: src/poiCategories.js:378 msgid "Dentists" msgstr "치과" #: src/poiCategories.js:386 msgid "Accommodation" msgstr "숙박 시설" #: src/poiCategories.js:390 msgid "Hotels" msgstr "호텔" #: src/poiCategories.js:395 msgid "Hostels" msgstr "호스텔" #: src/poiCategories.js:400 msgid "Bed & Breakfast" msgstr "게스트하우스" #: src/poiCategories.js:405 msgid "Campings" msgstr "야영장" #: src/poiCategories.js:412 msgid "Recreation" msgstr "오락 시설" #: src/poiCategories.js:416 msgid "Parks" msgstr "공원" #: src/poiCategories.js:421 msgid "Playgrounds" msgstr "놀이터" #: src/poiCategories.js:425 msgid "Beaches" msgstr "해수욕장" #: src/poiCategories.js:430 msgid "Nature Reserves" msgstr "자연보호구역" #: src/poiCategories.js:436 msgid "Theme Parks" msgstr "놀이공원" #: src/poiCategories.js:441 msgid "Theaters" msgstr "극장" #: src/poiCategories.js:447 msgid "Movie Theaters" msgstr "영화관" #: src/poiCategories.js:453 msgid "Night Clubs" msgstr "나이트클럽" #: src/poiCategories.js:460 msgid "Tourism" msgstr "여행자 시설" #: src/poiCategories.js:464 msgid "Museums" msgstr "박물관" #: src/poiCategories.js:470 msgid "Attractions" msgstr "놀이기구" #: src/poiCategories.js:475 msgid "Artworks" msgstr "미술 작품" #: src/poiCategories.js:480 msgid "Tourist Information" msgstr "여행자 안내소" #: src/poiCategories.js:487 msgid "Sports" msgstr "운동 시설" #: src/poiCategories.js:491 msgid "Gyms" msgstr "체육관" #: src/poiCategories.js:497 msgid "Outdoor Gyms" msgstr "실외 체육시설" #: src/poiCategories.js:503 msgid "Golf Courses" msgstr "골프장" #: src/printLayout.js:350 #, javascript-format msgid "From %s to %s" msgstr "%s에서 %s까지" #: src/printOperation.js:49 msgid "Loading map tiles for printing" msgstr "인쇄할 바둑판 배치 지도 불러오는 중" #: src/printOperation.js:50 msgid "You can abort printing if this takes too long" msgstr "인쇄 시간이 오래걸린다면 취소할 수 있습니다" #: src/printOperation.js:52 msgid "Abort printing" msgstr "인쇄 취소" #. Translators: this is add via location tooltip #: src/routeEntry.js:60 msgid "Add via location" msgstr "현재 위치 추가" #. Translators: this is remove via location tooltip #: src/routeEntry.js:70 msgid "Remove via location" msgstr "현재 위치 제거" #. Translators: this is reverse route tooltip #: src/routeEntry.js:76 msgid "Reverse route" msgstr "역경로" #: src/searchBar.js:45 msgid "Search" msgstr "검색" #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:84 #, javascript-format msgid "Add %s to %s" msgstr "%s을(를) %s에 추가" #: src/sendToDialog.js:181 msgid "Failed to open URI" msgstr "URI 열기에 실패했습니다" #: src/sendToDialog.js:246 #, javascript-format msgid "Open with %s" msgstr "%s 프로그램으로 열기" #: src/shapeLayer.js:109 msgid "failed to load file" msgstr "파일 불러오기에 실패했습니다" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:328 #, javascript-format msgid "Estimated time: %s" msgstr "예상 시간: %s" #: src/sidebar.js:398 #, javascript-format msgid "Itineraries provided by %s" msgstr "%s에서 제공한 일정" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:39 #, javascript-format msgid "Start at %s" msgstr "%s에 시작" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:45 src/transitplugins/openTripPlanner2.js:236 msgid "Start" msgstr "시작" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:63 #, javascript-format msgid "Walk %s" msgstr "%s 걷기" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:77 #, javascript-format msgid "Arrive at %s" msgstr "%s에 도착" #: src/transit.js:79 src/transitplugins/openTripPlanner.js:1176 #: src/transitplugins/openTripPlanner2.js:255 msgid "Arrive" msgstr "도" #: src/transitLegRow.js:69 msgid "Show walking instructions" msgstr "도보 안내 표시" #: src/transitLegRow.js:70 msgid "Hide walking instructions" msgstr "도보 안내 숨김" #: src/transitMoreRow.js:37 msgid "Load earlier alternatives" msgstr "이른 대안 수단 불러오기" #: src/transitMoreRow.js:39 msgid "Load later alternatives" msgstr "다음 대안 수단 불러오기" #: src/transitMoreRow.js:52 msgid "No earlier alternatives found." msgstr "이른 대안 수단이 없습니다." #: src/transitMoreRow.js:54 msgid "No later alternatives found." msgstr "다음 대안 수단이 없습니다." #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:138 msgctxt "month-day-date" msgid "%b %e" msgstr "%b %e일" #: src/transitPlan.js:171 msgid "No timetable data found for this route." msgstr "이 경로의 시각표 데이터가 없습니다." #: src/transitPlan.js:179 msgid "No provider found for this route." msgstr "이 경로의 제공자가 없습니다." #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:300 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:331 #, javascript-format msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "%s분" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:343 #, javascript-format msgid "%s hour" msgid_plural "%s hours" msgstr[0] "%s시간" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:351 #, javascript-format msgid "%s:%s hour" msgid_plural "%s:%s hours" msgstr[0] "%s:%s시간" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:744 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: src/translations.js:55 msgid "Around the clock" msgstr "하루 종일" #: src/translations.js:57 msgid "From sunrise to sunset" msgstr "일출부터 일몰까지" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:123 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s,%s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:137 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s,%s,%s" #: src/translations.js:156 msgid "Every day" msgstr "매일" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:168 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:179 msgid "Public holidays" msgstr "공휴일" #: src/translations.js:181 msgid "School holidays" msgstr "방학" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:221 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: src/translations.js:235 msgid "not open" msgstr "열지 않음" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:250 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s~%s" #: src/translations.js:287 msgid "Bahá'í" msgstr "바하이교" #. Translators: Accuracy of user location information #: src/utils.js:248 msgid "Unknown" msgstr "알 수 없음" #. Translators: Accuracy of user location information #: src/utils.js:251 msgid "Exact" msgstr "정확함" #. Translators: this is a duration with only hours, using #. * an abbreviation for hours, corresponding to 'h' in English #. #: src/utils.js:307 #, javascript-format msgid "%s h" msgstr "%s시간" #. Translators: this is a duration with hours and minutes parts #. * using abbreviations for hours and minutes, corresponding to 'h' #. * and 'min' in English. The minutes has appropriate plural variations #. #: src/utils.js:313 #, javascript-format msgid "%s h %s min" msgid_plural "%s h %s min" msgstr[0] "%s시간 %s분" #. Translators: this is a duration with minutes part #. * using abbreviation for minutes, corresponding to 'min' in English #. * with appropriate plural variations #. #: src/utils.js:320 #, javascript-format msgid "%s min" msgid_plural "%s min" msgstr[0] "%s분" #. Translators: this is a duration of less than one minute #. * with seconds using an abbreviation for seconds, corresponding to #. * 's' in English with appropriate plural forms #. #: src/utils.js:326 #, javascript-format msgid "%s s" msgid_plural "%s s" msgstr[0] "%s초" #. Translators: This is a distance measured in kilometers #: src/utils.js:337 #, javascript-format msgid "%s km" msgstr "%s 킬로미터" #. Translators: This is a distance measured in meters #: src/utils.js:340 #, javascript-format msgid "%s m" msgstr "%s 미터" #. Translators: This is a distance measured in miles #: src/utils.js:348 #, javascript-format msgid "%s mi" msgstr "%s 마일" #. Translators: This is a distance measured in feet #: src/utils.js:351 #, javascript-format msgid "%s ft" msgstr "%s 피트" #: src/transitplugins/goMetro.js:61 msgid "This plugin doesn't support latest arrival" msgstr "이 플러그인은 최근 도착 시간을 지원하지 않습니다" #: src/transitplugins/openTripPlanner.js:1237 #: src/transitplugins/openTripPlanner2.js:266 #, javascript-format msgid "Continue on %s" msgstr "%s에서 계속 진행" #: src/transitplugins/openTripPlanner.js:1242 #: src/transitplugins/openTripPlanner2.js:270 #, javascript-format msgid "Turn left on %s" msgstr "%s에서 좌회전" #: src/transitplugins/openTripPlanner.js:1244 #: src/transitplugins/openTripPlanner2.js:271 msgid "Turn left" msgstr "좌회전" #: src/transitplugins/openTripPlanner.js:1247 #: src/transitplugins/openTripPlanner2.js:275 #, javascript-format msgid "Turn slightly left on %s" msgstr "%s에서 살짝 좌회전" #: src/transitplugins/openTripPlanner.js:1249 #: src/transitplugins/openTripPlanner2.js:276 msgid "Turn slightly left" msgstr "살짝 좌회전" #: src/transitplugins/openTripPlanner.js:1252 #: src/transitplugins/openTripPlanner2.js:280 #, javascript-format msgid "Turn sharp left on %s" msgstr "%s에서 크게 좌회전" #: src/transitplugins/openTripPlanner.js:1254 #: src/transitplugins/openTripPlanner2.js:281 msgid "Turn sharp left" msgstr "크게 좌회전" #: src/transitplugins/openTripPlanner.js:1257 #: src/transitplugins/openTripPlanner2.js:284 #, javascript-format msgid "Turn right on %s" msgstr "%s에서 우회전" #: src/transitplugins/openTripPlanner.js:1259 #: src/transitplugins/openTripPlanner2.js:285 msgid "Turn right" msgstr "우회전" #: src/transitplugins/openTripPlanner.js:1262 #: src/transitplugins/openTripPlanner2.js:289 #, javascript-format msgid "Turn slightly right on %s" msgstr "%s에서 살짝 우회전" #: src/transitplugins/openTripPlanner.js:1264 #: src/transitplugins/openTripPlanner2.js:290 msgid "Turn slightly right" msgstr "살짝 우회전" #: src/transitplugins/openTripPlanner.js:1267 #: src/transitplugins/openTripPlanner2.js:294 #, javascript-format msgid "Turn sharp right on %s" msgstr "%s에서 크게 우회전" #: src/transitplugins/openTripPlanner.js:1269 #: src/transitplugins/openTripPlanner2.js:295 msgid "Turn sharp right" msgstr "크게 우회전" #: src/transitplugins/openTripPlanner.js:1275 #: src/transitplugins/openTripPlanner2.js:302 #, javascript-format msgid "At the roundabout, take exit %s" msgstr "로터리에서 %s 출구로 나감" #: src/transitplugins/openTripPlanner.js:1277 #: src/transitplugins/openTripPlanner2.js:305 #, javascript-format msgid "At the roundabout, take exit to %s" msgstr "로터리에서 %s 쪽 출구로 나감" #: src/transitplugins/openTripPlanner.js:1279 #: src/transitplugins/openTripPlanner2.js:307 msgid "Take the roundabout" msgstr "로터리로 진입" #: src/transitplugins/openTripPlanner.js:1283 #: src/transitplugins/openTripPlanner2.js:315 #, javascript-format msgid "Take the elevator and get off at %s" msgstr "엘리베이터 탑승 후 %s에서 내림" #: src/transitplugins/openTripPlanner.js:1285 #: src/transitplugins/openTripPlanner2.js:316 msgid "Take the elevator" msgstr "엘리베이터 탑승" #: src/transitplugins/openTripPlanner.js:1289 #: src/transitplugins/openTripPlanner2.js:320 #, javascript-format msgid "Make a left u-turn onto %s" msgstr "%s 쪽으로 왼쪽 유턴" #: src/transitplugins/openTripPlanner.js:1291 #: src/transitplugins/openTripPlanner2.js:321 msgid "Make a left u-turn" msgstr "왼쪽으로 유턴" #: src/transitplugins/openTripPlanner.js:1294 #: src/transitplugins/openTripPlanner2.js:325 #, javascript-format msgid "Make a right u-turn onto %s" msgstr "%s 쪽으로 오른쪽 유턴" #: src/transitplugins/openTripPlanner.js:1296 #: src/transitplugins/openTripPlanner2.js:326 msgid "Make a right u-turn" msgstr "오른쪽으로 유턴" #~ msgid "Sign in to edit maps" #~ msgstr "" #~ "지도를 편집하려면 접속하십시오" #~ msgid "" #~ "Sign in to authorize access in a web browser.\n" #~ "Then fill in the obtained verification code here in the next step." #~ msgstr "" #~ "웹 브라우저에서 접근을 허용하려면 로그인하세요.\n" #~ "여기 나타난 인증 코드를 다음 단계에서 입력하세요." #~ msgid "Signed In" #~ msgstr "접속함" #~ msgid "E-mail" #~ msgstr "전자메일" #~ msgid "Sign up" #~ msgstr "가입" #~ msgid "Filesystem is read only" #~ msgstr "읽기 전용 파일 시스템입니다" #~ msgid "You do not have permission to save there" #~ msgstr "해당 위치를 저장할 권한이 없습니다" #~ msgid "The directory does not exist" #~ msgstr "디렉터리가 없습니다" #~ msgid "No filename specified" #~ msgstr "파일 이름을 지정하지 않았습니다" #~ msgid "" #~ "Location was added to the map, note that it may take a while before it " #~ "shows on the map and in search results." #~ msgstr "" #~ "지도에 위치를 추가했습니다. 지도와 검색 결과에 나타나기까지 시간이 조금 걸" #~ "릴 수 있는 점을 참고하십시오." #~ msgid "Takeaway" #~ msgstr "포장 가능" #~ msgid "Go to current location" #~ msgstr "현재 위치로 이동" #~ msgid "Choose map type" #~ msgstr "지도 형식을 선택하세요" #~ msgid "Zoom in" #~ msgstr "확대" #~ msgid "Drag to change order of the route" #~ msgstr "경로를 바꾸려면 끌어다놓으십시오" #~ msgid "Foursquare check-in privacy setting" #~ msgstr "포스퀘어 체크인 개인 정보 설정" #~ msgid "" #~ "Latest used Foursquare check-in privacy setting. Possible values are: " #~ "public, followers or private." #~ msgstr "" #~ "최근에 사용한 포스퀘어 체크인 개인 정보 설정입니다. 가능한 값은 다음과 같" #~ "습니다: 공개, 팔로워, 비공개." #~ msgid "Foursquare check-in Facebook broadcasting" #~ msgstr "페이스북에 포스퀘어 체크인 게시글 보내기" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a post in the " #~ "Facebook account associated with the Foursquare account." #~ msgstr "" #~ "포스퀘어 계정에 연동한 페이스북 계정으로 체크인 게시글을 올릴 경우 표시합" #~ "니다." #~ msgid "Foursquare check-in Twitter broadcasting" #~ msgstr "트위터 포스퀘어 체크인 트윗 보내기" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a tweet in the " #~ "Twitter account associated with the Foursquare account." #~ msgstr "" #~ "포스퀘어 계정에 연동한 트위터 계정으로 체크인 트윗을 올릴 경우 표시합니다." #~ msgid "Use hybrid aerial tiles" #~ msgstr "하이브리드 항공 타일 사용" #~ msgid "Whether aerial tiles should use hybrid style (with labels)." #~ msgstr "항공 타일에서 (레이블이 표시된) 하이브리드 스타일 사용 여부." #~ msgid "Visibility" #~ msgstr "공개 범위" #~ msgid "Post on Facebook" #~ msgstr "페이스북에 게시" #~ msgid "Post on Twitter" #~ msgstr "트위터에 게시" #~ msgid "C_heck in" #~ msgstr "체크인(_H)" #~ msgid "Public" #~ msgstr "공개" #~ msgid "Private" #~ msgstr "비공개" #~ msgid "Include route and markers" #~ msgstr "경로 및 표시 포함" #~ msgid "Show Labels" #~ msgstr "레이블 표시" #~ msgid "Maps is offline!" #~ msgstr "맵은 오프라인 상태입니다!" #~ msgid "" #~ "Maps need an active internet connection to function properly, but one " #~ "can’t be found." #~ msgstr "" #~ "지도가 제대로 동작하려면 인터넷에 연결해야하지만, 연결을 찾을 수 없습니다." #~ msgid "Check your connection and proxy settings." #~ msgstr "연결 및 프록시 설정을 확인하십시오." #~ msgid "Password" #~ msgstr "암호" #~ msgid "" #~ "Sorry, that didn’t work. Please try again, or visit\n" #~ "OpenStreetMap to reset your password." #~ msgstr "" #~ "죄송하지만 동작하지 않습니다. 다시 시도하시거나\n" #~ "OpenStreetMap을 방문하여 암호를 다시 설정하십시오." #~ msgid "Check In…" #~ msgstr "체크인…" #~ msgid "Ignore network availability" #~ msgstr "네트워크 사용 가능 여부 무시" #~ msgid "Select an account" #~ msgstr "계정을 선택하십시오" #~ msgid "Loading" #~ msgstr "불러오는 중" #~ msgid "Select a place" #~ msgstr "장소를 선택하십시오" #~ msgid "" #~ "Maps cannot find the place to check in to with Foursquare. Please select " #~ "one from this list." #~ msgstr "" #~ "포스퀘어에 체크인할 장소를 찾을 수 없습니다. 다음 목록에서 하나를 선택하십" #~ "시오." #, javascript-format #~ msgid "Check in to %s" #~ msgstr "%s에 체크인" #, javascript-format #~ msgid "Write an optional message to check in to %s." #~ msgstr "%s에 체크인할 추가 메시지를 작성합니다." #, javascript-format #~ msgid "Cannot find “%s” in the social service" #~ msgstr "소셜 서비스에서 “%s”을(를) 찾을 수 없습니다" #~ msgid "Cannot find a suitable place to check-in in this location" #~ msgstr "이 위치를 체크인할 적당한 장소를 찾을 수 없습니다" #~ msgid "" #~ "Credentials have expired, please open Online Accounts to sign in and " #~ "enable this account" #~ msgstr "" #~ "인증 기한이 지났습니다. 온라인 계정을 열어 접속한 후 이 계정을 활성화하십" #~ "시오" #~ msgid "A map application for GNOME" #~ msgstr "그놈용 지도 프로그램" #~ msgid "GNOME Maps" #~ msgstr "그놈 지도" #~ msgid "Night mode" #~ msgstr "야간 모드" #~ msgid "Whether the application is in night mode." #~ msgstr "프로그램이 야간 모드 상태인지 여부." #~ msgid "Night Mode" #~ msgstr "야간 모드" #~ msgid "" #~ "You can even search for specific types of locations, such as “Pubs near " #~ "Main Street, Boston” or “Hotels near Alexanderplatz, Berlin”." #~ msgstr "" #~ "“보스턴 번화가 근처의 술집” 또는 “베를린 알렉산더플라츠 근처의 호텔”과 같" #~ "은 지정된 형식의 위치도 검색할 수 있습니다." #~ msgid "Facebook check-in privacy setting" #~ msgstr "페이스북 체크인 개인 정보 설정" #~ msgid "" #~ "Latest used Facebook check-in privacy setting. Possible values are: " #~ "EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS or SELF." #~ msgstr "" #~ "최근 사용한 페이스북 체크인 개인 정보 설정입니다. 가능한 값은 다음과 같습" #~ "니다: EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS, SELF." #~ msgid "Everyone" #~ msgstr "전체 공개" #~ msgid "Friends of friends" #~ msgstr "친구의 친구" #~ msgid "Just friends" #~ msgstr "친구만 보기" #~ msgid "Just me" #~ msgstr "나만 보기" #~ msgid "" #~ "Maps cannot find the place to check in to with Facebook. Please select " #~ "one from this list." #~ msgstr "" #~ "페이스북에 체크인할 장소를 찾을 수 없습니다. 다음 목록에서 하나를 선택하십" #~ "시오." #~ msgid "Check in here" #~ msgstr "이곳을 체크인" #~ msgid "Population:" #~ msgstr "인구수:" #~ msgid "Altitude:" #~ msgstr "고도:" #~ msgid "Opening hours:" #~ msgstr "영업 시간:" #~ msgid "Internet access:" #~ msgstr "인터넷 접속:" #~ msgid "Toilets:" #~ msgstr "화장실:" #~ msgid "Wheelchair access:" #~ msgstr "휠체어 접근:" #~ msgid "Phone:" #~ msgstr "전화번호:" #~ msgid "yes" #~ msgstr "예" #~ msgid "limited" #~ msgstr "제한함" #~ msgid "no" #~ msgstr "아니요" #~ msgid "designated" #~ msgstr "지정됨" #~ msgid "OpenStreetMap URL is not valid" #~ msgstr "OpenStreetMap URL이 올바르지 않습니다" #~ msgctxt "time range list" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgctxt "time range list" #~ msgid "%s %s %s" #~ msgstr "%s %s %s" #~ msgctxt "time range component" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgid "wired" #~ msgstr "유선" #~ msgid "terminal" #~ msgstr "터미널" #~ msgid "service" #~ msgstr "서비스" #~ msgid "Don’t have an account?" #~ msgstr "계정이 없습니까?" #~ msgid "%f h" #~ msgstr "%f시간" #~ msgid "%f min" #~ msgstr "%f분" #~ msgid "%f s" #~ msgstr "%f초" #~ msgid "Route search by OpenTripPlanner" #~ msgstr "OpenTripPlanner 경로 검색" #~ msgid "Add destination" #~ msgstr "목적지 추가" #~ msgid "org.gnome.Maps" #~ msgstr "org.gnome.Maps" #~ msgid "Open with another application" #~ msgstr "다른 프로그램으로 열기" #~ msgid "Press enter to search" #~ msgstr "검색할 단어를 입력하십시오" #~ msgid "Quit" #~ msgstr "끝내기" #~ msgid "Open Shape Layer…" #~ msgstr "도형 레이어 열기…" #~ msgid "OK" #~ msgstr "확인" #~ msgid "Load Map Layer" #~ msgstr "맵 레이어 불러오기" #~ msgid "%f km" #~ msgstr "%f킬로미터" #~ msgid "%f m" #~ msgstr "%f미터" #~ msgid "%f mi" #~ msgstr "%f마일" #~ msgid "%f ft" #~ msgstr "%f피트" #~ msgid "Country code: %s" #~ msgstr "국가 기호: %s" 070701000001D3000081A40000000000000000000000016641340900010366000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/lt.po# Lithuanian translation for gnome-maps. # Copyright (C) 2013 gnome-maps's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-maps package. # Aurimas Černius , 2013-2023. # msgid "" msgstr "" "Project-Id-Version: gnome-maps master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2024-02-25 20:49+0000\n" "PO-Revision-Date: 2024-02-26 22:15+0200\n" "Last-Translator: Aurimas Černius \n" "Language-Team: Lietuvių \n" "Language: lt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "(n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Poedit 3.4.2\n" #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.appdata.xml.in.in:6 data/org.gnome.Maps.desktop.in.in:4 #: data/ui/main-window.ui:27 src/application.js:64 src/mainWindow.js:147 #: src/mainWindow.js:647 msgid "Maps" msgstr "Žemėlapiai" #: data/org.gnome.Maps.appdata.xml.in.in:7 msgid "Find places around the world" msgstr "Rasti vietas aplink pasaulį" #: data/org.gnome.Maps.appdata.xml.in.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "Žemėlapiai leidžia jums lengvai pasiekti pasaulio žemėlapius. Ši programa " "leidžia greitai rasti ieškomą vietą naudojant paiešką pagal miestą ar gatvę " "bei rasti vietą susitikimui su draugu." #: data/org.gnome.Maps.appdata.xml.in.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "Žemėlapiai naudoja OpenStreetMap duomenų bazę, kurią sukūrė tūkstančiai " "žmonių iš viso pasaulio." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Maps.appdata.xml.in.in:451 src/mainWindow.js:644 msgid "The GNOME Project" msgstr "GNOME projektas" #: data/org.gnome.Maps.desktop.in.in:5 msgid "A simple maps application" msgstr "Paprasta žemėlapių programa" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in.in:14 msgid "Maps;" msgstr "Žemėlapiai;" #: data/org.gnome.Maps.desktop.in.in:17 msgid "Allows your location to be shown on the map." msgstr "Leidžia parodyti žemėlapyje jūsų vietą." #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "paskutinė žiūrėta vieta" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "Paskutinės žiūrėtos vietos koordinatės." #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "mastelis" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "Mastelis" #: data/org.gnome.Maps.gschema.xml:21 msgid "rotation" msgstr "posūkis" #: data/org.gnome.Maps.gschema.xml:22 msgid "Map rotation in radians" msgstr "Žemėlapio posūkis radianais" #: data/org.gnome.Maps.gschema.xml:26 msgid "Map type" msgstr "Žemėlapio tipas" #: data/org.gnome.Maps.gschema.xml:27 msgid "The type of map to display (street, aerial, etc.)" msgstr "Rodomas žemėlapio tipas (gatvių, oro, ir t. t.)" #: data/org.gnome.Maps.gschema.xml:31 msgid "Window size" msgstr "Lango dydis" #: data/org.gnome.Maps.gschema.xml:32 msgid "Window size (width and height)." msgstr "Lango dydis (plotis ir aukštis)." #: data/org.gnome.Maps.gschema.xml:36 msgid "Window position" msgstr "Lango padėtis" #: data/org.gnome.Maps.gschema.xml:37 msgid "Window position (X and Y)." msgstr "Lango padėtis (X ir Y)." #: data/org.gnome.Maps.gschema.xml:41 msgid "Window maximized" msgstr "Langas išdidintas" #: data/org.gnome.Maps.gschema.xml:42 msgid "Window maximization state" msgstr "Lango išdidinimo būsena" #: data/org.gnome.Maps.gschema.xml:46 msgid "Maximum number of search results" msgstr "Didžiausias paieškos rezultatų skaičius" #: data/org.gnome.Maps.gschema.xml:47 msgid "Maximum number of search results from geocode search." msgstr "Didžiausias paieškos rezultatų skaičius iš geocode paieškos." #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent places to store" msgstr "Įrašomas paskutinių vietų skaičius" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited places to store." msgstr "Įrašomas paskutinių aplankytų vietų skaičius." #: data/org.gnome.Maps.gschema.xml:56 msgid "Number of recent routes to store" msgstr "Paskutinių įrašomų maršrutų skaičius" #: data/org.gnome.Maps.gschema.xml:57 msgid "Number of recently visited routes to store." msgstr "Įrašomas paskutinių aplankytų maršrutų skaičius." #: data/org.gnome.Maps.gschema.xml:61 msgid "OpenStreetMap username or email address" msgstr "OpenStreetMap naudotojo vardas arba el. pašto adresas" #: data/org.gnome.Maps.gschema.xml:62 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "Nurodo ar naudotojas prisijungė OpenStreetMap duomenų redagavimui." #: data/org.gnome.Maps.gschema.xml:66 msgid "Last used transportation type for routing" msgstr "Paskutinis transporto tipas, naudotas keliui" #: data/org.gnome.Maps.gschema.xml:70 msgid "Show scale" msgstr "Rodyti mastelį" #: data/org.gnome.Maps.gschema.xml:71 msgid "Whether to show the scale." msgstr "Ar rodyti mastelį." #: data/ui/context-menu.ui:6 msgid "Route from Here" msgstr "Maršrutas iš čia" #: data/ui/context-menu.ui:10 msgid "Add Intermediate Destination" msgstr "Pridėti tarpinę stotelę" #: data/ui/context-menu.ui:14 msgid "Route to Here" msgstr "Maršrutas į čia" #: data/ui/context-menu.ui:20 msgid "What's Here?" msgstr "Kas ten?" #: data/ui/context-menu.ui:24 msgid "Copy Location" msgstr "Kopijuoti vietą" #: data/ui/context-menu.ui:28 msgid "Add to OpenStreetMap…" msgstr "Pridėti prie OpenStreetMap…" #: data/ui/export-view-dialog.ui:7 msgid "Export view" msgstr "Eksportuoti rodinį" #: data/ui/export-view-dialog.ui:16 data/ui/send-to-dialog.ui:10 #: data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "_Atsisakyti" #: data/ui/export-view-dialog.ui:26 msgid "_Export" msgstr "_Eksportuoti" #. Translators: This is a tooltip #: data/ui/favorite-list-row.ui:72 msgid "Remove Favorite" msgstr "Pašalinti mėgiamiausią" #: data/ui/favorites-popover.ui:11 msgid "No Favorites" msgstr "Nėra mėgiamiausių" #: data/ui/favorites-popover.ui:12 msgid "Add places to your favorites to get them listed here" msgstr "Pridėkite vietas prie mėgiamiausių ir jas matysite čia" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:11 src/geoclue.js:106 msgid "Current Location" msgstr "Dabartinė vieta" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:19 msgid "Layers" msgstr "Sluoksniai" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:11 msgid "Print Route" msgstr "Spausdinti kelią" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:21 msgid "Favorites" msgstr "Mėgiamiausi" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:30 msgid "Route Planner" msgstr "Maršruto planavimas" #: data/ui/help-overlay.ui:12 msgctxt "shortcut window" msgid "General" msgstr "Bendra" #: data/ui/help-overlay.ui:15 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "Rodyti trumpinius" #: data/ui/help-overlay.ui:21 msgctxt "shortcut window" msgid "Search" msgstr "Ieškoti" #: data/ui/help-overlay.ui:27 msgctxt "shortcut window" msgid "Explore points-of-interest" msgstr "Naršyti įdomias vietas" #: data/ui/help-overlay.ui:33 msgctxt "shortcut window" msgid "Show last search results" msgstr "Rodyti paskutinės paieškos rezultatus" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "Perjungti maršruto planavimą" #: data/ui/help-overlay.ui:45 msgctxt "shortcut window" msgid "Print route" msgstr "Spausdinti kelią" #: data/ui/help-overlay.ui:51 msgctxt "shortcut window" msgid "Quit" msgstr "Išeiti" #: data/ui/help-overlay.ui:57 msgctxt "shortcut window" msgid "Open main menu" msgstr "Atverti pagrindinį meniu" #: data/ui/help-overlay.ui:65 msgctxt "shortcut window" msgid "Map View" msgstr "Žemėlapio rodinys" #: data/ui/help-overlay.ui:68 msgctxt "shortcut window" msgid "Zoom in" msgstr "Didinti" #: data/ui/help-overlay.ui:74 msgctxt "shortcut window" msgid "Zoom out" msgstr "Mažinti" #: data/ui/help-overlay.ui:80 msgctxt "shortcut window" msgid "Rotate clockwise" msgstr "Pasukti pagal laikrodžio rodyklę" #: data/ui/help-overlay.ui:86 msgctxt "shortcut window" msgid "Rotate counter-clockwise" msgstr "Pasukti prieš laikrodžio rodyklę" #: data/ui/help-overlay.ui:92 msgctxt "shortcut window" msgid "Reset rotation" msgstr "Atstatyti posūkį" #: data/ui/help-overlay.ui:98 msgctxt "shortcut window" msgid "Toggle scale" msgstr "Perjungti skalę" #: data/ui/help-overlay.ui:104 msgctxt "shortcut window" msgid "Go to current location" msgstr "Eiti į dabartinę vietą" #: data/ui/help-overlay.ui:114 msgctxt "shortcut window" msgid "Switch to street view" msgstr "Perjungti į gatvės vaizdą" #: data/ui/help-overlay.ui:121 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "Perjungti į vaizdą iš oro" #: data/ui/help-overlay.ui:127 msgctxt "shortcut window" msgid "Open shape layer" msgstr "Atverti formos sluoksnį" #: data/ui/layers-popover.ui:7 msgid "Show Scale" msgstr "Rodyti mastelį" #: data/ui/layers-popover.ui:16 msgid "Enable Experimental Map" msgstr "Įjungti eksperimentinį žemėlapį" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:21 msgid "Open Shape Layer…" msgstr "Atverti formos sluoksnį…" #: data/ui/main-window.ui:8 msgid "Set up OpenStreetMap Account…" msgstr "Nusistatyti OpenStreetMap paskyrą…" #: data/ui/main-window.ui:12 msgid "Export as Image…" msgstr "Eksportuoti kaip paveikslėlį…" #: data/ui/main-window.ui:17 msgid "_Keyboard Shortcuts" msgstr "_Klaviatūros trumpiniai" #: data/ui/main-window.ui:22 msgid "About Maps" msgstr "Apie žemėlapius" #: data/ui/main-window.ui:48 msgid "Main Menu" msgstr "Pagrindinis meniu" #: data/ui/osm-account-dialog.ui:5 msgid "OpenStreetMap Account" msgstr "OpenStreetMap paskyra" #: data/ui/osm-account-dialog.ui:31 msgid "Sign In To Edit Maps" msgstr "Prisijunkite žemėlapiams redaguoti" #: data/ui/osm-account-dialog.ui:32 msgid "Help to improve the map, using an OpenStreetMap account." msgstr "Padėkite tobulinti žemėlapį naudodami OpenStreetMap paskyrą." #: data/ui/osm-account-dialog.ui:36 msgid "Sign In" msgstr "Prisijungti" #: data/ui/osm-account-dialog.ui:59 msgid "Verification" msgstr "Tikrinimas" #: data/ui/osm-account-dialog.ui:60 msgid "" "Copy the verification code shown when authorizing access in the browser." msgstr "" "Nukopijuokite rodomą patvirtinimo kodą leidžiant prieigą interneto " "naršyklėje." #: data/ui/osm-account-dialog.ui:69 msgid "Verification Code" msgstr "Patvirtinimo kodas" #: data/ui/osm-account-dialog.ui:75 msgid "Verify" msgstr "Patvirtinti" #: data/ui/osm-account-dialog.ui:110 msgid "Signed In" msgstr "Prisijungta" #: data/ui/osm-account-dialog.ui:111 msgid "Your OpenStreetMap account is active." msgstr "Jūsų OpenStreetMap paskyra yra aktyvi." #: data/ui/osm-account-dialog.ui:129 msgid "Sign Out" msgstr "Atsijungti" #: data/ui/osm-edit-address.ui:11 msgid "Street" msgstr "Gatvė" #: data/ui/osm-edit-address.ui:22 msgid "House number" msgstr "Namo numeris" #: data/ui/osm-edit-address.ui:33 msgid "Postal code" msgstr "Pašto kodas" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:44 msgid "City" msgstr "Miestas" #: data/ui/osm-edit-dialog.ui:8 msgctxt "dialog title" msgid "Edit on OpenStreetMap" msgstr "Redaguoti OpenStreetMap" #: data/ui/osm-edit-dialog.ui:57 msgid "Type" msgstr "Tipas" #: data/ui/osm-edit-dialog.ui:79 msgid "None" msgstr "Nėra" #: data/ui/osm-edit-dialog.ui:108 msgid "Add Field" msgstr "Pridėti lauką" #: data/ui/osm-edit-dialog.ui:130 msgid "Comment" msgstr "Komentaras" #: data/ui/osm-edit-dialog.ui:158 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "Žemėlapio pakeitimai bus matomi visuose žemėlapiuose,\n" "kuriuose naudojami OpenStreetMap duomenys." #: data/ui/osm-edit-dialog.ui:186 msgid "Recently Used" msgstr "Neseniai naudoti" #: data/ui/osm-edit-dialog.ui:225 src/mapView.js:671 msgid "Cancel" msgstr "Atsisakyti" #: data/ui/osm-edit-dialog.ui:238 src/osmEditDialog.js:531 msgid "Next" msgstr "Kitas" #: data/ui/osm-edit-wikipedia.ui:8 msgid "Article" msgstr "Straipsnis" #: data/ui/osm-edit-wikipedia.ui:21 msgid "Wikidata tag" msgstr "Wikidata žyma" #: data/ui/osm-edit-wikipedia.ui:32 msgid "Load Wikidata tag for article" msgstr "Įkelti Wikidata žymą straipsniui" #: data/ui/place-popover.ui:23 src/searchBar.js:55 msgid "Explore Nearby Places" msgstr "Naršyti gretimas vietas" #: data/ui/place-popover.ui:82 src/application.js:277 msgid "No results found" msgstr "Nerasta rezultatų" #: data/ui/place-popover.ui:92 src/application.js:255 msgid "An error has occurred" msgstr "Kilo klaida" #. Translators: This is a tooltip #: data/ui/route-entry.ui:12 msgid "Change Route Order" msgstr "Keisti maršruto tvarką" #: data/ui/send-to-dialog.ui:7 msgid "Open Location" msgstr "Atverti vietą" #: data/ui/send-to-dialog.ui:64 msgid "Copy" msgstr "Kopijuoti" #: data/ui/send-to-dialog.ui:70 msgid "Send To…" msgstr "Siųsti…" #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:62 msgid "Open Shape Layer" msgstr "Atverti formos sluoksnį" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "_Atverti" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:32 msgid "Toggle visible" msgstr "Perjungti matomus" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:44 msgid "Remove Shape Layer" msgstr "Pašalinti formos sluoksnį" #: data/ui/sidebar.ui:207 msgid "Route search by GraphHopper" msgstr "Maršruto paieška naudojant GraphHopper" #: data/ui/sidebar.ui:272 msgid "" "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of " "transportation,\n" "e.g. a national provider might not include airlines, and a local provider " "could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" "Viešojo transporto maršrutai yra pateikiami trečiųjų šalių tarnybų.\n" "GNOME negali garantuoti rodomų tvarkaraščių teisingumo.\n" "Pastebėtinas, kad kai kurie teikėjai gali neteikti visų transporto rūšių,\n" "pvz. nacionalinis teikėjas gali neteikti oro linijų, o vietiniam gali " "trūkti\n" "regioninių traukinių.\n" "Pavadinimai ir prekės ženklai yra laikomi registruotais prekyženkliais, kai " "taikoma." #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:98 msgid "Hide intermediate stops and information" msgstr "Slėpti tarpines stoteles ir informaciją" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:156 msgid "Show intermediate stops and information" msgstr "Rodyti tarpines stoteles ir informaciją" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:16 msgid "Leave Now" msgstr "Išvykti dabar" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:17 msgid "Leave By" msgstr "Išvykti" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:18 msgid "Arrive By" msgstr "Atvykti" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:85 msgid "Show" msgstr "Rodyti" #: data/ui/transit-options-panel.ui:95 msgid "Buses" msgstr "Autobusai" #: data/ui/transit-options-panel.ui:101 msgid "Trams" msgstr "Tramvajai" #: data/ui/transit-options-panel.ui:107 msgid "Trains" msgstr "Traukiniai" #: data/ui/transit-options-panel.ui:113 msgid "Subway" msgstr "Metro" #: data/ui/transit-options-panel.ui:119 msgid "Ferries" msgstr "Keltai" #: data/ui/transit-options-panel.ui:125 msgid "Airplanes" msgstr "Lėktuvai" #. Translators: This is a tooltip #: data/ui/place-bar.ui:33 data/ui/place-buttons.ui:27 msgid "Share Location" msgstr "Dalintis vieta" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:11 msgid "Add to new route" msgstr "Pridėti naują maršrutą" #. Translators: This is the button to find a route to a place #: data/ui/place-buttons.ui:15 msgid "Directions" msgstr "Nurodymai" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:36 msgid "Mark as Favorite" msgstr "Pažymėti kaip mėgiamą" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:44 msgid "Edit on OpenStreetMap" msgstr "Redaguoti OpenStreetMap" #. Translators: This is a tooltip #: data/ui/place-view.ui:52 msgid "Share location" msgstr "Dalintis vieta" #: data/ui/poi-category-goback-row.ui:22 msgid "Back to Main Categories" msgstr "Grįžti prie pagrindinių kategorijų" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:19 msgid "Reset Rotation" msgstr "Atstatyti posūkį" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:32 msgid "Zoom Out" msgstr "Atitolinti" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:43 src/mapView.js:1246 msgid "Zoom In" msgstr "Priartinti" #: lib/maps-file-data-source.c:262 lib/maps-file-data-source.c:338 #: lib/maps-file-data-source.c:418 msgid "Failed to find tile structure in directory" msgstr "Nepavyko kataloge rasti koklių struktūros" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "Nepavyko perskaityti XML dokumento" #: lib/maps-osm.c:250 lib/maps-osm.c:403 msgid "Missing required attributes" msgstr "Trūkta reikiamų požymių" #: lib/maps-osm.c:451 lib/maps-osm.c:494 msgid "Could not find OSM element" msgstr "Nepavyko rasti OSM elemento" #: lib/maps-osm.c:508 msgid "Could not find user element" msgstr "Nepavyko rasti naudotojo elemento" #: src/application.js:78 msgid "A path to a local tiles directory structure" msgstr "Kelias iki vietinės koklių katalogo struktūros" #: src/application.js:84 msgid "Tile size for local tiles directory" msgstr "Plytelės dydis vietiniam plytelių aplankui" #: src/application.js:88 msgid "Show the version of the program" msgstr "Rodyti programos versiją" #: src/application.js:94 msgid "Search for places" msgstr "Ieškoti vietų" #: src/application.js:105 src/application.js:106 msgid "[FILE…|URI]" msgstr "[FAILAS…|URI]" #: src/application.js:284 #, javascript-format msgid "Invalid maps: URI: %s" msgstr "Netinkami žemėlapiai: URI: %s" #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:75 #, javascript-format msgid "Maps at %f, %f.png" msgstr "Žemėlapiai ties %f, %f.png" #: src/exportViewDialog.js:174 msgid "Unable to export view" msgstr "Nepavyko eksportuoti rodinio" #: src/favoriteListRow.js:42 msgid "Favorite removed" msgstr "Mėgiamiausi pašalinti" #: src/favoriteListRow.js:43 msgid "Undo" msgstr "Atšaukti" #: src/geoJSONSource.js:73 msgid "invalid coordinate" msgstr "neteisinga koordinatė" #: src/geoJSONSource.js:126 src/geoJSONSource.js:166 src/geoJSONSource.js:181 msgid "parse error" msgstr "perskaitymo klaida" #: src/geoJSONSource.js:160 msgid "unknown geometry" msgstr "nežinoma geometrija" #: src/graphHopper.js:101 src/transitPlan.js:175 msgid "Route request failed." msgstr "Nepavyko užklausti maršruto." #: src/graphHopper.js:108 src/transitPlan.js:167 msgid "No route found." msgstr "Maršrutas nerastas." #: src/graphHopper.js:195 src/transitplugins/openTripPlanner.js:1163 msgid "Start!" msgstr "Pradėti!" #: src/mainWindow.js:59 msgid "All Layer Files" msgstr "Visi sluoksnių failai" #: src/mainWindow.js:522 msgid "Failed to connect to location service" msgstr "Nepavyko prisijungti prie vietos tarnybos" #: src/mainWindow.js:527 msgid "Turn on location services" msgstr "Įjungti vietos tarnybas" #: src/mainWindow.js:528 msgid "Location Settings" msgstr "Vietos nustatymai" #: src/mainWindow.js:645 msgid "translator-credits" msgstr "" "Išvertė:\n" "Aurimas Černius " #: src/mainWindow.js:649 msgid "Copyright © 2011 – 2023 Red Hat, Inc. and The GNOME Maps authors" msgstr "" "Autorių teisės priklauso © 2011 – 2023 Red Hat, Inc. ir GNOME Žemėlapių " "autoriams" #: src/mainWindow.js:665 #, javascript-format msgid "Map data by %s and contributors" msgstr "Žemėlapio duomenys pagal %s ir talkininkus" #: src/mainWindow.js:666 msgid "Map Data Provider" msgstr "Žemėlapio duomenų tiekėjas" #: src/mainWindow.js:678 msgid "Map Tile Provider" msgstr "Žemėlapio plytelių tiekėjas" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:686 #, javascript-format msgid "Map tiles provided by %s" msgstr "Žemėlapio išklotinę pateikė %s" #: src/mainWindow.js:716 msgid "Search Provider" msgstr "Paieškos tiekėjas" #: src/mainWindow.js:719 #, javascript-format msgid "Search provided by %s using %s" msgstr "Paiešką teikia %s naudojant %s" #: src/mapView.js:645 src/mapView.js:710 msgid "Failed to open layer" msgstr "Nepavyko atverti sluoksnio" #: src/mapView.js:664 msgid "Do you want to continue?" msgstr "Ar norite tęsti?" #: src/mapView.js:665 #, javascript-format msgid "" "You are about to open files with a total size of %s MB. This could take some " "time to load" msgstr "Ketinate atverti failus, kurų bendras dydis %s MB. Tai gali užtrukti" #: src/mapView.js:672 src/transitplugins/openTripPlanner.js:1239 #: src/transitplugins/openTripPlanner2.js:267 msgid "Continue" msgstr "Tęsti" #: src/mapView.js:704 msgid "File type is not supported" msgstr "Failo tipas yra nepalaikomas" #: src/mapView.js:741 msgid "Failed to open GeoURI" msgstr "Nepavyko atverti GeoURI" #: src/mapView.js:1205 msgid "Nothing found here!" msgstr "Čia nieko nerasta!" #: src/mapView.js:1245 msgid "Zoom in to add location" msgstr "Pritraukti vietos pridėjimui" #: src/mapView.js:1266 msgid "Location was added in OpenStreetMap" msgstr "Vieta buvo pridėta į OpenStreetMap" #. switch back to the sign-in view, and show a toast indicating #. that verification failed #: src/osmAccountDialog.js:134 msgid "The verification code didn’t match, please try again." msgstr "Patvirtinimo kodas neatitiko, prašome bandyti dar kartą." #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:335 msgid "Incorrect user name or password" msgstr "Neteisingas naudotojo vardas ar slaptažodis" #: src/osmConnection.js:337 msgid "Success" msgstr "Pavyko" #: src/osmConnection.js:339 msgid "Bad request" msgstr "Bloga užklausa" #: src/osmConnection.js:341 msgid "Object not found" msgstr "Objektas nerastas" #: src/osmConnection.js:343 msgid "Conflict, someone else has just modified the object" msgstr "Konfliktas, kažkas ką tik modifikavo objektą" #: src/osmConnection.js:345 msgid "Object has been deleted" msgstr "Objektas buvo ištrintas" #: src/osmConnection.js:347 msgid "Way or relation refers to non-existing children" msgstr "Kelias ar santykis nurodo į nesantį kūrinį" #: src/osmEditDialog.js:106 msgid "Name" msgstr "Pavadinimas" #: src/osmEditDialog.js:109 msgid "The official name. This is typically what appears on signs." msgstr "Oficialus pavadinimas. Jis dažniausiai matomas ženkluose." #: src/osmEditDialog.js:112 msgid "Address" msgstr "Adresas" #: src/osmEditDialog.js:120 src/placeView.js:275 msgid "Website" msgstr "Tinklalapis" #: src/osmEditDialog.js:124 msgid "This is not a valid URL. Make sure to include http:// or https://." msgstr "" "Tai nėra tinkamas URL. Įsitikinkite, kad pateikėte http:// arba https://." #: src/osmEditDialog.js:125 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" "Oficialus tinklalapis. Bandykite paprasčiausią URL formą, pvz. http://" "pavyzdys.lt vietoj http://pavyzdys.lt/index.html." #: src/osmEditDialog.js:130 msgid "Phone" msgstr "Telefonas" #: src/osmEditDialog.js:134 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" "Telefono numeris. Naudokite tarptautinį formatą, prasidedantį + simboliu. " "Atsižvelkite į vietinius privatumo įstatymus, ypač dės asmeninių telefono " "numerių." #: src/osmEditDialog.js:139 src/placeView.js:308 msgid "Email" msgstr "El. paštas" #: src/osmEditDialog.js:144 msgid "" "This is not a valid email address. Make sure to not include the mailto: " "protocol prefix." msgstr "" "Tai nėra tinkamas el. pašto adresas. Įsitikinkite, kad nepateikėte mailto: " "protokolo priešdėlio." #: src/osmEditDialog.js:145 msgid "" "Contact email address for inquiries. Add only email addresses that are " "intended to be publicly used." msgstr "" "Kontaktinis el. pašto adresas užklausoms. Pridėkite tik el. pašto adresus, " "skirtus viešam naudojimui." #. Translators: This is the text for the "Wikipedia" link at the end #. of summaries #: src/osmEditDialog.js:149 src/placeView.js:727 msgid "Wikipedia" msgstr "Wikipedia" #: src/osmEditDialog.js:156 src/placeView.js:399 msgid "Opening hours" msgstr "Darbo laikas" #: src/osmEditDialog.js:161 msgid "See the link in the label for help on format." msgstr "Informaciją apie formatą gausite paspaudę saitą apačioje." #. TODO: this is a bit of a work-around to re-interpret the population, #. * stored as a string into an integer to convert back to a locale- #. * formatted string. Ideally it should be kept as an integer value #. * in the Place class. But this will also need to be handled by the #. * PlaceStore, possible in a backwards-compatible way #. #: src/osmEditDialog.js:164 src/placeView.js:509 msgid "Population" msgstr "Gyventojų skaičius" #: src/osmEditDialog.js:169 src/placeView.js:538 msgid "Altitude" msgstr "Aukštis" #: src/osmEditDialog.js:172 msgid "Elevation (height above sea level) of a point in meters." msgstr "Absoliutus aukšti (virš jūros lygio) metrais." #: src/osmEditDialog.js:175 msgid "Wheelchair access" msgstr "Prieiga neįgaliųjų vežimėliais: %s" #: src/osmEditDialog.js:178 src/osmEditDialog.js:187 src/osmEditDialog.js:198 #: src/osmEditDialog.js:233 msgid "Yes" msgstr "Taip" #: src/osmEditDialog.js:179 src/osmEditDialog.js:188 src/osmEditDialog.js:199 #: src/osmEditDialog.js:234 msgid "No" msgstr "Ne" #: src/osmEditDialog.js:180 msgid "Limited" msgstr "Ribota" #: src/osmEditDialog.js:181 msgid "Designated" msgstr "Su paskirtimi" #: src/osmEditDialog.js:184 msgid "Internet access" msgstr "Interneto prieiga" #: src/osmEditDialog.js:189 msgid "Wi-Fi" msgstr "Wi-Fi" #: src/osmEditDialog.js:190 msgid "Wired" msgstr "Laidinis" #: src/osmEditDialog.js:191 msgid "Terminal" msgstr "Terminalas" #: src/osmEditDialog.js:192 msgid "Service" msgstr "Tarnyba" #: src/osmEditDialog.js:195 msgid "Takeout" msgstr "Išsinešimui" #: src/osmEditDialog.js:200 msgid "Only" msgstr "Tik" #: src/osmEditDialog.js:203 msgid "Religion" msgstr "Religija" #: src/osmEditDialog.js:206 src/translations.js:286 msgid "Animism" msgstr "Animizmas" #: src/osmEditDialog.js:207 msgid "Bahá’í" msgstr "Bahá’í" #: src/osmEditDialog.js:208 src/translations.js:288 msgid "Buddhism" msgstr "Budizmas" #: src/osmEditDialog.js:209 src/translations.js:289 msgid "Caodaism" msgstr "Kaodaizmas" #: src/osmEditDialog.js:210 src/translations.js:290 msgid "Christianity" msgstr "Krikščionybė" #: src/osmEditDialog.js:211 src/translations.js:291 msgid "Confucianism" msgstr "Konfucionizmas" #: src/osmEditDialog.js:212 src/translations.js:292 msgid "Hinduism" msgstr "Induizmas" #: src/osmEditDialog.js:213 src/translations.js:293 msgid "Jainism" msgstr "Jainizmas" #: src/osmEditDialog.js:214 src/translations.js:294 msgid "Judaism" msgstr "Judėjizmas" #: src/osmEditDialog.js:215 src/translations.js:295 msgid "Islam" msgstr "Islamas" #: src/osmEditDialog.js:216 src/translations.js:296 msgid "Multiple Religions" msgstr "Daug religijų" #: src/osmEditDialog.js:217 src/translations.js:297 msgid "Paganism" msgstr "Pagonybė" #: src/osmEditDialog.js:218 src/translations.js:298 msgid "Pastafarianism" msgstr "Pastafarianizmas" #: src/osmEditDialog.js:219 src/translations.js:299 msgid "Scientology" msgstr "Sientologija" #: src/osmEditDialog.js:220 src/translations.js:300 msgid "Shinto" msgstr "Šinto" #: src/osmEditDialog.js:221 src/translations.js:301 msgid "Sikhism" msgstr "Sichizmas" #: src/osmEditDialog.js:222 src/translations.js:302 msgid "Spiritualism" msgstr "Spiritualizmas" #: src/osmEditDialog.js:223 src/translations.js:303 msgid "Taoism" msgstr "Taoizmas" #: src/osmEditDialog.js:224 src/translations.js:304 msgid "Unitarian Universalism" msgstr "Unitarinis universalizmas" #: src/osmEditDialog.js:225 src/translations.js:305 msgid "Voodoo" msgstr "Voodoo" #: src/osmEditDialog.js:226 src/translations.js:306 msgid "Yazidism" msgstr "Jazidizmas" #: src/osmEditDialog.js:227 src/translations.js:307 msgid "Zoroastrianism" msgstr "Zoroastrianizmas" #: src/osmEditDialog.js:230 src/poiCategories.js:176 msgid "Toilets" msgstr "Tualetai" #: src/osmEditDialog.js:237 msgid "Note" msgstr "Pastaba" #: src/osmEditDialog.js:240 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" "Informacija, naudojama kitiems žemėlapių naudotojams informuoti apie " "neakivaizdžią informaciją, susijusią su elementu, autoriaus tikslą jį " "kuriant arba patarimus tolimesniam patobulinimui." #: src/osmEditDialog.js:339 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "Pridėti į OpenStreetMap" #: src/osmEditDialog.js:393 msgid "Select Type" msgstr "Pasirinkite tipą" #: src/osmEditDialog.js:515 msgid "Done" msgstr "Atlikta" #: src/osmEditDialog.js:818 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "" "Naudojamas formatas turi įtraukti kalbos kodą bei straipsnio pavadinimą, " "pvz. „lt:Straipsnio pavadinimas“." #: src/osmEditDialog.js:824 msgid "Use the reload button to load the Wikidata tag for the selected article" msgstr "" "Naudokite pakartotinio įkėlimo mygtuką pažymėto straipsnio Wikidata žymai " "įkelti" #: src/osmEditDialog.js:832 msgid "Couldn't find Wikidata tag for article" msgstr "Nepavyko rasti straipsnio Wikidata žymos" #: src/photonUtils.js:118 msgid "Unnamed place" msgstr "Nepavadinta vieta" #: src/placeEntry.js:274 msgid "Failed to parse Geo URI" msgstr "Nepavyko perskaityti Geo URI" #: src/placeEntry.js:286 msgid "Failed to parse Maps URI" msgstr "Nepavyko perskaityti Žemėlapių URI" #. 300 ft (300 * 12 * 0.0254 m) #. #. * Translators: This a format string for showing a distance to a place #. * is lower than a "quite short" distance. #. * The "less than" symbol can be substituded with an appropriate one, if #. * needed (e.g. using the correct direction, or alternative symbol). #. * The %s should be kept, and is substituted with a label representing the #. * short distance. The \u2009 (thin space) could also be adjusted if needed #: src/placeListRow.js:46 #, javascript-format msgctxt "short distance format string" msgid "< %s" msgstr "< %s" #: src/placeView.js:263 msgid "Coordinates" msgstr "Koordinatės" #: src/placeView.js:267 msgid "Accuracy" msgstr "Tikslumas" #. Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) #: src/placeView.js:270 #, javascript-format msgid "Accuracy: %s" msgstr "Tikslumas: %s" #. since the phone numbers are typically always rendered #. * left-to-right, insert an explicit LRM char to avoid issues #. * with phone numbers in international format starting with a + #. * which is considered a "weak" character to determine Unicode #. * text direction #. #: src/placeView.js:289 msgid "Phone number" msgstr "Telefono numeris" #. If a reference to a named floor (named or symbolic) exists #. * refer to it directly. #. #. Translators: #. * This is a reference to named building floor, using a label #. * or a code, as "displayed in the elevator" #. #: src/placeView.js:323 src/placeView.js:362 msgid "Floor" msgstr "Aukštas" #: src/placeView.js:325 #, javascript-format msgid "Floor %s" msgstr "Aukštas %s" #: src/placeView.js:337 msgid "At ground level" msgstr "Pirmame aukšte" #. Translators: #. * This is a reference to a number of floors above #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:346 #, javascript-format msgid "%s floor above ground level" msgid_plural "%s floors above ground level" msgstr[0] "%s aukšte virš vestibiulio" msgstr[1] "%s aukšte virš vestibiulio" msgstr[2] "%s aukšte virš vestibiulio" #. Translators: #. * This is a reference to a number of floors below #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:357 #, javascript-format msgid "%s floor below ground level" msgid_plural "%s floors below ground level" msgstr[0] "%s aukšte žemiau vestibiulio" msgstr[1] "%s aukšte žemiau vestibiulio" msgstr[2] "%s aukšte žemiau vestibiulio" #. Translators: #. * The establishment offers customers to purchase meals #. * (or similar) to be consumed elsewhere #. #: src/placeView.js:375 msgid "Offers takeout" msgstr "Siūlo išsinešti" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed on-premise. #. #: src/placeView.js:383 msgid "Does not offer takeout" msgstr "Nesiūlo išsinešti" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed elsewhere. E.g. #. * there is no seating on-premise for eating/drinking #. #: src/placeView.js:392 msgid "Only offers takeout" msgstr "Siūlo tik išsinešti" #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/placeView.js:409 msgid "Public internet access" msgstr "Vieša interneto prieiga" #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/placeView.js:418 msgid "No internet access" msgstr "Nėra interneto prieigos" #. Translators: #. * This means a WLAN Hotspot, also known as wireless, wifi or Wi-Fi. #. #: src/placeView.js:426 msgid "Public Wi-Fi" msgstr "Viešas Wi-Fi" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/placeView.js:434 msgid "Wired internet access" msgstr "Laidinė interneto prieiga" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/placeView.js:442 msgid "Computers available for use" msgstr "Prieinami kompiuteriai naudojimui" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/placeView.js:450 msgid "Internet assistance available" msgstr "Yra interneto asistentas" #: src/placeView.js:456 msgid "No toilets available" msgstr "Nėra tualetų" #: src/placeView.js:459 msgid "Toilets available" msgstr "Yra tualetai" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #: src/placeView.js:468 msgid "Wheelchair accessible" msgstr "Prieiga neįgaliųjų vežimėliais" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/placeView.js:478 msgid "Limited wheelchair accessibility" msgstr "Ribota prieiga neįgaliųjų vežimėliais" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #: src/placeView.js:487 msgid "Not wheelchair accessible" msgstr "Nėra prieigos neįgaliųjų vežimėliais" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/placeView.js:497 msgid "Designated for wheelchair users" msgstr "Sukurta neįgaliųjų vežimėlių naudotojams" #. * #. * Translators: this is a label indicating an altitude below #. * sea level, where the %s placeholder is the altitude relative #. * to mean sea level in the "negative direction" #. #: src/placeView.js:528 #, javascript-format msgid "%s below sea level" msgstr "%s žemiau jūros lygio" #. * #. * Translators: this indicates a place is located at (or very #. * close to) mean sea level #. #: src/placeView.js:535 msgid "At sea level" msgstr "Jūros lygyje" #: src/placeView.js:544 msgid "Religion:" msgstr "Religija:" #: src/place.js:570 msgid "Place not found in OpenStreetMap" msgstr "Vieta nerasta OpenStreetMap" #: src/place.js:577 msgid "Coordinates in URL are not valid" msgstr "Koordinatės URL yra netinkamos" #: src/place.js:586 msgid "URL is not supported" msgstr "URL yra nepalaikomas" #: src/poiCategories.js:132 msgid "Amenities" msgstr "Patogumai" #: src/poiCategories.js:135 msgid "ATMs" msgstr "Bankomatai" #: src/poiCategories.js:141 msgid "Post Boxes" msgstr "Pašto dėžutės" #: src/poiCategories.js:147 msgid "Post Offices" msgstr "Paštai" #: src/poiCategories.js:153 msgid "Police" msgstr "Policija" #: src/poiCategories.js:159 msgid "Libraries" msgstr "Bibliotekos" #: src/poiCategories.js:165 msgid "Pharmacies" msgstr "Vaistinės" #: src/poiCategories.js:171 msgid "Recycling" msgstr "Atliekų rūšiavimas" #: src/poiCategories.js:182 msgid "Wheelchair-accessible Toilets" msgstr "Tualetai neįgaliesiems vežimėliuose" #: src/poiCategories.js:188 msgid "Baggage Lockers" msgstr "Bagažo saugyklos" #: src/poiCategories.js:196 msgid "Eating & Drinking" msgstr "Maistas ir gėrimai" #: src/poiCategories.js:200 msgid "Restaurants" msgstr "Restoranai" #: src/poiCategories.js:205 msgid "Fast Food" msgstr "Greitas maistas" #: src/poiCategories.js:210 msgid "Food Courts" msgstr "Maisto kiemeliai" #: src/poiCategories.js:215 msgid "Pubs" msgstr "Vakarėlių barai" #: src/poiCategories.js:221 msgid "Bars" msgstr "Barai" #: src/poiCategories.js:226 msgid "Cafes" msgstr "Kavinės" #: src/poiCategories.js:231 msgid "Ice Cream" msgstr "Ledai" #: src/poiCategories.js:236 msgid "Food, Snacks, and Beverage Machines" msgstr "Maistas, užkandžiai ir gėrimų automatai" #: src/poiCategories.js:244 msgid "Shopping" msgstr "Apsipirkimas" #: src/poiCategories.js:248 msgid "Supermarkets" msgstr "Parduotuvės" #: src/poiCategories.js:254 msgid "Convenience Stores" msgstr "Universalinės parduotuvės" #: src/poiCategories.js:259 msgid "Shopping Malls" msgstr "Prekybos centrai" #: src/poiCategories.js:265 msgid "Clothes" msgstr "Drabužiai" #: src/poiCategories.js:271 msgid "Shoes" msgstr "Batai" #: src/poiCategories.js:276 msgid "Electronics" msgstr "Elektronika" #: src/poiCategories.js:282 msgid "Alcohol" msgstr "Alkoholis" #: src/poiCategories.js:288 msgid "Bakeries" msgstr "Kepiniai" #: src/poiCategories.js:294 msgid "Flowers" msgstr "Gėlės" #: src/poiCategories.js:301 msgid "Transportation" msgstr "Transportas" #: src/poiCategories.js:305 msgid "Bus & Tram Stops" msgstr "Autobusų ir tramvajų stotelės" #: src/poiCategories.js:313 msgid "Train & Subway Stations" msgstr "Traukinių ir metro stotelės" #: src/poiCategories.js:321 msgid "Tickets" msgstr "Bilietai" #: src/poiCategories.js:329 msgid "Parking" msgstr "Stovėjimo aikštelės" #: src/poiCategories.js:334 msgid "Bicycle Parking" msgstr "Dviračių aikštelės" #: src/poiCategories.js:339 msgid "Bicycle Rental" msgstr "Dviračių nuoma" #: src/poiCategories.js:344 msgid "Car Rental" msgstr "Automobilių nuoma" #: src/poiCategories.js:349 msgid "Fuel" msgstr "Degalai" #: src/poiCategories.js:354 msgid "EV Charging" msgstr "Elektromobilių įkrovimas" #: src/poiCategories.js:362 msgid "Healthcare" msgstr "Sveikatos priežiūra" #: src/poiCategories.js:366 msgid "Clinics" msgstr "Klinikos" #: src/poiCategories.js:372 msgid "Hospitals" msgstr "Ligoninės" #: src/poiCategories.js:378 msgid "Dentists" msgstr "Odontologai" #: src/poiCategories.js:386 msgid "Accommodation" msgstr "Nakvynė" #: src/poiCategories.js:390 msgid "Hotels" msgstr "Viešbučiai" #: src/poiCategories.js:395 msgid "Hostels" msgstr "Nakvynės namai" #: src/poiCategories.js:400 msgid "Bed & Breakfast" msgstr "Lova ir pusryčiai" #: src/poiCategories.js:405 msgid "Campings" msgstr "Kempingai" #: src/poiCategories.js:412 msgid "Recreation" msgstr "Rekreacija" #: src/poiCategories.js:416 msgid "Parks" msgstr "Parkai" #: src/poiCategories.js:421 msgid "Playgrounds" msgstr "Žaidimų aikštelės" #: src/poiCategories.js:425 msgid "Beaches" msgstr "Pliažai" #: src/poiCategories.js:430 msgid "Nature Reserves" msgstr "Gamtos rezervatai" #: src/poiCategories.js:436 msgid "Theme Parks" msgstr "Teminiai parkai" #: src/poiCategories.js:441 msgid "Theaters" msgstr "Teatrai" #: src/poiCategories.js:447 msgid "Movie Theaters" msgstr "Kino teatrai" #: src/poiCategories.js:453 msgid "Night Clubs" msgstr "Naktiniai klubai" #: src/poiCategories.js:460 msgid "Tourism" msgstr "Turizmas" #: src/poiCategories.js:464 msgid "Museums" msgstr "Muziejai" #: src/poiCategories.js:470 msgid "Attractions" msgstr "Atrakcijonai" #: src/poiCategories.js:475 msgid "Artworks" msgstr "Meno kūriniai" #: src/poiCategories.js:480 msgid "Tourist Information" msgstr "Informacija turistams" #: src/poiCategories.js:487 msgid "Sports" msgstr "Sportas" #: src/poiCategories.js:491 msgid "Gyms" msgstr "Sporto salės" #: src/poiCategories.js:497 msgid "Outdoor Gyms" msgstr "Sporto aikštelės" #: src/poiCategories.js:503 msgid "Golf Courses" msgstr "Golfo laukai" #: src/printLayout.js:350 #, javascript-format msgid "From %s to %s" msgstr "Nuo %s iki %s" #: src/printOperation.js:49 msgid "Loading map tiles for printing" msgstr "Įkeliami žemėlapio kokliai spausdinimui" #: src/printOperation.js:50 msgid "You can abort printing if this takes too long" msgstr "Galite atšaukti spausdinimą, jei tai per ilgai užtrunka" #: src/printOperation.js:52 msgid "Abort printing" msgstr "Atšaukti spausdinimą" #. Translators: this is add via location tooltip #: src/routeEntry.js:60 msgid "Add via location" msgstr "Pridėti per vietą" #. Translators: this is remove via location tooltip #: src/routeEntry.js:70 msgid "Remove via location" msgstr "Šalinti per vietą" #. Translators: this is reverse route tooltip #: src/routeEntry.js:76 msgid "Reverse route" msgstr "Atgalinis maršrutas" #: src/searchBar.js:45 msgid "Search" msgstr "Ieškoti" #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:84 #, javascript-format msgid "Add %s to %s" msgstr "Pridėti %s į %s" #: src/sendToDialog.js:181 msgid "Failed to open URI" msgstr "Nepavyko atverti URI" #: src/sendToDialog.js:246 #, javascript-format msgid "Open with %s" msgstr "Atverti su %s" #: src/shapeLayer.js:109 msgid "failed to load file" msgstr "nepavyko įkelti failo" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:328 #, javascript-format msgid "Estimated time: %s" msgstr "Įvertintas laikas: %s" #: src/sidebar.js:398 #, javascript-format msgid "Itineraries provided by %s" msgstr "Teikėjus pateikė %s" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:39 #, javascript-format msgid "Start at %s" msgstr "Pradėkite ties %s" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:45 src/transitplugins/openTripPlanner2.js:236 msgid "Start" msgstr "Pradėkite" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:63 #, javascript-format msgid "Walk %s" msgstr "Nueikite %s" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:77 #, javascript-format msgid "Arrive at %s" msgstr "Atvykti ties %s" #: src/transit.js:79 src/transitplugins/openTripPlanner.js:1176 #: src/transitplugins/openTripPlanner2.js:255 msgid "Arrive" msgstr "Atvykti" #: src/transitLegRow.js:69 msgid "Show walking instructions" msgstr "Rodyti ėjimo nurodymus" #: src/transitLegRow.js:70 msgid "Hide walking instructions" msgstr "Slėpti ėjimo nurodymus" #: src/transitMoreRow.js:37 msgid "Load earlier alternatives" msgstr "Įkelti ankstesnes alternatyvas" #: src/transitMoreRow.js:39 msgid "Load later alternatives" msgstr "Įkelti vėlesnes alternatyvas" #: src/transitMoreRow.js:52 msgid "No earlier alternatives found." msgstr "Nerasta ankstesnių alternatyvų." #: src/transitMoreRow.js:54 msgid "No later alternatives found." msgstr "Nerasta vėlesnių alternatyvų." #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:138 msgctxt "month-day-date" msgid "%b %e" msgstr "%b %e" #: src/transitPlan.js:171 msgid "No timetable data found for this route." msgstr "Šiam maršrutui nerasta tvarkaraščio duomenų." #: src/transitPlan.js:179 msgid "No provider found for this route." msgstr "Šiam maršrutui nerasta teikėjo." #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:300 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:331 #, javascript-format msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "%s minutė" msgstr[1] "%s minutės" msgstr[2] "%s minučių" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:343 #, javascript-format msgid "%s hour" msgid_plural "%s hours" msgstr[0] "%s valanda" msgstr[1] "%s valandos" msgstr[2] "%s valandų" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:351 #, javascript-format msgid "%s:%s hour" msgid_plural "%s:%s hours" msgstr[0] "%s:%s valanda" msgstr[1] "%s:%s valandos" msgstr[2] "%s:%s valandų" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:744 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: src/translations.js:55 msgid "Around the clock" msgstr "Visą parą" #: src/translations.js:57 msgid "From sunrise to sunset" msgstr "Nuo saulėtekio iki saulėlydžio" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:123 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s,%s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:137 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s,%s,%s" #: src/translations.js:156 msgid "Every day" msgstr "Kasdien" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:168 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:179 msgid "Public holidays" msgstr "Nedarbo dienomis" #: src/translations.js:181 msgid "School holidays" msgstr "Mokslo dienomis" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:221 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: src/translations.js:235 msgid "not open" msgstr "uždaryta" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:250 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:287 msgid "Bahá'í" msgstr "Bahá'í" #. Translators: Accuracy of user location information #: src/utils.js:248 msgid "Unknown" msgstr "Nežinomas" #. Translators: Accuracy of user location information #: src/utils.js:251 msgid "Exact" msgstr "Tikslus" #. Translators: this is a duration with only hours, using #. * an abbreviation for hours, corresponding to 'h' in English #. #: src/utils.js:307 #, javascript-format msgid "%s h" msgstr "%s h" #. Translators: this is a duration with hours and minutes parts #. * using abbreviations for hours and minutes, corresponding to 'h' #. * and 'min' in English. The minutes has appropriate plural variations #. #: src/utils.js:313 #, javascript-format msgid "%s h %s min" msgid_plural "%s h %s min" msgstr[0] "%s h %s min" msgstr[1] "%s h %s min" msgstr[2] "%s h %s min" #. Translators: this is a duration with minutes part #. * using abbreviation for minutes, corresponding to 'min' in English #. * with appropriate plural variations #. #: src/utils.js:320 #, javascript-format msgid "%s min" msgid_plural "%s min" msgstr[0] "%s min" msgstr[1] "%s min" msgstr[2] "%s min" #. Translators: this is a duration of less than one minute #. * with seconds using an abbreviation for seconds, corresponding to #. * 's' in English with appropriate plural forms #. #: src/utils.js:326 #, javascript-format msgid "%s s" msgid_plural "%s s" msgstr[0] "%s s" msgstr[1] "%s s" msgstr[2] "%s s" #. Translators: This is a distance measured in kilometers #: src/utils.js:337 #, javascript-format msgid "%s km" msgstr "%s km" #. Translators: This is a distance measured in meters #: src/utils.js:340 #, javascript-format msgid "%s m" msgstr "%s m" #. Translators: This is a distance measured in miles #: src/utils.js:348 #, javascript-format msgid "%s mi" msgstr "%s mylios" #. Translators: This is a distance measured in feet #: src/utils.js:351 #, javascript-format msgid "%s ft" msgstr "%s pėdos" #: src/transitplugins/goMetro.js:61 msgid "This plugin doesn't support latest arrival" msgstr "Šis įskiepis nepalaiko vėliausio atvykimo laiko" #: src/transitplugins/openTripPlanner.js:1237 #: src/transitplugins/openTripPlanner2.js:266 #, javascript-format msgid "Continue on %s" msgstr "Tęsti %s" #: src/transitplugins/openTripPlanner.js:1242 #: src/transitplugins/openTripPlanner2.js:270 #, javascript-format msgid "Turn left on %s" msgstr "Sukti kairėn ties %s" #: src/transitplugins/openTripPlanner.js:1244 #: src/transitplugins/openTripPlanner2.js:271 msgid "Turn left" msgstr "Sukti kairėn" #: src/transitplugins/openTripPlanner.js:1247 #: src/transitplugins/openTripPlanner2.js:275 #, javascript-format msgid "Turn slightly left on %s" msgstr "Sukti kairiau ties %s" #: src/transitplugins/openTripPlanner.js:1249 #: src/transitplugins/openTripPlanner2.js:276 msgid "Turn slightly left" msgstr "Sukti kairiau" #: src/transitplugins/openTripPlanner.js:1252 #: src/transitplugins/openTripPlanner2.js:280 #, javascript-format msgid "Turn sharp left on %s" msgstr "Staigiai sukti į kairėn ties %s" #: src/transitplugins/openTripPlanner.js:1254 #: src/transitplugins/openTripPlanner2.js:281 msgid "Turn sharp left" msgstr "Staigiai sukti į kairėn" #: src/transitplugins/openTripPlanner.js:1257 #: src/transitplugins/openTripPlanner2.js:284 #, javascript-format msgid "Turn right on %s" msgstr "Sukti dešinėn ties %s" #: src/transitplugins/openTripPlanner.js:1259 #: src/transitplugins/openTripPlanner2.js:285 msgid "Turn right" msgstr "Sukti dešinėn" #: src/transitplugins/openTripPlanner.js:1262 #: src/transitplugins/openTripPlanner2.js:289 #, javascript-format msgid "Turn slightly right on %s" msgstr "Sukti dešiniau ties %s" #: src/transitplugins/openTripPlanner.js:1264 #: src/transitplugins/openTripPlanner2.js:290 msgid "Turn slightly right" msgstr "Sukti dešiniau" #: src/transitplugins/openTripPlanner.js:1267 #: src/transitplugins/openTripPlanner2.js:294 #, javascript-format msgid "Turn sharp right on %s" msgstr "Staigiai sukti dešinėn ties %s" #: src/transitplugins/openTripPlanner.js:1269 #: src/transitplugins/openTripPlanner2.js:295 msgid "Turn sharp right" msgstr "Staigiai sukti dešinėn" #: src/transitplugins/openTripPlanner.js:1275 #: src/transitplugins/openTripPlanner2.js:302 #, javascript-format msgid "At the roundabout, take exit %s" msgstr "Žiede pasirinkite %s išvažiavimą" #: src/transitplugins/openTripPlanner.js:1277 #: src/transitplugins/openTripPlanner2.js:305 #, javascript-format msgid "At the roundabout, take exit to %s" msgstr "Žiede pasirinkite išvažiavimą į %s" #: src/transitplugins/openTripPlanner.js:1279 #: src/transitplugins/openTripPlanner2.js:307 msgid "Take the roundabout" msgstr "Įvažiuokite į žiedą" #: src/transitplugins/openTripPlanner.js:1283 #: src/transitplugins/openTripPlanner2.js:315 #, javascript-format msgid "Take the elevator and get off at %s" msgstr "Liftu pasikelkite į %s" #: src/transitplugins/openTripPlanner.js:1285 #: src/transitplugins/openTripPlanner2.js:316 msgid "Take the elevator" msgstr "Kilkite liftu" #: src/transitplugins/openTripPlanner.js:1289 #: src/transitplugins/openTripPlanner2.js:320 #, javascript-format msgid "Make a left u-turn onto %s" msgstr "Apsisukite į %s" #: src/transitplugins/openTripPlanner.js:1291 #: src/transitplugins/openTripPlanner2.js:321 msgid "Make a left u-turn" msgstr "Apsisukite" #: src/transitplugins/openTripPlanner.js:1294 #: src/transitplugins/openTripPlanner2.js:325 #, javascript-format msgid "Make a right u-turn onto %s" msgstr "Apsisukite į dešinę į %s" #: src/transitplugins/openTripPlanner.js:1296 #: src/transitplugins/openTripPlanner2.js:326 msgid "Make a right u-turn" msgstr "Apsisukite į dešinę" #~ msgid "Sign in to edit maps" #~ msgstr "" #~ "Prisijunkite, kad redaguotumėte " #~ "žemėlapius" #~ msgid "" #~ "Sign in to authorize access in a web browser.\n" #~ "Then fill in the obtained verification code here in the next step." #~ msgstr "" #~ "Suteikite prieigą prisijungdami interneto naršyklėje.\n" #~ "Tuomet kitu žingsniu įveskite gautą patvirtinimo kodą čia." #~ msgid "Signed In" #~ msgstr "Prisijungę" #~ msgid "E-mail" #~ msgstr "El. paštas" #~ msgid "Sign up" #~ msgstr "Prisiregistruoti" #~ msgid "Filesystem is read only" #~ msgstr "Failų sistema yra tik skaitymui" #~ msgid "You do not have permission to save there" #~ msgstr "Jūs neturite leidimo ten įrašyti" #~ msgid "The directory does not exist" #~ msgstr "Katalogo nėra" #~ msgid "No filename specified" #~ msgstr "Nenurodytas failo pavadinimas" #~ msgid "" #~ "Location was added to the map, note that it may take a while before it " #~ "shows on the map and in search results." #~ msgstr "" #~ "Vieta pridėta prie žemėlapio, pastebėsime, kad gali užtrukti, kol ji taps " #~ "matoma žemėlapyje bei paieškoje." #~ msgid "Takeaway" #~ msgstr "Išsinešti" #~ msgid "Go to current location" #~ msgstr "Eiti į dabartinę vietą" #~ msgid "Choose map type" #~ msgstr "Pasirinkite žemėlapio tipą" #~ msgid "Zoom in" #~ msgstr "Didinti" #~ msgid "Drag to change order of the route" #~ msgstr "Tempkite kelio eilės tvarkai keisti" #~ msgid "Foursquare check-in privacy setting" #~ msgstr "Siuntimo į Foursquare privatumo nustatymas" #~ msgid "" #~ "Latest used Foursquare check-in privacy setting. Possible values are: " #~ "public, followers or private." #~ msgstr "" #~ "Paskutinis naudotas siuntimo į Foursquare nustatymas. Galimo vertės yra " #~ "public, followers arba private." #~ msgid "Foursquare check-in Facebook broadcasting" #~ msgstr "Siuntimo į Foursquare pranešimas į Facebook" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a post in the " #~ "Facebook account associated with the Foursquare account." #~ msgstr "" #~ "Nurodo, ar Foursquare turėtų pranešti paskutinį nusiuntimą kaip įrašą " #~ "Facebook paskyroje, susietoje su Foursquare paskyra." #~ msgid "Foursquare check-in Twitter broadcasting" #~ msgstr "Foursquare check-in Twitter broadcasting" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a tweet in the " #~ "Twitter account associated with the Foursquare account." #~ msgstr "" #~ "Nurodo, ar Foursquare turėtų pranešti paskutinį nusiuntimą kaip įrašą " #~ "Twitter paskyroje, susietoje su Foursquare paskyra." #~ msgid "Use hybrid aerial tiles" #~ msgstr "Naudoti hibridines oro plyteles" #~ msgid "Whether aerial tiles should use hybrid style (with labels)." #~ msgstr "Ar oro plytelės turėtų naudoti hibridinį stilių (su užrašais)." #~ msgid "Visibility" #~ msgstr "Matomumas" #~ msgid "Post on Facebook" #~ msgstr "Pranešti Facebook" #~ msgid "Post on Twitter" #~ msgstr "Pranešti Twitter" #~ msgid "C_heck in" #~ msgstr "_Nusiųsti" #~ msgid "Public" #~ msgstr "Viešas" #~ msgid "Private" #~ msgstr "Privatus" #~ msgid "Include route and markers" #~ msgstr "Įtraukti maršrutą ir žymes" #~ msgid "Show Labels" #~ msgstr "Rodyti užrašus" #~ msgid "Maps is offline!" #~ msgstr "Žemėlapiai atsijungę nuo interneto!" #~ msgid "" #~ "Maps need an active internet connection to function properly, but one " #~ "can’t be found." #~ msgstr "" #~ "Žemėlapių tvarkingam veikimui reikia aktyvaus interneto ryšio, bet tokio " #~ "nėra." #~ msgid "Check your connection and proxy settings." #~ msgstr "Patikrinkite savo prisijungimo ir tarpinio serverio nustatymus." #~ msgid "Password" #~ msgstr "Slaptažodis" #~ msgid "" #~ "Sorry, that didn’t work. Please try again, or visit\n" #~ "OpenStreetMap to reset your password." #~ msgstr "" #~ "Atleiskite, tai nesuveikė. Prašome bandyti dar kartą arba apsilankyti\n" #~ "OpenStreetMap, kad atstatytumėte savo slaptažodį." #~ msgid "Check In…" #~ msgstr "Prisiregistruoti…" #~ msgid "Ignore network availability" #~ msgstr "Nepaisyti tinklo prieinamumo" #~ msgid "Select an account" #~ msgstr "Pasirinkite paskyrą" #~ msgid "Loading" #~ msgstr "Įkeliama" #~ msgid "Select a place" #~ msgstr "Pasirinkite vietą" #~ msgid "" #~ "Maps cannot find the place to check in to with Foursquare. Please select " #~ "one from this list." #~ msgstr "" #~ "Žemėlapiai negali rasti vietos nusiuntimui į Foursquare. Pasirinkite ją " #~ "iš sąrašo." #, javascript-format #~ msgid "Check in to %s" #~ msgstr "Nusiųsti į %s" #, javascript-format #~ msgid "Write an optional message to check in to %s." #~ msgstr "Parašykite pranešimą nusiuntimui į %s." #, javascript-format #~ msgid "Cannot find “%s” in the social service" #~ msgstr "Nepavyko rasti „%s“ socialinėje tarnyboje" #~ msgid "Cannot find a suitable place to check-in in this location" #~ msgstr "Nepavyko rasti tinkamos vietos šios vietos nusiuntimui" #~ msgid "" #~ "Credentials have expired, please open Online Accounts to sign in and " #~ "enable this account" #~ msgstr "" #~ "Įgaliojimai pasibaigė, atverkite internetines paskyra prisijungimui ir " #~ "paskyros atnaujinimui" #~ msgid "A map application for GNOME" #~ msgstr "Žemėlapių programa GNOME aplinkai" #~ msgid "GNOME Maps" #~ msgstr "GNOME žemėlapiai" #~ msgid "Night mode" #~ msgstr "Nakties veiksena" #~ msgid "Whether the application is in night mode." #~ msgstr "Ar programa yra naktinėje veiksenoje." #~ msgid "Night Mode" #~ msgstr "Nakties veiksena" #~ msgid "" #~ "You can even search for specific types of locations, such as “Pubs near " #~ "Main Street, Boston” or “Hotels near Alexanderplatz, Berlin”." #~ msgstr "" #~ "Taip pat galite ieškoti specifinių vietų, tokių kaip „Barai šalia " #~ "Gedimino prospekto, Vilnius“ arba „Viešbučiai šalia Basanavičiaus gatvės, " #~ "Palanga“." #~ msgid "Facebook check-in privacy setting" #~ msgstr "Siuntimo į Facebook privatumo nustatymas" #~ msgid "" #~ "Latest used Facebook check-in privacy setting. Possible values are: " #~ "EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS or SELF." #~ msgstr "" #~ "Paskutinis naudotas siuntimo į Facebook privatumo nustatymas. Galimos " #~ "vertės yra EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS arba SELF." #~ msgid "Everyone" #~ msgstr "Visiems" #~ msgid "Friends of friends" #~ msgstr "Draugų draugams" #~ msgid "Just friends" #~ msgstr "Tik draugams" #~ msgid "Just me" #~ msgstr "Tik man" #~ msgid "" #~ "Maps cannot find the place to check in to with Facebook. Please select " #~ "one from this list." #~ msgstr "" #~ "Žemėlapiai negali rasti vietos nusiuntimui į Facebook. Pasirinkitę ją iš " #~ "sąrašo." #~ msgctxt "time range list" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgctxt "time range list" #~ msgid "%s %s %s" #~ msgstr "%s %s %s" #~ msgctxt "time range component" #~ msgid "%s %s" #~ msgstr "%s %s" #~| msgid "Print Route" #~ msgid "Find a Route" #~ msgstr "Rasti kelią" #~ msgid "Check in here" #~ msgstr "Patikrinkite čia" #~ msgid "Population:" #~ msgstr "Gyventojų skaičius:" #~ msgid "Altitude:" #~ msgstr "Aukštis:" #~ msgid "Opening hours:" #~ msgstr "Darbo laikas:" #~ msgid "Internet access:" #~ msgstr "Interneto prieiga:" #~ msgid "Toilets:" #~ msgstr "Tualetai:" #~ msgid "Wheelchair access:" #~ msgstr "Prieiga neįgaliųjų vežimėliais:" #~ msgid "Phone:" #~ msgstr "Telefonas:" #~ msgid "yes" #~ msgstr "taip" #~ msgid "limited" #~ msgstr "ribota" #~ msgid "no" #~ msgstr "ne" #~ msgid "designated" #~ msgstr "su paskirtimi" #~ msgid "OpenStreetMap URL is not valid" #~ msgstr "OpenStreetMap URL yra netinkamas" #~ msgid "wired" #~ msgstr "laidinis" #~ msgid "terminal" #~ msgstr "terminalas" #~ msgid "service" #~ msgstr "tarnyba" #~ msgid "Primary menu" #~ msgstr "Pirminis meniu" #~ msgid "Don’t have an account?" #~ msgstr "Neturite paskyros?" #~ msgid "%f h" #~ msgstr "%f val" #~ msgid "%f min" #~ msgstr "%f min" #~ msgid "%f s" #~ msgstr "%f s" #~ msgid "Route search by OpenTripPlanner" #~ msgstr "Maršruto paieška naudojant OpenTripPlanner" #~ msgid "Add destination" #~ msgstr "Pridėti paskirties vietą" #~ msgid "org.gnome.Maps" #~ msgstr "org.gnome.Maps" #~ msgid "Open with another application" #~ msgstr "Atverti su kita programa" #~ msgid "Press enter to search" #~ msgstr "Spauskite enter paieškai" #~ msgid "Quit" #~ msgstr "Išeiti" #~ msgid "OK" #~ msgstr "Gerai" #~ msgid "Open Shape Layer…" #~ msgstr "Atverti formos sluoksnį…" #~ msgid "Load Map Layer" #~ msgstr "Įkelti žemėlapio sluoksnį" #~ msgid "%f km" #~ msgstr "%f km" #~ msgid "%f m" #~ msgstr "%f m" #~ msgid "%f mi" #~ msgstr "%f mi" #~ msgid "%f ft" #~ msgstr "%f pėdos" #~ msgid "Position not found" #~ msgstr "Nerasta padėtis" #~ msgid "Country code: %s" #~ msgstr "Šalies kodas: %s" #~ msgid "Population: %s" #~ msgstr "Gyventojų skaičius: %s" #~ msgid "Wheelchair access: %s" #~ msgstr "Prieiga neįgaliųjų vežimėliais: %s" #~ msgid "Failed to parse GeoJSON file" #~ msgstr "Nepavyko perskaityti GeoJSON failo" #~ msgid "_Share" #~ msgstr "_Viešinti" 070701000001D4000081A40000000000000000000000016641340900010298000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/lv.po# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # SPDX-FileCopyrightText: 2013, 2014, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2024 Rūdolfs Mazurs msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2024-03-06 13:53+0000\n" "PO-Revision-Date: 2024-03-08 22:23+0200\n" "Last-Translator: Rūdolfs Mazurs \n" "Language-Team: Latvian \n" "Language: lv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 :" " 2);\n" "X-Generator: Lokalize 23.08.1\n" #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.appdata.xml.in.in:6 data/org.gnome.Maps.desktop.in.in:4 #: data/ui/main-window.ui:27 src/application.js:64 src/mainWindow.js:147 #: src/mainWindow.js:647 msgid "Maps" msgstr "Kartes" #: data/org.gnome.Maps.appdata.xml.in.in:7 msgid "Find places around the world" msgstr "Atrodi vietas visā pasaulē" #: data/org.gnome.Maps.appdata.xml.in.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "Kartes dod iespēju ātri piekļūt kartēm visā pasaulē. Tās ļauj ātri atrast " "kādu vietu, meklējot pilsētu vai ielu, vai atrast vietu, kur sastapt draugus." #: data/org.gnome.Maps.appdata.xml.in.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "Kartes izmanto kolektīvi veidoto OpenStreetMap datubāzi, ko veidojuši " "tūkstošiem cilvēku visā pasaulē." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Maps.appdata.xml.in.in:458 src/mainWindow.js:644 msgid "The GNOME Project" msgstr "GNOME projekts" #: data/org.gnome.Maps.desktop.in.in:5 msgid "A simple maps application" msgstr "Vienkārša karšu lietotnes" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in.in:14 msgid "Maps;" msgstr "Kartes;" #: data/org.gnome.Maps.desktop.in.in:17 msgid "Allows your location to be shown on the map." msgstr "Ļauj uz kartes parādīt jūsu atrašanās vietu." #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "pēdējā skatītā vieta" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "Pēdējās apskatītās vietas koordinātas" #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "mērogs" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "Mērogs" #: data/org.gnome.Maps.gschema.xml:21 msgid "rotation" msgstr "pagrieziens" #: data/org.gnome.Maps.gschema.xml:22 msgid "Map rotation in radians" msgstr "Kartes rotācija radiānos" #: data/org.gnome.Maps.gschema.xml:26 msgid "Map type" msgstr "Kartes veids" #: data/org.gnome.Maps.gschema.xml:27 msgid "The type of map to display (street, aerial, etc.)" msgstr "Kartes veids, ko attēlot (ielu, aerofoto utt.)" #: data/org.gnome.Maps.gschema.xml:31 msgid "Window size" msgstr "Loga izmērs" #: data/org.gnome.Maps.gschema.xml:32 msgid "Window size (width and height)." msgstr "Loga izmērs (platums un augstums)." #: data/org.gnome.Maps.gschema.xml:36 msgid "Window position" msgstr "Loga novietojums" #: data/org.gnome.Maps.gschema.xml:37 msgid "Window position (X and Y)." msgstr "Loga novietojums (X un Y)." #: data/org.gnome.Maps.gschema.xml:41 msgid "Window maximized" msgstr "Logs maksimizēts" #: data/org.gnome.Maps.gschema.xml:42 msgid "Window maximization state" msgstr "Loga maksimizācijas stāvoklis" #: data/org.gnome.Maps.gschema.xml:46 msgid "Maximum number of search results" msgstr "Maksimālais meklēšanas rezultātu skaits" #: data/org.gnome.Maps.gschema.xml:47 msgid "Maximum number of search results from geocode search." msgstr "Maksimālais meklēšanas rezultātu skaits no geocode meklējuma." #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent places to store" msgstr "Saglabājamo neseno vietu skaits" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited places to store." msgstr "Saglabājamo nesen apmeklēto vietu skaits" #: data/org.gnome.Maps.gschema.xml:56 msgid "Number of recent routes to store" msgstr "Saglabājamo neseno maršrutu skaits" #: data/org.gnome.Maps.gschema.xml:57 msgid "Number of recently visited routes to store." msgstr "Saglabājamo nesen apmeklēto maršrutu skaits" #: data/org.gnome.Maps.gschema.xml:61 msgid "OpenStreetMap username or email address" msgstr "OpenStreetMap lietotājvārds vai e-pasta adrese" #: data/org.gnome.Maps.gschema.xml:62 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "" "Norāda, vai lietotājs ir ierakstījies, lai rediģētu OpenStreetMap datus." #: data/org.gnome.Maps.gschema.xml:66 msgid "Last used transportation type for routing" msgstr "Pēdējais izmantotais transportēšanas tips maršrutēšanai" #: data/org.gnome.Maps.gschema.xml:70 msgid "Show scale" msgstr "Rādīt mērogu" #: data/org.gnome.Maps.gschema.xml:71 msgid "Whether to show the scale." msgstr "Vai rādīt mērogu." #: data/ui/context-menu.ui:6 msgid "Route from Here" msgstr "Maršruts no šejienes" #: data/ui/context-menu.ui:10 msgid "Add Intermediate Destination" msgstr "Pievienot starp-galamērķi" #: data/ui/context-menu.ui:14 msgid "Route to Here" msgstr "Maršruts uz šejieni" #: data/ui/context-menu.ui:20 msgid "What's Here?" msgstr "Kas ir šeit?" #: data/ui/context-menu.ui:24 msgid "Copy Location" msgstr "Kopēt atrašanās vietu" #: data/ui/context-menu.ui:28 msgid "Add to OpenStreetMap…" msgstr "Pievienot OpenStreetMap kartēm…" #: data/ui/export-view-dialog.ui:7 msgid "Export view" msgstr "Eksportēt skatu" #: data/ui/export-view-dialog.ui:16 data/ui/send-to-dialog.ui:10 #: data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "At_celt" #: data/ui/export-view-dialog.ui:26 msgid "_Export" msgstr "_Eksportēt" #. Translators: This is a tooltip #: data/ui/favorite-list-row.ui:72 msgid "Remove Favorite" msgstr "Izņemt no izlases" #: data/ui/favorites-popover.ui:11 msgid "No Favorites" msgstr "Nav izlase" #: data/ui/favorites-popover.ui:12 msgid "Add places to your favorites to get them listed here" msgstr "Pievienojiet vietas savai izlasei, lai tās šeit tiktu uzskaitītas" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:11 src/geoclue.js:106 msgid "Current Location" msgstr "Pašreizējā atrašanās vieta" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:19 msgid "Layers" msgstr "Slāņi" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:11 msgid "Print Route" msgstr "Drukāt maršrutu" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:21 msgid "Favorites" msgstr "Izlase" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:30 msgid "Route Planner" msgstr "Maršruta plānotājs" #: data/ui/help-overlay.ui:12 msgctxt "shortcut window" msgid "General" msgstr "Vispārīgi" #: data/ui/help-overlay.ui:15 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "Rādīt saīsnes" #: data/ui/help-overlay.ui:21 msgctxt "shortcut window" msgid "Search" msgstr "Meklēt" #: data/ui/help-overlay.ui:27 msgctxt "shortcut window" msgid "Explore points-of-interest" msgstr "Izpētīt intereses vietas" #: data/ui/help-overlay.ui:33 msgctxt "shortcut window" msgid "Show last search results" msgstr "Rādīt pēdējos meklēšanas rezultātus" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "Pārslēgt maršruta plānotāju" #: data/ui/help-overlay.ui:45 msgctxt "shortcut window" msgid "Print route" msgstr "Drukāt maršrutu" #: data/ui/help-overlay.ui:51 msgctxt "shortcut window" msgid "Quit" msgstr "Iziet" #: data/ui/help-overlay.ui:57 msgctxt "shortcut window" msgid "Open main menu" msgstr "Atvērt galveno izvēlni" #: data/ui/help-overlay.ui:65 msgctxt "shortcut window" msgid "Map View" msgstr "Kartes skats" #: data/ui/help-overlay.ui:68 msgctxt "shortcut window" msgid "Zoom in" msgstr "Tuvināt" #: data/ui/help-overlay.ui:74 msgctxt "shortcut window" msgid "Zoom out" msgstr "Tālināt" #: data/ui/help-overlay.ui:80 msgctxt "shortcut window" msgid "Rotate clockwise" msgstr "Pagriezt pulksteņrādītāja virzienā" #: data/ui/help-overlay.ui:86 msgctxt "shortcut window" msgid "Rotate counter-clockwise" msgstr "Pagriezt pretēji pulksteņrādītāja virzienam" #: data/ui/help-overlay.ui:92 msgctxt "shortcut window" msgid "Reset rotation" msgstr "Atiestatīt pagriezienu" #: data/ui/help-overlay.ui:98 msgctxt "shortcut window" msgid "Toggle scale" msgstr "Pārslēgt mērogu" #: data/ui/help-overlay.ui:104 msgctxt "shortcut window" msgid "Go to current location" msgstr "Iet uz pašreizējo vietu" #: data/ui/help-overlay.ui:114 msgctxt "shortcut window" msgid "Switch to street view" msgstr "Pārslēgties uz ielas skatu" #: data/ui/help-overlay.ui:121 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "Pārslēgties uz aerofoto skatu" #: data/ui/help-overlay.ui:127 msgctxt "shortcut window" msgid "Open shape layer" msgstr "Atvērt formu slāni" #: data/ui/layers-popover.ui:7 msgid "Show Scale" msgstr "Rādīt mērogu" #: data/ui/layers-popover.ui:16 msgid "Enable Experimental Map" msgstr "Ieslēgt eksperimentālo karti" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:21 msgid "Open Shape Layer…" msgstr "Atvērt formu slāni…" #: data/ui/main-window.ui:8 msgid "Set up OpenStreetMap Account…" msgstr "Izveidot OpenStreetMap kontu…" #: data/ui/main-window.ui:12 msgid "Export as Image…" msgstr "Eksportēt kā attēlu…" #: data/ui/main-window.ui:17 msgid "_Keyboard Shortcuts" msgstr "_Tastatūras īsinājumtaustiņi" #: data/ui/main-window.ui:22 msgid "About Maps" msgstr "P_ar kartēm" #: data/ui/main-window.ui:48 msgid "Main Menu" msgstr "Galvenā izvēlne" #: data/ui/osm-account-dialog.ui:5 msgid "OpenStreetMap Account" msgstr "OpenStreetMap konts" #: data/ui/osm-account-dialog.ui:31 msgid "Sign In To Edit Maps" msgstr "Ierakstīties, lai rediģētu karti" #: data/ui/osm-account-dialog.ui:32 msgid "Help to improve the map, using an OpenStreetMap account." msgstr "Palīdziet uzlabot karti, izmantojot OpenStreetMap kontu." #: data/ui/osm-account-dialog.ui:36 msgid "Sign In" msgstr "Ierakstīties" #: data/ui/osm-account-dialog.ui:59 msgid "Verification" msgstr "Verifikācija" #: data/ui/osm-account-dialog.ui:60 msgid "" "Copy the verification code shown when authorizing access in the browser." msgstr "Kopēt verifikācijas kodu, kad pilnvaro piekļuvi pārlūkam." #: data/ui/osm-account-dialog.ui:69 msgid "Verification Code" msgstr "Verifikācijas kods" #: data/ui/osm-account-dialog.ui:75 msgid "Verify" msgstr "Verificēt" #: data/ui/osm-account-dialog.ui:110 msgid "Signed In" msgstr "Ierakstīties" #: data/ui/osm-account-dialog.ui:111 msgid "Your OpenStreetMap account is active." msgstr "Jūsu OpenStreetMap konts ir aktīvs." #: data/ui/osm-account-dialog.ui:129 msgid "Sign Out" msgstr "Izrakstīties" #: data/ui/osm-edit-address.ui:11 msgid "Street" msgstr "Iela" #: data/ui/osm-edit-address.ui:22 msgid "House number" msgstr "Mājas numurs" #: data/ui/osm-edit-address.ui:33 msgid "Postal code" msgstr "Pasta indekss" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:44 msgid "City" msgstr "Pilsēta" #: data/ui/osm-edit-dialog.ui:8 msgctxt "dialog title" msgid "Edit on OpenStreetMap" msgstr "Rediģēt OpenStreetMap karti" #: data/ui/osm-edit-dialog.ui:57 msgid "Type" msgstr "Tips" #: data/ui/osm-edit-dialog.ui:79 msgid "None" msgstr "Nav" #: data/ui/osm-edit-dialog.ui:108 msgid "Add Field" msgstr "Pievienot lauku" #: data/ui/osm-edit-dialog.ui:130 msgid "Comment" msgstr "Komentārs" #: data/ui/osm-edit-dialog.ui:158 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "Izmaiņas kartē būs redzmas visās kartēs, kas izmanto\n" "OpenStreetMap datus." #: data/ui/osm-edit-dialog.ui:186 msgid "Recently Used" msgstr "Nesen lietotie" #: data/ui/osm-edit-dialog.ui:225 src/mapView.js:671 msgid "Cancel" msgstr "Atcelt" #: data/ui/osm-edit-dialog.ui:238 src/osmEditDialog.js:531 msgid "Next" msgstr "Nākamais" #: data/ui/osm-edit-wikipedia.ui:8 msgid "Article" msgstr "Raksts" #: data/ui/osm-edit-wikipedia.ui:21 msgid "Wikidata tag" msgstr "Wikidata tags" #: data/ui/osm-edit-wikipedia.ui:32 msgid "Load Wikidata tag for article" msgstr "Ielādēt raksta Wikidata tagus" #: data/ui/place-popover.ui:23 src/searchBar.js:55 msgid "Explore Nearby Places" msgstr "Izpētīt tuvumā esošās vietas" #: data/ui/place-popover.ui:82 src/application.js:277 msgid "No results found" msgstr "Nav atrastu rezultātu" #: data/ui/place-popover.ui:92 src/application.js:255 msgid "An error has occurred" msgstr "Gadījās kļūda" #. Translators: This is a tooltip #: data/ui/route-entry.ui:12 msgid "Change Route Order" msgstr "Mainīt maršruta secību" #: data/ui/send-to-dialog.ui:7 msgid "Open Location" msgstr "Atvērt vietu" #: data/ui/send-to-dialog.ui:64 msgid "Copy" msgstr "Kopēt" #: data/ui/send-to-dialog.ui:70 msgid "Send To…" msgstr "Sūtīt uz…" #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:62 msgid "Open Shape Layer" msgstr "Atvērt formu slāni" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "_Atvērt" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:32 msgid "Toggle visible" msgstr "Pārslēgt redzamību" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:44 msgid "Remove Shape Layer" msgstr "Izņemt formas slāni" #: data/ui/sidebar.ui:207 msgid "Route search by GraphHopper" msgstr "GraphHopper maršruta meklēšana" #: data/ui/sidebar.ui:272 msgid "" "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of " "transportation,\n" "e.g. a national provider might not include airlines, and a local provider " "could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" "Sabiedriskā transporta maršrutus nodrošina trešo pušu pakalpojumus.\n" "GNOME nevar garantēt attēloto maršrutu un sarakstu pareizību.\n" "Ņemiet vērā, ka daži pakalpojumu sniedzēji neiekļauj visus pieejamos " "transporta veidus, piemēram, nacionālais pakalpojumu sniedzējs neiekļauj " "avio satiksmi un lokālais pakalpojumu sniedzējs varētu neiekļaut reģionālos " "vilcienus.\n" "Attēlotie nosaukumi un zīmoli tiek uzskatīti par preču zīmēm, ja attiecināms." #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:98 msgid "Hide intermediate stops and information" msgstr "Slēpt pa ceļam esošās apstāšanās vietas un informāciju" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:156 msgid "Show intermediate stops and information" msgstr "Rādīt pa ceļam esošās apstāšanās vietas un informāciju" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:16 msgid "Leave Now" msgstr "Doties tagad" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:17 msgid "Leave By" msgstr "Doties līdz" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:18 msgid "Arrive By" msgstr "Atbraukt līdz" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:85 msgid "Show" msgstr "Rādīt" #: data/ui/transit-options-panel.ui:95 msgid "Buses" msgstr "Autobusi" #: data/ui/transit-options-panel.ui:101 msgid "Trams" msgstr "Tramvaji" #: data/ui/transit-options-panel.ui:107 msgid "Trains" msgstr "Vilcieni" #: data/ui/transit-options-panel.ui:113 msgid "Subway" msgstr "Metro" #: data/ui/transit-options-panel.ui:119 msgid "Ferries" msgstr "Prāmji" #: data/ui/transit-options-panel.ui:125 msgid "Airplanes" msgstr "Lidmašīnas" #. Translators: This is a tooltip #: data/ui/place-bar.ui:33 data/ui/place-buttons.ui:27 msgid "Share Location" msgstr "Koplietot vietu" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:11 msgid "Add to new route" msgstr "Pievienot jaunu maršrutu" #. Translators: This is the button to find a route to a place #: data/ui/place-buttons.ui:15 msgid "Directions" msgstr "Norādes" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:36 msgid "Mark as Favorite" msgstr "Pievienot izlasei" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:44 msgid "Edit on OpenStreetMap" msgstr "Rediģēt OpenStreetMap karti" #. Translators: This is a tooltip #: data/ui/place-view.ui:52 msgid "Share location" msgstr "Koplietot vietu" #: data/ui/poi-category-goback-row.ui:22 msgid "Back to Main Categories" msgstr "Atpakaļ uz galvenajām kategorijām" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:19 msgid "Reset Rotation" msgstr "Atiestatīt pagriezienu" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:32 msgid "Zoom Out" msgstr "Tālināt" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:43 src/mapView.js:1246 msgid "Zoom In" msgstr "Tuvināt" #: lib/maps-file-data-source.c:262 lib/maps-file-data-source.c:338 #: lib/maps-file-data-source.c:418 msgid "Failed to find tile structure in directory" msgstr "Direktorijā nevarēja atrast flīžu struktūru" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "Neizdevās parsēt XML dokumentu" #: lib/maps-osm.c:250 lib/maps-osm.c:403 msgid "Missing required attributes" msgstr "Trūkst nepieciešamo atribūtu" #: lib/maps-osm.c:451 lib/maps-osm.c:494 msgid "Could not find OSM element" msgstr "Nevarēja atrast OSM elementu" #: lib/maps-osm.c:508 msgid "Could not find user element" msgstr "Nevarēja atrast lietotāja elementu" #: src/application.js:78 msgid "A path to a local tiles directory structure" msgstr "Ceļš uz lokālo flīžu direktorija struktūru" #: src/application.js:84 msgid "Tile size for local tiles directory" msgstr "Flīzes izmērs lokālo flīžu direktorijam" #: src/application.js:88 msgid "Show the version of the program" msgstr "Rādīt programmas versiju" #: src/application.js:94 msgid "Search for places" msgstr "Meklēt vietas" #: src/application.js:105 src/application.js:106 msgid "[FILE…|URI]" msgstr "[DATNE…|URI]" #: src/application.js:284 #, javascript-format msgid "Invalid maps: URI: %s" msgstr "Nederīgas kartes: URI: %s" #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:75 #, javascript-format msgid "Maps at %f, %f.png" msgstr "Kartes pie %f, %f.png" #: src/exportViewDialog.js:174 msgid "Unable to export view" msgstr "Nevar eksportēt skatu" #: src/favoriteListRow.js:42 msgid "Favorite removed" msgstr "Ir izņemts no izlases" #: src/favoriteListRow.js:43 msgid "Undo" msgstr "Atsaukt" #: src/geoJSONSource.js:73 msgid "invalid coordinate" msgstr "nederīga koordināta" #: src/geoJSONSource.js:126 src/geoJSONSource.js:166 src/geoJSONSource.js:181 msgid "parse error" msgstr "parsēšanas kļūda" #: src/geoJSONSource.js:160 msgid "unknown geometry" msgstr "nezināma ģeometrija" #: src/graphHopper.js:101 src/transitPlan.js:175 msgid "Route request failed." msgstr "Maršruta pieprasījums neizdevās." #: src/graphHopper.js:108 src/transitPlan.js:167 msgid "No route found." msgstr "Nav atrastu maršrutu." #: src/graphHopper.js:195 src/transitplugins/openTripPlanner.js:1163 msgid "Start!" msgstr "Sākt!" #: src/mainWindow.js:59 msgid "All Layer Files" msgstr "Visu slāņu datnes" #: src/mainWindow.js:522 msgid "Failed to connect to location service" msgstr "Neizdevās savienoties ar pozīcijas noteikšanas pakalpojumu" #: src/mainWindow.js:527 msgid "Turn on location services" msgstr "Ieslēgt vietas noteikšanas pakalpojumu" #: src/mainWindow.js:528 msgid "Location Settings" msgstr "Atrašanās vietas iestatījumi" #: src/mainWindow.js:645 msgid "translator-credits" msgstr "Rūdolfs Mazurs " #: src/mainWindow.js:649 msgid "Copyright © 2011 – 2023 Red Hat, Inc. and The GNOME Maps authors" msgstr "Autortiesības © 2011 – 2023 Red Hat, Inc. un GNOME “Kartes” autori" #: src/mainWindow.js:665 #, javascript-format msgid "Map data by %s and contributors" msgstr "Kartes datus nodrošina %s un atbalstītāji" #: src/mainWindow.js:666 msgid "Map Data Provider" msgstr "Karšu datu sniedzējs" #: src/mainWindow.js:678 msgid "Map Tile Provider" msgstr "Karšu fragmentu sniedzējs" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:686 #, javascript-format msgid "Map tiles provided by %s" msgstr "Karšu fragmentus nodrošina %s" #: src/mainWindow.js:716 msgid "Search Provider" msgstr "Meklēšanas nodrošinātājs" #: src/mainWindow.js:719 #, javascript-format msgid "Search provided by %s using %s" msgstr "Meklēšanu nodrošina %s izmanto %s" #: src/mapView.js:645 src/mapView.js:710 msgid "Failed to open layer" msgstr "Neizdevās atvērt slāni" #: src/mapView.js:664 msgid "Do you want to continue?" msgstr "Vai vēlaties turpināt?" #: src/mapView.js:665 #, javascript-format msgid "" "You are about to open files with a total size of %s MB. This could take some " "time to load" msgstr "" "Jūs grasāties atvērt datni, kuras izmērs ir %s MB. Tās atvēršana var aizņemt " "daudz laika" #: src/mapView.js:672 src/transitplugins/openTripPlanner.js:1239 #: src/transitplugins/openTripPlanner2.js:267 msgid "Continue" msgstr "Turpināt" #: src/mapView.js:704 msgid "File type is not supported" msgstr "Datnes tips nav atbalstīts" #: src/mapView.js:741 msgid "Failed to open GeoURI" msgstr "Neizdevās atvērt GeoURI" #: src/mapView.js:1205 msgid "Nothing found here!" msgstr "Šeit nekas nav atrasts!" #: src/mapView.js:1245 msgid "Zoom in to add location" msgstr "Tuviniet, lai pievienotu atrašanās vietu" #: src/mapView.js:1266 msgid "Location was added in OpenStreetMap" msgstr "Vieta tika pievienota OpenStreetMap kartē" #. switch back to the sign-in view, and show a toast indicating #. that verification failed #: src/osmAccountDialog.js:134 msgid "The verification code didn’t match, please try again." msgstr "Verifikācijas kodi nesakrīt. Lūdzu, mēģiniet vēlreiz." #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:335 msgid "Incorrect user name or password" msgstr "Nepareizs lietotājvārds vai parole" #: src/osmConnection.js:337 msgid "Success" msgstr "Veiksmīgi" #: src/osmConnection.js:339 msgid "Bad request" msgstr "Nederīgs pieprasījums" #: src/osmConnection.js:341 msgid "Object not found" msgstr "Objekts nav atrasts" #: src/osmConnection.js:343 msgid "Conflict, someone else has just modified the object" msgstr "Konflikts, kāds cits tikko modificēja objektu" #: src/osmConnection.js:345 msgid "Object has been deleted" msgstr "Objekts tika izdzēsts" #: src/osmConnection.js:347 msgid "Way or relation refers to non-existing children" msgstr "Ceļš vai relācija norāda uz neeksistējošu bērnu" #: src/osmEditDialog.js:106 msgid "Name" msgstr "Nosaukums" #: src/osmEditDialog.js:109 msgid "The official name. This is typically what appears on signs." msgstr "Oficiālais nosaukums. Tas parasti ir redzams uz zīmēm." #: src/osmEditDialog.js:112 msgid "Address" msgstr "Adrese" #: src/osmEditDialog.js:120 src/placeView.js:275 msgid "Website" msgstr "Tīmekļa vietne" #: src/osmEditDialog.js:124 msgid "This is not a valid URL. Make sure to include http:// or https://." msgstr "" "Šis nav derīgs URL. Pārliecinieties, ka esat iekļāvuši http:// vai https://." #: src/osmEditDialog.js:125 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" "Oficiālā tīmekļa vietne. Mēģiniet izmantot pamata URL, tas ir, http://" "example.com, nevis http://example.com/index.html." #: src/osmEditDialog.js:130 msgid "Phone" msgstr "Tālrunis" #: src/osmEditDialog.js:134 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" "Tālruņa numurs. Izmantojiet starptautisko formātu, sākot ar + zīmi. Ņemiet " "vērā lokālos privātuma likumus, sevišķi privātiem tālruņu numuriem." #: src/osmEditDialog.js:139 src/placeView.js:308 msgid "Email" msgstr "E-pasts" #: src/osmEditDialog.js:144 msgid "" "This is not a valid email address. Make sure to not include the mailto: " "protocol prefix." msgstr "" "Šī nav derīga e-pasta adrese. Pārliecinieties, ka neesat iekļāvuši mailto: " "protokola prefiksu." #: src/osmEditDialog.js:145 msgid "" "Contact email address for inquiries. Add only email addresses that are " "intended to be publicly used." msgstr "" "Kontakta e-pasta adrese vaicājumiem. Pievienojiet tikai to adresi, kura ir " "paredzēta publiskai lietošanai." #. Translators: This is the text for the "Wikipedia" link at the end #. of summaries #: src/osmEditDialog.js:149 src/placeView.js:727 msgid "Wikipedia" msgstr "Wikipedia" #: src/osmEditDialog.js:156 src/placeView.js:399 msgid "Opening hours" msgstr "Darba laiks" #: src/osmEditDialog.js:161 msgid "See the link in the label for help on format." msgstr "Skatiet saiti apzīmējumā, lai saņemtu palīdzību par formātu." #. TODO: this is a bit of a work-around to re-interpret the population, #. * stored as a string into an integer to convert back to a locale- #. * formatted string. Ideally it should be kept as an integer value #. * in the Place class. But this will also need to be handled by the #. * PlaceStore, possible in a backwards-compatible way #. #: src/osmEditDialog.js:164 src/placeView.js:509 msgid "Population" msgstr "Iedzīvotāju skaits" #: src/osmEditDialog.js:169 src/placeView.js:538 msgid "Altitude" msgstr "Augstums" #: src/osmEditDialog.js:172 msgid "Elevation (height above sea level) of a point in meters." msgstr "Punkta augstums (virs jūras līmeņa) metros." #: src/osmEditDialog.js:175 msgid "Wheelchair access" msgstr "Piekļuve ar ratiņkrēsliem" #: src/osmEditDialog.js:178 src/osmEditDialog.js:187 src/osmEditDialog.js:198 #: src/osmEditDialog.js:233 msgid "Yes" msgstr "Jā" #: src/osmEditDialog.js:179 src/osmEditDialog.js:188 src/osmEditDialog.js:199 #: src/osmEditDialog.js:234 msgid "No" msgstr "Nē" #: src/osmEditDialog.js:180 msgid "Limited" msgstr "Ierobežots" #: src/osmEditDialog.js:181 msgid "Designated" msgstr "Nozīmēts" #: src/osmEditDialog.js:184 msgid "Internet access" msgstr "Pieeja internetam" #: src/osmEditDialog.js:189 msgid "Wi-Fi" msgstr "Wi-Fi" #: src/osmEditDialog.js:190 msgid "Wired" msgstr "Vadu" #: src/osmEditDialog.js:191 msgid "Terminal" msgstr "Terminālis" #: src/osmEditDialog.js:192 msgid "Service" msgstr "Serviss" #: src/osmEditDialog.js:195 msgid "Takeout" msgstr "Līdzņemšanai" #: src/osmEditDialog.js:200 msgid "Only" msgstr "Tikai" #: src/osmEditDialog.js:203 msgid "Religion" msgstr "Reliģija" #: src/osmEditDialog.js:206 src/translations.js:286 msgid "Animism" msgstr "Animisms" #: src/osmEditDialog.js:207 msgid "Bahá’í" msgstr "Bahāisms" #: src/osmEditDialog.js:208 src/translations.js:288 msgid "Buddhism" msgstr "Budisms" #: src/osmEditDialog.js:209 src/translations.js:289 msgid "Caodaism" msgstr "Kaodaisms" #: src/osmEditDialog.js:210 src/translations.js:290 msgid "Christianity" msgstr "Kristietība" #: src/osmEditDialog.js:211 src/translations.js:291 msgid "Confucianism" msgstr "Konfūcisms" #: src/osmEditDialog.js:212 src/translations.js:292 msgid "Hinduism" msgstr "Hinduisms" #: src/osmEditDialog.js:213 src/translations.js:293 msgid "Jainism" msgstr "Džainisms" #: src/osmEditDialog.js:214 src/translations.js:294 msgid "Judaism" msgstr "Jūdaisms" #: src/osmEditDialog.js:215 src/translations.js:295 msgid "Islam" msgstr "Islāms" #: src/osmEditDialog.js:216 src/translations.js:296 msgid "Multiple Religions" msgstr "Vairākas reliģijas" #: src/osmEditDialog.js:217 src/translations.js:297 msgid "Paganism" msgstr "Pagānisms" #: src/osmEditDialog.js:218 src/translations.js:298 msgid "Pastafarianism" msgstr "Pastafarisms" #: src/osmEditDialog.js:219 src/translations.js:299 msgid "Scientology" msgstr "Scientoloģija" #: src/osmEditDialog.js:220 src/translations.js:300 msgid "Shinto" msgstr "Sintoisms" #: src/osmEditDialog.js:221 src/translations.js:301 msgid "Sikhism" msgstr "Sikhisms" #: src/osmEditDialog.js:222 src/translations.js:302 msgid "Spiritualism" msgstr "Spirituālisms" #: src/osmEditDialog.js:223 src/translations.js:303 msgid "Taoism" msgstr "Daoisms" #: src/osmEditDialog.js:224 src/translations.js:304 msgid "Unitarian Universalism" msgstr "Unitārais universālisms" #: src/osmEditDialog.js:225 src/translations.js:305 msgid "Voodoo" msgstr "Vudu" #: src/osmEditDialog.js:226 src/translations.js:306 msgid "Yazidism" msgstr "Jadīdisms" #: src/osmEditDialog.js:227 src/translations.js:307 msgid "Zoroastrianism" msgstr "Zoroastrisms" #: src/osmEditDialog.js:230 src/poiCategories.js:176 msgid "Toilets" msgstr "Tualetes" #: src/osmEditDialog.js:237 msgid "Note" msgstr "Piezīme" #: src/osmEditDialog.js:240 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" "Informācija, ko izmantot citiem kartētajiem par ne acīmredzamu informāciju " "par elementu, autora nodomu to veidojot vai norādēm turpmākai uzlabošanai." #: src/osmEditDialog.js:339 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "Pievienot OpenStreetMap kartēm" #: src/osmEditDialog.js:393 msgid "Select Type" msgstr "Izvēlēties tipu" #: src/osmEditDialog.js:515 msgid "Done" msgstr "Pabeigts" #: src/osmEditDialog.js:818 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "" "Formātam vajadzētu iekļaut valodas kodu un raksta virsrakstu, piemēram “lv:" "Raksta virsraksts”" #: src/osmEditDialog.js:824 msgid "Use the reload button to load the Wikidata tag for the selected article" msgstr "" "Izmantojiet pārlādēšanas pogu, lai ielādētu Wikidata tagu izvēlētajam rakstam" #: src/osmEditDialog.js:832 msgid "Couldn't find Wikidata tag for article" msgstr "Rakstam nevarēja atrast Wikidata tagu" #: src/photonUtils.js:118 msgid "Unnamed place" msgstr "Nenosaukta vieta" #: src/placeEntry.js:274 msgid "Failed to parse Geo URI" msgstr "Neizdevās parsēt Geo URI" #: src/placeEntry.js:286 msgid "Failed to parse Maps URI" msgstr "Neizdevās parsēt Kartes URI" #. 300 ft (300 * 12 * 0.0254 m) #. #. * Translators: This a format string for showing a distance to a place #. * is lower than a "quite short" distance. #. * The "less than" symbol can be substituded with an appropriate one, if #. * needed (e.g. using the correct direction, or alternative symbol). #. * The %s should be kept, and is substituted with a label representing the #. * short distance. The \u2009 (thin space) could also be adjusted if needed #: src/placeListRow.js:46 #, javascript-format msgctxt "short distance format string" msgid "< %s" msgstr "< %s" #: src/placeView.js:263 msgid "Coordinates" msgstr "Koordinātes" #: src/placeView.js:267 msgid "Accuracy" msgstr "Precizitāte" #. Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) #: src/placeView.js:270 #, javascript-format msgid "Accuracy: %s" msgstr "Precizitāte — %s" #. since the phone numbers are typically always rendered #. * left-to-right, insert an explicit LRM char to avoid issues #. * with phone numbers in international format starting with a + #. * which is considered a "weak" character to determine Unicode #. * text direction #. #: src/placeView.js:289 msgid "Phone number" msgstr "Tālruņa numurs" #. If a reference to a named floor (named or symbolic) exists #. * refer to it directly. #. #. Translators: #. * This is a reference to named building floor, using a label #. * or a code, as "displayed in the elevator" #. #: src/placeView.js:323 src/placeView.js:362 msgid "Floor" msgstr "Stāvs" #: src/placeView.js:325 #, javascript-format msgid "Floor %s" msgstr "Stāvs %s" #: src/placeView.js:337 msgid "At ground level" msgstr "Zemes līmenī" #. Translators: #. * This is a reference to a number of floors above #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:346 #, javascript-format msgid "%s floor above ground level" msgid_plural "%s floors above ground level" msgstr[0] "%s stāvs virs zemes līmeņa" msgstr[1] "%s stāvi virs zemes līmeņa" msgstr[2] "%s stāvu virs zemes līmeņa" #. Translators: #. * This is a reference to a number of floors below #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:357 #, javascript-format msgid "%s floor below ground level" msgid_plural "%s floors below ground level" msgstr[0] "%s stāvs zem zemes līmeņa" msgstr[1] "%s stāvi zem zemes līmeņa" msgstr[2] "%s stāvu zem zemes līmeņa" #. Translators: #. * The establishment offers customers to purchase meals #. * (or similar) to be consumed elsewhere #. #: src/placeView.js:375 msgid "Offers takeout" msgstr "Piedāvā līdzņemšanai" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed on-premise. #. #: src/placeView.js:383 msgid "Does not offer takeout" msgstr "Nepiedāvā līdzņemšanai" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed elsewhere. E.g. #. * there is no seating on-premise for eating/drinking #. #: src/placeView.js:392 msgid "Only offers takeout" msgstr "Piedāvā tikai līdzņemšanai" #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/placeView.js:409 msgid "Public internet access" msgstr "Publiska pieeja internetam" #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/placeView.js:418 msgid "No internet access" msgstr "Nav pieejas internetam" #. Translators: #. * This means a WLAN Hotspot, also known as wireless, wifi or Wi-Fi. #. #: src/placeView.js:426 msgid "Public Wi-Fi" msgstr "Publisks Wi-Fi" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/placeView.js:434 msgid "Wired internet access" msgstr "Vadu pieeja internetam" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/placeView.js:442 msgid "Computers available for use" msgstr "Datori pieejami lietošanai" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/placeView.js:450 msgid "Internet assistance available" msgstr "Pieejama interneta asistēšana" #: src/placeView.js:456 msgid "No toilets available" msgstr "Nav pieejamu tualešu" #: src/placeView.js:459 msgid "Toilets available" msgstr "Tualetes ir pieejamas" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #: src/placeView.js:468 msgid "Wheelchair accessible" msgstr "Pieejams ar ratiņkrēsliem" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/placeView.js:478 msgid "Limited wheelchair accessibility" msgstr "Ierobežota piekļuve ar ratiņkrēsliem" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #: src/placeView.js:487 msgid "Not wheelchair accessible" msgstr "Nav pieejams ar ratiņkrēsliem" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/placeView.js:497 msgid "Designated for wheelchair users" msgstr "Projektēts cilvēkiem ar ratiņkrēsliem" #. * #. * Translators: this is a label indicating an altitude below #. * sea level, where the %s placeholder is the altitude relative #. * to mean sea level in the "negative direction" #. #: src/placeView.js:528 #, javascript-format msgid "%s below sea level" msgstr "%s zem jūras līmeņa" #. * #. * Translators: this indicates a place is located at (or very #. * close to) mean sea level #. #: src/placeView.js:535 msgid "At sea level" msgstr "Jūras līmenī" #: src/placeView.js:544 msgid "Religion:" msgstr "Reliģija:" #: src/place.js:576 msgid "Place not found in OpenStreetMap" msgstr "Vieta nav atrasta OpenStreetMap kartē" #: src/place.js:583 msgid "Coordinates in URL are not valid" msgstr "URL koordinātas nav derīgas" #: src/place.js:592 msgid "URL is not supported" msgstr "URL nav atbalstīts" #: src/poiCategories.js:132 msgid "Amenities" msgstr "Ērtības" #: src/poiCategories.js:135 msgid "ATMs" msgstr "Bankomāti" #: src/poiCategories.js:141 msgid "Post Boxes" msgstr "Pasta kastes" #: src/poiCategories.js:147 msgid "Post Offices" msgstr "Pasta nodaļas" #: src/poiCategories.js:153 msgid "Police" msgstr "Policija" #: src/poiCategories.js:159 msgid "Libraries" msgstr "Bibliotēkas" #: src/poiCategories.js:165 msgid "Pharmacies" msgstr "Aptiekas" #: src/poiCategories.js:171 msgid "Recycling" msgstr "Otreizējā pārstrāde" #: src/poiCategories.js:182 msgid "Wheelchair-accessible Toilets" msgstr "Tualete pieejama ar ratiņkrēsliem" #: src/poiCategories.js:188 msgid "Baggage Lockers" msgstr "Bagāžas skapīši" #: src/poiCategories.js:196 msgid "Eating & Drinking" msgstr "Ēšana un dzeršana" #: src/poiCategories.js:200 msgid "Restaurants" msgstr "Restorāni" #: src/poiCategories.js:205 msgid "Fast Food" msgstr "Ātrā ēdināšana" #: src/poiCategories.js:210 msgid "Food Courts" msgstr "Ēdnīcu laukumi" #: src/poiCategories.js:215 msgid "Pubs" msgstr "Krogi" #: src/poiCategories.js:221 msgid "Bars" msgstr "Bāri" #: src/poiCategories.js:226 msgid "Cafes" msgstr "Kafejnīcas" #: src/poiCategories.js:231 msgid "Ice Cream" msgstr "Saldējums" #: src/poiCategories.js:236 msgid "Food, Snacks, and Beverage Machines" msgstr "Ēdienu, uzkodu un dzērienu automāti" #: src/poiCategories.js:244 msgid "Shopping" msgstr "Iepirkšanās" #: src/poiCategories.js:248 msgid "Supermarkets" msgstr "Lielveikali" #: src/poiCategories.js:254 msgid "Convenience Stores" msgstr "Veikali" #: src/poiCategories.js:259 msgid "Shopping Malls" msgstr "Tirdzniecības centri" #: src/poiCategories.js:265 msgid "Clothes" msgstr "Apģērbi" #: src/poiCategories.js:271 msgid "Shoes" msgstr "Kurpes" #: src/poiCategories.js:276 msgid "Electronics" msgstr "Elektronika" #: src/poiCategories.js:282 msgid "Alcohol" msgstr "Alkohols" #: src/poiCategories.js:288 msgid "Bakeries" msgstr "Maiznīcas" #: src/poiCategories.js:294 msgid "Flowers" msgstr "Ziedi" #: src/poiCategories.js:301 msgid "Transportation" msgstr "Transports" #: src/poiCategories.js:305 msgid "Bus & Tram Stops" msgstr "Autobusu un tramvaju pieturas" #: src/poiCategories.js:313 msgid "Train & Subway Stations" msgstr "Vilcienu un metro stacijas" #: src/poiCategories.js:321 msgid "Tickets" msgstr "Biļetes" #: src/poiCategories.js:329 msgid "Parking" msgstr "Autostāvvietas" #: src/poiCategories.js:334 msgid "Bicycle Parking" msgstr "Velosipēdu novietnes" #: src/poiCategories.js:339 msgid "Bicycle Rental" msgstr "Velosipēdu īre" #: src/poiCategories.js:344 msgid "Car Rental" msgstr "Auto īre" #: src/poiCategories.js:349 msgid "Fuel" msgstr "Degviela" #: src/poiCategories.js:354 msgid "EV Charging" msgstr "Elektroauto uzlāde" #: src/poiCategories.js:362 msgid "Healthcare" msgstr "Veselības aprūpe" #: src/poiCategories.js:366 msgid "Clinics" msgstr "Klīnikas" #: src/poiCategories.js:372 msgid "Hospitals" msgstr "Slimnīcas" #: src/poiCategories.js:378 msgid "Dentists" msgstr "Zobārsti" #: src/poiCategories.js:386 msgid "Accommodation" msgstr "Izmitināšana" #: src/poiCategories.js:390 msgid "Hotels" msgstr "Viesnīcas" #: src/poiCategories.js:395 msgid "Hostels" msgstr "Hosteļi" #: src/poiCategories.js:400 msgid "Bed & Breakfast" msgstr "Gultas un brokastis" #: src/poiCategories.js:405 msgid "Campings" msgstr "Kempingi" #: src/poiCategories.js:412 msgid "Recreation" msgstr "Atpūta" #: src/poiCategories.js:416 msgid "Parks" msgstr "Parki" #: src/poiCategories.js:421 msgid "Playgrounds" msgstr "Spēļlaukumi" #: src/poiCategories.js:425 msgid "Beaches" msgstr "Pludmales" #: src/poiCategories.js:430 msgid "Nature Reserves" msgstr "Dabas rezervāti" #: src/poiCategories.js:436 msgid "Theme Parks" msgstr "Tematiskie parki" #: src/poiCategories.js:441 msgid "Theaters" msgstr "Teātri" #: src/poiCategories.js:447 msgid "Movie Theaters" msgstr "Kinoteātri" #: src/poiCategories.js:453 msgid "Night Clubs" msgstr "Naktsklubi" #: src/poiCategories.js:460 msgid "Tourism" msgstr "Tūrisms" #: src/poiCategories.js:464 msgid "Museums" msgstr "Muzeji" #: src/poiCategories.js:470 msgid "Attractions" msgstr "Atrakcijas" #: src/poiCategories.js:475 msgid "Artworks" msgstr "Mākslas darbi" #: src/poiCategories.js:480 msgid "Tourist Information" msgstr "Informācija tūristiem" #: src/poiCategories.js:487 msgid "Sports" msgstr "Sports" #: src/poiCategories.js:491 msgid "Gyms" msgstr "Sporta zāles" #: src/poiCategories.js:497 msgid "Outdoor Gyms" msgstr "Āra sporta zāles" #: src/poiCategories.js:503 msgid "Golf Courses" msgstr "Golfa laukumi" #: src/printLayout.js:350 #, javascript-format msgid "From %s to %s" msgstr "No %s līdz %s" #: src/printOperation.js:49 msgid "Loading map tiles for printing" msgstr "Ielādē kartes flīzes drukāšanai" #: src/printOperation.js:50 msgid "You can abort printing if this takes too long" msgstr "Jūs varat pārtraukt drukāšanu, ja tas aizņem pārāk daudz laika" #: src/printOperation.js:52 msgid "Abort printing" msgstr "Par drukāšanu" #. Translators: this is add via location tooltip #: src/routeEntry.js:60 msgid "Add via location" msgstr "Pievienot “caur vietu”" #. Translators: this is remove via location tooltip #: src/routeEntry.js:70 msgid "Remove via location" msgstr "Izņemt “caur vietu”" #. Translators: this is reverse route tooltip #: src/routeEntry.js:76 msgid "Reverse route" msgstr "Apgriezt maršrutu pretēji" #: src/searchBar.js:45 msgid "Search" msgstr "Meklēt" #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:84 #, javascript-format msgid "Add %s to %s" msgstr "Pievienot %s pie %s" #: src/sendToDialog.js:181 msgid "Failed to open URI" msgstr "Neizdevās atvērt URI" #: src/sendToDialog.js:246 #, javascript-format msgid "Open with %s" msgstr "Atvērt ar %s" #: src/shapeLayer.js:109 msgid "failed to load file" msgstr "neizdevās ielādēt datni" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:328 #, javascript-format msgid "Estimated time: %s" msgstr "Novērtētais laiks — %s" #: src/sidebar.js:398 #, javascript-format msgid "Itineraries provided by %s" msgstr "Maršrutu nodrošina %s" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:39 #, javascript-format msgid "Start at %s" msgstr "Sākt %s" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:45 src/transitplugins/openTripPlanner2.js:236 msgid "Start" msgstr "Sākums" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:63 #, javascript-format msgid "Walk %s" msgstr "Iet %s" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:77 #, javascript-format msgid "Arrive at %s" msgstr "Pienāk %s" #: src/transit.js:79 src/transitplugins/openTripPlanner.js:1176 #: src/transitplugins/openTripPlanner2.js:255 msgid "Arrive" msgstr "Pienāk" #: src/transitLegRow.js:69 msgid "Show walking instructions" msgstr "Rādīt iešanas norādes" #: src/transitLegRow.js:70 msgid "Hide walking instructions" msgstr "Slēpt iešanas norādes" #: src/transitMoreRow.js:37 msgid "Load earlier alternatives" msgstr "Ielādēt agrākas alternatīvas" #: src/transitMoreRow.js:39 msgid "Load later alternatives" msgstr "Ielādēt vēlākas alternatīvas" #: src/transitMoreRow.js:52 msgid "No earlier alternatives found." msgstr "Nav atrastu vecāku alternatīvu." #: src/transitMoreRow.js:54 msgid "No later alternatives found." msgstr "Nav atrastu jaunāku alternatīvu." #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:138 msgctxt "month-day-date" msgid "%b %e" msgstr "%e. %b" #: src/transitPlan.js:171 msgid "No timetable data found for this route." msgstr "Šim maršrutam nav atrastu transporta sarakstu." #: src/transitPlan.js:179 msgid "No provider found for this route." msgstr "Šim maršrutam nav atrastu nodrošinātāju." #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:300 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:331 #, javascript-format msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "%s minūte" msgstr[1] "%s minūtes" msgstr[2] "%s minūšu" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:343 #, javascript-format msgid "%s hour" msgid_plural "%s hours" msgstr[0] "%s stunda" msgstr[1] "%s stundas" msgstr[2] "%s stundu" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:351 #, javascript-format msgid "%s:%s hour" msgid_plural "%s:%s hours" msgstr[0] "%s:%s stunda" msgstr[1] "%s:%s stundas" msgstr[2] "%s:%s stundu" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:744 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: src/translations.js:55 msgid "Around the clock" msgstr "Diennakti" #: src/translations.js:57 msgid "From sunrise to sunset" msgstr "No saullēkta līdz saulrietam" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:123 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s,%s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:137 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s,%s,%s" #: src/translations.js:156 msgid "Every day" msgstr "Katru dienu" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:168 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s–%s" #: src/translations.js:179 msgid "Public holidays" msgstr "Brīvdienas" #: src/translations.js:181 msgid "School holidays" msgstr "Skolas brīvdienas" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:221 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: src/translations.js:235 msgid "not open" msgstr "nav atvērts" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:250 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s–%s" #: src/translations.js:287 msgid "Bahá'í" msgstr "Bahāisms" #. Translators: Accuracy of user location information #: src/utils.js:248 msgid "Unknown" msgstr "Nezināms" #. Translators: Accuracy of user location information #: src/utils.js:251 msgid "Exact" msgstr "Precīzi" #. Translators: this is a duration with only hours, using #. * an abbreviation for hours, corresponding to 'h' in English #. #: src/utils.js:307 #, javascript-format msgid "%s h" msgstr "%s h" #. Translators: this is a duration with hours and minutes parts #. * using abbreviations for hours and minutes, corresponding to 'h' #. * and 'min' in English. The minutes has appropriate plural variations #. #: src/utils.js:313 #, javascript-format msgid "%s h %s min" msgid_plural "%s h %s min" msgstr[0] "%s h %s min" msgstr[1] "%s h %s min" msgstr[2] "%s h %s min" #. Translators: this is a duration with minutes part #. * using abbreviation for minutes, corresponding to 'min' in English #. * with appropriate plural variations #. #: src/utils.js:320 #, javascript-format msgid "%s min" msgid_plural "%s min" msgstr[0] "%s min" msgstr[1] "%s min" msgstr[2] "%s min" #. Translators: this is a duration of less than one minute #. * with seconds using an abbreviation for seconds, corresponding to #. * 's' in English with appropriate plural forms #. #: src/utils.js:326 #, javascript-format msgid "%s s" msgid_plural "%s s" msgstr[0] "%s s" msgstr[1] "%s s" msgstr[2] "%s s" #. Translators: This is a distance measured in kilometers #: src/utils.js:337 #, javascript-format msgid "%s km" msgstr "%s km" #. Translators: This is a distance measured in meters #: src/utils.js:340 #, javascript-format msgid "%s m" msgstr "%s m" #. Translators: This is a distance measured in miles #: src/utils.js:348 #, javascript-format msgid "%s mi" msgstr "%s jūdzes" #. Translators: This is a distance measured in feet #: src/utils.js:351 #, javascript-format msgid "%s ft" msgstr "%s pēdas" #: src/transitplugins/goMetro.js:61 msgid "This plugin doesn't support latest arrival" msgstr "Šis spraudnis neatbalsta vēlāko ierašanos" #: src/transitplugins/openTripPlanner.js:1237 #: src/transitplugins/openTripPlanner2.js:266 #, javascript-format msgid "Continue on %s" msgstr "Turpināt uz %s" #: src/transitplugins/openTripPlanner.js:1242 #: src/transitplugins/openTripPlanner2.js:270 #, javascript-format msgid "Turn left on %s" msgstr "Pagriezt pa kreisi uz %s" #: src/transitplugins/openTripPlanner.js:1244 #: src/transitplugins/openTripPlanner2.js:271 msgid "Turn left" msgstr "Pagriezt pa kreisi" #: src/transitplugins/openTripPlanner.js:1247 #: src/transitplugins/openTripPlanner2.js:275 #, javascript-format msgid "Turn slightly left on %s" msgstr "Pagriezt nedaudz pa kreisi uz %s" #: src/transitplugins/openTripPlanner.js:1249 #: src/transitplugins/openTripPlanner2.js:276 msgid "Turn slightly left" msgstr "Pagriezt nedaudz pa kreisi" #: src/transitplugins/openTripPlanner.js:1252 #: src/transitplugins/openTripPlanner2.js:280 #, javascript-format msgid "Turn sharp left on %s" msgstr "Strauji pagriezt pa kreisi uz %s" #: src/transitplugins/openTripPlanner.js:1254 #: src/transitplugins/openTripPlanner2.js:281 msgid "Turn sharp left" msgstr "Strauji pagriezt pa kreisi" #: src/transitplugins/openTripPlanner.js:1257 #: src/transitplugins/openTripPlanner2.js:284 #, javascript-format msgid "Turn right on %s" msgstr "Pagriezt pa labi uz %s" #: src/transitplugins/openTripPlanner.js:1259 #: src/transitplugins/openTripPlanner2.js:285 msgid "Turn right" msgstr "Pagriezt pa labi" #: src/transitplugins/openTripPlanner.js:1262 #: src/transitplugins/openTripPlanner2.js:289 #, javascript-format msgid "Turn slightly right on %s" msgstr "Pagriezt nedaudz pa labi uz %s" #: src/transitplugins/openTripPlanner.js:1264 #: src/transitplugins/openTripPlanner2.js:290 msgid "Turn slightly right" msgstr "Pagriezt nedaudz pa labi" #: src/transitplugins/openTripPlanner.js:1267 #: src/transitplugins/openTripPlanner2.js:294 #, javascript-format msgid "Turn sharp right on %s" msgstr "Asi pagriezti pa labi uz %s" #: src/transitplugins/openTripPlanner.js:1269 #: src/transitplugins/openTripPlanner2.js:295 msgid "Turn sharp right" msgstr "Asi pagriezti pa labi" #: src/transitplugins/openTripPlanner.js:1275 #: src/transitplugins/openTripPlanner2.js:302 #, javascript-format msgid "At the roundabout, take exit %s" msgstr "No apļa izbrauciet izejā %s" #: src/transitplugins/openTripPlanner.js:1277 #: src/transitplugins/openTripPlanner2.js:305 #, javascript-format msgid "At the roundabout, take exit to %s" msgstr "No apļa izbrauciet caur izeju uz %s" #: src/transitplugins/openTripPlanner.js:1279 #: src/transitplugins/openTripPlanner2.js:307 msgid "Take the roundabout" msgstr "Iebrauciet aplī" #: src/transitplugins/openTripPlanner.js:1283 #: src/transitplugins/openTripPlanner2.js:315 #, javascript-format msgid "Take the elevator and get off at %s" msgstr "Ņemiet liftu un izbrauciet %s" #: src/transitplugins/openTripPlanner.js:1285 #: src/transitplugins/openTripPlanner2.js:316 msgid "Take the elevator" msgstr "Ņemiet liftu" #: src/transitplugins/openTripPlanner.js:1289 #: src/transitplugins/openTripPlanner2.js:320 #, javascript-format msgid "Make a left u-turn onto %s" msgstr "Veiciet apgriešanos pretējā virzienā pa kreisi uz %s" #: src/transitplugins/openTripPlanner.js:1291 #: src/transitplugins/openTripPlanner2.js:321 msgid "Make a left u-turn" msgstr "Veiciet apgriešanos pretējā virzienā pa kreisi" #: src/transitplugins/openTripPlanner.js:1294 #: src/transitplugins/openTripPlanner2.js:325 #, javascript-format msgid "Make a right u-turn onto %s" msgstr "Veiciet apgriešanos pretējā virzienā pa labi uz %s" #: src/transitplugins/openTripPlanner.js:1296 #: src/transitplugins/openTripPlanner2.js:326 msgid "Make a right u-turn" msgstr "Veiciet apgriešanos pretējā virzienā pa labi" #~ msgid "E-mail" #~ msgstr "E-pasts" #~ msgid "Go to current location" #~ msgstr "Iet uz pašreizējo vietu" #~ msgid "Choose map type" #~ msgstr "Izvēlieties kartes veidu" #~ msgid "Zoom in" #~ msgstr "Tuvināt" #~ msgid "Sign in to edit maps" #~ msgstr "" #~ "Ierakstieties, lai rediģētu " #~ "kartes" #~ msgid "" #~ "Sign in to authorize access in a web browser.\n" #~ "Then fill in the obtained verification code here in the next step." #~ msgstr "" #~ "Ierakstieties, lai pilnvarotu piekļuvi tīmekļa pārlūkā.\n" #~ "Tad nākamajā solī šeit ierakstiet saņemto pilnvarošanas kodu." #~ msgid "Sign up" #~ msgstr "Ierakstīties" #~ msgid "Signed In" #~ msgstr "Ierakstījies" #~ msgid "Drag to change order of the route" #~ msgstr "Velciet, lai mainītu maršruta secību" #~ msgid "Filesystem is read only" #~ msgstr "Datņu sistēma ir tikai lasāma" #~ msgid "You do not have permission to save there" #~ msgstr "Jums nav tiesību tur saglabāt" #~ msgid "The directory does not exist" #~ msgstr "Direktorija nepastāv" #~ msgid "No filename specified" #~ msgstr "Nav norādīts datnes nosaukums" #~ msgid "" #~ "Location was added to the map, note that it may take a while before it " #~ "shows on the map and in search results." #~ msgstr "" #~ "Atrašanās vieta tika pievienota kartei. Ņemiet vērā, ka varētu paiet kāds " #~ "laiks, pirms izmaiņas parādās kartē un meklēšanas rezultātos." #~ msgid "Takeaway" #~ msgstr "Līdzņemšanai" #~ msgid "Foursquare check-in privacy setting" #~ msgstr "Foursquare vietas reģistrēšanas privātuma iestatījumi" #~ msgid "" #~ "Latest used Foursquare check-in privacy setting. Possible values are: " #~ "public, followers or private." #~ msgstr "" #~ "Pēdējie izmantotie Foursquare vietas reģistrēšanas privātuma iestatījumi. " #~ "Iespējamās vērtības: public, followers vai private." #~ msgid "Foursquare check-in Facebook broadcasting" #~ msgstr "Foursquare vietas reģistrēšanas Facebook apziņošana" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a post in the " #~ "Facebook account associated with the Foursquare account." #~ msgstr "" #~ "Norāda, vai Foursquare vajadzētu apziņot vietas reģistrēšanu kā ziņu tajā " #~ "Facebook kontā, kurš ir saistīts ar Foursquare kontu." #~ msgid "Foursquare check-in Twitter broadcasting" #~ msgstr "Foursquare vietas reģistrēšanas Twitter apziņošana" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a tweet in the " #~ "Twitter account associated with the Foursquare account." #~ msgstr "" #~ "Norāda, vai Foursquare vajadzētu apziņot vietas reģistrēšanu kā ziņu tajā " #~ "Twitter kontā, kurš ir saistīts ar Foursquare kontu." #~ msgid "Use hybrid aerial tiles" #~ msgstr "Izmantot hibrīda aerofoto flīzes" #~ msgid "Whether aerial tiles should use hybrid style (with labels)." #~ msgstr "Vai aerofoto flīzēm jāizmanto hibrīda stils (ar apzīmējumiem)." #~ msgid "Visibility" #~ msgstr "Redzamība" #~ msgid "Post on Facebook" #~ msgstr "Veidot Facebook ziņojumu" #~ msgid "Post on Twitter" #~ msgstr "Veidot Twitter ziņojumu" #~ msgid "C_heck in" #~ msgstr "_Reģistrēt vietu" #~ msgid "Public" #~ msgstr "Publisks" #~ msgid "Private" #~ msgstr "Privāts" #~ msgid "Include route and markers" #~ msgstr "Iekļaut maršrutu un marķierus" #~ msgid "Show Labels" #~ msgstr "Rādīt apzīmējumus" #~ msgid "Maps is offline!" #~ msgstr "Kartes ir nesaistē!" #~ msgid "" #~ "Maps need an active internet connection to function properly, but one " #~ "can’t be found." #~ msgstr "" #~ "Lai varētu strādāt, Kartēm vajag aktīvu savienojumu ar internetu, bet " #~ "tādu nevar atrast." #~ msgid "Check your connection and proxy settings." #~ msgstr "Pārbaudiet savu savienojumu un starpnieka iestatījumus." #~ msgid "Password" #~ msgstr "Parole" #~ msgid "" #~ "Sorry, that didn’t work. Please try again, or visit\n" #~ "OpenStreetMap to reset your password." #~ msgstr "" #~ "Diemžēl tas nenostrādāja. Lūdzu, mēģiniet vēlreiz vai apmeklējiet\n" #~ "OpenStreetMap, lai pārstatītu savu paroli." #~ msgid "Check In…" #~ msgstr "Reģistrēt vietu…" #~ msgid "Ignore network availability" #~ msgstr "Ignorēt tīkla pieejamību" #~ msgid "Select an account" #~ msgstr "Izvēlēties kontu" #~ msgid "Loading" #~ msgstr "Ielādē" #~ msgid "Select a place" #~ msgstr "Izvēlieties vietu" #~ msgid "" #~ "Maps cannot find the place to check in to with Foursquare. Please select " #~ "one from this list." #~ msgstr "" #~ "Kartes nevar atrast vietu, kuru reģistrēt ar Foursquare. Lūdzu, " #~ "izvēlieties vienu no saraksta." #, javascript-format #~ msgid "Check in to %s" #~ msgstr "Reģistrēties %s" #, javascript-format #~ msgid "Write an optional message to check in to %s." #~ msgstr "Ja vēlaties, reģistrējoties %s, ierakstiet ziņojumu." #, javascript-format #~ msgid "Cannot find “%s” in the social service" #~ msgstr "Nevar atrast “%s” sociālajā pakalpojumā" #~ msgid "Cannot find a suitable place to check-in in this location" #~ msgstr "Nevar atrast piemērotu vietu, kur ierakstīties šajā apkārtnē" #~ msgid "" #~ "Credentials have expired, please open Online Accounts to sign in and " #~ "enable this account" #~ msgstr "" #~ "Pilnvaras termiņš ir beidzies, atveriet tiešsaistes kontus, lai " #~ "ierakstītos un ieslēgtu šo kontu" #~ msgid "A map application for GNOME" #~ msgstr "GNOME karšu lietotne" #~ msgid "GNOME Maps" #~ msgstr "GNOME kartes" #~ msgid "Night mode" #~ msgstr "Nakts režīms" #~ msgid "Whether the application is in night mode." #~ msgstr "Vai lietotne ir nakts režīmā." #~ msgid "Night Mode" #~ msgstr "Nakts režīms" #~ msgid "" #~ "You can even search for specific types of locations, such as “Pubs near " #~ "Main Street, Boston” or “Hotels near Alexanderplatz, Berlin”." #~ msgstr "" #~ "Varat pat meklēt noteikta veida vietas, piemēram “Krogi pie gaismas " #~ "ielas”, vai “Autostāvvieta Ādaži”" #~ msgid "Facebook check-in privacy setting" #~ msgstr "Facebook vietas reģistrēšanas privātuma iestatījumi" #~ msgid "" #~ "Latest used Facebook check-in privacy setting. Possible values are: " #~ "EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS or SELF." #~ msgstr "" #~ "Pēdējie izmantotie Facebook vietas reģistrēšanas privātuma iestatījumi. " #~ "Iespējamās vērtības: EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS vai SELF." #~ msgid "Everyone" #~ msgstr "Ikviens" #~ msgid "Friends of friends" #~ msgstr "Draugu draugi" #~ msgid "Just friends" #~ msgstr "Tikai draugi" #~ msgid "Just me" #~ msgstr "Tikai es" #~ msgid "Check in here" #~ msgstr "Reģistrēt šo vietu" #~ msgid "" #~ "Maps cannot find the place to check in to with Facebook. Please select " #~ "one from this list." #~ msgstr "" #~ "Kartes nevar atrast vietu, kuru reģistrēt ar Facebook. Lūdzu, izvēlieties " #~ "vienu no saraksta." #~ msgid "Population:" #~ msgstr "Iedzīvotāju skaits:" #~ msgid "Altitude:" #~ msgstr "Augstums:" #~ msgid "Opening hours:" #~ msgstr "Darba laiks:" #~ msgid "Internet access:" #~ msgstr "Pieeja internetam:" #~ msgid "Toilets:" #~ msgstr "Tualetes:" #~ msgid "Wheelchair access:" #~ msgstr "Piekļuve ar ratiņkrēsliem:" #~ msgid "Phone:" #~ msgstr "Tālrunis:" #~ msgid "yes" #~ msgstr "jā" #~ msgid "limited" #~ msgstr "ierobežots" #~ msgid "no" #~ msgstr "nē" #~ msgid "designated" #~ msgstr "nozīmēts" #~ msgid "OpenStreetMap URL is not valid" #~ msgstr "OpenStreetMap URL nav derīga" #~ msgctxt "time range list" #~ msgid "%s %s" #~ msgstr "%s, %s" #~ msgctxt "time range list" #~ msgid "%s %s %s" #~ msgstr "%s, %s, %s" #~ msgctxt "time range component" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgid "wired" #~ msgstr "vadu" #~ msgid "terminal" #~ msgstr "terminālis" #~ msgid "service" #~ msgstr "serviss" #~ msgid "Don’t have an account?" #~ msgstr "Nav sava konta?" #~ msgid "Route search by OpenTripPlanner" #~ msgstr "OpenTripPlanner maršruta meklēšana" #~ msgid "Add destination" #~ msgstr "Pievienot galamērķi" #~ msgid "%f h" #~ msgstr "%f h" #~ msgid "%f min" #~ msgstr "%f min" #~ msgid "%f s" #~ msgstr "%f s" #~ msgid "org.gnome.Maps" #~ msgstr "org.gnome.Maps" #~ msgid "Open with another application" #~ msgstr "Atvērt ar citu lietotni" #~ msgid "Press enter to search" #~ msgstr "Spiediet “Enter”, lai meklētu" #~ msgid "Quit" #~ msgstr "Iziet" #~ msgid "OK" #~ msgstr "Labi" #~| msgctxt "shortcut window" #~| msgid "Open shape layer" #~ msgid "Open Shape Layer…" #~ msgstr "Atvērt formu slāni…" #~ msgid "Load Map Layer" #~ msgstr "Ielādēt kartes slāni" #~ msgid "%f km" #~ msgstr "%f km" #~ msgid "%f m" #~ msgstr "%f m" #~ msgid "%f mi" #~ msgstr "%f jūdzes" #~ msgid "%f ft" #~ msgstr "%f pēdas" 070701000001D5000081A40000000000000000000000016641340900000051000000000000000000000000000000000000002000000000gnome-maps-46.11/po/meson.buildi18n.gettext(name, preset: 'glib', args: [ '--keyword=X-Geoclue-Reason' ]) 070701000001D6000081A4000000000000000000000001664134090000963F000000000000000000000000000000000000001B00000000gnome-maps-46.11/po/mjw.po# Karbi translation for gnome-maps. # Copyright (C) 2019 gnome-maps's Free Software Foundation, Inc. # This file is distributed under the same license as the gnome-maps package. # Jor Teron , 2019. # msgid "" msgstr "" "Project-Id-Version: gnome-maps master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2019-08-03 19:54+0000\n" "PO-Revision-Date: 2019-08-04 23:24+0530\n" "Last-Translator: Jor Teron \n" "Language-Team: Karbi \n" "Language: mjw\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: Gtranslator 2.91.7\n" #: data/org.gnome.Maps.appdata.xml.in:6 msgid "GNOME Maps" msgstr "GNOME Maps" #: data/org.gnome.Maps.appdata.xml.in:7 msgid "Find places around the world" msgstr "" #: data/org.gnome.Maps.appdata.xml.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" #: data/org.gnome.Maps.appdata.xml.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" #. Translators: Search is carried out on OpenStreetMap data using Nominatim. #. Visit http://wiki.openstreetmap.org/wiki/Nominatim/Special_Phrases and click #. your language to see what words you can use for the translated search. #: data/org.gnome.Maps.appdata.xml.in:22 msgid "" "You can even search for specific types of locations, such as “Pubs near Main " "Street, Boston” or “Hotels near Alexanderplatz, Berlin”." msgstr "" #: data/org.gnome.Maps.appdata.xml.in:59 msgid "The GNOME Project" msgstr "GNOME Project" #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.desktop.in:4 data/ui/main-window.ui:26 #: src/application.js:81 src/mainWindow.js:139 src/mainWindow.js:509 msgid "Maps" msgstr "Maps" #: data/org.gnome.Maps.desktop.in:5 msgid "A simple maps application" msgstr "" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in:14 msgid "Maps;" msgstr "Maps;" #: data/org.gnome.Maps.desktop.in:17 msgid "Allows your location to be shown on the map." msgstr "" #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "" #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "pathe-bi" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "" #: data/org.gnome.Maps.gschema.xml:21 msgid "Map type" msgstr "" #: data/org.gnome.Maps.gschema.xml:22 msgid "The type of map to display (street, aerial, etc.)" msgstr "" #: data/org.gnome.Maps.gschema.xml:26 msgid "Window size" msgstr "" #: data/org.gnome.Maps.gschema.xml:27 msgid "Window size (width and height)." msgstr "" #: data/org.gnome.Maps.gschema.xml:31 msgid "Window position" msgstr "" #: data/org.gnome.Maps.gschema.xml:32 msgid "Window position (X and Y)." msgstr "Window position (X pen Y)." #: data/org.gnome.Maps.gschema.xml:36 msgid "Window maximized" msgstr "" #: data/org.gnome.Maps.gschema.xml:37 msgid "Window maximization state" msgstr "" #: data/org.gnome.Maps.gschema.xml:41 msgid "Maximum number of search results" msgstr "" #: data/org.gnome.Maps.gschema.xml:42 msgid "Maximum number of search results from geocode search." msgstr "" #: data/org.gnome.Maps.gschema.xml:46 msgid "Number of recent places to store" msgstr "" #: data/org.gnome.Maps.gschema.xml:47 msgid "Number of recently visited places to store." msgstr "" #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent routes to store" msgstr "" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited routes to store." msgstr "" #: data/org.gnome.Maps.gschema.xml:56 msgid "Facebook check-in privacy setting" msgstr "" #. Translators: EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS, and SELF are constant names, and should not be translated #: data/org.gnome.Maps.gschema.xml:58 msgid "" "Latest used Facebook check-in privacy setting. Possible values are: " "EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS or SELF." msgstr "" #: data/org.gnome.Maps.gschema.xml:62 msgid "Foursquare check-in privacy setting" msgstr "" #: data/org.gnome.Maps.gschema.xml:63 msgid "" "Latest used Foursquare check-in privacy setting. Possible values are: " "public, followers or private." msgstr "" #: data/org.gnome.Maps.gschema.xml:67 msgid "Foursquare check-in Facebook broadcasting" msgstr "" #: data/org.gnome.Maps.gschema.xml:68 msgid "" "Indicates if Foursquare should broadcast the check-in as a post in the " "Facebook account associated with the Foursquare account." msgstr "" #: data/org.gnome.Maps.gschema.xml:72 msgid "Foursquare check-in Twitter broadcasting" msgstr "" #: data/org.gnome.Maps.gschema.xml:73 msgid "" "Indicates if Foursquare should broadcast the check-in as a tweet in the " "Twitter account associated with the Foursquare account." msgstr "" #: data/org.gnome.Maps.gschema.xml:77 msgid "OpenStreetMap username or e-mail address" msgstr "OpenStreetMap username mate e-mail address" #: data/org.gnome.Maps.gschema.xml:78 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "" #: data/org.gnome.Maps.gschema.xml:82 msgid "Last used transportation type for routing" msgstr "" #: data/ui/check-in-dialog.ui:250 data/ui/check-in-dialog.ui:299 msgid "Visibility" msgstr "" #: data/ui/check-in-dialog.ui:334 msgid "Post on Facebook" msgstr "Facebook long Post" #: data/ui/check-in-dialog.ui:348 msgid "Post on Twitter" msgstr "Twitter long Post" #: data/ui/check-in-dialog.ui:388 data/ui/export-view-dialog.ui:20 #: data/ui/send-to-dialog.ui:13 data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "" #. Translators: Check in is used as a verb #: data/ui/check-in-dialog.ui:399 data/ui/map-bubble.ui:93 msgid "C_heck in" msgstr "" #: data/ui/check-in-dialog.ui:427 msgid "Everyone" msgstr "Kadokawe" #: data/ui/check-in-dialog.ui:431 msgid "Friends of friends" msgstr "Jirpo a jirpo" #: data/ui/check-in-dialog.ui:435 msgid "Just friends" msgstr "Jirpo chot" #: data/ui/check-in-dialog.ui:439 msgid "Just me" msgstr "Ne anchot" #: data/ui/check-in-dialog.ui:453 msgid "Public" msgstr "Monit an" #: data/ui/check-in-dialog.ui:457 msgid "Followers" msgstr "Followers" #: data/ui/check-in-dialog.ui:461 msgid "Private" msgstr "Private" #: data/ui/context-menu.ui:9 msgid "What’s here?" msgstr "Ladak kopi lo do?" #: data/ui/context-menu.ui:16 msgid "Copy Location" msgstr "" #: data/ui/context-menu.ui:23 msgid "Export As Image" msgstr "" #: data/ui/context-menu.ui:36 msgid "Add to OpenStreetMap" msgstr "" #: data/ui/export-view-dialog.ui:14 msgid "Export view" msgstr "" #: data/ui/export-view-dialog.ui:34 msgid "_Export" msgstr "" #: data/ui/export-view-dialog.ui:126 msgid "Include route and markers" msgstr "" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "General" msgstr "" #: data/ui/help-overlay.ui:18 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "" #: data/ui/help-overlay.ui:25 msgctxt "shortcut window" msgid "Search" msgstr "Kiri" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Print route" msgstr "" #: data/ui/help-overlay.ui:46 msgctxt "shortcut window" msgid "Quit" msgstr "" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Map View" msgstr "" #: data/ui/help-overlay.ui:59 msgctxt "shortcut window" msgid "Zoom in" msgstr "Pathe" #: data/ui/help-overlay.ui:66 msgctxt "shortcut window" msgid "Zoom out" msgstr "Pabi" #: data/ui/help-overlay.ui:73 msgctxt "shortcut window" msgid "Toggle scale" msgstr "" #: data/ui/help-overlay.ui:80 msgctxt "shortcut window" msgid "Go to current location" msgstr "" #: data/ui/help-overlay.ui:87 msgctxt "shortcut window" msgid "Switch to street view" msgstr "" #: data/ui/help-overlay.ui:94 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "" #: data/ui/help-overlay.ui:101 msgctxt "shortcut window" msgid "Open shape layer" msgstr "" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:69 msgid "Open Shape Layer…" msgstr "" #: data/ui/location-service-dialog.ui:16 msgid "Turn on location services to find your location" msgstr "" #: data/ui/location-service-dialog.ui:28 data/ui/osm-edit-dialog.ui:283 #: data/ui/zoom-in-dialog.ui:28 msgid "Cancel" msgstr "" #: data/ui/location-service-dialog.ui:38 msgid "Location Settings" msgstr "" #: data/ui/main-window.ui:8 msgid "Set up OpenStreetMap Account" msgstr "OpenStreetMap Account selam" #: data/ui/main-window.ui:13 msgid "_Keyboard Shortcuts" msgstr "_Keyboard Shortcuts" #: data/ui/main-window.ui:18 msgid "About Maps" msgstr "Maps Aputhak" #. Translators: This is a tooltip #: data/ui/main-window.ui:41 msgid "Go to current location" msgstr "" #. Translators: This is a tooltip #: data/ui/main-window.ui:62 msgid "Choose map type" msgstr "" #. Translators: This is a tooltip #: data/ui/main-window.ui:87 msgid "Zoom out" msgstr "Pabi" #. Translators: This is a tooltip #: data/ui/main-window.ui:103 msgid "Zoom in" msgstr "Pathe" #. Translators: This is a tooltip #: data/ui/main-window.ui:142 msgid "Toggle route planner" msgstr "" #. Translators: This is a tooltip #: data/ui/main-window.ui:163 msgid "Toggle favorites" msgstr "" #. Translators: This is a tooltip #: data/ui/main-window.ui:183 msgid "Print Route" msgstr "" #: data/ui/main-window.ui:246 msgid "Maps is offline!" msgstr "Maps ke offline!" #: data/ui/main-window.ui:256 msgid "" "Maps need an active internet connection to function properly, but one can’t " "be found." msgstr "" #: data/ui/main-window.ui:265 msgid "Check your connection and proxy settings." msgstr "" #. Translators: This is a tooltip #: data/ui/map-bubble.ui:45 msgid "Add to new route" msgstr "" #. Translators: This is a tooltip #: data/ui/map-bubble.ui:62 msgid "Share location" msgstr "" #. Translators: This is a tooltip #: data/ui/map-bubble.ui:79 msgid "Mark as favorite" msgstr "" #. Translators: This is a tooltip #: data/ui/map-bubble.ui:98 msgid "Check in here" msgstr "" #: data/ui/osm-account-dialog.ui:9 msgid "OpenStreetMap Account" msgstr "OpenStreetMap Account" #: data/ui/osm-account-dialog.ui:22 msgid "Sign in to edit maps" msgstr "" #: data/ui/osm-account-dialog.ui:36 msgid "" "Help to improve the map, using an\n" "OpenStreetMap account." msgstr "" #: data/ui/osm-account-dialog.ui:56 msgid "Email" msgstr "Email" #: data/ui/osm-account-dialog.ui:81 msgid "Password" msgstr "Password" #: data/ui/osm-account-dialog.ui:125 msgid "Sign In" msgstr "Sign In" #: data/ui/osm-account-dialog.ui:146 msgid "Don’t have an account?" msgstr "" #. The label should contain the link to the OSM reset password page with a translated title #: data/ui/osm-account-dialog.ui:159 msgid "" "Sorry, that didn’t work. Please try again, or visit\n" "OpenStreetMap to reset your password." msgstr "" #: data/ui/osm-account-dialog.ui:172 msgid "The verification code didn’t match, please try again." msgstr "" #: data/ui/osm-account-dialog.ui:209 msgid "Enter verification code shown above" msgstr "" #: data/ui/osm-account-dialog.ui:232 msgid "Verify" msgstr "" #: data/ui/osm-account-dialog.ui:262 msgid "Signed In" msgstr "" #: data/ui/osm-account-dialog.ui:275 msgid "Your OpenStreetMap account is active." msgstr "Nangli OpenStreetMap account dambom lo." #: data/ui/osm-account-dialog.ui:309 msgid "Sign Out" msgstr "" #: data/ui/osm-edit-address.ui:14 msgid "Street" msgstr "Ale" #: data/ui/osm-edit-address.ui:26 msgid "House number" msgstr "Hem phai" #: data/ui/osm-edit-address.ui:38 msgid "Postal code" msgstr "PIN Code" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:50 msgid "City" msgstr "Rongsopi" #: data/ui/osm-edit-dialog.ui:58 msgid "Type" msgstr "" #: data/ui/osm-edit-dialog.ui:84 msgid "None" msgstr "" #: data/ui/osm-edit-dialog.ui:129 msgid "Add Field" msgstr "" #: data/ui/osm-edit-dialog.ui:163 msgid "Comment" msgstr "" #: data/ui/osm-edit-dialog.ui:195 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" #: data/ui/osm-edit-dialog.ui:241 msgid "Recently Used" msgstr "" #: data/ui/osm-edit-dialog.ui:280 msgctxt "dialog title" msgid "Edit on OpenStreetMap" msgstr "" #: data/ui/osm-edit-dialog.ui:310 src/osmEditDialog.js:512 msgid "Next" msgstr "Dunthu" #. Translators: This is a tooltip #: data/ui/place-bubble.ui:49 msgid "Edit on OpenStreetMap" msgstr "" #. Translators: This is a tooltip #: data/ui/place-bubble.ui:73 msgid "Show more information" msgstr "" #: data/ui/place-popover.ui:54 msgid "No results found" msgstr "" #. Translators: This is a tooltip #: data/ui/route-entry.ui:20 msgid "Drag to change order of the route" msgstr "" #: data/ui/send-to-dialog.ui:10 msgid "Open Location" msgstr "" #: data/ui/send-to-dialog.ui:70 msgid "Copy" msgstr "Copy" #: data/ui/send-to-dialog.ui:76 msgid "Send To…" msgstr "Kelo dim…" #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:62 msgid "Open Shape Layer" msgstr "" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:19 msgid "Toggle visible" msgstr "" #: data/ui/sidebar.ui:275 msgid "Route search by GraphHopper" msgstr "" #: data/ui/sidebar.ui:296 msgid "Route search by OpenTripPlanner" msgstr "" #: data/ui/sidebar.ui:369 msgid "" "Routing itineraries for public transit is provided by GNOME\n" "using timetable data obtained from transit companies or agencies.\n" "The companies and agencies can not be held responsible for the results " "shown.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" #: data/ui/social-place-more-results-row.ui:8 msgid "Show more results" msgstr "" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:126 msgid "Hide intermediate stops and information" msgstr "" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:200 msgid "Show intermediate stops and information" msgstr "" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:18 msgid "Leave Now" msgstr "Non kedam lo" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:19 msgid "Leave By" msgstr "Kedam apor" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:20 msgid "Arrive By" msgstr "Kele apor" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:106 msgid "Show" msgstr "Paklang" #: data/ui/transit-options-panel.ui:117 msgid "Buses" msgstr "Hemkonglong" #: data/ui/transit-options-panel.ui:124 msgid "Trams" msgstr "Trams" #: data/ui/transit-options-panel.ui:131 msgid "Trains" msgstr "Trains" #: data/ui/transit-options-panel.ui:138 msgid "Subway" msgstr "Subway" #: data/ui/transit-options-panel.ui:145 msgid "Ferries" msgstr "Telong" #: data/ui/user-location-bubble.ui:13 src/geoclue.js:118 msgid "Current location" msgstr "" #. To translators: %s can be "Unknown", "Exact" or "%f km²" #: data/ui/user-location-bubble.ui:28 msgid "Accuracy: %s" msgstr "" #: data/ui/zoom-in-dialog.ui:16 msgid "Zoom in to add location!" msgstr "" #: data/ui/zoom-in-dialog.ui:38 msgid "Zoom In" msgstr "Pathe" #: lib/maps-file-tile-source.c:303 lib/maps-file-tile-source.c:379 #: lib/maps-file-tile-source.c:459 msgid "Failed to find tile structure in directory" msgstr "" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "" #: lib/maps-osm.c:249 lib/maps-osm.c:402 msgid "Missing required attributes" msgstr "" #: lib/maps-osm.c:450 msgid "Could not find OSM element" msgstr "" #: src/application.js:94 msgid "A path to a local tiles directory structure" msgstr "" #: src/application.js:98 msgid "Show the version of the program" msgstr "" #: src/checkInDialog.js:167 msgid "Select an account" msgstr "Account chongvai" #: src/checkInDialog.js:172 src/checkInDialog.js:244 msgid "Loading" msgstr "" #: src/checkInDialog.js:196 msgid "Select a place" msgstr "Dim chongvai" #: src/checkInDialog.js:201 msgid "" "Maps cannot find the place to check in to with Facebook. Please select one " "from this list." msgstr "" #: src/checkInDialog.js:203 msgid "" "Maps cannot find the place to check in to with Foursquare. Please select one " "from this list." msgstr "" #. Translators: %s is the name of the place to check in. #. #: src/checkInDialog.js:218 #, javascript-format msgid "Check in to %s" msgstr "" #. Translators: %s is the name of the place to check in. #. #: src/checkInDialog.js:228 #, javascript-format msgid "Write an optional message to check in to %s." msgstr "" #: src/checkInDialog.js:280 src/checkIn.js:162 src/osmEditDialog.js:549 msgid "An error has occurred" msgstr "" #. Translators: %s is the place name that user wanted to check-in #: src/checkIn.js:144 #, javascript-format msgid "Cannot find “%s” in the social service" msgstr "" #: src/checkIn.js:146 msgid "Cannot find a suitable place to check-in in this location" msgstr "" #: src/checkIn.js:150 msgid "" "Credentials have expired, please open Online Accounts to sign in and enable " "this account" msgstr "" #: src/contextMenu.js:99 msgid "Route from here" msgstr "" #: src/contextMenu.js:101 msgid "Add destination" msgstr "" #: src/contextMenu.js:103 msgid "Route to here" msgstr "" #: src/contextMenu.js:129 msgid "Nothing found here!" msgstr "Dak ajat ta longle!" #: src/contextMenu.js:190 msgid "" "Location was added to the map, note that it may take a while before it shows " "on the map and in search results." msgstr "" #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:82 #, javascript-format msgid "Maps at %f, %f.png" msgstr "" #: src/exportViewDialog.js:154 msgid "Filesystem is read only" msgstr "" #: src/exportViewDialog.js:156 msgid "You do not have permission to save there" msgstr "" #: src/exportViewDialog.js:158 msgid "The directory does not exist" msgstr "" #: src/exportViewDialog.js:160 msgid "No filename specified" msgstr "" #: src/exportViewDialog.js:168 msgid "Unable to export view" msgstr "" #: src/geoJSONSource.js:97 msgid "invalid coordinate" msgstr "" #: src/geoJSONSource.js:146 src/geoJSONSource.js:186 src/geoJSONSource.js:201 msgid "parse error" msgstr "" #: src/geoJSONSource.js:180 msgid "unknown geometry" msgstr "" #: src/graphHopper.js:112 src/openTripPlanner.js:652 msgid "Route request failed." msgstr "" #: src/graphHopper.js:119 src/openTripPlanner.js:615 msgid "No route found." msgstr "" #: src/graphHopper.js:207 msgid "Start!" msgstr "" #: src/mainWindow.js:59 msgid "All Layer Files" msgstr "" #: src/mainWindow.js:442 msgid "Failed to connect to location service" msgstr "" #: src/mainWindow.js:507 msgid "translator-credits" msgstr "" "Jor Teron \n" "Biju Rongpi " #: src/mainWindow.js:510 msgid "A map application for GNOME" msgstr "A map application for GNOME" #: src/mainWindow.js:521 msgid "Copyright © 2011 – 2019 Red Hat, Inc. and The GNOME Maps authors" msgstr "Copyright © 2011 – 2019 Red Hat, Inc. and The GNOME Maps authors" #: src/mainWindow.js:541 #, javascript-format msgid "Map data by %s and contributors" msgstr "" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:557 #, javascript-format msgid "Map tiles provided by %s" msgstr "" #. Translators: this is an attribution string giving credit to the #. * search provider where the first %s placeholder is replaced by either #. * the bare name of the geocoder provider, or a linkified URL if one #. * is available, and the second %s placeholder is replaced by the #. * URL to the geocoder project page. These placeholders #. * can be swapped, if needed using the %n$s positional syntax #. * (i.e. "%2$s ... %1$s ..." for positioning the project URL #. * before the provider). #. #: src/mainWindow.js:586 #, javascript-format msgid "Search provided by %s using %s" msgstr "" #: src/mapView.js:374 msgid "File type is not supported" msgstr "" #: src/mapView.js:381 msgid "Failed to open layer" msgstr "" #: src/mapView.js:417 msgid "Failed to open GeoURI" msgstr "" #: src/openTripPlanner.js:648 msgid "No timetable data found for this route." msgstr "" #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:436 msgid "Incorrect user name or password" msgstr "" #: src/osmConnection.js:438 msgid "Success" msgstr "Chunlo" #: src/osmConnection.js:440 msgid "Bad request" msgstr "" #: src/osmConnection.js:442 msgid "Object not found" msgstr "" #: src/osmConnection.js:444 msgid "Conflict, someone else has just modified the object" msgstr "" #: src/osmConnection.js:446 msgid "Object has been deleted" msgstr "" #: src/osmConnection.js:448 msgid "Way or relation refers to non-existing children" msgstr "" #: src/osmEditDialog.js:105 msgid "Name" msgstr "Men" #: src/osmEditDialog.js:108 msgid "The official name. This is typically what appears on signs." msgstr "" #: src/osmEditDialog.js:111 msgid "Address" msgstr "" #: src/osmEditDialog.js:119 msgid "Website" msgstr "Website" #: src/osmEditDialog.js:122 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" #: src/osmEditDialog.js:127 msgid "Phone" msgstr "" #: src/osmEditDialog.js:131 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" #: src/osmEditDialog.js:136 src/placeBubble.js:191 msgid "Wikipedia" msgstr "Wikipedia" #: src/osmEditDialog.js:140 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "" #: src/osmEditDialog.js:144 msgid "Opening hours" msgstr "Kangpu apor" #: src/osmEditDialog.js:149 msgid "See the link in the label for help on format." msgstr "" #: src/osmEditDialog.js:152 msgid "Population" msgstr "Armu" #: src/osmEditDialog.js:157 msgid "Altitude" msgstr "" #: src/osmEditDialog.js:160 msgid "Elevation (height above sea level) of a point in metres." msgstr "" #: src/osmEditDialog.js:163 msgid "Wheelchair access" msgstr "" #: src/osmEditDialog.js:166 src/osmEditDialog.js:175 src/osmEditDialog.js:213 msgid "Yes" msgstr "" #: src/osmEditDialog.js:167 src/osmEditDialog.js:176 src/osmEditDialog.js:214 msgid "No" msgstr "" #: src/osmEditDialog.js:168 msgid "Limited" msgstr "" #: src/osmEditDialog.js:169 msgid "Designated" msgstr "" #: src/osmEditDialog.js:172 msgid "Internet access" msgstr "Internet access" #. Translators: #. * This means a WLAN Hotspot, also know as wireless, wifi or Wi-Fi. #. #: src/osmEditDialog.js:177 src/translations.js:340 msgid "Wi-Fi" msgstr "Wi-Fi" #: src/osmEditDialog.js:178 msgid "Wired" msgstr "Wired" #: src/osmEditDialog.js:179 msgid "Terminal" msgstr "" #: src/osmEditDialog.js:180 msgid "Service" msgstr "Service" #: src/osmEditDialog.js:183 msgid "Religion" msgstr "Dhorom" #: src/osmEditDialog.js:186 src/translations.js:363 msgid "Animism" msgstr "Animism" #: src/osmEditDialog.js:187 msgid "Bahá’í" msgstr "Bahá’í" #: src/osmEditDialog.js:188 src/translations.js:365 msgid "Buddhism" msgstr "Buddhism" #: src/osmEditDialog.js:189 src/translations.js:366 msgid "Caodaism" msgstr "Caodaism" #: src/osmEditDialog.js:190 src/translations.js:367 msgid "Christianity" msgstr "Christianity" #: src/osmEditDialog.js:191 src/translations.js:368 msgid "Confucianism" msgstr "Confucianism" #: src/osmEditDialog.js:192 src/translations.js:369 msgid "Hinduism" msgstr "Hinduism" #: src/osmEditDialog.js:193 src/translations.js:370 msgid "Jainism" msgstr "Jainism" #: src/osmEditDialog.js:194 src/translations.js:371 msgid "Judaism" msgstr "Judaism" #: src/osmEditDialog.js:195 src/translations.js:372 msgid "Islam" msgstr "Islam" #: src/osmEditDialog.js:196 src/translations.js:373 msgid "Multiple Religions" msgstr "Multiple Religions" #: src/osmEditDialog.js:197 src/translations.js:374 msgid "Paganism" msgstr "Paganism" #: src/osmEditDialog.js:198 src/translations.js:375 msgid "Pastafarianism" msgstr "Pastafarianism" #: src/osmEditDialog.js:199 src/translations.js:376 msgid "Scientology" msgstr "Scientology" #: src/osmEditDialog.js:200 src/translations.js:377 msgid "Shinto" msgstr "Shinto" #: src/osmEditDialog.js:201 src/translations.js:378 msgid "Sikhism" msgstr "Sikhism" #: src/osmEditDialog.js:202 src/translations.js:379 msgid "Spiritualism" msgstr "Spiritualism" #: src/osmEditDialog.js:203 src/translations.js:380 msgid "Taoism" msgstr "Taoism" #: src/osmEditDialog.js:204 src/translations.js:381 msgid "Unitarian Universalism" msgstr "Unitarian Universalism" #: src/osmEditDialog.js:205 src/translations.js:382 msgid "Voodoo" msgstr "Voodoo" #: src/osmEditDialog.js:206 src/translations.js:383 msgid "Yazidism" msgstr "Yazidism" #: src/osmEditDialog.js:207 src/translations.js:384 msgid "Zoroastrianism" msgstr "Zoroastrianism" #: src/osmEditDialog.js:210 msgid "Toilets" msgstr "Barso-barpi-hem" #: src/osmEditDialog.js:217 msgid "Note" msgstr "" #: src/osmEditDialog.js:220 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" #: src/osmEditDialog.js:325 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "" #: src/osmEditDialog.js:379 msgid "Select Type" msgstr "" #: src/osmEditDialog.js:496 msgid "Done" msgstr "" #: src/photonParser.js:103 msgid "Unnamed place" msgstr "Amen tokte adim" #: src/placeBubble.js:143 msgid "Population:" msgstr "Armu:" #: src/placeBubble.js:149 msgid "Altitude:" msgstr "" #: src/placeBubble.js:154 msgid "Opening hours:" msgstr "Kangpu apor:" #: src/placeBubble.js:159 msgid "Internet access:" msgstr "Internet do:" #: src/placeBubble.js:164 msgid "Religion:" msgstr "Dhorom:" #: src/placeBubble.js:169 msgid "Toilets:" msgstr "Barso-barpi-hem:" #: src/placeBubble.js:174 msgid "Wheelchair access:" msgstr "" #: src/placeBubble.js:180 src/placeBubble.js:184 msgid "Phone:" msgstr "" #: src/placeEntry.js:194 msgid "Failed to parse Geo URI" msgstr "" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/place.js:268 src/translations.js:329 src/translations.js:391 msgid "yes" msgstr "" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/place.js:275 msgid "limited" msgstr "" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/place.js:281 src/translations.js:335 src/translations.js:392 msgid "no" msgstr "" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/place.js:288 msgid "designated" msgstr "" #: src/place.js:475 msgid "Place not found in OpenStreetMap" msgstr "" #: src/place.js:495 msgid "OpenStreetMap URL is not valid" msgstr "" #: src/place.js:500 msgid "Coordinates in URL are not valid" msgstr "" #: src/place.js:521 msgid "URL is not supported" msgstr "" #: src/printLayout.js:312 #, javascript-format msgid "From %s to %s" msgstr "" #: src/printOperation.js:46 msgid "Loading map tiles for printing" msgstr "" #: src/printOperation.js:47 msgid "You can abort printing if this takes too long" msgstr "" #: src/printOperation.js:49 msgid "Abort printing" msgstr "" #. Translators: this is add via location tooltip #: src/routeEntry.js:74 msgid "Add via location" msgstr "" #. Translators: this is remove via location tooltip #: src/routeEntry.js:84 msgid "Remove via location" msgstr "" #. Translators: this is reverse route tooltip #: src/routeEntry.js:90 msgid "Reverse route" msgstr "" #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:103 #, javascript-format msgid "Add %s to %s" msgstr "" #: src/sendToDialog.js:201 msgid "Failed to open URI" msgstr "" #: src/sendToDialog.js:258 #, javascript-format msgid "Open with %s" msgstr "%s pen ingpu" #: src/shapeLayer.js:91 msgid "failed to load file" msgstr "" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:293 #, javascript-format msgid "Estimated time: %s" msgstr "" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:37 #, javascript-format msgid "Start at %s" msgstr "%s pen pangcheng" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:43 msgid "Start" msgstr "Pangcheng" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:61 #, javascript-format msgid "Walk %s" msgstr "Keng-kedam %s" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:75 #, javascript-format msgid "Arrive at %s" msgstr "Kele dim %s" #: src/transit.js:77 msgid "Arrive" msgstr "Nangkele" #: src/transitLegRow.js:88 msgid "Show walking instructions" msgstr "" #: src/transitLegRow.js:89 msgid "Hide walking instructions" msgstr "" #: src/transitMoreRow.js:39 msgid "Load earlier alternatives" msgstr "" #: src/transitMoreRow.js:41 msgid "Load later alternatives" msgstr "" #: src/transitMoreRow.js:54 msgid "No earlier alternatives found." msgstr "" #: src/transitMoreRow.js:56 msgid "No later alternatives found." msgstr "" #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:141 msgctxt "month-day-date" msgid "%b %e" msgstr "%e %b" #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:254 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:281 #, javascript-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "%d minute" msgstr[1] "%d minute" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:292 #, javascript-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "Porphai %d" msgstr[1] "Porphai %d" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:298 #, javascript-format msgid "%d:%02d hour" msgid_plural "%d:%02d hours" msgstr[0] "Porphai %d:%02d" msgstr[1] "Porphai %d:%02d" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:651 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: src/translations.js:56 msgid "around the clock" msgstr "" #: src/translations.js:58 msgid "from sunrise to sunset" msgstr "arni ketet pen arni chelut an" #. Translators: #. * This is a format string with two separate time ranges #. * such as "Mo-Fr 10:00-19:00 Sa 12:00-16:00" #. * The space between the format place holders could be #. * substituted with the appropriate separator. #. #: src/translations.js:77 #, javascript-format msgctxt "time range list" msgid "%s %s" msgstr "%s %s" #. Translators: #. * This is a format string with three separate time ranges #. * such as "Mo-Fr 10:00-19:00 Sa 10:00-17:00 Su 12:00-16:00" #. * The space between the format place holders could be #. * substituted with the appropriate separator. #. #: src/translations.js:89 #, javascript-format msgctxt "time range list" msgid "%s %s %s" msgstr "%s %s %s" #. Translators: #. * This is a format string consisting of a part specifying the days for #. * which the specified time is applied and the time interval #. * specification as the second argument. #. * The space between the format place holders could be substituted with #. * the appropriate separator or phrase and the ordering of the arguments #. * can be rearranged with the %n#s syntax. #: src/translations.js:120 #, javascript-format msgctxt "time range component" msgid "%s %s" msgstr "%s %s" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:152 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s,%s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:166 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s,%s,%s" #: src/translations.js:185 msgid "every day" msgstr "arnivang" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:197 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:208 msgid "public holidays" msgstr "rat kangkir" #: src/translations.js:210 msgid "school holidays" msgstr "locharli-hem kangkir" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:250 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: src/translations.js:264 msgid "not open" msgstr "ingpu pe" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:279 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s-%s" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/translations.js:345 msgid "wired" msgstr "" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/translations.js:350 msgid "terminal" msgstr "terminal" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/translations.js:355 msgid "service" msgstr "" #. Translators: Accuracy of user location information #: src/utils.js:220 msgid "Unknown" msgstr "Puthekthe" #. Translators: Accuracy of user location information #: src/utils.js:223 msgid "Exact" msgstr "" #: src/utils.js:281 #, javascript-format msgid "%f h" msgstr "%f h" #: src/utils.js:283 #, javascript-format msgid "%f min" msgstr "%f min" #: src/utils.js:285 #, javascript-format msgid "%f s" msgstr "%f s" #. Translators: This is a distance measured in kilometers #: src/utils.js:296 #, javascript-format msgid "%s km" msgstr "%s km" #. Translators: This is a distance measured in meters #: src/utils.js:299 #, javascript-format msgid "%s m" msgstr "%s m" #. Translators: This is a distance measured in miles #: src/utils.js:307 #, javascript-format msgid "%s mi" msgstr "%s mi" #. Translators: This is a distance measured in feet #: src/utils.js:310 #, javascript-format msgid "%s ft" msgstr "%s ft" 070701000001D7000081A4000000000000000000000001664134090000BA45000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/ml.po# Malayalam translation for gnome-maps. # Copyright (C) 2013 gnome-maps's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-maps package. # syamlalpullamballi , 2013. # msgid "" msgstr "" "Project-Id-Version: gnome-maps master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2018-10-25 19:38+0000\n" "PO-Revision-Date: 2018-10-26 22:15+0800\n" "Last-Translator: Anish Sheela \n" "Language-Team: Malayalam \n" "Language: ml\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.0.6\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: data/org.gnome.Maps.appdata.xml.in:6 msgid "GNOME Maps" msgstr "ഗ്നോം ഭൂപടങ്ങള്‍" #: data/org.gnome.Maps.appdata.xml.in:7 msgid "Find places around the world" msgstr "ലോകമെമ്പാടുമുള്ള സ്ഥലങ്ങൾ കണ്ടെത്തുക" #: data/org.gnome.Maps.appdata.xml.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to quickly find the place " "you’re looking for by searching for a city or street, or locate a place to meet a friend." msgstr "" "ഭൂപടങ്ങള്‍ താങ്കള്‍ക്കു ലോകത്തിലെ എല്ലായിടത്തെയും ഭൂപടങ്ങളിലേക്കു പ്രവേശനം നല്‍കുന്നു. ഇത് താങ്കള്‍ അന്വേഷിക്കുന്ന സ്ഥലം നഗരമോ " "തെരുവൊ തിരയുന്നതിലൂടെ പെട്ടന്നു തന്നെ കണ്ടുപിടിക്കാന്‍ അല്ലെങ്കില്‍ സുഹൃത്തിനെ കാണുവാന്‍ ഒരു സ്ഥലം കണ്ടുപിടിക്കാന്‍ സഹായിക്കുന്നു." #: data/org.gnome.Maps.appdata.xml.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of thousands of people across " "the globe." msgstr "" "ഭൂപടങ്ങള്‍ സഹകരണപരമായ OpenStreetMap ന്റെ ശേഖരിച്ചു് വചിട്ടുള്ള വിവരങ്ങളും വസ്തുതകളും ഉപയോഗിക്കുന്നുണ്ട്, ലോകത്തിലെ " "എല്ലായിടത്തിലേയും നൂറുകണക്കിനു ആളുകള്‍ ചേര്‍ന്നുണ്ടക്കിയതാണത്." #. Translators: Search is carried out on OpenStreetMap data using Nominatim. #. Visit http://wiki.openstreetmap.org/wiki/Nominatim/Special_Phrases and click #. your language to see what words you can use for the translated search. #: data/org.gnome.Maps.appdata.xml.in:22 msgid "" "You can even search for specific types of locations, such as “Pubs near Main Street, Boston” or " "“Hotels near Alexanderplatz, Berlin”." msgstr "" #. Translators: This is the program name. #: data/org.gnome.Maps.desktop.in:4 data/ui/main-window.ui:26 src/mainWindow.js:503 msgid "Maps" msgstr "ഭൂപടങ്ങള്‍" #: data/org.gnome.Maps.desktop.in:5 msgid "A simple maps application" msgstr "ലളിതമായ ഒരു ഭൂപട പ്രയോഗം" #. Translators: Do NOT translate or transliterate this text (this is an icon file name)! #: data/org.gnome.Maps.desktop.in:8 msgid "org.gnome.Maps" msgstr "org.gnome.Maps" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in:14 msgid "Maps;" msgstr "Maps;" #: data/org.gnome.Maps.desktop.in:17 msgid "Allows your location to be shown on the map." msgstr "നിങ്ങളുടെ ലൊക്കേഷനെ മാപ്പിൽ കാണിക്കുന്നതിന് അനുവദിക്കുന്നു" #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "അവസാനം കണ്ട സ്ഥലം" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "അവസാനം കണ്ട സ്ഥലത്തിന്റെ സ്ഥാനം" #: data/org.gnome.Maps.gschema.xml:16 msgid "Window size" msgstr "ജാലകത്തിന്‍റെ വലിപ്പം" #: data/org.gnome.Maps.gschema.xml:17 msgid "Window size (width and height)." msgstr "ജാലകത്തിന്‍റെ വലിപ്പം (വീതിയും ഉയരവും)" #: data/org.gnome.Maps.gschema.xml:21 msgid "Window position" msgstr "ജാലകത്തിന്‍റെ സ്ഥാനം" #: data/org.gnome.Maps.gschema.xml:22 msgid "Window position (X and Y)." msgstr "ജാലകത്തിന്‍റെ സ്ഥാനം (X ഉം Y ഉം)" #: data/org.gnome.Maps.gschema.xml:26 msgid "Window maximized" msgstr "വലുതാക്കിയ ജാലകം" #: data/org.gnome.Maps.gschema.xml:27 msgid "Window maximization state" msgstr "ജാലകം വലുതാക്കുന്ന അവസ്ഥ" #: data/org.gnome.Maps.gschema.xml:31 msgid "Maximum number of search results" msgstr "തിരച്ചില്‍ ഫലങ്ങളുടെ പരമാവധി എണ്ണം" #: data/org.gnome.Maps.gschema.xml:32 msgid "Maximum number of search results from geocode search." msgstr "geocode ഇല്‍ നിന്നും പരിശോധന ഫലത്തിന്റെ പരമാവധി എണ്ണം." #: data/org.gnome.Maps.gschema.xml:36 msgid "Number of recent places to store" msgstr "സൂക്ഷിക്കാനുള്ള സമീപകാല സ്ഥലങ്ങളുടെ എണ്ണംv" #: data/org.gnome.Maps.gschema.xml:37 msgid "Number of recently visited places to store." msgstr "സൂക്ഷിക്കാൻ അടുത്തിടെ സന്ദർശിച്ച സ്ഥലങ്ങളുടെ എണ്ണം." #: data/org.gnome.Maps.gschema.xml:41 msgid "Number of recent routes to store" msgstr "സൂക്ഷിക്കാനുള്ള സമീപകാല സ്ഥലങ്ങളുടെ എണ്ണംv" #: data/org.gnome.Maps.gschema.xml:42 msgid "Number of recently visited routes to store." msgstr "സൂക്ഷിക്കാൻ അടുത്തിടെ സന്ദർശിച്ച സ്ഥലങ്ങളുടെ എണ്ണം." #: data/org.gnome.Maps.gschema.xml:46 msgid "Facebook check-in privacy setting" msgstr "Facebook ചെക്ക്-ഇൻ സ്വകാര്യത ക്രമീകരണം" #. Translators: EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS, and SELF are constant names, and should not be translated #: data/org.gnome.Maps.gschema.xml:48 msgid "" "Latest used Facebook check-in privacy setting. Possible values are: EVERYONE, FRIENDS_OF_FRIENDS, " "ALL_FRIENDS or SELF." msgstr "" "ഏറ്റവും പുതിയ ഉപയോഗത്തിലുള്ള Facebook ചെക്ക്-ഇൻ സ്വകാര്യത ക്രമീകരണം. സാധ്യമായ മൂല്യങ്ങൾ: എല്ലാവരേയും, " "FRIENDS_OF_FRIENDS, ALL_FRIENDS അല്ലെങ്കിൽ SELF." #: data/org.gnome.Maps.gschema.xml:52 msgid "Foursquare check-in privacy setting" msgstr "ഫോർസ്ക്വെയർ ചെക്ക്-ഇൻ സ്വകാര്യത ക്രമീകരണം." #: data/org.gnome.Maps.gschema.xml:53 msgid "" "Latest used Foursquare check-in privacy setting. Possible values are: public, followers or private." msgstr "" "ഏറ്റവുമധികം ഉപയോഗിച്ചത് Foursquare ചെക്ക്-ഇൻ സ്വകാര്യതാ ക്രമീകരണം. സാധ്യമായ വിലകൾ: പൊതുജനം, പിന്തുടരുന്നവർ " "അല്ലെങ്കിൽ സ്വകാര്യം." #: data/org.gnome.Maps.gschema.xml:57 msgid "Foursquare check-in Facebook broadcasting" msgstr "ഫയർസ്കോർ ചെക്ക് ഇൻ ഫേസ്ബുക്ക് ബ്രോഡ്കാസ്റ്റിങ്" #: data/org.gnome.Maps.gschema.xml:58 msgid "" "Indicates if Foursquare should broadcast the check-in as a post in the Facebook account associated " "with the Foursquare account." msgstr "" "ഫോർസ്ക്വെയർ അക്കൗണ്ടുമായി ബന്ധപ്പെട്ട ഫേസ്സ്കാർ ഫേസ്ബുക്കിൽ അക്കൗണ്ട് പോസ്റ്റുചെയ്ത് ഒരു ഫോൾഡർ ആയി പ്രക്ഷേപണം ചെയ്യേണ്ടതുണ്ടോ " "എന്ന് സൂചിപ്പിക്കുന്നു." #: data/org.gnome.Maps.gschema.xml:62 msgid "Foursquare check-in Twitter broadcasting" msgstr "ഫയർസ്കോർ ചെക്ക് ഇൻ ഫേസ്ബുക്ക് ബ്രോഡ്കാസ്റ്റിങ്" #: data/org.gnome.Maps.gschema.xml:63 msgid "" "Indicates if Foursquare should broadcast the check-in as a tweet in the Twitter account associated " "with the Foursquare account." msgstr "" #: data/org.gnome.Maps.gschema.xml:67 msgid "OpenStreetMap username or e-mail address" msgstr "" #: data/org.gnome.Maps.gschema.xml:68 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "" #: data/org.gnome.Maps.gschema.xml:72 msgid "Last used transportation type for routing" msgstr "" #: data/ui/check-in-dialog.ui:250 data/ui/check-in-dialog.ui:299 msgid "Visibility" msgstr "ദൃശ്യപരത" #: data/ui/check-in-dialog.ui:334 msgid "Post on Facebook" msgstr "ഫേസ്ബുക്കിൽ പോസ്റ്റുചെയ്യുക" #: data/ui/check-in-dialog.ui:348 msgid "Post on Twitter" msgstr "" #: data/ui/check-in-dialog.ui:388 data/ui/export-view-dialog.ui:20 data/ui/send-to-dialog.ui:21 #: data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "റദ്ദാക്കുക" #. Translators: Check in is used as a verb #: data/ui/check-in-dialog.ui:399 data/ui/map-bubble.ui:93 msgid "C_heck in" msgstr "" #: data/ui/check-in-dialog.ui:427 msgid "Everyone" msgstr "എല്ലാവർക്കും" #: data/ui/check-in-dialog.ui:431 msgid "Friends of friends" msgstr "കൂട്ടുകാരുടെ കൂട്ടുകാര്" #: data/ui/check-in-dialog.ui:435 msgid "Just friends" msgstr "സുഹൃത്തുക്കൾ മാത്രം" #: data/ui/check-in-dialog.ui:439 msgid "Just me" msgstr "ഞാൻ മാത്രം" #: data/ui/check-in-dialog.ui:453 msgid "Public" msgstr "പൊതുവായത്" #: data/ui/check-in-dialog.ui:457 msgid "Followers" msgstr "അനുയായികൾ" #: data/ui/check-in-dialog.ui:461 msgid "Private" msgstr "സ്വകാര്യം" #: data/ui/context-menu.ui:9 msgid "What’s here?" msgstr "എന്താണ് ഇവിടെ ഉള്ളത്?" #: data/ui/context-menu.ui:16 msgid "Copy Location" msgstr "സ്ഥാനം പകർത്തുക" #: data/ui/context-menu.ui:23 msgid "Export As Image" msgstr "" #: data/ui/context-menu.ui:36 msgid "Add to OpenStreetMap" msgstr "" #: data/ui/export-view-dialog.ui:14 msgid "Export view" msgstr "" #: data/ui/export-view-dialog.ui:34 msgid "_Export" msgstr "" #: data/ui/export-view-dialog.ui:126 msgid "Include route and markers" msgstr "" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "General" msgstr "" #: data/ui/help-overlay.ui:18 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "" #: data/ui/help-overlay.ui:25 msgctxt "shortcut window" msgid "Search" msgstr "" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Print route" msgstr "" #: data/ui/help-overlay.ui:46 #, fuzzy #| msgid "Quit" msgctxt "shortcut window" msgid "Quit" msgstr "അവസാനിപ്പിക്കുക" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Map View" msgstr "" #: data/ui/help-overlay.ui:59 msgctxt "shortcut window" msgid "Zoom in" msgstr "" #: data/ui/help-overlay.ui:66 msgctxt "shortcut window" msgid "Zoom out" msgstr "" #: data/ui/help-overlay.ui:73 msgctxt "shortcut window" msgid "Toggle scale" msgstr "" #: data/ui/help-overlay.ui:80 msgctxt "shortcut window" msgid "Go to current location" msgstr "" #: data/ui/help-overlay.ui:87 msgctxt "shortcut window" msgid "Switch to street view" msgstr "" #: data/ui/help-overlay.ui:94 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "" #: data/ui/help-overlay.ui:101 msgctxt "shortcut window" msgid "Open shape layer" msgstr "" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:71 msgid "Open Shape Layer…" msgstr "" #: data/ui/location-service-dialog.ui:16 msgid "Turn on location services to find your location" msgstr "" #: data/ui/location-service-dialog.ui:28 data/ui/osm-edit-dialog.ui:283 data/ui/zoom-in-dialog.ui:28 msgid "Cancel" msgstr "റദ്ദാക്കുക" #: data/ui/location-service-dialog.ui:38 msgid "Location Settings" msgstr "ലൊക്കേഷൻ ക്രമീകരണങ്ങൾ" #: data/ui/main-window.ui:8 msgid "Set up OpenStreetMap Account" msgstr "OpenStreetMap അക്കൌണ്ട് സജ്ജമാക്കുക" #: data/ui/main-window.ui:13 msgid "_Keyboard Shortcuts" msgstr "കീബോർഡ് കുറുക്കുവഴികൾ" #: data/ui/main-window.ui:18 #, fuzzy #| msgid "About" msgid "About Maps" msgstr "കുറിപ്പ്" #. Translators: This is a tooltip #: data/ui/main-window.ui:41 msgid "Go to current location" msgstr "നിലവിലെ ലൊക്കേഷനിൽ പോകുക" #. Translators: This is a tooltip #: data/ui/main-window.ui:62 msgid "Choose map type" msgstr "മാപ്പ് തരം തിരഞ്ഞെടുക്കുക" #. Translators: This is a tooltip #: data/ui/main-window.ui:87 msgid "Zoom out" msgstr "ചെറുതാക്കുക" #. Translators: This is a tooltip #: data/ui/main-window.ui:103 msgid "Zoom in" msgstr "വലുതാക്കുക" #. Translators: This is a tooltip #: data/ui/main-window.ui:142 msgid "Toggle route planner" msgstr "" #. Translators: This is a tooltip #: data/ui/main-window.ui:163 msgid "Toggle favorites" msgstr "" #. Translators: This is a tooltip #: data/ui/main-window.ui:183 msgid "Print Route" msgstr "" #: data/ui/main-window.ui:246 msgid "Maps is offline!" msgstr "" #: data/ui/main-window.ui:256 msgid "Maps need an active internet connection to function properly, but one can’t be found." msgstr "" #: data/ui/main-window.ui:265 msgid "Check your connection and proxy settings." msgstr "" #. Translators: This is a tooltip #: data/ui/map-bubble.ui:45 msgid "Add to new route" msgstr "" #. Translators: This is a tooltip #: data/ui/map-bubble.ui:62 msgid "Open with another application" msgstr "" #. Translators: This is a tooltip #: data/ui/map-bubble.ui:79 msgid "Mark as favorite" msgstr "" #. Translators: This is a tooltip #: data/ui/map-bubble.ui:98 msgid "Check in here" msgstr "" #: data/ui/osm-account-dialog.ui:9 msgid "OpenStreetMap Account" msgstr "" #: data/ui/osm-account-dialog.ui:22 msgid "Sign in to edit maps" msgstr "" #: data/ui/osm-account-dialog.ui:36 msgid "" "Help to improve the map, using an\n" "OpenStreetMap account." msgstr "" #: data/ui/osm-account-dialog.ui:56 msgid "Email" msgstr "ഇമെയിൽ" #: data/ui/osm-account-dialog.ui:81 msgid "Password" msgstr "രഹസ്യവാക്ക് " #: data/ui/osm-account-dialog.ui:125 msgid "Sign In" msgstr "പ്രവേശിക്കുക" #: data/ui/osm-account-dialog.ui:146 msgid "Don’t have an account?" msgstr "ഒരു അക്കൗണ്ട് ഇല്ലേ?" #. The label should contain the link to the OSM reset password page with a translated title #: data/ui/osm-account-dialog.ui:159 msgid "" "Sorry, that didn’t work. Please try again, or visit\n" "OpenStreetMap to reset your " "password." msgstr "" #: data/ui/osm-account-dialog.ui:172 msgid "The verification code didn’t match, please try again." msgstr "പരിശോധിച്ചുറപ്പിക്കൽ കോഡ് പൊരുത്തപ്പെടുന്നില്ല, വീണ്ടും ശ്രമിക്കുക." #: data/ui/osm-account-dialog.ui:209 msgid "Enter verification code shown above" msgstr "മുകളിൽ കാണിച്ചിരിക്കുന്ന പരിശോധനാ കോഡ് നൽകുക" #: data/ui/osm-account-dialog.ui:232 msgid "Verify" msgstr "പരിശോധിക്കുക" #: data/ui/osm-account-dialog.ui:262 msgid "Signed In" msgstr "" #: data/ui/osm-account-dialog.ui:275 msgid "Your OpenStreetMap account is active." msgstr "OpenStreetMap അക്കൌണ്ട് സജ്ജമാണ്." #: data/ui/osm-account-dialog.ui:309 msgid "Sign Out" msgstr "പുറത്തിറങ്ങുക" #: data/ui/osm-edit-address.ui:14 msgid "Street" msgstr "തെരുവ്" #: data/ui/osm-edit-address.ui:26 msgid "House number" msgstr "വീട്ട് നമ്പര്‍" #: data/ui/osm-edit-address.ui:38 msgid "Postal code" msgstr "തപാൽ കോഡ്" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:50 msgid "City" msgstr "നഗരം" #: data/ui/osm-edit-dialog.ui:58 msgid "Type" msgstr "തരം" #: data/ui/osm-edit-dialog.ui:84 msgid "None" msgstr "ഒന്നുമില്ല" #: data/ui/osm-edit-dialog.ui:129 msgid "Add Field" msgstr "ഫീള്‍ഡ് ചേര്‍ക്കുക" #: data/ui/osm-edit-dialog.ui:163 msgid "Comment" msgstr "അഭിപ്രായം" #: data/ui/osm-edit-dialog.ui:195 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" #: data/ui/osm-edit-dialog.ui:241 msgid "Recently Used" msgstr "സമീപകാലത്ത് ഉപയോഗിച്ചവ" #: data/ui/osm-edit-dialog.ui:280 msgctxt "dialog title" msgid "Edit on OpenStreetMap" msgstr "" #: data/ui/osm-edit-dialog.ui:310 src/osmEditDialog.js:512 msgid "Next" msgstr "അടുത്തത്" #. Translators: This is a tooltip #: data/ui/place-bubble.ui:49 msgid "Edit on OpenStreetMap" msgstr "OpenStreetMap ല്‍ തിരുത്തുക" #. Translators: This is a tooltip #: data/ui/place-bubble.ui:73 msgid "Show more information" msgstr "കൂടുതൽ വിവരങ്ങൾ കാണിക്കുക" #: data/ui/place-popover.ui:24 msgid "Press enter to search" msgstr "തെരയാന്‍ എന്റെര്‍ അമര്‍ത്തു" #: data/ui/place-popover.ui:72 msgid "No results found" msgstr "ഒരു ഫലവും കണ്ടെത്താനായില്ല" #. Translators: This is a tooltip #: data/ui/route-entry.ui:20 msgid "Drag to change order of the route" msgstr "വഴിയുടെ ക്രമം മാറ്റാന്‍ നീക്കുക" #: data/ui/send-to-dialog.ui:15 msgid "Open location" msgstr "സ്ഥലം തുറക്കുക" #: data/ui/send-to-dialog.ui:35 data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "തുറക്കുക (_O)" #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:61 msgid "Open Shape Layer" msgstr "" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:19 msgid "Toggle visible" msgstr "" #: data/ui/sidebar.ui:275 msgid "Route search by GraphHopper" msgstr "" #: data/ui/sidebar.ui:296 msgid "Route search by OpenTripPlanner" msgstr "" #: data/ui/sidebar.ui:369 msgid "" "Routing itineraries for public transit is provided by GNOME\n" "using timetable data obtained from transit companies or agencies.\n" "The companies and agencies can not be held responsible for the results shown.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Names and brands shown are to be considered as registered trademarks when applicable." msgstr "" #: data/ui/social-place-more-results-row.ui:8 msgid "Show more results" msgstr "കൂടുതൽ വിവരങ്ങൾ കാണിക്കുക" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:126 msgid "Hide intermediate stops and information" msgstr "" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:200 msgid "Show intermediate stops and information" msgstr "" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:18 msgid "Leave Now" msgstr "ഇപ്പോൾ വിടുക" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:19 msgid "Leave By" msgstr "പുറപ്പെടേണ്ടത്" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:20 msgid "Arrive By" msgstr "എത്തിച്ചേരേണ്ടത്" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:106 msgid "Show" msgstr "കാണിക്കുക" #: data/ui/transit-options-panel.ui:117 msgid "Buses" msgstr "ബസ്സുകൾ" #: data/ui/transit-options-panel.ui:124 msgid "Trams" msgstr "ട്രാമുകള്‍" #: data/ui/transit-options-panel.ui:131 msgid "Trains" msgstr "ട്രെയിനുകൾ" #: data/ui/transit-options-panel.ui:138 msgid "Subway" msgstr "സബ്‍വേ" #: data/ui/transit-options-panel.ui:145 msgid "Ferries" msgstr "ഫെറികള്‍" #: data/ui/user-location-bubble.ui:13 src/geoclue.js:118 msgid "Current location" msgstr "ഇപ്പോഴത്തെ സ്ഥാനം" #. To translators: %s can be "Unknown", "Exact" or "%f km²" #: data/ui/user-location-bubble.ui:28 msgid "Accuracy: %s" msgstr "കൃത്യത: %s" #: data/ui/zoom-in-dialog.ui:16 msgid "Zoom in to add location!" msgstr "സ്ഥാനം ചേര്‍ക്കാന്‍ വലുതാക്കുക" #: data/ui/zoom-in-dialog.ui:38 msgid "Zoom In" msgstr "വലുതാക്കുക" #: lib/maps-file-tile-source.c:303 lib/maps-file-tile-source.c:379 lib/maps-file-tile-source.c:459 msgid "Failed to find tile structure in directory" msgstr "" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "" #: lib/maps-osm.c:249 lib/maps-osm.c:402 msgid "Missing required attributes" msgstr "" #: lib/maps-osm.c:450 msgid "Could not find OSM element" msgstr "" #: src/application.js:95 msgid "A path to a local tiles directory structure" msgstr "" #: src/application.js:99 msgid "Show the version of the program" msgstr "പ്രോഗ്രാമിന്റെ പതിപ്പു് കാണിക്കുക" #: src/checkInDialog.js:167 msgid "Select an account" msgstr "ഒരു അക്കൗണ്ട് തിരഞ്ഞെടുക്കുക" #: src/checkInDialog.js:172 src/checkInDialog.js:244 msgid "Loading" msgstr "ലോഡ് ചെയ്യുന്നു" #: src/checkInDialog.js:196 msgid "Select a place" msgstr "ഒരു സ്ഥലം തിരഞ്ഞെടുക്കുക" #: src/checkInDialog.js:201 msgid "Maps cannot find the place to check in to with Facebook. Please select one from this list." msgstr "" #: src/checkInDialog.js:203 msgid "Maps cannot find the place to check in to with Foursquare. Please select one from this list." msgstr "" #. Translators: %s is the name of the place to check in. #. #: src/checkInDialog.js:218 #, javascript-format msgid "Check in to %s" msgstr "%s ലോട്ട് ചെക്കിന്‍ ചെയ്യുക" #. Translators: %s is the name of the place to check in. #. #: src/checkInDialog.js:228 #, javascript-format msgid "Write an optional message to check in to %s." msgstr "%s ലോട്ട് ചെക്കിന്‍ ചെയ്യാനുള്ള സന്ദേശം എഴുതുക (താല്‍പര്യമുണ്ടെങ്കില്‍)" #: src/checkInDialog.js:280 src/checkIn.js:162 src/osmEditDialog.js:549 msgid "An error has occurred" msgstr "ഒരു പിശക് സംഭവിച്ചു" #. Translators: %s is the place name that user wanted to check-in #: src/checkIn.js:144 #, javascript-format msgid "Cannot find “%s” in the social service" msgstr "" #: src/checkIn.js:146 msgid "Cannot find a suitable place to check-in in this location" msgstr "" #: src/checkIn.js:150 msgid "Credentials have expired, please open Online Accounts to sign in and enable this account" msgstr "" #: src/contextMenu.js:98 msgid "Route from here" msgstr "ഇവിടെ നിന്ന് പാത" #: src/contextMenu.js:100 msgid "Add destination" msgstr "ലക്ഷ്യസ്ഥാനം ചേർക്കുക" #: src/contextMenu.js:102 msgid "Route to here" msgstr "ഇങ്ങോട്ട് റൂട്ട് ചെയ്യുക" #: src/contextMenu.js:131 msgid "Nothing found here!" msgstr "ഇവിടെ ഒന്നും കണ്ടെത്തിയില്ല" #: src/contextMenu.js:192 msgid "" "Location was added to the map, note that it may take a while before it shows on the map and in " "search results." msgstr "" #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:82 #, javascript-format msgid "Maps at %f, %f.png" msgstr "" #: src/exportViewDialog.js:154 msgid "Filesystem is read only" msgstr "" #: src/exportViewDialog.js:156 msgid "You do not have permission to save there" msgstr "" #: src/exportViewDialog.js:158 msgid "The directory does not exist" msgstr "ഡയറക്ടറി നിലവിലില്ല" #: src/exportViewDialog.js:160 msgid "No filename specified" msgstr "ഫയൽ പേരൊന്നും തന്നില്ല" #: src/exportViewDialog.js:168 msgid "Unable to export view" msgstr "" #: src/geoJSONSource.js:98 msgid "invalid coordinate" msgstr "" #: src/geoJSONSource.js:147 src/geoJSONSource.js:187 src/geoJSONSource.js:202 msgid "parse error" msgstr "" #: src/geoJSONSource.js:181 msgid "unknown geometry" msgstr "" #: src/graphHopper.js:93 src/openTripPlanner.js:652 msgid "Route request failed." msgstr "റൂട്ട് അഭ്യർത്ഥന പരാജയപ്പെട്ടു." #: src/graphHopper.js:100 src/openTripPlanner.js:615 msgid "No route found." msgstr "ഒരു വഴിയും കണ്ടെത്തിയില്ല." #: src/graphHopper.js:188 msgid "Start!" msgstr "ആരംഭിക്കുക!" #: src/mainWindow.js:58 msgid "All Layer Files" msgstr "" #: src/mainWindow.js:436 msgid "Failed to connect to location service" msgstr "ലൊക്കേഷൻ സേവനവുമായി ബന്ധിപ്പിക്കുന്നത് പരാജയപ്പെട്ടു" #: src/mainWindow.js:501 msgid "translator-credits" msgstr "" "Syamlal Pullamballi \n" "Anish Sheela \n" "Suneesh T R " #: src/mainWindow.js:504 msgid "A map application for GNOME" msgstr "ഗ്നോമിനു വേണ്ടിയുള്ള ഒരു ഭൂപട പ്രയോഗം" #: src/mainWindow.js:515 msgid "Copyright © 2011 – 2017 Red Hat, Inc. and The GNOME Maps authors" msgstr "" #: src/mainWindow.js:534 #, javascript-format msgid "Map data by %s and contributors" msgstr "" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:550 #, javascript-format msgid "Map tiles provided by %s" msgstr "" #: src/mapView.js:358 msgid "File type is not supported" msgstr "ഫയൽ തരം പിന്തുണയ്ക്കുന്നില്ല" #: src/mapView.js:365 msgid "Failed to open layer" msgstr "ലെയർ തുറക്കുന്നതിൽ പരാജയപ്പെട്ടു" #: src/mapView.js:401 msgid "Failed to open GeoURI" msgstr "" #: src/openTripPlanner.js:648 msgid "No timetable data found for this route." msgstr "" #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:436 msgid "Incorrect user name or password" msgstr "തെറ്റായ ഉപയോക്തൃ നാമം അല്ലെങ്കിൽ പാസ്വേഡ്" #: src/osmConnection.js:438 msgid "Success" msgstr "കിട്ടി" #: src/osmConnection.js:440 msgid "Bad request" msgstr "മോശം അഭ്യർത്ഥന" #: src/osmConnection.js:442 msgid "Object not found" msgstr "" #: src/osmConnection.js:444 msgid "Conflict, someone else has just modified the object" msgstr "" #: src/osmConnection.js:446 msgid "Object has been deleted" msgstr "" #: src/osmConnection.js:448 msgid "Way or relation refers to non-existing children" msgstr "" #: src/osmEditDialog.js:105 msgid "Name" msgstr "പേര്" #: src/osmEditDialog.js:108 msgid "The official name. This is typically what appears on signs." msgstr "" #: src/osmEditDialog.js:111 msgid "Address" msgstr "വിലാസം" #: src/osmEditDialog.js:119 msgid "Website" msgstr "വെബ്സൈറ്റ്" #: src/osmEditDialog.js:122 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://example.com instead of " "http://example.com/index.html." msgstr "" #: src/osmEditDialog.js:127 msgid "Phone" msgstr "ഫോൺ" #: src/osmEditDialog.js:131 msgid "" "Phone number. Use the international format, starting with a + sign. Beware of local privacy laws, " "especially for private phone numbers." msgstr "" #: src/osmEditDialog.js:136 src/placeBubble.js:191 msgid "Wikipedia" msgstr "വിക്കിപീഡിയ" #: src/osmEditDialog.js:140 msgid "" "The format used should include the language code and the article title like “en:Article title”." msgstr "" #: src/osmEditDialog.js:144 msgid "Opening hours" msgstr "തുറക്കുന്ന സമയം" #: src/osmEditDialog.js:149 msgid "See the link in the label for help on format." msgstr "" #: src/osmEditDialog.js:152 msgid "Population" msgstr "ജനസംഖ്യ" #: src/osmEditDialog.js:157 msgid "Altitude" msgstr "ഉയരം" #: src/osmEditDialog.js:160 msgid "Elevation (height above sea level) of a point in metres." msgstr "" #: src/osmEditDialog.js:163 msgid "Wheelchair access" msgstr "വീല്‍ചെയര്‍ ലഭ്യത" #: src/osmEditDialog.js:166 src/osmEditDialog.js:175 src/osmEditDialog.js:213 msgid "Yes" msgstr "അതെ" #: src/osmEditDialog.js:167 src/osmEditDialog.js:176 src/osmEditDialog.js:214 msgid "No" msgstr "ഇല്ല" #: src/osmEditDialog.js:168 msgid "Limited" msgstr "പരിമിതപ്പെടുത്തിയിരിക്കുന്നു" #: src/osmEditDialog.js:169 msgid "Designated" msgstr "നിയുക്തനായി" #: src/osmEditDialog.js:172 msgid "Internet access" msgstr "ഇന്റെര്‍നെറ്റ് ലഭ്യത" #. Translators: #. * This means a WLAN Hotspot, also know as wireless, wifi or Wi-Fi. #. #: src/osmEditDialog.js:177 src/translations.js:340 msgid "Wi-Fi" msgstr "വൈ-ഫൈ " #: src/osmEditDialog.js:178 msgid "Wired" msgstr "വയര്‍" #: src/osmEditDialog.js:179 msgid "Terminal" msgstr "ടെര്‍മിനല്‍" #: src/osmEditDialog.js:180 msgid "Service" msgstr "സേവനം" #: src/osmEditDialog.js:183 msgid "Religion" msgstr "മതം" #: src/osmEditDialog.js:186 src/translations.js:363 msgid "Animism" msgstr "അനീമിസം" #: src/osmEditDialog.js:187 msgid "Bahá’í" msgstr "ബഹാ ഇ" #: src/osmEditDialog.js:188 src/translations.js:365 msgid "Buddhism" msgstr "ബുദ്ധമതം" #: src/osmEditDialog.js:189 src/translations.js:366 msgid "Caodaism" msgstr "കാവോഡായിസം" #: src/osmEditDialog.js:190 src/translations.js:367 msgid "Christianity" msgstr "ക്രിസ്തുമതം" #: src/osmEditDialog.js:191 src/translations.js:368 msgid "Confucianism" msgstr "" #: src/osmEditDialog.js:192 src/translations.js:369 msgid "Hinduism" msgstr "ഹിന്ദുമതം" #: src/osmEditDialog.js:193 src/translations.js:370 msgid "Jainism" msgstr "ജൈനമതം" #: src/osmEditDialog.js:194 src/translations.js:371 msgid "Judaism" msgstr "" #: src/osmEditDialog.js:195 src/translations.js:372 msgid "Islam" msgstr "ഇസ്ലാം" #: src/osmEditDialog.js:196 src/translations.js:373 msgid "Multiple Religions" msgstr "പല മതങ്ങള്‍" #: src/osmEditDialog.js:197 src/translations.js:374 msgid "Paganism" msgstr "" #: src/osmEditDialog.js:198 src/translations.js:375 msgid "Pastafarianism" msgstr "പാസ്തഫാരിയന്‍ മതം" #: src/osmEditDialog.js:199 src/translations.js:376 msgid "Scientology" msgstr "സൈന്റോളജി" #: src/osmEditDialog.js:200 src/translations.js:377 msgid "Shinto" msgstr "ഷിന്റോ" #: src/osmEditDialog.js:201 src/translations.js:378 msgid "Sikhism" msgstr "സിഖ് മതം" #: src/osmEditDialog.js:202 src/translations.js:379 msgid "Spiritualism" msgstr "" #: src/osmEditDialog.js:203 src/translations.js:380 msgid "Taoism" msgstr "താവോയിസം" #: src/osmEditDialog.js:204 src/translations.js:381 msgid "Unitarian Universalism" msgstr "" #: src/osmEditDialog.js:205 src/translations.js:382 msgid "Voodoo" msgstr "വൂഡു" #: src/osmEditDialog.js:206 src/translations.js:383 msgid "Yazidism" msgstr "" #: src/osmEditDialog.js:207 src/translations.js:384 msgid "Zoroastrianism" msgstr "" #: src/osmEditDialog.js:210 msgid "Toilets" msgstr "കക്കുസ്" #: src/osmEditDialog.js:217 msgid "Note" msgstr "കുറിപ്പ്" #: src/osmEditDialog.js:220 msgid "" "Information used to inform other mappers about non-obvious information about an element, the " "author’s intent when creating it, or hints for further improvement." msgstr "" #: src/osmEditDialog.js:325 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "OpenStreetMap ല്‍ ചേര്‍ക്കുക" #: src/osmEditDialog.js:379 msgid "Select Type" msgstr "തരം തെരഞ്ഞെടുക്കുക" #: src/osmEditDialog.js:496 msgid "Done" msgstr "ചെയ്തു" #: src/placeBubble.js:143 msgid "Population:" msgstr "ജനസംഖ്യ:" #: src/placeBubble.js:149 msgid "Altitude:" msgstr "ഉയരം:" #: src/placeBubble.js:154 msgid "Opening hours:" msgstr "തുറക്കുന്ന സമയം:" #: src/placeBubble.js:159 msgid "Internet access:" msgstr "ഇന്റെര്‍നെറ്റ് ലഭ്യത:" #: src/placeBubble.js:164 msgid "Religion:" msgstr "മതം:" #: src/placeBubble.js:169 msgid "Toilets:" msgstr "കക്കുസ്:" #: src/placeBubble.js:174 msgid "Wheelchair access:" msgstr "വീല്‍ചെയര്‍ ലഭ്യത:" #: src/placeBubble.js:180 src/placeBubble.js:184 msgid "Phone:" msgstr "ഫോൺ:" #: src/placeEntry.js:186 msgid "Failed to parse Geo URI" msgstr "" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/place.js:218 src/translations.js:329 src/translations.js:391 msgid "yes" msgstr "അതെ" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/place.js:225 msgid "limited" msgstr "പരിമിതപ്പെടുത്തിയിരിക്കുന്നു" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/place.js:231 src/translations.js:335 src/translations.js:392 msgid "no" msgstr "ഇല്ല" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/place.js:238 msgid "designated" msgstr "പ്രത്യേക" #: src/printLayout.js:240 #, javascript-format msgid "From %s to %s" msgstr "%s-ല്‍ നിന്നും %s-ലേക്ക്" #: src/printOperation.js:46 msgid "Loading map tiles for printing" msgstr "" #: src/printOperation.js:47 msgid "You can abort printing if this takes too long" msgstr "" #: src/printOperation.js:49 msgid "Abort printing" msgstr "" #. Translators: this is add via location tooltip #: src/routeEntry.js:74 msgid "Add via location" msgstr "" #. Translators: this is remove via location tooltip #: src/routeEntry.js:84 msgid "Remove via location" msgstr "" #. Translators: this is reverse route tooltip #: src/routeEntry.js:90 msgid "Reverse route" msgstr "റൂട്ട് മറിക്കുക" #: src/sendToDialog.js:175 msgid "Failed to open URI" msgstr "" #: src/shapeLayer.js:91 msgid "failed to load file" msgstr "" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:293 #, javascript-format msgid "Estimated time: %s" msgstr "" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transitArrivalRow.js:54 #, javascript-format msgid "Arrive at %s" msgstr "" #: src/transitArrivalRow.js:56 msgid "Arrive" msgstr "എത്തിച്ചേരേണ്ടത്" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transitLegRow.js:71 #, javascript-format msgid "Start at %s" msgstr "" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transitLegRow.js:77 msgid "Start" msgstr "പുറപ്പെടുക" #: src/transitLegRow.js:106 msgid "Show walking instructions" msgstr "നടക്കാനുള്ള വഴി കാണിക്കുക" #: src/transitLegRow.js:107 msgid "Hide walking instructions" msgstr "നടക്കാനുള്ള വഴി മറയ്ക്കുക" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transitLegRow.js:132 #, javascript-format msgid "Walk %s" msgstr "%s നടക്കുക" #: src/transitMoreRow.js:39 msgid "Load earlier alternatives" msgstr "" #: src/transitMoreRow.js:41 msgid "Load later alternatives" msgstr "" #: src/transitMoreRow.js:54 msgid "No earlier alternatives found." msgstr "" #: src/transitMoreRow.js:56 msgid "No later alternatives found." msgstr "" #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:141 msgctxt "month-day-date" msgid "%b %e" msgstr "" #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:254 #, javascript-format msgid "%s – %s" msgstr "" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:281 #, javascript-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "" msgstr[1] "" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:292 #, javascript-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "" msgstr[1] "" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:298 #, javascript-format msgid "%d:%02d hour" msgid_plural "%d:%02d hours" msgstr[0] "" msgstr[1] "" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:651 #, javascript-format msgid "%s–%s" msgstr "" #: src/translations.js:56 msgid "around the clock" msgstr "" #: src/translations.js:58 msgid "from sunrise to sunset" msgstr "സൂര്യോദയം മുതൽ സൂര്യാസ്തമനം വരെ" #. Translators: #. * This is a format string with two separate time ranges #. * such as "Mo-Fr 10:00-19:00 Sa 12:00-16:00" #. * The space between the format place holders could be #. * substituted with the appropriate separator. #. #: src/translations.js:77 #, javascript-format msgctxt "time range list" msgid "%s %s" msgstr "" #. Translators: #. * This is a format string with three separate time ranges #. * such as "Mo-Fr 10:00-19:00 Sa 10:00-17:00 Su 12:00-16:00" #. * The space between the format place holders could be #. * substituted with the appropriate separator. #. #: src/translations.js:89 #, javascript-format msgctxt "time range list" msgid "%s %s %s" msgstr "" #. Translators: #. * This is a format string consisting of a part specifying the days for #. * which the specified time is applied and the time interval #. * specification as the second argument. #. * The space between the format place holders could be substituted with #. * the appropriate separator or phrase and the ordering of the arguments #. * can be rearranged with the %n#s syntax. #: src/translations.js:120 #, javascript-format msgctxt "time range component" msgid "%s %s" msgstr "" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:152 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:166 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "" #: src/translations.js:185 msgid "every day" msgstr "എല്ലാ ദിവസവും" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:197 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "" #: src/translations.js:208 msgid "public holidays" msgstr "പൊതു അവധികൾ" #: src/translations.js:210 msgid "school holidays" msgstr "സ്കൂള്‍ അവധിക്കാലം" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:250 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "" #: src/translations.js:264 msgid "not open" msgstr "തുറന്നിട്ടില്ല" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:279 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/translations.js:345 msgid "wired" msgstr "വയര്‍" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/translations.js:350 msgid "terminal" msgstr "ടെര്‍മിനല്‍" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/translations.js:355 msgid "service" msgstr "സേവനം" #. Translators: Accuracy of user location information #: src/utils.js:226 msgid "Unknown" msgstr "അപരിചിതം" #. Translators: Accuracy of user location information #: src/utils.js:229 msgid "Exact" msgstr "അനുയോജ്യമായ" #: src/utils.js:287 #, javascript-format msgid "%f h" msgstr "" #: src/utils.js:289 #, javascript-format msgid "%f min" msgstr "" #: src/utils.js:291 #, javascript-format msgid "%f s" msgstr "" #. Translators: This is a distance measured in kilometers #: src/utils.js:302 #, javascript-format msgid "%s km" msgstr "" #. Translators: This is a distance measured in meters #: src/utils.js:305 #, javascript-format msgid "%s m" msgstr "" #. Translators: This is a distance measured in miles #: src/utils.js:313 #, javascript-format msgid "%s mi" msgstr "" #. Translators: This is a distance measured in feet #: src/utils.js:316 #, javascript-format msgid "%s ft" msgstr "" #~ msgid "Last known location and accuracy" #~ msgstr "അവസാനത്തെ സ്ഥാനവും കൃത്യതയും" #~ msgid "Last known location (latitude and longitude in degrees) and accuracy (in meters)." #~ msgstr "അവസാന അറിയുന്ന സ്ഥലവും (അക്ഷാംശവും രേഖാംശവും ഡിഗ്രിയില്‍) കൃത്യതയും (മീറ്ററില്‍)" #~ msgid "Description of last known location of user." #~ msgstr "ഉപയോക്താവിന്‍റെ അവസാന സ്ഥാനത്തിന്റെ വിവരണം." #~ msgid "Whether the last known location was set manually by the user." #~ msgstr "ഉപയോക്താവിന്റെ സ്ഥാനം ഉപയോക്താവ് നേരിട്ട് ചെയ്തതാണോ എന്ന്." #~ msgid "I’m here!" #~ msgstr "എന്റെ സ്ഥാനം" #~ msgid "Satellite" #~ msgstr "ഉപഗ്രഹം" #~ msgid " km²" #~ msgstr "കിമീ²" 070701000001D8000081A4000000000000000000000001664134090000C175000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/ms.po# Malay translation for gnome-maps. # Copyright (C) 2020 gnome-maps's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-maps package. # abuyop , 2020. # msgid "" msgstr "" "Project-Id-Version: gnome-maps master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2020-01-27 07:57+0000\n" "PO-Revision-Date: 2020-01-27 17:51+0800\n" "Language-Team: Pasukan Terjemahan GNOME Malaysia\n" "Language: ms\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" "Last-Translator: abuyop \n" "X-Generator: Poedit 2.0.6\n" #: data/org.gnome.Maps.appdata.xml.in:6 msgid "GNOME Maps" msgstr "Peta GNOME" #: data/org.gnome.Maps.appdata.xml.in:7 msgid "Find places around the world" msgstr "Cari tempat-tempat di sekitar dunia" #: data/org.gnome.Maps.appdata.xml.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "Peta memudahkan capaian pada peta di serata dunia. Ia membolehkan anda cari " "tempat yang dikehendaki dengan pantas iaitu menggelintar sebuah bandar atau " "jalan, atau ketahui lokasi untuk bertemu dengan rakan." #: data/org.gnome.Maps.appdata.xml.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "Peta menggunakan pangkalan data OpenStreetMap yang terhasil secara " "kolaboratif oleh beratus-ratus individu di serata dunia." #. Translators: Search is carried out on OpenStreetMap data using Nominatim. #. Visit http://wiki.openstreetmap.org/wiki/Nominatim/Special_Phrases and click #. your language to see what words you can use for the translated search. #: data/org.gnome.Maps.appdata.xml.in:22 msgid "" "You can even search for specific types of locations, such as “Pubs near Main " "Street, Boston” or “Hotels near Alexanderplatz, Berlin”." msgstr "" "Anda boleh menggelintar jenis-jenis lokasi secara khusus, seperti \"Pubs " "near Main Street, Boston” atau “Hotels near Alexanderplatz, Berlin”." #: data/org.gnome.Maps.appdata.xml.in:92 msgid "The GNOME Project" msgstr "Projek GNOME" #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.desktop.in:4 data/ui/main-window.ui:30 #: src/application.js:81 src/mainWindow.js:141 src/mainWindow.js:550 msgid "Maps" msgstr "Peta" #: data/org.gnome.Maps.desktop.in:5 msgid "A simple maps application" msgstr "Sebuah aplikasi peta yang ringkas" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in:14 msgid "Maps;" msgstr "Peta;" #: data/org.gnome.Maps.desktop.in:17 msgid "Allows your location to be shown on the map." msgstr "Membolehkan lokasi anda ditunjukkan di dalam peta." #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "lokasi dilihat terakhir" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "Koordinat lokasi dilihat kali terakhir." #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "zum" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "Aras zum" #: data/org.gnome.Maps.gschema.xml:21 msgid "Map type" msgstr "Jenis peta" #: data/org.gnome.Maps.gschema.xml:22 msgid "The type of map to display (street, aerial, etc.)" msgstr "Jenis peta yang dipaparkan (jalan, aerial, dll.)" #: data/org.gnome.Maps.gschema.xml:26 msgid "Window size" msgstr "Saiz tetingkap" #: data/org.gnome.Maps.gschema.xml:27 msgid "Window size (width and height)." msgstr "Saiz tetingkap (lebar dan tinggi)." #: data/org.gnome.Maps.gschema.xml:31 msgid "Window position" msgstr "Kedudukan tetingkap" #: data/org.gnome.Maps.gschema.xml:32 msgid "Window position (X and Y)." msgstr "Kedudukan tetingkap (X dan Y)." #: data/org.gnome.Maps.gschema.xml:36 msgid "Window maximized" msgstr "Tetingkap dimaksimumkan" #: data/org.gnome.Maps.gschema.xml:37 msgid "Window maximization state" msgstr "Keadaan tetingkap dimaksimumkan" #: data/org.gnome.Maps.gschema.xml:41 msgid "Maximum number of search results" msgstr "Bilangan maksimum keputusan gelintar" #: data/org.gnome.Maps.gschema.xml:42 msgid "Maximum number of search results from geocode search." msgstr "Bilangan maksimum keputusan gelintar melalui geocode search." #: data/org.gnome.Maps.gschema.xml:46 msgid "Number of recent places to store" msgstr "Bilang tempat baru-baru ini disimpan" #: data/org.gnome.Maps.gschema.xml:47 msgid "Number of recently visited places to store." msgstr "Bilangan tempat baru-baru ini dilawati untuk disimpan." #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent routes to store" msgstr "Bilangan laluan baru-baru ini untuk disimpan" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited routes to store." msgstr "Bilangan laluan baru-baru ini dilawati untuk disimpan." #: data/org.gnome.Maps.gschema.xml:56 msgid "Facebook check-in privacy setting" msgstr "Tetapan kerahsiaan daftar-masuk Facebook" #. Translators: EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS, and SELF are constant names, and should not be translated #: data/org.gnome.Maps.gschema.xml:58 msgid "" "Latest used Facebook check-in privacy setting. Possible values are: " "EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS or SELF." msgstr "" "Tetapan kerahsiaan daftar-masuk Facebook terakhir digunakan. Nilai yang " "mungkin adalah: EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS atau SELF." #: data/org.gnome.Maps.gschema.xml:62 msgid "Foursquare check-in privacy setting" msgstr "Tetapan kerahsiaan daftar-masuk Foursquare" #: data/org.gnome.Maps.gschema.xml:63 msgid "" "Latest used Foursquare check-in privacy setting. Possible values are: " "public, followers or private." msgstr "" "Tetapan kerahsiaan daftar-masuk Foursquare terakhir digunakan. Nilai yang " "mungkin adalah: public, followers atau private." #: data/org.gnome.Maps.gschema.xml:67 msgid "Foursquare check-in Facebook broadcasting" msgstr "Siaran Facebook daftar-masuk Foursquare" #: data/org.gnome.Maps.gschema.xml:68 msgid "" "Indicates if Foursquare should broadcast the check-in as a post in the " "Facebook account associated with the Foursquare account." msgstr "" "Menunjukkan jika Foursquare patut siarkan daftar-masuk sebagai satu hantaran " "di dalam akaun Facebook yang berkaitan dengan akaun Foursquare." #: data/org.gnome.Maps.gschema.xml:72 msgid "Foursquare check-in Twitter broadcasting" msgstr "Siaran Twitter daftar-masuk Foursquare" #: data/org.gnome.Maps.gschema.xml:73 msgid "" "Indicates if Foursquare should broadcast the check-in as a tweet in the " "Twitter account associated with the Foursquare account." msgstr "" "Menunjukkan jika Foursquare patut siarkan daftar-masuk sebagai satu hantaran " "di dalam akaun Twitter yang berkaitan dengan akaun Foursquare." #: data/org.gnome.Maps.gschema.xml:77 msgid "OpenStreetMap username or e-mail address" msgstr "Nama pengguna atau alamat e-mel OpenStreetMap" #: data/org.gnome.Maps.gschema.xml:78 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "" "Menunjukkan jika pengguna telah berdaftar masuk untuk menyunting data " "OpenstreetMap." #: data/org.gnome.Maps.gschema.xml:82 msgid "Last used transportation type for routing" msgstr "Jenis pengangkutan terakhir digunakan untuk perjalanan" #: data/ui/check-in-dialog.ui:250 data/ui/check-in-dialog.ui:299 msgid "Visibility" msgstr "Ketampakan" #: data/ui/check-in-dialog.ui:334 msgid "Post on Facebook" msgstr "Hantaran pada Facebook" #: data/ui/check-in-dialog.ui:348 msgid "Post on Twitter" msgstr "Hantaran pada Twitter" #: data/ui/check-in-dialog.ui:388 data/ui/export-view-dialog.ui:20 #: data/ui/send-to-dialog.ui:13 data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "_Batal" #. Translators: Check in is used as a verb #: data/ui/check-in-dialog.ui:399 data/ui/map-bubble.ui:93 msgid "C_heck in" msgstr "_Daftar masuk" #: data/ui/check-in-dialog.ui:427 msgid "Everyone" msgstr "Sesiapa Sahaja" #: data/ui/check-in-dialog.ui:431 msgid "Friends of friends" msgstr "Rakan rakan" #: data/ui/check-in-dialog.ui:435 msgid "Just friends" msgstr "Rakan sahaja" #: data/ui/check-in-dialog.ui:439 msgid "Just me" msgstr "Saya sahaja" #: data/ui/check-in-dialog.ui:453 msgid "Public" msgstr "Awam" #: data/ui/check-in-dialog.ui:457 msgid "Followers" msgstr "Pengikut" #: data/ui/check-in-dialog.ui:461 msgid "Private" msgstr "Persendirian" #: data/ui/context-menu.ui:9 msgid "What’s here?" msgstr "Apa ada di sini?" #: data/ui/context-menu.ui:16 msgid "Copy Location" msgstr "Salin Lokasi" #: data/ui/context-menu.ui:29 msgid "Add to OpenStreetMap" msgstr "Tambah ke OpenStreetMap" #: data/ui/export-view-dialog.ui:14 msgid "Export view" msgstr "Pandangan eksport" #: data/ui/export-view-dialog.ui:34 msgid "_Export" msgstr "_Eksport" #: data/ui/export-view-dialog.ui:126 msgid "Include route and markers" msgstr "Sertakan laluan dan penanda" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "General" msgstr "Am" #: data/ui/help-overlay.ui:18 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "Tunjuk Pintasan" #: data/ui/help-overlay.ui:25 msgctxt "shortcut window" msgid "Search" msgstr "Gelintar" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "Togol perancang laluan" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Print route" msgstr "Cetak laluan" #: data/ui/help-overlay.ui:46 msgctxt "shortcut window" msgid "Quit" msgstr "Keluar" #: data/ui/help-overlay.ui:55 msgctxt "shortcut window" msgid "Map View" msgstr "Pandangan Peta" #: data/ui/help-overlay.ui:59 msgctxt "shortcut window" msgid "Zoom in" msgstr "Zum masuk" #: data/ui/help-overlay.ui:66 msgctxt "shortcut window" msgid "Zoom out" msgstr "Zum keluar" #: data/ui/help-overlay.ui:73 msgctxt "shortcut window" msgid "Toggle scale" msgstr "Togol skala" #: data/ui/help-overlay.ui:80 msgctxt "shortcut window" msgid "Go to current location" msgstr "Pergi ke lokasi semasa" #: data/ui/help-overlay.ui:87 msgctxt "shortcut window" msgid "Switch to street view" msgstr "Beralih ke pandangan jalan" #: data/ui/help-overlay.ui:94 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "Beralih ke pandangan aerial" #: data/ui/help-overlay.ui:101 msgctxt "shortcut window" msgid "Open shape layer" msgstr "Buka lapisan bentuk" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:69 msgid "Open Shape Layer…" msgstr "Buka Lapisan Bentuk…" #: data/ui/location-service-dialog.ui:16 msgid "Turn on location services to find your location" msgstr "Hidupkan perkhidmatan lokasi untuk mencari lokasi anda" #: data/ui/location-service-dialog.ui:28 data/ui/osm-edit-dialog.ui:283 #: data/ui/zoom-in-dialog.ui:28 msgid "Cancel" msgstr "Batal" #: data/ui/location-service-dialog.ui:38 msgid "Location Settings" msgstr "Tetapan Lokasi" #: data/ui/main-window.ui:8 msgid "Set up OpenStreetMap Account" msgstr "Pasang Akaun OpenStreetMap" #: data/ui/main-window.ui:12 msgid "Export as Image" msgstr "Eksport sebagai Imej" #: data/ui/main-window.ui:17 msgid "_Keyboard Shortcuts" msgstr "Pintasan Papan _Kekunci" #: data/ui/main-window.ui:22 msgid "About Maps" msgstr "Perihal Peta" #. Translators: This is a tooltip #: data/ui/main-window.ui:45 msgid "Go to current location" msgstr "Pergi ke lokasi semasa" #. Translators: This is a tooltip #: data/ui/main-window.ui:66 msgid "Choose map type" msgstr "Pilih jenis peta" #. Translators: This is a tooltip #: data/ui/main-window.ui:91 msgid "Zoom out" msgstr "Zum keluar" #. Translators: This is a tooltip #: data/ui/main-window.ui:107 msgid "Zoom in" msgstr "Zum masuk" #. Translators: This is a tooltip #: data/ui/main-window.ui:146 msgid "Toggle route planner" msgstr "Togol perancang laluan" #. Translators: This is a tooltip #: data/ui/main-window.ui:167 msgid "Toggle favorites" msgstr "Togol kegemaran" #. Translators: This is a tooltip #: data/ui/main-window.ui:187 msgid "Print Route" msgstr "Cetak Laluan" #: data/ui/main-window.ui:250 msgid "Maps is offline!" msgstr "Peta di luar talian!" #: data/ui/main-window.ui:260 msgid "" "Maps need an active internet connection to function properly, but one can’t " "be found." msgstr "" "Peta perlukan satu sambungan internet aktif supaya dapat berfungsi dengan " "baik, tetapi tidak ditemui." #: data/ui/main-window.ui:269 msgid "Check your connection and proxy settings." msgstr "Periksa sambungan dan tetapan proksi anda." #. Translators: This is a tooltip #: data/ui/map-bubble.ui:45 msgid "Add to new route" msgstr "Tambah ke laluan baharu" #. Translators: This is a tooltip #: data/ui/map-bubble.ui:62 msgid "Share location" msgstr "Kongsi lokasi" #. Translators: This is a tooltip #: data/ui/map-bubble.ui:79 msgid "Mark as favorite" msgstr "Tanda sebagai kegemaran" #. Translators: This is a tooltip #: data/ui/map-bubble.ui:98 msgid "Check in here" msgstr "Daftar-masuk di sini" #: data/ui/osm-account-dialog.ui:9 msgid "OpenStreetMap Account" msgstr "Akaun OpenStreetMap" #: data/ui/osm-account-dialog.ui:22 msgid "Sign in to edit maps" msgstr "" "Daftar masuk untuk menyunting peta" #: data/ui/osm-account-dialog.ui:36 msgid "" "Help to improve the map, using an\n" "OpenStreetMap account." msgstr "" "Bantu menambah baik peta, menggunakan\n" "akaun OpenStreetMap." #: data/ui/osm-account-dialog.ui:56 msgid "Email" msgstr "E-mel" #: data/ui/osm-account-dialog.ui:81 msgid "Password" msgstr "Kata laluan" #: data/ui/osm-account-dialog.ui:125 msgid "Sign In" msgstr "Daftar Masuk" #: data/ui/osm-account-dialog.ui:146 msgid "Don’t have an account?" msgstr "Belum ada akaun?" #. The label should contain the link to the OSM reset password page with a translated title #: data/ui/osm-account-dialog.ui:159 msgid "" "Sorry, that didn’t work. Please try again, or visit\n" "OpenStreetMap to reset your password." msgstr "" "Maaf, tidak berjaya. Cuba sekali lagi, atau lawati\n" "OpenStreetMap untuk menetap semula kata laluan anda." #: data/ui/osm-account-dialog.ui:172 msgid "The verification code didn’t match, please try again." msgstr "Kod pengesahan tidak sepadan, cuba sekali lagi." #: data/ui/osm-account-dialog.ui:209 msgid "Enter verification code shown above" msgstr "Masukkan kod pengesahan yang ditunjukkan di bawah" #: data/ui/osm-account-dialog.ui:232 msgid "Verify" msgstr "Sahkan" #: data/ui/osm-account-dialog.ui:262 msgid "Signed In" msgstr "Berdaftar Masuk" #: data/ui/osm-account-dialog.ui:275 msgid "Your OpenStreetMap account is active." msgstr "Akaun OpenStreetMap anda masih aktif." #: data/ui/osm-account-dialog.ui:309 msgid "Sign Out" msgstr "Daftar Keluar" #: data/ui/osm-edit-address.ui:14 msgid "Street" msgstr "Jalan" #: data/ui/osm-edit-address.ui:26 msgid "House number" msgstr "Nombor rumah" #: data/ui/osm-edit-address.ui:38 msgid "Postal code" msgstr "Poskod" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:50 msgid "City" msgstr "Bandar" #: data/ui/osm-edit-dialog.ui:58 msgid "Type" msgstr "Jenis" #: data/ui/osm-edit-dialog.ui:84 msgid "None" msgstr "Tiada" #: data/ui/osm-edit-dialog.ui:129 msgid "Add Field" msgstr "Tambah Medan" #: data/ui/osm-edit-dialog.ui:163 msgid "Comment" msgstr "Ulasan" #: data/ui/osm-edit-dialog.ui:195 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "Perubahan peta akan kelihatan pada semua peta yang\n" "menggunakan data OpenStreetMap." #: data/ui/osm-edit-dialog.ui:241 msgid "Recently Used" msgstr "Digunakan Baru-Baru Ini" #: data/ui/osm-edit-dialog.ui:280 msgctxt "dialog title" msgid "Edit on OpenStreetMap" msgstr "Sunting di OpenStreetMap" #: data/ui/osm-edit-dialog.ui:310 src/osmEditDialog.js:512 msgid "Next" msgstr "Berikutnya" #. Translators: This is a tooltip #: data/ui/place-bubble.ui:49 msgid "Edit on OpenStreetMap" msgstr "Sunting di OpenStreetMap" #. Translators: This is a tooltip #: data/ui/place-bubble.ui:73 msgid "Show more information" msgstr "Tunjuk lagi maklumat" #: data/ui/place-popover.ui:54 msgid "No results found" msgstr "Tiad keputusan ditemui" #. Translators: This is a tooltip #: data/ui/route-entry.ui:20 msgid "Drag to change order of the route" msgstr "Seret untuk mengubah tertib laluan" #: data/ui/send-to-dialog.ui:10 msgid "Open Location" msgstr "Buka Lokasi" #: data/ui/send-to-dialog.ui:70 msgid "Copy" msgstr "Salin" #: data/ui/send-to-dialog.ui:76 msgid "Send To…" msgstr "Hantar Kepada…" #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:64 msgid "Open Shape Layer" msgstr "Buka Lapisan Bentuk" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "_Buka" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:19 msgid "Toggle visible" msgstr "Togol tampak" #: data/ui/sidebar.ui:275 msgid "Route search by GraphHopper" msgstr "Gelintar laluan oleh GraphHopper" #: data/ui/sidebar.ui:364 msgid "" "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of " "transportation,\n" "e.g. a national provider might not include airlines, and a local provider " "could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" "Itinerari laluan untuk pengangkutan awam disediakan oleh\n" "perkhidmatan pihak-ketiga.\n" "GNOME tidak memberi apa-apa jaminan ketepatan itinerari dan jadual yang " "ditunjukkan.\n" "Perhatian, sesetengah penyedia tidak menyertakan semua mod pengangkutan yang " "ada,\n" "iaitu penyedia kebangsaan mungkin tidak melibatkan kapal terbang, dan " "penyedia tempatan\n" "mungkin tidak melibatkan keretapi wilayah.\n" "Nama dan jenama yang ditunjukkan dianggap sebagai tanda dagangan berdaftar " "bila perlu." #: data/ui/social-place-more-results-row.ui:8 msgid "Show more results" msgstr "Tunjuk lagi keputusan" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:126 msgid "Hide intermediate stops and information" msgstr "Sembunyi hentian dan maklumat pertengahan" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:200 msgid "Show intermediate stops and information" msgstr "Tunjuk hentian dan maklumat pertengahan" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:18 msgid "Leave Now" msgstr "Pergi Sekarang" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:19 msgid "Leave By" msgstr "Pergi Pada" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:20 msgid "Arrive By" msgstr "Tiba Pada" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:106 msgid "Show" msgstr "Tunjuk" #: data/ui/transit-options-panel.ui:117 msgid "Buses" msgstr "Bas" #: data/ui/transit-options-panel.ui:124 msgid "Trams" msgstr "Tram" #: data/ui/transit-options-panel.ui:131 msgid "Trains" msgstr "Keretapi" #: data/ui/transit-options-panel.ui:138 msgid "Subway" msgstr "Subway" #: data/ui/transit-options-panel.ui:145 msgid "Ferries" msgstr "Feri" #: data/ui/transit-options-panel.ui:152 msgid "Airplanes" msgstr "Kapal Terbang" #: data/ui/user-location-bubble.ui:13 src/geoclue.js:118 msgid "Current location" msgstr "Lokasi semasa" #: data/ui/zoom-in-dialog.ui:16 msgid "Zoom in to add location!" msgstr "Zum masuk untuk menambah lokasi!" #: data/ui/zoom-in-dialog.ui:38 msgid "Zoom In" msgstr "Zoom Masuk" #: lib/maps-file-tile-source.c:303 lib/maps-file-tile-source.c:379 #: lib/maps-file-tile-source.c:459 msgid "Failed to find tile structure in directory" msgstr "Gagal mencari struktur jubin dalam direktori" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "Gagal menghurai dokumen XML" #: lib/maps-osm.c:249 lib/maps-osm.c:402 msgid "Missing required attributes" msgstr "Atribut diperlukan hilang" #: lib/maps-osm.c:450 msgid "Could not find OSM element" msgstr "Tidak dapat mencari unsur OSM" #: src/application.js:94 msgid "A path to a local tiles directory structure" msgstr "Satu laluan ke struktur direktori jubin setempat" #: src/application.js:98 msgid "Show the version of the program" msgstr "Tunjuk versi program" #: src/application.js:104 msgid "Ignore network availability" msgstr "Abai ketersediaan rangkaian" #: src/checkInDialog.js:167 msgid "Select an account" msgstr "Pilih satu akaun" #: src/checkInDialog.js:172 src/checkInDialog.js:244 msgid "Loading" msgstr "Memuatkan" #: src/checkInDialog.js:196 msgid "Select a place" msgstr "Pilih satu tempat" #: src/checkInDialog.js:201 msgid "" "Maps cannot find the place to check in to with Facebook. Please select one " "from this list." msgstr "" "Peta tidak dapat mencari tempat untuk mendaftar masuk dengan Facebook. Sila " "pilih salah satu menerusi senarai ini." #: src/checkInDialog.js:203 msgid "" "Maps cannot find the place to check in to with Foursquare. Please select one " "from this list." msgstr "" "Peta tidak dapat mencari tempat untuk mendaftar masuk dengan Foursquare. " "Sila pilih salah satu menerusi senarai ini." #. Translators: %s is the name of the place to check in. #. #: src/checkInDialog.js:218 #, javascript-format msgid "Check in to %s" msgstr "Daftar masuk pada %s" #. Translators: %s is the name of the place to check in. #. #: src/checkInDialog.js:228 #, javascript-format msgid "Write an optional message to check in to %s." msgstr "Tulis satu mesej pilihan untuk mendaftar masuk pada %s." #: src/checkInDialog.js:280 src/checkIn.js:162 src/osmEditDialog.js:549 msgid "An error has occurred" msgstr "Satu ralat telah berlaku" #. Translators: %s is the place name that user wanted to check-in #: src/checkIn.js:144 #, javascript-format msgid "Cannot find “%s” in the social service" msgstr "Tidak dapat mencari \"%s\" dalam perkhidmatan sosial" #: src/checkIn.js:146 msgid "Cannot find a suitable place to check-in in this location" msgstr "" "Tidak dapat mencari satu tempat yang sesuai untuk mendaftar masuk dalam " "lokasi ini" #: src/checkIn.js:150 msgid "" "Credentials have expired, please open Online Accounts to sign in and enable " "this account" msgstr "" "Kelayakan telah luput, sila buka Akaun Dalam Talian untuk mendaftar masuk " "dan membenarkan akaun ini" #: src/contextMenu.js:94 msgid "Route from here" msgstr "Laluan dari sini" #: src/contextMenu.js:96 msgid "Add destination" msgstr "Tambah destinasi" #: src/contextMenu.js:98 msgid "Route to here" msgstr "Laluan ke sini" #: src/contextMenu.js:124 msgid "Nothing found here!" msgstr "Tiada apa-apa ditemui di sini!" #: src/contextMenu.js:185 msgid "" "Location was added to the map, note that it may take a while before it shows " "on the map and in search results." msgstr "" "Lokasi telah ditambah ke dalam peta, perhatian ia mungkin mengambil masa " "sebelum dapat ditunjukkan pada peta dan dalam keputusan gelintar." #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:82 #, javascript-format msgid "Maps at %f, %f.png" msgstr "Peta pada %f, %f.png" #: src/exportViewDialog.js:154 msgid "Filesystem is read only" msgstr "Sistem fail adalah baca sahaja" #: src/exportViewDialog.js:156 msgid "You do not have permission to save there" msgstr "Anda tidak mempunyai keizinan menyimpan di sana" #: src/exportViewDialog.js:158 msgid "The directory does not exist" msgstr "Direktori tidak wujud" #: src/exportViewDialog.js:160 msgid "No filename specified" msgstr "Tiada nama fail dinyatakan" #: src/exportViewDialog.js:168 msgid "Unable to export view" msgstr "Tidak boleh mengeksport pandangan" #: src/geoJSONSource.js:97 msgid "invalid coordinate" msgstr "koordinat tidak sah" #: src/geoJSONSource.js:146 src/geoJSONSource.js:186 src/geoJSONSource.js:201 msgid "parse error" msgstr "ralat hurai" #: src/geoJSONSource.js:180 msgid "unknown geometry" msgstr "geometri tidak diketahui" #: src/graphHopper.js:112 src/transitPlan.js:192 msgid "Route request failed." msgstr "Permintaan laluan gagal." #: src/graphHopper.js:119 src/transitPlan.js:184 msgid "No route found." msgstr "Tiada laluan ditemui." #: src/graphHopper.js:207 src/transitplugins/openTripPlanner.js:1100 msgid "Start!" msgstr "Mula!" #: src/mainWindow.js:61 msgid "All Layer Files" msgstr "Semua Fail Lapisan" #: src/mainWindow.js:451 msgid "Failed to connect to location service" msgstr "Gagal menyambung dengan perkhidmatan lokasi" #: src/mainWindow.js:548 msgid "translator-credits" msgstr "" "abuyop\n" "CL TAN https://launchpad.net/~tcl111985\n" "Khairul Aizat Kamarudzzaman https://launchpad.net/~fenris\n" "Launchpad Translations Administrators https://launchpad.net/~rosetta\n" "ahmad akmal bin mohd idris https://launchpad.net/~mamahopsk87\n" "dequan https://launchpad.net/~dequan" #: src/mainWindow.js:551 msgid "A map application for GNOME" msgstr "Sebuah aplikasi peta untuk GNOME" #: src/mainWindow.js:562 msgid "Copyright © 2011 – 2019 Red Hat, Inc. and The GNOME Maps authors" msgstr "Hak cipta © 2011 – 2019 Red Hat, Inc. dan para pengarang Peta GNOME" #: src/mainWindow.js:582 #, javascript-format msgid "Map data by %s and contributors" msgstr "Data peta oleh %s dan para penyumbang" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:598 #, javascript-format msgid "Map tiles provided by %s" msgstr "Jubin peta disediakan oleh %s" #. Translators: this is an attribution string giving credit to the #. * search provider where the first %s placeholder is replaced by either #. * the bare name of the geocoder provider, or a linkified URL if one #. * is available, and the second %s placeholder is replaced by the #. * URL to the geocoder project page. These placeholders #. * can be swapped, if needed using the %n$s positional syntax #. * (i.e. "%2$s ... %1$s ..." for positioning the project URL #. * before the provider). #. #: src/mainWindow.js:627 #, javascript-format msgid "Search provided by %s using %s" msgstr "Gelintar disediakan oleh %s menggunakan %s" #: src/mapView.js:375 msgid "File type is not supported" msgstr "Jenis fail tidak disokong" #: src/mapView.js:382 msgid "Failed to open layer" msgstr "Gagal membuka lapisan" #: src/mapView.js:418 msgid "Failed to open GeoURI" msgstr "Gagal membuka GeoURI" #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:436 msgid "Incorrect user name or password" msgstr "Nama pengguna atau kata laluan salah" #: src/osmConnection.js:438 msgid "Success" msgstr "Berjaya" #: src/osmConnection.js:440 msgid "Bad request" msgstr "Permintaan tidak elok" #: src/osmConnection.js:442 msgid "Object not found" msgstr "Objek tidak ditemui" #: src/osmConnection.js:444 msgid "Conflict, someone else has just modified the object" msgstr "Konflik, ada orang lain baru sahaja mengubah suai objek" #: src/osmConnection.js:446 msgid "Object has been deleted" msgstr "Objek telah dipadamkan" #: src/osmConnection.js:448 msgid "Way or relation refers to non-existing children" msgstr "Tuju atau hubungan merujuk pada anak yang tidak wujud" #: src/osmEditDialog.js:105 msgid "Name" msgstr "Nama" #: src/osmEditDialog.js:108 msgid "The official name. This is typically what appears on signs." msgstr "Nama rasmi. Ia biasanya muncul ketika daftar." #: src/osmEditDialog.js:111 msgid "Address" msgstr "Alamat" #: src/osmEditDialog.js:119 msgid "Website" msgstr "Tapak Sesawang" #: src/osmEditDialog.js:122 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" "Tapak sesawang rasmi. Cuba guna bentuk URL paling asas iaitu http://example." "com selain dari http://example.com/index.html." #: src/osmEditDialog.js:127 msgid "Phone" msgstr "Telefon" #: src/osmEditDialog.js:131 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" "Nombor telefon. Guna format antarabangsa, bermula dengan tanda +. Hati-hati " "dengan undang-undang kerahsiaan setempat, terutamanya nombor telefon " "persendirian." #: src/osmEditDialog.js:136 src/placeBubble.js:191 msgid "Wikipedia" msgstr "Wikipedia" #: src/osmEditDialog.js:140 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "" "Format yang digunakan patut sertakan kod bahasa dan tajuk artikel seperti " "“en:Article title”." #: src/osmEditDialog.js:144 msgid "Opening hours" msgstr "Jam buka" #: src/osmEditDialog.js:149 msgid "See the link in the label for help on format." msgstr "Lihat pautan dalam label untuk bantuan berkenaan format." #: src/osmEditDialog.js:152 msgid "Population" msgstr "Populasi" #: src/osmEditDialog.js:157 msgid "Altitude" msgstr "Altitud" #: src/osmEditDialog.js:160 msgid "Elevation (height above sea level) of a point in metres." msgstr "Ketinggian (tinggi di atas aras laut) sesuatu titik dalam meter." #: src/osmEditDialog.js:163 msgid "Wheelchair access" msgstr "Capaian kerusi roda" #: src/osmEditDialog.js:166 src/osmEditDialog.js:175 src/osmEditDialog.js:213 msgid "Yes" msgstr "Ya" #: src/osmEditDialog.js:167 src/osmEditDialog.js:176 src/osmEditDialog.js:214 msgid "No" msgstr "Tidak" #: src/osmEditDialog.js:168 msgid "Limited" msgstr "Terhad" #: src/osmEditDialog.js:169 msgid "Designated" msgstr "Dikhususkan" #: src/osmEditDialog.js:172 msgid "Internet access" msgstr "Capaian internet" #. Translators: #. * This means a WLAN Hotspot, also know as wireless, wifi or Wi-Fi. #. #: src/osmEditDialog.js:177 src/translations.js:340 msgid "Wi-Fi" msgstr "Wi-Fi" #: src/osmEditDialog.js:178 msgid "Wired" msgstr "Berwayar" #: src/osmEditDialog.js:179 msgid "Terminal" msgstr "Terminal" #: src/osmEditDialog.js:180 msgid "Service" msgstr "Perkhidmatan" #: src/osmEditDialog.js:183 msgid "Religion" msgstr "Agama" #: src/osmEditDialog.js:186 src/translations.js:363 msgid "Animism" msgstr "Animisme" #: src/osmEditDialog.js:187 msgid "Bahá’í" msgstr "Bahá’í" #: src/osmEditDialog.js:188 src/translations.js:365 msgid "Buddhism" msgstr "Budha" #: src/osmEditDialog.js:189 src/translations.js:366 msgid "Caodaism" msgstr "Taodaisme" #: src/osmEditDialog.js:190 src/translations.js:367 msgid "Christianity" msgstr "Kristian" #: src/osmEditDialog.js:191 src/translations.js:368 msgid "Confucianism" msgstr "Konfucianisme" #: src/osmEditDialog.js:192 src/translations.js:369 msgid "Hinduism" msgstr "Hindu" #: src/osmEditDialog.js:193 src/translations.js:370 msgid "Jainism" msgstr "Jainisme" #: src/osmEditDialog.js:194 src/translations.js:371 msgid "Judaism" msgstr "Judaisme" #: src/osmEditDialog.js:195 src/translations.js:372 msgid "Islam" msgstr "Islam" #: src/osmEditDialog.js:196 src/translations.js:373 msgid "Multiple Religions" msgstr "Agama Berbilang" #: src/osmEditDialog.js:197 src/translations.js:374 msgid "Paganism" msgstr "Paganisme" #: src/osmEditDialog.js:198 src/translations.js:375 msgid "Pastafarianism" msgstr "Pastafarianisme" #: src/osmEditDialog.js:199 src/translations.js:376 msgid "Scientology" msgstr "Scientologi" #: src/osmEditDialog.js:200 src/translations.js:377 msgid "Shinto" msgstr "Shinto" #: src/osmEditDialog.js:201 src/translations.js:378 msgid "Sikhism" msgstr "Sikhisme" #: src/osmEditDialog.js:202 src/translations.js:379 msgid "Spiritualism" msgstr "Spiritualisme" #: src/osmEditDialog.js:203 src/translations.js:380 msgid "Taoism" msgstr "Taoisme" #: src/osmEditDialog.js:204 src/translations.js:381 msgid "Unitarian Universalism" msgstr "Unitarian Universalisme" #: src/osmEditDialog.js:205 src/translations.js:382 msgid "Voodoo" msgstr "Voodoo" #: src/osmEditDialog.js:206 src/translations.js:383 msgid "Yazidism" msgstr "Yazidisme" #: src/osmEditDialog.js:207 src/translations.js:384 msgid "Zoroastrianism" msgstr "Zoroastrianisme" #: src/osmEditDialog.js:210 msgid "Toilets" msgstr "Tandas" #: src/osmEditDialog.js:217 msgid "Note" msgstr "Nota" #: src/osmEditDialog.js:220 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" "Maklumat yang digunakan untuk maklumkan pemeta lain berkenaan maklumat tidak " "jelas berkenaan sesebuah unsur, niat pengarang ketika menciptanya, atau " "pembayang untuk penambahbaikan lanjutan." #: src/osmEditDialog.js:325 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "Tambah ke OpenStreetMap" #: src/osmEditDialog.js:379 msgid "Select Type" msgstr "Pilih Jenis" #: src/osmEditDialog.js:496 msgid "Done" msgstr "Selesai" #: src/photonParser.js:103 msgid "Unnamed place" msgstr "Tempat tanpa nama" #: src/placeBubble.js:143 msgid "Population:" msgstr "Populasi:" #: src/placeBubble.js:149 msgid "Altitude:" msgstr "Altitud:" #: src/placeBubble.js:154 msgid "Opening hours:" msgstr "Jam buka:" #: src/placeBubble.js:159 msgid "Internet access:" msgstr "Capaian internet:" #: src/placeBubble.js:164 msgid "Religion:" msgstr "Agama:" #: src/placeBubble.js:169 msgid "Toilets:" msgstr "Tandas:" #: src/placeBubble.js:174 msgid "Wheelchair access:" msgstr "Capaian kerusi roda:" #: src/placeBubble.js:180 src/placeBubble.js:184 msgid "Phone:" msgstr "Telefon:" #: src/placeEntry.js:209 msgid "Failed to parse Geo URI" msgstr "Gagal menghurai URI Geo" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/place.js:268 src/translations.js:329 src/translations.js:391 msgid "yes" msgstr "ya" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/place.js:275 msgid "limited" msgstr "terhad" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/place.js:281 src/translations.js:335 src/translations.js:392 msgid "no" msgstr "tidak" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/place.js:288 msgid "designated" msgstr "dikhususkan" #: src/place.js:475 msgid "Place not found in OpenStreetMap" msgstr "Tempat tidak ditemui dalam OpenStreetMap" #: src/place.js:495 msgid "OpenStreetMap URL is not valid" msgstr "URL OpenStreetMap tidak sah" #: src/place.js:500 msgid "Coordinates in URL are not valid" msgstr "Koordinat dalam URL tidak sah" #: src/place.js:521 msgid "URL is not supported" msgstr "URL tidak disokong" #: src/printLayout.js:312 #, javascript-format msgid "From %s to %s" msgstr "Dari %s hingga %s" #: src/printOperation.js:46 msgid "Loading map tiles for printing" msgstr "Memuatkan jubin-jubin peta untuk percetakan" #: src/printOperation.js:47 msgid "You can abort printing if this takes too long" msgstr "" "Anda boleh menghenti paksi percetakan jika ia mengambil masa terlalu lama" #: src/printOperation.js:49 msgid "Abort printing" msgstr "Henti paksa percetakan" #. Translators: this is add via location tooltip #: src/routeEntry.js:74 msgid "Add via location" msgstr "Tambah melalui lokasi" #. Translators: this is remove via location tooltip #: src/routeEntry.js:84 msgid "Remove via location" msgstr "Buang melalui lokasi" #. Translators: this is reverse route tooltip #: src/routeEntry.js:90 msgid "Reverse route" msgstr "Songsangkan laluan" #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:104 #, javascript-format msgid "Add %s to %s" msgstr "Tambah %s ke %s" #: src/sendToDialog.js:202 msgid "Failed to open URI" msgstr "Gagal membuka URI" #: src/sendToDialog.js:259 #, javascript-format msgid "Open with %s" msgstr "Buka dengan %s" #: src/shapeLayer.js:91 msgid "failed to load file" msgstr "gagal memuatkan fail" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:296 #, javascript-format msgid "Estimated time: %s" msgstr "Masa anggaran: %s" #: src/sidebar.js:352 #, javascript-format msgid "Itineraries provided by %s" msgstr "Itinerari disediakan oleh %s" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:37 #, javascript-format msgid "Start at %s" msgstr "Mula pada %s" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:43 msgid "Start" msgstr "Mula" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:61 #, javascript-format msgid "Walk %s" msgstr "Berjalan %s" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:75 #, javascript-format msgid "Arrive at %s" msgstr "Tiba pada %s" #: src/transit.js:77 src/transitplugins/openTripPlanner.js:1113 msgid "Arrive" msgstr "Tiba" #: src/transitLegRow.js:88 msgid "Show walking instructions" msgstr "Tunjuk arahan berjalan" #: src/transitLegRow.js:89 msgid "Hide walking instructions" msgstr "Sembunyi arahan berjalan" #: src/transitMoreRow.js:39 msgid "Load earlier alternatives" msgstr "Muat alternatif lebih awal" #: src/transitMoreRow.js:41 msgid "Load later alternatives" msgstr "Muat alternatif terkemudian" #: src/transitMoreRow.js:54 msgid "No earlier alternatives found." msgstr "Tiada alternatif lebih awal ditemui." #: src/transitMoreRow.js:56 msgid "No later alternatives found." msgstr "Tiada alternatif terkemudian ditemui." #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:143 msgctxt "month-day-date" msgid "%b %e" msgstr "%e %b" #: src/transitPlan.js:188 msgid "No timetable data found for this route." msgstr "Tiada data jadual waktu ditemui untuk laluan ini." #: src/transitPlan.js:196 msgid "No provider found for this route." msgstr "Tiada penyedia ditemui untuk laluan ini." #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:313 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:340 #, javascript-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "%d minit" msgstr[1] "%d minit" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:351 #, javascript-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "%d jam" msgstr[1] "%d jam" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:357 #, javascript-format msgid "%d:%02d hour" msgid_plural "%d:%02d hours" msgstr[0] "%d:%02d jam" msgstr[1] "%d:%02d jam" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:750 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: src/translations.js:56 msgid "around the clock" msgstr "dalam tempoh" #: src/translations.js:58 msgid "from sunrise to sunset" msgstr "dari matahari terbit hingga matahari terbenam" #. Translators: #. * This is a format string with two separate time ranges #. * such as "Mo-Fr 10:00-19:00 Sa 12:00-16:00" #. * The space between the format place holders could be #. * substituted with the appropriate separator. #. #: src/translations.js:77 #, javascript-format msgctxt "time range list" msgid "%s %s" msgstr "%s %s" #. Translators: #. * This is a format string with three separate time ranges #. * such as "Mo-Fr 10:00-19:00 Sa 10:00-17:00 Su 12:00-16:00" #. * The space between the format place holders could be #. * substituted with the appropriate separator. #. #: src/translations.js:89 #, javascript-format msgctxt "time range list" msgid "%s %s %s" msgstr "%s %s %s" #. Translators: #. * This is a format string consisting of a part specifying the days for #. * which the specified time is applied and the time interval #. * specification as the second argument. #. * The space between the format place holders could be substituted with #. * the appropriate separator or phrase and the ordering of the arguments #. * can be rearranged with the %n#s syntax. #: src/translations.js:120 #, javascript-format msgctxt "time range component" msgid "%s %s" msgstr "%s %s" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:152 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s,%s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:166 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s,%s,%s" #: src/translations.js:185 msgid "every day" msgstr "setiap hari" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:197 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:208 msgid "public holidays" msgstr "cuti umum" #: src/translations.js:210 msgid "school holidays" msgstr "cuti sekolah" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:250 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: src/translations.js:264 msgid "not open" msgstr "tidak buka" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:279 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s-%s" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/translations.js:345 msgid "wired" msgstr "berwayar" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/translations.js:350 msgid "terminal" msgstr "terminal" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/translations.js:355 msgid "service" msgstr "perkhidmatan" #. Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) #: src/userLocationBubble.js:56 #, javascript-format msgid "Accuracy: %s" msgstr "Ketepatan: %s" #. Translators: Accuracy of user location information #: src/utils.js:229 msgid "Unknown" msgstr "Tidak diketahui" #. Translators: Accuracy of user location information #: src/utils.js:232 msgid "Exact" msgstr "Tepat" #: src/utils.js:290 #, javascript-format msgid "%f h" msgstr "%f j" #: src/utils.js:292 #, javascript-format msgid "%f min" msgstr "%f min" #: src/utils.js:294 #, javascript-format msgid "%f s" msgstr "%f s" #. Translators: This is a distance measured in kilometers #: src/utils.js:305 #, javascript-format msgid "%s km" msgstr "%s km" #. Translators: This is a distance measured in meters #: src/utils.js:308 #, javascript-format msgid "%s m" msgstr "%s m" #. Translators: This is a distance measured in miles #: src/utils.js:316 #, javascript-format msgid "%s mi" msgstr "%s mi" #. Translators: This is a distance measured in feet #: src/utils.js:319 #, javascript-format msgid "%s ft" msgstr "%s kaki" #: src/transitplugins/openTripPlanner.js:1174 #, javascript-format msgid "Continue on %s" msgstr "Teruskan pada %s" #: src/transitplugins/openTripPlanner.js:1176 msgid "Continue" msgstr "Teruskan" #: src/transitplugins/openTripPlanner.js:1179 #, javascript-format msgid "Turn left on %s" msgstr "Belok kiri pada %s" #: src/transitplugins/openTripPlanner.js:1181 msgid "Turn left" msgstr "Belok kiri" #: src/transitplugins/openTripPlanner.js:1184 #, javascript-format msgid "Turn slightly left on %s" msgstr "Belok sedikit kiri pada %s" #: src/transitplugins/openTripPlanner.js:1186 msgid "Turn slightly left" msgstr "Belok sedikit kiri" #: src/transitplugins/openTripPlanner.js:1189 #, javascript-format msgid "Turn sharp left on %s" msgstr "Belok tajam kiri pada %s" #: src/transitplugins/openTripPlanner.js:1191 msgid "Turn sharp left" msgstr "Belok tajam kiri" #: src/transitplugins/openTripPlanner.js:1194 #, javascript-format msgid "Turn right on %s" msgstr "Belok kanan pada %s" #: src/transitplugins/openTripPlanner.js:1196 msgid "Turn right" msgstr "Belok kanan" #: src/transitplugins/openTripPlanner.js:1199 #, javascript-format msgid "Turn slightly right on %s" msgstr "Belok sedikit kanan pada %s" #: src/transitplugins/openTripPlanner.js:1201 msgid "Turn slightly right" msgstr "Belok sedikit kanan" #: src/transitplugins/openTripPlanner.js:1204 #, javascript-format msgid "Turn sharp right on %s" msgstr "Belok tajam kanan pada %s" #: src/transitplugins/openTripPlanner.js:1206 msgid "Turn sharp right" msgstr "Belok tajam kanan" #: src/transitplugins/openTripPlanner.js:1212 #, javascript-format msgid "In the roundabout, take exit %s" msgstr "Dalam bulatan, ambil susur keluar %s" #: src/transitplugins/openTripPlanner.js:1214 #, javascript-format msgid "In the roundabout, take exit to %s" msgstr "Dalam bulatan, ambil susur keluar ke %s" #: src/transitplugins/openTripPlanner.js:1216 msgid "Take the roundabout" msgstr "Masuk bulatan" #: src/transitplugins/openTripPlanner.js:1220 #, javascript-format msgid "Take the elevator and get off at %s" msgstr "Masuk lif dan keluar pada %s" #: src/transitplugins/openTripPlanner.js:1222 msgid "Take the elevator" msgstr "Masuk lif" #: src/transitplugins/openTripPlanner.js:1226 #, javascript-format msgid "Make a left u-turn onto %s" msgstr "Buat satu pusingan-u ke %s" #: src/transitplugins/openTripPlanner.js:1228 msgid "Make a left u-turn" msgstr "Buat satu pusingan-u" #: src/transitplugins/openTripPlanner.js:1231 #, javascript-format msgid "Make a right u-turn onto %s" msgstr "Buat satu pusingan-u kanan ke %s" #: src/transitplugins/openTripPlanner.js:1233 msgid "Make a right u-turn" msgstr "Buat satu pusingan-u kanan" 070701000001D9000081A4000000000000000000000001664134090000C94B000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/nb.po# Norwegian bokmål translation of gnome-maps. # Copyright (C) 2013 THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # Kjartan Maraas , 2013-2022. # Åka Sikrom , 2014. # haarek , 2015. # msgid "" msgstr "" "Project-Id-Version: gnome-maps 4.2\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2022-03-03 21:16+0000\n" "PO-Revision-Date: 2022-03-15 13:46+0100\n" "Last-Translator: Kjartan Maraas \n" "Language-Team: Norwegian bokmål \n" "Language: nb\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 1.8.5\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.appdata.xml.in.in:6 data/org.gnome.Maps.desktop.in.in:4 #: data/ui/main-window.ui:30 src/application.js:96 src/mainWindow.js:139 #: src/mainWindow.js:599 msgid "Maps" msgstr "Kart" #: data/org.gnome.Maps.appdata.xml.in.in:7 msgid "Find places around the world" msgstr "Se på steder over hele verden" #: data/org.gnome.Maps.appdata.xml.in.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "Kart gir deg rask tilgang til kart for hele verden. Det lar deg raskt finne " "stedet du leter etter ved å søke etter en by eller en gate, eller finne et " "sted å møte en venn." #: data/org.gnome.Maps.appdata.xml.in.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "Kart bruker OpenStreetMap-databasen som er laget av hundretusener av " "mennesker fra hele verden." #: data/org.gnome.Maps.appdata.xml.in.in:245 msgid "The GNOME Project" msgstr "GNOME prosjektet" #: data/org.gnome.Maps.desktop.in.in:5 msgid "A simple maps application" msgstr "Et enkelt kartprogram" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in.in:14 msgid "Maps;" msgstr "Kart;" #: data/org.gnome.Maps.desktop.in.in:17 msgid "Allows your location to be shown on the map." msgstr "Lar lokasjonen din vises på kartet." #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "sist viste posisjon" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "Koordinater for sist viste posisjon." #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "zoom" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "Zoom-nivå" #: data/org.gnome.Maps.gschema.xml:21 msgid "Map type" msgstr "Type kart" #: data/org.gnome.Maps.gschema.xml:22 msgid "The type of map to display (street, aerial, etc.)" msgstr "Type kart som skal vises (gate, fly osv.)" #: data/org.gnome.Maps.gschema.xml:26 msgid "Window size" msgstr "Vindustørrelse" #: data/org.gnome.Maps.gschema.xml:27 msgid "Window size (width and height)." msgstr "Vindustørrelse (bredde og høyde)." #: data/org.gnome.Maps.gschema.xml:31 msgid "Window position" msgstr "Vinduposisjon" #: data/org.gnome.Maps.gschema.xml:32 msgid "Window position (X and Y)." msgstr "Vinduposisjon (x og y)." #: data/org.gnome.Maps.gschema.xml:36 msgid "Window maximized" msgstr "Vindu maksimert" #: data/org.gnome.Maps.gschema.xml:37 msgid "Window maximization state" msgstr "Tilstand for maksimering av vindu" #: data/org.gnome.Maps.gschema.xml:41 msgid "Maximum number of search results" msgstr "Maksimalt antall søkeresultater" #: data/org.gnome.Maps.gschema.xml:42 msgid "Maximum number of search results from geocode search." msgstr "Maksimalt antall søkeresultater fra geokode-søk." #: data/org.gnome.Maps.gschema.xml:46 msgid "Number of recent places to store" msgstr "Antall nylige steder å lagre" #: data/org.gnome.Maps.gschema.xml:47 msgid "Number of recently visited places to store." msgstr "Antall nylig besøkte steder som skal lagres." #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent routes to store" msgstr "Antall nylige ruter å lagre" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited routes to store." msgstr "Antall nylig besøkte ruter som skal lagres." #: data/org.gnome.Maps.gschema.xml:56 msgid "Foursquare check-in privacy setting" msgstr "Personvern-innstilling for Foursquare-innsjekk" #: data/org.gnome.Maps.gschema.xml:57 msgid "" "Latest used Foursquare check-in privacy setting. Possible values are: " "public, followers or private." msgstr "" "Sist brukt personvern-innstilling for Foursquare-innsjekk. Følgende verdier " "er gyldige: «public», «followers» og «private»." #: data/org.gnome.Maps.gschema.xml:61 msgid "Foursquare check-in Facebook broadcasting" msgstr "Facebook-publisering av Foursquare-innsjekk" #: data/org.gnome.Maps.gschema.xml:62 msgid "" "Indicates if Foursquare should broadcast the check-in as a post in the " "Facebook account associated with the Foursquare account." msgstr "" "Bestemmer om Foursquare skal publisere innsjekk som innlegg på Facebook-" "kontoen som er koblet med aktuell Foursquare-konto." #: data/org.gnome.Maps.gschema.xml:66 msgid "Foursquare check-in Twitter broadcasting" msgstr "Twitter-publisering av Foursquare-innsjekk" #: data/org.gnome.Maps.gschema.xml:67 msgid "" "Indicates if Foursquare should broadcast the check-in as a tweet in the " "Twitter account associated with the Foursquare account." msgstr "" "Bestemmer om Foursquare skal publisere innsjekk som innlegg på Twitter-" "kontoen som er koblet med aktuell Foursquare-konto." #: data/org.gnome.Maps.gschema.xml:71 msgid "OpenStreetMap username or e-mail address" msgstr "Brukernavn eller e-postadresse for OpenStreetMap" #: data/org.gnome.Maps.gschema.xml:72 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "Indikerer om bruker har logget inn for å redigere OpenStreeMap data." #: data/org.gnome.Maps.gschema.xml:76 msgid "Last used transportation type for routing" msgstr "Sist brukte transporttype for ruting" #: data/org.gnome.Maps.gschema.xml:80 msgid "Use hybrid aerial tiles" msgstr "" #: data/org.gnome.Maps.gschema.xml:81 msgid "Whether aerial tiles should use hybrid style (with labels)." msgstr "" #: data/org.gnome.Maps.gschema.xml:85 msgid "Show scale" msgstr "Vis skalering" #: data/org.gnome.Maps.gschema.xml:86 msgid "Whether to show the scale." msgstr "Hvorvidt skalering skal vises." #: data/ui/check-in-dialog.ui:236 msgid "Visibility" msgstr "Synlighet" #: data/ui/check-in-dialog.ui:271 msgid "Post on Facebook" msgstr "Post på Facebook" #: data/ui/check-in-dialog.ui:285 msgid "Post on Twitter" msgstr "Post på Twitter" #: data/ui/check-in-dialog.ui:325 data/ui/export-view-dialog.ui:20 #: data/ui/send-to-dialog.ui:13 data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "_Avbryt" #: data/ui/check-in-dialog.ui:333 msgid "C_heck in" msgstr "S_jekk inn" #: data/ui/check-in-dialog.ui:358 msgid "Public" msgstr "Offentlig" #: data/ui/check-in-dialog.ui:362 msgid "Followers" msgstr "Følgere" #: data/ui/check-in-dialog.ui:366 msgid "Private" msgstr "Privat" #: data/ui/context-menu.ui:9 msgid "Route from here" msgstr "Rute fra denne lokasjonen" #: data/ui/context-menu.ui:16 msgid "Add intermediate destination" msgstr "Legg til mellomstopp" #: data/ui/context-menu.ui:24 msgid "Route to here" msgstr "Rute til denne lokasjonen" #: data/ui/context-menu.ui:36 msgid "What’s here?" msgstr "Hva finnes her?" #: data/ui/context-menu.ui:43 msgid "Copy Location" msgstr "Kopier posisjon" #: data/ui/context-menu.ui:51 msgid "Add to OpenStreetMap" msgstr "Legg til på OpenStreetMap" #: data/ui/export-view-dialog.ui:14 msgid "Export view" msgstr "Eksporter visning" #: data/ui/export-view-dialog.ui:34 msgid "_Export" msgstr "_Eksporter" #: data/ui/export-view-dialog.ui:119 msgid "Include route and markers" msgstr "Ta med rute og markører" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:15 msgid "Go to current location" msgstr "Gå til gjeldende posisjon" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:33 msgid "Choose map type" msgstr "Velg karttype" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:58 msgid "Zoom out" msgstr "Zoom ut" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:74 msgid "Zoom in" msgstr "Zoom inn" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:14 msgid "Print Route" msgstr "Skriv ut rute" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:33 msgid "Toggle favorites" msgstr "Slå av/på favoritter" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:52 msgid "Toggle route planner" msgstr "Slå av/på ruteplanlegger" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "General" msgstr "Generelt" #: data/ui/help-overlay.ui:18 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "Vis snarveier" #: data/ui/help-overlay.ui:25 msgctxt "shortcut window" msgid "Search" msgstr "Søk" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "Slå av/på ruteplanlegger" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Print route" msgstr "Skriv ut rute" #: data/ui/help-overlay.ui:46 msgctxt "shortcut window" msgid "Quit" msgstr "Avslutt" #: data/ui/help-overlay.ui:53 msgctxt "shortcut window" msgid "Open main menu" msgstr "Åpne hovedmeny" #: data/ui/help-overlay.ui:62 msgctxt "shortcut window" msgid "Map View" msgstr "Kartvisning" #: data/ui/help-overlay.ui:66 msgctxt "shortcut window" msgid "Zoom in" msgstr "Zoom inn" #: data/ui/help-overlay.ui:73 msgctxt "shortcut window" msgid "Zoom out" msgstr "Zoom ut" #: data/ui/help-overlay.ui:80 msgctxt "shortcut window" msgid "Toggle scale" msgstr "Slå av/på skala" #: data/ui/help-overlay.ui:87 msgctxt "shortcut window" msgid "Go to current location" msgstr "Gå til gjeldende posisjon" #: data/ui/help-overlay.ui:97 msgctxt "shortcut window" msgid "Switch to street view" msgstr "Bytt til gatevisning" #: data/ui/help-overlay.ui:104 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "Bytt til flyvisning" #: data/ui/help-overlay.ui:111 msgctxt "shortcut window" msgid "Open shape layer" msgstr "Åpne formlag" #: data/ui/layers-popover.ui:65 msgid "Show Labels" msgstr "Vis etiketter" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:102 msgid "Open Shape Layer…" msgstr "Åpne formlag …" #: data/ui/location-service-dialog.ui:16 msgid "Turn on location services to find your location" msgstr "Skru på posisjonstjenester for å se hvor du er" #: data/ui/location-service-dialog.ui:28 data/ui/osm-edit-dialog.ui:283 #: data/ui/zoom-in-dialog.ui:28 msgid "Cancel" msgstr "Avbryt" #: data/ui/location-service-dialog.ui:38 msgid "Location Settings" msgstr "Posisjonsinnstillinger" #: data/ui/main-window.ui:8 msgid "Set up OpenStreetMap Account" msgstr "Sett opp konto på OpenStreetMap" #: data/ui/main-window.ui:12 msgid "Export as Image" msgstr "Eksporter som bilde" #: data/ui/main-window.ui:17 msgid "_Keyboard Shortcuts" msgstr "_Tastatursnarveier" #: data/ui/main-window.ui:22 msgid "About Maps" msgstr "Om Kart" #: data/ui/main-window.ui:48 msgid "Open main menu" msgstr "Åpne hovedmeny" #: data/ui/main-window.ui:110 msgid "Maps is offline!" msgstr "Kart er frakoblet!" #: data/ui/main-window.ui:119 msgid "" "Maps need an active internet connection to function properly, but one can’t " "be found." msgstr "" "Kart trenger en aktiv internettforbindelse for å fungere, men ingen ble " "funnet." #: data/ui/main-window.ui:127 msgid "Check your connection and proxy settings." msgstr "Sjekk tilkobling og innstillinger for proxy." #: data/ui/osm-account-dialog.ui:9 msgid "OpenStreetMap Account" msgstr "Konto for OpenStreetMap" #: data/ui/osm-account-dialog.ui:22 msgid "Sign in to edit maps" msgstr "" "Logg inn for å redigere kart" #: data/ui/osm-account-dialog.ui:36 msgid "" "Help to improve the map, using an\n" "OpenStreetMap account." msgstr "" "Hjelp til å forbedre kartet med\n" "en OpenStreetMap-konto." #: data/ui/osm-account-dialog.ui:56 msgid "Email" msgstr "E-post" #: data/ui/osm-account-dialog.ui:81 msgid "Password" msgstr "Passord" #: data/ui/osm-account-dialog.ui:125 msgid "Sign up" msgstr "Registrer deg" #: data/ui/osm-account-dialog.ui:139 msgid "Sign In" msgstr "Logg inn" #. The label should contain the link to the OSM reset password page with a translated title #: data/ui/osm-account-dialog.ui:162 msgid "" "Sorry, that didn’t work. Please try again, or visit\n" "OpenStreetMap to reset your password." msgstr "" "Beklager, det virket ikke. Vennligst prøv igjen eller besøk\n" "OpenStreetMap for å nullstille passordet ditt." #: data/ui/osm-account-dialog.ui:175 msgid "The verification code didn’t match, please try again." msgstr "Verifiseringskoden var ikke riktig. Vennligst prøv igjen." #: data/ui/osm-account-dialog.ui:201 msgid "Enter verification code shown above" msgstr "Oppgi verifikasjonskoden som vises over" #: data/ui/osm-account-dialog.ui:224 msgid "Verify" msgstr "Verifiser" #: data/ui/osm-account-dialog.ui:254 msgid "Signed In" msgstr "Logget inn" #: data/ui/osm-account-dialog.ui:267 msgid "Your OpenStreetMap account is active." msgstr "Din OpenStreetMap-konto er aktiv." #: data/ui/osm-account-dialog.ui:301 msgid "Sign Out" msgstr "Logg ut" #: data/ui/osm-edit-address.ui:14 msgid "Street" msgstr "Gate" #: data/ui/osm-edit-address.ui:26 msgid "House number" msgstr "Husnummer" #: data/ui/osm-edit-address.ui:38 msgid "Postal code" msgstr "Postnummer" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:50 msgid "City" msgstr "By" #: data/ui/osm-edit-dialog.ui:58 msgid "Type" msgstr "Type" #: data/ui/osm-edit-dialog.ui:84 msgid "None" msgstr "Ingen" #: data/ui/osm-edit-dialog.ui:129 msgid "Add Field" msgstr "Legg til felt" #: data/ui/osm-edit-dialog.ui:163 msgid "Comment" msgstr "Kommentar" #: data/ui/osm-edit-dialog.ui:195 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "Endringer på kartet vil vises på alle kart som bruker\n" "data fra OpenStreetMap." #: data/ui/osm-edit-dialog.ui:241 msgid "Recently Used" msgstr "Nylig brukt" #: data/ui/osm-edit-dialog.ui:280 msgctxt "dialog title" msgid "Edit on OpenStreetMap" msgstr "Rediger på OpenStreetMap" #: data/ui/osm-edit-dialog.ui:310 src/osmEditDialog.js:550 msgid "Next" msgstr "Neste" #: data/ui/place-popover.ui:54 src/application.js:399 msgid "No results found" msgstr "Ingen resultater funnet" #: data/ui/place-popover.ui:66 src/application.js:376 src/checkInDialog.js:269 #: src/checkIn.js:158 src/osmEditDialog.js:587 msgid "An error has occurred" msgstr "Det har oppstått en feil" #. Translators: This is a tooltip #: data/ui/route-entry.ui:20 msgid "Drag to change order of the route" msgstr "Dra for å endre rekkefølgen på ruten" #: data/ui/send-to-dialog.ui:10 msgid "Open Location" msgstr "Åpne posisjon" #: data/ui/send-to-dialog.ui:72 msgid "Copy" msgstr "Kopier" #: data/ui/send-to-dialog.ui:79 msgid "Send To…" msgstr "Send til …" #: data/ui/send-to-dialog.ui:86 msgid "Check In…" msgstr "Sjekk inn …" #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:65 msgid "Open Shape Layer" msgstr "Åpne formlag" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "_Åpne" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:19 msgid "Toggle visible" msgstr "Slå av/på synlige" #: data/ui/sidebar.ui:275 msgid "Route search by GraphHopper" msgstr "Rutesøk av GraphHopper" #: data/ui/sidebar.ui:364 msgid "" "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of " "transportation,\n" "e.g. a national provider might not include airlines, and a local provider " "could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" "Rutetabeller for offentlig transport tilbys av tredjepartstjenester\n" "\n" "GNOME kan ikke garantere riktighet for rutetabellene og tidsplanene.\n" "Merk at enkelte tilbydere ikke alltid inkluderer alle mulige typer " "transport. F.eks. vil noen aktører ikke ta med flyselskaper, mens en lokal " "tilbyder kanskje utelater regionstog.\n" "Navn og merker som vises skal anses som registrerte varemerker når det er " "relevant." #: data/ui/social-place-more-results-row.ui:8 msgid "Show more results" msgstr "Vis flere resultater" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:129 msgid "Hide intermediate stops and information" msgstr "Skjul stopp og informasjon langs ruten" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:203 msgid "Show intermediate stops and information" msgstr "Vis stopp og informasjon på veien" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:18 msgid "Leave Now" msgstr "Dra nå" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:19 msgid "Leave By" msgstr "Dra før" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:20 msgid "Arrive By" msgstr "Ankom før" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:106 msgid "Show" msgstr "Vis" #: data/ui/transit-options-panel.ui:117 msgid "Buses" msgstr "Busser" #: data/ui/transit-options-panel.ui:124 msgid "Trams" msgstr "Trikker" #: data/ui/transit-options-panel.ui:131 msgid "Trains" msgstr "Tog" #: data/ui/transit-options-panel.ui:138 msgid "Subway" msgstr "T-bane" #: data/ui/transit-options-panel.ui:145 msgid "Ferries" msgstr "Ferjer" #: data/ui/transit-options-panel.ui:152 msgid "Airplanes" msgstr "Fly" #. Translators: This is a tooltip #: data/ui/place-bar.ui:48 data/ui/place-buttons.ui:50 data/ui/place-view.ui:72 msgid "Share location" msgstr "Del posisjon" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:15 msgid "Add to new route" msgstr "Legg til i ny rute" #. Translators: This is the button to find a route to a place #: data/ui/place-buttons.ui:34 msgid "Directions" msgstr "Retningsanvisninger" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:70 msgid "Mark as favorite" msgstr "Merk som favoritt" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:89 msgid "Edit on OpenStreetMap" msgstr "Rediger på OpenStreetMap" #: data/ui/zoom-in-dialog.ui:16 msgid "Zoom in to add location!" msgstr "Zoom inn for å legge til en lokasjon!" #: data/ui/zoom-in-dialog.ui:38 msgid "Zoom In" msgstr "Zoom inn" #: lib/maps-file-tile-source.c:303 lib/maps-file-tile-source.c:379 #: lib/maps-file-tile-source.c:459 msgid "Failed to find tile structure in directory" msgstr "Klarte ikke å finne flisstruktur i katalogen" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "Klarte ikke å tolke XML-dokument" #: lib/maps-osm.c:249 lib/maps-osm.c:402 msgid "Missing required attributes" msgstr "Mangler nødvendige attributter" #: lib/maps-osm.c:450 msgid "Could not find OSM element" msgstr "Fant ikke OSM-element" #: src/application.js:110 msgid "A path to a local tiles directory structure" msgstr "En sti til en lokal katalogstruktur med fliser" #: src/application.js:116 msgid "Tile size for local tiles directory" msgstr "Størrelse på fliser i lokal katalogstruktur med fliser" #: src/application.js:120 msgid "Show the version of the program" msgstr "Vis programmets versjon" #: src/application.js:126 msgid "Ignore network availability" msgstr "Overse nettverkstilgjengelighet" #: src/application.js:133 msgid "Search for places" msgstr "Velg for steder" #: src/application.js:144 src/application.js:145 msgid "[FILE…|URI]" msgstr "[FIL…|URI]" #: src/application.js:407 #, javascript-format msgid "Invalid maps: URI: %s" msgstr "Ugyldig kart: URI: %s" #: src/checkInDialog.js:161 msgid "Select an account" msgstr "Velg en konto" #: src/checkInDialog.js:166 src/checkInDialog.js:235 msgid "Loading" msgstr "Laster" #: src/checkInDialog.js:190 msgid "Select a place" msgstr "Velg et sted" #: src/checkInDialog.js:195 msgid "" "Maps cannot find the place to check in to with Foursquare. Please select one " "from this list." msgstr "" "Kart finner ikke stedet som skal sjekkes inn på med Foursquare. Velg et sted " "her." #. Translators: %s is the name of the place to check in. #. #: src/checkInDialog.js:210 #, javascript-format msgid "Check in to %s" msgstr "Sjekk inn på %s" #. Translators: %s is the name of the place to check in. #. #: src/checkInDialog.js:220 #, javascript-format msgid "Write an optional message to check in to %s." msgstr "Skriv en valgfri melding for å sjekke inn ved %s." #. Translators: %s is the place name that user wanted to check-in #: src/checkIn.js:140 #, javascript-format msgid "Cannot find “%s” in the social service" msgstr "Finner ikke «%s» i sosial tjeneste" #: src/checkIn.js:142 msgid "Cannot find a suitable place to check-in in this location" msgstr "Fant ingen passende steder å sjekke inn på denne posisjonen" #: src/checkIn.js:146 msgid "" "Credentials have expired, please open Online Accounts to sign in and enable " "this account" msgstr "" "Akkreditiver er utgått. Åpne Nettkontoer for å logge inn og bruke denne " "kontoen" #: src/contextMenu.js:135 msgid "Nothing found here!" msgstr "Ingenting her!" #: src/contextMenu.js:196 msgid "" "Location was added to the map, note that it may take a while before it shows " "on the map and in search results." msgstr "" "Lokasjonen ble lagt til på kartet. Merk at det kan ta litt tid før den vises " "på kartet og dukker opp i søkeresultater." #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:82 #, javascript-format msgid "Maps at %f, %f.png" msgstr "Kart fra %f, %f.png" #: src/exportViewDialog.js:154 msgid "Filesystem is read only" msgstr "Filsystemet er skrivebeskyttet" #: src/exportViewDialog.js:156 msgid "You do not have permission to save there" msgstr "Du har ikke rettigheter til å lagre der" #: src/exportViewDialog.js:158 msgid "The directory does not exist" msgstr "Katalogen eksisterer ikke" #: src/exportViewDialog.js:160 msgid "No filename specified" msgstr "Filnavn ikke oppgitt" #: src/exportViewDialog.js:168 msgid "Unable to export view" msgstr "Kan ikke eksportere visning" #: src/geoclue.js:122 msgid "Current Location" msgstr "Gjeldende posisjon" #: src/geoJSONSource.js:98 msgid "invalid coordinate" msgstr "ugyldig koordinat" #: src/geoJSONSource.js:147 src/geoJSONSource.js:187 src/geoJSONSource.js:202 msgid "parse error" msgstr "lesefeil" #: src/geoJSONSource.js:181 msgid "unknown geometry" msgstr "ukjent geometri" #: src/graphHopper.js:116 src/transitPlan.js:181 msgid "Route request failed." msgstr "Forespørsel om rute feilet." #: src/graphHopper.js:123 src/transitPlan.js:173 msgid "No route found." msgstr "Ingen rute funnet." #: src/graphHopper.js:211 src/transitplugins/openTripPlanner.js:1116 msgid "Start!" msgstr "Start!" #: src/mainWindow.js:62 msgid "All Layer Files" msgstr "Alle lagfiler" #: src/mainWindow.js:502 msgid "Failed to connect to location service" msgstr "Klarte ikke å koble til posisjonstjeneste" #: src/mainWindow.js:597 msgid "translator-credits" msgstr "" "haarek , Kjartan Maraas , Åka " "Sikrom " #: src/mainWindow.js:600 msgid "A map application for GNOME" msgstr "Et kartprogram for GNOME" #: src/mainWindow.js:611 msgid "Copyright © 2011 – 2021 Red Hat, Inc. and The GNOME Maps authors" msgstr "Opphavsrett © 2011 - 2021 Red Hat, Inc. og GNOME kart utviklerene" #: src/mainWindow.js:631 #, javascript-format msgid "Map data by %s and contributors" msgstr "Kartdata av %s og bidragsytere" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:647 #, javascript-format msgid "Map tiles provided by %s" msgstr "Kartfliser av %s" #. Translators: this is an attribution string giving credit to the #. * search provider where the first %s placeholder is replaced by either #. * the bare name of the geocoder provider, or a linkified URL if one #. * is available, and the second %s placeholder is replaced by the #. * URL to the geocoder project page. These placeholders #. * can be swapped, if needed using the %n$s positional syntax #. * (i.e. "%2$s ... %1$s ..." for positioning the project URL #. * before the provider). #. #: src/mainWindow.js:676 #, javascript-format msgid "Search provided by %s using %s" msgstr "Søk tilbys av %s ved bruk av %s" #: src/mapView.js:505 src/mapView.js:563 msgid "Failed to open layer" msgstr "Klarte ikke å åpne lag" #: src/mapView.js:526 msgid "Do you want to continue?" msgstr "Vil du fortsette?" #: src/mapView.js:527 #, javascript-format msgid "" "You are about to open files with a total size of %s MB. This could take some " "time to load" msgstr "" "Du er i ferd med å åpne filer med en total størrelse på %s MB. Dette kan ta " "litt tid" #: src/mapView.js:557 msgid "File type is not supported" msgstr "Filtypen er ikke støttet" #: src/mapView.js:595 msgid "Failed to open GeoURI" msgstr "Klarte ikke å åpne GeoURI" #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:442 msgid "Incorrect user name or password" msgstr "Feil brukernavn eller passord" #: src/osmConnection.js:444 msgid "Success" msgstr "Suksess" #: src/osmConnection.js:446 msgid "Bad request" msgstr "Ugyldig forespørsel" #: src/osmConnection.js:448 msgid "Object not found" msgstr "Fant ikke objektet" #: src/osmConnection.js:450 msgid "Conflict, someone else has just modified the object" msgstr "Konflikt. Noen andre har akkurat endret objektet" #: src/osmConnection.js:452 msgid "Object has been deleted" msgstr "Objektet er slettet" #: src/osmConnection.js:454 msgid "Way or relation refers to non-existing children" msgstr "Vei eller relasjon refererer til ikke-eksisterende barn" #: src/osmEditDialog.js:122 msgid "Name" msgstr "Navn" #: src/osmEditDialog.js:125 msgid "The official name. This is typically what appears on signs." msgstr "Det offisielle navnet. Dette er typisk det som vises på skilt." #: src/osmEditDialog.js:128 msgid "Address" msgstr "Adresse" #: src/osmEditDialog.js:136 src/placeView.js:280 msgid "Website" msgstr "Nettsted" #: src/osmEditDialog.js:140 msgid "This is not a valid URL. Make sure to include http:// or https://." msgstr "" "Dette er ikke en gyldig URL. Sjekk at http:// eller https:// er inkludert." #: src/osmEditDialog.js:141 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" "Det offisielle nettstedet. Prøv å bruke den mest grunnleggende formen av en " "URL. F.eks. http://eksempel.no i stedet for http://eksempel.no/index.html." #: src/osmEditDialog.js:146 msgid "Phone" msgstr "Telefon" #: src/osmEditDialog.js:150 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" "Telefonnummer. Bruk det internasjonale formatet som starter med et +-tegn. " "Vær observant på lokale lover om personvern, spesielt for private " "telefonnummer." #: src/osmEditDialog.js:155 src/placeView.js:308 msgid "E-mail" msgstr "E-post" #: src/osmEditDialog.js:160 msgid "" "This is not a valid e-mail address. Make sure to not include the mailto: " "protocol prefix." msgstr "Dette er ikke en gyldig e-postadresse.. Sjekk at ikke mailto: protokollprefikset er tatt med." #: src/osmEditDialog.js:161 msgid "" "Contact e-mail address for inquiries. Add only email addresses that are " "intended to be publicly used." msgstr "" #. Translators: This is the text for the "Wikipedia" link at the end #. of summaries #: src/osmEditDialog.js:165 src/placeView.js:645 msgid "Wikipedia" msgstr "Wikipedia" #: src/osmEditDialog.js:170 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "" "Formatet som brukes skal inkludere språkkode og tittel på artikkelen slik: " "«en:Tittel på artikkel»." #: src/osmEditDialog.js:174 src/placeView.js:345 msgid "Opening hours" msgstr "Åpningstider" #: src/osmEditDialog.js:179 msgid "See the link in the label for help on format." msgstr "Se lenken i etiketten for hjelp om format." #. TODO: this is a bit of a work-around to re-interpret the population, #. * stored as a string into an integer to convert back to a locale- #. * formatted string. Ideally it should be kept as an integer value #. * in the Place class. But this will also need to be handled by the #. * PlaceStore, possible in a backwards-compatible way #. #: src/osmEditDialog.js:182 src/placeView.js:455 msgid "Population" msgstr "Folketall" #: src/osmEditDialog.js:187 src/placeView.js:484 msgid "Altitude" msgstr "Høyde" #: src/osmEditDialog.js:190 msgid "Elevation (height above sea level) of a point in metres." msgstr "Høyde over have for et punkt i meter." #: src/osmEditDialog.js:193 msgid "Wheelchair access" msgstr "Rullestolvennlig" #: src/osmEditDialog.js:196 src/osmEditDialog.js:205 src/osmEditDialog.js:216 #: src/osmEditDialog.js:251 msgid "Yes" msgstr "Ja" #: src/osmEditDialog.js:197 src/osmEditDialog.js:206 src/osmEditDialog.js:217 #: src/osmEditDialog.js:252 msgid "No" msgstr "Nei" #: src/osmEditDialog.js:198 msgid "Limited" msgstr "Begrenset" #: src/osmEditDialog.js:199 msgid "Designated" msgstr "Spesialtilpasset" #: src/osmEditDialog.js:202 msgid "Internet access" msgstr "Internett-tilgang" #: src/osmEditDialog.js:207 msgid "Wi-Fi" msgstr "Trådløst" #: src/osmEditDialog.js:208 msgid "Wired" msgstr "Trådbundet" #: src/osmEditDialog.js:209 msgid "Terminal" msgstr "Terminal" #: src/osmEditDialog.js:210 msgid "Service" msgstr "Tjeneste" #: src/osmEditDialog.js:213 msgid "Takeaway" msgstr "Takeaway" #: src/osmEditDialog.js:218 msgid "Only" msgstr "Kun" #: src/osmEditDialog.js:221 msgid "Religion" msgstr "Religion" #: src/osmEditDialog.js:224 src/translations.js:284 msgid "Animism" msgstr "Animisme" #: src/osmEditDialog.js:225 msgid "Bahá’í" msgstr "Bahá’í" #: src/osmEditDialog.js:226 src/translations.js:286 msgid "Buddhism" msgstr "Buddisme" #: src/osmEditDialog.js:227 src/translations.js:287 msgid "Caodaism" msgstr "Caodaisme" #: src/osmEditDialog.js:228 src/translations.js:288 msgid "Christianity" msgstr "Kristendom" #: src/osmEditDialog.js:229 src/translations.js:289 msgid "Confucianism" msgstr "Konfusianisme" #: src/osmEditDialog.js:230 src/translations.js:290 msgid "Hinduism" msgstr "Hinduisme" #: src/osmEditDialog.js:231 src/translations.js:291 msgid "Jainism" msgstr "Jainisme" #: src/osmEditDialog.js:232 src/translations.js:292 msgid "Judaism" msgstr "Jødedom" #: src/osmEditDialog.js:233 src/translations.js:293 msgid "Islam" msgstr "Islam" #: src/osmEditDialog.js:234 src/translations.js:294 msgid "Multiple Religions" msgstr "Flere religioner" #: src/osmEditDialog.js:235 src/translations.js:295 msgid "Paganism" msgstr "Paganisme" #: src/osmEditDialog.js:236 src/translations.js:296 msgid "Pastafarianism" msgstr "Pastafarianisme" #: src/osmEditDialog.js:237 src/translations.js:297 msgid "Scientology" msgstr "Scientologi" #: src/osmEditDialog.js:238 src/translations.js:298 msgid "Shinto" msgstr "Shinto" #: src/osmEditDialog.js:239 src/translations.js:299 msgid "Sikhism" msgstr "Sikdom" #: src/osmEditDialog.js:240 src/translations.js:300 msgid "Spiritualism" msgstr "Spiritualisme" #: src/osmEditDialog.js:241 src/translations.js:301 msgid "Taoism" msgstr "Taoisme" #: src/osmEditDialog.js:242 src/translations.js:302 msgid "Unitarian Universalism" msgstr "Unitarisk universalisme" #: src/osmEditDialog.js:243 src/translations.js:303 msgid "Voodoo" msgstr "Voodo" #: src/osmEditDialog.js:244 src/translations.js:304 msgid "Yazidism" msgstr "Jesidisme" #: src/osmEditDialog.js:245 src/translations.js:305 msgid "Zoroastrianism" msgstr "Zoroastrisme" #: src/osmEditDialog.js:248 msgid "Toilets" msgstr "Toaletter" #: src/osmEditDialog.js:255 msgid "Note" msgstr "Merknad" #: src/osmEditDialog.js:258 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" "Informasjon som brukes til å informere andre kartbrukere om ting som ikke er " "innlysende om et element. Forfatterens formål når noe ble laget, eller hint " "for videre forbedring." #: src/osmEditDialog.js:363 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "Legg til på OpenStreetMap" #: src/osmEditDialog.js:417 msgid "Select Type" msgstr "Velg type" #: src/osmEditDialog.js:534 msgid "Done" msgstr "Ferdig" #: src/photonParser.js:110 msgid "Unnamed place" msgstr "Sted uten navn" #: src/placeEntry.js:224 msgid "Failed to parse Geo URI" msgstr "Klarte ikke å tolke Geo-URI" #: src/placeEntry.js:237 msgid "Failed to parse Maps URI" msgstr "Klarte ikke å tolke Maps-URI" #: src/placeView.js:268 msgid "Coordinates" msgstr "Koordinater" #: src/placeView.js:272 msgid "Accuracy" msgstr "Nøyaktighet" #. Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) #: src/placeView.js:275 #, javascript-format msgid "Accuracy: %s" msgstr "Nøyaktighet: %s" #. since the phone numbers are typically always rendered #. * left-to-right, insert an explicit LRM char to avoid issues #. * with phone numbers in international format starting with a + #. * which is considered a "weak" character to determine Unicode #. * text direction #. #: src/placeView.js:294 msgid "Phone number" msgstr "Telefonnummer" #. Translators: #. * The establishment offers customers to purchase meals #. * (or similar) to be consumed elsewhere #. #: src/placeView.js:321 msgid "Offers takeaway" msgstr "Tilbyr takeaway" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed on-premise. #. #: src/placeView.js:329 msgid "Does not offer takeaway" msgstr "Tilbyr ikke takeaway" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed elsewhere. E.g. #. * there is no seating on-premise for eating/drinking #. #: src/placeView.js:338 msgid "Only offers takeaway" msgstr "Tilbyr kun takeaway" #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/placeView.js:355 msgid "Public internet access" msgstr "Offentlig internett-tilgang" #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/placeView.js:364 msgid "No internet access" msgstr "Ingen internett-tilgang" #. Translators: #. * This means a WLAN Hotspot, also known as wireless, wifi or Wi-Fi. #. #: src/placeView.js:372 msgid "Public Wi-Fi" msgstr "Offentlig Wi-Fi" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/placeView.js:380 msgid "Wired internet access" msgstr "Kablet internett-tilgang" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/placeView.js:388 msgid "Computers available for use" msgstr "Datamaskiner tilgjengelig for bruk" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/placeView.js:396 msgid "Internet assistance available" msgstr "Internetthjelp tilgjengelig" #: src/placeView.js:402 msgid "No toilets available" msgstr "Ingen toaletter tilgjengelig" #: src/placeView.js:405 msgid "Toilets available" msgstr "Toaletter tilgjengelig" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #: src/placeView.js:414 msgid "Wheelchair accessible" msgstr "Rullestol tilgjengelig" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/placeView.js:424 msgid "Limited wheelchair accessibility" msgstr "Begrenset tilgang for rullestol" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #: src/placeView.js:433 msgid "Not wheelchair accessible" msgstr "Ikke tilgjengelig med rullestol" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/placeView.js:443 msgid "Designated for wheelchair users" msgstr "Utformet for rullestolbrukere" #. * #. * Translators: this is a label indicating an altitude below #. * sea level, where the %s placeholder is the altitude relative #. * to mean sea level in the "negative direction" #. #: src/placeView.js:474 #, javascript-format msgid "%s below sea level" msgstr "%s under havnivå" #. * #. * Translators: this indicates a place is located at (or very #. * close to) mean sea level #. #: src/placeView.js:481 msgid "At sea level" msgstr "Ved havnivå" #: src/placeView.js:490 msgid "Religion:" msgstr "Religion:" #: src/place.js:525 msgid "Place not found in OpenStreetMap" msgstr "Stedet ble ikke funnet i OpenStreetMap" #: src/place.js:532 msgid "Coordinates in URL are not valid" msgstr "Koordinatene i URLen er ikke gyldige" #: src/place.js:541 msgid "URL is not supported" msgstr "URLen støttes ikke" #: src/printLayout.js:321 #, javascript-format msgid "From %s to %s" msgstr "Fra %s til %s" #: src/printOperation.js:46 msgid "Loading map tiles for printing" msgstr "Laster kartruter for utskrift" #: src/printOperation.js:47 msgid "You can abort printing if this takes too long" msgstr "Du kan avbryte utskriften hvis dette tar for lang tid" #: src/printOperation.js:49 msgid "Abort printing" msgstr "Avbryt utskrift" #. Translators: this is add via location tooltip #: src/routeEntry.js:74 msgid "Add via location" msgstr "Legg til mellomlokasjon" #. Translators: this is remove via location tooltip #: src/routeEntry.js:84 msgid "Remove via location" msgstr "Fjern mellomlokasjon" #. Translators: this is reverse route tooltip #: src/routeEntry.js:90 msgid "Reverse route" msgstr "Omvendt rute" #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:121 #, javascript-format msgid "Add %s to %s" msgstr "Legg til %s til %s" #: src/sendToDialog.js:219 msgid "Failed to open URI" msgstr "Klarte ikke å åpne URI" #: src/sendToDialog.js:276 #, javascript-format msgid "Open with %s" msgstr "Åpne med %s" #: src/shapeLayer.js:95 msgid "failed to load file" msgstr "klarte ikke å laste fil" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:355 #, javascript-format msgid "Estimated time: %s" msgstr "Estimert tid: %s" #: src/sidebar.js:411 #, javascript-format msgid "Itineraries provided by %s" msgstr "Ruteplaner tilbys av %s" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:37 #, javascript-format msgid "Start at %s" msgstr "Start ved %s" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:43 msgid "Start" msgstr "Start" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:61 #, javascript-format msgid "Walk %s" msgstr "Gå %s" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:75 #, javascript-format msgid "Arrive at %s" msgstr "Ankom ved %s" #: src/transit.js:77 src/transitplugins/openTripPlanner.js:1129 msgid "Arrive" msgstr "Ankom" #: src/transitLegRow.js:88 msgid "Show walking instructions" msgstr "Vis instruksjoner for fotgjengere" #: src/transitLegRow.js:89 msgid "Hide walking instructions" msgstr "Skjul instruksjoner for fotgjengere" #: src/transitMoreRow.js:39 msgid "Load earlier alternatives" msgstr "Last tidligere alternativer" #: src/transitMoreRow.js:41 msgid "Load later alternatives" msgstr "Last senere alternativer" #: src/transitMoreRow.js:54 msgid "No earlier alternatives found." msgstr "Ingen tidligere alternativer funnet." #: src/transitMoreRow.js:56 msgid "No later alternatives found." msgstr "Ingen senere alternativer funnet." #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:148 msgctxt "month-day-date" msgid "%b %e" msgstr "%b %e" #: src/transitPlan.js:177 msgid "No timetable data found for this route." msgstr "Ingen ruteinformasjon funnet for denne ruten." #: src/transitPlan.js:185 msgid "No provider found for this route." msgstr "Ingen tilbyder funnet for denne ruten." #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:302 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:331 #, javascript-format msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "%s minutt" msgstr[1] "%s minutter" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:343 #, javascript-format msgid "%s hour" msgid_plural "%s hours" msgstr[0] "%s time" msgstr[1] "%s timer" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:351 #, javascript-format msgid "%s:%s hour" msgid_plural "%s:%s hours" msgstr[0] "%s:%s time" msgstr[1] "%s:%s timer" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:744 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: src/translations.js:53 msgid "Around the clock" msgstr "Hele døgnet" #: src/translations.js:55 msgid "From sunrise to sunset" msgstr "Fra soloppgang til solnedgang" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:121 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s,%s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:135 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s,%s,%s" #: src/translations.js:154 msgid "Every day" msgstr "Hver dag" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:166 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:177 msgid "Public holidays" msgstr "Offentlige fridager" #: src/translations.js:179 msgid "School holidays" msgstr "Skoleferie" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:219 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: src/translations.js:233 msgid "not open" msgstr "ikke åpen" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:248 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s-%s" #. Translators: Accuracy of user location information #: src/utils.js:251 msgid "Unknown" msgstr "Ukjent" #. Translators: Accuracy of user location information #: src/utils.js:254 msgid "Exact" msgstr "Nøyaktig" #. Translators: this is a duration with only hours, using #. * an abbreviation for hours, corresponding to 'h' in English #. #: src/utils.js:351 #, javascript-format msgid "%s h" msgstr "%s t" #. Translators: this is a duration with hours and minutes parts #. * using abbreviations for hours and minutes, corresponding to 'h' #. * and 'min' in English. The minutes has appropriate plural variations #. #: src/utils.js:357 #, javascript-format msgid "%s h %s min" msgid_plural "%s h %s min" msgstr[0] "%s t %s min" msgstr[1] "%s t %s min" #. Translators: this is a duration with minutes part #. * using abbreviation for minutes, corresponding to 'min' in English #. * with appropriate plural variations #. #: src/utils.js:364 #, javascript-format msgid "%s min" msgid_plural "%s min" msgstr[0] "%s min" msgstr[1] "%s min" #. Translators: this is a duration of less than one minute #. * with seconds using an abbreviation for seconds, corresponding to #. * 's' in English with appropriate plural forms #. #: src/utils.js:370 #, javascript-format msgid "%s s" msgid_plural "%s s" msgstr[0] "%s s" msgstr[1] "%s s" #. Translators: This is a distance measured in kilometers #: src/utils.js:381 #, javascript-format msgid "%s km" msgstr "%s km" #. Translators: This is a distance measured in meters #: src/utils.js:384 #, javascript-format msgid "%s m" msgstr "%s m" #. Translators: This is a distance measured in miles #: src/utils.js:392 #, javascript-format msgid "%s mi" msgstr "%s mi" #. Translators: This is a distance measured in feet #: src/utils.js:395 #, javascript-format msgid "%s ft" msgstr "%s ft" #: src/transitplugins/goMetro.js:60 msgid "This plugin doesn't support latest arrival" msgstr "Dette tillegget støtter ikke siste ankomst" #: src/transitplugins/openTripPlanner.js:1190 #, javascript-format msgid "Continue on %s" msgstr "Fortsett på %s" #: src/transitplugins/openTripPlanner.js:1192 msgid "Continue" msgstr "Fortsett" #: src/transitplugins/openTripPlanner.js:1195 #, javascript-format msgid "Turn left on %s" msgstr "Sving til venstre på %s" #: src/transitplugins/openTripPlanner.js:1197 msgid "Turn left" msgstr "Sving til venstre" #: src/transitplugins/openTripPlanner.js:1200 #, javascript-format msgid "Turn slightly left on %s" msgstr "Sving svakt til venstre på %s" #: src/transitplugins/openTripPlanner.js:1202 msgid "Turn slightly left" msgstr "Sving svakt til venstre" #: src/transitplugins/openTripPlanner.js:1205 #, javascript-format msgid "Turn sharp left on %s" msgstr "Sving hardt til venstre på %s" #: src/transitplugins/openTripPlanner.js:1207 msgid "Turn sharp left" msgstr "Sving hardt til venstre" #: src/transitplugins/openTripPlanner.js:1210 #, javascript-format msgid "Turn right on %s" msgstr "Sving til høyre på %s" #: src/transitplugins/openTripPlanner.js:1212 msgid "Turn right" msgstr "Sving til høyre" #: src/transitplugins/openTripPlanner.js:1215 #, javascript-format msgid "Turn slightly right on %s" msgstr "Sving svakt til høyre på %s" #: src/transitplugins/openTripPlanner.js:1217 msgid "Turn slightly right" msgstr "Sving svakt til høyre" #: src/transitplugins/openTripPlanner.js:1220 #, javascript-format msgid "Turn sharp right on %s" msgstr "Sving hardt til høyre på %s" #: src/transitplugins/openTripPlanner.js:1222 msgid "Turn sharp right" msgstr "Sving hardt til høyre" #: src/transitplugins/openTripPlanner.js:1228 #, javascript-format msgid "At the roundabout, take exit %s" msgstr "Ta avkjørsel %s i rundkjøringen" #: src/transitplugins/openTripPlanner.js:1230 #, javascript-format msgid "At the roundabout, take exit to %s" msgstr "Ta avkjørsel til %s i rundkjøringen" #: src/transitplugins/openTripPlanner.js:1232 msgid "Take the roundabout" msgstr "Kjør gjennom rundkjøringen" #: src/transitplugins/openTripPlanner.js:1236 #, javascript-format msgid "Take the elevator and get off at %s" msgstr "Ta heisen og gå av i %s" #: src/transitplugins/openTripPlanner.js:1238 msgid "Take the elevator" msgstr "Ta heisen" #: src/transitplugins/openTripPlanner.js:1242 #, javascript-format msgid "Make a left u-turn onto %s" msgstr "Ta en u-sving til venstre inn på %s" #: src/transitplugins/openTripPlanner.js:1244 msgid "Make a left u-turn" msgstr "Ta en u-sving til venstre" #: src/transitplugins/openTripPlanner.js:1247 #, javascript-format msgid "Make a right u-turn onto %s" msgstr "Ta en u-sving til høyre inn på %s" #: src/transitplugins/openTripPlanner.js:1249 msgid "Make a right u-turn" msgstr "Ta en u-sving til høyre" 070701000001DA000081A400000000000000000000000166413409000101E9000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/ne.po# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: Gnome Nepali Translation Project\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2022-08-26 20:12+0000\n" "PO-Revision-Date: 2022-09-22 15:20+0545\n" "Last-Translator: Pawan Chitrakar \n" "Language-Team: Nepali Translation Team \n" "Language: ne\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.0.1\n" #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.appdata.xml.in.in:6 data/org.gnome.Maps.desktop.in.in:4 #: data/ui/main-window.ui:29 src/application.js:61 src/mainWindow.js:133 #: src/mainWindow.js:499 msgid "Maps" msgstr "मानचित्र" #: data/org.gnome.Maps.appdata.xml.in.in:7 msgid "Find places around the world" msgstr "विश्वभरका स्थानहरू फेला पार्नुहोस्" #: data/org.gnome.Maps.appdata.xml.in.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "मानचित्रले तपाईंलाई संसारभरका नक्साहरूमा द्रुत पहुँच प्रदान गर्दछ। यो तपाईं एक शहर वा सडक " "को लागि खोज गरेर तपाईं खोज्दै हुनुहुन्छ ठाउँ छिटो फेला पार्न अनुमति दिन्छ, वा एक मित्र पूरा " "गर्न एक ठाउँ पत्ता लगाउन." #: data/org.gnome.Maps.appdata.xml.in.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "म्याप्सले सहयोगी ओपनस्ट्रिटम्याप डाटाबेस प्रयोग गर्दछ, जुन विश्वभरका सयौं हजारौं मानिसहरूले " "बनाएका छन्।" #: data/org.gnome.Maps.appdata.xml.in.in:279 src/mainWindow.js:496 msgid "The GNOME Project" msgstr "जिनोम परियोजना" #: data/org.gnome.Maps.desktop.in.in:5 msgid "A simple maps application" msgstr "सहज मानचित्र अनुप्रयोग" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in.in:14 msgid "Maps;" msgstr "मानचित्र;" #: data/org.gnome.Maps.desktop.in.in:17 msgid "Allows your location to be shown on the map." msgstr "तपाईँको स्थान मानचित्रमा देखाउन अनुमति दिन्छ ।" #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "हालै हेरिसकेको स्थान" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "अन्तिम पटक हेरिएको स्थानको निर्देशांक ।" #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "जुम" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "जुम स्तर" #: data/org.gnome.Maps.gschema.xml:21 msgid "Map type" msgstr "मानचित्र प्रकार" #: data/org.gnome.Maps.gschema.xml:22 msgid "The type of map to display (street, aerial, etc.)" msgstr "प्रदर्शन गर्न नक्साको प्रकार (सडक, हवाई, आदि)" #: data/org.gnome.Maps.gschema.xml:26 msgid "Window size" msgstr "सञ्झ्याल साइज" #: data/org.gnome.Maps.gschema.xml:27 msgid "Window size (width and height)." msgstr "सञ्झ्यालको नाप( उचाइ र चौडाई )" #: data/org.gnome.Maps.gschema.xml:31 msgid "Window position" msgstr "संझ्यालको स्थिति" #: data/org.gnome.Maps.gschema.xml:32 msgid "Window position (X and Y)." msgstr "सञ्झ्यालको स्थान(X र Y)." #: data/org.gnome.Maps.gschema.xml:36 msgid "Window maximized" msgstr "सञ्झ्यालको अधिकतम स्थिति" #: data/org.gnome.Maps.gschema.xml:37 msgid "Window maximization state" msgstr "सञ्झ्यालको अधिकतम स्थिति" #: data/org.gnome.Maps.gschema.xml:41 msgid "Maximum number of search results" msgstr "अत्याधिक खोजी परिणाम प्राप्त गर्दै" #: data/org.gnome.Maps.gschema.xml:42 msgid "Maximum number of search results from geocode search." msgstr "जियोकोड खोजीबाट खोजी परिणामको अधिकतम सङ्ख्या ।" #: data/org.gnome.Maps.gschema.xml:46 msgid "Number of recent places to store" msgstr "भण्डारण गर्नका लागि हालैका स्थानहरूको सङ्ख्या" #: data/org.gnome.Maps.gschema.xml:47 msgid "Number of recently visited places to store." msgstr "भण्डारण गर्न हालै भ्रमण गरिएका स्थानहरूको सङ्ख्या ।" #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent routes to store" msgstr "भण्डारण गर्नका लागि हालैका मार्गहरूको सङ्ख्या" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited routes to store." msgstr "भण्डारण गर्न हालै भ्रमण गरिएको मार्गहरूको सङ्ख्या।" #: data/org.gnome.Maps.gschema.xml:56 msgid "OpenStreetMap username or e-mail address" msgstr "OpenStreetMap प्रयोगकर्ता नाम वा इमेल ठेगाना" #: data/org.gnome.Maps.gschema.xml:57 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "" "यदि प्रयोगकर्ताले ओपनस्ट्रिटम्याप डेटा सम्पादन गर्न साइन इन गरेको छ भने सङ्केत गर्दछ ।" #: data/org.gnome.Maps.gschema.xml:61 msgid "Last used transportation type for routing" msgstr "मार्गका लागि अन्तिम पटक प्रयोग गरिएको यातायात प्रकार" #: data/org.gnome.Maps.gschema.xml:65 msgid "Show scale" msgstr "स्केल देखाउनुहोस्" #: data/org.gnome.Maps.gschema.xml:66 msgid "Whether to show the scale." msgstr "स्केल देखाउने या नदेखाउने ।" #: data/ui/context-menu.ui:6 msgid "Route from here" msgstr "यहाँबाट मार्ग" #: data/ui/context-menu.ui:10 msgid "Add intermediate destination" msgstr "मध्यवर्ती गन्तब्य थप्नुहोस्" #: data/ui/context-menu.ui:14 msgid "Route to here" msgstr "यहाँसम्म पुग्ने मार्ग" #: data/ui/context-menu.ui:20 msgid "What's here?" msgstr "यहा के छ ?" #: data/ui/context-menu.ui:24 msgid "Copy location" msgstr "स्थान प्रतिलिपि गर्नुहोस्" #: data/ui/context-menu.ui:28 msgid "Add to OpenStreetMap" msgstr "OpenStreetMap मा थप्नुहोस्" #: data/ui/export-view-dialog.ui:7 msgid "Export view" msgstr "निर्यात दृष्य" #: data/ui/export-view-dialog.ui:16 data/ui/send-to-dialog.ui:10 #: data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "_रद्द गर्नुहोस्" #: data/ui/export-view-dialog.ui:26 msgid "_Export" msgstr "निर्यात" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:11 msgid "Go to current location" msgstr "हालको स्थानमा जानुहोस्" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:19 msgid "Choose map type" msgstr "मानचित्र प्रकार रोज्नुहोस्" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:28 msgid "Zoom out" msgstr "जुम घटाउनुहोस््" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:37 msgid "Zoom in" msgstr "जुम बढाउनुहोस्" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:11 msgid "Print Route" msgstr "मार्ग मुद्रण गर्नुहोस्" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:21 msgid "Toggle favorites" msgstr "मनपर्ने टगल गर्नुहोस्" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:30 msgid "Toggle route planner" msgstr "मार्ग योजनाकार टगल गर्नुहोस्" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "General" msgstr "सामान्य" #: data/ui/help-overlay.ui:18 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "सर्टकट देखाउनुहोस्" #: data/ui/help-overlay.ui:25 msgctxt "shortcut window" msgid "Search" msgstr "खोजी" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "मार्ग योजनाकार टगल गर्नुहोस्" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Print route" msgstr "मार्ग मुद्रण गर्नुहोस्" #: data/ui/help-overlay.ui:46 msgctxt "shortcut window" msgid "Quit" msgstr "_बन्द गर्नुहोस्" #: data/ui/help-overlay.ui:53 msgctxt "shortcut window" msgid "Open main menu" msgstr "मुख्य मेनु खोल्नुहोस्" #: data/ui/help-overlay.ui:62 msgctxt "shortcut window" msgid "Map View" msgstr "मानचित्र दृश्य" #: data/ui/help-overlay.ui:66 msgctxt "shortcut window" msgid "Zoom in" msgstr "यसमा जुम गर्नुहोस्" #: data/ui/help-overlay.ui:73 msgctxt "shortcut window" msgid "Zoom out" msgstr "जुम घटाउनुहोस््" #: data/ui/help-overlay.ui:80 msgctxt "shortcut window" msgid "Toggle scale" msgstr "स्केल टगल गर्नुहोस्" #: data/ui/help-overlay.ui:87 msgctxt "shortcut window" msgid "Go to current location" msgstr "हालको स्थानमा जानुहोस्" #: data/ui/help-overlay.ui:97 msgctxt "shortcut window" msgid "Switch to street view" msgstr "सडक दृश्यमा स्विच गर्नुहोस्" #: data/ui/help-overlay.ui:104 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "हवाई दृश्यमा स्विच गर्नुहोस्" #: data/ui/help-overlay.ui:111 msgctxt "shortcut window" msgid "Open shape layer" msgstr "आकार तह खोल्नुहोस्" #: data/ui/layers-popover.ui:7 msgid "Show Scale" msgstr "स्केल देखाउनुहोस्" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:16 msgid "Open Shape Layer…" msgstr "आकार तह खोल्नुहोस्…" #: data/ui/location-service-dialog.ui:16 msgid "Turn on location services to find your location" msgstr "तपाईँको स्थान फेला पार्न स्थान सेवा हरू चालू गर्नुहोस्" #: data/ui/location-service-dialog.ui:28 data/ui/osm-edit-dialog.ui:219 #: data/ui/zoom-in-dialog.ui:21 msgid "Cancel" msgstr "रद्द गर्ने" #: data/ui/location-service-dialog.ui:38 msgid "Location Settings" msgstr "स्थान सेटिङ" #: data/ui/main-window.ui:8 msgid "Set up OpenStreetMap Account" msgstr "OpenStreetMap खाता सेटअप गर्नुहोस्" #: data/ui/main-window.ui:12 msgid "Export as Image" msgstr "छविको रूपमा निर्यात गर्नुहोस्" #: data/ui/main-window.ui:17 msgid "_Keyboard Shortcuts" msgstr "कुञ्जीपाटी सटकर्ट" #: data/ui/main-window.ui:22 msgid "About Maps" msgstr "मानचित्र बारेमा" #: data/ui/main-window.ui:40 msgid "Open main menu" msgstr "मुख्य मेनु खोल्नुहोस्" #: data/ui/osm-account-dialog.ui:6 msgid "OpenStreetMap Account" msgstr "ओपनस्ट्रिटम्याप खाता" #: data/ui/osm-account-dialog.ui:24 msgid "Sign in to edit maps" msgstr "" "चित्र सम्पादन गर्न साइन इन गर्नुहोस्" #: data/ui/osm-account-dialog.ui:38 msgid "" "Help to improve the map, using an\n" "OpenStreetMap account." msgstr "" "नक्सा सुधार गर्न मद्दत गर्नुहोस्, एक प्रयोग गर्नुहोस्\n" "ओपनस्ट्रिटम्याप खाता खोल्नुहोस् ।" #: data/ui/osm-account-dialog.ui:52 msgid "" "Sign in to authorize access in a web browser.\n" "Then fill in the obtained verification code here in the next step." msgstr "" "वेब ब्राउजरमा पहुँच अधिकृत गर्न साइन इन गर्नुहोस् ।\n" "त्यसपछि अर्को चरणमा यहाँ प्राप्त प्रमाणीकरण कोड भर्नुहोस्।" #: data/ui/osm-account-dialog.ui:68 msgid "Sign up" msgstr "साइन अप" #: data/ui/osm-account-dialog.ui:81 msgid "Sign In" msgstr "लगइन गर्दै" #: data/ui/osm-account-dialog.ui:123 msgid "Copy verification code shown when authorizing access in the browser" msgstr "ब्राउजरमा पहुँच प्राधिकृत गर्दा देखाइएका प्रमाणीकरण कोड प्रतिलिपि बनाउनुहोस्" #: data/ui/osm-account-dialog.ui:133 msgid "Verification code" msgstr "प्रमाणीकरण कोड" #: data/ui/osm-account-dialog.ui:144 msgid "Verify" msgstr "रूजु गर्नुहोस्" #: data/ui/osm-account-dialog.ui:172 msgid "Signed In" msgstr "साइन इन गर्नुहोस्" #: data/ui/osm-account-dialog.ui:184 msgid "Your OpenStreetMap account is active." msgstr "तपाईँको OpenStreetMap खाता सक्रिय छ ।" #: data/ui/osm-account-dialog.ui:214 msgid "Sign Out" msgstr "साइन आउट" #: data/ui/osm-edit-address.ui:11 msgid "Street" msgstr "सडक" #: data/ui/osm-edit-address.ui:22 msgid "House number" msgstr "घर नम्बर" #: data/ui/osm-edit-address.ui:33 msgid "Postal code" msgstr "जिप/हुलाकी सङ्केत" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:44 msgid "City" msgstr "सहर" #: data/ui/osm-edit-dialog.ui:53 msgid "Type" msgstr "वर्ग" #: data/ui/osm-edit-dialog.ui:75 msgid "None" msgstr "कुनै पनि होइन" #: data/ui/osm-edit-dialog.ui:104 msgid "Add Field" msgstr "फाँट थप्नुहोस्" #: data/ui/osm-edit-dialog.ui:126 msgid "Comment" msgstr "टिप्पणी" #: data/ui/osm-edit-dialog.ui:154 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "प्रयोग गर्ने सबै मानचित्रहरूमा मानचित्र परिवर्तनहरू दृश्यमान हुनेछन्\n" "ओपनस्ट्रिप मानचित्र डेटा खोल्नुहोस्।" #: data/ui/osm-edit-dialog.ui:182 msgid "Recently Used" msgstr "हालै प्रयोग गरिएको" #: data/ui/osm-edit-dialog.ui:232 src/osmEditDialog.js:539 msgid "Next" msgstr "पछिल्लो" #: data/ui/place-popover.ui:40 src/application.js:269 msgid "No results found" msgstr "नतिजा भेटिएन" #: data/ui/place-popover.ui:50 src/application.js:246 src/osmEditDialog.js:576 msgid "An error has occurred" msgstr "एउटा त्रुटि देखापर्यो " #. Translators: This is a tooltip #: data/ui/route-entry.ui:12 msgid "Drag to change order of the route" msgstr "मार्गको क्रम परिवर्तन गर्न तान्नुहोस्" #: data/ui/send-to-dialog.ui:7 msgid "Open Location" msgstr "स्थान खोल्नुहोस्" #: data/ui/send-to-dialog.ui:62 msgid "Copy" msgstr "प्रतिलपि गर्नुहोस्" #: data/ui/send-to-dialog.ui:68 msgid "Send To…" msgstr "पठाउन लाई…" #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:64 msgid "Open Shape Layer" msgstr "आकार तह खोल्नुहोस्" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "खोल्नुहोस्" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:32 msgid "Toggle visible" msgstr "दृश्यात्मक टगल गर्नुहोस्" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:44 msgid "Remove Shape Layer" msgstr "आकृति तह हटाउनुहोस्" #: data/ui/sidebar.ui:215 msgid "Route search by GraphHopper" msgstr "ग्राफहोपर द्वारा मार्ग खोजी" #: data/ui/sidebar.ui:282 msgid "" "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of " "transportation,\n" "e.g. a national provider might not include airlines, and a local provider " "could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" "सार्वजनिक पारवहनको लागि रूटिंग यात्रा कार्यक्रमहरू तेस्रो-पक्ष द्वारा प्रदान गरिएको छ\n" "सेवाहरू।\n" "जिनोमले देखाइएका यात्रा कार्यक्रम र अनुसूचीहरूको शुद्धताको ग्यारेन्टी गर्न सक्दैन ।\n" "ध्यान दिनुहोस् कि केही प्रदायकहरूले यातायातका सबै उपलब्ध मोडहरू समावेश गर्न सक्दैनन्,\n" "उदाहरणका लागि राष्ट्रिय प्रदायकले एयरलाइन्सहरू समावेश नगर्न सक्छ, र स्थानीय प्रदायकले\n" "क्षेत्रीय रेलहरू मिस गर्नुहोस्।\n" "देखाइएका नामहरू र ब्रान्डहरू लागू हुँदा दर्ता गरिएको ट्रेडमार्कको रूपमा विचार गर्नुपर्दछ।" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:98 msgid "Hide intermediate stops and information" msgstr "मध्यवर्ती स्टप र सूचना लुकाउनुहोस्" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:156 msgid "Show intermediate stops and information" msgstr "मध्यवर्ती स्टप र सूचना देखाउनुहोस्" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:16 msgid "Leave Now" msgstr "अहिले जानुहोस्" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:17 msgid "Leave By" msgstr "अहिले जानुहोस्" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:18 msgid "Arrive By" msgstr "आइपुग्नुहोस्" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:85 msgid "Show" msgstr "देखाउने" #: data/ui/transit-options-panel.ui:95 msgid "Buses" msgstr "बस" #: data/ui/transit-options-panel.ui:101 msgid "Trams" msgstr "ट्राम" #: data/ui/transit-options-panel.ui:107 msgid "Trains" msgstr "ट्रेन" #: data/ui/transit-options-panel.ui:113 msgid "Subway" msgstr "सबवे" #: data/ui/transit-options-panel.ui:119 msgid "Ferries" msgstr "फेर्री" #: data/ui/transit-options-panel.ui:125 msgid "Airplanes" msgstr "हवाईजहाज" #. Translators: This is a tooltip #: data/ui/place-bar.ui:28 data/ui/place-buttons.ui:27 data/ui/place-view.ui:53 msgid "Share location" msgstr "स्थान साझा गर्नुहोस्" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:11 msgid "Add to new route" msgstr "नयाँ मार्गमा थप्नुहोस्" #. Translators: This is the button to find a route to a place #: data/ui/place-buttons.ui:15 msgid "Directions" msgstr "दिशा" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:36 msgid "Mark as favorite" msgstr "मनपर्ने रूपमा चिन्ह लगाउनुहोस्" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:44 msgid "Edit on OpenStreetMap" msgstr "OpenStreetMap सम्पादन" #: data/ui/zoom-in-dialog.ui:11 msgid "Zoom in to add location!" msgstr "स्थान थप्न जुम इन गर्नुहोस्!" #: data/ui/zoom-in-dialog.ui:27 msgid "Zoom In" msgstr "जुम बढाउनुहोस्" #: lib/maps-file-data-source.c:262 lib/maps-file-data-source.c:338 #: lib/maps-file-data-source.c:418 msgid "Failed to find tile structure in directory" msgstr "डाइरेक्टरीमा टायल संरचना फेला पार्न असफल भयो" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "XML कागजात पद वर्णन गर्न असफल भयो" #: lib/maps-osm.c:250 lib/maps-osm.c:403 msgid "Missing required attributes" msgstr "आवश्यक मान हराइरहेछ" #: lib/maps-osm.c:451 lib/maps-osm.c:494 msgid "Could not find OSM element" msgstr "OSM तत्व फेला पार्न सकेन" #: lib/maps-osm.c:508 msgid "Could not find user element" msgstr "प्रयोगकर्ता तत्व फेला पार्न सकेन" #: src/application.js:74 msgid "A path to a local tiles directory structure" msgstr "स्थानीय टायल डाइरेक्टरी संरचनाको मार्ग" #: src/application.js:80 msgid "Tile size for local tiles directory" msgstr "स्थानीय टाइल्स डाइरेक्टरीका लागि टाइल साइज" #: src/application.js:84 msgid "Show the version of the program" msgstr "कार्यक्रमको संस्करण देखाउनुहोस्" #: src/application.js:90 msgid "Search for places" msgstr "ठाउँहरू खोज्नुहोस्" #: src/application.js:101 src/application.js:102 msgid "[FILE…|URI]" msgstr "[FILE…|URI]" #: src/application.js:277 #, javascript-format msgid "Invalid maps: URI: %s" msgstr "अवैध मानचित्र: URI: %s" #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:85 #, javascript-format msgid "Maps at %f, %f.png" msgstr "%f, %f.png मा मानचित्र" #: src/exportViewDialog.js:167 msgid "Filesystem is read only" msgstr "फाइल प्रणाली पढ्ने मात्र" #: src/exportViewDialog.js:169 msgid "You do not have permission to save there" msgstr "तपाईँलाई त्यहाँ बचत गर्ने अनुमति छैन" #: src/exportViewDialog.js:171 msgid "The directory does not exist" msgstr "डाइरेक्टरी अवस्थित छैन" #: src/exportViewDialog.js:173 msgid "No filename specified" msgstr "कुनै फाइलनाम निर्दिष्ट गरिएको छैन" #: src/exportViewDialog.js:181 msgid "Unable to export view" msgstr "दृश्य निर्यात गर्न अक्षम" #: src/geoclue.js:106 msgid "Current Location" msgstr "हालको स्थान" #: src/geoJSONSource.js:78 msgid "invalid coordinate" msgstr "अवैध निर्देशाङ्क" #: src/geoJSONSource.js:123 src/geoJSONSource.js:163 src/geoJSONSource.js:178 msgid "parse error" msgstr "पदवर्णन त्रुटि" #: src/geoJSONSource.js:157 msgid "unknown geometry" msgstr "अज्ञात ज्यामिति" #: src/graphHopper.js:121 src/transitPlan.js:174 msgid "Route request failed." msgstr "रुट अनुरोध असफल भयो ।" #: src/graphHopper.js:128 src/transitPlan.js:166 msgid "No route found." msgstr "बाटो भेटिएन" #: src/graphHopper.js:215 src/transitplugins/openTripPlanner.js:1121 msgid "Start!" msgstr "सुरु!" #: src/mainWindow.js:61 msgid "All Layer Files" msgstr "सबै तह फाइलहरू" #: src/mainWindow.js:410 msgid "Failed to connect to location service" msgstr "स्थान सेवा जडान असफल" #: src/mainWindow.js:497 msgid "translator-credits" msgstr "Pawan Chitrakar " #: src/mainWindow.js:501 msgid "Copyright © 2011 – 2022 Red Hat, Inc. and The GNOME Maps authors" msgstr "प्रतिलिपि अधिकार © २०११ - २०२२ रेड ह्याट, इंक र जिनोम मानचित्र लेखकहरू" #: src/mainWindow.js:517 #, javascript-format msgid "Map data by %s and contributors" msgstr "%s र योगदानकर्ताहरूद्वारा मानचित्र डेटा" #: src/mainWindow.js:518 msgid "Map Data Provider" msgstr "मानचित्र डेटा प्रदायक" #: src/mainWindow.js:530 msgid "Map Tile Provider" msgstr "मानचित्र टायल प्रदायक" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:538 #, javascript-format msgid "Map tiles provided by %s" msgstr "%s द्वारा उपलब्ध गराइएको मानचित्र टायलहरू" #: src/mainWindow.js:568 msgid "Search Provider" msgstr "खोजी प्रदायक" #: src/mainWindow.js:571 #, javascript-format msgid "Search provided by %s using %s" msgstr "%s प्रयोग गरेर %s द्वारा उपलब्ध गराइएको खोजी गर्नुहोस्" #: src/mapView.js:502 src/mapView.js:562 msgid "Failed to open layer" msgstr "तह खोल्न असफल भयो" #: src/mapView.js:523 msgid "Do you want to continue?" msgstr "के तपाईँ निरन्तर गर्न चाहनुहुन्छ ?" #: src/mapView.js:524 #, javascript-format msgid "" "You are about to open files with a total size of %s MB. This could take some " "time to load" msgstr "" "तपाईँले %s MB को कुल साइजका फाइलहरू खोल्न लाग्नुभएको छ । यो लोड गर्न केही समय लाग्न सक्छ" #: src/mapView.js:556 msgid "File type is not supported" msgstr "फाइल प्रकार समर्थित छैन" #: src/mapView.js:594 msgid "Failed to open GeoURI" msgstr "जियो युआरआई खोल्न असफल भयो" #: src/mapView.js:1025 msgid "Nothing found here!" msgstr "केही पनि भेटिएन!" #: src/mapView.js:1086 msgid "" "Location was added to the map, note that it may take a while before it shows " "on the map and in search results." msgstr "" "स्थान नक्सामा थपिएको थियो, ध्यान दिनुहोस् कि यो नक्सामा र खोजी परिणामहरूमा देखाउनु " "अघि केही समय लाग्न सक्छ।" #: src/osmAccountDialog.js:139 msgid "The verification code didn’t match, please try again." msgstr "प्रमाणीकरण कोड मेल खाएन, कृपया फेरि प्रयास गर्नुहोस् ।" #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:337 msgid "Incorrect user name or password" msgstr "गलत प्रयोगकर्ता नाम वा पासवर्ड" #: src/osmConnection.js:339 msgid "Success" msgstr "सफलता" #: src/osmConnection.js:341 msgid "Bad request" msgstr "खराब अनुरोध" #: src/osmConnection.js:343 msgid "Object not found" msgstr "वस्तु फेला परेन" #: src/osmConnection.js:345 msgid "Conflict, someone else has just modified the object" msgstr "द्वन्द्व, अरू कसैले वस्तु लाई भर्खरै परिमार्जन गरेको छ" #: src/osmConnection.js:347 msgid "Object has been deleted" msgstr "वस्तु मेटिएको छ" #: src/osmConnection.js:349 msgid "Way or relation refers to non-existing children" msgstr "तरिका वा सम्बन्धले गैर-अवस्थित बच्चाहरूलाई बुझाउँछ" #: src/osmEditDialog.js:116 msgid "Name" msgstr "नाम" #: src/osmEditDialog.js:119 msgid "The official name. This is typically what appears on signs." msgstr "आधिकारिक नाम। यो सामान्यतया संकेतहरूमा देखा पर्ने कुरा हो।" #: src/osmEditDialog.js:122 msgid "Address" msgstr "ठेगाना" #: src/osmEditDialog.js:130 src/placeView.js:262 msgid "Website" msgstr "वेबसाइट" #: src/osmEditDialog.js:134 msgid "This is not a valid URL. Make sure to include http:// or https://." msgstr "यो वैध यूआरएल होइन । http:// वा https:// समावेश गर्न निश्चित गर्नुहोस्।" #: src/osmEditDialog.js:135 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" "आधिकारिक वेबसाइट। यूआरएलको सबैभन्दा आधारभूत रूप अर्थात् http://example.com/index." "html सट्टा http://example.com प्रयोग गर्ने प्रयास गर्नुहोस्।" #: src/osmEditDialog.js:140 msgid "Phone" msgstr "फोन" #: src/osmEditDialog.js:144 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" "फोन नम्बर । + चिन्हबाट सुरु गरेर अन्तर्राष्ट्रिय ढाँचा प्रयोग गर्नुहोस् । स्थानीय गोपनीयता " "कानूनबाट सावधान रहनुहोस्, विशेष गरी निजी फोन नम्बरहरूको लागि।" #: src/osmEditDialog.js:149 src/placeView.js:290 msgid "E-mail" msgstr "इमेल" #: src/osmEditDialog.js:154 msgid "" "This is not a valid e-mail address. Make sure to not include the mailto: " "protocol prefix." msgstr "" "यो वैध इमेल ठेगाना होइन । mailto: प्रोटोकल उपसर्ग समावेश नगर्न निश्चित गर्नुहोस् ।" #: src/osmEditDialog.js:155 msgid "" "Contact e-mail address for inquiries. Add only email addresses that are " "intended to be publicly used." msgstr "" "सोधपुछका लागि इमेल ठेगानामा सम्पर्क गर्नुहोस् । सार्वजनिक रूपमा प्रयोग गर्ने उद्देश्यले इमेल " "ठेगानाहरू मात्र थप्नुहोस्।" #. Translators: This is the text for the "Wikipedia" link at the end #. of summaries #: src/osmEditDialog.js:159 src/placeView.js:624 msgid "Wikipedia" msgstr "विकिपेडिया" #: src/osmEditDialog.js:164 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "" "प्रयोग गरिएको ढाँचामा भाषा कोड र लेख शीर्षक जस्तै \"en:लेख शीर्षक\" समावेश हुनुपर्दछ।" #: src/osmEditDialog.js:168 src/placeView.js:327 msgid "Opening hours" msgstr "खुला रहने समय" #: src/osmEditDialog.js:173 msgid "See the link in the label for help on format." msgstr "ढाँचामा मद्दतको लागि लेबलमा लिङ्क हेर्नुहोस्।" #. TODO: this is a bit of a work-around to re-interpret the population, #. * stored as a string into an integer to convert back to a locale- #. * formatted string. Ideally it should be kept as an integer value #. * in the Place class. But this will also need to be handled by the #. * PlaceStore, possible in a backwards-compatible way #. #: src/osmEditDialog.js:176 src/placeView.js:437 msgid "Population" msgstr "जनसङ्ख्या" #: src/osmEditDialog.js:181 src/placeView.js:466 msgid "Altitude" msgstr "ऊचाई" #: src/osmEditDialog.js:184 msgid "Elevation (height above sea level) of a point in metres." msgstr "उचाई (समुन्द्री सतहभन्दा माथिको उचाई) मिटरको बिन्दुको ।" #: src/osmEditDialog.js:187 msgid "Wheelchair access" msgstr "ह्विलचेयर पहुँच" #: src/osmEditDialog.js:190 src/osmEditDialog.js:199 src/osmEditDialog.js:210 #: src/osmEditDialog.js:245 msgid "Yes" msgstr "ठिक छ" #: src/osmEditDialog.js:191 src/osmEditDialog.js:200 src/osmEditDialog.js:211 #: src/osmEditDialog.js:246 msgid "No" msgstr "होइन" #: src/osmEditDialog.js:192 msgid "Limited" msgstr "सिमित" #: src/osmEditDialog.js:193 msgid "Designated" msgstr "तोकिएको" #: src/osmEditDialog.js:196 msgid "Internet access" msgstr "इन्टरनेट पहुँच" #: src/osmEditDialog.js:201 msgid "Wi-Fi" msgstr "वाई-फाई" #: src/osmEditDialog.js:202 msgid "Wired" msgstr "तारजडिट" #: src/osmEditDialog.js:203 msgid "Terminal" msgstr "टर्मिनल" #: src/osmEditDialog.js:204 msgid "Service" msgstr "सेवा" #: src/osmEditDialog.js:207 msgid "Takeaway" msgstr "लैजाने" #: src/osmEditDialog.js:212 msgid "Only" msgstr "मात्र" #: src/osmEditDialog.js:215 msgid "Religion" msgstr "धर्म" #: src/osmEditDialog.js:218 src/translations.js:286 msgid "Animism" msgstr "अनिमिजम्" #: src/osmEditDialog.js:219 msgid "Bahá’í" msgstr "बहाई धर्म" #: src/osmEditDialog.js:220 src/translations.js:288 msgid "Buddhism" msgstr "बौद्ध धर्म" #: src/osmEditDialog.js:221 src/translations.js:289 msgid "Caodaism" msgstr "काओडाइजम्" #: src/osmEditDialog.js:222 src/translations.js:290 msgid "Christianity" msgstr "ईसाई धर्म" #: src/osmEditDialog.js:223 src/translations.js:291 msgid "Confucianism" msgstr "कन्फुशियस धर्म" #: src/osmEditDialog.js:224 src/translations.js:292 msgid "Hinduism" msgstr "हिन्दु धर्म" #: src/osmEditDialog.js:225 src/translations.js:293 msgid "Jainism" msgstr "जैन धर्म" #: src/osmEditDialog.js:226 src/translations.js:294 msgid "Judaism" msgstr "यहूदी धर्म" #: src/osmEditDialog.js:227 src/translations.js:295 msgid "Islam" msgstr "इस्लाम धर्म" #: src/osmEditDialog.js:228 src/translations.js:296 msgid "Multiple Religions" msgstr "धेरैवटा क्षेत्र" #: src/osmEditDialog.js:229 src/translations.js:297 msgid "Paganism" msgstr "पगानि धर्म" #: src/osmEditDialog.js:230 src/translations.js:298 msgid "Pastafarianism" msgstr "पास्ताफारियनवाद" #: src/osmEditDialog.js:231 src/translations.js:299 msgid "Scientology" msgstr "वैज्ञानिक विज्ञान" #: src/osmEditDialog.js:232 src/translations.js:300 msgid "Shinto" msgstr "शिन्टो धर्म" #: src/osmEditDialog.js:233 src/translations.js:301 msgid "Sikhism" msgstr "सिख धर्म" #: src/osmEditDialog.js:234 src/translations.js:302 msgid "Spiritualism" msgstr "आध्यात्मिकता" #: src/osmEditDialog.js:235 src/translations.js:303 msgid "Taoism" msgstr "टाओ धर्म" #: src/osmEditDialog.js:236 src/translations.js:304 msgid "Unitarian Universalism" msgstr "यूनिटेरिया यूनिवर्सलवाद" #: src/osmEditDialog.js:237 src/translations.js:305 msgid "Voodoo" msgstr "वूडू" #: src/osmEditDialog.js:238 src/translations.js:306 msgid "Yazidism" msgstr "याजिद्वाद" #: src/osmEditDialog.js:239 src/translations.js:307 msgid "Zoroastrianism" msgstr "पारसी धर्म" #: src/osmEditDialog.js:242 msgid "Toilets" msgstr "शौचालय" #: src/osmEditDialog.js:249 msgid "Note" msgstr "द्रष्टव्य" #: src/osmEditDialog.js:252 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" "तत्वको बारेमा गैर-स्पष्ट जानकारीको बारेमा अन्य म्यापरहरूलाई सूचित गर्न प्रयोग गरिएको " "जानकारी, यसलाई सिर्जना गर्दा लेखकको मनसाय, वा थप सुधारको लागि संकेतहरू।" #: src/osmEditDialog.js:347 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "OpenStreetMap मा थप्नुहोस्" #: src/osmEditDialog.js:401 msgid "Select Type" msgstr "प्रकार चयन गर्नुहोस्" #: src/osmEditDialog.js:523 msgid "Done" msgstr "सम्पन्न भयो" #: src/photonUtils.js:118 msgid "Unnamed place" msgstr "बेनामी ठाउँ" #: src/placeEntry.js:223 msgid "Failed to parse Geo URI" msgstr "जियो यूआरआई पद वर्णन गर्न असफल भयो" #: src/placeEntry.js:236 msgid "Failed to parse Maps URI" msgstr "मानचित्र यूआरआई पद वर्णन गर्न असफल भयो" #: src/placeView.js:250 msgid "Coordinates" msgstr "समकक्ष" #: src/placeView.js:254 msgid "Accuracy" msgstr "शुद्धता" #. Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) #: src/placeView.js:257 #, javascript-format msgid "Accuracy: %s" msgstr "शुद्धता: %s" #. since the phone numbers are typically always rendered #. * left-to-right, insert an explicit LRM char to avoid issues #. * with phone numbers in international format starting with a + #. * which is considered a "weak" character to determine Unicode #. * text direction #. #: src/placeView.js:276 msgid "Phone number" msgstr "फोन नम्बर" #. Translators: #. * The establishment offers customers to purchase meals #. * (or similar) to be consumed elsewhere #. #: src/placeView.js:303 msgid "Offers takeaway" msgstr "लैजाने प्रस्ताव" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed on-premise. #. #: src/placeView.js:311 msgid "Does not offer takeaway" msgstr "लैजाने प्रस्ताव छैन" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed elsewhere. E.g. #. * there is no seating on-premise for eating/drinking #. #: src/placeView.js:320 msgid "Only offers takeaway" msgstr "टेकअवे मात्र प्रदान गर्दछ" #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/placeView.js:337 msgid "Public internet access" msgstr "सार्वजनिक इन्टरनेट पहुँच" #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/placeView.js:346 msgid "No internet access" msgstr "इन्टरनेट पहुँच छैन" #. Translators: #. * This means a WLAN Hotspot, also known as wireless, wifi or Wi-Fi. #. #: src/placeView.js:354 msgid "Public Wi-Fi" msgstr "सार्वजनिक वाई-फाई" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/placeView.js:362 msgid "Wired internet access" msgstr "तारजडितको इन्टरनेट पहुँच" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/placeView.js:370 msgid "Computers available for use" msgstr "प्रयोग गर्नका लागि कम्प्युटरहरू उपलब्ध छन्" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/placeView.js:378 msgid "Internet assistance available" msgstr "इन्टरनेट सहायता उपलब्ध छ" #: src/placeView.js:384 msgid "No toilets available" msgstr "शौचालय उपलब्ध छैन" #: src/placeView.js:387 msgid "Toilets available" msgstr "शौचालय उपलब्ध छ" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #: src/placeView.js:396 msgid "Wheelchair accessible" msgstr "ह्विलचेयर को पहुँच योग्य" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/placeView.js:406 msgid "Limited wheelchair accessibility" msgstr "सीमित ह्विलचेयर को पहुँच" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #: src/placeView.js:415 msgid "Not wheelchair accessible" msgstr "ह्विलचेयर पहुँचयोग्य छैन" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/placeView.js:425 msgid "Designated for wheelchair users" msgstr "व्हीलचेयर प्रयोगकर्ताहरूको लागि तोकिएको" #. * #. * Translators: this is a label indicating an altitude below #. * sea level, where the %s placeholder is the altitude relative #. * to mean sea level in the "negative direction" #. #: src/placeView.js:456 #, javascript-format msgid "%s below sea level" msgstr "समुद्र सतह भन्दा तल %s" #. * #. * Translators: this indicates a place is located at (or very #. * close to) mean sea level #. #: src/placeView.js:463 msgid "At sea level" msgstr "समुद्र सतहमा" #: src/placeView.js:472 msgid "Religion:" msgstr "धर्म:" #: src/place.js:531 msgid "Place not found in OpenStreetMap" msgstr "OpenStreetMap मा स्थान फेला परेन" #: src/place.js:538 msgid "Coordinates in URL are not valid" msgstr "URL मा समन्वयहरू अवैध" #: src/place.js:547 msgid "URL is not supported" msgstr "URL समर्थित छैन" #: src/printLayout.js:362 #, javascript-format msgid "From %s to %s" msgstr "%s बाट %s" #: src/printOperation.js:50 msgid "Loading map tiles for printing" msgstr "मुद्रणका लागि मानचित्र टायल हरू लोड गर्दै" #: src/printOperation.js:51 msgid "You can abort printing if this takes too long" msgstr "यदि यसले धेरै समय लिन्छ भने तपाईँले मुद्रण परित्याग गर्न सक्नुहुन्छ ।" #: src/printOperation.js:53 msgid "Abort printing" msgstr "परित्याग गर्नुहोस्" #. Translators: this is add via location tooltip #: src/routeEntry.js:69 msgid "Add via location" msgstr "स्थान मार्फत थप्नुहोस्" #. Translators: this is remove via location tooltip #: src/routeEntry.js:79 msgid "Remove via location" msgstr "स्थान मार्फत हटाउनुहोस" #. Translators: this is reverse route tooltip #: src/routeEntry.js:85 msgid "Reverse route" msgstr "उल्टो मार्ग" #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:92 #, javascript-format msgid "Add %s to %s" msgstr "%s मा %s थप्नुहोस्" #: src/sendToDialog.js:189 msgid "Failed to open URI" msgstr "URI खोल्न असफल" #: src/sendToDialog.js:256 #, javascript-format msgid "Open with %s" msgstr "%sसंग खोल्नुहोस्" #: src/shapeLayer.js:98 msgid "failed to load file" msgstr "फाइल लोड गर्न असफल भयो" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:348 #, javascript-format msgid "Estimated time: %s" msgstr "अन्दजि समय: %s" #: src/sidebar.js:418 #, javascript-format msgid "Itineraries provided by %s" msgstr "%s द्वारा प्रदान गरिएको यात्रा कार्यक्रम" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:39 #, javascript-format msgid "Start at %s" msgstr "Start at %s" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:45 msgid "Start" msgstr "सुरु" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:63 #, javascript-format msgid "Walk %s" msgstr "%s जानुहोस्" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:77 #, javascript-format msgid "Arrive at %s" msgstr "Arrive at %s" #: src/transit.js:79 src/transitplugins/openTripPlanner.js:1134 msgid "Arrive" msgstr "आइपुग्छन्" #: src/transitLegRow.js:78 msgid "Show walking instructions" msgstr "हिँड्ने निर्देश देखाउनुहोस्" #: src/transitLegRow.js:79 msgid "Hide walking instructions" msgstr "हिँड्ने निर्देशन लुकाउनुहोस्" #: src/transitMoreRow.js:37 msgid "Load earlier alternatives" msgstr "पहिलेका विकल्पहरू लोड गर्नुहोस्" #: src/transitMoreRow.js:39 msgid "Load later alternatives" msgstr "पछिका विकल्पहरू लोड गर्नुहोस्" #: src/transitMoreRow.js:52 msgid "No earlier alternatives found." msgstr "पहिलेको विकल्प फेला परेन ।" #: src/transitMoreRow.js:54 msgid "No later alternatives found." msgstr "पछिल्लो विकल्प फेला परेन । " #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:136 msgctxt "month-day-date" msgid "%b %e" msgstr "%b %e" #: src/transitPlan.js:170 msgid "No timetable data found for this route." msgstr "यो मार्गका लागि कुनै समय तालिका फेला परेन ।" #: src/transitPlan.js:178 msgid "No provider found for this route." msgstr "यो मार्गका लागि प्रदायक फेला परेन ।" #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:295 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:324 #, javascript-format msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "%s मिनेट" msgstr[1] "%s मिनेट" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:336 #, javascript-format msgid "%s hour" msgid_plural "%s hours" msgstr[0] "%s घण्टा" msgstr[1] "%s घण्टा" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:344 #, javascript-format msgid "%s:%s hour" msgid_plural "%s:%s hours" msgstr[0] "%s:%s घण्टा" msgstr[1] "%s:%s घण्टा" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:698 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: src/translations.js:55 msgid "Around the clock" msgstr "२४सै घण्टा" #: src/translations.js:57 msgid "From sunrise to sunset" msgstr "सूर्योदयदेखि सूर्यास्तसम्म" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:123 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s,%s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:137 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s,%s,%s" #: src/translations.js:156 msgid "Every day" msgstr "प्रत्येकदिन" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:168 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:179 msgid "Public holidays" msgstr "सार्वजनिक बिदा" #: src/translations.js:181 msgid "School holidays" msgstr "स्कुल विदा" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:221 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: src/translations.js:235 msgid "not open" msgstr "खोलेको छैन" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:250 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s-%s" #. Translators: Accuracy of user location information #: src/utils.js:256 msgid "Unknown" msgstr "अज्ञात" #. Translators: Accuracy of user location information #: src/utils.js:259 msgid "Exact" msgstr "दुरुस्त" #. Translators: this is a duration with only hours, using #. * an abbreviation for hours, corresponding to 'h' in English #. #: src/utils.js:360 #, javascript-format msgid "%s h" msgstr "%s घण्टा" #. Translators: this is a duration with hours and minutes parts #. * using abbreviations for hours and minutes, corresponding to 'h' #. * and 'min' in English. The minutes has appropriate plural variations #. #: src/utils.js:366 #, javascript-format msgid "%s h %s min" msgid_plural "%s h %s min" msgstr[0] "%s घण्टा %s मिनेट" msgstr[1] "%s घण्टा %s मिनेट" #. Translators: this is a duration with minutes part #. * using abbreviation for minutes, corresponding to 'min' in English #. * with appropriate plural variations #. #: src/utils.js:373 #, javascript-format msgid "%s min" msgid_plural "%s min" msgstr[0] "%s मिनेट" msgstr[1] "%s मिनेट" #. Translators: this is a duration of less than one minute #. * with seconds using an abbreviation for seconds, corresponding to #. * 's' in English with appropriate plural forms #. #: src/utils.js:379 #, javascript-format msgid "%s s" msgid_plural "%s s" msgstr[0] "%s सेकेन्ड" msgstr[1] "%s सेकेन्ड" #. Translators: This is a distance measured in kilometers #: src/utils.js:390 #, javascript-format msgid "%s km" msgstr "%s किलोमिटर" #. Translators: This is a distance measured in meters #: src/utils.js:393 #, javascript-format msgid "%s m" msgstr "%s मिटर" #. Translators: This is a distance measured in miles #: src/utils.js:401 #, javascript-format msgid "%s mi" msgstr "%s माइल" #. Translators: This is a distance measured in feet #: src/utils.js:404 #, javascript-format msgid "%s ft" msgstr "%sफिट" #: src/transitplugins/goMetro.js:61 msgid "This plugin doesn't support latest arrival" msgstr "यो प्लगइनले नवीनतम आगमन समर्थन गर्दैन ।" #: src/transitplugins/openTripPlanner.js:1195 #, javascript-format msgid "Continue on %s" msgstr "%s जारी राख्नुहोस्" #: src/transitplugins/openTripPlanner.js:1197 msgid "Continue" msgstr "जारी राख्नुहोस्" #: src/transitplugins/openTripPlanner.js:1200 #, javascript-format msgid "Turn left on %s" msgstr "%s मा बायाँ घुम्नुहोस्" #: src/transitplugins/openTripPlanner.js:1202 msgid "Turn left" msgstr "बायाँ घुम्नुहोस्" #: src/transitplugins/openTripPlanner.js:1205 #, javascript-format msgid "Turn slightly left on %s" msgstr "%s मा थोरै बायाँ घुमाउनुहोस्" #: src/transitplugins/openTripPlanner.js:1207 msgid "Turn slightly left" msgstr "थोरै बायाँ घुमाउनुहोस्" #: src/transitplugins/openTripPlanner.js:1210 #, javascript-format msgid "Turn sharp left on %s" msgstr "%s मा तीव्र बायाँ घुम्नुहोस्" #: src/transitplugins/openTripPlanner.js:1212 msgid "Turn sharp left" msgstr "तीव्र बायाँ घुम्नुहोस्" #: src/transitplugins/openTripPlanner.js:1215 #, javascript-format msgid "Turn right on %s" msgstr "%s दायाँ मोड्नुहोस्" #: src/transitplugins/openTripPlanner.js:1217 msgid "Turn right" msgstr "दायाँ घुम्नुहोस्" #: src/transitplugins/openTripPlanner.js:1220 #, javascript-format msgid "Turn slightly right on %s" msgstr "%s मा थोरै दायाँ घुमाउनुहोस्" #: src/transitplugins/openTripPlanner.js:1222 msgid "Turn slightly right" msgstr "थोरै दायाँ घुमाउनुहोस्" #: src/transitplugins/openTripPlanner.js:1225 #, javascript-format msgid "Turn sharp right on %s" msgstr "%s मा तीव्र दायाँ घुम्नुहोस्" #: src/transitplugins/openTripPlanner.js:1227 msgid "Turn sharp right" msgstr "तीव्र दायाँ घुम्नुहोस्" #: src/transitplugins/openTripPlanner.js:1233 #, javascript-format msgid "At the roundabout, take exit %s" msgstr "घुमाउरो स्थानमा, %s बाहिर निस्कनुहोस्" #: src/transitplugins/openTripPlanner.js:1235 #, javascript-format msgid "At the roundabout, take exit to %s" msgstr "घुमाउरो स्थानमा, %s मा निस्कनुहोस्" #: src/transitplugins/openTripPlanner.js:1237 msgid "Take the roundabout" msgstr "राउन्डअबाउट लिनुहोस्" #: src/transitplugins/openTripPlanner.js:1241 #, javascript-format msgid "Take the elevator and get off at %s" msgstr "लिफ्ट लिनुहोस् र %s मा निकल्नुहोस्" #: src/transitplugins/openTripPlanner.js:1243 msgid "Take the elevator" msgstr "लिफ्ट लिनुहोस्" #: src/transitplugins/openTripPlanner.js:1247 #, javascript-format msgid "Make a left u-turn onto %s" msgstr "%s मा बायाँ यू-टर्न गर्नुहोस्" #: src/transitplugins/openTripPlanner.js:1249 msgid "Make a left u-turn" msgstr "बायाँ यू-टर्न गर्नुहोस्" #: src/transitplugins/openTripPlanner.js:1252 #, javascript-format msgid "Make a right u-turn onto %s" msgstr "%s मा दायाँ यू-टर्न गर्नुहोस्" #: src/transitplugins/openTripPlanner.js:1254 msgid "Make a right u-turn" msgstr "दायाँ यू-टर्न गर्नुहोस्" #~ msgid "Visibility" #~ msgstr "दृश्यात्मक" #~ msgid "Post on Facebook" #~ msgstr "फेसबुकमा पोस्ट गर्नुहोस्" #~ msgid "Post on Twitter" #~ msgstr "ट्विट्टरमा पोस्ट गर्नुहोस्" #, fuzzy #~ msgid "C_heck in" #~ msgstr "सबै फोल्डरहरू भित्र नयाँ सन्देशहरुका लागि जाँच गर्नुहोस्" #~ msgid "Public" #~ msgstr "सार्वजनिक" #~ msgid "Followers" #~ msgstr "अनुयायीहरू" #~ msgid "Private" #~ msgstr "व्यक्तिगत" #, fuzzy #~ msgid "Include route and markers" #~ msgstr "सूचक सम्मिलित गर्नुहोस्" #~ msgid "Show Labels" #~ msgstr "लेबुल देखाउनुहोस्" #~ msgid "Maps is offline!" #~ msgstr "मानचित्र अफलाइन छ!" #~ msgid "Email" #~ msgstr "इमेल" #~ msgid "Password" #~ msgstr "पासवर्ड" #~ msgctxt "dialog title" #~ msgid "Edit on OpenStreetMap" #~ msgstr "OpenStreetMap सम्पादन" #, fuzzy #~ msgid "Check In…" #~ msgstr "जाँच" #~ msgid "Show more results" #~ msgstr "अरू धेरै नतिजा देखाउनुहोस्" #~ msgid "Ignore network availability" #~ msgstr "सञ्जाल उपलब्धता बेबास्ता गर्नुहोस्" #~ msgid "Select an account" #~ msgstr "खाता चयन गर्नुहोस्" #~ msgid "Loading" #~ msgstr "लोड गर्दै" #~ msgid "Select a place" #~ msgstr "स्थान चयन गर्नुहोस्" #, javascript-format #~ msgid "Write an optional message to check in to %s." #~ msgstr "%s मा जाँच गर्न एउटा वैकल्पिक सन्देश लेख्नुहोस् ।" #, fuzzy, javascript-format #~ msgid "Cannot find “%s” in the social service" #~ msgstr "ड्राइभ भेटिएन %s" #~ msgid "A map application for GNOME" #~ msgstr "जिनोमको मानचित्र अनुप्रयोग" #~ msgid "GNOME Maps" #~ msgstr "जिनोम मानचित्र" #~ msgid "Quit" #~ msgstr "अन्त्य गर्नुहोस्" #~ msgid "Everyone" #~ msgstr "सबैजना" #~ msgid "Friends of friends" #~ msgstr "साथीको साथी" #~ msgid "Just friends" #~ msgstr "साथीमात्र" #~ msgid "Just me" #~ msgstr "म मात्रै" #, fuzzy #~ msgid "Load Map Layer" #~ msgstr "छवि मानचित्र लोड गर्नुहोस्" #, fuzzy #~ msgid "Check in here" #~ msgstr "यहाँ ल्याउनुहोस्" #, fuzzy #~ msgid "Don’t have an account?" #~ msgstr "यो प्रदर्शन प्रयोग नगर्नु" #~ msgid "Show more information" #~ msgstr "बढी सूचना" #~ msgid "Press enter to search" #~ msgstr "खोजको लागि इन्टर थिच्नुहोस्" #~ msgid "Open Layer" #~ msgstr "तह खोल्नुहोस्" #, fuzzy #~ msgid "Route search by OpenTripPlanner" #~ msgstr "राउट स्विच प्रक्रियाकर्ता" #~ msgid "OK" #~ msgstr "OK" #~ msgid "Population:" #~ msgstr "जनसङ्ख्या :" #~ msgid "Altitude:" #~ msgstr "ऊचाई:" #, fuzzy #~ msgid "Opening hours:" #~ msgstr "खुल्दैछ" #, fuzzy #~ msgid "Internet access:" #~ msgstr "वेब र इमेल जस्तो इन्टरनेट पहुँचका लागि कार्यक्रम" #~ msgid "Toilets:" #~ msgstr "शौचालय:" #, fuzzy #~ msgid "Wheelchair access:" #~ msgstr "पहुँच:" #~ msgid "Phone:" #~ msgstr "फोन:" #~ msgid "yes" #~ msgstr "ठिक छ" #~ msgid "limited" #~ msgstr "सिमित" #~ msgid "no" #~ msgstr "होइन" #, javascript-format #~ msgctxt "time range list" #~ msgid "%s %s" #~ msgstr "%s %s" #, javascript-format #~ msgctxt "time range component" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgid "wired" #~ msgstr "तारजडिट" #~ msgid "terminal" #~ msgstr "टर्मिनल" #~ msgid "service" #~ msgstr "सेवा" #, javascript-format #~ msgid "%f h" #~ msgstr "%f h" #, javascript-format #~ msgid "%f min" #~ msgstr "%f min" #, javascript-format #~ msgid "%f s" #~ msgstr "%f s" #~ msgid "I’m here!" #~ msgstr "म यहा छु" #~ msgid "Country code: %s" #~ msgstr "देश मानक:%s" #~ msgid "%f km²" #~ msgstr "%f वर्गकिलोमिटर" #~ msgid "%f km" #~ msgstr "%f किलोमिटर" #~ msgid "%f m" #~ msgstr "%f m" 070701000001DB000081A400000000000000000000000166413409000101B9000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/nl.po# Dutch translation for gnome-maps # Copyright (C) 2013, 2014 # This file is distributed under the same license as the GNOME Maps package. # Check-in: voorlopig even onvertaald gelaten - Hannie # Erwin Poeze , 2013, 2014. # Reinout van Schouwen , 2013. # Hannie Dumoleyn , 2015. # Nathan Follens , 2015-2024. # Justin van Steijn , 2015-2018. # Philip Goto , 2022. msgid "" msgstr "" "Project-Id-Version: gnome-maps 3.16\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2024-02-14 22:30+0000\n" "PO-Revision-Date: 2024-02-18 12:46+0100\n" "Last-Translator: Nathan Follens \n" "Language-Team: GNOME-NL \n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.4.2\n" "X-Project-Style: gnome\n" #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.appdata.xml.in.in:6 data/org.gnome.Maps.desktop.in.in:4 #: data/ui/main-window.ui:27 src/application.js:64 src/mainWindow.js:147 #: src/mainWindow.js:647 msgid "Maps" msgstr "Kaarten" #: data/org.gnome.Maps.appdata.xml.in.in:7 msgid "Find places around the world" msgstr "Vind plaatsen over de hele wereld" #: data/org.gnome.Maps.appdata.xml.in.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "Kaarten geeft u snelle toegang tot kaarten over de hele wereld. U kunt snel " "de plaats waarnaar u op zoek bent vinden door te zoeken naar een stad of de " "straat, of de plek opzoeken om een vriend te ontmoeten." #: data/org.gnome.Maps.appdata.xml.in.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "Kaarten gebruikt de gemeenschappelijk opgebouwde OpenStreetMap-database, " "gemaakt door honderdduizenden mensen over de hele wereld." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Maps.appdata.xml.in.in:451 src/mainWindow.js:644 msgid "The GNOME Project" msgstr "Het GNOME-project" #: data/org.gnome.Maps.desktop.in.in:5 msgid "A simple maps application" msgstr "Een eenvoudige kaartentoepassing" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in.in:14 msgid "Maps;" msgstr "Maps;Kaart;Kaarten;" #: data/org.gnome.Maps.desktop.in.in:17 msgid "Allows your location to be shown on the map." msgstr "Geeft uw locatie weer op de kaart." #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "laatst bekeken locatie" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "Coördinaten van de laatst bekeken locatie." #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "zoomen" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "Zoomniveau" #: data/org.gnome.Maps.gschema.xml:21 msgid "rotation" msgstr "rotatie" #: data/org.gnome.Maps.gschema.xml:22 msgid "Map rotation in radians" msgstr "Maprotatie in radialen" #: data/org.gnome.Maps.gschema.xml:26 msgid "Map type" msgstr "Kaarttype" #: data/org.gnome.Maps.gschema.xml:27 msgid "The type of map to display (street, aerial, etc.)" msgstr "Het type kaart om weer te geven (straten, lucht, enz.)" #: data/org.gnome.Maps.gschema.xml:31 msgid "Window size" msgstr "Venstergrootte" #: data/org.gnome.Maps.gschema.xml:32 msgid "Window size (width and height)." msgstr "Venstergrootte (breedte en hoogte)." #: data/org.gnome.Maps.gschema.xml:36 msgid "Window position" msgstr "Vensterpositie" #: data/org.gnome.Maps.gschema.xml:37 msgid "Window position (X and Y)." msgstr "Vensterpositie (X en Y)." #: data/org.gnome.Maps.gschema.xml:41 msgid "Window maximized" msgstr "Venstergrootte gemaximaliseerd" #: data/org.gnome.Maps.gschema.xml:42 msgid "Window maximization state" msgstr "Venstermaximalisatiestaat" #: data/org.gnome.Maps.gschema.xml:46 msgid "Maximum number of search results" msgstr "Maximum aantal zoekresultaten" #: data/org.gnome.Maps.gschema.xml:47 msgid "Maximum number of search results from geocode search." msgstr "Maximum aantal resultaten van zoeken op geografische positie." #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent places to store" msgstr "Aantal recente locaties om op te slaan" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited places to store." msgstr "Aantal recent bezochte locaties om op te slaan." #: data/org.gnome.Maps.gschema.xml:56 msgid "Number of recent routes to store" msgstr "Aantal recente routes om op te slaan" #: data/org.gnome.Maps.gschema.xml:57 msgid "Number of recently visited routes to store." msgstr "Aantal recent afgelegde routes om op te slaan." #: data/org.gnome.Maps.gschema.xml:61 msgid "OpenStreetMap username or email address" msgstr "OpenStreetMap-gebruikersnaam of -e-mailadres" #: data/org.gnome.Maps.gschema.xml:62 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "" "Geeft aan of de gebruiker aangemeld is om OpenStreetMap-gegevens te bewerken." #: data/org.gnome.Maps.gschema.xml:66 msgid "Last used transportation type for routing" msgstr "Laatst gebruikte transporttype voor routering" #: data/org.gnome.Maps.gschema.xml:70 msgid "Show scale" msgstr "Schaal tonen" #: data/org.gnome.Maps.gschema.xml:71 msgid "Whether to show the scale." msgstr "Of de schaal getoond wordt." #: data/ui/context-menu.ui:6 msgid "Route from Here" msgstr "Route vanaf hier" #: data/ui/context-menu.ui:10 msgid "Add Intermediate Destination" msgstr "Tussenstop toevoegen" #: data/ui/context-menu.ui:14 msgid "Route to Here" msgstr "Route naar hier" #: data/ui/context-menu.ui:20 msgid "What's Here?" msgstr "Wat bevindt zich hier?" #: data/ui/context-menu.ui:24 msgid "Copy Location" msgstr "Locatie kopiëren" #: data/ui/context-menu.ui:28 msgid "Add to OpenStreetMap…" msgstr "Toevoegen aan OpenStreetMap…" #: data/ui/export-view-dialog.ui:7 msgid "Export view" msgstr "Weergave exporteren" #: data/ui/export-view-dialog.ui:16 data/ui/send-to-dialog.ui:10 #: data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "_Annuleren" #: data/ui/export-view-dialog.ui:26 msgid "_Export" msgstr "_Exporteren" #. Translators: This is a tooltip #: data/ui/favorite-list-row.ui:72 msgid "Remove Favorite" msgstr "Verwijderen uit favorieten" #: data/ui/favorites-popover.ui:11 msgid "No Favorites" msgstr "Geen favorieten" #: data/ui/favorites-popover.ui:12 msgid "Add places to your favorites to get them listed here" msgstr "Voeg locaties toe aan uw favorieten om ze hier weer te geven" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:11 src/geoclue.js:106 msgid "Current Location" msgstr "Huidige locatie" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:19 msgid "Layers" msgstr "Lagen" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:11 msgid "Print Route" msgstr "Route afdrukken" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:21 msgid "Favorites" msgstr "Bladwijzers" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:30 msgid "Route Planner" msgstr "Routeplanner" #: data/ui/help-overlay.ui:12 msgctxt "shortcut window" msgid "General" msgstr "Algemeen" #: data/ui/help-overlay.ui:15 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "Sneltoetsen tonen" #: data/ui/help-overlay.ui:21 msgctxt "shortcut window" msgid "Search" msgstr "Zoeken" #: data/ui/help-overlay.ui:27 msgctxt "shortcut window" msgid "Explore points-of-interest" msgstr "Nuttige plaatsen ontdekken" #: data/ui/help-overlay.ui:33 msgctxt "shortcut window" msgid "Show last search results" msgstr "Laatste zoekresultaten tonen" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "Routeplanner in/uitschakelen" #: data/ui/help-overlay.ui:45 msgctxt "shortcut window" msgid "Print route" msgstr "Route afdrukken" #: data/ui/help-overlay.ui:51 msgctxt "shortcut window" msgid "Quit" msgstr "Afsluiten" #: data/ui/help-overlay.ui:57 msgctxt "shortcut window" msgid "Open main menu" msgstr "Hoofdmenu openen" #: data/ui/help-overlay.ui:65 msgctxt "shortcut window" msgid "Map View" msgstr "Kaartweergave" #: data/ui/help-overlay.ui:68 msgctxt "shortcut window" msgid "Zoom in" msgstr "Inzoomen" #: data/ui/help-overlay.ui:74 msgctxt "shortcut window" msgid "Zoom out" msgstr "Uitzoomen" #: data/ui/help-overlay.ui:80 msgctxt "shortcut window" msgid "Rotate clockwise" msgstr "Rechtsom draaien" #: data/ui/help-overlay.ui:86 msgctxt "shortcut window" msgid "Rotate counter-clockwise" msgstr "Linksom draaien" #: data/ui/help-overlay.ui:92 msgctxt "shortcut window" msgid "Reset rotation" msgstr "Rotatie herstellen" #: data/ui/help-overlay.ui:98 msgctxt "shortcut window" msgid "Toggle scale" msgstr "Schaal in/uitschakelen" #: data/ui/help-overlay.ui:104 msgctxt "shortcut window" msgid "Go to current location" msgstr "Ga naar huidige locatie" #: data/ui/help-overlay.ui:114 msgctxt "shortcut window" msgid "Switch to street view" msgstr "Overschakelen naar straatbeeld" #: data/ui/help-overlay.ui:121 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "Overschakelen naar luchtbeeld" #: data/ui/help-overlay.ui:127 msgctxt "shortcut window" msgid "Open shape layer" msgstr "Vormlaag openen" #: data/ui/layers-popover.ui:7 msgid "Show Scale" msgstr "Schaal tonen" #: data/ui/layers-popover.ui:16 msgid "Enable Experimental Map" msgstr "Experimentele kaart inschakelen" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:21 msgid "Open Shape Layer…" msgstr "Vormlaag openen…" #: data/ui/main-window.ui:8 msgid "Set up OpenStreetMap Account…" msgstr "OpenStreetMap-account instellen…" #: data/ui/main-window.ui:12 msgid "Export as Image…" msgstr "Exporteren als afbeelding…" #: data/ui/main-window.ui:17 msgid "_Keyboard Shortcuts" msgstr "S_neltoetsen" #: data/ui/main-window.ui:22 msgid "About Maps" msgstr "Over Kaarten" #: data/ui/main-window.ui:48 msgid "Main Menu" msgstr "Hoofdmenu" #: data/ui/osm-account-dialog.ui:5 msgid "OpenStreetMap Account" msgstr "OpenStreetMap-account" #: data/ui/osm-account-dialog.ui:31 msgid "Sign In To Edit Maps" msgstr "Meld u aan om kaarten te bewerken" #: data/ui/osm-account-dialog.ui:32 msgid "Help to improve the map, using an OpenStreetMap account." msgstr "" "Help om de kaart te verbeteren, door gebruik te maken van een OpenStreetMap-" "account." #: data/ui/osm-account-dialog.ui:36 msgid "Sign In" msgstr "Aanmelden" #: data/ui/osm-account-dialog.ui:59 msgid "Verification" msgstr "Verificatie" #: data/ui/osm-account-dialog.ui:60 msgid "" "Copy the verification code shown when authorizing access in the browser." msgstr "" "Kopieer de weergegeven verificatiecode wanneer u via de browser toegang " "verleent." #: data/ui/osm-account-dialog.ui:69 msgid "Verification Code" msgstr "Verificatiecode" #: data/ui/osm-account-dialog.ui:75 msgid "Verify" msgstr "Verifiëren" #: data/ui/osm-account-dialog.ui:110 msgid "Signed In" msgstr "Aangemeld" #: data/ui/osm-account-dialog.ui:111 msgid "Your OpenStreetMap account is active." msgstr "Uw OpenStreetMap-account is actief." #: data/ui/osm-account-dialog.ui:129 msgid "Sign Out" msgstr "Afmelden" #: data/ui/osm-edit-address.ui:11 msgid "Street" msgstr "Straat" #: data/ui/osm-edit-address.ui:22 msgid "House number" msgstr "Huisnummer" #: data/ui/osm-edit-address.ui:33 msgid "Postal code" msgstr "Postcode" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:44 msgid "City" msgstr "Plaats" #: data/ui/osm-edit-dialog.ui:8 msgctxt "dialog title" msgid "Edit on OpenStreetMap" msgstr "Bewerken op OpenStreetMap" #: data/ui/osm-edit-dialog.ui:57 msgid "Type" msgstr "Soort" #: data/ui/osm-edit-dialog.ui:79 msgid "None" msgstr "Geen" #: data/ui/osm-edit-dialog.ui:108 msgid "Add Field" msgstr "Veld toevoegen" #: data/ui/osm-edit-dialog.ui:130 msgid "Comment" msgstr "Commentaar" #: data/ui/osm-edit-dialog.ui:158 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "Wijzigingen aan de kaart zijn zichtbaar op alle kaarten\n" "die OpenStreetMap-gegevens gebruiken." #: data/ui/osm-edit-dialog.ui:186 msgid "Recently Used" msgstr "Recent gebruikt" #: data/ui/osm-edit-dialog.ui:225 src/mapView.js:663 msgid "Cancel" msgstr "Annuleren" #: data/ui/osm-edit-dialog.ui:238 src/osmEditDialog.js:531 msgid "Next" msgstr "Volgende" #: data/ui/osm-edit-wikipedia.ui:8 msgid "Article" msgstr "Artikel" #: data/ui/osm-edit-wikipedia.ui:21 msgid "Wikidata tag" msgstr "Wikidata-tag" #: data/ui/osm-edit-wikipedia.ui:32 msgid "Load Wikidata tag for article" msgstr "Wikidata-tag voor artikel laden" #: data/ui/place-popover.ui:23 src/searchBar.js:55 msgid "Explore Nearby Places" msgstr "Plaatsen in de buurt ontdekken" #: data/ui/place-popover.ui:82 src/application.js:277 msgid "No results found" msgstr "Geen resultaten gevonden" #: data/ui/place-popover.ui:92 src/application.js:255 msgid "An error has occurred" msgstr "Er is een fout opgetreden" #. Translators: This is a tooltip #: data/ui/route-entry.ui:12 msgid "Change Route Order" msgstr "Volgorde van route wijzigen" #: data/ui/send-to-dialog.ui:7 msgid "Open Location" msgstr "Locatie openen" #: data/ui/send-to-dialog.ui:64 msgid "Copy" msgstr "Kopiëren" #: data/ui/send-to-dialog.ui:70 msgid "Send To…" msgstr "Versturen naar…" #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:62 msgid "Open Shape Layer" msgstr "Vormlaag openen" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "_Openen" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:32 msgid "Toggle visible" msgstr "Zichtbaar/onzichtbaar maken" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:44 msgid "Remove Shape Layer" msgstr "Vormlaag verwijderen" #: data/ui/sidebar.ui:207 msgid "Route search by GraphHopper" msgstr "Routezoeken door GraphHopper" #: data/ui/sidebar.ui:272 msgid "" "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of " "transportation,\n" "e.g. a national provider might not include airlines, and a local provider " "could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" "Routering voor openbaar vervoer wordt aangeboden door diensten van derde " "partijen.\n" "GNOME kan de juistheid van de hier weergegeven routes en dienstregelingen " "niet garanderen.\n" "Merk op dat sommige leveranciers mogelijk niet alle beschikbare " "transportmodi weergeven,\n" "bv. een nationale leverancier geeft mogelijk geen vliegroutes weer, en een " "lokale leverancier\n" "geeft mogelijk niet alle regionale treinen weer.\n" "De hier weergegeven namen en merknamen worden, waar toepasbaar, beschouwd " "als\n" "geregistreerde handelsmerken." #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:98 msgid "Hide intermediate stops and information" msgstr "Tussenstops en informatie verbergen" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:156 msgid "Show intermediate stops and information" msgstr "Tussenstops en informatie tonen" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:16 msgid "Leave Now" msgstr "Nu vertrekken" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:17 msgid "Leave By" msgstr "Vertrekken tegen" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:18 msgid "Arrive By" msgstr "Aankomen tegen" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:85 msgid "Show" msgstr "Tonen" #: data/ui/transit-options-panel.ui:95 msgid "Buses" msgstr "Bussen" #: data/ui/transit-options-panel.ui:101 msgid "Trams" msgstr "Trams" #: data/ui/transit-options-panel.ui:107 msgid "Trains" msgstr "Treinen" #: data/ui/transit-options-panel.ui:113 msgid "Subway" msgstr "Metro" #: data/ui/transit-options-panel.ui:119 msgid "Ferries" msgstr "Veerboten" #: data/ui/transit-options-panel.ui:125 msgid "Airplanes" msgstr "Vliegtuigen" #. Translators: This is a tooltip #: data/ui/place-bar.ui:33 data/ui/place-buttons.ui:27 msgid "Share Location" msgstr "Locatie delen" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:11 msgid "Add to new route" msgstr "Aan nieuwe route toevoegen" #. Translators: This is the button to find a route to a place #: data/ui/place-buttons.ui:15 msgid "Directions" msgstr "Routebeschrijving" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:36 msgid "Mark as Favorite" msgstr "Toevoegen aan favorieten" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:44 msgid "Edit on OpenStreetMap" msgstr "Bewerken op OpenStreetMap" #. Translators: This is a tooltip #: data/ui/place-view.ui:52 msgid "Share location" msgstr "Locatie delen" #: data/ui/poi-category-goback-row.ui:22 msgid "Back to Main Categories" msgstr "Terug naar hoofdcategorieën" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:19 msgid "Reset Rotation" msgstr "Rotatie herstellen" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:32 msgid "Zoom Out" msgstr "Uitzoomen" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:43 src/mapView.js:1238 msgid "Zoom In" msgstr "Inzoomen" #: lib/maps-file-data-source.c:262 lib/maps-file-data-source.c:338 #: lib/maps-file-data-source.c:418 msgid "Failed to find tile structure in directory" msgstr "Kon de tegelstructuur in de map niet vinden" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "Kon XML-document niet ontleden" #: lib/maps-osm.c:250 lib/maps-osm.c:403 msgid "Missing required attributes" msgstr "Benodigde eigenschappen ontbreken" #: lib/maps-osm.c:451 lib/maps-osm.c:494 msgid "Could not find OSM element" msgstr "Kon OSM-element niet vinden" #: lib/maps-osm.c:508 msgid "Could not find user element" msgstr "Kon gebruikerselement niet vinden" #: src/application.js:78 msgid "A path to a local tiles directory structure" msgstr "Een pad naar een mappenstructuur met lokale tegels" #: src/application.js:84 msgid "Tile size for local tiles directory" msgstr "Tegelgrootte voor lokale tegelmap" #: src/application.js:88 msgid "Show the version of the program" msgstr "De versie van het programma tonen" #: src/application.js:94 msgid "Search for places" msgstr "Zoek naar plaatsen" #: src/application.js:105 src/application.js:106 msgid "[FILE…|URI]" msgstr "[BESTAND…|URI]" #: src/application.js:284 #, javascript-format msgid "Invalid maps: URI: %s" msgstr "Ongeldige kaarten: URI: %s" #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:75 #, javascript-format msgid "Maps at %f, %f.png" msgstr "Kaart op %f, %f.png" #: src/exportViewDialog.js:174 msgid "Unable to export view" msgstr "Kon weergave niet exporteren" #: src/favoriteListRow.js:42 msgid "Favorite removed" msgstr "Verwijderd uit favorieten" #: src/favoriteListRow.js:43 msgid "Undo" msgstr "Ongedaan maken" #: src/geoJSONSource.js:73 msgid "invalid coordinate" msgstr "ongeldig coördinaat" #: src/geoJSONSource.js:126 src/geoJSONSource.js:166 src/geoJSONSource.js:181 msgid "parse error" msgstr "ontleedfout" #: src/geoJSONSource.js:160 msgid "unknown geometry" msgstr "onbekende afmetingen" #: src/graphHopper.js:101 src/transitPlan.js:175 msgid "Route request failed." msgstr "Routeaanvraag is mislukt." #: src/graphHopper.js:108 src/transitPlan.js:167 msgid "No route found." msgstr "Geen route gevonden." #: src/graphHopper.js:195 src/transitplugins/openTripPlanner.js:1163 msgid "Start!" msgstr "Start!" #: src/mainWindow.js:59 msgid "All Layer Files" msgstr "Alle laagbestanden" #: src/mainWindow.js:522 msgid "Failed to connect to location service" msgstr "Verbinden met locatiedienst is mislukt" #: src/mainWindow.js:527 msgid "Turn on location services" msgstr "Schakel de locatiedienst in" #: src/mainWindow.js:528 msgid "Location Settings" msgstr "Locatie-instellingen" #: src/mainWindow.js:645 msgid "translator-credits" msgstr "" "Erwin Poeze \n" "Reinout van Schouwen \n" "Hannie Dumoleyn \n" "Nathan Follens \n" "Justin van Steijn \n" "Philip Goto \n" "Meer info over GNOME-NL https://nl.gnome.org" #: src/mainWindow.js:649 msgid "Copyright © 2011 – 2023 Red Hat, Inc. and The GNOME Maps authors" msgstr "Copyright © 2011 – 2023 Red Hat, Inc. en de auteurs van GNOME Kaarten" #: src/mainWindow.js:665 #, javascript-format msgid "Map data by %s and contributors" msgstr "Kaartgegevens door %s en bijdragers" #: src/mainWindow.js:666 msgid "Map Data Provider" msgstr "Kaartgegevensprovider" #: src/mainWindow.js:678 msgid "Map Tile Provider" msgstr "Kaarttegelsprovider" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:686 #, javascript-format msgid "Map tiles provided by %s" msgstr "Kaarttegels geleverd door %s" #: src/mainWindow.js:716 msgid "Search Provider" msgstr "Zoekprovider" #: src/mainWindow.js:719 #, javascript-format msgid "Search provided by %s using %s" msgstr "Zoekfunctionaliteit aangeboden door %s met %s" #: src/mapView.js:637 src/mapView.js:702 msgid "Failed to open layer" msgstr "Laag openen mislukt" #: src/mapView.js:656 msgid "Do you want to continue?" msgstr "Wilt u doorgaan?" #: src/mapView.js:657 #, javascript-format msgid "" "You are about to open files with a total size of %s MB. This could take some " "time to load" msgstr "" "U staat op het punt bestanden met een totale grootte van %s MB te openen. " "Het kan even duren om deze in te laden" #: src/mapView.js:664 src/transitplugins/openTripPlanner.js:1239 #: src/transitplugins/openTripPlanner2.js:267 msgid "Continue" msgstr "Ga door" #: src/mapView.js:696 msgid "File type is not supported" msgstr "Bestandstype wordt niet ondersteund" #: src/mapView.js:733 msgid "Failed to open GeoURI" msgstr "GeoURI openen mislukt" #: src/mapView.js:1197 msgid "Nothing found here!" msgstr "Niets gevonden hier!" #: src/mapView.js:1237 msgid "Zoom in to add location" msgstr "Zoom in om een locatie toe te voegen" #: src/mapView.js:1258 msgid "Location was added in OpenStreetMap" msgstr "Locatie toegevoegd aan OpenStreetMap" #. switch back to the sign-in view, and show a toast indicating #. that verification failed #: src/osmAccountDialog.js:134 msgid "The verification code didn’t match, please try again." msgstr "De verificatiecode kwam niet overeen, probeer het opnieuw." #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:335 msgid "Incorrect user name or password" msgstr "Onjuiste gebruikersnaam of wachtwoord" #: src/osmConnection.js:337 msgid "Success" msgstr "Succes" #: src/osmConnection.js:339 msgid "Bad request" msgstr "Onjuiste aanvraag" #: src/osmConnection.js:341 msgid "Object not found" msgstr "Object niet gevonden" #: src/osmConnection.js:343 msgid "Conflict, someone else has just modified the object" msgstr "Conflict, iemand anders heeft net het object gewijzigd" #: src/osmConnection.js:345 msgid "Object has been deleted" msgstr "Object is verwijderd" #: src/osmConnection.js:347 msgid "Way or relation refers to non-existing children" msgstr "Manier of relatie verwijst naar niet-bestaande dochter" #: src/osmEditDialog.js:106 msgid "Name" msgstr "Naam" #: src/osmEditDialog.js:109 msgid "The official name. This is typically what appears on signs." msgstr "De officiële naam. Dit is wat normaal gezien op borden verschijnt." #: src/osmEditDialog.js:112 msgid "Address" msgstr "Adres" #: src/osmEditDialog.js:120 src/placeView.js:275 msgid "Website" msgstr "Website" #: src/osmEditDialog.js:124 msgid "This is not a valid URL. Make sure to include http:// or https://." msgstr "" "Dit is geen geldige URL. Zorg dat het deel met http:// of https:// ook " "toegevoegd wordt." #: src/osmEditDialog.js:125 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" "De officiële website. Probeer de meest beperkte vorm van een URL te " "gebruiken, i.e., https://voorbeeld.be in plaats van https://voorbeeld.be/" "index.html." #: src/osmEditDialog.js:130 msgid "Phone" msgstr "Telefoon" #: src/osmEditDialog.js:134 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" "Telefoonnummer. Gebruik het internationale formaat, beginnend met een " "plusteken (+). Wees bewust van lokale privacywetten, zeker wanneer het gaat " "om privételefoonnummers." #: src/osmEditDialog.js:139 msgid "E-mail" msgstr "E-mailadres" #: src/osmEditDialog.js:144 msgid "" "This is not a valid email address. Make sure to not include the mailto: " "protocol prefix." msgstr "" "Dit is geen geldig e-mailadres. Zorg dat het mailto:-protocolvoorvoegsel " "niet toegevoegd wordt." #: src/osmEditDialog.js:145 msgid "" "Contact email address for inquiries. Add only email addresses that are " "intended to be publicly used." msgstr "" "Contact-e-mailadres voor vragen. Voeg enkel e-mailadressen toe die bedoeld " "zijn voor publiek gebruik." #. Translators: This is the text for the "Wikipedia" link at the end #. of summaries #: src/osmEditDialog.js:149 src/placeView.js:727 msgid "Wikipedia" msgstr "Wikipedia" #: src/osmEditDialog.js:156 src/placeView.js:399 msgid "Opening hours" msgstr "Openingstijden" #: src/osmEditDialog.js:161 msgid "See the link in the label for help on format." msgstr "Zie de koppeling in het label voor hulp bij het formaat." #. TODO: this is a bit of a work-around to re-interpret the population, #. * stored as a string into an integer to convert back to a locale- #. * formatted string. Ideally it should be kept as an integer value #. * in the Place class. But this will also need to be handled by the #. * PlaceStore, possible in a backwards-compatible way #. #: src/osmEditDialog.js:164 src/placeView.js:509 msgid "Population" msgstr "Populatie" #: src/osmEditDialog.js:169 src/placeView.js:538 msgid "Altitude" msgstr "Hoogte" #: src/osmEditDialog.js:172 msgid "Elevation (height above sea level) of a point in meters." msgstr "De hoogte boven de zeespiegel van een punt in meter." #: src/osmEditDialog.js:175 msgid "Wheelchair access" msgstr "Rolstoeltoegankelijk" #: src/osmEditDialog.js:178 src/osmEditDialog.js:187 src/osmEditDialog.js:198 #: src/osmEditDialog.js:233 msgid "Yes" msgstr "Ja" #: src/osmEditDialog.js:179 src/osmEditDialog.js:188 src/osmEditDialog.js:199 #: src/osmEditDialog.js:234 msgid "No" msgstr "Nee" #: src/osmEditDialog.js:180 msgid "Limited" msgstr "Beperkt toegankelijk" #: src/osmEditDialog.js:181 msgid "Designated" msgstr "Aangewezen" #: src/osmEditDialog.js:184 msgid "Internet access" msgstr "Internettoegang" #: src/osmEditDialog.js:189 msgid "Wi-Fi" msgstr "Wi-Fi" #: src/osmEditDialog.js:190 msgid "Wired" msgstr "Bedraad" #: src/osmEditDialog.js:191 msgid "Terminal" msgstr "Terminal" #: src/osmEditDialog.js:192 msgid "Service" msgstr "Dienst" #: src/osmEditDialog.js:195 msgid "Takeout" msgstr "Take-away" #: src/osmEditDialog.js:200 msgid "Only" msgstr "Alleen" #: src/osmEditDialog.js:203 msgid "Religion" msgstr "Religie" #: src/osmEditDialog.js:206 src/translations.js:286 msgid "Animism" msgstr "Animisme" #: src/osmEditDialog.js:207 msgid "Bahá’í" msgstr "Bahá’í" #: src/osmEditDialog.js:208 src/translations.js:288 msgid "Buddhism" msgstr "Boeddisme" #: src/osmEditDialog.js:209 src/translations.js:289 msgid "Caodaism" msgstr "Caodaïsme" #: src/osmEditDialog.js:210 src/translations.js:290 msgid "Christianity" msgstr "Christendom" #: src/osmEditDialog.js:211 src/translations.js:291 msgid "Confucianism" msgstr "Confucianisme" #: src/osmEditDialog.js:212 src/translations.js:292 msgid "Hinduism" msgstr "Hindoeïsme" #: src/osmEditDialog.js:213 src/translations.js:293 msgid "Jainism" msgstr "Jaïnisme" #: src/osmEditDialog.js:214 src/translations.js:294 msgid "Judaism" msgstr "Jodendom" #: src/osmEditDialog.js:215 src/translations.js:295 msgid "Islam" msgstr "Islam" #: src/osmEditDialog.js:216 src/translations.js:296 msgid "Multiple Religions" msgstr "Meerdere religies" #: src/osmEditDialog.js:217 src/translations.js:297 msgid "Paganism" msgstr "Heidendom" #: src/osmEditDialog.js:218 src/translations.js:298 msgid "Pastafarianism" msgstr "Pastafarianisme" #: src/osmEditDialog.js:219 src/translations.js:299 msgid "Scientology" msgstr "Scientology" #: src/osmEditDialog.js:220 src/translations.js:300 msgid "Shinto" msgstr "Shintoïsme" #: src/osmEditDialog.js:221 src/translations.js:301 msgid "Sikhism" msgstr "Sikhisme" #: src/osmEditDialog.js:222 src/translations.js:302 msgid "Spiritualism" msgstr "Spiritualisme" #: src/osmEditDialog.js:223 src/translations.js:303 msgid "Taoism" msgstr "Taoïsme" #: src/osmEditDialog.js:224 src/translations.js:304 msgid "Unitarian Universalism" msgstr "Unitaristisch Universalisme" #: src/osmEditDialog.js:225 src/translations.js:305 msgid "Voodoo" msgstr "Voodoo" #: src/osmEditDialog.js:226 src/translations.js:306 msgid "Yazidism" msgstr "Yezidisme" #: src/osmEditDialog.js:227 src/translations.js:307 msgid "Zoroastrianism" msgstr "Mazdeïsme" #: src/osmEditDialog.js:230 src/poiCategories.js:176 msgid "Toilets" msgstr "Wc's" #: src/osmEditDialog.js:237 msgid "Note" msgstr "Opmerking" #: src/osmEditDialog.js:240 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" "Deze informatie wordt gebruikt om andere ‘mappers’ te informeren over niet-" "evidente informatie over een element, de bedoeling van de auteur bij het " "aanmaken ervan, of tips voor verbetering." #: src/osmEditDialog.js:339 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "Toevoegen aan OpenStreetMap" #: src/osmEditDialog.js:393 msgid "Select Type" msgstr "Een type kiezen" #: src/osmEditDialog.js:515 msgid "Done" msgstr "Klaar" #: src/osmEditDialog.js:818 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "" "Het gebruikte formaat hoort de taalcode en de titel van het artikel te " "bevatten, zoals ‘nl:Titel van artikel’." #: src/osmEditDialog.js:824 msgid "Use the reload button to load the Wikidata tag for the selected article" msgstr "" "Gebruik de herlaadknop om de Wikidata-tag voor het geselecteerde artikel te " "laden" #: src/osmEditDialog.js:832 msgid "Couldn't find Wikidata tag for article" msgstr "Kon geen Wikidata-tag voor artikel vinden" #: src/photonUtils.js:118 msgid "Unnamed place" msgstr "Naamloze plaats" #: src/placeEntry.js:274 msgid "Failed to parse Geo URI" msgstr "Kon GeoURI niet ontleden" #: src/placeEntry.js:286 msgid "Failed to parse Maps URI" msgstr "Kon Maps-URI niet ontleden" #. 300 ft (300 * 12 * 0.0254 m) #. #. * Translators: This a format string for showing a distance to a place #. * is lower than a "quite short" distance. #. * The "less than" symbol can be substituded with an appropriate one, if #. * needed (e.g. using the correct direction, or alternative symbol). #. * The %s should be kept, and is substituted with a label representing the #. * short distance. The \u2009 (thin space) could also be adjusted if needed #: src/placeListRow.js:46 #, javascript-format msgctxt "short distance format string" msgid "< %s" msgstr "< %s" #: src/placeView.js:263 msgid "Coordinates" msgstr "Coördinaten" #: src/placeView.js:267 msgid "Accuracy" msgstr "Nauwkeurigheid" #. Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) #: src/placeView.js:270 #, javascript-format msgid "Accuracy: %s" msgstr "Positienauwkeurigheid: %s" #. since the phone numbers are typically always rendered #. * left-to-right, insert an explicit LRM char to avoid issues #. * with phone numbers in international format starting with a + #. * which is considered a "weak" character to determine Unicode #. * text direction #. #: src/placeView.js:289 msgid "Phone number" msgstr "Telefoonnummer" #: src/placeView.js:308 msgid "Email" msgstr "E-mail" #. If a reference to a named floor (named or symbolic) exists #. * refer to it directly. #. #. Translators: #. * This is a reference to named building floor, using a label #. * or a code, as "displayed in the elevator" #. #: src/placeView.js:323 src/placeView.js:362 msgid "Floor" msgstr "Verdieping" #: src/placeView.js:325 #, javascript-format msgid "Floor %s" msgstr "%se verdieping" #: src/placeView.js:337 msgid "At ground level" msgstr "Gelijkvloers" #. Translators: #. * This is a reference to a number of floors above #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:346 #, javascript-format msgid "%s floor above ground level" msgid_plural "%s floors above ground level" msgstr[0] "%s verdieping boven de begane grond" msgstr[1] "%s verdiepingen boven de begane grond" #. Translators: #. * This is a reference to a number of floors below #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:357 #, javascript-format msgid "%s floor below ground level" msgid_plural "%s floors below ground level" msgstr[0] "%s verdieping onder de begane grond" msgstr[1] "%s verdiepingen onder de begane grond" #. Translators: #. * The establishment offers customers to purchase meals #. * (or similar) to be consumed elsewhere #. #: src/placeView.js:375 msgid "Offers takeout" msgstr "Biedt take-away aan" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed on-premise. #. #: src/placeView.js:383 msgid "Does not offer takeout" msgstr "Biedt geen take-away aan" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed elsewhere. E.g. #. * there is no seating on-premise for eating/drinking #. #: src/placeView.js:392 msgid "Only offers takeout" msgstr "Biedt alleen take-away aan" #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/placeView.js:409 msgid "Public internet access" msgstr "Openbare internettoegang" #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/placeView.js:418 msgid "No internet access" msgstr "Geen internettoegang" #. Translators: #. * This means a WLAN Hotspot, also known as wireless, wifi or Wi-Fi. #. #: src/placeView.js:426 msgid "Public Wi-Fi" msgstr "Openbare wifi" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/placeView.js:434 msgid "Wired internet access" msgstr "Bekabelde internettoegang" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/placeView.js:442 msgid "Computers available for use" msgstr "Computers beschikbaar voor gebruik" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/placeView.js:450 msgid "Internet assistance available" msgstr "Internethulp beschikbaar" #: src/placeView.js:456 msgid "No toilets available" msgstr "Geen wc’s beschikbaar" #: src/placeView.js:459 msgid "Toilets available" msgstr "Wc’s beschikbaar" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #: src/placeView.js:468 msgid "Wheelchair accessible" msgstr "Rolstoeltoegankelijk" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/placeView.js:478 msgid "Limited wheelchair accessibility" msgstr "Beperkt rolstoeltoegankelijk" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #: src/placeView.js:487 msgid "Not wheelchair accessible" msgstr "Niet rolstoeltoegankelijk" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/placeView.js:497 msgid "Designated for wheelchair users" msgstr "Geschikt voor rolstoelgebruikers" #. * #. * Translators: this is a label indicating an altitude below #. * sea level, where the %s placeholder is the altitude relative #. * to mean sea level in the "negative direction" #. #: src/placeView.js:528 #, javascript-format msgid "%s below sea level" msgstr "%s onder de zeespiegel" #. * #. * Translators: this indicates a place is located at (or very #. * close to) mean sea level #. #: src/placeView.js:535 msgid "At sea level" msgstr "Op zeeniveau" #: src/placeView.js:544 msgid "Religion:" msgstr "Religie:" #: src/place.js:568 msgid "Place not found in OpenStreetMap" msgstr "Plaats niet gevonden op OpenStreetMap" #: src/place.js:575 msgid "Coordinates in URL are not valid" msgstr "Coördinaten in URL zijn ongeldig" #: src/place.js:584 msgid "URL is not supported" msgstr "URL wordt niet ondersteund" #: src/poiCategories.js:132 msgid "Amenities" msgstr "Faciliteiten" #: src/poiCategories.js:135 msgid "ATMs" msgstr "Geldautomaten" #: src/poiCategories.js:141 msgid "Post Boxes" msgstr "Postbussen" #: src/poiCategories.js:147 msgid "Post Offices" msgstr "Postkantoren" #: src/poiCategories.js:153 msgid "Police" msgstr "Politie" #: src/poiCategories.js:159 msgid "Libraries" msgstr "Bibliotheken" #: src/poiCategories.js:165 msgid "Pharmacies" msgstr "Apotheken" #: src/poiCategories.js:171 msgid "Recycling" msgstr "Recycleren" #: src/poiCategories.js:182 msgid "Wheelchair-accessible Toilets" msgstr "Rolstoeltoegankelijke wc’s" #: src/poiCategories.js:188 msgid "Baggage Lockers" msgstr "Bagagelockers" #: src/poiCategories.js:196 msgid "Eating & Drinking" msgstr "Eten & drinken" #: src/poiCategories.js:200 msgid "Restaurants" msgstr "Restaurants" #: src/poiCategories.js:205 msgid "Fast Food" msgstr "Fastfood" #: src/poiCategories.js:210 msgid "Food Courts" msgstr "Foodcourts" #: src/poiCategories.js:215 msgid "Pubs" msgstr "Pubs" #: src/poiCategories.js:221 msgid "Bars" msgstr "Café’s" #: src/poiCategories.js:226 msgid "Cafes" msgstr "Koffiehuizen" #: src/poiCategories.js:231 msgid "Ice Cream" msgstr "IJs" #: src/poiCategories.js:236 msgid "Food, Snacks, and Beverage Machines" msgstr "Automaten voor eten en drinken" #: src/poiCategories.js:244 msgid "Shopping" msgstr "Winkelen" #: src/poiCategories.js:248 msgid "Supermarkets" msgstr "Supermarkten" #: src/poiCategories.js:254 msgid "Convenience Stores" msgstr "Gemakswinkels" #: src/poiCategories.js:259 msgid "Shopping Malls" msgstr "Winkelcentra" #: src/poiCategories.js:265 msgid "Clothes" msgstr "Kleren" #: src/poiCategories.js:271 msgid "Shoes" msgstr "Schoenen" #: src/poiCategories.js:276 msgid "Electronics" msgstr "Elektronica" #: src/poiCategories.js:282 msgid "Alcohol" msgstr "Alcohol" #: src/poiCategories.js:288 msgid "Bakeries" msgstr "Bakkerijen" #: src/poiCategories.js:294 msgid "Flowers" msgstr "Bloemen" #: src/poiCategories.js:301 msgid "Transportation" msgstr "Transport" #: src/poiCategories.js:305 msgid "Bus & Tram Stops" msgstr "Bus- & tramhaltes" #: src/poiCategories.js:313 msgid "Train & Subway Stations" msgstr "Trein- & metrostations" #: src/poiCategories.js:321 msgid "Tickets" msgstr "Tickets" #: src/poiCategories.js:329 msgid "Parking" msgstr "Parkeerplaatsen" #: src/poiCategories.js:334 msgid "Bicycle Parking" msgstr "Fietsparkeerplaatsen" #: src/poiCategories.js:339 msgid "Bicycle Rental" msgstr "Fietsverhuur" #: src/poiCategories.js:344 msgid "Car Rental" msgstr "Autoverhuur" #: src/poiCategories.js:349 msgid "Fuel" msgstr "Brandstof" #: src/poiCategories.js:354 msgid "EV Charging" msgstr "Oplaadpunt voor elektrische voertuigen" #: src/poiCategories.js:362 msgid "Healthcare" msgstr "Gezondheidszorg" #: src/poiCategories.js:366 msgid "Clinics" msgstr "Klinieken" #: src/poiCategories.js:372 msgid "Hospitals" msgstr "Ziekenhuizen" #: src/poiCategories.js:378 msgid "Dentists" msgstr "Tandartsen" #: src/poiCategories.js:386 msgid "Accommodation" msgstr "Accomodatie" #: src/poiCategories.js:390 msgid "Hotels" msgstr "Hotels" #: src/poiCategories.js:395 msgid "Hostels" msgstr "Hostels" #: src/poiCategories.js:400 msgid "Bed & Breakfast" msgstr "Bed & breakfast" #: src/poiCategories.js:405 msgid "Campings" msgstr "Campings" #: src/poiCategories.js:412 msgid "Recreation" msgstr "Ontspanning" #: src/poiCategories.js:416 msgid "Parks" msgstr "Parken" #: src/poiCategories.js:421 msgid "Playgrounds" msgstr "Speeltuinen" #: src/poiCategories.js:425 msgid "Beaches" msgstr "Stranden" #: src/poiCategories.js:430 msgid "Nature Reserves" msgstr "Natuurreservaten" #: src/poiCategories.js:436 msgid "Theme Parks" msgstr "Pretparken" #: src/poiCategories.js:441 msgid "Theaters" msgstr "Theaters" #: src/poiCategories.js:447 msgid "Movie Theaters" msgstr "Bioscopen" #: src/poiCategories.js:453 msgid "Night Clubs" msgstr "Nachtclubs" #: src/poiCategories.js:460 msgid "Tourism" msgstr "Toerisme" #: src/poiCategories.js:464 msgid "Museums" msgstr "Musea" #: src/poiCategories.js:470 msgid "Attractions" msgstr "Bezienswaardigheden" #: src/poiCategories.js:475 msgid "Artworks" msgstr "Kunstwerken" #: src/poiCategories.js:480 msgid "Tourist Information" msgstr "Toeristische informatie" #: src/poiCategories.js:487 msgid "Sports" msgstr "Sporten" #: src/poiCategories.js:491 msgid "Gyms" msgstr "Fitnesscentra" #: src/poiCategories.js:497 msgid "Outdoor Gyms" msgstr "Buitenfitnesscentra" #: src/poiCategories.js:503 msgid "Golf Courses" msgstr "Golfbanen" #: src/printLayout.js:350 #, javascript-format msgid "From %s to %s" msgstr "Van %s naar %s" #: src/printOperation.js:49 msgid "Loading map tiles for printing" msgstr "Bezig met laden van kaarttegels voor afdrukken" #: src/printOperation.js:50 msgid "You can abort printing if this takes too long" msgstr "U kan het afdrukken afbreken indien het te lang duurt" #: src/printOperation.js:52 msgid "Abort printing" msgstr "Afdrukken afbreken" #. Translators: this is add via location tooltip #: src/routeEntry.js:60 msgid "Add via location" msgstr "‘Via’ toevoegen" #. Translators: this is remove via location tooltip #: src/routeEntry.js:70 msgid "Remove via location" msgstr "‘Via’ verwijderen" #. Translators: this is reverse route tooltip #: src/routeEntry.js:76 msgid "Reverse route" msgstr "Route omkeren" #: src/searchBar.js:45 msgid "Search" msgstr "Zoeken" #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:84 #, javascript-format msgid "Add %s to %s" msgstr "%s toevoegen aan %s" #: src/sendToDialog.js:181 msgid "Failed to open URI" msgstr "URI openen mislukt" #: src/sendToDialog.js:246 #, javascript-format msgid "Open with %s" msgstr "Openen met %s" #: src/shapeLayer.js:109 msgid "failed to load file" msgstr "bestand laden mislukt" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:328 #, javascript-format msgid "Estimated time: %s" msgstr "Geschatte tijdsduur: %s" #: src/sidebar.js:398 #, javascript-format msgid "Itineraries provided by %s" msgstr "Routeberekening geleverd door %s" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:39 #, javascript-format msgid "Start at %s" msgstr "Vertrek om %s" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:45 src/transitplugins/openTripPlanner2.js:236 msgid "Start" msgstr "Start" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:63 #, javascript-format msgid "Walk %s" msgstr "Wandel %s" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:77 #, javascript-format msgid "Arrive at %s" msgstr "Kom aan tegen %s" #: src/transit.js:79 src/transitplugins/openTripPlanner.js:1176 #: src/transitplugins/openTripPlanner2.js:255 msgid "Arrive" msgstr "Kom aan" #: src/transitLegRow.js:69 msgid "Show walking instructions" msgstr "Wandelinstructies tonen" #: src/transitLegRow.js:70 msgid "Hide walking instructions" msgstr "Wandelinstructies verbergen" #: src/transitMoreRow.js:37 msgid "Load earlier alternatives" msgstr "Vroegere alternatieven laden" #: src/transitMoreRow.js:39 msgid "Load later alternatives" msgstr "Latere alternatieven laden" #: src/transitMoreRow.js:52 msgid "No earlier alternatives found." msgstr "Geen vroegere alternatieven gevonden." #: src/transitMoreRow.js:54 msgid "No later alternatives found." msgstr "Geen latere alternatieven gevonden." #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:138 msgctxt "month-day-date" msgid "%b %e" msgstr "%e %b" #: src/transitPlan.js:171 msgid "No timetable data found for this route." msgstr "Geen gegevens betreffende dienstregeling gevonden voor deze route." #: src/transitPlan.js:179 msgid "No provider found for this route." msgstr "Geen leverancier gevonden voor deze route." #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:300 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:331 #, javascript-format msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "%s minuut" msgstr[1] "%s minuten" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:343 #, javascript-format msgid "%s hour" msgid_plural "%s hours" msgstr[0] "%s uur" msgstr[1] "%s uur" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:351 #, javascript-format msgid "%s:%s hour" msgid_plural "%s:%s hours" msgstr[0] "%s:%s uur" msgstr[1] "%s:%s uur" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:744 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: src/translations.js:55 msgid "Around the clock" msgstr "De hele dag" #: src/translations.js:57 msgid "From sunrise to sunset" msgstr "Van zonsopkomst tot zonsondergang" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:123 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s,%s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:137 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s,%s,%s" #: src/translations.js:156 msgid "Every day" msgstr "Dagelijks" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:168 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:179 msgid "Public holidays" msgstr "Officiële feestdagen" #: src/translations.js:181 msgid "School holidays" msgstr "Schoolvakanties" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:221 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: src/translations.js:235 msgid "not open" msgstr "niet open" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:250 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:287 msgid "Bahá'í" msgstr "Bahá'í" #. Translators: Accuracy of user location information #: src/utils.js:248 msgid "Unknown" msgstr "Onbekend" #. Translators: Accuracy of user location information #: src/utils.js:251 msgid "Exact" msgstr "Exact" #. Translators: this is a duration with only hours, using #. * an abbreviation for hours, corresponding to 'h' in English #. #: src/utils.js:307 #, javascript-format msgid "%s h" msgstr "%su" #. Translators: this is a duration with hours and minutes parts #. * using abbreviations for hours and minutes, corresponding to 'h' #. * and 'min' in English. The minutes has appropriate plural variations #. #: src/utils.js:313 #, javascript-format msgid "%s h %s min" msgid_plural "%s h %s min" msgstr[0] "%su %sm" msgstr[1] "%su %sm" #. Translators: this is a duration with minutes part #. * using abbreviation for minutes, corresponding to 'min' in English #. * with appropriate plural variations #. #: src/utils.js:320 #, javascript-format msgid "%s min" msgid_plural "%s min" msgstr[0] "%sm" msgstr[1] "%sm" #. Translators: this is a duration of less than one minute #. * with seconds using an abbreviation for seconds, corresponding to #. * 's' in English with appropriate plural forms #. #: src/utils.js:326 #, javascript-format msgid "%s s" msgid_plural "%s s" msgstr[0] "%ss" msgstr[1] "%ss" #. Translators: This is a distance measured in kilometers #: src/utils.js:337 #, javascript-format msgid "%s km" msgstr "%s km" #. Translators: This is a distance measured in meters #: src/utils.js:340 #, javascript-format msgid "%s m" msgstr "%s m" #. Translators: This is a distance measured in miles #: src/utils.js:348 #, javascript-format msgid "%s mi" msgstr "%s mi" #. Translators: This is a distance measured in feet #: src/utils.js:351 #, javascript-format msgid "%s ft" msgstr "%s ft" #: src/transitplugins/goMetro.js:61 msgid "This plugin doesn't support latest arrival" msgstr "Deze plug-in biedt geen ondersteuning voor laatste aankomst" #: src/transitplugins/openTripPlanner.js:1237 #: src/transitplugins/openTripPlanner2.js:266 #, javascript-format msgid "Continue on %s" msgstr "Ga door op %s" #: src/transitplugins/openTripPlanner.js:1242 #: src/transitplugins/openTripPlanner2.js:270 #, javascript-format msgid "Turn left on %s" msgstr "Sla linksaf op %s" #: src/transitplugins/openTripPlanner.js:1244 #: src/transitplugins/openTripPlanner2.js:271 msgid "Turn left" msgstr "Sla linksaf" #: src/transitplugins/openTripPlanner.js:1247 #: src/transitplugins/openTripPlanner2.js:275 #, javascript-format msgid "Turn slightly left on %s" msgstr "Sla iets linksaf op %s" #: src/transitplugins/openTripPlanner.js:1249 #: src/transitplugins/openTripPlanner2.js:276 msgid "Turn slightly left" msgstr "Sla iets linksaf" #: src/transitplugins/openTripPlanner.js:1252 #: src/transitplugins/openTripPlanner2.js:280 #, javascript-format msgid "Turn sharp left on %s" msgstr "Sla scherp linksaf op %s" #: src/transitplugins/openTripPlanner.js:1254 #: src/transitplugins/openTripPlanner2.js:281 msgid "Turn sharp left" msgstr "Sla scherp linksaf" #: src/transitplugins/openTripPlanner.js:1257 #: src/transitplugins/openTripPlanner2.js:284 #, javascript-format msgid "Turn right on %s" msgstr "Sla rechtsaf op %s" #: src/transitplugins/openTripPlanner.js:1259 #: src/transitplugins/openTripPlanner2.js:285 msgid "Turn right" msgstr "Sla rechtsaf" #: src/transitplugins/openTripPlanner.js:1262 #: src/transitplugins/openTripPlanner2.js:289 #, javascript-format msgid "Turn slightly right on %s" msgstr "Sla iets rechtsaf op %s" #: src/transitplugins/openTripPlanner.js:1264 #: src/transitplugins/openTripPlanner2.js:290 msgid "Turn slightly right" msgstr "Sla iets rechtsaf" #: src/transitplugins/openTripPlanner.js:1267 #: src/transitplugins/openTripPlanner2.js:294 #, javascript-format msgid "Turn sharp right on %s" msgstr "Sla scherp rechtsaf op %s" #: src/transitplugins/openTripPlanner.js:1269 #: src/transitplugins/openTripPlanner2.js:295 msgid "Turn sharp right" msgstr "Sla scherp rechtsaf" #: src/transitplugins/openTripPlanner.js:1275 #: src/transitplugins/openTripPlanner2.js:302 #, javascript-format msgid "At the roundabout, take exit %s" msgstr "Neem op de rotonde afslag %s" #: src/transitplugins/openTripPlanner.js:1277 #: src/transitplugins/openTripPlanner2.js:305 #, javascript-format msgid "At the roundabout, take exit to %s" msgstr "Neem op de rotonde de afslag naar %s" #: src/transitplugins/openTripPlanner.js:1279 #: src/transitplugins/openTripPlanner2.js:307 msgid "Take the roundabout" msgstr "Rijd de rotonde op" #: src/transitplugins/openTripPlanner.js:1283 #: src/transitplugins/openTripPlanner2.js:315 #, javascript-format msgid "Take the elevator and get off at %s" msgstr "Neem de lift en stap af op %s" #: src/transitplugins/openTripPlanner.js:1285 #: src/transitplugins/openTripPlanner2.js:316 msgid "Take the elevator" msgstr "Neem de lift" #: src/transitplugins/openTripPlanner.js:1289 #: src/transitplugins/openTripPlanner2.js:320 #, javascript-format msgid "Make a left u-turn onto %s" msgstr "Draai 180 graden linksaf op %s" #: src/transitplugins/openTripPlanner.js:1291 #: src/transitplugins/openTripPlanner2.js:321 msgid "Make a left u-turn" msgstr "Draai 180 graden linksaf" #: src/transitplugins/openTripPlanner.js:1294 #: src/transitplugins/openTripPlanner2.js:325 #, javascript-format msgid "Make a right u-turn onto %s" msgstr "Draai 180 graden rechtsaf op %s" #: src/transitplugins/openTripPlanner.js:1296 #: src/transitplugins/openTripPlanner2.js:326 msgid "Make a right u-turn" msgstr "Draai 180 graden rechtsaf" #~ msgid "Sign in to edit maps" #~ msgstr "" #~ "Meld u aan om kaarten te bewerken" #~ msgid "" #~ "Sign in to authorize access in a web browser.\n" #~ "Then fill in the obtained verification code here in the next step." #~ msgstr "" #~ "Meld u aan in een webbrowser om toegang te verlenen.\n" #~ "Vul daarna de verkregen verificatiecode hier in." #~ msgid "Signed In" #~ msgstr "Aangemeld" #~ msgid "Sign up" #~ msgstr "Registreren" #~ msgid "Filesystem is read only" #~ msgstr "Bestandssysteem is alleen-lezen" #~ msgid "You do not have permission to save there" #~ msgstr "U heeft geen toestemming om hier op te slaan" #~ msgid "The directory does not exist" #~ msgstr "De map bestaat niet" #~ msgid "No filename specified" #~ msgstr "Geen bestandsnaam opgegeven" #~ msgid "" #~ "Location was added to the map, note that it may take a while before it " #~ "shows on the map and in search results." #~ msgstr "" #~ "Locatie is toegevoegd aan de kaart, het kan even duren voor deze op de " #~ "kaart en in zoekresultaten wordt weergegeven." #~ msgid "Takeaway" #~ msgstr "Thuisbezorging" #~ msgid "Go to current location" #~ msgstr "Ga naar huidige locatie" #~ msgid "Choose map type" #~ msgstr "Kies kaartsoort" #~ msgid "Zoom in" #~ msgstr "Inzoomen" #~ msgid "Drag to change order of the route" #~ msgstr "Verslepen om de volgorde van de route te wijzigen" #~ msgid "Foursquare check-in privacy setting" #~ msgstr "Foursquare-inchecken privacyinstellingen" #~ msgid "" #~ "Latest used Foursquare check-in privacy setting. Possible values are: " #~ "public, followers or private." #~ msgstr "" #~ "De laatst gebruikte privacyinstellingen Foursquare-incheck. Mogelijke " #~ "waarden zijn: openbaar, volgers of privé." #~ msgid "Foursquare check-in Facebook broadcasting" #~ msgstr "Bekendmaking door Foursquare van incheck Facebook" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a post in the " #~ "Facebook account associated with the Foursquare account." #~ msgstr "" #~ "Geeft aan of Foursquare de incheck in een bericht moet bekend maken in " #~ "het Facebook-account dat met het Foursquare-account geassocieerd is." #~ msgid "Foursquare check-in Twitter broadcasting" #~ msgstr "Bekendmaking door Foursquare van incheck Twitter" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a tweet in the " #~ "Twitter account associated with the Foursquare account." #~ msgstr "" #~ "Geeft aan of Foursquare de controle in een bericht moet bekend maken in " #~ "het Twitter-account dat met het Foursquare-account geassocieerd is." #~ msgid "Use hybrid aerial tiles" #~ msgstr "Hybride luchtfototegels gebruiken" #~ msgid "Whether aerial tiles should use hybrid style (with labels)." #~ msgstr "Of luchtfototegels een hybride stijl moeten gebruiken (met labels)." #~ msgid "Visibility" #~ msgstr "Zichtbaarheid" #~ msgid "Post on Facebook" #~ msgstr "Posten op Facebook" #~ msgid "Post on Twitter" #~ msgstr "Posten op Twitter" #~ msgid "C_heck in" #~ msgstr "Inc_hecken" #~ msgid "Public" #~ msgstr "Openbaar" #~ msgid "Private" #~ msgstr "Privé" #~ msgid "Include route and markers" #~ msgstr "Route en markeringen opnemen" #~ msgid "Show Labels" #~ msgstr "Labels tonen" #~ msgid "Maps is offline!" #~ msgstr "Kaarten is offline!" #~ msgid "" #~ "Maps need an active internet connection to function properly, but one " #~ "can’t be found." #~ msgstr "" #~ "Kaarten heeft een actieve internetverbinding nodig om te functioneren, " #~ "maar die is niet gevonden." #~ msgid "Check your connection and proxy settings." #~ msgstr "Controleer uw verbinding en proxy-instellingen." #~ msgid "Password" #~ msgstr "Wachtwoord" #~ msgid "" #~ "Sorry, that didn’t work. Please try again, or visit\n" #~ "OpenStreetMap to reset your password." #~ msgstr "" #~ "Sorry, dat werkte niet. Probeer het opnieuw of bezoek\n" #~ "OpenStreetMap om uw wachtwoord te herstellen." #~ msgid "Check In…" #~ msgstr "Inchecken…" #~ msgid "Ignore network availability" #~ msgstr "Beschikbaarheid netwerk negeren" #~ msgid "Select an account" #~ msgstr "Een account kiezen" #~ msgid "Loading" #~ msgstr "Bezig met laden" #~ msgid "Select a place" #~ msgstr "Een plaats kiezen" #~ msgid "" #~ "Maps cannot find the place to check in to with Foursquare. Please select " #~ "one from this list." #~ msgstr "" #~ "Kaarten kan de plaats om in te checken met Foursquare niet vinden. " #~ "Gelieve er een uit de lijst te kiezen." #, javascript-format #~ msgid "Check in to %s" #~ msgstr "Inchecken bij %s" #, javascript-format #~ msgid "Write an optional message to check in to %s." #~ msgstr "Voeg eventueel een bericht toe bij het inchecken bij %s." #, javascript-format #~ msgid "Cannot find “%s” in the social service" #~ msgstr "‘%s’ werd niet aangetroffen in de sociale dienst" #~ msgid "Cannot find a suitable place to check-in in this location" #~ msgstr "" #~ "Er is geen geschikte plaats gevonden om in te checken op deze locatie" #~ msgid "" #~ "Credentials have expired, please open Online Accounts to sign in and " #~ "enable this account" #~ msgstr "" #~ "De aanmeldgegevens zijn verlopen, gelieve Online-accounts te openen om u " #~ "aan te melden en dit account in te schakelen" #~ msgid "A map application for GNOME" #~ msgstr "Een kaartentoepassing voor Gnome" #~ msgid "GNOME Maps" #~ msgstr "Gnome Kaarten" #~ msgid "Night mode" #~ msgstr "Nachtmodus" #~ msgid "Whether the application is in night mode." #~ msgstr "Of het programma in nachtmodus staat." #~ msgid "Night Mode" #~ msgstr "Nachtmodus" #~ msgid "" #~ "You can even search for specific types of locations, such as “Pubs near " #~ "Main Street, Boston” or “Hotels near Alexanderplatz, Berlin”." #~ msgstr "" #~ "U kunt zelfs naar specifieke soorten locaties zoeken, zoals ‘Pubs in de " #~ "buurt van Main Street, Boston’ of ‘WiFi-toegang in de buurt van " #~ "Alexanderplatz, Berlijn’." #~ msgid "Facebook check-in privacy setting" #~ msgstr "Facebook-inchecken privacyinstellingen" #~ msgid "" #~ "Latest used Facebook check-in privacy setting. Possible values are: " #~ "EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS or SELF." #~ msgstr "" #~ "Voor het laatst gebruikte privacyinstellingen Facebook-incheck. Mogelijke " #~ "waarden zijn: IEDEREEN, VRIENDEN VAN VRIENDEN, ALLE VRIENDEN of ZICHZELF." #~ msgid "Everyone" #~ msgstr "Iedereen" #~ msgid "Friends of friends" #~ msgstr "Vrienden van vrienden" #~ msgid "Just friends" #~ msgstr "Alleen vrienden" #~ msgid "Just me" #~ msgstr "Alleen ik" #~ msgid "" #~ "Maps cannot find the place to check in to with Facebook. Please select " #~ "one from this list." #~ msgstr "" #~ "Kaarten kan de plaats om in te checken met Facebook niet vinden. Gelieve " #~ "er een uit de lijst te kiezen." #~ msgid "Find a Route" #~ msgstr "Route zoeken" #~ msgid "Check in here" #~ msgstr "Hier inchecken" #~ msgid "Population:" #~ msgstr "Populatie:" #~ msgid "Altitude:" #~ msgstr "Hoogte:" #~ msgid "Opening hours:" #~ msgstr "Openingstijden:" #~ msgid "Internet access:" #~ msgstr "Internettoegang:" #~ msgid "Toilets:" #~ msgstr "Wc's:" #~ msgid "Wheelchair access:" #~ msgstr "Rolstoeltoegankelijk:" #~ msgid "Phone:" #~ msgstr "Telefoon:" #~ msgid "yes" #~ msgstr "ja" #~ msgid "limited" #~ msgstr "beperkt toegankelijk" #~ msgid "no" #~ msgstr "nee" #~ msgid "designated" #~ msgstr "aangewezen" #~ msgid "OpenStreetMap URL is not valid" #~ msgstr "OpenStreetMap-URL is ongeldig" #~ msgctxt "time range list" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgctxt "time range list" #~ msgid "%s %s %s" #~ msgstr "%s %s %s" #~ msgctxt "time range component" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgid "wired" #~ msgstr "bedraad" #~ msgid "terminal" #~ msgstr "terminal" #~ msgid "service" #~ msgstr "dienst" #~ msgid "Don’t have an account?" #~ msgstr "Heeft u geen account?" #~ msgid "%f h" #~ msgstr "%f h" #~ msgid "%f min" #~ msgstr "%f min" #~ msgid "%f s" #~ msgstr "%f s" #~ msgid "Route search by OpenTripPlanner" #~ msgstr "Routezoeken door OpenTripPlanner" #~ msgid "Add destination" #~ msgstr "Bestemming toevoegen" #~ msgid "org.gnome.Maps" #~ msgstr "org.gnome.Maps" #~ msgid "Open with another application" #~ msgstr "Openen met een andere toepassing" #~ msgid "Press enter to search" #~ msgstr "Druk op enter om te zoeken" #~ msgid "Quit" #~ msgstr "Afsluiten" #~ msgid "OK" #~ msgstr "OK" #~ msgid "Open Shape Layer…" #~ msgstr "Vormlaag openen…" #~ msgid "Load Map Layer" #~ msgstr "Maplaag laden" #~ msgid "%f km" #~ msgstr "%f km" #~ msgid "%f m" #~ msgstr "%f m" #~ msgid "%f mi" #~ msgstr "%f mijl" #~ msgid "%f ft" #~ msgstr "%f voet" #~ msgid "Position not found" #~ msgstr "Positie niet gevonden" 070701000001DC000081A400000000000000000000000166413409000103D7000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/oc.po# Occitan Translation of GNOME Maps. # Copyright (C) 2013-2014 Free Software Foundation, Inc. # This file is distributed under the same license as the gnome-maps package. # Cédric Valmary (Tot en Òc) , 2015. # Cédric Valmary (Tot en òc) , 2015. # Cédric Valmary (totenoc.eu) , 2016, 2018. msgid "" msgstr "" "Project-Id-Version: gnome-maps master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2024-03-09 17:19+0000\n" "PO-Revision-Date: 2024-03-10 13:10+0100\n" "Last-Translator: Quentin PAGÈS\n" "Language-Team: Tot En Òc\n" "Language: oc\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: Poedit 3.4.2\n" "X-Project-Style: gnome\n" #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.appdata.xml.in.in:6 data/org.gnome.Maps.desktop.in.in:4 #: data/ui/main-window.ui:27 src/application.js:64 src/mainWindow.js:147 #: src/mainWindow.js:647 msgid "Maps" msgstr "Mapas" #: data/org.gnome.Maps.appdata.xml.in.in:7 msgid "Find places around the world" msgstr "Recèrca d'emplaçaments a l'entorn del monde" #: data/org.gnome.Maps.appdata.xml.in.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "L'aplicacion Mapas vos dona un accès rapid a de mapas del monde entièr. " "Permet de trobar rapidament un emplaçament en recercant per vila o per " "carrièra, o de situar un endreit de recontre amb un amic." #: data/org.gnome.Maps.appdata.xml.in.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "Las mapas utilizan la basa de donadas collaborativa OpenStreetMap, a la " "quala contribuisson de centenats de milierats de personas dins lo monde " "entièr." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Maps.appdata.xml.in.in:458 src/mainWindow.js:644 msgid "The GNOME Project" msgstr "Lo projècte GNOME" #: data/org.gnome.Maps.desktop.in.in:5 msgid "A simple maps application" msgstr "Una aplicacion cartografica simpla" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in.in:14 msgid "Maps;" msgstr "Mapas;" #: data/org.gnome.Maps.desktop.in.in:17 msgid "Allows your location to be shown on the map." msgstr "Permet d'afichar vòstre emplaçament sus la mapa." #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "darrièr emplaçament vist" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "Coordenadas del darrièr emplaçament afichat." #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "zoom" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "Nivèl de zoom" #: data/org.gnome.Maps.gschema.xml:21 msgid "rotation" msgstr "rotacion" #: data/org.gnome.Maps.gschema.xml:22 msgid "Map rotation in radians" msgstr "" #: data/org.gnome.Maps.gschema.xml:26 msgid "Map type" msgstr "Tipe de mapa" #: data/org.gnome.Maps.gschema.xml:27 msgid "The type of map to display (street, aerial, etc.)" msgstr "Lo tipe de carta d’afichar (carrièra, airal, etc.)" #: data/org.gnome.Maps.gschema.xml:31 msgid "Window size" msgstr "Talha de la fenèstra" #: data/org.gnome.Maps.gschema.xml:32 msgid "Window size (width and height)." msgstr "Talha de la fenèstra (nautor e largor)." #: data/org.gnome.Maps.gschema.xml:36 msgid "Window position" msgstr "Posicion de la fenèstra" #: data/org.gnome.Maps.gschema.xml:37 msgid "Window position (X and Y)." msgstr "Posicion de la fenèstra (X e Y)." #: data/org.gnome.Maps.gschema.xml:41 msgid "Window maximized" msgstr "Fenèstra agrandida" #: data/org.gnome.Maps.gschema.xml:42 msgid "Window maximization state" msgstr "Estat d'agrandiment de la fenèstra" #: data/org.gnome.Maps.gschema.xml:46 msgid "Maximum number of search results" msgstr "Nombre maximum de resultats de recèrca" #: data/org.gnome.Maps.gschema.xml:47 msgid "Maximum number of search results from geocode search." msgstr "Nombre maximum de resultats d'una recèrca per geocòdi." #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent places to store" msgstr "Nombre de posicions recentas d'emmagazinar" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited places to store." msgstr "Nombre de posicions visitadas recentament d'emmagazinar." #: data/org.gnome.Maps.gschema.xml:56 msgid "Number of recent routes to store" msgstr "Nombre de posicions recentas d'emmagazinar" #: data/org.gnome.Maps.gschema.xml:57 msgid "Number of recently visited routes to store." msgstr "Nombre de posicions visitadas recentament d'emmagazinar." #: data/org.gnome.Maps.gschema.xml:61 #, fuzzy #| msgid "OpenStreetMap username or e-mail address" msgid "OpenStreetMap username or email address" msgstr "Nom d'utilizaire o adreça electronica OpenStreetMap" #: data/org.gnome.Maps.gschema.xml:62 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "" "Indica se l'utilizaire s'es identificat per modificar de donadas " "OpenStreetMap." #: data/org.gnome.Maps.gschema.xml:66 msgid "Last used transportation type for routing" msgstr "Tipe de transpòrt utilizat al moment del darrièr itinerari" #: data/org.gnome.Maps.gschema.xml:70 msgid "Show scale" msgstr "Afichar l’escala" #: data/org.gnome.Maps.gschema.xml:71 msgid "Whether to show the scale." msgstr "Indica se cal afichar l’escala." #: data/ui/context-menu.ui:6 #, fuzzy #| msgid "Route from here" msgid "Route from Here" msgstr "Itinerari dempuèi aicí" #: data/ui/context-menu.ui:10 #, fuzzy #| msgid "Add intermediate destination" msgid "Add Intermediate Destination" msgstr "Apondre una destinacion intermediària" #: data/ui/context-menu.ui:14 #, fuzzy #| msgid "Route to here" msgid "Route to Here" msgstr "Itinerari fins a aqueste punt" #: data/ui/context-menu.ui:20 msgid "What's Here?" msgstr "De qué i a aicí ?" #: data/ui/context-menu.ui:24 #, fuzzy #| msgid "Copy location" msgid "Copy Location" msgstr "Copiar l'emplaçament" # :../data/ui/context-menu.ui.h:4 ../src/osmEditDialog.js:167 #: data/ui/context-menu.ui:28 #, fuzzy #| msgid "Add to OpenStreetMap" msgid "Add to OpenStreetMap…" msgstr "Apondre a OpenStreetMap" #: data/ui/export-view-dialog.ui:7 msgid "Export view" msgstr "Exportacion de l'afichatge" #: data/ui/export-view-dialog.ui:16 data/ui/send-to-dialog.ui:10 #: data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "_Anullar" #: data/ui/export-view-dialog.ui:26 msgid "_Export" msgstr "_Exportar" #. Translators: This is a tooltip #: data/ui/favorite-list-row.ui:72 #, fuzzy #| msgid "Toggle favorites" msgid "Remove Favorite" msgstr "Bascular los favorits" #: data/ui/favorites-popover.ui:11 msgid "No Favorites" msgstr "Cap de favorit" #: data/ui/favorites-popover.ui:12 msgid "Add places to your favorites to get them listed here" msgstr "" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:11 src/geoclue.js:106 src/placeBar.js:91 msgid "Current Location" msgstr "Luòc actual" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:19 msgid "Layers" msgstr "Jaces" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:11 msgid "Print Route" msgstr "Imprimir l'itinerari" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:21 msgid "Favorites" msgstr "Favorits" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:30 #, fuzzy #| msgid "Toggle route planner" msgid "Route Planner" msgstr "Bascular cap a l'itinerari" #: data/ui/help-overlay.ui:12 msgctxt "shortcut window" msgid "General" msgstr "General" #: data/ui/help-overlay.ui:15 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "Afichar los acorchis" #: data/ui/help-overlay.ui:21 msgctxt "shortcut window" msgid "Search" msgstr "Recercar" #: data/ui/help-overlay.ui:27 msgctxt "shortcut window" msgid "Explore points-of-interest" msgstr "" #: data/ui/help-overlay.ui:33 #, fuzzy #| msgid "Show more results" msgctxt "shortcut window" msgid "Show last search results" msgstr "Far veire mai de resultats" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "Bascular cap a l'itinerari" #: data/ui/help-overlay.ui:45 msgctxt "shortcut window" msgid "Print route" msgstr "Imprimir l'itinerari" #: data/ui/help-overlay.ui:51 msgctxt "shortcut window" msgid "Quit" msgstr "Quitar" #: data/ui/help-overlay.ui:57 msgctxt "shortcut window" msgid "Open main menu" msgstr "Dobrir lo menú principal" #: data/ui/help-overlay.ui:65 msgctxt "shortcut window" msgid "Map View" msgstr "Afichar la mapa" #: data/ui/help-overlay.ui:68 msgctxt "shortcut window" msgid "Zoom in" msgstr "Zoom avant" #: data/ui/help-overlay.ui:74 msgctxt "shortcut window" msgid "Zoom out" msgstr "Zoom arrièr" #: data/ui/help-overlay.ui:80 msgctxt "shortcut window" msgid "Rotate clockwise" msgstr "Rotacion orària" #: data/ui/help-overlay.ui:86 msgctxt "shortcut window" msgid "Rotate counter-clockwise" msgstr "Rotacion antiorària" #: data/ui/help-overlay.ui:92 #, fuzzy #| msgid "Remove via location" msgctxt "shortcut window" msgid "Reset rotation" msgstr "Suprimir l’emplaçament intermediari" #: data/ui/help-overlay.ui:98 msgctxt "shortcut window" msgid "Toggle scale" msgstr "Bascular los favorits" #: data/ui/help-overlay.ui:104 msgctxt "shortcut window" msgid "Go to current location" msgstr "Anar a ma posicion actuala" #: data/ui/help-overlay.ui:114 msgctxt "shortcut window" msgid "Switch to street view" msgstr "Passar en vista cartografica" #: data/ui/help-overlay.ui:121 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "Passar en vista aeriana" #: data/ui/help-overlay.ui:127 msgctxt "shortcut window" msgid "Open shape layer" msgstr "Dobrir un jaç de formas" #: data/ui/layers-popover.ui:7 msgid "Show Scale" msgstr "Afichar l’escala" #: data/ui/layers-popover.ui:16 msgid "Enable Experimental Map" msgstr "" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:21 msgid "Open Shape Layer…" msgstr "Dobrir un jaç de formas…" #: data/ui/main-window.ui:8 #, fuzzy #| msgid "Set up OpenStreetMap Account" msgid "Set up OpenStreetMap Account…" msgstr "Configurar un compte OpenStreetMap" #: data/ui/main-window.ui:12 #, fuzzy #| msgid "Export as Image" msgid "Export as Image…" msgstr "Exportar coma imatge" #: data/ui/main-window.ui:17 msgid "_Keyboard Shortcuts" msgstr "_Acorchis de clavièr" #: data/ui/main-window.ui:22 msgid "About Maps" msgstr "A prepaus de Maps" #: data/ui/main-window.ui:48 msgid "Main Menu" msgstr "Menú principal" #: data/ui/osm-account-dialog.ui:5 msgid "OpenStreetMap Account" msgstr "Compte OpenStreetMap" #: data/ui/osm-account-dialog.ui:31 msgid "Sign In To Edit Maps" msgstr "" #: data/ui/osm-account-dialog.ui:32 #, fuzzy #| msgid "" #| "Help to improve the map, using an\n" #| "OpenStreetMap account." msgid "Help to improve the map, using an OpenStreetMap account." msgstr "" "Ajudar al melhorament de las mapas amb\n" "un compte OpenStreetMap." #: data/ui/osm-account-dialog.ui:36 msgid "Sign In" msgstr "Connexion" #: data/ui/osm-account-dialog.ui:59 msgid "Verification" msgstr "Verificacion" #: data/ui/osm-account-dialog.ui:60 msgid "" "Copy the verification code shown when authorizing access in the browser." msgstr "" #: data/ui/osm-account-dialog.ui:69 msgid "Verification Code" msgstr "Còdi de verificacion" #: data/ui/osm-account-dialog.ui:75 msgid "Verify" msgstr "Verificar" #: data/ui/osm-account-dialog.ui:110 msgid "Signed In" msgstr "Connexion" #: data/ui/osm-account-dialog.ui:111 msgid "Your OpenStreetMap account is active." msgstr "Vòstre compte OpenStreetMap es actiu." #: data/ui/osm-account-dialog.ui:129 msgid "Sign Out" msgstr "Desconnexion" #: data/ui/osm-edit-address.ui:11 msgid "Street" msgstr "Carrièra" #: data/ui/osm-edit-address.ui:22 msgid "House number" msgstr "Numèro d'ostal" #: data/ui/osm-edit-address.ui:33 msgid "Postal code" msgstr "Còdi postal" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:44 msgid "City" msgstr "Vila" #: data/ui/osm-edit-dialog.ui:8 msgctxt "dialog title" msgid "Edit on OpenStreetMap" msgstr "Modificar sus OpenStreetMap" #: data/ui/osm-edit-dialog.ui:57 msgid "Type" msgstr "Tipe" #: data/ui/osm-edit-dialog.ui:79 msgid "None" msgstr "Pas cap" #: data/ui/osm-edit-dialog.ui:108 msgid "Add Field" msgstr "Apondre un camp" #: data/ui/osm-edit-dialog.ui:130 msgid "Comment" msgstr "Comentari" #: data/ui/osm-edit-dialog.ui:158 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "Las modificacions de la mapa seràn visiblas sus totas\n" "las mapas qu'utilizan de donadas OpenStreetMap." #: data/ui/osm-edit-dialog.ui:186 msgid "Recently Used" msgstr "Darrièrament utilizat" #: data/ui/osm-edit-dialog.ui:225 src/mapView.js:671 msgid "Cancel" msgstr "Anullar" #: data/ui/osm-edit-dialog.ui:238 src/osmEditDialog.js:531 msgid "Next" msgstr "Seguent" #: data/ui/osm-edit-wikipedia.ui:8 msgid "Article" msgstr "Article" #: data/ui/osm-edit-wikipedia.ui:21 msgid "Wikidata tag" msgstr "" #: data/ui/osm-edit-wikipedia.ui:32 msgid "Load Wikidata tag for article" msgstr "" #: data/ui/place-popover.ui:23 src/searchBar.js:55 msgid "Explore Nearby Places" msgstr "" #: data/ui/place-popover.ui:82 src/application.js:277 msgid "No results found" msgstr "Cap de resultat pas trobat" #: data/ui/place-popover.ui:92 src/application.js:255 msgid "An error has occurred" msgstr "Una error s'es produita" #. Translators: This is a tooltip #: data/ui/route-entry.ui:12 msgid "Change Route Order" msgstr "" #: data/ui/send-to-dialog.ui:7 msgid "Open Location" msgstr "Dobrir l'emplaçament" #: data/ui/send-to-dialog.ui:64 msgid "Copy" msgstr "Copiar" #: data/ui/send-to-dialog.ui:70 msgid "Send To…" msgstr "Enviar a…" #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:62 msgid "Open Shape Layer" msgstr "Dobrir un jaç de formas" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "_Dobrir" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:32 msgid "Toggle visible" msgstr "Inversar la visibilitat" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:44 msgid "Remove Shape Layer" msgstr "Tirar lo jaç de fòrmas" #: data/ui/sidebar.ui:207 msgid "Route search by GraphHopper" msgstr "Recèrca d'itinerari amb GraphHopper" #: data/ui/sidebar.ui:272 #, fuzzy #| msgid "" #| "Routing itineraries for public transit is provided by GNOME\n" #| "using timetable data obtained from transit companies or agencies.\n" #| "The companies and agencies can not be held responsible for the results " #| "shown.\n" #| "GNOME can not guarantee correctness of the itineraries and schedules " #| "shown.\n" #| "Names and brands shown are to be considered as registered trademarks when " #| "applicable." msgid "" "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of " "transportation,\n" "e.g. a national provider might not include airlines, and a local provider " "could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" "Los itineraris per transpòrt public prepausats per GNOME utilizan\n" "de tablèus oraris obtenguts de las companhias de transpòrt.\n" "Aquelas companhias pòdon pas èsser tengudas responsablas dels resultats " "afichats.\n" "GNOME pòt pas garantir l’exactitud dels itineraris e oraris presentats.\n" "Los noms e marcas afichats devon èsser considerats coma de marcas " "depausadas, se fa mestièr." #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:98 msgid "Hide intermediate stops and information" msgstr "Amagar los arrèsts e informacions intermediàrias" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:156 msgid "Show intermediate stops and information" msgstr "Afichar los arrèsts e informacions intermediàrias" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:16 msgid "Leave Now" msgstr "Partir ara" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:17 msgid "Leave By" msgstr "Despart" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:18 msgid "Arrive By" msgstr "Arribada" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:85 msgid "Show" msgstr "Afichar" #: data/ui/transit-options-panel.ui:95 msgid "Buses" msgstr "Bus" #: data/ui/transit-options-panel.ui:101 msgid "Trams" msgstr "Trams" #: data/ui/transit-options-panel.ui:107 msgid "Trains" msgstr "Trens" #: data/ui/transit-options-panel.ui:113 msgid "Subway" msgstr "Mètros" #: data/ui/transit-options-panel.ui:119 msgid "Ferries" msgstr "Vaissèls" #: data/ui/transit-options-panel.ui:125 msgid "Airplanes" msgstr "Avions" #. Translators: This is a tooltip #: data/ui/place-bar.ui:33 data/ui/place-buttons.ui:27 #, fuzzy #| msgid "Share location" msgid "Share Location" msgstr "Partejar l'emplaçament" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:11 msgid "Add to new route" msgstr "Apondre a un novèl itinerari" #. Translators: This is the button to find a route to a place #: data/ui/place-buttons.ui:15 msgid "Directions" msgstr "Direccions" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:36 msgid "Mark as Favorite" msgstr "Marcar coma favorit" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:44 msgid "Edit on OpenStreetMap" msgstr "Modificar sus OpenStreetMap" #. Translators: This is a tooltip #: data/ui/place-view.ui:52 msgid "Share location" msgstr "Partejar l'emplaçament" #: data/ui/poi-category-goback-row.ui:22 msgid "Back to Main Categories" msgstr "" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:19 #, fuzzy #| msgid "Remove via location" msgid "Reset Rotation" msgstr "Suprimir l’emplaçament intermediari" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:32 msgid "Zoom Out" msgstr "Zoom arrièr" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:43 src/mapView.js:1246 msgid "Zoom In" msgstr "Zoom avant" #: lib/maps-file-data-source.c:262 lib/maps-file-data-source.c:338 #: lib/maps-file-data-source.c:418 msgid "Failed to find tile structure in directory" msgstr "Impossible de trobar una estructura de teulas dins lo repertòri" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "Fracàs d'analisi d'un document XML" #: lib/maps-osm.c:250 lib/maps-osm.c:403 msgid "Missing required attributes" msgstr "Atributs obligatòris mancants" #: lib/maps-osm.c:451 lib/maps-osm.c:494 msgid "Could not find OSM element" msgstr "Impossible de trobar l'element OSM" #: lib/maps-osm.c:508 #, fuzzy #| msgid "Could not find OSM element" msgid "Could not find user element" msgstr "Impossible de trobar l'element OSM" #: src/application.js:78 msgid "A path to a local tiles directory structure" msgstr "Un camin cap a un repertòri local d'estructura de teulas" #: src/application.js:84 msgid "Tile size for local tiles directory" msgstr "Talha del repertòri local de teulas" #: src/application.js:88 msgid "Show the version of the program" msgstr "Afichar la version del logicial" #: src/application.js:94 msgid "Search for places" msgstr "Recercar de lòcs" #: src/application.js:105 src/application.js:106 msgid "[FILE…|URI]" msgstr "[FICHIÈR|URI...]" #: src/application.js:284 #, javascript-format msgid "Invalid maps: URI: %s" msgstr "" #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:75 #, javascript-format msgid "Maps at %f, %f.png" msgstr "Mapas situadas a %f, %f.png" #: src/exportViewDialog.js:174 msgid "Unable to export view" msgstr "Impossible d'exportar l'afichatge" #: src/favoriteListRow.js:42 msgid "Favorite removed" msgstr "" #: src/favoriteListRow.js:43 msgid "Undo" msgstr "" #: src/geoJSONSource.js:73 msgid "invalid coordinate" msgstr "coordenada pas valabla" #: src/geoJSONSource.js:126 src/geoJSONSource.js:166 src/geoJSONSource.js:181 msgid "parse error" msgstr "error d'analisi" #: src/geoJSONSource.js:160 msgid "unknown geometry" msgstr "geometria desconeguda" #: src/graphHopper.js:101 src/transitPlan.js:175 msgid "Route request failed." msgstr "Fracàs de la recèrca d'itinerari." #: src/graphHopper.js:108 src/transitPlan.js:167 msgid "No route found." msgstr "Cap d'itinerari pas trobat." #: src/graphHopper.js:195 src/transitplugins/openTripPlanner.js:1163 msgid "Start!" msgstr "Es partit !" #: src/mainWindow.js:59 msgid "All Layer Files" msgstr "Totes los fichièrs de jaces" #: src/mainWindow.js:522 msgid "Failed to connect to location service" msgstr "Fracàs a la connexion al servici de localizacion" #: src/mainWindow.js:527 #, fuzzy #| msgid "Turn on location services to find your location" msgid "Turn on location services" msgstr "Activar los servicis de localizacion per trobar vòstra posicion" #: src/mainWindow.js:528 msgid "Location Settings" msgstr "Paramètres de localizacion" #: src/mainWindow.js:645 msgid "translator-credits" msgstr "" "Cédric Valmary (totenoc.eu) \n" "Quentin PAGÈS" #: src/mainWindow.js:649 #, fuzzy #| msgid "Copyright © 2011 – 2022 Red Hat, Inc. and The GNOME Maps authors" msgid "Copyright © 2011 – 2023 Red Hat, Inc. and The GNOME Maps authors" msgstr "Copyright © 2011 – 2022 Red Hat, Inc. e los autors de Mapas de GNOME" #: src/mainWindow.js:665 #, javascript-format msgid "Map data by %s and contributors" msgstr "Donadas cartograficas de %s e contributors" #: src/mainWindow.js:666 msgid "Map Data Provider" msgstr "Provesidor de donadas cartografica" #: src/mainWindow.js:678 #, fuzzy #| msgid "Map tiles provided by %s" msgid "Map Tile Provider" msgstr "Jaces de donadas cartograficas provesidas per %s" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:686 #, javascript-format msgid "Map tiles provided by %s" msgstr "Jaces de donadas cartograficas provesidas per %s" #: src/mainWindow.js:716 msgid "Search Provider" msgstr "Provesidor de recèrca" #: src/mainWindow.js:719 #, javascript-format msgid "Search provided by %s using %s" msgstr "Recèrca fornida per %s en utilizant %s" #: src/mapView.js:645 src/mapView.js:710 msgid "Failed to open layer" msgstr "Fracàs de dobertura del jaç" #: src/mapView.js:664 msgid "Do you want to continue?" msgstr "Volètz contunhar ?" #: src/mapView.js:665 #, javascript-format msgid "" "You are about to open files with a total size of %s MB. This could take some " "time to load" msgstr "" "Sètz a mand de dobrir de fichièrs amb una talha total de %s Mo. Aquòt pòt " "trigar a cargar" #: src/mapView.js:672 src/transitplugins/openTripPlanner.js:1239 #: src/transitplugins/openTripPlanner2.js:267 msgid "Continue" msgstr "Contunhar" #: src/mapView.js:704 msgid "File type is not supported" msgstr "Lo tipe de fichièr es pas pris en charge" #: src/mapView.js:741 msgid "Failed to open GeoURI" msgstr "Fracàs de dobertura de la Geo URI" #: src/mapView.js:1205 msgid "Nothing found here!" msgstr "Res es pas estat trobat a aqueste endreit !" #: src/mapView.js:1245 #, fuzzy #| msgid "Zoom in to add location!" msgid "Zoom in to add location" msgstr "Zoomatz per apondre un emplaçament !" #: src/mapView.js:1266 #, fuzzy #| msgid "Place not found in OpenStreetMap" msgid "Location was added in OpenStreetMap" msgstr "Luòc pas trobat dins OpenStreetMap" #. switch back to the sign-in view, and show a toast indicating #. that verification failed #: src/osmAccountDialog.js:134 msgid "The verification code didn’t match, please try again." msgstr "Lo còdi de verificacion correspond pas, ensajatz encara un còp." #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:335 msgid "Incorrect user name or password" msgstr "Nom d'utilizaire o senhal incorrècte" #: src/osmConnection.js:337 msgid "Success" msgstr "Succès" #: src/osmConnection.js:339 msgid "Bad request" msgstr "Marrida requèsta" #: src/osmConnection.js:341 msgid "Object not found" msgstr "Objècte pas trobat" #: src/osmConnection.js:343 msgid "Conflict, someone else has just modified the object" msgstr "Conflicte, qualqu'un mai ven de modificar l'objècte" #: src/osmConnection.js:345 msgid "Object has been deleted" msgstr "L'objècte es estat suprimit" #: src/osmConnection.js:347 msgid "Way or relation refers to non-existing children" msgstr "Lo camin o la relacion se referís a d'enfants qu'existisson pas" #: src/osmEditDialog.js:106 msgid "Name" msgstr "Nom" #: src/osmEditDialog.js:109 msgid "The official name. This is typically what appears on signs." msgstr "Lo nom oficial. Es en general çò qu'es escrit sus l'ensenha." #: src/osmEditDialog.js:112 msgid "Address" msgstr "Adreça" #: src/osmEditDialog.js:120 src/placeView.js:275 msgid "Website" msgstr "Site internet" #: src/osmEditDialog.js:124 msgid "This is not a valid URL. Make sure to include http:// or https://." msgstr "Es pas una URL valida. Asseguratz-vos d'inclure http:// o https://." #: src/osmEditDialog.js:125 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" "Lo site officiel. Ensajatz d'utilizar la forma la plus simple per l'URL, es " "a dire http://example.com al luòc de http://example.com/index.html." #: src/osmEditDialog.js:130 msgid "Phone" msgstr "Telefòn" #: src/osmEditDialog.js:134 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" "Numèro de telefòn. Utilizatz lo format internacional, en començant per un " "signe +. Atencion a las leis localas sus la vida privada, sustot pels " "numéros de telefòn dels particulars." #: src/osmEditDialog.js:139 src/placeView.js:308 msgid "Email" msgstr "Adreça de corrièr electronic" #: src/osmEditDialog.js:144 #, fuzzy #| msgid "This is not a valid URL. Make sure to include http:// or https://." msgid "" "This is not a valid email address. Make sure to not include the mailto: " "protocol prefix." msgstr "Es pas una URL valida. Asseguratz-vos d'inclure http:// o https://." #: src/osmEditDialog.js:145 msgid "" "Contact email address for inquiries. Add only email addresses that are " "intended to be publicly used." msgstr "" #. Translators: This is the text for the "Wikipedia" link at the end #. of summaries #: src/osmEditDialog.js:149 src/placeView.js:727 msgid "Wikipedia" msgstr "Wikipèdia" #: src/osmEditDialog.js:156 src/placeView.js:399 msgid "Opening hours" msgstr "Oras de dobertura" #: src/osmEditDialog.js:161 msgid "See the link in the label for help on format." msgstr "Veire lo ligam dins l'etiqueta per de l'ajuda sul format." #. TODO: this is a bit of a work-around to re-interpret the population, #. * stored as a string into an integer to convert back to a locale- #. * formatted string. Ideally it should be kept as an integer value #. * in the Place class. But this will also need to be handled by the #. * PlaceStore, possible in a backwards-compatible way #. #: src/osmEditDialog.js:164 src/placeView.js:509 msgid "Population" msgstr "Populacion" #: src/osmEditDialog.js:169 src/placeView.js:538 msgid "Altitude" msgstr "Altitud" #: src/osmEditDialog.js:172 #, fuzzy #| msgid "Elevation (height above sea level) of a point in metres." msgid "Elevation (height above sea level) of a point in meters." msgstr "Elevacion (nautor en dessús del nivèl de la mar) d'un punt en mètres." #: src/osmEditDialog.js:175 msgid "Wheelchair access" msgstr "Accès als fautuèlhs rotlants" #: src/osmEditDialog.js:178 src/osmEditDialog.js:187 src/osmEditDialog.js:198 #: src/osmEditDialog.js:233 msgid "Yes" msgstr "Òc" #: src/osmEditDialog.js:179 src/osmEditDialog.js:188 src/osmEditDialog.js:199 #: src/osmEditDialog.js:234 msgid "No" msgstr "Non" #: src/osmEditDialog.js:180 msgid "Limited" msgstr "Limitat" #: src/osmEditDialog.js:181 msgid "Designated" msgstr "Reservat" #: src/osmEditDialog.js:184 msgid "Internet access" msgstr "Accès internet" #: src/osmEditDialog.js:189 msgid "Wi-Fi" msgstr "Wi-Fi" #: src/osmEditDialog.js:190 msgid "Wired" msgstr "Fialar" #: src/osmEditDialog.js:191 msgid "Terminal" msgstr "Terminal" #: src/osmEditDialog.js:192 msgid "Service" msgstr "Servici" #: src/osmEditDialog.js:195 msgid "Takeout" msgstr "" #: src/osmEditDialog.js:200 msgid "Only" msgstr "Sonque" #: src/osmEditDialog.js:203 msgid "Religion" msgstr "Religion" #: src/osmEditDialog.js:206 src/translations.js:286 msgid "Animism" msgstr "Animisme" #: src/osmEditDialog.js:207 msgid "Bahá’í" msgstr "Baaïsme" #: src/osmEditDialog.js:208 src/translations.js:288 msgid "Buddhism" msgstr "Bodisme" #: src/osmEditDialog.js:209 src/translations.js:289 msgid "Caodaism" msgstr "Caodaïsme" #: src/osmEditDialog.js:210 src/translations.js:290 msgid "Christianity" msgstr "Cristianisme" #: src/osmEditDialog.js:211 src/translations.js:291 msgid "Confucianism" msgstr "Confucianisme" #: src/osmEditDialog.js:212 src/translations.js:292 msgid "Hinduism" msgstr "Indoïsme" #: src/osmEditDialog.js:213 src/translations.js:293 msgid "Jainism" msgstr "Jaïnisme" #: src/osmEditDialog.js:214 src/translations.js:294 msgid "Judaism" msgstr "Judaïsme" #: src/osmEditDialog.js:215 src/translations.js:295 msgid "Islam" msgstr "Islam" #: src/osmEditDialog.js:216 src/translations.js:296 msgid "Multiple Religions" msgstr "Mantuna religion" #: src/osmEditDialog.js:217 src/translations.js:297 msgid "Paganism" msgstr "Paganisme" #: src/osmEditDialog.js:218 src/translations.js:298 msgid "Pastafarianism" msgstr "Pastafarisme" #: src/osmEditDialog.js:219 src/translations.js:299 msgid "Scientology" msgstr "Scientologie" #: src/osmEditDialog.js:220 src/translations.js:300 msgid "Shinto" msgstr "Shintoïsme" #: src/osmEditDialog.js:221 src/translations.js:301 msgid "Sikhism" msgstr "Sikhisme" #: src/osmEditDialog.js:222 src/translations.js:302 msgid "Spiritualism" msgstr "Spiritualisme" #: src/osmEditDialog.js:223 src/translations.js:303 msgid "Taoism" msgstr "Taoïsme" #: src/osmEditDialog.js:224 src/translations.js:304 msgid "Unitarian Universalism" msgstr "Unitarisme universalista" #: src/osmEditDialog.js:225 src/translations.js:305 msgid "Voodoo" msgstr "Vodó" #: src/osmEditDialog.js:226 src/translations.js:306 msgid "Yazidism" msgstr "Iezidisme" #: src/osmEditDialog.js:227 src/translations.js:307 msgid "Zoroastrianism" msgstr "Zoroastrisme" #: src/osmEditDialog.js:230 src/poiCategories.js:176 msgid "Toilets" msgstr "Comuns" #: src/osmEditDialog.js:237 msgid "Note" msgstr "Nòta" #: src/osmEditDialog.js:240 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" "Informacions utilizadas per informar d’autres cartografes sus las " "informacions non evidentas sus un element, l’intencion de l’autor al moment " "de sa creacion, o de las indicacions per de possibles melhoraments." # :../data/ui/context-menu.ui.h:4 ../src/osmEditDialog.js:167 #: src/osmEditDialog.js:339 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "Apondre a OpenStreetMap" #: src/osmEditDialog.js:393 msgid "Select Type" msgstr "Seleccionar un tipe" #: src/osmEditDialog.js:515 msgid "Done" msgstr "Fait" #: src/osmEditDialog.js:818 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "" "Lo format utilizat deuriá comprene lo còdi lenga e lo títol de l’article, " "coma « oc:Títol de l’article »." #: src/osmEditDialog.js:824 msgid "Use the reload button to load the Wikidata tag for the selected article" msgstr "" #: src/osmEditDialog.js:832 msgid "Couldn't find Wikidata tag for article" msgstr "" #: src/photonUtils.js:118 msgid "Unnamed place" msgstr "Luòc sens nom" #: src/placeEntry.js:274 msgid "Failed to parse Geo URI" msgstr "Fracàs a l'analisi de la Geo URI" #: src/placeEntry.js:286 #, fuzzy #| msgid "Failed to parse Geo URI" msgid "Failed to parse Maps URI" msgstr "Fracàs a l'analisi de la Geo URI" #. 300 ft (300 * 12 * 0.0254 m) #. #. * Translators: This a format string for showing a distance to a place #. * is lower than a "quite short" distance. #. * The "less than" symbol can be substituded with an appropriate one, if #. * needed (e.g. using the correct direction, or alternative symbol). #. * The %s should be kept, and is substituted with a label representing the #. * short distance. The \u2009 (thin space) could also be adjusted if needed #: src/placeListRow.js:46 #, javascript-format msgctxt "short distance format string" msgid "< %s" msgstr "" #: src/placeView.js:263 msgid "Coordinates" msgstr "Coordenadas" #: src/placeView.js:267 msgid "Accuracy" msgstr "Precision" #. Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) #: src/placeView.js:270 #, javascript-format msgid "Accuracy: %s" msgstr "Precision de la posicion : %s" #. since the phone numbers are typically always rendered #. * left-to-right, insert an explicit LRM char to avoid issues #. * with phone numbers in international format starting with a + #. * which is considered a "weak" character to determine Unicode #. * text direction #. #: src/placeView.js:289 msgid "Phone number" msgstr "Numèro de telefòn" #. If a reference to a named floor (named or symbolic) exists #. * refer to it directly. #. #. Translators: #. * This is a reference to named building floor, using a label #. * or a code, as "displayed in the elevator" #. #: src/placeView.js:323 src/placeView.js:362 msgid "Floor" msgstr "" #: src/placeView.js:325 #, javascript-format msgid "Floor %s" msgstr "" #: src/placeView.js:337 #, fuzzy #| msgid "At sea level" msgid "At ground level" msgstr "Al nivèl de la mar" #. Translators: #. * This is a reference to a number of floors above #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:346 #, javascript-format msgid "%s floor above ground level" msgid_plural "%s floors above ground level" msgstr[0] "" msgstr[1] "" #. Translators: #. * This is a reference to a number of floors below #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:357 #, fuzzy, javascript-format #| msgid "%s below sea level" msgid "%s floor below ground level" msgid_plural "%s floors below ground level" msgstr[0] "%s jol nivèl de la mar" msgstr[1] "%s jol nivèl de la mar" #. Translators: #. * The establishment offers customers to purchase meals #. * (or similar) to be consumed elsewhere #. #: src/placeView.js:375 #, fuzzy #| msgid "Offers takeaway" msgid "Offers takeout" msgstr "Prepausa per emportar" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed on-premise. #. #: src/placeView.js:383 #, fuzzy #| msgid "Does not offer takeaway" msgid "Does not offer takeout" msgstr "Prepausa pas per emportar" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed elsewhere. E.g. #. * there is no seating on-premise for eating/drinking #. #: src/placeView.js:392 #, fuzzy #| msgid "Only offers takeaway" msgid "Only offers takeout" msgstr "Prepausa sonque per emportar" #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/placeView.js:409 msgid "Public internet access" msgstr "Accès internet public" #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/placeView.js:418 msgid "No internet access" msgstr "Cap d'accès internet" #. Translators: #. * This means a WLAN Hotspot, also known as wireless, wifi or Wi-Fi. #. #: src/placeView.js:426 msgid "Public Wi-Fi" msgstr "Wi-Fi public" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/placeView.js:434 msgid "Wired internet access" msgstr "Accès internet per cable" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/placeView.js:442 msgid "Computers available for use" msgstr "Ordenadors a disposicion" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/placeView.js:450 msgid "Internet assistance available" msgstr "Assisténcia Internet disponibla" #: src/placeView.js:456 msgid "No toilets available" msgstr "Cap de comun pas disponible" #: src/placeView.js:459 msgid "Toilets available" msgstr "Comuns disponibles" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #: src/placeView.js:468 msgid "Wheelchair accessible" msgstr "Accès als fautuèlhs rotlants" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/placeView.js:478 msgid "Limited wheelchair accessibility" msgstr "Accès als fautuèlhs rotlants limitat" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #: src/placeView.js:487 msgid "Not wheelchair accessible" msgstr "Cap d'accès als fautuèlhs rotlants" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/placeView.js:497 msgid "Designated for wheelchair users" msgstr "Accès als fautuèlhs rotlants" #. * #. * Translators: this is a label indicating an altitude below #. * sea level, where the %s placeholder is the altitude relative #. * to mean sea level in the "negative direction" #. #: src/placeView.js:528 #, javascript-format msgid "%s below sea level" msgstr "%s jol nivèl de la mar" #. * #. * Translators: this indicates a place is located at (or very #. * close to) mean sea level #. #: src/placeView.js:535 msgid "At sea level" msgstr "Al nivèl de la mar" #: src/placeView.js:544 msgid "Religion:" msgstr "Religion :" #: src/place.js:576 msgid "Place not found in OpenStreetMap" msgstr "Luòc pas trobat dins OpenStreetMap" #: src/place.js:583 msgid "Coordinates in URL are not valid" msgstr "Las coordenadas dins l’URL son pas validas" #: src/place.js:592 msgid "URL is not supported" msgstr "L'URL donat es pas pres en carga" #: src/poiCategories.js:132 msgid "Amenities" msgstr "" #: src/poiCategories.js:135 msgid "ATMs" msgstr "" #: src/poiCategories.js:141 #, fuzzy #| msgid "Postal code" msgid "Post Boxes" msgstr "Còdi postal" #: src/poiCategories.js:147 #, fuzzy #| msgid "Postal code" msgid "Post Offices" msgstr "Còdi postal" #: src/poiCategories.js:153 msgid "Police" msgstr "Polícia" #: src/poiCategories.js:159 msgid "Libraries" msgstr "Bibliotècas" #: src/poiCategories.js:165 msgid "Pharmacies" msgstr "Farmacia" #: src/poiCategories.js:171 msgid "Recycling" msgstr "" #: src/poiCategories.js:182 #, fuzzy #| msgid "Wheelchair accessible" msgid "Wheelchair-accessible Toilets" msgstr "Accès als fautuèlhs rotlants" #: src/poiCategories.js:188 msgid "Baggage Lockers" msgstr "" #: src/poiCategories.js:196 msgid "Eating & Drinking" msgstr "Beure e manjar" #: src/poiCategories.js:200 msgid "Restaurants" msgstr "Restaurants" #: src/poiCategories.js:205 msgid "Fast Food" msgstr "" #: src/poiCategories.js:210 msgid "Food Courts" msgstr "" #: src/poiCategories.js:215 msgid "Pubs" msgstr "" #: src/poiCategories.js:221 msgid "Bars" msgstr "Bars" #: src/poiCategories.js:226 msgid "Cafes" msgstr "Cafès" #: src/poiCategories.js:231 msgid "Ice Cream" msgstr "" #: src/poiCategories.js:236 msgid "Food, Snacks, and Beverage Machines" msgstr "" #: src/poiCategories.js:244 msgid "Shopping" msgstr "Botiga" #: src/poiCategories.js:248 msgid "Supermarkets" msgstr "Supermercats" #: src/poiCategories.js:254 msgid "Convenience Stores" msgstr "" #: src/poiCategories.js:259 msgid "Shopping Malls" msgstr "" #: src/poiCategories.js:265 msgid "Clothes" msgstr "" #: src/poiCategories.js:271 msgid "Shoes" msgstr "" #: src/poiCategories.js:276 msgid "Electronics" msgstr "" #: src/poiCategories.js:282 msgid "Alcohol" msgstr "Alcoòl" #: src/poiCategories.js:288 msgid "Bakeries" msgstr "Fornariás" #: src/poiCategories.js:294 msgid "Flowers" msgstr "Flors" #: src/poiCategories.js:301 msgid "Transportation" msgstr "" #: src/poiCategories.js:305 msgid "Bus & Tram Stops" msgstr "" #: src/poiCategories.js:313 msgid "Train & Subway Stations" msgstr "" #: src/poiCategories.js:321 msgid "Tickets" msgstr "Bilhets" #: src/poiCategories.js:329 msgid "Parking" msgstr "" #: src/poiCategories.js:334 msgid "Bicycle Parking" msgstr "" #: src/poiCategories.js:339 msgid "Bicycle Rental" msgstr "" #: src/poiCategories.js:344 msgid "Car Rental" msgstr "" #: src/poiCategories.js:349 msgid "Fuel" msgstr "" #: src/poiCategories.js:354 msgid "EV Charging" msgstr "" #: src/poiCategories.js:362 msgid "Healthcare" msgstr "Santat" #: src/poiCategories.js:366 msgid "Clinics" msgstr "Clinicas" #: src/poiCategories.js:372 msgid "Hospitals" msgstr "" #: src/poiCategories.js:378 msgid "Dentists" msgstr "Dentistas" #: src/poiCategories.js:386 msgid "Accommodation" msgstr "" #: src/poiCategories.js:390 msgid "Hotels" msgstr "" #: src/poiCategories.js:395 msgid "Hostels" msgstr "" #: src/poiCategories.js:400 msgid "Bed & Breakfast" msgstr "" #: src/poiCategories.js:405 msgid "Campings" msgstr "Campatge" #: src/poiCategories.js:412 #, fuzzy #| msgid "Open Location" msgid "Recreation" msgstr "Dobrir l'emplaçament" #: src/poiCategories.js:416 msgid "Parks" msgstr "" #: src/poiCategories.js:421 msgid "Playgrounds" msgstr "" #: src/poiCategories.js:425 msgid "Beaches" msgstr "Plajas" #: src/poiCategories.js:430 msgid "Nature Reserves" msgstr "" #: src/poiCategories.js:436 msgid "Theme Parks" msgstr "" #: src/poiCategories.js:441 msgid "Theaters" msgstr "Teatres" #: src/poiCategories.js:447 msgid "Movie Theaters" msgstr "" #: src/poiCategories.js:453 msgid "Night Clubs" msgstr "Discotècas" #: src/poiCategories.js:460 msgid "Tourism" msgstr "" #: src/poiCategories.js:464 msgid "Museums" msgstr "Musèus" #: src/poiCategories.js:470 #, fuzzy #| msgid "Directions" msgid "Attractions" msgstr "Direccions" #: src/poiCategories.js:475 msgid "Artworks" msgstr "" #: src/poiCategories.js:480 #, fuzzy #| msgid "Show more information" msgid "Tourist Information" msgstr "Far veire mai d'informacion" #: src/poiCategories.js:487 msgid "Sports" msgstr "Espòrts" #: src/poiCategories.js:491 msgid "Gyms" msgstr "" #: src/poiCategories.js:497 msgid "Outdoor Gyms" msgstr "" #: src/poiCategories.js:503 msgid "Golf Courses" msgstr "" #: src/printLayout.js:350 #, javascript-format msgid "From %s to %s" msgstr "De %s a %s" #: src/printOperation.js:49 msgid "Loading map tiles for printing" msgstr "Cargament de las teulas de mapa per l'impression" #: src/printOperation.js:50 msgid "You can abort printing if this takes too long" msgstr "Podètz interrompre l'impression se cela pren tròp de temps" #: src/printOperation.js:52 msgid "Abort printing" msgstr "Interrompre l'impression" #. Translators: this is add via location tooltip #: src/routeEntry.js:60 msgid "Add via location" msgstr "Apondre un emplaçament intermediari" #. Translators: this is remove via location tooltip #: src/routeEntry.js:70 msgid "Remove via location" msgstr "Suprimir l’emplaçament intermediari" #. Translators: this is reverse route tooltip #: src/routeEntry.js:76 msgid "Reverse route" msgstr "Camin invèrse" #: src/searchBar.js:45 msgid "Search" msgstr "Recercar" #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:84 #, javascript-format msgid "Add %s to %s" msgstr "Apondre %s a %s" #: src/sendToDialog.js:181 msgid "Failed to open URI" msgstr "Fracàs de dobertura de l'URI" #: src/sendToDialog.js:246 #, javascript-format msgid "Open with %s" msgstr "Dobrir amb %s" #: src/shapeLayer.js:109 msgid "failed to load file" msgstr "impossible de cargar lo fichièr" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:328 #, javascript-format msgid "Estimated time: %s" msgstr "Temps estimat : %s" #: src/sidebar.js:398 #, javascript-format msgid "Itineraries provided by %s" msgstr "Itineraris provesits per %s" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:39 #, javascript-format msgid "Start at %s" msgstr "Despart de %s" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:45 src/transitplugins/openTripPlanner2.js:236 msgid "Start" msgstr "Despart" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:63 #, javascript-format msgid "Walk %s" msgstr "Caminar %s" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:77 #, javascript-format msgid "Arrive at %s" msgstr "Arribada a %s" #: src/transit.js:79 src/transitplugins/openTripPlanner.js:1176 #: src/transitplugins/openTripPlanner2.js:255 msgid "Arrive" msgstr "Arribada" #: src/transitLegRow.js:69 msgid "Show walking instructions" msgstr "Afichar las instruccions de caminada a pè" #: src/transitLegRow.js:70 msgid "Hide walking instructions" msgstr "Amagar las instruccions de caminada a pè" #: src/transitMoreRow.js:37 msgid "Load earlier alternatives" msgstr "Cargar las alternativas precedentas" #: src/transitMoreRow.js:39 msgid "Load later alternatives" msgstr "Cargar las alternativas seguentas" #: src/transitMoreRow.js:52 msgid "No earlier alternatives found." msgstr "Cap d'alternativa precedenta pas trobada." #: src/transitMoreRow.js:54 msgid "No later alternatives found." msgstr "Cap d'alternativa seguenta pas trobada." #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:138 msgctxt "month-day-date" msgid "%b %e" msgstr "%e %b" #: src/transitPlan.js:171 msgid "No timetable data found for this route." msgstr "Cap d'orari pas trobat per aqueste itinerari." #: src/transitPlan.js:179 msgid "No provider found for this route." msgstr "Cap de provesidor pas trobat per aquesta rota." #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:300 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:331 #, javascript-format msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "%s minuta" msgstr[1] "%s minutas" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:343 #, javascript-format msgid "%s hour" msgid_plural "%s hours" msgstr[0] "%s ora" msgstr[1] "%s oras" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:351 #, javascript-format msgid "%s:%s hour" msgid_plural "%s:%s hours" msgstr[0] "%s:%s ora" msgstr[1] "%s:%s oras" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:744 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: src/translations.js:55 msgid "Around the clock" msgstr "24h/24" #: src/translations.js:57 msgid "From sunrise to sunset" msgstr "Del sortir al colcar del solelh" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:123 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s, %s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:137 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s, %s, %s" #: src/translations.js:156 msgid "Every day" msgstr "Cada jorn" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:168 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s — %s" #: src/translations.js:179 msgid "Public holidays" msgstr "Jorns de fèsta" #: src/translations.js:181 msgid "School holidays" msgstr "Vacanças escolaras" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:221 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: src/translations.js:235 msgid "not open" msgstr "tampat" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:250 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s — %s" #: src/translations.js:287 #, fuzzy #| msgid "Bahá’í" msgid "Bahá'í" msgstr "Baaïsme" #. Translators: Accuracy of user location information #: src/utils.js:248 msgid "Unknown" msgstr "Desconeguda" #. Translators: Accuracy of user location information #: src/utils.js:251 msgid "Exact" msgstr "Exacta" #. Translators: this is a duration with only hours, using #. * an abbreviation for hours, corresponding to 'h' in English #. #: src/utils.js:307 #, javascript-format msgid "%s h" msgstr "%s h" #. Translators: this is a duration with hours and minutes parts #. * using abbreviations for hours and minutes, corresponding to 'h' #. * and 'min' in English. The minutes has appropriate plural variations #. #: src/utils.js:313 #, javascript-format msgid "%s h %s min" msgid_plural "%s h %s min" msgstr[0] "%s h %s min" msgstr[1] "%s h %s min" #. Translators: this is a duration with minutes part #. * using abbreviation for minutes, corresponding to 'min' in English #. * with appropriate plural variations #. #: src/utils.js:320 #, javascript-format msgid "%s min" msgid_plural "%s min" msgstr[0] "%s min" msgstr[1] "%s min" #. Translators: this is a duration of less than one minute #. * with seconds using an abbreviation for seconds, corresponding to #. * 's' in English with appropriate plural forms #. #: src/utils.js:326 #, javascript-format msgid "%s s" msgid_plural "%s s" msgstr[0] "%s s" msgstr[1] "%s s" #. Translators: This is a distance measured in kilometers #: src/utils.js:337 #, javascript-format msgid "%s km" msgstr "%s km" #. Translators: This is a distance measured in meters #: src/utils.js:340 #, javascript-format msgid "%s m" msgstr "%s m" #. Translators: This is a distance measured in miles #: src/utils.js:348 #, javascript-format msgid "%s mi" msgstr "%s miles" #. Translators: This is a distance measured in feet #: src/utils.js:351 #, javascript-format msgid "%s ft" msgstr "%s pès" #: src/transitplugins/goMetro.js:61 msgid "This plugin doesn't support latest arrival" msgstr "" #: src/transitplugins/openTripPlanner.js:1237 #: src/transitplugins/openTripPlanner2.js:266 #, javascript-format msgid "Continue on %s" msgstr "Contunhar sus %s" #: src/transitplugins/openTripPlanner.js:1242 #: src/transitplugins/openTripPlanner2.js:270 #, javascript-format msgid "Turn left on %s" msgstr "" #: src/transitplugins/openTripPlanner.js:1244 #: src/transitplugins/openTripPlanner2.js:271 msgid "Turn left" msgstr "Virar a man esquèrra" #: src/transitplugins/openTripPlanner.js:1247 #: src/transitplugins/openTripPlanner2.js:275 #, javascript-format msgid "Turn slightly left on %s" msgstr "" #: src/transitplugins/openTripPlanner.js:1249 #: src/transitplugins/openTripPlanner2.js:276 msgid "Turn slightly left" msgstr "" #: src/transitplugins/openTripPlanner.js:1252 #: src/transitplugins/openTripPlanner2.js:280 #, javascript-format msgid "Turn sharp left on %s" msgstr "" #: src/transitplugins/openTripPlanner.js:1254 #: src/transitplugins/openTripPlanner2.js:281 msgid "Turn sharp left" msgstr "" #: src/transitplugins/openTripPlanner.js:1257 #: src/transitplugins/openTripPlanner2.js:284 #, javascript-format msgid "Turn right on %s" msgstr "" #: src/transitplugins/openTripPlanner.js:1259 #: src/transitplugins/openTripPlanner2.js:285 msgid "Turn right" msgstr "Virar a man drecha" #: src/transitplugins/openTripPlanner.js:1262 #: src/transitplugins/openTripPlanner2.js:289 #, javascript-format msgid "Turn slightly right on %s" msgstr "" #: src/transitplugins/openTripPlanner.js:1264 #: src/transitplugins/openTripPlanner2.js:290 msgid "Turn slightly right" msgstr "" #: src/transitplugins/openTripPlanner.js:1267 #: src/transitplugins/openTripPlanner2.js:294 #, javascript-format msgid "Turn sharp right on %s" msgstr "" #: src/transitplugins/openTripPlanner.js:1269 #: src/transitplugins/openTripPlanner2.js:295 msgid "Turn sharp right" msgstr "" #: src/transitplugins/openTripPlanner.js:1275 #: src/transitplugins/openTripPlanner2.js:302 #, javascript-format msgid "At the roundabout, take exit %s" msgstr "" #: src/transitplugins/openTripPlanner.js:1277 #: src/transitplugins/openTripPlanner2.js:305 #, javascript-format msgid "At the roundabout, take exit to %s" msgstr "" #: src/transitplugins/openTripPlanner.js:1279 #: src/transitplugins/openTripPlanner2.js:307 msgid "Take the roundabout" msgstr "Préner la rotonda" #: src/transitplugins/openTripPlanner.js:1283 #: src/transitplugins/openTripPlanner2.js:315 #, javascript-format msgid "Take the elevator and get off at %s" msgstr "" #: src/transitplugins/openTripPlanner.js:1285 #: src/transitplugins/openTripPlanner2.js:316 msgid "Take the elevator" msgstr "Préner l’ascensor" #: src/transitplugins/openTripPlanner.js:1289 #: src/transitplugins/openTripPlanner2.js:320 #, javascript-format msgid "Make a left u-turn onto %s" msgstr "" #: src/transitplugins/openTripPlanner.js:1291 #: src/transitplugins/openTripPlanner2.js:321 msgid "Make a left u-turn" msgstr "" #: src/transitplugins/openTripPlanner.js:1294 #: src/transitplugins/openTripPlanner2.js:325 #, javascript-format msgid "Make a right u-turn onto %s" msgstr "" #: src/transitplugins/openTripPlanner.js:1296 #: src/transitplugins/openTripPlanner2.js:326 msgid "Make a right u-turn" msgstr "" #~ msgid "Go to current location" #~ msgstr "Anar a ma posicion actuala" #~ msgid "Choose map type" #~ msgstr "Causir lo tipe de mapa" #~ msgid "Zoom in" #~ msgstr "Zoom avant" #~ msgid "Sign in to edit maps" #~ msgstr "" #~ "S'identificar per modificar de " #~ "mapas" #~ msgid "Sign up" #~ msgstr "S’inscriure" #~ msgid "Signed In" #~ msgstr "Sètz inscrit" #~ msgid "Drag to change order of the route" #~ msgstr "Fasètz lisar per modificar l'òrdre de l'itinerari" #~ msgid "Filesystem is read only" #~ msgstr "Lo sistèma de fichièrs es en lectura sola" #~ msgid "You do not have permission to save there" #~ msgstr "Avètz pas la permission d'enregistrar a aqueste endreit" #~ msgid "The directory does not exist" #~ msgstr "Lo dorsièr existís pas" #~ msgid "No filename specified" #~ msgstr "Cap de nom de fichièr pas indicat" #~ msgid "" #~ "Location was added to the map, note that it may take a while before it " #~ "shows on the map and in search results." #~ msgstr "" #~ "L'emplaçament es estat apondut a la mapa, notatz qu'aquò pòt prene un " #~ "moment abans qu'aparesca sus la mapa e dins los resultats de recèrca." #~ msgid "E-mail" #~ msgstr "Corrièr electronic" #~ msgid "Takeaway" #~ msgstr "Per emportar" #~ msgid "GNOME Maps" #~ msgstr "Mapas GNOME" #~ msgid "Foursquare check-in privacy setting" #~ msgstr "" #~ "Paramètres de confidencialitat d'anonci de la localizacion Foursquare" #~ msgid "" #~ "Latest used Foursquare check-in privacy setting. Possible values are: " #~ "public, followers or private." #~ msgstr "" #~ "Paramètres de confidencialitat precedentament utilizats pels anoncis de " #~ "localizacion Foursquare. Las valors possiblas son : public (publicas), " #~ "followers (personas que me seguisson) o private (privat)." #~ msgid "Foursquare check-in Facebook broadcasting" #~ msgstr "Difusion sus Facebook dels anoncis de localizacion Foursquare" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a post in the " #~ "Facebook account associated with the Foursquare account." #~ msgstr "" #~ "Indica se Foursquare deu difusar l'anonci de localizacion jos la forma de " #~ "publicacion sul compte Facebook associat al compte Foursquare." #~ msgid "Foursquare check-in Twitter broadcasting" #~ msgstr "Difusion sus Twitter dels anoncis de localizacion Foursquare" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a tweet in the " #~ "Twitter account associated with the Foursquare account." #~ msgstr "" #~ "Indica se Foursquare deu difusar l'anonci de localizacion jos la forma de " #~ "publicacion sul compte Twitter associat al compte Foursquare." #~ msgid "Night mode" #~ msgstr "Mòde nuèch" #~ msgid "Whether the application is in night mode." #~ msgstr "Indica se l'aplicacion es en mòde nuèit." #~ msgid "Visibility" #~ msgstr "Visibilitat" #~ msgid "Post on Facebook" #~ msgstr "Publicar sus Facebook" #~ msgid "Post on Twitter" #~ msgstr "Publicar sus Twitter" #~ msgid "C_heck in" #~ msgstr "A_nonciar sa localizacion" #~ msgid "Public" #~ msgstr "Public" #~ msgid "Private" #~ msgstr "Privat" #~ msgid "Include route and markers" #~ msgstr "Inclure l'itinerari e los marcadors" #~ msgid "Night Mode" #~ msgstr "Mòde nuèch" #~ msgid "Maps is offline!" #~ msgstr "Mapas es fòra linha !" #~ msgid "" #~ "Maps need an active internet connection to function properly, but one " #~ "can’t be found." #~ msgstr "" #~ "Mapas a besonh d’una connexion Internet activa e foncionala, mas n'a pas " #~ "trobat cap." #~ msgid "Check your connection and proxy settings." #~ msgstr "Verificatz vòstra connexion e vòstres paramètres de proxy." #~ msgid "Password" #~ msgstr "Senhal" #~ msgid "" #~ "Sorry, that didn’t work. Please try again, or visit\n" #~ "OpenStreetMap to reset your password." #~ msgstr "" #~ "O planhèm, aquò a pas foncionat. Reensajatz o visitatz\n" #~ "OpenStreetMap per reïnicializar vòstre senhal." #~ msgid "Check In…" #~ msgstr "Enregistrant…" #~ msgid "Ignore network availability" #~ msgstr "Ignòra la disponibilité de la ret" #~ msgid "Select an account" #~ msgstr "Seleccionar un compte" #~ msgid "Loading" #~ msgstr "Cargament" #~ msgid "" #~ "Maps cannot find the place to check in to with Foursquare. Please select " #~ "one from this list." #~ msgstr "" #~ "Mapas tròba pas de luòc per senhalar sa localizacion sus Foursquare. " #~ "Seleccionatz-ne un dins aquesta lista." #~ msgid "Check in to %s" #~ msgstr "Anonciar sa localizacion a %s" #~ msgid "Write an optional message to check in to %s." #~ msgstr "" #~ "Escriure un messatge opcional per vòstre anonci de localizacion a %s." #~ msgid "Cannot find “%s” in the social service" #~ msgstr "Impossible de trobar « %s » sus la ret sociala" #~ msgid "Cannot find a suitable place to check-in in this location" #~ msgstr "" #~ "Impossible de trobar un endreit correspondent per anonciar sa localizacion" #~ msgid "" #~ "Credentials have expired, please open Online Accounts to sign in and " #~ "enable this account" #~ msgstr "" #~ "Las informacions d'autenficacion an expirat, dobrissètz Comptes en linha " #~ "per vos connectar e activar aqueste compte" #~ msgid "A map application for GNOME" #~ msgstr "Una aplicacion cartografica per GNOME" #~ msgid "" #~ "You can even search for specific types of locations, such as “Pubs near " #~ "Main Street, Boston” or “Hotels near Alexanderplatz, Berlin”." #~ msgstr "" #~ "Podètz quitament cercar de luòcs especifics, coma « Restaurants al costat " #~ "de la Catedrala d'Estrasborg » o « Ostalariás al costat d'Alexanderplatz " #~ "a Berlin »." #~ msgid "Facebook check-in privacy setting" #~ msgstr "" #~ "Paramètres de confidencialitat d'anonci de la localizacion sus Facebook" #~ msgid "" #~ "Latest used Facebook check-in privacy setting. Possible values are: " #~ "EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS or SELF." #~ msgstr "" #~ "Paramètres de confidencialitat precedentament utilizats pels anoncis de " #~ "localizacion sus Facebook. Las valors possiblas son : EVERYONE (tot lo " #~ "monde), FRIENDS_OF_FRIENDS (amics dels amics), ALL_FRIENDS (totes los " #~ "amics) o SELF (siá)." #~ msgid "Everyone" #~ msgstr "Tot lo monde" #~ msgid "Friends of friends" #~ msgstr "Amics dels amics" #~ msgid "Just friends" #~ msgstr "Sonque los amics" #~ msgid "Just me" #~ msgstr "Sonque ieu" #~ msgid "" #~ "Maps cannot find the place to check in to with Facebook. Please select " #~ "one from this list." #~ msgstr "" #~ "Mapas tròba pas de luòc per senhalar sa localizacion sus Facebook. " #~ "Seleccionatz-ne un dins aquesta lista." #~ msgid "Quit" #~ msgstr "Quitar" #~ msgid "Open with another application" #~ msgstr "Dobrir amb una autra aplicacion" #~ msgid "Check in here" #~ msgstr "Anonciar aqueste emplaçament coma localizacion" #~| msgid "Don't have an account?" #~ msgid "Don’t have an account?" #~ msgstr "Avètz pas de compte ?" #~ msgid "Press enter to search" #~ msgstr "Quichatz sus entrada per recercar" #~| msgid "Route search by GraphHopper" #~ msgid "Route search by OpenTripPlanner" #~ msgstr "Recèrca d’itinerari amb OpenTripPlanner" #~ msgid "OK" #~ msgstr "Validar" #~ msgid "Add destination" #~ msgstr "Apondre una destinacion" #~ msgid "Population:" #~ msgstr "Populacion :" #~ msgid "Altitude:" #~ msgstr "Altitud :" #~ msgid "Opening hours:" #~ msgstr "Oras de dobertura :" #~ msgid "Internet access:" #~ msgstr "Accès internet :" #~ msgid "Toilets:" #~ msgstr "Comuns :" #~ msgid "Wheelchair access:" #~ msgstr "Accès als fautuèlhs rotlants :" #~ msgid "Phone:" #~ msgstr "Telefòn :" #~ msgid "yes" #~ msgstr "òc" #~ msgid "limited" #~ msgstr "limitat" #~ msgid "no" #~ msgstr "non" #~ msgid "designated" #~ msgstr "reservat" #~ msgctxt "time range list" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgctxt "time range component" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgid "wired" #~ msgstr "filar" #~ msgid "terminal" #~ msgstr "terminal" #~ msgid "service" #~ msgstr "servici" #~ msgid "%f h" #~ msgstr "%f h" #~ msgid "%f min" #~ msgstr "%f min" #~ msgid "%f s" #~ msgstr "%f s" #~ msgid "Load Map Layer" #~ msgstr "Cargar lo jaç cartografic" #~ msgid "%f km" #~ msgstr "%f km" #~ msgid "%f m" #~ msgstr "%f m" #~ msgid "%f mi" #~ msgstr "%f mi" #~ msgid "%f ft" #~ msgstr "%f ft" #~ msgid "Position not found" #~ msgstr "Posicion pas trobada" #~ msgid "Country code: %s" #~ msgstr "Còdi del país : %s" #~ msgid "Open Shape Layer…" #~ msgstr "Dobrir un jaç de formas…" 070701000001DD000081A40000000000000000000000016641340900013303000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/pa.po# Punjabi translation for gnome-maps. # Copyright (C) 2013 gnome-maps's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-maps package. # # A S Alam , 2013, 2014, 2015, 2016, 2020, 2021, 2023. msgid "" msgstr "" "Project-Id-Version: gnome-maps master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2023-08-10 22:03+0000\n" "PO-Revision-Date: 2023-08-22 19:25-0700\n" "Last-Translator: A S Alam \n" "Language-Team: Punjabi \n" "Language: pa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Lokalize 23.04.3\n" "X-DamnedLies-Scope: partial\n" #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.appdata.xml.in.in:6 data/org.gnome.Maps.desktop.in.in:4 #: data/ui/main-window.ui:27 src/application.js:61 src/mainWindow.js:143 #: src/mainWindow.js:588 msgid "Maps" msgstr "ਨਕਸ਼ਾ" #: data/org.gnome.Maps.appdata.xml.in.in:7 msgid "Find places around the world" msgstr "ਸੰਸਾਰ ਭਰ ਵਿੱਚ ਥਾਵਾਂ ਨੂੰ ਲੱਭੋ" #: data/org.gnome.Maps.appdata.xml.in.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "ਨਕਸ਼ਾ (ਮੈਪਸ) ਤੁਹਾਨੂੰ ਸੰਸਾਰ ਭਰ ਦੇ ਨਕਸ਼ੇ ਉਪਲੱਬਧ ਕਰਵਾਉਂਦਾ ਹੈ। ਇਹ ਤੁਹਾਨੂੰ ਤੁਰੰਤ" " ਸ਼ਹਿਰ ਜਾਂ ਸੜਕਾਂ ਦੇ ਨਾਂ " "ਰਾਹੀਂ ਥਾਂ ਲੱਭਣ ਲਈ ਜਾਂ ਮਿੱਤਰ ਨੂੰ ਮਿਲਣ ਲਈ ਥਾਂ ਪੱਕਾ ਕਰਨ ਲਈ ਮੱਦਦ ਕਰਦੀ ਹੈ।" #: data/org.gnome.Maps.appdata.xml.in.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "ਨਕਸ਼ਾ (ਮੈਪਸ) ਸਾਂਝਾ OpenStreetMap ਡਾਟਾਬੇਸ ਵਰਤਦਾ ਹੈ, ਜਿਸ ਨੂੰ ਸੰਸਾਰ ਭਰ ਦੇ" " ਲੱਖਾਂ-ਕਰੋੜਾਂ ਲੋਕਾਂ " "ਵਲੋਂ ਤਿਆਰ ਕੀਤਾ ਗਿਆ ਹੈ।" #: data/org.gnome.Maps.appdata.xml.in.in:369 src/mainWindow.js:585 msgid "The GNOME Project" msgstr "ਗਨੋਮ ਪਰੋਜੈਕਟ" #: data/org.gnome.Maps.desktop.in.in:5 msgid "A simple maps application" msgstr "ਸੌਖੀ ਨਕਸ਼ਾ ਐਪਲੀਕੇਸ਼ਨ" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in.in:14 msgid "Maps;" msgstr "ਨਕਸ਼ਾ;" #: data/org.gnome.Maps.desktop.in.in:17 msgid "Allows your location to be shown on the map." msgstr "ਤੁਹਾਡੇ ਟਿਕਾਣੇ ਨੂੰ ਨਕਸ਼ੇ ਉੱਤੇ ਦਿਖਾਉਣ ਲਈ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ।" #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "ਪਿਛਲਾ ਵੇਖਿਆ ਟਿਕਾਣਾ" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "ਪਿਛਲੇ ਵੇਖੇ ਗਏ ਟਿਕਾਣੇ ਦੇ ਧੁਰੇ।" #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "ਜ਼ੂਮ" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "ਜ਼ੂਮ ਪੱਧਰ" #: data/org.gnome.Maps.gschema.xml:21 #| msgid "Population" msgid "rotation" msgstr "ਘੁੰਮਾਓ" #: data/org.gnome.Maps.gschema.xml:22 msgid "Map rotation in radians" msgstr "ਨਕਸ਼ਾ ਘੁੰਮਾਉਣ ਰੇਡੀਅਨ ਵਿੱਚ ਹੈ" #: data/org.gnome.Maps.gschema.xml:26 msgid "Map type" msgstr "ਨਕਸ਼ੇ ਦੀ ਕਿਸਮ" #: data/org.gnome.Maps.gschema.xml:27 msgid "The type of map to display (street, aerial, etc.)" msgstr "ਵਿਖਾਉਣ ਲਈ ਨਕਸ਼ੇ ਦੀ ਕਿਸਮ (ਸੜਕ, ਹਵਾਈ ਆਦਿ)" #: data/org.gnome.Maps.gschema.xml:31 msgid "Window size" msgstr "ਵਿੰਡੋ ਆਕਾਰ" #: data/org.gnome.Maps.gschema.xml:32 msgid "Window size (width and height)." msgstr "ਵਿੰਡੋ ਆਕਾਰ (ਚੌੜਾਈ ਅਤੇ ਉਚਾਈ)" #: data/org.gnome.Maps.gschema.xml:36 msgid "Window position" msgstr "ਵਿੰਡੋ ਸਥਿਤੀ" #: data/org.gnome.Maps.gschema.xml:37 msgid "Window position (X and Y)." msgstr "ਵਿੰਡੋ ਸਥਿਤੀ (X ਅਤੇ Y)।" #: data/org.gnome.Maps.gschema.xml:41 msgid "Window maximized" msgstr "ਵਿੰਡੋ ਵੱਧੋ-ਵੱਧ ਕੀਤੀ" #: data/org.gnome.Maps.gschema.xml:42 msgid "Window maximization state" msgstr "ਵਿੰਡੋ ਵੱਧੋ-ਵੱਧ ਆਕਾਰ ਸਥਿਤੀ" #: data/org.gnome.Maps.gschema.xml:46 msgid "Maximum number of search results" msgstr "ਖੋਜ ਨਤੀਜਿਆਂ ਦੀ ਵੱਧ ਤੋਂ ਵੱਧ ਗਿਣਤੀ" #: data/org.gnome.Maps.gschema.xml:47 msgid "Maximum number of search results from geocode search." msgstr "ਜੀਓਕੋਡ ਖੋਜ ਤੋਂ ਵੱਧ ਤੋਂ ਵੱਧ ਖੋਜ ਨਤੀਜਿਆਂ ਦੀ ਗਿਣਤੀ ਹੈ।" #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent places to store" msgstr "ਸੰਭਾਲਣ ਲਈ ਤਾਜ਼ਾ ਟਿਕਾਣਿਆਂ ਦੀ ਗਿਣਤੀ।" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited places to store." msgstr "ਸੰਭਾਲਣ ਲਈ ਤਾਜ਼ਾ ਗਏ ਸਥਾਨਾਂ ਦੀ ਗਿਣਤੀ।" #: data/org.gnome.Maps.gschema.xml:56 msgid "Number of recent routes to store" msgstr "ਸੰਭਾਲਣ ਲਈ ਤਾਜ਼ਾ ਰੂਟਾਂ ਦੀ ਗਿਣਤੀ।" #: data/org.gnome.Maps.gschema.xml:57 msgid "Number of recently visited routes to store." msgstr "ਸੰਭਾਲਣ ਲਈ ਤਾਜ਼ਾ ਗਏ ਰੂਟਾਂ ਦੀ ਗਿਣਤੀ।" #: data/org.gnome.Maps.gschema.xml:61 msgid "OpenStreetMap username or e-mail address" msgstr "OpenStreetMap ਵਰਤੋਂਕਾਰ ਨਾਂ ਜਾਂ ਈਮੇਲ ਪਤਾ" #: data/org.gnome.Maps.gschema.xml:62 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "" "ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਜੇ ਵਰਤੋਂਕਾਰ ਨੇ OpenStreetMap ਡਾਟੇ ਨੂੰ ਸੋਧਣ ਲਈ ਸਾਈਨ ਇਨ ਕੀਤਾ ਹੈ।" #: data/org.gnome.Maps.gschema.xml:66 msgid "Last used transportation type for routing" msgstr "ਰੂਟ ਬਣਾਉਣ ਲਈ ਵਰਤਿਆ ਪਿਛਲੀ ਟਰਾਂਸਪੋਰਟ ਕਿਸਮ" #: data/org.gnome.Maps.gschema.xml:70 #| msgid "Show Labels" msgid "Show scale" msgstr "ਸਕੇਲ ਵੇਖਾਓ" #: data/org.gnome.Maps.gschema.xml:71 msgid "Whether to show the scale." msgstr "ਕੀ ਸਕੇਲ ਦਿਖਾਉਣਾ ਹੈ" #: data/ui/context-menu.ui:6 #| msgid "Route from here" msgid "Route from Here" msgstr "ਇੱਥੇ ਤੋਂ ਰੂਟ" #: data/ui/context-menu.ui:10 #| msgid "Add intermediate destination" msgid "Add Intermediate Destination" msgstr "ਵਿਚਕਾਰਲੀ ਮੰਜ਼ਲ ਜੋੜੋ" #: data/ui/context-menu.ui:14 #| msgid "Route to here" msgid "Route to Here" msgstr "ਇੱਥੇ ਤੱਕ ਰੂਟ" #: data/ui/context-menu.ui:20 #| msgid "What’s here?" msgid "What's Here?" msgstr "ਇੱਥੇ ਕੀ ਹੈ?" #: data/ui/context-menu.ui:24 msgid "Copy Location" msgstr "ਟਿਕਾਣੇ ਨੂੰ ਕਾਪੀ ਕਰੋ" #: data/ui/context-menu.ui:28 #| msgid "Add to OpenStreetMap" msgid "Add to OpenStreetMap…" msgstr "OpenStreetMap ਵਿੱਚ ਜੋੜੋ…" #: data/ui/export-view-dialog.ui:7 msgid "Export view" msgstr "ਝਲਕ ਨੂੰ ਐਕਸਪੋਰਟ ਕਰੋ" #: data/ui/export-view-dialog.ui:16 data/ui/send-to-dialog.ui:10 #: data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "ਰੱਦ ਕਰੋ(_C)" #: data/ui/export-view-dialog.ui:26 msgid "_Export" msgstr "ਐਕਸਪੋਰਟ(_I)" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:11 src/geoclue.js:106 msgid "Current Location" msgstr "ਮੌਜੂਦਾ ਟਿਕਾਣਾ" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:19 msgid "Layers" msgstr "ਪਰਤਾਂ" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:11 msgid "Print Route" msgstr "ਰੂਟ ਨੂੰ ਪਰਿੰਟ ਕਰੋ" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:21 #| msgid "Toggle favorites" msgid "Favorites" msgstr "ਪਸੰਦੀਦਾ" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:30 #| msgid "Toggle route planner" msgid "Route Planner" msgstr "ਰੂਟ ਵਿਉਂਤਕਾਰ" #: data/ui/help-overlay.ui:12 msgctxt "shortcut window" msgid "General" msgstr "ਆਮ" #: data/ui/help-overlay.ui:15 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "ਸ਼ਾਰਟਕੱਟਾਂ ਨੂੰ ਵੇਖੋ" #: data/ui/help-overlay.ui:21 msgctxt "shortcut window" msgid "Search" msgstr "ਖੋਜੋ" #: data/ui/help-overlay.ui:27 msgctxt "shortcut window" msgid "Explore points-of-interest" msgstr "ਦਿਲਚਸਪੀ-ਦੀਆਂ-ਥਾਵਾਂ ਦੀ ਛਾਣਬੀਣ ਕਰੋ" #: data/ui/help-overlay.ui:33 #| msgid "Show more results" msgctxt "shortcut window" msgid "Show last search results" msgstr "ਆਖਰੀ ਖੋਜ ਨਤੀਜੇ ਵੇਖਾਓ" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "ਰੂਟ ਵਿਉਂਤਕਾਰ ਨੂੰ ਬਦਲੋ" #: data/ui/help-overlay.ui:45 msgctxt "shortcut window" msgid "Print route" msgstr "ਰੂਟ ਨੂੰ ਪਰਿੰਟ ਕਰੋ" #: data/ui/help-overlay.ui:51 msgctxt "shortcut window" msgid "Quit" msgstr "ਬਾਹਰ" #: data/ui/help-overlay.ui:57 msgctxt "shortcut window" msgid "Open main menu" msgstr "ਮੁੱਖ ਮੀਨੂ ਖੋਲ੍ਹੋ" #: data/ui/help-overlay.ui:65 msgctxt "shortcut window" msgid "Map View" msgstr "ਨਕਸ਼ੇ ਦੀ ਝਲਕ" #: data/ui/help-overlay.ui:68 msgctxt "shortcut window" msgid "Zoom in" msgstr "ਜ਼ੂਮ ਇਨ" #: data/ui/help-overlay.ui:74 msgctxt "shortcut window" msgid "Zoom out" msgstr "ਜ਼ੂਮ ਆਉਟ" #: data/ui/help-overlay.ui:80 msgctxt "shortcut window" msgid "Rotate clockwise" msgstr "ਸੱਜੇ ਦਾਅ ਘੁੰਮਾਓ" #: data/ui/help-overlay.ui:86 msgctxt "shortcut window" msgid "Rotate counter-clockwise" msgstr "ਖੱਬੇ ਦਾਅ ਘੁੰਮਾਓ" #: data/ui/help-overlay.ui:92 #| msgid "Remove via location" msgctxt "shortcut window" msgid "Reset rotation" msgstr "ਘੁੰਮਾਉਣ ਨੂੰ ਮੁੜ-ਸੈੱਟ ਕਰੋ" #: data/ui/help-overlay.ui:98 msgctxt "shortcut window" msgid "Toggle scale" msgstr "ਸਕੇਲ ਨੂੰ ਬਦਲੋ" #: data/ui/help-overlay.ui:104 msgctxt "shortcut window" msgid "Go to current location" msgstr "ਮੌਜੂਦਾ ਟਿਕਾਣੇ ਉੱਤੇ ਜਾਓ" #: data/ui/help-overlay.ui:114 msgctxt "shortcut window" msgid "Switch to street view" msgstr "ਸੜਕੀ ਝਲਕ ਵਿੱਚ ਬਦਲੋ" #: data/ui/help-overlay.ui:121 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "ਹਵਾਈ ਝਲਕ ਵਿੱਚ ਬਦਲੋ" #: data/ui/help-overlay.ui:127 msgctxt "shortcut window" msgid "Open shape layer" msgstr "ਸ਼ਕਲ ਪਰਤ ਖੋਲ੍ਹੋ" #: data/ui/layers-popover.ui:7 #| msgid "Show Labels" msgid "Show Scale" msgstr "ਸਕੇਲ ਵੇਖਾਓ" #: data/ui/layers-popover.ui:16 msgid "Enable Experimental Map" msgstr "ਤਜਰਬੇਅਧੀ ਨਕਸ਼ਾ ਸਮਰੱਥ ਕਰੋ" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:20 msgid "Open Shape Layer…" msgstr "ਸ਼ਕਲ ਪਰਤ ਖੋਲ੍ਹੋ…" #: data/ui/main-window.ui:8 #| msgid "Set up OpenStreetMap Account" msgid "Set up OpenStreetMap Account…" msgstr "…OpenStreetMap ਖਾਤੇ ਨੂੰ ਸੈਟਅੱਪ ਕਰੋ" #: data/ui/main-window.ui:12 #| msgid "Export as Image" msgid "Export as Image…" msgstr "…ਚਿੱਤਰ ਵਜੋਂ ਐਕਸਪੋਰਟ ਕਰੋ" #: data/ui/main-window.ui:17 msgid "_Keyboard Shortcuts" msgstr "ਕੀ-ਬੋਰਡ ਸ਼ਾਰਟਕੱਟ(_K)" #: data/ui/main-window.ui:22 msgid "About Maps" msgstr "ਨਕਸ਼ੇ ਬਾਰੇ" #: data/ui/main-window.ui:48 #| msgid "Open main menu" msgid "Main Menu" msgstr "ਮੁੱਖ ਮੇਨੂ" #: data/ui/osm-account-dialog.ui:6 msgid "OpenStreetMap Account" msgstr "OpenStreetMap ਖਾਤਾ" #: data/ui/osm-account-dialog.ui:26 msgid "Sign in to edit maps" msgstr "" "ਨਕਸ਼ੇ ਨੂੰ ਸੋਧਣ ਲਈ ਸਾਇਨ ਇਨ ਕਰੋ" #: data/ui/osm-account-dialog.ui:39 msgid "" "Help to improve the map, using an\n" "OpenStreetMap account." msgstr "" "OpenStreetMap ਖਾਤੇ ਨਾਲ ਨਕਸ਼ੇ ਨੂੰ\n" " ਸੁਧਾਰਨ ਲਈ ਮਦਦ ਕਰੋ।" #: data/ui/osm-account-dialog.ui:52 msgid "" "Sign in to authorize access in a web browser.\n" "Then fill in the obtained verification code here in the next step." msgstr "" "ਵੈੱਬ ਬਰਾਊਜ਼ਰ ਵਿੱਚ ਪਰਮਾਣਿਤ ਪਹੁੰਚ ਲਈ ਸਾਈਨ-ਇਨ ਕਰੋ।\n" "ਤਦ ਅਗਲੇ ਪੜਾਅ ਲਈ ਮਿਲਿਆ ਤਸਦੀਕੀ ਕੋਡ ਭਰੋ।" #: data/ui/osm-account-dialog.ui:67 msgid "Sign In" msgstr "ਸਾਇਨ ਇਨ" #: data/ui/osm-account-dialog.ui:111 msgid "Copy verification code shown when authorizing access in the browser" msgstr "ਜਦੋ ਬਰਾਊਜ਼ਰ ਵਿੱਚ ਪਰਮਾਣਿਕਿਤਾ ਪਹੁੰਚ ਹੋਵੇ ਤਾਂ ਤਸਦੀਕੀ ਕੋਡ ਨੂੰ ਕਾਪੀ ਕਰੋ" #: data/ui/osm-account-dialog.ui:121 #| msgid "Enter verification code shown above" msgid "Verification code" msgstr "ਤਸਦੀਕੀ ਕੋਡ" #: data/ui/osm-account-dialog.ui:132 msgid "Verify" msgstr "ਤਸਦੀਕ ਕਰੋ" #: data/ui/osm-account-dialog.ui:160 msgid "Signed In" msgstr "ਸਾਇਨ ਇਨ ਕਰੋ" #: data/ui/osm-account-dialog.ui:172 msgid "Your OpenStreetMap account is active." msgstr "ਤੁਹਾਡਾ OpenStreetMap ਖਾਤਾ ਹੁਣ ਸਰਗਰਮ ਹੈ।" #: data/ui/osm-account-dialog.ui:202 msgid "Sign Out" msgstr "ਸਾਇਨ ਆਉਟ" #: data/ui/osm-edit-address.ui:11 msgid "Street" msgstr "ਗਲੀ" #: data/ui/osm-edit-address.ui:22 msgid "House number" msgstr "ਘਰ ਨੰਬਰ" #: data/ui/osm-edit-address.ui:33 msgid "Postal code" msgstr "ਡਾਕ ਕੋਡ" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:44 msgid "City" msgstr "ਸ਼ਹਿਰ" #: data/ui/osm-edit-dialog.ui:8 msgctxt "dialog title" msgid "Edit on OpenStreetMap" msgstr "OpenStreetMap ਉੱਤੇ ਸੋਧੋ" #: data/ui/osm-edit-dialog.ui:57 msgid "Type" msgstr "ਕਿਸਮ" #: data/ui/osm-edit-dialog.ui:79 msgid "None" msgstr "ਕੋਈ ਨਹੀਂ" #: data/ui/osm-edit-dialog.ui:108 msgid "Add Field" msgstr "ਖੇਤਰ ਨੂੰ ਜੋੜੋ" #: data/ui/osm-edit-dialog.ui:130 msgid "Comment" msgstr "ਟਿੱਪਣੀ" #: data/ui/osm-edit-dialog.ui:158 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "ਨਕਸ਼ੇ ਸੰਬੰਧੀ ਤਬਦੀਲੀਆਂ ਸਾਰੇ ਨਕਸ਼ਿਆਂ ਉੱਤੇ ਦਿਖਾਈ ਦੇਣਗੀਆਂ, ਜੋ ਕਿ\n" "OpenStreetMap ਡਾਟੇ ਨੂੰ ਵਰਤਦੇ ਹਨ।" #: data/ui/osm-edit-dialog.ui:186 msgid "Recently Used" msgstr "ਤਾਜ਼ਾ ਵਰਤੇ ਗਏ" #: data/ui/osm-edit-dialog.ui:225 src/mapView.js:541 msgid "Cancel" msgstr "ਰੱਦ ਕਰੋ" #: data/ui/osm-edit-dialog.ui:238 src/osmEditDialog.js:531 msgid "Next" msgstr "ਅੱਗੇ" #: data/ui/osm-edit-wikipedia.ui:8 msgid "Article" msgstr "ਲੇਖ" #: data/ui/osm-edit-wikipedia.ui:21 msgid "Wikidata tag" msgstr "ਵਿਕੀਡਾਟਾ ਟੈਗ" #: data/ui/osm-edit-wikipedia.ui:32 msgid "Load Wikidata tag for article" msgstr "ਲੇਖ ਲਈ ਵਿਕੀਡਾਟਾ ਟੈਗ ਲੋਡ ਕਰੋ" #: data/ui/place-popover.ui:23 src/searchBar.js:54 msgid "Explore Nearby Places" msgstr "ਨੇੜੇ ਥਾਵਾਂ ਦੀ ਛਾਣਬੀਣ ਕਰੋ" #: data/ui/place-popover.ui:82 src/application.js:274 msgid "No results found" msgstr "ਕੋਈ ਨਤੀਜੇ ਨਹੀਂ ਲੱਭੇ" #: data/ui/place-popover.ui:92 src/application.js:252 msgid "An error has occurred" msgstr "ਗਲਤੀ ਆਈ" #. Translators: This is a tooltip #: data/ui/route-entry.ui:12 msgid "Change Route Order" msgstr "ਰੂਟ ਦੀ ਲੜੀ ਬਦਲੋ" #: data/ui/send-to-dialog.ui:7 msgid "Open Location" msgstr "ਟਿਕਾਣੇ ਨੂੰ ਖੋਲ੍ਹੋ" #: data/ui/send-to-dialog.ui:64 msgid "Copy" msgstr "ਕਾਪੀ ਕਰੋ" #: data/ui/send-to-dialog.ui:70 msgid "Send To…" msgstr "…ਨੂੰ ਭੇਜੋ" #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:64 msgid "Open Shape Layer" msgstr "ਸ਼ਕਲ ਪਰਤ ਖੋਲ੍ਹੋ" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "ਖੋਲ੍ਹੋ(_O)" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:32 msgid "Toggle visible" msgstr "ਦਿੱਖ ਨੂੰ ਬਦਲੋ" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:44 #| msgid "Open Shape Layer" msgid "Remove Shape Layer" msgstr "ਸ਼ਕਲ ਪਰਤ ਹਟਾਓ" #: data/ui/sidebar.ui:207 msgid "Route search by GraphHopper" msgstr "ਗਰਾਫਹੋਪਰ ਵਲੋਂ ਰੂਟ ਖੋਜ" #: data/ui/sidebar.ui:272 msgid "" "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of " "transportation,\n" "e.g. a national provider might not include airlines, and a local provider " "could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" "ਪਬਲਿਕ ਆਵਾਜਾਈ ਲਈ ਰੂਟ ਸਫ਼ਰਨਾਮੇ ਸੁਤੰਤਰ ਧਿਰਾਂ ਵਲੋਂ ਦਿੱਤੀਆਂ ਜਾ ਰਹੀਆਂ\n" "ਹਨ।\n" "ਗਨੋਮ ਇਹਨਾਂ ਸਫ਼ਰਨਾਮਿਆਂ ਤੇ ਵੇਖੀਆਂ ਸਮਾਂ ਸਾਰਣੀਆਂ ਦੇ ਦਰੁਸਤ ਹੋਣ ਦੀ ਗਾਰੰਟੀ ਨਹੀਂ ਦੇ" " ਸਕਦਾ ਹੈ।\n" "ਯਾਦ ਰੱਖੋ ਕਿ ਕੁਝ ਪੂਰਕ ਕੋਲ ਆਵਾਜਾਈ ਦੇ ਸਾਰੇ ਮੌਜੂਦ ਢੰਗ ਨਹੀਂ ਦੇ ਸਕਦੇ ਹਨ।\n" "ਜਿਵੇਂ ਕਿ ਕੌਮੀ ਪੂਰਕਾਂ ਵਿੱਚ ਹਵਾਈ ਜਹਾਜ਼ ਮੌਜੂਦ ਨਹੀਂ ਹੋ ਸਕਦੇ ਅਤੇ ਲੋਕਲ ਪੂਰਕਾਂ\n" "ਕੋਲ ਖੇਤਰੀ ਰੇਲ ਗੱਡੀਆਂ ਨਹੀਂ ਵੀ ਹੋ ਸਕਦੀਆਂ ਹਨ।\n" "ਵੇਖਾਏ ਗਏ ਨਾਂ ਅਤੇ ਮਾਰਕਿਆਂ ਨੂੰ ਜਿੱਥੇ ਵੀ ਲਾਗੂ ਹੋਵੇ ਰਜਿਸਟਰ ਹੋਏ ਟਰੇਡ-ਮਾਰਕ ਮੰਨਿਆ" " ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ।" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:98 msgid "Hide intermediate stops and information" msgstr "ਵਿਚਲੀਆਂ ਮੰਜ਼ਲਾਂ ਅਤੇ ਜਾਣਕਾਰੀ ਲੁਕਾਓ" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:156 msgid "Show intermediate stops and information" msgstr "ਵਿਚਲੀਆਂ ਮੰਜ਼ਲਾਂ ਅਤੇ ਜਾਣਕਾਰੀ ਵੇਖਾਓ" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:16 msgid "Leave Now" msgstr "ਹੁਣੇ ਚੱਲੋ" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:17 msgid "Leave By" msgstr "ਤੱਕ ਚੱਲੋ" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:18 msgid "Arrive By" msgstr "ਤੱਕ ਪਹੁੰਚ" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:85 msgid "Show" msgstr "ਸ਼ੋਅ" #: data/ui/transit-options-panel.ui:95 msgid "Buses" msgstr "ਬੱਸਾਂ" #: data/ui/transit-options-panel.ui:101 msgid "Trams" msgstr "ਟਰਾਮਾਂ" #: data/ui/transit-options-panel.ui:107 msgid "Trains" msgstr "ਟਰੇਨਾਂ" #: data/ui/transit-options-panel.ui:113 msgid "Subway" msgstr "ਸਬ-ਵੇਅ" #: data/ui/transit-options-panel.ui:119 msgid "Ferries" msgstr "ਫੈਰੀ" #: data/ui/transit-options-panel.ui:125 msgid "Airplanes" msgstr "ਹਵਾਈ-ਜਹਾਜ਼" #. Translators: This is a tooltip #: data/ui/place-bar.ui:28 data/ui/place-buttons.ui:27 #| msgid "Share location" msgid "Share Location" msgstr "ਟਿਕਾਣਾ ਸਾਂਝਾ ਕਰੋ" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:11 msgid "Add to new route" msgstr "ਨਵੇਂ ਰੂਟ ਵਿੱਚ ਜੋੜੋ" #. Translators: This is the button to find a route to a place #: data/ui/place-buttons.ui:15 msgid "Directions" msgstr "ਦਿਸ਼ਾਵਾਂ" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:36 #| msgid "Mark as favorite" msgid "Mark as Favorite" msgstr "ਪਸੰਦੀਦਾ ਵਜੋਂ ਨਿਸ਼ਾਨ ਲਾਓ" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:44 msgid "Edit on OpenStreetMap" msgstr "OpenStreetMap ਉੱਤੇ ਸੋਧੋ" #. Translators: This is a tooltip #: data/ui/place-view.ui:52 msgid "Share location" msgstr "ਟਿਕਾਣਾ ਸਾਂਝਾ ਕਰੋ" #: data/ui/poi-category-goback-row.ui:22 msgid "Back to Main Categories" msgstr "ਮੁੱਖ ਵਰਗ ਉੱਤੇ ਜਾਓ" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:15 src/mapView.js:1121 msgid "Zoom In" msgstr "ਜ਼ੂਮ ਇਨ" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:28 #| msgid "Zoom out" msgid "Zoom Out" msgstr "ਜ਼ੂਮ ਆਉਟ" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:49 #| msgid "Remove via location" msgid "Reset Rotation" msgstr "ਘੁੰਮਾਉਣ ਨੂੰ ਮੁੜ-ਸੈੱਟ ਕਰੋ" #: lib/maps-file-data-source.c:262 lib/maps-file-data-source.c:338 #: lib/maps-file-data-source.c:418 msgid "Failed to find tile structure in directory" msgstr "ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ ਟਾਈਲ ਢਾਂਚੇ ਨੂੰ ਲੱਭਣ ਲਈ ਫੇਲ੍ਹ ਹੈ" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "XML ਡੌਕੂਮੈਂਟ ਨੂੰ ਪਾਰਸ ਕਰਨ ਲਈ ਫੇਲ੍ਹ ਹੈ" #: lib/maps-osm.c:250 lib/maps-osm.c:403 msgid "Missing required attributes" msgstr "ਲੋੜੀਂਦੇ ਗੁਣ ਗੁੰਮ ਹਨ" #: lib/maps-osm.c:451 lib/maps-osm.c:494 msgid "Could not find OSM element" msgstr "OSM ਐਲੀਮੈਂਟ ਨੂੰ ਲੱਭਿਆ ਨਹੀਂ ਜਾ ਸਕਿਆ" #: lib/maps-osm.c:508 #| msgid "Could not find OSM element" msgid "Could not find user element" msgstr "ਵਰਤੋਂਕਾਰ ਐਲੀਮੈਂਟ ਨੂੰ ਲੱਭਿਆ ਨਹੀਂ ਜਾ ਸਕਿਆ" #: src/application.js:74 msgid "A path to a local tiles directory structure" msgstr "ਲੋਕਲ ਟਾਈਲ ਡਾਇਰੈਕਟਰੀ ਢਾਂਚੇ ਲਈ ਮਾਰਗ" #: src/application.js:80 msgid "Tile size for local tiles directory" msgstr "ਲੋਕਲ ਟਾਈਟਲ ਡਾਇਰੈਕਟਰੀ ਲਈ ਟਾਈਲ ਆਕਾਰ" #: src/application.js:84 msgid "Show the version of the program" msgstr "ਪਰੋਗਰਾਮ ਦਾ ਵਰਜ਼ਨ ਵੇਖੋ" #: src/application.js:90 #| msgid "Select a place" msgid "Search for places" msgstr "ਥਾਵਾਂ ਨੂੰ ਲੱਭੋ" #: src/application.js:101 src/application.js:102 msgid "[FILE…|URI]" msgstr "[FILE…|URI]" #: src/application.js:281 #, javascript-format msgid "Invalid maps: URI: %s" msgstr "ਗਲਤ ਨਕਸ਼ੇ: URI: %s" #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:74 #, javascript-format msgid "Maps at %f, %f.png" msgstr "ਨਕਸ਼ਾ %f, %f.png" #: src/exportViewDialog.js:153 msgid "Unable to export view" msgstr "ਝਲਕ ਨੂੰ ਐਕਸਪੋਰਟ ਕਰਨ ਲਈ ਅਸਮਰੱਥ" #: src/geoJSONSource.js:73 msgid "invalid coordinate" msgstr "ਗਲਤ ਧੁਰੇ" #: src/geoJSONSource.js:118 src/geoJSONSource.js:158 src/geoJSONSource.js:173 msgid "parse error" msgstr "ਪਾਰਸ ਕਰਨ ਦੀ ਗਲਤੀ" #: src/geoJSONSource.js:152 msgid "unknown geometry" msgstr "ਅਣਜਾਣ ਜੁਮੈਟਰੀ" #: src/graphHopper.js:121 src/transitPlan.js:174 msgid "Route request failed." msgstr "ਰੂਟ ਬੇਨਤੀ ਫੇਲ੍ਹ ਹੋਈ।" #: src/graphHopper.js:128 src/transitPlan.js:166 msgid "No route found." msgstr "ਕੋਈ ਰੂਟ ਨਹੀਂ ਲੱਭਿਆ।" #: src/graphHopper.js:215 src/transitplugins/openTripPlanner.js:1131 msgid "Start!" msgstr "ਸ਼ੁਰੂ!" #: src/mainWindow.js:61 msgid "All Layer Files" msgstr "ਸਾਰੀਆਂ ਪਰਤਾਂ ਫਾਈਲਾਂ" #: src/mainWindow.js:468 msgid "Failed to connect to location service" msgstr "ਟਿਕਾਣਾ ਸੇਵਾ ਨਾਲ ਕਨੈਕਟ ਕਰਨ ਲਈ ਫੇਲ੍ਹ ਹੈ" #: src/mainWindow.js:473 #| msgid "Turn on location services to find your location" msgid "Turn on location services" msgstr "ਟਿਕਾਣਾ ਸੇਵਾਵਾਂ ਨੂੰ ਚਾਲੂ ਕਰੋ" #: src/mainWindow.js:474 msgid "Location Settings" msgstr "ਟਿਕਾਣਾ ਸੈਟਿੰਗਾਂ" #: src/mainWindow.js:586 msgid "translator-credits" msgstr "" "ਅਮਨਪਰੀਤ ਸਿੰਘ ਆਲਮ\n" "ਪੰਜਾਬੀ ਓਪਨਸੋਰਸ ਟੀਮ (POST)" #: src/mainWindow.js:590 #| msgid "Copyright © 2011 – 2021 Red Hat, Inc. and The GNOME Maps authors" msgid "Copyright © 2011 – 2023 Red Hat, Inc. and The GNOME Maps authors" msgstr "ਕਾਪੀਰਾਈਟ © ੨੦੧੧ – ੨੦੨੩ Red Hat, Inc. ਅਤੇ ਗਨੋਮ ਨਕਸ਼ਾ ਡਿਵੈਲਪਰ" #: src/mainWindow.js:606 #, javascript-format msgid "Map data by %s and contributors" msgstr "ਨਕਸ਼ੇ ਦਾ ਡਾਟਾ %s ਅਤੇ ਯੋਗਦਾਨੀਆਂ ਵਲੋਂ" #: src/mainWindow.js:607 msgid "Map Data Provider" msgstr "ਨਕਸ਼ਾ ਡਾਟਾ ਪੂਰਕ" #: src/mainWindow.js:619 #| msgid "Map tiles provided by %s" msgid "Map Tile Provider" msgstr "ਨਕਸ਼ਾ ਟਾਈਲ ਪੂਰਕ" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:627 #, javascript-format msgid "Map tiles provided by %s" msgstr "ਨਕਸ਼ੇ ਲਈ ਨਾਂ %s ਵਲੋਂ ਦਿੱਤੇ" #: src/mainWindow.js:657 msgid "Search Provider" msgstr "ਖੋਜ ਪੂਰਕ" #: src/mainWindow.js:660 #, javascript-format msgid "Search provided by %s using %s" msgstr "ਖੋਜ %s ਰਾਹੀਂ %s ਵਰਤ ਕੇ ਦਿੱਤੀ ਗਈ ਹੈ" #: src/mapView.js:515 src/mapView.js:580 msgid "Failed to open layer" msgstr "ਪਰਤ ਨੂੰ ਖੋਲ੍ਹਣ ਲਈ ਫੇਲ੍ਹ ਹੈ" #: src/mapView.js:534 msgid "Do you want to continue?" msgstr "ਕੀ ਤੁਸੀਂ ਜਾਰੀ ਰੱਖਣਾ ਚਾਹੁੰਦੇ ਹੋ?" #: src/mapView.js:535 #, javascript-format msgid "" "You are about to open files with a total size of %s MB. This could take some " "time to load" msgstr "" "ਤੁਸੀਂ %s MB ਆਕਾਰ ਦੀਆਂ ਫਾਇਲਾਂ ਨੂੰ ਖੋਲ੍ਹਣ ਵਾਲੇ ਹੋ। ਇਹਨਾਂ ਨੂੰ ਲੋਡ ਕਰਨ ਲਈ ਕੁਝ" " ਸਮਾਂ ਲੱਗ ਸਕਦਾ ਹੈ" #: src/mapView.js:542 src/transitplugins/openTripPlanner.js:1207 msgid "Continue" msgstr "ਜਾਰੀ ਰੱਖੋ" #: src/mapView.js:574 msgid "File type is not supported" msgstr "ਫਾਇਲ ਦੀ ਕਿਸਮ ਸਹਾਇਕ ਨਹੀਂ ਹੈ" #: src/mapView.js:611 msgid "Failed to open GeoURI" msgstr "GeoURI ਨੂੰ ਖੋਲ੍ਹਣ ਲਈ ਫੇਲ੍ਹ ਹੈ" #: src/mapView.js:1080 msgid "Nothing found here!" msgstr "ਕੁਝ ਵੀ ਨਹੀਂ ਲੱਭਿਆ!" #: src/mapView.js:1120 #| msgid "Zoom in to add location!" msgid "Zoom in to add location" msgstr "ਟਿਕਾਣੇ ਨੂੰ ਜੋੜਨ ਲਈ ਜ਼ੂਮ ਇਨ ਕਰੋ" #: src/mapView.js:1141 #| msgid "Place not found in OpenStreetMap" msgid "Location was added in OpenStreetMap" msgstr "OpenStreetMap ਉੱਤੇ ਥਾਂ ਜੋੜਿਆ ਨਹੀਂ ਜਾ ਸਕਿਆ" #: src/osmAccountDialog.js:134 msgid "The verification code didn’t match, please try again." msgstr "ਤਸਦੀਕ ਕਰਨ ਵਾਲਾ ਕੋਡ ਮਿਲਦਾ ਨਹੀਂ ਹੈ, ਮੁੜ ਕੋਸ਼ਿਸ਼ ਕਰੋ।" #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:335 msgid "Incorrect user name or password" msgstr "ਗਲਤ ਵਰਤੋਂਕਾਰ ਨਾਂ ਜਾਂ ਪਾਸਵਰਡ" #: src/osmConnection.js:337 msgid "Success" msgstr "ਕਾਮਯਾਬ" #: src/osmConnection.js:339 msgid "Bad request" msgstr "ਗਲਤ ਬੇਨਤੀ" #: src/osmConnection.js:341 msgid "Object not found" msgstr "ਆਬਜੈਕਟ ਨਹੀਂ ਲੱਭਿਆ" #: src/osmConnection.js:343 msgid "Conflict, someone else has just modified the object" msgstr "ਟਕਰਾ, ਕਿਸੇ ਨੇ ਹੁਣੇ ਹੀ ਆਬਜੈਕਟ ਨੂੰ ਸੋਧਿਆ ਹੈ" #: src/osmConnection.js:345 msgid "Object has been deleted" msgstr "ਆਬਜੈਕਟ ਨੂੰ ਹਟਾਇਆ ਗਿਆ" #: src/osmConnection.js:347 msgid "Way or relation refers to non-existing children" msgstr "ਨਾ-ਮੌਜੂਦ ਬੱਚਿਆਂ ਲਈ ਢੰਗ ਜਾਂ ਸੰਬੰਧ ਵਿੱਚ ਦਰਸਾਇਆ ਜਾਂਦਾ ਹੈ" #: src/osmEditDialog.js:106 msgid "Name" msgstr "ਨਾਂ" #: src/osmEditDialog.js:109 msgid "The official name. This is typically what appears on signs." msgstr "ਅਧਿਕਾਰਿਤ ਨਾਂ। ਇਹ ਅਕਸਰ ਪ੍ਰਤੀਕਾਂ ਉੱਤੇ ਦਿਖਾਈ ਦਿੰਦਾ ਹੈ।" #: src/osmEditDialog.js:112 msgid "Address" msgstr "ਪਤਾ" #: src/osmEditDialog.js:120 src/placeView.js:261 msgid "Website" msgstr "ਵੈੱਬਸਾਈਟ" #: src/osmEditDialog.js:124 msgid "This is not a valid URL. Make sure to include http:// or https://." msgstr "ਇਹ ਵਾਜਬ URL ਨਹੀਂ ਹੈ। http:// ਜਾਂ https:// ਨੂੰ ਜੋੜਨਾ ਯਕੀਨੀ ਬਣਾਓ।" #: src/osmEditDialog.js:125 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" "ਅਧਿਕਾਰਿਤ ਵੈੱਬਸਾਈਟ ਹੈ। URL ਦੇ ਸਭ ਤੋਂ ਮੁੱਢਲੇ ਰੂਪ ਨੂੰ ਵਰਤ ਕੇ ਵੇਖੋ ਜਿਵੇਂ" " http://example.com/index." "html ਦੀ ਬਜਾਏ http://example.com" #: src/osmEditDialog.js:130 msgid "Phone" msgstr "ਫ਼ੋਨ" #: src/osmEditDialog.js:134 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" "ਫ਼ੋਨ ਨੰਬਰ। ਕੌਮਾਂਤਰੀ ਫਾਰਮੈਟ ਵਰਤੋਂ, ਜੋ ਕਿ + ਚਿੰਨ੍ਹ ਨਾਲ ਸ਼ੁਰੂ ਹੁੰਦਾ ਹੈ। ਲੋਕਲ" " ਪਰਦੇਦਾਰੀ ਕਨੂੰਨਾਂ ਬਾਰੇ " "ਖਿਆਲ ਰੱਖੋ, ਖਾਸ ਕਰਕੇ ਪ੍ਰਾਈਵੇਟ ਫ਼ੋਨ ਨੰਬਰਾਂ ਬਾਰੇ।" #: src/osmEditDialog.js:139 src/placeView.js:294 #| msgid "Email" msgid "E-mail" msgstr "ਈਮੇਲ" #: src/osmEditDialog.js:144 #| msgid "This is not a valid URL. Make sure to include http:// or https://." msgid "" "This is not a valid e-mail address. Make sure to not include the mailto: " "protocol prefix." msgstr "" "ਇਹ ਵਾਜਬ ਈਮੇਲ ਸਿਰਨਾਵਾਂ ਨਹੀਂ ਹੈ। mailto:// ਪਰੋਟੋਕਾਲ ਅਗੇਤਰ ਦਾ ਨਾ ਹੋਣਾ ਯਕੀਨੀ ਬਣਾਓ।" #: src/osmEditDialog.js:145 msgid "" "Contact e-mail address for inquiries. Add only email addresses that are " "intended to be publicly used." msgstr "" "ਪੁੱਛਗਿੱਛ ਲਈ ਸੰਪਰਕ ਵਾਸਤੇ ਈਮੇਲ ਸਿਰਨਾਵਾਂ ਦਿਓ। ਜੋ ਵੀ ਪਬਲਿਕ ਦੀ ਵਰਤੋਂ ਲਈ ਈਮੇਲ" " ਸਿਰਨਾਵਾਂ ਹੋਵੇ, ਸਿਰਫ਼ ਉਹੀ ਦਿਉ।" #. Translators: This is the text for the "Wikipedia" link at the end #. of summaries #: src/osmEditDialog.js:149 src/placeView.js:646 msgid "Wikipedia" msgstr "ਵਿਕਿਪੀਡਿਆ" #: src/osmEditDialog.js:156 src/placeView.js:331 msgid "Opening hours" msgstr "ਖੁੱਲ੍ਹਣ ਦਾ ਸਮਾਂ" #: src/osmEditDialog.js:161 msgid "See the link in the label for help on format." msgstr "ਫਾਰਮ ਉੱਤੇ ਮਦਦ ਲਈ ਲੇਬਲ ਵਿੱਚ ਲਿੰਕ ਵੇਖੋ।" #. TODO: this is a bit of a work-around to re-interpret the population, #. * stored as a string into an integer to convert back to a locale- #. * formatted string. Ideally it should be kept as an integer value #. * in the Place class. But this will also need to be handled by the #. * PlaceStore, possible in a backwards-compatible way #. #: src/osmEditDialog.js:164 src/placeView.js:441 msgid "Population" msgstr "ਆਬਾਦੀ" #: src/osmEditDialog.js:169 src/placeView.js:470 msgid "Altitude" msgstr "ਉਚਾਈ" #: src/osmEditDialog.js:172 msgid "Elevation (height above sea level) of a point in metres." msgstr "ਸਮੁੰਦਰੀ ਤਲ ਤੋਂ ਉੱਤੇ ਉਚਾਈ ਦਾ ਬਿੰਦੂ ਮੀਟਰਾਂ ਵਿੱਚ ਹੈ।" #: src/osmEditDialog.js:175 msgid "Wheelchair access" msgstr "ਵੀਲ-ਚੇਅਰ ਪਹੁੰਚ" #: src/osmEditDialog.js:178 src/osmEditDialog.js:187 src/osmEditDialog.js:198 #: src/osmEditDialog.js:233 msgid "Yes" msgstr "ਹਾਂ" #: src/osmEditDialog.js:179 src/osmEditDialog.js:188 src/osmEditDialog.js:199 #: src/osmEditDialog.js:234 msgid "No" msgstr "ਨਹੀਂ" #: src/osmEditDialog.js:180 msgid "Limited" msgstr "ਸੀਮਿਤ" #: src/osmEditDialog.js:181 msgid "Designated" msgstr "ਨਿਯਤ ਕੀਤਾ" #: src/osmEditDialog.js:184 msgid "Internet access" msgstr "ਇੰਟਰਨੈੱਟ ਪਹੁੰਚ" #: src/osmEditDialog.js:189 msgid "Wi-Fi" msgstr "Wi-Fi" #: src/osmEditDialog.js:190 msgid "Wired" msgstr "ਤਾਰ ਵਾਲਾ" #: src/osmEditDialog.js:191 msgid "Terminal" msgstr "ਟਰਮੀਨਲ" #: src/osmEditDialog.js:192 msgid "Service" msgstr "ਸੇਵਾ" #: src/osmEditDialog.js:195 msgid "Takeout" msgstr "ਲੈ ਕੇ ਜਾਓ" #: src/osmEditDialog.js:200 msgid "Only" msgstr "ਸਿਰਫ਼" #: src/osmEditDialog.js:203 msgid "Religion" msgstr "ਧਰਮ" #: src/osmEditDialog.js:206 src/translations.js:286 msgid "Animism" msgstr "ਅਨੀਮੀਸਮ" #: src/osmEditDialog.js:207 msgid "Bahá’í" msgstr "ਬਾਹਾਈ" #: src/osmEditDialog.js:208 src/translations.js:288 msgid "Buddhism" msgstr "ਬੁੱਧ" #: src/osmEditDialog.js:209 src/translations.js:289 msgid "Caodaism" msgstr "ਕਾਓ ਦਾਈ" #: src/osmEditDialog.js:210 src/translations.js:290 msgid "Christianity" msgstr "ਇਸਾਈ" #: src/osmEditDialog.js:211 src/translations.js:291 msgid "Confucianism" msgstr "ਕਨਫਿਊਸ਼ੀਵਾਦ" #: src/osmEditDialog.js:212 src/translations.js:292 msgid "Hinduism" msgstr "ਹਿੰਦੂ" #: src/osmEditDialog.js:213 src/translations.js:293 msgid "Jainism" msgstr "ਜੈਨ" #: src/osmEditDialog.js:214 src/translations.js:294 msgid "Judaism" msgstr "ਯਹੂਦੀ" #: src/osmEditDialog.js:215 src/translations.js:295 msgid "Islam" msgstr "ਇਸਲਾਮ" #: src/osmEditDialog.js:216 src/translations.js:296 msgid "Multiple Religions" msgstr "ਕਈ ਧਰਮ" #: src/osmEditDialog.js:217 src/translations.js:297 msgid "Paganism" msgstr "ਪਾਗਾਨੀਸਮ" #: src/osmEditDialog.js:218 src/translations.js:298 msgid "Pastafarianism" msgstr "ਪਾਸਟਾਫਾਰਿਨੇਮ" #: src/osmEditDialog.js:219 src/translations.js:299 msgid "Scientology" msgstr "ਸਾਇੰਸਟੋਲੋਜੀ" #: src/osmEditDialog.js:220 src/translations.js:300 msgid "Shinto" msgstr "ਸ਼ਿਨਟੋ" #: src/osmEditDialog.js:221 src/translations.js:301 msgid "Sikhism" msgstr "ਸਿੱਖੀ" #: src/osmEditDialog.js:222 src/translations.js:302 msgid "Spiritualism" msgstr "ਅਧਿਆਤਮਵਾਦ" #: src/osmEditDialog.js:223 src/translations.js:303 msgid "Taoism" msgstr "ਤਾਓਵਾਦ" #: src/osmEditDialog.js:224 src/translations.js:304 msgid "Unitarian Universalism" msgstr "ਯੂਨਿਟਾਰਿਅਨ ਯੂਨੀਵਰਸਲਿਮ" #: src/osmEditDialog.js:225 src/translations.js:305 msgid "Voodoo" msgstr "ਵੂਡੂ" #: src/osmEditDialog.js:226 src/translations.js:306 msgid "Yazidism" msgstr "ਯਾਜ਼ਿਡੀਸਮ" #: src/osmEditDialog.js:227 src/translations.js:307 msgid "Zoroastrianism" msgstr "ਪਾਰਸੀ" #: src/osmEditDialog.js:230 src/poiCategories.js:174 msgid "Toilets" msgstr "ਗੁਸਲਖਾਨੇ" #: src/osmEditDialog.js:237 msgid "Note" msgstr "ਨੋਟ" #: src/osmEditDialog.js:240 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" "ਜਾਣਕਾਰੀ ਹੋਰ ਨਕਸ਼ੇ ਵਾਲਿਆਂ ਨੂੰ ਭਾਗਾਂ, ਲੇਖਕ ਦੇ ਮੌਕੇ ਜਦੋਂ ਇਹ ਬਣਾਈ ਸੀ ਜਾਂ ਹੋਰ" " ਸੁਧਾਰ ਬਾਰੇ ਇਸ਼ਾਰਿਆਂ " "ਬਾਰੇ ਅਸਪਸ਼ਟ ਜਾਣਕਾਰੀ ਦੇਣ ਲਈ ਵਰਤੀ ਜਾਂਦੀ ਹੈ।" #: src/osmEditDialog.js:339 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "OpenStreetMap ਵਿੱਚ ਜੋੜੋ" #: src/osmEditDialog.js:393 msgid "Select Type" msgstr "ਕਿਸਮ ਨੂੰ ਚੁਣੋ" #: src/osmEditDialog.js:515 msgid "Done" msgstr "ਮੁਕੰਮਲ" #: src/osmEditDialog.js:818 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "" "ਵਰਤੇ ਫਾਰਮੈਟ ਵਿੱਚ ਭਾਸ਼ਾ ਕੋਡ ਤੇ ਲੇਖ ਸਿਰਲੇਖ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ ਜਿਵੇਂ ਕਿ “en:Article" " title”।" #: src/osmEditDialog.js:824 msgid "Use the reload button to load the Wikidata tag for the selected article" msgstr "ਚੁਣੇ ਲੇਖ ਲਈ ਵਿਕੀਡਾਟਾ ਟੈਗ ਲੋਡ ਕਰਨ ਵਾਸਤੇ ਮੁੜ-ਲੋਡ ਕਰੋ ਬਟਨ ਨੂੰ ਵਰਤੋਂ" #: src/osmEditDialog.js:832 msgid "Couldn't find Wikidata tag for article" msgstr "ਲੇਖ ਲਈ ਵਿਕੀਡਾਟਾ ਲੱਭਿਆ ਨਹੀਂ ਜਾ ਸਕਿਆ" #: src/photonUtils.js:118 msgid "Unnamed place" msgstr "ਬੇਨਾਮ ਥਾਂ" #: src/placeEntry.js:261 msgid "Failed to parse Geo URI" msgstr "ਜੀਓ URI ਨੂੰ ਪਾਰਸ ਕਰਨ ਲਈ ਫੇਲ੍ਹ" #: src/placeEntry.js:273 #| msgid "Failed to parse Geo URI" msgid "Failed to parse Maps URI" msgstr "ਮੈਪਸ URI ਨੂੰ ਪਾਰਸ ਕਰਨ ਲਈ ਫੇਲ੍ਹ" #. 300 ft (300 * 12 * 0.0254 m) #. #. * Translators: This a format string for showing a distance to a place #. * is lower than a "quite short" distance. #. * The "less than" symbol can be substituded with an appropriate one, if #. * needed (e.g. using the correct direction, or alternative symbol). #. * The %s should be kept, and is substituted with a label representing the #. * short distance. The \u2009 (thin space) could also be adjusted if needed #: src/placeListRow.js:46 #, javascript-format msgctxt "short distance format string" msgid "< %s" msgstr "< %s" #: src/placeView.js:249 msgid "Coordinates" msgstr "ਧੁਰੇ" #: src/placeView.js:253 msgid "Accuracy" msgstr "ਦਰੁਸਤੀ" #. Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) #: src/placeView.js:256 #, javascript-format msgid "Accuracy: %s" msgstr "ਦਰੁਸਤੀ: %s" #. since the phone numbers are typically always rendered #. * left-to-right, insert an explicit LRM char to avoid issues #. * with phone numbers in international format starting with a + #. * which is considered a "weak" character to determine Unicode #. * text direction #. #: src/placeView.js:275 msgid "Phone number" msgstr "ਫ਼ੋਨ ਨੰਬਰ" #. Translators: #. * The establishment offers customers to purchase meals #. * (or similar) to be consumed elsewhere #. #: src/placeView.js:307 msgid "Offers takeout" msgstr "ਲੈ ਕੇ ਜਾਣ ਦੀ ਸਹੂਲਤ" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed on-premise. #. #: src/placeView.js:315 msgid "Does not offer takeout" msgstr "ਲੈ ਕੇ ਦੀ ਸਹੂਲਤ ਨਹੀਂ ਹੈ" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed elsewhere. E.g. #. * there is no seating on-premise for eating/drinking #. #: src/placeView.js:324 msgid "Only offers takeout" msgstr "ਸਿਰਫ਼ ਲੈ ਕੇ ਜਾ ਸਕਦੇ ਹੋ" #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/placeView.js:341 msgid "Public internet access" msgstr "ਪਬਲਿਕ ਇੰਟਰਨੈੱਟ ਪਹੁੰਚ" #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/placeView.js:350 msgid "No internet access" msgstr "ਕੋਈ ਇੰਟਰਨੈੱਟ ਪਹੁੰਚ ਨਹੀਂ ਹੈ" #. Translators: #. * This means a WLAN Hotspot, also known as wireless, wifi or Wi-Fi. #. #: src/placeView.js:358 msgid "Public Wi-Fi" msgstr "ਪਬਲਿਕ Wi-Fi" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/placeView.js:366 msgid "Wired internet access" msgstr "ਤਾਰਾ ਰਾਹੀ ਇੰਟਰਨੈੱਟ ਪਹੁੰਚ" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/placeView.js:374 msgid "Computers available for use" msgstr "ਵਰਤਣ ਲਈ ਕੰਪਿਊਟਰ ਉਪਲੱਬਧ ਹਨ" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/placeView.js:382 msgid "Internet assistance available" msgstr "ਇੰਟਰਨੈੱਟ ਸਹਾਇਕ ਉਪਲੱਬਧ ਹੈ" #: src/placeView.js:388 msgid "No toilets available" msgstr "ਗੁਸਲਖ਼ਾਨੇ ਨਹੀਂ ਹਨ" #: src/placeView.js:391 msgid "Toilets available" msgstr "ਗੁਸਲਖ਼ਾਨੇ ਮੌਜੂਦ ਹਨ" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #: src/placeView.js:400 msgid "Wheelchair accessible" msgstr "ਵੀਲ-ਚੇਅਰ ਰਾਹੀਂ ਪਹੁੰਚਯੋਗ" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/placeView.js:410 msgid "Limited wheelchair accessibility" msgstr "ਵੀਲ-ਚੇਅਰ ਰਾਹੀਂ ਪਹੁੰਚ ਸੀਮਿਤ ਹੈ" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #: src/placeView.js:419 msgid "Not wheelchair accessible" msgstr "ਵੀਲ-ਚੇਅਰ ਰਾਹੀਂ ਪਹੁੰਚ ਨਹੀਂ ਹੈ" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/placeView.js:429 msgid "Designated for wheelchair users" msgstr "ਵੀਲ੍ਹ-ਚੇਅਰ ਵਰਤੋਂਕਾਰਾਂ ਲਈ ਨਿਯਤ ਹੈ" #. * #. * Translators: this is a label indicating an altitude below #. * sea level, where the %s placeholder is the altitude relative #. * to mean sea level in the "negative direction" #. #: src/placeView.js:460 #, javascript-format msgid "%s below sea level" msgstr "ਸਮੁੰਦਰੀ ਪੱਧਰ ਤੋਂ %s ਹੇਠਾਂ" #. * #. * Translators: this indicates a place is located at (or very #. * close to) mean sea level #. #: src/placeView.js:467 msgid "At sea level" msgstr "ਸਮੁੰਦਰੀ ਪੱਧਰ ਉੱਤੇ" #: src/placeView.js:476 msgid "Religion:" msgstr "ਧਰਮ:" #: src/place.js:543 msgid "Place not found in OpenStreetMap" msgstr "OpenStreetMap ਉੱਤੇ ਥਾਂ ਨਹੀਂ ਲੱਭੀ" #: src/place.js:550 msgid "Coordinates in URL are not valid" msgstr "URL ਵਿੱਚ ਦਿੱਤੇ ਧੁਰੇ ਵਾਜਬ ਨਹੀਂ ਹਨ" #: src/place.js:559 msgid "URL is not supported" msgstr "URL ਸਹਾਇਕ ਨਹੀਂ ਹੈ" #: src/poiCategories.js:132 msgid "Amenities" msgstr "ਸਹੂਲਤਾਂ" #: src/poiCategories.js:135 msgid "ATMs" msgstr "ATM" #: src/poiCategories.js:141 #| msgid "Postal code" msgid "Post Boxes" msgstr "ਡਾਕ ਬਾਕਸ" #: src/poiCategories.js:147 #| msgid "Postal code" msgid "Post Offices" msgstr "ਡਾਕ ਆਫ਼ਿਸ" #: src/poiCategories.js:153 msgid "Police" msgstr "ਪੁਲਸ" #: src/poiCategories.js:159 #| msgid "Ferries" msgid "Libraries" msgstr "ਲਾਇਬਰੇਰੀਆਂ" #: src/poiCategories.js:165 msgid "Pharmacies" msgstr "ਦਵਾਈਆਂ" #: src/poiCategories.js:170 msgid "Recycling" msgstr "ਰੀ-ਸਾਈਕਲਿੰਗ" #: src/poiCategories.js:180 #| msgid "Wheelchair accessible" msgid "Wheelchair-accessible Toilets" msgstr "ਵੀਲ੍ਹ-ਚੇਅਰ ਰਾਹੀਂ ਪਹੁੰਚਯੋਗ ਗੁਸਲਖਾਨੇ" #: src/poiCategories.js:186 msgid "Baggage Lockers" msgstr "ਬੈਗ ਲਾਕਰ" #: src/poiCategories.js:194 msgid "Eating & Drinking" msgstr "ਖਾਣ ਪੀਣ" #: src/poiCategories.js:198 msgid "Restaurants" msgstr "ਰੈਸਟੋਰੈਂਟ" #: src/poiCategories.js:203 msgid "Fast Food" msgstr "ਫਾਸਟ ਫੂਡ" #: src/poiCategories.js:208 msgid "Food Courts" msgstr "ਫ਼ੂਡ ਕੋਰਟ" #: src/poiCategories.js:213 msgid "Pubs" msgstr "ਪੱਬ" #: src/poiCategories.js:219 msgid "Bars" msgstr "ਬਾਰ" #: src/poiCategories.js:224 msgid "Cafes" msgstr "ਕੈਫ਼ੇ" #: src/poiCategories.js:229 msgid "Ice Cream" msgstr "ਆਈਸ ਕਰੀਮ" #: src/poiCategories.js:233 msgid "Food, Snacks, and Beverage Machines" msgstr "ਭੋਜਨ, ਸਨੈਕ ਅਤੇ ਪੀਣ ਪਦਾਰਥ ਵਾਲੀਆਂ ਮਸ਼ੀਨਾਂ" #: src/poiCategories.js:241 msgid "Shopping" msgstr "ਖਰੀਦਦਾਰੀ" #: src/poiCategories.js:245 msgid "Supermarkets" msgstr "ਸੁਪਰ ਮਾਰਕੀਟਾਂ" #: src/poiCategories.js:251 msgid "Convenience Stores" msgstr "ਕੋਨਵਿਨੀਨਸ ਸਟੋਰ" #: src/poiCategories.js:256 msgid "Shopping Malls" msgstr "ਸਾਪਿੰਗ ਮਾਲ" #: src/poiCategories.js:262 msgid "Clothes" msgstr "ਕੱਪੜੇ" #: src/poiCategories.js:267 msgid "Shoes" msgstr "ਜੁੱਤੇ" #: src/poiCategories.js:272 msgid "Electronics" msgstr "ਇਲੈਕਟਰੋਨਿਕਸ" #: src/poiCategories.js:278 msgid "Alcohol" msgstr "ਸ਼ਰਾਬ" #: src/poiCategories.js:284 #| msgid "Ferries" msgid "Bakeries" msgstr "ਬੇਕਰੀਆਂ" #: src/poiCategories.js:290 #| msgid "Followers" msgid "Flowers" msgstr "ਫ਼ੁੱਲ" #: src/poiCategories.js:297 msgid "Transportation" msgstr "ਟਰਾਂਸਪੋਰਟੇਸ਼ਨ" #: src/poiCategories.js:301 msgid "Bus & Tram Stops" msgstr "ਬੱਸ ਤੇ ਟਰਾਮ ਅੱਡਾ" #: src/poiCategories.js:309 msgid "Train & Subway Stations" msgstr "ਟਰੇਨ ਤੇ ਸਬਵੇਅ ਸਟੇਸ਼ਨ" #: src/poiCategories.js:317 msgid "Tickets" msgstr "ਟਿਕਟਾਂ" #: src/poiCategories.js:325 msgid "Parking" msgstr "ਪਾਰਕਿੰਗ" #: src/poiCategories.js:330 msgid "Bicycle Parking" msgstr "ਸਾਈਕਲ ਪਾਰਕਿੰਗ" #: src/poiCategories.js:335 msgid "Bicycle Rental" msgstr "ਸਾਈਕਲ ਕਿਰਾਏ ਉੱਤੇ" #: src/poiCategories.js:340 msgid "Car Rental" msgstr "ਕਾਰ ਕਿਰਾਏ ਦੀ ਥਾਂ" #: src/poiCategories.js:345 msgid "Fuel" msgstr "ਤੇਲ" #: src/poiCategories.js:350 msgid "EV Charging" msgstr "EV ਚਾਰਜਿੰਗ" #: src/poiCategories.js:358 msgid "Healthcare" msgstr "ਸਿਹਤ-ਦੇਖਭਾਲ" #: src/poiCategories.js:362 msgid "Clinics" msgstr "ਕਲੀਨਿਕ" #: src/poiCategories.js:368 msgid "Hospitals" msgstr "ਹਸਪਤਾਲ" #: src/poiCategories.js:374 msgid "Dentists" msgstr "ਦੰਦਾਂ ਦੇ ਡਾਕਟਰ" #: src/poiCategories.js:381 msgid "Accommodation" msgstr "ਰਿਹਾਇਸ਼" #: src/poiCategories.js:385 msgid "Hotels" msgstr "ਹੋਟਲ" #: src/poiCategories.js:390 msgid "Hostels" msgstr "ਹੋਸਟਲ" #: src/poiCategories.js:395 msgid "Bed & Breakfast" msgstr "ਬੈਡ ਤੇ ਬਰੇਕਫ਼ਾਸਟ" #: src/poiCategories.js:400 msgid "Campings" msgstr "ਕੈਂਪਿੰਗ" #: src/poiCategories.js:407 #| msgid "Open Location" msgid "Recreation" msgstr "ਮਨਪਰਚਾਵਾ" #: src/poiCategories.js:411 msgid "Parks" msgstr "ਪਾਰਕ" #: src/poiCategories.js:416 msgid "Playgrounds" msgstr "ਖੇਡ ਦੇ ਮੈਦਾਨ" #: src/poiCategories.js:420 msgid "Beaches" msgstr "ਬੀਚ" #: src/poiCategories.js:425 msgid "Nature Reserves" msgstr "ਕੁਦਰਤੀ ਰੱਖਾਂ" #: src/poiCategories.js:431 msgid "Theme Parks" msgstr "ਥੀਮ ਪਾਰਕ" #: src/poiCategories.js:436 msgid "Theaters" msgstr "ਥੀਏਟਰ" #: src/poiCategories.js:442 msgid "Movie Theaters" msgstr "ਮੂਵੀ ਥੀਏਟਰ" #: src/poiCategories.js:448 msgid "Night Clubs" msgstr "ਨਾਈਟ ਕਲੱਬ" #: src/poiCategories.js:455 msgid "Tourism" msgstr "ਸੈਰ-ਸਪਾਟਾ" #: src/poiCategories.js:459 msgid "Museums" msgstr "ਅਜਾਇਬਘਰ" #: src/poiCategories.js:465 #| msgid "Directions" msgid "Attractions" msgstr "ਦਿਲਚਸਪੀਆਂ" #: src/poiCategories.js:470 msgid "Artworks" msgstr "ਕਲਾ-ਪਰਦਰਸ਼ਨੀ" #: src/poiCategories.js:475 #| msgid "Show more information" msgid "Tourist Information" msgstr "ਯਾਤਰੂ ਜਾਣਕਾਰੀ" #: src/poiCategories.js:482 #| msgid "_Export" msgid "Sports" msgstr "ਖੇਡਾਂ" #: src/poiCategories.js:486 msgid "Gyms" msgstr "ਜਿਮ" #: src/poiCategories.js:492 msgid "Outdoor Gyms" msgstr "ਖੁੱਲ੍ਹੇ ਵਿੱਚ ਜਿਮ" #: src/poiCategories.js:498 msgid "Golf Courses" msgstr "ਗੁਲਫ਼ ਕੋਰਸ" #: src/printLayout.js:350 #, javascript-format msgid "From %s to %s" msgstr "%s ਤੋਂ %s ਤੱਕ" #: src/printOperation.js:49 msgid "Loading map tiles for printing" msgstr "ਪਰਿੰਟ ਕਰਨ ਲਈ ਨਕਸ਼ਿਆਂ ਦੇ ਨਾਂ ਨੂੰ ਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ" #: src/printOperation.js:50 msgid "You can abort printing if this takes too long" msgstr "ਜੇ ਪਰਿੰਟ ਕਰਨ ਲਈ ਲੰਮਾ ਸਮਾਂ ਲੱਗ ਸਕਦਾ ਹੈ ਤਾਂ ਤੁਸੀਂ ਪਰਿੰਟ ਨੂੰ ਛੱਡ ਸਕਦੇ ਹੋ" #: src/printOperation.js:52 msgid "Abort printing" msgstr "ਪਰਿੰਟ ਕਰਨ ਨੂੰ ਵਿਚੇ ਛੱਡੋ" #. Translators: this is add via location tooltip #: src/routeEntry.js:60 msgid "Add via location" msgstr "ਰਾਹੀਂ ਟਿਕਾਣਾ ਜੋੜੋ" #. Translators: this is remove via location tooltip #: src/routeEntry.js:70 msgid "Remove via location" msgstr "ਰਾਹੀਂ ਟਿਕਾਣਾ ਹਟਾਓ" #. Translators: this is reverse route tooltip #: src/routeEntry.js:76 msgid "Reverse route" msgstr "ਉਲਟ ਰਾਹ" #: src/searchBar.js:45 #| msgctxt "shortcut window" #| msgid "Search" msgid "Search" msgstr "ਲੱਭੋ" #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:84 #, javascript-format msgid "Add %s to %s" msgstr "%s ਤੋਂ %s ਜੋੜੋ" #: src/sendToDialog.js:181 msgid "Failed to open URI" msgstr "URL ਨੂੰ ਖੋਲ੍ਹਣ ਲਈ ਫੇਲ੍ਹ" #: src/sendToDialog.js:246 #, javascript-format msgid "Open with %s" msgstr "%s ਨਾਲ ਖੋਲ੍ਹੋ" #: src/shapeLayer.js:108 msgid "failed to load file" msgstr "ਫਾਇਲ ਲੋਡ ਕਰਨ ਲਈ ਫੇਲ੍ਹ ਹੈ" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:325 #, javascript-format msgid "Estimated time: %s" msgstr "ਅੰਦਾਜ਼ਨ ਸਮਾਂ: %s" #: src/sidebar.js:395 #, javascript-format msgid "Itineraries provided by %s" msgstr "%s ਵਲੋਂ ਸਫ਼ਰਨਾਮਾ ਦਿੱਤਾ" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:39 #, javascript-format msgid "Start at %s" msgstr "%s ਵਜੇ ਸ਼ੁਰੂ ਕਰੋ" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:45 msgid "Start" msgstr "ਸ਼ੁਰੂ" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:63 #, javascript-format msgid "Walk %s" msgstr "%s ਤੁਰੋ" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:77 #, javascript-format msgid "Arrive at %s" msgstr "%s ਵਜੇ ਪਹੁੰਚੋ" #: src/transit.js:79 src/transitplugins/openTripPlanner.js:1144 msgid "Arrive" msgstr "ਪਹੁੰਚ" #: src/transitLegRow.js:69 msgid "Show walking instructions" msgstr "ਤੁਰਨ ਦੀਆਂ ਹਦਾਇਤਾਂ ਦਿਖਾਓ" #: src/transitLegRow.js:70 msgid "Hide walking instructions" msgstr "ਤੁਰਨ ਦੀਆਂ ਹਦਾਇਤਾਂ ਲੁਕਾਓ" #: src/transitMoreRow.js:37 msgid "Load earlier alternatives" msgstr "ਸਵਖਤੇ ਵਾਲੇ ਬਦਲ ਲੋਡ ਕਰੋ" #: src/transitMoreRow.js:39 msgid "Load later alternatives" msgstr "ਬਾਦ ਵਾਲੇ ਬਦਲ ਲੋਡ ਕਰੋ" #: src/transitMoreRow.js:52 msgid "No earlier alternatives found." msgstr "ਕੋਈ ਸਵਖਤੇ ਦਾ ਬਦਲ ਨਹੀਂ ਲੱਭਿਆ।" #: src/transitMoreRow.js:54 msgid "No later alternatives found." msgstr "ਕੋਈ ਬਦਲਵਾਂ ਰੂਟ ਨਹੀਂ ਲੱਭਿਆ।" #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:136 msgctxt "month-day-date" msgid "%b %e" msgstr "%b %e" #: src/transitPlan.js:170 msgid "No timetable data found for this route." msgstr "ਇਸ ਰੂਟ ਲਈ ਕੋਈ ਸਮਾਂ-ਸਾਰਣੀ ਡਾਟਾ ਨਹੀਂ ਲੱਭਿਆ।" #: src/transitPlan.js:178 msgid "No provider found for this route." msgstr "ਇਸ ਰੂਟ ਲਈ ਕੋਈ ਪੂਰਕ ਨਹੀਂ ਲੱਭਿਆ।" #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:295 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:324 #, javascript-format msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "%s ਮਿੰਟ" msgstr[1] "%s ਮਿੰਟ" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:336 #, javascript-format msgid "%s hour" msgid_plural "%s hours" msgstr[0] "%s ਘੰਟਾ" msgstr[1] "%s ਘੰਟੇ" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:344 #, javascript-format msgid "%s:%s hour" msgid_plural "%s:%s hours" msgstr[0] "%s:%s ਘੰਟਾ" msgstr[1] "%s:%s ਘੰਟੇ" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:698 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: src/translations.js:55 msgid "Around the clock" msgstr "ਚੌਵੀਂ ਘੰਟੇ" #: src/translations.js:57 msgid "From sunrise to sunset" msgstr "ਸੂਰਜ ਚੜ੍ਹਨ ਤੋਂ ਸੂਰਜ ਡੁੱਬਣ ਤੱਕ" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:123 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s,%s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:137 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s,%s,%s" #: src/translations.js:156 msgid "Every day" msgstr "ਹਰ ਰੋਜ਼" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:168 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:179 msgid "Public holidays" msgstr "ਪਬਲਿਕ ਛੁੱਟੀਆਂ" #: src/translations.js:181 msgid "School holidays" msgstr "ਸਕੂਲੀ ਛੁੱਟੀਆਂ" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:221 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: src/translations.js:235 msgid "not open" msgstr "ਖੁੱਲ੍ਹਾ ਨਹੀਂ" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:250 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:287 #| msgid "Bahá’í" msgid "Bahá'í" msgstr "ਬਾਹਾਈ" #. Translators: Accuracy of user location information #: src/utils.js:257 msgid "Unknown" msgstr "ਅਣਜਾਣ" #. Translators: Accuracy of user location information #: src/utils.js:260 msgid "Exact" msgstr "ਠੀਕ-ਠੀਕ" #. Translators: this is a duration with only hours, using #. * an abbreviation for hours, corresponding to 'h' in English #. #: src/utils.js:345 #, javascript-format msgid "%s h" msgstr "%s ਘੰ" #. Translators: this is a duration with hours and minutes parts #. * using abbreviations for hours and minutes, corresponding to 'h' #. * and 'min' in English. The minutes has appropriate plural variations #. #: src/utils.js:351 #, javascript-format msgid "%s h %s min" msgid_plural "%s h %s min" msgstr[0] "%s ਘੰ %s ਮਿੰਟ" msgstr[1] "%s ਘੰ %s ਮਿੰਟ" #. Translators: this is a duration with minutes part #. * using abbreviation for minutes, corresponding to 'min' in English #. * with appropriate plural variations #. #: src/utils.js:358 #, javascript-format msgid "%s min" msgid_plural "%s min" msgstr[0] "%s ਮਿੰਟ" msgstr[1] "%s ਮਿੰਟ" #. Translators: this is a duration of less than one minute #. * with seconds using an abbreviation for seconds, corresponding to #. * 's' in English with appropriate plural forms #. #: src/utils.js:364 #, javascript-format msgid "%s s" msgid_plural "%s s" msgstr[0] "%s s" msgstr[1] "%s s" #. Translators: This is a distance measured in kilometers #: src/utils.js:375 #, javascript-format msgid "%s km" msgstr "%s ਕਿਮੀ" #. Translators: This is a distance measured in meters #: src/utils.js:378 #, javascript-format msgid "%s m" msgstr "%s ਮੀ" #. Translators: This is a distance measured in miles #: src/utils.js:386 #, javascript-format msgid "%s mi" msgstr "%s ਮੀਲ" #. Translators: This is a distance measured in feet #: src/utils.js:389 #, javascript-format msgid "%s ft" msgstr "%s ਫੁੱਟ" #: src/transitplugins/goMetro.js:61 msgid "This plugin doesn't support latest arrival" msgstr "ਇਹ ਪਲੱਗਇਨ ਨਵੀਂ ਪਹੁੰਚ ਲਈ ਸਹਾਇਕ ਨਹੀਂ ਹੈ" #: src/transitplugins/openTripPlanner.js:1205 #, javascript-format msgid "Continue on %s" msgstr "%s ਉੱਤੇ ਜਾਰੀ ਰੱਖੋ" #: src/transitplugins/openTripPlanner.js:1210 #, javascript-format msgid "Turn left on %s" msgstr "%s ਤੋਂ ਖੱਬੇ ਮੁੜੋ" #: src/transitplugins/openTripPlanner.js:1212 msgid "Turn left" msgstr "ਖੱਬੇ ਮੁੜੋ" #: src/transitplugins/openTripPlanner.js:1215 #, javascript-format msgid "Turn slightly left on %s" msgstr " %s ਤੋਂ ਥੋੜ੍ਹਾ ਖੱਬੇ ਮੁੜੋ" #: src/transitplugins/openTripPlanner.js:1217 msgid "Turn slightly left" msgstr "ਥੋੜ੍ਹਾ ਖੱਬੇ ਮੁੜੋ" #: src/transitplugins/openTripPlanner.js:1220 #, javascript-format msgid "Turn sharp left on %s" msgstr "%s ਤੋਂ ਤਿੱਖੇ ਖੱਬੇ ਮੁੜੋ" #: src/transitplugins/openTripPlanner.js:1222 msgid "Turn sharp left" msgstr "ਤਿੱਖੇ ਖੱਬੇ ਮੁੜੋ" #: src/transitplugins/openTripPlanner.js:1225 #, javascript-format msgid "Turn right on %s" msgstr "%s ਤੋਂ ਸੱਜੇ ਮੁੜੋ" #: src/transitplugins/openTripPlanner.js:1227 msgid "Turn right" msgstr "ਸੱਜ ਮੁੜੋ" #: src/transitplugins/openTripPlanner.js:1230 #, javascript-format msgid "Turn slightly right on %s" msgstr "%s ਤੋਂ ਥੋੜ੍ਹਾ ਖੱਬੇ ਮੁੜੋ" #: src/transitplugins/openTripPlanner.js:1232 msgid "Turn slightly right" msgstr "ਥੋੜ੍ਹਾ ਸੱਜੇ ਮੁੜੋ" #: src/transitplugins/openTripPlanner.js:1235 #, javascript-format msgid "Turn sharp right on %s" msgstr "%s ਤੋਂ ਤਿੱਖੇ ਸੱਜੇ ਮੁੜੋ" #: src/transitplugins/openTripPlanner.js:1237 msgid "Turn sharp right" msgstr "ਤਿੱਖੇ ਸੱਜੇ ਮੁੜੋ" #: src/transitplugins/openTripPlanner.js:1243 #, javascript-format #| msgid "In the roundabout, take exit %s" msgid "At the roundabout, take exit %s" msgstr "ਗੋਲ ਚੱਕਰ ਵਿੱਚ, %s ਰਾਹੀਂ ਬਾਹਰ ਨਿਕਲੋ" #: src/transitplugins/openTripPlanner.js:1245 #, javascript-format #| msgid "In the roundabout, take exit to %s" msgid "At the roundabout, take exit to %s" msgstr "ਗੋਲ ਚੱਕਰ ਵਿੱਚ, %s ਤੋਂ ਬਾਹਰ ਨਿਕਲੋ" #: src/transitplugins/openTripPlanner.js:1247 msgid "Take the roundabout" msgstr "ਗੋਲ ਚੱਕਰ ਲਵੋ" #: src/transitplugins/openTripPlanner.js:1251 #, javascript-format msgid "Take the elevator and get off at %s" msgstr "ਐਲੀਵੇਟਰ ਲਵੋ ਅਤੇ %s ਉੱਤੇ ਉਤਰ ਜਾਓ" #: src/transitplugins/openTripPlanner.js:1253 msgid "Take the elevator" msgstr "ਐਲੀਵੇਟਰ ਲਵੋ" #: src/transitplugins/openTripPlanner.js:1257 #, javascript-format msgid "Make a left u-turn onto %s" msgstr "%s ਤੋਂ ਖੱਬੇ ਯੂ-ਟਰਨ ਲਵੋ" #: src/transitplugins/openTripPlanner.js:1259 msgid "Make a left u-turn" msgstr "ਖੱਬੀ ਯੂ-ਟਰਨ ਲਵੋ" #: src/transitplugins/openTripPlanner.js:1262 #, javascript-format msgid "Make a right u-turn onto %s" msgstr "%s ਤੋਂ ਸੱਜੇ ਯੂ-ਟਰਨ ਲਵੋ" #: src/transitplugins/openTripPlanner.js:1264 msgid "Make a right u-turn" msgstr "ਸੱਜੇ ਯੂ-ਟਰਨ ਲਵੋ" #~ msgid "GNOME Maps" #~ msgstr "ਗਨੋਮ ਨਕਸ਼ੇ" #~ msgid "" #~ "You can even search for specific types of locations, such as “Pubs near " #~ "Main Street, Boston” or “Hotels near Alexanderplatz, Berlin”." #~ msgstr "" #~ "ਤੁਸੀਂ ਟਿਕਾਣਿਆਂ ਦੀ ਖਾਸ ਕਿਸਮ ਲਈ ਵੀ ਖੋਜ ਕਰ ਸਕਦੇ ਹਨ ਜਿਵੇਂ ਕਿ \"ਮੇਨ ਸਟਰੀਟ, ਬੋਸਟਨ ਨੇੜੇ " #~ "ਪੱਬ\" ਜਾਂ \"ਅਲੈਗਜੈਂਡਰਪਲੇਟਜ਼, ਬਰਲਿਨ ਨੇੜੇ ਹੋਟਲ\"।" #~ msgid "Facebook check-in privacy setting" #~ msgstr "ਫੇਸਬੁੱਕ ਚੈਕਇਨ ਪਰਦੇਦਾਰੀ ਸੈਟਿੰਗ" #~ msgid "" #~ "Latest used Facebook check-in privacy setting. Possible values are: " #~ "EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS or SELF." #~ msgstr "" #~ "ਤਾਜ਼ਾ ਵਰਤੀ ਗਈ ਫੇਸਬੁੱਕ ਚੈਕਇਨ ਪਰਦੇਦਾਰੀ ਸੈਟਿੰਗ। ਸੰਭਵ ਮੁੱਲ ਹਨ: ਹਰੇਕ, ਦੋਸਤਾਂ_ਦੇ_ਦੋਸਤ, ਸਭ_ਦੋਸਤ, " #~ "ਜਾਂ ਖੁਦ" #~ msgid "Foursquare check-in privacy setting" #~ msgstr "ਫੋਰਸਿਕਉਰ ਚੈਕਇਨ ਪਰਦੇਦਾਰੀ ਸੈਟਿੰਗ" #~ msgid "" #~ "Latest used Foursquare check-in privacy setting. Possible values are: " #~ "public, followers or private." #~ msgstr "" #~ "ਤਾਜ਼ਾ ਵਰਤੀ ਗਈ ਫੋਰਸਕਿਉਰ ਚੈਕਇਨ ਪਰਦੇਦਾਰੀ ਸੈਟਿੰਗ। ਸੰਭਵ ਮੁੱਲ ਹਨ: ਪਬਲਿਕ, ਫ਼ੋਲਅਰ ਜਾਂ ਪ੍ਰਾਈਵੇਟ।" #~ msgid "Foursquare check-in Facebook broadcasting" #~ msgstr "ਫੋਰਸਕਿਉਰ ਚੈਕਇਨ ਫੇਸਬੁੱਕ ਬਰਾਡਕਾਸਟ" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a post in the " #~ "Facebook account associated with the Foursquare account." #~ msgstr "" #~ "ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਜੇ ਫੋਰਸਕਿਉਰ ਨੂੰ ਚੈਕ-ਇਨ ਨੂੰ ਫੋਰਸਕਿਉਰ ਖਾਤੇ ਦੇ ਨਾਲ ਸੰਬੰਧਿਤ ਫੇਸਬੁੱਕ ਖਾਤੇ ਵਿੱਚ ਪੋਸਟ " #~ "ਵਜੋਂ ਬਰਾਡਕਾਸਟ ਕਰਨਾ ਹੁੰਦਾ ਹੈ।" #~ msgid "Foursquare check-in Twitter broadcasting" #~ msgstr "ਫੋਰਸਕਿਉਰ ਚੈਕਇਨ ਟਵਿੱਟਰ ਬਰਾਡਕਾਸਟ" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a tweet in the " #~ "Twitter account associated with the Foursquare account." #~ msgstr "" #~ "ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਜੇ ਫੋਰਸਕਿਉਰ ਨੂੰ ਚੈਕ-ਇਨ ਨੂੰ ਫੋਰਸਕਿਉਰ ਖਾਤੇ ਦੇ ਨਾਲ ਸੰਬੰਧਿਤ ਟਵਿੱਟਰ ਖਾਤੇ ਵਿੱਚ " #~ "ਟਵਿੱਟ ਵਜੋਂ ਬਰਾਡਕਾਸਟ ਕਰਨਾ ਹੁੰਦਾ ਹੈ।" #~| msgid "Night Mode" #~ msgid "Night mode" #~ msgstr "ਗੂੜ੍ਹਾ ਢੰਗ" #~ msgid "Whether the application is in night mode." #~ msgstr "ਕੀ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਰਾਤ ਵਾਲੇ ਢੰਗ ਵਿੱਚ ਵਰਤਣਾ ਹੈ।" #~ msgid "Use hybrid aerial tiles" #~ msgstr "ਹਾਈਬਰਿੱਡ ਹਵਾਈ ਟਾਈਲਾਂ ਵਰਤੋਂ" #~ msgid "Whether aerial tiles should use hybrid style (with labels)." #~ msgstr "ਕੀ ਹਵਾਈ ਟਾਈਲਾਂ ਨੂੰ ਹਾਈਬਰਿੱਡ ਸਟਾਈਲ (ਲੇਬਲਾਂ ਨਾਲ) ਵਰਤਣਾ ਚਾਹੀਦਾ ਹੈ।" #~ msgid "Visibility" #~ msgstr "ਵੇਖਣਯੋਗਤਾ" #~ msgid "Post on Facebook" #~ msgstr "ਫੇਸਬੁੱਕ ਉੱਤੇ ਪੋਸਟ ਕਰੋ" #~ msgid "Post on Twitter" #~ msgstr "ਟਵਿੱਟਰ ਉੱਤੇ ਪੋਸਟ ਕਰੋ" #~ msgid "C_heck in" #~ msgstr "ਚੈਕ ਇਨ(_h)" #~ msgid "Everyone" #~ msgstr "ਹਰੇਕ" #~ msgid "Friends of friends" #~ msgstr "ਦੋਸਤਾਂ ਦੇ ਦੋਸਤ" #~ msgid "Just friends" #~ msgstr "ਕੇਵਲ ਦੋਸਤ" #~ msgid "Just me" #~ msgstr "ਕੇਵਲ ਮੈਂ" #~ msgid "Public" #~ msgstr "ਪਬਲਿਕ" #~ msgid "Private" #~ msgstr "ਪ੍ਰਾਈਵੇਟ" #~ msgid "Include route and markers" #~ msgstr "ਰੂਟਾਂ ਅਤੇ ਚਿੰਨ੍ਹਾਂ ਸਮੇਤ" #~ msgid "Go to current location" #~ msgstr "ਮੌਜੂਦਾ ਟਿਕਾਣੇ ਉੱਤੇ ਜਾਓ" #~ msgid "Choose map type" #~ msgstr "ਨਕਸ਼ਾ ਕਿਸਮ ਚੁਣੋ" #~ msgid "Zoom in" #~ msgstr "ਜ਼ੂਮ ਇਨ" #~ msgid "Night Mode" #~ msgstr "ਗੂੜ੍ਹਾ ਢੰਗ" #~ msgid "Maps is offline!" #~ msgstr "ਨਕਸ਼ੇ ਆਫਲਾਈਨ ਹਨ!" #~ msgid "" #~ "Maps need an active internet connection to function properly, but one " #~ "can’t be found." #~ msgstr "" #~ "ਨਕਸ਼ੇ ਨੂੰ ਠੀਕ ਤਰ੍ਹਾਂ ਕੰਮ ਕਰਨ ਲਈ ਸਰਗਰਮ ਇੰਟਰਨੈਟ ਕਨੈਕਸ਼ਨ ਦੀ ਦੀ ਲੋੜ ਹੈ, ਪਰ ਇਹ ਮਿਲਿਆ ਨਹੀਂ।" #~ msgid "Check your connection and proxy settings." #~ msgstr "ਆਪਣੇ ਕਨੈਕਸ਼ਨ ਤੇ ਪਰਾਕਸੀ ਸੈਟਿੰਗ ਦੀ ਜਾਂਚ ਕਰੋ।" #~ msgid "Password" #~ msgstr "ਪਾਸਵਰਡ" #~ msgid "Sign up" #~ msgstr "ਸਾਇਨ ਅੱਪ" #~ msgid "" #~ "Sorry, that didn’t work. Please try again, or visit\n" #~ "OpenStreetMap to reset your password." #~ msgstr "" #~ "ਅਫਸੋਸ, ਇਹ ਕੰਮ ਨਹੀਂ ਕਰਦਾ ਹੈ। ਬਾਅਦ 'ਚ ਕੋਸ਼ਿਸ਼ ਕਰੋ ਜਾਂ ਆਪਣੇ ਪਾਸਵਰਡ ਨੂੰ ਮੁੜ-ਸੈੱਟ ਕਰਨ ਲਈ \n" #~ "OpenStreetMap ਨੂੰ ਖੋਲ੍ਹੋ।" #~ msgid "Drag to change order of the route" #~ msgstr "ਰੂਟ ਦਾ ਕ੍ਰਮ ਬਦਲਣ ਲਈ ਖਿੱਚੋ" #~ msgid "Check In…" #~ msgstr "ਚੈਕ ਇਨ…" #~ msgid "Ignore network availability" #~ msgstr "ਨੈੱਟਵਰਕ ਉਪਲਬਟਾ ਨੂੰ ਅਣਡਿੱਠਾ ਕਰੋ" #~ msgid "Select an account" #~ msgstr "ਖਾਤੇ ਨੂੰ ਚੁਣੋ" #~ msgid "Loading" #~ msgstr "ਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ" #~ msgid "" #~ "Maps cannot find the place to check in to with Facebook. Please select " #~ "one from this list." #~ msgstr "ਨਕਸ਼ੇ ਫੇਸਬੁੱਕ ਵਿੱਚ ਚੈਕਇਨ ਕਰਨ ਲਈ ਸਥਾਨ ਲੱਭੀ ਨਹੀਂ ਸਕੇ। ਕਿਰਪਾ ਕਰਕੇ ਇਹ ਸੂਚੀ ਵਿੱਚੋਂ ਚੁਣੋ।" #~ msgid "" #~ "Maps cannot find the place to check in to with Foursquare. Please select " #~ "one from this list." #~ msgstr "" #~ "ਨਕਸ਼ੇ ਫੋਰਸਕਿਉਰ ਵਿੱਚ ਚੈਕਇਨ ਕਰਨ ਲਈ ਸਥਾਨ ਲੱਭੀ ਨਹੀਂ ਸਕੇ। ਕਿਰਪਾ ਕਰਕੇ ਇਹ ਸੂਚੀ ਵਿੱਚੋਂ ਚੁਣੋ।" #, javascript-format #~ msgid "Check in to %s" #~ msgstr "%s ਲਈ ਚੈਕ ਇਨ" #, javascript-format #~ msgid "Write an optional message to check in to %s." #~ msgstr "%s ਵਿੱਚ ਚੈਕ ਇਨ ਕਰਨ ਲਈ ਚੋਣਵਾਂ ਸੁਨੇਹਾ ਲਿਖੋ।" #, javascript-format #~ msgid "Cannot find “%s” in the social service" #~ msgstr "ਸਮਾਜਿਕ ਸੇਵਾ ਵਿੱਚ “%s“ ਲੱਭਿਆ ਨਹੀਂ ਜਾ ਸਕਦਾ" #~ msgid "Cannot find a suitable place to check-in in this location" #~ msgstr "ਇਹ ਟਿਕਾਣੇ ਵਿੱਚ ਚੈਕ-ਇਨ ਕਰਨ ਲਈ ਢੁੱਕਵਾਂ ਸਥਾਨ ਲੱਭਿਆ ਨੀਹਂ ਜਾ ਸਕਦਾ" #~ msgid "" #~ "Credentials have expired, please open Online Accounts to sign in and " #~ "enable this account" #~ msgstr "" #~ "ਸਨਦ ਦੀ ਮਿਆਦ ਪੁੱਗੀ, ਕਿਰਪਾ ਕਰਕੇ ਸਾਇਨ ਇਨ ਕਰਨ ਤੇ ਇਹ ਖਾਤੇ ਨੂੰ ਸਮਰੱਥ ਕਰਨ ਲਈ ਆਨਲਾਈਨ " #~ "ਖਾਤਿਆਂ ਨੂੰ ਖੋਲ੍ਹੋ।" #~ msgid "" #~ "Location was added to the map, note that it may take a while before it " #~ "shows on the map and in search results." #~ msgstr "" #~ "ਟਿਕਾਣੇ ਨੂੰ ਨਕਸ਼ੇ ਉੱਤੇ ਜੋੜਿਆ ਗਿਆ, ਯਾਦ ਰੱਖੋ ਕਿ ਇਸ ਨੂੰ ਨਕਸ਼ੇ ਉੱਤੇ ਅਤੇ ਖੋਜ ਨਤੀਜਿਆਂ ਵਿੱਚ ਆਉਣ ਲਈ ਕੁਝ " #~ "ਸਮਾਂ ਲੱਗ ਸਕਦਾ ਹੈ।" #~ msgid "Filesystem is read only" #~ msgstr "ਫਾਇਲ-ਸਿਸਟਮ ਕੇਵਲ ਪੜ੍ਹਨ ਲਈ ਹੈ" #~ msgid "You do not have permission to save there" #~ msgstr "ਤੁਹਾਡੇ ਕੋਲ ਉੱਥੇ ਸੰਭਾਲਣ ਲਈ ਅਧਿਕਾਰ ਨਹੀਂ ਹਨ" #~ msgid "The directory does not exist" #~ msgstr "ਡਾਇਰੈਕਟਰੀ ਮੌਜੂਦ ਨਹੀਂ ਹੈ" #~ msgid "No filename specified" #~ msgstr "ਕੋਈ ਫਾਇਲ-ਨਾਂ ਨਹੀਂ ਦਿੱਤਾ" #~ msgid "A map application for GNOME" #~ msgstr "ਗਨੋਮ ਲਈ ਨਕਸ਼ਾ ਐਪਲੀਕੇਸ਼ਨ" #~ msgid "Check in here" #~ msgstr "ਇੱਥੇ ਚੈਕ ਇਨ ਕਰੋ" #~| msgid "Don't have an account?" #~ msgid "Don’t have an account?" #~ msgstr "ਖਾਤਾ ਨਹੀਂ ਹੈ?" #~ msgid "Population:" #~ msgstr "ਆਬਾਦੀ:" #~ msgid "Altitude:" #~ msgstr "ਉਚਾਈ:" #~ msgid "Opening hours:" #~ msgstr "ਖੁੱਲ੍ਹਣ ਦਾ ਸਮਾਂ:" #~ msgid "Internet access:" #~ msgstr "ਇੰਟਰਨੈੱਟ ਪਹੁੰਚ:" #~ msgid "Toilets:" #~ msgstr "ਗੁਸਲਖਾਨੇ:" #~ msgid "Wheelchair access:" #~ msgstr "ਵੀਲ-ਚੇਅਰ ਪਹੁੰਚ:" #~ msgid "Phone:" #~ msgstr "ਫ਼ੋਨ:" #~ msgid "yes" #~ msgstr "ਹਾਂ" #~ msgid "limited" #~ msgstr "ਸੀਮਿਤ" #~ msgid "no" #~ msgstr "ਨਹੀਂ" #~ msgid "designated" #~ msgstr "ਮਕਸਦ" #~| msgid "OpenStreetMap Account" #~ msgid "OpenStreetMap URL is not valid" #~ msgstr "OpenStreetMap URL ਵਾਜਬ ਨਹੀਂ ਹੈ" #~ msgctxt "time range list" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgctxt "time range component" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgid "wired" #~ msgstr "ਤਾਰ ਵਾਲਾ" #~ msgid "terminal" #~ msgstr "ਟਰਮੀਨਲ" #~ msgid "service" #~ msgstr "ਸੇਵਾ" #~ msgid "%f h" #~ msgstr "%f h" #~ msgid "%f min" #~ msgstr "%f ਮਿੰਟ" #~ msgid "%f s" #~ msgstr "%f ਸ" #~ msgid "Quit" #~ msgstr "ਬਾਹਰ" #~ msgid "Load Map Layer" #~ msgstr "ਨਕਸ਼ੇ ਦੀ ਪਰਤ ਨੂੰ ਲੋਡ ਕਰੋ" #~ msgid "Open with another application" #~ msgstr "ਹੋਰ ਐਪਲੀਕੇਸ਼ਨ ਨਾਲ ਖੋਲ੍ਹੋ" #~ msgid "Press enter to search" #~ msgstr "ਖੋਜ ਕਰਨ ਲਈ ਐਂਟਰ ਦਬਾਉ" #~ msgid "OK" #~ msgstr "ਠੀਕ ਹੈ" #~ msgid "%f km" #~ msgstr "%f km" #~ msgid "%f m" #~ msgstr "%f m" #~ msgid "%f mi" #~ msgstr "%f ਮੀਲ" #~ msgid "%f ft" #~ msgstr "%f ਫੁੱਟ" #~ msgid "Country code: %s" #~ msgstr "ਦੇਸ਼ ਕੋਡ: %s" #~ msgid "Last known location and accuracy" #~ msgstr "ਆਖਰੀ ਜਾਣਿਆ ਟਿਕਾਣਾ ਤੇ ਸ਼ੁੱਧਤਾ" #~ msgid "" #~ "Last known location (latitude and longitude in degrees) and accuracy (in " #~ "meters)." #~ msgstr "ਆਖਰੀ ਜਾਣਿਆ ਟਿਕਾਣਾ (ਲੰਬਕਾਰ ਤੇ ਵਿਸਥਾਰ ਡਿਗਰੀਆਂ ਵਿੱਚ) ਤੇ ਸ਼ੁੱਧਤਾ (ਮੀਟਰਾਂ ਵਿੱਚ)" #~ msgid "Description of last known location of user." #~ msgstr "ਯੂਜ਼ਰ ਦੇ ਆਖਰੀ ਜਾਣੇ ਟਿਕਾਣੇ ਦਾ ਵੇਰਵਾ" #~ msgid "Whether the last known location was set manually by the user." #~ msgstr "ਕੀ ਆਖਰੀ ਜਾਣਿਆ ਟਿਕਾਣਾ ਯੂਜ਼ਰ ਵਲੋਂ ਖੁਦ ਤਹਿ ਕੀਤਾ ਸੀ।" #~ msgid "I’m here!" #~ msgstr "ਮੈਂ ਇੱਥੇ ਹਾਂ!" #~| msgid " km²" #~ msgid "%f km²" #~ msgstr "%f km²" #~ msgid "Satellite" #~ msgstr "ਸੈਟੇਲਾਈਟ" #~ msgid " km2" #~ msgstr " km2" 070701000001DE000081A4000000000000000000000001664134090000E219000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/pl.po# Polish translation for gnome-maps. # Copyright © 2013-2024 the gnome-maps authors. # This file is distributed under the same license as the gnome-maps package. # Piotr Drąg , 2013-2024. # Paweł Żołnowski , 2014-2015. # Aviary.pl , 2013-2024. # msgid "" msgstr "" "Project-Id-Version: gnome-maps\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2024-03-09 17:19+0000\n" "PO-Revision-Date: 2024-03-10 14:27+0100\n" "Last-Translator: Piotr Drąg \n" "Language-Team: Polish \n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.appdata.xml.in.in:6 data/org.gnome.Maps.desktop.in.in:4 #: data/ui/main-window.ui:27 src/application.js:64 src/mainWindow.js:147 #: src/mainWindow.js:647 msgid "Maps" msgstr "Mapy" #: data/org.gnome.Maps.appdata.xml.in.in:7 msgid "Find places around the world" msgstr "Wyszukiwanie miejsc na świecie" #: data/org.gnome.Maps.appdata.xml.in.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "Mapy zapewniają szybki dostęp do map całego świata oraz umożliwiają szybkie " "wyszukiwanie miejsc według miast i ulic. Pomogą również ustalić miejsce " "spotkania z przyjaciółmi." #: data/org.gnome.Maps.appdata.xml.in.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "Mapy udostępniane są przez projekt OpenStreetMap, który jest tworzony przez " "setki tysięcy ludzi z całego świata." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Maps.appdata.xml.in.in:458 src/mainWindow.js:644 msgid "The GNOME Project" msgstr "Projekt GNOME" #: data/org.gnome.Maps.desktop.in.in:5 msgid "A simple maps application" msgstr "Prosty program do wyświetlania map" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in.in:14 msgid "Maps;" msgstr "" "Mapy;Mapa;Satelita;Satelitarna;Położenie;Lokalizacja;Współrzędne;Geografia;" "Geograficzne;GPS;Ulica;Miasto;Województwo;Kraj;Państwo;Dojazd;Gdzie jestem;" "Jak dojechać;Jak dojadę;Trasa;Trasy;Wycieczka;Wycieczki;Planowanie;Autobusy;" "Tramwaje;Pociągi;Metro;Promy;OpenStreetMap;OpenTripPlanner;Foursquare;" "Meldowanie;Zamelduj się;" #: data/org.gnome.Maps.desktop.in.in:17 msgid "Allows your location to be shown on the map." msgstr "Umożliwia wyświetlenie położenia użytkownika na mapie." #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "ostatnio wyświetlane położenie" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "Współrzędne ostatnio wyświetlanego położenia." #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "powiększenie" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "Poziom powiększenia" #: data/org.gnome.Maps.gschema.xml:21 msgid "rotation" msgstr "obrót" #: data/org.gnome.Maps.gschema.xml:22 msgid "Map rotation in radians" msgstr "Obrót mapy w radianach" #: data/org.gnome.Maps.gschema.xml:26 msgid "Map type" msgstr "Typ mapy" #: data/org.gnome.Maps.gschema.xml:27 msgid "The type of map to display (street, aerial, etc.)" msgstr "Typ wyświetlanej mapy (zwykła, satelitarna itp.)" #: data/org.gnome.Maps.gschema.xml:31 msgid "Window size" msgstr "Rozmiar okna" #: data/org.gnome.Maps.gschema.xml:32 msgid "Window size (width and height)." msgstr "Rozmiar okna (szerokość i wysokość)." #: data/org.gnome.Maps.gschema.xml:36 msgid "Window position" msgstr "Położenie okna" #: data/org.gnome.Maps.gschema.xml:37 msgid "Window position (X and Y)." msgstr "Położenie okna (na osi X i Y)." #: data/org.gnome.Maps.gschema.xml:41 msgid "Window maximized" msgstr "Maksymalizacja okna" #: data/org.gnome.Maps.gschema.xml:42 msgid "Window maximization state" msgstr "Stan maksymalizacji okna" #: data/org.gnome.Maps.gschema.xml:46 msgid "Maximum number of search results" msgstr "Maksymalna liczba wyników wyszukiwania" #: data/org.gnome.Maps.gschema.xml:47 msgid "Maximum number of search results from geocode search." msgstr "Maksymalna liczba wyników wyszukiwania geocode." #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent places to store" msgstr "Liczba ostatnich miejsc do zapamiętania" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited places to store." msgstr "Liczba ostatnio odwiedzonych miejsc do zapamiętania." #: data/org.gnome.Maps.gschema.xml:56 msgid "Number of recent routes to store" msgstr "Liczba ostatnich tras do zapamiętania" #: data/org.gnome.Maps.gschema.xml:57 msgid "Number of recently visited routes to store." msgstr "Liczba ostatnio odwiedzonych tras do zapamiętania." #: data/org.gnome.Maps.gschema.xml:61 msgid "OpenStreetMap username or email address" msgstr "Nazwa użytkownika lub adres e-mail w serwisie OpenStreetMap" #: data/org.gnome.Maps.gschema.xml:62 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "Czy użytkownik jest zalogowany, aby modyfikować dane OpenStreetMap." #: data/org.gnome.Maps.gschema.xml:66 msgid "Last used transportation type for routing" msgstr "Ostatnio używany typ transportu dla tras" #: data/org.gnome.Maps.gschema.xml:70 msgid "Show scale" msgstr "Podziałka" #: data/org.gnome.Maps.gschema.xml:71 msgid "Whether to show the scale." msgstr "Czy wyświetlać podziałkę." #: data/ui/context-menu.ui:6 msgid "Route from Here" msgstr "Trasa stąd" #: data/ui/context-menu.ui:10 msgid "Add Intermediate Destination" msgstr "Dodaj cel pośredni" #: data/ui/context-menu.ui:14 msgid "Route to Here" msgstr "Trasa dotąd" #: data/ui/context-menu.ui:20 msgid "What's Here?" msgstr "Co tutaj jest?" #: data/ui/context-menu.ui:24 msgid "Copy Location" msgstr "Skopiuj położenie" #: data/ui/context-menu.ui:28 msgid "Add to OpenStreetMap…" msgstr "Dodaj do serwisu OpenStreetMap…" #: data/ui/export-view-dialog.ui:7 msgid "Export view" msgstr "Eksport widoku" #: data/ui/export-view-dialog.ui:16 data/ui/send-to-dialog.ui:10 #: data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "_Anuluj" #: data/ui/export-view-dialog.ui:26 msgid "_Export" msgstr "Wy_eksportuj" #. Translators: This is a tooltip #: data/ui/favorite-list-row.ui:72 msgid "Remove Favorite" msgstr "Usuwa z listy ulubionych" #: data/ui/favorites-popover.ui:11 msgid "No Favorites" msgstr "Brak ulubionych" #: data/ui/favorites-popover.ui:12 msgid "Add places to your favorites to get them listed here" msgstr "" "Dodanie miejsc do listy ulubionych spowoduje ich wyświetlanie w tym miejscu" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:11 src/geoclue.js:106 src/placeBar.js:91 msgid "Current Location" msgstr "Obecne położenie" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:19 msgid "Layers" msgstr "Warstwy" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:11 msgid "Print Route" msgstr "Drukuje trasę" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:21 msgid "Favorites" msgstr "Ulubione" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:30 msgid "Route Planner" msgstr "Planowanie trasy" #: data/ui/help-overlay.ui:12 msgctxt "shortcut window" msgid "General" msgstr "Ogólne" #: data/ui/help-overlay.ui:15 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "Wyświetlenie skrótów" #: data/ui/help-overlay.ui:21 msgctxt "shortcut window" msgid "Search" msgstr "Wyszukiwanie" #: data/ui/help-overlay.ui:27 msgctxt "shortcut window" msgid "Explore points-of-interest" msgstr "Odkrywanie użytecznych miejsc" #: data/ui/help-overlay.ui:33 msgctxt "shortcut window" msgid "Show last search results" msgstr "Wyświetlenie ostatnich wyników wyszukiwania" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "Przełączenie planowania trasy" #: data/ui/help-overlay.ui:45 msgctxt "shortcut window" msgid "Print route" msgstr "Wydrukowanie trasy" #: data/ui/help-overlay.ui:51 msgctxt "shortcut window" msgid "Quit" msgstr "Zakończenie działania" #: data/ui/help-overlay.ui:57 msgctxt "shortcut window" msgid "Open main menu" msgstr "Otwarcie menu głównego" #: data/ui/help-overlay.ui:65 msgctxt "shortcut window" msgid "Map View" msgstr "Widok mapy" #: data/ui/help-overlay.ui:68 msgctxt "shortcut window" msgid "Zoom in" msgstr "Powiększenie" #: data/ui/help-overlay.ui:74 msgctxt "shortcut window" msgid "Zoom out" msgstr "Pomniejszenie" #: data/ui/help-overlay.ui:80 msgctxt "shortcut window" msgid "Rotate clockwise" msgstr "Obrócenie w prawo" #: data/ui/help-overlay.ui:86 msgctxt "shortcut window" msgid "Rotate counter-clockwise" msgstr "Obrócenie w lewo" #: data/ui/help-overlay.ui:92 msgctxt "shortcut window" msgid "Reset rotation" msgstr "Przywrócenie obrotu" #: data/ui/help-overlay.ui:98 msgctxt "shortcut window" msgid "Toggle scale" msgstr "Przełączenie podziałki" #: data/ui/help-overlay.ui:104 msgctxt "shortcut window" msgid "Go to current location" msgstr "Przejście do obecnego położenia" #: data/ui/help-overlay.ui:114 msgctxt "shortcut window" msgid "Switch to street view" msgstr "Przełączenie na widok mapy" #: data/ui/help-overlay.ui:121 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "Przełączenie na widok satelitarny" #: data/ui/help-overlay.ui:127 msgctxt "shortcut window" msgid "Open shape layer" msgstr "Otwarcie warstwy figur" #: data/ui/layers-popover.ui:7 msgid "Show Scale" msgstr "Podziałka" #: data/ui/layers-popover.ui:16 msgid "Enable Experimental Map" msgstr "Mapa eksperymentalna" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:21 msgid "Open Shape Layer…" msgstr "Otwórz warstwę figur…" #: data/ui/main-window.ui:8 msgid "Set up OpenStreetMap Account…" msgstr "Ustaw konto serwisu OpenStreetMap…" #: data/ui/main-window.ui:12 msgid "Export as Image…" msgstr "Wyeksportuj jako obraz…" #: data/ui/main-window.ui:17 msgid "_Keyboard Shortcuts" msgstr "_Skróty klawiszowe" #: data/ui/main-window.ui:22 msgid "About Maps" msgstr "O programie" #: data/ui/main-window.ui:48 msgid "Main Menu" msgstr "Menu główne" #: data/ui/osm-account-dialog.ui:5 msgid "OpenStreetMap Account" msgstr "Konto serwisu OpenStreetMap" #: data/ui/osm-account-dialog.ui:31 msgid "Sign In To Edit Maps" msgstr "Zalogowanie umożliwia modyfikowanie map" #: data/ui/osm-account-dialog.ui:32 msgid "Help to improve the map, using an OpenStreetMap account." msgstr "Można pomóc ulepszyć mapę za pomocą konta serwisu OpenStreetMap." #: data/ui/osm-account-dialog.ui:36 msgid "Sign In" msgstr "Zaloguj się" #: data/ui/osm-account-dialog.ui:59 msgid "Verification" msgstr "Weryfikacja" #: data/ui/osm-account-dialog.ui:60 msgid "" "Copy the verification code shown when authorizing access in the browser." msgstr "" "Proszę skopiować kod weryfikacji wyświetlony podczas upoważniania dostępu " "w przeglądarce." #: data/ui/osm-account-dialog.ui:69 msgid "Verification Code" msgstr "Kod weryfikacji" #: data/ui/osm-account-dialog.ui:75 msgid "Verify" msgstr "Weryfikuj" #: data/ui/osm-account-dialog.ui:110 msgid "Signed In" msgstr "Zalogowano" #: data/ui/osm-account-dialog.ui:111 msgid "Your OpenStreetMap account is active." msgstr "Konto serwisu OpenStreetMap jest aktywne." #: data/ui/osm-account-dialog.ui:129 msgid "Sign Out" msgstr "Wyloguj się" #: data/ui/osm-edit-address.ui:11 msgid "Street" msgstr "Ulica" #: data/ui/osm-edit-address.ui:22 msgid "House number" msgstr "Numer domu" #: data/ui/osm-edit-address.ui:33 msgid "Postal code" msgstr "Kod pocztowy" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:44 msgid "City" msgstr "Miasto" #: data/ui/osm-edit-dialog.ui:8 msgctxt "dialog title" msgid "Edit on OpenStreetMap" msgstr "Modyfikacja w serwisie OpenStreetMap" #: data/ui/osm-edit-dialog.ui:57 msgid "Type" msgstr "Typ" #: data/ui/osm-edit-dialog.ui:79 msgid "None" msgstr "Brak" #: data/ui/osm-edit-dialog.ui:108 msgid "Add Field" msgstr "Dodaj pole" #: data/ui/osm-edit-dialog.ui:130 msgid "Comment" msgstr "Komentarz" #: data/ui/osm-edit-dialog.ui:158 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "Zmiany mapy będą widoczne na wszystkich mapach\n" "używających danych serwisu OpenStreetMap." #: data/ui/osm-edit-dialog.ui:186 msgid "Recently Used" msgstr "Ostatnio używane" #: data/ui/osm-edit-dialog.ui:225 src/mapView.js:671 msgid "Cancel" msgstr "Anuluj" #: data/ui/osm-edit-dialog.ui:238 src/osmEditDialog.js:531 msgid "Next" msgstr "Dalej" #: data/ui/osm-edit-wikipedia.ui:8 msgid "Article" msgstr "Artykuł" #: data/ui/osm-edit-wikipedia.ui:21 msgid "Wikidata tag" msgstr "Znacznik Wikidata" #: data/ui/osm-edit-wikipedia.ui:32 msgid "Load Wikidata tag for article" msgstr "Wczytuje znacznik Wikidata dla artykułu" #: data/ui/place-popover.ui:23 src/searchBar.js:55 msgid "Explore Nearby Places" msgstr "Odkrywaj miejsca w pobliżu" #: data/ui/place-popover.ui:82 src/application.js:277 msgid "No results found" msgstr "Brak wyników" #: data/ui/place-popover.ui:92 src/application.js:255 msgid "An error has occurred" msgstr "Wystąpił błąd" #. Translators: This is a tooltip #: data/ui/route-entry.ui:12 msgid "Change Route Order" msgstr "Zmienia kolejność trasy" #: data/ui/send-to-dialog.ui:7 msgid "Open Location" msgstr "Otwarcie położenia" #: data/ui/send-to-dialog.ui:64 msgid "Copy" msgstr "Skopiuj" #: data/ui/send-to-dialog.ui:70 msgid "Send To…" msgstr "Wyślij do…" #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:62 msgid "Open Shape Layer" msgstr "Otwarcie warstwy figur" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "_Otwórz" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:32 msgid "Toggle visible" msgstr "Przełącza widoczne" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:44 msgid "Remove Shape Layer" msgstr "Usuwa warstwę figur" #: data/ui/sidebar.ui:207 msgid "Route search by GraphHopper" msgstr "Wyszukiwanie trasy za pomocą oprogramowania GraphHopper" #: data/ui/sidebar.ui:272 msgid "" "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of " "transportation,\n" "e.g. a national provider might not include airlines, and a local provider " "could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" "Trasy transportu publicznego są dostarczane przez zewnętrzne serwisy.\n" "Projekt GNOME nie gwarantuje prawidłowości wyświetlanych rozkładów.\n" "Proszę zauważyć, że część dostawców może nie podawać wszystkich dostępnych\n" "środków transportu, np. krajowy dostawca może nie podawać lotów, a lokalny\n" "może nie podawać pociągów regionalnych.\n" "Widoczne nazwy i marki są zastrzeżonymi znakami towarowymi ich właścicieli." #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:98 msgid "Hide intermediate stops and information" msgstr "Ukrywa przystanki pośrednie i informacje" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:156 msgid "Show intermediate stops and information" msgstr "Wyświetla przystanki pośrednie i informacje" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:16 msgid "Leave Now" msgstr "Wyjście teraz" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:17 msgid "Leave By" msgstr "Wyjście przed" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:18 msgid "Arrive By" msgstr "Przybycie przed" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:85 msgid "Show" msgstr "Wyświetlanie" #: data/ui/transit-options-panel.ui:95 msgid "Buses" msgstr "Autobusy" #: data/ui/transit-options-panel.ui:101 msgid "Trams" msgstr "Tramwaje" #: data/ui/transit-options-panel.ui:107 msgid "Trains" msgstr "Pociągi" #: data/ui/transit-options-panel.ui:113 msgid "Subway" msgstr "Metro" #: data/ui/transit-options-panel.ui:119 msgid "Ferries" msgstr "Promy" #: data/ui/transit-options-panel.ui:125 msgid "Airplanes" msgstr "Loty" #. Translators: This is a tooltip #: data/ui/place-bar.ui:33 data/ui/place-buttons.ui:27 msgid "Share Location" msgstr "Udostępnia położenie" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:11 msgid "Add to new route" msgstr "Dodaje do nowej trasy" #. Translators: This is the button to find a route to a place #: data/ui/place-buttons.ui:15 msgid "Directions" msgstr "Wskazówki dojazdu" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:36 msgid "Mark as Favorite" msgstr "Oznacza jako ulubione" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:44 msgid "Edit on OpenStreetMap" msgstr "Modyfikuje w serwisie OpenStreetMap" #. Translators: This is a tooltip #: data/ui/place-view.ui:52 msgid "Share location" msgstr "Udostępnia położenie" #: data/ui/poi-category-goback-row.ui:22 msgid "Back to Main Categories" msgstr "Wróć do głównych kategorii" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:19 msgid "Reset Rotation" msgstr "Przywraca obrót" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:32 msgid "Zoom Out" msgstr "Pomniejsz" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:43 src/mapView.js:1246 msgid "Zoom In" msgstr "Powiększ" #: lib/maps-file-data-source.c:262 lib/maps-file-data-source.c:338 #: lib/maps-file-data-source.c:418 msgid "Failed to find tile structure in directory" msgstr "Odnalezienie struktury kafli w katalogu się nie powiodło" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "Przetworzenie dokumentu XML się nie powiodło" #: lib/maps-osm.c:250 lib/maps-osm.c:403 msgid "Missing required attributes" msgstr "Brak wymaganych atrybutów" #: lib/maps-osm.c:451 lib/maps-osm.c:494 msgid "Could not find OSM element" msgstr "Nie można odnaleźć elementu OSM" #: lib/maps-osm.c:508 msgid "Could not find user element" msgstr "Nie można odnaleźć elementu użytkownika" #: src/application.js:78 msgid "A path to a local tiles directory structure" msgstr "Ścieżka do lokalnej struktury katalogów kafli" #: src/application.js:84 msgid "Tile size for local tiles directory" msgstr "Rozmiar kafli dla katalogu lokalnych kafli" #: src/application.js:88 msgid "Show the version of the program" msgstr "Wyświetla wersję programu" #: src/application.js:94 msgid "Search for places" msgstr "Wyszukuje miejsca" #: src/application.js:105 src/application.js:106 msgid "[FILE…|URI]" msgstr "[PLIK…|URI]" #: src/application.js:284 #, javascript-format msgid "Invalid maps: URI: %s" msgstr "Nieprawidłowy adres URI „maps:”: %s" #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:75 #, javascript-format msgid "Maps at %f, %f.png" msgstr "Mapa dla %f, %f.png" #: src/exportViewDialog.js:174 msgid "Unable to export view" msgstr "Nie można wyeksportować widoku" #: src/favoriteListRow.js:42 msgid "Favorite removed" msgstr "Usunięto z listy ulubionych" #: src/favoriteListRow.js:43 msgid "Undo" msgstr "Cofnij" #: src/geoJSONSource.js:73 msgid "invalid coordinate" msgstr "nieprawidłowe współrzędne" #: src/geoJSONSource.js:126 src/geoJSONSource.js:166 src/geoJSONSource.js:181 msgid "parse error" msgstr "błąd przetwarzania" #: src/geoJSONSource.js:160 msgid "unknown geometry" msgstr "nieznana geometria" #: src/graphHopper.js:101 src/transitPlan.js:175 msgid "Route request failed." msgstr "Żądanie trasy się nie powiodło." #: src/graphHopper.js:108 src/transitPlan.js:167 msgid "No route found." msgstr "Nie odnaleziono żadnej trasy." #: src/graphHopper.js:195 src/transitplugins/openTripPlanner.js:1163 msgid "Start!" msgstr "Start!" #: src/mainWindow.js:59 msgid "All Layer Files" msgstr "Wszystkie pliki warstw" #: src/mainWindow.js:522 msgid "Failed to connect to location service" msgstr "Połączenie z usługą położenia się nie powiodło" #: src/mainWindow.js:527 msgid "Turn on location services" msgstr "Proszę włączyć usługi położenia" #: src/mainWindow.js:528 msgid "Location Settings" msgstr "Ustawienia położenia" #: src/mainWindow.js:645 msgid "translator-credits" msgstr "" "Piotr Drąg , 2013-2024\n" "Paweł Żołnowski , 2014-2015\n" "Aviary.pl , 2013-2024" #: src/mainWindow.js:649 msgid "Copyright © 2011 – 2023 Red Hat, Inc. and The GNOME Maps authors" msgstr "Copyright © 2011-2023 Red Hat, Inc. i autorzy Map GNOME" #: src/mainWindow.js:665 #, javascript-format msgid "Map data by %s and contributors" msgstr "Dane mapy autorstwa %s i współtwórców" #: src/mainWindow.js:666 msgid "Map Data Provider" msgstr "Dostawca danych mapy" #: src/mainWindow.js:678 msgid "Map Tile Provider" msgstr "Dostawca mapy" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:686 #, javascript-format msgid "Map tiles provided by %s" msgstr "Mapa dostarczana przez %s" #: src/mainWindow.js:716 msgid "Search Provider" msgstr "Dostawca funkcji wyszukiwania" #: src/mainWindow.js:719 #, javascript-format msgid "Search provided by %s using %s" msgstr "Funkcja wyszukiwania dostarczana przez %s za pomocą %s" #: src/mapView.js:645 src/mapView.js:710 msgid "Failed to open layer" msgstr "Otwarcie warstwy się nie powiodło" #: src/mapView.js:664 msgid "Do you want to continue?" msgstr "Kontynuować?" #: src/mapView.js:665 #, javascript-format msgid "" "You are about to open files with a total size of %s MB. This could take some " "time to load" msgstr "" "Zostaną otwarte pliki o całkowitym rozmiarze %s MB. Wczytanie ich może " "potrwać trochę czasu." #: src/mapView.js:672 src/transitplugins/openTripPlanner.js:1239 #: src/transitplugins/openTripPlanner2.js:267 msgid "Continue" msgstr "Kontynuuj" #: src/mapView.js:704 msgid "File type is not supported" msgstr "Typ pliku jest nieobsługiwany" #: src/mapView.js:741 msgid "Failed to open GeoURI" msgstr "Otwarcie adresu GeoURI się nie powiodło" #: src/mapView.js:1205 msgid "Nothing found here!" msgstr "Nic tu nie odnaleziono." #: src/mapView.js:1245 msgid "Zoom in to add location" msgstr "Należy powiększyć, aby dodać położenie" #: src/mapView.js:1266 msgid "Location was added in OpenStreetMap" msgstr "Położenie zostało dodane do serwisu OpenStreetMap" #. switch back to the sign-in view, and show a toast indicating #. that verification failed #: src/osmAccountDialog.js:134 msgid "The verification code didn’t match, please try again." msgstr "Kod weryfikacyjny się nie zgadza. Proszę spróbować ponownie." #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:335 msgid "Incorrect user name or password" msgstr "Niepoprawna nazwa użytkownika lub hasło" #: src/osmConnection.js:337 msgid "Success" msgstr "Powodzenie" #: src/osmConnection.js:339 msgid "Bad request" msgstr "Błędne żądanie" #: src/osmConnection.js:341 msgid "Object not found" msgstr "Nie odnaleziono obiektu" #: src/osmConnection.js:343 msgid "Conflict, someone else has just modified the object" msgstr "Konflikt, ktoś inny właśnie zmodyfikował obiekt" #: src/osmConnection.js:345 msgid "Object has been deleted" msgstr "Usunięto obiekt" #: src/osmConnection.js:347 msgid "Way or relation refers to non-existing children" msgstr "Droga lub związek odnosi się do nieistniejących elementów potomnych" #: src/osmEditDialog.js:106 msgid "Name" msgstr "Nazwa" #: src/osmEditDialog.js:109 msgid "The official name. This is typically what appears on signs." msgstr "Oficjalna nazwa. Zwykle pojawia się na znakach." #: src/osmEditDialog.js:112 msgid "Address" msgstr "Adres" #: src/osmEditDialog.js:120 src/placeView.js:275 msgid "Website" msgstr "Strona WWW" #: src/osmEditDialog.js:124 msgid "This is not a valid URL. Make sure to include http:// or https://." msgstr "" "To nie jest prawidłowy adres URL. Proszę się upewnić, że zawiera on http:// " "lub https://." #: src/osmEditDialog.js:125 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" "Oficjalna strona WWW. Proszę używać najbardziej podstawowej formy adresu " "URL, tzn. „http://example.com” zamiast „http://example.com/index.html”." #: src/osmEditDialog.js:130 msgid "Phone" msgstr "Telefon" #: src/osmEditDialog.js:134 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" "Numer telefonu. Proszę używać formatu międzynarodowego, zaczynając znakiem " "„+”. Proszę przestrzegać lokalnych praw do prywatności, zwłaszcza w stosunku " "do prywatnych numerów telefonów." #: src/osmEditDialog.js:139 src/placeView.js:308 msgid "Email" msgstr "E-mail" #: src/osmEditDialog.js:144 msgid "" "This is not a valid email address. Make sure to not include the mailto: " "protocol prefix." msgstr "" "To nie jest prawidłowy adres e-mail. Proszę się upewnić, że nie zawiera on " "przedrostka protokołu mailto:." #: src/osmEditDialog.js:145 msgid "" "Contact email address for inquiries. Add only email addresses that are " "intended to be publicly used." msgstr "" "Kontaktowy adres e-mail w przypadku pytań. Tylko publicznie dostępne adresy " "e-mail." #. Translators: This is the text for the "Wikipedia" link at the end #. of summaries #: src/osmEditDialog.js:149 src/placeView.js:727 msgid "Wikipedia" msgstr "Wikipedia" #: src/osmEditDialog.js:156 src/placeView.js:399 msgid "Opening hours" msgstr "Godziny otwarcia" #: src/osmEditDialog.js:161 msgid "See the link in the label for help on format." msgstr "" "Więcej informacji o formacie znajduje się pod odnośnikiem na etykiecie." #. TODO: this is a bit of a work-around to re-interpret the population, #. * stored as a string into an integer to convert back to a locale- #. * formatted string. Ideally it should be kept as an integer value #. * in the Place class. But this will also need to be handled by the #. * PlaceStore, possible in a backwards-compatible way #. #: src/osmEditDialog.js:164 src/placeView.js:509 msgid "Population" msgstr "Liczba mieszkańców" #: src/osmEditDialog.js:169 src/placeView.js:538 msgid "Altitude" msgstr "Wysokość" #: src/osmEditDialog.js:172 msgid "Elevation (height above sea level) of a point in meters." msgstr "Wyniesienie (wysokość ponad poziomem morza) miejsca w metrach." #: src/osmEditDialog.js:175 msgid "Wheelchair access" msgstr "Dostęp dla osób na wózku" #: src/osmEditDialog.js:178 src/osmEditDialog.js:187 src/osmEditDialog.js:198 #: src/osmEditDialog.js:233 msgid "Yes" msgstr "Tak" #: src/osmEditDialog.js:179 src/osmEditDialog.js:188 src/osmEditDialog.js:199 #: src/osmEditDialog.js:234 msgid "No" msgstr "Nie" #: src/osmEditDialog.js:180 msgid "Limited" msgstr "Ograniczony" #: src/osmEditDialog.js:181 msgid "Designated" msgstr "Wyznaczony" #: src/osmEditDialog.js:184 msgid "Internet access" msgstr "Dostęp do Internetu" #: src/osmEditDialog.js:189 msgid "Wi-Fi" msgstr "Wi-Fi" #: src/osmEditDialog.js:190 msgid "Wired" msgstr "Przewodowy" #: src/osmEditDialog.js:191 msgid "Terminal" msgstr "Na miejscu" #: src/osmEditDialog.js:192 msgid "Service" msgstr "Obsługa" #: src/osmEditDialog.js:195 msgid "Takeout" msgstr "Na wynos" #: src/osmEditDialog.js:200 msgid "Only" msgstr "Wyłącznie" #: src/osmEditDialog.js:203 msgid "Religion" msgstr "Religia" #: src/osmEditDialog.js:206 src/translations.js:286 msgid "Animism" msgstr "Animizm" #: src/osmEditDialog.js:207 msgid "Bahá’í" msgstr "Bahaizm" #: src/osmEditDialog.js:208 src/translations.js:288 msgid "Buddhism" msgstr "Buddyzm" #: src/osmEditDialog.js:209 src/translations.js:289 msgid "Caodaism" msgstr "Kaodaizm" #: src/osmEditDialog.js:210 src/translations.js:290 msgid "Christianity" msgstr "Chrześcijaństwo" #: src/osmEditDialog.js:211 src/translations.js:291 msgid "Confucianism" msgstr "Konfucjanizm" #: src/osmEditDialog.js:212 src/translations.js:292 msgid "Hinduism" msgstr "Hinduizm" #: src/osmEditDialog.js:213 src/translations.js:293 msgid "Jainism" msgstr "Dźinizm" #: src/osmEditDialog.js:214 src/translations.js:294 msgid "Judaism" msgstr "Judaizm" #: src/osmEditDialog.js:215 src/translations.js:295 msgid "Islam" msgstr "Islam" #: src/osmEditDialog.js:216 src/translations.js:296 msgid "Multiple Religions" msgstr "Wiele religii" #: src/osmEditDialog.js:217 src/translations.js:297 msgid "Paganism" msgstr "Pogaństwo" #: src/osmEditDialog.js:218 src/translations.js:298 msgid "Pastafarianism" msgstr "Pastafarianizm" #: src/osmEditDialog.js:219 src/translations.js:299 msgid "Scientology" msgstr "Scjentologia" #: src/osmEditDialog.js:220 src/translations.js:300 msgid "Shinto" msgstr "Shintō" #: src/osmEditDialog.js:221 src/translations.js:301 msgid "Sikhism" msgstr "Sikhizm" #: src/osmEditDialog.js:222 src/translations.js:302 msgid "Spiritualism" msgstr "Spirytualizm" #: src/osmEditDialog.js:223 src/translations.js:303 msgid "Taoism" msgstr "Taoizm" #: src/osmEditDialog.js:224 src/translations.js:304 msgid "Unitarian Universalism" msgstr "Uniwersalizm unitariański" #: src/osmEditDialog.js:225 src/translations.js:305 msgid "Voodoo" msgstr "Voodoo" #: src/osmEditDialog.js:226 src/translations.js:306 msgid "Yazidism" msgstr "Jazydyzm" #: src/osmEditDialog.js:227 src/translations.js:307 msgid "Zoroastrianism" msgstr "Zaratusztrianizm" #: src/osmEditDialog.js:230 src/poiCategories.js:176 msgid "Toilets" msgstr "Toalety" #: src/osmEditDialog.js:237 msgid "Note" msgstr "Uwaga" #: src/osmEditDialog.js:240 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" "Używane do informowania innych twórców map o nieoczywistych informacjach " "o elemencie, intencjach autora przy jego tworzeniu lub wskazówkach na dalsze " "ulepszenia." #: src/osmEditDialog.js:339 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "Dodanie do serwisu OpenStreetMap" #: src/osmEditDialog.js:393 msgid "Select Type" msgstr "Wybór typu" #: src/osmEditDialog.js:515 msgid "Done" msgstr "Gotowe" #: src/osmEditDialog.js:818 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "" "Używany format powinien zawierać kod języka i tytuł artykułu, np. „pl:Tytuł " "artykułu”." #: src/osmEditDialog.js:824 msgid "Use the reload button to load the Wikidata tag for the selected article" msgstr "" "Proszę użyć przycisku „Wczytaj ponownie”, aby wczytać znacznik Wikidata dla " "zaznaczonego artykułu" #: src/osmEditDialog.js:832 msgid "Couldn't find Wikidata tag for article" msgstr "Nie można odnaleźć znacznika Wikidata dla artykułu" #: src/photonUtils.js:118 msgid "Unnamed place" msgstr "Miejsce bez nazwy" #: src/placeEntry.js:274 msgid "Failed to parse Geo URI" msgstr "Przetworzenie adresu URI „Geo” się nie powiodło" #: src/placeEntry.js:286 msgid "Failed to parse Maps URI" msgstr "Przetworzenie adresu URI „Maps” się nie powiodło" #. 300 ft (300 * 12 * 0.0254 m) #. #. * Translators: This a format string for showing a distance to a place #. * is lower than a "quite short" distance. #. * The "less than" symbol can be substituded with an appropriate one, if #. * needed (e.g. using the correct direction, or alternative symbol). #. * The %s should be kept, and is substituted with a label representing the #. * short distance. The \u2009 (thin space) could also be adjusted if needed #: src/placeListRow.js:46 #, javascript-format msgctxt "short distance format string" msgid "< %s" msgstr "< %s" #: src/placeView.js:263 msgid "Coordinates" msgstr "Współrzędne" #: src/placeView.js:267 msgid "Accuracy" msgstr "Dokładność" #. Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) #: src/placeView.js:270 #, javascript-format msgid "Accuracy: %s" msgstr "Dokładność: %s" #. since the phone numbers are typically always rendered #. * left-to-right, insert an explicit LRM char to avoid issues #. * with phone numbers in international format starting with a + #. * which is considered a "weak" character to determine Unicode #. * text direction #. #: src/placeView.js:289 msgid "Phone number" msgstr "Numer telefonu" #. If a reference to a named floor (named or symbolic) exists #. * refer to it directly. #. #. Translators: #. * This is a reference to named building floor, using a label #. * or a code, as "displayed in the elevator" #. #: src/placeView.js:323 src/placeView.js:362 msgid "Floor" msgstr "Piętro" #: src/placeView.js:325 #, javascript-format msgid "Floor %s" msgstr "%s. piętro" #: src/placeView.js:337 msgid "At ground level" msgstr "Na parterze" #. Translators: #. * This is a reference to a number of floors above #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:346 #, javascript-format msgid "%s floor above ground level" msgid_plural "%s floors above ground level" msgstr[0] "%s piętro nad parterem" msgstr[1] "%s piętra nad parterem" msgstr[2] "%s pięter nad parterem" #. Translators: #. * This is a reference to a number of floors below #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:357 #, javascript-format msgid "%s floor below ground level" msgid_plural "%s floors below ground level" msgstr[0] "%s piętro pod parterem" msgstr[1] "%s piętra pod parterem" msgstr[2] "%s pięter pod parterem" #. Translators: #. * The establishment offers customers to purchase meals #. * (or similar) to be consumed elsewhere #. #: src/placeView.js:375 msgid "Offers takeout" msgstr "Można zamawiać na wynos" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed on-premise. #. #: src/placeView.js:383 msgid "Does not offer takeout" msgstr "Nie można zamawiać na wynos" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed elsewhere. E.g. #. * there is no seating on-premise for eating/drinking #. #: src/placeView.js:392 msgid "Only offers takeout" msgstr "Można wyłącznie zamawiać na wynos" #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/placeView.js:409 msgid "Public internet access" msgstr "Publiczny dostęp do Internetu" #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/placeView.js:418 msgid "No internet access" msgstr "Brak dostępu do Internetu" #. Translators: #. * This means a WLAN Hotspot, also known as wireless, wifi or Wi-Fi. #. #: src/placeView.js:426 msgid "Public Wi-Fi" msgstr "Publiczna sieć Wi-Fi" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/placeView.js:434 msgid "Wired internet access" msgstr "Przewodowy dostęp do Internetu" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/placeView.js:442 msgid "Computers available for use" msgstr "Dostępne komputery do użytku" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/placeView.js:450 msgid "Internet assistance available" msgstr "Dostępne wsparcie przy korzystaniu z Internetu" #: src/placeView.js:456 msgid "No toilets available" msgstr "Brak dostępnych toalet" #: src/placeView.js:459 msgid "Toilets available" msgstr "Dostępne toalety" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #: src/placeView.js:468 msgid "Wheelchair accessible" msgstr "Dostępne dla osób na wózku" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/placeView.js:478 msgid "Limited wheelchair accessibility" msgstr "Ograniczony dostęp dla osób na wózku" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #: src/placeView.js:487 msgid "Not wheelchair accessible" msgstr "Brak dostępu dla osób na wózku" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/placeView.js:497 msgid "Designated for wheelchair users" msgstr "Wyznaczone dla osób na wózku" #. * #. * Translators: this is a label indicating an altitude below #. * sea level, where the %s placeholder is the altitude relative #. * to mean sea level in the "negative direction" #. #: src/placeView.js:528 #, javascript-format msgid "%s below sea level" msgstr "%s pod poziomem morza" #. * #. * Translators: this indicates a place is located at (or very #. * close to) mean sea level #. #: src/placeView.js:535 msgid "At sea level" msgstr "Na poziomie morza" #: src/placeView.js:544 msgid "Religion:" msgstr "Religia:" #: src/place.js:576 msgid "Place not found in OpenStreetMap" msgstr "Nie odnaleziono tego miejsca w serwisie OpenStreetMap" #: src/place.js:583 msgid "Coordinates in URL are not valid" msgstr "Współrzędne w adresie URL są nieprawidłowe" #: src/place.js:592 msgid "URL is not supported" msgstr "Nieobsługiwany adres URL" #: src/poiCategories.js:132 msgid "Amenities" msgstr "Obiekty usługowe" #: src/poiCategories.js:135 msgid "ATMs" msgstr "Bankomaty" #: src/poiCategories.js:141 msgid "Post Boxes" msgstr "Skrzynki pocztowe" #: src/poiCategories.js:147 msgid "Post Offices" msgstr "Urzędy pocztowe" #: src/poiCategories.js:153 msgid "Police" msgstr "Policja" #: src/poiCategories.js:159 msgid "Libraries" msgstr "Biblioteki" #: src/poiCategories.js:165 msgid "Pharmacies" msgstr "Apteki" #: src/poiCategories.js:171 msgid "Recycling" msgstr "Punkty odbioru odpadów" #: src/poiCategories.js:182 msgid "Wheelchair-accessible Toilets" msgstr "Toalety dostępne dla osób na wózku" #: src/poiCategories.js:188 msgid "Baggage Lockers" msgstr "Skrytki bagażowe" #: src/poiCategories.js:196 msgid "Eating & Drinking" msgstr "Jedzenie i picie" #: src/poiCategories.js:200 msgid "Restaurants" msgstr "Restauracje" #: src/poiCategories.js:205 msgid "Fast Food" msgstr "Fast food" #: src/poiCategories.js:210 msgid "Food Courts" msgstr "Punkty gastronomiczne" #: src/poiCategories.js:215 msgid "Pubs" msgstr "Puby" #: src/poiCategories.js:221 msgid "Bars" msgstr "Bary" #: src/poiCategories.js:226 msgid "Cafes" msgstr "Kawiarnie" #: src/poiCategories.js:231 msgid "Ice Cream" msgstr "Lody" #: src/poiCategories.js:236 msgid "Food, Snacks, and Beverage Machines" msgstr "Automaty z jedzeniem, przekąskami i napojami" #: src/poiCategories.js:244 msgid "Shopping" msgstr "Sklepy" #: src/poiCategories.js:248 msgid "Supermarkets" msgstr "Supermarkety" #: src/poiCategories.js:254 msgid "Convenience Stores" msgstr "Sklepy spożywcze" #: src/poiCategories.js:259 msgid "Shopping Malls" msgstr "Centra handlowe" #: src/poiCategories.js:265 msgid "Clothes" msgstr "Ubrania" #: src/poiCategories.js:271 msgid "Shoes" msgstr "Buty" #: src/poiCategories.js:276 msgid "Electronics" msgstr "Elektronika" #: src/poiCategories.js:282 msgid "Alcohol" msgstr "Alkohol" #: src/poiCategories.js:288 msgid "Bakeries" msgstr "Piekarnie" #: src/poiCategories.js:294 msgid "Flowers" msgstr "Kwiaty" #: src/poiCategories.js:301 msgid "Transportation" msgstr "Środki transportu" #: src/poiCategories.js:305 msgid "Bus & Tram Stops" msgstr "Przystanki autobusowe i tramwajowe" #: src/poiCategories.js:313 msgid "Train & Subway Stations" msgstr "Stacje kolejowe i metra" #: src/poiCategories.js:321 msgid "Tickets" msgstr "Bilety" #: src/poiCategories.js:329 msgid "Parking" msgstr "Parkingi" #: src/poiCategories.js:334 msgid "Bicycle Parking" msgstr "Parkingi rowerowe" #: src/poiCategories.js:339 msgid "Bicycle Rental" msgstr "Wynajem rowerów" #: src/poiCategories.js:344 msgid "Car Rental" msgstr "Wynajem samochodów" #: src/poiCategories.js:349 msgid "Fuel" msgstr "Stacje paliw" #: src/poiCategories.js:354 msgid "EV Charging" msgstr "Stacje ładowania pojazdów elektrycznych" #: src/poiCategories.js:362 msgid "Healthcare" msgstr "Ochrona zdrowia" #: src/poiCategories.js:366 msgid "Clinics" msgstr "Przychodnie" #: src/poiCategories.js:372 msgid "Hospitals" msgstr "Szpitale" #: src/poiCategories.js:378 msgid "Dentists" msgstr "Dentyści" #: src/poiCategories.js:386 msgid "Accommodation" msgstr "Zakwaterowanie" #: src/poiCategories.js:390 msgid "Hotels" msgstr "Hotele" #: src/poiCategories.js:395 msgid "Hostels" msgstr "Hostele" #: src/poiCategories.js:400 msgid "Bed & Breakfast" msgstr "Bed and breakfast" #: src/poiCategories.js:405 msgid "Campings" msgstr "Pola namiotowe" #: src/poiCategories.js:412 msgid "Recreation" msgstr "Rozrywka" #: src/poiCategories.js:416 msgid "Parks" msgstr "Parki" #: src/poiCategories.js:421 msgid "Playgrounds" msgstr "Place zabaw" #: src/poiCategories.js:425 msgid "Beaches" msgstr "Plaże" #: src/poiCategories.js:430 msgid "Nature Reserves" msgstr "Rezerwaty przyrody" #: src/poiCategories.js:436 msgid "Theme Parks" msgstr "Parki rozrywki" #: src/poiCategories.js:441 msgid "Theaters" msgstr "Teatry" #: src/poiCategories.js:447 msgid "Movie Theaters" msgstr "Kina" #: src/poiCategories.js:453 msgid "Night Clubs" msgstr "Kluby nocne" #: src/poiCategories.js:460 msgid "Tourism" msgstr "Turystyka" #: src/poiCategories.js:464 msgid "Museums" msgstr "Muzea" #: src/poiCategories.js:470 msgid "Attractions" msgstr "Atrakcje" #: src/poiCategories.js:475 msgid "Artworks" msgstr "Dzieła sztuki" #: src/poiCategories.js:480 msgid "Tourist Information" msgstr "Informacja turystyczna" #: src/poiCategories.js:487 msgid "Sports" msgstr "Sport" #: src/poiCategories.js:491 msgid "Gyms" msgstr "Siłownie" #: src/poiCategories.js:497 msgid "Outdoor Gyms" msgstr "Siłownie na świeżym powietrzu" #: src/poiCategories.js:503 msgid "Golf Courses" msgstr "Pola golfowe" #: src/printLayout.js:350 #, javascript-format msgid "From %s to %s" msgstr "Z %s do %s" #: src/printOperation.js:49 msgid "Loading map tiles for printing" msgstr "Wczytywanie mapy do wydrukowania" #: src/printOperation.js:50 msgid "You can abort printing if this takes too long" msgstr "Można przerwać drukowanie, jeśli trwa to za długo" #: src/printOperation.js:52 msgid "Abort printing" msgstr "Przerwij drukowanie" #. Translators: this is add via location tooltip #: src/routeEntry.js:60 msgid "Add via location" msgstr "Dodaje położenie pośrednie" #. Translators: this is remove via location tooltip #: src/routeEntry.js:70 msgid "Remove via location" msgstr "Usuwa położenie pośrednie" #. Translators: this is reverse route tooltip #: src/routeEntry.js:76 msgid "Reverse route" msgstr "Odwraca trasę" #: src/searchBar.js:45 msgid "Search" msgstr "Wyszukiwanie" #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:84 #, javascript-format msgid "Add %s to %s" msgstr "Dodaj %s do programu %s" #: src/sendToDialog.js:181 msgid "Failed to open URI" msgstr "Otwarcie adresu URI się nie powiodło" #: src/sendToDialog.js:246 #, javascript-format msgid "Open with %s" msgstr "Otwórz za pomocą „%s”" #: src/shapeLayer.js:109 msgid "failed to load file" msgstr "wczytanie pliku się nie powiodło" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:328 #, javascript-format msgid "Estimated time: %s" msgstr "Przybliżony czas: %s" #: src/sidebar.js:398 #, javascript-format msgid "Itineraries provided by %s" msgstr "Trasy dostarczane przez %s" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:39 #, javascript-format msgid "Start at %s" msgstr "Początek w: %s" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:45 src/transitplugins/openTripPlanner2.js:236 msgid "Start" msgstr "Początek" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:63 #, javascript-format msgid "Walk %s" msgstr "Przejście %s" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:77 #, javascript-format msgid "Arrive at %s" msgstr "Przybycie do: %s" #: src/transit.js:79 src/transitplugins/openTripPlanner.js:1176 #: src/transitplugins/openTripPlanner2.js:255 msgid "Arrive" msgstr "Przybycie" #: src/transitLegRow.js:69 msgid "Show walking instructions" msgstr "Wyświetla wskazówki" #: src/transitLegRow.js:70 msgid "Hide walking instructions" msgstr "Ukrywa wskazówki" #: src/transitMoreRow.js:37 msgid "Load earlier alternatives" msgstr "Wczytaj wcześniejsze możliwości" #: src/transitMoreRow.js:39 msgid "Load later alternatives" msgstr "Wczytaj późniejsze możliwości" #: src/transitMoreRow.js:52 msgid "No earlier alternatives found." msgstr "Nie odnaleziono wcześniejszych możliwości." #: src/transitMoreRow.js:54 msgid "No later alternatives found." msgstr "Nie odnaleziono późniejszych możliwości." #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:138 msgctxt "month-day-date" msgid "%b %e" msgstr "%-d %b" #: src/transitPlan.js:171 msgid "No timetable data found for this route." msgstr "Nie odnaleziono rozkładu jazdy dla tej trasy." #: src/transitPlan.js:179 msgid "No provider found for this route." msgstr "Nie odnaleziono dostawcy dla tej trasy." #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:300 #, javascript-format msgid "%s – %s" msgstr "%s-%s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:331 #, javascript-format msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "%s minuta" msgstr[1] "%s minuty" msgstr[2] "%s minut" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:343 #, javascript-format msgid "%s hour" msgid_plural "%s hours" msgstr[0] "%s godzina" msgstr[1] "%s godziny" msgstr[2] "%s godzin" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:351 #, javascript-format msgid "%s:%s hour" msgid_plural "%s:%s hours" msgstr[0] "%s∶%s godzina" msgstr[1] "%s∶%s godziny" msgstr[2] "%s∶%s godzin" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:744 #, javascript-format msgid "%s–%s" msgstr "%s-%s" #: src/translations.js:55 msgid "Around the clock" msgstr "Całą dobę" #: src/translations.js:57 msgid "From sunrise to sunset" msgstr "Od świtu do zmierzchu" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:123 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s, %s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:137 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s, %s, %s" #: src/translations.js:156 msgid "Every day" msgstr "Codziennie" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:168 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:179 msgid "Public holidays" msgstr "Dni ustawowo wolne od pracy" #: src/translations.js:181 msgid "School holidays" msgstr "Wakacje/ferie szkolne" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:221 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: src/translations.js:235 msgid "not open" msgstr "zamknięte" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:250 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:287 msgid "Bahá'í" msgstr "Bahaizm" #. Translators: Accuracy of user location information #: src/utils.js:248 msgid "Unknown" msgstr "Nieznana" #. Translators: Accuracy of user location information #: src/utils.js:251 msgid "Exact" msgstr "Dokładna" #. Translators: this is a duration with only hours, using #. * an abbreviation for hours, corresponding to 'h' in English #. #: src/utils.js:307 #, javascript-format msgid "%s h" msgstr "%s godz." #. Translators: this is a duration with hours and minutes parts #. * using abbreviations for hours and minutes, corresponding to 'h' #. * and 'min' in English. The minutes has appropriate plural variations #. #: src/utils.js:313 #, javascript-format msgid "%s h %s min" msgid_plural "%s h %s min" msgstr[0] "%s godz. %s min" msgstr[1] "%s godz. %s min" msgstr[2] "%s godz. %s min" #. Translators: this is a duration with minutes part #. * using abbreviation for minutes, corresponding to 'min' in English #. * with appropriate plural variations #. #: src/utils.js:320 #, javascript-format msgid "%s min" msgid_plural "%s min" msgstr[0] "%s min" msgstr[1] "%s min" msgstr[2] "%s min" #. Translators: this is a duration of less than one minute #. * with seconds using an abbreviation for seconds, corresponding to #. * 's' in English with appropriate plural forms #. #: src/utils.js:326 #, javascript-format msgid "%s s" msgid_plural "%s s" msgstr[0] "%s s" msgstr[1] "%s s" msgstr[2] "%s s" #. Translators: This is a distance measured in kilometers #: src/utils.js:337 #, javascript-format msgid "%s km" msgstr "%s km" #. Translators: This is a distance measured in meters #: src/utils.js:340 #, javascript-format msgid "%s m" msgstr "%s m" #. Translators: This is a distance measured in miles #: src/utils.js:348 #, javascript-format msgid "%s mi" msgstr "%s mi" #. Translators: This is a distance measured in feet #: src/utils.js:351 #, javascript-format msgid "%s ft" msgstr "%s ft" #: src/transitplugins/goMetro.js:61 msgid "This plugin doesn't support latest arrival" msgstr "Ta wtyczka nie obsługuje najpóźniejszego przybycia" #: src/transitplugins/openTripPlanner.js:1237 #: src/transitplugins/openTripPlanner2.js:266 #, javascript-format msgid "Continue on %s" msgstr "Kontynuuj na: %s" #: src/transitplugins/openTripPlanner.js:1242 #: src/transitplugins/openTripPlanner2.js:270 #, javascript-format msgid "Turn left on %s" msgstr "Skręć w lewo na: %s" #: src/transitplugins/openTripPlanner.js:1244 #: src/transitplugins/openTripPlanner2.js:271 msgid "Turn left" msgstr "Skręć w lewo" #: src/transitplugins/openTripPlanner.js:1247 #: src/transitplugins/openTripPlanner2.js:275 #, javascript-format msgid "Turn slightly left on %s" msgstr "Skręć lekko w lewo na: %s" #: src/transitplugins/openTripPlanner.js:1249 #: src/transitplugins/openTripPlanner2.js:276 msgid "Turn slightly left" msgstr "Skręć lekko w lewo" #: src/transitplugins/openTripPlanner.js:1252 #: src/transitplugins/openTripPlanner2.js:280 #, javascript-format msgid "Turn sharp left on %s" msgstr "Skręć gwałtownie w lewo na: %s" #: src/transitplugins/openTripPlanner.js:1254 #: src/transitplugins/openTripPlanner2.js:281 msgid "Turn sharp left" msgstr "Skręć gwałtownie w lewo" #: src/transitplugins/openTripPlanner.js:1257 #: src/transitplugins/openTripPlanner2.js:284 #, javascript-format msgid "Turn right on %s" msgstr "Skręć w prawo na: %s" #: src/transitplugins/openTripPlanner.js:1259 #: src/transitplugins/openTripPlanner2.js:285 msgid "Turn right" msgstr "Skręć w prawo" #: src/transitplugins/openTripPlanner.js:1262 #: src/transitplugins/openTripPlanner2.js:289 #, javascript-format msgid "Turn slightly right on %s" msgstr "Skręć lekko w prawo na: %s" #: src/transitplugins/openTripPlanner.js:1264 #: src/transitplugins/openTripPlanner2.js:290 msgid "Turn slightly right" msgstr "Skręć lekko w prawo" #: src/transitplugins/openTripPlanner.js:1267 #: src/transitplugins/openTripPlanner2.js:294 #, javascript-format msgid "Turn sharp right on %s" msgstr "Skręć gwałtownie w prawo na: %s" #: src/transitplugins/openTripPlanner.js:1269 #: src/transitplugins/openTripPlanner2.js:295 msgid "Turn sharp right" msgstr "Skręć gwałtownie w prawo" #: src/transitplugins/openTripPlanner.js:1275 #: src/transitplugins/openTripPlanner2.js:302 #, javascript-format msgid "At the roundabout, take exit %s" msgstr "Na rondzie zjedź w: %s" #: src/transitplugins/openTripPlanner.js:1277 #: src/transitplugins/openTripPlanner2.js:305 #, javascript-format msgid "At the roundabout, take exit to %s" msgstr "Na rondzie zjedź do: %s" #: src/transitplugins/openTripPlanner.js:1279 #: src/transitplugins/openTripPlanner2.js:307 msgid "Take the roundabout" msgstr "Wjedź na rondo" #: src/transitplugins/openTripPlanner.js:1283 #: src/transitplugins/openTripPlanner2.js:315 #, javascript-format msgid "Take the elevator and get off at %s" msgstr "Wejdź do windy i wysiądź na: %s" #: src/transitplugins/openTripPlanner.js:1285 #: src/transitplugins/openTripPlanner2.js:316 msgid "Take the elevator" msgstr "Wejdź do windy" #: src/transitplugins/openTripPlanner.js:1289 #: src/transitplugins/openTripPlanner2.js:320 #, javascript-format msgid "Make a left u-turn onto %s" msgstr "Zawróć w lewo na: %s" #: src/transitplugins/openTripPlanner.js:1291 #: src/transitplugins/openTripPlanner2.js:321 msgid "Make a left u-turn" msgstr "Zawróć w lewo" #: src/transitplugins/openTripPlanner.js:1294 #: src/transitplugins/openTripPlanner2.js:325 #, javascript-format msgid "Make a right u-turn onto %s" msgstr "Zawróć w prawo na: %s" #: src/transitplugins/openTripPlanner.js:1296 #: src/transitplugins/openTripPlanner2.js:326 msgid "Make a right u-turn" msgstr "Zawróć w prawo" 070701000001DF000081A4000000000000000000000001664134090001082D000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/pt.po# Portuguese translation for gnome-maps. # Copyright © 2013, 2014 gnome-maps # This file is distributed under the same license as the gnome-maps package. # António Lima , 2013. # Duarte Loreto , 2014. # Tiago Santos , 2014 - 2016. # Pedro Albuquerque , 2015. # Bruno Ramalhete , 2016. # Juliano Camargo , 2020. # Juliano de Souza Camargo , 2020. # Hugo carvalho , 2020, 2021, 2022, 2023, 2024. # msgid "" msgstr "" "Project-Id-Version: gnome-maps master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2024-04-08 13:03+0000\n" "PO-Revision-Date: 2024-05-07 15:57+0100\n" "Last-Translator: Hugo Carvalho \n" "Language-Team: Portuguese \n" "Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.4.2\n" "X-Language: pt_PT\n" "X-Source-Language: C\n" "X-Project-Style: gnome\n" #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.appdata.xml.in.in:6 data/org.gnome.Maps.desktop.in.in:4 #: data/ui/main-window.ui:27 src/application.js:64 src/mainWindow.js:147 #: src/mainWindow.js:647 msgid "Maps" msgstr "Mapas" #: data/org.gnome.Maps.appdata.xml.in.in:7 msgid "Find places around the world" msgstr "Encontre locais em todo o mundo" #: data/org.gnome.Maps.appdata.xml.in.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "O Mapas dá-lhe acesso a mapas de todo o mundo. Permite que encontre " "rapidamente o local que procura, procurando por uma cidade ou rua, ou " "localizando um sítio para um encontro com um amigo." #: data/org.gnome.Maps.appdata.xml.in.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "A aplicação Mapas utiliza a base de dados colaborativa OpenStreetMap, feita " "por centenas de milhares de pessoas por todo o globo." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Maps.appdata.xml.in.in:468 src/mainWindow.js:644 msgid "The GNOME Project" msgstr "O Projeto GNOME" #: data/org.gnome.Maps.desktop.in.in:5 msgid "A simple maps application" msgstr "Uma aplicação simples para visualização de mapas" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in.in:14 msgid "Maps;" msgstr "Mapas;Rotas;" #: data/org.gnome.Maps.desktop.in.in:17 msgid "Allows your location to be shown on the map." msgstr "Permite que a sua localização seja colocada no mapa." #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "última localização vista" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "Coordenadas da última localização vista." #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "ampliação" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "Nível de ampliação" #: data/org.gnome.Maps.gschema.xml:21 msgid "rotation" msgstr "rotação" #: data/org.gnome.Maps.gschema.xml:22 msgid "Map rotation in radians" msgstr "Rotação do mapa em radianos" #: data/org.gnome.Maps.gschema.xml:26 msgid "Map type" msgstr "Tipo de mapa" #: data/org.gnome.Maps.gschema.xml:27 msgid "The type of map to display (street, aerial, etc.)" msgstr "O tipo de mapa a visualizar (ruas, satélite etc)" #: data/org.gnome.Maps.gschema.xml:31 msgid "Window size" msgstr "Tamanho da janela" #: data/org.gnome.Maps.gschema.xml:32 msgid "Window size (width and height)." msgstr "Tamanho da janela (largura e altura)." #: data/org.gnome.Maps.gschema.xml:36 msgid "Window position" msgstr "Posição da janela" #: data/org.gnome.Maps.gschema.xml:37 msgid "Window position (X and Y)." msgstr "Posição da janela (X e Y)." #: data/org.gnome.Maps.gschema.xml:41 msgid "Window maximized" msgstr "Janela maximizada" #: data/org.gnome.Maps.gschema.xml:42 msgid "Window maximization state" msgstr "Estado de maximização da janela" #: data/org.gnome.Maps.gschema.xml:46 msgid "Maximum number of search results" msgstr "Número máximo de resultados de procura" #: data/org.gnome.Maps.gschema.xml:47 msgid "Maximum number of search results from geocode search." msgstr "Número máximo de resultados de procura da busca geocode." #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent places to store" msgstr "Número de locais recentes a armazenar" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited places to store." msgstr "Número de locais recentemente visitados a armazenar." #: data/org.gnome.Maps.gschema.xml:56 msgid "Number of recent routes to store" msgstr "Número de rotas recentes a armazenar" #: data/org.gnome.Maps.gschema.xml:57 msgid "Number of recently visited routes to store." msgstr "Número de rotas recentemente visitadas a armazenar." #: data/org.gnome.Maps.gschema.xml:61 msgid "OpenStreetMap username or email address" msgstr "Nome de utilizador do OpenStreetMap ou correio eletrónico" #: data/org.gnome.Maps.gschema.xml:62 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "" "Indica se o utilizador iniciou sessão para editar dados no OpenStreetMap." #: data/org.gnome.Maps.gschema.xml:66 msgid "Last used transportation type for routing" msgstr "Último tipo de transporte utilizado para roteamento" #: data/org.gnome.Maps.gschema.xml:70 msgid "Show scale" msgstr "Mostrar escala" #: data/org.gnome.Maps.gschema.xml:71 msgid "Whether to show the scale." msgstr "Se deve mostrar a escala." #: data/ui/context-menu.ui:6 msgid "Route from Here" msgstr "Rota daqui" #: data/ui/context-menu.ui:10 msgid "Add Intermediate Destination" msgstr "Adicionar um destino intermediário" #: data/ui/context-menu.ui:14 msgid "Route to Here" msgstr "Rota para aqui" #: data/ui/context-menu.ui:20 msgid "What's Here?" msgstr "O que há aqui?" #: data/ui/context-menu.ui:24 msgid "Copy Location" msgstr "Copiar a localização" #: data/ui/context-menu.ui:28 msgid "Add to OpenStreetMap…" msgstr "Adicionar ao OpenStreetMap…" #: data/ui/export-view-dialog.ui:7 msgid "Export view" msgstr "Exportar a vista" #: data/ui/export-view-dialog.ui:16 data/ui/send-to-dialog.ui:10 #: data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "_Cancelar" #: data/ui/export-view-dialog.ui:26 msgid "_Export" msgstr "_Exportar" #. Translators: This is a tooltip #: data/ui/favorite-list-row.ui:72 msgid "Remove Favorite" msgstr "Remover favorito" #: data/ui/favorites-popover.ui:11 msgid "No Favorites" msgstr "Sem favoritos" #: data/ui/favorites-popover.ui:12 msgid "Add places to your favorites to get them listed here" msgstr "Adicione locais aos seus favoritos para que sejam listados aqui" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:11 src/geoclue.js:106 src/placeBar.js:91 msgid "Current Location" msgstr "Localização atual" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:19 msgid "Layers" msgstr "Camadas" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:11 msgid "Print Route" msgstr "Imprimir a rota" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:21 msgid "Favorites" msgstr "Favoritos" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:30 msgid "Route Planner" msgstr "Programador de rotas" #: data/ui/help-overlay.ui:12 msgctxt "shortcut window" msgid "General" msgstr "Geral" #: data/ui/help-overlay.ui:15 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "Mostrar os atalhos" #: data/ui/help-overlay.ui:21 msgctxt "shortcut window" msgid "Search" msgstr "Procurar" #: data/ui/help-overlay.ui:27 msgctxt "shortcut window" msgid "Explore points-of-interest" msgstr "Explorar pontos de interesse" #: data/ui/help-overlay.ui:33 msgctxt "shortcut window" msgid "Show last search results" msgstr "Mostrar os últimos resultados da pesquisa" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "Ver o programador de rotas" #: data/ui/help-overlay.ui:45 msgctxt "shortcut window" msgid "Print route" msgstr "Imprimir a rota" #: data/ui/help-overlay.ui:51 msgctxt "shortcut window" msgid "Quit" msgstr "Sair" #: data/ui/help-overlay.ui:57 msgctxt "shortcut window" msgid "Open main menu" msgstr "Abrir o menu principal" #: data/ui/help-overlay.ui:65 msgctxt "shortcut window" msgid "Map View" msgstr "Vista de mapa" #: data/ui/help-overlay.ui:68 msgctxt "shortcut window" msgid "Zoom in" msgstr "Ampliar" #: data/ui/help-overlay.ui:74 msgctxt "shortcut window" msgid "Zoom out" msgstr "Reduzir" #: data/ui/help-overlay.ui:80 msgctxt "shortcut window" msgid "Rotate clockwise" msgstr "Rodar no sentido horário" #: data/ui/help-overlay.ui:86 msgctxt "shortcut window" msgid "Rotate counter-clockwise" msgstr "Rodar no sentido anti-horário" #: data/ui/help-overlay.ui:92 msgctxt "shortcut window" msgid "Reset rotation" msgstr "Repor rotação" #: data/ui/help-overlay.ui:98 msgctxt "shortcut window" msgid "Toggle scale" msgstr "Ver escala" #: data/ui/help-overlay.ui:104 msgctxt "shortcut window" msgid "Go to current location" msgstr "Ir para a localização atual" #: data/ui/help-overlay.ui:114 msgctxt "shortcut window" msgid "Switch to street view" msgstr "Mudar para a vista de mapas" #: data/ui/help-overlay.ui:121 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "Mudar para a vista de satélite" #: data/ui/help-overlay.ui:127 msgctxt "shortcut window" msgid "Open shape layer" msgstr "Abrir camadas de mapa" #: data/ui/layers-popover.ui:7 msgid "Show Scale" msgstr "Mostrar escala" #: data/ui/layers-popover.ui:16 msgid "Enable Experimental Map" msgstr "Ativar mapa experimental" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:21 msgid "Open Shape Layer…" msgstr "Abrir camadas de mapa…" #: data/ui/main-window.ui:8 msgid "Set up OpenStreetMap Account…" msgstr "Configurar a conta OpenStreetMap…" #: data/ui/main-window.ui:12 msgid "Export as Image…" msgstr "Exportar como imagem…" #: data/ui/main-window.ui:17 msgid "_Keyboard Shortcuts" msgstr "_Atalhos de teclado" #: data/ui/main-window.ui:22 msgid "About Maps" msgstr "Acerca do Mapas" #: data/ui/main-window.ui:48 msgid "Main Menu" msgstr "Menu principal" #: data/ui/osm-account-dialog.ui:5 msgid "OpenStreetMap Account" msgstr "Conta do OpenStreetMap" #: data/ui/osm-account-dialog.ui:31 msgid "Sign In To Edit Maps" msgstr "Inicie sessão para editar o Mapas" #: data/ui/osm-account-dialog.ui:32 msgid "Help to improve the map, using an OpenStreetMap account." msgstr "Ajude a melhorar o mapa usando uma conta OpenStreetMap." #: data/ui/osm-account-dialog.ui:36 msgid "Sign In" msgstr "Iniciar sessão" #: data/ui/osm-account-dialog.ui:59 msgid "Verification" msgstr "Verificação" #: data/ui/osm-account-dialog.ui:60 msgid "" "Copy the verification code shown when authorizing access in the browser." msgstr "" "Copiar o código de verificação apresentado aquando da autorização de acesso " "no navegador." #: data/ui/osm-account-dialog.ui:69 msgid "Verification Code" msgstr "Código de verificação" #: data/ui/osm-account-dialog.ui:75 msgid "Verify" msgstr "Verificar" #: data/ui/osm-account-dialog.ui:110 msgid "Signed In" msgstr "Sessão iniciada" #: data/ui/osm-account-dialog.ui:111 msgid "Your OpenStreetMap account is active." msgstr "A sua conta OpenStreetMap está ativa." #: data/ui/osm-account-dialog.ui:129 msgid "Sign Out" msgstr "Terminar sessão" #: data/ui/osm-edit-address.ui:11 msgid "Street" msgstr "Estrada" #: data/ui/osm-edit-address.ui:22 msgid "House number" msgstr "Número da casa" #: data/ui/osm-edit-address.ui:33 msgid "Postal code" msgstr "Código postal" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:44 msgid "City" msgstr "Cidade" #: data/ui/osm-edit-dialog.ui:8 msgctxt "dialog title" msgid "Edit on OpenStreetMap" msgstr "Editar no OpenStreetMap" #: data/ui/osm-edit-dialog.ui:57 msgid "Type" msgstr "Tipo" #: data/ui/osm-edit-dialog.ui:79 msgid "None" msgstr "Nenhum" #: data/ui/osm-edit-dialog.ui:108 msgid "Add Field" msgstr "Adicionar campo" #: data/ui/osm-edit-dialog.ui:130 msgid "Comment" msgstr "Comentário" #: data/ui/osm-edit-dialog.ui:158 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "Alterações ao mapa serão visíveis em todos os mapas\n" "que utilizar dados do OpenStreetMap." #: data/ui/osm-edit-dialog.ui:186 msgid "Recently Used" msgstr "Recentemente utilizado" #: data/ui/osm-edit-dialog.ui:225 src/mapView.js:671 msgid "Cancel" msgstr "Cancelar" #: data/ui/osm-edit-dialog.ui:238 src/osmEditDialog.js:531 msgid "Next" msgstr "Seguinte" #: data/ui/osm-edit-wikipedia.ui:8 msgid "Article" msgstr "Artigo" #: data/ui/osm-edit-wikipedia.ui:21 msgid "Wikidata tag" msgstr "Wikidata tag" #: data/ui/osm-edit-wikipedia.ui:32 msgid "Load Wikidata tag for article" msgstr "Carregar a etiqueta Wikidata para o artigo" #: data/ui/place-popover.ui:23 src/searchBar.js:55 msgid "Explore Nearby Places" msgstr "Explorar os locais mais próximos" #: data/ui/place-popover.ui:82 src/application.js:277 msgid "No results found" msgstr "Sem resultados encontrados" #: data/ui/place-popover.ui:92 src/application.js:255 msgid "An error has occurred" msgstr "Ocorreu um erro" #. Translators: This is a tooltip #: data/ui/route-entry.ui:12 msgid "Change Route Order" msgstr "Alterar ordem da rota" #: data/ui/send-to-dialog.ui:7 msgid "Open Location" msgstr "Abrir localização" #: data/ui/send-to-dialog.ui:64 msgid "Copy" msgstr "Copiar" #: data/ui/send-to-dialog.ui:70 msgid "Send To…" msgstr "Enviar para…" #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:62 msgid "Open Shape Layer" msgstr "Abrir camadas de mapa" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "_Abrir" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:32 msgid "Toggle visible" msgstr "Mudar visibilidade" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:44 msgid "Remove Shape Layer" msgstr "Remover camada de forma" #: data/ui/sidebar.ui:207 msgid "Route search by GraphHopper" msgstr "Procura de rota por GraphHopper" #: data/ui/sidebar.ui:272 msgid "" "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of " "transportation,\n" "e.g. a national provider might not include airlines, and a local provider " "could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" "Rotas de itinerários de transporte público são providas por serviços\n" "de terceiros.\n" "O GNOME não garante a idoneidade dos itinerários e programações expostas.\n" "Note que alguns provedores podem não incluir todos os tipos de transportes,\n" "ou seja, um provedor nacional pode não incluir linhas aéreas, e um provedor\n" "local pode ignorar comboios regionais.\n" "Nomes e marcas mostradas devem ser consideradas como registadas quando " "aplicável." #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:98 msgid "Hide intermediate stops and information" msgstr "Ocultar paradas intermediária e informação" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:156 msgid "Show intermediate stops and information" msgstr "Ver paradas intermediárias e informação" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:16 msgid "Leave Now" msgstr "Partir já" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:17 msgid "Leave By" msgstr "Partir às" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:18 msgid "Arrive By" msgstr "Chegar às" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:85 msgid "Show" msgstr "Ver" #: data/ui/transit-options-panel.ui:95 msgid "Buses" msgstr "Ónibus" #: data/ui/transit-options-panel.ui:101 msgid "Trams" msgstr "Eléctricos" #: data/ui/transit-options-panel.ui:107 msgid "Trains" msgstr "Comboios" #: data/ui/transit-options-panel.ui:113 msgid "Subway" msgstr "Metros" #: data/ui/transit-options-panel.ui:119 msgid "Ferries" msgstr "Barcos" #: data/ui/transit-options-panel.ui:125 msgid "Airplanes" msgstr "Aviões" #. Translators: This is a tooltip #: data/ui/place-bar.ui:33 data/ui/place-buttons.ui:27 msgid "Share Location" msgstr "Partilhar a localização" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:11 msgid "Add to new route" msgstr "Adicionar à nova rota" #. Translators: This is the button to find a route to a place #: data/ui/place-buttons.ui:15 msgid "Directions" msgstr "Direções" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:36 msgid "Mark as Favorite" msgstr "Marcar como Favorito" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:44 msgid "Edit on OpenStreetMap" msgstr "Editar no OpenStreetMap" #. Translators: This is a tooltip #: data/ui/place-view.ui:52 msgid "Share location" msgstr "Partilhar a localização" #: data/ui/poi-category-goback-row.ui:22 msgid "Back to Main Categories" msgstr "Voltar às categorias principais" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:19 msgid "Reset Rotation" msgstr "Repor a Rotação" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:32 msgid "Zoom Out" msgstr "Reduzir" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:43 src/mapView.js:1246 msgid "Zoom In" msgstr "Ampliar" #: lib/maps-file-data-source.c:262 lib/maps-file-data-source.c:338 #: lib/maps-file-data-source.c:418 msgid "Failed to find tile structure in directory" msgstr "Falhou ao localizar estrutura de mosaico na pasta" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "Falhou ao processar documento XML" #: lib/maps-osm.c:250 lib/maps-osm.c:403 msgid "Missing required attributes" msgstr "Atributos requeridos em falta" #: lib/maps-osm.c:451 lib/maps-osm.c:494 msgid "Could not find OSM element" msgstr "Impossível localizar o elemento OSM" #: lib/maps-osm.c:508 msgid "Could not find user element" msgstr "Não foi possível localizar o elemento utilizador" #: src/application.js:78 msgid "A path to a local tiles directory structure" msgstr "Um caminho para a estrutura de pasta local de telas" #: src/application.js:84 msgid "Tile size for local tiles directory" msgstr "O tamanho da tela para o diretório local de telas" #: src/application.js:88 msgid "Show the version of the program" msgstr "Ver a versão da aplicação" #: src/application.js:94 msgid "Search for places" msgstr "Procura de locais" #: src/application.js:105 src/application.js:106 msgid "[FILE…|URI]" msgstr "[FICHEIRO...|URI]" #: src/application.js:284 #, javascript-format msgid "Invalid maps: URI: %s" msgstr "Mapas inválidos: URI: %s" #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:75 #, javascript-format msgid "Maps at %f, %f.png" msgstr "Mapas em %f, %f.png" #: src/exportViewDialog.js:174 msgid "Unable to export view" msgstr "Impossível exportar a vista" #: src/favoriteListRow.js:42 msgid "Favorite removed" msgstr "Favorito removido" #: src/favoriteListRow.js:43 msgid "Undo" msgstr "Desfazer" #: src/geoJSONSource.js:73 msgid "invalid coordinate" msgstr "coordenadas inválidas" #: src/geoJSONSource.js:126 src/geoJSONSource.js:166 src/geoJSONSource.js:181 msgid "parse error" msgstr "erro de processamento" #: src/geoJSONSource.js:160 msgid "unknown geometry" msgstr "geometria desconhecida" #: src/graphHopper.js:101 src/transitPlan.js:175 msgid "Route request failed." msgstr "Pedido de rota falhou." #: src/graphHopper.js:108 src/transitPlan.js:167 msgid "No route found." msgstr "Rota não encontrada." #: src/graphHopper.js:195 src/transitplugins/openTripPlanner.js:1163 msgid "Start!" msgstr "Iniciar!" #: src/mainWindow.js:59 msgid "All Layer Files" msgstr "Todos os ficheiros de camada" #: src/mainWindow.js:522 msgid "Failed to connect to location service" msgstr "Falha ao ligar-se ao serviço de localização" #: src/mainWindow.js:527 msgid "Turn on location services" msgstr "Ativar os serviços de localização" #: src/mainWindow.js:528 msgid "Location Settings" msgstr "Definições de local" #: src/mainWindow.js:645 msgid "translator-credits" msgstr "" "Hugo Carvalho \n" "António Lima \n" "Bruno Ramalhete \n" "Pedro Albuquerque \n" "Tiago Santos \n" "Juliano de Souza Camargo " #: src/mainWindow.js:649 msgid "Copyright © 2011 – 2023 Red Hat, Inc. and The GNOME Maps authors" msgstr "" "Direitos de autor © 2011 – 2023 Red Hat, Inc. e autores do Mapas do GNOME" #: src/mainWindow.js:665 #, javascript-format msgid "Map data by %s and contributors" msgstr "Dados cartográficos de %s e contribuidores" #: src/mainWindow.js:666 msgid "Map Data Provider" msgstr "Fornecedor de dados do mapa" #: src/mainWindow.js:678 msgid "Map Tile Provider" msgstr "Fornecedor de imagens mapa" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:686 #, javascript-format msgid "Map tiles provided by %s" msgstr "Telas de mapas fornecida por %s" #: src/mainWindow.js:716 msgid "Search Provider" msgstr "Fornecedor de pesquisa" #: src/mainWindow.js:719 #, javascript-format msgid "Search provided by %s using %s" msgstr "Procura fornecida por %s utilizando %s" #: src/mapView.js:645 src/mapView.js:710 msgid "Failed to open layer" msgstr "Falha ao abrir camada" #: src/mapView.js:664 msgid "Do you want to continue?" msgstr "Deseja continuar?" #: src/mapView.js:665 #, javascript-format msgid "" "You are about to open files with a total size of %s MB. This could take some " "time to load" msgstr "" "Está prestes a abrir ficheiros com um tamanho total de %s MB. Isto pode " "demorar algum tempo a carregar" #: src/mapView.js:672 src/transitplugins/openTripPlanner.js:1239 #: src/transitplugins/openTripPlanner2.js:267 msgid "Continue" msgstr "Continue" #: src/mapView.js:704 msgid "File type is not supported" msgstr "Tipo de ficheiro não suportado" #: src/mapView.js:741 msgid "Failed to open GeoURI" msgstr "Falha ao abrir o GeoURI" #: src/mapView.js:1205 msgid "Nothing found here!" msgstr "Nada encontrado aqui!" #: src/mapView.js:1245 msgid "Zoom in to add location" msgstr "Ampliar para adicionar a localização" #: src/mapView.js:1266 msgid "Location was added in OpenStreetMap" msgstr "A localização foi adicionada no OpenStreetMap" #. switch back to the sign-in view, and show a toast indicating #. that verification failed #: src/osmAccountDialog.js:134 msgid "The verification code didn’t match, please try again." msgstr "O código de verificação não correspondeu, por favor, tente novamente." #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:335 msgid "Incorrect user name or password" msgstr "Utilizador ou palavra-passe incorretos" #: src/osmConnection.js:337 msgid "Success" msgstr "Sucesso" #: src/osmConnection.js:339 msgid "Bad request" msgstr "Mau pedido" #: src/osmConnection.js:341 msgid "Object not found" msgstr "Objeto não encontrado" #: src/osmConnection.js:343 msgid "Conflict, someone else has just modified the object" msgstr "Conflito, alguém acabou de modificar o objeto" #: src/osmConnection.js:345 msgid "Object has been deleted" msgstr "O objeto foi eliminado" #: src/osmConnection.js:347 msgid "Way or relation refers to non-existing children" msgstr "Caminho ou relação referem-se a filho não existente" #: src/osmEditDialog.js:106 msgid "Name" msgstr "Nome" #: src/osmEditDialog.js:109 msgid "The official name. This is typically what appears on signs." msgstr "O nome oficial. Isto é tipicamente o que aparece nos sinais." #: src/osmEditDialog.js:112 msgid "Address" msgstr "Endereço" #: src/osmEditDialog.js:120 src/placeView.js:275 msgid "Website" msgstr "Página Web" #: src/osmEditDialog.js:124 msgid "This is not a valid URL. Make sure to include http:// or https://." msgstr "" "Isto não é um URL válido. Certifique-se de incluir http:// ou https://." #: src/osmEditDialog.js:125 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" "A página Web oficial. Tente utilizar a forma mais básica do URL p.ex. http://" "exemplo.com em vez de http://exemplo.com/index.html." #: src/osmEditDialog.js:130 msgid "Phone" msgstr "Telefone" #: src/osmEditDialog.js:134 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" "Número de telefone. Utilize o formato internacional, começando com o sinal " "+. Tenha atenção às leis locais de privacidade, sobretudo para números de " "telefone privados." #: src/osmEditDialog.js:139 src/placeView.js:308 msgid "Email" msgstr "Correio eletrónico" #: src/osmEditDialog.js:144 msgid "" "This is not a valid email address. Make sure to not include the mailto: " "protocol prefix." msgstr "" "Este não é um endereço de correio eletrónico válido. Certifique-se de não " "incluir o mailto: prefixo de protocolo." #: src/osmEditDialog.js:145 msgid "" "Contact email address for inquiries. Add only email addresses that are " "intended to be publicly used." msgstr "" "Endereço de e-mail de contacto para pedidos de informação. Adicionar apenas " "endereços de correio eletrónico que se destinam a ser utilizados " "publicamente." #. Translators: This is the text for the "Wikipedia" link at the end #. of summaries #: src/osmEditDialog.js:149 src/placeView.js:727 msgid "Wikipedia" msgstr "Wikipedia" #: src/osmEditDialog.js:156 src/placeView.js:399 msgid "Opening hours" msgstr "Horário de funcionamento" #: src/osmEditDialog.js:161 msgid "See the link in the label for help on format." msgstr "Veja a ligação na etiqueta para ajuda no formato." #. TODO: this is a bit of a work-around to re-interpret the population, #. * stored as a string into an integer to convert back to a locale- #. * formatted string. Ideally it should be kept as an integer value #. * in the Place class. But this will also need to be handled by the #. * PlaceStore, possible in a backwards-compatible way #. #: src/osmEditDialog.js:164 src/placeView.js:509 msgid "Population" msgstr "População" #: src/osmEditDialog.js:169 src/placeView.js:538 msgid "Altitude" msgstr "Altitude" #: src/osmEditDialog.js:172 msgid "Elevation (height above sea level) of a point in meters." msgstr "Elevação (altura acima do nível do mar) de um ponto em metros." #: src/osmEditDialog.js:175 msgid "Wheelchair access" msgstr "Acesso para cadeiras de rodas" #: src/osmEditDialog.js:178 src/osmEditDialog.js:187 src/osmEditDialog.js:198 #: src/osmEditDialog.js:233 msgid "Yes" msgstr "Sim" #: src/osmEditDialog.js:179 src/osmEditDialog.js:188 src/osmEditDialog.js:199 #: src/osmEditDialog.js:234 msgid "No" msgstr "Não" #: src/osmEditDialog.js:180 msgid "Limited" msgstr "Limitado" #: src/osmEditDialog.js:181 msgid "Designated" msgstr "Designado" #: src/osmEditDialog.js:184 msgid "Internet access" msgstr "Acesso à Internet" #: src/osmEditDialog.js:189 msgid "Wi-Fi" msgstr "Wi-Fi" #: src/osmEditDialog.js:190 msgid "Wired" msgstr "Ligado" #: src/osmEditDialog.js:191 msgid "Terminal" msgstr "Terminal" #: src/osmEditDialog.js:192 msgid "Service" msgstr "Serviço" #: src/osmEditDialog.js:195 msgid "Takeout" msgstr "Encomenda" #: src/osmEditDialog.js:200 msgid "Only" msgstr "Apenas" #: src/osmEditDialog.js:203 msgid "Religion" msgstr "Religião" #: src/osmEditDialog.js:206 src/translations.js:286 msgid "Animism" msgstr "Animismo" #: src/osmEditDialog.js:207 msgid "Bahá’í" msgstr "Bahá’í" #: src/osmEditDialog.js:208 src/translations.js:288 msgid "Buddhism" msgstr "Budismo" #: src/osmEditDialog.js:209 src/translations.js:289 msgid "Caodaism" msgstr "Caodaismo" #: src/osmEditDialog.js:210 src/translations.js:290 msgid "Christianity" msgstr "Cristianismo" #: src/osmEditDialog.js:211 src/translations.js:291 msgid "Confucianism" msgstr "Confusionismo" #: src/osmEditDialog.js:212 src/translations.js:292 msgid "Hinduism" msgstr "Hinduísmo" #: src/osmEditDialog.js:213 src/translations.js:293 msgid "Jainism" msgstr "Jinismo" #: src/osmEditDialog.js:214 src/translations.js:294 msgid "Judaism" msgstr "Judaísmo" #: src/osmEditDialog.js:215 src/translations.js:295 msgid "Islam" msgstr "Islamismo" #: src/osmEditDialog.js:216 src/translations.js:296 msgid "Multiple Religions" msgstr "Múltiplas religiões" #: src/osmEditDialog.js:217 src/translations.js:297 msgid "Paganism" msgstr "Paganismo" #: src/osmEditDialog.js:218 src/translations.js:298 msgid "Pastafarianism" msgstr "Pastafarianismo" #: src/osmEditDialog.js:219 src/translations.js:299 msgid "Scientology" msgstr "Cientologia" #: src/osmEditDialog.js:220 src/translations.js:300 msgid "Shinto" msgstr "Xintoísmo" #: src/osmEditDialog.js:221 src/translations.js:301 msgid "Sikhism" msgstr "Siquismo" #: src/osmEditDialog.js:222 src/translations.js:302 msgid "Spiritualism" msgstr "Espiritualismo" #: src/osmEditDialog.js:223 src/translations.js:303 msgid "Taoism" msgstr "Taioísmo" #: src/osmEditDialog.js:224 src/translations.js:304 msgid "Unitarian Universalism" msgstr "Universalismo Unitário" #: src/osmEditDialog.js:225 src/translations.js:305 msgid "Voodoo" msgstr "Voodoo" #: src/osmEditDialog.js:226 src/translations.js:306 msgid "Yazidism" msgstr "Yazidismo" #: src/osmEditDialog.js:227 src/translations.js:307 msgid "Zoroastrianism" msgstr "Zoroastrianismo" #: src/osmEditDialog.js:230 src/poiCategories.js:176 msgid "Toilets" msgstr "Casas de banho" #: src/osmEditDialog.js:237 msgid "Note" msgstr "Nota" #: src/osmEditDialog.js:240 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" "Informação utilizada para informar outros contribuidores acerca de " "informações não tão óbvias de elementos, a intenção do autor ao criá-los, ou " "dicas para aperfeiçoamentos." #: src/osmEditDialog.js:339 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "Adicionar ao OpenStreetMap" #: src/osmEditDialog.js:393 msgid "Select Type" msgstr "Selecione o tipo" #: src/osmEditDialog.js:515 msgid "Done" msgstr "Concluído" #: src/osmEditDialog.js:818 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "" "O formato utilizado deve incluir um código de linguagem e um título de " "artigo tal como \"pt:Título do artigo\"." #: src/osmEditDialog.js:824 msgid "Use the reload button to load the Wikidata tag for the selected article" msgstr "" "Use o botão recarregar para carregar a Wikidata tag para o artigo selecionado" #: src/osmEditDialog.js:832 msgid "Couldn't find Wikidata tag for article" msgstr "Não foi possível encontrar a Wikidata tag para o artigo" #: src/photonUtils.js:118 msgid "Unnamed place" msgstr "Local sem nome" #: src/placeEntry.js:274 msgid "Failed to parse Geo URI" msgstr "Falha ao processar URI Geo" #: src/placeEntry.js:286 msgid "Failed to parse Maps URI" msgstr "Falha ao processar URI Mapas" #. 300 ft (300 * 12 * 0.0254 m) #. #. * Translators: This a format string for showing a distance to a place #. * is lower than a "quite short" distance. #. * The "less than" symbol can be substituded with an appropriate one, if #. * needed (e.g. using the correct direction, or alternative symbol). #. * The %s should be kept, and is substituted with a label representing the #. * short distance. The \u2009 (thin space) could also be adjusted if needed #: src/placeListRow.js:46 #, javascript-format msgctxt "short distance format string" msgid "< %s" msgstr "< %s" #: src/placeView.js:263 msgid "Coordinates" msgstr "Coordenadas" #: src/placeView.js:267 msgid "Accuracy" msgstr "Precisão" #. Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) #: src/placeView.js:270 #, javascript-format msgid "Accuracy: %s" msgstr "Precisão: %s" #. since the phone numbers are typically always rendered #. * left-to-right, insert an explicit LRM char to avoid issues #. * with phone numbers in international format starting with a + #. * which is considered a "weak" character to determine Unicode #. * text direction #. #: src/placeView.js:289 msgid "Phone number" msgstr "Número da telefone" #. If a reference to a named floor (named or symbolic) exists #. * refer to it directly. #. #. Translators: #. * This is a reference to named building floor, using a label #. * or a code, as "displayed in the elevator" #. #: src/placeView.js:323 src/placeView.js:362 msgid "Floor" msgstr "Piso" #: src/placeView.js:325 #, javascript-format msgid "Floor %s" msgstr "Piso %s" #: src/placeView.js:337 msgid "At ground level" msgstr "Ao nível do solo" #. Translators: #. * This is a reference to a number of floors above #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:346 #, javascript-format msgid "%s floor above ground level" msgid_plural "%s floors above ground level" msgstr[0] "%s piso acima do nível do solo" msgstr[1] "%s pisos acima do nível do solo" #. Translators: #. * This is a reference to a number of floors below #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:357 #, javascript-format msgid "%s floor below ground level" msgid_plural "%s floors below ground level" msgstr[0] "%s piso abaixo do nível do solo" msgstr[1] "%s pisos abaixo do nível do solo" #. Translators: #. * The establishment offers customers to purchase meals #. * (or similar) to be consumed elsewhere #. #: src/placeView.js:375 msgid "Offers takeout" msgstr "Oferece comida para levar" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed on-premise. #. #: src/placeView.js:383 msgid "Does not offer takeout" msgstr "Não oferece comida para levar" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed elsewhere. E.g. #. * there is no seating on-premise for eating/drinking #. #: src/placeView.js:392 msgid "Only offers takeout" msgstr "Apenas oferece comida para levar" #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/placeView.js:409 msgid "Public internet access" msgstr "Acesso público à Internet" #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/placeView.js:418 msgid "No internet access" msgstr "Sem acesso à Internet" #. Translators: #. * This means a WLAN Hotspot, also known as wireless, wifi or Wi-Fi. #. #: src/placeView.js:426 msgid "Public Wi-Fi" msgstr "Wi-Fi público" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/placeView.js:434 msgid "Wired internet access" msgstr "Acesso à Internet por cabo" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/placeView.js:442 msgid "Computers available for use" msgstr "Computadores disponíveis para utilização" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/placeView.js:450 msgid "Internet assistance available" msgstr "Assistência na Internet disponível" #: src/placeView.js:456 msgid "No toilets available" msgstr "Sem casas de banho disponíveis" #: src/placeView.js:459 msgid "Toilets available" msgstr "Casas de banho disponíveis" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #: src/placeView.js:468 msgid "Wheelchair accessible" msgstr "Acessível a cadeiras de rodas" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/placeView.js:478 msgid "Limited wheelchair accessibility" msgstr "Acesso limitado a cadeiras de rodas" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #: src/placeView.js:487 msgid "Not wheelchair accessible" msgstr "Não acessível a cadeira de rodas" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/placeView.js:497 msgid "Designated for wheelchair users" msgstr "Designado para utilizadores de cadeiras de rodas" #. * #. * Translators: this is a label indicating an altitude below #. * sea level, where the %s placeholder is the altitude relative #. * to mean sea level in the "negative direction" #. #: src/placeView.js:528 #, javascript-format msgid "%s below sea level" msgstr "%s abaixo do nível do mar" #. * #. * Translators: this indicates a place is located at (or very #. * close to) mean sea level #. #: src/placeView.js:535 msgid "At sea level" msgstr "No nível do mar" #: src/placeView.js:544 msgid "Religion:" msgstr "Religião:" #: src/place.js:576 msgid "Place not found in OpenStreetMap" msgstr "Sítio não encontrado no OpenStreetMap" #: src/place.js:583 msgid "Coordinates in URL are not valid" msgstr "Coordenadas no URL não são válidas" #: src/place.js:592 msgid "URL is not supported" msgstr "URL não suportado" #: src/poiCategories.js:132 msgid "Amenities" msgstr "Serviços" #: src/poiCategories.js:135 msgid "ATMs" msgstr "ATMs" #: src/poiCategories.js:141 msgid "Post Boxes" msgstr "Caixas de correio" #: src/poiCategories.js:147 msgid "Post Offices" msgstr "Correios" #: src/poiCategories.js:153 msgid "Police" msgstr "Polícia" #: src/poiCategories.js:159 msgid "Libraries" msgstr "Bibliotecas" #: src/poiCategories.js:165 msgid "Pharmacies" msgstr "Farmácias" #: src/poiCategories.js:171 msgid "Recycling" msgstr "Reciclagem" #: src/poiCategories.js:182 msgid "Wheelchair-accessible Toilets" msgstr "Casas de banho acessíveis a cadeiras de rodas" #: src/poiCategories.js:188 msgid "Baggage Lockers" msgstr "Cacifos de bagagem" #: src/poiCategories.js:196 msgid "Eating & Drinking" msgstr "Comer e beber" #: src/poiCategories.js:200 msgid "Restaurants" msgstr "Restaurantes" #: src/poiCategories.js:205 msgid "Fast Food" msgstr "Comida Rápida" #: src/poiCategories.js:210 msgid "Food Courts" msgstr "Praças de restauração" #: src/poiCategories.js:215 msgid "Pubs" msgstr "Pubs" #: src/poiCategories.js:221 msgid "Bars" msgstr "Bares" #: src/poiCategories.js:226 msgid "Cafes" msgstr "Cafés" #: src/poiCategories.js:231 msgid "Ice Cream" msgstr "Gelados" #: src/poiCategories.js:236 msgid "Food, Snacks, and Beverage Machines" msgstr "Máquinas de alimentos, snacks e bebidas" #: src/poiCategories.js:244 msgid "Shopping" msgstr "Compras" #: src/poiCategories.js:248 msgid "Supermarkets" msgstr "Supermercados" #: src/poiCategories.js:254 msgid "Convenience Stores" msgstr "Lojas de conveniência" #: src/poiCategories.js:259 msgid "Shopping Malls" msgstr "Centros comerciais" #: src/poiCategories.js:265 msgid "Clothes" msgstr "Roupas" #: src/poiCategories.js:271 msgid "Shoes" msgstr "Sapatos" #: src/poiCategories.js:276 msgid "Electronics" msgstr "Electrónica" #: src/poiCategories.js:282 msgid "Alcohol" msgstr "Álcool" #: src/poiCategories.js:288 msgid "Bakeries" msgstr "Padarias" #: src/poiCategories.js:294 msgid "Flowers" msgstr "Flores" #: src/poiCategories.js:301 msgid "Transportation" msgstr "Transporte" #: src/poiCategories.js:305 msgid "Bus & Tram Stops" msgstr "Paragens de autocarro e elétrico" #: src/poiCategories.js:313 msgid "Train & Subway Stations" msgstr "Estações de comboio e metro" #: src/poiCategories.js:321 msgid "Tickets" msgstr "Bilhetes" #: src/poiCategories.js:329 msgid "Parking" msgstr "Estacionamento" #: src/poiCategories.js:334 msgid "Bicycle Parking" msgstr "Estacionamento de bicicletas" #: src/poiCategories.js:339 msgid "Bicycle Rental" msgstr "Aluguer de bicicletas" #: src/poiCategories.js:344 msgid "Car Rental" msgstr "Aluguer de carros" #: src/poiCategories.js:349 msgid "Fuel" msgstr "Combustível" #: src/poiCategories.js:354 msgid "EV Charging" msgstr "Carregamento de veículos elétricos" #: src/poiCategories.js:362 msgid "Healthcare" msgstr "Saúde" #: src/poiCategories.js:366 msgid "Clinics" msgstr "Clínicas" #: src/poiCategories.js:372 msgid "Hospitals" msgstr "Hospitais" #: src/poiCategories.js:378 msgid "Dentists" msgstr "Dentistas" #: src/poiCategories.js:386 msgid "Accommodation" msgstr "Alojamento" #: src/poiCategories.js:390 msgid "Hotels" msgstr "Hotéis" #: src/poiCategories.js:395 msgid "Hostels" msgstr "Albergues" #: src/poiCategories.js:400 msgid "Bed & Breakfast" msgstr "Alojamento e pequeno-almoço" #: src/poiCategories.js:405 msgid "Campings" msgstr "Parques de campismo" #: src/poiCategories.js:412 msgid "Recreation" msgstr "Lazer" #: src/poiCategories.js:416 msgid "Parks" msgstr "Parques" #: src/poiCategories.js:421 msgid "Playgrounds" msgstr "Parques infantis" #: src/poiCategories.js:425 msgid "Beaches" msgstr "Praias" #: src/poiCategories.js:430 msgid "Nature Reserves" msgstr "Reservas naturais" #: src/poiCategories.js:436 msgid "Theme Parks" msgstr "Parques temáticos" #: src/poiCategories.js:441 msgid "Theaters" msgstr "Teatros" #: src/poiCategories.js:447 msgid "Movie Theaters" msgstr "Cinemas" #: src/poiCategories.js:453 msgid "Night Clubs" msgstr "Clubes noturnos" #: src/poiCategories.js:460 msgid "Tourism" msgstr "Turismo" #: src/poiCategories.js:464 msgid "Museums" msgstr "Museus" #: src/poiCategories.js:470 msgid "Attractions" msgstr "Atrações" #: src/poiCategories.js:475 msgid "Artworks" msgstr "Gráficos" #: src/poiCategories.js:480 msgid "Tourist Information" msgstr "Informações turísticas" #: src/poiCategories.js:487 msgid "Sports" msgstr "Desportos" #: src/poiCategories.js:491 msgid "Gyms" msgstr "Ginásios" #: src/poiCategories.js:497 msgid "Outdoor Gyms" msgstr "Ginásios ao ar livre" #: src/poiCategories.js:503 msgid "Golf Courses" msgstr "Campos de golfe" #: src/printLayout.js:350 #, javascript-format msgid "From %s to %s" msgstr "De %s para %s" #: src/printOperation.js:49 msgid "Loading map tiles for printing" msgstr "A carregar telas de mapa para impressão" #: src/printOperation.js:50 msgid "You can abort printing if this takes too long" msgstr "Pode abortar a impressão se isto demorar demasiado" #: src/printOperation.js:52 msgid "Abort printing" msgstr "Abortar impressão" #. Translators: this is add via location tooltip #: src/routeEntry.js:60 msgid "Add via location" msgstr "Adicionar um destino intermediário" #. Translators: this is remove via location tooltip #: src/routeEntry.js:70 msgid "Remove via location" msgstr "Remover o destino intermediário" #. Translators: this is reverse route tooltip #: src/routeEntry.js:76 msgid "Reverse route" msgstr "Reverter a rota" #: src/searchBar.js:45 msgid "Search" msgstr "Pesquisar" #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:84 #, javascript-format msgid "Add %s to %s" msgstr "Adicionar %s com %s" #: src/sendToDialog.js:181 msgid "Failed to open URI" msgstr "Falha ao abrir URI" #: src/sendToDialog.js:246 #, javascript-format msgid "Open with %s" msgstr "Abrir com %s" #: src/shapeLayer.js:109 msgid "failed to load file" msgstr "falha ao carregar o ficheiro" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:328 #, javascript-format msgid "Estimated time: %s" msgstr "Tempo estimado: %s" #: src/sidebar.js:398 #, javascript-format msgid "Itineraries provided by %s" msgstr "Itinerário fornecidos por %s" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:39 #, javascript-format msgid "Start at %s" msgstr "Partir de %s" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:45 src/transitplugins/openTripPlanner2.js:236 msgid "Start" msgstr "Partir" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:63 #, javascript-format msgid "Walk %s" msgstr "Caminhar %s" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:77 #, javascript-format msgid "Arrive at %s" msgstr "Chegar à %s" #: src/transit.js:79 src/transitplugins/openTripPlanner.js:1176 #: src/transitplugins/openTripPlanner2.js:255 msgid "Arrive" msgstr "Chegar" #: src/transitLegRow.js:69 msgid "Show walking instructions" msgstr "Ver as instruções de caminhada" #: src/transitLegRow.js:70 msgid "Hide walking instructions" msgstr "Ocultar as instruções de caminhada" #: src/transitMoreRow.js:37 msgid "Load earlier alternatives" msgstr "Carregar as alternativas antecedentes" #: src/transitMoreRow.js:39 msgid "Load later alternatives" msgstr "Carregar as alternativas subsequentes" #: src/transitMoreRow.js:52 msgid "No earlier alternatives found." msgstr "Sem alternativas antecedentes." #: src/transitMoreRow.js:54 msgid "No later alternatives found." msgstr "Sem alternativas subsequentes." #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:138 msgctxt "month-day-date" msgid "%b %e" msgstr "%e de %b" #: src/transitPlan.js:171 msgid "No timetable data found for this route." msgstr "Nenhum dado de horário encontrado nesta rota." #: src/transitPlan.js:179 msgid "No provider found for this route." msgstr "Nenhum fornecedor encontrado nesta rota." #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:300 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:331 #, javascript-format msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "%s minuto" msgstr[1] "%s minutos" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:343 #, javascript-format msgid "%s hour" msgid_plural "%s hours" msgstr[0] "%s hora" msgstr[1] "%s horas" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:351 #, javascript-format msgid "%s:%s hour" msgid_plural "%s:%s hours" msgstr[0] "%s:%s hora" msgstr[1] "%s:%s horas" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:744 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: src/translations.js:55 msgid "Around the clock" msgstr "24 horas" #: src/translations.js:57 msgid "From sunrise to sunset" msgstr "Do nascer ao pôr do Sol" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:123 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s, %s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:137 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s, %s, %s" #: src/translations.js:156 msgid "Every day" msgstr "Todos os dias" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:168 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s - %s" #: src/translations.js:179 msgid "Public holidays" msgstr "Feriados públicos" #: src/translations.js:181 msgid "School holidays" msgstr "Feriados escolares" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:221 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: src/translations.js:235 msgid "not open" msgstr "fechado" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:250 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s - %s" #: src/translations.js:287 msgid "Bahá'í" msgstr "Bahá'í" #. Translators: Accuracy of user location information #: src/utils.js:248 msgid "Unknown" msgstr "Desconhecida" #. Translators: Accuracy of user location information #: src/utils.js:251 msgid "Exact" msgstr "Exata" #. Translators: this is a duration with only hours, using #. * an abbreviation for hours, corresponding to 'h' in English #. #: src/utils.js:307 #, javascript-format msgid "%s h" msgstr "%s h" #. Translators: this is a duration with hours and minutes parts #. * using abbreviations for hours and minutes, corresponding to 'h' #. * and 'min' in English. The minutes has appropriate plural variations #. #: src/utils.js:313 #, javascript-format msgid "%s h %s min" msgid_plural "%s h %s min" msgstr[0] "%s h %s min" msgstr[1] "%s h %s min" #. Translators: this is a duration with minutes part #. * using abbreviation for minutes, corresponding to 'min' in English #. * with appropriate plural variations #. #: src/utils.js:320 #, javascript-format msgid "%s min" msgid_plural "%s min" msgstr[0] "%s min" msgstr[1] "%s min" #. Translators: this is a duration of less than one minute #. * with seconds using an abbreviation for seconds, corresponding to #. * 's' in English with appropriate plural forms #. #: src/utils.js:326 #, javascript-format msgid "%s s" msgid_plural "%s s" msgstr[0] "%s s" msgstr[1] "%s s" #. Translators: This is a distance measured in kilometers #: src/utils.js:337 #, javascript-format msgid "%s km" msgstr "%s km" #. Translators: This is a distance measured in meters #: src/utils.js:340 #, javascript-format msgid "%s m" msgstr "%s m" #. Translators: This is a distance measured in miles #: src/utils.js:348 #, javascript-format msgid "%s mi" msgstr "%s mi" #. Translators: This is a distance measured in feet #: src/utils.js:351 #, javascript-format msgid "%s ft" msgstr "%s ft" #: src/transitplugins/goMetro.js:61 msgid "This plugin doesn't support latest arrival" msgstr "Esta extensão não suporta a última chegada" #: src/transitplugins/openTripPlanner.js:1237 #: src/transitplugins/openTripPlanner2.js:266 #, javascript-format msgid "Continue on %s" msgstr "Continue em %s" #: src/transitplugins/openTripPlanner.js:1242 #: src/transitplugins/openTripPlanner2.js:270 #, javascript-format msgid "Turn left on %s" msgstr "Vire à esquerda em %s" #: src/transitplugins/openTripPlanner.js:1244 #: src/transitplugins/openTripPlanner2.js:271 msgid "Turn left" msgstr "Vire à esquerda" #: src/transitplugins/openTripPlanner.js:1247 #: src/transitplugins/openTripPlanner2.js:275 #, javascript-format msgid "Turn slightly left on %s" msgstr "Vire curva ligeira à esquerda em %s" #: src/transitplugins/openTripPlanner.js:1249 #: src/transitplugins/openTripPlanner2.js:276 msgid "Turn slightly left" msgstr "Vire curva ligeira à esquerda" #: src/transitplugins/openTripPlanner.js:1252 #: src/transitplugins/openTripPlanner2.js:280 #, javascript-format msgid "Turn sharp left on %s" msgstr "Vire curva apertada à esquerda em %s" #: src/transitplugins/openTripPlanner.js:1254 #: src/transitplugins/openTripPlanner2.js:281 msgid "Turn sharp left" msgstr "Vire curva apertada à esquerda" #: src/transitplugins/openTripPlanner.js:1257 #: src/transitplugins/openTripPlanner2.js:284 #, javascript-format msgid "Turn right on %s" msgstr "Vire à direita em %s" #: src/transitplugins/openTripPlanner.js:1259 #: src/transitplugins/openTripPlanner2.js:285 msgid "Turn right" msgstr "Vire à direita" #: src/transitplugins/openTripPlanner.js:1262 #: src/transitplugins/openTripPlanner2.js:289 #, javascript-format msgid "Turn slightly right on %s" msgstr "Vire curva ligeira à direita em %s" #: src/transitplugins/openTripPlanner.js:1264 #: src/transitplugins/openTripPlanner2.js:290 msgid "Turn slightly right" msgstr "Vire curva ligeira à direita" #: src/transitplugins/openTripPlanner.js:1267 #: src/transitplugins/openTripPlanner2.js:294 #, javascript-format msgid "Turn sharp right on %s" msgstr "Vire curva apertada à direita em %s" #: src/transitplugins/openTripPlanner.js:1269 #: src/transitplugins/openTripPlanner2.js:295 msgid "Turn sharp right" msgstr "Vire curva apertada à direita" #: src/transitplugins/openTripPlanner.js:1275 #: src/transitplugins/openTripPlanner2.js:302 #, javascript-format msgid "At the roundabout, take exit %s" msgstr "Na rotunda, tome a saída %s" #: src/transitplugins/openTripPlanner.js:1277 #: src/transitplugins/openTripPlanner2.js:305 #, javascript-format msgid "At the roundabout, take exit to %s" msgstr "Na rotunda, tome a saída para %s" #: src/transitplugins/openTripPlanner.js:1279 #: src/transitplugins/openTripPlanner2.js:307 msgid "Take the roundabout" msgstr "Tome a rotunda" #: src/transitplugins/openTripPlanner.js:1283 #: src/transitplugins/openTripPlanner2.js:315 #, javascript-format msgid "Take the elevator and get off at %s" msgstr "Tome o elevador e saia em %s" #: src/transitplugins/openTripPlanner.js:1285 #: src/transitplugins/openTripPlanner2.js:316 msgid "Take the elevator" msgstr "Tome o elevador" #: src/transitplugins/openTripPlanner.js:1289 #: src/transitplugins/openTripPlanner2.js:320 #, javascript-format msgid "Make a left u-turn onto %s" msgstr "Faça uma curva em u à esquerda em %s" #: src/transitplugins/openTripPlanner.js:1291 #: src/transitplugins/openTripPlanner2.js:321 msgid "Make a left u-turn" msgstr "Faça uma curva em u à esquerda" #: src/transitplugins/openTripPlanner.js:1294 #: src/transitplugins/openTripPlanner2.js:325 #, javascript-format msgid "Make a right u-turn onto %s" msgstr "Faça uma curva em u à direita em %s" #: src/transitplugins/openTripPlanner.js:1296 #: src/transitplugins/openTripPlanner2.js:326 msgid "Make a right u-turn" msgstr "Faça uma curva em u à direita em %s" #~ msgid "Sign in to edit maps" #~ msgstr "" #~ "Inicie uma sessão para editar " #~ "mapas" #~ msgid "" #~ "Sign in to authorize access in a web browser.\n" #~ "Then fill in the obtained verification code here in the next step." #~ msgstr "" #~ "Inicie a sessão para autorizar o acesso num navegador web.\n" #~ "Em seguida, preencha o código de verificação obtido aqui no passo " #~ "seguinte." #~ msgid "Signed In" #~ msgstr "Sessão iniciada" #~ msgid "E-mail" #~ msgstr "Correio eletrónico" #~ msgid "Sign up" #~ msgstr "Inscrever-se" #~ msgid "Filesystem is read only" #~ msgstr "O sistema de ficheiros é só de leitura" #~ msgid "You do not have permission to save there" #~ msgstr "Não tem permissão para gravar aí" #~ msgid "The directory does not exist" #~ msgstr "O diretório não existe" #~ msgid "No filename specified" #~ msgstr "Sem nome de ficheiro" #~ msgid "" #~ "Location was added to the map, note that it may take a while before it " #~ "shows on the map and in search results." #~ msgstr "" #~ "Localização foi adicionada ao mapa, note que pode demorar um pouco antes " #~ "de mostrar no mapa e nos resultados pesquisados." #~ msgid "Takeaway" #~ msgstr "Takeaway" #~ msgid "Go to current location" #~ msgstr "Ver a sua localização atual" #~ msgid "Choose map type" #~ msgstr "Escolher o tipo de mapa" #~ msgid "Zoom in" #~ msgstr "Ampliar" #~ msgid "Drag to change order of the route" #~ msgstr "Arraste-o para alterar a ordem em que aparece na rota" #~ msgid "A map application for GNOME" #~ msgstr "Uma aplicação de mapas para o GNOME" #~ msgid "Failed to authorize access" #~ msgstr "Falha ao autorizar o acesso" #~ msgid "Try again" #~ msgstr "Tentar novamente" #~ msgid "Use hybrid aerial tiles" #~ msgstr "Utilizar vista aérea híbrida" #~ msgid "Whether aerial tiles should use hybrid style (with labels)." #~ msgstr "Se a vista aérea deve utilizar estilo híbrido (com rótulos)." #~ msgid "Include route and markers" #~ msgstr "Incluir a rota e os marcadores" #~ msgid "Show Labels" #~ msgstr "Ver os rótulos" #~ msgid "Foursquare check-in privacy setting" #~ msgstr "Definição de privacidade para o Foursquare" #~ msgid "" #~ "Latest used Foursquare check-in privacy setting. Possible values are: " #~ "public, followers or private." #~ msgstr "" #~ "Última definição de privacidade usada para o Foursquare. Valores " #~ "possíveis são: público, seguidores ou privado." #~ msgid "Foursquare check-in Facebook broadcasting" #~ msgstr "Emissão do Foursquare para o Facebook" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a post in the " #~ "Facebook account associated with the Foursquare account." #~ msgstr "" #~ "Indica se o Foursquare deve emitir como publicação na conta do Facebook " #~ "associada à conta Foursquare." #~ msgid "Foursquare check-in Twitter broadcasting" #~ msgstr "Emissão do Foursquare para o Twitter" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a tweet in the " #~ "Twitter account associated with the Foursquare account." #~ msgstr "" #~ "Indica se o Foursquare deve emitir como tweet na conta do Twitter " #~ "associada à conta Foursquare." #~ msgid "Visibility" #~ msgstr "Visibilidade" #~ msgid "Post on Facebook" #~ msgstr "Publicar no Facebook" #~ msgid "Post on Twitter" #~ msgstr "Publicar no Twitter" #~ msgid "C_heck in" #~ msgstr "_Inscrever" #~ msgid "Public" #~ msgstr "Público" #~ msgid "Private" #~ msgstr "Privado" #~ msgid "Maps is offline!" #~ msgstr "O Mapas está desligado!" #~ msgid "" #~ "Maps need an active internet connection to function properly, but one " #~ "can’t be found." #~ msgstr "" #~ "O Mapas precisa de uma ligação à Internet ativa para funcionar " #~ "corretamente, mas não encontrou nenhuma." #~ msgid "Check your connection and proxy settings." #~ msgstr "Verifique a sua ligação e definições de proxy." #~ msgid "Password" #~ msgstr "Palavra-passe" #~ msgid "" #~ "Sorry, that didn’t work. Please try again, or visit\n" #~ "OpenStreetMap to reset your password." #~ msgstr "" #~ "Desculpe, não resultou. Por favor, tente novamente ou visite\n" #~ "OpenStreetMap para repor a sua senha." #~ msgid "Check In…" #~ msgstr "_Inscrever…" #~ msgid "Ignore network availability" #~ msgstr "Ignorar a disponibilidade de rede" #~ msgid "Select an account" #~ msgstr "Selecione uma conta" #~ msgid "Loading" #~ msgstr "A carregar" #~ msgid "Select a place" #~ msgstr "Selecione um local" #~ msgid "" #~ "Maps cannot find the place to check in to with Foursquare. Please select " #~ "one from this list." #~ msgstr "" #~ "O Mapas não pode encontrar o local para inscrição com o Foursquare. Por " #~ "favor, selecione outro na lista." #, javascript-format #~ msgid "Check in to %s" #~ msgstr "Inscrever-se em %s" #, javascript-format #~ msgid "Write an optional message to check in to %s." #~ msgstr "Escreva uma mensagem opcional para se inscrever em %s." #, javascript-format #~ msgid "Cannot find “%s” in the social service" #~ msgstr "Impossível encontrar “%s” no serviço social" #~ msgid "Cannot find a suitable place to check-in in this location" #~ msgstr "" #~ "Impossível encontrar um local adequado para inscrição nesta localização" #~ msgid "" #~ "Credentials have expired, please open Online Accounts to sign in and " #~ "enable this account" #~ msgstr "" #~ "As credenciais expiraram, por favor, abra as Contas online para iniciar " #~ "sessão e ativar esta conta" #~ msgid "GNOME Maps" #~ msgstr "Mapas do GNOME" #~ msgid "Night mode" #~ msgstr "Modo noturno" #~ msgid "Whether the application is in night mode." #~ msgstr "Se a aplicação está em modo noturno." #~ msgid "Night Mode" #~ msgstr "Modo noturno" #~ msgid "" #~ "You can even search for specific types of locations, such as “Pubs near " #~ "Main Street, Boston” or “Hotels near Alexanderplatz, Berlin”." #~ msgstr "" #~ "Procure por tipos de localizações específicas, tais como “Bares perto da " #~ "Rua Augusta, Lisboa” ou “Hotéis perto de Alexanderplatz, Berlin”." #~ msgid "Facebook check-in privacy setting" #~ msgstr "Definição de privacidade para o Facebook" #~ msgid "" #~ "Latest used Facebook check-in privacy setting. Possible values are: " #~ "EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS or SELF." #~ msgstr "" #~ "Última definição de privacidade usada para o Facebook. Valores possíveis " #~ "são EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS ou SELF." #~ msgid "Everyone" #~ msgstr "Todos" #~ msgid "Friends of friends" #~ msgstr "Amigos de amigos" #~ msgid "Just friends" #~ msgstr "Só amigos" #~ msgid "Just me" #~ msgstr "Só eu" #~ msgid "" #~ "Maps cannot find the place to check in to with Facebook. Please select " #~ "one from this list." #~ msgstr "" #~ "O Mapas não pode encontrar o local para inscrição com o Facebook. Por " #~ "favor, selecione outro na lista." #~ msgid "Check in here" #~ msgstr "Inscrever aqui" #~ msgid "Population:" #~ msgstr "População:" #~ msgid "Altitude:" #~ msgstr "Altitude:" #~ msgid "Opening hours:" #~ msgstr "Horário de funcionamento:" #~ msgid "Internet access:" #~ msgstr "Acesso à Internet:" #~ msgid "Toilets:" #~ msgstr "Casas de banho:" #~ msgid "Wheelchair access:" #~ msgstr "Acesso para cadeiras de rodas:" #~ msgid "Phone:" #~ msgstr "Telefone:" #~ msgid "yes" #~ msgstr "sim" #~ msgid "limited" #~ msgstr "limitado" #~ msgid "no" #~ msgstr "não" #~ msgid "designated" #~ msgstr "designado" #~ msgid "OpenStreetMap URL is not valid" #~ msgstr "O URL OpenStreetMap não é válido" #~ msgctxt "time range list" #~ msgid "%s %s" #~ msgstr "%s - %s" #~ msgctxt "time range list" #~ msgid "%s %s %s" #~ msgstr "%s - %s - %s" #~ msgctxt "time range component" #~ msgid "%s %s" #~ msgstr "%s - %s" #~ msgid "wired" #~ msgstr "ligado" #~ msgid "terminal" #~ msgstr "terminal" #~ msgid "service" #~ msgstr "serviço" #~| msgid "Print Route" #~ msgid "Find a Route" #~ msgstr "Encontrar uma Rota" #~ msgid "Quit" #~ msgstr "Sair" #~ msgid "Load Map Layer" #~ msgstr "Carregar camada de mapa" #~ msgid "Open with another application" #~ msgstr "Abrir com outra aplicação" #~ msgid "Don't have an account?" #~ msgstr "Não tem uma conta?" #~ msgid "Press enter to search" #~ msgstr "Prima Enter para procurar" #~ msgid "OK" #~ msgstr "OK" #~ msgid "%f h" #~ msgstr "%f h" #~ msgid "%f s" #~ msgstr "%f seg" #~ msgid "%f km" #~ msgstr "%f km" #~ msgid "%f m" #~ msgstr "%f m" #~ msgid "%f mi" #~ msgstr "%f mi" #~ msgid "%f ft" #~ msgstr "%f ft" #~ msgid "Position not found" #~ msgstr "Posição não encontrada" #~ msgid "Country code: %s" #~ msgstr "Código de país: %s" #~ msgid "Population: %s" #~ msgstr "População: %s" #~ msgid "Wheelchair access: %s" #~ msgstr "Acesso para deficientes: %s" #~ msgid "Failed to parse GeoJSON file" #~ msgstr "Falha ao processar ficheiro GeoJSON" #~ msgid "Last known location and accuracy" #~ msgstr "Última localização conhecida e precisão" #~ msgid "" #~ "Last known location (latitude and longitude in degrees) and accuracy (in " #~ "meters)." #~ msgstr "" #~ "Última localização conhecida (latitude e longitude em graus) e precisão " #~ "(em metros)." #~ msgid "Description of last known location of user." #~ msgstr "Descrição da última localização conhecida do utilizador." #~ msgid "Whether the last known location was set manually by the user." #~ msgstr "" #~ "Se a última localização conhecida foi definida manualmente pelo " #~ "utilizador ou não." #~ msgid "I’m here!" #~ msgstr "Estou aqui!" 070701000001E0000081A4000000000000000000000001664134090000E928000000000000000000000000000000000000001D00000000gnome-maps-46.11/po/pt_BR.po# Brazilian Portuguese translation for gnome-maps. # Copyright (C) 2024 gnome-maps's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-maps package. # Georges Basile Stavracas Neto , 2013. # Fábio Nogueira , 2016. # Artur de Aquino Morais , 2016. # Antonio Fernandes C. Neto , 2016. # Gustavo Marques , 2016. # Jamerson Tiossi , 2017. # Henrique Roberto Gattermann Mittelstaedt , 2020. # Bruno Lopes , 2018, 2020. # Enrico Nicoletto , 2013-2016, 2018, 2021-2022. # Matheus Barbosa , 2022. # Leônidas Araújo , 2022-2023. # Rafael Fontenelle , 2013-2023. # Matheus Polkorny , 2024. # msgid "" msgstr "" "Project-Id-Version: gnome-maps master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2024-04-20 09:42+0000\n" "PO-Revision-Date: 2024-04-09 21:16-0300\n" "Last-Translator: Matheus Polkorny \n" "Language-Team: Brazilian Portuguese \n" "Language: pt_BR\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: Gtranslator 45.3\n" "X-Project-Style: gnome\n" "X-DL-Team: pt_BR\n" "X-DL-Module: gnome-maps\n" "X-DL-Branch: main\n" "X-DL-Domain: po\n" "X-DL-State: Translating\n" #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.appdata.xml.in.in:6 data/org.gnome.Maps.desktop.in.in:4 #: data/ui/main-window.ui:27 src/application.js:64 src/mainWindow.js:147 #: src/mainWindow.js:647 msgid "Maps" msgstr "Mapas" #: data/org.gnome.Maps.appdata.xml.in.in:7 msgid "Find places around the world" msgstr "Encontre lugares ao redor do mundo" # O último 'ou' dá sentido de inclusão, pois ambos são opções válidas.--Enrico #: data/org.gnome.Maps.appdata.xml.in.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "Mapas oferece a você acesso rápido a mapas ao redor de todo o mundo. Permite " "que você localize rapidamente o local que deseja encontrar através da " "pesquisa por uma cidade ou rua e a encontrar um local para encontrar um " "amigo(a)." # Contribuições pois os usuários inserem os dados no banco de dados e não criam as tabelas deste --Enrico. #: data/org.gnome.Maps.appdata.xml.in.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "Mapas usa o banco de dados colaborativo do OpenStreetMap, com contribuições " "de centenas de milhares de pessoas ao redor do planeta." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Maps.appdata.xml.in.in:475 src/mainWindow.js:644 msgid "The GNOME Project" msgstr "O Projeto GNOME" #: data/org.gnome.Maps.desktop.in.in:5 msgid "A simple maps application" msgstr "Um simples aplicativo de mapas" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in.in:14 msgid "Maps;" msgstr "Mapas;" #: data/org.gnome.Maps.desktop.in.in:17 msgid "Allows your location to be shown on the map." msgstr "Permite que sua localização seja mostrada no mapa." #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "última localização vista" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "Coordenadas do última localização vista." #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "ampliação" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "Nível de ampliação" #: data/org.gnome.Maps.gschema.xml:21 msgid "rotation" msgstr "rotação" #: data/org.gnome.Maps.gschema.xml:22 msgid "Map rotation in radians" msgstr "Rotação do mapa em radianos" #: data/org.gnome.Maps.gschema.xml:26 msgid "Map type" msgstr "Tipo do mapa" #: data/org.gnome.Maps.gschema.xml:27 msgid "The type of map to display (street, aerial, etc.)" msgstr "O tipo do mapa para exibir (rua, aérea etc.)" #: data/org.gnome.Maps.gschema.xml:31 msgid "Window size" msgstr "Tamanho da janela" #: data/org.gnome.Maps.gschema.xml:32 msgid "Window size (width and height)." msgstr "Tamanho da janela (largura e altura)." #: data/org.gnome.Maps.gschema.xml:36 msgid "Window position" msgstr "Posição da janela" #: data/org.gnome.Maps.gschema.xml:37 msgid "Window position (X and Y)." msgstr "A posição da janela (X e Y)." #: data/org.gnome.Maps.gschema.xml:41 msgid "Window maximized" msgstr "Janela maximizada" #: data/org.gnome.Maps.gschema.xml:42 msgid "Window maximization state" msgstr "O estado de janela maximizada" #: data/org.gnome.Maps.gschema.xml:46 msgid "Maximum number of search results" msgstr "Número máximo de resultados de pesquisa" #: data/org.gnome.Maps.gschema.xml:47 msgid "Maximum number of search results from geocode search." msgstr "Número máximo de resultados da pesquisa por geocódigo." #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent places to store" msgstr "Número de lugares recentes para armazenar" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited places to store." msgstr "Número de lugares visitados recentemente para armazenar." #: data/org.gnome.Maps.gschema.xml:56 msgid "Number of recent routes to store" msgstr "Número de rotas recentes para armazenar" #: data/org.gnome.Maps.gschema.xml:57 msgid "Number of recently visited routes to store." msgstr "Número de rotas visitadas recentemente para armazenar." #: data/org.gnome.Maps.gschema.xml:61 msgid "OpenStreetMap username or email address" msgstr "Nome de usuário do OpenStreetMap ou endereço de e-mail" #: data/org.gnome.Maps.gschema.xml:62 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "Indica se o usuário ingressou para editar dados do OpenStreetMap." #: data/org.gnome.Maps.gschema.xml:66 msgid "Last used transportation type for routing" msgstr "Último tipo de transporte usado para rotas" #: data/org.gnome.Maps.gschema.xml:70 msgid "Show scale" msgstr "Mostrar escala" #: data/org.gnome.Maps.gschema.xml:71 msgid "Whether to show the scale." msgstr "Se deve mostrar a escala." #: data/ui/context-menu.ui:6 msgid "Route from Here" msgstr "Rota a partir daqui" #: data/ui/context-menu.ui:10 msgid "Add Intermediate Destination" msgstr "Adicionar destino intermediário" #: data/ui/context-menu.ui:14 msgid "Route to Here" msgstr "Rota para aqui" #: data/ui/context-menu.ui:20 msgid "What's Here?" msgstr "O que está aqui?" #: data/ui/context-menu.ui:24 msgid "Copy Location" msgstr "Copiar localização" #: data/ui/context-menu.ui:28 msgid "Add to OpenStreetMap…" msgstr "Adicionar ao OpenStreetMap…" #: data/ui/export-view-dialog.ui:7 msgid "Export view" msgstr "Exportar visão" #: data/ui/export-view-dialog.ui:16 data/ui/send-to-dialog.ui:10 #: data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "_Cancelar" #: data/ui/export-view-dialog.ui:26 msgid "_Export" msgstr "_Exportar" #. Translators: This is a tooltip #: data/ui/favorite-list-row.ui:72 msgid "Remove Favorite" msgstr "Remover favoritos" #: data/ui/favorites-popover.ui:11 msgid "No Favorites" msgstr "Sem favoritos" #: data/ui/favorites-popover.ui:12 msgid "Add places to your favorites to get them listed here" msgstr "Adicione lugares à sua lista de favoritos para acessá-los aqui" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:11 src/geoclue.js:106 src/placeBar.js:91 msgid "Current Location" msgstr "Localização Atual" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:19 msgid "Layers" msgstr "Camadas" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:11 msgid "Print Route" msgstr "Imprimir rota" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:21 msgid "Favorites" msgstr "Favoritos" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:30 msgid "Route Planner" msgstr "Planejador de rota" #: data/ui/help-overlay.ui:12 msgctxt "shortcut window" msgid "General" msgstr "Geral" #: data/ui/help-overlay.ui:15 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "Mostra os atalhos" #: data/ui/help-overlay.ui:21 msgctxt "shortcut window" msgid "Search" msgstr "Pesquisa" #: data/ui/help-overlay.ui:27 msgctxt "shortcut window" msgid "Explore points-of-interest" msgstr "Explora pontos de interesse" #: data/ui/help-overlay.ui:33 msgctxt "shortcut window" msgid "Show last search results" msgstr "Mostra os últimos resultados de pesquisa" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "Alterna o planejador da rota" #: data/ui/help-overlay.ui:45 msgctxt "shortcut window" msgid "Print route" msgstr "Imprime a rota" #: data/ui/help-overlay.ui:51 msgctxt "shortcut window" msgid "Quit" msgstr "Sai" #: data/ui/help-overlay.ui:57 msgctxt "shortcut window" msgid "Open main menu" msgstr "Abre o menu principal" #: data/ui/help-overlay.ui:65 msgctxt "shortcut window" msgid "Map View" msgstr "Visão de mapa" #: data/ui/help-overlay.ui:68 msgctxt "shortcut window" msgid "Zoom in" msgstr "Amplia" #: data/ui/help-overlay.ui:74 msgctxt "shortcut window" msgid "Zoom out" msgstr "Reduz" #: data/ui/help-overlay.ui:80 msgctxt "shortcut window" msgid "Rotate clockwise" msgstr "Gira no sentido horário" #: data/ui/help-overlay.ui:86 msgctxt "shortcut window" msgid "Rotate counter-clockwise" msgstr "Gira no sentido anti-horário" #: data/ui/help-overlay.ui:92 msgctxt "shortcut window" msgid "Reset rotation" msgstr "Redefine a rotação" #: data/ui/help-overlay.ui:98 msgctxt "shortcut window" msgid "Toggle scale" msgstr "Alterna a escala" #: data/ui/help-overlay.ui:104 msgctxt "shortcut window" msgid "Go to current location" msgstr "Vai para a localização atual" #: data/ui/help-overlay.ui:114 msgctxt "shortcut window" msgid "Switch to street view" msgstr "Muda para a visão de rua" #: data/ui/help-overlay.ui:121 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "Muda para a visão aérea" #: data/ui/help-overlay.ui:127 msgctxt "shortcut window" msgid "Open shape layer" msgstr "Abre a camada" #: data/ui/layers-popover.ui:7 msgid "Show Scale" msgstr "Mostrar escala" #: data/ui/layers-popover.ui:16 msgid "Enable Experimental Map" msgstr "Habilitar mapa experimental" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:21 msgid "Open Shape Layer…" msgstr "Abrir camada…" #: data/ui/main-window.ui:8 msgid "Set up OpenStreetMap Account…" msgstr "Configurar conta OpenStreetMap…" #: data/ui/main-window.ui:12 msgid "Export as Image…" msgstr "Exportar como imagem…" #: data/ui/main-window.ui:17 msgid "_Keyboard Shortcuts" msgstr "A_talhos de teclado" #: data/ui/main-window.ui:22 msgid "About Maps" msgstr "Sobre o Mapas" #: data/ui/main-window.ui:48 msgid "Main Menu" msgstr "Menu principal" #: data/ui/osm-account-dialog.ui:5 msgid "OpenStreetMap Account" msgstr "Conta do OpenStreetMap" #: data/ui/osm-account-dialog.ui:31 msgid "Sign In To Edit Maps" msgstr "Entre para editar o Mapas" #: data/ui/osm-account-dialog.ui:32 msgid "Help to improve the map, using an OpenStreetMap account." msgstr "Ajude a melhorar o mapa, usando uma conta do OpenStreetMap." #: data/ui/osm-account-dialog.ui:36 msgid "Sign In" msgstr "Entrar" #: data/ui/osm-account-dialog.ui:59 msgid "Verification" msgstr "Verificação" #: data/ui/osm-account-dialog.ui:60 msgid "" "Copy the verification code shown when authorizing access in the browser." msgstr "" "Copie o código de verificação mostrado ao autorizar o acesso no navegador." #: data/ui/osm-account-dialog.ui:69 msgid "Verification Code" msgstr "Código de verificação" #: data/ui/osm-account-dialog.ui:75 msgid "Verify" msgstr "Verificar" #: data/ui/osm-account-dialog.ui:110 msgid "Signed In" msgstr "Logado" #: data/ui/osm-account-dialog.ui:111 msgid "Your OpenStreetMap account is active." msgstr "Sua conta do OpenStreetMap está ativa." #: data/ui/osm-account-dialog.ui:129 msgid "Sign Out" msgstr "Sair" #: data/ui/osm-edit-address.ui:11 msgid "Street" msgstr "Rua" #: data/ui/osm-edit-address.ui:22 msgid "House number" msgstr "Número da residência" #: data/ui/osm-edit-address.ui:33 msgid "Postal code" msgstr "Código postal" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:44 msgid "City" msgstr "Cidade" #: data/ui/osm-edit-dialog.ui:8 msgctxt "dialog title" msgid "Edit on OpenStreetMap" msgstr "Editar no OpenStreetMap" #: data/ui/osm-edit-dialog.ui:57 msgid "Type" msgstr "Tipo" #: data/ui/osm-edit-dialog.ui:79 msgid "None" msgstr "Nenhum" #: data/ui/osm-edit-dialog.ui:108 msgid "Add Field" msgstr "Adicionar campo" #: data/ui/osm-edit-dialog.ui:130 msgid "Comment" msgstr "Comentário" #: data/ui/osm-edit-dialog.ui:158 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "Alterações no aplicativo Mapas serão visíveis em\n" "todos os mapas que usarem dados do OpenStreetMap." #: data/ui/osm-edit-dialog.ui:186 msgid "Recently Used" msgstr "Usado recentemente" #: data/ui/osm-edit-dialog.ui:225 src/mapView.js:671 msgid "Cancel" msgstr "Cancelar" #: data/ui/osm-edit-dialog.ui:238 src/osmEditDialog.js:531 msgid "Next" msgstr "Próximo" #: data/ui/osm-edit-wikipedia.ui:8 msgid "Article" msgstr "Artigo" #: data/ui/osm-edit-wikipedia.ui:21 msgid "Wikidata tag" msgstr "Tag Wikidata" #: data/ui/osm-edit-wikipedia.ui:32 msgid "Load Wikidata tag for article" msgstr "Carregar tag do Wikidata para o artigo" #: data/ui/place-popover.ui:23 src/searchBar.js:55 msgid "Explore Nearby Places" msgstr "Explorar lugares próximos" #: data/ui/place-popover.ui:82 src/application.js:277 msgid "No results found" msgstr "Nenhum resultado encontrado" #: data/ui/place-popover.ui:92 src/application.js:255 msgid "An error has occurred" msgstr "Um erro foi encontrado" #. Translators: This is a tooltip #: data/ui/route-entry.ui:12 msgid "Change Route Order" msgstr "Alterar ordem da rota" #: data/ui/send-to-dialog.ui:7 msgid "Open Location" msgstr "Abrir localização" #: data/ui/send-to-dialog.ui:64 msgid "Copy" msgstr "Copiar" #: data/ui/send-to-dialog.ui:70 msgid "Send To…" msgstr "Enviar para…" #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:62 msgid "Open Shape Layer" msgstr "Abrir camada" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "_Abrir" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:32 msgid "Toggle visible" msgstr "Tornar visível" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:44 msgid "Remove Shape Layer" msgstr "Remover camada de forma" #: data/ui/sidebar.ui:207 msgid "Route search by GraphHopper" msgstr "Pesquisa de rota por GraphHopper" #: data/ui/sidebar.ui:272 msgid "" "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of " "transportation,\n" "e.g. a national provider might not include airlines, and a local provider " "could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" "Itinerários de rotas para trânsito público é fornecido por serviços\n" "de terceiros.\n" "GNOME não pode garantir que os itinerários e agendamentos mostrados estejam\n" "corretos. Observe que alguns fornecedores podem não incluir todos os modos\n" "de transporte disponíveis, por exemplo, um fornecedor nacional pode não\n" "incluir companhias aéreas e um fornecedor local pode perder trens regionais." #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:98 msgid "Hide intermediate stops and information" msgstr "Ocultar informações e paradas intermediárias" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:156 msgid "Show intermediate stops and information" msgstr "Mostrar informações e paradas intermediárias" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:16 msgid "Leave Now" msgstr "Sair agora" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:17 msgid "Leave By" msgstr "Sair por" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:18 msgid "Arrive By" msgstr "Chegar por" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:85 msgid "Show" msgstr "Mostrar" #: data/ui/transit-options-panel.ui:95 msgid "Buses" msgstr "Ônibus" #: data/ui/transit-options-panel.ui:101 msgid "Trams" msgstr "Bondes" #: data/ui/transit-options-panel.ui:107 msgid "Trains" msgstr "Trens" #: data/ui/transit-options-panel.ui:113 msgid "Subway" msgstr "Metrô" #: data/ui/transit-options-panel.ui:119 msgid "Ferries" msgstr "Balsas" #: data/ui/transit-options-panel.ui:125 msgid "Airplanes" msgstr "Aviões" #. Translators: This is a tooltip #: data/ui/place-bar.ui:33 data/ui/place-buttons.ui:27 msgid "Share Location" msgstr "Compartilhar localização" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:11 msgid "Add to new route" msgstr "Adicionar à nova rota" #. Translators: This is the button to find a route to a place #: data/ui/place-buttons.ui:15 msgid "Directions" msgstr "Instruções" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:36 msgid "Mark as Favorite" msgstr "Marcar como favorito" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:44 msgid "Edit on OpenStreetMap" msgstr "Editar no OpenStreetMap" #. Translators: This is a tooltip #: data/ui/place-view.ui:52 msgid "Share location" msgstr "Compartilhar localização" #: data/ui/poi-category-goback-row.ui:22 msgid "Back to Main Categories" msgstr "Voltar para categorias principais" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:19 msgid "Reset Rotation" msgstr "Redefinir rotação" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:32 msgid "Zoom Out" msgstr "Reduzir" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:43 src/mapView.js:1246 msgid "Zoom In" msgstr "Ampliar" #: lib/maps-file-data-source.c:262 lib/maps-file-data-source.c:338 #: lib/maps-file-data-source.c:418 msgid "Failed to find tile structure in directory" msgstr "Falha ao pesquisar estrutura de blocos no diretório" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "Falha ao analisar documento XML" #: lib/maps-osm.c:250 lib/maps-osm.c:403 msgid "Missing required attributes" msgstr "Faltando atributos necessários" #: lib/maps-osm.c:451 lib/maps-osm.c:494 msgid "Could not find OSM element" msgstr "Não foi possível localizar elemento OSM" #: lib/maps-osm.c:508 msgid "Could not find user element" msgstr "Não foi possível localizar o elemento do usuário" #: src/application.js:78 msgid "A path to a local tiles directory structure" msgstr "Um caminho para um diretório local de estrutura de blocos" #: src/application.js:84 msgid "Tile size for local tiles directory" msgstr "O tamanho de bloco para o diretório local de blocos" #: src/application.js:88 msgid "Show the version of the program" msgstr "Mostra a versão do programa" #: src/application.js:94 msgid "Search for places" msgstr "Pesquisar locais" #: src/application.js:105 src/application.js:106 msgid "[FILE…|URI]" msgstr "[ARQUIVO…|URI]" #: src/application.js:284 #, javascript-format msgid "Invalid maps: URI: %s" msgstr "Mapas inválidos: URI: %s" #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:75 #, javascript-format msgid "Maps at %f, %f.png" msgstr "Mapas em %f, %f.png" #: src/exportViewDialog.js:174 msgid "Unable to export view" msgstr "Não foi possível exportar a visão" #: src/favoriteListRow.js:42 msgid "Favorite removed" msgstr "Favorito removido" #: src/favoriteListRow.js:43 msgid "Undo" msgstr "Desfazer" #: src/geoJSONSource.js:73 msgid "invalid coordinate" msgstr "coordenada inválida" #: src/geoJSONSource.js:126 src/geoJSONSource.js:166 src/geoJSONSource.js:181 msgid "parse error" msgstr "erro de análise" #: src/geoJSONSource.js:160 msgid "unknown geometry" msgstr "geometria desconhecida" #: src/graphHopper.js:101 src/transitPlan.js:175 msgid "Route request failed." msgstr "Solicitação da rota falhou." #: src/graphHopper.js:108 src/transitPlan.js:167 msgid "No route found." msgstr "Nenhuma rota encontrada." #: src/graphHopper.js:195 src/transitplugins/openTripPlanner.js:1163 msgid "Start!" msgstr "Começar!" #: src/mainWindow.js:59 msgid "All Layer Files" msgstr "Todas os arquivos de camadas" #: src/mainWindow.js:522 msgid "Failed to connect to location service" msgstr "Falha ao conectar ao serviço de localização" #: src/mainWindow.js:527 msgid "Turn on location services" msgstr "Habilitar serviços de localização" #: src/mainWindow.js:528 msgid "Location Settings" msgstr "Configurações de localização" #: src/mainWindow.js:645 msgid "translator-credits" msgstr "" "Enrico Nicoletto \n" "Fábio Nogueira \n" "Rafael Fontenelle \n" "Henrique Roberto Gattermann Mittelstaedt \n" "Bruno Lopes \n" "Matheus Barbosa \n" "Matheus Polkorny " #: src/mainWindow.js:649 msgid "Copyright © 2011 – 2023 Red Hat, Inc. and The GNOME Maps authors" msgstr "Copyright © 2011 – 2022 Red Hat, Inc. e os autores do GNOME Mapas" #: src/mainWindow.js:665 #, javascript-format msgid "Map data by %s and contributors" msgstr "Dados de mapas por %s e contribuidores" #: src/mainWindow.js:666 msgid "Map Data Provider" msgstr "Provedor de dados do mapa" #: src/mainWindow.js:678 msgid "Map Tile Provider" msgstr "Provedor de blocos de mapa" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:686 #, javascript-format msgid "Map tiles provided by %s" msgstr "Blocos de mapas fornecidos por %s" #: src/mainWindow.js:716 msgid "Search Provider" msgstr "Provedor de pesquisa" #: src/mainWindow.js:719 #, javascript-format msgid "Search provided by %s using %s" msgstr "Pesquisa fornecida por %s usando %s" #: src/mapView.js:645 src/mapView.js:710 msgid "Failed to open layer" msgstr "Falha ao abrir camada" #: src/mapView.js:664 msgid "Do you want to continue?" msgstr "Você deseja continuar?" #: src/mapView.js:665 #, javascript-format msgid "" "You are about to open files with a total size of %s MB. This could take some " "time to load" msgstr "" "Você está prestes a abrir arquivos com um tamanho total de %s MB. Isso pode " "levar um bom tempo para carregar" #: src/mapView.js:672 src/transitplugins/openTripPlanner.js:1239 #: src/transitplugins/openTripPlanner2.js:267 msgid "Continue" msgstr "Continue" #: src/mapView.js:704 msgid "File type is not supported" msgstr "Não há suporte ao tipo de arquivo" #: src/mapView.js:741 msgid "Failed to open GeoURI" msgstr "Falha ao analisar o URI geo" #: src/mapView.js:1205 msgid "Nothing found here!" msgstr "Nada foi encontrado aqui!" #: src/mapView.js:1245 msgid "Zoom in to add location" msgstr "Amplie para adicionar uma localização" #: src/mapView.js:1266 msgid "Location was added in OpenStreetMap" msgstr "A localização foi adicionado no OpenStreetMap" #. switch back to the sign-in view, and show a toast indicating #. that verification failed #: src/osmAccountDialog.js:134 msgid "The verification code didn’t match, please try again." msgstr "O código de verificação não combina, por gentileza, tente novamente." #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:335 msgid "Incorrect user name or password" msgstr "Nome de usuário ou senha incorretos" #: src/osmConnection.js:337 msgid "Success" msgstr "Sucesso" #: src/osmConnection.js:339 msgid "Bad request" msgstr "Solicitação inválida" #: src/osmConnection.js:341 msgid "Object not found" msgstr "Objeto não encontrado" #: src/osmConnection.js:343 msgid "Conflict, someone else has just modified the object" msgstr "Conflito, alguém acabou de modificar o objeto" #: src/osmConnection.js:345 msgid "Object has been deleted" msgstr "O objeto foi excluído" #: src/osmConnection.js:347 msgid "Way or relation refers to non-existing children" msgstr "Caminho ou relacionamento faz referência a filho não existente" #: src/osmEditDialog.js:106 msgid "Name" msgstr "Nome" #: src/osmEditDialog.js:109 msgid "The official name. This is typically what appears on signs." msgstr "O nome oficial. Isto é tipicamente o que aparece em sinais." #: src/osmEditDialog.js:112 msgid "Address" msgstr "Endereço" #: src/osmEditDialog.js:120 src/placeView.js:275 msgid "Website" msgstr "Site" #: src/osmEditDialog.js:124 msgid "This is not a valid URL. Make sure to include http:// or https://." msgstr "" "Este não é um URL válido. Certifique-se de incluir http:// ou https://." #: src/osmEditDialog.js:125 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" "O site oficial. Tente usar o formulário mais básico de um URL i.e. http://" "exemplo.com.br em vez de http://exemplo.com.br/index.html." #: src/osmEditDialog.js:130 msgid "Phone" msgstr "Telefone" #: src/osmEditDialog.js:134 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" "Número de telefone. Use o formato internacional, começando com um sinal de " "+. Cuidado com as leis de privacidade locais, especialmente para números de " "telefone privado." #: src/osmEditDialog.js:139 src/placeView.js:308 msgid "Email" msgstr "E-mail" #: src/osmEditDialog.js:144 msgid "" "This is not a valid email address. Make sure to not include the mailto: " "protocol prefix." msgstr "" "Este não é um endereço de e-mail válido. Certifique-se de não incluir o " "prefixo de protocolo mailto:." #: src/osmEditDialog.js:145 msgid "" "Contact email address for inquiries. Add only email addresses that are " "intended to be publicly used." msgstr "" "Endereço de e-mail de contato para perguntas. Adicione apenas endereços de e-" "mail que devem ser usados publicamente." #. Translators: This is the text for the "Wikipedia" link at the end #. of summaries #: src/osmEditDialog.js:149 src/placeView.js:727 msgid "Wikipedia" msgstr "Wikipédia" #: src/osmEditDialog.js:156 src/placeView.js:399 msgid "Opening hours" msgstr "Horário de funcionamento" #: src/osmEditDialog.js:161 msgid "See the link in the label for help on format." msgstr "Veja o link na etiqueta para obter ajuda sobre o formato." #. TODO: this is a bit of a work-around to re-interpret the population, #. * stored as a string into an integer to convert back to a locale- #. * formatted string. Ideally it should be kept as an integer value #. * in the Place class. But this will also need to be handled by the #. * PlaceStore, possible in a backwards-compatible way #. #: src/osmEditDialog.js:164 src/placeView.js:509 msgid "Population" msgstr "População" #: src/osmEditDialog.js:169 src/placeView.js:538 msgid "Altitude" msgstr "Altitude" #: src/osmEditDialog.js:172 msgid "Elevation (height above sea level) of a point in meters." msgstr "Elevação (altura acima do nível do mar) de um ponto em metros." #: src/osmEditDialog.js:175 msgid "Wheelchair access" msgstr "Acesso a cadeirantes" #: src/osmEditDialog.js:178 src/osmEditDialog.js:187 src/osmEditDialog.js:198 #: src/osmEditDialog.js:233 msgid "Yes" msgstr "Sim" #: src/osmEditDialog.js:179 src/osmEditDialog.js:188 src/osmEditDialog.js:199 #: src/osmEditDialog.js:234 msgid "No" msgstr "Não" #: src/osmEditDialog.js:180 msgid "Limited" msgstr "Limitado" #: src/osmEditDialog.js:181 msgid "Designated" msgstr "Designado" #: src/osmEditDialog.js:184 msgid "Internet access" msgstr "Acesso à Internet" #: src/osmEditDialog.js:189 msgid "Wi-Fi" msgstr "Wi-Fi" #: src/osmEditDialog.js:190 msgid "Wired" msgstr "Cabeada" #: src/osmEditDialog.js:191 msgid "Terminal" msgstr "Terminal" #: src/osmEditDialog.js:192 msgid "Service" msgstr "Serviço" #: src/osmEditDialog.js:195 msgid "Takeout" msgstr "Para viagem" #: src/osmEditDialog.js:200 msgid "Only" msgstr "Apenas" #: src/osmEditDialog.js:203 msgid "Religion" msgstr "Religião" #: src/osmEditDialog.js:206 src/translations.js:286 msgid "Animism" msgstr "Animismo" #: src/osmEditDialog.js:207 msgid "Bahá’í" msgstr "Bahá’í" #: src/osmEditDialog.js:208 src/translations.js:288 msgid "Buddhism" msgstr "Budismo" #: src/osmEditDialog.js:209 src/translations.js:289 msgid "Caodaism" msgstr "Caodaísmo" #: src/osmEditDialog.js:210 src/translations.js:290 msgid "Christianity" msgstr "Cristianismo" #: src/osmEditDialog.js:211 src/translations.js:291 msgid "Confucianism" msgstr "Confucionismo" #: src/osmEditDialog.js:212 src/translations.js:292 msgid "Hinduism" msgstr "Hinduísmo" #: src/osmEditDialog.js:213 src/translations.js:293 msgid "Jainism" msgstr "Jainismo" #: src/osmEditDialog.js:214 src/translations.js:294 msgid "Judaism" msgstr "Judaísmo" #: src/osmEditDialog.js:215 src/translations.js:295 msgid "Islam" msgstr "Islã" #: src/osmEditDialog.js:216 src/translations.js:296 msgid "Multiple Religions" msgstr "Múltiplas religiões" #: src/osmEditDialog.js:217 src/translations.js:297 msgid "Paganism" msgstr "Paganismo" #: src/osmEditDialog.js:218 src/translations.js:298 msgid "Pastafarianism" msgstr "Pastafarianismo" #: src/osmEditDialog.js:219 src/translations.js:299 msgid "Scientology" msgstr "Cientologia" #: src/osmEditDialog.js:220 src/translations.js:300 msgid "Shinto" msgstr "Xintoísmo" #: src/osmEditDialog.js:221 src/translations.js:301 msgid "Sikhism" msgstr "Siquismo" #: src/osmEditDialog.js:222 src/translations.js:302 msgid "Spiritualism" msgstr "Espiritismo" #: src/osmEditDialog.js:223 src/translations.js:303 msgid "Taoism" msgstr "Taoismo" #: src/osmEditDialog.js:224 src/translations.js:304 msgid "Unitarian Universalism" msgstr "Unitário Universalismo" #: src/osmEditDialog.js:225 src/translations.js:305 msgid "Voodoo" msgstr "Vodu" #: src/osmEditDialog.js:226 src/translations.js:306 msgid "Yazidism" msgstr "Yazidismo" #: src/osmEditDialog.js:227 src/translations.js:307 msgid "Zoroastrianism" msgstr "Zoroastrismo" #: src/osmEditDialog.js:230 src/poiCategories.js:176 msgid "Toilets" msgstr "Banheiros" #: src/osmEditDialog.js:237 msgid "Note" msgstr "Nota" #: src/osmEditDialog.js:240 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" "Informação usada para informar outros mapeadores sobre informações não " "óbvias sobre um elemento, a intenção do autor ao criá-la ou dicas para " "melhorias posteriores." #: src/osmEditDialog.js:339 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "Adicionar ao OpenStreetMap" #: src/osmEditDialog.js:393 msgid "Select Type" msgstr "Selecione um tipo" #: src/osmEditDialog.js:515 msgid "Done" msgstr "Concluído" #: src/osmEditDialog.js:818 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "" "O formato utilizado deve incluir o código do idioma e o título do artigo " "como “pt:Título do artigo”." #: src/osmEditDialog.js:824 msgid "Use the reload button to load the Wikidata tag for the selected article" msgstr "" "Use o botão recarregar para carregar a tag Wikidata para o artigo selecionado" #: src/osmEditDialog.js:832 msgid "Couldn't find Wikidata tag for article" msgstr "Não foi possível encontrar a tag do Wikidata para o artigo" #: src/photonUtils.js:118 msgid "Unnamed place" msgstr "Lugar sem nome" #: src/placeEntry.js:274 msgid "Failed to parse Geo URI" msgstr "Falha ao analisar o URI de Geo" #: src/placeEntry.js:286 msgid "Failed to parse Maps URI" msgstr "Falha ao analisar o URI de Mapas" #. 300 ft (300 * 12 * 0.0254 m) #. #. * Translators: This a format string for showing a distance to a place #. * is lower than a "quite short" distance. #. * The "less than" symbol can be substituded with an appropriate one, if #. * needed (e.g. using the correct direction, or alternative symbol). #. * The %s should be kept, and is substituted with a label representing the #. * short distance. The \u2009 (thin space) could also be adjusted if needed #: src/placeListRow.js:46 #, javascript-format msgctxt "short distance format string" msgid "< %s" msgstr "< %s" #: src/placeView.js:263 msgid "Coordinates" msgstr "Coordenadas" #: src/placeView.js:267 msgid "Accuracy" msgstr "Precisão" #. Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) #: src/placeView.js:270 #, javascript-format msgid "Accuracy: %s" msgstr "Precisão: %s" #. since the phone numbers are typically always rendered #. * left-to-right, insert an explicit LRM char to avoid issues #. * with phone numbers in international format starting with a + #. * which is considered a "weak" character to determine Unicode #. * text direction #. #: src/placeView.js:289 msgid "Phone number" msgstr "Número do telefone" #. If a reference to a named floor (named or symbolic) exists #. * refer to it directly. #. #. Translators: #. * This is a reference to named building floor, using a label #. * or a code, as "displayed in the elevator" #. #: src/placeView.js:323 src/placeView.js:362 msgid "Floor" msgstr "Andar" #: src/placeView.js:325 #, javascript-format msgid "Floor %s" msgstr "Andar %s" #: src/placeView.js:337 msgid "At ground level" msgstr "No térreo" #. Translators: #. * This is a reference to a number of floors above #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:346 #, javascript-format msgid "%s floor above ground level" msgid_plural "%s floors above ground level" msgstr[0] "%s andar" msgstr[1] "%s andares" #. Translators: #. * This is a reference to a number of floors below #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:357 #, javascript-format msgid "%s floor below ground level" msgid_plural "%s floors below ground level" msgstr[0] "%s subsolo" msgstr[1] "%s subsolos" #. Translators: #. * The establishment offers customers to purchase meals #. * (or similar) to be consumed elsewhere #. #: src/placeView.js:375 msgid "Offers takeout" msgstr "Oferece para viagem" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed on-premise. #. #: src/placeView.js:383 msgid "Does not offer takeout" msgstr "Não oferece para viagem" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed elsewhere. E.g. #. * there is no seating on-premise for eating/drinking #. #: src/placeView.js:392 msgid "Only offers takeout" msgstr "Só oferece para viagem" #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/placeView.js:409 msgid "Public internet access" msgstr "Acesso Público à Internet" #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/placeView.js:418 msgid "No internet access" msgstr "Sem acesso à internet" #. Translators: #. * This means a WLAN Hotspot, also known as wireless, wifi or Wi-Fi. #. #: src/placeView.js:426 msgid "Public Wi-Fi" msgstr "Wi-Fi Público" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/placeView.js:434 msgid "Wired internet access" msgstr "Acesso à internet cabeada" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/placeView.js:442 msgid "Computers available for use" msgstr "Computadores disponíveis para uso" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/placeView.js:450 msgid "Internet assistance available" msgstr "Assistência de internet disponível" #: src/placeView.js:456 msgid "No toilets available" msgstr "Sem banheiros disponíveis" #: src/placeView.js:459 msgid "Toilets available" msgstr "Banheiros disponíveis" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #: src/placeView.js:468 msgid "Wheelchair accessible" msgstr "Acessível a cadeirantes" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/placeView.js:478 msgid "Limited wheelchair accessibility" msgstr "Acesso limitado a cadeirantes" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #: src/placeView.js:487 msgid "Not wheelchair accessible" msgstr "Não acessível a cadeirantes" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/placeView.js:497 msgid "Designated for wheelchair users" msgstr "Designado para cadeirantes" #. * #. * Translators: this is a label indicating an altitude below #. * sea level, where the %s placeholder is the altitude relative #. * to mean sea level in the "negative direction" #. #: src/placeView.js:528 #, javascript-format msgid "%s below sea level" msgstr "%s abaixo do nível do mar" #. * #. * Translators: this indicates a place is located at (or very #. * close to) mean sea level #. #: src/placeView.js:535 msgid "At sea level" msgstr "No nível do mar" #: src/placeView.js:544 msgid "Religion:" msgstr "Religião:" #: src/place.js:585 msgid "Place not found in OpenStreetMap" msgstr "Lugar não encontrado no OpenStreetMap" #: src/place.js:592 msgid "Coordinates in URL are not valid" msgstr "As coordenadas na URL não são válidas" #: src/place.js:601 msgid "URL is not supported" msgstr "Não há suporte à URL" #: src/poiCategories.js:132 msgid "Amenities" msgstr "Amenidades" #: src/poiCategories.js:135 msgid "ATMs" msgstr "Caixas eletrônicos" #: src/poiCategories.js:141 msgid "Post Boxes" msgstr "Caixas postais" #: src/poiCategories.js:147 msgid "Post Offices" msgstr "Correios" #: src/poiCategories.js:153 msgid "Police" msgstr "Polícia" #: src/poiCategories.js:159 msgid "Libraries" msgstr "Bibliotecas" #: src/poiCategories.js:165 msgid "Pharmacies" msgstr "Farmácias" #: src/poiCategories.js:171 msgid "Recycling" msgstr "Reciclagem" #: src/poiCategories.js:182 msgid "Wheelchair-accessible Toilets" msgstr "Banheiros acessíveis para cadeirantes" #: src/poiCategories.js:188 msgid "Baggage Lockers" msgstr "Armários de bagagem" #: src/poiCategories.js:196 msgid "Eating & Drinking" msgstr "Comes e bebes" #: src/poiCategories.js:200 msgid "Restaurants" msgstr "Restaurantes" #: src/poiCategories.js:205 msgid "Fast Food" msgstr "Fast Food" #: src/poiCategories.js:210 msgid "Food Courts" msgstr "Praças de alimentação" #: src/poiCategories.js:215 msgid "Pubs" msgstr "Pubs" #: src/poiCategories.js:221 msgid "Bars" msgstr "Bares" #: src/poiCategories.js:226 msgid "Cafes" msgstr "Cafés" #: src/poiCategories.js:231 msgid "Ice Cream" msgstr "Sorvete" #: src/poiCategories.js:236 msgid "Food, Snacks, and Beverage Machines" msgstr "Máquinas de alimentos, lanches e bebidas" #: src/poiCategories.js:244 msgid "Shopping" msgstr "Compras" #: src/poiCategories.js:248 msgid "Supermarkets" msgstr "Supermercados" #: src/poiCategories.js:254 msgid "Convenience Stores" msgstr "Lojas de conveniência" #: src/poiCategories.js:259 msgid "Shopping Malls" msgstr "Shoppings" #: src/poiCategories.js:265 msgid "Clothes" msgstr "Roupas" #: src/poiCategories.js:271 msgid "Shoes" msgstr "Calçados" #: src/poiCategories.js:276 msgid "Electronics" msgstr "Eletrônicos" #: src/poiCategories.js:282 msgid "Alcohol" msgstr "Álcool" #: src/poiCategories.js:288 msgid "Bakeries" msgstr "Padarias" #: src/poiCategories.js:294 msgid "Flowers" msgstr "Flores" #: src/poiCategories.js:301 msgid "Transportation" msgstr "Transporte" #: src/poiCategories.js:305 msgid "Bus & Tram Stops" msgstr "Paradas de ônibus e bonde" #: src/poiCategories.js:313 msgid "Train & Subway Stations" msgstr "Estações de trem e metrô" #: src/poiCategories.js:321 msgid "Tickets" msgstr "Bilhetes" #: src/poiCategories.js:329 msgid "Parking" msgstr "Estacionamento" #: src/poiCategories.js:334 msgid "Bicycle Parking" msgstr "Estacionamento de bicicleta" #: src/poiCategories.js:339 msgid "Bicycle Rental" msgstr "Aluguel de bicicletas" #: src/poiCategories.js:344 msgid "Car Rental" msgstr "Aluguel de carros" #: src/poiCategories.js:349 msgid "Fuel" msgstr "Combustível" #: src/poiCategories.js:354 msgid "EV Charging" msgstr "Carregamento de veículos elétricos" #: src/poiCategories.js:362 msgid "Healthcare" msgstr "Assistência médica" #: src/poiCategories.js:366 msgid "Clinics" msgstr "Clínicas" #: src/poiCategories.js:372 msgid "Hospitals" msgstr "Hospitais" #: src/poiCategories.js:378 msgid "Dentists" msgstr "Dentistas" #: src/poiCategories.js:386 msgid "Accommodation" msgstr "Acomodação" #: src/poiCategories.js:390 msgid "Hotels" msgstr "Hotéis" #: src/poiCategories.js:395 msgid "Hostels" msgstr "Albergues" #: src/poiCategories.js:400 msgid "Bed & Breakfast" msgstr "Cama e café da manhã" #: src/poiCategories.js:405 msgid "Campings" msgstr "Acampamentos" #: src/poiCategories.js:412 msgid "Recreation" msgstr "Recreação" #: src/poiCategories.js:416 msgid "Parks" msgstr "Parques" #: src/poiCategories.js:421 msgid "Playgrounds" msgstr "Parquinhos" #: src/poiCategories.js:425 msgid "Beaches" msgstr "Praias" #: src/poiCategories.js:430 msgid "Nature Reserves" msgstr "Reservas naturais" #: src/poiCategories.js:436 msgid "Theme Parks" msgstr "Parques temáticos" #: src/poiCategories.js:441 msgid "Theaters" msgstr "Teatros" #: src/poiCategories.js:447 msgid "Movie Theaters" msgstr "Cinemas" #: src/poiCategories.js:453 msgid "Night Clubs" msgstr "Boates" #: src/poiCategories.js:460 msgid "Tourism" msgstr "Turismo" #: src/poiCategories.js:464 msgid "Museums" msgstr "Museus" #: src/poiCategories.js:470 msgid "Attractions" msgstr "Atrações" #: src/poiCategories.js:475 msgid "Artworks" msgstr "Obras de arte" #: src/poiCategories.js:480 msgid "Tourist Information" msgstr "Informações turísticas" #: src/poiCategories.js:487 msgid "Sports" msgstr "Esportes" #: src/poiCategories.js:491 msgid "Gyms" msgstr "Academias" #: src/poiCategories.js:497 msgid "Outdoor Gyms" msgstr "Academias ao ar livre" #: src/poiCategories.js:503 msgid "Golf Courses" msgstr "Campos de golf" #: src/printLayout.js:350 #, javascript-format msgid "From %s to %s" msgstr "De %s até %s" #: src/printOperation.js:49 msgid "Loading map tiles for printing" msgstr "Carregando mosaicos de mapa para impressão" #: src/printOperation.js:50 msgid "You can abort printing if this takes too long" msgstr "Você pode abortar a impressão se isso leva muito tempo" #: src/printOperation.js:52 msgid "Abort printing" msgstr "Abortar impressão" #. Translators: this is add via location tooltip #: src/routeEntry.js:60 msgid "Add via location" msgstr "Adiciona via localização" #. Translators: this is remove via location tooltip #: src/routeEntry.js:70 msgid "Remove via location" msgstr "Remove via localização" #. Translators: this is reverse route tooltip #: src/routeEntry.js:76 msgid "Reverse route" msgstr "Rota reversa" #: src/searchBar.js:45 msgid "Search" msgstr "Pesquisar" #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:84 #, javascript-format msgid "Add %s to %s" msgstr "Adicionar %s para %s" #: src/sendToDialog.js:181 msgid "Failed to open URI" msgstr "Falha ao abrir a URI" #: src/sendToDialog.js:246 #, javascript-format msgid "Open with %s" msgstr "Abrir com %s" #: src/shapeLayer.js:109 msgid "failed to load file" msgstr "falha ao carregar arquivo" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:328 #, javascript-format msgid "Estimated time: %s" msgstr "Tempo estimado: %s" #: src/sidebar.js:398 #, javascript-format msgid "Itineraries provided by %s" msgstr "Itinerários fornecidos por %s" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:39 #, javascript-format msgid "Start at %s" msgstr "Início em %s" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:45 src/transitplugins/openTripPlanner2.js:236 msgid "Start" msgstr "Início" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:63 #, javascript-format msgid "Walk %s" msgstr "Caminhe %s" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:77 #, javascript-format msgid "Arrive at %s" msgstr "Chegada em %s" #: src/transit.js:79 src/transitplugins/openTripPlanner.js:1176 #: src/transitplugins/openTripPlanner2.js:255 msgid "Arrive" msgstr "Chegada" #: src/transitLegRow.js:69 msgid "Show walking instructions" msgstr "Mostrar instruções de caminhada" #: src/transitLegRow.js:70 msgid "Hide walking instructions" msgstr "Ocultar instruções de caminhada" #: src/transitMoreRow.js:37 msgid "Load earlier alternatives" msgstr "Carregar alternativas anteriores" #: src/transitMoreRow.js:39 msgid "Load later alternatives" msgstr "Carregar alternativas posteriores" #: src/transitMoreRow.js:52 msgid "No earlier alternatives found." msgstr "Nenhuma alternativa anterior encontrada." #: src/transitMoreRow.js:54 msgid "No later alternatives found." msgstr "Nenhuma alternativa posterior encontrada." #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:138 msgctxt "month-day-date" msgid "%b %e" msgstr "%e de %b" #: src/transitPlan.js:171 msgid "No timetable data found for this route." msgstr "Nenhum dado de horário localizado para essa rota." #: src/transitPlan.js:179 msgid "No provider found for this route." msgstr "Nenhum provedor localizado para essa rota." #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:300 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:331 #, javascript-format msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "%s minuto" msgstr[1] "%s minutos" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:343 #, javascript-format msgid "%s hour" msgid_plural "%s hours" msgstr[0] "%s hora" msgstr[1] "%s horas" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:351 #, javascript-format msgid "%s:%s hour" msgid_plural "%s:%s hours" msgstr[0] "%s:%s hora" msgstr[1] "%s:%s horas" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:744 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: src/translations.js:55 msgid "Around the clock" msgstr "Em volta do relógio" #: src/translations.js:57 msgid "From sunrise to sunset" msgstr "Do nascer até o pôr do sol" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:123 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s,%s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:137 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s,%s,%s" #: src/translations.js:156 msgid "Every day" msgstr "Todo dia" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:168 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:179 msgid "Public holidays" msgstr "Feriados públicos" #: src/translations.js:181 msgid "School holidays" msgstr "Feriados escolares" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:221 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: src/translations.js:235 msgid "not open" msgstr "não abrir" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:250 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:287 msgid "Bahá'í" msgstr "Bahá'í" #. Translators: Accuracy of user location information #: src/utils.js:248 msgid "Unknown" msgstr "Desconhecido" #. Translators: Accuracy of user location information #: src/utils.js:251 msgid "Exact" msgstr "Exato" #. Translators: this is a duration with only hours, using #. * an abbreviation for hours, corresponding to 'h' in English #. #: src/utils.js:307 #, javascript-format msgid "%s h" msgstr "%s h" #. Translators: this is a duration with hours and minutes parts #. * using abbreviations for hours and minutes, corresponding to 'h' #. * and 'min' in English. The minutes has appropriate plural variations #. #: src/utils.js:313 #, javascript-format msgid "%s h %s min" msgid_plural "%s h %s min" msgstr[0] "%s h %s min" msgstr[1] "%s h %s mins" #. Translators: this is a duration with minutes part #. * using abbreviation for minutes, corresponding to 'min' in English #. * with appropriate plural variations #. #: src/utils.js:320 #, javascript-format msgid "%s min" msgid_plural "%s min" msgstr[0] "%s min" msgstr[1] "%s mins" #. Translators: this is a duration of less than one minute #. * with seconds using an abbreviation for seconds, corresponding to #. * 's' in English with appropriate plural forms #. #: src/utils.js:326 #, javascript-format msgid "%s s" msgid_plural "%s s" msgstr[0] "%s s" msgstr[1] "%s s" #. Translators: This is a distance measured in kilometers #: src/utils.js:337 #, javascript-format msgid "%s km" msgstr "%s km" #. Translators: This is a distance measured in meters #: src/utils.js:340 #, javascript-format msgid "%s m" msgstr "%s m" #. Translators: This is a distance measured in miles #: src/utils.js:348 #, javascript-format msgid "%s mi" msgstr "%s mi" #. Translators: This is a distance measured in feet #: src/utils.js:351 #, javascript-format msgid "%s ft" msgstr "%s ft" #: src/transitplugins/goMetro.js:61 msgid "This plugin doesn't support latest arrival" msgstr "Este plugin não tem suporte a chegada mais recente" #: src/transitplugins/openTripPlanner.js:1237 #: src/transitplugins/openTripPlanner2.js:266 #, javascript-format msgid "Continue on %s" msgstr "Continue em %s" #: src/transitplugins/openTripPlanner.js:1242 #: src/transitplugins/openTripPlanner2.js:270 #, javascript-format msgid "Turn left on %s" msgstr "Vire à esquerda em %s" #: src/transitplugins/openTripPlanner.js:1244 #: src/transitplugins/openTripPlanner2.js:271 msgid "Turn left" msgstr "Vire à esquerda" #: src/transitplugins/openTripPlanner.js:1247 #: src/transitplugins/openTripPlanner2.js:275 #, javascript-format msgid "Turn slightly left on %s" msgstr "Vire ligeiramente à esquerda em %s" #: src/transitplugins/openTripPlanner.js:1249 #: src/transitplugins/openTripPlanner2.js:276 msgid "Turn slightly left" msgstr "Vire ligeiramente à esquerda" #: src/transitplugins/openTripPlanner.js:1252 #: src/transitplugins/openTripPlanner2.js:280 #, javascript-format msgid "Turn sharp left on %s" msgstr "Vire acentuadamente à esquerda em %s" #: src/transitplugins/openTripPlanner.js:1254 #: src/transitplugins/openTripPlanner2.js:281 msgid "Turn sharp left" msgstr "Vire acentuadamente à esquerda" #: src/transitplugins/openTripPlanner.js:1257 #: src/transitplugins/openTripPlanner2.js:284 #, javascript-format msgid "Turn right on %s" msgstr "Vire à direita em %s" #: src/transitplugins/openTripPlanner.js:1259 #: src/transitplugins/openTripPlanner2.js:285 msgid "Turn right" msgstr "Vire à direita" #: src/transitplugins/openTripPlanner.js:1262 #: src/transitplugins/openTripPlanner2.js:289 #, javascript-format msgid "Turn slightly right on %s" msgstr "Vire ligeiramente à direita em %s" #: src/transitplugins/openTripPlanner.js:1264 #: src/transitplugins/openTripPlanner2.js:290 msgid "Turn slightly right" msgstr "Vire ligeiramente à direita" #: src/transitplugins/openTripPlanner.js:1267 #: src/transitplugins/openTripPlanner2.js:294 #, javascript-format msgid "Turn sharp right on %s" msgstr "Vire acentuadamente à direita em %s" #: src/transitplugins/openTripPlanner.js:1269 #: src/transitplugins/openTripPlanner2.js:295 msgid "Turn sharp right" msgstr "Vire acentuadamente à direita" # Notas: # %s aqui é um número -- Rafael #: src/transitplugins/openTripPlanner.js:1275 #: src/transitplugins/openTripPlanner2.js:302 #, javascript-format msgid "At the roundabout, take exit %s" msgstr "Na rotatória, pegue a %sª saída" #: src/transitplugins/openTripPlanner.js:1277 #: src/transitplugins/openTripPlanner2.js:305 #, javascript-format msgid "At the roundabout, take exit to %s" msgstr "Na rotatória, pegue a saída para %s" #: src/transitplugins/openTripPlanner.js:1279 #: src/transitplugins/openTripPlanner2.js:307 msgid "Take the roundabout" msgstr "Pegue a rotatória" #: src/transitplugins/openTripPlanner.js:1283 #: src/transitplugins/openTripPlanner2.js:315 #, javascript-format msgid "Take the elevator and get off at %s" msgstr "Pegue o elevador e saia em %s" #: src/transitplugins/openTripPlanner.js:1285 #: src/transitplugins/openTripPlanner2.js:316 msgid "Take the elevator" msgstr "Pegue o elevador" #: src/transitplugins/openTripPlanner.js:1289 #: src/transitplugins/openTripPlanner2.js:320 #, javascript-format msgid "Make a left u-turn onto %s" msgstr "Faça um retorno em U à esquerda para %s" #: src/transitplugins/openTripPlanner.js:1291 #: src/transitplugins/openTripPlanner2.js:321 msgid "Make a left u-turn" msgstr "Faça um retorno em U à esquerda" #: src/transitplugins/openTripPlanner.js:1294 #: src/transitplugins/openTripPlanner2.js:325 #, javascript-format msgid "Make a right u-turn onto %s" msgstr "Faça um retorno em U à direita para %s" #: src/transitplugins/openTripPlanner.js:1296 #: src/transitplugins/openTripPlanner2.js:326 msgid "Make a right u-turn" msgstr "Faça um retorno em U à direita" #~ msgid "Sign in to edit maps" #~ msgstr "" #~ "Ingresse para editar mapas" #~ msgid "" #~ "Sign in to authorize access in a web browser.\n" #~ "Then fill in the obtained verification code here in the next step." #~ msgstr "" #~ "Cadastre-se para autorizar o acesso em um navegador.\n" #~ "Então preencha no código de verificação obtida aqui no próximo passo." #~ msgid "Signed In" #~ msgstr "Ingressado" #~ msgid "Sign up" #~ msgstr "Cadastrar" #~ msgid "Filesystem is read only" #~ msgstr "O sistema de arquivos é somente leitura" #~ msgid "You do not have permission to save there" #~ msgstr "Você não possui permissão para salvar lá" #~ msgid "The directory does not exist" #~ msgstr "O diretório não existe" #~ msgid "No filename specified" #~ msgstr "Nenhum nome de arquivo foi especificado" #~ msgid "" #~ "Location was added to the map, note that it may take a while before it " #~ "shows on the map and in search results." #~ msgstr "" #~ "A localização foi adicionada ao mapa; note que pode levar um tempo antes " #~ "dela ser mostrada no mapa e em resultados de pesquisa." #~ msgid "Takeaway" #~ msgstr "Para viagem" #~ msgid "Go to current location" #~ msgstr "Vai para a localização atual" #~ msgid "Choose map type" #~ msgstr "Escolhe o tipo do mapa" #~ msgid "Zoom in" #~ msgstr "Amplia" #~ msgid "Drag to change order of the route" #~ msgstr "Arraste para alterar a ordem da rota" 070701000001E1000081A4000000000000000000000001664134090000F7A1000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/ro.po# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # Mada-Gabriela , 2018. # Daniel Șerbănescu , 2018. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2023-10-06 21:17+0000\n" "PO-Revision-Date: 2023-10-09 15:23+0300\n" "Last-Translator: Florentina Mușat \n" "Language-Team: Gnome Romanian Translation Team\n" "Language: ro\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " "20)) ? 1 : 2);\n" "X-Generator: Poedit 3.4\n" "X-Project-Style: gnome\n" #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.appdata.xml.in.in:6 data/org.gnome.Maps.desktop.in.in:4 #: data/ui/main-window.ui:27 src/application.js:63 src/mainWindow.js:143 #: src/mainWindow.js:591 msgid "Maps" msgstr "Hărți" #: data/org.gnome.Maps.appdata.xml.in.in:7 msgid "Find places around the world" msgstr "Găsește locații din întreaga lume" #: data/org.gnome.Maps.appdata.xml.in.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "Hărți vă oferă acces rapid la hărți din întreaga lume. Vă permite să găsiți " "rapid locul pe care îl căutați, să căutați un oraș sau o stradă sau să " "localizați un loc unde să întâlniți un prieten." #: data/org.gnome.Maps.appdata.xml.in.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "Hărți colaborează cu OpenStreetMap folosind o întreagă bază de date, " "realizată de sute de mii de oameni de pe întregul pământ." #: data/org.gnome.Maps.appdata.xml.in.in:415 src/mainWindow.js:588 msgid "The GNOME Project" msgstr "Proiectul GNOME" #: data/org.gnome.Maps.desktop.in.in:5 msgid "A simple maps application" msgstr "O aplicație simplă cu hărți" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in.in:14 msgid "Maps;" msgstr "Maps;Hărți;" #: data/org.gnome.Maps.desktop.in.in:17 msgid "Allows your location to be shown on the map." msgstr "Permite ca locația curentă să fie arătată pe hartă." #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "locația vizualizată ultima dată" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "Coordonatele locației vizualizate ultima dată." #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "zoom" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "Nivel zoom" #: data/org.gnome.Maps.gschema.xml:21 msgid "rotation" msgstr "rotație" #: data/org.gnome.Maps.gschema.xml:22 msgid "Map rotation in radians" msgstr "Rotația hărții în radiani" #: data/org.gnome.Maps.gschema.xml:26 msgid "Map type" msgstr "Tip de hartă" #: data/org.gnome.Maps.gschema.xml:27 msgid "The type of map to display (street, aerial, etc.)" msgstr "Tipul de hartă de afișat (stradală, aeriană, etc.)" #: data/org.gnome.Maps.gschema.xml:31 msgid "Window size" msgstr "Dimensiunea ferestrei" #: data/org.gnome.Maps.gschema.xml:32 msgid "Window size (width and height)." msgstr "Dimensiunea ferestrei (lățime și înălțime)." #: data/org.gnome.Maps.gschema.xml:36 msgid "Window position" msgstr "Poziția ferestrei" #: data/org.gnome.Maps.gschema.xml:37 msgid "Window position (X and Y)." msgstr "Poziția ferestrei (X si Y)." #: data/org.gnome.Maps.gschema.xml:41 msgid "Window maximized" msgstr "Fereastră maximizată" #: data/org.gnome.Maps.gschema.xml:42 msgid "Window maximization state" msgstr "Starea de maximizare a ferestrei" #: data/org.gnome.Maps.gschema.xml:46 msgid "Maximum number of search results" msgstr "Numărul maxim de rezultate pentru căutare" #: data/org.gnome.Maps.gschema.xml:47 msgid "Maximum number of search results from geocode search." msgstr "Număr maxim de rezultate din căutarea după coordonate geografice." #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent places to store" msgstr "Număr de locuri recente de stocat" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited places to store." msgstr "Număr de locuri vizitate recent de stocat." #: data/org.gnome.Maps.gschema.xml:56 msgid "Number of recent routes to store" msgstr "Număr de trasee recente de stocat" #: data/org.gnome.Maps.gschema.xml:57 msgid "Number of recently visited routes to store." msgstr "Număr de trasee vizitate recent de stocat." #: data/org.gnome.Maps.gschema.xml:61 msgid "OpenStreetMap username or e-mail address" msgstr "Nume de utilizator OpenStreetMap sau adresă de e-mail" #: data/org.gnome.Maps.gschema.xml:62 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "" "Indică dacă utilizatorul s-a conectat pentru editarea datelor OpenStreetMap." #: data/org.gnome.Maps.gschema.xml:66 msgid "Last used transportation type for routing" msgstr "Ultimul tip de transport utilizat pentru drum" #: data/org.gnome.Maps.gschema.xml:70 msgid "Show scale" msgstr "Arată scara" #: data/org.gnome.Maps.gschema.xml:71 msgid "Whether to show the scale." msgstr "Dacă să se arate scara." #: data/ui/context-menu.ui:6 msgid "Route from Here" msgstr "Traseu de aici" #: data/ui/context-menu.ui:10 msgid "Add Intermediate Destination" msgstr "Adaugă destinație intermediară" #: data/ui/context-menu.ui:14 msgid "Route to Here" msgstr "Traseu până aici" #: data/ui/context-menu.ui:20 msgid "What's Here?" msgstr "Ce este aici?" #: data/ui/context-menu.ui:24 msgid "Copy Location" msgstr "Copiază locația" #: data/ui/context-menu.ui:28 msgid "Add to OpenStreetMap…" msgstr "Adaugă la OpenStreetMap…" #: data/ui/export-view-dialog.ui:7 msgid "Export view" msgstr "Exportă vizualizarea" #: data/ui/export-view-dialog.ui:16 data/ui/send-to-dialog.ui:10 #: data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "_Anulează" #: data/ui/export-view-dialog.ui:26 msgid "_Export" msgstr "_Exportă" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:11 src/geoclue.js:106 msgid "Current Location" msgstr "Locație curentă" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:19 msgid "Layers" msgstr "Straturi" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:11 msgid "Print Route" msgstr "Tipărește traseul" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:21 msgid "Favorites" msgstr "Favorite" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:30 msgid "Route Planner" msgstr "Planificator de traseu" #: data/ui/help-overlay.ui:12 msgctxt "shortcut window" msgid "General" msgstr "Generale" #: data/ui/help-overlay.ui:15 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "Arată scurtăturile" #: data/ui/help-overlay.ui:21 msgctxt "shortcut window" msgid "Search" msgstr "Caută" #: data/ui/help-overlay.ui:27 msgctxt "shortcut window" msgid "Explore points-of-interest" msgstr "Explorează punctele de interes" #: data/ui/help-overlay.ui:33 msgctxt "shortcut window" msgid "Show last search results" msgstr "Arată ultimele rezultate de căutare" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "Comută planificatorul de traseu" #: data/ui/help-overlay.ui:45 msgctxt "shortcut window" msgid "Print route" msgstr "Tipărește traseul" #: data/ui/help-overlay.ui:51 msgctxt "shortcut window" msgid "Quit" msgstr "Ieșire" #: data/ui/help-overlay.ui:57 msgctxt "shortcut window" msgid "Open main menu" msgstr "Deschide meniul principal" #: data/ui/help-overlay.ui:65 msgctxt "shortcut window" msgid "Map View" msgstr "Vizualizare hartă" #: data/ui/help-overlay.ui:68 msgctxt "shortcut window" msgid "Zoom in" msgstr "Mărește" #: data/ui/help-overlay.ui:74 msgctxt "shortcut window" msgid "Zoom out" msgstr "Micșorează" #: data/ui/help-overlay.ui:80 msgctxt "shortcut window" msgid "Rotate clockwise" msgstr "Rotește în sens orar" #: data/ui/help-overlay.ui:86 msgctxt "shortcut window" msgid "Rotate counter-clockwise" msgstr "Rotește în sens anti-orar" #: data/ui/help-overlay.ui:92 msgctxt "shortcut window" msgid "Reset rotation" msgstr "Restabilește rotația" #: data/ui/help-overlay.ui:98 msgctxt "shortcut window" msgid "Toggle scale" msgstr "Comută scara" #: data/ui/help-overlay.ui:104 msgctxt "shortcut window" msgid "Go to current location" msgstr "Navighează la locația curentă" #: data/ui/help-overlay.ui:114 msgctxt "shortcut window" msgid "Switch to street view" msgstr "Schimbă la vizualizarea stradală" #: data/ui/help-overlay.ui:121 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "Schimbă la vederea aeriană" #: data/ui/help-overlay.ui:127 msgctxt "shortcut window" msgid "Open shape layer" msgstr "Deschide stratul formei" #: data/ui/layers-popover.ui:7 msgid "Show Scale" msgstr "Arată scara" #: data/ui/layers-popover.ui:16 msgid "Enable Experimental Map" msgstr "Activează harta experimentală" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:21 msgid "Open Shape Layer…" msgstr "Deschide stratul formei…" #: data/ui/main-window.ui:8 msgid "Set up OpenStreetMap Account…" msgstr "Configurează contul OpenStreetMap…" #: data/ui/main-window.ui:12 msgid "Export as Image…" msgstr "Exportă ca imagine…" #: data/ui/main-window.ui:17 msgid "_Keyboard Shortcuts" msgstr "_Scurtături de tastatură" #: data/ui/main-window.ui:22 msgid "About Maps" msgstr "Despre Hărți" #: data/ui/main-window.ui:48 msgid "Main Menu" msgstr "Meniu principal" #: data/ui/osm-account-dialog.ui:6 msgid "OpenStreetMap Account" msgstr "Cont OpenStreetMap" #: data/ui/osm-account-dialog.ui:26 msgid "Sign in to edit maps" msgstr "" "Autentificați-vă pentru a edita " "hărți" #: data/ui/osm-account-dialog.ui:39 msgid "" "Help to improve the map, using an\n" "OpenStreetMap account." msgstr "" "Ajutați la îmbunătățirea hărții, utilizând un\n" "cont OpenStreetMap." #: data/ui/osm-account-dialog.ui:52 msgid "" "Sign in to authorize access in a web browser.\n" "Then fill in the obtained verification code here in the next step." msgstr "" "Autentificați-vă pentru a autoriza accesul într-un navigator web.\n" "Apoi completați codul de verificare obținut aici în următorul pas." #: data/ui/osm-account-dialog.ui:67 msgid "Sign In" msgstr "Autentificare" #: data/ui/osm-account-dialog.ui:111 msgid "Copy verification code shown when authorizing access in the browser" msgstr "" "Copiați codul de verificare arătat când autorizați accesul în navigator" #: data/ui/osm-account-dialog.ui:121 msgid "Verification code" msgstr "Cod de verificare" #: data/ui/osm-account-dialog.ui:132 msgid "Verify" msgstr "Verifică" #: data/ui/osm-account-dialog.ui:160 msgid "Signed In" msgstr "Autentificat" #: data/ui/osm-account-dialog.ui:172 msgid "Your OpenStreetMap account is active." msgstr "Contul dumneavoastră OpenStreetMap este activ." #: data/ui/osm-account-dialog.ui:202 msgid "Sign Out" msgstr "Deautentificare" #: data/ui/osm-edit-address.ui:11 msgid "Street" msgstr "Stradă" #: data/ui/osm-edit-address.ui:22 msgid "House number" msgstr "Număr casă" #: data/ui/osm-edit-address.ui:33 msgid "Postal code" msgstr "Cod poștal" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:44 msgid "City" msgstr "Oraș" #: data/ui/osm-edit-dialog.ui:8 msgctxt "dialog title" msgid "Edit on OpenStreetMap" msgstr "Editare pe OpenStreetMap" #: data/ui/osm-edit-dialog.ui:57 msgid "Type" msgstr "Tip" #: data/ui/osm-edit-dialog.ui:79 msgid "None" msgstr "Niciunul" #: data/ui/osm-edit-dialog.ui:108 msgid "Add Field" msgstr "Adaugă un câmp" #: data/ui/osm-edit-dialog.ui:130 msgid "Comment" msgstr "Comentariu" #: data/ui/osm-edit-dialog.ui:158 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "Schimbările de hartă vor fi vizibile pe toate hărțile\n" "care utilizează date OpenStreetMap." #: data/ui/osm-edit-dialog.ui:186 msgid "Recently Used" msgstr "Folosite recent" #: data/ui/osm-edit-dialog.ui:225 src/mapView.js:541 msgid "Cancel" msgstr "Anulează" #: data/ui/osm-edit-dialog.ui:238 src/osmEditDialog.js:531 msgid "Next" msgstr "Următorul" #: data/ui/osm-edit-wikipedia.ui:8 msgid "Article" msgstr "Articol" #: data/ui/osm-edit-wikipedia.ui:21 msgid "Wikidata tag" msgstr "Eticheta Wikidata" #: data/ui/osm-edit-wikipedia.ui:32 msgid "Load Wikidata tag for article" msgstr "Încarcă eticheta Wikidata pentru articol" #: data/ui/place-popover.ui:23 src/searchBar.js:54 msgid "Explore Nearby Places" msgstr "Explorează locurile din apropiere" #: data/ui/place-popover.ui:82 src/application.js:276 msgid "No results found" msgstr "Niciun rezultat găsit" #: data/ui/place-popover.ui:92 src/application.js:254 msgid "An error has occurred" msgstr "A apărut o eroare" #. Translators: This is a tooltip #: data/ui/route-entry.ui:12 msgid "Change Route Order" msgstr "Modifică ordinea traseului" #: data/ui/send-to-dialog.ui:7 msgid "Open Location" msgstr "Deschide locația" #: data/ui/send-to-dialog.ui:64 msgid "Copy" msgstr "Copiază" #: data/ui/send-to-dialog.ui:70 msgid "Send To…" msgstr "Trimite la…" #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:64 msgid "Open Shape Layer" msgstr "Deschide stratul formei" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "_Deschide" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:32 msgid "Toggle visible" msgstr "Comută vizibilitatea" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:44 msgid "Remove Shape Layer" msgstr "Elimină stratul formei" #: data/ui/sidebar.ui:207 msgid "Route search by GraphHopper" msgstr "Caută trasee prin GraphHopper" #: data/ui/sidebar.ui:272 msgid "" "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of " "transportation,\n" "e.g. a national provider might not include airlines, and a local provider " "could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" "Rutarea itinerariilor pentru transportul public este furnizată de servicii\n" "părți terțe.\n" "GNOME nu poate garanta corectitudinea itinerariilor și orarelor arătate.\n" "Observați că unii furnizori pot să nu includă toate modurile de transport " "disponibile,\n" "de ex. un furnizor național ar putea să nu includă liniile aeriene, și un " "furnizor local ar putea\n" "să lipsească trenurile regionale.\n" "Numele și mărcile arătate trebuie să fie considerate mărci înregistrate " "atunci când este cazul." #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:98 msgid "Hide intermediate stops and information" msgstr "Ascunde informațiile și opririle intermediare" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:156 msgid "Show intermediate stops and information" msgstr "Arată informațiile și opririle intermediare" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:16 msgid "Leave Now" msgstr "Pleacă acum" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:17 msgid "Leave By" msgstr "Pleacă până la" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:18 msgid "Arrive By" msgstr "Sosește până la" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:85 msgid "Show" msgstr "Arată" #: data/ui/transit-options-panel.ui:95 msgid "Buses" msgstr "Autobuze" #: data/ui/transit-options-panel.ui:101 msgid "Trams" msgstr "Tramvaie" #: data/ui/transit-options-panel.ui:107 msgid "Trains" msgstr "Trenuri" #: data/ui/transit-options-panel.ui:113 msgid "Subway" msgstr "Metrouri" #: data/ui/transit-options-panel.ui:119 msgid "Ferries" msgstr "Feriboturi" #: data/ui/transit-options-panel.ui:125 msgid "Airplanes" msgstr "Avioane" #. Translators: This is a tooltip #: data/ui/place-bar.ui:28 data/ui/place-buttons.ui:27 msgid "Share Location" msgstr "Partajează locația" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:11 msgid "Add to new route" msgstr "Adaugă la traseu nou" #. Translators: This is the button to find a route to a place #: data/ui/place-buttons.ui:15 msgid "Directions" msgstr "Direcții" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:36 msgid "Mark as Favorite" msgstr "Marchează ca favorit" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:44 msgid "Edit on OpenStreetMap" msgstr "Editează pe OpenStreetMap" #. Translators: This is a tooltip #: data/ui/place-view.ui:52 msgid "Share location" msgstr "Partajează locația" #: data/ui/poi-category-goback-row.ui:22 msgid "Back to Main Categories" msgstr "Înapoi la categoriile principale" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:15 src/mapView.js:1103 msgid "Zoom In" msgstr "Mărește" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:28 msgid "Zoom Out" msgstr "Micșorează" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:49 msgid "Reset Rotation" msgstr "Restabilește rotația" #: lib/maps-file-data-source.c:262 lib/maps-file-data-source.c:338 #: lib/maps-file-data-source.c:418 msgid "Failed to find tile structure in directory" msgstr "Nu s-a putut găsi structura de fragmente în director" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "Nu s-a putut analiza documentul XML" #: lib/maps-osm.c:250 lib/maps-osm.c:403 msgid "Missing required attributes" msgstr "Lipsesc atributele necesare" #: lib/maps-osm.c:451 lib/maps-osm.c:494 msgid "Could not find OSM element" msgstr "Nu s-a putut găsi elementul OSM" #: lib/maps-osm.c:508 msgid "Could not find user element" msgstr "Nu s-a putut găsi elementul utilizatorului" #: src/application.js:76 msgid "A path to a local tiles directory structure" msgstr "O cale către o structură locală de directoare pentru fragmente" #: src/application.js:82 msgid "Tile size for local tiles directory" msgstr "Dimensiunea unei dale pentru directorul de dale local" #: src/application.js:86 msgid "Show the version of the program" msgstr "Arată versiunea programului" #: src/application.js:92 msgid "Search for places" msgstr "Caută locuri" #: src/application.js:103 src/application.js:104 msgid "[FILE…|URI]" msgstr "[FIȘIER…|URI]" #: src/application.js:283 #, javascript-format msgid "Invalid maps: URI: %s" msgstr "Hărți nevalide: URI: %s" #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:74 #, javascript-format msgid "Maps at %f, %f.png" msgstr "Hărți la %f, %f.png" #: src/exportViewDialog.js:153 msgid "Unable to export view" msgstr "Nu se poate exporta vizualizarea" #: src/geoJSONSource.js:73 msgid "invalid coordinate" msgstr "coordonate nevalide" #: src/geoJSONSource.js:118 src/geoJSONSource.js:158 src/geoJSONSource.js:173 msgid "parse error" msgstr "eroare de parsare" #: src/geoJSONSource.js:152 msgid "unknown geometry" msgstr "geometrie necunoscută" #: src/graphHopper.js:101 src/transitPlan.js:174 msgid "Route request failed." msgstr "Cererea traseului a eșuat." #: src/graphHopper.js:108 src/transitPlan.js:166 msgid "No route found." msgstr "Nu s-au găsit trasee." #: src/graphHopper.js:195 src/transitplugins/openTripPlanner.js:1131 msgid "Start!" msgstr "Pornește!" #: src/mainWindow.js:61 msgid "All Layer Files" msgstr "Toate fișierele strat" #: src/mainWindow.js:468 msgid "Failed to connect to location service" msgstr "Nu s-a reușit conectarea la serviciul de localizare" #: src/mainWindow.js:473 msgid "Turn on location services" msgstr "Pornește serviciile de localizare" #: src/mainWindow.js:474 msgid "Location Settings" msgstr "Configurări de locație" #: src/mainWindow.js:589 msgid "translator-credits" msgstr "" "Mădălin Șerbănescu , 2018\n" "Florentina Mușat , " "2018-2021, 2023" #: src/mainWindow.js:593 msgid "Copyright © 2011 – 2023 Red Hat, Inc. and The GNOME Maps authors" msgstr "Drepturi de autor © 2011 – 2023 Red Hat, Inc. și autorii Hărți GNOME" #: src/mainWindow.js:609 #, javascript-format msgid "Map data by %s and contributors" msgstr "Datele hărții ale %s și contribuitorii" #: src/mainWindow.js:610 msgid "Map Data Provider" msgstr "Furnizor de date de hartă" #: src/mainWindow.js:622 msgid "Map Tile Provider" msgstr "Furnizor tile de hartă" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:630 #, javascript-format msgid "Map tiles provided by %s" msgstr "Fragmente de hărți furnizate de %s" #: src/mainWindow.js:660 msgid "Search Provider" msgstr "Caută furnizor" #: src/mainWindow.js:663 #, javascript-format msgid "Search provided by %s using %s" msgstr "Căutare furnizată de %s utilizând %s" #: src/mapView.js:515 src/mapView.js:580 msgid "Failed to open layer" msgstr "Nu s-a putut deschide stratul" #: src/mapView.js:534 msgid "Do you want to continue?" msgstr "Doriți să continuați?" #: src/mapView.js:535 #, javascript-format msgid "" "You are about to open files with a total size of %s MB. This could take some " "time to load" msgstr "" "Sunteți pe cale să deschideți fișiere cu o dimensiune totală de %s MB. Acest " "lucru ar putea dura ceva timp să se încarce" #: src/mapView.js:542 src/transitplugins/openTripPlanner.js:1207 msgid "Continue" msgstr "Continuă" #: src/mapView.js:574 msgid "File type is not supported" msgstr "Tipul de fișier nu este suportat" #: src/mapView.js:611 msgid "Failed to open GeoURI" msgstr "Nu s-a putut deschide GeoURI" #: src/mapView.js:1062 msgid "Nothing found here!" msgstr "Nimic nu a fost găsit aici!" #: src/mapView.js:1102 msgid "Zoom in to add location" msgstr "Măriți pentru a adăuga locația" #: src/mapView.js:1123 msgid "Location was added in OpenStreetMap" msgstr "Locația a fost adăugată în OpenStreetMap" #: src/osmAccountDialog.js:134 msgid "The verification code didn’t match, please try again." msgstr "Codul de verificare nu se potrivește, încercați din nou." #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:335 msgid "Incorrect user name or password" msgstr "Nume de utilizator sau parolă incorectă" #: src/osmConnection.js:337 msgid "Success" msgstr "Succes" #: src/osmConnection.js:339 msgid "Bad request" msgstr "Cerere greșită" #: src/osmConnection.js:341 msgid "Object not found" msgstr "Obiectul nu a fost găsit" #: src/osmConnection.js:343 msgid "Conflict, someone else has just modified the object" msgstr "Conflict, altcineva tocmai a modificat obiectul" #: src/osmConnection.js:345 msgid "Object has been deleted" msgstr "Obiectul a fost șters" #: src/osmConnection.js:347 msgid "Way or relation refers to non-existing children" msgstr "Calea sau relația se referă la copii care nu există" #: src/osmEditDialog.js:106 msgid "Name" msgstr "Nume" #: src/osmEditDialog.js:109 msgid "The official name. This is typically what appears on signs." msgstr "Numele oficial. Acesta este, de obicei, numele real." #: src/osmEditDialog.js:112 msgid "Address" msgstr "Adresă" #: src/osmEditDialog.js:120 src/placeView.js:261 msgid "Website" msgstr "Website" #: src/osmEditDialog.js:124 msgid "This is not a valid URL. Make sure to include http:// or https://." msgstr "" "Acesta nu este un URL valid. Asigurați-vă că includeți http:// sau https://." #: src/osmEditDialog.js:125 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" "Pagina web oficială. Încercați să utilizați forma cea mai de bază a unui URL " "de ex: http://example.com în loc de http://example.com/index.html." #: src/osmEditDialog.js:130 msgid "Phone" msgstr "Telefon" #: src/osmEditDialog.js:134 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" "Număr de telefon. Utilizați formatul internațional, care începe cu un semn " "+. Aveți grijă la legile de confidențialitate locale, în special pentru " "numerele de telefon private." #: src/osmEditDialog.js:139 src/placeView.js:294 msgid "E-mail" msgstr "Email" #: src/osmEditDialog.js:144 msgid "" "This is not a valid e-mail address. Make sure to not include the mailto: " "protocol prefix." msgstr "" "Aceasta nu este o adresă email validă. Asigurați-vă că nu includeți prefixul " "de protocol mailto:." #: src/osmEditDialog.js:145 msgid "" "Contact e-mail address for inquiries. Add only email addresses that are " "intended to be publicly used." msgstr "" "Adresă email de contact pentru solicitări de informații. Adăugați doar " "adrese de email care sunt destinate a fi utilizate public." #. Translators: This is the text for the "Wikipedia" link at the end #. of summaries #: src/osmEditDialog.js:149 src/placeView.js:646 msgid "Wikipedia" msgstr "Wikipedia" #: src/osmEditDialog.js:156 src/placeView.js:331 msgid "Opening hours" msgstr "Ore de deschidere" #: src/osmEditDialog.js:161 msgid "See the link in the label for help on format." msgstr "Consultați legătura din etichetă pentru ajutor cu formatul." #. TODO: this is a bit of a work-around to re-interpret the population, #. * stored as a string into an integer to convert back to a locale- #. * formatted string. Ideally it should be kept as an integer value #. * in the Place class. But this will also need to be handled by the #. * PlaceStore, possible in a backwards-compatible way #. #: src/osmEditDialog.js:164 src/placeView.js:441 msgid "Population" msgstr "Populație" #: src/osmEditDialog.js:169 src/placeView.js:470 msgid "Altitude" msgstr "Altitudine" #: src/osmEditDialog.js:172 msgid "Elevation (height above sea level) of a point in metres." msgstr "Elevația (înălțimea deasupra nivelului mării) unui punct în metri." #: src/osmEditDialog.js:175 msgid "Wheelchair access" msgstr "Acces pentru scaun cu rotile" #: src/osmEditDialog.js:178 src/osmEditDialog.js:187 src/osmEditDialog.js:198 #: src/osmEditDialog.js:233 msgid "Yes" msgstr "Da" #: src/osmEditDialog.js:179 src/osmEditDialog.js:188 src/osmEditDialog.js:199 #: src/osmEditDialog.js:234 msgid "No" msgstr "Nu" #: src/osmEditDialog.js:180 msgid "Limited" msgstr "Limitat" #: src/osmEditDialog.js:181 msgid "Designated" msgstr "Desemnat" #: src/osmEditDialog.js:184 msgid "Internet access" msgstr "Acces la internet" #: src/osmEditDialog.js:189 msgid "Wi-Fi" msgstr "Wi-Fi" #: src/osmEditDialog.js:190 msgid "Wired" msgstr "Cu fir" #: src/osmEditDialog.js:191 msgid "Terminal" msgstr "Terminal" #: src/osmEditDialog.js:192 msgid "Service" msgstr "Serviciu" #: src/osmEditDialog.js:195 msgid "Takeout" msgstr "La pachet" #: src/osmEditDialog.js:200 msgid "Only" msgstr "Doar" #: src/osmEditDialog.js:203 msgid "Religion" msgstr "Religie" #: src/osmEditDialog.js:206 src/translations.js:286 msgid "Animism" msgstr "Animism" #: src/osmEditDialog.js:207 msgid "Bahá’í" msgstr "Bahá’í" #: src/osmEditDialog.js:208 src/translations.js:288 msgid "Buddhism" msgstr "Budism" #: src/osmEditDialog.js:209 src/translations.js:289 msgid "Caodaism" msgstr "Caodaism" #: src/osmEditDialog.js:210 src/translations.js:290 msgid "Christianity" msgstr "Creștinism" #: src/osmEditDialog.js:211 src/translations.js:291 msgid "Confucianism" msgstr "Confucianism" #: src/osmEditDialog.js:212 src/translations.js:292 msgid "Hinduism" msgstr "Hinduism" #: src/osmEditDialog.js:213 src/translations.js:293 msgid "Jainism" msgstr "Jainism" #: src/osmEditDialog.js:214 src/translations.js:294 msgid "Judaism" msgstr "Iudaism" #: src/osmEditDialog.js:215 src/translations.js:295 msgid "Islam" msgstr "Islam" #: src/osmEditDialog.js:216 src/translations.js:296 msgid "Multiple Religions" msgstr "Religii multiple" #: src/osmEditDialog.js:217 src/translations.js:297 msgid "Paganism" msgstr "Păgânism" #: src/osmEditDialog.js:218 src/translations.js:298 msgid "Pastafarianism" msgstr "Pastafarianism" #: src/osmEditDialog.js:219 src/translations.js:299 msgid "Scientology" msgstr "Scientologie" #: src/osmEditDialog.js:220 src/translations.js:300 msgid "Shinto" msgstr "Shinto" #: src/osmEditDialog.js:221 src/translations.js:301 msgid "Sikhism" msgstr "Sikhism" #: src/osmEditDialog.js:222 src/translations.js:302 msgid "Spiritualism" msgstr "Spiritualism" #: src/osmEditDialog.js:223 src/translations.js:303 msgid "Taoism" msgstr "Taoism" #: src/osmEditDialog.js:224 src/translations.js:304 msgid "Unitarian Universalism" msgstr "Universalism unitarian" #: src/osmEditDialog.js:225 src/translations.js:305 msgid "Voodoo" msgstr "Voodoo" #: src/osmEditDialog.js:226 src/translations.js:306 msgid "Yazidism" msgstr "Yazidism" #: src/osmEditDialog.js:227 src/translations.js:307 msgid "Zoroastrianism" msgstr "Zoroastrism" #: src/osmEditDialog.js:230 src/poiCategories.js:174 msgid "Toilets" msgstr "Toalete" #: src/osmEditDialog.js:237 msgid "Note" msgstr "Notiță" #: src/osmEditDialog.js:240 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" "Informații utilizate pentru a informa alți utilizatori de hărți despre " "informațiile care nu sunt evidente despre un element, intenția autorului în " "timpul creării acestuia, sau indicii pentru îmbunătățiri ulterioare." #: src/osmEditDialog.js:339 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "Adaugă la OpenStreetMap" #: src/osmEditDialog.js:393 msgid "Select Type" msgstr "Selectați tipul" #: src/osmEditDialog.js:515 msgid "Done" msgstr "Gata" #: src/osmEditDialog.js:818 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "" "Formatul utilizat trebuie să includă codul de limbă și titlul articolului ca " "„en:titlu de articol”." #: src/osmEditDialog.js:824 msgid "Use the reload button to load the Wikidata tag for the selected article" msgstr "" "Utilizați butonul de reîncărcare pentru a încărca eticheta Wikidata pentru " "articolul selectat" #: src/osmEditDialog.js:832 msgid "Couldn't find Wikidata tag for article" msgstr "Nu s-a putut găsi eticheta Wikidata pentru articol" #: src/photonUtils.js:118 msgid "Unnamed place" msgstr "Loc nedenumit" #: src/placeEntry.js:277 msgid "Failed to parse Geo URI" msgstr "Nu s-a putut parsa URI-ul Geo" #: src/placeEntry.js:289 msgid "Failed to parse Maps URI" msgstr "Nu s-a putut parsa URI-ul Hărți" #. 300 ft (300 * 12 * 0.0254 m) #. #. * Translators: This a format string for showing a distance to a place #. * is lower than a "quite short" distance. #. * The "less than" symbol can be substituded with an appropriate one, if #. * needed (e.g. using the correct direction, or alternative symbol). #. * The %s should be kept, and is substituted with a label representing the #. * short distance. The \u2009 (thin space) could also be adjusted if needed #: src/placeListRow.js:46 #, javascript-format msgctxt "short distance format string" msgid "< %s" msgstr "< %s" #: src/placeView.js:249 msgid "Coordinates" msgstr "Coordonate" #: src/placeView.js:253 msgid "Accuracy" msgstr "Acuratețe" #. Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) #: src/placeView.js:256 #, javascript-format msgid "Accuracy: %s" msgstr "Acuratețe: %s" #. since the phone numbers are typically always rendered #. * left-to-right, insert an explicit LRM char to avoid issues #. * with phone numbers in international format starting with a + #. * which is considered a "weak" character to determine Unicode #. * text direction #. #: src/placeView.js:275 msgid "Phone number" msgstr "Număr de telefon" #. Translators: #. * The establishment offers customers to purchase meals #. * (or similar) to be consumed elsewhere #. #: src/placeView.js:307 msgid "Offers takeout" msgstr "Oferă mâncare la pachet" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed on-premise. #. #: src/placeView.js:315 msgid "Does not offer takeout" msgstr "Nu oferă mâncare la pachet" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed elsewhere. E.g. #. * there is no seating on-premise for eating/drinking #. #: src/placeView.js:324 msgid "Only offers takeout" msgstr "Oferă doar mâncare la pachet" #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/placeView.js:341 msgid "Public internet access" msgstr "Acces la internet public" #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/placeView.js:350 msgid "No internet access" msgstr "Nu există acces la internet" #. Translators: #. * This means a WLAN Hotspot, also known as wireless, wifi or Wi-Fi. #. #: src/placeView.js:358 msgid "Public Wi-Fi" msgstr "Wi-Fi public" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/placeView.js:366 msgid "Wired internet access" msgstr "Acces la internet prin cablu" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/placeView.js:374 msgid "Computers available for use" msgstr "Calculatoare disponibile pentru utilizare" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/placeView.js:382 msgid "Internet assistance available" msgstr "Asistență pe internet disponibilă" #: src/placeView.js:388 msgid "No toilets available" msgstr "Nu există toalete disponibile" #: src/placeView.js:391 msgid "Toilets available" msgstr "Toaletele sunt disponibile" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #: src/placeView.js:400 msgid "Wheelchair accessible" msgstr "Accesibil pentru scaun cu rotile" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/placeView.js:410 msgid "Limited wheelchair accessibility" msgstr "Accesibilitate pentru scaun cu rotile limitată" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #: src/placeView.js:419 msgid "Not wheelchair accessible" msgstr "Nu este accesibil pentru scaun cu rotile" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/placeView.js:429 msgid "Designated for wheelchair users" msgstr "Desemnat pentru utilizatorii în scaun cu rotile" #. * #. * Translators: this is a label indicating an altitude below #. * sea level, where the %s placeholder is the altitude relative #. * to mean sea level in the "negative direction" #. #: src/placeView.js:460 #, javascript-format msgid "%s below sea level" msgstr "%s sub nivelul mării" #. * #. * Translators: this indicates a place is located at (or very #. * close to) mean sea level #. #: src/placeView.js:467 msgid "At sea level" msgstr "La nivelul mării" #: src/placeView.js:476 msgid "Religion:" msgstr "Religie:" #: src/place.js:543 msgid "Place not found in OpenStreetMap" msgstr "Locul nu a fost găsit în OpenStreetMap" #: src/place.js:550 msgid "Coordinates in URL are not valid" msgstr "Coordonatele din URL nu sunt valide" #: src/place.js:559 msgid "URL is not supported" msgstr "URL-ul nu este suportat" #: src/poiCategories.js:132 msgid "Amenities" msgstr "Facilități" #: src/poiCategories.js:135 msgid "ATMs" msgstr "ATM-uri" #: src/poiCategories.js:141 msgid "Post Boxes" msgstr "Cutii poștale" #: src/poiCategories.js:147 msgid "Post Offices" msgstr "Oficii poștale" #: src/poiCategories.js:153 msgid "Police" msgstr "Poliție" #: src/poiCategories.js:159 msgid "Libraries" msgstr "Biblioteci" #: src/poiCategories.js:165 msgid "Pharmacies" msgstr "Farmacii" #: src/poiCategories.js:170 msgid "Recycling" msgstr "Reciclare" #: src/poiCategories.js:180 msgid "Wheelchair-accessible Toilets" msgstr "Toalete accesibile pentru scaune cu rotile" #: src/poiCategories.js:186 msgid "Baggage Lockers" msgstr "Dulapuri pentru bagaje" #: src/poiCategories.js:194 msgid "Eating & Drinking" msgstr "Mâncare și băutură" #: src/poiCategories.js:198 msgid "Restaurants" msgstr "Restaurante" #: src/poiCategories.js:203 msgid "Fast Food" msgstr "Fast food" #: src/poiCategories.js:208 msgid "Food Courts" msgstr "Spații de mâncare" #: src/poiCategories.js:213 msgid "Pubs" msgstr "Pub-uri" #: src/poiCategories.js:219 msgid "Bars" msgstr "Baruri" #: src/poiCategories.js:224 msgid "Cafes" msgstr "Cafenele" #: src/poiCategories.js:229 msgid "Ice Cream" msgstr "Înghețată" #: src/poiCategories.js:233 msgid "Food, Snacks, and Beverage Machines" msgstr "Aparate pentru alimente, gustări și băuturi" #: src/poiCategories.js:241 msgid "Shopping" msgstr "Cumpărături" #: src/poiCategories.js:245 msgid "Supermarkets" msgstr "Supermarketuri" #: src/poiCategories.js:251 msgid "Convenience Stores" msgstr "Magazine" #: src/poiCategories.js:256 msgid "Shopping Malls" msgstr "Mall-uri" #: src/poiCategories.js:262 msgid "Clothes" msgstr "Haine" #: src/poiCategories.js:267 msgid "Shoes" msgstr "Pantofi" #: src/poiCategories.js:272 msgid "Electronics" msgstr "Electronice" #: src/poiCategories.js:278 msgid "Alcohol" msgstr "Alcool" #: src/poiCategories.js:284 msgid "Bakeries" msgstr "Brutării" #: src/poiCategories.js:290 msgid "Flowers" msgstr "Flori" #: src/poiCategories.js:297 msgid "Transportation" msgstr "Transport" #: src/poiCategories.js:301 msgid "Bus & Tram Stops" msgstr "Stații de autobuz și tramvai" #: src/poiCategories.js:309 msgid "Train & Subway Stations" msgstr "Stații de tren și metrou" #: src/poiCategories.js:317 msgid "Tickets" msgstr "Bilete" #: src/poiCategories.js:325 msgid "Parking" msgstr "Parcare" #: src/poiCategories.js:330 msgid "Bicycle Parking" msgstr "Parcare pentru biciclete" #: src/poiCategories.js:335 msgid "Bicycle Rental" msgstr "Închiriere de biciclete" #: src/poiCategories.js:340 msgid "Car Rental" msgstr "Închirieri auto" #: src/poiCategories.js:345 msgid "Fuel" msgstr "Combustibil" #: src/poiCategories.js:350 msgid "EV Charging" msgstr "Încărcare EV" #: src/poiCategories.js:358 msgid "Healthcare" msgstr "Sănătate" #: src/poiCategories.js:362 msgid "Clinics" msgstr "Clinici" #: src/poiCategories.js:368 msgid "Hospitals" msgstr "Spitale" #: src/poiCategories.js:374 msgid "Dentists" msgstr "Stomatologi" #: src/poiCategories.js:381 msgid "Accommodation" msgstr "Cazare" #: src/poiCategories.js:385 msgid "Hotels" msgstr "Hoteluri" #: src/poiCategories.js:390 msgid "Hostels" msgstr "Pensiuni" #: src/poiCategories.js:395 msgid "Bed & Breakfast" msgstr "Cazare si mic dejun" #: src/poiCategories.js:400 msgid "Campings" msgstr "Campinguri" #: src/poiCategories.js:407 msgid "Recreation" msgstr "Recreere" #: src/poiCategories.js:411 msgid "Parks" msgstr "Parcuri" #: src/poiCategories.js:416 msgid "Playgrounds" msgstr "Locuri de joacă" #: src/poiCategories.js:420 msgid "Beaches" msgstr "Plaje" #: src/poiCategories.js:425 msgid "Nature Reserves" msgstr "Rezervații naturale" #: src/poiCategories.js:431 msgid "Theme Parks" msgstr "Parcuri tematice" #: src/poiCategories.js:436 msgid "Theaters" msgstr "Teatre" #: src/poiCategories.js:442 msgid "Movie Theaters" msgstr "Cinematografe" #: src/poiCategories.js:448 msgid "Night Clubs" msgstr "Cluburi de noapte" #: src/poiCategories.js:455 msgid "Tourism" msgstr "Turism" #: src/poiCategories.js:459 msgid "Museums" msgstr "Muzee" #: src/poiCategories.js:465 msgid "Attractions" msgstr "Atracții" #: src/poiCategories.js:470 msgid "Artworks" msgstr "Opere de artă" #: src/poiCategories.js:475 msgid "Tourist Information" msgstr "Informații turistice" #: src/poiCategories.js:482 msgid "Sports" msgstr "Sport" #: src/poiCategories.js:486 msgid "Gyms" msgstr "Săli de sport" #: src/poiCategories.js:492 msgid "Outdoor Gyms" msgstr "Săli de sport în aer liber" #: src/poiCategories.js:498 msgid "Golf Courses" msgstr "Terenuri de golf" #: src/printLayout.js:350 #, javascript-format msgid "From %s to %s" msgstr "De la %s la %s" #: src/printOperation.js:49 msgid "Loading map tiles for printing" msgstr "Se încarcă fragmentele de hartă pentru tipărire" #: src/printOperation.js:50 msgid "You can abort printing if this takes too long" msgstr "Puteți să anulați tipărirea dacă durează prea mult" #: src/printOperation.js:52 msgid "Abort printing" msgstr "Despre tipărire" #. Translators: this is add via location tooltip #: src/routeEntry.js:60 msgid "Add via location" msgstr "Adaugă via locație" #. Translators: this is remove via location tooltip #: src/routeEntry.js:70 msgid "Remove via location" msgstr "Elimină via locație" #. Translators: this is reverse route tooltip #: src/routeEntry.js:76 msgid "Reverse route" msgstr "Inversează traseul" #: src/searchBar.js:45 msgid "Search" msgstr "Caută" #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:84 #, javascript-format msgid "Add %s to %s" msgstr "Adaugă %s la %s" #: src/sendToDialog.js:181 msgid "Failed to open URI" msgstr "Nu s-a putut deschide URI-ul" #: src/sendToDialog.js:246 #, javascript-format msgid "Open with %s" msgstr "Deschide cu %s" #: src/shapeLayer.js:108 msgid "failed to load file" msgstr "nu s-a putut încărca fișierul" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:329 #, javascript-format msgid "Estimated time: %s" msgstr "Timp estimat: %s" #: src/sidebar.js:399 #, javascript-format msgid "Itineraries provided by %s" msgstr "Itinerarii furnizate de %s" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:39 #, javascript-format msgid "Start at %s" msgstr "Începe la %s" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:45 msgid "Start" msgstr "Începe" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:63 #, javascript-format msgid "Walk %s" msgstr "Plimbare pe %s" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:77 #, javascript-format msgid "Arrive at %s" msgstr "Sosește la %s" #: src/transit.js:79 src/transitplugins/openTripPlanner.js:1144 msgid "Arrive" msgstr "Sosește" #: src/transitLegRow.js:69 msgid "Show walking instructions" msgstr "Arată instrucțiunile de plimbare" #: src/transitLegRow.js:70 msgid "Hide walking instructions" msgstr "Ascunde instrucțiunile de plimbare" #: src/transitMoreRow.js:37 msgid "Load earlier alternatives" msgstr "Încarcă alternativele de dinainte" #: src/transitMoreRow.js:39 msgid "Load later alternatives" msgstr "Încarcă alternativele de mai târziu" #: src/transitMoreRow.js:52 msgid "No earlier alternatives found." msgstr "Nu s-au găsit alternative anterioare." #: src/transitMoreRow.js:54 msgid "No later alternatives found." msgstr "Nu s-au găsit alternative de mai târziu." #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:136 msgctxt "month-day-date" msgid "%b %e" msgstr "%e %b" #: src/transitPlan.js:170 msgid "No timetable data found for this route." msgstr "Nu s-au găsit date în orar pentru acest traseu." #: src/transitPlan.js:178 msgid "No provider found for this route." msgstr "Nu s-a găsit furnizor pentru acest traseu." #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:295 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:324 #, javascript-format msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "%s minut" msgstr[1] "%s minute" msgstr[2] "%s de minute" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:336 #, javascript-format msgid "%s hour" msgid_plural "%s hours" msgstr[0] "%s oră" msgstr[1] "%s ore" msgstr[2] "%s de ore" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:344 #, javascript-format msgid "%s:%s hour" msgid_plural "%s:%s hours" msgstr[0] "%s:%s oră" msgstr[1] "%s:%s ore" msgstr[2] "%s:%s de ore" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:698 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: src/translations.js:55 msgid "Around the clock" msgstr "Non-stop" #: src/translations.js:57 msgid "From sunrise to sunset" msgstr "De la răsărit la apus" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:123 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s,%s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:137 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s,%s,%s" #: src/translations.js:156 msgid "Every day" msgstr "În fiecare zi" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:168 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:179 msgid "Public holidays" msgstr "Vacanțe publice" #: src/translations.js:181 msgid "School holidays" msgstr "Vacanțe școlare" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:221 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: src/translations.js:235 msgid "not open" msgstr "nu este deschis" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:250 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:287 msgid "Bahá'í" msgstr "Bahá'í" #. Translators: Accuracy of user location information #: src/utils.js:257 msgid "Unknown" msgstr "Necunoscut" #. Translators: Accuracy of user location information #: src/utils.js:260 msgid "Exact" msgstr "Exact" #. Translators: this is a duration with only hours, using #. * an abbreviation for hours, corresponding to 'h' in English #. #: src/utils.js:345 #, javascript-format msgid "%s h" msgstr "%s o" #. Translators: this is a duration with hours and minutes parts #. * using abbreviations for hours and minutes, corresponding to 'h' #. * and 'min' in English. The minutes has appropriate plural variations #. #: src/utils.js:351 #, javascript-format msgid "%s h %s min" msgid_plural "%s h %s min" msgstr[0] "%s o %s min" msgstr[1] "%s o %s min" msgstr[2] "%s o %s min" #. Translators: this is a duration with minutes part #. * using abbreviation for minutes, corresponding to 'min' in English #. * with appropriate plural variations #. #: src/utils.js:358 #, javascript-format msgid "%s min" msgid_plural "%s min" msgstr[0] "%s min" msgstr[1] "%s min" msgstr[2] "%s min" #. Translators: this is a duration of less than one minute #. * with seconds using an abbreviation for seconds, corresponding to #. * 's' in English with appropriate plural forms #. #: src/utils.js:364 #, javascript-format msgid "%s s" msgid_plural "%s s" msgstr[0] "%s s" msgstr[1] "%s s" msgstr[2] "%s s" #. Translators: This is a distance measured in kilometers #: src/utils.js:375 #, javascript-format msgid "%s km" msgstr "%s km" #. Translators: This is a distance measured in meters #: src/utils.js:378 #, javascript-format msgid "%s m" msgstr "%s m" #. Translators: This is a distance measured in miles #: src/utils.js:386 #, javascript-format msgid "%s mi" msgstr "%s mi" #. Translators: This is a distance measured in feet #: src/utils.js:389 #, javascript-format msgid "%s ft" msgstr "%s ft" #: src/transitplugins/goMetro.js:61 msgid "This plugin doesn't support latest arrival" msgstr "Acest modul nu suportă ultima sosire" #: src/transitplugins/openTripPlanner.js:1205 #, javascript-format msgid "Continue on %s" msgstr "Continuă pe %s" #: src/transitplugins/openTripPlanner.js:1210 #, javascript-format msgid "Turn left on %s" msgstr "Virează la stânga pe %s" #: src/transitplugins/openTripPlanner.js:1212 msgid "Turn left" msgstr "Virează la stânga" #: src/transitplugins/openTripPlanner.js:1215 #, javascript-format msgid "Turn slightly left on %s" msgstr "Virează larg la stânga pe %s" #: src/transitplugins/openTripPlanner.js:1217 msgid "Turn slightly left" msgstr "Virează larg la stânga" #: src/transitplugins/openTripPlanner.js:1220 #, javascript-format msgid "Turn sharp left on %s" msgstr "Virează strâns la stânga pe %s" #: src/transitplugins/openTripPlanner.js:1222 msgid "Turn sharp left" msgstr "Virează strâns la stânga" #: src/transitplugins/openTripPlanner.js:1225 #, javascript-format msgid "Turn right on %s" msgstr "Virează la dreapta pe %s" #: src/transitplugins/openTripPlanner.js:1227 msgid "Turn right" msgstr "Virează la dreapta" #: src/transitplugins/openTripPlanner.js:1230 #, javascript-format msgid "Turn slightly right on %s" msgstr "Virează larg la dreapta pe %s" #: src/transitplugins/openTripPlanner.js:1232 msgid "Turn slightly right" msgstr "Virează larg la dreapta" #: src/transitplugins/openTripPlanner.js:1235 #, javascript-format msgid "Turn sharp right on %s" msgstr "Virează strâns la dreapta pe %s" #: src/transitplugins/openTripPlanner.js:1237 msgid "Turn sharp right" msgstr "Virează strâns la dreapta" #: src/transitplugins/openTripPlanner.js:1243 #, javascript-format msgid "At the roundabout, take exit %s" msgstr "La sensul giratoriu, virează la ieșirea %s" #: src/transitplugins/openTripPlanner.js:1245 #, javascript-format msgid "At the roundabout, take exit to %s" msgstr "La sensul giratoriu, virează la ieșirea spre %s" #: src/transitplugins/openTripPlanner.js:1247 msgid "Take the roundabout" msgstr "Intră în sensul giratoriu" #: src/transitplugins/openTripPlanner.js:1251 #, javascript-format msgid "Take the elevator and get off at %s" msgstr "Luați liftul și ieșiți la %s" #: src/transitplugins/openTripPlanner.js:1253 msgid "Take the elevator" msgstr "Luați liftul" #: src/transitplugins/openTripPlanner.js:1257 #, javascript-format msgid "Make a left u-turn onto %s" msgstr "Întoarce prin stânga pe %s" #: src/transitplugins/openTripPlanner.js:1259 msgid "Make a left u-turn" msgstr "Întoarce prin stânga" #: src/transitplugins/openTripPlanner.js:1262 #, javascript-format msgid "Make a right u-turn onto %s" msgstr "Întoarce prin dreapta pe %s" #: src/transitplugins/openTripPlanner.js:1264 msgid "Make a right u-turn" msgstr "Întoarce prin dreapta" #~ msgid "GNOME Maps" #~ msgstr "Hărți GNOME" #~ msgid "Foursquare check-in privacy setting" #~ msgstr "Configurare de confidențialitate pentru înregistrare Foursquare" #~ msgid "" #~ "Latest used Foursquare check-in privacy setting. Possible values are: " #~ "public, followers or private." #~ msgstr "" #~ "Configurarea de confidențialitate pentru înregistrare Foursquare " #~ "utilizată cel mai recent. Valorile posibile sunt: public, cei care " #~ "urmăresc sau privat." #~ msgid "Foursquare check-in Facebook broadcasting" #~ msgstr "Difuzarea pe Facebook a înregistrării Foursquare" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a post in the " #~ "Facebook account associated with the Foursquare account." #~ msgstr "" #~ "Indică dacă Foursquare ar trebui să difuzeze înregistrarea ca un mesaj pe " #~ "contul Facebook asociat cu contul Foursquare." #~ msgid "Foursquare check-in Twitter broadcasting" #~ msgstr "Difuzarea pe Twitter a înregistrării Foursquare" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a tweet in the " #~ "Twitter account associated with the Foursquare account." #~ msgstr "" #~ "Indică dacă Foursquare ar trebui să difuzeze înregistrarea ca un tweet pe " #~ "contul Twitter asociat cu contul Foursquare." #~ msgid "Night mode" #~ msgstr "Mod nocturn" #~ msgid "Whether the application is in night mode." #~ msgstr "Dacă aplicația este în modul nocturn." #~ msgid "Use hybrid aerial tiles" #~ msgstr "Utilizează dalele aeriene hibride" #~ msgid "Whether aerial tiles should use hybrid style (with labels)." #~ msgstr "" #~ "Dacă dalele aeriene ar trebui să utilizeze stilul hibrid (cu etichete)." #~ msgid "Visibility" #~ msgstr "Vizibilitate" #~ msgid "Post on Facebook" #~ msgstr "Postează pe Facebook" #~ msgid "Post on Twitter" #~ msgstr "Postează pe Twitter" #~ msgid "C_heck in" #~ msgstr "Înr_egistrează" #~ msgid "Public" #~ msgstr "Public" #~ msgid "Private" #~ msgstr "Privat" #~ msgid "Include route and markers" #~ msgstr "Includeți ruta și marcajele" #~ msgid "Go to current location" #~ msgstr "Navighează la locația curentă" #~ msgid "Choose map type" #~ msgstr "Alegeți tipul hărții" #~ msgid "Zoom in" #~ msgstr "Mărește" #~ msgid "Night Mode" #~ msgstr "Mod nocturn" #~ msgid "Maps is offline!" #~ msgstr "Hărți este offline!" #~ msgid "" #~ "Maps need an active internet connection to function properly, but one " #~ "can’t be found." #~ msgstr "" #~ "Hărți necesită o conexiune la internet pentru a funcționa în mod " #~ "corespunzător, dar nicio conexiune nu a fost găsită." #~ msgid "Check your connection and proxy settings." #~ msgstr "Verificați conexiunile și configurările proxy." #~ msgid "Email" #~ msgstr "E-mail" #~ msgid "Password" #~ msgstr "Parolă" #~ msgid "Sign up" #~ msgstr "Înregistrare" #~ msgid "" #~ "Sorry, that didn’t work. Please try again, or visit\n" #~ "OpenStreetMap to reset your password." #~ msgstr "" #~ "Nu a funcționat. Încercați din nou, sau vizitați\n" #~ "OpenStreetMap pentru a restabili parola." #~ msgid "Drag to change order of the route" #~ msgstr "Trageți pentru a schimba ordinea rutei" #~ msgid "Check In…" #~ msgstr "Verificare de intrare…" #~ msgid "Ignore network availability" #~ msgstr "Ignoră disponibilitatea rețelei" #~ msgid "Select an account" #~ msgstr "Selectați un cont" #~ msgid "Loading" #~ msgstr "Se încarcă" #~ msgid "" #~ "Maps cannot find the place to check in to with Foursquare. Please select " #~ "one from this list." #~ msgstr "" #~ "Hărți nu poate găsit locul pentru înregistrarea cu Foursquare. Selectați " #~ "unul din această listă." #, javascript-format #~ msgid "Check in to %s" #~ msgstr "Înregistează la %s" #, javascript-format #~ msgid "Write an optional message to check in to %s." #~ msgstr "Scrieți un mesaj opțional pentru înregistrare la %s." #, javascript-format #~ msgid "Cannot find “%s” in the social service" #~ msgstr "Nu s-a putut găsi „%s” la serviciul social" #~ msgid "Cannot find a suitable place to check-in in this location" #~ msgstr "" #~ "Nu s-a putut găsit un loc potrivit pentru înregistrare la această locație" #~ msgid "" #~ "Credentials have expired, please open Online Accounts to sign in and " #~ "enable this account" #~ msgstr "" #~ "Certificările au expirat, deschideți conturi online pentru a vă " #~ "autentifica și activa contul acesta" #~ msgid "" #~ "Location was added to the map, note that it may take a while before it " #~ "shows on the map and in search results." #~ msgstr "" #~ "Locația a fost adăugată pe hartă, rețineți că poate dura ceva timp " #~ "înainte de a fi arătată pe hartă și în rezultatele căutării." #~ msgid "Filesystem is read only" #~ msgstr "Sistemul de fișiere este numai pentru citire" #~ msgid "You do not have permission to save there" #~ msgstr "Nu aveți permisiunea de a salva acolo" #~ msgid "The directory does not exist" #~ msgstr "Directorul nu există" #~ msgid "No filename specified" #~ msgstr "Nu este specificat nici un nume de fișier" #~ msgid "A map application for GNOME" #~ msgstr "O aplicație cu hărți pentru GNOME" #~ msgid "Takeaway" #~ msgstr "Mâncare la pachet" #~ msgid "" #~ "You can even search for specific types of locations, such as “Pubs near " #~ "Main Street, Boston” or “Hotels near Alexanderplatz, Berlin”." #~ msgstr "" #~ "Puteți de asemenea să căutați anumite tipuri de locații, precum „Gara " #~ "Lipscani, București” sau „Acces Wi-Fi lângă Dumbrava, Sibiu”." #~ msgid "Facebook check-in privacy setting" #~ msgstr "Configurare de confidențialitate pentru înregistrare Facebook" #~ msgid "" #~ "Latest used Facebook check-in privacy setting. Possible values are: " #~ "EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS or SELF." #~ msgstr "" #~ "Configurarea de confidențialitate pentru înregistrare Facebook utilizată " #~ "cel mai recent. Valorile posibile sunt: TOATĂ_LUMEA, " #~ "PRIETENII_PRIETENILOR, TOȚI_PRIETENII sau DE_SINE." #~ msgid "Everyone" #~ msgstr "Toată lumea" #~ msgid "Friends of friends" #~ msgstr "Prietenii prietenilor" #~ msgid "Just friends" #~ msgstr "Doar prietenii" #~ msgid "Just me" #~ msgstr "Doar eu" #~ msgid "" #~ "Maps cannot find the place to check in to with Facebook. Please select " #~ "one from this list." #~ msgstr "" #~ "Hărți nu poate găsi locul pentru înregistrarea cu Facebook. Selectați " #~ "unul din această listă." #~ msgctxt "time range list" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgctxt "time range list" #~ msgid "%s %s %s" #~ msgstr "%s %s %s" #~ msgctxt "time range component" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgid "Find a Route" #~ msgstr "Găsește o rută" #~ msgid "Check in here" #~ msgstr "Înregistrați-vă aici" #~ msgid "Population:" #~ msgstr "Populație:" #~ msgid "Altitude:" #~ msgstr "Altitudine:" #~ msgid "Opening hours:" #~ msgstr "Ore de deschidere:" #~ msgid "Internet access:" #~ msgstr "Acces la internet:" #~ msgid "Toilets:" #~ msgstr "Toalete:" #~ msgid "Wheelchair access:" #~ msgstr "Acces pentru scaun cu rotile:" #~ msgid "Phone:" #~ msgstr "Număr de telefon:" #~ msgid "yes" #~ msgstr "da" #~ msgid "limited" #~ msgstr "limitat" #~ msgid "no" #~ msgstr "nu" #~ msgid "designated" #~ msgstr "desemnat" #~ msgid "OpenStreetMap URL is not valid" #~ msgstr "URL-ul de OpenStreetMap nu este valid" #~ msgid "wired" #~ msgstr "cu fir" #~ msgid "terminal" #~ msgstr "terminal" #~ msgid "service" #~ msgstr "serviciu" #~ msgid "Primary menu" #~ msgstr "Meniu principal" #~ msgid "Don’t have an account?" #~ msgstr "Nu aveți un cont?" #~ msgid "Route search by OpenTripPlanner" #~ msgstr "Căută rute prin OpenTripPlanner" #~ msgid "Add destination" #~ msgstr "Adaugă o destinație" #~ msgid "%f h" #~ msgstr "%f o" #~ msgid "%f min" #~ msgstr "%f min" #~ msgid "%f s" #~ msgstr "%f s" #~ msgid "org.gnome.Maps" #~ msgstr "org.gnome.Maps" #~ msgid "Open with another application" #~ msgstr "Deschide cu o altă aplicație" #~ msgid "Press enter to search" #~ msgstr "Apasă Enter pentru a căuta" #~ msgid "Quit" #~ msgstr "Ieșire" #~ msgid "OK" #~ msgstr "OK" 070701000001E2000081A40000000000000000000000016641340900011F5D000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/ru.po# Russian translation for gnome-maps. # Copyright (C) 2013 gnome-maps's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-maps package. # Mihail Gurin , 2014, 2015. # Ivan Komaritsyn , 2015. # Yuri Myasoedov , 2013, 2014, 2015. # Stas Solovey , 2014, 2015, 2016. # Роман Верменко , 2017. # msgid "" msgstr "" "Project-Id-Version: gnome-maps master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2024-03-02 12:18+0000\n" "PO-Revision-Date: 2024-03-06 16:30+0300\n" "Last-Translator: Artur So \n" "Language-Team: русский \n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Poedit 3.4.2\n" #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.appdata.xml.in.in:6 data/org.gnome.Maps.desktop.in.in:4 #: data/ui/main-window.ui:27 src/application.js:64 src/mainWindow.js:147 #: src/mainWindow.js:647 msgid "Maps" msgstr "Карты" #: data/org.gnome.Maps.appdata.xml.in.in:7 msgid "Find places around the world" msgstr "Поиск местоположений по всему миру" #: data/org.gnome.Maps.appdata.xml.in.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "Приложение «Карты» позволяет получить быстрый доступ к картам по всему миру, " "находить места в городах, на улицах или указывать места для встречи с " "друзьями." #: data/org.gnome.Maps.appdata.xml.in.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "Карты используют базу данных OpenStreetMap, созданную сотнями тысяч людей по " "всеми миру." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Maps.appdata.xml.in.in:458 src/mainWindow.js:644 msgid "The GNOME Project" msgstr "Проект GNOME" #: data/org.gnome.Maps.desktop.in.in:5 msgid "A simple maps application" msgstr "Простое картографическое приложение" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in.in:14 msgid "Maps;" msgstr "Карты;" #: data/org.gnome.Maps.desktop.in.in:17 msgid "Allows your location to be shown on the map." msgstr "Позволяет показывать на карте ваше местоположение." #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "последнее просмотренное местоположение" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "Координаты последнего просмотренного местоположения." #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "увеличить" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "Уровень масштабирования" #: data/org.gnome.Maps.gschema.xml:21 msgid "rotation" msgstr "вращение" #: data/org.gnome.Maps.gschema.xml:22 msgid "Map rotation in radians" msgstr "Вращение карты в радианах" #: data/org.gnome.Maps.gschema.xml:26 msgid "Map type" msgstr "Тип" #: data/org.gnome.Maps.gschema.xml:27 msgid "The type of map to display (street, aerial, etc.)" msgstr "Тип карты для отображения (уличная, аэрофотосъемка и т.д.)" #: data/org.gnome.Maps.gschema.xml:31 msgid "Window size" msgstr "Размер окна" #: data/org.gnome.Maps.gschema.xml:32 msgid "Window size (width and height)." msgstr "Размер окна (ширина и высота)." #: data/org.gnome.Maps.gschema.xml:36 msgid "Window position" msgstr "Положение окна" #: data/org.gnome.Maps.gschema.xml:37 msgid "Window position (X and Y)." msgstr "Положение окна (X, Y)." #: data/org.gnome.Maps.gschema.xml:41 msgid "Window maximized" msgstr "Окно развёрнуто" #: data/org.gnome.Maps.gschema.xml:42 msgid "Window maximization state" msgstr "Режим развёрнутого окна" #: data/org.gnome.Maps.gschema.xml:46 msgid "Maximum number of search results" msgstr "Максимальное количество результатов поиска" #: data/org.gnome.Maps.gschema.xml:47 msgid "Maximum number of search results from geocode search." msgstr "Максимальное количество результатов поиска по поиску геокода." #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent places to store" msgstr "Количество последних сохранённых мест" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited places to store." msgstr "Количество сохранённых недавно посещённых мест." #: data/org.gnome.Maps.gschema.xml:56 msgid "Number of recent routes to store" msgstr "Количество последних сохранённых маршрутов" #: data/org.gnome.Maps.gschema.xml:57 msgid "Number of recently visited routes to store." msgstr "Количество сохранённых недавно использовавшихся маршрутов." #: data/org.gnome.Maps.gschema.xml:61 msgid "OpenStreetMap username or email address" msgstr "Имя или адрес эл. почты пользователя OpenStreetMap" #: data/org.gnome.Maps.gschema.xml:62 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "" "Указывает, выполнил ли пользователь вход для редактирования данных " "OpenStreetMap." #: data/org.gnome.Maps.gschema.xml:66 msgid "Last used transportation type for routing" msgstr "Последний тип транспорта, использовавшийся для маршрута" #: data/org.gnome.Maps.gschema.xml:70 msgid "Show scale" msgstr "Показать масштаб" #: data/org.gnome.Maps.gschema.xml:71 msgid "Whether to show the scale." msgstr "Нужно ли показывать масштаб." #: data/ui/context-menu.ui:6 msgid "Route from Here" msgstr "Маршрут отсюда" #: data/ui/context-menu.ui:10 msgid "Add Intermediate Destination" msgstr "Добавить промежуточный пункт назначения" #: data/ui/context-menu.ui:14 msgid "Route to Here" msgstr "Маршрут сюда" #: data/ui/context-menu.ui:20 msgid "What's Here?" msgstr "Что здесь?" #: data/ui/context-menu.ui:24 msgid "Copy Location" msgstr "Копировать местоположение" #: data/ui/context-menu.ui:28 msgid "Add to OpenStreetMap…" msgstr "Добавить в OpenStreetMap…" #: data/ui/export-view-dialog.ui:7 msgid "Export view" msgstr "Экспортировать просматриваемую область" #: data/ui/export-view-dialog.ui:16 data/ui/send-to-dialog.ui:10 #: data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "_Отменить" #: data/ui/export-view-dialog.ui:26 msgid "_Export" msgstr "_Экспортировать" #. Translators: This is a tooltip #: data/ui/favorite-list-row.ui:72 msgid "Remove Favorite" msgstr "Удалить избранное" #: data/ui/favorites-popover.ui:11 msgid "No Favorites" msgstr "Нет избранных" #: data/ui/favorites-popover.ui:12 msgid "Add places to your favorites to get them listed here" msgstr "Добавьте места в избранные, чтобы они появились здесь" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:11 src/geoclue.js:106 msgid "Current Location" msgstr "Текущее местоположение" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:19 msgid "Layers" msgstr "Слои" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:11 msgid "Print Route" msgstr "Печать маршрута" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:21 msgid "Favorites" msgstr "Избранные" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:30 msgid "Route Planner" msgstr "Планировщик маршрута" #: data/ui/help-overlay.ui:12 msgctxt "shortcut window" msgid "General" msgstr "Общие" #: data/ui/help-overlay.ui:15 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "Показать комбинации клавиш" #: data/ui/help-overlay.ui:21 msgctxt "shortcut window" msgid "Search" msgstr "Поиск" #: data/ui/help-overlay.ui:27 msgctxt "shortcut window" msgid "Explore points-of-interest" msgstr "Исследовать достопримечательности" #: data/ui/help-overlay.ui:33 msgctxt "shortcut window" msgid "Show last search results" msgstr "Показать последние результаты поиска" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "Включить или выключить планировщик маршрута" #: data/ui/help-overlay.ui:45 msgctxt "shortcut window" msgid "Print route" msgstr "Печать маршрута" #: data/ui/help-overlay.ui:51 msgctxt "shortcut window" msgid "Quit" msgstr "Закрыть" #: data/ui/help-overlay.ui:57 msgctxt "shortcut window" msgid "Open main menu" msgstr "Открыть главное меню" #: data/ui/help-overlay.ui:65 msgctxt "shortcut window" msgid "Map View" msgstr "Просмотр карты" #: data/ui/help-overlay.ui:68 msgctxt "shortcut window" msgid "Zoom in" msgstr "Приблизить" #: data/ui/help-overlay.ui:74 msgctxt "shortcut window" msgid "Zoom out" msgstr "Отдалить" #: data/ui/help-overlay.ui:80 msgctxt "shortcut window" msgid "Rotate clockwise" msgstr "Вращать по часовой стрелке" #: data/ui/help-overlay.ui:86 msgctxt "shortcut window" msgid "Rotate counter-clockwise" msgstr "Вращать против часовой стрелки" #: data/ui/help-overlay.ui:92 msgctxt "shortcut window" msgid "Reset rotation" msgstr "Сбросить вращение" #: data/ui/help-overlay.ui:98 msgctxt "shortcut window" msgid "Toggle scale" msgstr "Включить или выключить масштаб" #: data/ui/help-overlay.ui:104 msgctxt "shortcut window" msgid "Go to current location" msgstr "Перейти к текущему местоположению" #: data/ui/help-overlay.ui:114 msgctxt "shortcut window" msgid "Switch to street view" msgstr "Переключиться на просмотр улиц" #: data/ui/help-overlay.ui:121 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "Переключиться на вид сверху" #: data/ui/help-overlay.ui:127 msgctxt "shortcut window" msgid "Open shape layer" msgstr "Открыть слой" #: data/ui/layers-popover.ui:7 msgid "Show Scale" msgstr "Показать масштаб" #: data/ui/layers-popover.ui:16 msgid "Enable Experimental Map" msgstr "Включить экспериментальную карту" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:21 msgid "Open Shape Layer…" msgstr "Открыть слой фигур…" #: data/ui/main-window.ui:8 msgid "Set up OpenStreetMap Account…" msgstr "Настроить учётную запись OpenStreetMap…" #: data/ui/main-window.ui:12 msgid "Export as Image…" msgstr "Экспортировать как изображение…" #: data/ui/main-window.ui:17 msgid "_Keyboard Shortcuts" msgstr "_Комбинации клавиш" #: data/ui/main-window.ui:22 msgid "About Maps" msgstr "О приложении" #: data/ui/main-window.ui:48 msgid "Main Menu" msgstr "Главное меню" #: data/ui/osm-account-dialog.ui:5 msgid "OpenStreetMap Account" msgstr "Учётная запись OpenStreetMap" #: data/ui/osm-account-dialog.ui:31 msgid "Sign In To Edit Maps" msgstr "Войдите для редактирования карт" #: data/ui/osm-account-dialog.ui:32 msgid "Help to improve the map, using an OpenStreetMap account." msgstr "Помогите улучшить карту, используя учётную запись OpenStreetMap." #: data/ui/osm-account-dialog.ui:36 msgid "Sign In" msgstr "Войти" #: data/ui/osm-account-dialog.ui:59 msgid "Verification" msgstr "Проверка" #: data/ui/osm-account-dialog.ui:60 msgid "" "Copy the verification code shown when authorizing access in the browser." msgstr "" "Скопируйте проверочный код, отображаемый при авторизации доступа в браузере." #: data/ui/osm-account-dialog.ui:69 msgid "Verification Code" msgstr "Проверочный код" #: data/ui/osm-account-dialog.ui:75 msgid "Verify" msgstr "Проверить" #: data/ui/osm-account-dialog.ui:110 msgid "Signed In" msgstr "Вошел" #: data/ui/osm-account-dialog.ui:111 msgid "Your OpenStreetMap account is active." msgstr "Ваша учётная запись OpenStreetMap активна." #: data/ui/osm-account-dialog.ui:129 msgid "Sign Out" msgstr "Выйти" #: data/ui/osm-edit-address.ui:11 msgid "Street" msgstr "Улица" #: data/ui/osm-edit-address.ui:22 msgid "House number" msgstr "Номер дома" #: data/ui/osm-edit-address.ui:33 msgid "Postal code" msgstr "Почтовый индекс" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:44 msgid "City" msgstr "Город" #: data/ui/osm-edit-dialog.ui:8 msgctxt "dialog title" msgid "Edit on OpenStreetMap" msgstr "Изменить на OpenStreetMap" #: data/ui/osm-edit-dialog.ui:57 msgid "Type" msgstr "Тип" #: data/ui/osm-edit-dialog.ui:79 msgid "None" msgstr "Отсутствует" #: data/ui/osm-edit-dialog.ui:108 msgid "Add Field" msgstr "Добавить поле" #: data/ui/osm-edit-dialog.ui:130 msgid "Comment" msgstr "Комментарий" #: data/ui/osm-edit-dialog.ui:158 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "Изменения, сделанных в картах, будут доступны на всех картах,\n" "использующие данные OpenStreetMap." #: data/ui/osm-edit-dialog.ui:186 msgid "Recently Used" msgstr "Недавно использованные" #: data/ui/osm-edit-dialog.ui:225 src/mapView.js:671 msgid "Cancel" msgstr "Отменить" #: data/ui/osm-edit-dialog.ui:238 src/osmEditDialog.js:531 msgid "Next" msgstr "Далее" #: data/ui/osm-edit-wikipedia.ui:8 msgid "Article" msgstr "Статья" #: data/ui/osm-edit-wikipedia.ui:21 msgid "Wikidata tag" msgstr "Метка Викиданных" #: data/ui/osm-edit-wikipedia.ui:32 msgid "Load Wikidata tag for article" msgstr "Загрузить метку Викиданных для статьи" #: data/ui/place-popover.ui:23 src/searchBar.js:55 msgid "Explore Nearby Places" msgstr "Исследовать близлежащие места" #: data/ui/place-popover.ui:82 src/application.js:277 msgid "No results found" msgstr "Результатов не найдено" #: data/ui/place-popover.ui:92 src/application.js:255 msgid "An error has occurred" msgstr "Произошла ошибка" #. Translators: This is a tooltip #: data/ui/route-entry.ui:12 msgid "Change Route Order" msgstr "Изменить порядок маршрута" #: data/ui/send-to-dialog.ui:7 msgid "Open Location" msgstr "Открыть местоположение" #: data/ui/send-to-dialog.ui:64 msgid "Copy" msgstr "Копировать" #: data/ui/send-to-dialog.ui:70 msgid "Send To…" msgstr "Отправить…" #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:62 msgid "Open Shape Layer" msgstr "Открыть слой фигур" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "_Открыть" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:32 msgid "Toggle visible" msgstr "Включить или выключить видимый" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:44 msgid "Remove Shape Layer" msgstr "Удалить слой фигур" #: data/ui/sidebar.ui:207 msgid "Route search by GraphHopper" msgstr "Поиск маршрута с помощью GraphHopper" #: data/ui/sidebar.ui:272 msgid "" "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of " "transportation,\n" "e.g. a national provider might not include airlines, and a local provider " "could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" "Маршрутизация маршрутов общественного транспорта осуществляется сторонними\n" "сервисами.\n" "GNOME не может гарантировать правильность показанных маршрутов и " "расписаний.\n" "Обратите внимание, что некоторые поставщики могут не включать все доступные " "виды транспорта,\n" "например, национальный провайдер может не включать авиалинии, а местный " "провайдер может\n" "может не включать региональные поезда.\n" "Указанные названия и бренды следует рассматривать как зарегистрированные " "торговые марки, когда это применимо." #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:98 msgid "Hide intermediate stops and information" msgstr "Скрывать промежуточные остановки и информацию" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:156 msgid "Show intermediate stops and information" msgstr "Показывать промежуточные остановки и информацию" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:16 msgid "Leave Now" msgstr "Отправляются сейчас" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:17 msgid "Leave By" msgstr "Отправляются" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:18 msgid "Arrive By" msgstr "Прибывают" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:85 msgid "Show" msgstr "Показывать" #: data/ui/transit-options-panel.ui:95 msgid "Buses" msgstr "Автобусы" #: data/ui/transit-options-panel.ui:101 msgid "Trams" msgstr "Трамваи" #: data/ui/transit-options-panel.ui:107 msgid "Trains" msgstr "Поезда" #: data/ui/transit-options-panel.ui:113 msgid "Subway" msgstr "Метро" #: data/ui/transit-options-panel.ui:119 msgid "Ferries" msgstr "Переправы" #: data/ui/transit-options-panel.ui:125 msgid "Airplanes" msgstr "Самолеты" #. Translators: This is a tooltip #: data/ui/place-bar.ui:33 data/ui/place-buttons.ui:27 msgid "Share Location" msgstr "Поделиться местоположением" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:11 msgid "Add to new route" msgstr "Добавить к новому маршруту" #. Translators: This is the button to find a route to a place #: data/ui/place-buttons.ui:15 msgid "Directions" msgstr "Направления" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:36 msgid "Mark as Favorite" msgstr "Отметить как избранное" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:44 msgid "Edit on OpenStreetMap" msgstr "Изменить на OpenStreetMap" #. Translators: This is a tooltip #: data/ui/place-view.ui:52 msgid "Share location" msgstr "Поделиться местоположением" #: data/ui/poi-category-goback-row.ui:22 msgid "Back to Main Categories" msgstr "Вернуться к основным категориям" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:19 msgid "Reset Rotation" msgstr "Сбросить вращение" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:32 msgid "Zoom Out" msgstr "Отдалить" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:43 src/mapView.js:1246 msgid "Zoom In" msgstr "Приблизить" # сомнительно, требует проверки #: lib/maps-file-data-source.c:262 lib/maps-file-data-source.c:338 #: lib/maps-file-data-source.c:418 msgid "Failed to find tile structure in directory" msgstr "Не удалось найти плиточную структуру в каталоге" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "Не удалось разобрать документ XML" #: lib/maps-osm.c:250 lib/maps-osm.c:403 msgid "Missing required attributes" msgstr "Пропущены обязательные атрибуты" #: lib/maps-osm.c:451 lib/maps-osm.c:494 msgid "Could not find OSM element" msgstr "Не удалось найти элемент OSM" #: lib/maps-osm.c:508 msgid "Could not find user element" msgstr "Не удалось найти элемент пользователя" # сомнительно, требует проверки #: src/application.js:78 msgid "A path to a local tiles directory structure" msgstr "Путь к локальному каталогу плиточной структуры" # сомнительно, требует проверки #: src/application.js:84 msgid "Tile size for local tiles directory" msgstr "Размер для локального каталога фрагментов" #: src/application.js:88 msgid "Show the version of the program" msgstr "Показать версию программы" #: src/application.js:94 msgid "Search for places" msgstr "Поиск мест" #: src/application.js:105 src/application.js:106 msgid "[FILE…|URI]" msgstr "[FILE...|URI]" #: src/application.js:284 #, javascript-format msgid "Invalid maps: URI: %s" msgstr "Недопустимые карты: URI: %s" #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:75 #, javascript-format msgid "Maps at %f, %f.png" msgstr "Карты на %f, %f.png" #: src/exportViewDialog.js:174 msgid "Unable to export view" msgstr "Не удалось экспортировать просматриваемую область" #: src/favoriteListRow.js:42 msgid "Favorite removed" msgstr "Избранное удалено" #: src/favoriteListRow.js:43 msgid "Undo" msgstr "Вернуть" #: src/geoJSONSource.js:73 msgid "invalid coordinate" msgstr "неверные координаты" #: src/geoJSONSource.js:126 src/geoJSONSource.js:166 src/geoJSONSource.js:181 msgid "parse error" msgstr "ошибка разбора" #: src/geoJSONSource.js:160 msgid "unknown geometry" msgstr "неизвестная геометрия" #: src/graphHopper.js:101 src/transitPlan.js:175 msgid "Route request failed." msgstr "Сбой при запросе маршрута." #: src/graphHopper.js:108 src/transitPlan.js:167 msgid "No route found." msgstr "Маршрут не найден." #: src/graphHopper.js:195 src/transitplugins/openTripPlanner.js:1163 msgid "Start!" msgstr "Старт!" #: src/mainWindow.js:59 msgid "All Layer Files" msgstr "Все файлы слоёв" #: src/mainWindow.js:522 msgid "Failed to connect to location service" msgstr "Не удалось подключиться к службе определения местоположения" #: src/mainWindow.js:527 msgid "Turn on location services" msgstr "Включите службы определения местоположения" #: src/mainWindow.js:528 msgid "Location Settings" msgstr "Параметры местоположения" #: src/mainWindow.js:645 msgid "translator-credits" msgstr "" "Yuri Myasoedov , 2013, 2014.\n" "Stas Solovey , 2014-2019.\n" "Alexey Rubtsov , 2021\n" "Aleksandr Melman , 2022-2023" #: src/mainWindow.js:649 msgid "Copyright © 2011 – 2023 Red Hat, Inc. and The GNOME Maps authors" msgstr "Авторское право © 2011 – 2023 Red Hat, Inc. и авторы GNOME Maps" #: src/mainWindow.js:665 #, javascript-format msgid "Map data by %s and contributors" msgstr "Картографические данные %s и участников" #: src/mainWindow.js:666 msgid "Map Data Provider" msgstr "Поставщик картографических данных" #: src/mainWindow.js:678 msgid "Map Tile Provider" msgstr "Поставщик картографического слоя" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:686 #, javascript-format msgid "Map tiles provided by %s" msgstr "Картографические слои предоставлены %s" #: src/mainWindow.js:716 msgid "Search Provider" msgstr "Поставщик поиска" #: src/mainWindow.js:719 #, javascript-format msgid "Search provided by %s using %s" msgstr "Поиск осуществляется %s с помощью %s" #: src/mapView.js:645 src/mapView.js:710 msgid "Failed to open layer" msgstr "Не удалось открыть слой" #: src/mapView.js:664 msgid "Do you want to continue?" msgstr "Вы хотите продолжить?" #: src/mapView.js:665 #, javascript-format msgid "" "You are about to open files with a total size of %s MB. This could take some " "time to load" msgstr "" "Вы собираетесь открыть файлы общим размером %s МБ. Загрузка может занять " "некоторое время" #: src/mapView.js:672 src/transitplugins/openTripPlanner.js:1239 #: src/transitplugins/openTripPlanner2.js:267 msgid "Continue" msgstr "Продолжить" #: src/mapView.js:704 msgid "File type is not supported" msgstr "Тип файла не поддерживается" #: src/mapView.js:741 msgid "Failed to open GeoURI" msgstr "Не удалось открыть геолокационный URI" #: src/mapView.js:1205 msgid "Nothing found here!" msgstr "Здесь ничего не найдено!" #: src/mapView.js:1245 msgid "Zoom in to add location" msgstr "Приблизьте, чтобы добавить местоположение" #: src/mapView.js:1266 msgid "Location was added in OpenStreetMap" msgstr "Местоположение было добавлено в OpenStreetMap" #. switch back to the sign-in view, and show a toast indicating #. that verification failed #: src/osmAccountDialog.js:134 msgid "The verification code didn’t match, please try again." msgstr "Проверочный код не совпадает, попробуйте снова." #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:335 msgid "Incorrect user name or password" msgstr "Неверное имя пользователя или пароль" #: src/osmConnection.js:337 msgid "Success" msgstr "Успешно" #: src/osmConnection.js:339 msgid "Bad request" msgstr "Неверный запрос" #: src/osmConnection.js:341 msgid "Object not found" msgstr "Объект не найден" #: src/osmConnection.js:343 msgid "Conflict, someone else has just modified the object" msgstr "Конфликт: кто-то ещё только что изменил объект" #: src/osmConnection.js:345 msgid "Object has been deleted" msgstr "Объект был удалён" #: src/osmConnection.js:347 msgid "Way or relation refers to non-existing children" msgstr "Путь или связь ссылается на несуществующего потомка" #: src/osmEditDialog.js:106 msgid "Name" msgstr "Имя" #: src/osmEditDialog.js:109 msgid "The official name. This is typically what appears on signs." msgstr "Официальное название. Обычно то, что написано на знаках." #: src/osmEditDialog.js:112 msgid "Address" msgstr "Адрес" #: src/osmEditDialog.js:120 src/placeView.js:275 msgid "Website" msgstr "Веб-сайт" #: src/osmEditDialog.js:124 msgid "This is not a valid URL. Make sure to include http:// or https://." msgstr "Это не правильный URL. Обязательно включите http:// или https://." #: src/osmEditDialog.js:125 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" "Официальный веб-сайт. Рекомендуется использовать URL в наиболее общей форме, " "например «http://example.com» вместо «http://example.com/index.html»." #: src/osmEditDialog.js:130 msgid "Phone" msgstr "Телефон" #: src/osmEditDialog.js:134 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" "Номер телефона. Используйте международный формат, начинающийся со знака «+»." #: src/osmEditDialog.js:139 src/placeView.js:308 msgid "Email" msgstr "Электронная почта" #: src/osmEditDialog.js:144 msgid "" "This is not a valid email address. Make sure to not include the mailto: " "protocol prefix." msgstr "" "Это не действительный адрес электронной почты. Убедитесь, что не указан " "префикс протокола mailto:." #: src/osmEditDialog.js:145 msgid "" "Contact email address for inquiries. Add only email addresses that are " "intended to be publicly used." msgstr "" "Адрес электронной почты для запросов. Добавляйте только те адреса " "электронной почты, которые предназначены для публичного использования." #. Translators: This is the text for the "Wikipedia" link at the end #. of summaries #: src/osmEditDialog.js:149 src/placeView.js:727 msgid "Wikipedia" msgstr "Википедия" #: src/osmEditDialog.js:156 src/placeView.js:399 msgid "Opening hours" msgstr "Часы работы" #: src/osmEditDialog.js:161 msgid "See the link in the label for help on format." msgstr "Для получения справки по формату см. ссылку в метке." #. TODO: this is a bit of a work-around to re-interpret the population, #. * stored as a string into an integer to convert back to a locale- #. * formatted string. Ideally it should be kept as an integer value #. * in the Place class. But this will also need to be handled by the #. * PlaceStore, possible in a backwards-compatible way #. #: src/osmEditDialog.js:164 src/placeView.js:509 msgid "Population" msgstr "Население" #: src/osmEditDialog.js:169 src/placeView.js:538 msgid "Altitude" msgstr "Высота" #: src/osmEditDialog.js:172 msgid "Elevation (height above sea level) of a point in meters." msgstr "Высота (высота над уровнем моря) точки в метрах." #: src/osmEditDialog.js:175 msgid "Wheelchair access" msgstr "Доступ для инвалидных колясок" #: src/osmEditDialog.js:178 src/osmEditDialog.js:187 src/osmEditDialog.js:198 #: src/osmEditDialog.js:233 msgid "Yes" msgstr "Да" #: src/osmEditDialog.js:179 src/osmEditDialog.js:188 src/osmEditDialog.js:199 #: src/osmEditDialog.js:234 msgid "No" msgstr "Нет" #: src/osmEditDialog.js:180 msgid "Limited" msgstr "Ограниченный" #: src/osmEditDialog.js:181 msgid "Designated" msgstr "Специализированный" #: src/osmEditDialog.js:184 msgid "Internet access" msgstr "Доступ к Интернету" #: src/osmEditDialog.js:189 msgid "Wi-Fi" msgstr "Wi-Fi" #: src/osmEditDialog.js:190 msgid "Wired" msgstr "Проводной" #: src/osmEditDialog.js:191 msgid "Terminal" msgstr "Терминал" #: src/osmEditDialog.js:192 msgid "Service" msgstr "Служебный" #: src/osmEditDialog.js:195 msgid "Takeout" msgstr "Вынос" #: src/osmEditDialog.js:200 msgid "Only" msgstr "Только" #: src/osmEditDialog.js:203 msgid "Religion" msgstr "Религия" #: src/osmEditDialog.js:206 src/translations.js:286 msgid "Animism" msgstr "Анимизм" #: src/osmEditDialog.js:207 msgid "Bahá’í" msgstr "Бахаи" #: src/osmEditDialog.js:208 src/translations.js:288 msgid "Buddhism" msgstr "Буддизм" #: src/osmEditDialog.js:209 src/translations.js:289 msgid "Caodaism" msgstr "Каодаизм" #: src/osmEditDialog.js:210 src/translations.js:290 msgid "Christianity" msgstr "Христианство" #: src/osmEditDialog.js:211 src/translations.js:291 msgid "Confucianism" msgstr "Конфуцианство" #: src/osmEditDialog.js:212 src/translations.js:292 msgid "Hinduism" msgstr "Индуизм" #: src/osmEditDialog.js:213 src/translations.js:293 msgid "Jainism" msgstr "Джайнизм" #: src/osmEditDialog.js:214 src/translations.js:294 msgid "Judaism" msgstr "Иудаизм" #: src/osmEditDialog.js:215 src/translations.js:295 msgid "Islam" msgstr "Ислам" #: src/osmEditDialog.js:216 src/translations.js:296 msgid "Multiple Religions" msgstr "Несколько религий" #: src/osmEditDialog.js:217 src/translations.js:297 msgid "Paganism" msgstr "Язычество" #: src/osmEditDialog.js:218 src/translations.js:298 msgid "Pastafarianism" msgstr "Пастафарианство" #: src/osmEditDialog.js:219 src/translations.js:299 msgid "Scientology" msgstr "Саентология" #: src/osmEditDialog.js:220 src/translations.js:300 msgid "Shinto" msgstr "Синто" #: src/osmEditDialog.js:221 src/translations.js:301 msgid "Sikhism" msgstr "Сикхизм" #: src/osmEditDialog.js:222 src/translations.js:302 msgid "Spiritualism" msgstr "Спиритизм" #: src/osmEditDialog.js:223 src/translations.js:303 msgid "Taoism" msgstr "Даосизм" #: src/osmEditDialog.js:224 src/translations.js:304 msgid "Unitarian Universalism" msgstr "Унитарный универсализм" #: src/osmEditDialog.js:225 src/translations.js:305 msgid "Voodoo" msgstr "Шаманство" #: src/osmEditDialog.js:226 src/translations.js:306 msgid "Yazidism" msgstr "Езидизм" #: src/osmEditDialog.js:227 src/translations.js:307 msgid "Zoroastrianism" msgstr "Зороастризм" #: src/osmEditDialog.js:230 src/poiCategories.js:176 msgid "Toilets" msgstr "Туалеты" #: src/osmEditDialog.js:237 msgid "Note" msgstr "Заметка" #: src/osmEditDialog.js:240 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" "Информация, используемая для информирования других картографов о неочевидной " "информации об элементе, намерении автора при его создании или о намеках на " "дальнейшее совершенствование." #: src/osmEditDialog.js:339 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "Добавить в OpenStreetMap" #: src/osmEditDialog.js:393 msgid "Select Type" msgstr "Выберите тип" #: src/osmEditDialog.js:515 msgid "Done" msgstr "Готово" #: src/osmEditDialog.js:818 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "" "Используемый формат должен содержать код языка и заголовок статьи, например " "«ru:Заголовок статьи»." #: src/osmEditDialog.js:824 msgid "Use the reload button to load the Wikidata tag for the selected article" msgstr "" "Используйте кнопку перезагрузки для загрузки метки Викиданных для выбранной " "статьи" #: src/osmEditDialog.js:832 msgid "Couldn't find Wikidata tag for article" msgstr "Не удалось найти метку Викиданных для статьи" #: src/photonUtils.js:118 msgid "Unnamed place" msgstr "Неназванное место" #: src/placeEntry.js:274 msgid "Failed to parse Geo URI" msgstr "Не удалось разобрать геолокационный URI" #: src/placeEntry.js:286 msgid "Failed to parse Maps URI" msgstr "Не удалось разобрать URI карт" #. 300 ft (300 * 12 * 0.0254 m) #. #. * Translators: This a format string for showing a distance to a place #. * is lower than a "quite short" distance. #. * The "less than" symbol can be substituded with an appropriate one, if #. * needed (e.g. using the correct direction, or alternative symbol). #. * The %s should be kept, and is substituted with a label representing the #. * short distance. The \u2009 (thin space) could also be adjusted if needed #: src/placeListRow.js:46 #, javascript-format msgctxt "short distance format string" msgid "< %s" msgstr "< %s" #: src/placeView.js:263 msgid "Coordinates" msgstr "Координаты" #: src/placeView.js:267 msgid "Accuracy" msgstr "Точность" #. Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) #: src/placeView.js:270 #, javascript-format msgid "Accuracy: %s" msgstr "Точность: %s" #. since the phone numbers are typically always rendered #. * left-to-right, insert an explicit LRM char to avoid issues #. * with phone numbers in international format starting with a + #. * which is considered a "weak" character to determine Unicode #. * text direction #. #: src/placeView.js:289 msgid "Phone number" msgstr "Номер телефона" #. If a reference to a named floor (named or symbolic) exists #. * refer to it directly. #. #. Translators: #. * This is a reference to named building floor, using a label #. * or a code, as "displayed in the elevator" #. #: src/placeView.js:323 src/placeView.js:362 msgid "Floor" msgstr "Этаж" #: src/placeView.js:325 #, javascript-format msgid "Floor %s" msgstr "Этаж %s" #: src/placeView.js:337 msgid "At ground level" msgstr "На уровне земли" #. Translators: #. * This is a reference to a number of floors above #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:346 #, javascript-format msgid "%s floor above ground level" msgid_plural "%s floors above ground level" msgstr[0] "%s этаж над уровнем земли" msgstr[1] "%s этажа над уровнем земли" msgstr[2] "%s этажей над уровнем земли" #. Translators: #. * This is a reference to a number of floors below #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:357 #, javascript-format msgid "%s floor below ground level" msgid_plural "%s floors below ground level" msgstr[0] "%s этаж ниже уровня земли" msgstr[1] "%s этажа ниже уровня земли" msgstr[2] "%s этажей ниже уровня земли" #. Translators: #. * The establishment offers customers to purchase meals #. * (or similar) to be consumed elsewhere #. #: src/placeView.js:375 msgid "Offers takeout" msgstr "Предлагает еду на вынос" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed on-premise. #. #: src/placeView.js:383 msgid "Does not offer takeout" msgstr "Не предлагает еду на вынос" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed elsewhere. E.g. #. * there is no seating on-premise for eating/drinking #. #: src/placeView.js:392 msgid "Only offers takeout" msgstr "Только еда на вынос" #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/placeView.js:409 msgid "Public internet access" msgstr "Открытый доступ в Интернет" #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/placeView.js:418 msgid "No internet access" msgstr "Отсутствие доступа в Интернет" #. Translators: #. * This means a WLAN Hotspot, also known as wireless, wifi or Wi-Fi. #. #: src/placeView.js:426 msgid "Public Wi-Fi" msgstr "Общественный Wi-Fi" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/placeView.js:434 msgid "Wired internet access" msgstr "Проводной доступ в Интернет" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/placeView.js:442 msgid "Computers available for use" msgstr "Компьютеры доступные для использования" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/placeView.js:450 msgid "Internet assistance available" msgstr "Доступна помощь в Интернете" #: src/placeView.js:456 msgid "No toilets available" msgstr "Туалеты отсутствуют" #: src/placeView.js:459 msgid "Toilets available" msgstr "Туалеты в наличии" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #: src/placeView.js:468 msgid "Wheelchair accessible" msgstr "Доступность для инвалидных колясок" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/placeView.js:478 msgid "Limited wheelchair accessibility" msgstr "Ограниченная доступность для инвалидных колясок" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #: src/placeView.js:487 msgid "Not wheelchair accessible" msgstr "Не доступен для инвалидных колясок" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/placeView.js:497 msgid "Designated for wheelchair users" msgstr "Предназначен для инвалидов-колясочников" #. * #. * Translators: this is a label indicating an altitude below #. * sea level, where the %s placeholder is the altitude relative #. * to mean sea level in the "negative direction" #. #: src/placeView.js:528 #, javascript-format msgid "%s below sea level" msgstr "%s ниже уровня моря" #. * #. * Translators: this indicates a place is located at (or very #. * close to) mean sea level #. #: src/placeView.js:535 msgid "At sea level" msgstr "На уровне моря" #: src/placeView.js:544 msgid "Religion:" msgstr "Религия:" #: src/place.js:576 msgid "Place not found in OpenStreetMap" msgstr "Место не найдено в OpenStreetMap" #: src/place.js:583 msgid "Coordinates in URL are not valid" msgstr "Координаты в URL не действительны" #: src/place.js:592 msgid "URL is not supported" msgstr "URL не поддерживается" #: src/poiCategories.js:132 msgid "Amenities" msgstr "Услуги" #: src/poiCategories.js:135 msgid "ATMs" msgstr "Банкоматы" #: src/poiCategories.js:141 msgid "Post Boxes" msgstr "Почтовые ящики" #: src/poiCategories.js:147 msgid "Post Offices" msgstr "Почтовые отделения" #: src/poiCategories.js:153 msgid "Police" msgstr "Полиция" #: src/poiCategories.js:159 msgid "Libraries" msgstr "Библиотеки" #: src/poiCategories.js:165 msgid "Pharmacies" msgstr "Аптеки" #: src/poiCategories.js:171 msgid "Recycling" msgstr "Пункты приёма вторсырья" #: src/poiCategories.js:182 msgid "Wheelchair-accessible Toilets" msgstr "Туалеты, доступные для инвалидов-колясочников" #: src/poiCategories.js:188 msgid "Baggage Lockers" msgstr "Камеры хранения багажа" #: src/poiCategories.js:196 msgid "Eating & Drinking" msgstr "Еда и напитки" #: src/poiCategories.js:200 msgid "Restaurants" msgstr "Рестораны" #: src/poiCategories.js:205 msgid "Fast Food" msgstr "Фаст-фуд" #: src/poiCategories.js:210 msgid "Food Courts" msgstr "Фуд-корты" #: src/poiCategories.js:215 msgid "Pubs" msgstr "Пабы" #: src/poiCategories.js:221 msgid "Bars" msgstr "Бары" #: src/poiCategories.js:226 msgid "Cafes" msgstr "Кафе" #: src/poiCategories.js:231 msgid "Ice Cream" msgstr "Кафе-мороженное" #: src/poiCategories.js:236 msgid "Food, Snacks, and Beverage Machines" msgstr "Автоматы по продаже продуктов питания, закусок и напитков" #: src/poiCategories.js:244 msgid "Shopping" msgstr "Покупки" #: src/poiCategories.js:248 msgid "Supermarkets" msgstr "Супермаркеты" #: src/poiCategories.js:254 msgid "Convenience Stores" msgstr "Круглосуточные магазины" #: src/poiCategories.js:259 msgid "Shopping Malls" msgstr "Торговые центры" #: src/poiCategories.js:265 msgid "Clothes" msgstr "Одежда" #: src/poiCategories.js:271 msgid "Shoes" msgstr "Обувь" #: src/poiCategories.js:276 msgid "Electronics" msgstr "Электроника" #: src/poiCategories.js:282 msgid "Alcohol" msgstr "Алкоголь" #: src/poiCategories.js:288 msgid "Bakeries" msgstr "Выпечка" #: src/poiCategories.js:294 msgid "Flowers" msgstr "Цветы" #: src/poiCategories.js:301 msgid "Transportation" msgstr "Передвижение" #: src/poiCategories.js:305 msgid "Bus & Tram Stops" msgstr "Автобусные и трамвайные остановки" #: src/poiCategories.js:313 msgid "Train & Subway Stations" msgstr "Железнодорожные станции и станции метро" #: src/poiCategories.js:321 msgid "Tickets" msgstr "Билеты" #: src/poiCategories.js:329 msgid "Parking" msgstr "Парковка" #: src/poiCategories.js:334 msgid "Bicycle Parking" msgstr "Велопарковка" #: src/poiCategories.js:339 msgid "Bicycle Rental" msgstr "Прокат велосипедов" #: src/poiCategories.js:344 msgid "Car Rental" msgstr "Прокат автомобилей" #: src/poiCategories.js:349 msgid "Fuel" msgstr "Автозаправочная станция" #: src/poiCategories.js:354 msgid "EV Charging" msgstr "Электрозаправочная станция" #: src/poiCategories.js:362 msgid "Healthcare" msgstr "Здравоохранение" #: src/poiCategories.js:366 msgid "Clinics" msgstr "Клиники" #: src/poiCategories.js:372 msgid "Hospitals" msgstr "Госпитали" #: src/poiCategories.js:378 msgid "Dentists" msgstr "Стоматология" #: src/poiCategories.js:386 msgid "Accommodation" msgstr "Жильё" #: src/poiCategories.js:390 msgid "Hotels" msgstr "Гостиницы" #: src/poiCategories.js:395 msgid "Hostels" msgstr "Хостелы" #: src/poiCategories.js:400 msgid "Bed & Breakfast" msgstr "Мини-гостиницы (B&B)" #: src/poiCategories.js:405 msgid "Campings" msgstr "Кемпинги" #: src/poiCategories.js:412 msgid "Recreation" msgstr "Досуг" #: src/poiCategories.js:416 msgid "Parks" msgstr "Парки" #: src/poiCategories.js:421 msgid "Playgrounds" msgstr "Игровые площадки" #: src/poiCategories.js:425 msgid "Beaches" msgstr "Пляжи" #: src/poiCategories.js:430 msgid "Nature Reserves" msgstr "Природные заповедники" #: src/poiCategories.js:436 msgid "Theme Parks" msgstr "Тематические парки" #: src/poiCategories.js:441 msgid "Theaters" msgstr "Театры" #: src/poiCategories.js:447 msgid "Movie Theaters" msgstr "Кинотеатры" #: src/poiCategories.js:453 msgid "Night Clubs" msgstr "Ночные клубы" #: src/poiCategories.js:460 msgid "Tourism" msgstr "Туризм" #: src/poiCategories.js:464 msgid "Museums" msgstr "Музеи" #: src/poiCategories.js:470 msgid "Attractions" msgstr "Достопримечательности" #: src/poiCategories.js:475 msgid "Artworks" msgstr "Произведения искусства" #: src/poiCategories.js:480 msgid "Tourist Information" msgstr "Туристические информационные центры" #: src/poiCategories.js:487 msgid "Sports" msgstr "Спорт" #: src/poiCategories.js:491 msgid "Gyms" msgstr "Тренажерные залы" #: src/poiCategories.js:497 msgid "Outdoor Gyms" msgstr "Спортивные площадки" #: src/poiCategories.js:503 msgid "Golf Courses" msgstr "Поля для гольфа" #: src/printLayout.js:350 #, javascript-format msgid "From %s to %s" msgstr "Из %s в %s" #: src/printOperation.js:49 msgid "Loading map tiles for printing" msgstr "Загрузка областей карты для печати" #: src/printOperation.js:50 msgid "You can abort printing if this takes too long" msgstr "Печать можно прервать, если она выполняется слишком долго" #: src/printOperation.js:52 msgid "Abort printing" msgstr "Прервать печать" #. Translators: this is add via location tooltip #: src/routeEntry.js:60 msgid "Add via location" msgstr "Добавить через местоположение" #. Translators: this is remove via location tooltip #: src/routeEntry.js:70 msgid "Remove via location" msgstr "Удалить через местоположение" #. Translators: this is reverse route tooltip #: src/routeEntry.js:76 msgid "Reverse route" msgstr "Обратный маршрут" #: src/searchBar.js:45 msgid "Search" msgstr "Поиск" #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:84 #, javascript-format msgid "Add %s to %s" msgstr "Добавьте %s к %s" #: src/sendToDialog.js:181 msgid "Failed to open URI" msgstr "Не удалось открыть URI" #: src/sendToDialog.js:246 #, javascript-format msgid "Open with %s" msgstr "Открыть с помощью %s" #: src/shapeLayer.js:109 msgid "failed to load file" msgstr "не удалось загрузить файл" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:328 #, javascript-format msgid "Estimated time: %s" msgstr "Расчётное время: %s" #: src/sidebar.js:398 #, javascript-format msgid "Itineraries provided by %s" msgstr "Маршруты, предоставленные %s" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:39 #, javascript-format msgid "Start at %s" msgstr "Отправление в %s" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:45 src/transitplugins/openTripPlanner2.js:236 msgid "Start" msgstr "Отправление" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:63 #, javascript-format msgid "Walk %s" msgstr "Пешком %s" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:77 #, javascript-format msgid "Arrive at %s" msgstr "Прибытие в %s" #: src/transit.js:79 src/transitplugins/openTripPlanner.js:1176 #: src/transitplugins/openTripPlanner2.js:255 msgid "Arrive" msgstr "Прибытие" #: src/transitLegRow.js:69 msgid "Show walking instructions" msgstr "Показывать информацию для пешего маршрута" #: src/transitLegRow.js:70 msgid "Hide walking instructions" msgstr "Скрывать информацию для пешего маршрута" #: src/transitMoreRow.js:37 msgid "Load earlier alternatives" msgstr "Загрузить предыдущие варианты" #: src/transitMoreRow.js:39 msgid "Load later alternatives" msgstr "Загрузить следующие варианты" #: src/transitMoreRow.js:52 msgid "No earlier alternatives found." msgstr "Не найдено более ранних вариантов." #: src/transitMoreRow.js:54 msgid "No later alternatives found." msgstr "Не найдено более поздних вариантов." #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:138 msgctxt "month-day-date" msgid "%b %e" msgstr "%e %b" #: src/transitPlan.js:171 msgid "No timetable data found for this route." msgstr "Для этого маршрута не найдено расписаний." #: src/transitPlan.js:179 msgid "No provider found for this route." msgstr "Для этого маршрута не найдено ни одного поставщика услуг." #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:300 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:331 #, javascript-format msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "%s минута" msgstr[1] "%s минуты" msgstr[2] "%s минут" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:343 #, javascript-format msgid "%s hour" msgid_plural "%s hours" msgstr[0] "%s час" msgstr[1] "%s часа" msgstr[2] "%s часов" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:351 #, javascript-format msgid "%s:%s hour" msgid_plural "%s:%s hours" msgstr[0] "%s:%s час" msgstr[1] "%s:%s часа" msgstr[2] "%s:%s часов" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:744 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: src/translations.js:55 msgid "Around the clock" msgstr "Круглосуточно" #: src/translations.js:57 msgid "From sunrise to sunset" msgstr "От восхода до заката" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:123 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s, %s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:137 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s, %s, %s" #: src/translations.js:156 msgid "Every day" msgstr "Каждый день" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:168 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:179 msgid "Public holidays" msgstr "Государственные праздники" #: src/translations.js:181 msgid "School holidays" msgstr "Школьные каникулы" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:221 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" # нужно проверить можно ли переводить как "закрыто", так как странно почему так, а не "closed" #: src/translations.js:235 msgid "not open" msgstr "не открыто" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:250 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:287 msgid "Bahá'í" msgstr "Бахаи" #. Translators: Accuracy of user location information #: src/utils.js:248 msgid "Unknown" msgstr "Неизвестная" # Точность: Максимальная # точная не подходит, т. к. получается "точность: точная" #. Translators: Accuracy of user location information #: src/utils.js:251 msgid "Exact" msgstr "Максимальная" #. Translators: this is a duration with only hours, using #. * an abbreviation for hours, corresponding to 'h' in English #. #: src/utils.js:307 #, javascript-format msgid "%s h" msgstr "%s h" #. Translators: this is a duration with hours and minutes parts #. * using abbreviations for hours and minutes, corresponding to 'h' #. * and 'min' in English. The minutes has appropriate plural variations #. #: src/utils.js:313 #, javascript-format msgid "%s h %s min" msgid_plural "%s h %s min" msgstr[0] "%s ч %s мин" msgstr[1] "%s ч %s мин" msgstr[2] "%s ч %s мин" #. Translators: this is a duration with minutes part #. * using abbreviation for minutes, corresponding to 'min' in English #. * with appropriate plural variations #. #: src/utils.js:320 #, javascript-format msgid "%s min" msgid_plural "%s min" msgstr[0] "%s мин" msgstr[1] "%s мин" msgstr[2] "%s мин" #. Translators: this is a duration of less than one minute #. * with seconds using an abbreviation for seconds, corresponding to #. * 's' in English with appropriate plural forms #. #: src/utils.js:326 #, javascript-format msgid "%s s" msgid_plural "%s s" msgstr[0] "%s с" msgstr[1] "%s с" msgstr[2] "%s с" #. Translators: This is a distance measured in kilometers #: src/utils.js:337 #, javascript-format msgid "%s km" msgstr "%s км" #. Translators: This is a distance measured in meters #: src/utils.js:340 #, javascript-format msgid "%s m" msgstr "%s м" #. Translators: This is a distance measured in miles #: src/utils.js:348 #, javascript-format msgid "%s mi" msgstr "%s ми" #. Translators: This is a distance measured in feet #: src/utils.js:351 #, javascript-format msgid "%s ft" msgstr "%s фт" #: src/transitplugins/goMetro.js:61 msgid "This plugin doesn't support latest arrival" msgstr "Этот модуль не поддерживает последние поступления" #: src/transitplugins/openTripPlanner.js:1237 #: src/transitplugins/openTripPlanner2.js:266 #, javascript-format msgid "Continue on %s" msgstr "Продолжайте %s" #: src/transitplugins/openTripPlanner.js:1242 #: src/transitplugins/openTripPlanner2.js:270 #, javascript-format msgid "Turn left on %s" msgstr "Поверните налево на %s" #: src/transitplugins/openTripPlanner.js:1244 #: src/transitplugins/openTripPlanner2.js:271 msgid "Turn left" msgstr "Поверните налево" #: src/transitplugins/openTripPlanner.js:1247 #: src/transitplugins/openTripPlanner2.js:275 #, javascript-format msgid "Turn slightly left on %s" msgstr "Поверните немного налево на %s" #: src/transitplugins/openTripPlanner.js:1249 #: src/transitplugins/openTripPlanner2.js:276 msgid "Turn slightly left" msgstr "Повернитесь немного влево" #: src/transitplugins/openTripPlanner.js:1252 #: src/transitplugins/openTripPlanner2.js:280 #, javascript-format msgid "Turn sharp left on %s" msgstr "Поверните резко налево на %s" #: src/transitplugins/openTripPlanner.js:1254 #: src/transitplugins/openTripPlanner2.js:281 msgid "Turn sharp left" msgstr "Повернитесь резко налево" #: src/transitplugins/openTripPlanner.js:1257 #: src/transitplugins/openTripPlanner2.js:284 #, javascript-format msgid "Turn right on %s" msgstr "Поверните направо на %s" #: src/transitplugins/openTripPlanner.js:1259 #: src/transitplugins/openTripPlanner2.js:285 msgid "Turn right" msgstr "Поверните направо" #: src/transitplugins/openTripPlanner.js:1262 #: src/transitplugins/openTripPlanner2.js:289 #, javascript-format msgid "Turn slightly right on %s" msgstr "Поверните немного направо на %s" #: src/transitplugins/openTripPlanner.js:1264 #: src/transitplugins/openTripPlanner2.js:290 msgid "Turn slightly right" msgstr "Поверните немного направо" #: src/transitplugins/openTripPlanner.js:1267 #: src/transitplugins/openTripPlanner2.js:294 #, javascript-format msgid "Turn sharp right on %s" msgstr "Поверните резко направо на %s" #: src/transitplugins/openTripPlanner.js:1269 #: src/transitplugins/openTripPlanner2.js:295 msgid "Turn sharp right" msgstr "Повернитесь резко направо" #: src/transitplugins/openTripPlanner.js:1275 #: src/transitplugins/openTripPlanner2.js:302 #, javascript-format msgid "At the roundabout, take exit %s" msgstr "На кольцевой развязке сверните на съезд %s" #: src/transitplugins/openTripPlanner.js:1277 #: src/transitplugins/openTripPlanner2.js:305 #, javascript-format msgid "At the roundabout, take exit to %s" msgstr "На кольцевой развязке сверните на %s" #: src/transitplugins/openTripPlanner.js:1279 #: src/transitplugins/openTripPlanner2.js:307 msgid "Take the roundabout" msgstr "Сверните на кольцевую развязку" #: src/transitplugins/openTripPlanner.js:1283 #: src/transitplugins/openTripPlanner2.js:315 #, javascript-format msgid "Take the elevator and get off at %s" msgstr "Поднимитесь на лифте и выйдите на %s" #: src/transitplugins/openTripPlanner.js:1285 #: src/transitplugins/openTripPlanner2.js:316 msgid "Take the elevator" msgstr "Поднимитесь на лифте" #: src/transitplugins/openTripPlanner.js:1289 #: src/transitplugins/openTripPlanner2.js:320 #, javascript-format msgid "Make a left u-turn onto %s" msgstr "Выполните левый разворот на %s" #: src/transitplugins/openTripPlanner.js:1291 #: src/transitplugins/openTripPlanner2.js:321 msgid "Make a left u-turn" msgstr "Выполните левый разворот" #: src/transitplugins/openTripPlanner.js:1294 #: src/transitplugins/openTripPlanner2.js:325 #, javascript-format msgid "Make a right u-turn onto %s" msgstr "Выполните правый разворот на %s" #: src/transitplugins/openTripPlanner.js:1296 #: src/transitplugins/openTripPlanner2.js:326 msgid "Make a right u-turn" msgstr "Разворот направо" #~ msgid "E-mail" #~ msgstr "E-mail" #~ msgid "Sign in to edit maps" #~ msgstr "" #~ "Войдите, чтобы редактировать " #~ "карты" #~ msgid "" #~ "Sign in to authorize access in a web browser.\n" #~ "Then fill in the obtained verification code here in the next step." #~ msgstr "" #~ "Войдите в систему для авторизации доступа в веб-браузере.\n" #~ "Затем введите полученный проверочный код здесь, на следующем шаге." #~ msgid "Signed In" #~ msgstr "Авторизован" #~ msgid "Sign up" #~ msgstr "Регистрация" #~ msgid "Filesystem is read only" #~ msgstr "Файловая система доступна только для чтения" #~ msgid "You do not have permission to save there" #~ msgstr "Отсутствуют права на запись в данную директорию" #~ msgid "The directory does not exist" #~ msgstr "Каталог не существует" #~ msgid "No filename specified" #~ msgstr "Не указано имя файла" #~ msgid "Takeaway" #~ msgstr "Вынос" #~ msgid "" #~ "Location was added to the map, note that it may take a while before it " #~ "shows on the map and in search results." #~ msgstr "" #~ "Местоположение добавлено на карту. Скоро оно появится на карте и будет " #~ "выводиться в результатах поиска." #~ msgid "Go to current location" #~ msgstr "Перейти к текущему местоположению" #~ msgid "Choose map type" #~ msgstr "Выберите тип карты" #~ msgid "Zoom in" #~ msgstr "Приблизить" #~ msgid "Drag to change order of the route" #~ msgstr "Перетащите, чтобы изменить порядок маршрута" #~ msgid "A map application for GNOME" #~ msgstr "Приложение карт для GNOME" #~ msgid "Failed to authorize access" #~ msgstr "Не удалось авторизовать доступ" #~ msgid "Try again" #~ msgstr "Попробовать снова" #~ msgid "Use hybrid aerial tiles" #~ msgstr "Используйте гибридную аросъёмку" #~ msgid "Whether aerial tiles should use hybrid style (with labels)." #~ msgstr "Должна ли аэросъёмка использовать гибридный стиль (с метками)." #~ msgid "Include route and markers" #~ msgstr "Включить маршрут и маркеры" #~ msgid "Show Labels" #~ msgstr "Показать метки" #~ msgid "Foursquare check-in privacy setting" #~ msgstr "Кто может видеть публикацию в Foursquare" #~ msgid "" #~ "Latest used Foursquare check-in privacy setting. Possible values are: " #~ "public, followers or private." #~ msgstr "" #~ "Последняя использованная настройка. Возможные значения: public, followers " #~ "или private." #~ msgid "Foursquare check-in Facebook broadcasting" #~ msgstr "Трансляция из Foursquare в Facebook" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a post in the " #~ "Facebook account associated with the Foursquare account." #~ msgstr "" #~ "Должны ли публикации в Foursquare транслироваться в привязанный к учётной " #~ "записи Foursquare аккаунт Facebook." #~ msgid "Foursquare check-in Twitter broadcasting" #~ msgstr "Трансляция из Foursquare в Twitter" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a tweet in the " #~ "Twitter account associated with the Foursquare account." #~ msgstr "" #~ "Должны ли публикации в Foursquare транслироваться в привязанный к учётной " #~ "записи Foursquare аккаунт Twitter." #~ msgid "Visibility" #~ msgstr "Видимость" #~ msgid "Post on Facebook" #~ msgstr "Опубликовать в Facebook" #~ msgid "Post on Twitter" #~ msgstr "Опубликовать в Twitter" #~ msgid "C_heck in" #~ msgstr "О_тметиться" #~ msgid "Public" #~ msgstr "Все" #~ msgid "Private" #~ msgstr "Те, кто в этом месте" #~ msgid "Maps is offline!" #~ msgstr "Приложение работает в автономном режиме!" #~ msgid "" #~ "Maps need an active internet connection to function properly, but one " #~ "can’t be found." #~ msgstr "Приложению требуется соединение с Интернетом, но оно отсутствует." #~ msgid "Check your connection and proxy settings." #~ msgstr "Проверьте настройки прокси и соединения." #~ msgid "Password" #~ msgstr "Пароль" #~ msgid "" #~ "Sorry, that didn’t work. Please try again, or visit\n" #~ "OpenStreetMap to reset your password." #~ msgstr "" #~ "Неверное имя пользователя или пароль. Попробуйте снова или посетите\n" #~ "OpenStreetMap для сброса пароля." #~ msgid "Check In…" #~ msgstr "Отметиться…" #~ msgid "Ignore network availability" #~ msgstr "Игнорировать доступность сети" #~ msgid "Select an account" #~ msgstr "Выберите учётную запись" #~ msgid "Loading" #~ msgstr "Загрузка" #~ msgid "Select a place" #~ msgstr "Выберите место" #~ msgid "" #~ "Maps cannot find the place to check in to with Foursquare. Please select " #~ "one from this list." #~ msgstr "" #~ "Не удалось найти место, чтобы поделиться в Foursquare. Выберите одно из " #~ "списка." #, javascript-format #~ msgid "Check in to %s" #~ msgstr "Отметиться в %s" #, javascript-format #~ msgid "Write an optional message to check in to %s." #~ msgstr "Напишите необязательное сообщение для отметки в %s." #, javascript-format #~ msgid "Cannot find “%s” in the social service" #~ msgstr "Не удалось найти «%s» в социальной сети" #~ msgid "Cannot find a suitable place to check-in in this location" #~ msgstr "Не удалось найти подходящее место, чтобы отметиться здесь" #~ msgid "" #~ "Credentials have expired, please open Online Accounts to sign in and " #~ "enable this account" #~ msgstr "" #~ "Истекли полномочия, откройте Сетевые учётные записи, чтобы войти и " #~ "активировать эту учётную запись" 070701000001E3000081A4000000000000000000000001664134090000E7EA000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/sk.po# Slovak translation for gnome-maps. # Copyright (C) 2013 gnome-maps's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-maps package. # Dušan Kazik , 2013-2021. # msgid "" msgstr "" "Project-Id-Version: gnome-maps master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2023-03-21 16:37+0000\n" "PO-Revision-Date: 2023-06-12 08:37-0400\n" "Last-Translator: Dušan Kazik \n" "Language-Team: Slovak \n" "Language: sk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 1 : (n>=2 && n<=4) ? 2 : 0;\n" "X-Generator: Poedit 3.3.1\n" # desktop entry name #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.appdata.xml.in.in:6 data/org.gnome.Maps.desktop.in.in:4 #: data/ui/main-window.ui:27 src/application.js:61 src/mainWindow.js:134 #: src/mainWindow.js:531 msgid "Maps" msgstr "Mapy" #: data/org.gnome.Maps.appdata.xml.in.in:7 msgid "Find places around the world" msgstr "Vyhľadáva miesta po celom svete" #: data/org.gnome.Maps.appdata.xml.in.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "Aplikácia Mapy vám poskytuje rýchly prístup k mapám celého sveta. Umožňuje " "vám rýchlo nájsť miesto, ktoré hľadáte zadaním vyhľadávanej obce alebo " "ulice, prípadne zistiť polohu, kde sa máte stretnúť s priateľom." #: data/org.gnome.Maps.appdata.xml.in.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "Aplikácia Mapy používa databázu projektu OpenStreetMap, na ktorej " "spolupracujú stovky tisícov ľudí z celého sveta." #: data/org.gnome.Maps.appdata.xml.in.in:369 src/mainWindow.js:528 msgid "The GNOME Project" msgstr "Projekt GNOME" # desktop entry comment #: data/org.gnome.Maps.desktop.in.in:5 msgid "A simple maps application" msgstr "Jednoduchá aplikácia na prezeranie máp" # desktop enty keywords #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in.in:14 msgid "Maps;" msgstr "Mapy;" #: data/org.gnome.Maps.desktop.in.in:17 msgid "Allows your location to be shown on the map." msgstr "Umožní zobrazenie vášho umiestnenia na mape." #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "naposledy zobrazené umiestnenie" # summary #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "Súradnice naposledy zobrazeného umiestnenia." #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "priblíženie" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "Úroveň priblíženia" #: data/org.gnome.Maps.gschema.xml:21 msgid "Map type" msgstr "Typ mapy" #: data/org.gnome.Maps.gschema.xml:22 msgid "The type of map to display (street, aerial, etc.)" msgstr "Typ mapy, ktorý sa má zobraziť (pohľad ulíc, letecký pohľad, atď.)" # summary #: data/org.gnome.Maps.gschema.xml:26 msgid "Window size" msgstr "Veľkosť okna" # description #: data/org.gnome.Maps.gschema.xml:27 msgid "Window size (width and height)." msgstr "Veľkosť okna (šírka a výška)" # summary #: data/org.gnome.Maps.gschema.xml:31 msgid "Window position" msgstr "Pozícia okna" # description #: data/org.gnome.Maps.gschema.xml:32 msgid "Window position (X and Y)." msgstr "Pozícia okna (X a Y)." # summary #: data/org.gnome.Maps.gschema.xml:36 msgid "Window maximized" msgstr "Maximalizované okno" # description #: data/org.gnome.Maps.gschema.xml:37 msgid "Window maximization state" msgstr "Maximalizovaný stav okna" # summary #: data/org.gnome.Maps.gschema.xml:41 msgid "Maximum number of search results" msgstr "Maximálny počet výsledkov hľadania" # description #: data/org.gnome.Maps.gschema.xml:42 msgid "Maximum number of search results from geocode search." msgstr "Maximálny počet výsledkov hľadania z vyhľadávača geokódov." #: data/org.gnome.Maps.gschema.xml:46 msgid "Number of recent places to store" msgstr "Počet nedávnych miest na uloženie" #: data/org.gnome.Maps.gschema.xml:47 msgid "Number of recently visited places to store." msgstr "Počet nedávno navštívených miest, ktoré sa majú uložiť." #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent routes to store" msgstr "Počet nedávnych trás na uloženie" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited routes to store." msgstr "Počet nedávno navštívených trás, ktoré sa majú uložiť." #: data/org.gnome.Maps.gschema.xml:56 msgid "OpenStreetMap username or e-mail address" msgstr "Používateľské meno alebo e-mailová adresa projektu OpenStreetMap" #: data/org.gnome.Maps.gschema.xml:57 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "" "Indikuje, či sa používateľ prihlásil na úpravu údajov projektu OpenStreetMap." #: data/org.gnome.Maps.gschema.xml:61 msgid "Last used transportation type for routing" msgstr "Naposledy použitý typ dopravy pre plánovanie trasy" #: data/org.gnome.Maps.gschema.xml:65 msgid "Show scale" msgstr "Zobraziť mierku" #: data/org.gnome.Maps.gschema.xml:66 msgid "Whether to show the scale." msgstr "Určuje, či sa má zobraziť mierka." #: data/ui/context-menu.ui:6 msgid "Route from Here" msgstr "Trasa odtiaľto" #: data/ui/context-menu.ui:10 msgid "Add Intermediate Destination" msgstr "Pridať prechodný cieľ" #: data/ui/context-menu.ui:14 msgid "Route to Here" msgstr "Trasa sem" #: data/ui/context-menu.ui:20 msgid "What's Here?" msgstr "Čo sa nachádza tu?" #: data/ui/context-menu.ui:24 msgid "Copy Location" msgstr "Skopírovať umiestnenie" # DK:https://bugzilla.gnome.org/show_bug.cgi?id=761995 #: data/ui/context-menu.ui:28 msgid "Add to OpenStreetMap…" msgstr "Pridať do projektu OpenStreetMap…" # dialog title #: data/ui/export-view-dialog.ui:7 msgid "Export view" msgstr "Export zobrazenia" #: data/ui/export-view-dialog.ui:16 data/ui/send-to-dialog.ui:10 #: data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "_Zrušiť" # button label #: data/ui/export-view-dialog.ui:26 msgid "_Export" msgstr "_Exportovať" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:11 src/geoclue.js:106 msgid "Current Location" msgstr "Aktuálne umiestnenie" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:19 msgid "Layers" msgstr "Vrstvy" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:28 msgid "Zoom Out" msgstr "Oddiali" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:37 data/ui/zoom-in-dialog.ui:27 msgid "Zoom In" msgstr "Priblížiť" # tooltip #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:11 msgid "Print Route" msgstr "Vytlačí trasu" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:21 msgid "Favorites" msgstr "Obľúbené" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:30 msgid "Route Planner" msgstr "Plánovač trasy" #: data/ui/help-overlay.ui:12 msgctxt "shortcut window" msgid "General" msgstr "Všeobecné" #: data/ui/help-overlay.ui:15 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "Zobrazenie klávesových skratiek" #: data/ui/help-overlay.ui:21 msgctxt "shortcut window" msgid "Search" msgstr "Vyhľadanie" # DK:tooltip #: data/ui/help-overlay.ui:27 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "Prepnutie plánovača trasy" #: data/ui/help-overlay.ui:33 msgctxt "shortcut window" msgid "Print route" msgstr "Tlač trasy" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Quit" msgstr "Ukončenie" #: data/ui/help-overlay.ui:45 msgctxt "shortcut window" msgid "Open main menu" msgstr "Otvorenie hlavnej ponuky" #: data/ui/help-overlay.ui:53 msgctxt "shortcut window" msgid "Map View" msgstr "Zobrazenie mapy" #: data/ui/help-overlay.ui:56 msgctxt "shortcut window" msgid "Zoom in" msgstr "Priblíženie" #: data/ui/help-overlay.ui:62 msgctxt "shortcut window" msgid "Zoom out" msgstr "Oddialenie" # tooltip #: data/ui/help-overlay.ui:68 msgctxt "shortcut window" msgid "Toggle scale" msgstr "Prepnutie obľúbených" # DK:tooltip #: data/ui/help-overlay.ui:74 msgctxt "shortcut window" msgid "Go to current location" msgstr "Prejdenie na aktuálne umiestnenie" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Switch to street view" msgstr "Prepnutie na pohľad ulíc" #: data/ui/help-overlay.ui:91 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "Prepnutie na letecký pohľad" #: data/ui/help-overlay.ui:97 msgctxt "shortcut window" msgid "Open shape layer" msgstr "Otvorenie vrstvy s tvarmi" #: data/ui/layers-popover.ui:7 msgid "Show Scale" msgstr "Zobraziť mierku" # dialo title #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:16 msgid "Open Shape Layer…" msgstr "Otvoriť vrstvu s tvarmi…" #: data/ui/location-service-dialog.ui:12 data/ui/osm-edit-dialog.ui:220 #: data/ui/zoom-in-dialog.ui:21 msgid "Cancel" msgstr "Zrušiť" #: data/ui/location-service-dialog.ui:18 msgid "Location Settings" msgstr "Nastavenia umiestnenia" #: data/ui/location-service-dialog.ui:32 msgid "Turn on location services to find your location" msgstr "Zapnite lokalizačné služby, aby mohlo byť nájdené vaše umiestnenie" #: data/ui/main-window.ui:8 msgid "Set up OpenStreetMap Account…" msgstr "Nastaviť účet projektu OpenStreetMap…" # menu item #: data/ui/main-window.ui:12 msgid "Export as Image…" msgstr "Exportovať ako obrázok…" #: data/ui/main-window.ui:17 msgid "_Keyboard Shortcuts" msgstr "_Klávesové skratky" #: data/ui/main-window.ui:22 msgid "About Maps" msgstr "O aplikácii Mapy" #: data/ui/main-window.ui:38 msgid "Main Menu" msgstr "Hlavná ponuka" #: data/ui/osm-account-dialog.ui:6 msgid "OpenStreetMap Account" msgstr "Účet projektu OpenStreetMap" #: data/ui/osm-account-dialog.ui:24 msgid "Sign in to edit maps" msgstr "" "Prihláste sa na úpravu máp" #: data/ui/osm-account-dialog.ui:38 msgid "" "Help to improve the map, using an\n" "OpenStreetMap account." msgstr "" "Pomôžte zlepšiť mapu pomocou\n" "účtu projektu OpenStreetMap." #: data/ui/osm-account-dialog.ui:52 msgid "" "Sign in to authorize access in a web browser.\n" "Then fill in the obtained verification code here in the next step." msgstr "" "Prihlásením overíte prístup vo webovom prehliadači.\n" "Potom sem v ďalšom kroku vyplňte získaný overovací kód." # button label #: data/ui/osm-account-dialog.ui:68 msgid "Sign up" msgstr "Zaregistrovať sa" #: data/ui/osm-account-dialog.ui:81 msgid "Sign In" msgstr "Prihlásiť sa" #: data/ui/osm-account-dialog.ui:123 msgid "Copy verification code shown when authorizing access in the browser" msgstr "" "Skopírujte overovací kód zobrazený počas overovania prístupu v prehliadači" #: data/ui/osm-account-dialog.ui:133 msgid "Verification code" msgstr "Overovací kód" #: data/ui/osm-account-dialog.ui:144 msgid "Verify" msgstr "Overiť" #: data/ui/osm-account-dialog.ui:172 msgid "Signed In" msgstr "Prihlásený" #: data/ui/osm-account-dialog.ui:184 msgid "Your OpenStreetMap account is active." msgstr "Váš účet projektu OpenStreetMap je aktívny." #: data/ui/osm-account-dialog.ui:214 msgid "Sign Out" msgstr "Odhlásiť sa" #: data/ui/osm-edit-address.ui:11 msgid "Street" msgstr "Ulica" #: data/ui/osm-edit-address.ui:22 msgid "House number" msgstr "Číslo domu" #: data/ui/osm-edit-address.ui:33 msgid "Postal code" msgstr "Smerovacie číslo" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:44 msgid "City" msgstr "Obec" #: data/ui/osm-edit-dialog.ui:54 msgid "Type" msgstr "Typ" #: data/ui/osm-edit-dialog.ui:76 msgid "None" msgstr "Nič" #: data/ui/osm-edit-dialog.ui:105 msgid "Add Field" msgstr "Pridanie poľa" #: data/ui/osm-edit-dialog.ui:127 msgid "Comment" msgstr "Komentár" #: data/ui/osm-edit-dialog.ui:155 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "Zmeny mapy budú viditeľné na všetkých mapách, ktoré\n" "využívajú údaje z projektu OpenStreetMap." #: data/ui/osm-edit-dialog.ui:183 msgid "Recently Used" msgstr "Nedávno použité" #: data/ui/osm-edit-dialog.ui:233 src/osmEditDialog.js:531 msgid "Next" msgstr "Ďalej" #: data/ui/osm-edit-wikipedia.ui:8 msgid "Article" msgstr "Článok" #: data/ui/osm-edit-wikipedia.ui:21 msgid "Wikidata tag" msgstr "Značka údajov Wikidata" #: data/ui/place-popover.ui:44 src/application.js:275 msgid "No results found" msgstr "Nenašli sa žiadne výsledky" #: data/ui/place-popover.ui:54 src/application.js:252 src/osmEditDialog.js:568 msgid "An error has occurred" msgstr "Vyskytla sa chyba" #. Translators: This is a tooltip #: data/ui/route-entry.ui:12 msgid "Change Route Order" msgstr "Zmení poradie trasy" # dialog title #: data/ui/send-to-dialog.ui:7 msgid "Open Location" msgstr "Otvorenie umiestnenia" # gtkbutton #: data/ui/send-to-dialog.ui:62 msgid "Copy" msgstr "Kopírovať" #: data/ui/send-to-dialog.ui:68 msgid "Send To…" msgstr "Odoslať do…" # dialo title #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:65 msgid "Open Shape Layer" msgstr "Otvorenie vrstvy s tvarmi" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "_Otvoriť" # tooltip #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:32 msgid "Toggle visible" msgstr "Prepne viditeľné" # dialo title #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:44 msgid "Remove Shape Layer" msgstr "Odstráni vrstvu s tvarmi" #: data/ui/sidebar.ui:215 msgid "Route search by GraphHopper" msgstr "Trasa poskytovaná službou GraphHopper" #: data/ui/sidebar.ui:282 msgid "" "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of " "transportation,\n" "e.g. a national provider might not include airlines, and a local provider " "could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" "Itinerár trasy verejnej dopravy je poskytovaný službami tretích strán\n" "Projekt GNOME nemôže zaručiť správnosť zobrazeného itineráru a plánu.\n" "Berte na vedomie, že niektorí poskytovatelia nemusia zahŕňať všetky spôsoby " "prepravy,\n" "napr. národný poskytovateľ nemusí zahrnúť letecké linky a miestnemu " "poskytovateľovi\n" "môžu chýbať regionálne vlaky.\n" "Zobrazené názvy a značky sú považované za registrované obchodné známky, ak " "je to nevyhnutné." # tooltip #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:98 msgid "Hide intermediate stops and information" msgstr "Skryje prechodné zastávky a informácie" # tooltip #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:156 msgid "Show intermediate stops and information" msgstr "Zobrazí prechodné zastávky a informácie" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:16 msgid "Leave Now" msgstr "Odchod teraz" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:17 msgid "Leave By" msgstr "Odchod o" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:18 msgid "Arrive By" msgstr "Príchod o" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:85 msgid "Show" msgstr "Zobraziť" #: data/ui/transit-options-panel.ui:95 msgid "Buses" msgstr "Autobusy" #: data/ui/transit-options-panel.ui:101 msgid "Trams" msgstr "Električky" #: data/ui/transit-options-panel.ui:107 msgid "Trains" msgstr "Vlaky" #: data/ui/transit-options-panel.ui:113 msgid "Subway" msgstr "Metro" #: data/ui/transit-options-panel.ui:119 msgid "Ferries" msgstr "Trajekty" #: data/ui/transit-options-panel.ui:125 msgid "Airplanes" msgstr "Lietadlá" #. Translators: This is a tooltip #: data/ui/place-bar.ui:28 data/ui/place-buttons.ui:27 msgid "Share Location" msgstr "Sprístupní umiestnenie" # tooltip #. Translators: This is a tooltip #: data/ui/place-buttons.ui:11 msgid "Add to new route" msgstr "Pridá do novej trasy" #. Translators: This is the button to find a route to a place #: data/ui/place-buttons.ui:15 msgid "Directions" msgstr "Pokyny" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:36 msgid "Mark as Favorite" msgstr "Označí ako obľúbené" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:44 msgid "Edit on OpenStreetMap" msgstr "Úprava v projekte OpenStreetMap" # tooltip #. Translators: This is a tooltip #: data/ui/place-view.ui:52 msgid "Share location" msgstr "Sprístupní umiestnenie" #: data/ui/zoom-in-dialog.ui:11 msgid "Zoom in to add location!" msgstr "Priblížením pridajte umiestnenie!" #: lib/maps-file-data-source.c:262 lib/maps-file-data-source.c:338 #: lib/maps-file-data-source.c:418 msgid "Failed to find tile structure in directory" msgstr "Zlyhalo nájdenie štruktúry dlaždíc v adresári" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "Zlyhala analýza dokumentu XML" #: lib/maps-osm.c:250 lib/maps-osm.c:403 msgid "Missing required attributes" msgstr "Chýbajú potrebné atribúty" #: lib/maps-osm.c:451 lib/maps-osm.c:494 msgid "Could not find OSM element" msgstr "Nepodarilo sa nájsť prvok služby OSM" #: lib/maps-osm.c:508 msgid "Could not find user element" msgstr "Nepodarilo sa nájsť prvok používateľa" #: src/application.js:74 msgid "A path to a local tiles directory structure" msgstr "Cesta k štruktúre adresárov miestnych dlaždíc" #: src/application.js:80 msgid "Tile size for local tiles directory" msgstr "Veľkosť dlaždice pre adresár miestnych dlaždíc" #: src/application.js:84 msgid "Show the version of the program" msgstr "Zobrazí verziu programu" #: src/application.js:90 msgid "Search for places" msgstr "Vyhľadá miesta" #: src/application.js:101 src/application.js:102 msgid "[FILE…|URI]" msgstr "[SÚBOR…|URI]" #: src/application.js:283 #, javascript-format msgid "Invalid maps: URI: %s" msgstr "Neplatné mapy: URI: %s" #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:74 #, javascript-format msgid "Maps at %f, %f.png" msgstr "Mapy na mieste %f, %f.png" #: src/exportViewDialog.js:156 msgid "Filesystem is read only" msgstr "Systém súborov je iba na čítanie" #: src/exportViewDialog.js:158 msgid "You do not have permission to save there" msgstr "Do tohto umiestnenia nemáte oprávnenia na zápis" #: src/exportViewDialog.js:160 msgid "The directory does not exist" msgstr "Adresár neexistuje" #: src/exportViewDialog.js:162 msgid "No filename specified" msgstr "Nie je určený názov súboru" #: src/exportViewDialog.js:170 msgid "Unable to export view" msgstr "Nie je možné exportovať zobrazenie" #: src/geoJSONSource.js:73 msgid "invalid coordinate" msgstr "neplatná súradnica" #: src/geoJSONSource.js:118 src/geoJSONSource.js:158 src/geoJSONSource.js:173 msgid "parse error" msgstr "chyba analýzy" #: src/geoJSONSource.js:152 msgid "unknown geometry" msgstr "neznáma geometria" #: src/graphHopper.js:121 src/transitPlan.js:174 msgid "Route request failed." msgstr "Požiadavka na trasu zlyhala." #: src/graphHopper.js:128 src/transitPlan.js:166 msgid "No route found." msgstr "Nenašla sa žiadna trasa." #: src/graphHopper.js:215 src/transitplugins/openTripPlanner.js:1121 msgid "Start!" msgstr "Začiatok!" #: src/mainWindow.js:62 msgid "All Layer Files" msgstr "Všetky súbory vrstiev" #: src/mainWindow.js:442 msgid "Failed to connect to location service" msgstr "Zlyhalo pripojenie k lokalizačnej službe" #: src/mainWindow.js:529 msgid "translator-credits" msgstr "Dušan Kazik " #: src/mainWindow.js:533 msgid "Copyright © 2011 – 2023 Red Hat, Inc. and The GNOME Maps authors" msgstr "" "Autorské práva © 2011 – 2023 Red Hat, Inc. a autori aplikácie Mapy " "prostredia GNOME" #: src/mainWindow.js:549 #, javascript-format msgid "Map data by %s and contributors" msgstr "Údaje mapy zo služby %s a jej prispievateľov" #: src/mainWindow.js:550 msgid "Map Data Provider" msgstr "Poskytovateľ mapových údajov" #: src/mainWindow.js:562 msgid "Map Tile Provider" msgstr "Poskytovateľ dlaždíc mapy" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:570 #, javascript-format msgid "Map tiles provided by %s" msgstr "Dlaždice mapy poskytnuté zo služby %s" #: src/mainWindow.js:600 msgid "Search Provider" msgstr "Poskytovateľ vyhľadávania" #: src/mainWindow.js:603 #, javascript-format msgid "Search provided by %s using %s" msgstr "Vyhľadávanie poskytnuté službou %s použitím %s" #: src/mapView.js:501 src/mapView.js:561 msgid "Failed to open layer" msgstr "Zlyhalo otvorenie vrstvy" #: src/mapView.js:522 msgid "Do you want to continue?" msgstr "Chcete pokračovať?" #: src/mapView.js:523 #, javascript-format msgid "" "You are about to open files with a total size of %s MB. This could take some " "time to load" msgstr "" "Chystáte sa otvoriť súbory s celkovou veľkosťou %s MB. Načítanie môže trvať " "dlhšiu dobu" #: src/mapView.js:555 msgid "File type is not supported" msgstr "Typ súboru nie je podporovaný" #: src/mapView.js:593 msgid "Failed to open GeoURI" msgstr "Zlyhalo otvorenie GeoURI" #: src/mapView.js:1033 msgid "Nothing found here!" msgstr "Tu sa nič nenašlo!" #: src/mapView.js:1094 msgid "" "Location was added to the map, note that it may take a while before it shows " "on the map and in search results." msgstr "" "Umiestnenie bolo pridané do mapy. Berte na vedomie, že jeho zobrazenie na " "mape a vo výsledkoch vyhľadávania môže trvať nejakú dobu." #: src/osmAccountDialog.js:134 msgid "The verification code didn’t match, please try again." msgstr "Overovací kód sa nezhoduje. Prosím, skúste to znovu." #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:335 msgid "Incorrect user name or password" msgstr "Nesprávne používateľské meno alebo heslo" #: src/osmConnection.js:337 msgid "Success" msgstr "Úspech" #: src/osmConnection.js:339 msgid "Bad request" msgstr "Nesprávna požiadavka" #: src/osmConnection.js:341 msgid "Object not found" msgstr "Objekt sa nenašiel" #: src/osmConnection.js:343 msgid "Conflict, someone else has just modified the object" msgstr "Nastal konflikt. Niekto iný práve upravil objekt" #: src/osmConnection.js:345 msgid "Object has been deleted" msgstr "Objekt bol odstránený" #: src/osmConnection.js:347 msgid "Way or relation refers to non-existing children" msgstr "Cesta alebo relácia odkazuje na neexistujúceho potomka" #: src/osmEditDialog.js:106 msgid "Name" msgstr "Názov" #: src/osmEditDialog.js:109 msgid "The official name. This is typically what appears on signs." msgstr "Oficiálny názov. Toto obvykle býva napísané na tabuliach." #: src/osmEditDialog.js:112 msgid "Address" msgstr "Adresa" #: src/osmEditDialog.js:120 src/placeView.js:254 msgid "Website" msgstr "Webová stránka" #: src/osmEditDialog.js:124 msgid "This is not a valid URL. Make sure to include http:// or https://." msgstr "" "Toto nie je platná URL. Uistite sa, že je zahrnutá predpona http:// alebo " "https://." #: src/osmEditDialog.js:125 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" "Oficiálna webová stránka. Skúste použiť čo najjednoduchší tvar URL napr. " "http://priklad.sk namiesto of http://priklad.sk/index.html." #: src/osmEditDialog.js:130 msgid "Phone" msgstr "Telefón" #: src/osmEditDialog.js:134 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" "Telefónne číslo. Použite medzinárodný formát, začínajúci so znakom +. Dbajte " "na miestne zákony o ochrane súkromia, obzvlášť pri súkromných telefónnych " "číslach." #: src/osmEditDialog.js:139 src/placeView.js:282 msgid "E-mail" msgstr "E-mail" #: src/osmEditDialog.js:144 msgid "" "This is not a valid e-mail address. Make sure to not include the mailto: " "protocol prefix." msgstr "" "Toto nie je platná e-mailová adresa. Uistite sa, že nie je zahrnutá predpona " "protokolu mailto:." #: src/osmEditDialog.js:145 msgid "" "Contact e-mail address for inquiries. Add only email addresses that are " "intended to be publicly used." msgstr "" "Kontaktná e-mailová adresa pre otázky. Pridávajte iba také emailové adresy, " "ktoré sú určené na verejné použitie." #. Translators: This is the text for the "Wikipedia" link at the end #. of summaries #: src/osmEditDialog.js:149 src/placeView.js:630 msgid "Wikipedia" msgstr "Wikipedia" #: src/osmEditDialog.js:156 src/placeView.js:319 msgid "Opening hours" msgstr "Otváracia doba" #: src/osmEditDialog.js:161 msgid "See the link in the label for help on format." msgstr "Pre pomoc k formátu si prezrite odkaz v menovke." #. TODO: this is a bit of a work-around to re-interpret the population, #. * stored as a string into an integer to convert back to a locale- #. * formatted string. Ideally it should be kept as an integer value #. * in the Place class. But this will also need to be handled by the #. * PlaceStore, possible in a backwards-compatible way #. #: src/osmEditDialog.js:164 src/placeView.js:429 msgid "Population" msgstr "Obyvateľstvo" #: src/osmEditDialog.js:169 src/placeView.js:458 msgid "Altitude" msgstr "Nadmorská výška" #: src/osmEditDialog.js:172 msgid "Elevation (height above sea level) of a point in metres." msgstr "Stúpanie (výška nad morskou hladinou) bodu v metroch." #: src/osmEditDialog.js:175 msgid "Wheelchair access" msgstr "Bezbariérový prístup" #: src/osmEditDialog.js:178 src/osmEditDialog.js:187 src/osmEditDialog.js:198 #: src/osmEditDialog.js:233 msgid "Yes" msgstr "Áno" #: src/osmEditDialog.js:179 src/osmEditDialog.js:188 src/osmEditDialog.js:199 #: src/osmEditDialog.js:234 msgid "No" msgstr "Nie" #: src/osmEditDialog.js:180 msgid "Limited" msgstr "Obmedzený" #: src/osmEditDialog.js:181 msgid "Designated" msgstr "Vyhradený" #: src/osmEditDialog.js:184 msgid "Internet access" msgstr "Prístup na internet" #: src/osmEditDialog.js:189 msgid "Wi-Fi" msgstr "Wi-Fi" #: src/osmEditDialog.js:190 msgid "Wired" msgstr "Drôtový" #: src/osmEditDialog.js:191 msgid "Terminal" msgstr "Terminál" #: src/osmEditDialog.js:192 msgid "Service" msgstr "Obsluha" #: src/osmEditDialog.js:195 msgid "Takeaway" msgstr "Jedlo so sebou" #: src/osmEditDialog.js:200 msgid "Only" msgstr "Iba" #: src/osmEditDialog.js:203 msgid "Religion" msgstr "Náboženstvo" #: src/osmEditDialog.js:206 src/translations.js:286 msgid "Animism" msgstr "Animizmus" #: src/osmEditDialog.js:207 msgid "Bahá’í" msgstr "Baháizmus" #: src/osmEditDialog.js:208 src/translations.js:288 msgid "Buddhism" msgstr "Budhizmus" #: src/osmEditDialog.js:209 src/translations.js:289 msgid "Caodaism" msgstr "Kaodaizmus" #: src/osmEditDialog.js:210 src/translations.js:290 msgid "Christianity" msgstr "Kresťanstvo" #: src/osmEditDialog.js:211 src/translations.js:291 msgid "Confucianism" msgstr "Konfucianizmus" #: src/osmEditDialog.js:212 src/translations.js:292 msgid "Hinduism" msgstr "Hinduizmus" #: src/osmEditDialog.js:213 src/translations.js:293 msgid "Jainism" msgstr "Jainizmus" #: src/osmEditDialog.js:214 src/translations.js:294 msgid "Judaism" msgstr "Judaizmus" #: src/osmEditDialog.js:215 src/translations.js:295 msgid "Islam" msgstr "Islam" #: src/osmEditDialog.js:216 src/translations.js:296 msgid "Multiple Religions" msgstr "Viacero náboženstiev" #: src/osmEditDialog.js:217 src/translations.js:297 msgid "Paganism" msgstr "Paganizmus" #: src/osmEditDialog.js:218 src/translations.js:298 msgid "Pastafarianism" msgstr "Pastafarianizmus" #: src/osmEditDialog.js:219 src/translations.js:299 msgid "Scientology" msgstr "Scientológia" #: src/osmEditDialog.js:220 src/translations.js:300 msgid "Shinto" msgstr "Šintoizmus" #: src/osmEditDialog.js:221 src/translations.js:301 msgid "Sikhism" msgstr "Sikhizmus" #: src/osmEditDialog.js:222 src/translations.js:302 msgid "Spiritualism" msgstr "Spiritualizmus" #: src/osmEditDialog.js:223 src/translations.js:303 msgid "Taoism" msgstr "Taoizmus" #: src/osmEditDialog.js:224 src/translations.js:304 msgid "Unitarian Universalism" msgstr "Centralistický univerzalizmus" #: src/osmEditDialog.js:225 src/translations.js:305 msgid "Voodoo" msgstr "Vúdú" #: src/osmEditDialog.js:226 src/translations.js:306 msgid "Yazidism" msgstr "Yazidizmus" #: src/osmEditDialog.js:227 src/translations.js:307 msgid "Zoroastrianism" msgstr "Zoroastrianizmus" #: src/osmEditDialog.js:230 msgid "Toilets" msgstr "Toalety" #: src/osmEditDialog.js:237 msgid "Note" msgstr "Poznámka" #: src/osmEditDialog.js:240 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" "Informácie slúžiace ostatným mapovačom na informovanie o neobvyklých " "informáciách o súčasti, účeli autora počas tvorby, alebo radách pre " "neskoršie vylepšenia." # DK:https://bugzilla.gnome.org/show_bug.cgi?id=761995 #: src/osmEditDialog.js:339 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "Pridanie do projektu OpenStreetMap" #: src/osmEditDialog.js:393 msgid "Select Type" msgstr "Výber typu" #: src/osmEditDialog.js:515 msgid "Done" msgstr "Hotovo" #: src/osmEditDialog.js:827 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "" "Použitý formát by mal zahŕňať kód jazyka a názov článku ako „sk:Názov " "článku“." #: src/osmEditDialog.js:833 msgid "Use the reload button to load the Wikidata tag for the selected article" msgstr "" "Kliknutím na tlačidlo opätovného načítania, načítate značku údajov Wikidata " "pre vybraný článok" #: src/osmEditDialog.js:841 msgid "Couldn't find Wikidata tag for article" msgstr "Nepodarilo sa nájsť značku údajov Wikidata pre tento článok" #: src/photonUtils.js:118 msgid "Unnamed place" msgstr "Nepomenované miesto" #: src/placeEntry.js:267 msgid "Failed to parse Geo URI" msgstr "Zlyhala analýza URI geografickej polohy" #: src/placeEntry.js:280 msgid "Failed to parse Maps URI" msgstr "Zlyhala analýza URI máp" #: src/placeView.js:242 msgid "Coordinates" msgstr "Súradnice" #: src/placeView.js:246 msgid "Accuracy" msgstr "Presnosť" #. Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) #: src/placeView.js:249 #, javascript-format msgid "Accuracy: %s" msgstr "Presnosť: %s" #. since the phone numbers are typically always rendered #. * left-to-right, insert an explicit LRM char to avoid issues #. * with phone numbers in international format starting with a + #. * which is considered a "weak" character to determine Unicode #. * text direction #. #: src/placeView.js:268 msgid "Phone number" msgstr "Telefónne číslo" #. Translators: #. * The establishment offers customers to purchase meals #. * (or similar) to be consumed elsewhere #. #: src/placeView.js:295 msgid "Offers takeaway" msgstr "Ponúka jedlo so sebou" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed on-premise. #. #: src/placeView.js:303 msgid "Does not offer takeaway" msgstr "Neponúka jedlo so sebou" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed elsewhere. E.g. #. * there is no seating on-premise for eating/drinking #. #: src/placeView.js:312 msgid "Only offers takeaway" msgstr "Ponúka iba jedlo so sebou" #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/placeView.js:329 msgid "Public internet access" msgstr "Verejný prístup na internet" #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/placeView.js:338 msgid "No internet access" msgstr "Bez prístupu na internet" #. Translators: #. * This means a WLAN Hotspot, also known as wireless, wifi or Wi-Fi. #. #: src/placeView.js:346 msgid "Public Wi-Fi" msgstr "Verejná Wi-Fi" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/placeView.js:354 msgid "Wired internet access" msgstr "Drôtový prístup na internet" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/placeView.js:362 msgid "Computers available for use" msgstr "Dostupné počítače na použitie" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/placeView.js:370 msgid "Internet assistance available" msgstr "Dostupná pomoc s internetom" #: src/placeView.js:376 msgid "No toilets available" msgstr "Nedostupné toalety" #: src/placeView.js:379 msgid "Toilets available" msgstr "Dostupné toalety" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #: src/placeView.js:388 msgid "Wheelchair accessible" msgstr "Bezbariérový prístup" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/placeView.js:398 msgid "Limited wheelchair accessibility" msgstr "Obmedzený bezbariérový prístup" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #: src/placeView.js:407 msgid "Not wheelchair accessible" msgstr "Bez bezbariérového prístupu" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/placeView.js:417 msgid "Designated for wheelchair users" msgstr "Navrhnuté pre vozíčkarov" #. * #. * Translators: this is a label indicating an altitude below #. * sea level, where the %s placeholder is the altitude relative #. * to mean sea level in the "negative direction" #. #: src/placeView.js:448 #, javascript-format msgid "%s below sea level" msgstr "%s pod morskou hladinou" #. * #. * Translators: this indicates a place is located at (or very #. * close to) mean sea level #. #: src/placeView.js:455 msgid "At sea level" msgstr "Nad morskou hladinou" #: src/placeView.js:464 msgid "Religion:" msgstr "Náboženstvo:" #: src/place.js:543 msgid "Place not found in OpenStreetMap" msgstr "Miesto sa nenašlo v projekte OpenStreetMap" #: src/place.js:550 msgid "Coordinates in URL are not valid" msgstr "Súradnice v URL nie sú platné" #: src/place.js:559 msgid "URL is not supported" msgstr "URL nie je podporovaná" #: src/printLayout.js:350 #, javascript-format msgid "From %s to %s" msgstr "Od %s po %s" #: src/printOperation.js:49 msgid "Loading map tiles for printing" msgstr "Načítavajú sa dlaždice mapy na vytlačenie" #: src/printOperation.js:50 msgid "You can abort printing if this takes too long" msgstr "Tlač môžete prerušiť, ak toto trvá príliš dlho" #: src/printOperation.js:52 msgid "Abort printing" msgstr "Prerušiť tlač" #. Translators: this is add via location tooltip #: src/routeEntry.js:60 msgid "Add via location" msgstr "Pridá cez umiestnenie" #. Translators: this is remove via location tooltip #: src/routeEntry.js:70 msgid "Remove via location" msgstr "Odstráni cez umiestnenie" #. Translators: this is reverse route tooltip #: src/routeEntry.js:76 msgid "Reverse route" msgstr "Obráti trasu" #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:84 #, javascript-format msgid "Add %s to %s" msgstr "Pridať obec %s do aplikácie %s" #: src/sendToDialog.js:181 msgid "Failed to open URI" msgstr "Zlyhalo otvorenie URI" #: src/sendToDialog.js:248 #, javascript-format msgid "Open with %s" msgstr "Otvoriť pomocou %s" #: src/shapeLayer.js:108 msgid "failed to load file" msgstr "zlyhalo načítanie súboru" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:349 #, javascript-format msgid "Estimated time: %s" msgstr "Odhadovaný čas: %s" #: src/sidebar.js:419 #, javascript-format msgid "Itineraries provided by %s" msgstr "Itinerár poskytnutý zo služby %s" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:39 #, javascript-format msgid "Start at %s" msgstr "Začiatok z adresy %s" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:45 msgid "Start" msgstr "Začiatok" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:63 #, javascript-format msgid "Walk %s" msgstr "Chôdza %s" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:77 #, javascript-format msgid "Arrive at %s" msgstr "Príchod na adresu %s" #: src/transit.js:79 src/transitplugins/openTripPlanner.js:1134 msgid "Arrive" msgstr "Príchod" # tooltip #: src/transitLegRow.js:69 msgid "Show walking instructions" msgstr "Zobrazí pokyny pre chôdzu" # tooltip #: src/transitLegRow.js:70 msgid "Hide walking instructions" msgstr "Skryje pokyny pre chôdzu" #: src/transitMoreRow.js:37 msgid "Load earlier alternatives" msgstr "Načítať skoršie alternatívy" #: src/transitMoreRow.js:39 msgid "Load later alternatives" msgstr "Načítať neskoršie alternatívy" #: src/transitMoreRow.js:52 msgid "No earlier alternatives found." msgstr "Nenašli sa žiadne skoršie alternatívy." #: src/transitMoreRow.js:54 msgid "No later alternatives found." msgstr "Nenašli sa žiadne neskoršie alternatívy." #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:136 msgctxt "month-day-date" msgid "%b %e" msgstr "%e. %b" #: src/transitPlan.js:170 msgid "No timetable data found for this route." msgstr "Pre túto trasu sa nenašli žiadne údaje cestovného poriadku." #: src/transitPlan.js:178 msgid "No provider found for this route." msgstr "Pre túto trasu sa nenašiel žiadny poskytovateľ." #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:295 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:324 #, javascript-format msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "%s minút" msgstr[1] "%s minúta" msgstr[2] "%s minúty" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:336 #, javascript-format msgid "%s hour" msgid_plural "%s hours" msgstr[0] "%s hodín" msgstr[1] "%s hodina" msgstr[2] "%s hodiny" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:344 #, javascript-format msgid "%s:%s hour" msgid_plural "%s:%s hours" msgstr[0] "%s:%s hodín" msgstr[1] "%s:%s hodina" msgstr[2] "%s:%s hodiny" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:698 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: src/translations.js:55 msgid "Around the clock" msgstr "Nonstop" #: src/translations.js:57 msgid "From sunrise to sunset" msgstr "Od východu slnka po západ slnka" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:123 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s,%s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:137 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s,%s,%s" #: src/translations.js:156 msgid "Every day" msgstr "Každý deň" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:168 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:179 msgid "Public holidays" msgstr "Štátne sviatky" #: src/translations.js:181 msgid "School holidays" msgstr "Školské prázdniny" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:221 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: src/translations.js:235 msgid "not open" msgstr "zatvorené" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:250 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:287 msgid "Bahá'í" msgstr "Baháizmus" #. Translators: Accuracy of user location information #: src/utils.js:256 msgid "Unknown" msgstr "Neznáma" #. Translators: Accuracy of user location information #: src/utils.js:259 msgid "Exact" msgstr "Presná" #. Translators: this is a duration with only hours, using #. * an abbreviation for hours, corresponding to 'h' in English #. #: src/utils.js:360 #, javascript-format msgid "%s h" msgstr "%s h" #. Translators: this is a duration with hours and minutes parts #. * using abbreviations for hours and minutes, corresponding to 'h' #. * and 'min' in English. The minutes has appropriate plural variations #. #: src/utils.js:366 #, javascript-format msgid "%s h %s min" msgid_plural "%s h %s min" msgstr[0] "%s h %s min" msgstr[1] "%s h %s min" msgstr[2] "%s h %s min" #. Translators: this is a duration with minutes part #. * using abbreviation for minutes, corresponding to 'min' in English #. * with appropriate plural variations #. #: src/utils.js:373 #, javascript-format msgid "%s min" msgid_plural "%s min" msgstr[0] "%s minút" msgstr[1] "%s minúta" msgstr[2] "%s minúty" #. Translators: this is a duration of less than one minute #. * with seconds using an abbreviation for seconds, corresponding to #. * 's' in English with appropriate plural forms #. #: src/utils.js:379 #, javascript-format msgid "%s s" msgid_plural "%s s" msgstr[0] "%s s" msgstr[1] "%s s" msgstr[2] "%s s" #. Translators: This is a distance measured in kilometers #: src/utils.js:390 #, javascript-format msgid "%s km" msgstr "%s km" #. Translators: This is a distance measured in meters #: src/utils.js:393 #, javascript-format msgid "%s m" msgstr "%s m" #. Translators: This is a distance measured in miles #: src/utils.js:401 #, javascript-format msgid "%s mi" msgstr "%s mi" #. Translators: This is a distance measured in feet #: src/utils.js:404 #, javascript-format msgid "%s ft" msgstr "%s ft" #: src/transitplugins/goMetro.js:61 msgid "This plugin doesn't support latest arrival" msgstr "Tento zásuvný modul nepodporuje posledný príchod" #: src/transitplugins/openTripPlanner.js:1195 #, javascript-format msgid "Continue on %s" msgstr "Pokračujte na %s" #: src/transitplugins/openTripPlanner.js:1197 msgid "Continue" msgstr "Pokračujte" #: src/transitplugins/openTripPlanner.js:1200 #, javascript-format msgid "Turn left on %s" msgstr "Odbočte doľava na %s" #: src/transitplugins/openTripPlanner.js:1202 msgid "Turn left" msgstr "Odbočte doľava" #: src/transitplugins/openTripPlanner.js:1205 #, javascript-format msgid "Turn slightly left on %s" msgstr "Odbočte mierne doľava na %s" #: src/transitplugins/openTripPlanner.js:1207 msgid "Turn slightly left" msgstr "Odbočte mierne doľava" #: src/transitplugins/openTripPlanner.js:1210 #, javascript-format msgid "Turn sharp left on %s" msgstr "Odbočte ostro doľava na %s" #: src/transitplugins/openTripPlanner.js:1212 msgid "Turn sharp left" msgstr "Odbočte ostro doľava" #: src/transitplugins/openTripPlanner.js:1215 #, javascript-format msgid "Turn right on %s" msgstr "Odbočte doprava na %s" #: src/transitplugins/openTripPlanner.js:1217 msgid "Turn right" msgstr "Odbočte doprava" #: src/transitplugins/openTripPlanner.js:1220 #, javascript-format msgid "Turn slightly right on %s" msgstr "Odbočte mierne doprava na %s" #: src/transitplugins/openTripPlanner.js:1222 msgid "Turn slightly right" msgstr "Odbočte mierne doprava" #: src/transitplugins/openTripPlanner.js:1225 #, javascript-format msgid "Turn sharp right on %s" msgstr "Odbočte ostro doprava na %s" #: src/transitplugins/openTripPlanner.js:1227 msgid "Turn sharp right" msgstr "Odbočte ostro doprava" #: src/transitplugins/openTripPlanner.js:1233 #, javascript-format msgid "At the roundabout, take exit %s" msgstr "Na kruhovom objazde, použite %s. výjazd" #: src/transitplugins/openTripPlanner.js:1235 #, javascript-format msgid "At the roundabout, take exit to %s" msgstr "Na kruhovom objazde, použite výjazd na %s" #: src/transitplugins/openTripPlanner.js:1237 msgid "Take the roundabout" msgstr "Vojdite do kruhového objazdu" #: src/transitplugins/openTripPlanner.js:1241 #, javascript-format msgid "Take the elevator and get off at %s" msgstr "Použite výťah a vstúpte na %s" #: src/transitplugins/openTripPlanner.js:1243 msgid "Take the elevator" msgstr "Použite výťah" #: src/transitplugins/openTripPlanner.js:1247 #, javascript-format msgid "Make a left u-turn onto %s" msgstr "Otočte sa doľava na %s" #: src/transitplugins/openTripPlanner.js:1249 msgid "Make a left u-turn" msgstr "Otočte sa doľava" #: src/transitplugins/openTripPlanner.js:1252 #, javascript-format msgid "Make a right u-turn onto %s" msgstr "Otočte sa doprava na %s" #: src/transitplugins/openTripPlanner.js:1254 msgid "Make a right u-turn" msgstr "Otočte sa doprava" # DK:tooltip #~ msgid "Go to current location" #~ msgstr "Prejde na aktuálne umiestnenie" # DK:tooltip #~ msgid "Choose map type" #~ msgstr "Vyberie typ mapy" #~ msgid "Zoom in" #~ msgstr "Priblíži" #~ msgid "Drag to change order of the route" #~ msgstr "Potiahnutím zmeníte poradie trasy" #~ msgid "Foursquare check-in privacy setting" #~ msgstr "Nastavenie súkromia pre oznámenie polohy v službe Foursquare" #~ msgid "" #~ "Latest used Foursquare check-in privacy setting. Possible values are: " #~ "public, followers or private." #~ msgstr "" #~ "Naposledy použité nastavenie súkromia pre oznámenie polohy v službe " #~ "Foursquare. Možné hodnoty sú: public(verejné), followers(nasledovatelia) " #~ "alebo private(súkromné)." #~ msgid "Foursquare check-in Facebook broadcasting" #~ msgstr "Vysielanie oznámenia polohy zo služby Foursquare v sieti Facebook" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a post in the " #~ "Facebook account associated with the Foursquare account." #~ msgstr "" #~ "Indikuje, či sa má vysielať oznámenie polohy zo služby Foursquare ako " #~ "príspevok v účte siete Facebook priradenom k účtu Foursquare." #~ msgid "Foursquare check-in Twitter broadcasting" #~ msgstr "Vysielanie oznámenia polohy zo služby Foursquare v sieti Twitter" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a tweet in the " #~ "Twitter account associated with the Foursquare account." #~ msgstr "" #~ "Indikuje, či sa má vysielať oznámenie polohy zo služby Foursquare ako " #~ "príspevok v účte siete Twitter priradenom k účtu Foursquare." #~ msgid "Use hybrid aerial tiles" #~ msgstr "Použiť hybridné dlaždice leteckého pohľadu" #~ msgid "Whether aerial tiles should use hybrid style (with labels)." #~ msgstr "" #~ "Či majú použiť dlaždice s leteckým pohľadom hybridný štýl (s menovkami)" #~ msgid "Visibility" #~ msgstr "Viditeľnosť" #~ msgid "Post on Facebook" #~ msgstr "Uverejniť na Facebook" #~ msgid "Post on Twitter" #~ msgstr "Uverejniť na Twitter" #~ msgid "C_heck in" #~ msgstr "Oznámiť _polohu" #~ msgid "Public" #~ msgstr "Verejné" #~ msgid "Followers" #~ msgstr "Nasledovatelia" #~ msgid "Private" #~ msgstr "Súkromné" #~ msgid "Include route and markers" #~ msgstr "Zahrnúť trasy a značky" #~ msgid "Show Labels" #~ msgstr "Zobraziť menovky" #~ msgid "Maps is offline!" #~ msgstr "Aplikácia Mapy je bez pripojenia!" #~ msgid "" #~ "Maps need an active internet connection to function properly, but one " #~ "can’t be found." #~ msgstr "" #~ "Aby mohla aplikácia Mapy pracovať správne, vyžaduje sa aktívne " #~ "internetové pripojenie, ale žiadne nie je dostupné." #~ msgid "Check your connection and proxy settings." #~ msgstr "Skontrolujte vaše nastavenia pripojenia a sprostredkovateľa proxy." #~ msgid "Email" #~ msgstr "Email" #~ msgid "Password" #~ msgstr "Heslo" #~ msgid "" #~ "Sorry, that didn’t work. Please try again, or visit\n" #~ "OpenStreetMap to reset your password." #~ msgstr "" #~ "Prepáčte, ale toto nefungovalo. Prosím, skúste to znovu, alebo navštívte " #~ "webovú adresu\n" #~ "OpenStreetMap na obnovenie vášho hesla." #~ msgctxt "dialog title" #~ msgid "Edit on OpenStreetMap" #~ msgstr "Úprava v projekte OpenStreetMap" #~ msgid "Check In…" #~ msgstr "Oznámiť polohu…" #~ msgid "Show more results" #~ msgstr "Zobraziť viac výsledkov" #~ msgid "Ignore network availability" #~ msgstr "Ignoruje dostupnosť siete" #~ msgid "Select an account" #~ msgstr "Výber účtu" #~ msgid "Loading" #~ msgstr "Načítavanie" #~ msgid "Select a place" #~ msgstr "Výber miesta" #~ msgid "" #~ "Maps cannot find the place to check in to with Foursquare. Please select " #~ "one from this list." #~ msgstr "" #~ "Aplikácia Mapy nemôže nájsť miesto na oznámenie v službe Foursquare. " #~ "Prosím, vyberte nejaké zo zoznamu." #, javascript-format #~ msgid "Check in to %s" #~ msgstr "Oznámiť polohu %s" #, javascript-format #~ msgid "Write an optional message to check in to %s." #~ msgstr "Napíšte voliteľnú správu k oznámeniu polohy %s." #, javascript-format #~ msgid "Cannot find “%s” in the social service" #~ msgstr "Nedá sa nájsť miesto „%s“ v sociálnej službe" #~ msgid "Cannot find a suitable place to check-in in this location" #~ msgstr "V tejto lokalite sa nedá nájsť vhodné miesto na oznámenie" #~ msgid "" #~ "Credentials have expired, please open Online Accounts to sign in and " #~ "enable this account" #~ msgstr "" #~ "Platnosť poverení vypršala. Prosím, otvorte Účty služieb na prihlásenie a " #~ "povolenie tohto účtu" #~ msgid "A map application for GNOME" #~ msgstr "Aplikácia na prezeranie máp pre GNOME" #~ msgid "GNOME Maps" #~ msgstr "Mapy prostredia GNOME" #~ msgid "Night mode" #~ msgstr "Nočný režim" #~ msgid "Whether the application is in night mode." #~ msgstr "Či je aplikácia v nočnom režime." #~ msgid "Night Mode" #~ msgstr "Nočný režim" #~ msgid "" #~ "You can even search for specific types of locations, such as “Pubs near " #~ "Main Street, Boston” or “Hotels near Alexanderplatz, Berlin”." #~ msgstr "" #~ "Môžete vyhľadať špecifické typy umiestnení, napríklad „Hostince neďaleko " #~ "Hlavnej ulice, Boston“ alebo „Ubytovňa neďaleko Alexanderplatzu, Berlin“." #~ msgid "Facebook check-in privacy setting" #~ msgstr "Nastavenie súkromia pre oznámenie polohy v sieti Facebook" #~ msgid "" #~ "Latest used Facebook check-in privacy setting. Possible values are: " #~ "EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS or SELF." #~ msgstr "" #~ "Naposledy použité nastavenie súkromia pre oznámenie polohy v sieti " #~ "Facebook. Možné hodnoty sú: EVERYONE(ktokoľvek), " #~ "FRIENDS_OF_FRIENDS(priatelia mojich priateľov), ALL_FRIENDS(iba moji " #~ "priatelia) or SELF(iba ja)." #~ msgid "Everyone" #~ msgstr "Ktokoľvek" #~ msgid "Friends of friends" #~ msgstr "Priatelia mojich priateľov" #~ msgid "Just friends" #~ msgstr "Iba moji priatelia" #~ msgid "Just me" #~ msgstr "Iba ja" #~ msgid "" #~ "Maps cannot find the place to check in to with Facebook. Please select " #~ "one from this list." #~ msgstr "" #~ "Aplikácia Mapy nemôže nájsť miesto na oznámenie v sieti Facebook. Prosím, " #~ "vyberte nejaké zo zoznamu." # tooltip #~ msgid "Check in here" #~ msgstr "Oznámi túto polohu" # tooltip #~ msgid "Show more information" #~ msgstr "Zobrazí viac informácií" #~ msgid "Population:" #~ msgstr "Obyvateľstvo:" #~ msgid "Altitude:" #~ msgstr "Nadmorská výška:" #~ msgid "Opening hours:" #~ msgstr "Otváracia doba:" #~ msgid "Internet access:" #~ msgstr "Prístup na internet:" #~ msgid "Toilets:" #~ msgstr "Toalety:" #~ msgid "Wheelchair access:" #~ msgstr "Bezbariérový prístup:" #~ msgid "Phone:" #~ msgstr "Telefón:" #~ msgid "yes" #~ msgstr "áno" #~ msgid "limited" #~ msgstr "obmedzený" #~ msgid "no" #~ msgstr "nie" #~ msgid "designated" #~ msgstr "vyhradený" #~ msgid "OpenStreetMap URL is not valid" #~ msgstr "URL projektu OpenStreetMap nie je platná" #~ msgctxt "time range list" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgctxt "time range list" #~ msgid "%s %s %s" #~ msgstr "%s %s %s" #~ msgctxt "time range component" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgid "wired" #~ msgstr "drôtový" #~ msgid "terminal" #~ msgstr "terminál" #~ msgid "service" #~ msgstr "obsluha" # tooltip #~ msgid "Find a Route" #~ msgstr "Nájsť trasu" #~ msgid "Don’t have an account?" #~ msgstr "Nemáte účet?" #~ msgid "Add destination" #~ msgstr "Pridať cieľ" #~ msgid "%f h" #~ msgstr "%f h" #~ msgid "%f min" #~ msgstr "%f min" #~ msgid "%f s" #~ msgstr "%f s" #~ msgid "Route search by OpenTripPlanner" #~ msgstr "Trasa poskytovaná službou OpenTripPlanner" #~ msgid "org.gnome.Maps" #~ msgstr "org.gnome.Maps" #~ msgid "Quit" #~ msgstr "Ukončiť" # tooltip #~ msgid "Open with another application" #~ msgstr "Otvorí pomocou inej aplikácie" #~ msgid "Press enter to search" #~ msgstr "Stlačte enter na vyhľadanie" #~| msgctxt "shortcut window" #~| msgid "Open shape layer" #~ msgid "Open Shape Layer…" #~ msgstr "Otvoriť vrstvu s tvarmi…" #~ msgid "OK" #~ msgstr "OK" #~ msgid "Load Map Layer" #~ msgstr "Načítať mapovú vrstvu" #~ msgid "%f km" #~ msgstr "%f km" #~ msgid "%f m" #~ msgstr "%f m" #~ msgid "%f mi" #~ msgstr "%f mi" #~ msgid "%f ft" #~ msgstr "%f ft" #~ msgid "Position not found" #~ msgstr "Pozícia sa nenašla" #~ msgid "Wlan" #~ msgstr "WiFi" #~ msgid "wlan" #~ msgstr "wifi" #~ msgid "Country code: %s" #~ msgstr "Kód krajiny: %s" #~ msgid "Population: %s" #~ msgstr "Obyvateľstvo: %s" #~ msgid "Wheelchair access: %s" #~ msgstr "Bezbariérový prístup: %s" #~ msgid "Failed to parse GeoJSON file" #~ msgstr "Zlyhala analýza súboru GeoJSON" #~ msgid "Copy Geo URI" #~ msgstr "Skopírovať URI geografickej polohy" #~ msgid "_Share" #~ msgstr "_Sprístupniť" # summary #~ msgid "Last known location and accuracy" #~ msgstr "Posledná známa poloha a presnosť" # description #~ msgid "" #~ "Last known location (latitude and longitude in degrees) and accuracy (in " #~ "meters)." #~ msgstr "" #~ "Posledné známa poloha (zemepisná šírka a zemepisná dĺžka v stupňoch) a " #~ "presnosť (v metroch)." # description #~ msgid "Description of last known location of user." #~ msgstr "Popis poslednej známej polohy používateľa." # summary #~ msgid "User set last known location" #~ msgstr "Používateľ nastavil poslednú známu polohu" # description #~ msgid "Whether the last known location was set manually by the user." #~ msgstr "Určuje, či bola posledná známa poloha ručne nastavená používateľom." #~ msgid "I’m here!" #~ msgstr "Tu sa nachádzam!" #~| msgid " km²" #~ msgid "%f km²" #~ msgstr "%f km²" #~ msgid " km2" #~ msgstr " km2" 070701000001E4000081A400000000000000000000000166413409000109DA000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/sl.po# Slovenian translation for gnome-maps. # Copyright (C) 2013 gnome-maps's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-maps package. # # Martin Srebotnjak , 2013–2015. # Matej Urbančič , 2015–2023. # msgid "" msgstr "" "Project-Id-Version: gnome-maps master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2024-02-15 06:51+0000\n" "PO-Revision-Date: 2024-02-19 10:30+0100\n" "Last-Translator: Matej Urbančič \n" "Language-Team: Slovenian \n" "Language: sl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || " "n%100==4 ? 3 : 0);\n" "X-Poedit-SourceCharset: utf-8\n" "X-Generator: Poedit 3.4.2\n" #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.appdata.xml.in.in:6 data/org.gnome.Maps.desktop.in.in:4 #: data/ui/main-window.ui:27 src/application.js:64 src/mainWindow.js:147 #: src/mainWindow.js:647 msgid "Maps" msgstr "Zemljevidi" #: data/org.gnome.Maps.appdata.xml.in.in:7 msgid "Find places around the world" msgstr "Iskanje mesta po svetu" #: data/org.gnome.Maps.appdata.xml.in.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "Program omogoča hiter dostop do zemljevidov sveta. Omogoča hitro iskanje " "mest in ulic, različnih javnih prostorov, ki jih je nujno treba obiskati, " "ali mesta zmenka s prijatelji." #: data/org.gnome.Maps.appdata.xml.in.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "Program uporablja podatkovno zbirko OpenStreetMap, ki jo ustvarja več sto " "tisoč posameznikov na vseh koncih sveta." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Maps.appdata.xml.in.in:451 src/mainWindow.js:644 msgid "The GNOME Project" msgstr "Projekt GNOME" #: data/org.gnome.Maps.desktop.in.in:5 msgid "A simple maps application" msgstr "Enostaven program za pregled zemljevidov" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in.in:14 msgid "Maps;" msgstr "Zemljevidi;karta;karte;maps;" #: data/org.gnome.Maps.desktop.in.in:17 msgid "Allows your location to be shown on the map." msgstr "Dovoli prikazovanje trenutnega mesta na zemljevidu." #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "zadnje gledano mesto" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "Koordinate nazadnje gledanega mesta." #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "približanje" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "Raven približanja" #: data/org.gnome.Maps.gschema.xml:21 msgid "rotation" msgstr "Vrtenje" #: data/org.gnome.Maps.gschema.xml:22 msgid "Map rotation in radians" msgstr "Vrtenje zemljevida v radianih" #: data/org.gnome.Maps.gschema.xml:26 msgid "Map type" msgstr "Vrsta zemljevida" #: data/org.gnome.Maps.gschema.xml:27 msgid "The type of map to display (street, aerial, etc.)" msgstr "Vrsta zemljevida za prikaz (ulični, zračni ...)" #: data/org.gnome.Maps.gschema.xml:31 msgid "Window size" msgstr "Velikost okna" #: data/org.gnome.Maps.gschema.xml:32 msgid "Window size (width and height)." msgstr "Velikost okna (širina in višina)." #: data/org.gnome.Maps.gschema.xml:36 msgid "Window position" msgstr "Položaj okna" #: data/org.gnome.Maps.gschema.xml:37 msgid "Window position (X and Y)." msgstr "Položaj okna (osi x in y)." #: data/org.gnome.Maps.gschema.xml:41 msgid "Window maximized" msgstr "Povečano okno" #: data/org.gnome.Maps.gschema.xml:42 msgid "Window maximization state" msgstr "Stanje razpetosti okna" #: data/org.gnome.Maps.gschema.xml:46 msgid "Maximum number of search results" msgstr "Največje število zadetkov iskanja" #: data/org.gnome.Maps.gschema.xml:47 msgid "Maximum number of search results from geocode search." msgstr "Največje število zadetkov iskanja pri uporabi iskalnika krajev." #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent places to store" msgstr "Število nedavnih mest za shranjevanje" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited places to store." msgstr "Število nedavno obiskanih mest za shranjevanje." #: data/org.gnome.Maps.gschema.xml:56 msgid "Number of recent routes to store" msgstr "Število poti za shranjevanje" #: data/org.gnome.Maps.gschema.xml:57 msgid "Number of recently visited routes to store." msgstr "Število nedavno obiskanih poti za shranjevanje." #: data/org.gnome.Maps.gschema.xml:61 msgid "OpenStreetMap username or email address" msgstr "Elektronski naslov oziroma uporabniško ime OpenStreetMap" #: data/org.gnome.Maps.gschema.xml:62 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "Kaže, ali je uporabnik prijavljen za urejanje podatkov OpenStreetMap." #: data/org.gnome.Maps.gschema.xml:66 msgid "Last used transportation type for routing" msgstr "Nazadnje uporabljena vrsta transporta za vodenje" #: data/org.gnome.Maps.gschema.xml:70 msgid "Show scale" msgstr "Prikaži merilo" #: data/org.gnome.Maps.gschema.xml:71 msgid "Whether to show the scale." msgstr "Ali naj bo prikazano merilo." #: data/ui/context-menu.ui:6 msgid "Route from Here" msgstr "Pot od tu" #: data/ui/context-menu.ui:10 msgid "Add Intermediate Destination" msgstr "Dodaj vmesni cilj" #: data/ui/context-menu.ui:14 msgid "Route to Here" msgstr "Pot do tu" #: data/ui/context-menu.ui:20 msgid "What's Here?" msgstr "Kaj je to?" #: data/ui/context-menu.ui:24 msgid "Copy Location" msgstr "Kopiraj mesto" #: data/ui/context-menu.ui:28 msgid "Add to OpenStreetMap…" msgstr "Objavi na OpenStreetMap …" #: data/ui/export-view-dialog.ui:7 msgid "Export view" msgstr "Pogled izvoza" #: data/ui/export-view-dialog.ui:16 data/ui/send-to-dialog.ui:10 #: data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "_Prekliči" #: data/ui/export-view-dialog.ui:26 msgid "_Export" msgstr "_Izvozi" #. Translators: This is a tooltip #: data/ui/favorite-list-row.ui:72 msgid "Remove Favorite" msgstr "Odstrani iz priljubljenih" #: data/ui/favorites-popover.ui:11 msgid "No Favorites" msgstr "Ni priljubljenih" #: data/ui/favorites-popover.ui:12 msgid "Add places to your favorites to get them listed here" msgstr "Za izpis na tem mestu, dodajte mesta med priljubljene" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:11 src/geoclue.js:106 msgid "Current Location" msgstr "Trenutno mesto" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:19 msgid "Layers" msgstr "Plasti" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:11 msgid "Print Route" msgstr "Natisni pot" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:21 msgid "Favorites" msgstr "Priljubljene poti" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:30 msgid "Route Planner" msgstr "Načrtovanje poti" #: data/ui/help-overlay.ui:12 msgctxt "shortcut window" msgid "General" msgstr "Splošno" #: data/ui/help-overlay.ui:15 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "Pokaže tipkovne bližnjice" #: data/ui/help-overlay.ui:21 msgctxt "shortcut window" msgid "Search" msgstr "Omogoči iskanje" #: data/ui/help-overlay.ui:27 msgctxt "shortcut window" msgid "Explore points-of-interest" msgstr "Razišče točke zanimanja POI" #: data/ui/help-overlay.ui:33 msgctxt "shortcut window" msgid "Show last search results" msgstr "Pokaže nazadnje uporabljeno iskanje" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "Preklopi načrtovalnik poti" #: data/ui/help-overlay.ui:45 msgctxt "shortcut window" msgid "Print route" msgstr "Natisne pot" #: data/ui/help-overlay.ui:51 msgctxt "shortcut window" msgid "Quit" msgstr "Konča program" #: data/ui/help-overlay.ui:57 msgctxt "shortcut window" msgid "Open main menu" msgstr "Odpre glavni meni" #: data/ui/help-overlay.ui:65 msgctxt "shortcut window" msgid "Map View" msgstr "Pokaže pogled zemljevida" #: data/ui/help-overlay.ui:68 msgctxt "shortcut window" msgid "Zoom in" msgstr "Približa pogled" #: data/ui/help-overlay.ui:74 msgctxt "shortcut window" msgid "Zoom out" msgstr "Oddalji pogled" #: data/ui/help-overlay.ui:80 msgctxt "shortcut window" msgid "Rotate clockwise" msgstr "Zavrti v smeri urinega kazalca" #: data/ui/help-overlay.ui:86 msgctxt "shortcut window" msgid "Rotate counter-clockwise" msgstr "Zavrti v obratni smeri urinega kazalca" #: data/ui/help-overlay.ui:92 msgctxt "shortcut window" msgid "Reset rotation" msgstr "Ponastavi vrtenje" #: data/ui/help-overlay.ui:98 msgctxt "shortcut window" msgid "Toggle scale" msgstr "Preklopi merilo" #: data/ui/help-overlay.ui:104 msgctxt "shortcut window" msgid "Go to current location" msgstr "Skoči na trenutno mesto" #: data/ui/help-overlay.ui:114 msgctxt "shortcut window" msgid "Switch to street view" msgstr "Preklopi na ulični pogled" #: data/ui/help-overlay.ui:121 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "Preklopi na pogled iz zraka" #: data/ui/help-overlay.ui:127 msgctxt "shortcut window" msgid "Open shape layer" msgstr "Odpre plast oblike" #: data/ui/layers-popover.ui:7 msgid "Show Scale" msgstr "Prikaži merilo" #: data/ui/layers-popover.ui:16 msgid "Enable Experimental Map" msgstr "Omogoči preizkusni zemljevid" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:21 msgid "Open Shape Layer…" msgstr "Odpri plast oblike …" #: data/ui/main-window.ui:8 msgid "Set up OpenStreetMap Account…" msgstr "Nastavi račun OpenStreetMap …" #: data/ui/main-window.ui:12 msgid "Export as Image…" msgstr "Izvozi kot sliko …" #: data/ui/main-window.ui:17 msgid "_Keyboard Shortcuts" msgstr "_Tipkovne bližnjice" #: data/ui/main-window.ui:22 msgid "About Maps" msgstr "O programu" #: data/ui/main-window.ui:48 msgid "Main Menu" msgstr "Glavni meni" #: data/ui/osm-account-dialog.ui:5 msgid "OpenStreetMap Account" msgstr "Račun OpenStreetMap" #: data/ui/osm-account-dialog.ui:31 msgid "Sign In To Edit Maps" msgstr "Za urejanje zemljevidov je zahtevana prijava" #: data/ui/osm-account-dialog.ui:32 msgid "Help to improve the map, using an OpenStreetMap account." msgstr "Sodelujte pri izdelavi zemljevida v okolju OpenStreetMap." #: data/ui/osm-account-dialog.ui:36 msgid "Sign In" msgstr "Prijava" #: data/ui/osm-account-dialog.ui:59 msgid "Verification" msgstr "Overitev" #: data/ui/osm-account-dialog.ui:60 msgid "" "Copy the verification code shown when authorizing access in the browser." msgstr "Kopiraj overitveno kodo ob overjanju dostopa v brskalniku." #: data/ui/osm-account-dialog.ui:69 msgid "Verification Code" msgstr "Overitvena koda" #: data/ui/osm-account-dialog.ui:75 msgid "Verify" msgstr "Overi" #: data/ui/osm-account-dialog.ui:110 msgid "Signed In" msgstr "Prijavljeno" #: data/ui/osm-account-dialog.ui:111 msgid "Your OpenStreetMap account is active." msgstr "Račun OpenStreetMap je dejaven." #: data/ui/osm-account-dialog.ui:129 msgid "Sign Out" msgstr "Odjavi" #: data/ui/osm-edit-address.ui:11 msgid "Street" msgstr "Ulica" #: data/ui/osm-edit-address.ui:22 msgid "House number" msgstr "Hišna številka" #: data/ui/osm-edit-address.ui:33 msgid "Postal code" msgstr "Poštna koda" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:44 msgid "City" msgstr "Mesto" #: data/ui/osm-edit-dialog.ui:8 msgctxt "dialog title" msgid "Edit on OpenStreetMap" msgstr "Uredi na OpenStreetMap" #: data/ui/osm-edit-dialog.ui:57 msgid "Type" msgstr "Vrsta" #: data/ui/osm-edit-dialog.ui:79 msgid "None" msgstr "Brez" #: data/ui/osm-edit-dialog.ui:108 msgid "Add Field" msgstr "Dodaj polje" #: data/ui/osm-edit-dialog.ui:130 msgid "Comment" msgstr "Opomba" #: data/ui/osm-edit-dialog.ui:158 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "Spremembe bodo vidne na vseh zemljevidih,\n" " ki uporabljajo podatke OpenStreetMap." #: data/ui/osm-edit-dialog.ui:186 msgid "Recently Used" msgstr "Nedavno uporabljeno" #: data/ui/osm-edit-dialog.ui:225 src/mapView.js:663 msgid "Cancel" msgstr "Prekliči" #: data/ui/osm-edit-dialog.ui:238 src/osmEditDialog.js:531 msgid "Next" msgstr "Naslednji" #: data/ui/osm-edit-wikipedia.ui:8 msgid "Article" msgstr "Prispevek" #: data/ui/osm-edit-wikipedia.ui:21 msgid "Wikidata tag" msgstr "Oznaka Wikipodatki" #: data/ui/osm-edit-wikipedia.ui:32 msgid "Load Wikidata tag for article" msgstr "Naloži oznake Wikipodatkov za prispevek" #: data/ui/place-popover.ui:23 src/searchBar.js:55 msgid "Explore Nearby Places" msgstr "Razišči bližnja mesta" #: data/ui/place-popover.ui:82 src/application.js:277 msgid "No results found" msgstr "Ni najdenih zadetkov" #: data/ui/place-popover.ui:92 src/application.js:255 msgid "An error has occurred" msgstr "Prišlo je do napake!" #. Translators: This is a tooltip #: data/ui/route-entry.ui:12 msgid "Change Route Order" msgstr "Spremeni korake poti" #: data/ui/send-to-dialog.ui:7 msgid "Open Location" msgstr "Odpri mesto" #: data/ui/send-to-dialog.ui:64 msgid "Copy" msgstr "Kopiraj" #: data/ui/send-to-dialog.ui:70 msgid "Send To…" msgstr "Pošlji …" #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:62 msgid "Open Shape Layer" msgstr "Odpri plast oblike" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "_Odpri" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:32 msgid "Toggle visible" msgstr "Preklopi vidno" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:44 msgid "Remove Shape Layer" msgstr "Odstrani plast oblike" #: data/ui/sidebar.ui:207 msgid "Route search by GraphHopper" msgstr "Iskanje poti s podporo GraphHopper" #: data/ui/sidebar.ui:272 msgid "" "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of " "transportation,\n" "e.g. a national provider might not include airlines, and a local provider " "could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" "Načrt potovanja z javnim prevozom zagotavljajo različne storitve.\n" "Teh podatkov ni mogoče preverjati in zagotavljati pravilnosti voznih\n" "poti in časov. Nekateri ponudniki morda ne vključujejo vseh načinov\n" "potovanja, na primer državni ponudniki morda ne vključujejo letalskih\n" "povezav in krajevni morda nimajo podatkov o vlakih.\n" "Prikazana imena in blagovne znamke je treba obravnavati kot registrirane " "znamke." #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:98 msgid "Hide intermediate stops and information" msgstr "Skrij vmesne postanke in podrobnosti" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:156 msgid "Show intermediate stops and information" msgstr "Pokaži vmesne postaje in podrobnosti mest" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:16 msgid "Leave Now" msgstr "Odhod takoj" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:17 msgid "Leave By" msgstr "Odhod do" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:18 msgid "Arrive By" msgstr "Prihod do" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:85 msgid "Show" msgstr "Pokaži" #: data/ui/transit-options-panel.ui:95 msgid "Buses" msgstr "Avtobusi" #: data/ui/transit-options-panel.ui:101 msgid "Trams" msgstr "Tramvaji" #: data/ui/transit-options-panel.ui:107 msgid "Trains" msgstr "Vlaki" #: data/ui/transit-options-panel.ui:113 msgid "Subway" msgstr "Podzemna železnica" #: data/ui/transit-options-panel.ui:119 msgid "Ferries" msgstr "Trajekti" #: data/ui/transit-options-panel.ui:125 msgid "Airplanes" msgstr "Letala" #. Translators: This is a tooltip #: data/ui/place-bar.ui:33 data/ui/place-buttons.ui:27 msgid "Share Location" msgstr "Objavi mesto" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:11 msgid "Add to new route" msgstr "Dodaj novo pot" #. Translators: This is the button to find a route to a place #: data/ui/place-buttons.ui:15 msgid "Directions" msgstr "Načrt poti" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:36 msgid "Mark as Favorite" msgstr "Označi kot priljubljeno" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:44 msgid "Edit on OpenStreetMap" msgstr "Uredi na OpenStreetMap" #. Translators: This is a tooltip #: data/ui/place-view.ui:52 msgid "Share location" msgstr "Objavi mesto" #: data/ui/poi-category-goback-row.ui:22 msgid "Back to Main Categories" msgstr "Nazaj na glavne kategorije" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:19 msgid "Reset Rotation" msgstr "Ponastavi vrtenje" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:32 msgid "Zoom Out" msgstr "Oddalji" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:43 src/mapView.js:1238 msgid "Zoom In" msgstr "Približaj" #: lib/maps-file-data-source.c:262 lib/maps-file-data-source.c:338 #: lib/maps-file-data-source.c:418 msgid "Failed to find tile structure in directory" msgstr "Določanje pravilne zgradbe sličic v mapi je spodletelo." #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "Razčlenjevanje dokumenta XML je spodletelo" #: lib/maps-osm.c:250 lib/maps-osm.c:403 msgid "Missing required attributes" msgstr "Manjkajo zahtevani atributi" #: lib/maps-osm.c:451 lib/maps-osm.c:494 msgid "Could not find OSM element" msgstr "Ni mogoče najti predmeta OSM" #: lib/maps-osm.c:508 msgid "Could not find user element" msgstr "Ni mogoče najti predmeta uporabnika" #: src/application.js:78 msgid "A path to a local tiles directory structure" msgstr "Pot do krajevne mape s sličicami" #: src/application.js:84 msgid "Tile size for local tiles directory" msgstr "Velikost sličic za krajevno mapo s sličicami" #: src/application.js:88 msgid "Show the version of the program" msgstr "Pokaži različico programa" #: src/application.js:94 msgid "Search for places" msgstr "Poišči mesta" #: src/application.js:105 src/application.js:106 msgid "[FILE…|URI]" msgstr "[DATOTEKA …|NASLOV URI]" #: src/application.js:284 #, javascript-format msgid "Invalid maps: URI: %s" msgstr "Neveljaven zemljevid: naslov URI: %s" #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:75 #, javascript-format msgid "Maps at %f, %f.png" msgstr "zemljevid na %f, %f.png" #: src/exportViewDialog.js:174 msgid "Unable to export view" msgstr "Ni mogoče izvoziti pogleda" #: src/favoriteListRow.js:42 msgid "Favorite removed" msgstr "Priljubljeno mesto je odstranjeno" #: src/favoriteListRow.js:43 msgid "Undo" msgstr "Razveljavi" #: src/geoJSONSource.js:73 msgid "invalid coordinate" msgstr "neveljavna koordinata" #: src/geoJSONSource.js:126 src/geoJSONSource.js:166 src/geoJSONSource.js:181 msgid "parse error" msgstr "napaka med razčlenjevanjem" #: src/geoJSONSource.js:160 msgid "unknown geometry" msgstr "neznana geometrija" #: src/graphHopper.js:101 src/transitPlan.js:175 msgid "Route request failed." msgstr "Zahteva za pridobivanje poti je spodletela." #: src/graphHopper.js:108 src/transitPlan.js:167 msgid "No route found." msgstr "Ni najdene poti." #: src/graphHopper.js:195 src/transitplugins/openTripPlanner.js:1163 msgid "Start!" msgstr "Začetna točka!" #: src/mainWindow.js:59 msgid "All Layer Files" msgstr "Vse datoteke plasti" #: src/mainWindow.js:522 msgid "Failed to connect to location service" msgstr "Napaka med povezovanjem s storitvijo določevanja točke GPS" #: src/mainWindow.js:527 msgid "Turn on location services" msgstr "Priklopite geolokacijske storitve" #: src/mainWindow.js:528 msgid "Location Settings" msgstr "Nastavitve mesta" #: src/mainWindow.js:645 msgid "translator-credits" msgstr "" "Matej Urbančič \n" "Martin Srebotnjak" #: src/mainWindow.js:649 msgid "Copyright © 2011 – 2023 Red Hat, Inc. and The GNOME Maps authors" msgstr "" "Avtorske pravice © 2011–2023 Red Hat, Inc. in avtorji programa Zemljevidi " "GNOME" #: src/mainWindow.js:665 #, javascript-format msgid "Map data by %s and contributors" msgstr "Podatke zemljevida objavljajo %s in drugi sodelujoči" #: src/mainWindow.js:666 msgid "Map Data Provider" msgstr "Ponudnik podatkov zemljevida" #: src/mainWindow.js:678 msgid "Map Tile Provider" msgstr "Ponudnik sličic zemljevida" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:686 #, javascript-format msgid "Map tiles provided by %s" msgstr "Slikovne podatke zemljevida objavlja %s" #: src/mainWindow.js:716 msgid "Search Provider" msgstr "Ponudnik iskalnika" #: src/mainWindow.js:719 #, javascript-format msgid "Search provided by %s using %s" msgstr "Iskalnik omogoča %s z uporabo %s" #: src/mapView.js:637 src/mapView.js:702 msgid "Failed to open layer" msgstr "Odpiranje plasti je spodletelo" #: src/mapView.js:656 msgid "Do you want to continue?" msgstr "Ali želite nadaljevati?" #: src/mapView.js:657 #, javascript-format msgid "" "You are about to open files with a total size of %s MB. This could take some " "time to load" msgstr "" "Odpreti nameravate datoteke s skupno velikostjo %s MB. Opravilo je lahko " "dolgotrajno." #: src/mapView.js:664 src/transitplugins/openTripPlanner.js:1239 #: src/transitplugins/openTripPlanner2.js:267 msgid "Continue" msgstr "Nadaljujte" #: src/mapView.js:696 msgid "File type is not supported" msgstr "Vrsta datoteke ni podprta" #: src/mapView.js:733 msgid "Failed to open GeoURI" msgstr "Odpiranje naslova GeoURI je spodletelo." #: src/mapView.js:1197 msgid "Nothing found here!" msgstr "Tu ni ničesar!" #: src/mapView.js:1237 msgid "Zoom in to add location" msgstr "Približaj za dodajanje mesta" #: src/mapView.js:1258 msgid "Location was added in OpenStreetMap" msgstr "Mesto je dodano na OpenStreetMap" #. switch back to the sign-in view, and show a toast indicating #. that verification failed #: src/osmAccountDialog.js:134 msgid "The verification code didn’t match, please try again." msgstr "Overitvena koda ni skladna. Poskusite znova." #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:335 msgid "Incorrect user name or password" msgstr "Napačno uporabniško ime ali geslo" #: src/osmConnection.js:337 msgid "Success" msgstr "Uspešno zaključeno" #: src/osmConnection.js:339 msgid "Bad request" msgstr "Slaba zahteva" #: src/osmConnection.js:341 msgid "Object not found" msgstr "Predmeta ni mogoče najti" #: src/osmConnection.js:343 msgid "Conflict, someone else has just modified the object" msgstr "Spor urejanja; ravnokar je nekdo drug spremenil isti predmet." #: src/osmConnection.js:345 msgid "Object has been deleted" msgstr "Predmet je izbrisan" #: src/osmConnection.js:347 msgid "Way or relation refers to non-existing children" msgstr "Pot oziroma zveza je sklicana na neobstoječ podrejen predmet" #: src/osmEditDialog.js:106 msgid "Name" msgstr "Ime" #: src/osmEditDialog.js:109 msgid "The official name. This is typically what appears on signs." msgstr "Uradno ime ali naziv se običajno pojavlja na tablah." #: src/osmEditDialog.js:112 msgid "Address" msgstr "Naslov" #: src/osmEditDialog.js:120 src/placeView.js:275 msgid "Website" msgstr "Spletišče" #: src/osmEditDialog.js:124 msgid "This is not a valid URL. Make sure to include http:// or https://." msgstr "" "Naslov ni veljaven naslov URL. Preverite, ali je na začetku naslova vpisan " "tudi http:// oziroma https://." #: src/osmEditDialog.js:125 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" "Uradna spletna stran mora biti zapisana kot osnovni naslov URL, na primer " "http://www.primer.si in ne http://www.primer.si/index.html." #: src/osmEditDialog.js:130 msgid "Phone" msgstr "Telefon" #: src/osmEditDialog.js:134 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" "Telefonska številka mora biti zapisana v mednarodnem zapisu (začne se s " "+ ...) Upoštevajte tudi krajevna določila zasebnosti, še posebej za zasebne " "telefonske številke." #: src/osmEditDialog.js:139 msgid "E-mail" msgstr "Elektronski naslov" #: src/osmEditDialog.js:144 msgid "" "This is not a valid email address. Make sure to not include the mailto: " "protocol prefix." msgstr "" "Naslov ni veljaven naslov elektronske pošte. Preverite, ali je na začetku " "naslova vpisana tudi predpona mailto:." #: src/osmEditDialog.js:145 msgid "" "Contact email address for inquiries. Add only email addresses that are " "intended to be publicly used." msgstr "" "Elektronski naslov za poizvedbe, ki naj bo le naslov, namenjeni javni rabi." #. Translators: This is the text for the "Wikipedia" link at the end #. of summaries #: src/osmEditDialog.js:149 src/placeView.js:727 msgid "Wikipedia" msgstr "Wikipedija" #: src/osmEditDialog.js:156 src/placeView.js:399 msgid "Opening hours" msgstr "Odpiralni čas" #: src/osmEditDialog.js:161 msgid "See the link in the label for help on format." msgstr "Pomoč o zapisu je na voljo na spletni povezavi." #. TODO: this is a bit of a work-around to re-interpret the population, #. * stored as a string into an integer to convert back to a locale- #. * formatted string. Ideally it should be kept as an integer value #. * in the Place class. But this will also need to be handled by the #. * PlaceStore, possible in a backwards-compatible way #. #: src/osmEditDialog.js:164 src/placeView.js:509 msgid "Population" msgstr "Prebivalci" #: src/osmEditDialog.js:169 src/placeView.js:538 msgid "Altitude" msgstr "Nadmorska višina" #: src/osmEditDialog.js:172 msgid "Elevation (height above sea level) of a point in meters." msgstr "Nadmorska višina točke v metrih." #: src/osmEditDialog.js:175 msgid "Wheelchair access" msgstr "Invalidom prijazno" #: src/osmEditDialog.js:178 src/osmEditDialog.js:187 src/osmEditDialog.js:198 #: src/osmEditDialog.js:233 msgid "Yes" msgstr "Da" #: src/osmEditDialog.js:179 src/osmEditDialog.js:188 src/osmEditDialog.js:199 #: src/osmEditDialog.js:234 msgid "No" msgstr "Ne" #: src/osmEditDialog.js:180 msgid "Limited" msgstr "Omejeno" #: src/osmEditDialog.js:181 msgid "Designated" msgstr "Označeno" #: src/osmEditDialog.js:184 msgid "Internet access" msgstr "Internetni dostop" #: src/osmEditDialog.js:189 msgid "Wi-Fi" msgstr "Wi-Fi" #: src/osmEditDialog.js:190 msgid "Wired" msgstr "Žično" #: src/osmEditDialog.js:191 msgid "Terminal" msgstr "Terminal" #: src/osmEditDialog.js:192 msgid "Service" msgstr "Storitev" #: src/osmEditDialog.js:195 msgid "Takeout" msgstr "Prevzem hrane" #: src/osmEditDialog.js:200 msgid "Only" msgstr "Ponuja le prevzem" #: src/osmEditDialog.js:203 msgid "Religion" msgstr "Religija" #: src/osmEditDialog.js:206 src/translations.js:286 msgid "Animism" msgstr "Animizem" #: src/osmEditDialog.js:207 msgid "Bahá’í" msgstr "Bahaizem" #: src/osmEditDialog.js:208 src/translations.js:288 msgid "Buddhism" msgstr "Budizem" #: src/osmEditDialog.js:209 src/translations.js:289 msgid "Caodaism" msgstr "Kaodaizem" #: src/osmEditDialog.js:210 src/translations.js:290 msgid "Christianity" msgstr "Krščanstvo" #: src/osmEditDialog.js:211 src/translations.js:291 msgid "Confucianism" msgstr "Konfucionizem" #: src/osmEditDialog.js:212 src/translations.js:292 msgid "Hinduism" msgstr "Hinduizem" #: src/osmEditDialog.js:213 src/translations.js:293 msgid "Jainism" msgstr "Jainizem" #: src/osmEditDialog.js:214 src/translations.js:294 msgid "Judaism" msgstr "Judovstvo" #: src/osmEditDialog.js:215 src/translations.js:295 msgid "Islam" msgstr "Islam" #: src/osmEditDialog.js:216 src/translations.js:296 msgid "Multiple Religions" msgstr "Izberi več" #: src/osmEditDialog.js:217 src/translations.js:297 msgid "Paganism" msgstr "Poganstvo" #: src/osmEditDialog.js:218 src/translations.js:298 msgid "Pastafarianism" msgstr "Pastafarianizem" #: src/osmEditDialog.js:219 src/translations.js:299 msgid "Scientology" msgstr "Scientologija" #: src/osmEditDialog.js:220 src/translations.js:300 msgid "Shinto" msgstr "Šintoizem" #: src/osmEditDialog.js:221 src/translations.js:301 msgid "Sikhism" msgstr "Sikhizem" #: src/osmEditDialog.js:222 src/translations.js:302 msgid "Spiritualism" msgstr "Spiritualizem" #: src/osmEditDialog.js:223 src/translations.js:303 msgid "Taoism" msgstr "Taoizem" #: src/osmEditDialog.js:224 src/translations.js:304 msgid "Unitarian Universalism" msgstr "Univerzalni unitarizem" #: src/osmEditDialog.js:225 src/translations.js:305 msgid "Voodoo" msgstr "Vudu" #: src/osmEditDialog.js:226 src/translations.js:306 msgid "Yazidism" msgstr "Jazidizem" #: src/osmEditDialog.js:227 src/translations.js:307 msgid "Zoroastrianism" msgstr "Zoroastrianizem" #: src/osmEditDialog.js:230 src/poiCategories.js:176 msgid "Toilets" msgstr "Stranišča" #: src/osmEditDialog.js:237 msgid "Note" msgstr "Opomba" #: src/osmEditDialog.js:240 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" "Podrobnosti, s katerimi lahko obvestimo druge uporabnike o neobičajnih " "spremembah predmetov, pomembnih podatkih ali namenih za nadaljne izboljšave." #: src/osmEditDialog.js:339 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "Dodajanje točke na OpenStreetMap" #: src/osmEditDialog.js:393 msgid "Select Type" msgstr "Izbor vrste" #: src/osmEditDialog.js:515 msgid "Done" msgstr "Končano" #: src/osmEditDialog.js:818 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "" "Uporabljen zapis mora vključevati kodo jezika in naslov prispevka, na primer " "»sl:Naslov prispevka«." #: src/osmEditDialog.js:824 msgid "Use the reload button to load the Wikidata tag for the selected article" msgstr "" "Osvežitveni gumb omogoča nalaganje oznak Wikipodatkov za izbran prispevek" #: src/osmEditDialog.js:832 msgid "Couldn't find Wikidata tag for article" msgstr "Oznake Wikipodatki za prispevek ni mogoče najti" #: src/photonUtils.js:118 msgid "Unnamed place" msgstr "Neimenovano mesto" #: src/placeEntry.js:274 msgid "Failed to parse Geo URI" msgstr "Razčlenjevanje naslova URI Geo je spodletelo" #: src/placeEntry.js:286 msgid "Failed to parse Maps URI" msgstr "Razčlenjevanje naslova URI zemljevida je spodletelo" #. 300 ft (300 * 12 * 0.0254 m) #. #. * Translators: This a format string for showing a distance to a place #. * is lower than a "quite short" distance. #. * The "less than" symbol can be substituded with an appropriate one, if #. * needed (e.g. using the correct direction, or alternative symbol). #. * The %s should be kept, and is substituted with a label representing the #. * short distance. The \u2009 (thin space) could also be adjusted if needed #: src/placeListRow.js:46 #, javascript-format msgctxt "short distance format string" msgid "< %s" msgstr "< %s" #: src/placeView.js:263 msgid "Coordinates" msgstr "Koordinate" #: src/placeView.js:267 msgid "Accuracy" msgstr "Natančnost" #. Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) #: src/placeView.js:270 #, javascript-format msgid "Accuracy: %s" msgstr "Natančnost: %s" #. since the phone numbers are typically always rendered #. * left-to-right, insert an explicit LRM char to avoid issues #. * with phone numbers in international format starting with a + #. * which is considered a "weak" character to determine Unicode #. * text direction #. #: src/placeView.js:289 msgid "Phone number" msgstr "Telefonska številka" #: src/placeView.js:308 msgid "Email" msgstr "Elektronski naslov" #. If a reference to a named floor (named or symbolic) exists #. * refer to it directly. #. #. Translators: #. * This is a reference to named building floor, using a label #. * or a code, as "displayed in the elevator" #. #: src/placeView.js:323 src/placeView.js:362 msgid "Floor" msgstr "Nadstropje" #: src/placeView.js:325 #, javascript-format msgid "Floor %s" msgstr "Nadstropje %s" #: src/placeView.js:337 msgid "At ground level" msgstr "Na ravni pritličja" #. Translators: #. * This is a reference to a number of floors above #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:346 #, javascript-format msgid "%s floor above ground level" msgid_plural "%s floors above ground level" msgstr[0] "%s nadstropij nad pritličjem" msgstr[1] "%s nadstropje nad pritličjem" msgstr[2] "%s nadstropji nad pritličjem" msgstr[3] "%s nadstropja nad pritličjem" #. Translators: #. * This is a reference to a number of floors below #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:357 #, javascript-format msgid "%s floor below ground level" msgid_plural "%s floors below ground level" msgstr[0] "%s nadstropij pod pritličjem" msgstr[1] "%s nadstropje pod pritličjem" msgstr[2] "%s nadstropji pod pritličjem" msgstr[3] "%s nadstropja pod pritličjem" #. Translators: #. * The establishment offers customers to purchase meals #. * (or similar) to be consumed elsewhere #. #: src/placeView.js:375 msgid "Offers takeout" msgstr "Ponuja prevzem hrane in pijače" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed on-premise. #. #: src/placeView.js:383 msgid "Does not offer takeout" msgstr "Ne ponuja prevzema hrane in pijače" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed elsewhere. E.g. #. * there is no seating on-premise for eating/drinking #. #: src/placeView.js:392 msgid "Only offers takeout" msgstr "Ponuja le prevzem hrane in pijače" #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/placeView.js:409 msgid "Public internet access" msgstr "Javni dostop do interneta" #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/placeView.js:418 msgid "No internet access" msgstr "Ni dostopa do interneta" #. Translators: #. * This means a WLAN Hotspot, also known as wireless, wifi or Wi-Fi. #. #: src/placeView.js:426 msgid "Public Wi-Fi" msgstr "Javno omrežje Wi-Fi" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/placeView.js:434 msgid "Wired internet access" msgstr "Žični dostop do interneta" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/placeView.js:442 msgid "Computers available for use" msgstr "Možnost uporabe računalnika" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/placeView.js:450 msgid "Internet assistance available" msgstr "Možnost dostopa do Interneta" #: src/placeView.js:456 msgid "No toilets available" msgstr "Uporaba stranišč ni mogoča" #: src/placeView.js:459 msgid "Toilets available" msgstr "Možnost uporabe stranišč" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #: src/placeView.js:468 msgid "Wheelchair accessible" msgstr "Invalidom na vozičkih prijazno" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/placeView.js:478 msgid "Limited wheelchair accessibility" msgstr "Omejen dostop za invalidske vozičke" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #: src/placeView.js:487 msgid "Not wheelchair accessible" msgstr "Ni dostopa za invalidske vozička" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/placeView.js:497 msgid "Designated for wheelchair users" msgstr "Prijazno uporabnikom invalidskih vozičkov" #. * #. * Translators: this is a label indicating an altitude below #. * sea level, where the %s placeholder is the altitude relative #. * to mean sea level in the "negative direction" #. #: src/placeView.js:528 #, javascript-format msgid "%s below sea level" msgstr "%s pod morsko gladino" #. * #. * Translators: this indicates a place is located at (or very #. * close to) mean sea level #. #: src/placeView.js:535 msgid "At sea level" msgstr "Na ravni morske gladine" #: src/placeView.js:544 msgid "Religion:" msgstr "Religija:" #: src/place.js:568 msgid "Place not found in OpenStreetMap" msgstr "Mesta na OpenStreetMap ni mogoče najti" #: src/place.js:575 msgid "Coordinates in URL are not valid" msgstr "Koordinate v naslovu URL niso veljavne" #: src/place.js:584 msgid "URL is not supported" msgstr "Podan naslov URL ni podprt" #: src/poiCategories.js:132 msgid "Amenities" msgstr "Storitve za udobje" #: src/poiCategories.js:135 msgid "ATMs" msgstr "Bankomati" #: src/poiCategories.js:141 msgid "Post Boxes" msgstr "Poštni nabiralniki" #: src/poiCategories.js:147 msgid "Post Offices" msgstr "Pošte" #: src/poiCategories.js:153 msgid "Police" msgstr "Policija" #: src/poiCategories.js:159 msgid "Libraries" msgstr "Knjižnice" #: src/poiCategories.js:165 msgid "Pharmacies" msgstr "Lekarne" #: src/poiCategories.js:171 msgid "Recycling" msgstr "Ekološki otoki" #: src/poiCategories.js:182 msgid "Wheelchair-accessible Toilets" msgstr "Invalidom na vozičkih prijazno" #: src/poiCategories.js:188 msgid "Baggage Lockers" msgstr "Omarice za prtljago" #: src/poiCategories.js:196 msgid "Eating & Drinking" msgstr "Hrana in pijača" #: src/poiCategories.js:200 msgid "Restaurants" msgstr "Restavracije" #: src/poiCategories.js:205 msgid "Fast Food" msgstr "Hitra prehrana" #: src/poiCategories.js:210 msgid "Food Courts" msgstr "Gostinski lokali" #: src/poiCategories.js:215 msgid "Pubs" msgstr "Pivnice" #: src/poiCategories.js:221 msgid "Bars" msgstr "Bari" #: src/poiCategories.js:226 msgid "Cafes" msgstr "Kavarne" #: src/poiCategories.js:231 msgid "Ice Cream" msgstr "Sladoledarne" #: src/poiCategories.js:236 msgid "Food, Snacks, and Beverage Machines" msgstr "Hrana, prigrizki in avtomati za pijače" #: src/poiCategories.js:244 msgid "Shopping" msgstr "Nakupovanje" #: src/poiCategories.js:248 msgid "Supermarkets" msgstr "Supermarketi" #: src/poiCategories.js:254 msgid "Convenience Stores" msgstr "Trgovine z živili" #: src/poiCategories.js:259 msgid "Shopping Malls" msgstr "Nakupovalna središča" #: src/poiCategories.js:265 msgid "Clothes" msgstr "Trgovine z oblekami" #: src/poiCategories.js:271 msgid "Shoes" msgstr "Trgovine z obuvali" #: src/poiCategories.js:276 msgid "Electronics" msgstr "Elektronika" #: src/poiCategories.js:282 msgid "Alcohol" msgstr "Trgovine z alkoholom" #: src/poiCategories.js:288 msgid "Bakeries" msgstr "Pekarne" #: src/poiCategories.js:294 msgid "Flowers" msgstr "Rože" #: src/poiCategories.js:301 msgid "Transportation" msgstr "Prevoz" #: src/poiCategories.js:305 msgid "Bus & Tram Stops" msgstr "Avtobusi in Tramvaji" #: src/poiCategories.js:313 msgid "Train & Subway Stations" msgstr "Vlaki in podzemne železnice" #: src/poiCategories.js:321 msgid "Tickets" msgstr "Karte" #: src/poiCategories.js:329 msgid "Parking" msgstr "Parkirišča" #: src/poiCategories.js:334 msgid "Bicycle Parking" msgstr "Parkirišča za kolesa" #: src/poiCategories.js:339 msgid "Bicycle Rental" msgstr "Izposoja koles" #: src/poiCategories.js:344 msgid "Car Rental" msgstr "Izposoja avtomobilov" #: src/poiCategories.js:349 msgid "Fuel" msgstr "Gorivo" #: src/poiCategories.js:354 msgid "EV Charging" msgstr "Električne polnilnice" #: src/poiCategories.js:362 msgid "Healthcare" msgstr "Zdravstvene ustanove" #: src/poiCategories.js:366 msgid "Clinics" msgstr "Klinike" #: src/poiCategories.js:372 msgid "Hospitals" msgstr "Bolnišnice" #: src/poiCategories.js:378 msgid "Dentists" msgstr "Zobozdravniki" #: src/poiCategories.js:386 msgid "Accommodation" msgstr "Nastanitve" #: src/poiCategories.js:390 msgid "Hotels" msgstr "Hoteli" #: src/poiCategories.js:395 msgid "Hostels" msgstr "Hostli" #: src/poiCategories.js:400 msgid "Bed & Breakfast" msgstr "Prenočišča" #: src/poiCategories.js:405 msgid "Campings" msgstr "Kampiranje" #: src/poiCategories.js:412 msgid "Recreation" msgstr "Rekreacija" #: src/poiCategories.js:416 msgid "Parks" msgstr "Parki" #: src/poiCategories.js:421 msgid "Playgrounds" msgstr "Igrišča" #: src/poiCategories.js:425 msgid "Beaches" msgstr "Plaže" #: src/poiCategories.js:430 msgid "Nature Reserves" msgstr "Naravni rezervati" #: src/poiCategories.js:436 msgid "Theme Parks" msgstr "Tematski parki" #: src/poiCategories.js:441 msgid "Theaters" msgstr "Gledališča" #: src/poiCategories.js:447 msgid "Movie Theaters" msgstr "Kinodvorane" #: src/poiCategories.js:453 msgid "Night Clubs" msgstr "Nočni klubi" #: src/poiCategories.js:460 msgid "Tourism" msgstr "Turizem" #: src/poiCategories.js:464 msgid "Museums" msgstr "Muzeji" #: src/poiCategories.js:470 msgid "Attractions" msgstr "Zanimivosti" #: src/poiCategories.js:475 msgid "Artworks" msgstr "Umetniške galerije" #: src/poiCategories.js:480 msgid "Tourist Information" msgstr "Turistične informacije" #: src/poiCategories.js:487 msgid "Sports" msgstr "Šport" #: src/poiCategories.js:491 msgid "Gyms" msgstr "Telovadnice" #: src/poiCategories.js:497 msgid "Outdoor Gyms" msgstr "Telovadnice na prostem" #: src/poiCategories.js:503 msgid "Golf Courses" msgstr "Golfišča" #: src/printLayout.js:350 #, javascript-format msgid "From %s to %s" msgstr "Od %s do %s" #: src/printOperation.js:49 msgid "Loading map tiles for printing" msgstr "Poteka nalaganje sličic zemljevida za tiskanje" #: src/printOperation.js:50 msgid "You can abort printing if this takes too long" msgstr "Tiskanje je mogoče prekiniti, če je postopek predolg" #: src/printOperation.js:52 msgid "Abort printing" msgstr "Prekliči tiskanje" #. Translators: this is add via location tooltip #: src/routeEntry.js:60 msgid "Add via location" msgstr "Dodaj prek mesta" #. Translators: this is remove via location tooltip #: src/routeEntry.js:70 msgid "Remove via location" msgstr "Odstrani prek mesta" #. Translators: this is reverse route tooltip #: src/routeEntry.js:76 msgid "Reverse route" msgstr "Obrni pot" #: src/searchBar.js:45 msgid "Search" msgstr "Poišči" #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:84 #, javascript-format msgid "Add %s to %s" msgstr "Dodaj %s v %s" #: src/sendToDialog.js:181 msgid "Failed to open URI" msgstr "Odpiranje naslova URI je spodletelo" #: src/sendToDialog.js:246 #, javascript-format msgid "Open with %s" msgstr "Odpri s programom %s" #: src/shapeLayer.js:109 msgid "failed to load file" msgstr "nalaganje datoteke je spodletelo" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:328 #, javascript-format msgid "Estimated time: %s" msgstr "Predviden čas: %s" #: src/sidebar.js:398 #, javascript-format msgid "Itineraries provided by %s" msgstr "Načrt potovanja objavlja %s" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:39 #, javascript-format msgid "Start at %s" msgstr "Začnite na %s" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:45 src/transitplugins/openTripPlanner2.js:236 msgid "Start" msgstr "Začetna točka" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:63 #, javascript-format msgid "Walk %s" msgstr "Hodite %s" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:77 #, javascript-format msgid "Arrive at %s" msgstr "Prihod k %s" #: src/transit.js:79 src/transitplugins/openTripPlanner.js:1176 #: src/transitplugins/openTripPlanner2.js:255 msgid "Arrive" msgstr "Prihod" #: src/transitLegRow.js:69 msgid "Show walking instructions" msgstr "Pokaži navodila za hojo" #: src/transitLegRow.js:70 msgid "Hide walking instructions" msgstr "Skrij navodila za hojo" #: src/transitMoreRow.js:37 msgid "Load earlier alternatives" msgstr "Naloži predhodne možnosti" #: src/transitMoreRow.js:39 msgid "Load later alternatives" msgstr "Naloži kasnejše možnosti" #: src/transitMoreRow.js:52 msgid "No earlier alternatives found." msgstr "Ni predhodnih možnosti." #: src/transitMoreRow.js:54 msgid "No later alternatives found." msgstr "Ni kasnejših možnosti." #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:138 msgctxt "month-day-date" msgid "%b %e" msgstr "%b %e" #: src/transitPlan.js:171 msgid "No timetable data found for this route." msgstr "Za to pot podatki o času niso na voljo." #: src/transitPlan.js:179 msgid "No provider found for this route." msgstr "Za to pot podatki o ponudnikih niso na voljo." #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:300 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:331 #, javascript-format msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "%s minut" msgstr[1] "%s minuta" msgstr[2] "%s minuti" msgstr[3] "%s minute" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:343 #, javascript-format msgid "%s hour" msgid_plural "%s hours" msgstr[0] "%s ur" msgstr[1] "%s ura" msgstr[2] "%s uri" msgstr[3] "%s ure" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:351 #, javascript-format msgid "%s:%s hour" msgid_plural "%s:%s hours" msgstr[0] "%s:%s ur" msgstr[1] "%s:%s ura" msgstr[2] "%s:%s uri" msgstr[3] "%s:%s ure" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:744 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: src/translations.js:55 msgid "Around the clock" msgstr "neprestano" #: src/translations.js:57 msgid "From sunrise to sunset" msgstr "od zore do mraka" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:123 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s,%s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:137 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s,%s,%s" #: src/translations.js:156 msgid "Every day" msgstr "vsak dan" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:168 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:179 msgid "Public holidays" msgstr "javni prazniki" #: src/translations.js:181 msgid "School holidays" msgstr "šolske počitnice" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:221 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: src/translations.js:235 msgid "not open" msgstr "ni odprto" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:250 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:287 msgid "Bahá'í" msgstr "Bahaizem" #. Translators: Accuracy of user location information #: src/utils.js:248 msgid "Unknown" msgstr "Neznan položaj" #. Translators: Accuracy of user location information #: src/utils.js:251 msgid "Exact" msgstr "Natančen položaj" #. Translators: this is a duration with only hours, using #. * an abbreviation for hours, corresponding to 'h' in English #. #: src/utils.js:307 #, javascript-format msgid "%s h" msgstr "%s h" #. Translators: this is a duration with hours and minutes parts #. * using abbreviations for hours and minutes, corresponding to 'h' #. * and 'min' in English. The minutes has appropriate plural variations #. #: src/utils.js:313 #, javascript-format msgid "%s h %s min" msgid_plural "%s h %s min" msgstr[0] "%s h %s min" msgstr[1] "%s h %s min" msgstr[2] "%s h %s min" msgstr[3] "%s h %s min" #. Translators: this is a duration with minutes part #. * using abbreviation for minutes, corresponding to 'min' in English #. * with appropriate plural variations #. #: src/utils.js:320 #, javascript-format msgid "%s min" msgid_plural "%s min" msgstr[0] "%s min" msgstr[1] "%s min" msgstr[2] "%s min" msgstr[3] "%s min" #. Translators: this is a duration of less than one minute #. * with seconds using an abbreviation for seconds, corresponding to #. * 's' in English with appropriate plural forms #. #: src/utils.js:326 #, javascript-format msgid "%s s" msgid_plural "%s s" msgstr[0] "%s s" msgstr[1] "%s s" msgstr[2] "%s s" msgstr[3] "%s s" #. Translators: This is a distance measured in kilometers #: src/utils.js:337 #, javascript-format msgid "%s km" msgstr "%s km" #. Translators: This is a distance measured in meters #: src/utils.js:340 #, javascript-format msgid "%s m" msgstr "%s m" #. Translators: This is a distance measured in miles #: src/utils.js:348 #, javascript-format msgid "%s mi" msgstr "%s mi" #. Translators: This is a distance measured in feet #: src/utils.js:351 #, javascript-format msgid "%s ft" msgstr "%s ft" #: src/transitplugins/goMetro.js:61 msgid "This plugin doesn't support latest arrival" msgstr "Ta vstavek ne podpira najnovejšega prihod" #: src/transitplugins/openTripPlanner.js:1237 #: src/transitplugins/openTripPlanner2.js:266 #, javascript-format msgid "Continue on %s" msgstr "Nadaljujte po: %s" #: src/transitplugins/openTripPlanner.js:1242 #: src/transitplugins/openTripPlanner2.js:270 #, javascript-format msgid "Turn left on %s" msgstr "Zavijte levo na: %s" #: src/transitplugins/openTripPlanner.js:1244 #: src/transitplugins/openTripPlanner2.js:271 msgid "Turn left" msgstr "Zavijte levo" #: src/transitplugins/openTripPlanner.js:1247 #: src/transitplugins/openTripPlanner2.js:275 #, javascript-format msgid "Turn slightly left on %s" msgstr "Držite se leve na: %s" #: src/transitplugins/openTripPlanner.js:1249 #: src/transitplugins/openTripPlanner2.js:276 msgid "Turn slightly left" msgstr "Držite se leve" #: src/transitplugins/openTripPlanner.js:1252 #: src/transitplugins/openTripPlanner2.js:280 #, javascript-format msgid "Turn sharp left on %s" msgstr "Zavijte ostro levo na: %s" #: src/transitplugins/openTripPlanner.js:1254 #: src/transitplugins/openTripPlanner2.js:281 msgid "Turn sharp left" msgstr "Zavijte ostro levo" #: src/transitplugins/openTripPlanner.js:1257 #: src/transitplugins/openTripPlanner2.js:284 #, javascript-format msgid "Turn right on %s" msgstr "Zavijte desno na: %s" #: src/transitplugins/openTripPlanner.js:1259 #: src/transitplugins/openTripPlanner2.js:285 msgid "Turn right" msgstr "Zavijte desno" #: src/transitplugins/openTripPlanner.js:1262 #: src/transitplugins/openTripPlanner2.js:289 #, javascript-format msgid "Turn slightly right on %s" msgstr "Držite se desne na: %s" #: src/transitplugins/openTripPlanner.js:1264 #: src/transitplugins/openTripPlanner2.js:290 msgid "Turn slightly right" msgstr "Držite se desne" #: src/transitplugins/openTripPlanner.js:1267 #: src/transitplugins/openTripPlanner2.js:294 #, javascript-format msgid "Turn sharp right on %s" msgstr "Zavijte ostro desno na: %s" #: src/transitplugins/openTripPlanner.js:1269 #: src/transitplugins/openTripPlanner2.js:295 msgid "Turn sharp right" msgstr "Zavijte ostro desno" #: src/transitplugins/openTripPlanner.js:1275 #: src/transitplugins/openTripPlanner2.js:302 #, javascript-format msgid "At the roundabout, take exit %s" msgstr "V krožišču zapeljite na izvoz %s" #: src/transitplugins/openTripPlanner.js:1277 #: src/transitplugins/openTripPlanner2.js:305 #, javascript-format msgid "At the roundabout, take exit to %s" msgstr "V krožišču zapeljite na izvoz za: %s" #: src/transitplugins/openTripPlanner.js:1279 #: src/transitplugins/openTripPlanner2.js:307 msgid "Take the roundabout" msgstr "Zapeljite v krožišče" #: src/transitplugins/openTripPlanner.js:1283 #: src/transitplugins/openTripPlanner2.js:315 #, javascript-format msgid "Take the elevator and get off at %s" msgstr "Vstopite v dvigalo in izstopite v %s" #: src/transitplugins/openTripPlanner.js:1285 #: src/transitplugins/openTripPlanner2.js:316 msgid "Take the elevator" msgstr "Vstopite v dvigalo" #: src/transitplugins/openTripPlanner.js:1289 #: src/transitplugins/openTripPlanner2.js:320 #, javascript-format msgid "Make a left u-turn onto %s" msgstr "Naredite polkrožni zavoj v levo na: %s" #: src/transitplugins/openTripPlanner.js:1291 #: src/transitplugins/openTripPlanner2.js:321 msgid "Make a left u-turn" msgstr "Naredite polkrožni zavoj v levo" #: src/transitplugins/openTripPlanner.js:1294 #: src/transitplugins/openTripPlanner2.js:325 #, javascript-format msgid "Make a right u-turn onto %s" msgstr "Naredite polkrožni zavoj v desno na: %s" #: src/transitplugins/openTripPlanner.js:1296 #: src/transitplugins/openTripPlanner2.js:326 msgid "Make a right u-turn" msgstr "Naredite polkrožni zavoj v desno" #~ msgid "Sign in to edit maps" #~ msgstr "" #~ "Prijava za urejanje zemljevida" #~ msgid "" #~ "Sign in to authorize access in a web browser.\n" #~ "Then fill in the obtained verification code here in the next step." #~ msgstr "" #~ "Za dostop do spletnega brskalnika je zahtevan vpis.\n" #~ "Nato je treba kodo uporabiti v naslednjem koraku." #~ msgid "Signed In" #~ msgstr "Prijavljeno" #~ msgid "Sign up" #~ msgstr "Vpis" #~ msgid "Filesystem is read only" #~ msgstr "Datotečni sistem je le za branje" #~ msgid "You do not have permission to save there" #~ msgstr "Ni ustreznih dovoljenj za shranjevanje na to mesto" #~ msgid "The directory does not exist" #~ msgstr "Mapa ne obstaja" #~ msgid "No filename specified" #~ msgstr "Ime datoteke ni določeno" #~ msgid "" #~ "Location was added to the map, note that it may take a while before it " #~ "shows on the map and in search results." #~ msgstr "" #~ "Na zemljevid je dodano mesto. Upoštevajte, da lahko traja, preden se " #~ "pokaže na zemljevidu in med rezultati iskanja." #~ msgid "Takeaway" #~ msgstr "Ponuja prevzem" #~ msgid "Go to current location" #~ msgstr "Skoči na trenutno mesto" #~ msgid "Choose map type" #~ msgstr "Trenutna vrsta zemljevida" #~ msgid "Zoom in" #~ msgstr "Približaj" #~ msgid "Drag to change order of the route" #~ msgstr "Potegnite točko za spreminjanje poti" #~ msgid "Foursquare check-in privacy setting" #~ msgstr "Nastavitve zasebnosti objav Foursquare" #~ msgid "" #~ "Latest used Foursquare check-in privacy setting. Possible values are: " #~ "public, followers or private." #~ msgstr "" #~ "Nazadnje uporabljena nastavitev zasebnosti objav na Foursquare. Dovoljene " #~ "vrednosti so: javno, spremljevalci, zasebno." #~ msgid "Foursquare check-in Facebook broadcasting" #~ msgstr "Povezovanje objav Foursquare na Facebook" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a post in the " #~ "Facebook account associated with the Foursquare account." #~ msgstr "" #~ "Določa, ali naj se objave Foresquare pokažejo tudi kot objave znotraj " #~ "povezanega računa Facebook." #~ msgid "Foursquare check-in Twitter broadcasting" #~ msgstr "Povezovanje objav Foursquare na Twitter" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a tweet in the " #~ "Twitter account associated with the Foursquare account." #~ msgstr "" #~ "Določa, ali naj se objave na Foresquare pokažejo tudi kot objave znotraj " #~ "povezanega računa Twitter." #~ msgid "Use hybrid aerial tiles" #~ msgstr "Uporabi hibridne zračne sličice" #~ msgid "Whether aerial tiles should use hybrid style (with labels)." #~ msgstr "" #~ "Ali naj bo pri prikazu zračnega pogleda uporabljen hibridni slog (z " #~ "oznakami)." #~ msgid "Visibility" #~ msgstr "Vidnost" #~ msgid "Post on Facebook" #~ msgstr "Objavi na Facebooku" #~ msgid "Post on Twitter" #~ msgstr "Objavi na Twitterju" #~ msgid "C_heck in" #~ msgstr "_Vstopi" #~ msgid "Public" #~ msgstr "Javno" #~ msgid "Private" #~ msgstr "Zasebno" #~ msgid "Include route and markers" #~ msgstr "Vključi pot in oznake" #~ msgid "Show Labels" #~ msgstr "Prikaži oznake" #~ msgid "Maps is offline!" #~ msgstr "Zemljevid ni povezan v omrežje!" #~ msgid "" #~ "Maps need an active internet connection to function properly, but one " #~ "can’t be found." #~ msgstr "" #~ "Program Zemljevidi zahtevajo za pravilno delovanje dejavno internetno " #~ "povezavo, ki pa trenutno ni na voljo." #~ msgid "Check your connection and proxy settings." #~ msgstr "Preverite povezavo in nastavitve posredniškega strežnika." #~ msgid "Password" #~ msgstr "Geslo" #~ msgid "" #~ "Sorry, that didn’t work. Please try again, or visit\n" #~ "OpenStreetMap to reset your password." #~ msgstr "" #~ "Povezovanje je spodletelo. Poskusite znova kasneje, ali pa \n" #~ "obiščite spletišče OpenStreetMap za ponastavitev gesla." #~ msgid "Check In…" #~ msgstr "Prijava …" #~ msgid "Ignore network availability" #~ msgstr "Prezri razpoložljivost omrežja" #~ msgid "Select an account" #~ msgstr "Izbor računa" #~ msgid "Loading" #~ msgstr "Nalaganje" #~ msgid "Select a place" #~ msgstr "Izbor mesta" #~ msgid "" #~ "Maps cannot find the place to check in to with Foursquare. Please select " #~ "one from this list." #~ msgstr "" #~ "Ni mogoče najti mesta za objavo na Foursquare. Izberite ustrezno mesto iz " #~ "seznama." #, javascript-format #~ msgid "Check in to %s" #~ msgstr "Prijavi se v %s." #, javascript-format #~ msgid "Write an optional message to check in to %s." #~ msgstr "Vpišite sporočilo za objavo v %s." #, javascript-format #~ msgid "Cannot find “%s” in the social service" #~ msgstr "Ni mogoče najti »%s« med razpoložljivimi storitvami" #~ msgid "Cannot find a suitable place to check-in in this location" #~ msgstr "Ni mogoče najti ustreznega mesta za objavo" #~ msgid "" #~ "Credentials have expired, please open Online Accounts to sign in and " #~ "enable this account" #~ msgstr "" #~ "Poverila so potekla. Ponovna vzpostavitev računa je mogoče med " #~ "nastavitvami." #~ msgid "A map application for GNOME" #~ msgstr "Program za prikaz zemljevidov za GNOME" #~ msgid "GNOME Maps" #~ msgstr "Zemljevidi GNOME" #~ msgid "Night mode" #~ msgstr "Nočni način" #~ msgid "Whether the application is in night mode." #~ msgstr "Ali naj bo vmesnik programa zagnan v nočnem načinu" #~ msgid "Night Mode" #~ msgstr "Nočni način" #~ msgid "" #~ "You can even search for specific types of locations, such as “Pubs near " #~ "Main Street, Boston” or “Hotels near Alexanderplatz, Berlin”." #~ msgstr "" #~ "Iskati je mogoče tudi posebna mesta, kot so »bari v središču Kranja« ali " #~ "»Hotel blizu avtobusne postaje v Mariboru«." #~ msgid "Facebook check-in privacy setting" #~ msgstr "Nastavitve zasebnosti objav na Facebook" #~ msgid "" #~ "Latest used Facebook check-in privacy setting. Possible values are: " #~ "EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS or SELF." #~ msgstr "" #~ "Nazadnje uporabljena nastavitev zasebnosti objav na Facebook. Dovoljene " #~ "vrednosti so: vsi, prijatelji prijateljev, prijatelji ali zame." #~ msgid "Everyone" #~ msgstr "Vsi" #~ msgid "Friends of friends" #~ msgstr "Prijatelji prijateljev" #~ msgid "Just friends" #~ msgstr "Le prijatelji" #~ msgid "Just me" #~ msgstr "Le jaz" #~ msgid "" #~ "Maps cannot find the place to check in to with Facebook. Please select " #~ "one from this list." #~ msgstr "" #~ "Ni mogoče najti mesta za objavo na Facebook. Izberite ustrezno mesto iz " #~ "seznama." #~ msgid "Find a Route" #~ msgstr "Najdi pot" #~ msgid "Check in here" #~ msgstr "Prijavi se tu." #~ msgid "Population:" #~ msgstr "Populacija:" #~ msgid "Altitude:" #~ msgstr "Nadmorska višina:" #~ msgid "Opening hours:" #~ msgstr "Odpiralne ure:" #~ msgid "Internet access:" #~ msgstr "Internetni dostop:" #~ msgid "Toilets:" #~ msgstr "Stranišča:" #~ msgid "Wheelchair access:" #~ msgstr "Invalidom prijazno:" #~ msgid "Phone:" #~ msgstr "Telefon:" #~ msgid "yes" #~ msgstr "da" #~ msgid "limited" #~ msgstr "omejeno" #~ msgid "no" #~ msgstr "ne" #~ msgid "designated" #~ msgstr "podpora invalidom" #~ msgid "OpenStreetMap URL is not valid" #~ msgstr "Podan naslov URL OpenStreetMap ni veljaven" #~ msgctxt "time range list" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgctxt "time range list" #~ msgid "%s %s %s" #~ msgstr "%s %s %s" #~ msgctxt "time range component" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgid "wired" #~ msgstr "žično" #~ msgid "terminal" #~ msgstr "terminal" #~ msgid "service" #~ msgstr "storitev" #~ msgid "Don’t have an account?" #~ msgstr "Ali še nimate svojega računa?" #~ msgid "%f h" #~ msgstr "%f h" #~ msgid "%f min" #~ msgstr "%f min" #~ msgid "%f s" #~ msgstr "%f s" #~ msgid "Route search by OpenTripPlanner" #~ msgstr "Iskanje poti s OpenTripPlanner" #~ msgid "Add destination" #~ msgstr "Dodaj cilj" #~ msgid "org.gnome.Maps" #~ msgstr "org.gnome.Maps" #~ msgid "Open with another application" #~ msgstr "Odpri z drugim programom" #~ msgid "Press enter to search" #~ msgstr "Pritisnite vnosno tipko za iskanje" #~ msgid "Quit" #~ msgstr "Izhod" #~ msgid "OK" #~ msgstr "V redu" #~ msgid "Open Shape Layer…" #~ msgstr "Odpri plast oblike…" #~ msgid "Load Map Layer" #~ msgstr "Naloži plast zemljevida" #~ msgid "%f km" #~ msgstr "%f km" #~ msgid "%f m" #~ msgstr "%f m" #~ msgid "%f mi" #~ msgstr "%f mi" #~ msgid "%f ft" #~ msgstr "%f ft" #~ msgid "" #~ "Maps need an active internet connection to function properly, but one " #~ "can't be found." #~ msgstr "" #~ "Zemljevidi potrebujejo za pravilno delovanje dejavno internetno povezavo, " #~ "ki pa ni na voljo." #~ msgid "Don't have an account?" #~ msgstr "Še nimate računa za dostop?" #~ msgid "The verification code didn't match, please try again." #~ msgstr "Neveljavna koda za pooblastitev. Poskusite znova." #~ msgid "Cannot find \"%s\" in the social service" #~ msgstr "Ni mogoče najti \"%s\" med razpoložljivimi storitvami" #~ msgid "The directory does not exists" #~ msgstr "Ciljna mapa ne obstaja" #~ msgid "Setup OpenStreetMap Account" #~ msgstr "Nastavitev računa OpenStreetMap" #~ msgid "Position not found" #~ msgstr "Položaja ni mogoče določiti" #~ msgid "Postal code: %s" #~ msgstr "Poštna številka: %s" #~ msgid "Country code: %s" #~ msgstr "Koda države: %s" #~ msgid "Population: %s" #~ msgstr "Populacija: %s" #~ msgid "Wheelchair access: %s" #~ msgstr "Dostop v vozičku: %s" #~ msgid "Last known location and accuracy" #~ msgstr "Zadnje znano mesto in natančnost" #~ msgid "" #~ "Last known location (latitude and longitude in degrees) and accuracy (in " #~ "meters)." #~ msgstr "" #~ "Zadnje znano mesto (geografska širina in dolžina v stopinjah) in " #~ "natančnost (v metrih)." #~ msgid "Description of last known location" #~ msgstr "Opis zadnjega znanega mesta" #~ msgid "Description of last known location of user." #~ msgstr "Opis zadnjega znanega mesta uporabnika." #~ msgid "User set last known location" #~ msgstr "Ročno nastavljeno zadnje mesto nahajanja" #~ msgid "Whether the last known location was set manually by the user." #~ msgstr "Ali je bilo zadnje znano mesto nastavljeno ročno." #~ msgid "I’m here!" #~ msgstr "Jaz sem tu!" #~ msgid "%f km²" #~ msgstr "%f km²" #~ msgid " km2" #~ msgstr " km2" #~ msgid "Satellite" #~ msgstr "Satelit" #~ msgid "Track user location." #~ msgstr "Sledenje gibanja uporabnika." #~ msgid "Map Type" #~ msgstr "Vrsta zemljevida" #~ msgid "Transit" #~ msgstr "Javni promet" 070701000001E5000081A400000000000000000000000166413409000102B6000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/sr.po# Serbian translation for gnome-maps. # Courtesy of Prevod.org team (http://prevod.org/) -- 2013–2021. # Copyright © 2013 gnome-maps's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-maps package. # Мирослав Николић , 2013–2021. # Борисав Живановић , 2017. msgid "" msgstr "" "Project-Id-Version: gnome-maps master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2023-02-12 21:13+0000\n" "PO-Revision-Date: 2023-02-18 07:25+0100\n" "Last-Translator: Марко М. Костић \n" "Language-Team: српски \n" "Language: sr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : n" "%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Project-Style: gnome\n" "X-Poedit-Bookmarks: -1,238,-1,-1,-1,-1,-1,-1,-1,-1\n" "X-Generator: Poedit 3.1.1\n" #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.appdata.xml.in.in:6 data/org.gnome.Maps.desktop.in.in:4 #: data/ui/main-window.ui:27 src/application.js:61 src/mainWindow.js:134 #: src/mainWindow.js:531 msgid "Maps" msgstr "Карте" #: data/org.gnome.Maps.appdata.xml.in.in:7 msgid "Find places around the world" msgstr "Нађите места широм света" #: data/org.gnome.Maps.appdata.xml.in.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "Гномове Карте вам дају брз приступ картама широм света. Омогућава вам да " "брзо и лако пронађете место које тражите тражећи град или улицу, или да " "одредите место за сусрет са пријатељима." #: data/org.gnome.Maps.appdata.xml.in.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "Овај програм користи заједничку базу података „OpenStreetMap“, коју стварају " "стотине хиљада људи широм света." #: data/org.gnome.Maps.appdata.xml.in.in:317 src/mainWindow.js:528 msgid "The GNOME Project" msgstr "Гномов пројекат" #: data/org.gnome.Maps.desktop.in.in:5 msgid "A simple maps application" msgstr "Једноставан програм за карте" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in.in:14 msgid "Maps;" msgstr "Maps;карте;мапе;карта;мапа;karte;mape;karta;mapa;" #: data/org.gnome.Maps.desktop.in.in:17 msgid "Allows your location to be shown on the map." msgstr "Дозвољава да се ваша локација приказује на карти." #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "последње погледано место" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "Координате последње погледаног места." #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "увећање" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "Ниво увећања" #: data/org.gnome.Maps.gschema.xml:21 msgid "Map type" msgstr "Врста карте" #: data/org.gnome.Maps.gschema.xml:22 msgid "The type of map to display (street, aerial, etc.)" msgstr "Врста карте за приказ (улица, авионски и сл.)" #: data/org.gnome.Maps.gschema.xml:26 msgid "Window size" msgstr "Величина прозора" #: data/org.gnome.Maps.gschema.xml:27 msgid "Window size (width and height)." msgstr "Величина прозора (ширина и висина)." #: data/org.gnome.Maps.gschema.xml:31 msgid "Window position" msgstr "Положај прозора" #: data/org.gnome.Maps.gschema.xml:32 msgid "Window position (X and Y)." msgstr "Положај прозора (положено и усправно)." #: data/org.gnome.Maps.gschema.xml:36 msgid "Window maximized" msgstr "Увећавање прозора" #: data/org.gnome.Maps.gschema.xml:37 msgid "Window maximization state" msgstr "Стање увећања прозора" #: data/org.gnome.Maps.gschema.xml:41 msgid "Maximum number of search results" msgstr "Највећи број резултата претраге" #: data/org.gnome.Maps.gschema.xml:42 msgid "Maximum number of search results from geocode search." msgstr "Највећи број резултата претраге за претрагу геокода." #: data/org.gnome.Maps.gschema.xml:46 msgid "Number of recent places to store" msgstr "Број скорашњих места за чување" #: data/org.gnome.Maps.gschema.xml:47 msgid "Number of recently visited places to store." msgstr "Број недавно посећених места за чување." #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent routes to store" msgstr "Број скорашњих путева које треба сачувати" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited routes to store." msgstr "Број скоро посећених путева које треба сачувати." #: data/org.gnome.Maps.gschema.xml:56 msgid "OpenStreetMap username or e-mail address" msgstr "OpenStreetMap корисничко име или е-адреса" #: data/org.gnome.Maps.gschema.xml:57 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "" "Показује да ли је корисник пријављен да би могао да уређује OpenStreetMap " "податке." #: data/org.gnome.Maps.gschema.xml:61 msgid "Last used transportation type for routing" msgstr "Последња врста превоза коришћена за проналажење пута" #: data/org.gnome.Maps.gschema.xml:65 msgid "Show scale" msgstr "Прикажи размеру" #: data/org.gnome.Maps.gschema.xml:66 msgid "Whether to show the scale." msgstr "Да ли треба приказивати размеру." #: data/ui/context-menu.ui:6 msgid "Route from here" msgstr "Пут одавде" #: data/ui/context-menu.ui:10 msgid "Add intermediate destination" msgstr "Додај међу-одредиште" #: data/ui/context-menu.ui:14 msgid "Route to here" msgstr "Пут довде" #: data/ui/context-menu.ui:20 msgid "What's here?" msgstr "Шта је то овде?" #: data/ui/context-menu.ui:24 msgid "Copy location" msgstr "Копирај место" #: data/ui/context-menu.ui:28 msgid "Add to OpenStreetMap" msgstr "Додај на OpenStreetMap налог" #: data/ui/export-view-dialog.ui:7 msgid "Export view" msgstr "Извези преглед" #: data/ui/export-view-dialog.ui:16 data/ui/send-to-dialog.ui:10 #: data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "_Откажи" #: data/ui/export-view-dialog.ui:26 msgid "_Export" msgstr "И_звези" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:11 msgid "Go to current location" msgstr "Идите на текуће место" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:19 msgid "Choose map type" msgstr "Изаберите врсту карте" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:28 msgid "Zoom out" msgstr "Умањи" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:37 msgid "Zoom in" msgstr "Увећај" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:11 msgid "Print Route" msgstr "Штампај пут" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:21 msgid "Toggle favorites" msgstr "Пребаците на омиљене" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:30 msgid "Toggle route planner" msgstr "Пребаците на планирање пута" #: data/ui/help-overlay.ui:12 msgctxt "shortcut window" msgid "General" msgstr "Опште" #: data/ui/help-overlay.ui:15 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "Приказ пречица" #: data/ui/help-overlay.ui:21 msgctxt "shortcut window" msgid "Search" msgstr "Претрага" #: data/ui/help-overlay.ui:27 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "Покретање планирања пута" #: data/ui/help-overlay.ui:33 msgctxt "shortcut window" msgid "Print route" msgstr "Штампај пут" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Quit" msgstr "Излаз" #: data/ui/help-overlay.ui:45 msgctxt "shortcut window" msgid "Open main menu" msgstr "Отвара главни изборник" #: data/ui/help-overlay.ui:53 msgctxt "shortcut window" msgid "Map View" msgstr "Преглед карте" #: data/ui/help-overlay.ui:56 msgctxt "shortcut window" msgid "Zoom in" msgstr "Увећавање" #: data/ui/help-overlay.ui:62 msgctxt "shortcut window" msgid "Zoom out" msgstr "Умањивање" #: data/ui/help-overlay.ui:68 msgctxt "shortcut window" msgid "Toggle scale" msgstr "Подешавање увећања" #: data/ui/help-overlay.ui:74 msgctxt "shortcut window" msgid "Go to current location" msgstr "Одлазак на тренутно место" #: data/ui/help-overlay.ui:84 msgctxt "shortcut window" msgid "Switch to street view" msgstr "Пребаци на поглед са улице" #: data/ui/help-overlay.ui:91 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "Пребаци на поглед из ваздуха" #: data/ui/help-overlay.ui:97 msgctxt "shortcut window" msgid "Open shape layer" msgstr "Отвори слој облика" #: data/ui/layers-popover.ui:7 msgid "Show Scale" msgstr "Прикажи размеру" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:16 msgid "Open Shape Layer…" msgstr "Отвори слој облика…" #: data/ui/location-service-dialog.ui:12 data/ui/osm-edit-dialog.ui:220 #: data/ui/zoom-in-dialog.ui:21 msgid "Cancel" msgstr "Откажи" #: data/ui/location-service-dialog.ui:18 msgid "Location Settings" msgstr "Подешавања положаја" #: data/ui/location-service-dialog.ui:32 msgid "Turn on location services to find your location" msgstr "Укључите услуге положаја да нађете ваш положај" #: data/ui/main-window.ui:8 msgid "Set up OpenStreetMap Account" msgstr "Подеси OpenStreetMap налог" #: data/ui/main-window.ui:12 msgid "Export as Image" msgstr "Извези као слику" #: data/ui/main-window.ui:17 msgid "_Keyboard Shortcuts" msgstr "Пречице на _тастатури" #: data/ui/main-window.ui:22 msgid "About Maps" msgstr "О Картама" #: data/ui/main-window.ui:38 msgid "Open main menu" msgstr "Отвори главни изборник" #: data/ui/osm-account-dialog.ui:6 msgid "OpenStreetMap Account" msgstr "OpenStreetMap налог" #: data/ui/osm-account-dialog.ui:24 msgid "Sign in to edit maps" msgstr "" "Пријавите се да бисте мењали карте" #: data/ui/osm-account-dialog.ui:38 msgid "" "Help to improve the map, using an\n" "OpenStreetMap account." msgstr "" "Побољшајте карту користећи\n" "OpenStreetMap налог." #: data/ui/osm-account-dialog.ui:52 msgid "" "Sign in to authorize access in a web browser.\n" "Then fill in the obtained verification code here in the next step." msgstr "" "Пријавите се унутар прегледача да бисте овластили приступ.\n" "Онда попуните добијени потврдни код овде за следећи корак." #: data/ui/osm-account-dialog.ui:68 msgid "Sign up" msgstr "Регистрација" #: data/ui/osm-account-dialog.ui:81 msgid "Sign In" msgstr "Пријави ме" #: data/ui/osm-account-dialog.ui:123 msgid "Copy verification code shown when authorizing access in the browser" msgstr "Копирај приказани потврдни код након дозвољавања приступа у прегледачу" #: data/ui/osm-account-dialog.ui:133 msgid "Verification code" msgstr "Потврдни код" #: data/ui/osm-account-dialog.ui:144 msgid "Verify" msgstr "Потврди" #: data/ui/osm-account-dialog.ui:172 msgid "Signed In" msgstr "Пријављен" #: data/ui/osm-account-dialog.ui:184 msgid "Your OpenStreetMap account is active." msgstr "Ваш OpenStreetMap налог је сада активан." #: data/ui/osm-account-dialog.ui:214 msgid "Sign Out" msgstr "Одјави ме" #: data/ui/osm-edit-address.ui:11 msgid "Street" msgstr "Улица" #: data/ui/osm-edit-address.ui:22 msgid "House number" msgstr "Кућни број" #: data/ui/osm-edit-address.ui:33 msgid "Postal code" msgstr "Поштански број" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:44 msgid "City" msgstr "Град" #: data/ui/osm-edit-dialog.ui:54 msgid "Type" msgstr "Врста" #: data/ui/osm-edit-dialog.ui:76 msgid "None" msgstr "Ништа" #: data/ui/osm-edit-dialog.ui:105 msgid "Add Field" msgstr "Додај поље" #: data/ui/osm-edit-dialog.ui:127 msgid "Comment" msgstr "Коментар" #: data/ui/osm-edit-dialog.ui:155 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "Измене на карти ће бити видљиве на свим картама\n" "које користе податке са OpenStreetMap пројекта." #: data/ui/osm-edit-dialog.ui:183 msgid "Recently Used" msgstr "Недавно коришћено" #: data/ui/osm-edit-dialog.ui:233 src/osmEditDialog.js:531 msgid "Next" msgstr "Следеће" #: data/ui/osm-edit-wikipedia.ui:8 msgid "Article" msgstr "Чланак" #: data/ui/osm-edit-wikipedia.ui:21 msgid "Wikidata tag" msgstr "Викидата ознака" #: data/ui/place-popover.ui:44 src/application.js:275 msgid "No results found" msgstr "Нема резултата" #: data/ui/place-popover.ui:54 src/application.js:252 src/osmEditDialog.js:568 msgid "An error has occurred" msgstr "Дошло је до грешке" #. Translators: This is a tooltip #: data/ui/route-entry.ui:12 msgid "Drag to change order of the route" msgstr "Превуци да би променио редослед пута" #: data/ui/send-to-dialog.ui:7 msgid "Open Location" msgstr "Отвори место" #: data/ui/send-to-dialog.ui:62 msgid "Copy" msgstr "Копирај" #: data/ui/send-to-dialog.ui:68 msgid "Send To…" msgstr "Пошаљи у…" #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:65 msgid "Open Shape Layer" msgstr "Отвори слој облика" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "_Отвори" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:32 msgid "Toggle visible" msgstr "Подеси видљивост" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:44 msgid "Remove Shape Layer" msgstr "Уклони слој облика" #: data/ui/sidebar.ui:215 msgid "Route search by GraphHopper" msgstr "Претрага руте Граф Хопером" #: data/ui/sidebar.ui:282 msgid "" "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of " "transportation,\n" "e.g. a national provider might not include airlines, and a local provider " "could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" "Маршруте јавног превоза омогућује услуга треће стране.\n" "Гном не може јемчити за тачност приказаних маршрута и заказаних полазака.\n" "Знајте да неки достављачи неће укључити све могуће режиме превоза,\n" "нпр.: национални достављач података неће приказати све авио превознике а\n" "локални достављач неће приказати регионалне возне линије.\n" "Приказани називи и робне марке се требају сматрати регистрованим робним " "маркама\n" "где је то могуће." #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:98 msgid "Hide intermediate stops and information" msgstr "Сакриј станице и податке на маршрути" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:156 msgid "Show intermediate stops and information" msgstr "Прикажи станице и податке на маршрути" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:16 msgid "Leave Now" msgstr "Полази сада" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:17 msgid "Leave By" msgstr "Полази у" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:18 msgid "Arrive By" msgstr "Долази у" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:85 msgid "Show" msgstr "Прикажи" #: data/ui/transit-options-panel.ui:95 msgid "Buses" msgstr "Аутобуси" #: data/ui/transit-options-panel.ui:101 msgid "Trams" msgstr "Трамваји" #: data/ui/transit-options-panel.ui:107 msgid "Trains" msgstr "Возови" #: data/ui/transit-options-panel.ui:113 msgid "Subway" msgstr "Подземна" #: data/ui/transit-options-panel.ui:119 msgid "Ferries" msgstr "Трајекти" #: data/ui/transit-options-panel.ui:125 msgid "Airplanes" msgstr "Авиони" #. Translators: This is a tooltip #: data/ui/place-bar.ui:28 data/ui/place-buttons.ui:27 data/ui/place-view.ui:52 msgid "Share location" msgstr "Подели место" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:11 msgid "Add to new route" msgstr "Додајте у нови пут" #. Translators: This is the button to find a route to a place #: data/ui/place-buttons.ui:15 msgid "Directions" msgstr "Правци" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:36 msgid "Mark as favorite" msgstr "Означите омиљеним" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:44 msgid "Edit on OpenStreetMap" msgstr "Уреди на OpenStreetMap" #: data/ui/zoom-in-dialog.ui:11 msgid "Zoom in to add location!" msgstr "Увећај за додавање локације!" #: data/ui/zoom-in-dialog.ui:27 msgid "Zoom In" msgstr "Увећај" #: lib/maps-file-data-source.c:262 lib/maps-file-data-source.c:338 #: lib/maps-file-data-source.c:418 msgid "Failed to find tile structure in directory" msgstr "Неуспех при тражењу структуре плочица у фасцикли" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "Нисам успео да обрадим ИксМЛ документ" #: lib/maps-osm.c:250 lib/maps-osm.c:403 msgid "Missing required attributes" msgstr "Недостају потребне особине" #: lib/maps-osm.c:451 lib/maps-osm.c:494 msgid "Could not find OSM element" msgstr "Нисам могао да нађем ОСМ елемент" #: lib/maps-osm.c:508 msgid "Could not find user element" msgstr "Нисам могао да нађем кориснички елемент" #: src/application.js:74 msgid "A path to a local tiles directory structure" msgstr "Путања до локалне фасцикле са структуром плочица" #: src/application.js:80 msgid "Tile size for local tiles directory" msgstr "Величина плочица за локални директоријум плочица" #: src/application.js:84 msgid "Show the version of the program" msgstr "Прикажи издање програма" #: src/application.js:90 msgid "Search for places" msgstr "Потражи места" #: src/application.js:101 src/application.js:102 msgid "[FILE…|URI]" msgstr "[FILE…|URI]" #: src/application.js:283 #, javascript-format msgid "Invalid maps: URI: %s" msgstr "Неисправне мапе: УРИ: %s" #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:74 #, javascript-format msgid "Maps at %f, %f.png" msgstr "Карта на %f, %f.png" #: src/exportViewDialog.js:156 msgid "Filesystem is read only" msgstr "Систем датотека је само за читање" #: src/exportViewDialog.js:158 msgid "You do not have permission to save there" msgstr "Немате овлашћење да сачувате ту" #: src/exportViewDialog.js:160 msgid "The directory does not exist" msgstr "Директоријум не постоји" #: src/exportViewDialog.js:162 msgid "No filename specified" msgstr "Није наведено име датотеке" #: src/exportViewDialog.js:170 msgid "Unable to export view" msgstr "Не могу да извезем преглед" #: src/geoclue.js:106 msgid "Current Location" msgstr "Тренутни положај" #: src/geoJSONSource.js:73 msgid "invalid coordinate" msgstr "неисправна координата" #: src/geoJSONSource.js:118 src/geoJSONSource.js:158 src/geoJSONSource.js:173 msgid "parse error" msgstr "грешка у обрађивању" #: src/geoJSONSource.js:152 msgid "unknown geometry" msgstr "непозната геометрија" #: src/graphHopper.js:121 src/transitPlan.js:174 msgid "Route request failed." msgstr "Захтев пута није успео." #: src/graphHopper.js:128 src/transitPlan.js:166 msgid "No route found." msgstr "Нисам пронашао пут." #: src/graphHopper.js:215 src/transitplugins/openTripPlanner.js:1121 msgid "Start!" msgstr "Крени!" #: src/mainWindow.js:62 msgid "All Layer Files" msgstr "Све датотеке слоја" #: src/mainWindow.js:442 msgid "Failed to connect to location service" msgstr "Нисам успео да се повежем на услугу положаја" #: src/mainWindow.js:529 msgid "translator-credits" msgstr "" "Мирослав Николић \n" "Марко М. Костић \n" "Борисав Живановић \n" "https://гном.срб — превод Гнома на српски језик" #: src/mainWindow.js:533 msgid "Copyright © 2011 – 2023 Red Hat, Inc. and The GNOME Maps authors" msgstr "Ауторска права © 2011 – 2023 Red Hat, Inc. и творци Гномових Карти" #: src/mainWindow.js:549 #, javascript-format msgid "Map data by %s and contributors" msgstr "Подаци о картама са платформе %s и од доприносилаца" #: src/mainWindow.js:550 msgid "Map Data Provider" msgstr "Достављач података о картама" #: src/mainWindow.js:562 msgid "Map Tile Provider" msgstr "Достављач плочица карти" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:570 #, javascript-format msgid "Map tiles provided by %s" msgstr "Плочице за карту су преузете са %s" #: src/mainWindow.js:600 msgid "Search Provider" msgstr "Достављач претраге" #: src/mainWindow.js:603 #, javascript-format msgid "Search provided by %s using %s" msgstr "Претрагу омогућава %s помоћу %s" #: src/mapView.js:501 src/mapView.js:561 msgid "Failed to open layer" msgstr "Нисам успео да отворим слој" #: src/mapView.js:522 msgid "Do you want to continue?" msgstr "Да ли желите да наставите?" #: src/mapView.js:523 #, javascript-format msgid "" "You are about to open files with a total size of %s MB. This could take some " "time to load" msgstr "" "Отварате датотеке сса укупном величином од %s MB. Биће потребно неко време " "за учитавање" #: src/mapView.js:555 msgid "File type is not supported" msgstr "Врста датотеке није подржана" #: src/mapView.js:593 msgid "Failed to open GeoURI" msgstr "Нисам успео да отворим Гео-УРИ" #: src/mapView.js:1033 msgid "Nothing found here!" msgstr "Ништа није нађено овде!" #: src/mapView.js:1094 msgid "" "Location was added to the map, note that it may take a while before it shows " "on the map and in search results." msgstr "" "Локација је додата на карту. Знајте да ће требати мало времена пре него што " "се појави на карти и у резултатима претраге." #: src/osmAccountDialog.js:134 msgid "The verification code didn’t match, please try again." msgstr "Потврдни код се не подудара, пробајте поново." #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:335 msgid "Incorrect user name or password" msgstr "Неисправно корисничко име или лозинка" #: src/osmConnection.js:337 msgid "Success" msgstr "Успех" #: src/osmConnection.js:339 msgid "Bad request" msgstr "Лош захтев" #: src/osmConnection.js:341 msgid "Object not found" msgstr "Објекат није нађен" #: src/osmConnection.js:343 msgid "Conflict, someone else has just modified the object" msgstr "Сукоб, неко други је управо изменио објекат" #: src/osmConnection.js:345 msgid "Object has been deleted" msgstr "Објекат је обрисан" #: src/osmConnection.js:347 msgid "Way or relation refers to non-existing children" msgstr "Пут или релација се односи на непостојеће дете" #: src/osmEditDialog.js:106 msgid "Name" msgstr "Назив" #: src/osmEditDialog.js:109 msgid "The official name. This is typically what appears on signs." msgstr "Званични назив. Обично назив који се налази на саобраћајним знаковима." #: src/osmEditDialog.js:112 msgid "Address" msgstr "Адреса" #: src/osmEditDialog.js:120 src/placeView.js:254 msgid "Website" msgstr "Веб страница" #: src/osmEditDialog.js:124 msgid "This is not a valid URL. Make sure to include http:// or https://." msgstr "" "Ово није исправна адреса. Уверите се да сте укључили „http://“ или " "„https://“." #: src/osmEditDialog.js:125 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" "Званична веб страница. Пробајте да унесете најосновнији облик адресе. На " "пример: „http://primer.rs“ уместо „http://primer.rs/pocetna.html“." #: src/osmEditDialog.js:130 msgid "Phone" msgstr "Телефон" #: src/osmEditDialog.js:134 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" "Број телефона. Користите међународни формат где број почиње са плус знаком. " "Обратите пажњу на локалне законе о заштити приватности, нарочито ако су у " "питању приватни бројеви телефона." #: src/osmEditDialog.js:139 src/placeView.js:282 msgid "E-mail" msgstr "Е-пошта" #: src/osmEditDialog.js:144 msgid "" "This is not a valid e-mail address. Make sure to not include the mailto: " "protocol prefix." msgstr "" "Ово није исправна адреса е-поште. Уверите се да нисте укључили префикс " "„mailto:“ протокола." #: src/osmEditDialog.js:145 msgid "" "Contact e-mail address for inquiries. Add only email addresses that are " "intended to be publicly used." msgstr "" "Адреса е-поште контакта за истраживања. Додајте само адресе е-поште које су " "намењене за јавну употребу." #. Translators: This is the text for the "Wikipedia" link at the end #. of summaries #: src/osmEditDialog.js:149 src/placeView.js:630 msgid "Wikipedia" msgstr "Википедија" #: src/osmEditDialog.js:156 src/placeView.js:319 msgid "Opening hours" msgstr "Радно време" #: src/osmEditDialog.js:161 msgid "See the link in the label for help on format." msgstr "Погледајте везу у етикети за више података о формату." #. TODO: this is a bit of a work-around to re-interpret the population, #. * stored as a string into an integer to convert back to a locale- #. * formatted string. Ideally it should be kept as an integer value #. * in the Place class. But this will also need to be handled by the #. * PlaceStore, possible in a backwards-compatible way #. #: src/osmEditDialog.js:164 src/placeView.js:429 msgid "Population" msgstr "Становништво" #: src/osmEditDialog.js:169 src/placeView.js:458 msgid "Altitude" msgstr "Висина" # Ми не морамо да пишемо "(height above sea lever)" јер сама реч „надморска висина“ описује да је у питању висина изнад мора. :) #: src/osmEditDialog.js:172 msgid "Elevation (height above sea level) of a point in metres." msgstr "Надморска висина тачке у метрима." #: src/osmEditDialog.js:175 msgid "Wheelchair access" msgstr "Приступ инвалидима" #: src/osmEditDialog.js:178 src/osmEditDialog.js:187 src/osmEditDialog.js:198 #: src/osmEditDialog.js:233 msgid "Yes" msgstr "Да" #: src/osmEditDialog.js:179 src/osmEditDialog.js:188 src/osmEditDialog.js:199 #: src/osmEditDialog.js:234 msgid "No" msgstr "Не" #: src/osmEditDialog.js:180 msgid "Limited" msgstr "Ограничен" #: src/osmEditDialog.js:181 msgid "Designated" msgstr "Намењено" #: src/osmEditDialog.js:184 msgid "Internet access" msgstr "Приступ интернету" #: src/osmEditDialog.js:189 msgid "Wi-Fi" msgstr "Бежични" #: src/osmEditDialog.js:190 msgid "Wired" msgstr "Жичани" #: src/osmEditDialog.js:191 msgid "Terminal" msgstr "Интернет кафе" #: src/osmEditDialog.js:192 msgid "Service" msgstr "Услуга" #: src/osmEditDialog.js:195 msgid "Takeaway" msgstr "За понети" #: src/osmEditDialog.js:200 msgid "Only" msgstr "Само" #: src/osmEditDialog.js:203 msgid "Religion" msgstr "Вероисповест" #: src/osmEditDialog.js:206 src/translations.js:286 msgid "Animism" msgstr "Анимизам" #: src/osmEditDialog.js:207 msgid "Bahá’í" msgstr "Бахаизам" #: src/osmEditDialog.js:208 src/translations.js:288 msgid "Buddhism" msgstr "Будизам" #: src/osmEditDialog.js:209 src/translations.js:289 msgid "Caodaism" msgstr "Каодаизам" #: src/osmEditDialog.js:210 src/translations.js:290 msgid "Christianity" msgstr "Хришћанство" #: src/osmEditDialog.js:211 src/translations.js:291 msgid "Confucianism" msgstr "Конфучијанство" #: src/osmEditDialog.js:212 src/translations.js:292 msgid "Hinduism" msgstr "Хиндуизам" #: src/osmEditDialog.js:213 src/translations.js:293 msgid "Jainism" msgstr "Ђаинизам" #: src/osmEditDialog.js:214 src/translations.js:294 msgid "Judaism" msgstr "Јудаизам" #: src/osmEditDialog.js:215 src/translations.js:295 msgid "Islam" msgstr "Ислам" #: src/osmEditDialog.js:216 src/translations.js:296 msgid "Multiple Religions" msgstr "Вишеструке вероисповести" #: src/osmEditDialog.js:217 src/translations.js:297 msgid "Paganism" msgstr "Паганизам" #: src/osmEditDialog.js:218 src/translations.js:298 msgid "Pastafarianism" msgstr "Пастафаријанизам" #: src/osmEditDialog.js:219 src/translations.js:299 msgid "Scientology" msgstr "Сајентологија" #: src/osmEditDialog.js:220 src/translations.js:300 msgid "Shinto" msgstr "Шинтоизам" #: src/osmEditDialog.js:221 src/translations.js:301 msgid "Sikhism" msgstr "Сикизам" #: src/osmEditDialog.js:222 src/translations.js:302 msgid "Spiritualism" msgstr "Спиритуализам" #: src/osmEditDialog.js:223 src/translations.js:303 msgid "Taoism" msgstr "Таоизам" #: src/osmEditDialog.js:224 src/translations.js:304 msgid "Unitarian Universalism" msgstr "Унитарни универзализам" #: src/osmEditDialog.js:225 src/translations.js:305 msgid "Voodoo" msgstr "Вуду" #: src/osmEditDialog.js:226 src/translations.js:306 msgid "Yazidism" msgstr "Језидизам" #: src/osmEditDialog.js:227 src/translations.js:307 msgid "Zoroastrianism" msgstr "Зороастизам" #: src/osmEditDialog.js:230 msgid "Toilets" msgstr "Тоалети" #: src/osmEditDialog.js:237 msgid "Note" msgstr "Белешка" #: src/osmEditDialog.js:240 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" "Подаци за обавештавање других картографа о мање очигледним подацима о " "елементу, намери аутора приликом стварања или о саветима за будућа побољшања." #: src/osmEditDialog.js:339 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "Додај на OpenStreetMap" #: src/osmEditDialog.js:393 msgid "Select Type" msgstr "Изабери врсту" #: src/osmEditDialog.js:515 msgid "Done" msgstr "Готово" #: src/osmEditDialog.js:827 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "" "Коришћени формат треба да садржи ознаку језика и наслов чланка. На пример: " "„sr:Наслов чланка“." #: src/osmEditDialog.js:833 msgid "Use the reload button to load the Wikidata tag for the selected article" msgstr "Употреби дугме за поновно учитавање викидата ознаке изабраног чланка" #: src/osmEditDialog.js:841 msgid "Couldn't find Wikidata tag for article" msgstr "Нисам могао наћи викидата ознаку чланка" #: src/photonUtils.js:118 msgid "Unnamed place" msgstr "Неименовано место" #: src/placeEntry.js:267 msgid "Failed to parse Geo URI" msgstr "Неуспех при обради Гео путање" #: src/placeEntry.js:280 msgid "Failed to parse Maps URI" msgstr "Нисам успео да обрадим УРИ мапа" #: src/placeView.js:242 msgid "Coordinates" msgstr "Координате" #: src/placeView.js:246 msgid "Accuracy" msgstr "Тачност" #. Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) #: src/placeView.js:249 #, javascript-format msgid "Accuracy: %s" msgstr "Тачност: %s" #. since the phone numbers are typically always rendered #. * left-to-right, insert an explicit LRM char to avoid issues #. * with phone numbers in international format starting with a + #. * which is considered a "weak" character to determine Unicode #. * text direction #. #: src/placeView.js:268 msgid "Phone number" msgstr "Број телефона" #. Translators: #. * The establishment offers customers to purchase meals #. * (or similar) to be consumed elsewhere #. #: src/placeView.js:295 msgid "Offers takeaway" msgstr "Нуди за понети" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed on-premise. #. #: src/placeView.js:303 msgid "Does not offer takeaway" msgstr "Не нуди за понети" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed elsewhere. E.g. #. * there is no seating on-premise for eating/drinking #. #: src/placeView.js:312 msgid "Only offers takeaway" msgstr "Нуди само за понети" #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/placeView.js:329 msgid "Public internet access" msgstr "Јавни приступ интернету" #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/placeView.js:338 msgid "No internet access" msgstr "Нема приступа интернету" #. Translators: #. * This means a WLAN Hotspot, also known as wireless, wifi or Wi-Fi. #. #: src/placeView.js:346 msgid "Public Wi-Fi" msgstr "Јавна бежична" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/placeView.js:354 msgid "Wired internet access" msgstr "Жичани приступ интернету" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/placeView.js:362 msgid "Computers available for use" msgstr "Рачунари доступни за коришћење" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/placeView.js:370 msgid "Internet assistance available" msgstr "Интернет испомоћ је доступна" #: src/placeView.js:376 msgid "No toilets available" msgstr "Нема доступних тоалета" #: src/placeView.js:379 msgid "Toilets available" msgstr "Тоалети су доступни" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #: src/placeView.js:388 msgid "Wheelchair accessible" msgstr "Приступно инвалидима" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/placeView.js:398 msgid "Limited wheelchair accessibility" msgstr "Ограничен приступ инвалидима" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #: src/placeView.js:407 msgid "Not wheelchair accessible" msgstr "Без приступа инвалидима" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/placeView.js:417 msgid "Designated for wheelchair users" msgstr "Осмишљено за кориснике инвалиде" #. * #. * Translators: this is a label indicating an altitude below #. * sea level, where the %s placeholder is the altitude relative #. * to mean sea level in the "negative direction" #. #: src/placeView.js:448 #, javascript-format msgid "%s below sea level" msgstr "%s испод нивоа мора" #. * #. * Translators: this indicates a place is located at (or very #. * close to) mean sea level #. #: src/placeView.js:455 msgid "At sea level" msgstr "На нивоу мора" #: src/placeView.js:464 msgid "Religion:" msgstr "Вероисповест:" #: src/place.js:543 msgid "Place not found in OpenStreetMap" msgstr "Место није нађено на OpenStreetMap-у" #: src/place.js:550 msgid "Coordinates in URL are not valid" msgstr "Неисправне координате у адреси" #: src/place.js:559 msgid "URL is not supported" msgstr "Адреса није подржана" #: src/printLayout.js:350 #, javascript-format msgid "From %s to %s" msgstr "Од %s до %s" #: src/printOperation.js:49 msgid "Loading map tiles for printing" msgstr "Учитавам плочице карте за штампање" #: src/printOperation.js:50 msgid "You can abort printing if this takes too long" msgstr "Можете прекинути штампање ако ово потраје" #: src/printOperation.js:52 msgid "Abort printing" msgstr "Прекини штампање" #. Translators: this is add via location tooltip #: src/routeEntry.js:60 msgid "Add via location" msgstr "Додај преко места" #. Translators: this is remove via location tooltip #: src/routeEntry.js:70 msgid "Remove via location" msgstr "Уклони преко места" #. Translators: this is reverse route tooltip #: src/routeEntry.js:76 msgid "Reverse route" msgstr "Обрни пут" #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:84 #, javascript-format msgid "Add %s to %s" msgstr "Додај %s на %s" #: src/sendToDialog.js:181 msgid "Failed to open URI" msgstr "Нисам успео да отворим путању" #: src/sendToDialog.js:248 #, javascript-format msgid "Open with %s" msgstr "Отвори програмом %s" #: src/shapeLayer.js:108 msgid "failed to load file" msgstr "нисам успео да учитам датотеку" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:349 #, javascript-format msgid "Estimated time: %s" msgstr "Процењено време: %s" #: src/sidebar.js:419 #, javascript-format msgid "Itineraries provided by %s" msgstr "Маршруте су преузете са %s" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:39 #, javascript-format msgid "Start at %s" msgstr "Креће у %s" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:45 msgid "Start" msgstr "Крени" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:63 #, javascript-format msgid "Walk %s" msgstr "Пешачите %s" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:77 #, javascript-format msgid "Arrive at %s" msgstr "Долази у %s" #: src/transit.js:79 src/transitplugins/openTripPlanner.js:1134 msgid "Arrive" msgstr "Долази" #: src/transitLegRow.js:69 msgid "Show walking instructions" msgstr "Прикажи упутства за пешачење" #: src/transitLegRow.js:70 msgid "Hide walking instructions" msgstr "Сакриј упутства за пешачење" #: src/transitMoreRow.js:37 msgid "Load earlier alternatives" msgstr "Учитај раније алтернативе" #: src/transitMoreRow.js:39 msgid "Load later alternatives" msgstr "Учитај старије алтернативе" #: src/transitMoreRow.js:52 msgid "No earlier alternatives found." msgstr "Нисам успео да нађем раније алтернативе." #: src/transitMoreRow.js:54 msgid "No later alternatives found." msgstr "Нисам успео да нађем старије алтернативе." #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:136 msgctxt "month-day-date" msgid "%b %e" msgstr "%e. %b" #: src/transitPlan.js:170 msgid "No timetable data found for this route." msgstr "Нема редова вожњи за ову руту." #: src/transitPlan.js:178 msgid "No provider found for this route." msgstr "Ниједан достављач није нађен за ову руту." #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:295 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:324 #, javascript-format msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "%s минут" msgstr[1] "%s минута" msgstr[2] "%s минута" msgstr[3] "%s минут" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:336 #, javascript-format msgid "%s hour" msgid_plural "%s hours" msgstr[0] "%s сат" msgstr[1] "%s сата" msgstr[2] "%s сати" msgstr[3] "%s сат" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:344 #, javascript-format msgid "%s:%s hour" msgid_plural "%s:%s hours" msgstr[0] "%s:%s сат" msgstr[1] "%s:%s сата" msgstr[2] "%s:%s сати" msgstr[3] "%s:%s сат" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:698 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: src/translations.js:55 msgid "Around the clock" msgstr "У времену" #: src/translations.js:57 msgid "From sunrise to sunset" msgstr "Од јутра до вечери" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:123 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s, %s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:137 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s, %s, %s" #: src/translations.js:156 msgid "Every day" msgstr "Сваког дана" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:168 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s—%s" #: src/translations.js:179 msgid "Public holidays" msgstr "Јавни празници" #: src/translations.js:181 msgid "School holidays" msgstr "Школски празници" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:221 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: src/translations.js:235 msgid "not open" msgstr "није отворено" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:250 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s—%s" #: src/translations.js:287 msgid "Bahá'í" msgstr "Бахаизам" #. Translators: Accuracy of user location information #: src/utils.js:256 msgid "Unknown" msgstr "Непознато" #. Translators: Accuracy of user location information #: src/utils.js:259 msgid "Exact" msgstr "Тачно" #. Translators: this is a duration with only hours, using #. * an abbreviation for hours, corresponding to 'h' in English #. #: src/utils.js:360 #, javascript-format msgid "%s h" msgstr "%s ч" #. Translators: this is a duration with hours and minutes parts #. * using abbreviations for hours and minutes, corresponding to 'h' #. * and 'min' in English. The minutes has appropriate plural variations #. #: src/utils.js:366 #, javascript-format msgid "%s h %s min" msgid_plural "%s h %s min" msgstr[0] "%s ч %s м" msgstr[1] "%s ч %s м" msgstr[2] "%s ч %s м" msgstr[3] "%s ч %s м" #. Translators: this is a duration with minutes part #. * using abbreviation for minutes, corresponding to 'min' in English #. * with appropriate plural variations #. #: src/utils.js:373 #, javascript-format msgid "%s min" msgid_plural "%s min" msgstr[0] "%s мин." msgstr[1] "%s мин." msgstr[2] "%s мин." msgstr[3] "%s мин." #. Translators: this is a duration of less than one minute #. * with seconds using an abbreviation for seconds, corresponding to #. * 's' in English with appropriate plural forms #. #: src/utils.js:379 #, javascript-format msgid "%s s" msgid_plural "%s s" msgstr[0] "%s с" msgstr[1] "%s с" msgstr[2] "%s с" msgstr[3] "%s с" #. Translators: This is a distance measured in kilometers #: src/utils.js:390 #, javascript-format msgid "%s km" msgstr "%s километара" #. Translators: This is a distance measured in meters #: src/utils.js:393 #, javascript-format msgid "%s m" msgstr "%s метара" #. Translators: This is a distance measured in miles #: src/utils.js:401 #, javascript-format msgid "%s mi" msgstr "%s миља" #. Translators: This is a distance measured in feet #: src/utils.js:404 #, javascript-format msgid "%s ft" msgstr "%s стопа" #: src/transitplugins/goMetro.js:61 msgid "This plugin doesn't support latest arrival" msgstr "Овај прикључак не подржава последњи долазак" #: src/transitplugins/openTripPlanner.js:1195 #, javascript-format msgid "Continue on %s" msgstr "Настави ка %s" #: src/transitplugins/openTripPlanner.js:1197 msgid "Continue" msgstr "Настави" #: src/transitplugins/openTripPlanner.js:1200 #, javascript-format msgid "Turn left on %s" msgstr "Скрени лево код %s" #: src/transitplugins/openTripPlanner.js:1202 msgid "Turn left" msgstr "Скрени лево" #: src/transitplugins/openTripPlanner.js:1205 #, javascript-format msgid "Turn slightly left on %s" msgstr "Скрени благо лево код %s" #: src/transitplugins/openTripPlanner.js:1207 msgid "Turn slightly left" msgstr "Скрени благо лево" #: src/transitplugins/openTripPlanner.js:1210 #, javascript-format msgid "Turn sharp left on %s" msgstr "Скрени оштро лево код %s" #: src/transitplugins/openTripPlanner.js:1212 msgid "Turn sharp left" msgstr "Скрени оштро лево" #: src/transitplugins/openTripPlanner.js:1215 #, javascript-format msgid "Turn right on %s" msgstr "Скрени десно код %s" #: src/transitplugins/openTripPlanner.js:1217 msgid "Turn right" msgstr "Скрени десно" #: src/transitplugins/openTripPlanner.js:1220 #, javascript-format msgid "Turn slightly right on %s" msgstr "Скрени благо десно код %s" #: src/transitplugins/openTripPlanner.js:1222 msgid "Turn slightly right" msgstr "Скрени благо десно" #: src/transitplugins/openTripPlanner.js:1225 #, javascript-format msgid "Turn sharp right on %s" msgstr "Скрени оштро десно код %s" #: src/transitplugins/openTripPlanner.js:1227 msgid "Turn sharp right" msgstr "Скрени оштро десно" #: src/transitplugins/openTripPlanner.js:1233 #, javascript-format msgid "At the roundabout, take exit %s" msgstr "На кружном току, изађите на „%s“" #: src/transitplugins/openTripPlanner.js:1235 #, javascript-format msgid "At the roundabout, take exit to %s" msgstr "На кружном току, изађите код „%s“" #: src/transitplugins/openTripPlanner.js:1237 msgid "Take the roundabout" msgstr "Идите на кружни ток" #: src/transitplugins/openTripPlanner.js:1241 #, javascript-format msgid "Take the elevator and get off at %s" msgstr "Уђите у лифт и изађите на спрат %s" #: src/transitplugins/openTripPlanner.js:1243 msgid "Take the elevator" msgstr "Уђите у лифт" #: src/transitplugins/openTripPlanner.js:1247 #, javascript-format msgid "Make a left u-turn onto %s" msgstr "Направите заокрет налево ка %s" #: src/transitplugins/openTripPlanner.js:1249 msgid "Make a left u-turn" msgstr "Направите заокрет налево" #: src/transitplugins/openTripPlanner.js:1252 #, javascript-format msgid "Make a right u-turn onto %s" msgstr "Направите заокрет надесно ка %s" #: src/transitplugins/openTripPlanner.js:1254 msgid "Make a right u-turn" msgstr "Направите заокрет надесно" #~ msgid "Foursquare check-in privacy setting" #~ msgstr "Подешавање провере приватности Форсквера" #~ msgid "" #~ "Latest used Foursquare check-in privacy setting. Possible values are: " #~ "public, followers or private." #~ msgstr "" #~ "Последње подешавање провере приватности Форсквера. Могуће вредности су: " #~ "„public“ (јавно), „followers“ (пратиоци) или „private“ (приватно)." #~ msgid "Foursquare check-in Facebook broadcasting" #~ msgstr "Форскверова провера Фејсбуковог емитовања" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a post in the " #~ "Facebook account associated with the Foursquare account." #~ msgstr "" #~ "Указује да ли Форсквер треба да емитује проверу као објаву у налогу " #~ "Фејсбука придруженог са налогом Форсквера." #~ msgid "Foursquare check-in Twitter broadcasting" #~ msgstr "Форскверова провера Твитеровог емитовања" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a tweet in the " #~ "Twitter account associated with the Foursquare account." #~ msgstr "" #~ "Указује да ли Форсквер треба да емитује проверу као цвркут у налогу " #~ "Твитера придруженог са налогом Форсквера." #~ msgid "Use hybrid aerial tiles" #~ msgstr "Користи хибридне ваздушне плоче" #~ msgid "Whether aerial tiles should use hybrid style (with labels)." #~ msgstr "" #~ "Да ли треба користити ваздушне плоче са хибридним стилом (са етикетама)." #~ msgid "Visibility" #~ msgstr "Видљивост" #~ msgid "Post on Facebook" #~ msgstr "Објави на Фејсбуку" #~ msgid "Post on Twitter" #~ msgstr "Објави на Твитеру" #~ msgid "C_heck in" #~ msgstr "_Провери" #~ msgid "Public" #~ msgstr "Јавно" #~ msgid "Followers" #~ msgstr "Пратиоци" #~ msgid "Private" #~ msgstr "Приватно" #~ msgid "Include route and markers" #~ msgstr "Укључи путеве и маркере" #~ msgid "Show Labels" #~ msgstr "Прикажи етикете" #~ msgid "Maps is offline!" #~ msgstr "Програм је ван мреже!" #~ msgid "" #~ "Maps need an active internet connection to function properly, but one " #~ "can’t be found." #~ msgstr "" #~ "Потребна је радна интернет веза да би програм исправно радио, али није " #~ "доступна." #~ msgid "Check your connection and proxy settings." #~ msgstr "Проверите вашу везу и подешавања посредника." #~ msgid "Email" #~ msgstr "Е-адреса" #~ msgid "Password" #~ msgstr "Лозинка" #~ msgid "" #~ "Sorry, that didn’t work. Please try again, or visit\n" #~ "OpenStreetMap to reset your password." #~ msgstr "" #~ "Нажалост, то није прорадило. Пробајте поново или посетите\n" #~ "OpenStreetMap да бисте опоравили вашу лозинку." #~ msgctxt "dialog title" #~ msgid "Edit on OpenStreetMap" #~ msgstr "Уреди на OpenStreetMap" #~ msgid "Check In…" #~ msgstr "Провери…" #~ msgid "Show more results" #~ msgstr "Прикажите још резултата" #~ msgid "Ignore network availability" #~ msgstr "Занемари доступност мреже" #~ msgid "Select an account" #~ msgstr "Изаберите налог" #~ msgid "Loading" #~ msgstr "Учитавам" #~ msgid "Select a place" #~ msgstr "Изаберите место" #~ msgid "" #~ "Maps cannot find the place to check in to with Foursquare. Please select " #~ "one from this list." #~ msgstr "" #~ "Не могу да нађем место за проверу Форсквером. Изаберите једно са списка." # Мисли се на рецепцију, хотеле. #, javascript-format #~ msgid "Check in to %s" #~ msgstr "Пријави се у „%s“" #, javascript-format #~ msgid "Write an optional message to check in to %s." #~ msgstr "Напишите изборну поруку за рецепцију „%s“." #, javascript-format #~ msgid "Cannot find “%s” in the social service" #~ msgstr "Не могу да нађем „%s“ у друштвеним услугама" #~ msgid "Cannot find a suitable place to check-in in this location" #~ msgstr "Не могу да нађем одговарајуће место за пријаву на овом месту" #~ msgid "" #~ "Credentials have expired, please open Online Accounts to sign in and " #~ "enable this account" #~ msgstr "" #~ "Уверења су истекла, отворите налоге на мрежи да се пријавите и укључите " #~ "овај налог" #~ msgid "A map application for GNOME" #~ msgstr "Гномов програм за карте" #~ msgid "GNOME Maps" #~ msgstr "Гномове карте" #~ msgid "Night mode" #~ msgstr "Ноћни режим" #~ msgid "Whether the application is in night mode." #~ msgstr "Да ли је програм у ноћном режиму." #~ msgid "Night Mode" #~ msgstr "Ноћни режим" #~ msgid "" #~ "You can even search for specific types of locations, such as “Pubs near " #~ "Main Street, Boston” or “Hotels near Alexanderplatz, Berlin”." #~ msgstr "" #~ "Можете чак и да потражите нека посебна места, као што су „Градски паркови " #~ "у Јагодини“ или „Хотели у центру Пирота“." #~ msgid "Facebook check-in privacy setting" #~ msgstr "Подешавање провере приватности Фејсбука" #~ msgid "" #~ "Latest used Facebook check-in privacy setting. Possible values are: " #~ "EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS or SELF." #~ msgstr "" #~ "Последње подешавање провере приватности Фејсбука. Могуће вредности су: " #~ "„EVERYONE“ (свако), „FRIENDS_OF_FRIENDS“ (пријатељи пријатеља), " #~ "„ALL_FRIENDS“ (сви пријатељи) или „SELF“ (сами)." #~ msgid "Everyone" #~ msgstr "Свако" #~ msgid "Friends of friends" #~ msgstr "Пријатељи пријатеља" #~ msgid "Just friends" #~ msgstr "Само пријатељи" #~ msgid "Just me" #~ msgstr "Само ја" #~ msgid "" #~ "Maps cannot find the place to check in to with Facebook. Please select " #~ "one from this list." #~ msgstr "" #~ "Не могу да нађем место за проверу Фејсбуком. Изаберите једно са списка." #~ msgid "Find a Route" #~ msgstr "Нађи пут" #~ msgid "Check in here" #~ msgstr "Проверите овде" #~ msgid "Show more information" #~ msgstr "Прикажи још података" #~ msgid "Population:" #~ msgstr "Број становника:" #~ msgid "Altitude:" #~ msgstr "Висина:" #~ msgid "Opening hours:" #~ msgstr "Радно време:" #~ msgid "Internet access:" #~ msgstr "Приступ интернету:" #~ msgid "Toilets:" #~ msgstr "Тоалети:" #~ msgid "Wheelchair access:" #~ msgstr "Приступ инвалидима:" #~ msgid "Phone:" #~ msgstr "Телефон:" #~ msgid "yes" #~ msgstr "да" #~ msgid "limited" #~ msgstr "ограничено" #~ msgid "no" #~ msgstr "не" #~ msgid "designated" #~ msgstr "намењено" #~ msgid "OpenStreetMap URL is not valid" #~ msgstr "Неисправна OpenStreetMap адреса" #~ msgctxt "time range list" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgctxt "time range list" #~ msgid "%s %s %s" #~ msgstr "%s %s %s" #~ msgctxt "time range component" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgid "wired" #~ msgstr "жичани" #~ msgid "terminal" #~ msgstr "интернет кафе" #~ msgid "service" #~ msgstr "услуга" #~ msgid "Don’t have an account?" #~ msgstr "Немате налог?" #~ msgid "%f h" #~ msgstr "%f ч" #~ msgid "%f min" #~ msgstr "%f мин." #~ msgid "%f s" #~ msgstr "%f сек." #~ msgid "Route search by OpenTripPlanner" #~ msgstr "Претрага руте преко Опен-Трип-Планера" #~ msgid "Add destination" #~ msgstr "Додај одредиште" #~ msgid "org.gnome.Maps" #~ msgstr "org.gnome.Maps" #~ msgid "Open with another application" #~ msgstr "Отворите другим програмом" #~ msgid "Press enter to search" #~ msgstr "Притисните „унеси“ да претражите" #~ msgid "Quit" #~ msgstr "Изађи" #~ msgid "OK" #~ msgstr "У реду" #~ msgid "Open Shape Layer…" #~ msgstr "Отвори слој облика…" #~ msgid "Load Map Layer" #~ msgstr "Учитај слој карте" #~ msgid "Open Layer" #~ msgstr "Отвори слој" #~ msgid "%f km" #~ msgstr "%f km" #~ msgid "%f m" #~ msgstr "%f m" #~ msgid "%f mi" #~ msgstr "%f миља" #~ msgid "%f ft" #~ msgstr "%f стопа" #~ msgid "Position not found" #~ msgstr "Нисам пронашао положај" #~ msgid "Failed to parse GeoJSON file" #~ msgstr "Нисам успео да обрадим Гео-ЈСОН датотеку" #~ msgid "Country code: %s" #~ msgstr "Шифра државе: %s" #~ msgid "Population: %s" #~ msgstr "Становника: %s" #~ msgid "Wheelchair access: %s" #~ msgstr "Приступна рампа: %s" #~ msgid "Last known location and accuracy" #~ msgstr "Последње познато место и прецизност" #~ msgid "" #~ "Last known location (latitude and longitude in degrees) and accuracy (in " #~ "meters)." #~ msgstr "" #~ "Последње познато место корисника (географска ширина и дужина у степенима) " #~ "и прецизност (у метрима)." #~ msgid "Description of last known location of user." #~ msgstr "Опис последњег познатог места корисника." #~ msgid "Whether the last known location was set manually by the user." #~ msgstr "Да ли је корисник ручно подесио последње познато место." #~ msgid "I’m here!" #~ msgstr "Ја сам овде!" #~| msgid " km²" #~ msgid "%f km²" #~ msgstr "%f km²" #~ msgid "Satellite" #~ msgstr "Сателит" #~ msgid " km2" #~ msgstr " km2" 070701000001E6000081A4000000000000000000000001664134090000B7EF000000000000000000000000000000000000002000000000gnome-maps-46.11/po/sr@latin.po# Serbian translation for gnome-maps. # Courtesy of Prevod.org team (http://prevod.org/) -- 2013—2017. # Copyright (C) 2013 gnome-maps's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-maps package. # Miroslav Nikolić , 2013—2017. # Borisav Živanović , 2017. msgid "" msgstr "" "Project-Id-Version: gnome-maps master\n" "Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "maps&keywords=I18N+L10N&component=general\n" "POT-Creation-Date: 2018-02-22 22:22+0000\n" "PO-Revision-Date: 2018-02-16 09:25+0100\n" "Last-Translator: Marko M. Kostić \n" "Language-Team: Serbian <(nothing)>\n" "Language: sr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : n" "%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Project-Style: gnome\n" "X-Generator: Poedit 2.0.3\n" "X-Poedit-Bookmarks: -1,238,-1,-1,-1,-1,-1,-1,-1,-1\n" #: ../data/org.gnome.Maps.appdata.xml.in.h:1 msgid "GNOME Maps" msgstr "Gnomove karte" #: ../data/org.gnome.Maps.appdata.xml.in.h:2 msgid "Find places around the world" msgstr "Nađite mesta širom sveta" #: ../data/org.gnome.Maps.appdata.xml.in.h:3 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "Gnomove Karte vam daju brz pristup kartama širom sveta. Omogućava vam da " "brzo i lako pronađete mesto koje tražite tražeći grad ili ulicu, ili da " "odredite mesto za susret sa prijateljima." #: ../data/org.gnome.Maps.appdata.xml.in.h:4 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "Ovaj program koristi zajedničku bazu podataka „OpenStreetMap“, koju stvaraju " "stotine hiljada ljudi širom sveta." #. Translators: Search is carried out on OpenStreetMap data using Nominatim. #. Visit http://wiki.openstreetmap.org/wiki/Nominatim/Special_Phrases and click #. your language to see what words you can use for the translated search. #: ../data/org.gnome.Maps.appdata.xml.in.h:8 msgid "" "You can even search for specific types of locations, such as “Pubs near Main " "Street, Boston” or “Hotels near Alexanderplatz, Berlin”." msgstr "" "Možete čak i da potražite neka posebna mesta, kao što su „Gradski parkovi u " "Jagodini“ ili „Hoteli u centru Pirota“." #. Translators: This is the program name. #: ../data/org.gnome.Maps.desktop.in.h:1 ../data/ui/main-window.ui.h:1 #: ../src/application.js:85 ../src/mainWindow.js:511 msgid "Maps" msgstr "Karte" #: ../data/org.gnome.Maps.desktop.in.h:2 msgid "A simple maps application" msgstr "Jednostavan program za karte" #: ../data/org.gnome.Maps.desktop.in.h:3 msgid "Maps;" msgstr "Maps;karte;mape;karta;mapa;karte;mape;karta;mapa;" #: ../data/org.gnome.Maps.desktop.in.h:4 msgid "Allows your location to be shown on the map." msgstr "Dozvoljava da se vaša lokacija prikazuje na karti." #: ../data/org.gnome.Maps.gschema.xml.h:1 msgid "last viewed location" msgstr "poslednje pogledano mesto" #: ../data/org.gnome.Maps.gschema.xml.h:2 msgid "Coordinates of last viewed location." msgstr "Koordinate poslednje pogledanog mesta." #: ../data/org.gnome.Maps.gschema.xml.h:3 msgid "Window size" msgstr "Veličina prozora" #: ../data/org.gnome.Maps.gschema.xml.h:4 msgid "Window size (width and height)." msgstr "Veličina prozora (širina i visina)." #: ../data/org.gnome.Maps.gschema.xml.h:5 msgid "Window position" msgstr "Položaj prozora" #: ../data/org.gnome.Maps.gschema.xml.h:6 msgid "Window position (X and Y)." msgstr "Položaj prozora (položeno i uspravno)." #: ../data/org.gnome.Maps.gschema.xml.h:7 msgid "Window maximized" msgstr "Uvećavanje prozora" #: ../data/org.gnome.Maps.gschema.xml.h:8 msgid "Window maximization state" msgstr "Stanje uvećanja prozora" #: ../data/org.gnome.Maps.gschema.xml.h:9 msgid "Maximum number of search results" msgstr "Najveći broj rezultata pretrage" #: ../data/org.gnome.Maps.gschema.xml.h:10 msgid "Maximum number of search results from geocode search." msgstr "Najveći broj rezultata pretrage za pretragu geokoda." #: ../data/org.gnome.Maps.gschema.xml.h:11 msgid "Number of recent places to store" msgstr "Broj skorašnjih mesta za čuvanje" #: ../data/org.gnome.Maps.gschema.xml.h:12 msgid "Number of recently visited places to store." msgstr "Broj nedavno posećenih mesta za čuvanje." #: ../data/org.gnome.Maps.gschema.xml.h:13 msgid "Number of recent routes to store" msgstr "Broj skorašnjih puteva koje treba sačuvati" #: ../data/org.gnome.Maps.gschema.xml.h:14 msgid "Number of recently visited routes to store." msgstr "Broj skoro posećenih puteva koje treba sačuvati." #: ../data/org.gnome.Maps.gschema.xml.h:15 msgid "Facebook check-in privacy setting" msgstr "Podešavanje provere privatnosti Fejsbuka" #. Translators: EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS, and SELF are constant names, and should not be translated #: ../data/org.gnome.Maps.gschema.xml.h:17 msgid "" "Latest used Facebook check-in privacy setting. Possible values are: " "EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS or SELF." msgstr "" "Poslednje podešavanje provere privatnosti Fejsbuka. Moguće vrednosti su: " "„EVERYONE“ (svako), „FRIENDS_OF_FRIENDS“ (prijatelji prijatelja), " "„ALL_FRIENDS“ (svi prijatelji) ili „SELF“ (sami)." #: ../data/org.gnome.Maps.gschema.xml.h:18 msgid "Foursquare check-in privacy setting" msgstr "Podešavanje provere privatnosti Forskvera" #: ../data/org.gnome.Maps.gschema.xml.h:19 msgid "" "Latest used Foursquare check-in privacy setting. Possible values are: " "public, followers or private." msgstr "" "Poslednje podešavanje provere privatnosti Forskvera. Moguće vrednosti su: " "„public“ (javno), „followers“ (pratioci) ili „private“ (privatno)." #: ../data/org.gnome.Maps.gschema.xml.h:20 msgid "Foursquare check-in Facebook broadcasting" msgstr "Forskverova provera Fejsbukovog emitovanja" #: ../data/org.gnome.Maps.gschema.xml.h:21 msgid "" "Indicates if Foursquare should broadcast the check-in as a post in the " "Facebook account associated with the Foursquare account." msgstr "" "Ukazuje da li Forskver treba da emituje proveru kao objavu u nalogu Fejsbuka " "pridruženog sa nalogom Forskvera." #: ../data/org.gnome.Maps.gschema.xml.h:22 msgid "Foursquare check-in Twitter broadcasting" msgstr "Forskverova provera Tviterovog emitovanja" #: ../data/org.gnome.Maps.gschema.xml.h:23 msgid "" "Indicates if Foursquare should broadcast the check-in as a tweet in the " "Twitter account associated with the Foursquare account." msgstr "" "Ukazuje da li Forskver treba da emituje proveru kao cvrkut u nalogu Tvitera " "pridruženog sa nalogom Forskvera." #: ../data/org.gnome.Maps.gschema.xml.h:24 msgid "OpenStreetMap username or e-mail address" msgstr "OpenStreetMap korisničko ime ili e-adresa" #: ../data/org.gnome.Maps.gschema.xml.h:25 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "" "Pokazuje da li je korisnik prijavljen da bi mogao da uređuje OpenStreetMap " "podatke." #: ../data/org.gnome.Maps.gschema.xml.h:26 msgid "Last used transportation type for routing" msgstr "Poslednja vrsta prevoza korišćena za pronalaženje puta" #: ../data/ui/app-menu.ui.h:1 msgid "Set up OpenStreetMap Account" msgstr "Podesi OpenStreetMap nalog" #: ../data/ui/app-menu.ui.h:2 msgid "_Keyboard Shortcuts" msgstr "Prečice na _tastaturi" #: ../data/ui/app-menu.ui.h:3 msgid "About" msgstr "O programu" #: ../data/ui/app-menu.ui.h:4 msgid "Quit" msgstr "Izađi" #: ../data/ui/check-in-dialog.ui.h:1 msgid "Visibility" msgstr "Vidljivost" #: ../data/ui/check-in-dialog.ui.h:2 msgid "Post on Facebook" msgstr "Objavi na Fejsbuku" #: ../data/ui/check-in-dialog.ui.h:3 msgid "Post on Twitter" msgstr "Objavi na Tviteru" #: ../data/ui/check-in-dialog.ui.h:4 ../data/ui/export-view-dialog.ui.h:2 #: ../data/ui/send-to-dialog.ui.h:2 ../data/ui/shape-layer-file-chooser.ui.h:3 msgid "_Cancel" msgstr "_Otkaži" #. Translators: Check in is used as a verb #: ../data/ui/check-in-dialog.ui.h:5 ../data/ui/map-bubble.ui.h:8 msgid "C_heck in" msgstr "_Proveri" #: ../data/ui/check-in-dialog.ui.h:6 msgid "Everyone" msgstr "Svako" #: ../data/ui/check-in-dialog.ui.h:7 msgid "Friends of friends" msgstr "Prijatelji prijatelja" #: ../data/ui/check-in-dialog.ui.h:8 msgid "Just friends" msgstr "Samo prijatelji" #: ../data/ui/check-in-dialog.ui.h:9 msgid "Just me" msgstr "Samo ja" #: ../data/ui/check-in-dialog.ui.h:10 msgid "Public" msgstr "Javno" #: ../data/ui/check-in-dialog.ui.h:11 msgid "Followers" msgstr "Pratioci" #: ../data/ui/check-in-dialog.ui.h:12 msgid "Private" msgstr "Privatno" #: ../data/ui/context-menu.ui.h:1 msgid "What’s here?" msgstr "Šta je to ovde?" #: ../data/ui/context-menu.ui.h:2 msgid "Copy Location" msgstr "Umnožite mesto" #: ../data/ui/context-menu.ui.h:3 msgid "Export As Image" msgstr "Izvezi kao sliku" #: ../data/ui/context-menu.ui.h:4 msgid "Add to OpenStreetMap" msgstr "Dodaj na OpenStreetMap nalog" #: ../data/ui/export-view-dialog.ui.h:1 msgid "Export view" msgstr "Izvezi pregled" #: ../data/ui/export-view-dialog.ui.h:3 msgid "_Export" msgstr "I_zvezi" #: ../data/ui/export-view-dialog.ui.h:4 msgid "Include route and markers" msgstr "Uključi puteve i markere" #: ../data/ui/help-overlay.ui.h:1 msgctxt "shortcut window" msgid "General" msgstr "Opšte" #: ../data/ui/help-overlay.ui.h:2 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "Prikaz prečica" #: ../data/ui/help-overlay.ui.h:3 msgctxt "shortcut window" msgid "Search" msgstr "Pretraga" #: ../data/ui/help-overlay.ui.h:4 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "Pokretanje planiranja puta" #: ../data/ui/help-overlay.ui.h:5 msgctxt "shortcut window" msgid "Print route" msgstr "Štampaj put" #: ../data/ui/help-overlay.ui.h:6 msgctxt "shortcut window" msgid "Quit" msgstr "Izlaz" #: ../data/ui/help-overlay.ui.h:7 msgctxt "shortcut window" msgid "Map View" msgstr "Pregled karte" #: ../data/ui/help-overlay.ui.h:8 msgctxt "shortcut window" msgid "Zoom in" msgstr "Uvećavanje" #: ../data/ui/help-overlay.ui.h:9 msgctxt "shortcut window" msgid "Zoom out" msgstr "Umanjivanje" #: ../data/ui/help-overlay.ui.h:10 msgctxt "shortcut window" msgid "Toggle scale" msgstr "Podešavanje uvećanja" #: ../data/ui/help-overlay.ui.h:11 msgctxt "shortcut window" msgid "Go to current location" msgstr "Odlazak na trenutno mesto" #: ../data/ui/help-overlay.ui.h:12 msgctxt "shortcut window" msgid "Switch to street view" msgstr "Prebaci na pogled sa ulice" #: ../data/ui/help-overlay.ui.h:13 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "Prebaci na pogled iz vazduha" #: ../data/ui/help-overlay.ui.h:14 msgctxt "shortcut window" msgid "Open shape layer" msgstr "Otvori sloj oblika" #. Translators: This string uses ellipsis character #: ../data/ui/layers-popover.ui.h:2 msgid "Open Shape Layer…" msgstr "Otvori sloj oblika…" #: ../data/ui/location-service-notification.ui.h:1 msgid "Turn on location services to find your location" msgstr "Uključite usluge položaja da nađete vaš položaj" #: ../data/ui/location-service-notification.ui.h:2 msgid "Location Settings" msgstr "Podešavanja položaja" #. Translators: This is a tooltip #: ../data/ui/main-window.ui.h:3 msgid "Go to current location" msgstr "Idite na tekuće mesto" #. Translators: This is a tooltip #: ../data/ui/main-window.ui.h:5 msgid "Choose map type" msgstr "Izaberite vrstu karte" #. Translators: This is a tooltip #: ../data/ui/main-window.ui.h:7 msgid "Zoom out" msgstr "Umanji" #. Translators: This is a tooltip #: ../data/ui/main-window.ui.h:9 msgid "Zoom in" msgstr "Uvećaj" #. Translators: This is a tooltip #: ../data/ui/main-window.ui.h:11 msgid "Toggle route planner" msgstr "Prebacite na planiranje puta" #. Translators: This is a tooltip #: ../data/ui/main-window.ui.h:13 msgid "Toggle favorites" msgstr "Prebacite na omiljene" #. Translators: This is a tooltip #: ../data/ui/main-window.ui.h:15 msgid "Print Route" msgstr "Štampaj put" #: ../data/ui/main-window.ui.h:16 msgid "Maps is offline!" msgstr "Program je van mreže!" #: ../data/ui/main-window.ui.h:17 msgid "" "Maps need an active internet connection to function properly, but one can’t " "be found." msgstr "" "Potrebna je radna internet veza da bi program ispravno radio, ali nije " "dostupna." #: ../data/ui/main-window.ui.h:18 msgid "Check your connection and proxy settings." msgstr "Proverite vašu vezu i podešavanja posrednika." #. Translators: This is a tooltip #: ../data/ui/map-bubble.ui.h:2 msgid "Add to new route" msgstr "Dodajte u novi put" #. Translators: This is a tooltip #: ../data/ui/map-bubble.ui.h:4 msgid "Open with another application" msgstr "Otvorite drugim programom" #. Translators: This is a tooltip #: ../data/ui/map-bubble.ui.h:6 msgid "Mark as favorite" msgstr "Označite omiljenim" #. Translators: This is a tooltip #: ../data/ui/map-bubble.ui.h:10 msgid "Check in here" msgstr "Proverite ovde" #: ../data/ui/osm-account-dialog.ui.h:1 msgid "OpenStreetMap Account" msgstr "OpenStreetMap nalog" #: ../data/ui/osm-account-dialog.ui.h:2 msgid "Sign in to edit maps" msgstr "" "Prijavite se da biste menjali karte" #: ../data/ui/osm-account-dialog.ui.h:3 msgid "" "Help to improve the map, using an\n" "OpenStreetMap account." msgstr "" "Poboljšajte kartu koristeći\n" "OpenStreetMap nalog." #: ../data/ui/osm-account-dialog.ui.h:5 msgid "Email" msgstr "E-adresa" #: ../data/ui/osm-account-dialog.ui.h:6 msgid "Password" msgstr "Lozinka" #: ../data/ui/osm-account-dialog.ui.h:7 msgid "Sign In" msgstr "Prijavi me" #: ../data/ui/osm-account-dialog.ui.h:8 msgid "Don’t have an account?" msgstr "Nemate nalog?" #. The label should contain the link to the OSM reset password page with a translated title #: ../data/ui/osm-account-dialog.ui.h:10 msgid "" "Sorry, that didn’t work. Please try again, or visit\n" "OpenStreetMap to reset your password." msgstr "" "Nažalost, to nije proradilo. Probajte ponovo ili posetite\n" "OpenStreetMap da biste oporavili vašu lozinku." #: ../data/ui/osm-account-dialog.ui.h:12 msgid "The verification code didn’t match, please try again." msgstr "Potvrdni kod se ne podudara, probajte ponovo." #: ../data/ui/osm-account-dialog.ui.h:13 msgid "Enter verification code shown above" msgstr "Unesite potvrdni kod prikazan iznad" #: ../data/ui/osm-account-dialog.ui.h:14 msgid "Verify" msgstr "Potvrdi" #: ../data/ui/osm-account-dialog.ui.h:15 msgid "Signed In" msgstr "Prijavljen" #: ../data/ui/osm-account-dialog.ui.h:16 msgid "Your OpenStreetMap account is active." msgstr "Vaš OpenStreetMap nalog je sada aktivan." #: ../data/ui/osm-account-dialog.ui.h:17 msgid "Sign Out" msgstr "Odjavi me" #: ../data/ui/osm-edit-address.ui.h:1 msgid "Street" msgstr "Ulica" #: ../data/ui/osm-edit-address.ui.h:2 msgid "House number" msgstr "Kućni broj" #: ../data/ui/osm-edit-address.ui.h:3 msgid "Postal code" msgstr "Poštanski broj" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: ../data/ui/osm-edit-address.ui.h:5 msgid "City" msgstr "Grad" #: ../data/ui/osm-edit-dialog.ui.h:1 msgid "Type" msgstr "Vrsta" #: ../data/ui/osm-edit-dialog.ui.h:2 msgid "None" msgstr "Ništa" #: ../data/ui/osm-edit-dialog.ui.h:3 msgid "Add Field" msgstr "Dodaj polje" #: ../data/ui/osm-edit-dialog.ui.h:4 msgid "Comment" msgstr "Komentar" #: ../data/ui/osm-edit-dialog.ui.h:5 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "Izmene na karti će biti vidljive na svim kartama\n" "koje koriste podatke sa OpenStreetMap projekta." #: ../data/ui/osm-edit-dialog.ui.h:7 msgid "Recently Used" msgstr "Nedavno korišćeno" #: ../data/ui/osm-edit-dialog.ui.h:8 msgctxt "dialog title" msgid "Edit on OpenStreetMap" msgstr "Uredi na OpenStreetMap" #: ../data/ui/osm-edit-dialog.ui.h:9 msgid "Cancel" msgstr "Otkaži" #: ../data/ui/osm-edit-dialog.ui.h:10 ../src/osmEditDialog.js:512 msgid "Next" msgstr "Sledeće" #. Translators: This is a tooltip #: ../data/ui/place-bubble.ui.h:2 msgid "Edit on OpenStreetMap" msgstr "Uredi na OpenStreetMap" #. Translators: This is a tooltip #: ../data/ui/place-bubble.ui.h:4 msgid "Show more information" msgstr "Prikaži još podataka" #: ../data/ui/place-popover.ui.h:1 msgid "Press enter to search" msgstr "Pritisnite „unesi“ da pretražite" #: ../data/ui/place-popover.ui.h:2 msgid "No results found" msgstr "Nema rezultata" #. Translators: This is a tooltip #: ../data/ui/route-entry.ui.h:2 msgid "Drag to change order of the route" msgstr "Prevuci da bi promenio redosled puta" #: ../data/ui/send-to-dialog.ui.h:1 msgid "Open location" msgstr "Otvorite mesto" #: ../data/ui/send-to-dialog.ui.h:3 ../data/ui/shape-layer-file-chooser.ui.h:2 msgid "_Open" msgstr "_Otvori" #: ../data/ui/shape-layer-file-chooser.ui.h:1 ../src/mainWindow.js:62 msgid "Open Shape Layer" msgstr "Otvori sloj oblika" #. Translators: This is a tooltip #: ../data/ui/shape-layer-row.ui.h:2 msgid "Toggle visible" msgstr "Podesi vidljivost" #: ../data/ui/sidebar.ui.h:1 msgid "Route search by GraphHopper" msgstr "Pretraga rute Graf Hoperom" #: ../data/ui/sidebar.ui.h:2 msgid "Route search by OpenTripPlanner" msgstr "Pretraga rute preko Open-Trip-Planera" #: ../data/ui/sidebar.ui.h:3 msgid "" "Routing itineraries for public transit is provided by GNOME\n" "using timetable data obtained from transit companies or agencies.\n" "The companies and agencies can not be held responsible for the results " "shown.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" "Maršrute javnog prevoza omogućuje Gnom korišćenjem\n" "redova vožnji nabavljenih od prevoznika ili agencija.\n" "Ove firme i agencije se ne mogu smatrati odgovornim za prikazane rezultate.\n" "Gnom ne može jemčiti za tačnost prikazanih maršruta i zakazanih polazaka.\n" "Prikazani nazivi i robne marke se trebaju smatrati registrovanim robnim " "markama\n" "gde je to moguće." #: ../data/ui/social-place-more-results-row.ui.h:1 msgid "Show more results" msgstr "Prikažite još rezultata" #. Translators: This is a tooltip #: ../data/ui/transit-leg-row.ui.h:2 msgid "Hide intermediate stops and information" msgstr "Sakrij stanice i podatke na maršruti" #. Translators: This is a tooltip #: ../data/ui/transit-leg-row.ui.h:4 msgid "Show intermediate stops and information" msgstr "Prikaži stanice i podatke na maršruti" #. Indicates searching for the next available itineraries #: ../data/ui/transit-options-panel.ui.h:2 msgid "Leave Now" msgstr "Polazi sada" #. Indicates searching for itineraries leaving at the specified time at the earliest #: ../data/ui/transit-options-panel.ui.h:4 msgid "Leave By" msgstr "Polazi u" #. Indicates searching for itineraries arriving no later than the specified time #: ../data/ui/transit-options-panel.ui.h:6 msgid "Arrive By" msgstr "Dolazi u" #. Header indicating selected modes of transit #: ../data/ui/transit-options-panel.ui.h:8 msgid "Show" msgstr "Prikaži" #: ../data/ui/transit-options-panel.ui.h:9 msgid "Buses" msgstr "Autobusi" #: ../data/ui/transit-options-panel.ui.h:10 msgid "Trams" msgstr "Tramvaji" #: ../data/ui/transit-options-panel.ui.h:11 msgid "Trains" msgstr "Vozovi" #: ../data/ui/transit-options-panel.ui.h:12 msgid "Subway" msgstr "Podzemna" #: ../data/ui/transit-options-panel.ui.h:13 msgid "Ferries" msgstr "Trajekti" #: ../data/ui/user-location-bubble.ui.h:1 ../src/geoclue.js:118 msgid "Current location" msgstr "Trenutni položaj" #. To translators: %s can be "Unknown", "Exact" or "%f km²" #: ../data/ui/user-location-bubble.ui.h:4 #, no-c-format msgid "Accuracy: %s" msgstr "Tačnost: %s" #: ../data/ui/zoom-in-notification.ui.h:1 msgid "Zoom in to add location!" msgstr "Uvećaj za dodavanje lokacije!" #: ../data/ui/zoom-in-notification.ui.h:2 msgid "OK" msgstr "U redu" #: ../lib/maps-file-tile-source.c:303 ../lib/maps-file-tile-source.c:379 #: ../lib/maps-file-tile-source.c:459 msgid "Failed to find tile structure in directory" msgstr "Neuspeh pri traženju strukture pločica u fascikli" #: ../lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "Nisam uspeo da obradim IksML dokument" #: ../lib/maps-osm.c:252 ../lib/maps-osm.c:405 msgid "Missing required attributes" msgstr "Nedostaju potrebne osobine" #: ../lib/maps-osm.c:453 msgid "Could not find OSM element" msgstr "Nisam mogao da nađem OSM element" #: ../src/application.js:98 msgid "A path to a local tiles directory structure" msgstr "Putanja do lokalne fascikle sa strukturom pločica" #: ../src/application.js:102 msgid "Show the version of the program" msgstr "Prikaži izdanje programa" #: ../src/checkInDialog.js:167 msgid "Select an account" msgstr "Izaberite nalog" #: ../src/checkInDialog.js:172 ../src/checkInDialog.js:244 msgid "Loading" msgstr "Učitavam" #: ../src/checkInDialog.js:196 msgid "Select a place" msgstr "Izaberite mesto" #: ../src/checkInDialog.js:201 msgid "" "Maps cannot find the place to check in to with Facebook. Please select one " "from this list." msgstr "" "Ne mogu da nađem mesto za proveru Fejsbukom. Izaberite jedno sa spiska." #: ../src/checkInDialog.js:203 msgid "" "Maps cannot find the place to check in to with Foursquare. Please select one " "from this list." msgstr "" "Ne mogu da nađem mesto za proveru Forskverom. Izaberite jedno sa spiska." # Misli se na recepciju, hotele. #. Translators: %s is the name of the place to check in. #. #: ../src/checkInDialog.js:218 #, javascript-format msgid "Check in to %s" msgstr "Prijavi se u „%s“" #. Translators: %s is the name of the place to check in. #. #: ../src/checkInDialog.js:228 #, javascript-format msgid "Write an optional message to check in to %s." msgstr "Napišite izbornu poruku za recepciju „%s“." #: ../src/checkInDialog.js:280 ../src/checkIn.js:162 #: ../src/osmEditDialog.js:549 msgid "An error has occurred" msgstr "Došlo je do greške" #. Translators: %s is the place name that user wanted to check-in #: ../src/checkIn.js:144 #, javascript-format msgid "Cannot find “%s” in the social service" msgstr "Ne mogu da nađem „%s“ u društvenim uslugama" #: ../src/checkIn.js:146 msgid "Cannot find a suitable place to check-in in this location" msgstr "Ne mogu da nađem odgovarajuće mesto za prijavu na ovom mestu" #: ../src/checkIn.js:150 msgid "" "Credentials have expired, please open Online Accounts to sign in and enable " "this account" msgstr "" "Uverenja su istekla, otvorite naloge na mreži da se prijavite i uključite ovaj " "nalog" #: ../src/contextMenu.js:95 msgid "Route from here" msgstr "Put odavde" #: ../src/contextMenu.js:97 msgid "Add destination" msgstr "Dodaj odredište" #: ../src/contextMenu.js:99 msgid "Route to here" msgstr "Put dovde" #: ../src/contextMenu.js:128 msgid "Nothing found here!" msgstr "Ništa nije nađeno ovde!" #: ../src/contextMenu.js:185 msgid "" "Location was added to the map, note that it may take a while before it shows " "on the map and in search results." msgstr "" "Lokacija je dodata na kartu. Znajte da će trebati malo vremena pre nego što " "se pojavi na karti i u rezultatima pretrage." #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: ../src/exportViewDialog.js:82 #, javascript-format msgid "Maps at %f, %f.png" msgstr "Karta na %f, %f.png" #: ../src/exportViewDialog.js:154 msgid "Filesystem is read only" msgstr "Sistem datoteka je samo za čitanje" #: ../src/exportViewDialog.js:156 msgid "You do not have permission to save there" msgstr "Nemate ovlašćenje da sačuvate tu" #: ../src/exportViewDialog.js:158 msgid "The directory does not exist" msgstr "Direktorijum ne postoji" #: ../src/exportViewDialog.js:160 msgid "No filename specified" msgstr "Nije navedeno ime datoteke" #: ../src/exportViewDialog.js:168 msgid "Unable to export view" msgstr "Ne mogu da izvezem pregled" #: ../src/geoJSONSource.js:98 msgid "invalid coordinate" msgstr "neispravna koordinata" #: ../src/geoJSONSource.js:147 ../src/geoJSONSource.js:187 #: ../src/geoJSONSource.js:202 msgid "parse error" msgstr "greška u obrađivanju" #: ../src/geoJSONSource.js:181 msgid "unknown geometry" msgstr "nepoznata geometrija" #: ../src/graphHopper.js:89 ../src/openTripPlanner.js:656 msgid "Route request failed." msgstr "Zahtev puta nije uspeo." #: ../src/graphHopper.js:97 ../src/openTripPlanner.js:619 msgid "No route found." msgstr "Nisam pronašao put." #: ../src/graphHopper.js:189 msgid "Start!" msgstr "Kreni!" #: ../src/mainWindow.js:59 msgid "All Layer Files" msgstr "Sve datoteke sloja" #: ../src/mainWindow.js:452 msgid "Failed to connect to location service" msgstr "Nisam uspeo da se povežem na uslugu položaja" #: ../src/mainWindow.js:509 msgid "translator-credits" msgstr "" "Miroslav Nikolić \n" "Marko M. Kostić \n" "Borisav Živanović \n" "\n" "http://prevod.org — prevod na srpski jezik" #: ../src/mainWindow.js:512 msgid "A map application for GNOME" msgstr "Gnomov program za karte" #: ../src/mainWindow.js:523 msgid "Copyright © 2011 – 2017 Red Hat, Inc. and The GNOME Maps authors" msgstr "Pravo na kopiranje © 2011 – 2017 Red Hat, Inc. i tvorci Gnomovih Karti" #: ../src/mainWindow.js:542 #, javascript-format msgid "Map data by %s and contributors" msgstr "Podaci o kartama sa platforme %s i od doprinosilaca" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: ../src/mainWindow.js:558 #, javascript-format msgid "Map tiles provided by %s" msgstr "Pločice za kartu su preuzete sa %s" #: ../src/mapView.js:350 msgid "File type is not supported" msgstr "Vrsta datoteke nije podržana" #: ../src/mapView.js:357 msgid "Failed to open layer" msgstr "Nisam uspeo da otvorim sloj" #: ../src/mapView.js:393 msgid "Failed to open GeoURI" msgstr "Nisam uspeo da otvorim Geo-URI" #: ../src/openTripPlanner.js:613 msgid "No earlier alternatives found." msgstr "Nisam uspeo da nađem ranije alternative." #: ../src/openTripPlanner.js:614 msgid "No later alternatives found." msgstr "Nisam uspeo da nađem starije alternative." #: ../src/openTripPlanner.js:652 msgid "No timetable data found for this route." msgstr "Nema redova vožnji za ovu rutu." #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: ../src/osmConnection.js:436 msgid "Incorrect user name or password" msgstr "Neispravno korisničko ime ili lozinka" #: ../src/osmConnection.js:438 msgid "Success" msgstr "Uspeh" #: ../src/osmConnection.js:440 msgid "Bad request" msgstr "Loš zahtev" #: ../src/osmConnection.js:442 msgid "Object not found" msgstr "Objekat nije nađen" #: ../src/osmConnection.js:444 msgid "Conflict, someone else has just modified the object" msgstr "Sukob, neko drugi je upravo izmenio objekat" #: ../src/osmConnection.js:446 msgid "Object has been deleted" msgstr "Objekat je obrisan" #: ../src/osmConnection.js:448 msgid "Way or relation refers to non-existing children" msgstr "Put ili relacija se odnosi na nepostojeće dete" #: ../src/osmEditDialog.js:105 msgid "Name" msgstr "Naziv" #: ../src/osmEditDialog.js:108 msgid "The official name. This is typically what appears on signs." msgstr "Zvanični naziv. Obično naziv koji se nalazi na saobraćajnim znakovima." #: ../src/osmEditDialog.js:111 msgid "Address" msgstr "Adresa" #: ../src/osmEditDialog.js:119 msgid "Website" msgstr "Veb stranica" #: ../src/osmEditDialog.js:122 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" "Zvanična veb stranica. Probajte da unesete najosnovniji oblik adrese. Na " "primer: „http://primer.rs“ umesto „http://primer.rs/pocetna.html“." #: ../src/osmEditDialog.js:127 msgid "Phone" msgstr "Telefon" #: ../src/osmEditDialog.js:131 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" "Broj telefona. Koristite međunarodni format gde broj počinje sa plus znakom. " "Obratite pažnju na lokalne zakone o zaštiti privatnosti, naročito ako su u " "pitanju privatni brojevi telefona." #: ../src/osmEditDialog.js:136 ../src/placeBubble.js:173 msgid "Wikipedia" msgstr "Vikipedija" #: ../src/osmEditDialog.js:140 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "" "Korišćeni format treba da sadrži oznaku jezika i naslov članka. Na primer: " "„sr:Naslov članka“." #: ../src/osmEditDialog.js:144 msgid "Opening hours" msgstr "Radno vreme" #: ../src/osmEditDialog.js:149 msgid "See the link in the label for help on format." msgstr "Pogledajte vezu u etiketi za više podataka o formatu." #: ../src/osmEditDialog.js:152 msgid "Population" msgstr "Stanovništvo" #: ../src/osmEditDialog.js:157 msgid "Altitude" msgstr "Visina" # Mi ne moramo da pišemo "(height above sea lever)" jer sama reč „nadmorska visina“ opisuje da je u pitanju visina iznad mora. :) #: ../src/osmEditDialog.js:160 msgid "Elevation (height above sea level) of a point in metres." msgstr "Nadmorska visina tačke u metrima." #: ../src/osmEditDialog.js:163 msgid "Wheelchair access" msgstr "Pristup invalidima" #: ../src/osmEditDialog.js:166 ../src/osmEditDialog.js:175 #: ../src/osmEditDialog.js:213 msgid "Yes" msgstr "da" #: ../src/osmEditDialog.js:167 ../src/osmEditDialog.js:176 #: ../src/osmEditDialog.js:214 msgid "No" msgstr "Ne" #: ../src/osmEditDialog.js:168 msgid "Limited" msgstr "ograničen" #: ../src/osmEditDialog.js:169 msgid "Designated" msgstr "namenjeno" #: ../src/osmEditDialog.js:172 msgid "Internet access" msgstr "Pristup internetu" #. Translators: #. * This means a WLAN Hotspot, also know as wireless, wifi or Wi-Fi. #. #: ../src/osmEditDialog.js:177 ../src/translations.js:340 msgid "Wi-Fi" msgstr "Bežični" #: ../src/osmEditDialog.js:178 msgid "Wired" msgstr "Žičani" #: ../src/osmEditDialog.js:179 msgid "Terminal" msgstr "Internet kafe" #: ../src/osmEditDialog.js:180 msgid "Service" msgstr "Usluga" #: ../src/osmEditDialog.js:183 msgid "Religion" msgstr "Veroispovest" #: ../src/osmEditDialog.js:186 ../src/translations.js:363 msgid "Animism" msgstr "Animizam" #: ../src/osmEditDialog.js:187 msgid "Bahá’í" msgstr "Bahaizam" #: ../src/osmEditDialog.js:188 ../src/translations.js:365 msgid "Buddhism" msgstr "Budizam" #: ../src/osmEditDialog.js:189 ../src/translations.js:366 msgid "Caodaism" msgstr "Kaodaizam" #: ../src/osmEditDialog.js:190 ../src/translations.js:367 msgid "Christianity" msgstr "Hrišćanstvo" #: ../src/osmEditDialog.js:191 ../src/translations.js:368 msgid "Confucianism" msgstr "Konfučijanstvo" #: ../src/osmEditDialog.js:192 ../src/translations.js:369 msgid "Hinduism" msgstr "Hinduizam" #: ../src/osmEditDialog.js:193 ../src/translations.js:370 msgid "Jainism" msgstr "Đainizam" #: ../src/osmEditDialog.js:194 ../src/translations.js:371 msgid "Judaism" msgstr "Judaizam" #: ../src/osmEditDialog.js:195 ../src/translations.js:372 msgid "Islam" msgstr "Islam" #: ../src/osmEditDialog.js:196 ../src/translations.js:373 msgid "Multiple Religions" msgstr "Višestruke veroispovesti" #: ../src/osmEditDialog.js:197 ../src/translations.js:374 msgid "Paganism" msgstr "Paganizam" #: ../src/osmEditDialog.js:198 ../src/translations.js:375 msgid "Pastafarianism" msgstr "Pastafarijanizam" #: ../src/osmEditDialog.js:199 ../src/translations.js:376 msgid "Scientology" msgstr "Sajentologija" #: ../src/osmEditDialog.js:200 ../src/translations.js:377 msgid "Shinto" msgstr "Šintoizam" #: ../src/osmEditDialog.js:201 ../src/translations.js:378 msgid "Sikhism" msgstr "Sikizam" #: ../src/osmEditDialog.js:202 ../src/translations.js:379 msgid "Spiritualism" msgstr "Spiritualizam" #: ../src/osmEditDialog.js:203 ../src/translations.js:380 msgid "Taoism" msgstr "Taoizam" #: ../src/osmEditDialog.js:204 ../src/translations.js:381 msgid "Unitarian Universalism" msgstr "Unitarni univerzalizam" #: ../src/osmEditDialog.js:205 ../src/translations.js:382 msgid "Voodoo" msgstr "Vudu" #: ../src/osmEditDialog.js:206 ../src/translations.js:383 msgid "Yazidism" msgstr "Jezidizam" #: ../src/osmEditDialog.js:207 ../src/translations.js:384 msgid "Zoroastrianism" msgstr "Zoroastizam" #: ../src/osmEditDialog.js:210 msgid "Toilets" msgstr "Toaleti" #: ../src/osmEditDialog.js:217 msgid "Note" msgstr "Beleška" #: ../src/osmEditDialog.js:220 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" "Podaci za obaveštavanje drugih kartografa o manje očiglednim podacima o " "elementu, nameri autora prilikom stvaranja ili o savetima za buduća poboljšanja." #: ../src/osmEditDialog.js:325 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "Dodaj na OpenStreetMap" #: ../src/osmEditDialog.js:379 msgid "Select Type" msgstr "Izaberi vrstu" #: ../src/osmEditDialog.js:496 msgid "Done" msgstr "Gotovo" #: ../src/placeBubble.js:125 msgid "Population:" msgstr "Broj stanovnika:" #: ../src/placeBubble.js:131 msgid "Altitude:" msgstr "Visina:" #: ../src/placeBubble.js:136 msgid "Opening hours:" msgstr "Radno vreme:" #: ../src/placeBubble.js:141 msgid "Internet access:" msgstr "Pristup internetu:" #: ../src/placeBubble.js:146 msgid "Religion:" msgstr "Veroispovest:" #: ../src/placeBubble.js:151 msgid "Toilets:" msgstr "Toaleti:" #: ../src/placeBubble.js:156 msgid "Wheelchair access:" msgstr "Pristup invalidima:" #: ../src/placeBubble.js:162 ../src/placeBubble.js:166 msgid "Phone:" msgstr "Telefon:" #: ../src/placeEntry.js:186 msgid "Failed to parse Geo URI" msgstr "Neuspeh pri obradi Geo putanje" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: ../src/place.js:218 ../src/translations.js:329 ../src/translations.js:391 msgid "yes" msgstr "da" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: ../src/place.js:225 msgid "limited" msgstr "ograničeno" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: ../src/place.js:231 ../src/translations.js:335 ../src/translations.js:392 msgid "no" msgstr "ne" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: ../src/place.js:238 msgid "designated" msgstr "namenjeno" #: ../src/printLayout.js:240 #, javascript-format msgid "From %s to %s" msgstr "Od %s do %s" #: ../src/printOperation.js:46 msgid "Loading map tiles for printing" msgstr "Učitavam pločice karte za štampanje" #: ../src/printOperation.js:47 msgid "You can abort printing if this takes too long" msgstr "Možete prekinuti štampanje ako ovo potraje" #: ../src/printOperation.js:49 msgid "Abort printing" msgstr "Prekini štampanje" #. Translators: this is add via location tooltip #: ../src/routeEntry.js:72 msgid "Add via location" msgstr "Dodaj preko mesta" #. Translators: this is remove via location tooltip #: ../src/routeEntry.js:78 msgid "Remove via location" msgstr "Ukloni preko mesta" #. Translators: this is reverse route tooltip #: ../src/routeEntry.js:84 msgid "Reverse route" msgstr "Obrni put" #: ../src/sendToDialog.js:176 msgid "Failed to open URI" msgstr "Nisam uspeo da otvorim putanju" #: ../src/shapeLayer.js:91 msgid "failed to load file" msgstr "nisam uspeo da učitam datoteku" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: ../src/sidebar.js:292 #, javascript-format msgid "Estimated time: %s" msgstr "Procenjeno vreme: %s" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: ../src/transitArrivalRow.js:54 #, javascript-format msgid "Arrive at %s" msgstr "Dolazi u %s" #: ../src/transitArrivalRow.js:56 msgid "Arrive" msgstr "Dolazi" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: ../src/transitLegRow.js:71 #, javascript-format msgid "Start at %s" msgstr "Kreće u %s" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: ../src/transitLegRow.js:77 msgid "Start" msgstr "Kreni" #: ../src/transitLegRow.js:106 msgid "Show walking instructions" msgstr "Prikaži uputstva za pešačenje" #: ../src/transitLegRow.js:107 msgid "Hide walking instructions" msgstr "Sakrij uputstva za pešačenje" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: ../src/transitLegRow.js:132 #, javascript-format msgid "Walk %s" msgstr "Pešačite %s" #: ../src/transitMoreRow.js:39 msgid "Load earlier alternatives" msgstr "Učitaj ranije alternative" #: ../src/transitMoreRow.js:41 msgid "Load later alternatives" msgstr "Učitaj starije alternative" #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: ../src/transitOptionsPanel.js:141 msgctxt "month-day-date" msgid "%b %e" msgstr "%e. %b" #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: ../src/transitPlan.js:249 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: ../src/transitPlan.js:276 #, javascript-format msgid "%d minute" msgid_plural "%d minutes" msgstr[0] "%d minut" msgstr[1] "%d minuta" msgstr[2] "%d minuta" msgstr[3] "%d minut" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: ../src/transitPlan.js:287 #, javascript-format msgid "%d hour" msgid_plural "%d hours" msgstr[0] "%d sat" msgstr[1] "%d sata" msgstr[2] "%d sati" msgstr[3] "%d sat" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: ../src/transitPlan.js:293 #, javascript-format msgid "%d:%02d hour" msgid_plural "%d:%02d hours" msgstr[0] "%d:%02d sat" msgstr[1] "%d:%02d sata" msgstr[2] "%d:%02d sati" msgstr[3] "%d:%02d sat" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: ../src/transitPlan.js:642 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: ../src/translations.js:56 msgid "around the clock" msgstr "u vremenu" #: ../src/translations.js:58 msgid "from sunrise to sunset" msgstr "od jutra do večeri" #. Translators: #. * This is a format string with two separate time ranges #. * such as "Mo-Fr 10:00-19:00 Sa 12:00-16:00" #. * The space between the format place holders could be #. * substituted with the appropriate separator. #. #: ../src/translations.js:77 #, javascript-format msgctxt "time range list" msgid "%s %s" msgstr "%s %s" #. Translators: #. * This is a format string with three separate time ranges #. * such as "Mo-Fr 10:00-19:00 Sa 10:00-17:00 Su 12:00-16:00" #. * The space between the format place holders could be #. * substituted with the appropriate separator. #. #: ../src/translations.js:89 #, javascript-format msgctxt "time range list" msgid "%s %s %s" msgstr "%s %s %s" #. Translators: #. * This is a format string consisting of a part specifying the days for #. * which the specified time is applied and the time interval #. * specification as the second argument. #. * The space between the format place holders could be substituted with #. * the appropriate separator or phrase and the ordering of the arguments #. * can be rearranged with the %n#s syntax. #: ../src/translations.js:120 #, javascript-format msgctxt "time range component" msgid "%s %s" msgstr "%s %s" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: ../src/translations.js:152 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s, %s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: ../src/translations.js:166 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s, %s, %s" #: ../src/translations.js:185 msgid "every day" msgstr "svakog dana" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: ../src/translations.js:197 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s—%s" #: ../src/translations.js:208 msgid "public holidays" msgstr "javni praznici" #: ../src/translations.js:210 msgid "school holidays" msgstr "školski praznici" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: ../src/translations.js:250 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: ../src/translations.js:264 msgid "not open" msgstr "nije otvoreno" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: ../src/translations.js:279 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s—%s" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: ../src/translations.js:345 msgid "wired" msgstr "žičani" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: ../src/translations.js:350 msgid "terminal" msgstr "internet kafe" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: ../src/translations.js:355 msgid "service" msgstr "usluga" #. Translators: Accuracy of user location information #: ../src/utils.js:226 msgid "Unknown" msgstr "Nepoznato" #. Translators: Accuracy of user location information #: ../src/utils.js:229 msgid "Exact" msgstr "Tačno" #: ../src/utils.js:287 #, javascript-format msgid "%f h" msgstr "%f č" #: ../src/utils.js:289 #, javascript-format msgid "%f min" msgstr "%f min." #: ../src/utils.js:291 #, javascript-format msgid "%f s" msgstr "%f sek." #. Translators: This is a distance measured in kilometers #: ../src/utils.js:302 #, javascript-format msgid "%s km" msgstr "%s kilometara" #. Translators: This is a distance measured in meters #: ../src/utils.js:305 #, javascript-format msgid "%s m" msgstr "%s metara" #. Translators: This is a distance measured in miles #: ../src/utils.js:313 #, javascript-format msgid "%s mi" msgstr "%s milja" #. Translators: This is a distance measured in feet #: ../src/utils.js:316 #, javascript-format msgid "%s ft" msgstr "%s stopa" #~ msgid "Load Map Layer" #~ msgstr "Učitaj sloj karte" #~ msgid "Open Layer" #~ msgstr "Otvori sloj" #~ msgid "%f km" #~ msgstr "%f km" #~ msgid "%f m" #~ msgstr "%f m" #~ msgid "%f mi" #~ msgstr "%f milja" #~ msgid "%f ft" #~ msgstr "%f stopa" #~ msgid "Position not found" #~ msgstr "Nisam pronašao položaj" #~ msgid "Failed to parse GeoJSON file" #~ msgstr "Nisam uspeo da obradim Geo-JSON datoteku" #~ msgid "Country code: %s" #~ msgstr "Šifra države: %s" #~ msgid "Population: %s" #~ msgstr "Stanovnika: %s" #~ msgid "Wheelchair access: %s" #~ msgstr "Pristupna rampa: %s" #~ msgid "Last known location and accuracy" #~ msgstr "Poslednje poznato mesto i preciznost" #~ msgid "" #~ "Last known location (latitude and longitude in degrees) and accuracy (in " #~ "meters)." #~ msgstr "" #~ "Poslednje poznato mesto korisnika (geografska širina i dužina u stepenima) " #~ "i preciznost (u metrima)." #~ msgid "Description of last known location of user." #~ msgstr "Opis poslednjeg poznatog mesta korisnika." #~ msgid "Whether the last known location was set manually by the user." #~ msgstr "Da li je korisnik ručno podesio poslednje poznato mesto." #~ msgid "I’m here!" #~ msgstr "Ja sam ovde!" #~| msgid " km²" #~ msgid "%f km²" #~ msgstr "%f km²" #~ msgid "Satellite" #~ msgstr "Satelit" #~ msgid " km2" #~ msgstr " km2" 070701000001E7000081A4000000000000000000000001664134090001052D000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/sv.po# Swedish translations for gnome-maps package # Svenska översättningar för paketet gnome-maps. # Copyright © 2013-2024 gnome-maps's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-maps package. # Marcus Lundblad , 2013. # Sebastian Rasmussen , 2015, 2016. # Anders Jonsson , 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024. # Luna Jernberg , 2021. # msgid "" msgstr "" "Project-Id-Version: gnome-maps master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2024-03-02 08:18+0000\n" "PO-Revision-Date: 2024-03-03 15:31+0100\n" "Last-Translator: Anders Jonsson \n" "Language-Team: Swedish \n" "Language: sv\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: Poedit 3.4.2\n" #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.appdata.xml.in.in:6 data/org.gnome.Maps.desktop.in.in:4 #: data/ui/main-window.ui:27 src/application.js:64 src/mainWindow.js:147 #: src/mainWindow.js:647 msgid "Maps" msgstr "Kartor" #: data/org.gnome.Maps.appdata.xml.in.in:7 msgid "Find places around the world" msgstr "Hitta platser i världen" #: data/org.gnome.Maps.appdata.xml.in.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "Kartor ger dig snabb tillgång till kartor över hela världen. Det låter dig " "hitta platsen du letar efter genom att söka efter en stad eller gata eller " "finna ett ställe att möta en vän på." #: data/org.gnome.Maps.appdata.xml.in.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "Kartor använder kartdatabasen OpenStreetMap, skapad genom samarbete av flera " "hundratusentals personer över hela världen." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Maps.appdata.xml.in.in:458 src/mainWindow.js:644 msgid "The GNOME Project" msgstr "GNOME-projektet" #: data/org.gnome.Maps.desktop.in.in:5 msgid "A simple maps application" msgstr "Ett enkelt kartprogram" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in.in:14 msgid "Maps;" msgstr "Kartor;" #: data/org.gnome.Maps.desktop.in.in:17 msgid "Allows your location to be shown on the map." msgstr "Tillåter att din plats visas på kartan." #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "senaste visade plats" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "Koordinater för senast visade plats." #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "zoom" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "Zoomnivå" #: data/org.gnome.Maps.gschema.xml:21 msgid "rotation" msgstr "rotation" #: data/org.gnome.Maps.gschema.xml:22 msgid "Map rotation in radians" msgstr "Kartrotation i radianer" #: data/org.gnome.Maps.gschema.xml:26 msgid "Map type" msgstr "Karttyp" #: data/org.gnome.Maps.gschema.xml:27 msgid "The type of map to display (street, aerial, etc.)" msgstr "Typen av karta att visa (vägkarta, flygfoto o.s.v.)" #: data/org.gnome.Maps.gschema.xml:31 msgid "Window size" msgstr "Fönsterstorlek" #: data/org.gnome.Maps.gschema.xml:32 msgid "Window size (width and height)." msgstr "Fönsterstorlek (bredd och höjd)." #: data/org.gnome.Maps.gschema.xml:36 msgid "Window position" msgstr "Fönsterposition" #: data/org.gnome.Maps.gschema.xml:37 msgid "Window position (X and Y)." msgstr "Fönsterposition (X och Y)." #: data/org.gnome.Maps.gschema.xml:41 msgid "Window maximized" msgstr "Fönster maximerat" #: data/org.gnome.Maps.gschema.xml:42 msgid "Window maximization state" msgstr "Tillstånd för maximerat fönster" #: data/org.gnome.Maps.gschema.xml:46 msgid "Maximum number of search results" msgstr "Maximalt antal sökresultat" #: data/org.gnome.Maps.gschema.xml:47 msgid "Maximum number of search results from geocode search." msgstr "Maximalt antal sökresultat från geocode-sökning." #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent places to store" msgstr "Antal senaste platser att lagra" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited places to store." msgstr "Antal senast besökta platser att lagra." #: data/org.gnome.Maps.gschema.xml:56 msgid "Number of recent routes to store" msgstr "Antal senaste rutter att lagra" #: data/org.gnome.Maps.gschema.xml:57 msgid "Number of recently visited routes to store." msgstr "Antal senast besökta rutter att lagra." #: data/org.gnome.Maps.gschema.xml:61 msgid "OpenStreetMap username or email address" msgstr "Användarnamn hos OpenStreetMap eller e-postadress" #: data/org.gnome.Maps.gschema.xml:62 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "" "Indikerar om användaren har loggat in för att redigera OpenStreetMap-data." #: data/org.gnome.Maps.gschema.xml:66 msgid "Last used transportation type for routing" msgstr "Senaste transporttyp för rutter" #: data/org.gnome.Maps.gschema.xml:70 msgid "Show scale" msgstr "Visa skala" #: data/org.gnome.Maps.gschema.xml:71 msgid "Whether to show the scale." msgstr "Huruvida skalan ska visas." #: data/ui/context-menu.ui:6 msgid "Route from Here" msgstr "Rutt härifrån" #: data/ui/context-menu.ui:10 msgid "Add Intermediate Destination" msgstr "Lägg till mellanliggande stopp" #: data/ui/context-menu.ui:14 msgid "Route to Here" msgstr "Rutt hit" #: data/ui/context-menu.ui:20 msgid "What's Here?" msgstr "Vad finns här?" #: data/ui/context-menu.ui:24 msgid "Copy Location" msgstr "Kopiera plats" #: data/ui/context-menu.ui:28 msgid "Add to OpenStreetMap…" msgstr "Lägg till i OpenStreetMap…" #: data/ui/export-view-dialog.ui:7 msgid "Export view" msgstr "Exportera vy" #: data/ui/export-view-dialog.ui:16 data/ui/send-to-dialog.ui:10 #: data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "_Avbryt" #: data/ui/export-view-dialog.ui:26 msgid "_Export" msgstr "_Exportera" #. Translators: This is a tooltip #: data/ui/favorite-list-row.ui:72 msgid "Remove Favorite" msgstr "Ta bort favorit" #: data/ui/favorites-popover.ui:11 msgid "No Favorites" msgstr "Inga favoriter" #: data/ui/favorites-popover.ui:12 msgid "Add places to your favorites to get them listed here" msgstr "Lägg till platser till dina favoriter för att lista dem här" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:11 src/geoclue.js:106 msgid "Current Location" msgstr "Aktuell plats" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:19 msgid "Layers" msgstr "Lager" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:11 msgid "Print Route" msgstr "Skriv ut rutt" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:21 msgid "Favorites" msgstr "Favoriter" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:30 msgid "Route Planner" msgstr "Ruttplanerare" #: data/ui/help-overlay.ui:12 msgctxt "shortcut window" msgid "General" msgstr "Allmänt" #: data/ui/help-overlay.ui:15 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "Visa genvägar" #: data/ui/help-overlay.ui:21 msgctxt "shortcut window" msgid "Search" msgstr "Sök" #: data/ui/help-overlay.ui:27 msgctxt "shortcut window" msgid "Explore points-of-interest" msgstr "Utforska intressepunkter" #: data/ui/help-overlay.ui:33 msgctxt "shortcut window" msgid "Show last search results" msgstr "Visa senaste sökresultat" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "Ruttplanerare på/av" #: data/ui/help-overlay.ui:45 msgctxt "shortcut window" msgid "Print route" msgstr "Skriv ut rutt" #: data/ui/help-overlay.ui:51 msgctxt "shortcut window" msgid "Quit" msgstr "Avsluta" #: data/ui/help-overlay.ui:57 msgctxt "shortcut window" msgid "Open main menu" msgstr "Öppna huvudmeny" #: data/ui/help-overlay.ui:65 msgctxt "shortcut window" msgid "Map View" msgstr "Kartvy" #: data/ui/help-overlay.ui:68 msgctxt "shortcut window" msgid "Zoom in" msgstr "Zooma in" #: data/ui/help-overlay.ui:74 msgctxt "shortcut window" msgid "Zoom out" msgstr "Zooma ut" #: data/ui/help-overlay.ui:80 msgctxt "shortcut window" msgid "Rotate clockwise" msgstr "Rotera medurs" #: data/ui/help-overlay.ui:86 msgctxt "shortcut window" msgid "Rotate counter-clockwise" msgstr "Rotera moturs" #: data/ui/help-overlay.ui:92 msgctxt "shortcut window" msgid "Reset rotation" msgstr "Återställ rotation" #: data/ui/help-overlay.ui:98 msgctxt "shortcut window" msgid "Toggle scale" msgstr "Visa/dölj skala" #: data/ui/help-overlay.ui:104 msgctxt "shortcut window" msgid "Go to current location" msgstr "Gå till aktuell plats" #: data/ui/help-overlay.ui:114 msgctxt "shortcut window" msgid "Switch to street view" msgstr "Växla till gatuvy" #: data/ui/help-overlay.ui:121 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "Växla till flygfotovy" #: data/ui/help-overlay.ui:127 msgctxt "shortcut window" msgid "Open shape layer" msgstr "Öppna formlager" #: data/ui/layers-popover.ui:7 msgid "Show Scale" msgstr "Visa skala" #: data/ui/layers-popover.ui:16 msgid "Enable Experimental Map" msgstr "Aktivera experimentell karta" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:21 msgid "Open Shape Layer…" msgstr "Öppna formlager…" #: data/ui/main-window.ui:8 msgid "Set up OpenStreetMap Account…" msgstr "Konfigurera OpenStreetMap-konto…" #: data/ui/main-window.ui:12 msgid "Export as Image…" msgstr "Exportera som bild…" #: data/ui/main-window.ui:17 msgid "_Keyboard Shortcuts" msgstr "_Tangentbordsgenvägar" #: data/ui/main-window.ui:22 msgid "About Maps" msgstr "Om Kartor" #: data/ui/main-window.ui:48 msgid "Main Menu" msgstr "Huvudmeny" #: data/ui/osm-account-dialog.ui:5 msgid "OpenStreetMap Account" msgstr "OpenStreetMap-konto" #: data/ui/osm-account-dialog.ui:31 msgid "Sign In To Edit Maps" msgstr "Logga in för att redigera kartor" #: data/ui/osm-account-dialog.ui:32 msgid "Help to improve the map, using an OpenStreetMap account." msgstr "Hjälp till att förbättra kartan via ett OpenStreetMap-konto." #: data/ui/osm-account-dialog.ui:36 msgid "Sign In" msgstr "Logga in" #: data/ui/osm-account-dialog.ui:59 msgid "Verification" msgstr "Verifiering" #: data/ui/osm-account-dialog.ui:60 msgid "" "Copy the verification code shown when authorizing access in the browser." msgstr "" "Kopiera verifieringskoden som visas när åtkomst ska tillåtas i webbläsaren." #: data/ui/osm-account-dialog.ui:69 msgid "Verification Code" msgstr "Verifieringskod" #: data/ui/osm-account-dialog.ui:75 msgid "Verify" msgstr "Verifiera" #: data/ui/osm-account-dialog.ui:110 msgid "Signed In" msgstr "Inloggad" #: data/ui/osm-account-dialog.ui:111 msgid "Your OpenStreetMap account is active." msgstr "Ditt OpenStreetMap-konto är aktivt." #: data/ui/osm-account-dialog.ui:129 msgid "Sign Out" msgstr "Logga ut" #: data/ui/osm-edit-address.ui:11 msgid "Street" msgstr "Gata" #: data/ui/osm-edit-address.ui:22 msgid "House number" msgstr "Husnummer" #: data/ui/osm-edit-address.ui:33 msgid "Postal code" msgstr "Postnummer" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:44 msgid "City" msgstr "Postort" #: data/ui/osm-edit-dialog.ui:8 msgctxt "dialog title" msgid "Edit on OpenStreetMap" msgstr "Redigera i OpenStreetMap" #: data/ui/osm-edit-dialog.ui:57 msgid "Type" msgstr "Typ" #: data/ui/osm-edit-dialog.ui:79 msgid "None" msgstr "Ingen" #: data/ui/osm-edit-dialog.ui:108 msgid "Add Field" msgstr "Lägg till fält" #: data/ui/osm-edit-dialog.ui:130 msgid "Comment" msgstr "Kommentar" #: data/ui/osm-edit-dialog.ui:158 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "Kartändringar kommer synas på alla kartor som använder\n" "OpenStreetMap-data." #: data/ui/osm-edit-dialog.ui:186 msgid "Recently Used" msgstr "Senast använda" #: data/ui/osm-edit-dialog.ui:225 src/mapView.js:671 msgid "Cancel" msgstr "Avbryt" #: data/ui/osm-edit-dialog.ui:238 src/osmEditDialog.js:531 msgid "Next" msgstr "Nästa" #: data/ui/osm-edit-wikipedia.ui:8 msgid "Article" msgstr "Artikel" #: data/ui/osm-edit-wikipedia.ui:21 msgid "Wikidata tag" msgstr "Wikidata-tagg" #: data/ui/osm-edit-wikipedia.ui:32 msgid "Load Wikidata tag for article" msgstr "Läs in Wikidata-tagg för artikel" #: data/ui/place-popover.ui:23 src/searchBar.js:55 msgid "Explore Nearby Places" msgstr "Utforska platser i närheten" #: data/ui/place-popover.ui:82 src/application.js:277 msgid "No results found" msgstr "Inga resultat hittades" #: data/ui/place-popover.ui:92 src/application.js:255 msgid "An error has occurred" msgstr "Ett fel har inträffat" #. Translators: This is a tooltip #: data/ui/route-entry.ui:12 msgid "Change Route Order" msgstr "Ändra ruttens ordning" #: data/ui/send-to-dialog.ui:7 msgid "Open Location" msgstr "Öppna plats" #: data/ui/send-to-dialog.ui:64 msgid "Copy" msgstr "Kopiera" #: data/ui/send-to-dialog.ui:70 msgid "Send To…" msgstr "Skicka till…" #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:62 msgid "Open Shape Layer" msgstr "Öppna formlager" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "_Öppna" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:32 msgid "Toggle visible" msgstr "Slå på/av favoriter" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:44 msgid "Remove Shape Layer" msgstr "Ta bort formlager" #: data/ui/sidebar.ui:207 msgid "Route search by GraphHopper" msgstr "Ruttsökning utförd av GraphHopper" #: data/ui/sidebar.ui:272 msgid "" "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of " "transportation,\n" "e.g. a national provider might not include airlines, and a local provider " "could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" "Resväg för kollektivtrafik tillhandahålls av tredjepartstjänster.\n" "GNOME kan inte garantera korrektheten hos resvägarna och tabellerna som " "visas.\n" "Observera att vissa operatörer kanske inte inkluderar alla möjliga " "färdsätt,\n" "t.ex. visar en nationell operatör kanske inte flyglinjer, och en lokal\n" "operatör saknar kanske regionala tåg.\n" "Namn och varumärken som visas anses vara registrerade varumärken då " "tillämpligt." #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:98 msgid "Hide intermediate stops and information" msgstr "Dölj mellanliggande stopp och information" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:156 msgid "Show intermediate stops and information" msgstr "Visa mellanliggande stopp och information" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:16 msgid "Leave Now" msgstr "Åk nu" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:17 msgid "Leave By" msgstr "Åk tidigast" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:18 msgid "Arrive By" msgstr "Anländ senast" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:85 msgid "Show" msgstr "Visa" #: data/ui/transit-options-panel.ui:95 msgid "Buses" msgstr "Bussar" #: data/ui/transit-options-panel.ui:101 msgid "Trams" msgstr "Spårvagnar" #: data/ui/transit-options-panel.ui:107 msgid "Trains" msgstr "Tåg" #: data/ui/transit-options-panel.ui:113 msgid "Subway" msgstr "Tunnelbana" #: data/ui/transit-options-panel.ui:119 msgid "Ferries" msgstr "Färjor" #: data/ui/transit-options-panel.ui:125 msgid "Airplanes" msgstr "Flygplan" #. Translators: This is a tooltip #: data/ui/place-bar.ui:33 data/ui/place-buttons.ui:27 msgid "Share Location" msgstr "Dela plats" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:11 msgid "Add to new route" msgstr "Lägg till ny rutt" #. Translators: This is the button to find a route to a place #: data/ui/place-buttons.ui:15 msgid "Directions" msgstr "Vägbeskrivning" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:36 msgid "Mark as Favorite" msgstr "Markera som favorit" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:44 msgid "Edit on OpenStreetMap" msgstr "Redigera i OpenStreetMap" #. Translators: This is a tooltip #: data/ui/place-view.ui:52 msgid "Share location" msgstr "Dela plats" #: data/ui/poi-category-goback-row.ui:22 msgid "Back to Main Categories" msgstr "Tillbaka till huvudkategorier" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:19 msgid "Reset Rotation" msgstr "Återställ rotation" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:32 msgid "Zoom Out" msgstr "Zooma ut" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:43 src/mapView.js:1246 msgid "Zoom In" msgstr "Zooma in" #: lib/maps-file-data-source.c:262 lib/maps-file-data-source.c:338 #: lib/maps-file-data-source.c:418 msgid "Failed to find tile structure in directory" msgstr "Misslyckades med att hitta rutstruktur i katalog" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "Misslyckades med att tolka XML-dokument" #: lib/maps-osm.c:250 lib/maps-osm.c:403 msgid "Missing required attributes" msgstr "Saknar nödvändiga attribut" #: lib/maps-osm.c:451 lib/maps-osm.c:494 msgid "Could not find OSM element" msgstr "Kunde inte hitta OSM-element" #: lib/maps-osm.c:508 msgid "Could not find user element" msgstr "Kunde inte hitta användarelement" #: src/application.js:78 msgid "A path to a local tiles directory structure" msgstr "En sökväg till en lokal katalogstruktur med kartrutor" #: src/application.js:84 msgid "Tile size for local tiles directory" msgstr "Rutstorlek för lokal katalog med kartrutor" #: src/application.js:88 msgid "Show the version of the program" msgstr "Visa programmets version" #: src/application.js:94 msgid "Search for places" msgstr "Sök efter platser" #: src/application.js:105 src/application.js:106 msgid "[FILE…|URI]" msgstr "[FIL…|URI]" # "maps:///" är schemat #: src/application.js:284 #, javascript-format msgid "Invalid maps: URI: %s" msgstr "Ogiltig maps:-URI: %s" #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:75 #, javascript-format msgid "Maps at %f, %f.png" msgstr "Kartor vid %f, %f.png" #: src/exportViewDialog.js:174 msgid "Unable to export view" msgstr "Kan ej exportera vy" #: src/favoriteListRow.js:42 msgid "Favorite removed" msgstr "Favorit borttagen" #: src/favoriteListRow.js:43 msgid "Undo" msgstr "Ångra" #: src/geoJSONSource.js:73 msgid "invalid coordinate" msgstr "ogiltig koordinat" #: src/geoJSONSource.js:126 src/geoJSONSource.js:166 src/geoJSONSource.js:181 msgid "parse error" msgstr "tolkningsfel" #: src/geoJSONSource.js:160 msgid "unknown geometry" msgstr "okänd geometri" #: src/graphHopper.js:101 src/transitPlan.js:175 msgid "Route request failed." msgstr "Ruttbegäran misslyckades." #: src/graphHopper.js:108 src/transitPlan.js:167 msgid "No route found." msgstr "Hittade ingen rutt." #: src/graphHopper.js:195 src/transitplugins/openTripPlanner.js:1163 msgid "Start!" msgstr "Starta!" #: src/mainWindow.js:59 msgid "All Layer Files" msgstr "Alla lagerfiler" #: src/mainWindow.js:522 msgid "Failed to connect to location service" msgstr "Misslyckades att ansluta till platstjänst" #: src/mainWindow.js:527 msgid "Turn on location services" msgstr "Slå på platstjänster" #: src/mainWindow.js:528 msgid "Location Settings" msgstr "Platsinställningar" #: src/mainWindow.js:645 msgid "translator-credits" msgstr "" "Marcus Lundblad \n" "Anders Jonsson \n" "Luna Jernberg \n" "Skicka synpunkter på översättningen till\n" "." #: src/mainWindow.js:649 msgid "Copyright © 2011 – 2023 Red Hat, Inc. and The GNOME Maps authors" msgstr "" "Copyright © 2011 – 2023 Red Hat, Inc. och upphovsmännen för GNOME Kartor" #: src/mainWindow.js:665 #, javascript-format msgid "Map data by %s and contributors" msgstr "Kartdata från %s och bidragsgivare" #: src/mainWindow.js:666 msgid "Map Data Provider" msgstr "Kartdataleverantör" #: src/mainWindow.js:678 msgid "Map Tile Provider" msgstr "Kartruteleverantör" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:686 #, javascript-format msgid "Map tiles provided by %s" msgstr "Kartrutor tillhandahållna av %s" #: src/mainWindow.js:716 msgid "Search Provider" msgstr "Sökleverantör" #: src/mainWindow.js:719 #, javascript-format msgid "Search provided by %s using %s" msgstr "Sökning tillhandahålls av %s med %s" #: src/mapView.js:645 src/mapView.js:710 msgid "Failed to open layer" msgstr "Misslyckades med att öppna lager" #: src/mapView.js:664 msgid "Do you want to continue?" msgstr "Vill du fortsätta?" #: src/mapView.js:665 #, javascript-format msgid "" "You are about to open files with a total size of %s MB. This could take some " "time to load" msgstr "" "Du håller på att öppna filer med en total storlek på %s MB. Dessa kan ta " "lite tid att läsa in" #: src/mapView.js:672 src/transitplugins/openTripPlanner.js:1239 #: src/transitplugins/openTripPlanner2.js:267 msgid "Continue" msgstr "Fortsätt" #: src/mapView.js:704 msgid "File type is not supported" msgstr "Filtypen stöds inte" #: src/mapView.js:741 msgid "Failed to open GeoURI" msgstr "Misslyckades med att öppna GeoURI" #: src/mapView.js:1205 msgid "Nothing found here!" msgstr "Ingenting hittades här!" #: src/mapView.js:1245 msgid "Zoom in to add location" msgstr "Zooma in för att lägga till plats" #: src/mapView.js:1266 msgid "Location was added in OpenStreetMap" msgstr "Platsen lades till i OpenStreetMap" #. switch back to the sign-in view, and show a toast indicating #. that verification failed #: src/osmAccountDialog.js:134 msgid "The verification code didn’t match, please try again." msgstr "Verifieringskoden stämde inte, prova igen." #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:335 msgid "Incorrect user name or password" msgstr "Felaktigt användarnamn eller lösenord" #: src/osmConnection.js:337 msgid "Success" msgstr "Framgång" #: src/osmConnection.js:339 msgid "Bad request" msgstr "Felaktig begäran" #: src/osmConnection.js:341 msgid "Object not found" msgstr "Objekt hittades ej" #: src/osmConnection.js:343 msgid "Conflict, someone else has just modified the object" msgstr "Konflikt, någon annan har precis modifierat objektet" #: src/osmConnection.js:345 msgid "Object has been deleted" msgstr "Objektet har tagits bort" #: src/osmConnection.js:347 msgid "Way or relation refers to non-existing children" msgstr "Väg eller relation refererar till obefintliga barn" #: src/osmEditDialog.js:106 msgid "Name" msgstr "Namn" #: src/osmEditDialog.js:109 msgid "The official name. This is typically what appears on signs." msgstr "Det officiella namnet. Detta är typiskt vad som visas på skyltar." #: src/osmEditDialog.js:112 msgid "Address" msgstr "Adress" #: src/osmEditDialog.js:120 src/placeView.js:275 msgid "Website" msgstr "Webbplats" #: src/osmEditDialog.js:124 msgid "This is not a valid URL. Make sure to include http:// or https://." msgstr "" "Det här är inte en giltig URL. Se till att inkludera http:// eller https://." #: src/osmEditDialog.js:125 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" "Den officiella webbplatsen. Försök att använda den mest grundläggande formen " "för en URL, d.v.s. http://example.com i stället för http://example.com/index." "html." #: src/osmEditDialog.js:130 msgid "Phone" msgstr "Telefon" #: src/osmEditDialog.js:134 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" "Telefonnummer. Använd det internationella formatet som börjar med ett " "plustecken. Var uppmärksam på lokala sekretesslagar, speciellt för privata " "telefonnummer." #: src/osmEditDialog.js:139 src/placeView.js:308 msgid "Email" msgstr "E-post" #: src/osmEditDialog.js:144 msgid "" "This is not a valid email address. Make sure to not include the mailto: " "protocol prefix." msgstr "" "Det här är inte en giltig e-postadress. Se till att inte inkludera mailto:-" "protokollprefixet." #: src/osmEditDialog.js:145 msgid "" "Contact email address for inquiries. Add only email addresses that are " "intended to be publicly used." msgstr "" "Kontakt-e-postadress för förfrågningar. Se till att endast lägga till e-" "postadresser som är avsedda att användas offentligt." #. Translators: This is the text for the "Wikipedia" link at the end #. of summaries #: src/osmEditDialog.js:149 src/placeView.js:727 msgid "Wikipedia" msgstr "Wikipedia" #: src/osmEditDialog.js:156 src/placeView.js:399 msgid "Opening hours" msgstr "Öppettider" #: src/osmEditDialog.js:161 msgid "See the link in the label for help on format." msgstr "Se länken i etiketten för hjälp om formatet." #. TODO: this is a bit of a work-around to re-interpret the population, #. * stored as a string into an integer to convert back to a locale- #. * formatted string. Ideally it should be kept as an integer value #. * in the Place class. But this will also need to be handled by the #. * PlaceStore, possible in a backwards-compatible way #. #: src/osmEditDialog.js:164 src/placeView.js:509 msgid "Population" msgstr "Folkmängd" #: src/osmEditDialog.js:169 src/placeView.js:538 msgid "Altitude" msgstr "Höjd över havet" #: src/osmEditDialog.js:172 msgid "Elevation (height above sea level) of a point in meters." msgstr "Höjd (höjd över havet) för en plats i meter." #: src/osmEditDialog.js:175 msgid "Wheelchair access" msgstr "Åtkomst för rullstol" #: src/osmEditDialog.js:178 src/osmEditDialog.js:187 src/osmEditDialog.js:198 #: src/osmEditDialog.js:233 msgid "Yes" msgstr "Ja" #: src/osmEditDialog.js:179 src/osmEditDialog.js:188 src/osmEditDialog.js:199 #: src/osmEditDialog.js:234 msgid "No" msgstr "Nej" #: src/osmEditDialog.js:180 msgid "Limited" msgstr "Begränsad" #: src/osmEditDialog.js:181 msgid "Designated" msgstr "Avsett för" #: src/osmEditDialog.js:184 msgid "Internet access" msgstr "Internetåtkomst" #: src/osmEditDialog.js:189 msgid "Wi-Fi" msgstr "Trådlöst" #: src/osmEditDialog.js:190 msgid "Wired" msgstr "Trådbundet" #: src/osmEditDialog.js:191 msgid "Terminal" msgstr "Terminal" #: src/osmEditDialog.js:192 msgid "Service" msgstr "Tjänst" #: src/osmEditDialog.js:195 msgid "Takeout" msgstr "Hämtmat" #: src/osmEditDialog.js:200 msgid "Only" msgstr "Endast" #: src/osmEditDialog.js:203 msgid "Religion" msgstr "Religion" #: src/osmEditDialog.js:206 src/translations.js:286 msgid "Animism" msgstr "Animism" #: src/osmEditDialog.js:207 msgid "Bahá’í" msgstr "Bahá’í" #: src/osmEditDialog.js:208 src/translations.js:288 msgid "Buddhism" msgstr "Buddhism" #: src/osmEditDialog.js:209 src/translations.js:289 msgid "Caodaism" msgstr "Cao đai" #: src/osmEditDialog.js:210 src/translations.js:290 msgid "Christianity" msgstr "Kristendom" #: src/osmEditDialog.js:211 src/translations.js:291 msgid "Confucianism" msgstr "Konfucianism" #: src/osmEditDialog.js:212 src/translations.js:292 msgid "Hinduism" msgstr "Hinduism" #: src/osmEditDialog.js:213 src/translations.js:293 msgid "Jainism" msgstr "Jainism" #: src/osmEditDialog.js:214 src/translations.js:294 msgid "Judaism" msgstr "Judendom" #: src/osmEditDialog.js:215 src/translations.js:295 msgid "Islam" msgstr "Islam" #: src/osmEditDialog.js:216 src/translations.js:296 msgid "Multiple Religions" msgstr "Flera religioner" #: src/osmEditDialog.js:217 src/translations.js:297 msgid "Paganism" msgstr "Paganism" #: src/osmEditDialog.js:218 src/translations.js:298 msgid "Pastafarianism" msgstr "Pastafarianism" #: src/osmEditDialog.js:219 src/translations.js:299 msgid "Scientology" msgstr "Scientologi" #: src/osmEditDialog.js:220 src/translations.js:300 msgid "Shinto" msgstr "Shinto" #: src/osmEditDialog.js:221 src/translations.js:301 msgid "Sikhism" msgstr "Sikhism" #: src/osmEditDialog.js:222 src/translations.js:302 msgid "Spiritualism" msgstr "Spiritualism" #: src/osmEditDialog.js:223 src/translations.js:303 msgid "Taoism" msgstr "Taoism" #: src/osmEditDialog.js:224 src/translations.js:304 msgid "Unitarian Universalism" msgstr "Unitaristisk universalism" #: src/osmEditDialog.js:225 src/translations.js:305 msgid "Voodoo" msgstr "Voodoo" #: src/osmEditDialog.js:226 src/translations.js:306 msgid "Yazidism" msgstr "Yazidism" #: src/osmEditDialog.js:227 src/translations.js:307 msgid "Zoroastrianism" msgstr "Zoroastrism" #: src/osmEditDialog.js:230 src/poiCategories.js:176 msgid "Toilets" msgstr "Toaletter" #: src/osmEditDialog.js:237 msgid "Note" msgstr "Anteckning" #: src/osmEditDialog.js:240 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" "Information som används för att informera andra karterare om icke uppenbar " "information om ett element, personens avsikt då det skapades, eller tips på " "hur det kan förbättras ytterligare." #: src/osmEditDialog.js:339 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "Lägg till i OpenStreetMap" #: src/osmEditDialog.js:393 msgid "Select Type" msgstr "Välj typ" #: src/osmEditDialog.js:515 msgid "Done" msgstr "Klar" #: src/osmEditDialog.js:818 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "" "Formatet som används bör inkludera språkkoden och artikeltiteln, t.ex. ”sv:" "Artikelns titel”." #: src/osmEditDialog.js:824 msgid "Use the reload button to load the Wikidata tag for the selected article" msgstr "" "Använd uppdateringsknappen för att läsa in Wikidata-taggen för den valda " "artikeln" #: src/osmEditDialog.js:832 msgid "Couldn't find Wikidata tag for article" msgstr "Kunde inte hitta Wikidata-tagg för artikel" #: src/photonUtils.js:118 msgid "Unnamed place" msgstr "Namnlös plats" # "geo:///" är schemat #: src/placeEntry.js:274 msgid "Failed to parse Geo URI" msgstr "Misslyckades med att tolka geo-URI" # "maps:///" är schemat #: src/placeEntry.js:286 msgid "Failed to parse Maps URI" msgstr "Misslyckades med att tolka maps-URI" #. 300 ft (300 * 12 * 0.0254 m) #. #. * Translators: This a format string for showing a distance to a place #. * is lower than a "quite short" distance. #. * The "less than" symbol can be substituded with an appropriate one, if #. * needed (e.g. using the correct direction, or alternative symbol). #. * The %s should be kept, and is substituted with a label representing the #. * short distance. The \u2009 (thin space) could also be adjusted if needed #: src/placeListRow.js:46 #, javascript-format msgctxt "short distance format string" msgid "< %s" msgstr "< %s" #: src/placeView.js:263 msgid "Coordinates" msgstr "Koordinater" #: src/placeView.js:267 msgid "Accuracy" msgstr "Noggrannhet" #. Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) #: src/placeView.js:270 #, javascript-format msgid "Accuracy: %s" msgstr "Noggrannhet: %s" #. since the phone numbers are typically always rendered #. * left-to-right, insert an explicit LRM char to avoid issues #. * with phone numbers in international format starting with a + #. * which is considered a "weak" character to determine Unicode #. * text direction #. #: src/placeView.js:289 msgid "Phone number" msgstr "Telefonnummer" #. If a reference to a named floor (named or symbolic) exists #. * refer to it directly. #. #. Translators: #. * This is a reference to named building floor, using a label #. * or a code, as "displayed in the elevator" #. #: src/placeView.js:323 src/placeView.js:362 msgid "Floor" msgstr "Våning" #: src/placeView.js:325 #, javascript-format msgid "Floor %s" msgstr "Våning %s" #: src/placeView.js:337 msgid "At ground level" msgstr "På marknivå" # NOT: Brittisk numrering. Ground level=0, en våning upp är 1 och så vidare. #. Translators: #. * This is a reference to a number of floors above #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:346 #, javascript-format msgid "%s floor above ground level" msgid_plural "%s floors above ground level" msgstr[0] "%s våning ovanför marknivå" msgstr[1] "%s våningar ovanför marknivå" #. Translators: #. * This is a reference to a number of floors below #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:357 #, javascript-format msgid "%s floor below ground level" msgid_plural "%s floors below ground level" msgstr[0] "%s våning under jord" msgstr[1] "%s våningar under jord" #. Translators: #. * The establishment offers customers to purchase meals #. * (or similar) to be consumed elsewhere #. #: src/placeView.js:375 msgid "Offers takeout" msgstr "Erbjuder hämtmat" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed on-premise. #. #: src/placeView.js:383 msgid "Does not offer takeout" msgstr "Erbjuder inte hämtmat" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed elsewhere. E.g. #. * there is no seating on-premise for eating/drinking #. #: src/placeView.js:392 msgid "Only offers takeout" msgstr "Erbjuder endast hämtmat" #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/placeView.js:409 msgid "Public internet access" msgstr "Öppen internetåtkomst" #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/placeView.js:418 msgid "No internet access" msgstr "Ingen internetåtkomst" #. Translators: #. * This means a WLAN Hotspot, also known as wireless, wifi or Wi-Fi. #. #: src/placeView.js:426 msgid "Public Wi-Fi" msgstr "Öppet Wi-Fi" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/placeView.js:434 msgid "Wired internet access" msgstr "Trådbunden internetåtkomst" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/placeView.js:442 msgid "Computers available for use" msgstr "Datorer tillgängliga för användning" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/placeView.js:450 msgid "Internet assistance available" msgstr "Internethjälp tillgänglig" #: src/placeView.js:456 msgid "No toilets available" msgstr "Inga toaletter tillgängliga" #: src/placeView.js:459 msgid "Toilets available" msgstr "Toaletter tillgängliga" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #: src/placeView.js:468 msgid "Wheelchair accessible" msgstr "Rullstolsanpassat" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/placeView.js:478 msgid "Limited wheelchair accessibility" msgstr "Begränsad rullstolsanpassning" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #: src/placeView.js:487 msgid "Not wheelchair accessible" msgstr "Inte rullstolsanpassat" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/placeView.js:497 msgid "Designated for wheelchair users" msgstr "Designat för rullstolsburna" #. * #. * Translators: this is a label indicating an altitude below #. * sea level, where the %s placeholder is the altitude relative #. * to mean sea level in the "negative direction" #. #: src/placeView.js:528 #, javascript-format msgid "%s below sea level" msgstr "%s under havsnivå" #. * #. * Translators: this indicates a place is located at (or very #. * close to) mean sea level #. #: src/placeView.js:535 msgid "At sea level" msgstr "Vid havsnivå" #: src/placeView.js:544 msgid "Religion:" msgstr "Religion:" #: src/place.js:576 msgid "Place not found in OpenStreetMap" msgstr "Platsen hittades inte i OpenStreetMap" #: src/place.js:583 msgid "Coordinates in URL are not valid" msgstr "Koordinaterna i URL:en är felaktiga" #: src/place.js:592 msgid "URL is not supported" msgstr "URL:en stöds inte" #: src/poiCategories.js:132 msgid "Amenities" msgstr "Bekvämligheter" #: src/poiCategories.js:135 msgid "ATMs" msgstr "Bankomater" #: src/poiCategories.js:141 msgid "Post Boxes" msgstr "Brevlådor" #: src/poiCategories.js:147 msgid "Post Offices" msgstr "Postkontor" #: src/poiCategories.js:153 msgid "Police" msgstr "Polis" #: src/poiCategories.js:159 msgid "Libraries" msgstr "Bibliotek" #: src/poiCategories.js:165 msgid "Pharmacies" msgstr "Apotek" #: src/poiCategories.js:171 msgid "Recycling" msgstr "Återvinning" #: src/poiCategories.js:182 msgid "Wheelchair-accessible Toilets" msgstr "Rullstolsanpassade toaletter" #: src/poiCategories.js:188 msgid "Baggage Lockers" msgstr "Förvaringsboxar" #: src/poiCategories.js:196 msgid "Eating & Drinking" msgstr "Mat och dryck" #: src/poiCategories.js:200 msgid "Restaurants" msgstr "Restauranger" #: src/poiCategories.js:205 msgid "Fast Food" msgstr "Snabbmat" #: src/poiCategories.js:210 msgid "Food Courts" msgstr "Mattorg" #: src/poiCategories.js:215 msgid "Pubs" msgstr "Pubar" #: src/poiCategories.js:221 msgid "Bars" msgstr "Barer" #: src/poiCategories.js:226 msgid "Cafes" msgstr "Caféer" #: src/poiCategories.js:231 msgid "Ice Cream" msgstr "Glass" #: src/poiCategories.js:236 msgid "Food, Snacks, and Beverage Machines" msgstr "Mat, snacks och dryckesautomater" #: src/poiCategories.js:244 msgid "Shopping" msgstr "Shopping" #: src/poiCategories.js:248 msgid "Supermarkets" msgstr "Snabbköp" #: src/poiCategories.js:254 msgid "Convenience Stores" msgstr "Närbutiker" #: src/poiCategories.js:259 msgid "Shopping Malls" msgstr "Köpcenter" #: src/poiCategories.js:265 msgid "Clothes" msgstr "Kläder" #: src/poiCategories.js:271 msgid "Shoes" msgstr "Skor" #: src/poiCategories.js:276 msgid "Electronics" msgstr "Elektronik" #: src/poiCategories.js:282 msgid "Alcohol" msgstr "Alkohol" #: src/poiCategories.js:288 msgid "Bakeries" msgstr "Bagerier" #: src/poiCategories.js:294 msgid "Flowers" msgstr "Blommor" #: src/poiCategories.js:301 msgid "Transportation" msgstr "Transport" #: src/poiCategories.js:305 msgid "Bus & Tram Stops" msgstr "Buss- och spårvagnsstopp" #: src/poiCategories.js:313 msgid "Train & Subway Stations" msgstr "Tåg- och tunnelbanestationer" #: src/poiCategories.js:321 msgid "Tickets" msgstr "Biljetter" #: src/poiCategories.js:329 msgid "Parking" msgstr "Parkering" #: src/poiCategories.js:334 msgid "Bicycle Parking" msgstr "Cykelparkering" #: src/poiCategories.js:339 msgid "Bicycle Rental" msgstr "Cykeluthyrning" #: src/poiCategories.js:344 msgid "Car Rental" msgstr "Biluthyrning" #: src/poiCategories.js:349 msgid "Fuel" msgstr "Bränsle" #: src/poiCategories.js:354 msgid "EV Charging" msgstr "Laddstolpe" #: src/poiCategories.js:362 msgid "Healthcare" msgstr "Sjukvård" #: src/poiCategories.js:366 msgid "Clinics" msgstr "Kliniker" #: src/poiCategories.js:372 msgid "Hospitals" msgstr "Sjukhus" #: src/poiCategories.js:378 msgid "Dentists" msgstr "Tandläkare" #: src/poiCategories.js:386 msgid "Accommodation" msgstr "Inkvartering" #: src/poiCategories.js:390 msgid "Hotels" msgstr "Hotell" #: src/poiCategories.js:395 msgid "Hostels" msgstr "Vandrarhem" #: src/poiCategories.js:400 msgid "Bed & Breakfast" msgstr "Bed & Breakfast" #: src/poiCategories.js:405 msgid "Campings" msgstr "Campingar" #: src/poiCategories.js:412 msgid "Recreation" msgstr "Rekreation" #: src/poiCategories.js:416 msgid "Parks" msgstr "Parker" #: src/poiCategories.js:421 msgid "Playgrounds" msgstr "Lekplatser" #: src/poiCategories.js:425 msgid "Beaches" msgstr "Stränder" #: src/poiCategories.js:430 msgid "Nature Reserves" msgstr "Naturreservat" #: src/poiCategories.js:436 msgid "Theme Parks" msgstr "Temaparker" #: src/poiCategories.js:441 msgid "Theaters" msgstr "Teatrar" #: src/poiCategories.js:447 msgid "Movie Theaters" msgstr "Biografer" #: src/poiCategories.js:453 msgid "Night Clubs" msgstr "Nattklubbar" #: src/poiCategories.js:460 msgid "Tourism" msgstr "Turism" #: src/poiCategories.js:464 msgid "Museums" msgstr "Museum" #: src/poiCategories.js:470 msgid "Attractions" msgstr "Attraktioner" #: src/poiCategories.js:475 msgid "Artworks" msgstr "Konstverk" #: src/poiCategories.js:480 msgid "Tourist Information" msgstr "Turistinformation" #: src/poiCategories.js:487 msgid "Sports" msgstr "Sport" #: src/poiCategories.js:491 msgid "Gyms" msgstr "Gym" #: src/poiCategories.js:497 msgid "Outdoor Gyms" msgstr "Utegym" #: src/poiCategories.js:503 msgid "Golf Courses" msgstr "Golfbanor" #: src/printLayout.js:350 #, javascript-format msgid "From %s to %s" msgstr "Från %s till %s" #: src/printOperation.js:49 msgid "Loading map tiles for printing" msgstr "Läser in kartrutor för utskrift" #: src/printOperation.js:50 msgid "You can abort printing if this takes too long" msgstr "Du kan avbryta utskriften om detta tar för lång tid" #: src/printOperation.js:52 msgid "Abort printing" msgstr "Avbryt utskrift" #. Translators: this is add via location tooltip #: src/routeEntry.js:60 msgid "Add via location" msgstr "Lägg till position att passera" #. Translators: this is remove via location tooltip #: src/routeEntry.js:70 msgid "Remove via location" msgstr "Ta bort position att passera" #. Translators: this is reverse route tooltip #: src/routeEntry.js:76 msgid "Reverse route" msgstr "Vänd rutt" #: src/searchBar.js:45 msgid "Search" msgstr "Sök" #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:84 #, javascript-format msgid "Add %s to %s" msgstr "Lägg till %s till %s" #: src/sendToDialog.js:181 msgid "Failed to open URI" msgstr "Misslyckades med att öppna URI" #: src/sendToDialog.js:246 #, javascript-format msgid "Open with %s" msgstr "Öppna med %s" #: src/shapeLayer.js:109 msgid "failed to load file" msgstr "misslyckades med att läsa in fil" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:328 #, javascript-format msgid "Estimated time: %s" msgstr "Uppskattad tid: %s" #: src/sidebar.js:398 #, javascript-format msgid "Itineraries provided by %s" msgstr "Resvägar tillhandahållna av %s" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:39 #, javascript-format msgid "Start at %s" msgstr "Starta från %s" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:45 src/transitplugins/openTripPlanner2.js:236 msgid "Start" msgstr "Starta" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:63 #, javascript-format msgid "Walk %s" msgstr "Gå %s" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:77 #, javascript-format msgid "Arrive at %s" msgstr "Anländ vid %s" #: src/transit.js:79 src/transitplugins/openTripPlanner.js:1176 #: src/transitplugins/openTripPlanner2.js:255 msgid "Arrive" msgstr "Anländ" #: src/transitLegRow.js:69 msgid "Show walking instructions" msgstr "Visa gånginstruktioner" #: src/transitLegRow.js:70 msgid "Hide walking instructions" msgstr "Dölj gånginstruktioner" #: src/transitMoreRow.js:37 msgid "Load earlier alternatives" msgstr "Läs in tidigare alternativ" #: src/transitMoreRow.js:39 msgid "Load later alternatives" msgstr "Läs in senare alternativ" #: src/transitMoreRow.js:52 msgid "No earlier alternatives found." msgstr "Inga tidigare alternativ hittades." #: src/transitMoreRow.js:54 msgid "No later alternatives found." msgstr "Inga senare alternativ hittades." #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:138 msgctxt "month-day-date" msgid "%b %e" msgstr "%e %b" #: src/transitPlan.js:171 msgid "No timetable data found for this route." msgstr "Inga tidtabellsdata hittades för denna rutt." #: src/transitPlan.js:179 msgid "No provider found for this route." msgstr "Ingen operatör hittades för denna rutt." #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:300 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:331 #, javascript-format msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "%s minut" msgstr[1] "%s minuter" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:343 #, javascript-format msgid "%s hour" msgid_plural "%s hours" msgstr[0] "%s timme" msgstr[1] "%s timmar" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:351 #, javascript-format msgid "%s:%s hour" msgid_plural "%s:%s hours" msgstr[0] "%s:%s timme" msgstr[1] "%s:%s timmar" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:744 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: src/translations.js:55 msgid "Around the clock" msgstr "Dygnet runt" #: src/translations.js:57 msgid "From sunrise to sunset" msgstr "Från soluppgång till solnedgång" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:123 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s,%s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:137 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s,%s,%s" #: src/translations.js:156 msgid "Every day" msgstr "Varje dag" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:168 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:179 msgid "Public holidays" msgstr "Allmänna helgdagar" #: src/translations.js:181 msgid "School holidays" msgstr "Skollov" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:221 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: src/translations.js:235 msgid "not open" msgstr "inte öppen" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:250 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:287 msgid "Bahá'í" msgstr "Bahá'í" #. Translators: Accuracy of user location information #: src/utils.js:248 msgid "Unknown" msgstr "Okänd" #. Translators: Accuracy of user location information #: src/utils.js:251 msgid "Exact" msgstr "Exakt" #. Translators: this is a duration with only hours, using #. * an abbreviation for hours, corresponding to 'h' in English #. #: src/utils.js:307 #, javascript-format msgid "%s h" msgstr "%s h" #. Translators: this is a duration with hours and minutes parts #. * using abbreviations for hours and minutes, corresponding to 'h' #. * and 'min' in English. The minutes has appropriate plural variations #. #: src/utils.js:313 #, javascript-format msgid "%s h %s min" msgid_plural "%s h %s min" msgstr[0] "%s h %s min" msgstr[1] "%s h %s min" #. Translators: this is a duration with minutes part #. * using abbreviation for minutes, corresponding to 'min' in English #. * with appropriate plural variations #. #: src/utils.js:320 #, javascript-format msgid "%s min" msgid_plural "%s min" msgstr[0] "%s min" msgstr[1] "%s min" #. Translators: this is a duration of less than one minute #. * with seconds using an abbreviation for seconds, corresponding to #. * 's' in English with appropriate plural forms #. #: src/utils.js:326 #, javascript-format msgid "%s s" msgid_plural "%s s" msgstr[0] "%s s" msgstr[1] "%s s" #. Translators: This is a distance measured in kilometers #: src/utils.js:337 #, javascript-format msgid "%s km" msgstr "%s km" #. Translators: This is a distance measured in meters #: src/utils.js:340 #, javascript-format msgid "%s m" msgstr "%s m" #. Translators: This is a distance measured in miles #: src/utils.js:348 #, javascript-format msgid "%s mi" msgstr "%s miles" #. Translators: This is a distance measured in feet #: src/utils.js:351 #, javascript-format msgid "%s ft" msgstr "%s fot" #: src/transitplugins/goMetro.js:61 msgid "This plugin doesn't support latest arrival" msgstr "Denna insticksmodul stöder inte senaste ankomsttid" #: src/transitplugins/openTripPlanner.js:1237 #: src/transitplugins/openTripPlanner2.js:266 #, javascript-format msgid "Continue on %s" msgstr "Fortsätt på %s" #: src/transitplugins/openTripPlanner.js:1242 #: src/transitplugins/openTripPlanner2.js:270 #, javascript-format msgid "Turn left on %s" msgstr "Sväng vänster på %s" #: src/transitplugins/openTripPlanner.js:1244 #: src/transitplugins/openTripPlanner2.js:271 msgid "Turn left" msgstr "Sväng vänster" #: src/transitplugins/openTripPlanner.js:1247 #: src/transitplugins/openTripPlanner2.js:275 #, javascript-format msgid "Turn slightly left on %s" msgstr "Sväng svagt vänster på %s" #: src/transitplugins/openTripPlanner.js:1249 #: src/transitplugins/openTripPlanner2.js:276 msgid "Turn slightly left" msgstr "Sväng svagt vänster" #: src/transitplugins/openTripPlanner.js:1252 #: src/transitplugins/openTripPlanner2.js:280 #, javascript-format msgid "Turn sharp left on %s" msgstr "Sväng kraftigt vänster på %s" #: src/transitplugins/openTripPlanner.js:1254 #: src/transitplugins/openTripPlanner2.js:281 msgid "Turn sharp left" msgstr "Sväng kraftigt vänster" #: src/transitplugins/openTripPlanner.js:1257 #: src/transitplugins/openTripPlanner2.js:284 #, javascript-format msgid "Turn right on %s" msgstr "Sväng höger på %s" #: src/transitplugins/openTripPlanner.js:1259 #: src/transitplugins/openTripPlanner2.js:285 msgid "Turn right" msgstr "Sväng höger" #: src/transitplugins/openTripPlanner.js:1262 #: src/transitplugins/openTripPlanner2.js:289 #, javascript-format msgid "Turn slightly right on %s" msgstr "Sväng svagt höger på %s" #: src/transitplugins/openTripPlanner.js:1264 #: src/transitplugins/openTripPlanner2.js:290 msgid "Turn slightly right" msgstr "Sväng svagt höger" #: src/transitplugins/openTripPlanner.js:1267 #: src/transitplugins/openTripPlanner2.js:294 #, javascript-format msgid "Turn sharp right on %s" msgstr "Sväng kraftigt höger på %s" #: src/transitplugins/openTripPlanner.js:1269 #: src/transitplugins/openTripPlanner2.js:295 msgid "Turn sharp right" msgstr "Sväng kraftigt höger" #: src/transitplugins/openTripPlanner.js:1275 #: src/transitplugins/openTripPlanner2.js:302 #, javascript-format msgid "At the roundabout, take exit %s" msgstr "Ta avfart %s i rondellen" #: src/transitplugins/openTripPlanner.js:1277 #: src/transitplugins/openTripPlanner2.js:305 #, javascript-format msgid "At the roundabout, take exit to %s" msgstr "Ta avfart till %s i rondellen" #: src/transitplugins/openTripPlanner.js:1279 #: src/transitplugins/openTripPlanner2.js:307 msgid "Take the roundabout" msgstr "Ta rondellen" #: src/transitplugins/openTripPlanner.js:1283 #: src/transitplugins/openTripPlanner2.js:315 #, javascript-format msgid "Take the elevator and get off at %s" msgstr "Ta hissen och stig av på %s" #: src/transitplugins/openTripPlanner.js:1285 #: src/transitplugins/openTripPlanner2.js:316 msgid "Take the elevator" msgstr "Ta hissen" #: src/transitplugins/openTripPlanner.js:1289 #: src/transitplugins/openTripPlanner2.js:320 #, javascript-format msgid "Make a left u-turn onto %s" msgstr "Gör en u-sväng åt vänster in på %s" #: src/transitplugins/openTripPlanner.js:1291 #: src/transitplugins/openTripPlanner2.js:321 msgid "Make a left u-turn" msgstr "Gör en u-sväng åt vänster" #: src/transitplugins/openTripPlanner.js:1294 #: src/transitplugins/openTripPlanner2.js:325 #, javascript-format msgid "Make a right u-turn onto %s" msgstr "Gör en u-sväng åt höger in på %s" #: src/transitplugins/openTripPlanner.js:1296 #: src/transitplugins/openTripPlanner2.js:326 msgid "Make a right u-turn" msgstr "Gör en u-sväng åt höger" #~ msgid "E-mail" #~ msgstr "E-post" #~ msgid "Sign in to edit maps" #~ msgstr "" #~ "Logga in för att redigera kartor" #~ msgid "" #~ "Sign in to authorize access in a web browser.\n" #~ "Then fill in the obtained verification code here in the next step." #~ msgstr "" #~ "Logga in för att tillåta åtkomst i en webbläsare.\n" #~ "Fyll sedan i den erhållna verifieringskoden här i nästa steg." #~ msgid "Signed In" #~ msgstr "Inloggad" #~ msgid "Sign up" #~ msgstr "Registrera dig" #~ msgid "Filesystem is read only" #~ msgstr "Filsystemet är skrivskyddat" #~ msgid "You do not have permission to save there" #~ msgstr "Du har inte rättigheter att spara där" #~ msgid "The directory does not exist" #~ msgstr "Katalogen existerar inte" #~ msgid "No filename specified" #~ msgstr "Inget filnamn angivet" #~ msgid "Takeaway" #~ msgstr "Hämtmat" #~ msgid "" #~ "Location was added to the map, note that it may take a while before it " #~ "shows on the map and in search results." #~ msgstr "" #~ "Plats lades till på kartan, observera att det kan ta ett tag innan det " #~ "syns på kartan och bland sökresultaten." #~ msgid "Go to current location" #~ msgstr "Gå till aktuell plats" #~ msgid "Choose map type" #~ msgstr "Välj karttyp" #~ msgid "Zoom in" #~ msgstr "Zooma in" #~ msgid "Drag to change order of the route" #~ msgstr "Dra för att ändra ruttens ordning" #~ msgid "A map application for GNOME" #~ msgstr "Ett kartprogram för GNOME" #~ msgid "Failed to authorize access" #~ msgstr "Misslyckades med att tillåta åtkomst" #~ msgid "Try again" #~ msgstr "Försök igen" #~ msgid "Include route and markers" #~ msgstr "Inkludera rutt och markörer" #~ msgid "Use hybrid aerial tiles" #~ msgstr "Använd hybridflygfotorutor" #~ msgid "Whether aerial tiles should use hybrid style (with labels)." #~ msgstr "Huruvida flygfotorutor ska använda hybridstil (med etiketter)." #~ msgid "Show Labels" #~ msgstr "Visa etiketter" #~ msgid "Foursquare check-in privacy setting" #~ msgstr "Sekretessinställning för Foursquare-incheckning" #~ msgid "" #~ "Latest used Foursquare check-in privacy setting. Possible values are: " #~ "public, followers or private." #~ msgstr "" #~ "Senast använda sekretessinställning för Foursquare-incheckning. Möjliga " #~ "värden är: public, followers eller private." #~ msgid "Foursquare check-in Facebook broadcasting" #~ msgstr "Utsändning av Foursquare-incheckning till Facebook" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a post in the " #~ "Facebook account associated with the Foursquare account." #~ msgstr "" #~ "Indikerar om Foursquare ska sända ut incheckningar som en postning på " #~ "Facebook-kontot associerat med Foursquare-kontot." #~ msgid "Foursquare check-in Twitter broadcasting" #~ msgstr "Utsändning av Foursquare-incheckning till Twitter" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a tweet in the " #~ "Twitter account associated with the Foursquare account." #~ msgstr "" #~ "Indikerar om Foursquare ska sända ut incheckningar som en postning på " #~ "Twitter-kontot associerat med Foursquare-kontot." #~ msgid "Visibility" #~ msgstr "Synlighet" #~ msgid "Post on Facebook" #~ msgstr "Posta på Facebook" #~ msgid "Post on Twitter" #~ msgstr "Posta på Twitter" #~ msgid "C_heck in" #~ msgstr "_Checka in" #~ msgid "Public" #~ msgstr "Publikt" #~ msgid "Private" #~ msgstr "Privat" #~ msgid "Maps is offline!" #~ msgstr "Kartor är frånkopplad!" #~ msgid "" #~ "Maps need an active internet connection to function properly, but one " #~ "can’t be found." #~ msgstr "" #~ "Kartor behöver en aktiv internetanslutning för att fungera korrekt, men " #~ "en sådan kan ej hittas." #~ msgid "Check your connection and proxy settings." #~ msgstr "Kontrollera din anslutning och proxyinställningar." #~ msgid "Password" #~ msgstr "Lösenord" #~ msgid "" #~ "Sorry, that didn’t work. Please try again, or visit\n" #~ "OpenStreetMap to reset your password." #~ msgstr "" #~ "Det fungerade tyvärr inte. Prova igen eller besök\n" #~ "OpenStreetMap för att återställa ditt lösenord." #~ msgid "Check In…" #~ msgstr "Checka in…" #~ msgid "Ignore network availability" #~ msgstr "Ignorera nätverkets tillgänglighet" #~ msgid "Select an account" #~ msgstr "Välj ett konto" #~ msgid "Loading" #~ msgstr "Läser in" #~ msgid "Select a place" #~ msgstr "Välj en plats" #~ msgid "" #~ "Maps cannot find the place to check in to with Foursquare. Please select " #~ "one from this list." #~ msgstr "" #~ "Kartor kan inte hitta platsen att checka in på med Foursquare. Välj en " #~ "från denna lista." #, javascript-format #~ msgid "Check in to %s" #~ msgstr "Checka in på %s" #, javascript-format #~ msgid "Write an optional message to check in to %s." #~ msgstr "Skriv ett valfritt meddelande för att checka in på %s." #, javascript-format #~ msgid "Cannot find “%s” in the social service" #~ msgstr "Kan inte hitta ”%s” i den sociala tjänsten" #~ msgid "Cannot find a suitable place to check-in in this location" #~ msgstr "Kan inte hitta en lämplig plats att checka in på denna plats" #~ msgid "" #~ "Credentials have expired, please open Online Accounts to sign in and " #~ "enable this account" #~ msgstr "" #~ "Inloggningsuppgifterna har gått ut, öppna Nätkonton för att logga in och " #~ "aktivera detta konto" #~ msgid "GNOME Maps" #~ msgstr "GNOME Kartor" #~ msgid "Night mode" #~ msgstr "Nattläge" #~ msgid "Whether the application is in night mode." #~ msgstr "Huruvida programmet är i nattläge." #~ msgid "Night Mode" #~ msgstr "Nattläge" #~ msgid "Facebook check-in privacy setting" #~ msgstr "Sekretessinställning för Facebook-incheckning" #~ msgid "" #~ "Latest used Facebook check-in privacy setting. Possible values are: " #~ "EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS or SELF." #~ msgstr "" #~ "Senaste använda sekretessinställning för Facebook-incheckning. Möjliga " #~ "värden är: EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS eller SELF." #~ msgid "Everyone" #~ msgstr "Alla" #~ msgid "Friends of friends" #~ msgstr "Vänners vänner" #~ msgid "Just friends" #~ msgstr "Bara vänner" #~ msgid "Just me" #~ msgstr "Bara jag" #~ msgid "" #~ "Maps cannot find the place to check in to with Facebook. Please select " #~ "one from this list." #~ msgstr "" #~ "Kartor kan inte hitta platsen att checka in på med Facebook. Välj en från " #~ "denna lista." #~ msgid "" #~ "You can even search for specific types of locations, such as “Pubs near " #~ "Main Street, Boston” or “Hotels near Alexanderplatz, Berlin”." #~ msgstr "" #~ "Du kan till och med söka efter specifika platser såsom ”Pub nära " #~ "Drottninggatan, Stockholm” eller ”Hotell vid Alexanderplatz, Berlin”." #~ msgid "Find a Route" #~ msgstr "Hitta en rutt" #~ msgid "Check in here" #~ msgstr "Checka in här" #~ msgid "Population:" #~ msgstr "Folkmängd:" #~ msgid "Altitude:" #~ msgstr "Höjd över havet:" #~ msgid "Opening hours:" #~ msgstr "Öppettider:" #~ msgid "Internet access:" #~ msgstr "Internetåtkomst:" #~ msgid "Toilets:" #~ msgstr "Toaletter:" #~ msgid "Wheelchair access:" #~ msgstr "Åtkomst för rullstol:" #~ msgid "Phone:" #~ msgstr "Telefon:" #~ msgid "yes" #~ msgstr "ja" #~ msgid "limited" #~ msgstr "begränsad" #~ msgid "no" #~ msgstr "nej" #~ msgid "designated" #~ msgstr "avsett för" #~ msgid "OpenStreetMap URL is not valid" #~ msgstr "OpenStreetMap-URL:en är felaktig" #~ msgctxt "time range list" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgctxt "time range list" #~ msgid "%s %s %s" #~ msgstr "%s %s %s" #~ msgctxt "time range component" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgid "wired" #~ msgstr "trådbunden" #~ msgid "terminal" #~ msgstr "terminal" #~ msgid "service" #~ msgstr "tjänst" #~ msgid "Primary menu" #~ msgstr "Primär meny" #~ msgid "Don’t have an account?" #~ msgstr "Har du inte ett konto?" #~ msgid "%f h" #~ msgstr "%f tim" #~ msgid "%f min" #~ msgstr "%f min" #~ msgid "%f s" #~ msgstr "%f s" #~ msgid "Add destination" #~ msgstr "Lägg till destination" #~ msgid "Route search by OpenTripPlanner" #~ msgstr "Ruttsökning utförd av OpenTripPlanner" #~ msgid "org.gnome.Maps" #~ msgstr "org.gnome.Maps" #~ msgid "Open with another application" #~ msgstr "Öppna med annat program" #~ msgid "Press enter to search" #~ msgstr "Tryck på retur för att söka" #~ msgid "Quit" #~ msgstr "Avsluta" #~ msgid "OK" #~ msgstr "OK" #~ msgid "Open Shape Layer…" #~ msgstr "Öppna formlager…" #~ msgid "Load Map Layer" #~ msgstr "Läs in kartlager" #~ msgid "%f km" #~ msgstr "%f km" #~ msgid "%f m" #~ msgstr "%f m" #~ msgid "%f mi" #~ msgstr "%f engelska mil" #~ msgid "%f ft" #~ msgstr "%f fot" #~ msgid "Position not found" #~ msgstr "Plats hittades ej" #~ msgid "Country code: %s" #~ msgstr "Landskod: %s" #~ msgid "Population: %s" #~ msgstr "Folkmängd: %s" #~ msgid "Wheelchair access: %s" #~ msgstr "Åtkomst för rullstol: %s" #~ msgid "Failed to parse GeoJSON file" #~ msgstr "Misslyckades med att tolka GeoJSON-fil" #~ msgid "Export to PNG" #~ msgstr "Exportera till PNG" #~ msgid "_Share" #~ msgstr "_Dela" #~ msgid "Last known location and accuracy" #~ msgstr "Senast kända plats och noggrannhet" #~ msgid "" #~ "Last known location (latitude and longitude in degrees) and accuracy (in " #~ "meters)." #~ msgstr "" #~ "Senast kända plats (latitud och longitud i grader) och noggrannhet (i " #~ "meter)." #~ msgid "Description of last known location of user." #~ msgstr "Beskrivning av senast kända plats för användaren." #~ msgid "User set last known location" #~ msgstr "Användaren angav senast kända plats." #~ msgid "Whether the last known location was set manually by the user." #~ msgstr "Huruvida senast kända plats angavs manuellt av användaren." #~ msgid "I’m here!" #~ msgstr "Jag är här!" #~ msgid "%f km²" #~ msgstr "%f km²" #~ msgid "To" #~ msgstr "Till" #~ msgid "From" #~ msgstr "Från" #~ msgid " km2" #~ msgstr " km2" #~ msgid "Satellite" #~ msgstr "Satellit" 070701000001E8000081A4000000000000000000000001664134090000187F000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/ta.po# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # அருள்ராஜன் அ லை , 2013. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "maps&keywords=I18N+L10N&component=general\n" "POT-Creation-Date: 2013-10-26 10:29+0000\n" "PO-Revision-Date: 2013-10-27 09:31+0530\n" "Last-Translator: அருள்ராஜன் அ லை \n" "Language-Team: தமிழ் <>\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Gtranslator 2.91.6\n" #: ../data/gnome-maps.appdata.xml.in.h:1 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" #: ../data/gnome-maps.appdata.xml.in.h:2 msgid "" "
  • Search for country, region, city or street.
  • Search for specific " "types of locations, such as “Pubs near Main Street, Boston” or “Wi-Fi Access " "near Alexanderplatz, Berlin”.
  • " msgstr "" #: ../data/gnome-maps.appdata.xml.in.h:3 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" #. Translators: This is the program name. */ #: ../data/gnome-maps.desktop.in.in.h:1 ../src/application.js:54 #: ../src/mainWindow.js:341 ../src/main-window.ui.h:3 msgid "Maps" msgstr "வரைபடங்கள்" #: ../data/gnome-maps.desktop.in.in.h:2 msgid "A simple maps application" msgstr "ஓர் எளிய வரைபட பயன்பாடு" #: ../data/gnome-maps.desktop.in.in.h:3 msgid "Maps;" msgstr "வரைபடங்கள்;" #: ../data/org.gnome.maps.gschema.xml.in.h:1 msgid "Window size" msgstr "சாளர அளவு" #: ../data/org.gnome.maps.gschema.xml.in.h:2 msgid "Window size (width and height)." msgstr "சாளர அளவு (அகலம் மற்றும் உயரம்)" #: ../data/org.gnome.maps.gschema.xml.in.h:3 msgid "Window position" msgstr "சாளர அமைவிடம்" #: ../data/org.gnome.maps.gschema.xml.in.h:4 msgid "Window position (X and Y)." msgstr "சாளர அமைவிடம் (X மற்றும் Y)" #: ../data/org.gnome.maps.gschema.xml.in.h:5 msgid "Window maximized" msgstr "சாளரம் பெரிதாக்கப்பட்டது" #: ../data/org.gnome.maps.gschema.xml.in.h:6 msgid "Window maximization state" msgstr "சாளரம் பெரிதாக்கப்பட்ட நிலை." #: ../data/org.gnome.maps.gschema.xml.in.h:7 msgid "Last known location and accuracy" msgstr "கடைசியாகத் தெரிந்த அமைவிடம் மற்றும் துல்லியம்" #: ../data/org.gnome.maps.gschema.xml.in.h:8 msgid "" "Last known location (latitude and longitude in degrees) and accuracy (in " "meters)." msgstr "" "கடைசியாகத் தெரிந்த அமைவிடம்(அட்சரேகை மற்றும் தீர்க்கரேகை பாகைகளில்) மற்றும் துல்லியம்" "(மீட்டரில்)" #: ../data/org.gnome.maps.gschema.xml.in.h:9 msgid "Description of last known location" msgstr "கடைசியாகத் தெரிந்த அமைவிட தகவல்" #: ../data/org.gnome.maps.gschema.xml.in.h:10 msgid "Description of last known location of user." msgstr "கடைசியாகத் தெரிந்த பயனரின் அமைவிட தகவல்" #: ../data/org.gnome.maps.gschema.xml.in.h:11 msgid "Maximum number of search results" msgstr "தேடல் முடிவுகளின் அதிகபட்ச எண்" #: ../data/org.gnome.maps.gschema.xml.in.h:12 msgid "Maximum number of search results from geocode search." msgstr "புவிக்குறீயீடு மூலமான தேடல் முடிவுகளின் அதிகபட்ச எண்" #: ../data/org.gnome.maps.gschema.xml.in.h:13 msgid "User set last known location" msgstr "கடைசியாக அமைக்கப்பட்ட பயனர் அமைவிடம்" #: ../data/org.gnome.maps.gschema.xml.in.h:14 msgid "Whether the last known location was set manually by the user." msgstr "கடைசியாகத் தெரிந்த அமைவிடம் பயனரால் அமைக்கப்பட்டதா?" #: ../src/app-menu.ui.h:1 msgid "About" msgstr "இதைப் பற்றி" #: ../src/app-menu.ui.h:2 msgid "Quit" msgstr "வெளியேறு" #: ../src/context-menu.ui.h:1 msgid "What’s here?" msgstr "இங்கு உள்ளதென்ன?" #: ../src/context-menu.ui.h:2 msgid "I’m here!" msgstr "நான் இங்குள்ளேன்!" #: ../src/mainWindow.js:339 msgid "translator-credits" msgstr "translator-credits" #: ../src/mainWindow.js:342 msgid "A map application for GNOME" msgstr "GNOME-க்கான வரைபட பயன்பாடு" #: ../src/main-window.ui.h:1 msgid "Street" msgstr "தெரு" #: ../src/main-window.ui.h:2 msgid "Satellite" msgstr "செயற்கைக்கோள்" #. Translators: Accuracy of user location information */ #: ../src/mapLocation.js:116 msgid "Unknown" msgstr "தெரியாதது" #. Translators: Accuracy of user location information */ #: ../src/mapLocation.js:119 msgid "Exact" msgstr "மிகச்சரியான" #: ../src/mapLocation.js:123 msgid " km²" msgstr " கிமீ²" #. Translators: Showing name of place where user currently is and #. accuracy of this information (which is translated #. separately) #. */ #: ../src/userLocation.js:62 msgid "" "%s\n" "Position Accuracy: %s" msgstr "" "%s\n" "அமைவிடத்தின் துல்லியம்: %s" 070701000001E9000081A40000000000000000000000016641340900001F03000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/te.po# Telugu translation for gnome-maps. # Copyright (C) 2013 gnome-maps's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-maps package. # Praveen Illa , 2013. # msgid "" msgstr "" "Project-Id-Version: gnome-maps master\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "maps&keywords=I18N+L10N&component=general\n" "POT-Creation-Date: 2014-03-21 07:58+0000\n" "PO-Revision-Date: 2014-03-21 22:26+0530\n" "Last-Translator: Praveen Illa \n" "Language-Team: Telugu \n" "Language: te\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 1.5.4\n" #: ../data/gnome-maps.appdata.xml.in.h:1 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "పటాలు మీకు ప్రపంచవ్యాప్తంగా ఉన్న పటాలకు శీఘ్రంగా ప్రాప్యతను కల్పిస్తుంది. ఒక నగరం లేదా వీధి, లేదా ఒక " "స్నేహితుడు కలుసుకునే ప్రదేశాన్ని ప్రవేశపెట్టి వెదకడం ద్వారా మీరు వెతుకుతున్న ప్రదేశాన్ని త్వరగా కనుగొనడంలో " "సహకరిస్తుంది." #: ../data/gnome-maps.appdata.xml.in.h:2 msgid "" "
  • Search for country, region, city or street.
  • Search for specific " "types of locations, such as “Pubs near Main Street, Boston” or “Wi-Fi Access " "near Alexanderplatz, Berlin”.
  • " msgstr "" "
  • దేశము, ప్రాంతము, పట్టణం లేదా వీధి కోసం వెతకండి.
  • నిర్దిష్ట స్థానముల కోసం వెతకండి, " "“Theatres near RTC X Roads, Hyderabad” లేదా “Wi-Fi Access near Ameerpet, " "Hyderabad” వంటివి.
  • " #: ../data/gnome-maps.appdata.xml.in.h:3 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "పటాలు ప్రపంచవ్యాప్తంగా వేలమంది వ్యక్తుల సహకారంతో తయారుచేయబడిన ఓపెన్‌స్ట్రీట్‌మ్యాప్ డేటాబేసును వినియోగిస్తుంది." #. Translators: This is the program name. */ #: ../data/gnome-maps.desktop.in.in.h:1 ../src/application.js:55 #: ../src/mainWindow.js:300 ../src/main-window.ui.h:3 msgid "Maps" msgstr "పటాలు" #: ../data/gnome-maps.desktop.in.in.h:2 msgid "A simple maps application" msgstr "ఒక సరళ పటముల అనువర్తనం" #: ../data/gnome-maps.desktop.in.in.h:3 msgid "Maps;" msgstr "పటాలు;" #: ../data/org.gnome.maps.gschema.xml.in.h:1 msgid "Window size" msgstr "కిటికీ పరిమాణం" #: ../data/org.gnome.maps.gschema.xml.in.h:2 msgid "Window size (width and height)." msgstr "కిటికీ పరిమాణం (వెడల్పు మరియు ఎత్తు)." #: ../data/org.gnome.maps.gschema.xml.in.h:3 msgid "Window position" msgstr "కిటికీ స్థానము" #: ../data/org.gnome.maps.gschema.xml.in.h:4 msgid "Window position (X and Y)." msgstr "కిటికీ స్థానము (X మరియు Y)." #: ../data/org.gnome.maps.gschema.xml.in.h:5 msgid "Window maximized" msgstr "కిటికీ పెద్దగా చేయబడింది" #: ../data/org.gnome.maps.gschema.xml.in.h:6 msgid "Window maximization state" msgstr "కిటికీ పెద్దగా చేయబడిన స్థితి" #: ../data/org.gnome.maps.gschema.xml.in.h:7 msgid "Last known location and accuracy" msgstr "చివరిగా తెలిసిన స్థానము మరియు ఖచ్ఛితత్వం" #: ../data/org.gnome.maps.gschema.xml.in.h:8 msgid "" "Last known location (latitude and longitude in degrees) and accuracy (in " "meters)." msgstr "చివరిగా తెలిసిన స్థానము (అక్షాంశము, రేఖాంశము డిగ్రీలలో) మరియు ఖచ్ఛితత్వం (మీటర్లలో)" #: ../data/org.gnome.maps.gschema.xml.in.h:9 msgid "Description of last known location" msgstr "చివరిగా తెలిసిన స్థానము యొక్క వివరణ" #: ../data/org.gnome.maps.gschema.xml.in.h:10 msgid "Description of last known location of user." msgstr "చివరిగా తెలిసిన స్థాన వాడుకరి యొక్క వివరణ." #: ../data/org.gnome.maps.gschema.xml.in.h:11 msgid "Maximum number of search results" msgstr "గరిష్ట శోధన ఫలితాల సంఖ్య" #: ../data/org.gnome.maps.gschema.xml.in.h:12 msgid "Maximum number of search results from geocode search." msgstr "జియోకోడ్ శోధన నుండి గరిష్ట శోధన ఫలితాల సంఖ్య" #: ../data/org.gnome.maps.gschema.xml.in.h:13 msgid "User set last known location" msgstr "చివరిగా తెలిసిన స్థానమును వాడుకరి అమర్చు" #: ../data/org.gnome.maps.gschema.xml.in.h:14 msgid "Whether the last known location was set manually by the user." msgstr "చివరిగా తెలిసిన స్థానమును మానవీయంగా వాడుకరి అమర్చాలా వద్దా." #: ../data/org.gnome.maps.gschema.xml.in.h:15 msgid "Number of recent places to store" msgstr "భద్రపరుచాల్సిన ఇటీవలి ప్రదేశాల సంఖ్య." #: ../data/org.gnome.maps.gschema.xml.in.h:16 msgid "Number of recently visited places to store." msgstr "భద్రపరుచాల్సిన ఇటీవలి సందర్శించిన ప్రదేశాల సంఖ్య." #: ../src/app-menu.ui.h:1 msgid "About" msgstr "గురించి" #: ../src/app-menu.ui.h:2 msgid "Quit" msgstr "నిష్క్రమించు" #: ../src/context-menu.ui.h:1 msgid "What’s here?" msgstr "ఇక్కడ ఏమి ఉంది?" #: ../src/context-menu.ui.h:2 msgid "I’m here!" msgstr "ఇక్కడ ఉన్నాను!" #: ../src/mainWindow.js:298 msgid "translator-credits" msgstr "Praveen Illa , 2013, 2014." #: ../src/mainWindow.js:301 msgid "A map application for GNOME" msgstr "గ్నోమ్ కొరకు రూపొందించిన పటము అనువర్తనం" #: ../src/main-window.ui.h:1 msgid "Street" msgstr "వీధి" #: ../src/main-window.ui.h:2 msgid "Satellite" msgstr "ఉపగ్రహం" #. Translators: Accuracy of user location information */ #: ../src/mapLocation.js:164 msgid "Unknown" msgstr "తెలియదు" #. Translators: Accuracy of user location information */ #: ../src/mapLocation.js:167 msgid "Exact" msgstr "ఖచ్ఛితం" #: ../src/mapLocation.js:177 msgid " km2" msgstr " కిమీ2" #. Translators: Showing name of place where user currently is and #. accuracy of this information (which is translated #. separately) #. */ #: ../src/userLocation.js:62 #, javascript-format msgid "" "%s\n" "Position Accuracy: %s" msgstr "" "%s\n" "స్థానము ఖచ్ఛితత్వం: %s" #~ msgid " km²" #~ msgstr "కిమీ²" 070701000001EA000081A400000000000000000000000166413409000055DF000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/tg.po# Tajik translation for gnome-maps. # Copyright (C) 2013 gnome-maps's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-maps package. # Victor Ibragimov , 2013, 2014, 2015 # msgid "" msgstr "" "Project-Id-Version: gnome-maps master\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "maps&keywords=I18N+L10N&component=general\n" "POT-Creation-Date: 2015-03-16 19:54+0000\n" "PO-Revision-Date: 2015-03-17 09:59+0500\n" "Last-Translator: Victor Ibragimov \n" "Language-Team: Tajik \n" "Language: tg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 1.6.5\n" #: ../data/org.gnome.Maps.appdata.xml.in.h:1 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "Харитаҳо барои шумо ба тамоми ҳаритаҳои ҷаҳон имкони дастраси зуд медиҳад. " "Ин барнома ба шумо инчунин имкон медиҳад, ки тавонед шаҳр ё кӯчаи " "мехостагиро ёфт кунед ё барои бо дӯстон фохӯрдан маконро муайян кунед." #: ../data/org.gnome.Maps.appdata.xml.in.h:2 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "Харитаҳо пойгоҳи иттилоотии OpenStreetMap-ро, ки бо миллионҳо одам аз тамоми " "ҷаҳон ташкил шудааст, истифода мебарад." #. Translators: Search is carried out on OpenStreetMap data using Nominatim. #. Visit http://wiki.openstreetmap.org/wiki/Nominatim/Special_Phrases and click #. your language to see what words you can use for the translated search. #: ../data/org.gnome.Maps.appdata.xml.in.h:6 #| msgid "" #| "
  • Search for country, region, city or street.
  • Search for " #| "specific types of locations, such as “Pubs near Main Street, Boston” or " #| "“Wi-Fi Access near Alexanderplatz, Berlin”.
  • " msgid "" "You can even search for specific types of locations, such as “Pubs near Main " "Street, Boston” or “Hotels near Alexanderplatz, Berlin”." msgstr "" "Шумо ҳатто метавонед навъи маконҳои махсусро, монанди “Қаҳвахонаҳо дар назди " "хиёбони Рудакӣ” ё “Меҳмонхонаҳо дар назди хиёбони Рудакӣ, Душанбе” ҷустуҷӯ " "кунед." #. Translators: This is the program name. */ #: ../data/org.gnome.Maps.desktop.in.h:1 ../data/ui/main-window.ui.h:1 #: ../src/application.js:78 ../src/mainWindow.js:367 msgid "Maps" msgstr "Харитаҳо" #: ../data/org.gnome.Maps.desktop.in.h:2 msgid "A simple maps application" msgstr "Барномаи оддии харитаҳо" #: ../data/org.gnome.Maps.desktop.in.h:3 msgid "Maps;" msgstr "Харитаҳо;" #: ../data/org.gnome.Maps.gschema.xml.in.h:1 msgid "Window size" msgstr "Андозаи равзана" #: ../data/org.gnome.Maps.gschema.xml.in.h:2 msgid "Window size (width and height)." msgstr "Андозаи равзана (бар ва баландӣ)." #: ../data/org.gnome.Maps.gschema.xml.in.h:3 msgid "Window position" msgstr "Мавқеи равзана" #: ../data/org.gnome.Maps.gschema.xml.in.h:4 msgid "Window position (X and Y)." msgstr "Мавқеи равзана (X ва Y)." #: ../data/org.gnome.Maps.gschema.xml.in.h:5 msgid "Window maximized" msgstr "Равзана дар ҳадди аксар" #: ../data/org.gnome.Maps.gschema.xml.in.h:6 msgid "Window maximization state" msgstr "Вазъияти ҳадди акcаpёбии равзана" #: ../data/org.gnome.Maps.gschema.xml.in.h:7 msgid "Maximum number of search results" msgstr "Миқдори зиёдтарини натиҷаҳои ҷустуҷӯ" #: ../data/org.gnome.Maps.gschema.xml.in.h:8 msgid "Maximum number of search results from geocode search." msgstr "Миқдори зиёдтарини натиҷаҳои ҷустуҷӯ аз ҷустуҷӯи рамзи ҷуғрофӣ." #: ../data/org.gnome.Maps.gschema.xml.in.h:9 msgid "Number of recent places to store" msgstr "Миқдори маконҳои охирин барои нигоҳ доштан" #: ../data/org.gnome.Maps.gschema.xml.in.h:10 msgid "Number of recently visited places to store." msgstr "Миқдори маконҳои кушодашудаи охирин барои нигоҳ доштан." #: ../data/org.gnome.Maps.gschema.xml.in.h:11 msgid "Facebook check-in privacy setting" msgstr "Танзимоти махфияти бақайдгирии Facebook" #: ../data/org.gnome.Maps.gschema.xml.in.h:12 msgid "" "Latest used Facebook check-in privacy setting. Possible values are: " "EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS or SELF." msgstr "" "Танзимоти махфияти бақайдгирии истифодашудаи охирин дар Facebook. Қиматҳои " "имконпазир: ҲАР ЯК КАС, ДӮСТОНИ_ДӮСТОН, ҲАМАИ_ДӮСТОН ё ХУД." #: ../data/org.gnome.Maps.gschema.xml.in.h:13 msgid "Foursquare check-in privacy setting" msgstr "Танзимоти махфияти бақайдгирии Foursquare" #: ../data/org.gnome.Maps.gschema.xml.in.h:14 msgid "" "Latest used Foursquare check-in privacy setting. Possible values are: " "public, followers or private." msgstr "" "Танзимоти махфияти бақайдгирии истифодашудаи охирин дар Foursquare. Қиматҳои " "имконпазир: иҷтимоӣ, пайравон ё махфият." #: ../data/org.gnome.Maps.gschema.xml.in.h:15 msgid "Foursquare check-in Facebook broadcasting" msgstr "Пахшкунии бақайдгирии Facebook дар Foursquare" #: ../data/org.gnome.Maps.gschema.xml.in.h:16 msgid "" "Indicates if Foursquare should broadcast the check-in as a post in the " "Facebook account associated with the Foursquare account." msgstr "" "Муайянкунии Foursquare барои пахшкунии бақайдгирӣ ҳамчун паём дар ҳисоби " "Facebook-и марбут ба ҳисоби Foursquare." #: ../data/org.gnome.Maps.gschema.xml.in.h:17 msgid "Foursquare check-in Twitter broadcasting" msgstr "Пахшкунии бақайдгирии Twitter дар Foursquare" #: ../data/org.gnome.Maps.gschema.xml.in.h:18 msgid "" "Indicates if Foursquare should broadcast the check-in as a tweet in the " "Twitter account associated with the Foursquare account." msgstr "" "Муайянкунии Foursquare барои пахшкунии бақайдгирӣ ҳамчун паём дар ҳисоби " "Twitter-и марбут ба ҳисоби Foursquare." #: ../data/ui/app-menu.ui.h:1 msgid "About" msgstr "Дар бораи барнома" #: ../data/ui/app-menu.ui.h:2 msgid "Quit" msgstr "Хуруҷ" #: ../data/ui/check-in-dialog.ui.h:1 msgid "Visibility" msgstr "Қобили намоиш" #: ../data/ui/check-in-dialog.ui.h:2 msgid "Post on Facebook" msgstr "Интишор дар Facebook" #: ../data/ui/check-in-dialog.ui.h:3 msgid "Post on Twitter" msgstr "Интишор дар Twitter" #: ../data/ui/check-in-dialog.ui.h:4 ../data/ui/send-to-dialog.ui.h:2 msgid "_Cancel" msgstr "_Бекор кардан" #. Translators: Check in is used as a verb #: ../data/ui/check-in-dialog.ui.h:5 ../data/ui/map-bubble.ui.h:5 msgid "C_heck in" msgstr "_Бақайдгирӣ" #: ../data/ui/check-in-dialog.ui.h:6 msgid "Everyone" msgstr "Ҳар як кас" #: ../data/ui/check-in-dialog.ui.h:7 msgid "Friends of friends" msgstr "Дӯстони дӯстон" #: ../data/ui/check-in-dialog.ui.h:8 msgid "Just friends" msgstr "Танҳо дӯстон" #: ../data/ui/check-in-dialog.ui.h:9 msgid "Just me" msgstr "Танҳо ман" #: ../data/ui/check-in-dialog.ui.h:10 msgid "Public" msgstr "Ҷамъиятӣ" #: ../data/ui/check-in-dialog.ui.h:11 msgid "Followers" msgstr "Пайравон" #: ../data/ui/check-in-dialog.ui.h:12 msgid "Private" msgstr "Махфӣ" #: ../data/ui/context-menu.ui.h:1 msgid "What’s here?" msgstr "Дар он ҷо чист?" #: ../data/ui/location-service-notification.ui.h:1 msgid "Turn on location services to find your location" msgstr "Барои ёфтани ҷойгиршавии худ, хидматҳои ҷойгиршавиро фаъол кунед" #: ../data/ui/location-service-notification.ui.h:2 msgid "Location Settings" msgstr "Танзимоти ҷойгиршавӣ" #: ../data/ui/main-window.ui.h:2 msgid "Go to current location" msgstr "Гузариш ба ҷойгиршавии ҷорӣ" #: ../data/ui/main-window.ui.h:3 msgid "Choose map type" msgstr "Интихоби намуди харита" #: ../data/ui/main-window.ui.h:4 msgid "Toggle route planner" msgstr "Фаъолсозии нақшакаши масирҳо" #: ../data/ui/main-window.ui.h:5 msgid "Toggle favorites" msgstr "Фаъолсозии баргузидаҳо" #: ../data/ui/main-window.ui.h:6 msgid "Maps is offline!" msgstr "Харитаҳо дар офлайн мебошанд!" #: ../data/ui/main-window.ui.h:7 msgid "" "Maps need an active internet connection to function properly, but one can't " "be found." msgstr "" "Барои кори комил ба Харитаҳо пайвасти интернети фаъол лозим аст, вале " "пайваст ёфт нашуд." #: ../data/ui/main-window.ui.h:8 msgid "Check your connection and proxy settings." msgstr "Танзимоти прокси ва пайвасти худро санҷед." #: ../data/ui/map-bubble.ui.h:1 msgid "Add to new route" msgstr "Илова кардан ба масири нав" #: ../data/ui/map-bubble.ui.h:2 msgid "Open with another application" msgstr "Кушодан бо барномаи дигар" #: ../data/ui/map-bubble.ui.h:3 msgid "Mark as favorite" msgstr "Қайд кардан ҳамчун баргузида" #: ../data/ui/map-bubble.ui.h:6 msgid "Check in here" msgstr "Инҷо ба қайд гиред" #: ../data/ui/search-popup.ui.h:1 msgid "Press enter to search" msgstr "Барои ҷустуҷӯ Enter-ро пахш кунед" #: ../data/ui/send-to-dialog.ui.h:1 msgid "Open location" msgstr "Кушодани ҷойгиршавӣ" #: ../data/ui/send-to-dialog.ui.h:3 msgid "_Open" msgstr "_Кушодан" #: ../data/ui/sidebar.ui.h:1 msgid "Route search by GraphHopper" msgstr "Ҷустуҷӯи масир тавассути GraphHopper" #: ../data/ui/social-place-more-results-row.ui.h:1 msgid "Show more results" msgstr "Намоиш додани натиҷаҳи дигар" #: ../data/ui/user-location-bubble.ui.h:1 ../src/geoclue.js:208 msgid "Current location" msgstr "Ҷойгиршавии ҷорӣ" #. To translators: %s can be "Unknown", "Exact" or "%f km²" #: ../data/ui/user-location-bubble.ui.h:4 #, no-c-format #| msgid "" #| "%s\n" #| "Position Accuracy: %s" msgid "Accuracy: %s" msgstr "Саҳеҳӣ: %s" #. Translators: %s is the place name that user wanted to check-in */ #: ../src/checkIn.js:136 #, javascript-format msgid "Cannot find \"%s\" in the social service" msgstr "\"%s\" дар хидмати иҷтимоӣ ёфт нашуд" #: ../src/checkIn.js:138 msgid "Cannot find a suitable place to check-in in this location" msgstr "Барои бақайдгирии ин макон, ҷои мувофиқ ёфт нашуд" #: ../src/checkIn.js:142 msgid "" "Credentials have expired, please open Online Accounts to sign in and enable " "this account" msgstr "" "Муҳлати маълумоти корбар ба анҷом расид, лутфан барои ворид шудан ва фаъол " "кардани ин ҳисоб, ба Ҳисобҳои онлайн ворид шавед" #: ../src/checkIn.js:154 ../src/checkInDialog.js:290 msgid "An error has occurred" msgstr "Хато ба амал омад" #: ../src/checkInDialog.js:177 msgid "Select an account" msgstr "Ҳисоберо интихоб кунед" #: ../src/checkInDialog.js:182 ../src/checkInDialog.js:254 msgid "Loading" msgstr "Дар ҳоли боргирӣ" #: ../src/checkInDialog.js:206 msgid "Select a place" msgstr "Маконеро интихоб кунед" #: ../src/checkInDialog.js:211 msgid "" "Maps cannot find the place to check in to with Facebook. Please select one " "from this list." msgstr "" "Ягон макон барои бақайдгирӣ дар Facebook ёфт нашуд. Лутфан, маконеро аз " "рӯйхат интихоб намоед." #: ../src/checkInDialog.js:213 msgid "" "Maps cannot find the place to check in to with Foursquare. Please select one " "from this list." msgstr "" "Ягон макон барои бақайдгирӣ дар Foursquare ёфт нашуд. Лутфан, маконеро аз " "рӯйхат интихоб намоед." #. Translators: %s is the name of the place to check in. #. */ #: ../src/checkInDialog.js:228 #, javascript-format msgid "Check in to %s" msgstr "Бақайдгирӣ ба %s" #. Translators: %s is the name of the place to check in. #. */ #: ../src/checkInDialog.js:238 #, javascript-format msgid "Write an optional message to check in to %s." msgstr "Барои бақайдгирӣ ба %s, паёми интихобиро нависед." #: ../src/mainWindow.js:315 msgid "Failed to connect to location service" msgstr "Пайваст ба хидмати ҷойгиршавӣ иҷро нашуд" #: ../src/mainWindow.js:320 msgid "Position not found" msgstr "Мавқеъ ёфт нашуд" #: ../src/mainWindow.js:365 msgid "translator-credits" msgstr "Victor Ibragimov, victor.ibragimov@gmail.com" #: ../src/mainWindow.js:368 msgid "A map application for GNOME" msgstr "Барномаи харитаҳо барои GNOME" #. Translators: #. * This means wheelchairs have full unrestricted access. #. */ #: ../src/place.js:121 msgid "yes" msgstr "ҳа" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. */ #: ../src/place.js:128 msgid "limited" msgstr "маҳдуд" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. */ #: ../src/place.js:134 msgid "no" msgstr "не" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. */ #: ../src/place.js:141 msgid "designated" msgstr "муайяншуда" #: ../src/routeService.js:70 msgid "No route found." msgstr "Ягон масир ёфт нашуд" #: ../src/routeService.js:77 msgid "Route request failed." msgstr "Дархости масир қатъ шуд." #: ../src/routeService.js:148 msgid "Start!" msgstr "Оғоз!" #: ../src/placeBubble.js:102 #, javascript-format msgid "Postal code: %s" msgstr "Рамзи почта: %s" #: ../src/placeBubble.js:104 #, javascript-format msgid "Country code: %s" msgstr "Рамзи кишвар: %s" #: ../src/placeBubble.js:113 #, javascript-format msgid "Population: %s" msgstr "Аҳолӣ: %s" #: ../src/placeBubble.js:116 #, javascript-format msgid "Opening hours: %s" msgstr "Соатҳои кушоиш: %s" #: ../src/placeBubble.js:121 msgid "Wikipedia" msgstr "Wikipedia" #: ../src/placeBubble.js:126 #, javascript-format msgid "Wheelchair access: %s" msgstr "Дастрасӣ бо аробаи маъюбӣ: %s" #. Translators: %s is a time expression with the format "%f h" or "%f min" */ #: ../src/sidebar.js:217 #, javascript-format msgid "Estimated time: %s" msgstr "Вақти тахминӣ: %s" #: ../src/translations.js:56 ../src/translations.js:58 msgid "around the clock" msgstr "дар гирди соат" #: ../src/translations.js:60 msgid "from sunrise to sunset" msgstr "аз тулӯъ то шафақ" #. Translators: #. * This is a format string with two separate time ranges #. * such as "Mo-Fr 10:00-19:00 Sa 12:00-16:00" #. * The space between the format place holders could be #. * substituted with the appropriate separator. #. */ #: ../src/translations.js:79 #, javascript-format msgctxt "time range list" msgid "%s %s" msgstr "%s %s" #. Translators: #. * This is a format string with three separate time ranges #. * such as "Mo-Fr 10:00-19:00 Sa 10:00-17:00 Su 12:00-16:00" #. * The space between the format place holders could be #. * substituted with the appropriate separator. #. */ #: ../src/translations.js:91 #, javascript-format msgctxt "time range list" msgid "%s %s %s" msgstr "%s %s %s" #. Translators: #. * This is a format string consisting of a part specifying the days for #. * which the specified time is applied and the time interval #. * specification as the second argument. #. * The space between the format place holders could be substituted with #. * the appropriate separator or phrase and the ordering of the arguments #. * can be rearranged with the %n#s syntax. */ #: ../src/translations.js:122 #, javascript-format msgctxt "time range component" msgid "%s %s" msgstr "%s %s" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. */ #: ../src/translations.js:154 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s,%s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. */ #: ../src/translations.js:168 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s,%s,%s" #: ../src/translations.js:187 msgid "every day" msgstr "ҳар рӯз" #. Translators: #. * This represents a range of days with a starting and ending day. #. */ #: ../src/translations.js:199 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s-%s" #: ../src/translations.js:210 msgid "public holidays" msgstr "идҳои ҷамъиятӣ" #: ../src/translations.js:212 msgid "school holidays" msgstr "идҳои мактабӣ" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. */ #: ../src/translations.js:252 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: ../src/translations.js:266 msgid "not open" msgstr "кушода нест" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. */ #: ../src/translations.js:281 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s-%s" #. Translators: Accuracy of user location information */ #: ../src/utils.js:257 msgid "Unknown" msgstr "Номаълум" #. Translators: Accuracy of user location information */ #: ../src/utils.js:260 msgid "Exact" msgstr "Дақиқ" #: ../src/utils.js:355 #, javascript-format msgid "%f h" msgstr "%f соат" #: ../src/utils.js:357 #, javascript-format msgid "%f min" msgstr "%f дақиқа" #: ../src/utils.js:359 #, javascript-format msgid "%f s" msgstr "%f сония" #. Translators: This is a distance measured in kilometers */ #: ../src/utils.js:370 #, javascript-format msgid "%f km" msgstr "%f км" #. Translators: This is a distance measured in meters */ #: ../src/utils.js:373 #, javascript-format msgid "%f m" msgstr "%f м" #. Translators: This is a distance measured in miles */ #: ../src/utils.js:381 #, javascript-format msgid "%f mi" msgstr "%f мил" #. Translators: This is a distance measured in feet */ #: ../src/utils.js:384 #, javascript-format msgid "%f ft" msgstr "%f фут" #~ msgid "Last known location and accuracy" #~ msgstr "Ҷойгиршавии охирин ва дақиқӣ" #~ msgid "" #~ "Last known location (latitude and longitude in degrees) and accuracy (in " #~ "meters)." #~ msgstr "" #~ "Ҷойгиршавии охирин (арз ва тӯл дар дараҷаҳо) ва дақиқӣ (дар метрҳо)." #~ msgid "Description of last known location" #~ msgstr "Тавсифи ҷойгиршавии охирин" #~ msgid "Description of last known location of user." #~ msgstr "Тавсифи ҷойгиршавии охирини корбар." #~ msgid "User set last known location" #~ msgstr "Ҷойгиршавии охирини таъиншудаи корбар" #~ msgid "Whether the last known location was set manually by the user." #~ msgstr "" #~ "Интихоби ҷойгиршавии охирини муайяншуда ба таври дастӣ аз ҷониби корбар." #~ msgid "I’m here!" #~ msgstr "Ман дар ҳамон ҷоям!" #~ msgid "Street" #~ msgstr "Кӯча" #~ msgid "Satellite" #~ msgstr "Радиф" #~ msgid " km2" #~ msgstr " км2" #~ msgid " km²" #~ msgstr " км²" 070701000001EB000081A4000000000000000000000001664134090000E24F000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/tr.po# Turkish translation for gnome-maps. # Copyright (C) 2013-2023 gnome-maps's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-maps package. # # Gökhan Gurbetoğlu , 2014, 2015. # Osman Karagöz , 2017. # Çağatay Yiğit Şahin , 2017. # Furkan Ahmet Kara , 2018. # Muhammet Kara , 2013, 2014, 2015, 2016, 2018. # Ahmet Elgun , 2019. # Sabri Ünal , 2013, 2017, 2018, 2020, 2021, 2022, 2023, 2024. # msgid "" msgstr "" "Project-Id-Version: gnome-maps master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2024-02-18 09:24+0000\n" "PO-Revision-Date: 2024-02-23 01:22+0300\n" "Last-Translator: Sabri Ünal \n" "Language-Team: Turkish \n" "Language: tr\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: Poedit 3.4.2\n" "X-Poedit-SourceCharset: UTF-8\n" #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.appdata.xml.in.in:6 data/org.gnome.Maps.desktop.in.in:4 #: data/ui/main-window.ui:27 src/application.js:64 src/mainWindow.js:147 #: src/mainWindow.js:647 msgid "Maps" msgstr "Haritalar" #: data/org.gnome.Maps.appdata.xml.in.in:7 msgid "Find places around the world" msgstr "Dünya genelindeki yerleri bul" #: data/org.gnome.Maps.appdata.xml.in.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "Haritalar, dünya çapındaki haritalara hızla erişmenizi sağlar. Şehir ya da " "sokak araması yoluyla aramakta olduğunuz yeri hızla bulmanızı veya " "arkadaşınızla buluşacağınız yeri belirlemenizi sağlar." #: data/org.gnome.Maps.appdata.xml.in.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "Haritalar, küresel çapta yüzbinlerce insanca hazırlanan OpenStreetMap ile " "ortak veri tabanını kullanır." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Maps.appdata.xml.in.in:451 src/mainWindow.js:644 msgid "The GNOME Project" msgstr "GNOME Projesi" #: data/org.gnome.Maps.desktop.in.in:5 msgid "A simple maps application" msgstr "Basit harita uygulaması" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in.in:14 msgid "Maps;" msgstr "Haritalar;Maps;" #: data/org.gnome.Maps.desktop.in.in:17 msgid "Allows your location to be shown on the map." msgstr "Konumunuzun haritada gösterilmesini sağlar." #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "son görüntülenen konum" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "Son görüntülenen konumun koordinatları." #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "yakınlaştırma" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "Yakınlaştırma düzeyi" #: data/org.gnome.Maps.gschema.xml:21 msgid "rotation" msgstr "döndürme" #: data/org.gnome.Maps.gschema.xml:22 msgid "Map rotation in radians" msgstr "Harita döndürme, radyan türünden" #: data/org.gnome.Maps.gschema.xml:26 msgid "Map type" msgstr "Harita türü" #: data/org.gnome.Maps.gschema.xml:27 msgid "The type of map to display (street, aerial, etc.)" msgstr "Görüntülenecek haritanın türü (sokak, uydu, vb.)" #: data/org.gnome.Maps.gschema.xml:31 msgid "Window size" msgstr "Pencere boyutu" #: data/org.gnome.Maps.gschema.xml:32 msgid "Window size (width and height)." msgstr "Pencere boyutu (genişlik ve yükseklik)." #: data/org.gnome.Maps.gschema.xml:36 msgid "Window position" msgstr "Pencere konumu" #: data/org.gnome.Maps.gschema.xml:37 msgid "Window position (X and Y)." msgstr "Pencere konumu (X ve Y)." #: data/org.gnome.Maps.gschema.xml:41 msgid "Window maximized" msgstr "Pencere büyültüldüğünde" #: data/org.gnome.Maps.gschema.xml:42 msgid "Window maximization state" msgstr "Pencerenin büyütülme durumu" #: data/org.gnome.Maps.gschema.xml:46 msgid "Maximum number of search results" msgstr "Azami arama sonucu sayısı" #: data/org.gnome.Maps.gschema.xml:47 msgid "Maximum number of search results from geocode search." msgstr "Geocode aramasından azami arama sonucu sayısı." #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent places to store" msgstr "Saklanacak son konumların sayısı" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited places to store." msgstr "Saklanacak yakın zamanda ziyaret edilen yerlerin sayısı." #: data/org.gnome.Maps.gschema.xml:56 msgid "Number of recent routes to store" msgstr "Saklanacak son rotaların sayısı" #: data/org.gnome.Maps.gschema.xml:57 msgid "Number of recently visited routes to store." msgstr "Saklanacak yakın zamanda ziyaret edilen rotaların sayısı." #: data/org.gnome.Maps.gschema.xml:61 msgid "OpenStreetMap username or email address" msgstr "OpenStreetMap kullanıcı adı ya da e-posta adresi" #: data/org.gnome.Maps.gschema.xml:62 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "" "Kullanıcının OpenStreetMap verilerini düzenlemek için oturup açıp açmamış " "olduğunu belirtir." #: data/org.gnome.Maps.gschema.xml:66 msgid "Last used transportation type for routing" msgstr "Yönlendirme için son kullanılan ulaşım şekli" #: data/org.gnome.Maps.gschema.xml:70 msgid "Show scale" msgstr "Ölçeği göster" #: data/org.gnome.Maps.gschema.xml:71 msgid "Whether to show the scale." msgstr "Ölçeğin gösterilmesi." #: data/ui/context-menu.ui:6 msgid "Route from Here" msgstr "Buradan Rota" #: data/ui/context-menu.ui:10 msgid "Add Intermediate Destination" msgstr "Ara Durak Ekle" #: data/ui/context-menu.ui:14 msgid "Route to Here" msgstr "Buraya Rota" #: data/ui/context-menu.ui:20 msgid "What's Here?" msgstr "Burada Ne Var?" #: data/ui/context-menu.ui:24 msgid "Copy Location" msgstr "Konumu Kopyala" # Sağ tıklama menüsü ögesi olduğu için tümce düzeni. #: data/ui/context-menu.ui:28 msgid "Add to OpenStreetMap…" msgstr "OpenStreetMap’e Ekle…" #: data/ui/export-view-dialog.ui:7 msgid "Export view" msgstr "Görünümü dışa aktar" #: data/ui/export-view-dialog.ui:16 data/ui/send-to-dialog.ui:10 #: data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "İ_ptal" #: data/ui/export-view-dialog.ui:26 msgid "_Export" msgstr "Dışa _Aktar" #. Translators: This is a tooltip #: data/ui/favorite-list-row.ui:72 msgid "Remove Favorite" msgstr "Gözdeyi Kaldır" #: data/ui/favorites-popover.ui:11 msgid "No Favorites" msgstr "Gözde Yok" #: data/ui/favorites-popover.ui:12 msgid "Add places to your favorites to get them listed here" msgstr "Burada listelenmeleri için yerleri gözdelerinize ekleyin" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:11 src/geoclue.js:106 msgid "Current Location" msgstr "Geçerli Konum" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:19 msgid "Layers" msgstr "Katmanlar" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:11 msgid "Print Route" msgstr "Rotayı Yazdır" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:21 msgid "Favorites" msgstr "Gözdeler" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:30 msgid "Route Planner" msgstr "Rota Planlayıcı" #: data/ui/help-overlay.ui:12 msgctxt "shortcut window" msgid "General" msgstr "Genel" #: data/ui/help-overlay.ui:15 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "Kısayolları Göster" #: data/ui/help-overlay.ui:21 msgctxt "shortcut window" msgid "Search" msgstr "Ara" #: data/ui/help-overlay.ui:27 msgctxt "shortcut window" msgid "Explore points-of-interest" msgstr "İlgi çekici noktaları keşfet" #: data/ui/help-overlay.ui:33 msgctxt "shortcut window" msgid "Show last search results" msgstr "Son arama sonuçlarını göster" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "Rota planlayıcıyı aç/kapat" #: data/ui/help-overlay.ui:45 msgctxt "shortcut window" msgid "Print route" msgstr "Rotayı yazdır" #: data/ui/help-overlay.ui:51 msgctxt "shortcut window" msgid "Quit" msgstr "Çıkış" #: data/ui/help-overlay.ui:57 msgctxt "shortcut window" msgid "Open main menu" msgstr "Ana menüyü aç" #: data/ui/help-overlay.ui:65 msgctxt "shortcut window" msgid "Map View" msgstr "Harita Görünümü" #: data/ui/help-overlay.ui:68 msgctxt "shortcut window" msgid "Zoom in" msgstr "Yakınlaştır" #: data/ui/help-overlay.ui:74 msgctxt "shortcut window" msgid "Zoom out" msgstr "Uzaklaştır" #: data/ui/help-overlay.ui:80 msgctxt "shortcut window" msgid "Rotate clockwise" msgstr "Saat yönüne döndür" #: data/ui/help-overlay.ui:86 msgctxt "shortcut window" msgid "Rotate counter-clockwise" msgstr "Saat yönünün tersine döndür" #: data/ui/help-overlay.ui:92 msgctxt "shortcut window" msgid "Reset rotation" msgstr "Döndürmeyi sıfırla" #: data/ui/help-overlay.ui:98 msgctxt "shortcut window" msgid "Toggle scale" msgstr "Ölçeği değiştir" #: data/ui/help-overlay.ui:104 msgctxt "shortcut window" msgid "Go to current location" msgstr "Geçerli konuma git" #: data/ui/help-overlay.ui:114 msgctxt "shortcut window" msgid "Switch to street view" msgstr "Sokak görünümüne geç" #: data/ui/help-overlay.ui:121 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "Kuş bakışı görünüme geç" #: data/ui/help-overlay.ui:127 msgctxt "shortcut window" msgid "Open shape layer" msgstr "Biçim katmanını aç" #: data/ui/layers-popover.ui:7 msgid "Show Scale" msgstr "Ölçeği Göster" #: data/ui/layers-popover.ui:16 msgid "Enable Experimental Map" msgstr "Deneysel Haritayı Etkinleştir" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:21 msgid "Open Shape Layer…" msgstr "Biçim Katmanını Aç…" #: data/ui/main-window.ui:8 msgid "Set up OpenStreetMap Account…" msgstr "OpenStreetMap Hesabını Ayarla…" #: data/ui/main-window.ui:12 msgid "Export as Image…" msgstr "Resim Olarak Dışarıya Aktar…" #: data/ui/main-window.ui:17 msgid "_Keyboard Shortcuts" msgstr "_Klavye Kısayolları" #: data/ui/main-window.ui:22 msgid "About Maps" msgstr "Haritalar Hakkında" #: data/ui/main-window.ui:48 msgid "Main Menu" msgstr "Ana Menü" #: data/ui/osm-account-dialog.ui:5 msgid "OpenStreetMap Account" msgstr "OpenStreetMap Hesabı" #: data/ui/osm-account-dialog.ui:31 msgid "Sign In To Edit Maps" msgstr "Haritaları Düzenlemek İçin Oturum Aç" #: data/ui/osm-account-dialog.ui:32 msgid "Help to improve the map, using an OpenStreetMap account." msgstr "OpenStreetMap hesabı kullanarak haritayı iyileştirmeye yardım edin." #: data/ui/osm-account-dialog.ui:36 msgid "Sign In" msgstr "Oturum Aç" #: data/ui/osm-account-dialog.ui:59 msgid "Verification" msgstr "Doğrulama" #: data/ui/osm-account-dialog.ui:60 msgid "" "Copy the verification code shown when authorizing access in the browser." msgstr "Doğrulama kodunu tarayıcıda erişimi yetkilendirirken kopyala." #: data/ui/osm-account-dialog.ui:69 msgid "Verification Code" msgstr "Doğrulama Kodu" #: data/ui/osm-account-dialog.ui:75 msgid "Verify" msgstr "Doğrula" #: data/ui/osm-account-dialog.ui:110 msgid "Signed In" msgstr "Oturum Açıldı" #: data/ui/osm-account-dialog.ui:111 msgid "Your OpenStreetMap account is active." msgstr "OpenStreetMap hesabınız etkin." #: data/ui/osm-account-dialog.ui:129 msgid "Sign Out" msgstr "Oturumu Kapat" #: data/ui/osm-edit-address.ui:11 msgid "Street" msgstr "Cadde/Sokak" #: data/ui/osm-edit-address.ui:22 msgid "House number" msgstr "Bina numarası" #: data/ui/osm-edit-address.ui:33 msgid "Postal code" msgstr "Posta kodu" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:44 msgid "City" msgstr "Şehir" #: data/ui/osm-edit-dialog.ui:8 msgctxt "dialog title" msgid "Edit on OpenStreetMap" msgstr "OpenStreetMap’te Düzenle" #: data/ui/osm-edit-dialog.ui:57 msgid "Type" msgstr "Tür" #: data/ui/osm-edit-dialog.ui:79 msgid "None" msgstr "Yok" #: data/ui/osm-edit-dialog.ui:108 msgid "Add Field" msgstr "Alan Ekle" #: data/ui/osm-edit-dialog.ui:130 msgid "Comment" msgstr "Yorum" #: data/ui/osm-edit-dialog.ui:158 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "Harita değişiklikleri, OpenStreetMap verisini\n" "kullanan tüm haritalarda görünecektir." #: data/ui/osm-edit-dialog.ui:186 msgid "Recently Used" msgstr "Sok Kullanılan" #: data/ui/osm-edit-dialog.ui:225 src/mapView.js:671 msgid "Cancel" msgstr "İptal" #: data/ui/osm-edit-dialog.ui:238 src/osmEditDialog.js:531 msgid "Next" msgstr "İleri" #: data/ui/osm-edit-wikipedia.ui:8 msgid "Article" msgstr "Makale" #: data/ui/osm-edit-wikipedia.ui:21 msgid "Wikidata tag" msgstr "Wikidata etiketi" #: data/ui/osm-edit-wikipedia.ui:32 msgid "Load Wikidata tag for article" msgstr "Makale için Wikidata etiketi yükle" #: data/ui/place-popover.ui:23 src/searchBar.js:55 msgid "Explore Nearby Places" msgstr "Yakın Yerleri Keşfet" #: data/ui/place-popover.ui:82 src/application.js:277 msgid "No results found" msgstr "Hiçbir sonuç bulunamadı" #: data/ui/place-popover.ui:92 src/application.js:255 msgid "An error has occurred" msgstr "Hata oluştu" #. Translators: This is a tooltip #: data/ui/route-entry.ui:12 msgid "Change Route Order" msgstr "Rota Sıralamasını Değiştir" #: data/ui/send-to-dialog.ui:7 msgid "Open Location" msgstr "Konum Aç" #: data/ui/send-to-dialog.ui:64 msgid "Copy" msgstr "Kopyala" #: data/ui/send-to-dialog.ui:70 msgid "Send To…" msgstr "Gönder…" #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:62 msgid "Open Shape Layer" msgstr "Biçim Katmanını Aç" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "_Aç" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:32 msgid "Toggle visible" msgstr "Görünürlüğü aç/kapat" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:44 msgid "Remove Shape Layer" msgstr "Biçim Katmanını Kaldır" #: data/ui/sidebar.ui:207 msgid "Route search by GraphHopper" msgstr "GraphHopper ile rota arama" #: data/ui/sidebar.ui:272 msgid "" "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of " "transportation,\n" "e.g. a national provider might not include airlines, and a local provider " "could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" "Toplu taşımada rota yönergeleri üçüncü taraf hizmetlerince sağlanır.\n" "GNOME gösterilen rota yönergelerinin ve çizelgelerin doğruluğunu garanti " "edemez.\n" "Bazı sağlayıcıların var olan tüm taşıma kiplerini içermeyebileceğini " "unutmayın; \n" "ör. ulusal bir sağlayıcı havayollarını içermeyebilir ve yerel bir sağlayıcı " "bölgesel trenleri\n" "bulundurmayabilir.\n" "Adlar ve markalar uygulanabilir olduğunda tescilli marka olarak " "değerlendirilmelidir." #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:98 msgid "Hide intermediate stops and information" msgstr "Ara durakları ve bilgiyi gizle" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:156 msgid "Show intermediate stops and information" msgstr "Ara durakları ve bilgiyi göster" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:16 msgid "Leave Now" msgstr "Şimdi Çık" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:17 msgid "Leave By" msgstr "İtibaren Çık" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:18 msgid "Arrive By" msgstr "Öncesinde Var" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:85 msgid "Show" msgstr "Göster" #: data/ui/transit-options-panel.ui:95 msgid "Buses" msgstr "Otobüsler" #: data/ui/transit-options-panel.ui:101 msgid "Trams" msgstr "Tramvaylar" #: data/ui/transit-options-panel.ui:107 msgid "Trains" msgstr "Trenler" #: data/ui/transit-options-panel.ui:113 msgid "Subway" msgstr "Metrolar" #: data/ui/transit-options-panel.ui:119 msgid "Ferries" msgstr "Feribotlar" #: data/ui/transit-options-panel.ui:125 msgid "Airplanes" msgstr "Uçaklar" #. Translators: This is a tooltip #: data/ui/place-bar.ui:33 data/ui/place-buttons.ui:27 msgid "Share Location" msgstr "Konum Paylaş" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:11 msgid "Add to new route" msgstr "Yeni rotaya ekle" #. Translators: This is the button to find a route to a place #: data/ui/place-buttons.ui:15 msgid "Directions" msgstr "Yönergeler" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:36 msgid "Mark as Favorite" msgstr "Gözde Olarak İmle" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:44 msgid "Edit on OpenStreetMap" msgstr "OpenStreetMap’te Düzenle" #. Translators: This is a tooltip #: data/ui/place-view.ui:52 msgid "Share location" msgstr "Konum paylaş" #: data/ui/poi-category-goback-row.ui:22 msgid "Back to Main Categories" msgstr "Ana Kategoriye Dön" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:19 msgid "Reset Rotation" msgstr "Döndürmeyi Sıfırla" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:32 msgid "Zoom Out" msgstr "Uzaklaştır" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:43 src/mapView.js:1246 msgid "Zoom In" msgstr "Yakınlaştır" #: lib/maps-file-data-source.c:262 lib/maps-file-data-source.c:338 #: lib/maps-file-data-source.c:418 msgid "Failed to find tile structure in directory" msgstr "Dizinde döşeme yapısı bulunamadı" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "XML belgesini ayrıştırılamadı" #: lib/maps-osm.c:250 lib/maps-osm.c:403 msgid "Missing required attributes" msgstr "Gerekli öznitelikler eksik" #: lib/maps-osm.c:451 lib/maps-osm.c:494 msgid "Could not find OSM element" msgstr "OSM ögesi bulunamadı" #: lib/maps-osm.c:508 msgid "Could not find user element" msgstr "Kullanıcı ögesi bulunamadı" #: src/application.js:78 msgid "A path to a local tiles directory structure" msgstr "Yerel döşeme dizini yapısını barındıran yol" #: src/application.js:84 msgid "Tile size for local tiles directory" msgstr "Yerel döşeme dizini için döşeme boyutu" #: src/application.js:88 msgid "Show the version of the program" msgstr "Programın sürümünü göster" #: src/application.js:94 msgid "Search for places" msgstr "Yer ara" #: src/application.js:105 src/application.js:106 msgid "[FILE…|URI]" msgstr "[DOSYA…|URI]" #: src/application.js:284 #, javascript-format msgid "Invalid maps: URI: %s" msgstr "Geçersiz haritalar: URI: %s" #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:75 #, javascript-format msgid "Maps at %f, %f.png" msgstr "%f, %f konumunda haritalar.png" #: src/exportViewDialog.js:174 msgid "Unable to export view" msgstr "Görüntü aktarılamıyor" #: src/favoriteListRow.js:42 msgid "Favorite removed" msgstr "Gözde kaldırıldı" #: src/favoriteListRow.js:43 msgid "Undo" msgstr "Geri Al" #: src/geoJSONSource.js:73 msgid "invalid coordinate" msgstr "geçersiz koordinat" #: src/geoJSONSource.js:126 src/geoJSONSource.js:166 src/geoJSONSource.js:181 msgid "parse error" msgstr "ayrıştırma hatası" #: src/geoJSONSource.js:160 msgid "unknown geometry" msgstr "bilinmeyen geometri" #: src/graphHopper.js:101 src/transitPlan.js:175 msgid "Route request failed." msgstr "Rota isteği başarısız oldu." #: src/graphHopper.js:108 src/transitPlan.js:167 msgid "No route found." msgstr "Hiçbir rota bulunamadı." #: src/graphHopper.js:195 src/transitplugins/openTripPlanner.js:1163 msgid "Start!" msgstr "Başla!" #: src/mainWindow.js:59 msgid "All Layer Files" msgstr "Tüm Katman Dosyaları" #: src/mainWindow.js:522 msgid "Failed to connect to location service" msgstr "Konum hizmetine bağlanamadı" #: src/mainWindow.js:527 msgid "Turn on location services" msgstr "Konum hizmetlerini aç" #: src/mainWindow.js:528 msgid "Location Settings" msgstr "Konum Ayarları" #: src/mainWindow.js:645 msgid "translator-credits" msgstr "" "Emin Tufan Çetin \n" "Muhammet Kara \n" "Gökhan Gurbetoğlu \n" "Osman Karagöz \n" "Çağatay Yiğit Şahin \n" "Furkan Ahmet Kara \n" "Ahmet Elgun \n" "Sabri Ünal " #: src/mainWindow.js:649 msgid "Copyright © 2011 – 2023 Red Hat, Inc. and The GNOME Maps authors" msgstr "Telif Hakkı © 2011 – 2023 Red Hat, Inc. ve GNOME Haritalar yazarları" #: src/mainWindow.js:665 #, javascript-format msgid "Map data by %s and contributors" msgstr "%s ve katkıcılar tarafından harita verisi" #: src/mainWindow.js:666 msgid "Map Data Provider" msgstr "Harita Veri Sağlayıcı" #: src/mainWindow.js:678 msgid "Map Tile Provider" msgstr "Harita Döşeme Sağlayıcı" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:686 #, javascript-format msgid "Map tiles provided by %s" msgstr "Harita döşemeleri %s tarafından sağlanmıştır" #: src/mainWindow.js:716 msgid "Search Provider" msgstr "Arama Sağlayıcı" #: src/mainWindow.js:719 #, javascript-format msgid "Search provided by %s using %s" msgstr "Arama %s tarafından %s kullanılarak sağlanmıştır" #: src/mapView.js:645 src/mapView.js:710 msgid "Failed to open layer" msgstr "Katman açılamadı" #: src/mapView.js:664 msgid "Do you want to continue?" msgstr "Sürdürmek ister misiniz?" #: src/mapView.js:665 #, javascript-format msgid "" "You are about to open files with a total size of %s MB. This could take some " "time to load" msgstr "" "Toplam boyutu %s MB olan dosyaları açmak üzeresiniz. Bunun yüklenmesi biraz " "sürebilir" #: src/mapView.js:672 src/transitplugins/openTripPlanner.js:1239 #: src/transitplugins/openTripPlanner2.js:267 msgid "Continue" msgstr "Devam et" #: src/mapView.js:704 msgid "File type is not supported" msgstr "Dosya türü desteklenmiyor" #: src/mapView.js:741 msgid "Failed to open GeoURI" msgstr "GeoURI açılamadı" #: src/mapView.js:1205 msgid "Nothing found here!" msgstr "Burada bir şey bulunamadı!" #: src/mapView.js:1245 msgid "Zoom in to add location" msgstr "Konum eklemek için yakınlaştırın" #: src/mapView.js:1266 msgid "Location was added in OpenStreetMap" msgstr "Konum OpenStreetMap’te bulunamadı" #. switch back to the sign-in view, and show a toast indicating #. that verification failed #: src/osmAccountDialog.js:134 msgid "The verification code didn’t match, please try again." msgstr "Doğrulama kodu eşleşmedi, lütfen yeniden deneyin." #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:335 msgid "Incorrect user name or password" msgstr "Hatalı kullanıcı adı veya parola" #: src/osmConnection.js:337 msgid "Success" msgstr "Başarılı" #: src/osmConnection.js:339 msgid "Bad request" msgstr "Geçersiz istek" #: src/osmConnection.js:341 msgid "Object not found" msgstr "Nesne bulunamadı" #: src/osmConnection.js:343 msgid "Conflict, someone else has just modified the object" msgstr "Çakışma; nesneyi az önce başkası değiştirdi" #: src/osmConnection.js:345 msgid "Object has been deleted" msgstr "Nesne silindi" #: src/osmConnection.js:347 msgid "Way or relation refers to non-existing children" msgstr "Yol ya da ilişki, var olmayan alt nesneye başvuruyor" #: src/osmEditDialog.js:106 msgid "Name" msgstr "Ad" #: src/osmEditDialog.js:109 msgid "The official name. This is typically what appears on signs." msgstr "Resmi ad. Genellikle tabelalarda yer alan addır." #: src/osmEditDialog.js:112 msgid "Address" msgstr "Adres" #: src/osmEditDialog.js:120 src/placeView.js:275 msgid "Website" msgstr "Web sitesi" #: src/osmEditDialog.js:124 msgid "This is not a valid URL. Make sure to include http:// or https://." msgstr "" "Bu geçerli bir URL değil. http:// veya https:// içerdiğinden emin olun." #: src/osmEditDialog.js:125 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" "Resmi web sitesi. URL adresinin en temel halini kullanmaya çalışın. Örn. " "http://ornek.com/index.html yerine http://ornek.com." #: src/osmEditDialog.js:130 msgid "Phone" msgstr "Telefon" #: src/osmEditDialog.js:134 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" "Telefon numarası. + imiyle başlayan uluslararası biçimi kullanın. Özellikle " "kişisel telefon numaraları konusunda, yerel kişisel gizlilik yasalarına " "dikkat edin." #: src/osmEditDialog.js:139 msgid "E-mail" msgstr "E-posta" #: src/osmEditDialog.js:144 msgid "" "This is not a valid email address. Make sure to not include the mailto: " "protocol prefix." msgstr "" "Bu geçerli bir e-posta adresi değil. mailto: iletişim kuralı ön ekini " "içermediğinden emin olun." #: src/osmEditDialog.js:145 msgid "" "Contact email address for inquiries. Add only email addresses that are " "intended to be publicly used." msgstr "" "Sorular için e-posta adresi. Yalnızca halka açık kullanılacak e-posta " "adreslerini ekleyin." #. Translators: This is the text for the "Wikipedia" link at the end #. of summaries #: src/osmEditDialog.js:149 src/placeView.js:727 msgid "Wikipedia" msgstr "Vikipedi" #: src/osmEditDialog.js:156 src/placeView.js:399 msgid "Opening hours" msgstr "Açılış saatleri" #: src/osmEditDialog.js:161 msgid "See the link in the label for help on format." msgstr "Biçimdeki yardım için etiketteki bağlantıyı gör." #. TODO: this is a bit of a work-around to re-interpret the population, #. * stored as a string into an integer to convert back to a locale- #. * formatted string. Ideally it should be kept as an integer value #. * in the Place class. But this will also need to be handled by the #. * PlaceStore, possible in a backwards-compatible way #. #: src/osmEditDialog.js:164 src/placeView.js:509 msgid "Population" msgstr "Nüfus" #: src/osmEditDialog.js:169 src/placeView.js:538 msgid "Altitude" msgstr "Yükseklik" #: src/osmEditDialog.js:172 msgid "Elevation (height above sea level) of a point in meters." msgstr "" "Bir noktanın metre türünden yükseltisi (deniz seviyesinden yüksekliği)." #: src/osmEditDialog.js:175 msgid "Wheelchair access" msgstr "Tekerlekli sandalye erişimi" #: src/osmEditDialog.js:178 src/osmEditDialog.js:187 src/osmEditDialog.js:198 #: src/osmEditDialog.js:233 msgid "Yes" msgstr "Evet" #: src/osmEditDialog.js:179 src/osmEditDialog.js:188 src/osmEditDialog.js:199 #: src/osmEditDialog.js:234 msgid "No" msgstr "Hayır" #: src/osmEditDialog.js:180 msgid "Limited" msgstr "Sınırlı" #: src/osmEditDialog.js:181 msgid "Designated" msgstr "Belirlenmiş" #: src/osmEditDialog.js:184 msgid "Internet access" msgstr "İnternet erişimi" #: src/osmEditDialog.js:189 msgid "Wi-Fi" msgstr "Kablosuz" #: src/osmEditDialog.js:190 msgid "Wired" msgstr "Kablolu" #: src/osmEditDialog.js:191 msgid "Terminal" msgstr "Terminal" #: src/osmEditDialog.js:192 msgid "Service" msgstr "Hizmet" #: src/osmEditDialog.js:195 msgid "Takeout" msgstr "Al götür" #: src/osmEditDialog.js:200 msgid "Only" msgstr "Yalnızca" #: src/osmEditDialog.js:203 msgid "Religion" msgstr "Din" #: src/osmEditDialog.js:206 src/translations.js:286 msgid "Animism" msgstr "Animizm" #: src/osmEditDialog.js:207 msgid "Bahá’í" msgstr "Bahâîlik" #: src/osmEditDialog.js:208 src/translations.js:288 msgid "Buddhism" msgstr "Budizm" #: src/osmEditDialog.js:209 src/translations.js:289 msgid "Caodaism" msgstr "Kaodaizm" #: src/osmEditDialog.js:210 src/translations.js:290 msgid "Christianity" msgstr "Hristiyanlık" #: src/osmEditDialog.js:211 src/translations.js:291 msgid "Confucianism" msgstr "Konfüçyüsçülük" #: src/osmEditDialog.js:212 src/translations.js:292 msgid "Hinduism" msgstr "Hinduizm" #: src/osmEditDialog.js:213 src/translations.js:293 msgid "Jainism" msgstr "Caynizm" #: src/osmEditDialog.js:214 src/translations.js:294 msgid "Judaism" msgstr "Musevilik" #: src/osmEditDialog.js:215 src/translations.js:295 msgid "Islam" msgstr "İslam" #: src/osmEditDialog.js:216 src/translations.js:296 msgid "Multiple Religions" msgstr "Çoklu Dinler" #: src/osmEditDialog.js:217 src/translations.js:297 msgid "Paganism" msgstr "Paganizm" #: src/osmEditDialog.js:218 src/translations.js:298 msgid "Pastafarianism" msgstr "Pastafaryanizm" #: src/osmEditDialog.js:219 src/translations.js:299 msgid "Scientology" msgstr "Scientology" #: src/osmEditDialog.js:220 src/translations.js:300 msgid "Shinto" msgstr "Şinto" #: src/osmEditDialog.js:221 src/translations.js:301 msgid "Sikhism" msgstr "Sihizm" #: src/osmEditDialog.js:222 src/translations.js:302 msgid "Spiritualism" msgstr "Ruhiyatçılık" #: src/osmEditDialog.js:223 src/translations.js:303 msgid "Taoism" msgstr "Taoculuk" #: src/osmEditDialog.js:224 src/translations.js:304 msgid "Unitarian Universalism" msgstr "Üniteryen Üniversalizm" #: src/osmEditDialog.js:225 src/translations.js:305 msgid "Voodoo" msgstr "Vudu" #: src/osmEditDialog.js:226 src/translations.js:306 msgid "Yazidism" msgstr "Yezidilik" #: src/osmEditDialog.js:227 src/translations.js:307 msgid "Zoroastrianism" msgstr "Zoroastrianizm" #: src/osmEditDialog.js:230 src/poiCategories.js:176 msgid "Toilets" msgstr "Tuvaletler" #: src/osmEditDialog.js:237 msgid "Note" msgstr "Not" #: src/osmEditDialog.js:240 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" "Bir ögeyle ilgili bariz olmayan bilgiler, yazarın onu oluşturma niyeti veya " "ileriki geliştirmeler için ipuçlarıyla ilgili diğer haritacıları " "bilgilendirmek için kullanılan bilgiler." #: src/osmEditDialog.js:339 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "OpenStreetMap’e Ekle" #: src/osmEditDialog.js:393 msgid "Select Type" msgstr "Tür Seç" #: src/osmEditDialog.js:515 msgid "Done" msgstr "Bitti" #: src/osmEditDialog.js:818 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "" "Kullanılan biçim, dil kodu ve makale başlığı içermeli “tr:Makale başlığı” " "gibi." #: src/osmEditDialog.js:824 msgid "Use the reload button to load the Wikidata tag for the selected article" msgstr "" "Seçilen makaleyle ilgili Wikidata etiketini yüklemek için yeniden yükle " "düğmesini kullanın" #: src/osmEditDialog.js:832 msgid "Couldn't find Wikidata tag for article" msgstr "Makale için Wikidata etiketi bulunamadı" #: src/photonUtils.js:118 msgid "Unnamed place" msgstr "Adsız yer" #: src/placeEntry.js:274 msgid "Failed to parse Geo URI" msgstr "Geo URI ayrıştırılamadı" #: src/placeEntry.js:286 msgid "Failed to parse Maps URI" msgstr "Maps URI ayrıştırılamadı" #. 300 ft (300 * 12 * 0.0254 m) #. #. * Translators: This a format string for showing a distance to a place #. * is lower than a "quite short" distance. #. * The "less than" symbol can be substituded with an appropriate one, if #. * needed (e.g. using the correct direction, or alternative symbol). #. * The %s should be kept, and is substituted with a label representing the #. * short distance. The \u2009 (thin space) could also be adjusted if needed #: src/placeListRow.js:46 #, javascript-format msgctxt "short distance format string" msgid "< %s" msgstr "< %s" #: src/placeView.js:263 msgid "Coordinates" msgstr "Koordinatlar" #: src/placeView.js:267 msgid "Accuracy" msgstr "Doğruluk" #. Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) #: src/placeView.js:270 #, javascript-format msgid "Accuracy: %s" msgstr "Doğruluk: %s" #. since the phone numbers are typically always rendered #. * left-to-right, insert an explicit LRM char to avoid issues #. * with phone numbers in international format starting with a + #. * which is considered a "weak" character to determine Unicode #. * text direction #. #: src/placeView.js:289 msgid "Phone number" msgstr "Telefon numarası" #: src/placeView.js:308 msgid "Email" msgstr "E-posta" #. If a reference to a named floor (named or symbolic) exists #. * refer to it directly. #. #. Translators: #. * This is a reference to named building floor, using a label #. * or a code, as "displayed in the elevator" #. #: src/placeView.js:323 src/placeView.js:362 msgid "Floor" msgstr "Zemin" #: src/placeView.js:325 #, javascript-format msgid "Floor %s" msgstr "Zemin %s" #: src/placeView.js:337 msgid "At ground level" msgstr "Yer düzeyinde" #. Translators: #. * This is a reference to a number of floors above #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:346 #, javascript-format msgid "%s floor above ground level" msgid_plural "%s floors above ground level" msgstr[0] "Yer düzeyinin %s kat üstünde" #. Translators: #. * This is a reference to a number of floors below #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:357 #, javascript-format msgid "%s floor below ground level" msgid_plural "%s floors below ground level" msgstr[0] "Yer düzeyinin %s kat altında" #. Translators: #. * The establishment offers customers to purchase meals #. * (or similar) to be consumed elsewhere #. #: src/placeView.js:375 msgid "Offers takeout" msgstr "Al götür sunar" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed on-premise. #. #: src/placeView.js:383 msgid "Does not offer takeout" msgstr "Al götür sunmaz" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed elsewhere. E.g. #. * there is no seating on-premise for eating/drinking #. #: src/placeView.js:392 msgid "Only offers takeout" msgstr "Yalnızca al götür sunar" #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/placeView.js:409 msgid "Public internet access" msgstr "Halka açık internet erişimi" #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/placeView.js:418 msgid "No internet access" msgstr "İnternet erişimi yok" #. Translators: #. * This means a WLAN Hotspot, also known as wireless, wifi or Wi-Fi. #. #: src/placeView.js:426 msgid "Public Wi-Fi" msgstr "Halka açık Wi-Fi" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/placeView.js:434 msgid "Wired internet access" msgstr "Kablolu internet erişimi" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/placeView.js:442 msgid "Computers available for use" msgstr "Kullanıma hazır bilgisayar var" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/placeView.js:450 msgid "Internet assistance available" msgstr "İnternet desteği var" #: src/placeView.js:456 msgid "No toilets available" msgstr "Tuvalet yok" #: src/placeView.js:459 msgid "Toilets available" msgstr "Tuvalet var" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #: src/placeView.js:468 msgid "Wheelchair accessible" msgstr "Tekerlekli sandalye erişimli" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/placeView.js:478 msgid "Limited wheelchair accessibility" msgstr "Kısıtlı tekerlekli sandalye erişimi" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #: src/placeView.js:487 msgid "Not wheelchair accessible" msgstr "Tekerlekli sandalye erişimi yok" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/placeView.js:497 msgid "Designated for wheelchair users" msgstr "Tekerlekli sandalye kullanıcılarına göre tasarlanmış" #. * #. * Translators: this is a label indicating an altitude below #. * sea level, where the %s placeholder is the altitude relative #. * to mean sea level in the "negative direction" #. #: src/placeView.js:528 #, javascript-format msgid "%s below sea level" msgstr "Deniz düzeyinin %s altında" #. * #. * Translators: this indicates a place is located at (or very #. * close to) mean sea level #. #: src/placeView.js:535 msgid "At sea level" msgstr "Deniz düzeyinde" #: src/placeView.js:544 msgid "Religion:" msgstr "Din:" #: src/place.js:570 msgid "Place not found in OpenStreetMap" msgstr "Yer OpenStreetMap’te bulunamadı" #: src/place.js:577 msgid "Coordinates in URL are not valid" msgstr "URLʼdeki koordinatlar geçersiz" #: src/place.js:586 msgid "URL is not supported" msgstr "URL desteklenmiyor" #: src/poiCategories.js:132 msgid "Amenities" msgstr "Olanaklar" #: src/poiCategories.js:135 msgid "ATMs" msgstr "Para Çekme Makineleri" #: src/poiCategories.js:141 msgid "Post Boxes" msgstr "Posta Kutuları" #: src/poiCategories.js:147 msgid "Post Offices" msgstr "Postaneler" #: src/poiCategories.js:153 msgid "Police" msgstr "Polis" #: src/poiCategories.js:159 msgid "Libraries" msgstr "Kütüphaneler" #: src/poiCategories.js:165 msgid "Pharmacies" msgstr "Ezcaneler" #: src/poiCategories.js:171 msgid "Recycling" msgstr "Geri Dönüşüm" #: src/poiCategories.js:182 msgid "Wheelchair-accessible Toilets" msgstr "Tekerlekli Sandalye Erişimli Tuvaletler" #: src/poiCategories.js:188 msgid "Baggage Lockers" msgstr "Bavul Emanetliği" #: src/poiCategories.js:196 msgid "Eating & Drinking" msgstr "Yeme ve İçme" #: src/poiCategories.js:200 msgid "Restaurants" msgstr "Restoranlar" #: src/poiCategories.js:205 msgid "Fast Food" msgstr "Hızlı Yemek" #: src/poiCategories.js:210 msgid "Food Courts" msgstr "Yemek Alanları" #: src/poiCategories.js:215 msgid "Pubs" msgstr "Meyhaneler" #: src/poiCategories.js:221 msgid "Bars" msgstr "Barlar" #: src/poiCategories.js:226 msgid "Cafes" msgstr "Kafeler" #: src/poiCategories.js:231 msgid "Ice Cream" msgstr "Dondurma" #: src/poiCategories.js:236 msgid "Food, Snacks, and Beverage Machines" msgstr "Yemek, Atıştırmalık ve İçecek Makineleri" #: src/poiCategories.js:244 msgid "Shopping" msgstr "Alışveriş" #: src/poiCategories.js:248 msgid "Supermarkets" msgstr "Süper Marketler" # Dilimizde Bakkal farklı bir anlamı var. Bu tip mağazalar normalde çok uzun süre çalışan yerler oluyor ve içlerinde pek çok ürün satılabiliyor. #: src/poiCategories.js:254 msgid "Convenience Stores" msgstr "Bakkallar ve Küçük Marketler" #: src/poiCategories.js:259 msgid "Shopping Malls" msgstr "Alışveriş Merkezleri" #: src/poiCategories.js:265 msgid "Clothes" msgstr "Giysiler" #: src/poiCategories.js:271 msgid "Shoes" msgstr "Ayakkabılar" #: src/poiCategories.js:276 msgid "Electronics" msgstr "Elektronikler" #: src/poiCategories.js:282 msgid "Alcohol" msgstr "Alkol" #: src/poiCategories.js:288 msgid "Bakeries" msgstr "Fırınlar" #: src/poiCategories.js:294 msgid "Flowers" msgstr "Çiçekler" #: src/poiCategories.js:301 msgid "Transportation" msgstr "Ulaşım" #: src/poiCategories.js:305 msgid "Bus & Tram Stops" msgstr "Otobüs ve Tramvay Durakları" #: src/poiCategories.js:313 msgid "Train & Subway Stations" msgstr "Tren ve Metro İstasyonları" #: src/poiCategories.js:321 msgid "Tickets" msgstr "Biletler" #: src/poiCategories.js:329 msgid "Parking" msgstr "Park Alanları" #: src/poiCategories.js:334 msgid "Bicycle Parking" msgstr "Bisiklet Parkı" #: src/poiCategories.js:339 msgid "Bicycle Rental" msgstr "Bisiklet Kiralama" #: src/poiCategories.js:344 msgid "Car Rental" msgstr "Araba Kiralama" #: src/poiCategories.js:349 msgid "Fuel" msgstr "Yakıt" #: src/poiCategories.js:354 msgid "EV Charging" msgstr "Elektrikli Araç Şarjı" #: src/poiCategories.js:362 msgid "Healthcare" msgstr "Sağlık Hizmetleri" #: src/poiCategories.js:366 msgid "Clinics" msgstr "Klinikler" #: src/poiCategories.js:372 msgid "Hospitals" msgstr "Hastaneler" #: src/poiCategories.js:378 msgid "Dentists" msgstr "Dişçiler" #: src/poiCategories.js:386 msgid "Accommodation" msgstr "Konaklama" #: src/poiCategories.js:390 msgid "Hotels" msgstr "Oteller" #: src/poiCategories.js:395 msgid "Hostels" msgstr "Hosteller" #: src/poiCategories.js:400 msgid "Bed & Breakfast" msgstr "Yatak ve Kahvaltı" #: src/poiCategories.js:405 msgid "Campings" msgstr "Kamp Yapma" #: src/poiCategories.js:412 msgid "Recreation" msgstr "Dinlenme" #: src/poiCategories.js:416 msgid "Parks" msgstr "Parklar" #: src/poiCategories.js:421 msgid "Playgrounds" msgstr "Oyun Alanları" #: src/poiCategories.js:425 msgid "Beaches" msgstr "Sahiller" #: src/poiCategories.js:430 msgid "Nature Reserves" msgstr "Doğal Kaynaklar" #: src/poiCategories.js:436 msgid "Theme Parks" msgstr "Tema Parkları" #: src/poiCategories.js:441 msgid "Theaters" msgstr "Tiyatrolar" #: src/poiCategories.js:447 msgid "Movie Theaters" msgstr "Sinema Salonları" #: src/poiCategories.js:453 msgid "Night Clubs" msgstr "Gece Kulüpleri" #: src/poiCategories.js:460 msgid "Tourism" msgstr "Turizm" #: src/poiCategories.js:464 msgid "Museums" msgstr "Müzeler" #: src/poiCategories.js:470 msgid "Attractions" msgstr "Gezilecek Yerler" #: src/poiCategories.js:475 msgid "Artworks" msgstr "Sanat Eserleri" #: src/poiCategories.js:480 msgid "Tourist Information" msgstr "Turizm Danışma" #: src/poiCategories.js:487 msgid "Sports" msgstr "Sporlar" #: src/poiCategories.js:491 msgid "Gyms" msgstr "Spor Salonları" #: src/poiCategories.js:497 msgid "Outdoor Gyms" msgstr "Açık Hava Spor Salonları" #: src/poiCategories.js:503 msgid "Golf Courses" msgstr "Golf Kursları" #: src/printLayout.js:350 #, javascript-format msgid "From %s to %s" msgstr "%s’ten %s’e" #: src/printOperation.js:49 msgid "Loading map tiles for printing" msgstr "Harita parçası yazmak için yükleniyor" #: src/printOperation.js:50 msgid "You can abort printing if this takes too long" msgstr "Eğer bu uzun zaman alırsa yazdırmaktan vazgeçebilirsiniz" #: src/printOperation.js:52 msgid "Abort printing" msgstr "Yazdırmayı iptal et" #. Translators: this is add via location tooltip #: src/routeEntry.js:60 msgid "Add via location" msgstr "Ara konum ekle" #. Translators: this is remove via location tooltip #: src/routeEntry.js:70 msgid "Remove via location" msgstr "Ara konumu kaldır" #. Translators: this is reverse route tooltip #: src/routeEntry.js:76 msgid "Reverse route" msgstr "Rotayı tersine çevir" #: src/searchBar.js:45 msgid "Search" msgstr "Ara" # ilk s şehir, ikinci s uygulama #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:84 #, javascript-format msgid "Add %s to %s" msgstr "%s şehrini %s uygulamasına ekle" #: src/sendToDialog.js:181 msgid "Failed to open URI" msgstr "URI açılamadı" #: src/sendToDialog.js:246 #, javascript-format msgid "Open with %s" msgstr "%s ile aç" #: src/shapeLayer.js:109 msgid "failed to load file" msgstr "dosya yüklenemedi" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:328 #, javascript-format msgid "Estimated time: %s" msgstr "Tahmini süre: %s" #: src/sidebar.js:398 #, javascript-format msgid "Itineraries provided by %s" msgstr "Rota yönergelerini %s sağlamıştır" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:39 #, javascript-format msgid "Start at %s" msgstr "%s’te başla" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:45 src/transitplugins/openTripPlanner2.js:236 msgid "Start" msgstr "Başla" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:63 #, javascript-format msgid "Walk %s" msgstr "%s yürü" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:77 #, javascript-format msgid "Arrive at %s" msgstr "%s’te var" #: src/transit.js:79 src/transitplugins/openTripPlanner.js:1176 #: src/transitplugins/openTripPlanner2.js:255 msgid "Arrive" msgstr "Var" #: src/transitLegRow.js:69 msgid "Show walking instructions" msgstr "Yürüme yönergelerini göster" #: src/transitLegRow.js:70 msgid "Hide walking instructions" msgstr "Yürüme yönergelerini gizle" #: src/transitMoreRow.js:37 msgid "Load earlier alternatives" msgstr "Daha erken alternatifleri yükle" #: src/transitMoreRow.js:39 msgid "Load later alternatives" msgstr "Daha geç alternatifleri yükle" #: src/transitMoreRow.js:52 msgid "No earlier alternatives found." msgstr "Daha erken alternatif bulunamadı." #: src/transitMoreRow.js:54 msgid "No later alternatives found." msgstr "Daha geç alternatif bulunamadı." #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:138 msgctxt "month-day-date" msgid "%b %e" msgstr "%e %b" #: src/transitPlan.js:171 msgid "No timetable data found for this route." msgstr "Bu rota için tarife verisi bulunamadı." #: src/transitPlan.js:179 msgid "No provider found for this route." msgstr "Bu rota için sağlayıcı bulunamadı." #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:300 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:331 #, javascript-format msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "%s dakika" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:343 #, javascript-format msgid "%s hour" msgid_plural "%s hours" msgstr[0] "%s saat" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:351 #, javascript-format msgid "%s:%s hour" msgid_plural "%s:%s hours" msgstr[0] "%s:%s saat" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:744 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: src/translations.js:55 msgid "Around the clock" msgstr "Gün boyu" #: src/translations.js:57 msgid "From sunrise to sunset" msgstr "Gün doğumundan gün batımına" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:123 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s,%s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:137 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s,%s,%s" #: src/translations.js:156 msgid "Every day" msgstr "Her gün" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:168 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:179 msgid "Public holidays" msgstr "Resmi tatiller" #: src/translations.js:181 msgid "School holidays" msgstr "Okul tatilleri" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:221 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: src/translations.js:235 msgid "not open" msgstr "açık değil" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:250 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:287 msgid "Bahá'í" msgstr "Bahâîlik" #. Translators: Accuracy of user location information #: src/utils.js:248 msgid "Unknown" msgstr "Bilinmiyor" #. Translators: Accuracy of user location information #: src/utils.js:251 msgid "Exact" msgstr "Tam" #. Translators: this is a duration with only hours, using #. * an abbreviation for hours, corresponding to 'h' in English #. #: src/utils.js:307 #, javascript-format msgid "%s h" msgstr "%s s" #. Translators: this is a duration with hours and minutes parts #. * using abbreviations for hours and minutes, corresponding to 'h' #. * and 'min' in English. The minutes has appropriate plural variations #. #: src/utils.js:313 #, javascript-format msgid "%s h %s min" msgid_plural "%s h %s min" msgstr[0] "%s s %s dak" #. Translators: this is a duration with minutes part #. * using abbreviation for minutes, corresponding to 'min' in English #. * with appropriate plural variations #. #: src/utils.js:320 #, javascript-format msgid "%s min" msgid_plural "%s min" msgstr[0] "%s dak" #. Translators: this is a duration of less than one minute #. * with seconds using an abbreviation for seconds, corresponding to #. * 's' in English with appropriate plural forms #. #: src/utils.js:326 #, javascript-format msgid "%s s" msgid_plural "%s s" msgstr[0] "%s sn" #. Translators: This is a distance measured in kilometers #: src/utils.js:337 #, javascript-format msgid "%s km" msgstr "%s km" #. Translators: This is a distance measured in meters #: src/utils.js:340 #, javascript-format msgid "%s m" msgstr "%s m" #. Translators: This is a distance measured in miles #: src/utils.js:348 #, javascript-format msgid "%s mi" msgstr "%s mi" #. Translators: This is a distance measured in feet #: src/utils.js:351 #, javascript-format msgid "%s ft" msgstr "%s ft" #: src/transitplugins/goMetro.js:61 msgid "This plugin doesn't support latest arrival" msgstr "Bu uzantı son varışı desteklemiyor" #: src/transitplugins/openTripPlanner.js:1237 #: src/transitplugins/openTripPlanner2.js:266 #, javascript-format msgid "Continue on %s" msgstr "%s üstünde devam et" #: src/transitplugins/openTripPlanner.js:1242 #: src/transitplugins/openTripPlanner2.js:270 #, javascript-format msgid "Turn left on %s" msgstr "%s üstünde sola dön" #: src/transitplugins/openTripPlanner.js:1244 #: src/transitplugins/openTripPlanner2.js:271 msgid "Turn left" msgstr "Sola dön" #: src/transitplugins/openTripPlanner.js:1247 #: src/transitplugins/openTripPlanner2.js:275 #, javascript-format msgid "Turn slightly left on %s" msgstr "%s üstünde hafifçe sola dön" #: src/transitplugins/openTripPlanner.js:1249 #: src/transitplugins/openTripPlanner2.js:276 msgid "Turn slightly left" msgstr "Sola hafifçe dön" #: src/transitplugins/openTripPlanner.js:1252 #: src/transitplugins/openTripPlanner2.js:280 #, javascript-format msgid "Turn sharp left on %s" msgstr "%s üstünde sola keskin dön" #: src/transitplugins/openTripPlanner.js:1254 #: src/transitplugins/openTripPlanner2.js:281 msgid "Turn sharp left" msgstr "Sola keskin dön" #: src/transitplugins/openTripPlanner.js:1257 #: src/transitplugins/openTripPlanner2.js:284 #, javascript-format msgid "Turn right on %s" msgstr "%s üstünde sağa dön" #: src/transitplugins/openTripPlanner.js:1259 #: src/transitplugins/openTripPlanner2.js:285 msgid "Turn right" msgstr "Sağa dön" #: src/transitplugins/openTripPlanner.js:1262 #: src/transitplugins/openTripPlanner2.js:289 #, javascript-format msgid "Turn slightly right on %s" msgstr "%s üstünde hafifçe sağa dön" #: src/transitplugins/openTripPlanner.js:1264 #: src/transitplugins/openTripPlanner2.js:290 msgid "Turn slightly right" msgstr "Sağa hafifçe dön" #: src/transitplugins/openTripPlanner.js:1267 #: src/transitplugins/openTripPlanner2.js:294 #, javascript-format msgid "Turn sharp right on %s" msgstr "%s üstünde sağa keskin dön" #: src/transitplugins/openTripPlanner.js:1269 #: src/transitplugins/openTripPlanner2.js:295 msgid "Turn sharp right" msgstr "Sağa keskin dön" #: src/transitplugins/openTripPlanner.js:1275 #: src/transitplugins/openTripPlanner2.js:302 #, javascript-format msgid "At the roundabout, take exit %s" msgstr "Dönel kavşakta %s. çıkışa gidin" #: src/transitplugins/openTripPlanner.js:1277 #: src/transitplugins/openTripPlanner2.js:305 #, javascript-format msgid "At the roundabout, take exit to %s" msgstr "Dönel kavşakta %s. çıkıştan çıkın" #: src/transitplugins/openTripPlanner.js:1279 #: src/transitplugins/openTripPlanner2.js:307 msgid "Take the roundabout" msgstr "Dönel kavşağı kullanın" #: src/transitplugins/openTripPlanner.js:1283 #: src/transitplugins/openTripPlanner2.js:315 #, javascript-format msgid "Take the elevator and get off at %s" msgstr "Asansörü kullanın ve %s. katta inin" #: src/transitplugins/openTripPlanner.js:1285 #: src/transitplugins/openTripPlanner2.js:316 msgid "Take the elevator" msgstr "Asansörü kullanın" #: src/transitplugins/openTripPlanner.js:1289 #: src/transitplugins/openTripPlanner2.js:320 #, javascript-format msgid "Make a left u-turn onto %s" msgstr "%s üstünde sola u dönüşü yapın" #: src/transitplugins/openTripPlanner.js:1291 #: src/transitplugins/openTripPlanner2.js:321 msgid "Make a left u-turn" msgstr "Sola u dönüşü yapın" #: src/transitplugins/openTripPlanner.js:1294 #: src/transitplugins/openTripPlanner2.js:325 #, javascript-format msgid "Make a right u-turn onto %s" msgstr "%s üstünde sağa u dönüşü yapın" #: src/transitplugins/openTripPlanner.js:1296 #: src/transitplugins/openTripPlanner2.js:326 msgid "Make a right u-turn" msgstr "Sağa u dönüşü yapın" #~ msgid "Sign in to edit maps" #~ msgstr "" #~ "Haritaları düzenlemek için oturum " #~ "aç" #~ msgid "" #~ "Sign in to authorize access in a web browser.\n" #~ "Then fill in the obtained verification code here in the next step." #~ msgstr "" #~ "Erişimi yetkilendirmek için tarayıcıda oturum aç.\n" #~ "Ardından burada alınan doğrulama kodunu sonraki adımda yazın." #~ msgid "Signed In" #~ msgstr "Oturum Açıldı" 070701000001EC000081A40000000000000000000000016641340900012828000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/uk.po# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # Daniel Korostil , 2013, 2014, 2015, 2016, 2017. # Yuri Chornoivan , 2020, 2021, 2022, 2023, 2024. msgid "" msgstr "" "Project-Id-Version: 1.0\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2024-02-14 22:30+0000\n" "PO-Revision-Date: 2024-02-15 18:32+0200\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" "Language: uk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n" "%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Generator: Lokalize 23.04.1\n" "X-Project-Style: gnome\n" #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.appdata.xml.in.in:6 data/org.gnome.Maps.desktop.in.in:4 #: data/ui/main-window.ui:27 src/application.js:64 src/mainWindow.js:147 #: src/mainWindow.js:647 msgid "Maps" msgstr "Карти" #: data/org.gnome.Maps.appdata.xml.in.in:7 msgid "Find places around the world" msgstr "Знаходити місця по світу" #: data/org.gnome.Maps.appdata.xml.in.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "Карти надають швидкий доступ до карт по всьому світу. Вони дозволяють швидко " "знайти місце, яке ви шукаєте, через пошук міста, вулиці, ба визначити місце " "для зустрічі з друзями." #: data/org.gnome.Maps.appdata.xml.in.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "Карти використовують колективну базу даних OpenStreetMap, яку роблять тисячі " "осіб по всій планеті." #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Maps.appdata.xml.in.in:451 src/mainWindow.js:644 msgid "The GNOME Project" msgstr "Проєкт GNOME" #: data/org.gnome.Maps.desktop.in.in:5 msgid "A simple maps application" msgstr "Проста програма для роботи з картами" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in.in:14 msgid "Maps;" msgstr "Карти;" #: data/org.gnome.Maps.desktop.in.in:17 msgid "Allows your location to be shown on the map." msgstr "Дозволити вашому перебуванню показуватись на карті." #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "останнє переглянуте місце" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "Координати останнього переглянутого місця." #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "масштаб" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "Масштабування" #: data/org.gnome.Maps.gschema.xml:21 msgid "rotation" msgstr "обертання" #: data/org.gnome.Maps.gschema.xml:22 msgid "Map rotation in radians" msgstr "Обертання карти у радіанах" #: data/org.gnome.Maps.gschema.xml:26 msgid "Map type" msgstr "Тип карти" #: data/org.gnome.Maps.gschema.xml:27 msgid "The type of map to display (street, aerial, etc.)" msgstr "Тип карти, яку слід показати (вулиці, супутникова тощо)" #: data/org.gnome.Maps.gschema.xml:31 msgid "Window size" msgstr "Розмір вікна" #: data/org.gnome.Maps.gschema.xml:32 msgid "Window size (width and height)." msgstr "Розмір вікна (ширина і висота)." #: data/org.gnome.Maps.gschema.xml:36 msgid "Window position" msgstr "Положення вікна" #: data/org.gnome.Maps.gschema.xml:37 msgid "Window position (X and Y)." msgstr "Положення вікна (X і Y)." #: data/org.gnome.Maps.gschema.xml:41 msgid "Window maximized" msgstr "Вікно розгорнуто" #: data/org.gnome.Maps.gschema.xml:42 msgid "Window maximization state" msgstr "Стан розгорнутого вікна" #: data/org.gnome.Maps.gschema.xml:46 msgid "Maximum number of search results" msgstr "Максимальна кількість пошукових результатів" #: data/org.gnome.Maps.gschema.xml:47 msgid "Maximum number of search results from geocode search." msgstr "Максимальна кількість пошукових результатів з пошуку geocode." #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent places to store" msgstr "Кількість недавно відвіданих місць, які зберігати" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited places to store." msgstr "Кількість недавно відвіданих місць, які слід зберігати." #: data/org.gnome.Maps.gschema.xml:56 msgid "Number of recent routes to store" msgstr "Кількість недавніх маршрутів, які зберігати" #: data/org.gnome.Maps.gschema.xml:57 msgid "Number of recently visited routes to store." msgstr "Кількість недавно відвіданих маршрутів, які слід зберігати." #: data/org.gnome.Maps.gschema.xml:61 #| msgid "OpenStreetMap username or e-mail address" msgid "OpenStreetMap username or email address" msgstr "Користувач або поштова скринька у OpenStreetMap" #: data/org.gnome.Maps.gschema.xml:62 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "" "Показує, чи користувач увійшов у систему OpenStreetMap для редагування даних." #: data/org.gnome.Maps.gschema.xml:66 msgid "Last used transportation type for routing" msgstr "Останній використаний тип транспорту для побудови маршрутів" #: data/org.gnome.Maps.gschema.xml:70 msgid "Show scale" msgstr "Показувати шкалу" #: data/org.gnome.Maps.gschema.xml:71 msgid "Whether to show the scale." msgstr "Чи слід показувати шкалу." #: data/ui/context-menu.ui:6 msgid "Route from Here" msgstr "Маршрут звідси" #: data/ui/context-menu.ui:10 msgid "Add Intermediate Destination" msgstr "Додати проміжний пункт маршруту" #: data/ui/context-menu.ui:14 msgid "Route to Here" msgstr "Маршрут сюди" #: data/ui/context-menu.ui:20 msgid "What's Here?" msgstr "Що тут?" #: data/ui/context-menu.ui:24 msgid "Copy Location" msgstr "Копіювати місце" #: data/ui/context-menu.ui:28 msgid "Add to OpenStreetMap…" msgstr "Додати до OpenStreetMap…" #: data/ui/export-view-dialog.ui:7 msgid "Export view" msgstr "Експортувати перегляд" #: data/ui/export-view-dialog.ui:16 data/ui/send-to-dialog.ui:10 #: data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "_Скасувати" #: data/ui/export-view-dialog.ui:26 msgid "_Export" msgstr "_Експортувати" #. Translators: This is a tooltip #: data/ui/favorite-list-row.ui:72 msgid "Remove Favorite" msgstr "Вилучити з улюблених" #: data/ui/favorites-popover.ui:11 msgid "No Favorites" msgstr "Немає улюблених" #: data/ui/favorites-popover.ui:12 msgid "Add places to your favorites to get them listed here" msgstr "Додайте місця до улюблених, щоб їх було показано у цьому списку" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:11 src/geoclue.js:106 msgid "Current Location" msgstr "Поточне місце" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:19 msgid "Layers" msgstr "Шари" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:11 msgid "Print Route" msgstr "Надрукувати маршрут" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:21 msgid "Favorites" msgstr "Улюблене" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:30 msgid "Route Planner" msgstr "Планувальник маршрутів" #: data/ui/help-overlay.ui:12 msgctxt "shortcut window" msgid "General" msgstr "Загальне" #: data/ui/help-overlay.ui:15 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "Показати клавіатурні скорочення" #: data/ui/help-overlay.ui:21 msgctxt "shortcut window" msgid "Search" msgstr "Пошук" #: data/ui/help-overlay.ui:27 msgctxt "shortcut window" msgid "Explore points-of-interest" msgstr "Ознайомитися із цікавими точками" #: data/ui/help-overlay.ui:33 msgctxt "shortcut window" msgid "Show last search results" msgstr "Показати результати останнього пошуку" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "Перемкнути планувальника маршрутів" #: data/ui/help-overlay.ui:45 msgctxt "shortcut window" msgid "Print route" msgstr "Надрукувати маршрут" #: data/ui/help-overlay.ui:51 msgctxt "shortcut window" msgid "Quit" msgstr "Вийти" #: data/ui/help-overlay.ui:57 msgctxt "shortcut window" msgid "Open main menu" msgstr "Відкрити головне меню" #: data/ui/help-overlay.ui:65 msgctxt "shortcut window" msgid "Map View" msgstr "Перегляд карти" #: data/ui/help-overlay.ui:68 msgctxt "shortcut window" msgid "Zoom in" msgstr "Наблизити" #: data/ui/help-overlay.ui:74 msgctxt "shortcut window" msgid "Zoom out" msgstr "Віддалити" #: data/ui/help-overlay.ui:80 msgctxt "shortcut window" msgid "Rotate clockwise" msgstr "Обернути за годинниковою стрілкою" #: data/ui/help-overlay.ui:86 msgctxt "shortcut window" msgid "Rotate counter-clockwise" msgstr "Обернути проти годинникової стрілки" #: data/ui/help-overlay.ui:92 msgctxt "shortcut window" msgid "Reset rotation" msgstr "Скинути обертання" #: data/ui/help-overlay.ui:98 msgctxt "shortcut window" msgid "Toggle scale" msgstr "Перемкнути шкалу" #: data/ui/help-overlay.ui:104 msgctxt "shortcut window" msgid "Go to current location" msgstr "Перейти до поточної місцевості" #: data/ui/help-overlay.ui:114 msgctxt "shortcut window" msgid "Switch to street view" msgstr "Перемкнутися на перегляд вулиць" #: data/ui/help-overlay.ui:121 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "Перемкнутися на супутниковий перегляд" #: data/ui/help-overlay.ui:127 msgctxt "shortcut window" msgid "Open shape layer" msgstr "Відкрити шар форм" #: data/ui/layers-popover.ui:7 msgid "Show Scale" msgstr "Показувати шкалу" #: data/ui/layers-popover.ui:16 msgid "Enable Experimental Map" msgstr "Увімкнути експериментальну карту" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:21 msgid "Open Shape Layer…" msgstr "Відкрити шар форм…" #: data/ui/main-window.ui:8 msgid "Set up OpenStreetMap Account…" msgstr "Відкрити обліковий запис у OpenStreetMap…" #: data/ui/main-window.ui:12 msgid "Export as Image…" msgstr "Експортувати як зображення…" #: data/ui/main-window.ui:17 msgid "_Keyboard Shortcuts" msgstr "_Клавіатурні скорочення" #: data/ui/main-window.ui:22 msgid "About Maps" msgstr "Про «Карти»" #: data/ui/main-window.ui:48 msgid "Main Menu" msgstr "Головне меню" #: data/ui/osm-account-dialog.ui:5 msgid "OpenStreetMap Account" msgstr "Обліковий запис OpenStreetMap" #: data/ui/osm-account-dialog.ui:31 msgid "Sign In To Edit Maps" msgstr "Увійти, щоб редагувати карту" #: data/ui/osm-account-dialog.ui:32 msgid "Help to improve the map, using an OpenStreetMap account." msgstr "Допоможіть покращити карту через обліковий запис OpenStreetMap." #: data/ui/osm-account-dialog.ui:36 msgid "Sign In" msgstr "Увійти" #: data/ui/osm-account-dialog.ui:59 msgid "Verification" msgstr "Перевірка" #: data/ui/osm-account-dialog.ui:60 msgid "" "Copy the verification code shown when authorizing access in the browser." msgstr "" "Скопіюйте код перевірки, який показано при уповноваженні доступу у браузері." #: data/ui/osm-account-dialog.ui:69 msgid "Verification Code" msgstr "Код перевірки" #: data/ui/osm-account-dialog.ui:75 msgid "Verify" msgstr "Перевірити" #: data/ui/osm-account-dialog.ui:110 msgid "Signed In" msgstr "Увійшли" #: data/ui/osm-account-dialog.ui:111 msgid "Your OpenStreetMap account is active." msgstr "Ваш обліковий запис OpenStreetMap активовано." #: data/ui/osm-account-dialog.ui:129 msgid "Sign Out" msgstr "Вийти" #: data/ui/osm-edit-address.ui:11 msgid "Street" msgstr "Вулиця" #: data/ui/osm-edit-address.ui:22 msgid "House number" msgstr "Номер будинку" #: data/ui/osm-edit-address.ui:33 msgid "Postal code" msgstr "Поштовий індекс" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:44 msgid "City" msgstr "Місто" #: data/ui/osm-edit-dialog.ui:8 msgctxt "dialog title" msgid "Edit on OpenStreetMap" msgstr "Редагувати в OpenStreetMap" #: data/ui/osm-edit-dialog.ui:57 msgid "Type" msgstr "Тип" #: data/ui/osm-edit-dialog.ui:79 msgid "None" msgstr "Немає" #: data/ui/osm-edit-dialog.ui:108 msgid "Add Field" msgstr "Додати поле" #: data/ui/osm-edit-dialog.ui:130 msgid "Comment" msgstr "Коментар" #: data/ui/osm-edit-dialog.ui:158 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "Зміни в карті будуть видимі для карт, що використовують\n" "дані з OpenStreetMap." #: data/ui/osm-edit-dialog.ui:186 msgid "Recently Used" msgstr "Недавно вжите" #: data/ui/osm-edit-dialog.ui:225 src/mapView.js:663 msgid "Cancel" msgstr "Скасувати" #: data/ui/osm-edit-dialog.ui:238 src/osmEditDialog.js:531 msgid "Next" msgstr "Далі" #: data/ui/osm-edit-wikipedia.ui:8 msgid "Article" msgstr "Стаття" #: data/ui/osm-edit-wikipedia.ui:21 msgid "Wikidata tag" msgstr "Мітка Вікіданих" #: data/ui/osm-edit-wikipedia.ui:32 msgid "Load Wikidata tag for article" msgstr "Завантажити мітку Вікіданих для статті" #: data/ui/place-popover.ui:23 src/searchBar.js:55 msgid "Explore Nearby Places" msgstr "Ознайомитися із місцями поблизу" #: data/ui/place-popover.ui:82 src/application.js:277 msgid "No results found" msgstr "Нічого не знайдено" #: data/ui/place-popover.ui:92 src/application.js:255 msgid "An error has occurred" msgstr "Трапилась помилка" #. Translators: This is a tooltip #: data/ui/route-entry.ui:12 msgid "Change Route Order" msgstr "Змінити порядок маршрутів" #: data/ui/send-to-dialog.ui:7 msgid "Open Location" msgstr "Відкрити місце" #: data/ui/send-to-dialog.ui:64 msgid "Copy" msgstr "Копіювати" #: data/ui/send-to-dialog.ui:70 msgid "Send To…" msgstr "Надіслати…" #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:62 msgid "Open Shape Layer" msgstr "Відкрити шар форм" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "_Відкрити" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:32 msgid "Toggle visible" msgstr "Перемкнути видимість" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:44 msgid "Remove Shape Layer" msgstr "Вилучити шар форм" #: data/ui/sidebar.ui:207 msgid "Route search by GraphHopper" msgstr "Пошук маршрутів через GraphHopper" #: data/ui/sidebar.ui:272 msgid "" "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of " "transportation,\n" "e.g. a national provider might not include airlines, and a local provider " "could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" "Дані путівника для громадського транспорту надано сторонніми службами.\n" "GNOME не може гарантувати правильність показаних маршрутів і розкладів.\n" "Зауважте, що деякі надавачі даних можуть не включати усі можливі варіанти\n" "пересування. Наприклад, національний оператор громадського транспорту може\n" "не включати дані перельотів літаком, а надавач даних громадського " "транспорту\n" "у місті — даних регіональної залізниці.\n" "Показані назви і торгові марки є зареєстрованими знаками, якщо це може їх " "стосуватися." #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:98 msgid "Hide intermediate stops and information" msgstr "Сховати проміжні зупинки та відомості" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:156 msgid "Show intermediate stops and information" msgstr "Показати проміжні зупинки та відомості" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:16 msgid "Leave Now" msgstr "Уже їде" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:17 msgid "Leave By" msgstr "Їде через" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:18 msgid "Arrive By" msgstr "Прибуває за" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:85 msgid "Show" msgstr "Показувати" #: data/ui/transit-options-panel.ui:95 msgid "Buses" msgstr "Автобуси" #: data/ui/transit-options-panel.ui:101 msgid "Trams" msgstr "Трамваї" #: data/ui/transit-options-panel.ui:107 msgid "Trains" msgstr "Потяги" #: data/ui/transit-options-panel.ui:113 msgid "Subway" msgstr "Метро" #: data/ui/transit-options-panel.ui:119 msgid "Ferries" msgstr "Пороми" #: data/ui/transit-options-panel.ui:125 msgid "Airplanes" msgstr "Літаки" #. Translators: This is a tooltip #: data/ui/place-bar.ui:33 data/ui/place-buttons.ui:27 msgid "Share Location" msgstr "Оприлюднити місце" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:11 msgid "Add to new route" msgstr "Додати новий маршрут" #. Translators: This is the button to find a route to a place #: data/ui/place-buttons.ui:15 msgid "Directions" msgstr "Напрямки" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:36 msgid "Mark as Favorite" msgstr "Додати до улюблених" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:44 msgid "Edit on OpenStreetMap" msgstr "Редагувати в OpenStreetMap" #. Translators: This is a tooltip #: data/ui/place-view.ui:52 msgid "Share location" msgstr "Оприлюднити місце" #: data/ui/poi-category-goback-row.ui:22 msgid "Back to Main Categories" msgstr "Повернутися до основних категорій" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:19 msgid "Reset Rotation" msgstr "Скинути обертання" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:32 msgid "Zoom Out" msgstr "Зменшити" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:43 src/mapView.js:1238 msgid "Zoom In" msgstr "Збільшити" #: lib/maps-file-data-source.c:262 lib/maps-file-data-source.c:338 #: lib/maps-file-data-source.c:418 msgid "Failed to find tile structure in directory" msgstr "Не вдалося знайти плиткову структуру в каталозі" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "Не вдалося розібрати документ XML" #: lib/maps-osm.c:250 lib/maps-osm.c:403 msgid "Missing required attributes" msgstr "Бракує потрібних атрибутів" #: lib/maps-osm.c:451 lib/maps-osm.c:494 msgid "Could not find OSM element" msgstr "Неможливо знайти елемент OSM" #: lib/maps-osm.c:508 msgid "Could not find user element" msgstr "Не вдалося знайти елемент користувача" #: src/application.js:78 msgid "A path to a local tiles directory structure" msgstr "Шлях до локального каталогу зі структурою плиток " #: src/application.js:84 msgid "Tile size for local tiles directory" msgstr "Розмір плитки для каталогу локальних плиток" #: src/application.js:88 msgid "Show the version of the program" msgstr "Показати версію програми" #: src/application.js:94 msgid "Search for places" msgstr "Шукати місця" #: src/application.js:105 src/application.js:106 msgid "[FILE…|URI]" msgstr "[ФАЙЛ…|АДРЕСА]" #: src/application.js:284 #, javascript-format msgid "Invalid maps: URI: %s" msgstr "Некоректні карти: адреса: %s" #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:75 #, javascript-format msgid "Maps at %f, %f.png" msgstr "Карта для %f, %f.png" #: src/exportViewDialog.js:174 msgid "Unable to export view" msgstr "Неможливо експортувати перегляд" #: src/favoriteListRow.js:42 msgid "Favorite removed" msgstr "Улюблений запис вилучено" #: src/favoriteListRow.js:43 msgid "Undo" msgstr "Скасувати" #: src/geoJSONSource.js:73 msgid "invalid coordinate" msgstr "неправильна координата" #: src/geoJSONSource.js:126 src/geoJSONSource.js:166 src/geoJSONSource.js:181 msgid "parse error" msgstr "помилка розбирання" #: src/geoJSONSource.js:160 msgid "unknown geometry" msgstr "невідома геометрія" #: src/graphHopper.js:101 src/transitPlan.js:175 msgid "Route request failed." msgstr "Невдалий запит маршруту." #: src/graphHopper.js:108 src/transitPlan.js:167 msgid "No route found." msgstr "Не знайдено жодного маршруту." #: src/graphHopper.js:195 src/transitplugins/openTripPlanner.js:1163 msgid "Start!" msgstr "Нумо!" #: src/mainWindow.js:59 msgid "All Layer Files" msgstr "Усі файли шарів" #: src/mainWindow.js:522 msgid "Failed to connect to location service" msgstr "Не вдалося з'єднатись зі службою розташування" #: src/mainWindow.js:527 msgid "Turn on location services" msgstr "Увімкнути служби місця перебування" #: src/mainWindow.js:528 msgid "Location Settings" msgstr "Параметри розташування" #: src/mainWindow.js:645 msgid "translator-credits" msgstr "Daniel Korostil " #: src/mainWindow.js:649 msgid "Copyright © 2011 – 2023 Red Hat, Inc. and The GNOME Maps authors" msgstr "© Red Hat, Inc. та розробники «Карт» GNOME, 2011–2023" #: src/mainWindow.js:665 #, javascript-format msgid "Map data by %s and contributors" msgstr "Дані карт надано %s та учасниками проєкту" #: src/mainWindow.js:666 msgid "Map Data Provider" msgstr "Надавач даних карти" #: src/mainWindow.js:678 msgid "Map Tile Provider" msgstr "Надавач блоків карти" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:686 #, javascript-format msgid "Map tiles provided by %s" msgstr "Блоки карти надано %s" #: src/mainWindow.js:716 msgid "Search Provider" msgstr "Надавач пошуку" #: src/mainWindow.js:719 #, javascript-format msgid "Search provided by %s using %s" msgstr "Послуги з пошуку надано %s, використовуємо %s" #: src/mapView.js:637 src/mapView.js:702 msgid "Failed to open layer" msgstr "Не вдалося відкрити шар" #: src/mapView.js:656 msgid "Do you want to continue?" msgstr "Продовжити?" #: src/mapView.js:657 #, javascript-format msgid "" "You are about to open files with a total size of %s MB. This could take some " "time to load" msgstr "" "Ви маєте намір відкрити файли, загальний розмір яких дорівнює %s МБ. Процес " "завантаження цих файлів може бути досить тривалим." #: src/mapView.js:664 src/transitplugins/openTripPlanner.js:1239 #: src/transitplugins/openTripPlanner2.js:267 msgid "Continue" msgstr "Продовжуйте" #: src/mapView.js:696 msgid "File type is not supported" msgstr "Тип файла не підтримується" #: src/mapView.js:733 msgid "Failed to open GeoURI" msgstr "Не вдалося відкрити GeoURI" #: src/mapView.js:1197 msgid "Nothing found here!" msgstr "Тут нічого немає!" #: src/mapView.js:1237 msgid "Zoom in to add location" msgstr "Наблизьтесь, щоб додати місце" #: src/mapView.js:1258 msgid "Location was added in OpenStreetMap" msgstr "Місце було додано в OpenStreetMap" #. switch back to the sign-in view, and show a toast indicating #. that verification failed #: src/osmAccountDialog.js:134 msgid "The verification code didn’t match, please try again." msgstr "Код звіряння не збігається, спробуйте ще раз." #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:335 msgid "Incorrect user name or password" msgstr "Хибний користувач або пароль" #: src/osmConnection.js:337 msgid "Success" msgstr "Успіх" #: src/osmConnection.js:339 msgid "Bad request" msgstr "Поганий запит" #: src/osmConnection.js:341 msgid "Object not found" msgstr "Об'єкт не знайдено" #: src/osmConnection.js:343 msgid "Conflict, someone else has just modified the object" msgstr "Конфлікт, хтось інший щойно змінив об'єкт" #: src/osmConnection.js:345 msgid "Object has been deleted" msgstr "Об'єкт вилучено" #: src/osmConnection.js:347 msgid "Way or relation refers to non-existing children" msgstr "Спосіб або відношення не стосується чогось явного" #: src/osmEditDialog.js:106 msgid "Name" msgstr "Назва" #: src/osmEditDialog.js:109 msgid "The official name. This is typically what appears on signs." msgstr "Офіційна назва. Це зазвичай перше, що потрапляє на очі." #: src/osmEditDialog.js:112 msgid "Address" msgstr "Адреса" #: src/osmEditDialog.js:120 src/placeView.js:275 msgid "Website" msgstr "Сайт" #: src/osmEditDialog.js:124 msgid "This is not a valid URL. Make sure to include http:// or https://." msgstr "" "Ця адреса є некоректною. Переконайтеся, що адреса починається з http:// або " "https://." #: src/osmEditDialog.js:125 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" "Офіційний сайт. Намагайтесь використовувати найосновнішу форму посилання, " "наприклад, http://example.com замість http://example.com/index.html." #: src/osmEditDialog.js:130 msgid "Phone" msgstr "Телефон" #: src/osmEditDialog.js:134 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" "Номер телефону. Використовуйте міжнародний формат, який починається з знаку " "плюса (+). Будь обачні з місцевим законами щодо конфіденційності, особливо " "особистими номерами." #: src/osmEditDialog.js:139 msgid "E-mail" msgstr "Ел. пошта" #: src/osmEditDialog.js:144 #| msgid "" #| "This is not a valid e-mail address. Make sure to not include the mailto: " #| "protocol prefix." msgid "" "This is not a valid email address. Make sure to not include the mailto: " "protocol prefix." msgstr "" "Ця адреса електронної пошти є некоректною. Не використовуйте префікс " "протоколу mailto:." #: src/osmEditDialog.js:145 #| msgid "" #| "Contact e-mail address for inquiries. Add only email addresses that are " #| "intended to be publicly used." msgid "" "Contact email address for inquiries. Add only email addresses that are " "intended to be publicly used." msgstr "" "Адреса електронної пошти для довідкової інформації. Додавайте лише адреси, " "які призначено для загального доступу." #. Translators: This is the text for the "Wikipedia" link at the end #. of summaries #: src/osmEditDialog.js:149 src/placeView.js:727 msgid "Wikipedia" msgstr "Wikipedia" #: src/osmEditDialog.js:156 src/placeView.js:399 msgid "Opening hours" msgstr "Робочий час" #: src/osmEditDialog.js:161 msgid "See the link in the label for help on format." msgstr "Довідку щодо формату можна знати за посилання у мітці." #. TODO: this is a bit of a work-around to re-interpret the population, #. * stored as a string into an integer to convert back to a locale- #. * formatted string. Ideally it should be kept as an integer value #. * in the Place class. But this will also need to be handled by the #. * PlaceStore, possible in a backwards-compatible way #. #: src/osmEditDialog.js:164 src/placeView.js:509 msgid "Population" msgstr "Населення" #: src/osmEditDialog.js:169 src/placeView.js:538 msgid "Altitude" msgstr "Висота" #: src/osmEditDialog.js:172 #| msgid "Elevation (height above sea level) of a point in metres." msgid "Elevation (height above sea level) of a point in meters." msgstr "Висота (над рівнем моря) у метрах." #: src/osmEditDialog.js:175 msgid "Wheelchair access" msgstr "Доступ для возиків" #: src/osmEditDialog.js:178 src/osmEditDialog.js:187 src/osmEditDialog.js:198 #: src/osmEditDialog.js:233 msgid "Yes" msgstr "Так" #: src/osmEditDialog.js:179 src/osmEditDialog.js:188 src/osmEditDialog.js:199 #: src/osmEditDialog.js:234 msgid "No" msgstr "Ні" #: src/osmEditDialog.js:180 msgid "Limited" msgstr "Обмежено" #: src/osmEditDialog.js:181 msgid "Designated" msgstr "Вказано" #: src/osmEditDialog.js:184 msgid "Internet access" msgstr "Доступ до інтернету" #: src/osmEditDialog.js:189 msgid "Wi-Fi" msgstr "Wi-Fi" #: src/osmEditDialog.js:190 msgid "Wired" msgstr "Дріт" #: src/osmEditDialog.js:191 msgid "Terminal" msgstr "Термінал" #: src/osmEditDialog.js:192 msgid "Service" msgstr "Служба" #: src/osmEditDialog.js:195 msgid "Takeout" msgstr "Їжа на винос" #: src/osmEditDialog.js:200 msgid "Only" msgstr "Лише" #: src/osmEditDialog.js:203 msgid "Religion" msgstr "Релігія" #: src/osmEditDialog.js:206 src/translations.js:286 msgid "Animism" msgstr "Анімізм" #: src/osmEditDialog.js:207 msgid "Bahá’í" msgstr "Бахаїзм" #: src/osmEditDialog.js:208 src/translations.js:288 msgid "Buddhism" msgstr "Буддизм" #: src/osmEditDialog.js:209 src/translations.js:289 msgid "Caodaism" msgstr "Каодай" #: src/osmEditDialog.js:210 src/translations.js:290 msgid "Christianity" msgstr "Християнство" #: src/osmEditDialog.js:211 src/translations.js:291 msgid "Confucianism" msgstr "Конфуціанство" #: src/osmEditDialog.js:212 src/translations.js:292 msgid "Hinduism" msgstr "Індуїзм" #: src/osmEditDialog.js:213 src/translations.js:293 msgid "Jainism" msgstr "Джайнізм" #: src/osmEditDialog.js:214 src/translations.js:294 msgid "Judaism" msgstr "Юдаїзм" #: src/osmEditDialog.js:215 src/translations.js:295 msgid "Islam" msgstr "Іслам" #: src/osmEditDialog.js:216 src/translations.js:296 msgid "Multiple Religions" msgstr "Мультиконфесійність" #: src/osmEditDialog.js:217 src/translations.js:297 msgid "Paganism" msgstr "Язичництво" #: src/osmEditDialog.js:218 src/translations.js:298 msgid "Pastafarianism" msgstr "Пастафаріанство" #: src/osmEditDialog.js:219 src/translations.js:299 msgid "Scientology" msgstr "Сайнтологія" #: src/osmEditDialog.js:220 src/translations.js:300 msgid "Shinto" msgstr "Сінтоїзм" #: src/osmEditDialog.js:221 src/translations.js:301 msgid "Sikhism" msgstr "Сикхізм" #: src/osmEditDialog.js:222 src/translations.js:302 msgid "Spiritualism" msgstr "Спіритуалізм" #: src/osmEditDialog.js:223 src/translations.js:303 msgid "Taoism" msgstr "Даосизм" #: src/osmEditDialog.js:224 src/translations.js:304 msgid "Unitarian Universalism" msgstr "Унітарний універсалізм" #: src/osmEditDialog.js:225 src/translations.js:305 msgid "Voodoo" msgstr "Вуду" #: src/osmEditDialog.js:226 src/translations.js:306 msgid "Yazidism" msgstr "Єзидизм" #: src/osmEditDialog.js:227 src/translations.js:307 msgid "Zoroastrianism" msgstr "Зороастризм" #: src/osmEditDialog.js:230 src/poiCategories.js:176 msgid "Toilets" msgstr "Туалети" #: src/osmEditDialog.js:237 msgid "Note" msgstr "Примітка" #: src/osmEditDialog.js:240 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" "Запис інформації використовується для надання іншим творцям карти " "неочевидних відомостей щодо елемента карти, мети його створення або підказок " "щодо подальшого поліпшення." #: src/osmEditDialog.js:339 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "Додати до OpenStreetMap" #: src/osmEditDialog.js:393 msgid "Select Type" msgstr "Виберіть тип" #: src/osmEditDialog.js:515 msgid "Done" msgstr "Зроблено" #: src/osmEditDialog.js:818 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "Формат слід містити код мови і назву статті, як-от «uk:Назва статті»." #: src/osmEditDialog.js:824 msgid "" "Use the reload button to load the Wikidata tag for the selected article" msgstr "" "Скористайтеся кнопкою перезавантаження, щоб завантажити мітку Вікіданих для " "вибраної статті" #: src/osmEditDialog.js:832 msgid "Couldn't find Wikidata tag for article" msgstr "Не вдалося знайти мітку Вікіданих для статті" #: src/photonUtils.js:118 msgid "Unnamed place" msgstr "Місце без назви" #: src/placeEntry.js:274 msgid "Failed to parse Geo URI" msgstr "Не вдалося розібрати геопосилання" #: src/placeEntry.js:286 msgid "Failed to parse Maps URI" msgstr "Не вдалося розібрати адресу «Карт»" #. 300 ft (300 * 12 * 0.0254 m) #. #. * Translators: This a format string for showing a distance to a place #. * is lower than a "quite short" distance. #. * The "less than" symbol can be substituded with an appropriate one, if #. * needed (e.g. using the correct direction, or alternative symbol). #. * The %s should be kept, and is substituted with a label representing the #. * short distance. The \u2009 (thin space) could also be adjusted if needed #: src/placeListRow.js:46 #, javascript-format msgctxt "short distance format string" msgid "< %s" msgstr "< %s" #: src/placeView.js:263 msgid "Coordinates" msgstr "Координати" #: src/placeView.js:267 msgid "Accuracy" msgstr "Точність" #. Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) #: src/placeView.js:270 #, javascript-format msgid "Accuracy: %s" msgstr "Точність: %s" #. since the phone numbers are typically always rendered #. * left-to-right, insert an explicit LRM char to avoid issues #. * with phone numbers in international format starting with a + #. * which is considered a "weak" character to determine Unicode #. * text direction #. #: src/placeView.js:289 msgid "Phone number" msgstr "Номер телефону" #: src/placeView.js:308 msgid "Email" msgstr "Пошта" #. If a reference to a named floor (named or symbolic) exists #. * refer to it directly. #. #. Translators: #. * This is a reference to named building floor, using a label #. * or a code, as "displayed in the elevator" #. #: src/placeView.js:323 src/placeView.js:362 msgid "Floor" msgstr "Поверх" #: src/placeView.js:325 #, javascript-format msgid "Floor %s" msgstr "Поверх %s" #: src/placeView.js:337 msgid "At ground level" msgstr "На нульовому рівні" #. Translators: #. * This is a reference to a number of floors above #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:346 #, javascript-format msgid "%s floor above ground level" msgid_plural "%s floors above ground level" msgstr[0] "%s поверх над нульовим рівнем" msgstr[1] "%s поверхи над нульовим рівнем" msgstr[2] "%s поверхів над нульовим рівнем" msgstr[3] "%s поверх над нульовим рівнем" #. Translators: #. * This is a reference to a number of floors below #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:357 #, javascript-format msgid "%s floor below ground level" msgid_plural "%s floors below ground level" msgstr[0] "%s поверх під нульовим рівнем" msgstr[1] "%s поверхи під нульовим рівнем" msgstr[2] "%s поверхів під нульовим рівнем" msgstr[3] "%s поверх під нульовим рівнем" #. Translators: #. * The establishment offers customers to purchase meals #. * (or similar) to be consumed elsewhere #. #: src/placeView.js:375 msgid "Offers takeout" msgstr "Пропонує їжу на винос" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed on-premise. #. #: src/placeView.js:383 msgid "Does not offer takeout" msgstr "Не пропонує їжі на винос" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed elsewhere. E.g. #. * there is no seating on-premise for eating/drinking #. #: src/placeView.js:392 msgid "Only offers takeout" msgstr "Пропонує лише їжу на винос" #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/placeView.js:409 msgid "Public internet access" msgstr "Громадський доступ до інтернету" #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/placeView.js:418 msgid "No internet access" msgstr "Немає доступу до інтернету" #. Translators: #. * This means a WLAN Hotspot, also known as wireless, wifi or Wi-Fi. #. #: src/placeView.js:426 msgid "Public Wi-Fi" msgstr "Громадський Wi-Fi" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/placeView.js:434 msgid "Wired internet access" msgstr "Дротовий доступ до інтернету" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/placeView.js:442 msgid "Computers available for use" msgstr "Є доступ до комп'ютерів" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/placeView.js:450 msgid "Internet assistance available" msgstr "Доступна інтернет-допомога" #: src/placeView.js:456 msgid "No toilets available" msgstr "Немає туалетів" #: src/placeView.js:459 msgid "Toilets available" msgstr "Є туалети" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #: src/placeView.js:468 msgid "Wheelchair accessible" msgstr "Доступне для візків" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/placeView.js:478 msgid "Limited wheelchair accessibility" msgstr "Обмежена доступність для візків" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #: src/placeView.js:487 msgid "Not wheelchair accessible" msgstr "Недоступне для візків" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/placeView.js:497 msgid "Designated for wheelchair users" msgstr "Позначено для користувачів візків" #. * #. * Translators: this is a label indicating an altitude below #. * sea level, where the %s placeholder is the altitude relative #. * to mean sea level in the "negative direction" #. #: src/placeView.js:528 #, javascript-format msgid "%s below sea level" msgstr "%s під рівнем моря" #. * #. * Translators: this indicates a place is located at (or very #. * close to) mean sea level #. #: src/placeView.js:535 msgid "At sea level" msgstr "На рівні моря" #: src/placeView.js:544 msgid "Religion:" msgstr "Релігія:" #: src/place.js:568 msgid "Place not found in OpenStreetMap" msgstr "Місце не знайдено на OpenStreetMap" #: src/place.js:575 msgid "Coordinates in URL are not valid" msgstr "Координати у адресі є некоректними" #: src/place.js:584 msgid "URL is not supported" msgstr "Підтримки адреси не передбачено" #: src/poiCategories.js:132 msgid "Amenities" msgstr "Зручності" #: src/poiCategories.js:135 msgid "ATMs" msgstr "Банкомати" #: src/poiCategories.js:141 msgid "Post Boxes" msgstr "Поштові скриньки" #: src/poiCategories.js:147 msgid "Post Offices" msgstr "Поштові відділення" #: src/poiCategories.js:153 msgid "Police" msgstr "Поліція" #: src/poiCategories.js:159 msgid "Libraries" msgstr "Бібліотеки" #: src/poiCategories.js:165 msgid "Pharmacies" msgstr "Аптеки" #: src/poiCategories.js:171 msgid "Recycling" msgstr "Пункт переробки" #: src/poiCategories.js:182 msgid "Wheelchair-accessible Toilets" msgstr "Туалети з доступністю для візків" #: src/poiCategories.js:188 msgid "Baggage Lockers" msgstr "Шафи для зберігання речей" #: src/poiCategories.js:196 msgid "Eating & Drinking" msgstr "Їжа і напої" #: src/poiCategories.js:200 msgid "Restaurants" msgstr "Ресторани" #: src/poiCategories.js:205 msgid "Fast Food" msgstr "Фастфуд" #: src/poiCategories.js:210 msgid "Food Courts" msgstr "Фудкорти" #: src/poiCategories.js:215 msgid "Pubs" msgstr "Паби" #: src/poiCategories.js:221 msgid "Bars" msgstr "Бари" #: src/poiCategories.js:226 msgid "Cafes" msgstr "Кав'ярні" #: src/poiCategories.js:231 msgid "Ice Cream" msgstr "Морозиво" #: src/poiCategories.js:236 msgid "Food, Snacks, and Beverage Machines" msgstr "Автомати продажу їжі, закусок та напоїв" #: src/poiCategories.js:244 msgid "Shopping" msgstr "Крамниці" #: src/poiCategories.js:248 msgid "Supermarkets" msgstr "Супермаркети" #: src/poiCategories.js:254 msgid "Convenience Stores" msgstr "Магазини самообслуговування" #: src/poiCategories.js:259 msgid "Shopping Malls" msgstr "Торгові пасажі" #: src/poiCategories.js:265 msgid "Clothes" msgstr "Одежа" #: src/poiCategories.js:271 msgid "Shoes" msgstr "Взуття" #: src/poiCategories.js:276 msgid "Electronics" msgstr "Електроніка" #: src/poiCategories.js:282 msgid "Alcohol" msgstr "Алкоголь" #: src/poiCategories.js:288 msgid "Bakeries" msgstr "Пекарні" #: src/poiCategories.js:294 msgid "Flowers" msgstr "Квіти" #: src/poiCategories.js:301 msgid "Transportation" msgstr "Транспорт" #: src/poiCategories.js:305 msgid "Bus & Tram Stops" msgstr "Зупинки автобусів і трамваїв" #: src/poiCategories.js:313 msgid "Train & Subway Stations" msgstr "Залізничні станції і станції метро" #: src/poiCategories.js:321 msgid "Tickets" msgstr "Квитки" #: src/poiCategories.js:329 msgid "Parking" msgstr "Паркування" #: src/poiCategories.js:334 msgid "Bicycle Parking" msgstr "Паркування велосипедів" #: src/poiCategories.js:339 msgid "Bicycle Rental" msgstr "Прокат велосипедів" #: src/poiCategories.js:344 msgid "Car Rental" msgstr "Оренда автомобілів" #: src/poiCategories.js:349 msgid "Fuel" msgstr "Паливо" #: src/poiCategories.js:354 msgid "EV Charging" msgstr "Заряджальні станції" #: src/poiCategories.js:362 msgid "Healthcare" msgstr "Медицина" #: src/poiCategories.js:366 msgid "Clinics" msgstr "Клініки" #: src/poiCategories.js:372 msgid "Hospitals" msgstr "Лікарні" #: src/poiCategories.js:378 msgid "Dentists" msgstr "Дантисти" #: src/poiCategories.js:386 msgid "Accommodation" msgstr "Готельні послуги" #: src/poiCategories.js:390 msgid "Hotels" msgstr "Готелі" #: src/poiCategories.js:395 msgid "Hostels" msgstr "Гуртожитки" #: src/poiCategories.js:400 msgid "Bed & Breakfast" msgstr "Ліжко і сніданок" #: src/poiCategories.js:405 msgid "Campings" msgstr "Кемпінги" #: src/poiCategories.js:412 msgid "Recreation" msgstr "Відпочинок" #: src/poiCategories.js:416 msgid "Parks" msgstr "Парки" #: src/poiCategories.js:421 msgid "Playgrounds" msgstr "Ігрові майданчики" #: src/poiCategories.js:425 msgid "Beaches" msgstr "Пляжі" #: src/poiCategories.js:430 msgid "Nature Reserves" msgstr "Заповідники" #: src/poiCategories.js:436 msgid "Theme Parks" msgstr "Тематичні парки" #: src/poiCategories.js:441 msgid "Theaters" msgstr "Театри" #: src/poiCategories.js:447 msgid "Movie Theaters" msgstr "Кінотеатри" #: src/poiCategories.js:453 msgid "Night Clubs" msgstr "Нічні клуби" #: src/poiCategories.js:460 msgid "Tourism" msgstr "Туризм" #: src/poiCategories.js:464 msgid "Museums" msgstr "Музеї" #: src/poiCategories.js:470 msgid "Attractions" msgstr "Атракціони" #: src/poiCategories.js:475 msgid "Artworks" msgstr "Оформлення" #: src/poiCategories.js:480 msgid "Tourist Information" msgstr "Туристичні дані" #: src/poiCategories.js:487 msgid "Sports" msgstr "Спорт" #: src/poiCategories.js:491 msgid "Gyms" msgstr "Спортзали" #: src/poiCategories.js:497 msgid "Outdoor Gyms" msgstr "Гімнастичні майданчики" #: src/poiCategories.js:503 msgid "Golf Courses" msgstr "Поля для гольфу" #: src/printLayout.js:350 #, javascript-format msgid "From %s to %s" msgstr "З %s до %s" #: src/printOperation.js:49 msgid "Loading map tiles for printing" msgstr "Завантаження плиток карти для друкування" #: src/printOperation.js:50 msgid "You can abort printing if this takes too long" msgstr "Можете скасувати друкування, якщо це надто довго" #: src/printOperation.js:52 msgid "Abort printing" msgstr "Скасувати друкування" #. Translators: this is add via location tooltip #: src/routeEntry.js:60 msgid "Add via location" msgstr "Додати проміжне місце" #. Translators: this is remove via location tooltip #: src/routeEntry.js:70 msgid "Remove via location" msgstr "Влучити проміжне місце" #. Translators: this is reverse route tooltip #: src/routeEntry.js:76 msgid "Reverse route" msgstr "Зворотній маршрут" #: src/searchBar.js:45 msgid "Search" msgstr "Пошук" #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:84 #, javascript-format msgid "Add %s to %s" msgstr "Додати %s до %s" #: src/sendToDialog.js:181 msgid "Failed to open URI" msgstr "Не вдалося відкрити посилання" #: src/sendToDialog.js:246 #, javascript-format msgid "Open with %s" msgstr "Відкрити через %s" #: src/shapeLayer.js:109 msgid "failed to load file" msgstr "не вдалося завантажити файл" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:328 #, javascript-format msgid "Estimated time: %s" msgstr "Розрахунковий час: %s" #: src/sidebar.js:398 #, javascript-format msgid "Itineraries provided by %s" msgstr "Маршрути надано %s" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:39 #, javascript-format msgid "Start at %s" msgstr "Відправляється з %s" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:45 src/transitplugins/openTripPlanner2.js:236 msgid "Start" msgstr "Нумо" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:63 #, javascript-format msgid "Walk %s" msgstr "Прогулянка %s" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:77 #, javascript-format msgid "Arrive at %s" msgstr "Прибуває до %s" #: src/transit.js:79 src/transitplugins/openTripPlanner.js:1176 #: src/transitplugins/openTripPlanner2.js:255 msgid "Arrive" msgstr "Прибуває" #: src/transitLegRow.js:69 msgid "Show walking instructions" msgstr "Показати піші варіанти" #: src/transitLegRow.js:70 msgid "Hide walking instructions" msgstr "Сховати піші варіанти" #: src/transitMoreRow.js:37 msgid "Load earlier alternatives" msgstr "Завантажити попередні альтернативи" #: src/transitMoreRow.js:39 msgid "Load later alternatives" msgstr "Завантажити подальші альтернативи" #: src/transitMoreRow.js:52 msgid "No earlier alternatives found." msgstr "Раніших альтернатив не знайдено." #: src/transitMoreRow.js:54 msgid "No later alternatives found." msgstr "Пізніших альтернатив не знайдено." #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:138 msgctxt "month-day-date" msgid "%b %e" msgstr "%e %b" #: src/transitPlan.js:171 msgid "No timetable data found for this route." msgstr "Немає даних про цей маршрут." #: src/transitPlan.js:179 msgid "No provider found for this route." msgstr "Для цього маршруту не знайдено надавачів даних." #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:300 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:331 #, javascript-format msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "%s хвилина" msgstr[1] "%s хвилини" msgstr[2] "%s хвилин" msgstr[3] "%s хвилина" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:343 #, javascript-format msgid "%s hour" msgid_plural "%s hours" msgstr[0] "%s година" msgstr[1] "%s години" msgstr[2] "%s годин" msgstr[3] "%s година" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:351 #, javascript-format msgid "%s:%s hour" msgid_plural "%s:%s hours" msgstr[0] "%s:%s година" msgstr[1] "%s:%s години" msgstr[2] "%s:%s годин" msgstr[3] "%s:%s година" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:744 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: src/translations.js:55 msgid "Around the clock" msgstr "Цілодобово" #: src/translations.js:57 msgid "From sunrise to sunset" msgstr "Від світанку до заходу" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:123 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s,%s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:137 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s,%s,%s" #: src/translations.js:156 msgid "Every day" msgstr "Щодня" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:168 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:179 msgid "Public holidays" msgstr "Святкові дні" #: src/translations.js:181 msgid "School holidays" msgstr "Шкільні канікули" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:221 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: src/translations.js:235 msgid "not open" msgstr "не відкрито" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:250 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:287 msgid "Bahá'í" msgstr "Бахаїзм" #. Translators: Accuracy of user location information #: src/utils.js:248 msgid "Unknown" msgstr "Невідомо" #. Translators: Accuracy of user location information #: src/utils.js:251 msgid "Exact" msgstr "Уточнити" #. Translators: this is a duration with only hours, using #. * an abbreviation for hours, corresponding to 'h' in English #. #: src/utils.js:307 #, javascript-format msgid "%s h" msgstr "%s год" #. Translators: this is a duration with hours and minutes parts #. * using abbreviations for hours and minutes, corresponding to 'h' #. * and 'min' in English. The minutes has appropriate plural variations #. #: src/utils.js:313 #, javascript-format msgid "%s h %s min" msgid_plural "%s h %s min" msgstr[0] "%s год %s хв" msgstr[1] "%s год %s хв" msgstr[2] "%s год %s хв" msgstr[3] "%s год %s хв" #. Translators: this is a duration with minutes part #. * using abbreviation for minutes, corresponding to 'min' in English #. * with appropriate plural variations #. #: src/utils.js:320 #, javascript-format msgid "%s min" msgid_plural "%s min" msgstr[0] "%s хв" msgstr[1] "%s хв" msgstr[2] "%s хв" msgstr[3] "%s хв" #. Translators: this is a duration of less than one minute #. * with seconds using an abbreviation for seconds, corresponding to #. * 's' in English with appropriate plural forms #. #: src/utils.js:326 #, javascript-format msgid "%s s" msgid_plural "%s s" msgstr[0] "%s с" msgstr[1] "%s с" msgstr[2] "%s с" msgstr[3] "%s с" #. Translators: This is a distance measured in kilometers #: src/utils.js:337 #, javascript-format msgid "%s km" msgstr "%s км" #. Translators: This is a distance measured in meters #: src/utils.js:340 #, javascript-format msgid "%s m" msgstr "%s м" #. Translators: This is a distance measured in miles #: src/utils.js:348 #, javascript-format msgid "%s mi" msgstr "%s ми" #. Translators: This is a distance measured in feet #: src/utils.js:351 #, javascript-format msgid "%s ft" msgstr "%s фт" #: src/transitplugins/goMetro.js:61 msgid "This plugin doesn't support latest arrival" msgstr "" "У цьому додатку не передбачено підтримки визначення найпізнішого прибуття" #: src/transitplugins/openTripPlanner.js:1237 #: src/transitplugins/openTripPlanner2.js:266 #, javascript-format msgid "Continue on %s" msgstr "Продовжуйте на %s" #: src/transitplugins/openTripPlanner.js:1242 #: src/transitplugins/openTripPlanner2.js:270 #, javascript-format msgid "Turn left on %s" msgstr "Поверніть ліворуч на %s" #: src/transitplugins/openTripPlanner.js:1244 #: src/transitplugins/openTripPlanner2.js:271 msgid "Turn left" msgstr "Поверніть ліворуч" #: src/transitplugins/openTripPlanner.js:1247 #: src/transitplugins/openTripPlanner2.js:275 #, javascript-format msgid "Turn slightly left on %s" msgstr "Поверніть трохи ліворуч на %s" #: src/transitplugins/openTripPlanner.js:1249 #: src/transitplugins/openTripPlanner2.js:276 msgid "Turn slightly left" msgstr "Поверніть трохи ліворуч" #: src/transitplugins/openTripPlanner.js:1252 #: src/transitplugins/openTripPlanner2.js:280 #, javascript-format msgid "Turn sharp left on %s" msgstr "Поверніть строго ліворуч на %s" #: src/transitplugins/openTripPlanner.js:1254 #: src/transitplugins/openTripPlanner2.js:281 msgid "Turn sharp left" msgstr "Різко поверніть ліворуч" #: src/transitplugins/openTripPlanner.js:1257 #: src/transitplugins/openTripPlanner2.js:284 #, javascript-format msgid "Turn right on %s" msgstr "Поверніть праворуч на %s" #: src/transitplugins/openTripPlanner.js:1259 #: src/transitplugins/openTripPlanner2.js:285 msgid "Turn right" msgstr "Поверніть праворуч" #: src/transitplugins/openTripPlanner.js:1262 #: src/transitplugins/openTripPlanner2.js:289 #, javascript-format msgid "Turn slightly right on %s" msgstr "Поверніть трохи праворуч на %s" #: src/transitplugins/openTripPlanner.js:1264 #: src/transitplugins/openTripPlanner2.js:290 msgid "Turn slightly right" msgstr "Поверніть трохи праворуч" #: src/transitplugins/openTripPlanner.js:1267 #: src/transitplugins/openTripPlanner2.js:294 #, javascript-format msgid "Turn sharp right on %s" msgstr "Різко поверніть праворуч на %s" #: src/transitplugins/openTripPlanner.js:1269 #: src/transitplugins/openTripPlanner2.js:295 msgid "Turn sharp right" msgstr "Різко поверніть праворуч" #: src/transitplugins/openTripPlanner.js:1275 #: src/transitplugins/openTripPlanner2.js:302 #, javascript-format msgid "At the roundabout, take exit %s" msgstr "На розвороті виберіть виїзд %s" #: src/transitplugins/openTripPlanner.js:1277 #: src/transitplugins/openTripPlanner2.js:305 #, javascript-format msgid "At the roundabout, take exit to %s" msgstr "На розвороті виберіть виїзд до %s" #: src/transitplugins/openTripPlanner.js:1279 #: src/transitplugins/openTripPlanner2.js:307 msgid "Take the roundabout" msgstr "В'їжджайте на розворот" #: src/transitplugins/openTripPlanner.js:1283 #: src/transitplugins/openTripPlanner2.js:315 #, javascript-format msgid "Take the elevator and get off at %s" msgstr "Увійдіть до ліфта і вийдіть на %s" #: src/transitplugins/openTripPlanner.js:1285 #: src/transitplugins/openTripPlanner2.js:316 msgid "Take the elevator" msgstr "Увійдіть до ліфта" #: src/transitplugins/openTripPlanner.js:1289 #: src/transitplugins/openTripPlanner2.js:320 #, javascript-format msgid "Make a left u-turn onto %s" msgstr "Виконайте лівий розворот на %s" #: src/transitplugins/openTripPlanner.js:1291 #: src/transitplugins/openTripPlanner2.js:321 msgid "Make a left u-turn" msgstr "Виконайте лівий розворот" #: src/transitplugins/openTripPlanner.js:1294 #: src/transitplugins/openTripPlanner2.js:325 #, javascript-format msgid "Make a right u-turn onto %s" msgstr "Виконайте правий розворот на %s" #: src/transitplugins/openTripPlanner.js:1296 #: src/transitplugins/openTripPlanner2.js:326 msgid "Make a right u-turn" msgstr "Виконайте правий розворот" #~ msgid "Sign in to edit maps" #~ msgstr "" #~ "Увійти, щоб редагувати карту" #~ msgid "" #~ "Sign in to authorize access in a web browser.\n" #~ "Then fill in the obtained verification code here in the next step." #~ msgstr "" #~ "Увійдіть до системи у браузері, щоб отримати доступ.\n" #~ "Далі, вставте отриманий код перевірки тут на наступному кроці." #~ msgid "Signed In" #~ msgstr "Увійшли" #~ msgid "Sign up" #~ msgstr "Зареєструватися" #~ msgid "Filesystem is read only" #~ msgstr "Файлова система тільки для читання" #~ msgid "You do not have permission to save there" #~ msgstr "Немає прав, щоб зберігати там" #~ msgid "The directory does not exist" #~ msgstr "Каталог не існує" #~ msgid "No filename specified" #~ msgstr "Не вказано назви файла" #~ msgid "" #~ "Location was added to the map, note that it may take a while before it " #~ "shows on the map and in search results." #~ msgstr "" #~ "Місцевість додано на карту, майте на увазі, що це може забрати трохи часу " #~ "перед тим, як воно буде показано на карті й у результатах пошуку." #~ msgid "Takeaway" #~ msgstr "Перекусна" #~ msgid "Go to current location" #~ msgstr "Перейти до поточної місцевості" #~ msgid "Choose map type" #~ msgstr "Вибрати тип карти" #~ msgid "Zoom in" #~ msgstr "Збільшити" #~ msgid "Drag to change order of the route" #~ msgstr "Перенесіть, щоб змінити порядок маршруту" #~ msgid "A map application for GNOME" #~ msgstr "Карти для GNOME" #~ msgid "Failed to authorize access" #~ msgstr "Не вдалося уповноважити доступ" #~ msgid "Try again" #~ msgstr "Повторити спробу" #~ msgid "Use hybrid aerial tiles" #~ msgstr "Використовувати гібридні супутникові плитки" #~ msgid "Whether aerial tiles should use hybrid style (with labels)." #~ msgstr "" #~ "Чи слід використовувати гібридний стиль (із мітками) для супутникових " #~ "плиток." #~ msgid "Include route and markers" #~ msgstr "Врахувати маршрут і помітки" #~ msgid "Show Labels" #~ msgstr "Показувати мітки" #~ msgid "Foursquare check-in privacy setting" #~ msgstr "Параметри конфіденційності Foursquare щодо відзначення" #~ msgid "" #~ "Latest used Foursquare check-in privacy setting. Possible values are: " #~ "public, followers or private." #~ msgstr "" #~ "Останній використаний параметр конфіденційності Foursquare щодо " #~ "відзначення. Допустимі значення: public, followers або private." #~ msgid "Foursquare check-in Facebook broadcasting" #~ msgstr "Транслювання відзначення Foursquare через Facebook" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a post in the " #~ "Facebook account associated with the Foursquare account." #~ msgstr "" #~ "Показує, чи слід Foursquare транслювати відзначення як допис на " #~ "обліковому записі Facebook, який зв'язано з обліковим записом Foursquare." #~ msgid "Foursquare check-in Twitter broadcasting" #~ msgstr "Транслювання відзначення Foursquare через Twitter" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a tweet in the " #~ "Twitter account associated with the Foursquare account." #~ msgstr "" #~ "Показує, чи слід Foursquare транслювати відзначення як допис на " #~ "обліковому записі Twitter, який зв'язано з обліковим записом Foursquare." #~ msgid "Visibility" #~ msgstr "Видимість" #~ msgid "Post on Facebook" #~ msgstr "Допис на Facebook" #~ msgid "Post on Twitter" #~ msgstr "Допис на Twitter" #~ msgid "C_heck in" #~ msgstr "Від_значитись" #~ msgid "Public" #~ msgstr "Відкрито" #~ msgid "Private" #~ msgstr "Особисто" #~ msgid "Maps is offline!" #~ msgstr "Карти поза мережею!" #~ msgid "" #~ "Maps need an active internet connection to function properly, but one " #~ "can’t be found." #~ msgstr "" #~ "Карти потребують з'єднання з інтернетом, щоб повноцінно працювати, але " #~ "його немає." #~ msgid "Check your connection and proxy settings." #~ msgstr "Перевірте зв'язок і параметри проксі." #~ msgid "Password" #~ msgstr "Пароль" #~ msgid "" #~ "Sorry, that didn’t work. Please try again, or visit\n" #~ "OpenStreetMap to reset your password." #~ msgstr "" #~ "Вибачте, не виконалось. Спробуйте ще раз, або відвідайте\n" #~ "OpenStreetMap, щоб оновити пароль." #~ msgid "Check In…" #~ msgstr "Відзначитися…" #~ msgid "Ignore network availability" #~ msgstr "Ігнорувати доступність мережі" #~ msgid "Select an account" #~ msgstr "Виберіть обліковий запис" #~ msgid "Loading" #~ msgstr "Завантаження" #~ msgid "Select a place" #~ msgstr "Виберіть місце" #~ msgid "" #~ "Maps cannot find the place to check in to with Foursquare. Please select " #~ "one from this list." #~ msgstr "" #~ "Картами неможливо знайти місце, щоб відзначитись через Foursquare. " #~ "Виберіть щось зі списку." #, javascript-format #~ msgid "Check in to %s" #~ msgstr "Відзначитись на %s" #, javascript-format #~ msgid "Write an optional message to check in to %s." #~ msgstr "Напишіть довільне повідомлення, щоб відзначитись на %s." #, javascript-format #~ msgid "Cannot find “%s” in the social service" #~ msgstr "Неможливо знайти «%s» в соціальних службах" #~ msgid "Cannot find a suitable place to check-in in this location" #~ msgstr "Неможливо знайти зручне місце, щоб відзначити цю місцевість" #~ msgid "" #~ "Credentials have expired, please open Online Accounts to sign in and " #~ "enable this account" #~ msgstr "" #~ "Реєстраційні дані застаріли, відкрийте Мережеві облікові записи, щоб " #~ "увійти та ввімкнути цей обліковий запис" #~ msgid "GNOME Maps" #~ msgstr "Карти GNOME" #~ msgid "Night mode" #~ msgstr "Нічний режим" #~ msgid "Whether the application is in night mode." #~ msgstr "Чи програма в нічному режимі." #~ msgid "Night Mode" #~ msgstr "Нічний режим" #~ msgid "Facebook check-in privacy setting" #~ msgstr "Параметри конфіденційності Facebook щодо відзначення" #~ msgid "" #~ "Latest used Facebook check-in privacy setting. Possible values are: " #~ "EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS or SELF." #~ msgstr "" #~ "Останній використаний параметр конфіденційності Facebook щодо " #~ "відзначення. Допустимі значення: EVERYONE, FRIENDS_OF_FRIENDS, " #~ "ALL_FRIENDS або SELF." #~ msgid "Everyone" #~ msgstr "Усім" #~ msgid "Friends of friends" #~ msgstr "Друзям друзів" #~ msgid "Just friends" #~ msgstr "Тільки друзям" #~ msgid "Just me" #~ msgstr "Лише собі" #~ msgid "" #~ "Maps cannot find the place to check in to with Facebook. Please select " #~ "one from this list." #~ msgstr "" #~ "Картами неможливо знайти місце, щоб відзначитись через Facebook. Виберіть " #~ "щось зі списку." #~ msgid "" #~ "You can even search for specific types of locations, such as “Pubs near " #~ "Main Street, Boston” or “Hotels near Alexanderplatz, Berlin”." #~ msgstr "" #~ "Можете навіть шукати спеціальні місця, як-от «Паби біля головної вулиці, " #~ "Бостон» або «Готелі біля Александерплац, Берлін»." #~ msgid "OpenStreetMap URL is not valid" #~ msgstr "Адреса OpenStreetMap є некоректною" #~ msgctxt "time range list" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgctxt "time range list" #~ msgid "%s %s %s" #~ msgstr "%s %s %s" #~ msgctxt "time range component" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgid "Find a Route" #~ msgstr "Знайти маршрут" #~ msgid "Check in here" #~ msgstr "Відзначитись тут" #~ msgid "Population:" #~ msgstr "Населення:" #~ msgid "Altitude:" #~ msgstr "Висота:" #~ msgid "Opening hours:" #~ msgstr "Робочий час:" #~ msgid "Internet access:" #~ msgstr "Доступ до інтернету:" #~ msgid "Toilets:" #~ msgstr "Туалети:" #~ msgid "Wheelchair access:" #~ msgstr "Доступ для возиків:" #~ msgid "Phone:" #~ msgstr "Телефон:" #~ msgid "yes" #~ msgstr "так" #~ msgid "limited" #~ msgstr "обмежено" #~ msgid "no" #~ msgstr "ні" #~ msgid "designated" #~ msgstr "визначено" #~ msgid "wired" #~ msgstr "дріт" #~ msgid "terminal" #~ msgstr "термінал" #~ msgid "service" #~ msgstr "служба" 070701000001ED000081A4000000000000000000000001664134090000E171000000000000000000000000000000000000001A00000000gnome-maps-46.11/po/vi.po# Vietnamese translations for Maps package # Bản dịch Tiếng Việt dành cho gói Maps. # This file is distributed under the same license as the Maps package. # Trần Ngọc Quân , 2016-2019, 2021. # Antoine Đỗ , 2021. # msgid "" msgstr "" "Project-Id-Version: gnome-maps master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2021-09-27 08:25+0000\n" "PO-Revision-Date: 2021-09-30 13:52+0700\n" "Last-Translator: Trần Ngọc Quân \n" "Language-Team: Vietnamese \n" "Language: vi\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: Gtranslator 3.38.0\n" #: data/org.gnome.Maps.appdata.xml.in:6 msgid "GNOME Maps" msgstr "Bản đồ GNOME" #: data/org.gnome.Maps.appdata.xml.in:7 msgid "Find places around the world" msgstr "Tìm các địa điểm trên khắp thế giới" #: data/org.gnome.Maps.appdata.xml.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "Maps giúp bạn truy cập bản đồ trên toàn thế giới. Nó cho phép bạn nhanh " "chóng tìm đến chỗ mà bạn đang tìm bằng cách tìm thành phố hay đường, hoặc vị " "trí địa điểm để gặp mặt bạn bè." #: data/org.gnome.Maps.appdata.xml.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "Maps dùng cơ sở dữ liệu OpenStreetMap cộng tác, được tạo bởi hàng trăm ngàn " "người trên toàn cầu." #: data/org.gnome.Maps.appdata.xml.in:228 msgid "The GNOME Project" msgstr "Dự án GNOME" #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.desktop.in:4 data/ui/main-window.ui:34 #: src/application.js:94 src/mainWindow.js:132 src/mainWindow.js:592 msgid "Maps" msgstr "Bản đồ" #: data/org.gnome.Maps.desktop.in:5 msgid "A simple maps application" msgstr "Ứng dụng bản đồ đơn giản" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in:14 msgid "Maps;" msgstr "Maps;Bản đồ;Ban do;" #: data/org.gnome.Maps.desktop.in:17 msgid "Allows your location to be shown on the map." msgstr "Cho phép vị trí của bạn được hiển thị trên bản đồ." #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "vị trí xem cuối cùng" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "Tọa độ của vị trí xem cuối cùng." #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "thu phóng" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "Mức độ phóng to" #: data/org.gnome.Maps.gschema.xml:21 msgid "Map type" msgstr "Loại bản đồ" #: data/org.gnome.Maps.gschema.xml:22 msgid "The type of map to display (street, aerial, etc.)" msgstr "Loại bản đồ để hiển thị (đường phố, trên không, v.v.)" #: data/org.gnome.Maps.gschema.xml:26 msgid "Window size" msgstr "Kích thước cửa sổ" #: data/org.gnome.Maps.gschema.xml:27 msgid "Window size (width and height)." msgstr "Kích thước cửa sổ (rộng và cao)." #: data/org.gnome.Maps.gschema.xml:31 msgid "Window position" msgstr "Vị trí cửa sổ" #: data/org.gnome.Maps.gschema.xml:32 msgid "Window position (X and Y)." msgstr "Vị trí cửa sổ (X và Y)." #: data/org.gnome.Maps.gschema.xml:36 msgid "Window maximized" msgstr "Cửa sổ phóng to" #: data/org.gnome.Maps.gschema.xml:37 msgid "Window maximization state" msgstr "Cửa sổ ở trạng thái phóng to hết cỡ" #: data/org.gnome.Maps.gschema.xml:41 msgid "Maximum number of search results" msgstr "Số kết quả tìm kiếm tối đa" #: data/org.gnome.Maps.gschema.xml:42 msgid "Maximum number of search results from geocode search." msgstr "Số kết quả tìm kiếm tối đa từ việc tìm kiếm geocode." #: data/org.gnome.Maps.gschema.xml:46 msgid "Number of recent places to store" msgstr "Số lượng nơi chốn mới dùng được lưu" #: data/org.gnome.Maps.gschema.xml:47 msgid "Number of recently visited places to store." msgstr "Số lượng nơi chốn mới thăm được lưu." #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent routes to store" msgstr "Số lượng đường đi mới dùng được lưu" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited routes to store." msgstr "Số lượng đường đi mới đi được lưu." #: data/org.gnome.Maps.gschema.xml:56 msgid "Foursquare check-in privacy setting" msgstr "Cài đặt riêng tư check-in Foursquare" #: data/org.gnome.Maps.gschema.xml:57 msgid "" "Latest used Foursquare check-in privacy setting. Possible values are: " "public, followers or private." msgstr "" "Cài đặt riêng tư check-in Foursquare lần cuối. Giá trị có thể là: public, " "followers hay private." #: data/org.gnome.Maps.gschema.xml:61 msgid "Foursquare check-in Facebook broadcasting" msgstr "Foursquare check-in quảng bá Facebook" #: data/org.gnome.Maps.gschema.xml:62 msgid "" "Indicates if Foursquare should broadcast the check-in as a post in the " "Facebook account associated with the Foursquare account." msgstr "" "Cho biết Foursquare có nên quảng bá check-in như là một bài viết trên tài " "khoản Facebook tổ hợp cùng với tài khoản Foursquare." #: data/org.gnome.Maps.gschema.xml:66 msgid "Foursquare check-in Twitter broadcasting" msgstr "Foursquare check-in quảng bá Twitter" #: data/org.gnome.Maps.gschema.xml:67 msgid "" "Indicates if Foursquare should broadcast the check-in as a tweet in the " "Twitter account associated with the Foursquare account." msgstr "" "Cho biết Foursquare có nên quảng bá check-in như là một tweet trên tài khoản " "Twitter tổ hợp cùng với tài khoản Foursquare." #: data/org.gnome.Maps.gschema.xml:71 msgid "OpenStreetMap username or e-mail address" msgstr "Tên tài khoản OpenStreetMap hay địa chỉ thư điện tử" #: data/org.gnome.Maps.gschema.xml:72 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "Biểu thị nếu người dùng đã đăng nhập vào sửa dữ liệu OpenStreetMap." #: data/org.gnome.Maps.gschema.xml:76 msgid "Last used transportation type for routing" msgstr "Kiểu phương tiện vận tải dùng cuối cùng để tìm đường" #: data/org.gnome.Maps.gschema.xml:80 msgid "Night mode" msgstr "Chế độ ban đêm" #: data/org.gnome.Maps.gschema.xml:81 msgid "Whether the application is in night mode." msgstr "Cho dù ứng dụng đang ở chế độ ban đêm." #: data/org.gnome.Maps.gschema.xml:85 msgid "Use hybrid aerial tiles" msgstr "Sử dụng xếp lớp trên không kết hợp" #: data/org.gnome.Maps.gschema.xml:86 msgid "Whether aerial tiles should use hybrid style (with labels)." msgstr "" "Cho dù dùng kiểu xếp lớp nhìn từ trên không cũng nên sử dụng kiểu lai (có " "nhãn)." #: data/ui/check-in-dialog.ui:236 msgid "Visibility" msgstr "Thấy" #: data/ui/check-in-dialog.ui:271 msgid "Post on Facebook" msgstr "Gửi lên Facebook" #: data/ui/check-in-dialog.ui:285 msgid "Post on Twitter" msgstr "Gửi lên Twitter" #: data/ui/check-in-dialog.ui:325 data/ui/export-view-dialog.ui:20 #: data/ui/send-to-dialog.ui:13 data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "T_hôi" #: data/ui/check-in-dialog.ui:333 msgid "C_heck in" msgstr "_Ghi danh" #: data/ui/check-in-dialog.ui:358 msgid "Public" msgstr "Công khai" #: data/ui/check-in-dialog.ui:362 msgid "Followers" msgstr "Theo dõi" #: data/ui/check-in-dialog.ui:366 msgid "Private" msgstr "Riêng tư" #: data/ui/context-menu.ui:9 msgid "Route from here" msgstr "Đường đi từ đây" #: data/ui/context-menu.ui:16 msgid "Add intermediate destination" msgstr "Thêm điểm đến trung gian" #: data/ui/context-menu.ui:24 msgid "Route to here" msgstr "Đường đi đến đây" #: data/ui/context-menu.ui:36 msgid "What’s here?" msgstr "Đây là đâu?" #: data/ui/context-menu.ui:43 msgid "Copy Location" msgstr "Chép vị trí" #: data/ui/context-menu.ui:51 msgid "Add to OpenStreetMap" msgstr "Thêm vào OpenStreetMap" #: data/ui/export-view-dialog.ui:14 msgid "Export view" msgstr "Xuất phần hiển thị" #: data/ui/export-view-dialog.ui:34 msgid "_Export" msgstr "_Xuất" #: data/ui/export-view-dialog.ui:119 msgid "Include route and markers" msgstr "Bao gồm đường đi và người tạo" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:15 msgid "Go to current location" msgstr "Đến vị trí hiện tại" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:33 msgid "Choose map type" msgstr "Chọn kiểu bản đồ" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:58 msgid "Zoom out" msgstr "Thu nhỏ" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:74 msgid "Zoom in" msgstr "Phóng to" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:14 msgid "Print Route" msgstr "In đường đi" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:33 msgid "Toggle favorites" msgstr "Chuyển đến chỗ đánh dấu" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:52 msgid "Toggle route planner" msgstr "Bật/tắt bộ lập kế hoạch đường đi" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "General" msgstr "Chung" #: data/ui/help-overlay.ui:18 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "Hiện phím tắt" #: data/ui/help-overlay.ui:25 msgctxt "shortcut window" msgid "Search" msgstr "Tìm kiếm" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "Bật/tắt bộ lập kế hoạch đường đi" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Print route" msgstr "In đường đi" #: data/ui/help-overlay.ui:46 msgctxt "shortcut window" msgid "Quit" msgstr "Thoát" #: data/ui/help-overlay.ui:53 msgctxt "shortcut window" msgid "Open main menu" msgstr "Mở trình đơn chính" #: data/ui/help-overlay.ui:62 msgctxt "shortcut window" msgid "Map View" msgstr "Xem bản đồ" #: data/ui/help-overlay.ui:66 msgctxt "shortcut window" msgid "Zoom in" msgstr "Phóng to" #: data/ui/help-overlay.ui:73 msgctxt "shortcut window" msgid "Zoom out" msgstr "Thu nhỏ" #: data/ui/help-overlay.ui:80 msgctxt "shortcut window" msgid "Toggle scale" msgstr "Bật/tắt thước đo" #: data/ui/help-overlay.ui:87 msgctxt "shortcut window" msgid "Go to current location" msgstr "Đến vị trí hiện tại" #: data/ui/help-overlay.ui:97 msgctxt "shortcut window" msgid "Switch to street view" msgstr "Chuyển sang xem đường phố" #: data/ui/help-overlay.ui:104 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "Chuyển sang xem từ trên trời" #: data/ui/help-overlay.ui:111 msgctxt "shortcut window" msgid "Open shape layer" msgstr "Mở lớp hình dạng" #: data/ui/layers-popover.ui:65 msgid "Show Labels" msgstr "Hiển thị nhãn" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:102 msgid "Open Shape Layer…" msgstr "Mở lớp hình dạng…" #: data/ui/location-service-dialog.ui:16 msgid "Turn on location services to find your location" msgstr "Bật dịch vụ vị trí để tìm vị trí của bạn" #: data/ui/location-service-dialog.ui:28 data/ui/osm-edit-dialog.ui:283 #: data/ui/zoom-in-dialog.ui:28 msgid "Cancel" msgstr "Thôi" #: data/ui/location-service-dialog.ui:38 msgid "Location Settings" msgstr "Cài đặt vị trí" #: data/ui/main-window.ui:8 msgid "Night Mode" msgstr "Chế độ ban đêm" #: data/ui/main-window.ui:12 msgid "Set up OpenStreetMap Account" msgstr "Cài đặt tài khoản OpenStreetMap" #: data/ui/main-window.ui:16 msgid "Export as Image" msgstr "Xuất ra ảnh" #: data/ui/main-window.ui:21 msgid "_Keyboard Shortcuts" msgstr "_Phím tắt" #: data/ui/main-window.ui:26 msgid "About Maps" msgstr "Giới thiệu Bản đồ" #: data/ui/main-window.ui:52 msgid "Open main menu" msgstr "Mở menu chính" #: data/ui/main-window.ui:114 msgid "Maps is offline!" msgstr "Bản đồ đang ngoại tuyến!" #: data/ui/main-window.ui:123 msgid "" "Maps need an active internet connection to function properly, but one can’t " "be found." msgstr "" "Bản đồ cần được kết nối mạng internet để các chức năng một cách đúng đắn, " "nhưng không tìm thấy kết nối mạng nào." #: data/ui/main-window.ui:131 msgid "Check your connection and proxy settings." msgstr "Kiểm tra lại kết nối và cài đặt ủy nhiệm của bạn." #: data/ui/osm-account-dialog.ui:9 msgid "OpenStreetMap Account" msgstr "Tài khoản OpenStreetMap" #: data/ui/osm-account-dialog.ui:22 msgid "Sign in to edit maps" msgstr "" "Đăng nhập để chỉnh sửa bản đồ" #: data/ui/osm-account-dialog.ui:36 msgid "" "Help to improve the map, using an\n" "OpenStreetMap account." msgstr "" "Giúp đỡ cải tiến bản đồ bằng cách dùng\n" "một tài khoản OpenStreetMap." #: data/ui/osm-account-dialog.ui:56 msgid "Email" msgstr "Thư điện tử" #: data/ui/osm-account-dialog.ui:81 msgid "Password" msgstr "Mật khẩu" #: data/ui/osm-account-dialog.ui:125 msgid "Sign up" msgstr "Đăng ký" #: data/ui/osm-account-dialog.ui:139 msgid "Sign In" msgstr "Đăng nhập" #. The label should contain the link to the OSM reset password page with a translated title #: data/ui/osm-account-dialog.ui:162 msgid "" "Sorry, that didn’t work. Please try again, or visit\n" "OpenStreetMap to reset your password." msgstr "" "Rất tiếc, nó không làm việc. Vui lòng thử lại, hoặc truy cập\n" "OpenStreetMap để đặt lại tài khoản của bạn." #: data/ui/osm-account-dialog.ui:175 msgid "The verification code didn’t match, please try again." msgstr "Mã xác nhận không khớp, vui lòng thử lại." #: data/ui/osm-account-dialog.ui:201 msgid "Enter verification code shown above" msgstr "Nhập vào mã xác nhận hiện ở trên" #: data/ui/osm-account-dialog.ui:224 msgid "Verify" msgstr "Xác nhận" #: data/ui/osm-account-dialog.ui:254 msgid "Signed In" msgstr "Đã đăng nhập" #: data/ui/osm-account-dialog.ui:267 msgid "Your OpenStreetMap account is active." msgstr "Tài khoản OpenStreetMap của bạn đang hoạt động." #: data/ui/osm-account-dialog.ui:301 msgid "Sign Out" msgstr "Đăng xuất" #: data/ui/osm-edit-address.ui:14 msgid "Street" msgstr "Đường" #: data/ui/osm-edit-address.ui:26 msgid "House number" msgstr "Số nhà" #: data/ui/osm-edit-address.ui:38 msgid "Postal code" msgstr "Mã vùng" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:50 msgid "City" msgstr "Thành phố" #: data/ui/osm-edit-dialog.ui:58 msgid "Type" msgstr "Kiểu" #: data/ui/osm-edit-dialog.ui:84 msgid "None" msgstr "Không" #: data/ui/osm-edit-dialog.ui:129 msgid "Add Field" msgstr "Thêm trường" #: data/ui/osm-edit-dialog.ui:163 msgid "Comment" msgstr "Chú thích" #: data/ui/osm-edit-dialog.ui:195 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "Các thay đổi bản đồ sẽ nhìn thấy trên mọi bản đồ mà\n" "nó dùng dữ liệu OpenStreetMap." #: data/ui/osm-edit-dialog.ui:241 msgid "Recently Used" msgstr "Vừa dùng" #: data/ui/osm-edit-dialog.ui:280 msgctxt "dialog title" msgid "Edit on OpenStreetMap" msgstr "Sửa trên OpenStreetMap" #: data/ui/osm-edit-dialog.ui:310 src/osmEditDialog.js:550 msgid "Next" msgstr "Tiếp theo" #: data/ui/place-popover.ui:54 msgid "No results found" msgstr "Không tìm thấy kết quả nào" #: data/ui/place-popover.ui:66 src/checkInDialog.js:269 src/checkIn.js:158 #: src/osmEditDialog.js:587 msgid "An error has occurred" msgstr "Đã có lỗi xảy ra" #. Translators: This is a tooltip #: data/ui/route-entry.ui:20 msgid "Drag to change order of the route" msgstr "Kéo thả để thay đổi thứ tự của đường đi" #: data/ui/send-to-dialog.ui:10 msgid "Open Location" msgstr "Mở Vị trí" #: data/ui/send-to-dialog.ui:72 msgid "Copy" msgstr "Sao chép" #: data/ui/send-to-dialog.ui:79 msgid "Send To…" msgstr "Gửi Đến…" #: data/ui/send-to-dialog.ui:86 msgid "Check In…" msgstr "Check In…" #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:65 msgid "Open Shape Layer" msgstr "Mở lớp hình dạng" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "_Mở" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:19 msgid "Toggle visible" msgstr "Bật/tắt nhìn thấy" #: data/ui/sidebar.ui:275 msgid "Route search by GraphHopper" msgstr "Tìm kiếm đường đi bằng GraphHopper" #: data/ui/sidebar.ui:364 msgid "" "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of " "transportation,\n" "e.g. a national provider might not include airlines, and a local provider " "could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" "Hành trình định tuyến đường cho phương tiện công cộng do bên thứ ba cung " "cấp\n" "các dịch vụ.\n" "GNOME không thể đảm bảo tính chính xác của các hành trình và lịch trình được " "hiển thị.\n" "Lưu ý rằng một số nhà cung cấp có thể không bao gồm tất cả các phương thức " "vận chuyển hiện có,\n" "ví dụ, nhà cung cấp nội địa có thể không bao gồm các hãng hàng không, và nhà " "cung cấp địa phương có thể\n" "thiếu các chuyến tàu trong khu vực.\n" "Tên và nhãn hiệu hiển thị sẽ được coi là nhãn hiệu đã đăng ký khi áp dụng." #: data/ui/social-place-more-results-row.ui:8 msgid "Show more results" msgstr "Hiện thêm các kết quả" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:126 msgid "Hide intermediate stops and information" msgstr "Ẩn các điểm dừng và thông tin trung gian" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:200 msgid "Show intermediate stops and information" msgstr "Hiển thị các điểm dừng và thông tin trung gian" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:18 msgid "Leave Now" msgstr "Khởi hành ngay" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:19 msgid "Leave By" msgstr "Khởi hành bằng" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:20 msgid "Arrive By" msgstr "Tới bằng" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:106 msgid "Show" msgstr "Hiện" #: data/ui/transit-options-panel.ui:117 msgid "Buses" msgstr "Xe buýt" #: data/ui/transit-options-panel.ui:124 msgid "Trams" msgstr "Xe điện" #: data/ui/transit-options-panel.ui:131 msgid "Trains" msgstr "Xe lửa" #: data/ui/transit-options-panel.ui:138 msgid "Subway" msgstr "Xe điện ngầm" #: data/ui/transit-options-panel.ui:145 msgid "Ferries" msgstr "Phà" #: data/ui/transit-options-panel.ui:152 msgid "Airplanes" msgstr "Máy bay" #. Translators: This is a tooltip #: data/ui/place-bar.ui:48 data/ui/place-buttons.ui:50 data/ui/place-view.ui:72 msgid "Share location" msgstr "Chia sẻ vị trí" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:15 msgid "Add to new route" msgstr "Thêm đường đi mới" #. Translators: This is the button to find a route to a place #: data/ui/place-buttons.ui:34 msgid "Directions" msgstr "Hướng" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:70 msgid "Mark as favorite" msgstr "Đánh dấu là hay dùng" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:89 msgid "Edit on OpenStreetMap" msgstr "Sửa trên OpenStreetMap" #: data/ui/zoom-in-dialog.ui:16 msgid "Zoom in to add location!" msgstr "Phóng to vào vị trí thêm!" #: data/ui/zoom-in-dialog.ui:38 msgid "Zoom In" msgstr "Phóng to" #: lib/maps-file-tile-source.c:303 lib/maps-file-tile-source.c:379 #: lib/maps-file-tile-source.c:459 msgid "Failed to find tile structure in directory" msgstr "Gặp lỗi khi tìm cấu trúc lát gạch trong thư mục" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "Gặp lỗi khi phân tích cú pháp XML" #: lib/maps-osm.c:249 lib/maps-osm.c:402 msgid "Missing required attributes" msgstr "Thiếu các thuộc tính cần thiết" #: lib/maps-osm.c:450 msgid "Could not find OSM element" msgstr "Không thể tìm thấy phần tử OSM" #: src/application.js:108 msgid "A path to a local tiles directory structure" msgstr "Một đường dẫn đến cấu trúc thư mục lát gạch" #: src/application.js:114 msgid "Tile size for local tiles directory" msgstr "Kích thước ô cho thư mục ô cục bộ" #: src/application.js:118 msgid "Show the version of the program" msgstr "Hiển thị phiên bản của chương trình" #: src/application.js:124 msgid "Ignore network availability" msgstr "Bỏ qua tính khả dụng của mạng" #: src/application.js:134 src/application.js:135 msgid "[FILE…|URI]" msgstr "[TẬP TIN… | URI]" #: src/checkInDialog.js:161 msgid "Select an account" msgstr "Chọn tài khoản" #: src/checkInDialog.js:166 src/checkInDialog.js:235 msgid "Loading" msgstr "Đang tải" #: src/checkInDialog.js:190 msgid "Select a place" msgstr "Chọn một địa điểm" #: src/checkInDialog.js:195 msgid "" "Maps cannot find the place to check in to with Foursquare. Please select one " "from this list." msgstr "" "Maps không thể tìm thấy chỗ để chekck in vào với Foursquare. Vui lòng chọn " "một cái từ danh sách này." #. Translators: %s is the name of the place to check in. #. #: src/checkInDialog.js:210 #, javascript-format msgid "Check in to %s" msgstr "Check in vào %s" #. Translators: %s is the name of the place to check in. #. #: src/checkInDialog.js:220 #, javascript-format msgid "Write an optional message to check in to %s." msgstr "Ghi một lời nhắn tùy chọn để check in vào %s." #. Translators: %s is the place name that user wanted to check-in #: src/checkIn.js:140 #, javascript-format msgid "Cannot find “%s” in the social service" msgstr "Không thể tìm thấy “%s” trong dịch vụ xã hội" #: src/checkIn.js:142 msgid "Cannot find a suitable place to check-in in this location" msgstr "Không thể tìm thấy chỗ phù hợp để check-in vào vị trí này" #: src/checkIn.js:146 msgid "" "Credentials have expired, please open Online Accounts to sign in and enable " "this account" msgstr "" "Giấy ủy nhiệm đã hết hạn, vui lòng mở Tài khoản trực tuyến để đang nhập và " "bật tài khoản này" #: src/contextMenu.js:135 msgid "Nothing found here!" msgstr "Không thấy gì ở đây!" #: src/contextMenu.js:196 msgid "" "Location was added to the map, note that it may take a while before it shows " "on the map and in search results." msgstr "" "Vị trí đã được thêm vào bản đồ, chú ý rằng cần chờ một thời gian trước khi " "nó được hiển thị trên bản đồ và khi tìm kiếm sẽ có kết quả." #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:82 #, javascript-format msgid "Maps at %f, %f.png" msgstr "Bản đồ tại %f, %f.png" #: src/exportViewDialog.js:154 msgid "Filesystem is read only" msgstr "Hệ thống tập tin chỉ cho đọc" #: src/exportViewDialog.js:156 msgid "You do not have permission to save there" msgstr "Bạn không có đủ quyền hạn để lưu vào đây" #: src/exportViewDialog.js:158 msgid "The directory does not exist" msgstr "Thư mục không tồn tại" #: src/exportViewDialog.js:160 msgid "No filename specified" msgstr "Chưa xác định tên tập tin" #: src/exportViewDialog.js:168 msgid "Unable to export view" msgstr "Không thể xuất hình vẽ" #: src/geoclue.js:118 msgid "Current Location" msgstr "Vị trí hiện tại" #: src/geoJSONSource.js:98 msgid "invalid coordinate" msgstr "tọa độ không hợp lệ" #: src/geoJSONSource.js:147 src/geoJSONSource.js:187 src/geoJSONSource.js:202 msgid "parse error" msgstr "lỗi phân tích" #: src/geoJSONSource.js:181 msgid "unknown geometry" msgstr "không hiểu dạng hình" #: src/graphHopper.js:112 src/transitPlan.js:181 msgid "Route request failed." msgstr "Yêu cầu đường đi gặp lỗi." #: src/graphHopper.js:119 src/transitPlan.js:173 msgid "No route found." msgstr "Không tìm thấy lộ trình nào." #: src/graphHopper.js:207 src/transitplugins/openTripPlanner.js:1116 msgid "Start!" msgstr "Bắt đầu!" #: src/mainWindow.js:62 msgid "All Layer Files" msgstr "Mọi tập tin lớp" #: src/mainWindow.js:495 msgid "Failed to connect to location service" msgstr "Gặp lỗi khi kết nối đến dịch vụ vị trí" #: src/mainWindow.js:590 msgid "translator-credits" msgstr "Nhóm Việt hóa GNOME " #: src/mainWindow.js:593 msgid "A map application for GNOME" msgstr "Ứng dụng bản đồ dành cho GNOME" #: src/mainWindow.js:604 msgid "Copyright © 2011 – 2021 Red Hat, Inc. and The GNOME Maps authors" msgstr "Bản quyền © 2011 – 2021 Red Hat, Inc. và các tác giả Bản đồ GNOME" #: src/mainWindow.js:624 #, javascript-format msgid "Map data by %s and contributors" msgstr "Dữ liệu bản đồ của %s và những người đóng góp" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:640 #, javascript-format msgid "Map tiles provided by %s" msgstr "Tiêu đề bản đồ cung cấp bởi %s" #. Translators: this is an attribution string giving credit to the #. * search provider where the first %s placeholder is replaced by either #. * the bare name of the geocoder provider, or a linkified URL if one #. * is available, and the second %s placeholder is replaced by the #. * URL to the geocoder project page. These placeholders #. * can be swapped, if needed using the %n$s positional syntax #. * (i.e. "%2$s ... %1$s ..." for positioning the project URL #. * before the provider). #. #: src/mainWindow.js:669 #, javascript-format msgid "Search provided by %s using %s" msgstr "Tìm kiếm do %s cung cấp sử dụng %s" #: src/mapView.js:493 src/mapView.js:551 msgid "Failed to open layer" msgstr "Gặp lỗi khi mở lớp" #: src/mapView.js:514 msgid "Do you want to continue?" msgstr "Bạn có muốn tiếp tục?" #: src/mapView.js:515 #, javascript-format msgid "" "You are about to open files with a total size of %s MB. This could take some " "time to load" msgstr "" "Bạn sắp mở các tập tin có tổng kích thước là %s MB. Quá trình này có thể tốn " "thời gian để tải" #: src/mapView.js:545 msgid "File type is not supported" msgstr "Kiểu tập tin không được hỗ trợ" #: src/mapView.js:583 msgid "Failed to open GeoURI" msgstr "Gặp lỗi khi mở GeoURI" #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:442 msgid "Incorrect user name or password" msgstr "Tên người dùng hay mật khẩu sai" #: src/osmConnection.js:444 msgid "Success" msgstr "Thành công" #: src/osmConnection.js:446 msgid "Bad request" msgstr "Yêu cầu sai" #: src/osmConnection.js:448 msgid "Object not found" msgstr "Không thể tìm thấy đối tượng" #: src/osmConnection.js:450 msgid "Conflict, someone else has just modified the object" msgstr "Xung đột, đã có ai đó vừa sửa đối tượng" #: src/osmConnection.js:452 msgid "Object has been deleted" msgstr "Đối tượng đã bị xóa" #: src/osmConnection.js:454 msgid "Way or relation refers to non-existing children" msgstr "Lối hoặc quan hệ chỉ đến một con mà nó không tồn tại" #: src/osmEditDialog.js:122 msgid "Name" msgstr "Tên" #: src/osmEditDialog.js:125 msgid "The official name. This is typically what appears on signs." msgstr "Tên chính thức. Đây là cái thường xuất hiện trên chữ ký." #: src/osmEditDialog.js:128 msgid "Address" msgstr "Địa chỉ" #: src/osmEditDialog.js:136 src/placeView.js:280 msgid "Website" msgstr "Trang thông tin điện tử" #: src/osmEditDialog.js:140 msgid "This is not a valid URL. Make sure to include http:// or https://." msgstr "" "Đây không phải là một URL hợp lệ. Hãy chắc chắn nó bao gồm http:// hoặc " "https://." #: src/osmEditDialog.js:141 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" "Trang thông tin điện tử chính thức. Dùng dạng thức URL cơ bản nhất ví dụ " "http://example.com thay cho http://example.com/index.html." #: src/osmEditDialog.js:146 msgid "Phone" msgstr "Điện thoại" #: src/osmEditDialog.js:150 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" "Số điện thoại. Dùng định dạng quốc tế, bắt đầu bằng dấu +. Hãy cẩn thận với " "luật riêng tư địa phương, đặc biệt là các số điện thoại riêng." #: src/osmEditDialog.js:155 src/placeView.js:308 msgid "E-mail" msgstr "Thư điện tử" #: src/osmEditDialog.js:160 msgid "" "This is not a valid e-mail address. Make sure to not include the mailto: " "protocol prefix." msgstr "" "Đây không phải là một địa chỉ thư điện tử hợp lệ. Hãy chắc chắn nó bao gồm " "tiền tố giao thức mailto:." #: src/osmEditDialog.js:161 msgid "" "Contact e-mail address for inquiries. Add only email addresses that are " "intended to be publicly used." msgstr "" "Địa chỉ thư điện tử liên hệ cho việc điều tra. Chỉ thêm địa chỉ thư điện tử " "cái mà có ý định dùng công khai." #. Translators: This is the text for the "Wikipedia" link at the end #. of summaries #: src/osmEditDialog.js:165 src/placeView.js:645 msgid "Wikipedia" msgstr "Wikipedia" #: src/osmEditDialog.js:170 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "" "Nên dùng dạng thức có bao gồm mã ngôn ngữ và tiêu đề bài viết như là ”vi:" "Tiêu đề bài viết”." #: src/osmEditDialog.js:174 src/placeView.js:345 msgid "Opening hours" msgstr "Giờ mở cửa" #: src/osmEditDialog.js:179 msgid "See the link in the label for help on format." msgstr "Xem liên kết trong nhãn để nhận được hỗ trợ về định dạng." #. TODO: this is a bit of a work-around to re-interpret the population, #. * stored as a string into an integer to convert back to a locale- #. * formatted string. Ideally it should be kept as an integer value #. * in the Place class. But this will also need to be handled by the #. * PlaceStore, possible in a backwards-compatible way #. #: src/osmEditDialog.js:182 src/placeView.js:455 msgid "Population" msgstr "Dân số" #: src/osmEditDialog.js:187 src/placeView.js:484 msgid "Altitude" msgstr "Cao độ" #: src/osmEditDialog.js:190 msgid "Elevation (height above sea level) of a point in metres." msgstr "Cao độ (độ cao trên mực nước biển) của một điểm tính bằng mét." #: src/osmEditDialog.js:193 msgid "Wheelchair access" msgstr "Lối vào xe lăn" #: src/osmEditDialog.js:196 src/osmEditDialog.js:205 src/osmEditDialog.js:216 #: src/osmEditDialog.js:251 msgid "Yes" msgstr "Đồng ý" #: src/osmEditDialog.js:197 src/osmEditDialog.js:206 src/osmEditDialog.js:217 #: src/osmEditDialog.js:252 msgid "No" msgstr "Không" #: src/osmEditDialog.js:198 msgid "Limited" msgstr "Bị giới hạn" #: src/osmEditDialog.js:199 msgid "Designated" msgstr "Đã được thiết kế" #: src/osmEditDialog.js:202 msgid "Internet access" msgstr "Truy cập mạng Internet" #: src/osmEditDialog.js:207 msgid "Wi-Fi" msgstr "Wi-Fi" #: src/osmEditDialog.js:208 msgid "Wired" msgstr "Có dây" #: src/osmEditDialog.js:209 msgid "Terminal" msgstr "Thiết bị cuối" #: src/osmEditDialog.js:210 msgid "Service" msgstr "Dịch vụ" #: src/osmEditDialog.js:213 msgid "Takeaway" msgstr "Mang đi" #: src/osmEditDialog.js:218 msgid "Only" msgstr "Chỉ" #: src/osmEditDialog.js:221 msgid "Religion" msgstr "Tôn giáo" #: src/osmEditDialog.js:224 src/translations.js:284 msgid "Animism" msgstr "Thuyết vật linh" #: src/osmEditDialog.js:225 msgid "Bahá’í" msgstr "Bahá’í" #: src/osmEditDialog.js:226 src/translations.js:286 msgid "Buddhism" msgstr "Phật giáo" #: src/osmEditDialog.js:227 src/translations.js:287 msgid "Caodaism" msgstr "Đạo cao đài" #: src/osmEditDialog.js:228 src/translations.js:288 msgid "Christianity" msgstr "Cơ đốc giáo" #: src/osmEditDialog.js:229 src/translations.js:289 msgid "Confucianism" msgstr "Khổng giáo" #: src/osmEditDialog.js:230 src/translations.js:290 msgid "Hinduism" msgstr "Ấn Độ giáo" #: src/osmEditDialog.js:231 src/translations.js:291 msgid "Jainism" msgstr "Đạo Giai-na" #: src/osmEditDialog.js:232 src/translations.js:292 msgid "Judaism" msgstr "Đạo Do Thái" #: src/osmEditDialog.js:233 src/translations.js:293 msgid "Islam" msgstr "Hồi giáo" #: src/osmEditDialog.js:234 src/translations.js:294 msgid "Multiple Religions" msgstr "Đa tôn giáo" #: src/osmEditDialog.js:235 src/translations.js:295 msgid "Paganism" msgstr "Tà giáo" #: src/osmEditDialog.js:236 src/translations.js:296 msgid "Pastafarianism" msgstr "Pastafarianism" #: src/osmEditDialog.js:237 src/translations.js:297 msgid "Scientology" msgstr "Khoa học học" #: src/osmEditDialog.js:238 src/translations.js:298 msgid "Shinto" msgstr "Đạo thần Nhật bản" #: src/osmEditDialog.js:239 src/translations.js:299 msgid "Sikhism" msgstr "Đạo Sikh" #: src/osmEditDialog.js:240 src/translations.js:300 msgid "Spiritualism" msgstr "Thuyết duy linh" #: src/osmEditDialog.js:241 src/translations.js:301 msgid "Taoism" msgstr "Đạo Lão" #: src/osmEditDialog.js:242 src/translations.js:302 msgid "Unitarian Universalism" msgstr "Thuyết phổ độ nhất thể" #: src/osmEditDialog.js:243 src/translations.js:303 msgid "Voodoo" msgstr "Thầy mo" #: src/osmEditDialog.js:244 src/translations.js:304 msgid "Yazidism" msgstr "Yazidism" #: src/osmEditDialog.js:245 src/translations.js:305 msgid "Zoroastrianism" msgstr "Đạo thờ lửa" #: src/osmEditDialog.js:248 msgid "Toilets" msgstr "Nhà vệ sinh" #: src/osmEditDialog.js:255 msgid "Note" msgstr "Ghi chú" #: src/osmEditDialog.js:258 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" "Thông tin được sử dụng để cung cấp thông tin các bản đồ khác về các thông " "tin không-rõ-ràng về một phần tử, mục đích của tác giả khi tạo nó, hoặc gợi " "ý cải tiến hơn nữa." #: src/osmEditDialog.js:363 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "Thêm vào OpenStreetMap" #: src/osmEditDialog.js:417 msgid "Select Type" msgstr "Chọn kiểu" #: src/osmEditDialog.js:534 msgid "Done" msgstr "Xong" #: src/photonParser.js:111 msgid "Unnamed place" msgstr "Địa điểm không tên" #: src/placeEntry.js:221 msgid "Failed to parse Geo URI" msgstr "Gặp lỗi khi phân tích Geo URI" #: src/placeView.js:268 msgid "Coordinates" msgstr "Hệ tọa độ" #: src/placeView.js:272 msgid "Accuracy" msgstr "Độ chính xác" #. Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) #: src/placeView.js:275 #, javascript-format msgid "Accuracy: %s" msgstr "Độ chính xác: %s" #. since the phone numbers are typically always rendered #. * left-to-right, insert an explicit LRM char to avoid issues #. * with phone numbers in international format starting with a + #. * which is considered a "weak" character to determine Unicode #. * text direction #. #: src/placeView.js:294 msgid "Phone number" msgstr "Số điện thoại" #. Translators: #. * The establishment offers customers to purchase meals #. * (or similar) to be consumed elsewhere #. #: src/placeView.js:321 msgid "Offers takeaway" msgstr "Cho mang đi" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed on-premise. #. #: src/placeView.js:329 msgid "Does not offer takeaway" msgstr "Không cho mang đi" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed elsewhere. E.g. #. * there is no seating on-premise for eating/drinking #. #: src/placeView.js:338 msgid "Only offers takeaway" msgstr "Chỉ được mang đi" #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/placeView.js:355 msgid "Public internet access" msgstr "Kết nối mạng internet công cộng" #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/placeView.js:364 msgid "No internet access" msgstr "Không có kết nối mạng" #. Translators: #. * This means a WLAN Hotspot, also known as wireless, wifi or Wi-Fi. #. #: src/placeView.js:372 msgid "Public Wi-Fi" msgstr "Wi-Fi công cộng" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/placeView.js:380 msgid "Wired internet access" msgstr "Truy cập internet có dây" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/placeView.js:388 msgid "Computers available for use" msgstr "Máy tính có sẵn để sử dụng" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/placeView.js:396 msgid "Internet assistance available" msgstr "Có hỗ trợ Internet" #: src/placeView.js:402 msgid "No toilets available" msgstr "Không có nhà vệ sinh" #: src/placeView.js:405 msgid "Toilets available" msgstr "Có nhà vệ sinh" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #: src/placeView.js:414 msgid "Wheelchair accessible" msgstr "Lối vào xe lăn" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/placeView.js:424 msgid "Limited wheelchair accessibility" msgstr "Lối vào cho xe lăn hạn chế" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #: src/placeView.js:433 msgid "Not wheelchair accessible" msgstr "Không dành cho xe lăn" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/placeView.js:443 msgid "Designated for wheelchair users" msgstr "Được thiết kế cho người dùng xe lăn" #. * #. * Translators: this is a label indicating an altitude below #. * sea level, where the %s placeholder is the altitude relative #. * to mean sea level in the "negative direction" #. #: src/placeView.js:474 #, javascript-format msgid "%s below sea level" msgstr "%s dưới mực nước biển" #. * #. * Translators: this indicates a place is located at (or very #. * close to) mean sea level #. #: src/placeView.js:481 msgid "At sea level" msgstr "Ở mực nước biển" #: src/placeView.js:490 msgid "Religion:" msgstr "Tôn giáo:" #: src/place.js:497 msgid "Place not found in OpenStreetMap" msgstr "Không tìm thấy địa điểm trong OpenStreetMap" #: src/place.js:504 msgid "Coordinates in URL are not valid" msgstr "Tọa độ trong URL không hợp lệ" #: src/place.js:513 msgid "URL is not supported" msgstr "URL không được hỗ trợ" #: src/printLayout.js:321 #, javascript-format msgid "From %s to %s" msgstr "Từ %s đến %s" #: src/printOperation.js:46 msgid "Loading map tiles for printing" msgstr "Đang tải tựa đề bản đồ để in ấn" #: src/printOperation.js:47 msgid "You can abort printing if this takes too long" msgstr "Bạn có thể bãi bỏ việc in ấn nếu việc đó diễn ra quá lâu" #: src/printOperation.js:49 msgid "Abort printing" msgstr "Hủy bỏ việc in" #. Translators: this is add via location tooltip #: src/routeEntry.js:74 msgid "Add via location" msgstr "Thêm thông qua vị trí" #. Translators: this is remove via location tooltip #: src/routeEntry.js:84 msgid "Remove via location" msgstr "Gỡ bỏ thông qua vị trí" #. Translators: this is reverse route tooltip #: src/routeEntry.js:90 msgid "Reverse route" msgstr "Đảo ngược lộ trình" #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:121 #, javascript-format msgid "Add %s to %s" msgstr "Thêm %s vào %s" #: src/sendToDialog.js:219 msgid "Failed to open URI" msgstr "Gặp lỗi khi mở URI" #: src/sendToDialog.js:276 #, javascript-format msgid "Open with %s" msgstr "Mở bằng %s" #: src/shapeLayer.js:95 msgid "failed to load file" msgstr "gặp lỗi khi tải tập tin" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:355 #, javascript-format msgid "Estimated time: %s" msgstr "Thời gian ước tính: %s" #: src/sidebar.js:411 #, javascript-format msgid "Itineraries provided by %s" msgstr "Hành trình do %s cung cấp" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:37 #, javascript-format msgid "Start at %s" msgstr "Bắt đầu ở %s" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:43 msgid "Start" msgstr "Bắt đầu" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:61 #, javascript-format msgid "Walk %s" msgstr "Đi bộ %s" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:75 #, javascript-format msgid "Arrive at %s" msgstr "Tới lúc %s" #: src/transit.js:77 src/transitplugins/openTripPlanner.js:1129 msgid "Arrive" msgstr "Tới" #: src/transitLegRow.js:88 msgid "Show walking instructions" msgstr "Hiển thị chỉ dẫn cho người đi bộ" #: src/transitLegRow.js:89 msgid "Hide walking instructions" msgstr "Ẩn chỉ dẫn cho người đi bộ" #: src/transitMoreRow.js:39 msgid "Load earlier alternatives" msgstr "Tải các lựa chọn trước" #: src/transitMoreRow.js:41 msgid "Load later alternatives" msgstr "Tải các lựa chọn sau" #: src/transitMoreRow.js:54 msgid "No earlier alternatives found." msgstr "Không tìm thấy lựa chọn trước nào." #: src/transitMoreRow.js:56 msgid "No later alternatives found." msgstr "Không tìm thấy lựa chọn thay thế sau nào." #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:140 msgctxt "month-day-date" msgid "%b %e" msgstr "%e %b" #: src/transitPlan.js:177 msgid "No timetable data found for this route." msgstr "Không tìm thấy dữ liệu bảng thời gian cho lộ trình này." #: src/transitPlan.js:185 msgid "No provider found for this route." msgstr "Không tìm thấy nhà cung cấp nào cho tuyến đường này." #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:302 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:331 #, javascript-format msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "%s phút" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:343 #, javascript-format msgid "%s hour" msgid_plural "%s hours" msgstr[0] "%s giờ" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:351 #, javascript-format msgid "%s:%s hour" msgid_plural "%s:%s hours" msgstr[0] "%s:%s giờ" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:744 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: src/translations.js:53 msgid "Around the clock" msgstr "Suốt ngày đêm" #: src/translations.js:55 msgid "From sunrise to sunset" msgstr "Từ bình minh đến khi hoàng hôn" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:121 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s,%s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:135 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s,%s,%s" #: src/translations.js:154 msgid "Every day" msgstr "Hàng ngày" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:166 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:177 msgid "Public holidays" msgstr "Các ngày lễ" #: src/translations.js:179 msgid "School holidays" msgstr "Ngày học sinh nghỉ" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:219 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: src/translations.js:233 msgid "not open" msgstr "chưa mở" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:248 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s-%s" #. Translators: Accuracy of user location information #: src/utils.js:251 msgid "Unknown" msgstr "Chưa biết" #. Translators: Accuracy of user location information #: src/utils.js:254 msgid "Exact" msgstr "Trích" #. Translators: this is a duration with only hours, using #. * an abbreviation for hours, corresponding to 'h' in English #. #: src/utils.js:351 #, javascript-format msgid "%s h" msgstr "%s h" #. Translators: this is a duration with hours and minutes parts #. * using abbreviations for hours and minutes, corresponding to 'h' #. * and 'min' in English. The minutes has appropriate plural variations #. #: src/utils.js:357 #, javascript-format msgid "%s h %s min" msgid_plural "%s h %s min" msgstr[0] "%s h %s phút" #. Translators: this is a duration with minutes part #. * using abbreviation for minutes, corresponding to 'min' in English #. * with appropriate plural variations #. #: src/utils.js:364 #, javascript-format msgid "%s min" msgid_plural "%s min" msgstr[0] "%s phút" #. Translators: this is a duration of less than one minute #. * with seconds using an abbreviation for seconds, corresponding to #. * 's' in English with appropriate plural forms #. #: src/utils.js:370 #, javascript-format msgid "%s s" msgid_plural "%s s" msgstr[0] "%s s" #. Translators: This is a distance measured in kilometers #: src/utils.js:381 #, javascript-format msgid "%s km" msgstr "%s km" #. Translators: This is a distance measured in meters #: src/utils.js:384 #, javascript-format msgid "%s m" msgstr "%s m" #. Translators: This is a distance measured in miles #: src/utils.js:392 #, javascript-format msgid "%s mi" msgstr "%s dặm" #. Translators: This is a distance measured in feet #: src/utils.js:395 #, javascript-format msgid "%s ft" msgstr "%s ft" #: src/transitplugins/goMetro.js:60 msgid "This plugin doesn't support latest arrival" msgstr "Phần bổ sung này không hỗ trợ nơi đến mới nhất" #: src/transitplugins/openTripPlanner.js:1190 #, javascript-format msgid "Continue on %s" msgstr "Tiếp tục trên %s" #: src/transitplugins/openTripPlanner.js:1192 msgid "Continue" msgstr "Tiếp tục" #: src/transitplugins/openTripPlanner.js:1195 #, javascript-format msgid "Turn left on %s" msgstr "Rẽ trái vào %s" #: src/transitplugins/openTripPlanner.js:1197 msgid "Turn left" msgstr "Rẽ trái" #: src/transitplugins/openTripPlanner.js:1200 #, javascript-format msgid "Turn slightly left on %s" msgstr "Hơi rẽ sang trái vào %s" #: src/transitplugins/openTripPlanner.js:1202 msgid "Turn slightly left" msgstr "Hơi rẽ sang trái" #: src/transitplugins/openTripPlanner.js:1205 #, javascript-format msgid "Turn sharp left on %s" msgstr "Rẽ ngoặt sang trái vào %s" #: src/transitplugins/openTripPlanner.js:1207 msgid "Turn sharp left" msgstr "Rẽ ngoặt sang trái" #: src/transitplugins/openTripPlanner.js:1210 #, javascript-format msgid "Turn right on %s" msgstr "Rẽ phải vào %s" #: src/transitplugins/openTripPlanner.js:1212 msgid "Turn right" msgstr "Rẽ phải" #: src/transitplugins/openTripPlanner.js:1215 #, javascript-format msgid "Turn slightly right on %s" msgstr "Hơi rẽ sang phải vào %s" #: src/transitplugins/openTripPlanner.js:1217 msgid "Turn slightly right" msgstr "Hơi rẽ sang phải" #: src/transitplugins/openTripPlanner.js:1220 #, javascript-format msgid "Turn sharp right on %s" msgstr "Rẽ ngoặt sang phải vào %s" #: src/transitplugins/openTripPlanner.js:1222 msgid "Turn sharp right" msgstr "Rẽ ngoặt sang phải" #: src/transitplugins/openTripPlanner.js:1228 #, javascript-format msgid "At the roundabout, take exit %s" msgstr "Ở vòng xoay, đi lối ra %s" #: src/transitplugins/openTripPlanner.js:1230 #, javascript-format msgid "At the roundabout, take exit to %s" msgstr "Ở vòng xoay, đi lối ra đến %s" #: src/transitplugins/openTripPlanner.js:1232 msgid "Take the roundabout" msgstr "Vào vòng xoay" #: src/transitplugins/openTripPlanner.js:1236 #, javascript-format msgid "Take the elevator and get off at %s" msgstr "Đi thang máy và xuống ở %s" #: src/transitplugins/openTripPlanner.js:1238 msgid "Take the elevator" msgstr "Đi thang máy" #: src/transitplugins/openTripPlanner.js:1242 #, javascript-format msgid "Make a left u-turn onto %s" msgstr "Rẽ trái để quay đầu về %s" #: src/transitplugins/openTripPlanner.js:1244 msgid "Make a left u-turn" msgstr "Rẽ trái để quay đầu" #: src/transitplugins/openTripPlanner.js:1247 #, javascript-format msgid "Make a right u-turn onto %s" msgstr "Rẽ phải để quay đầu về %s" #: src/transitplugins/openTripPlanner.js:1249 msgid "Make a right u-turn" msgstr "Rẽ phải để quay đầu" #~ msgid "" #~ "You can even search for specific types of locations, such as “Pubs near " #~ "Main Street, Boston” or “Hotels near Alexanderplatz, Berlin”." #~ msgstr "" #~ "Bạn thậm chí còn có thể chỉ định kiểu của địa điểm như là “Pubs near Main " #~ "Street, Boston” hay “Hotels near Alexanderplatz, Berlin”." #~ msgid "Facebook check-in privacy setting" #~ msgstr "Cài đặt riêng tư check-in Facebook" #~ msgid "" #~ "Latest used Facebook check-in privacy setting. Possible values are: " #~ "EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS or SELF." #~ msgstr "" #~ "Cài đặt riêng tư check-in Facebook lần cuối. Giá trị có thể là: EVERYONE, " #~ "FRIENDS_OF_FRIENDS, ALL_FRIENDS hay SELF." #~ msgid "Everyone" #~ msgstr "Mọi người" #~ msgid "Friends of friends" #~ msgstr "Bạn của bạn" #~ msgid "Just friends" #~ msgstr "Chỉ bạn" #~ msgid "Just me" #~ msgstr "Chỉ tôi" #~ msgid "" #~ "Maps cannot find the place to check in to with Facebook. Please select " #~ "one from this list." #~ msgstr "" #~ "Maps không thể tìm thấy chỗ để chekck in vào với Facebook. Vui lòng chọn " #~ "một cái từ danh sách này." #~ msgid "org.gnome.Maps" #~ msgstr "org.gnome.Maps" #~ msgid "Open with another application" #~ msgstr "Mở bằng ứng dụng khác" #~ msgid "Check in here" #~ msgstr "Check in vào đây" #~ msgid "Don’t have an account?" #~ msgstr "Không có tài khoản?" #~ msgid "Show more information" #~ msgstr "Cung cấp thêm thông tin" #~ msgid "Press enter to search" #~ msgstr "Bấm phím Enter để tìm kiếm" #~ msgid "Route search by OpenTripPlanner" #~ msgstr "Tìm kiếm đường đi bằng OpenTripPlanner" #~ msgid "Add destination" #~ msgstr "Thêm đích" #~ msgid "Population:" #~ msgstr "Dân số:" #~ msgid "Altitude:" #~ msgstr "Cao độ:" #~ msgid "Opening hours:" #~ msgstr "Giờ mở cửa:" #~ msgid "Internet access:" #~ msgstr "Truy cập Internet:" #~ msgid "Toilets:" #~ msgstr "Nhà vệ sinh:" #~ msgid "Wheelchair access:" #~ msgstr "Lối vào xe lăn:" #~ msgid "Phone:" #~ msgstr "Điện thoại:" #~ msgid "yes" #~ msgstr "có" #~ msgid "limited" #~ msgstr "bị giới hạn" #~ msgid "no" #~ msgstr "không" #~ msgid "designated" #~ msgstr "được thiết kế" #~ msgctxt "time range list" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgctxt "time range component" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgid "wired" #~ msgstr "có dây" #~ msgid "terminal" #~ msgstr "thiết bị cuối" #~ msgid "service" #~ msgstr "dịch vụ" #~ msgid "%f h" #~ msgstr "%f giờ" #~ msgid "%f min" #~ msgstr "%f phút" #~ msgid "%f s" #~ msgstr "%f giây" #~ msgid "Quit" #~ msgstr "Thoát" #~ msgid "Open Shape Layer…" #~ msgstr "Mở lớp hình dạng…" #~ msgid "OK" #~ msgstr "Được" #~ msgid "Load Map Layer" #~ msgstr "Tải lớp bản đồ" #~ msgid "Open Layer" #~ msgstr "Mở lớp" #~ msgid "%f km" #~ msgstr "%f km" #~ msgid "%f m" #~ msgstr "%f m" #~ msgid "%f mi" #~ msgstr "%f dặm" #~ msgid "%f ft" #~ msgstr "%f ft" 070701000001EE000081A4000000000000000000000001664134090000FA05000000000000000000000000000000000000001D00000000gnome-maps-46.11/po/zh_CN.po# Chinese (China) translation for gnome-maps. # Copyright (C) 2013-2021 gnome-maps's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-maps package. # tuhaihe <1132321739qq@gmail.com>, 2013. # Tong Hui , 2014. # YunQiang Su , 2015, 2016. # Mingcong Bai , 2015, 2016, 2017, 2018. # 王滋涵 Zephyr Wang , 2020. # Dingzhong Chen , 2015-2021. # lumingzh , 2022. # msgid "" msgstr "" "Project-Id-Version: gnome-maps master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2024-02-25 20:49+0000\n" "PO-Revision-Date: 2024-02-26 18:29+0800\n" "Last-Translator: Boyuan Yang <073plan@gmail.com>\n" "Language-Team: Chinese - China \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: Poedit 3.4.2\n" "X-DamnedLies-Scope: partial\n" #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.appdata.xml.in.in:6 data/org.gnome.Maps.desktop.in.in:4 #: data/ui/main-window.ui:27 src/application.js:64 src/mainWindow.js:147 #: src/mainWindow.js:647 msgid "Maps" msgstr "地图" #: data/org.gnome.Maps.appdata.xml.in.in:7 msgid "Find places around the world" msgstr "寻找世界各地的地点" #: data/org.gnome.Maps.appdata.xml.in.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "地图应用帮您快速访问世界各地的地图。允许您快速定位到城市、街道或约会地点。" #: data/org.gnome.Maps.appdata.xml.in.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "地图应用使用了 OpenStreetMap 数据库,该数据库由全球成千上万的人们协同制作。" #. developer_name tag deprecated with Appstream 1.0 #: data/org.gnome.Maps.appdata.xml.in.in:451 src/mainWindow.js:644 msgid "The GNOME Project" msgstr "GNOME 项目" #: data/org.gnome.Maps.desktop.in.in:5 msgid "A simple maps application" msgstr "一款简单的地图应用程序" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in.in:14 msgid "Maps;" msgstr "Maps;地图;" #: data/org.gnome.Maps.desktop.in.in:17 msgid "Allows your location to be shown on the map." msgstr "允许你的位置显示在地图上。" #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "最近查看的位置" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "最近查看的位置的座标。" #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "缩放" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "缩放级别" #: data/org.gnome.Maps.gschema.xml:21 msgid "rotation" msgstr "旋转" #: data/org.gnome.Maps.gschema.xml:22 msgid "Map rotation in radians" msgstr "以弧度为单位旋转地图" #: data/org.gnome.Maps.gschema.xml:26 msgid "Map type" msgstr "地图类型" #: data/org.gnome.Maps.gschema.xml:27 msgid "The type of map to display (street, aerial, etc.)" msgstr "要显示的地图类型(街道、航拍等)" #: data/org.gnome.Maps.gschema.xml:31 msgid "Window size" msgstr "窗口大小" #: data/org.gnome.Maps.gschema.xml:32 msgid "Window size (width and height)." msgstr "窗口大小(宽度和高度)。" #: data/org.gnome.Maps.gschema.xml:36 msgid "Window position" msgstr "窗口位置" #: data/org.gnome.Maps.gschema.xml:37 msgid "Window position (X and Y)." msgstr "窗口位置(水平和垂直)。" #: data/org.gnome.Maps.gschema.xml:41 msgid "Window maximized" msgstr "窗口最大化" #: data/org.gnome.Maps.gschema.xml:42 msgid "Window maximization state" msgstr "窗口最大化状态" #: data/org.gnome.Maps.gschema.xml:46 msgid "Maximum number of search results" msgstr "搜索结果的最大数量" #: data/org.gnome.Maps.gschema.xml:47 msgid "Maximum number of search results from geocode search." msgstr "来自 geocode 搜索结果的最大数量。" #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent places to store" msgstr "存储最近地点的数量" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited places to store." msgstr "存储最近拜访过地点的数量。" #: data/org.gnome.Maps.gschema.xml:56 msgid "Number of recent routes to store" msgstr "存储最近路线的数量" #: data/org.gnome.Maps.gschema.xml:57 msgid "Number of recently visited routes to store." msgstr "存储最近使用过路线的数量。" #: data/org.gnome.Maps.gschema.xml:61 msgid "OpenStreetMap username or email address" msgstr "OpenStreetMap 用户名或电子邮件地址" #: data/org.gnome.Maps.gschema.xml:62 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "指示用户是否已经登录以编辑 OpenStreetMap 数据。" #: data/org.gnome.Maps.gschema.xml:66 msgid "Last used transportation type for routing" msgstr "载入用过的交通类型来规划路线" #: data/org.gnome.Maps.gschema.xml:70 msgid "Show scale" msgstr "显示比例尺" #: data/org.gnome.Maps.gschema.xml:71 msgid "Whether to show the scale." msgstr "是否显示地图比例尺。" #: data/ui/context-menu.ui:6 msgid "Route from Here" msgstr "从此处出发的路径" #: data/ui/context-menu.ui:10 msgid "Add Intermediate Destination" msgstr "添加途经目的地" #: data/ui/context-menu.ui:14 msgid "Route to Here" msgstr "前往此处的路径" #: data/ui/context-menu.ui:20 msgid "What's Here?" msgstr "这是哪里?" #: data/ui/context-menu.ui:24 msgid "Copy Location" msgstr "复制位置信息" #: data/ui/context-menu.ui:28 msgid "Add to OpenStreetMap…" msgstr "添加到 OpenStreetMap…" #: data/ui/export-view-dialog.ui:7 msgid "Export view" msgstr "导出视图" #: data/ui/export-view-dialog.ui:16 data/ui/send-to-dialog.ui:10 #: data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "取消(_C)" #: data/ui/export-view-dialog.ui:26 msgid "_Export" msgstr "导出(_E)" #. Translators: This is a tooltip #: data/ui/favorite-list-row.ui:72 msgid "Remove Favorite" msgstr "移除收藏" #: data/ui/favorites-popover.ui:11 msgid "No Favorites" msgstr "无收藏" #: data/ui/favorites-popover.ui:12 msgid "Add places to your favorites to get them listed here" msgstr "将地点添加到您的收藏夹,以便在此处列出它们" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:11 src/geoclue.js:106 msgid "Current Location" msgstr "当前位置" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:19 msgid "Layers" msgstr "图层" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:11 msgid "Print Route" msgstr "打印路线" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:21 msgid "Favorites" msgstr "收藏" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:30 msgid "Route Planner" msgstr "路线规划器" #: data/ui/help-overlay.ui:12 msgctxt "shortcut window" msgid "General" msgstr "常规" #: data/ui/help-overlay.ui:15 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "显示快捷操作" #: data/ui/help-overlay.ui:21 msgctxt "shortcut window" msgid "Search" msgstr "搜索" #: data/ui/help-overlay.ui:27 msgctxt "shortcut window" msgid "Explore points-of-interest" msgstr "探索兴趣点" #: data/ui/help-overlay.ui:33 msgctxt "shortcut window" msgid "Show last search results" msgstr "显示上次搜索的结果" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "切换路线规划器" #: data/ui/help-overlay.ui:45 msgctxt "shortcut window" msgid "Print route" msgstr "打印路线" #: data/ui/help-overlay.ui:51 msgctxt "shortcut window" msgid "Quit" msgstr "退出" #: data/ui/help-overlay.ui:57 msgctxt "shortcut window" msgid "Open main menu" msgstr "打开主菜单" #: data/ui/help-overlay.ui:65 msgctxt "shortcut window" msgid "Map View" msgstr "地图视图" #: data/ui/help-overlay.ui:68 msgctxt "shortcut window" msgid "Zoom in" msgstr "放大" #: data/ui/help-overlay.ui:74 msgctxt "shortcut window" msgid "Zoom out" msgstr "缩小" #: data/ui/help-overlay.ui:80 msgctxt "shortcut window" msgid "Rotate clockwise" msgstr "顺时针旋转" #: data/ui/help-overlay.ui:86 msgctxt "shortcut window" msgid "Rotate counter-clockwise" msgstr "逆时针旋转" #: data/ui/help-overlay.ui:92 msgctxt "shortcut window" msgid "Reset rotation" msgstr "重置旋转" #: data/ui/help-overlay.ui:98 msgctxt "shortcut window" msgid "Toggle scale" msgstr "切换比例尺" #: data/ui/help-overlay.ui:104 msgctxt "shortcut window" msgid "Go to current location" msgstr "转到当前位置" #: data/ui/help-overlay.ui:114 msgctxt "shortcut window" msgid "Switch to street view" msgstr "切换到街景视图" #: data/ui/help-overlay.ui:121 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "切换到空中视图" #: data/ui/help-overlay.ui:127 msgctxt "shortcut window" msgid "Open shape layer" msgstr "打开形状图层" #: data/ui/layers-popover.ui:7 msgid "Show Scale" msgstr "显示比例尺" #: data/ui/layers-popover.ui:16 msgid "Enable Experimental Map" msgstr "启用实验地图" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:21 msgid "Open Shape Layer…" msgstr "打开形状图层…" #: data/ui/main-window.ui:8 msgid "Set up OpenStreetMap Account…" msgstr "建立 OpenStreetMap 帐号…" #: data/ui/main-window.ui:12 msgid "Export as Image…" msgstr "导出为图像…" #: data/ui/main-window.ui:17 msgid "_Keyboard Shortcuts" msgstr "快捷键(_K)" #: data/ui/main-window.ui:22 msgid "About Maps" msgstr "关于地图" #: data/ui/main-window.ui:48 msgid "Main Menu" msgstr "主菜单" #: data/ui/osm-account-dialog.ui:5 msgid "OpenStreetMap Account" msgstr "OpenStreetMap 帐号" #: data/ui/osm-account-dialog.ui:31 msgid "Sign In To Edit Maps" msgstr "登录以编辑地图" #: data/ui/osm-account-dialog.ui:32 msgid "Help to improve the map, using an OpenStreetMap account." msgstr "使用 OpenStreetMap 账号帮助完善地图。" #: data/ui/osm-account-dialog.ui:36 msgid "Sign In" msgstr "登录" #: data/ui/osm-account-dialog.ui:59 msgid "Verification" msgstr "验证" #: data/ui/osm-account-dialog.ui:60 msgid "" "Copy the verification code shown when authorizing access in the browser." msgstr "复制在浏览器中授权访问时显示的验证码。" #: data/ui/osm-account-dialog.ui:69 msgid "Verification Code" msgstr "验证码" #: data/ui/osm-account-dialog.ui:75 msgid "Verify" msgstr "验证" #: data/ui/osm-account-dialog.ui:110 msgid "Signed In" msgstr "已登入" #: data/ui/osm-account-dialog.ui:111 msgid "Your OpenStreetMap account is active." msgstr "您的 OpenStreetMap 帐号已激活。" #: data/ui/osm-account-dialog.ui:129 msgid "Sign Out" msgstr "退出" #: data/ui/osm-edit-address.ui:11 msgid "Street" msgstr "街道" #: data/ui/osm-edit-address.ui:22 msgid "House number" msgstr "门牌号码" #: data/ui/osm-edit-address.ui:33 msgid "Postal code" msgstr "邮政编码" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:44 msgid "City" msgstr "城市" #: data/ui/osm-edit-dialog.ui:8 msgctxt "dialog title" msgid "Edit on OpenStreetMap" msgstr "在 OpenStreetMap 上编辑" #: data/ui/osm-edit-dialog.ui:57 msgid "Type" msgstr "类型" #: data/ui/osm-edit-dialog.ui:79 msgid "None" msgstr "无" #: data/ui/osm-edit-dialog.ui:108 msgid "Add Field" msgstr "添加字段" #: data/ui/osm-edit-dialog.ui:130 msgid "Comment" msgstr "备注" #: data/ui/osm-edit-dialog.ui:158 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "地图更改将会呈现在所有使用\n" "OpenStreetMap 数据的地图上。" #: data/ui/osm-edit-dialog.ui:186 msgid "Recently Used" msgstr "最近使用" #: data/ui/osm-edit-dialog.ui:225 src/mapView.js:671 msgid "Cancel" msgstr "取消" #: data/ui/osm-edit-dialog.ui:238 src/osmEditDialog.js:531 msgid "Next" msgstr "下一步" #: data/ui/osm-edit-wikipedia.ui:8 msgid "Article" msgstr "文章" #: data/ui/osm-edit-wikipedia.ui:21 msgid "Wikidata tag" msgstr "维基数据标签" #: data/ui/osm-edit-wikipedia.ui:32 msgid "Load Wikidata tag for article" msgstr "为文章加载维基数据标签" #: data/ui/place-popover.ui:23 src/searchBar.js:55 msgid "Explore Nearby Places" msgstr "探索附近地点" #: data/ui/place-popover.ui:82 src/application.js:277 msgid "No results found" msgstr "未找到结果" #: data/ui/place-popover.ui:92 src/application.js:255 msgid "An error has occurred" msgstr "发生了一个错误" #. Translators: This is a tooltip #: data/ui/route-entry.ui:12 msgid "Change Route Order" msgstr "变更路线顺序" #: data/ui/send-to-dialog.ui:7 msgid "Open Location" msgstr "打开位置" #: data/ui/send-to-dialog.ui:64 msgid "Copy" msgstr "复制" #: data/ui/send-to-dialog.ui:70 msgid "Send To…" msgstr "发送至…" #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:62 msgid "Open Shape Layer" msgstr "打开形状图层" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "打开(_O)" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:32 msgid "Toggle visible" msgstr "切换可见" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:44 msgid "Remove Shape Layer" msgstr "移除形状图层" #: data/ui/sidebar.ui:207 msgid "Route search by GraphHopper" msgstr "通过 GraphHopper 搜索路线" #: data/ui/sidebar.ui:272 msgid "" "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of " "transportation,\n" "e.g. a national provider might not include airlines, and a local provider " "could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" "公共交通行程路线由第三方服务提供。\n" "GNOME 无法保证所显示的行程和时间表的准确性。\n" "一些提供者可能不会包含所有可用的交通方式,\n" "例如,国家级提供者可能不包括航空公司,\n" "地方提供者也可能会缺少地区列车信息。\n" "所示名称和品牌在适用时应视为注册商标。" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:98 msgid "Hide intermediate stops and information" msgstr "隐藏途径停站及沿路信息" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:156 msgid "Show intermediate stops and information" msgstr "显示途径停站及沿路信息" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:16 msgid "Leave Now" msgstr "现在动身" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:17 msgid "Leave By" msgstr "出发时间" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:18 msgid "Arrive By" msgstr "到达时间" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:85 msgid "Show" msgstr "显示" #: data/ui/transit-options-panel.ui:95 msgid "Buses" msgstr "公交车" #: data/ui/transit-options-panel.ui:101 msgid "Trams" msgstr "有轨电车" #: data/ui/transit-options-panel.ui:107 msgid "Trains" msgstr "列车" #: data/ui/transit-options-panel.ui:113 msgid "Subway" msgstr "地铁" #: data/ui/transit-options-panel.ui:119 msgid "Ferries" msgstr "渡轮" #: data/ui/transit-options-panel.ui:125 msgid "Airplanes" msgstr "飞机" #. Translators: This is a tooltip #: data/ui/place-bar.ui:33 data/ui/place-buttons.ui:27 msgid "Share Location" msgstr "分享位置" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:11 msgid "Add to new route" msgstr "添加到新路线" #. Translators: This is the button to find a route to a place #: data/ui/place-buttons.ui:15 msgid "Directions" msgstr "方向" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:36 msgid "Mark as Favorite" msgstr "标记为收藏" #. Translators: This is a tooltip #: data/ui/place-buttons.ui:44 msgid "Edit on OpenStreetMap" msgstr "在 OpenStreetMap 上编辑" #. Translators: This is a tooltip #: data/ui/place-view.ui:52 msgid "Share location" msgstr "分享位置" #: data/ui/poi-category-goback-row.ui:22 msgid "Back to Main Categories" msgstr "返回主要类别" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:19 msgid "Reset Rotation" msgstr "重置旋转" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:32 msgid "Zoom Out" msgstr "缩小" #. Translators: This is a tooltip #: data/ui/zoom-and-rotate-controls.ui:43 src/mapView.js:1246 msgid "Zoom In" msgstr "放大" #: lib/maps-file-data-source.c:262 lib/maps-file-data-source.c:338 #: lib/maps-file-data-source.c:418 msgid "Failed to find tile structure in directory" msgstr "未在目录中找到地图区块结构" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "解析 XML 文档失败" #: lib/maps-osm.c:250 lib/maps-osm.c:403 msgid "Missing required attributes" msgstr "缺失需要的属性" #: lib/maps-osm.c:451 lib/maps-osm.c:494 msgid "Could not find OSM element" msgstr "找不到 OSM 元素" #: lib/maps-osm.c:508 msgid "Could not find user element" msgstr "找不到 user 元素" #: src/application.js:78 msgid "A path to a local tiles directory structure" msgstr "指向本地区块目录结构的路径" #: src/application.js:84 msgid "Tile size for local tiles directory" msgstr "本地区块目录的区块大小" #: src/application.js:88 msgid "Show the version of the program" msgstr "显示该程序的版本" #: src/application.js:94 msgid "Search for places" msgstr "搜索地点" #: src/application.js:105 src/application.js:106 msgid "[FILE…|URI]" msgstr "[文件…|URI]" #: src/application.js:284 #, javascript-format msgid "Invalid maps: URI: %s" msgstr "无效地图:URI:%s" #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:75 #, javascript-format msgid "Maps at %f, %f.png" msgstr "%f, %f 处的地图.png" #: src/exportViewDialog.js:174 msgid "Unable to export view" msgstr "无法导出视图" #: src/favoriteListRow.js:42 msgid "Favorite removed" msgstr "已取消收藏" #: src/favoriteListRow.js:43 msgid "Undo" msgstr "撤消" #: src/geoJSONSource.js:73 msgid "invalid coordinate" msgstr "无效坐标" #: src/geoJSONSource.js:126 src/geoJSONSource.js:166 src/geoJSONSource.js:181 msgid "parse error" msgstr "解析错误" #: src/geoJSONSource.js:160 msgid "unknown geometry" msgstr "未知几何方位" #: src/graphHopper.js:101 src/transitPlan.js:175 msgid "Route request failed." msgstr "路线请求失败。" #: src/graphHopper.js:108 src/transitPlan.js:167 msgid "No route found." msgstr "没有找到路线。" #: src/graphHopper.js:195 src/transitplugins/openTripPlanner.js:1163 msgid "Start!" msgstr "开始!" #: src/mainWindow.js:59 msgid "All Layer Files" msgstr "全部图层文件" #: src/mainWindow.js:522 msgid "Failed to connect to location service" msgstr "无法连接到定位服务" #: src/mainWindow.js:527 msgid "Turn on location services" msgstr "开启定位服务" #: src/mainWindow.js:528 msgid "Location Settings" msgstr "地点设置" #: src/mainWindow.js:645 msgid "translator-credits" msgstr "" "tuhaihe <1132321739qq@gmail.com>, 2013, 2020\n" "Tong Hui , 2014\n" "Mingcong Bai , 2015, 2016, 2017, 2018\n" "Dingzhong Chen , 2015-2018\n" "王滋涵 , 2020" #: src/mainWindow.js:649 msgid "Copyright © 2011 – 2023 Red Hat, Inc. and The GNOME Maps authors" msgstr "版权所有 © 2011 – 2023 红帽公司和 GNOME 地图作者" #: src/mainWindow.js:665 #, javascript-format msgid "Map data by %s and contributors" msgstr "地图数据来自 %s 和贡献者" #: src/mainWindow.js:666 msgid "Map Data Provider" msgstr "地图数据提供方" #: src/mainWindow.js:678 msgid "Map Tile Provider" msgstr "地图图块提供方" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:686 #, javascript-format msgid "Map tiles provided by %s" msgstr "地图图块由 %s 提供" #: src/mainWindow.js:716 msgid "Search Provider" msgstr "搜索提供方" #: src/mainWindow.js:719 #, javascript-format msgid "Search provided by %s using %s" msgstr "使用 %s 提供的服务搜索 %s" #: src/mapView.js:645 src/mapView.js:710 msgid "Failed to open layer" msgstr "打开图层失败" #: src/mapView.js:664 msgid "Do you want to continue?" msgstr "请问是否继续?" #: src/mapView.js:665 #, javascript-format msgid "" "You are about to open files with a total size of %s MB. This could take some " "time to load" msgstr "即将打开 %s MB 的文件,这可能需要一定时间" #: src/mapView.js:672 src/transitplugins/openTripPlanner.js:1239 #: src/transitplugins/openTripPlanner2.js:267 msgid "Continue" msgstr "继续" #: src/mapView.js:704 msgid "File type is not supported" msgstr "文件类型未支持" #: src/mapView.js:741 msgid "Failed to open GeoURI" msgstr "打开 GeoURI 失败" #: src/mapView.js:1205 msgid "Nothing found here!" msgstr "这里什么都没有找到!" #: src/mapView.js:1245 msgid "Zoom in to add location" msgstr "放大以添加位置" #: src/mapView.js:1266 msgid "Location was added in OpenStreetMap" msgstr "地点已添加到 OpenStreetMap 中" #. switch back to the sign-in view, and show a toast indicating #. that verification failed #: src/osmAccountDialog.js:134 msgid "The verification code didn’t match, please try again." msgstr "验证码不匹配,请重试。" #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:335 msgid "Incorrect user name or password" msgstr "不正确的用户名或密码" #: src/osmConnection.js:337 msgid "Success" msgstr "成功" #: src/osmConnection.js:339 msgid "Bad request" msgstr "错误的请求" #: src/osmConnection.js:341 msgid "Object not found" msgstr "找不到对象" #: src/osmConnection.js:343 msgid "Conflict, someone else has just modified the object" msgstr "冲突,别人刚修改了对象" #: src/osmConnection.js:345 msgid "Object has been deleted" msgstr "对象已被删除" #: src/osmConnection.js:347 msgid "Way or relation refers to non-existing children" msgstr "道路或关系指向了不存在的子项" #: src/osmEditDialog.js:106 msgid "Name" msgstr "名称" #: src/osmEditDialog.js:109 msgid "The official name. This is typically what appears on signs." msgstr "官方名称。这通常就是标记上显示的东西。" #: src/osmEditDialog.js:112 msgid "Address" msgstr "地址" #: src/osmEditDialog.js:120 src/placeView.js:275 msgid "Website" msgstr "网站" #: src/osmEditDialog.js:124 msgid "This is not a valid URL. Make sure to include http:// or https://." msgstr "URL 不合法。请确保其包含 http:// 或 https://。" #: src/osmEditDialog.js:125 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" "官方网站。尝试使用 URL 的最基本形式,例如 http://example.com 而不是 http://" "example.com/index.html。" #: src/osmEditDialog.js:130 msgid "Phone" msgstr "电话" #: src/osmEditDialog.js:134 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" "电话号码。使用国际格式,以 + 加号开头。留心当地的隐私法律,特别是对于私人电话" "号码。" #: src/osmEditDialog.js:139 src/placeView.js:308 msgid "Email" msgstr "电子邮件" #: src/osmEditDialog.js:144 msgid "" "This is not a valid email address. Make sure to not include the mailto: " "protocol prefix." msgstr "电子邮件地址无效。请确保其不包含 mailto: 协议前缀。" #: src/osmEditDialog.js:145 msgid "" "Contact email address for inquiries. Add only email addresses that are " "intended to be publicly used." msgstr "问询用电子邮件地址。只应添加公共用途的电子邮件地址。" #. Translators: This is the text for the "Wikipedia" link at the end #. of summaries #: src/osmEditDialog.js:149 src/placeView.js:727 msgid "Wikipedia" msgstr "维基百科" #: src/osmEditDialog.js:156 src/placeView.js:399 msgid "Opening hours" msgstr "开放时间" #: src/osmEditDialog.js:161 msgid "See the link in the label for help on format." msgstr "请参阅标签中的链接来获得关于格式的帮助。" #. TODO: this is a bit of a work-around to re-interpret the population, #. * stored as a string into an integer to convert back to a locale- #. * formatted string. Ideally it should be kept as an integer value #. * in the Place class. But this will also need to be handled by the #. * PlaceStore, possible in a backwards-compatible way #. #: src/osmEditDialog.js:164 src/placeView.js:509 msgid "Population" msgstr "人口总数" #: src/osmEditDialog.js:169 src/placeView.js:538 msgid "Altitude" msgstr "海拔" #: src/osmEditDialog.js:172 msgid "Elevation (height above sea level) of a point in meters." msgstr "某一点的海拔(海平面之上的高度),以米计。" #: src/osmEditDialog.js:175 msgid "Wheelchair access" msgstr "轮椅通行" #: src/osmEditDialog.js:178 src/osmEditDialog.js:187 src/osmEditDialog.js:198 #: src/osmEditDialog.js:233 msgid "Yes" msgstr "有" #: src/osmEditDialog.js:179 src/osmEditDialog.js:188 src/osmEditDialog.js:199 #: src/osmEditDialog.js:234 msgid "No" msgstr "无" #: src/osmEditDialog.js:180 msgid "Limited" msgstr "受限" #: src/osmEditDialog.js:181 msgid "Designated" msgstr "指定" #: src/osmEditDialog.js:184 msgid "Internet access" msgstr "网络接入" #: src/osmEditDialog.js:189 msgid "Wi-Fi" msgstr "Wi-Fi" #: src/osmEditDialog.js:190 msgid "Wired" msgstr "有线" #: src/osmEditDialog.js:191 msgid "Terminal" msgstr "终端" #: src/osmEditDialog.js:192 msgid "Service" msgstr "服务" #: src/osmEditDialog.js:195 msgid "Takeout" msgstr "外带" #: src/osmEditDialog.js:200 msgid "Only" msgstr "仅" #: src/osmEditDialog.js:203 msgid "Religion" msgstr "宗教" #: src/osmEditDialog.js:206 src/translations.js:286 msgid "Animism" msgstr "泛灵论" #: src/osmEditDialog.js:207 msgid "Bahá’í" msgstr "巴哈伊教" #: src/osmEditDialog.js:208 src/translations.js:288 msgid "Buddhism" msgstr "佛教" #: src/osmEditDialog.js:209 src/translations.js:289 msgid "Caodaism" msgstr "高台教" #: src/osmEditDialog.js:210 src/translations.js:290 msgid "Christianity" msgstr "基督教" #: src/osmEditDialog.js:211 src/translations.js:291 msgid "Confucianism" msgstr "儒学" #: src/osmEditDialog.js:212 src/translations.js:292 msgid "Hinduism" msgstr "印度教" #: src/osmEditDialog.js:213 src/translations.js:293 msgid "Jainism" msgstr "耆那教" #: src/osmEditDialog.js:214 src/translations.js:294 msgid "Judaism" msgstr "犹太教" #: src/osmEditDialog.js:215 src/translations.js:295 msgid "Islam" msgstr "伊斯兰教" #: src/osmEditDialog.js:216 src/translations.js:296 msgid "Multiple Religions" msgstr "多宗教信仰" #: src/osmEditDialog.js:217 src/translations.js:297 msgid "Paganism" msgstr "异教" #: src/osmEditDialog.js:218 src/translations.js:298 msgid "Pastafarianism" msgstr "飞天面条神教" #: src/osmEditDialog.js:219 src/translations.js:299 msgid "Scientology" msgstr "山达基" #: src/osmEditDialog.js:220 src/translations.js:300 msgid "Shinto" msgstr "神道" #: src/osmEditDialog.js:221 src/translations.js:301 msgid "Sikhism" msgstr "锡克教" #: src/osmEditDialog.js:222 src/translations.js:302 msgid "Spiritualism" msgstr "唯灵论" #: src/osmEditDialog.js:223 src/translations.js:303 msgid "Taoism" msgstr "道教" #: src/osmEditDialog.js:224 src/translations.js:304 msgid "Unitarian Universalism" msgstr "一神普救派" #: src/osmEditDialog.js:225 src/translations.js:305 msgid "Voodoo" msgstr "伏都教" #: src/osmEditDialog.js:226 src/translations.js:306 msgid "Yazidism" msgstr "雅兹迪教" #: src/osmEditDialog.js:227 src/translations.js:307 msgid "Zoroastrianism" msgstr "琐罗亚斯德教" #: src/osmEditDialog.js:230 src/poiCategories.js:176 msgid "Toilets" msgstr "洗手间" #: src/osmEditDialog.js:237 msgid "Note" msgstr "备注" #: src/osmEditDialog.js:240 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" "用于提醒其他制图人的信息,比如关于元素的隐蔽信息、作者创建的意图,亦或进一步" "完善的提示。" #: src/osmEditDialog.js:339 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "添加到 OpenStreetMap" #: src/osmEditDialog.js:393 msgid "Select Type" msgstr "选择类型" #: src/osmEditDialog.js:515 msgid "Done" msgstr "完成" #: src/osmEditDialog.js:818 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "使用的格式应该包含语言代码和文章标题如“zh_CN:文章标题”。" #: src/osmEditDialog.js:824 msgid "Use the reload button to load the Wikidata tag for the selected article" msgstr "使用重新加载按钮来加载所选文章的维基数据标签" #: src/osmEditDialog.js:832 msgid "Couldn't find Wikidata tag for article" msgstr "无法找到文章对应的维基数据标签" #: src/photonUtils.js:118 msgid "Unnamed place" msgstr "未命名地点" #: src/placeEntry.js:274 msgid "Failed to parse Geo URI" msgstr "解析 Geo URI 失败" #: src/placeEntry.js:286 msgid "Failed to parse Maps URI" msgstr "解析地图 URI 失败" #. 300 ft (300 * 12 * 0.0254 m) #. #. * Translators: This a format string for showing a distance to a place #. * is lower than a "quite short" distance. #. * The "less than" symbol can be substituded with an appropriate one, if #. * needed (e.g. using the correct direction, or alternative symbol). #. * The %s should be kept, and is substituted with a label representing the #. * short distance. The \u2009 (thin space) could also be adjusted if needed #: src/placeListRow.js:46 #, javascript-format msgctxt "short distance format string" msgid "< %s" msgstr "小于 %s" #: src/placeView.js:263 msgid "Coordinates" msgstr "坐标" #: src/placeView.js:267 msgid "Accuracy" msgstr "精度" #. Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) #: src/placeView.js:270 #, javascript-format msgid "Accuracy: %s" msgstr "位置精度:%s" #. since the phone numbers are typically always rendered #. * left-to-right, insert an explicit LRM char to avoid issues #. * with phone numbers in international format starting with a + #. * which is considered a "weak" character to determine Unicode #. * text direction #. #: src/placeView.js:289 msgid "Phone number" msgstr "手机号码" #. If a reference to a named floor (named or symbolic) exists #. * refer to it directly. #. #. Translators: #. * This is a reference to named building floor, using a label #. * or a code, as "displayed in the elevator" #. #: src/placeView.js:323 src/placeView.js:362 msgid "Floor" msgstr "楼层" #: src/placeView.js:325 #, javascript-format msgid "Floor %s" msgstr "%s 层" #: src/placeView.js:337 msgid "At ground level" msgstr "在地面上" #. Translators: #. * This is a reference to a number of floors above #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:346 #, javascript-format msgid "%s floor above ground level" msgid_plural "%s floors above ground level" msgstr[0] "地上 %s 层" #. Translators: #. * This is a reference to a number of floors below #. * ground level. #. * The %s placeholder is the integer relative number of floors #. #: src/placeView.js:357 #, javascript-format msgid "%s floor below ground level" msgid_plural "%s floors below ground level" msgstr[0] "地下 %s 层" #. Translators: #. * The establishment offers customers to purchase meals #. * (or similar) to be consumed elsewhere #. #: src/placeView.js:375 msgid "Offers takeout" msgstr "提供外带服务" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed on-premise. #. #: src/placeView.js:383 msgid "Does not offer takeout" msgstr "不提供外带服务" #. Translators: #. * The establishment only offers customers to purchase #. * meals (or similar) to be consumed elsewhere. E.g. #. * there is no seating on-premise for eating/drinking #. #: src/placeView.js:392 msgid "Only offers takeout" msgstr "只提供外带服务" #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/placeView.js:409 msgid "Public internet access" msgstr "公共网络接入" #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/placeView.js:418 msgid "No internet access" msgstr "无网络接入" #. Translators: #. * This means a WLAN Hotspot, also known as wireless, wifi or Wi-Fi. #. #: src/placeView.js:426 msgid "Public Wi-Fi" msgstr "公共 Wi-Fi" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/placeView.js:434 msgid "Wired internet access" msgstr "有线网络接入" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/placeView.js:442 msgid "Computers available for use" msgstr "有计算机可供使用" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/placeView.js:450 msgid "Internet assistance available" msgstr "提供网络援助" #: src/placeView.js:456 msgid "No toilets available" msgstr "不提供洗手间" #: src/placeView.js:459 msgid "Toilets available" msgstr "提供洗手间" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #: src/placeView.js:468 msgid "Wheelchair accessible" msgstr "轮椅可通行" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/placeView.js:478 msgid "Limited wheelchair accessibility" msgstr "轮椅有限通行" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #: src/placeView.js:487 msgid "Not wheelchair accessible" msgstr "轮椅不可通行" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/placeView.js:497 msgid "Designated for wheelchair users" msgstr "为轮椅用户设计" #. * #. * Translators: this is a label indicating an altitude below #. * sea level, where the %s placeholder is the altitude relative #. * to mean sea level in the "negative direction" #. #: src/placeView.js:528 #, javascript-format msgid "%s below sea level" msgstr "低于海平面 %s" #. * #. * Translators: this indicates a place is located at (or very #. * close to) mean sea level #. #: src/placeView.js:535 msgid "At sea level" msgstr "位于海平面高度" #: src/placeView.js:544 msgid "Religion:" msgstr "宗教:" #: src/place.js:570 msgid "Place not found in OpenStreetMap" msgstr "地点在 OpenStreetMap 上找不到" #: src/place.js:577 msgid "Coordinates in URL are not valid" msgstr "URL 中的坐标无效" #: src/place.js:586 msgid "URL is not supported" msgstr "URL 不支持" #: src/poiCategories.js:132 msgid "Amenities" msgstr "便利设施" #: src/poiCategories.js:135 msgid "ATMs" msgstr "自动取款机" #: src/poiCategories.js:141 msgid "Post Boxes" msgstr "邮政信箱" #: src/poiCategories.js:147 msgid "Post Offices" msgstr "邮局" #: src/poiCategories.js:153 msgid "Police" msgstr "警察" #: src/poiCategories.js:159 msgid "Libraries" msgstr "图书馆" #: src/poiCategories.js:165 msgid "Pharmacies" msgstr "药房" #: src/poiCategories.js:171 msgid "Recycling" msgstr "回收站" #: src/poiCategories.js:182 msgid "Wheelchair-accessible Toilets" msgstr "无障碍卫生间" #: src/poiCategories.js:188 msgid "Baggage Lockers" msgstr "行李储物柜" #: src/poiCategories.js:196 msgid "Eating & Drinking" msgstr "饮食" #: src/poiCategories.js:200 msgid "Restaurants" msgstr "餐厅" #: src/poiCategories.js:205 msgid "Fast Food" msgstr "快餐" #: src/poiCategories.js:210 msgid "Food Courts" msgstr "美食广场" #: src/poiCategories.js:215 msgid "Pubs" msgstr "酒馆" #: src/poiCategories.js:221 msgid "Bars" msgstr "酒吧" #: src/poiCategories.js:226 msgid "Cafes" msgstr "咖啡馆" #: src/poiCategories.js:231 msgid "Ice Cream" msgstr "雪糕" #: src/poiCategories.js:236 msgid "Food, Snacks, and Beverage Machines" msgstr "食品、零食和饮料售货机" #: src/poiCategories.js:244 msgid "Shopping" msgstr "购物" #: src/poiCategories.js:248 msgid "Supermarkets" msgstr "超市" #: src/poiCategories.js:254 msgid "Convenience Stores" msgstr "便利店" #: src/poiCategories.js:259 msgid "Shopping Malls" msgstr "商场" #: src/poiCategories.js:265 msgid "Clothes" msgstr "衣物" #: src/poiCategories.js:271 msgid "Shoes" msgstr "鞋子" #: src/poiCategories.js:276 msgid "Electronics" msgstr "电子产品" #: src/poiCategories.js:282 msgid "Alcohol" msgstr "酒精" #: src/poiCategories.js:288 msgid "Bakeries" msgstr "面包店" #: src/poiCategories.js:294 msgid "Flowers" msgstr "鲜花" #: src/poiCategories.js:301 msgid "Transportation" msgstr "交通" #: src/poiCategories.js:305 msgid "Bus & Tram Stops" msgstr "公交和电车站" #: src/poiCategories.js:313 msgid "Train & Subway Stations" msgstr "火车站和地铁站" #: src/poiCategories.js:321 msgid "Tickets" msgstr "售票处" #: src/poiCategories.js:329 msgid "Parking" msgstr "停车场" #: src/poiCategories.js:334 msgid "Bicycle Parking" msgstr "自行车停放处" #: src/poiCategories.js:339 msgid "Bicycle Rental" msgstr "自行车租赁" #: src/poiCategories.js:344 msgid "Car Rental" msgstr "租车" #: src/poiCategories.js:349 msgid "Fuel" msgstr "燃油" #: src/poiCategories.js:354 msgid "EV Charging" msgstr "电车充电" #: src/poiCategories.js:362 msgid "Healthcare" msgstr "医疗" #: src/poiCategories.js:366 msgid "Clinics" msgstr "诊所" #: src/poiCategories.js:372 msgid "Hospitals" msgstr "医院" #: src/poiCategories.js:378 msgid "Dentists" msgstr "牙医" #: src/poiCategories.js:386 msgid "Accommodation" msgstr "住宿" #: src/poiCategories.js:390 msgid "Hotels" msgstr "酒店" #: src/poiCategories.js:395 msgid "Hostels" msgstr "宿舍" #: src/poiCategories.js:400 msgid "Bed & Breakfast" msgstr "住宿加早餐旅馆" #: src/poiCategories.js:405 msgid "Campings" msgstr "露营地" #: src/poiCategories.js:412 msgid "Recreation" msgstr "娱乐" #: src/poiCategories.js:416 msgid "Parks" msgstr "公园" #: src/poiCategories.js:421 msgid "Playgrounds" msgstr "游乐场" #: src/poiCategories.js:425 msgid "Beaches" msgstr "海滩" #: src/poiCategories.js:430 msgid "Nature Reserves" msgstr "自然保护区" #: src/poiCategories.js:436 msgid "Theme Parks" msgstr "主题公园" #: src/poiCategories.js:441 msgid "Theaters" msgstr "剧院" #: src/poiCategories.js:447 msgid "Movie Theaters" msgstr "电影院" #: src/poiCategories.js:453 msgid "Night Clubs" msgstr "夜总会" #: src/poiCategories.js:460 msgid "Tourism" msgstr "旅游" #: src/poiCategories.js:464 msgid "Museums" msgstr "博物馆" #: src/poiCategories.js:470 msgid "Attractions" msgstr "景点" #: src/poiCategories.js:475 msgid "Artworks" msgstr "艺术作品" #: src/poiCategories.js:480 msgid "Tourist Information" msgstr "旅游信息" #: src/poiCategories.js:487 msgid "Sports" msgstr "体育" #: src/poiCategories.js:491 msgid "Gyms" msgstr "健身房" #: src/poiCategories.js:497 msgid "Outdoor Gyms" msgstr "户外健身房" #: src/poiCategories.js:503 msgid "Golf Courses" msgstr "高尔夫球" #: src/printLayout.js:350 #, javascript-format msgid "From %s to %s" msgstr "从 %s 到 %s" #: src/printOperation.js:49 msgid "Loading map tiles for printing" msgstr "正在加载地图图块以便打印" #: src/printOperation.js:50 msgid "You can abort printing if this takes too long" msgstr "如果打印时间太长你可以中止它" #: src/printOperation.js:52 msgid "Abort printing" msgstr "中止打印" #. Translators: this is add via location tooltip #: src/routeEntry.js:60 msgid "Add via location" msgstr "通过位置添加" #. Translators: this is remove via location tooltip #: src/routeEntry.js:70 msgid "Remove via location" msgstr "通过位置移除" #. Translators: this is reverse route tooltip #: src/routeEntry.js:76 msgid "Reverse route" msgstr "反向路线" #: src/searchBar.js:45 msgid "Search" msgstr "搜索" #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:84 #, javascript-format msgid "Add %s to %s" msgstr "添加 %s 到 %s" #: src/sendToDialog.js:181 msgid "Failed to open URI" msgstr "打开 URI 失败" #: src/sendToDialog.js:246 #, javascript-format msgid "Open with %s" msgstr "用 %s 打开" #: src/shapeLayer.js:109 msgid "failed to load file" msgstr "载入文件失败" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:328 #, javascript-format msgid "Estimated time: %s" msgstr "估计时间:%s" #: src/sidebar.js:398 #, javascript-format msgid "Itineraries provided by %s" msgstr "路线由 %s 提供" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:39 #, javascript-format msgid "Start at %s" msgstr "出发时间为 %s" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:45 src/transitplugins/openTripPlanner2.js:236 msgid "Start" msgstr "出发" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:63 #, javascript-format msgid "Walk %s" msgstr "步行 %s" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:77 #, javascript-format msgid "Arrive at %s" msgstr "到达时间为 %s" #: src/transit.js:79 src/transitplugins/openTripPlanner.js:1176 #: src/transitplugins/openTripPlanner2.js:255 msgid "Arrive" msgstr "到达" #: src/transitLegRow.js:69 msgid "Show walking instructions" msgstr "显示步行指引" #: src/transitLegRow.js:70 msgid "Hide walking instructions" msgstr "隐藏步行指引" #: src/transitMoreRow.js:37 msgid "Load earlier alternatives" msgstr "载入上一个替代方案" #: src/transitMoreRow.js:39 msgid "Load later alternatives" msgstr "载入下一个替代方案" #: src/transitMoreRow.js:52 msgid "No earlier alternatives found." msgstr "找不到上一个替代方案。" #: src/transitMoreRow.js:54 msgid "No later alternatives found." msgstr "找不到下一个替代方案。" #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:138 msgctxt "month-day-date" msgid "%b %e" msgstr "%-m月%-d日" #: src/transitPlan.js:171 msgid "No timetable data found for this route." msgstr "找不到该路线的时间表信息。" #: src/transitPlan.js:179 msgid "No provider found for this route." msgstr "找不到该路线的提供商。" #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:300 #, javascript-format msgid "%s – %s" msgstr "%s - %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:331 #, javascript-format msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "%s 分钟" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:343 #, javascript-format msgid "%s hour" msgid_plural "%s hours" msgstr[0] "%s 小时" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:351 #, javascript-format msgid "%s:%s hour" msgid_plural "%s:%s hours" msgstr[0] "%s:%s 小时" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:744 #, javascript-format msgid "%s–%s" msgstr "%s-%s" #: src/translations.js:55 msgid "Around the clock" msgstr "全天" #: src/translations.js:57 msgid "From sunrise to sunset" msgstr "白天" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:123 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s,%s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:137 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s,%s,%s" #: src/translations.js:156 msgid "Every day" msgstr "每天" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:168 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:179 msgid "Public holidays" msgstr "公众假期" #: src/translations.js:181 msgid "School holidays" msgstr "学校假期" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:221 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: src/translations.js:235 msgid "not open" msgstr "未开放" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:250 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:287 msgid "Bahá'í" msgstr "巴哈伊教" #. Translators: Accuracy of user location information #: src/utils.js:248 msgid "Unknown" msgstr "未知" #. Translators: Accuracy of user location information #: src/utils.js:251 msgid "Exact" msgstr "准确" #. Translators: this is a duration with only hours, using #. * an abbreviation for hours, corresponding to 'h' in English #. #: src/utils.js:307 #, javascript-format msgid "%s h" msgstr "%s 小时" #. Translators: this is a duration with hours and minutes parts #. * using abbreviations for hours and minutes, corresponding to 'h' #. * and 'min' in English. The minutes has appropriate plural variations #. #: src/utils.js:313 #, javascript-format msgid "%s h %s min" msgid_plural "%s h %s min" msgstr[0] "%s 小时 %s 分钟" #. Translators: this is a duration with minutes part #. * using abbreviation for minutes, corresponding to 'min' in English #. * with appropriate plural variations #. #: src/utils.js:320 #, javascript-format msgid "%s min" msgid_plural "%s min" msgstr[0] "%s 分钟" #. Translators: this is a duration of less than one minute #. * with seconds using an abbreviation for seconds, corresponding to #. * 's' in English with appropriate plural forms #. #: src/utils.js:326 #, javascript-format msgid "%s s" msgid_plural "%s s" msgstr[0] "%s 秒" #. Translators: This is a distance measured in kilometers #: src/utils.js:337 #, javascript-format msgid "%s km" msgstr "%s 千米" #. Translators: This is a distance measured in meters #: src/utils.js:340 #, javascript-format msgid "%s m" msgstr "%s 米" #. Translators: This is a distance measured in miles #: src/utils.js:348 #, javascript-format msgid "%s mi" msgstr "%s 英里" #. Translators: This is a distance measured in feet #: src/utils.js:351 #, javascript-format msgid "%s ft" msgstr "%s 英尺" #: src/transitplugins/goMetro.js:61 msgid "This plugin doesn't support latest arrival" msgstr "该插件不支持最近到达信息" #: src/transitplugins/openTripPlanner.js:1237 #: src/transitplugins/openTripPlanner2.js:266 #, javascript-format msgid "Continue on %s" msgstr "继续沿 %s 前进" #: src/transitplugins/openTripPlanner.js:1242 #: src/transitplugins/openTripPlanner2.js:270 #, javascript-format msgid "Turn left on %s" msgstr "%s 处左转" #: src/transitplugins/openTripPlanner.js:1244 #: src/transitplugins/openTripPlanner2.js:271 msgid "Turn left" msgstr "左转" #: src/transitplugins/openTripPlanner.js:1247 #: src/transitplugins/openTripPlanner2.js:275 #, javascript-format msgid "Turn slightly left on %s" msgstr "%s 处稍向左转" #: src/transitplugins/openTripPlanner.js:1249 #: src/transitplugins/openTripPlanner2.js:276 msgid "Turn slightly left" msgstr "稍向左转" #: src/transitplugins/openTripPlanner.js:1252 #: src/transitplugins/openTripPlanner2.js:280 #, javascript-format msgid "Turn sharp left on %s" msgstr "%s 处向左急转" #: src/transitplugins/openTripPlanner.js:1254 #: src/transitplugins/openTripPlanner2.js:281 msgid "Turn sharp left" msgstr "向左急转" #: src/transitplugins/openTripPlanner.js:1257 #: src/transitplugins/openTripPlanner2.js:284 #, javascript-format msgid "Turn right on %s" msgstr "%s 处右转" #: src/transitplugins/openTripPlanner.js:1259 #: src/transitplugins/openTripPlanner2.js:285 msgid "Turn right" msgstr "右转" #: src/transitplugins/openTripPlanner.js:1262 #: src/transitplugins/openTripPlanner2.js:289 #, javascript-format msgid "Turn slightly right on %s" msgstr "%s 处稍向右转" #: src/transitplugins/openTripPlanner.js:1264 #: src/transitplugins/openTripPlanner2.js:290 msgid "Turn slightly right" msgstr "稍向右转" #: src/transitplugins/openTripPlanner.js:1267 #: src/transitplugins/openTripPlanner2.js:294 #, javascript-format msgid "Turn sharp right on %s" msgstr "%s 处向右急转" #: src/transitplugins/openTripPlanner.js:1269 #: src/transitplugins/openTripPlanner2.js:295 msgid "Turn sharp right" msgstr "向右急转" #: src/transitplugins/openTripPlanner.js:1275 #: src/transitplugins/openTripPlanner2.js:302 #, javascript-format msgid "At the roundabout, take exit %s" msgstr "在 %s 出环岛" #: src/transitplugins/openTripPlanner.js:1277 #: src/transitplugins/openTripPlanner2.js:305 #, javascript-format msgid "At the roundabout, take exit to %s" msgstr "退出环岛往 %s" #: src/transitplugins/openTripPlanner.js:1279 #: src/transitplugins/openTripPlanner2.js:307 msgid "Take the roundabout" msgstr "环岛绕行" #: src/transitplugins/openTripPlanner.js:1283 #: src/transitplugins/openTripPlanner2.js:315 #, javascript-format msgid "Take the elevator and get off at %s" msgstr "乘坐电梯并在 %s 层离开" #: src/transitplugins/openTripPlanner.js:1285 #: src/transitplugins/openTripPlanner2.js:316 msgid "Take the elevator" msgstr "乘坐电梯" #: src/transitplugins/openTripPlanner.js:1289 #: src/transitplugins/openTripPlanner2.js:320 #, javascript-format msgid "Make a left u-turn onto %s" msgstr "向走掉头进入 %s" #: src/transitplugins/openTripPlanner.js:1291 #: src/transitplugins/openTripPlanner2.js:321 msgid "Make a left u-turn" msgstr "向走掉头" #: src/transitplugins/openTripPlanner.js:1294 #: src/transitplugins/openTripPlanner2.js:325 #, javascript-format msgid "Make a right u-turn onto %s" msgstr "向右掉头进入 %s" #: src/transitplugins/openTripPlanner.js:1296 #: src/transitplugins/openTripPlanner2.js:326 msgid "Make a right u-turn" msgstr "向右掉头" #~ msgid "Sign in to edit maps" #~ msgstr "登录以编辑地图" #~ msgid "" #~ "Sign in to authorize access in a web browser.\n" #~ "Then fill in the obtained verification code here in the next step." #~ msgstr "" #~ "登录以在网页浏览器中授权访问。\n" #~ "之后请在下一步填入获得的验证码。" #~ msgid "Signed In" #~ msgstr "已登录" #~ msgid "E-mail" #~ msgstr "电子邮件" #~ msgid "Sign up" #~ msgstr "注册" #~ msgid "Filesystem is read only" #~ msgstr "文件系统为只读" #~ msgid "You do not have permission to save there" #~ msgstr "您没有保存到那里的权限" #~ msgid "The directory does not exist" #~ msgstr "该目录不存在" #~ msgid "No filename specified" #~ msgstr "未指定文件名" #~ msgid "" #~ "Location was added to the map, note that it may take a while before it " #~ "shows on the map and in search results." #~ msgstr "" #~ "地点已添加到地图,注意它可能需要一段时间才能显示在地图上和搜索结果里。" #~ msgid "Takeaway" #~ msgstr "外带" #~ msgid "Go to current location" #~ msgstr "转到当前位置" #~ msgid "Choose map type" #~ msgstr "选择地图类型" #~ msgid "Zoom in" #~ msgstr "放大" #~ msgid "Drag to change order of the route" #~ msgstr "拖动以改变路线的顺序" #~ msgid "Foursquare check-in privacy setting" #~ msgstr "Foursquare 签到隐私设置" #~ msgid "" #~ "Latest used Foursquare check-in privacy setting. Possible values are: " #~ "public, followers or private." #~ msgstr "" #~ "最近使用的 Foursquare 签到隐私设置。可能的值有:public, followers 或 " #~ "private。" #~ msgid "Foursquare check-in Facebook broadcasting" #~ msgstr "Foursquare 签到同步到 Facebook" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a post in the " #~ "Facebook account associated with the Foursquare account." #~ msgstr "" #~ "表示 Foursquare 是否把签到当成消息发布到 Foursquare 已经关联的 Facebook 帐" #~ "号上。" #~ msgid "Foursquare check-in Twitter broadcasting" #~ msgstr "Foursquare 签到同步到 Twitter" #~ msgid "" #~ "Indicates if Foursquare should broadcast the check-in as a tweet in the " #~ "Twitter account associated with the Foursquare account." #~ msgstr "" #~ "表示 Foursquare 是否把签到当成推文发布到 Foursquare 已经关联的 Twitter 帐" #~ "号上。" #~ msgid "Use hybrid aerial tiles" #~ msgstr "使用混合航拍区块" #~ msgid "Whether aerial tiles should use hybrid style (with labels)." #~ msgstr "航拍区块是否使用混合样式(带标签)。" #~ msgid "Visibility" #~ msgstr "可见性" #~ msgid "Post on Facebook" #~ msgstr "发到 Facebook" #~ msgid "Post on Twitter" #~ msgstr "发到 Twitter" #~ msgid "C_heck in" #~ msgstr "签到(_H)" #~ msgid "Public" #~ msgstr "公开" #~ msgid "Private" #~ msgstr "私人" #~ msgid "Include route and markers" #~ msgstr "包括路线和标记" #~ msgid "Show Labels" #~ msgstr "显示标签" #~ msgid "Maps is offline!" #~ msgstr "地图应用处于离线状态!" #~ msgid "" #~ "Maps need an active internet connection to function properly, but one " #~ "can’t be found." #~ msgstr "地图应用需要有效的网络连接才能正常运行,但是未发现有效连接。" #~ msgid "Check your connection and proxy settings." #~ msgstr "请检查您的网络连接和代理设置。" #~ msgid "Password" #~ msgstr "密码" #~ msgid "" #~ "Sorry, that didn’t work. Please try again, or visit\n" #~ "OpenStreetMap to reset your password." #~ msgstr "" #~ "对不起,密码无效。请重试,或访问\n" #~ "OpenStreetMap 以重置密码。" #~ msgid "Check In…" #~ msgstr "签到…" #~ msgid "Ignore network availability" #~ msgstr "忽略网络可用性" #~ msgid "Select an account" #~ msgstr "选择帐号" #~ msgid "Loading" #~ msgstr "正在载入" #~ msgid "Select a place" #~ msgstr "选择地点" #~ msgid "" #~ "Maps cannot find the place to check in to with Foursquare. Please select " #~ "one from this list." #~ msgstr "地图应用无法在 Foursquare 中找到签到地点。请在列表中选择。" #, javascript-format #~ msgid "Check in to %s" #~ msgstr "签到于 %s" #, javascript-format #~ msgid "Write an optional message to check in to %s." #~ msgstr "编写附加信息来签到 %s 。" #, javascript-format #~ msgid "Cannot find “%s” in the social service" #~ msgstr "在社交服务中找不到“%s”" #~ msgid "Cannot find a suitable place to check-in in this location" #~ msgstr "在此地无法找到符合的签到地点" #~ msgid "" #~ "Credentials have expired, please open Online Accounts to sign in and " #~ "enable this account" #~ msgstr "证书已过期,请打开“在线帐号”登录并启用此帐号" #~ msgid "A map application for GNOME" #~ msgstr "一款 GNOME 地图应用程序" #~ msgid "GNOME Maps" #~ msgstr "GNOME 地图" #~ msgid "Night mode" #~ msgstr "夜晚模式" #~ msgid "Whether the application is in night mode." #~ msgstr "是否使用夜晚模式。" #~ msgid "Night Mode" #~ msgstr "夜晚模式" #~ msgid "" #~ "You can even search for specific types of locations, such as “Pubs near " #~ "Main Street, Boston” or “Hotels near Alexanderplatz, Berlin”." #~ msgstr "" #~ "你甚至可以搜索特定类型的位置,比如“Pubs near Main Street, " #~ "Boston”或“Hotels near Alexanderplatz, Berlin”。" #~ msgid "Facebook check-in privacy setting" #~ msgstr "Facebook 签到隐私设置" #~ msgid "" #~ "Latest used Facebook check-in privacy setting. Possible values are: " #~ "EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS or SELF." #~ msgstr "" #~ "最近使用的 Facebook 签到隐私设置。可能的值有:EVERYONE, " #~ "FRIENDS_OF_FRIENDS, ALL_FRIENDS 或 SELF。" #~ msgid "Everyone" #~ msgstr "每个人" #~ msgid "Friends of friends" #~ msgstr "朋友的朋友" #~ msgid "Just friends" #~ msgstr "仅限朋友" #~ msgid "Just me" #~ msgstr "仅限自己" #~ msgid "" #~ "Maps cannot find the place to check in to with Facebook. Please select " #~ "one from this list." #~ msgstr "地图应用无法在 Facebook 中找到签到地点。请在列表中选择。" #~ msgid "Find a Route" #~ msgstr "寻找路线" #~ msgid "Check in here" #~ msgstr "在这里签到" #~ msgid "Population:" #~ msgstr "人口总数:" #~ msgid "Altitude:" #~ msgstr "海拔:" #~ msgid "Opening hours:" #~ msgstr "开放时间:" #~ msgid "Internet access:" #~ msgstr "网络接入:" #~ msgid "Toilets:" #~ msgstr "洗手间:" #~ msgid "Wheelchair access:" #~ msgstr "轮椅通行:" #~ msgid "Phone:" #~ msgstr "电话:" #~ msgid "yes" #~ msgstr "有" #~ msgid "limited" #~ msgstr "有限制" #~ msgid "no" #~ msgstr "无" #~ msgid "designated" #~ msgstr "专用设施" #~ msgid "OpenStreetMap URL is not valid" #~ msgstr "OpenStreetMap URL 无效" #~ msgctxt "time range list" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgctxt "time range list" #~ msgid "%s %s %s" #~ msgstr "%s %s %s" #~ msgctxt "time range component" #~ msgid "%s %s" #~ msgstr "%s %s" #~ msgid "wired" #~ msgstr "有线" #~ msgid "terminal" #~ msgstr "终端" #~ msgid "service" #~ msgstr "服务" #~ msgid "Primary menu" #~ msgstr "主菜单" #~ msgid "Don’t have an account?" #~ msgstr "没有帐号?" #~ msgid "Open with another application" #~ msgstr "以其他程序打开" #~ msgid "Press enter to search" #~ msgstr "按下回车键开始搜索" #~ msgid "Route search by OpenTripPlanner" #~ msgstr "通过 OpenTripPlanner 搜索路线" #~ msgid "Add destination" #~ msgstr "添加目的地" #~ msgid "%f h" #~ msgstr "%f 小时" #~ msgid "%f min" #~ msgstr "%f 分钟" #~ msgid "%f s" #~ msgstr "%f 秒" #~ msgid "org.gnome.Maps" #~ msgstr "org.gnome.Maps" #~ msgid "Quit" #~ msgstr "退出" #~ msgid "OK" #~ msgstr "确定" #~ msgid "Load Map Layer" #~ msgstr "加载地图图层" #~ msgid "%f km" #~ msgstr "%f 千米" #~ msgid "%f m" #~ msgstr "%f 米" #~ msgid "%f mi" #~ msgstr "%f 英里" #~ msgid "%f ft" #~ msgstr "%f 英尺" #~ msgid "Failed to parse GeoJSON file" #~ msgstr "解析 GeoJSON 文件失败" #~ msgid "Country code: %s" #~ msgstr "国家代码:%s" #~ msgid "Last known location and accuracy" #~ msgstr "最近已知的位置和精度" #~ msgid "" #~ "Last known location (latitude and longitude in degrees) and accuracy (in " #~ "meters)." #~ msgstr "最近已知的位置(经纬度)和精度(米)。" #~ msgid "Description of last known location of user." #~ msgstr "对最近已知的用户位置的描述。" #~ msgid "Whether the last known location was set manually by the user." #~ msgstr "最近已知的位置 是否是用户手动设置的。" #~ msgid "I’m here!" #~ msgstr "我在这!" #~ msgid "%f km²" #~ msgstr "%f平方千米" #~ msgid " km2" #~ msgstr " km2" #~ msgid "To" #~ msgstr "到" #~ msgid "From" #~ msgstr "从" #~ msgid "Satellite" #~ msgstr "卫星" #~ msgid "Track user location." #~ msgstr "跟踪用户位置。" 070701000001EF000081A400000000000000000000000166413409000018EA000000000000000000000000000000000000001D00000000gnome-maps-46.11/po/zh_HK.po# Chinese (Hong Kong) translation for gnome-maps. # Copyright (C) 2013 gnome-maps's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-maps package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: gnome-maps master\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "maps&keywords=I18N+L10N&component=general\n" "POT-Creation-Date: 2014-08-30 18:59+0000\n" "PO-Revision-Date: 2014-08-31 15:54+0800\n" "Last-Translator: Chao-Hsiung Liao \n" "Language-Team: Chinese (Hong Kong) \n" "Language: zh_HK\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 1.6.3\n" #: ../data/org.gnome.Maps.appdata.xml.in.h:1 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "Maps 讓你可以快速存取世界上的地圖。它讓你快速的找到想找的位置,只要搜尋城市或街道,也可以定位要與朋友見面的場所。" #: ../data/org.gnome.Maps.appdata.xml.in.h:2 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "Maps 使用共同協作的 OpenStreetMap 資料庫,由全球各地難以計數的人們共同製作。" #. Translators: Search is carried out on OpenStreetMap data using Nominatim. #. Visit http://wiki.openstreetmap.org/wiki/Nominatim/Special_Phrases and click #. your language to see what words you can use for the translated search. #: ../data/org.gnome.Maps.appdata.xml.in.h:6 msgid "" "You can even search for specific types of locations, such as “Pubs near Main " "Street, Boston” or “Hotels near Alexanderplatz, Berlin”." msgstr "你甚至能搜尋指定的位置類型,像是“Pubs near Main Street, Boston“或是“Hotels near Alexanderplatz, Berlin“" #. Translators: This is the program name. */ #: ../data/org.gnome.Maps.desktop.in.in.h:1 ../src/application.js:66 #: ../src/mainWindow.js:303 ../src/main-window.ui.h:1 msgid "Maps" msgstr "地圖" #: ../data/org.gnome.Maps.desktop.in.in.h:2 msgid "A simple maps application" msgstr "簡單的地圖應用程式" #: ../data/org.gnome.Maps.desktop.in.in.h:3 msgid "Maps;" msgstr "Maps;地圖;" #: ../data/org.gnome.maps.gschema.xml.in.h:1 msgid "Window size" msgstr "視窗尺寸" #: ../data/org.gnome.maps.gschema.xml.in.h:2 msgid "Window size (width and height)." msgstr "視窗大小 (闊度與高度)。" #: ../data/org.gnome.maps.gschema.xml.in.h:3 msgid "Window position" msgstr "視窗位置" #: ../data/org.gnome.maps.gschema.xml.in.h:4 msgid "Window position (X and Y)." msgstr "視窗位置 (X 與 Y)。" #: ../data/org.gnome.maps.gschema.xml.in.h:5 msgid "Window maximized" msgstr "視窗已最大化" #: ../data/org.gnome.maps.gschema.xml.in.h:6 msgid "Window maximization state" msgstr "視窗最大化狀態" #: ../data/org.gnome.maps.gschema.xml.in.h:7 msgid "Last known location and accuracy" msgstr "上次知道的位置與準確度" #: ../data/org.gnome.maps.gschema.xml.in.h:8 msgid "" "Last known location (latitude and longitude in degrees) and accuracy (in " "meters)." msgstr "上次知道的位置 (緯度與經度) 與準確度 (以米計)" #: ../data/org.gnome.maps.gschema.xml.in.h:9 msgid "Description of last known location" msgstr "上次知道的位置描述" #: ../data/org.gnome.maps.gschema.xml.in.h:10 msgid "Description of last known location of user." msgstr "上次知道的使用者位置描述。" #: ../data/org.gnome.maps.gschema.xml.in.h:11 msgid "Maximum number of search results" msgstr "搜尋結果的最大數量" #: ../data/org.gnome.maps.gschema.xml.in.h:12 msgid "Maximum number of search results from geocode search." msgstr "從 geocode 搜尋取得的最大搜尋結果數。" #: ../data/org.gnome.maps.gschema.xml.in.h:13 msgid "User set last known location" msgstr "使用者設定上次知道的位置" #: ../data/org.gnome.maps.gschema.xml.in.h:14 msgid "Whether the last known location was set manually by the user." msgstr "上次知道的位置是否是由使用者手動設定。" #: ../data/org.gnome.maps.gschema.xml.in.h:15 msgid "Number of recent places to store" msgstr "要儲存的最近位置數" #: ../data/org.gnome.maps.gschema.xml.in.h:16 msgid "Number of recently visited places to store." msgstr "要儲存的最近到訪位置數。" #: ../src/app-menu.ui.h:1 msgid "About" msgstr "關於" #: ../src/app-menu.ui.h:2 msgid "Quit" msgstr "結束" #: ../src/context-menu.ui.h:1 msgid "What’s here?" msgstr "這裏有什麼?" #: ../src/context-menu.ui.h:2 msgid "I’m here!" msgstr "我在這裏!" #: ../src/mainWindow.js:301 msgid "translator-credits" msgstr "Chao-Hsiung Liao , 2013" #: ../src/mainWindow.js:304 msgid "A map application for GNOME" msgstr "GNOME 的地圖程式" #: ../src/routeService.js:76 msgid "No route found." msgstr "找不到路線。" #: ../src/routeService.js:82 msgid "Route request failed." msgstr "要求路線失敗。" #: ../src/routeService.js:153 msgid "Start!" msgstr "開始!" #: ../src/searchResultBubble.js:60 #, javascript-format msgid "Country code: %s" msgstr "國家代碼:%s" #: ../src/searchResultBubble.js:66 #, javascript-format msgid "Postal code: %s" msgstr "郵遞區號:%s" #: ../src/sidebar.ui.h:1 msgid "To" msgstr "終點" #: ../src/sidebar.ui.h:2 msgid "From" msgstr "起點" #: ../src/user-location-bubble.ui.h:1 msgid "Current location" msgstr "目前位置" #. To translators: %s can be "Unknown", "Exact" or "%f km²" #: ../src/user-location-bubble.ui.h:4 #, no-c-format #| msgid "" #| "%s\n" #| "Position Accuracy: %s" msgid "Accuracy: %s" msgstr "準確度:%s" #. Translators: Accuracy of user location information */ #: ../src/utils.js:166 msgid "Unknown" msgstr "不明" #. Translators: Accuracy of user location information */ #: ../src/utils.js:169 msgid "Exact" msgstr "準確" #: ../src/utils.js:179 #, javascript-format #| msgid " km²" msgid "%f km²" msgstr "%f km²" #~ msgid " km2" #~ msgstr " km2" #~ msgid "Street" #~ msgstr "街道" #~ msgid "Satellite" #~ msgstr "衛星" 070701000001F0000081A4000000000000000000000001664134090000CCB5000000000000000000000000000000000000001D00000000gnome-maps-46.11/po/zh_TW.po# Chinese (Taiwan) translation for gnome-maps. # Copyright (C) 2013 gnome-maps's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-maps package. # # pan93412 , 2019. msgid "" msgstr "" "Project-Id-Version: gnome-maps master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-maps/issues\n" "POT-Creation-Date: 2020-09-16 21:00+0000\n" "PO-Revision-Date: 2020-10-12 21:58+0800\n" "Last-Translator: Cheng-Chia Tseng \n" "Language-Team: Chinese \n" "Language: zh_TW\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.4.1\n" "Plural-Forms: nplurals=1; plural=0;\n" #: data/org.gnome.Maps.appdata.xml.in:6 msgid "GNOME Maps" msgstr "GNOME 地圖" #: data/org.gnome.Maps.appdata.xml.in:7 msgid "Find places around the world" msgstr "尋找世界上各個地方" #: data/org.gnome.Maps.appdata.xml.in:9 msgid "" "Maps gives you quick access to maps all across the world. It allows you to " "quickly find the place you’re looking for by searching for a city or street, " "or locate a place to meet a friend." msgstr "" "《地圖》讓您可以快速存取世界上的地圖。它讓您快速的找到想找的位置,只要搜尋城" "市或街道,也可以定位要與朋友見面的場所。" #: data/org.gnome.Maps.appdata.xml.in:14 msgid "" "Maps uses the collaborative OpenStreetMap database, made by hundreds of " "thousands of people across the globe." msgstr "" "《地圖》使用共同協作的 OpenStreetMap 資料庫,由全球各地難以計數的人們共同製" "作。" #. Translators: Search is carried out on OpenStreetMap data using Nominatim. #. Visit http://wiki.openstreetmap.org/wiki/Nominatim/Special_Phrases and click #. your language to see what words you can use for the translated search. #: data/org.gnome.Maps.appdata.xml.in:22 msgid "" "You can even search for specific types of locations, such as “Pubs near Main " "Street, Boston” or “Hotels near Alexanderplatz, Berlin”." msgstr "" "您甚至能搜尋指定的位置類型,像是「Pubs near Main Street, Boston」或是" "「Hotels near Alexanderplatz, Berlin」等。" #: data/org.gnome.Maps.appdata.xml.in:159 msgid "The GNOME Project" msgstr "GNOME 專案" #. Translators: This is the program name. #. for some reason, setting the title of the window through the .ui #. * template does not work anymore (maybe has something to do with #. * setting a custom title on the headerbar). Setting it programmatically #. * here works though. And yields a proper label in the gnome-shell #. * overview. #. #. Translators: This is the program name. #: data/org.gnome.Maps.desktop.in:4 data/ui/main-window.ui:34 #: src/application.js:81 src/mainWindow.js:129 src/mainWindow.js:567 msgid "Maps" msgstr "地圖" #: data/org.gnome.Maps.desktop.in:5 msgid "A simple maps application" msgstr "簡單的地圖應用程式" #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Maps.desktop.in:14 msgid "Maps;" msgstr "Maps;地圖;" #: data/org.gnome.Maps.desktop.in:17 msgid "Allows your location to be shown on the map." msgstr "允許您的位置顯示在地圖上。" #: data/org.gnome.Maps.gschema.xml:11 msgid "last viewed location" msgstr "最後檢視的位置" #: data/org.gnome.Maps.gschema.xml:12 msgid "Coordinates of last viewed location." msgstr "最後檢視位置的坐標。" #: data/org.gnome.Maps.gschema.xml:16 msgid "zoom" msgstr "縮放" #: data/org.gnome.Maps.gschema.xml:17 msgid "Zoom level" msgstr "縮放等級" #: data/org.gnome.Maps.gschema.xml:21 msgid "Map type" msgstr "地圖類型" #: data/org.gnome.Maps.gschema.xml:22 msgid "The type of map to display (street, aerial, etc.)" msgstr "要顯示的地圖類型(街道、航空圖等)" #: data/org.gnome.Maps.gschema.xml:26 msgid "Window size" msgstr "視窗尺寸" #: data/org.gnome.Maps.gschema.xml:27 msgid "Window size (width and height)." msgstr "視窗大小 (寬度與高度)。" #: data/org.gnome.Maps.gschema.xml:31 msgid "Window position" msgstr "視窗位置" #: data/org.gnome.Maps.gschema.xml:32 msgid "Window position (X and Y)." msgstr "視窗位置 (X 與 Y)。" #: data/org.gnome.Maps.gschema.xml:36 msgid "Window maximized" msgstr "視窗已最大化" #: data/org.gnome.Maps.gschema.xml:37 msgid "Window maximization state" msgstr "視窗最大化狀態" #: data/org.gnome.Maps.gschema.xml:41 msgid "Maximum number of search results" msgstr "搜尋結果的最大數量" #: data/org.gnome.Maps.gschema.xml:42 msgid "Maximum number of search results from geocode search." msgstr "從 geocode 搜尋取得的最大搜尋結果數。" #: data/org.gnome.Maps.gschema.xml:46 msgid "Number of recent places to store" msgstr "要儲存的最近位置數" #: data/org.gnome.Maps.gschema.xml:47 msgid "Number of recently visited places to store." msgstr "要儲存的最近到訪位置數。" #: data/org.gnome.Maps.gschema.xml:51 msgid "Number of recent routes to store" msgstr "要儲存的最近路線數" #: data/org.gnome.Maps.gschema.xml:52 msgid "Number of recently visited routes to store." msgstr "要儲存的最近到訪路線數。" #: data/org.gnome.Maps.gschema.xml:56 msgid "Facebook check-in privacy setting" msgstr "Facebook 打卡隱私權設定值" #. Translators: EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS, and SELF are constant names, and should not be translated #: data/org.gnome.Maps.gschema.xml:58 msgid "" "Latest used Facebook check-in privacy setting. Possible values are: " "EVERYONE, FRIENDS_OF_FRIENDS, ALL_FRIENDS or SELF." msgstr "" "最近使用的 Facebook 打卡隱私權設定值。可能的數值有:EVERYONE, " "FRIENDS_OF_FRIENDS, ALL_FRIENDS 或 SELF。" #: data/org.gnome.Maps.gschema.xml:62 msgid "Foursquare check-in privacy setting" msgstr "Foursquare 打卡隱私權設定值" #: data/org.gnome.Maps.gschema.xml:63 msgid "" "Latest used Foursquare check-in privacy setting. Possible values are: " "public, followers or private." msgstr "" "最近使用的 Foursquare 打卡隱私權設定值。可能的數值有:public, followers 或 " "private。" #: data/org.gnome.Maps.gschema.xml:67 msgid "Foursquare check-in Facebook broadcasting" msgstr "Foursquare 打卡 Facebook 廣播" #: data/org.gnome.Maps.gschema.xml:68 msgid "" "Indicates if Foursquare should broadcast the check-in as a post in the " "Facebook account associated with the Foursquare account." msgstr "" "表示 Foursquare 是否應比照與 Facebook 帳號連結的 Foursquare 帳號以貼文方式廣" "播此次打卡。" #: data/org.gnome.Maps.gschema.xml:72 msgid "Foursquare check-in Twitter broadcasting" msgstr "Foursquare 打卡 Twitter 廣播" #: data/org.gnome.Maps.gschema.xml:73 msgid "" "Indicates if Foursquare should broadcast the check-in as a tweet in the " "Twitter account associated with the Foursquare account." msgstr "" "表示 Foursquare 是否應比照與 Twitter 帳號連結的 Foursquare 帳號以推文方式廣播" "此次打卡。" #: data/org.gnome.Maps.gschema.xml:77 msgid "OpenStreetMap username or e-mail address" msgstr "OpenStreetMap 的使用者名稱或電子郵件位址" #: data/org.gnome.Maps.gschema.xml:78 msgid "Indicates if the user has signed in to edit OpenStreetMap data." msgstr "指示使用者是否已登入可編輯 OpenStreetMap 資料。" #: data/org.gnome.Maps.gschema.xml:82 msgid "Last used transportation type for routing" msgstr "上次路線規劃時使用的交通類型" #: data/org.gnome.Maps.gschema.xml:86 msgid "Night mode" msgstr "夜晚模式" #: data/org.gnome.Maps.gschema.xml:87 msgid "Whether the application is in night mode." msgstr "應用程式是否使用夜晚模式。" #: data/org.gnome.Maps.gschema.xml:91 msgid "Use hybrid aerial tiles" msgstr "使用混合式航照圖磚" #: data/org.gnome.Maps.gschema.xml:92 msgid "Whether aerial tiles should use hybrid style (with labels)." msgstr "是否應該使用混合風格(附帶文字標籤)的航照圖磚。" #: data/ui/check-in-dialog.ui:250 data/ui/check-in-dialog.ui:299 msgid "Visibility" msgstr "可見狀態" #: data/ui/check-in-dialog.ui:334 msgid "Post on Facebook" msgstr "張貼到 Facebook" #: data/ui/check-in-dialog.ui:348 msgid "Post on Twitter" msgstr "張貼到 Twitter" #: data/ui/check-in-dialog.ui:388 data/ui/export-view-dialog.ui:20 #: data/ui/send-to-dialog.ui:13 data/ui/shape-layer-file-chooser.ui:22 msgid "_Cancel" msgstr "取消(_C)" #. Translators: Check in is used as a verb #: data/ui/check-in-dialog.ui:399 data/ui/map-bubble.ui:93 msgid "C_heck in" msgstr "打卡(_H)" #: data/ui/check-in-dialog.ui:427 msgid "Everyone" msgstr "每個人" #: data/ui/check-in-dialog.ui:431 msgid "Friends of friends" msgstr "朋友的朋友" #: data/ui/check-in-dialog.ui:435 msgid "Just friends" msgstr "僅限朋友" #: data/ui/check-in-dialog.ui:439 msgid "Just me" msgstr "僅限本人" #: data/ui/check-in-dialog.ui:453 msgid "Public" msgstr "公開" #: data/ui/check-in-dialog.ui:457 msgid "Followers" msgstr "跟隨" #: data/ui/check-in-dialog.ui:461 msgid "Private" msgstr "私人" #: data/ui/context-menu.ui:9 msgid "Route from here" msgstr "從這裡開始的路線" #: data/ui/context-menu.ui:16 msgid "Add intermediate destination" msgstr "加入中間目的地" #: data/ui/context-menu.ui:24 msgid "Route to here" msgstr "到這裡的路線" #: data/ui/context-menu.ui:36 msgid "What’s here?" msgstr "這裡有什麼?" #: data/ui/context-menu.ui:43 msgid "Copy Location" msgstr "複製位置" #: data/ui/context-menu.ui:51 msgid "Add to OpenStreetMap" msgstr "加入 OpenStreetMap" #: data/ui/export-view-dialog.ui:14 msgid "Export view" msgstr "匯出檢視" #: data/ui/export-view-dialog.ui:34 msgid "_Export" msgstr "匯出(_E)" #: data/ui/export-view-dialog.ui:126 msgid "Include route and markers" msgstr "包含路線和標記" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:15 msgid "Go to current location" msgstr "前往目前位置" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:36 msgid "Choose map type" msgstr "選擇地圖類型" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:61 msgid "Zoom out" msgstr "拉遠" #. Translators: This is a tooltip #: data/ui/headerbar-left.ui:77 msgid "Zoom in" msgstr "拉近" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:16 msgid "Toggle route planner" msgstr "切換路徑規劃器" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:37 msgid "Toggle favorites" msgstr "切換喜好" #. Translators: This is a tooltip #: data/ui/headerbar-right.ui:57 msgid "Print Route" msgstr "列印路線" #: data/ui/help-overlay.ui:14 msgctxt "shortcut window" msgid "General" msgstr "一般" #: data/ui/help-overlay.ui:18 msgctxt "shortcut window" msgid "Show Shortcuts" msgstr "顯示快捷鍵" #: data/ui/help-overlay.ui:25 msgctxt "shortcut window" msgid "Search" msgstr "搜尋" #: data/ui/help-overlay.ui:32 msgctxt "shortcut window" msgid "Toggle route planner" msgstr "切換路徑規劃器" #: data/ui/help-overlay.ui:39 msgctxt "shortcut window" msgid "Print route" msgstr "列印路線" #: data/ui/help-overlay.ui:46 msgctxt "shortcut window" msgid "Quit" msgstr "結束" #: data/ui/help-overlay.ui:53 msgctxt "shortcut window" msgid "Open main menu" msgstr "開啟主選單" #: data/ui/help-overlay.ui:62 msgctxt "shortcut window" msgid "Map View" msgstr "地圖檢視" #: data/ui/help-overlay.ui:66 msgctxt "shortcut window" msgid "Zoom in" msgstr "拉近" #: data/ui/help-overlay.ui:73 msgctxt "shortcut window" msgid "Zoom out" msgstr "拉遠" #: data/ui/help-overlay.ui:80 msgctxt "shortcut window" msgid "Toggle scale" msgstr "切換縮放" #: data/ui/help-overlay.ui:87 msgctxt "shortcut window" msgid "Go to current location" msgstr "前往目前位置" #: data/ui/help-overlay.ui:94 msgctxt "shortcut window" msgid "Switch to street view" msgstr "切換為街道檢視" #: data/ui/help-overlay.ui:101 msgctxt "shortcut window" msgid "Switch to aerial view" msgstr "切換為鳥瞰圖" #: data/ui/help-overlay.ui:108 msgctxt "shortcut window" msgid "Open shape layer" msgstr "開啟形狀圖層" #: data/ui/layers-popover.ui:65 msgid "Show Labels" msgstr "顯示文字標籤" #. Translators: This string uses ellipsis character #: data/ui/layers-popover.ui:102 msgid "Open Shape Layer…" msgstr "開啟形狀圖層…" #: data/ui/location-service-dialog.ui:16 msgid "Turn on location services to find your location" msgstr "開啟位置服務以尋找您的位置" #: data/ui/location-service-dialog.ui:28 data/ui/osm-edit-dialog.ui:283 #: data/ui/zoom-in-dialog.ui:28 msgid "Cancel" msgstr "取消" #: data/ui/location-service-dialog.ui:38 msgid "Location Settings" msgstr "位置設定值" #: data/ui/main-window.ui:8 msgid "Night Mode" msgstr "夜晚模式" #: data/ui/main-window.ui:12 msgid "Set up OpenStreetMap Account" msgstr "設定 OpenStreetMap 帳號" #: data/ui/main-window.ui:16 msgid "Export as Image" msgstr "匯出為影像" #: data/ui/main-window.ui:21 msgid "_Keyboard Shortcuts" msgstr "鍵盤快捷鍵(_K)" #: data/ui/main-window.ui:26 msgid "About Maps" msgstr "關於《地圖》" #: data/ui/main-window.ui:52 msgid "Open main menu" msgstr "開啟主選單" #: data/ui/main-window.ui:114 msgid "Maps is offline!" msgstr "Maps 已離線!" #: data/ui/main-window.ui:122 msgid "" "Maps need an active internet connection to function properly, but one can’t " "be found." msgstr "Maps 需要使用網際網路連線才能正常運作,但找不到網際網路。" #: data/ui/main-window.ui:130 msgid "Check your connection and proxy settings." msgstr "請檢查您的連線與代理伺服器設定值。" #. Translators: This is a tooltip #: data/ui/map-bubble.ui:45 msgid "Add to new route" msgstr "加入新的路線" #. Translators: This is a tooltip #: data/ui/map-bubble.ui:62 msgid "Share location" msgstr "分享位置" #. Translators: This is a tooltip #: data/ui/map-bubble.ui:79 msgid "Mark as favorite" msgstr "標記為喜好" #. Translators: This is a tooltip #: data/ui/map-bubble.ui:98 msgid "Check in here" msgstr "在這裡檢查" #: data/ui/osm-account-dialog.ui:9 msgid "OpenStreetMap Account" msgstr "OpenStreetMap 帳號" #: data/ui/osm-account-dialog.ui:22 msgid "Sign in to edit maps" msgstr "登入以編輯地圖" #: data/ui/osm-account-dialog.ui:36 msgid "" "Help to improve the map, using an\n" "OpenStreetMap account." msgstr "" "協助改善地圖,使用\n" "OpenStreetMap 帳號。" #: data/ui/osm-account-dialog.ui:56 msgid "Email" msgstr "電子郵件" #: data/ui/osm-account-dialog.ui:81 msgid "Password" msgstr "密碼" #: data/ui/osm-account-dialog.ui:125 msgid "Sign up" msgstr "註冊" #: data/ui/osm-account-dialog.ui:139 msgid "Sign In" msgstr "登入" #. The label should contain the link to the OSM reset password page with a translated title #: data/ui/osm-account-dialog.ui:162 msgid "" "Sorry, that didn’t work. Please try again, or visit\n" "OpenStreetMap to reset your password." msgstr "" "抱歉,那沒有作用。請再試一次,或者參訪\n" "OpenStreetMap以重置您的密碼。" #: data/ui/osm-account-dialog.ui:175 msgid "The verification code didn’t match, please try again." msgstr "驗證碼不符合,請再試一次。" #: data/ui/osm-account-dialog.ui:201 msgid "Enter verification code shown above" msgstr "輸入上面顯示的驗證碼" #: data/ui/osm-account-dialog.ui:224 msgid "Verify" msgstr "驗證" #: data/ui/osm-account-dialog.ui:254 msgid "Signed In" msgstr "已登入" #: data/ui/osm-account-dialog.ui:267 msgid "Your OpenStreetMap account is active." msgstr "您的 OpenStreetMap 帳號已啟用。" #: data/ui/osm-account-dialog.ui:301 msgid "Sign Out" msgstr "登出" #: data/ui/osm-edit-address.ui:14 msgid "Street" msgstr "街道" #: data/ui/osm-edit-address.ui:26 msgid "House number" msgstr "門牌號碼" #: data/ui/osm-edit-address.ui:38 msgid "Postal code" msgstr "郵遞區號" #. This is the place name as it would be written in a postal address (typically coming after the postal code) #: data/ui/osm-edit-address.ui:50 msgid "City" msgstr "城市" #: data/ui/osm-edit-dialog.ui:58 msgid "Type" msgstr "類型" #: data/ui/osm-edit-dialog.ui:84 msgid "None" msgstr "沒有" #: data/ui/osm-edit-dialog.ui:129 msgid "Add Field" msgstr "加入欄位" #: data/ui/osm-edit-dialog.ui:163 msgid "Comment" msgstr "評註" #: data/ui/osm-edit-dialog.ui:195 msgid "" "Map changes will be visible on all maps that use\n" "OpenStreetMap data." msgstr "" "地圖更動資訊會在所有利用 OpenStreetMap\n" " 資料的地圖中出現。" #: data/ui/osm-edit-dialog.ui:241 msgid "Recently Used" msgstr "最近使用" #: data/ui/osm-edit-dialog.ui:280 msgctxt "dialog title" msgid "Edit on OpenStreetMap" msgstr "在 OpenStreetMap 編輯" #: data/ui/osm-edit-dialog.ui:310 src/osmEditDialog.js:513 msgid "Next" msgstr "下一個" #. Translators: This is a tooltip #: data/ui/place-bubble.ui:49 msgid "Edit on OpenStreetMap" msgstr "在 OpenStreetMap 編輯" #. Translators: This is a tooltip #: data/ui/place-bubble.ui:73 msgid "Show more information" msgstr "顯示更多資訊" #: data/ui/place-popover.ui:54 msgid "No results found" msgstr "找不到結果" #. Translators: This is a tooltip #: data/ui/route-entry.ui:20 msgid "Drag to change order of the route" msgstr "拖曳以修改路徑順序" #: data/ui/send-to-dialog.ui:10 msgid "Open Location" msgstr "開啟位置" #: data/ui/send-to-dialog.ui:70 msgid "Copy" msgstr "複製" #: data/ui/send-to-dialog.ui:76 msgid "Send To…" msgstr "傳送至…" #: data/ui/shape-layer-file-chooser.ui:4 src/mainWindow.js:64 msgid "Open Shape Layer" msgstr "開啟形狀圖層" #: data/ui/shape-layer-file-chooser.ui:12 msgid "_Open" msgstr "開啟(_O)" #. Translators: This is a tooltip #: data/ui/shape-layer-row.ui:19 msgid "Toggle visible" msgstr "切換可見性" #: data/ui/sidebar.ui:275 msgid "Route search by GraphHopper" msgstr "透過 GraphHopper 搜尋路線" #: data/ui/sidebar.ui:364 msgid "" "Routing itineraries for public transit is provided by third-party\n" "services.\n" "GNOME can not guarantee correctness of the itineraries and schedules shown.\n" "Note that some providers might not include all available modes of " "transportation,\n" "e.g. a national provider might not include airlines, and a local provider " "could\n" "miss regional trains.\n" "Names and brands shown are to be considered as registered trademarks when " "applicable." msgstr "" "大眾運輸的路線規劃是由第三方服務提供。\n" "GNOME 無法保證所顯示的規劃與行程的正確性。\n" "注意,有些服務供應商也許無法囊括所有可能的轉運方式,\n" "例:國營供應商或許沒列入航班,而地方供應商可能缺少\n" "區域性的車班資訊。\n" "此處所顯示的名稱或商標為其註冊商標所有人所有。" #: data/ui/social-place-more-results-row.ui:8 msgid "Show more results" msgstr "顯示更多結果" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:126 msgid "Hide intermediate stops and information" msgstr "隱藏中間站與資訊" #. Translators: This is a tooltip #: data/ui/transit-leg-row.ui:200 msgid "Show intermediate stops and information" msgstr "顯示中間站與資訊" #. Indicates searching for the next available itineraries #: data/ui/transit-options-panel.ui:18 msgid "Leave Now" msgstr "正在離開" #. Indicates searching for itineraries leaving at the specified time at the earliest #: data/ui/transit-options-panel.ui:19 msgid "Leave By" msgstr "離開於" #. Indicates searching for itineraries arriving no later than the specified time #: data/ui/transit-options-panel.ui:20 msgid "Arrive By" msgstr "抵達於" #. Header indicating selected modes of transit #: data/ui/transit-options-panel.ui:106 msgid "Show" msgstr "顯示" #: data/ui/transit-options-panel.ui:117 msgid "Buses" msgstr "公車" #: data/ui/transit-options-panel.ui:124 msgid "Trams" msgstr "輕軌" #: data/ui/transit-options-panel.ui:131 msgid "Trains" msgstr "火車" #: data/ui/transit-options-panel.ui:138 msgid "Subway" msgstr "捷運" #: data/ui/transit-options-panel.ui:145 msgid "Ferries" msgstr "渡輪" #: data/ui/transit-options-panel.ui:152 msgid "Airplanes" msgstr "飛機" #: data/ui/user-location-bubble.ui:13 src/geoclue.js:118 msgid "Current location" msgstr "目前位置" #: data/ui/zoom-in-dialog.ui:16 msgid "Zoom in to add location!" msgstr "拉近以加入位置!" #: data/ui/zoom-in-dialog.ui:38 msgid "Zoom In" msgstr "拉近" #: lib/maps-file-tile-source.c:303 lib/maps-file-tile-source.c:379 #: lib/maps-file-tile-source.c:459 msgid "Failed to find tile structure in directory" msgstr "無法在目錄中找到圖磚結構" #: lib/maps-osm.c:56 msgid "Failed to parse XML document" msgstr "無法解析 XML 文件" #: lib/maps-osm.c:249 lib/maps-osm.c:402 msgid "Missing required attributes" msgstr "缺少了必要的屬性" #: lib/maps-osm.c:450 msgid "Could not find OSM element" msgstr "找不到 OSM 元素" #: src/application.js:95 msgid "A path to a local tiles directory structure" msgstr "本地端圖磚目錄結構的路徑" #: src/application.js:101 msgid "Tile size for local tiles directory" msgstr "本地端圖磚目錄的圖磚大小" #: src/application.js:105 msgid "Show the version of the program" msgstr "顯示程式版本" #: src/application.js:111 msgid "Ignore network availability" msgstr "忽略網路可用性" #: src/application.js:121 src/application.js:122 msgid "[FILE…|URI]" msgstr "[FILE…|URI]" #: src/checkInDialog.js:167 msgid "Select an account" msgstr "選擇一個帳號" #: src/checkInDialog.js:172 src/checkInDialog.js:244 msgid "Loading" msgstr "載入中" #: src/checkInDialog.js:196 msgid "Select a place" msgstr "選擇一個地點" #: src/checkInDialog.js:201 msgid "" "Maps cannot find the place to check in to with Facebook. Please select one " "from this list." msgstr "Maps 找不到可以在 Facebook 中打卡的地點。請從清單中選擇一個。" #: src/checkInDialog.js:203 msgid "" "Maps cannot find the place to check in to with Foursquare. Please select one " "from this list." msgstr "Maps 找不到可以在 Foursquare 中打卡的地點。請從清單中選擇一個。" #. Translators: %s is the name of the place to check in. #. #: src/checkInDialog.js:218 #, javascript-format msgid "Check in to %s" msgstr "打卡於:%s" #. Translators: %s is the name of the place to check in. #. #: src/checkInDialog.js:228 #, javascript-format msgid "Write an optional message to check in to %s." msgstr "寫些關於在 %s 打卡的訊息。" #: src/checkInDialog.js:280 src/checkIn.js:162 src/osmEditDialog.js:550 msgid "An error has occurred" msgstr "發生錯誤" #. Translators: %s is the place name that user wanted to check-in #: src/checkIn.js:144 #, javascript-format msgid "Cannot find “%s” in the social service" msgstr "在社群服務中找不到「%s」" #: src/checkIn.js:146 msgid "Cannot find a suitable place to check-in in this location" msgstr "找不到適合的地點來打卡" #: src/checkIn.js:150 msgid "" "Credentials have expired, please open Online Accounts to sign in and enable " "this account" msgstr "憑證已過期,請開啟線上帳號再次登入並啟用這個帳號" #: src/contextMenu.js:135 msgid "Nothing found here!" msgstr "這裡找不到東西!" #: src/contextMenu.js:196 msgid "" "Location was added to the map, note that it may take a while before it shows " "on the map and in search results." msgstr "" "位置已加到地圖上,請注意在顯示在地圖上與搜尋結果中之前可能需要一段時間。" #. Translators: This is a format string for a PNG filename for an #. * exported image with coordinates. The .png extension should be kept #. * intact in the translated string. #. #: src/exportViewDialog.js:82 #, javascript-format msgid "Maps at %f, %f.png" msgstr "於 %f 的地圖, %f.png" #: src/exportViewDialog.js:154 msgid "Filesystem is read only" msgstr "檔案系統是唯讀的" #: src/exportViewDialog.js:156 msgid "You do not have permission to save there" msgstr "您沒有在該處儲存檔案的權限" #: src/exportViewDialog.js:158 msgid "The directory does not exist" msgstr "目錄不存在" #: src/exportViewDialog.js:160 msgid "No filename specified" msgstr "沒有指定檔案名稱" #: src/exportViewDialog.js:168 msgid "Unable to export view" msgstr "無法匯出檢視" #: src/geoJSONSource.js:97 msgid "invalid coordinate" msgstr "無效的坐標" #: src/geoJSONSource.js:146 src/geoJSONSource.js:186 src/geoJSONSource.js:201 msgid "parse error" msgstr "解析錯誤" #: src/geoJSONSource.js:180 msgid "unknown geometry" msgstr "不明的位置大小" #: src/graphHopper.js:112 src/transitPlan.js:201 msgid "Route request failed." msgstr "要求路線失敗。" #: src/graphHopper.js:119 src/transitPlan.js:193 msgid "No route found." msgstr "找不到路線。" #: src/graphHopper.js:207 src/transitplugins/openTripPlanner.js:1111 msgid "Start!" msgstr "開始!" #: src/mainWindow.js:61 msgid "All Layer Files" msgstr "所有圖層檔案" #: src/mainWindow.js:470 msgid "Failed to connect to location service" msgstr "無法連接位置服務" #: src/mainWindow.js:565 msgid "translator-credits" msgstr "" "Chao-Hsiung Liao , 2013\n" "Yi-Jyun Pan , 2020\n" "Cheng-Chia Tseng , 2020" #: src/mainWindow.js:568 msgid "A map application for GNOME" msgstr "GNOME 的地圖程式" #: src/mainWindow.js:579 msgid "Copyright © 2011 – 2019 Red Hat, Inc. and The GNOME Maps authors" msgstr "著作權所有 © 2011 – 2019 Red Hat, Inc. 和 GNOME 地圖作者群" #: src/mainWindow.js:599 #, javascript-format msgid "Map data by %s and contributors" msgstr "來自 %s 與貢獻者的地圖資料" #. Translators: this is an attribution string giving credit to the #. * tile provider where the %s placeholder is replaced by either #. * the bare name of the tile provider, or a linkified URL if one #. * is available #. #: src/mainWindow.js:615 #, javascript-format msgid "Map tiles provided by %s" msgstr "由 %s 提供的圖磚" #. Translators: this is an attribution string giving credit to the #. * search provider where the first %s placeholder is replaced by either #. * the bare name of the geocoder provider, or a linkified URL if one #. * is available, and the second %s placeholder is replaced by the #. * URL to the geocoder project page. These placeholders #. * can be swapped, if needed using the %n$s positional syntax #. * (i.e. "%2$s ... %1$s ..." for positioning the project URL #. * before the provider). #. #: src/mainWindow.js:644 #, javascript-format msgid "Search provided by %s using %s" msgstr "搜尋使用 %2$s 並由 %1$s 提供" #: src/mapView.js:466 msgid "File type is not supported" msgstr "檔案類型不支援" #: src/mapView.js:473 msgid "Failed to open layer" msgstr "無法開啟圖層" #: src/mapView.js:509 msgid "Failed to open GeoURI" msgstr "無法開啟 GeoURI" #. setting the status in session.cancel_message still seems #. to always give status IO_ERROR #: src/osmConnection.js:436 msgid "Incorrect user name or password" msgstr "不正確的使用者名稱或密碼" #: src/osmConnection.js:438 msgid "Success" msgstr "成功" #: src/osmConnection.js:440 msgid "Bad request" msgstr "錯誤的要求" #: src/osmConnection.js:442 msgid "Object not found" msgstr "找不到物件" #: src/osmConnection.js:444 msgid "Conflict, someone else has just modified the object" msgstr "衝突,有其他人剛剛修改了這個物件" #: src/osmConnection.js:446 msgid "Object has been deleted" msgstr "物件已刪除" #: src/osmConnection.js:448 msgid "Way or relation refers to non-existing children" msgstr "路徑或關係參照到不存在的子項" #: src/osmEditDialog.js:106 msgid "Name" msgstr "名稱" #: src/osmEditDialog.js:109 msgid "The official name. This is typically what appears on signs." msgstr "正式的名稱。這通常會出現在招牌上。" #: src/osmEditDialog.js:112 msgid "Address" msgstr "地址" #: src/osmEditDialog.js:120 msgid "Website" msgstr "網站" #: src/osmEditDialog.js:123 msgid "" "The official website. Try to use the most basic form of a URL i.e. http://" "example.com instead of http://example.com/index.html." msgstr "" "官方網站。嘗試使用最基本形式的 URL ,例如 HTTP://example.com ,而不是 HTTP://" "example.com/index.html。" #: src/osmEditDialog.js:128 msgid "Phone" msgstr "電話" #: src/osmEditDialog.js:132 msgid "" "Phone number. Use the international format, starting with a + sign. Beware " "of local privacy laws, especially for private phone numbers." msgstr "" "電話號碼。使用國際格式,以 + 號開頭。提防當地的隱私權法律,特別是私人電話號" "碼。" #: src/osmEditDialog.js:137 src/placeBubble.js:197 msgid "Wikipedia" msgstr "維基百科" #: src/osmEditDialog.js:141 msgid "" "The format used should include the language code and the article title like " "“en:Article title”." msgstr "使用的格式應該包括語言代碼和文章標題,例如「en:Article title」。" #: src/osmEditDialog.js:145 msgid "Opening hours" msgstr "開放時間" #: src/osmEditDialog.js:150 msgid "See the link in the label for help on format." msgstr "請參閱標籤的連結以取得格式的求助訊息。" #: src/osmEditDialog.js:153 msgid "Population" msgstr "資料母體" #: src/osmEditDialog.js:158 msgid "Altitude" msgstr "海拔高度" #: src/osmEditDialog.js:161 msgid "Elevation (height above sea level) of a point in metres." msgstr "某一點的高度,以公尺計 (自海平面以上的高度)。" #: src/osmEditDialog.js:164 msgid "Wheelchair access" msgstr "使用輪椅" #: src/osmEditDialog.js:167 src/osmEditDialog.js:176 src/osmEditDialog.js:214 msgid "Yes" msgstr "是" #: src/osmEditDialog.js:168 src/osmEditDialog.js:177 src/osmEditDialog.js:215 msgid "No" msgstr "否" #: src/osmEditDialog.js:169 msgid "Limited" msgstr "有限制" #: src/osmEditDialog.js:170 msgid "Designated" msgstr "特定" #: src/osmEditDialog.js:173 msgid "Internet access" msgstr "網際網路存取" #. Translators: #. * This means a WLAN Hotspot, also know as wireless, wifi or Wi-Fi. #. #: src/osmEditDialog.js:178 src/translations.js:340 msgid "Wi-Fi" msgstr "Wi-Fi" #: src/osmEditDialog.js:179 msgid "Wired" msgstr "有線網路" #: src/osmEditDialog.js:180 msgid "Terminal" msgstr "網路終端" #: src/osmEditDialog.js:181 msgid "Service" msgstr "服務" #: src/osmEditDialog.js:184 msgid "Religion" msgstr "宗教" #: src/osmEditDialog.js:187 src/translations.js:363 msgid "Animism" msgstr "萬物有靈論" #: src/osmEditDialog.js:188 msgid "Bahá’í" msgstr "巴哈伊教" #: src/osmEditDialog.js:189 src/translations.js:365 msgid "Buddhism" msgstr "佛教" #: src/osmEditDialog.js:190 src/translations.js:366 msgid "Caodaism" msgstr "高台教" #: src/osmEditDialog.js:191 src/translations.js:367 msgid "Christianity" msgstr "基督教" #: src/osmEditDialog.js:192 src/translations.js:368 msgid "Confucianism" msgstr "儒教" #: src/osmEditDialog.js:193 src/translations.js:369 msgid "Hinduism" msgstr "印度教" #: src/osmEditDialog.js:194 src/translations.js:370 msgid "Jainism" msgstr "耆那教" #: src/osmEditDialog.js:195 src/translations.js:371 msgid "Judaism" msgstr "猶太教" #: src/osmEditDialog.js:196 src/translations.js:372 msgid "Islam" msgstr "伊斯蘭教" #: src/osmEditDialog.js:197 src/translations.js:373 msgid "Multiple Religions" msgstr "多種宗教" #: src/osmEditDialog.js:198 src/translations.js:374 msgid "Paganism" msgstr "異教" #: src/osmEditDialog.js:199 src/translations.js:375 msgid "Pastafarianism" msgstr "飛天義大利麵神教" #: src/osmEditDialog.js:200 src/translations.js:376 msgid "Scientology" msgstr "科學神教" #: src/osmEditDialog.js:201 src/translations.js:377 msgid "Shinto" msgstr "神道教" #: src/osmEditDialog.js:202 src/translations.js:378 msgid "Sikhism" msgstr "錫克教" #: src/osmEditDialog.js:203 src/translations.js:379 msgid "Spiritualism" msgstr "精神主義" #: src/osmEditDialog.js:204 src/translations.js:380 msgid "Taoism" msgstr "道教" #: src/osmEditDialog.js:205 src/translations.js:381 msgid "Unitarian Universalism" msgstr "一神論的普遍主義" #: src/osmEditDialog.js:206 src/translations.js:382 msgid "Voodoo" msgstr "巫毒教" #: src/osmEditDialog.js:207 src/translations.js:383 msgid "Yazidism" msgstr "雅兹迪教" #: src/osmEditDialog.js:208 src/translations.js:384 msgid "Zoroastrianism" msgstr "拜火教" #: src/osmEditDialog.js:211 msgid "Toilets" msgstr "廁所" #: src/osmEditDialog.js:218 msgid "Note" msgstr "備註" #: src/osmEditDialog.js:221 msgid "" "Information used to inform other mappers about non-obvious information about " "an element, the author’s intent when creating it, or hints for further " "improvement." msgstr "" "用來通知其他製圖者關於元件、建立時作者的目的、與更多資訊提示的不明顯資訊。" #: src/osmEditDialog.js:326 msgctxt "dialog title" msgid "Add to OpenStreetMap" msgstr "加入 OpenStreetMap" #: src/osmEditDialog.js:380 msgid "Select Type" msgstr "選擇類型" #: src/osmEditDialog.js:497 msgid "Done" msgstr "完成" #: src/photonParser.js:103 msgid "Unnamed place" msgstr "未命名位置" #. TODO: this is a bit of a work-around to re-interpret the population, #. * stored as a string into an integer to convert back to a locale- #. * formatted string. Ideally it should be kept as an integer value #. * in the Place class. But this will also need to be handled by the #. * PlaceStore, possible in a backwards-compatible way #. #: src/placeBubble.js:149 msgid "Population:" msgstr "人口:" #: src/placeBubble.js:155 msgid "Altitude:" msgstr "海拔高度:" #: src/placeBubble.js:160 msgid "Opening hours:" msgstr "開放時間:" #: src/placeBubble.js:165 msgid "Internet access:" msgstr "網際網路存取:" #: src/placeBubble.js:170 msgid "Religion:" msgstr "宗教:" #: src/placeBubble.js:175 msgid "Toilets:" msgstr "廁所:" #: src/placeBubble.js:180 msgid "Wheelchair access:" msgstr "使用輪椅:" #: src/placeBubble.js:186 src/placeBubble.js:190 msgid "Phone:" msgstr "電話:" #: src/placeEntry.js:212 msgid "Failed to parse Geo URI" msgstr "無法分析 Geo URI" #. Translators: #. * This means wheelchairs have full unrestricted access. #. #. Translators: #. * There is public internet access but the particular kind is unknown. #. #: src/place.js:268 src/translations.js:329 src/translations.js:391 msgid "yes" msgstr "是" #. Translators: #. * This means wheelchairs have partial access (e.g some areas #. * can be accessed and others not, areas requiring assistance #. * by someone pushing up a steep gradient). #. #: src/place.js:275 msgid "limited" msgstr "有限制" #. Translators: #. * This means wheelchairs have no unrestricted access #. * (e.g. stair only access). #. #. Translators: #. * no internet access is offered in a place where #. * someone might expect it. #. #: src/place.js:281 src/translations.js:335 src/translations.js:392 msgid "no" msgstr "否" #. Translators: #. * This means that the way or area is designated or purpose built #. * for wheelchairs (e.g. elevators designed for wheelchair access #. * only). This is rarely used. #. #: src/place.js:288 msgid "designated" msgstr "特定" #: src/place.js:475 msgid "Place not found in OpenStreetMap" msgstr "在 OpenStreetMap 找不到位置" #: src/place.js:495 msgid "OpenStreetMap URL is not valid" msgstr "OpenStreetMap 網址無效" #: src/place.js:500 msgid "Coordinates in URL are not valid" msgstr "網址中的座標無效" #: src/place.js:521 msgid "URL is not supported" msgstr "網址不支援" #: src/printLayout.js:312 #, javascript-format msgid "From %s to %s" msgstr "從 %s 到 %s" #: src/printOperation.js:46 msgid "Loading map tiles for printing" msgstr "載入列印用的圖磚" #: src/printOperation.js:47 msgid "You can abort printing if this takes too long" msgstr "如果這花費時間太長,您可以放棄列印" #: src/printOperation.js:49 msgid "Abort printing" msgstr "中止列印" #. Translators: this is add via location tooltip #: src/routeEntry.js:74 msgid "Add via location" msgstr "透過位置增加" #. Translators: this is remove via location tooltip #: src/routeEntry.js:84 msgid "Remove via location" msgstr "透過位置移除" #. Translators: this is reverse route tooltip #: src/routeEntry.js:90 msgid "Reverse route" msgstr "反向路線" #. Translators: The first string is the name of the city, the #. second string is the name of the app to add it to #: src/sendToDialog.js:104 #, javascript-format msgid "Add %s to %s" msgstr "加入 %s 至 %s" #: src/sendToDialog.js:202 msgid "Failed to open URI" msgstr "無法開啟 URI" #: src/sendToDialog.js:259 #, javascript-format msgid "Open with %s" msgstr "使用 %s 開啟" #: src/shapeLayer.js:91 msgid "failed to load file" msgstr "無法載入檔案" #. Translators: %s is a time expression with the format "%f h" or "%f min" #: src/sidebar.js:358 #, javascript-format msgid "Estimated time: %s" msgstr "預估時間:%s" #: src/sidebar.js:414 #, javascript-format msgid "Itineraries provided by %s" msgstr "行程表由 %s 提供" #. Translators: this is a format string indicating instructions #. * starting a journey at the address given as the parameter #. #: src/transit.js:37 #, javascript-format msgid "Start at %s" msgstr "開始於 %s" #. Translators: this indicates starting a journey at a location #. * with no set name (such as when the user started routing from #. * an arbitrary point on the map) #. #: src/transit.js:43 msgid "Start" msgstr "開始" #. Translators: this is a format string indicating walking a certain #. * distance, with the distance expression being the %s placeholder #. #: src/transit.js:61 #, javascript-format msgid "Walk %s" msgstr "步行 %s" #. Translators: this a format string indicating arriving at the #. * destination of journey with the arrival address and transit #. * stop as the format parameter #: src/transit.js:75 #, javascript-format msgid "Arrive at %s" msgstr "抵達於 %s" #: src/transit.js:77 src/transitplugins/openTripPlanner.js:1124 msgid "Arrive" msgstr "抵達" #: src/transitLegRow.js:88 msgid "Show walking instructions" msgstr "顯示步行指引" #: src/transitLegRow.js:89 msgid "Hide walking instructions" msgstr "隱藏步行指引" #: src/transitMoreRow.js:39 msgid "Load earlier alternatives" msgstr "載入較早的替代路線" #: src/transitMoreRow.js:41 msgid "Load later alternatives" msgstr "載入較晚的替代路線" #: src/transitMoreRow.js:54 msgid "No earlier alternatives found." msgstr "找不到較早的替代路線。" #: src/transitMoreRow.js:56 msgid "No later alternatives found." msgstr "找不到較晚的替代路線。" #. #. * Translators: this is a format string giving the equivalent to #. * "may 29" according to the current locale's convensions. #. #: src/transitOptionsPanel.js:140 msgctxt "month-day-date" msgid "%b %e" msgstr "%b%e日" #: src/transitPlan.js:197 msgid "No timetable data found for this route." msgstr "找不到這條路線的時刻表資料。" #: src/transitPlan.js:205 msgid "No provider found for this route." msgstr "找不到這個路線的提供者。" #. Translators: this is a format string for showing a departure and #. * arrival time, like: #. * "12:00 – 13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:322 #, javascript-format msgid "%s – %s" msgstr "%s – %s" #. translators: this is an indication for a trip duration of #. * less than an hour, with only the minutes part, using plural forms #. * as appropriate #. #: src/transitPlan.js:351 #, javascript-format msgid "%s minute" msgid_plural "%s minutes" msgstr[0] "%s 分鐘" #. translators: this is an indication for a trip duration, #. * where the duration is an exact number of hours (i.e. no #. * minutes part), using plural forms as appropriate #. #: src/transitPlan.js:363 #, javascript-format msgid "%s hour" msgid_plural "%s hours" msgstr[0] "%s 小時" #. translators: this is an indication for a trip duration #. * where the duration contains an hour and minute part, it's #. * pluralized on the hours part #. #: src/transitPlan.js:371 #, javascript-format msgid "%s:%s hour" msgid_plural "%s:%s hours" msgstr[0] "%s:%s 小時" #. Translators: this is a format string for showing a departure and #. * arrival time in a more compact manner to show in the instruction #. * list for an itinerary, like: #. * "12:00–13:03" where the placeholder %s are the actual times, #. * these could be rearranged if needed. #. #: src/transitPlan.js:764 #, javascript-format msgid "%s–%s" msgstr "%s–%s" #: src/translations.js:56 msgid "around the clock" msgstr "在時鐘周圍" #: src/translations.js:58 msgid "from sunrise to sunset" msgstr "從日出到日落" #. Translators: #. * This is a format string with two separate time ranges #. * such as "Mo-Fr 10:00-19:00 Sa 12:00-16:00" #. * The space between the format place holders could be #. * substituted with the appropriate separator. #. #: src/translations.js:77 #, javascript-format msgctxt "time range list" msgid "%s %s" msgstr "%s %s" #. Translators: #. * This is a format string with three separate time ranges #. * such as "Mo-Fr 10:00-19:00 Sa 10:00-17:00 Su 12:00-16:00" #. * The space between the format place holders could be #. * substituted with the appropriate separator. #. #: src/translations.js:89 #, javascript-format msgctxt "time range list" msgid "%s %s %s" msgstr "%s %s %s" #. Translators: #. * This is a format string consisting of a part specifying the days for #. * which the specified time is applied and the time interval #. * specification as the second argument. #. * The space between the format place holders could be substituted with #. * the appropriate separator or phrase and the ordering of the arguments #. * can be rearranged with the %n#s syntax. #: src/translations.js:120 #, javascript-format msgctxt "time range component" msgid "%s %s" msgstr "%s %s" #. Translators: #. * This represents a format string consisting of two day interval #. * specifications. #. * For example: #. * Mo-Fr,Sa #. * where the "Mo-Fr" and "Sa" parts are replaced by the %s #. * place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:152 #, javascript-format msgctxt "day interval list" msgid "%s,%s" msgstr "%s,%s" #. Translators: #. * This represents a format string consisting of three day interval #. * specifications. #. * For example: #. * Mo-We,Fr,Su #. * where the "Mo-We", "Fr", and "Su" parts are replaced by the #. * %s place holder. #. * The separator (,) could be replaced with a translated variant or #. * a phrase if appropriate. #: src/translations.js:166 #, javascript-format msgctxt "day interval list" msgid "%s,%s,%s" msgstr "%s,%s,%s" #: src/translations.js:185 msgid "every day" msgstr "每天" #. Translators: #. * This represents a range of days with a starting and ending day. #. #: src/translations.js:197 #, javascript-format msgctxt "day range" msgid "%s-%s" msgstr "%s-%s" #: src/translations.js:208 msgid "public holidays" msgstr "共通假日" #: src/translations.js:210 msgid "school holidays" msgstr "學校假日" #. Translators: #. * This is a list with two time intervals, such as: #. * 09:00-12:00, 13:00-14:00 #. * The intervals are represented by the %s place holders and #. * appropriate white space or connected phrase could be modified by #. * the translation. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:250 #, javascript-format msgctxt "time interval list" msgid "%s, %s" msgstr "%s, %s" #: src/translations.js:264 msgid "not open" msgstr "不開放" #. Translators: #. * This is a time interval with a starting and an ending time. #. * The time values are represented by the %s place holders and #. * appropriate white spacing or connecting phrases can be set by the #. * translation as needed. The order of the arguments can be rearranged #. * using the %n$s syntax. #. #: src/translations.js:279 #, javascript-format msgctxt "time interval" msgid "%s-%s" msgstr "%s-%s" #. Translators: #. * This means a a place where you can plug in your laptop with ethernet. #. #: src/translations.js:345 msgid "wired" msgstr "有線網路" #. Translators: #. * Like internet cafe or library where the computer is given. #. #: src/translations.js:350 msgid "terminal" msgstr "網路終端" #. Translators: #. * This means there is personnel which helps you in case of problems. #. #: src/translations.js:355 msgid "service" msgstr "服務" #. Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) #: src/userLocationBubble.js:56 #, javascript-format msgid "Accuracy: %s" msgstr "準確度:%s" #. Translators: Accuracy of user location information #: src/utils.js:248 msgid "Unknown" msgstr "不明" #. Translators: Accuracy of user location information #: src/utils.js:251 msgid "Exact" msgstr "準確" #. Translators: this is a duration with only hours, using #. * an abbreviation for hours, corresponding to 'h' in English #. #: src/utils.js:332 #, javascript-format msgid "%s h" msgstr "%s 時" #. Translators: this is a duration with hours and minutes parts #. * using abbreviations for hours and minutes, correspoding to 'h' #. * and 'min' in English. The minutes has appropriate plural variations #. #: src/utils.js:338 #, javascript-format msgid "%s h %s min" msgid_plural "%s h %s min" msgstr[0] "%s 時 %s 分" #. Translators: this is a duration with minutes part #. * using abbreviation for minutes, corresponding to 'min' in English #. * with appropriate plural variations #. #: src/utils.js:345 #, javascript-format msgid "%s min" msgid_plural "%s min" msgstr[0] "%s 分" #. Translators: this is a duration of less than one minute #. * with seconds using an abbreviation for seconds, corresponding to #. * 's' in English with appropriate plural forms #. #: src/utils.js:351 #, javascript-format msgid "%s s" msgid_plural "%s s" msgstr[0] "%s 秒" #. Translators: This is a distance measured in kilometers #: src/utils.js:362 #, javascript-format msgid "%s km" msgstr "%s 公里" #. Translators: This is a distance measured in meters #: src/utils.js:365 #, javascript-format msgid "%s m" msgstr "%s 公尺" #. Translators: This is a distance measured in miles #: src/utils.js:373 #, javascript-format msgid "%s mi" msgstr "%s 英哩" #. Translators: This is a distance measured in feet #: src/utils.js:376 #, javascript-format msgid "%s ft" msgstr "%s 英呎" #: src/transitplugins/goMetro.js:60 msgid "This plugin doesn't support latest arrival" msgstr "這個外掛插件不支援最近到站的功能" #: src/transitplugins/openTripPlanner.js:1185 #, javascript-format msgid "Continue on %s" msgstr "在 %s 繼續走" #: src/transitplugins/openTripPlanner.js:1187 msgid "Continue" msgstr "繼續走" #: src/transitplugins/openTripPlanner.js:1190 #, javascript-format msgid "Turn left on %s" msgstr "在 %s 左轉" #: src/transitplugins/openTripPlanner.js:1192 msgid "Turn left" msgstr "左轉" #: src/transitplugins/openTripPlanner.js:1195 #, javascript-format msgid "Turn slightly left on %s" msgstr "在 %s 稍微左轉" #: src/transitplugins/openTripPlanner.js:1197 msgid "Turn slightly left" msgstr "稍微左轉" #: src/transitplugins/openTripPlanner.js:1200 #, javascript-format msgid "Turn sharp left on %s" msgstr "在 %s 急左轉" #: src/transitplugins/openTripPlanner.js:1202 msgid "Turn sharp left" msgstr "急左轉" #: src/transitplugins/openTripPlanner.js:1205 #, javascript-format msgid "Turn right on %s" msgstr "在 %s 右轉" #: src/transitplugins/openTripPlanner.js:1207 msgid "Turn right" msgstr "右轉" #: src/transitplugins/openTripPlanner.js:1210 #, javascript-format msgid "Turn slightly right on %s" msgstr "在 %s 稍微右轉" #: src/transitplugins/openTripPlanner.js:1212 msgid "Turn slightly right" msgstr "稍微右轉" #: src/transitplugins/openTripPlanner.js:1215 #, javascript-format msgid "Turn sharp right on %s" msgstr "在 %s 急右轉" #: src/transitplugins/openTripPlanner.js:1217 msgid "Turn sharp right" msgstr "急右轉" #: src/transitplugins/openTripPlanner.js:1223 #, javascript-format msgid "In the roundabout, take exit %s" msgstr "在圓環中,從 %s 離開" #: src/transitplugins/openTripPlanner.js:1225 #, javascript-format msgid "In the roundabout, take exit to %s" msgstr "在圓環中,離開往 %s" #: src/transitplugins/openTripPlanner.js:1227 msgid "Take the roundabout" msgstr "走圓環" #: src/transitplugins/openTripPlanner.js:1231 #, javascript-format msgid "Take the elevator and get off at %s" msgstr "搭乘電梯到 %s" #: src/transitplugins/openTripPlanner.js:1233 msgid "Take the elevator" msgstr "搭乘電梯" #: src/transitplugins/openTripPlanner.js:1237 #, javascript-format msgid "Make a left u-turn onto %s" msgstr "%s 進行左迴轉" #: src/transitplugins/openTripPlanner.js:1239 msgid "Make a left u-turn" msgstr "進行左迴轉" #: src/transitplugins/openTripPlanner.js:1242 #, javascript-format msgid "Make a right u-turn onto %s" msgstr "%s 進行右迴轉" #: src/transitplugins/openTripPlanner.js:1244 msgid "Make a right u-turn" msgstr "進行右迴轉" #~ msgid "Don’t have an account?" #~ msgstr "還沒有會員帳號嗎?" #~ msgid "%f h" #~ msgstr "%f 小時" #~ msgid "%f min" #~ msgstr "%f 分鐘" #~ msgid "%f s" #~ msgstr "%f 秒" #~ msgid "Add destination" #~ msgstr "加入目的地" #~ msgid "org.gnome.Maps" #~ msgstr "org.gnome.Maps" #~ msgid "Open with another application" #~ msgstr "以其他應用程式開啟" #~ msgid "Press enter to search" #~ msgstr "按下 Enter 開始搜尋" #~ msgid "Route search by OpenTripPlanner" #~ msgstr "透過 OpenTripPlanner 搜尋路徑" #~ msgid "Quit" #~ msgstr "結束" #~ msgid "OK" #~ msgstr "確定" #~ msgid "Load Map Layer" #~ msgstr "載入地圖圖層" #~ msgid "Open Layer" #~ msgstr "開啟圖層" #~ msgid "%f km" #~ msgstr "%f 公里" #~ msgid "%f m" #~ msgstr "%f 公尺" #~ msgid "%f mi" #~ msgstr "%f 哩" #~ msgid "%f ft" #~ msgstr "%f 呎" #~ msgid "Position not found" #~ msgstr "找不到地點" #~ msgid "General" #~ msgstr "一般" #~ msgid "Search" #~ msgstr "搜尋" #~ msgid "Country code: %s" #~ msgstr "國家代碼:%s" #~ msgid "Population: %s" #~ msgstr "資料母體:%s" #~ msgid "Wheelchair access: %s" #~ msgstr "使用輪椅:%s" #~ msgid "_Share" #~ msgstr "分享(_S)" #~ msgid "Last known location and accuracy" #~ msgstr "上次知道的位置與準確度" #~ msgid "" #~ "Last known location (latitude and longitude in degrees) and accuracy (in " #~ "meters)." #~ msgstr "上次知道的位置 (緯度與經度) 與準確度 (以公尺計)" #~ msgid "Description of last known location of user." #~ msgstr "上次知道的使用者位置描述。" #~ msgid "User set last known location" #~ msgstr "使用者設定上次知道的位置" #~ msgid "Whether the last known location was set manually by the user." #~ msgstr "上次知道的位置是否是由使用者手動設定。" #~ msgid "I’m here!" #~ msgstr "我在這裡!" #~ msgid "%f km²" #~ msgstr "%f km²" #~ msgid "To" #~ msgstr "終點" #~ msgid "From" #~ msgstr "起點" #~ msgid " km2" #~ msgstr " km2" #~ msgid "Satellite" #~ msgstr "衛星" 070701000001F1000041ED0000000000000000000000026641340900000000000000000000000000000000000000000000001900000000gnome-maps-46.11/scripts070701000001F2000081A400000000000000000000000166413409000002C2000000000000000000000000000000000000002000000000gnome-maps-46.11/scripts/READMESCRIPTS ======= extractPoiTypesFromID.js ------------------------ Extracts the POI types (presets) that the iD editor uses to JSON for us to consume. Run the extractPoiTypesFromID.js script against a checkout of the iD Tagging Schema project (https://github.com/openstreetmap/id-tagging-schema) $ ./extractPoiTypesFromID.js > osm-types.json This script would be run by upstream before making a release of gnome-maps if an updated version of the iD editor is available with updated OSM types preset and/or new or updated translations of those. Check the resulting .json file (i.e. check size and possibly diff against the current version). Copy the result to data/osm-types.json 070701000001F3000081ED0000000000000000000000016641340900000B3C000000000000000000000000000000000000002B00000000gnome-maps-46.11/scripts/exportMapStyle.js#!/usr/bin/env -S gjs -m /* * Copyright (C) 2024 James Westman * * 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, see . */ /* Exports the map style to a JSON file for use in MapLibre GL. */ import Gio from "gi://Gio?version=2.0"; import { generateMapStyle } from "../src/mapStyle/mapStyle.js"; const configs = [{ colorScheme: "dark" }, { colorScheme: "light" }]; for (const config of configs) { const style = generateMapStyle({ renderer: "maplibre-gl-js", textScale: 1, ...config }); const filename = `dist/gnome-maps-${config.colorScheme}.json`; try { Gio.File.new_for_path("dist").make_directory_with_parents(null); } catch (e) { if (e.code !== Gio.IOErrorEnum.EXISTS) { throw e; } } console.log(`Writing ${filename}`); const file = Gio.File.new_for_path(filename); const stream = file.replace(null, false, Gio.FileCreateFlags.NONE, null); stream.write(JSON.stringify(style, null, 2), null); } console.log(`Copying static files`); const staticFiles = Gio.File.new_for_path("scripts/map-style-web"); for (const file of staticFiles.enumerate_children("standard::*", Gio.FileQueryInfoFlags.NONE, null)) { const source = staticFiles.get_child(file.get_name()); const dest = Gio.File.new_for_path(`dist/${file.get_name()}`); source.copy(dest, Gio.FileCopyFlags.OVERWRITE, null, null); } console.log(`Copying icons`); const icons = Gio.File.new_for_path("data/icons/private/hicolor/16x16/apps"); const iconList = []; try { Gio.File.new_for_path("dist/icons").make_directory_with_parents(null); } catch (e) { if (e.code !== Gio.IOErrorEnum.EXISTS) { throw e; } } for (const file of icons.enumerate_children("standard::*", Gio.FileQueryInfoFlags.NONE, null)) { const source = icons.get_child(file.get_name()); const dest = Gio.File.new_for_path(`dist/icons/${file.get_name()}`); source.copy(dest, Gio.FileCopyFlags.OVERWRITE, null, null); iconList.push(file.get_name()); } console.log(`Writing icon list`); const iconListFile = Gio.File.new_for_path("dist/icons.json"); const iconListStream = iconListFile.replace(null, false, Gio.FileCreateFlags.NONE, null); iconListStream.write(JSON.stringify(iconList), null); 070701000001F4000081ED0000000000000000000000016641340900000E5E000000000000000000000000000000000000003200000000gnome-maps-46.11/scripts/extractPoiTypesFromID.js#!/usr/bin/env -S gjs -m /* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2016 Marcus Lundblad. * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ /* * Script to generate a simplified JSON mapping file for POI types from the * presets definitions from the iD Web-based OpenStreetMap editor * * Usage: ./extractPoiTypesFromID.js > osm-types.json * */ import Gio from 'gi://Gio'; const PRESETS_PATH = 'data/presets'; const LOCALES_PATH = 'dist/translations'; const PRESET_TYPES = [ 'aeroway', 'amenity', 'leisure', 'office', 'place', 'shop', 'tourism' ]; const OUTPUT = {}; let decoder = new TextDecoder('utf-8'); function parseJson(dirPath, fileName) { let file = Gio.File.new_for_path(dirPath + '/' + fileName); let [status, buffer] = file.load_contents(null); let {tags, name} = JSON.parse(decoder.decode(buffer)); for (let key in tags) { let value = tags[key]; OUTPUT[key + '/' + value] = {'title': {'C': name}}; } } function processType(type, basePath) { let dirPath = [basePath, PRESETS_PATH, type].join('/'); let dir = Gio.File.new_for_path(dirPath); let enumerator = dir.enumerate_children('*', Gio.FileQueryInfoFlags.NOFOLLOW_SYMLINKS, null); while (true) { let file = enumerator.next_file(null); if (file === null) break; if (file.get_name().endsWith('.json')) parseJson(dirPath, file.get_name()); } } function processTypes(basePath) { PRESET_TYPES.forEach(function(type) { processType(type, basePath); }); } function processLocale(dirPath, fileName) { let file = Gio.File.new_for_path(dirPath + '/' + fileName); let [status, buffer] = file.load_contents(null); let object = JSON.parse(decoder.decode(buffer)); let lang = fileName.substring(0, fileName.indexOf('.json')); for (let type in OUTPUT) { let name; try { name = object[lang].presets.presets[type].name; } catch (ex) { continue; } OUTPUT[type].title[lang] = name; } } function processLocales(basePath) { let dirPath = basePath + '/' + LOCALES_PATH; let dir = Gio.File.new_for_path(dirPath); let enumerator = dir.enumerate_children('*.json', Gio.FileQueryInfoFlags.NOFOLLOW_SYMLINKS, null); while (true) { let file = enumerator.next_file(null); if (file === null) break; if (file.get_name().endsWith('.json')) processLocale(dirPath, file.get_name()); } } function outputJson() { print(JSON.stringify(OUTPUT, null, 2)); } function main(args) { let path = args[0]; processTypes(path); processLocales(path); outputJson(); } main(ARGV); 070701000001F5000041ED0000000000000000000000026641340900000000000000000000000000000000000000000000002700000000gnome-maps-46.11/scripts/map-style-web070701000001F6000081A40000000000000000000000016641340900000624000000000000000000000000000000000000003200000000gnome-maps-46.11/scripts/map-style-web/index.html
    070701000001F7000081A40000000000000000000000016641340900000858000000000000000000000000000000000000003000000000gnome-maps-46.11/scripts/map-style-web/index.js"use strict"; import TinySDF from "./tiny-sdf.js"; document.title = "Map Style Preview"; const mapContainer = document.getElementById("mapContainer"); async function loadMap() { const iconsJson = fetch("./icons.json").then((res) => res.json()); let mapStyle = "./gnome-maps-light.json"; const map = (window.map = new maplibregl.Map({ container: mapContainer, style: mapStyle, hash: true, })); map.on("styleimagemissing", async (event) => { if ((await iconsJson).includes(event.id + ".svg")) { const svg = await (await fetch(`icons/${event.id}.svg`)).text(); const i = await new TinySDF().draw((ctx, buf) => { return new Promise((resolve) => { const image = new Image(); image.onload = () => { ctx.drawImage(image, buf, buf); resolve(); }; image.src = `data:image/svg+xml;base64,${btoa(svg)}`; }); }); if (!map.hasImage(event.id)) map.addImage(event.id, i, { sdf: true }); } }); map.on("styledata", (event) => { const style = map.getStyle(); for (const layer of style.layers) { if (!layer.metadata) continue; const cursor = layer.metadata["libshumate:cursor"]; if (cursor) { map.on("mouseenter", layer.id, (event) => { const features = map.queryRenderedFeatures(event.point); if (features.length > 0) { const canvas = mapContainer.querySelector(".maplibregl-canvas"); canvas.style.cursor = cursor; } }); map.on("mouseleave", layer.id, () => { const canvas = mapContainer.querySelector(".maplibregl-canvas"); canvas.style.cursor = "grab"; }); } } }); for (const variantBtn of document.querySelectorAll(".variant")) { const setMapStyle = () => { mapStyle = `./${variantBtn.dataset.variant}.json`; map.setStyle(mapStyle); }; variantBtn.addEventListener("change", setMapStyle); if (variantBtn.checked) { setMapStyle(); } } window.mapStyleReload = () => { map.setStyle(mapStyle); }; } loadMap(); 070701000001F8000081A400000000000000000000000166413409000010E8000000000000000000000000000000000000003300000000gnome-maps-46.11/scripts/map-style-web/tiny-sdf.js// Adapted from , // which is BSD 2-Clause. Edited to handle arbitrary canvas drawings. const INF = 1e20; export default class TinySDF { constructor({ iconSize = 16, buffer = 3, radius = 8, cutoff = 0.25, } = {}) { this.buffer = buffer; this.cutoff = cutoff; this.radius = radius; this.iconSize = iconSize; // make the canvas size big enough to both have the specified buffer around the glyph // for "halo", and account for some glyphs possibly being larger than their font size const size = iconSize + buffer * 2; const canvas = this._createCanvas(size); const ctx = this.ctx = canvas.getContext('2d', {willReadFrequently: true}); ctx.fillStyle = 'black'; // temporary arrays for the distance transform this.gridOuter = new Float64Array(size * size); this.gridInner = new Float64Array(size * size); this.f = new Float64Array(size); this.z = new Float64Array(size + 1); this.v = new Uint16Array(size); } _createCanvas(size) { const canvas = document.createElement('canvas'); canvas.width = canvas.height = size; return canvas; } async draw(drawFunc) { const width = this.iconSize + 2 * this.buffer; const height = this.iconSize + 2 * this.buffer; const len = Math.max(width * height, 0); const data = new Uint8ClampedArray(len); const {ctx, buffer, gridInner, gridOuter} = this; ctx.clearRect(0, 0, width, height); await drawFunc(ctx, this.buffer); const imgData = ctx.getImageData(buffer, buffer, this.iconSize, this.iconSize); // Initialize grids outside the glyph range to alpha 0 gridOuter.fill(INF, 0, len); gridInner.fill(0, 0, len); for (let y = 0; y < this.iconSize; y++) { for (let x = 0; x < this.iconSize; x++) { const a = imgData.data[4 * (y * this.iconSize + x) + 3] / 255; // alpha value if (a === 0) continue; // empty pixels const j = (y + buffer) * width + x + buffer; if (a === 1) { // fully drawn pixels gridOuter[j] = 0; gridInner[j] = INF; } else { // aliased pixels const d = 0.5 - a; gridOuter[j] = d > 0 ? d * d : 0; gridInner[j] = d < 0 ? d * d : 0; } } } edt(gridOuter, 0, 0, width, height, width, this.f, this.v, this.z); edt(gridInner, buffer, buffer, this.iconSize, this.iconSize, width, this.f, this.v, this.z); for (let i = 0; i < len; i++) { const d = Math.sqrt(gridOuter[i]) - Math.sqrt(gridInner[i]); data[i] = Math.round(255 - 255 * (d / this.radius + this.cutoff)); } const rgba = new Uint8Array(len * 4); for (let i = 0; i < len; i++) { rgba[4 * i + 0] = 0; rgba[4 * i + 1] = 0; rgba[4 * i + 2] = 0; rgba[4 * i + 3] = data[i]; } return {data: rgba, width, height}; } } // 2D Euclidean squared distance transform by Felzenszwalb & Huttenlocher https://cs.brown.edu/~pff/papers/dt-final.pdf function edt(data, x0, y0, width, height, gridSize, f, v, z) { for (let x = x0; x < x0 + width; x++) edt1d(data, y0 * gridSize + x, gridSize, height, f, v, z); for (let y = y0; y < y0 + height; y++) edt1d(data, y * gridSize + x0, 1, width, f, v, z); } // 1D squared distance transform function edt1d(grid, offset, stride, length, f, v, z) { v[0] = 0; z[0] = -INF; z[1] = INF; f[0] = grid[offset]; for (let q = 1, k = 0, s = 0; q < length; q++) { f[q] = grid[offset + q * stride]; const q2 = q * q; do { const r = v[k]; s = (f[q] - f[r] + q2 - r * r) / (q - r) / 2; } while (s <= z[k] && --k > -1); k++; v[k] = q; z[k] = s; z[k + 1] = INF; } for (let q = 0, k = 0; q < length; q++) { while (z[k + 1] < q) k++; const r = v[k]; const qr = q - r; grid[offset + q * stride] = f[r] + qr * qr; } }070701000001F9000081ED0000000000000000000000016641340900002045000000000000000000000000000000000000002A00000000gnome-maps-46.11/scripts/serveMapStyle.js#!/usr/bin/env -S gjs -m /* * Copyright (C) 2024 James Westman * * 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, see . */ /* Serve the map style using libsoup and MapLibre GL JS. */ import Soup from "gi://Soup?version=3.0"; import Gio from "gi://Gio"; import GLib from "gi://GLib"; import "gi://Gtk?version=4.0"; import * as Utils from "../src/utils.js"; const CONTENT_TYPES = { html: "text/html", js: "text/javascript", json: "application/json", svg: "image/svg+xml", }; const LIVE_RELOAD_JS = ` const wsPath = (window.location.protocol === "https:" ? "wss://" : "ws://") + window.location.host + "/ws"; console.log("Setting up live reload at " + wsPath); const websocket = new WebSocket(wsPath); websocket.addEventListener("message", (event) => { const message = JSON.parse(event.data); switch (message.type) { case "reloadPage": console.log("Reloading page"); window.location.reload(); break; case "reloadStyle": console.log("Reloading map style"); window.mapStyleReload(); break; } }); `; const serve = (port) => { const connections = []; let fileCache = {}; let iconsJson = null; let timeoutId = null; const server = new Soup.Server(); server.add_handler("/", (server, message, path, query) => { if (path !== "/") { message.set_status(Soup.Status.NOT_FOUND, null); return; } message.set_redirect(Soup.Status.FOUND, "index.html"); }); const respondWithText = (message, text, contentType) => { message.set_status(Soup.Status.OK, null); message .get_response_headers() .set_content_type(contentType, { charset: "UTF-8" }); message.get_response_headers().set_content_length(text.length); message.get_response_body().append(text); }; const respondWithFile = (message, file) => { if (!fileCache[file]) { fileCache[file] = Utils.getBufferText( Utils.readFile(filePath(file)) ); } respondWithText( message, fileCache[file], CONTENT_TYPES[file.split(".").pop()] ?? "text/plain" ); }; const files = [ "index.js", "tiny-sdf.js", "icons.json", "gnome-maps-dark.json", "gnome-maps-light.json", ]; const filePath = (file) => GLib.build_filenamev([GLib.get_current_dir(), "dist", file]); for (const file of files) { server.add_handler(`/${file}`, (server, message, path, query) => { respondWithFile(message, file); }); } server.add_handler("/index.html", (server, message, path, query) => { const fileContent = Utils.getBufferText( Utils.readFile(filePath("index.html")) ); const body = fileContent.replace( "", `` ); respondWithText(message, body, CONTENT_TYPES.html); }); server.add_handler("/icons", (server, message, path, query) => { /* read icons.json and make sure the file is listed there */ if (!iconsJson) { const iconsFile = filePath("icons.json"); iconsJson = JSON.parse( Utils.getBufferText(Utils.readFile(iconsFile)) ); } const requestedIcon = path.split("/").pop(); if (iconsJson.includes(requestedIcon)) { respondWithFile(message, `icons/${requestedIcon}`); } else { message.set_status(Soup.Status.NOT_FOUND, null); } }); server.add_websocket_handler( "/ws", null, null, (server, message, path, conn) => { connections.push(conn); conn.connect("closed", () => { const index = connections.indexOf(conn); if (index > -1) { connections.splice(index, 1); } }); } ); const regenerateMapStyle = () => { Gio.Subprocess.new( ["scripts/exportMapStyle.js"], Gio.SubprocessFlags.NONE ).wait(null); }; let reloadHtml = false; const refresh = () => { if (timeoutId) { GLib.source_remove(timeoutId); } timeoutId = GLib.timeout_add(GLib.PRIORITY_DEFAULT, 100, () => { console.log("Refresh requested"); timeoutId = null; fileCache = {}; iconsJson = null; regenerateMapStyle(); log( `Map style exported, sending reload message to ${connections.length} clients` ); for (const connection of connections) { connection.send_text( JSON.stringify({ type: reloadHtml ? "reloadPage" : "reloadStyle", }) ); } return GLib.SOURCE_REMOVE; }); }; const monitorRecursively = (directory, func) => { const file = Gio.File.new_for_path(directory); const monitor = file.monitor(0, null); const subMonitors = {}; const deleteSubMonitor = (file) => { if (subMonitors[file.get_path()]) { subMonitors[file.get_path()].cancel(); delete subMonitors[file.get_path()]; } }; monitor.connect("changed", (monitor, file, otherFile, eventType) => { log(`Path ${file.get_path()} changed`); switch (eventType) { case Gio.FileMonitorEvent.CREATED: deleteSubMonitor(file); subMonitors[file.get_path()] = monitorRecursively( file.get_path(), func ); break; case Gio.FileMonitorEvent.DELETED: deleteSubMonitor(file); break; default: break; } func(); }); if ( file.query_file_type(Gio.FileQueryInfoFlags.NONE, null) === Gio.FileType.DIRECTORY ) { for (const child of file.enumerate_children( "standard::*", Gio.FileQueryInfoFlags.NONE, null )) { const subFile = file.get_child(child.get_name()); subMonitors[subFile.get_path()] = monitorRecursively( subFile.get_path(), func ); } } return { cancel: () => { monitor.cancel(); for (const subMonitor of Object.values(subMonitors)) { subMonitor.cancel(); } }, isCancelled: () => monitor.is_cancelled(), }; }; log('Monitoring for changes to style files and scripts'); const _doNotGc = [ monitorRecursively("src/mapStyle", refresh), monitorRecursively("scripts/map-style-web", () => { reloadHtml = true; refresh(); }), ]; log('Generating map style on startup'); regenerateMapStyle(); log(` ========================================== Serving map style on http://localhost:${port} ==========================================`); server.listen_local(port, 0); GLib.MainLoop.new(null, false).run(); }; serve(8000); 070701000001FA000081ED0000000000000000000000016641340900001E12000000000000000000000000000000000000002F00000000gnome-maps-46.11/scripts/updateOsmAmericana.js#!/usr/bin/env -S gjs -m /* * Copyright (C) 2023 James Westman * * 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, see . */ /* Script to copy the shield definitions, SVGs, and associated code from OSM Americana (which is CC0). */ import Gio from "gi://Gio"; function deleteOldIcons() { const oldIconsPath = Gio.File.new_for_path("data/shields"); const enumerator = oldIconsPath.enumerate_children( "standard::*", Gio.FileQueryInfoFlags.NONE, null ); for (const fileInfo of enumerator) { const fileName = fileInfo.get_name(); if (fileName.startsWith("shield_")) { const file = Gio.File.new_for_path("data/shields/" + fileName); file.delete(null); } } } function copyIcons(osmAmericanaPath) { const iconsPath = osmAmericanaPath + "/icons"; // iterate over all files in the icons directory let dir = Gio.File.new_for_path(iconsPath); let enumerator = dir.enumerate_children( "standard::*", Gio.FileQueryInfoFlags.NONE, null ); let info; const shields = []; for (const fileInfo of enumerator) { const fileName = fileInfo.get_name(); if (fileName.startsWith("shield_")) { shields.push(fileName); const sourceFile = Gio.File.new_for_path( iconsPath + "/" + fileName ); const destFile = Gio.File.new_for_path("data/shields/" + fileName); sourceFile.copy(destFile, Gio.FileCopyFlags.OVERWRITE, null, null); } } shields.sort(); /* Create shields.gresource.xml */ const shieldsGresourceXml = Gio.File.new_for_path( "data/shields/org.gnome.Maps.shields.gresource.xml" ); let shieldsGresourceXmlContents = '\n\n\n \n'; shieldsGresourceXmlContents += ` shields.json\n`; shieldsGresourceXmlContents += ` layer.json\n`; for (const shield of shields) { shieldsGresourceXmlContents += ` ${shield}\n`; } shieldsGresourceXmlContents += " \n\n"; shieldsGresourceXml.replace_contents( shieldsGresourceXmlContents, null, false, Gio.FileCreateFlags.NONE, null ); } function copyShieldsJson(osmAmericanaPath, file) { const launcher = Gio.SubprocessLauncher.new(0); launcher.set_cwd(osmAmericanaPath); const subprocess = launcher.spawnv([ "sh", "-c", "npm install && npm run build && npm run shields", ]); subprocess.wait(null); /* Copy the shield definitions */ const sourceFile = Gio.File.new_for_path( osmAmericanaPath + "/dist/shields.json" ); const destFile = Gio.File.new_for_path("data/shields/shields.json"); const [_status, shieldsData] = sourceFile.load_contents(null); const shieldsJson = JSON.parse( new TextDecoder("utf-8").decode(shieldsData) ); /* Override the fallback shield definition to use the motorway color as a background. Keep the colors in sync. Maybe eventually we can get them from the style metadata. */ const defaultColors = { "motorway-light": ["#e1c172", "#caad66"], "motorway-dark": ["#58422e", "#685442"], "trunk-light": ["#e9cf75", "#d1ba69"], "trunk-dark": ["#493727", "#5b4b3c"], "primary-light": ["#e9cf75", "#d1ba69"], "primary-dark": ["#493727", "#5b4b3c"], "secondary-light": ["#ebd68a", "#d3c07c"], "secondary-dark": ["#453324", "#574739"], }; for (const highwayClass in defaultColors) { const [color, casing] = defaultColors[highwayClass]; shieldsJson.networks[`default-${highwayClass}`] = { shapeBlank: { drawFunc: "roundedRectangle", params: { radius: 3, strokeColor: casing, outlineWidth: 1, fillColor: color, }, }, textColor: "#4d3a28", padding: { left: 1, right: 1, top: 1, bottom: 1, }, textLayout: { constraintFunc: "roundedRect", options: { radius: 3, }, }, }; } /* There's a slight difference in the text rendering that I haven't been able to track down, that's only really noticeable in US Interstate shields. Adjust for it by shifting the padding down half a pixel. */ for (const network of Object.keys(shieldsJson.networks)) { if (network === "US:I" || network.startsWith("US:I:")) { shieldsJson.networks[network].padding.top += 0.5; shieldsJson.networks[network].padding.bottom -= 0.5; } } destFile.replace_contents( JSON.stringify(shieldsJson, null, 2), null, false, Gio.FileCreateFlags.NONE, null ); } function copyShieldLayer(osmAmericanaPath) { Gio.File.new_for_path("data/shields/layer.json").delete(null); const launcher = Gio.SubprocessLauncher.new(0); launcher.set_stdout_file_path("data/shields/layer.json"); launcher.set_cwd(osmAmericanaPath); const subprocess = launcher.spawnv([ "sh", "-c", "echo 'import {shield} from \"./src/layer/highway_shield.js\"; console.log(JSON.stringify(shield, null, 2))' | node --input-type=module", ]); subprocess.wait(null); const layerFile = Gio.File.new_for_path("data/shields/layer.json"); const [_status, layerData] = layerFile.load_contents(null); const layerJson = JSON.parse(new TextDecoder("utf-8").decode(layerData)); layerJson.layout["symbol-spacing"] = 500; function addHighwayClass(expr) { if (expr[0] === "image") { expr[1].splice(3, 0, ["get", "class"]); expr[1].splice(4, 0, "\n"); } else { for (const subExpr of expr) { if (Array.isArray(subExpr)) { addHighwayClass(subExpr); } } } } addHighwayClass(layerJson.layout["text-field"]); layerFile.replace_contents( JSON.stringify(layerJson, null, 2), null, false, Gio.FileCreateFlags.NONE, null ); } function main(args) { if (args.length !== 1) { print( "Usage: ./updateOsmAmericana.js " ); return; } const osmAmericanaPath = args[0]; deleteOldIcons(); copyIcons(osmAmericanaPath); copyShieldsJson(osmAmericanaPath); copyShieldLayer(osmAmericanaPath); } main(ARGV); 070701000001FB000041ED0000000000000000000000026641340900000000000000000000000000000000000000000000001500000000gnome-maps-46.11/src070701000001FC000081A400000000000000000000000166413409000018E3000000000000000000000000000000000000002000000000gnome-maps-46.11/src/address.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2019 Marcus Lundblad. * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ /** * Utility functions for address formatting. */ /** * Translation lookup function for street name and house number. * Based on examples from https://en.wikipedia.org/wiki/Address#Address_format * Currently don't include address formats for i.e. China and Japan as those * formats differ from the Western ones and would need additional handling * when printing place addresses (currently we assume there is a street name * and house number). */ export function streetAddressForCountryCode(streetName, housenumber, countryCode) { switch (countryCode) { case 'AI': return `${housenumber} ${streetName}`; case 'AL': return `${streetName} ${housenumber}`; case 'AR': return `${streetName} ${housenumber}`; case 'AS': return `${streetName} ${housenumber}`; case 'AU': return `${housenumber} ${streetName}`; case 'AX': return `${streetName} ${housenumber}`; case 'BA': return `${streetName} ${housenumber}`; case 'BD': return `${streetName}. ${housenumber}`; case 'BE': return `${streetName} ${housenumber}`; case 'BM': return `${housenumber} ${streetName}`; case 'BR': return `${streetName}, ${housenumber}`; case 'BY': return `${streetName}, д. ${housenumber}`; /* if we had access to state codes, we could add a special case for * Quebec format */ case 'CA': return `${housenumber} ${streetName}`; case 'CH': return `${streetName} ${housenumber}`; case 'CL': return `${streetName} No° ${housenumber}`; case 'CZ': return `${streetName} ${housenumber}`; case 'CY': return `${streetName} ${housenumber}`; case 'DE': return `${streetName} ${housenumber}`; case 'DK': return `${streetName} ${housenumber}`; case 'EE': return `${streetName} ${housenumber}`; case 'ES': return `${streetName}, ${housenumber}`; case 'FI': return `${streetName} ${housenumber}`; case 'FK': return `${housenumber} ${streetName}`; case 'FO': return `${streetName} ${housenumber}`; case 'FR': return `${housenumber}, ${streetName}`; case 'GB': return `${housenumber} ${streetName}`; case 'GG': return `${housenumber} ${streetName}`; case 'GL': return `${streetName} ${housenumber}`; case 'GR': return `${streetName} ${housenumber}`; case 'HK': return `${housenumber} ${streetName}`; case 'HR': return `${streetName} ${housenumber}`; case 'HU': return `${streetName} ${housenumber}`; case 'IE': return `${housenumber} ${streetName}`; case 'IL': return `${housenumber} ${streetName}`; case 'IS': return `${streetName} ${housenumber}`; case 'IM': return `${housenumber} ${streetName}`; case 'IN': return `${housenumber} ${streetName}`; case 'ID': return `${streetName} No. ${housenumber}`; case 'IR': return `${streetName} ${housenumber}`; case 'IT': return `${streetName} ${housenumber}`; case 'IQ': return `${streetName} ${housenumber}`; case 'JE': return `${housenumber} ${streetName}`; case 'KR': return `${streetName} ${housenumber}`; case 'KY': return `${housenumber} ${streetName}`; case 'LI': return `${streetName} ${housenumber}`; case 'LK': return `${housenumber} ${streetName}`; case 'LU': return `${streetName} ${housenumber}`; case 'LV': return `${streetName} ${housenumber}`; case 'ME': return `${streetName} ${housenumber}`; case 'MO': return `${streetName}${housenumber}`; case 'MS': return `${housenumber} ${streetName}`; case 'MY': return `${housenumber} $1%s`; case 'MX': return `${streetName} No. ${housenumber}`; case 'NL': return `${streetName} ${housenumber}`; case 'NO': return `${streetName} ${housenumber}`; case 'NZ': return `${housenumber} ${streetName}`; case 'OM': return `${streetName}, ${housenumber}`; case 'PE': return `${streetName} ${housenumber}`; case 'PH': return `${housenumber} ${streetName}`; case 'PN': return `${housenumber} ${streetName}`; case 'PK': return `${housenumber}, ${streetName}`; case 'PL': return `${streetName} ${housenumber}`; case 'PT': return `${streetName} ${housenumber}`; case 'RO': return `${streetName}, nr. ${housenumber}`; case 'RS': return `${streetName} ${housenumber}`; case 'RU': return `${streetName}, д. ${housenumber}`; case 'SA': return `${housenumber} ${streetName}`; case 'SE': return `${streetName} ${housenumber}`; case 'SG': return `${housenumber} ${streetName}`; case 'SH': return `${housenumber} ${streetName}`; case 'SJ': return `${streetName} ${housenumber}`; case 'SK': return `${streetName} ${housenumber}`; case 'SL': return `${streetName} ${housenumber}`; case 'TC': return `${housenumber} ${streetName}`; case 'TR': return `${streetName} ${housenumber}`; case 'TW': return `${streetName}, ${housenumber}`; case 'UA': return `вул. ${streetName}, буд. ${housenumber}`; case 'US': return `${housenumber} ${streetName}`; case 'VG': return `${housenumber} ${streetName}`; case 'VI': return `${housenumber} ${streetName}`; case 'VN': return `số ${housenumber} ${streetName}`; default: return `${housenumber} ${streetName}`; } } 070701000001FD000081A40000000000000000000000016641340900003626000000000000000000000000000000000000002400000000gnome-maps-46.11/src/application.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2011, 2012, 2013 Red Hat, Inc. * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Cosimo Cecchi * Zeeshan Ali (Khattak) */ import Adw from 'gi://Adw'; import Gdk from 'gi://Gdk'; import GLib from 'gi://GLib'; import GObject from 'gi://GObject'; import Gio from 'gi://Gio'; import Gtk from 'gi://Gtk'; import {Geoclue} from './geoclue.js'; import * as GeocodeFactory from './geocode.js'; import {MainWindow} from './mainWindow.js'; import {OSMEdit} from './osmEdit.js'; import {OSMTypeSearchEntry} from './osmTypeSearchEntry.js'; import {PlaceStore} from './placeStore.js'; import {RoutingDelegator} from './routingDelegator.js'; import {RouteQuery} from './routeQuery.js'; import {Settings} from './settings.js'; import * as Utils from './utils.js'; import * as URIS from './uris.js'; import { Place } from './place.js'; const Format = imports.format; const _ensuredTypes = [OSMTypeSearchEntry]; export class Application extends Adw.Application { // used globally static application = null; static settings = null; /** @type {PlaceStore} */ static placeStore = null; /** @type {RoutingDelegator} */ static routingDelegator = null; static geoclue = null; static osmEdit = null; static normalStartup = true; /** @type {RouteQuery} */ static routeQuery = null; constructor() { /* Translators: This is the program name. */ GLib.set_application_name(_("Maps")); /* Needed to be able to use in UI files */ _ensuredTypes.forEach((type) => GObject.type_ensure(type)); super({ application_id: pkg.name, flags: Gio.ApplicationFlags.HANDLES_OPEN | Gio.ApplicationFlags.HANDLES_COMMAND_LINE, resource_base_path: '/org/gnome/Maps' }); this.add_main_option('local', 0, GLib.OptionFlags.NONE, GLib.OptionArg.FILENAME, _("A path to a local tiles directory structure"), null); this.add_main_option('local-tile-size', 0, GLib.OptionFlags.NONE, GLib.OptionArg.INT, _("Tile size for local tiles directory"), null); this.add_main_option('version', 'v'.charCodeAt(0), GLib.OptionFlags.NONE, GLib.OptionArg.NONE, _("Show the version of the program"), null); this.add_main_option('search', 'S'.charCodeAt(0), GLib.OptionFlags.NONE, GLib.OptionArg.STRING, _("Search for places"), null); /* due to https://gitlab.gnome.org/GNOME/gjs/-/issues/330 the * description for the remaining args needs to be passed as both * description and arg_description */ this.add_main_option(GLib.OPTION_REMAINING, 0, 0, GLib.OptionArg.STRING_ARRAY, _("[FILE…|URI]"), _("[FILE…|URI]")); } _onOsmAccountSetupActivate() { let dialog = Application.osmEdit.createAccountDialog(this._mainWindow, false); dialog.show(); dialog.connect('response', () => dialog.destroy()); } _onSearchActivate(action, parameter) { this._createWindow(); this._mainWindow.present(); let query = parameter.deep_unpack(); let mapView = this._mainWindow.mapView; if (mapView.view.realized) this._openSearchQuery(query); else mapView.view.connect('notify::realized', this._openSearchQuery.bind(this, query)); } _initPlaceStore() { Application.placeStore = new PlaceStore({ recentPlacesLimit: Application.settings.get('recent-places-limit'), recentRoutesLimit: Application.settings.get('recent-routes-limit') }); try { Application.placeStore.load(); } catch (e) { logError(e); log('Failed to parse Maps places file, ' + 'subsequent writes will overwrite the file!'); } } vfunc_startup() { super.vfunc_startup(); Application.application = this; this._initServices(); Utils.addActions(this, { 'osm-account-setup': { onActivate: this._onOsmAccountSetupActivate.bind(this) }, 'search': { paramType: 's', onActivate: this._onSearchActivate.bind(this) }, 'quit': { onActivate: () => this.quit(), accels: ['Q'] } }, Application.settings); let display = Gdk.Display.get_default(); Gtk.IconTheme.get_for_display(display).add_search_path( GLib.build_filenamev([pkg.pkgdatadir, 'icons'])); this._initPlaceStore(); } _initServices() { Application.settings = Settings.getSettings('org.gnome.Maps'); Application.routeQuery = new RouteQuery(); Application.routingDelegator = new RoutingDelegator({ query: Application.routeQuery }); Application.geoclue = new Geoclue(); Application.osmEdit = new OSMEdit(); } _createWindow() { if (this._mainWindow) return; this._mainWindow = new MainWindow({ application: this }); this._mainWindow.connect('destroy', () => this._onWindowDestroy()); if (GLib.getenv('MAPS_DEBUG') === 'focus') { this._mainWindow.connect('set-focus', (window, widget) => { log(`* focus widget: ${widget}`); }); } } vfunc_dbus_register(connection, path) { super.vfunc_dbus_register(connection, path); return true; } vfunc_dbus_unregister(connection, path) { super.vfunc_dbus_unregister(connection, path); } vfunc_activate() { this._createWindow(); this._mainWindow.present(); } _openInternal(files) { if (!this._mainWindow || !this._mainWindow.mapView.map.get_realized()) return; let uri = files[0].get_uri(); let scheme = GLib.uri_parse_scheme(uri); if (scheme === 'geo') { // we get a URI that looks like geo:///lat,lon, remove slashes let geoURI = uri.replace(/\//g, ''); this._mainWindow.mapView.goToGeoURI(geoURI); } else if (scheme === 'http' || scheme === 'https') { this._mainWindow.mapView.goToHttpURL(uri); } else if (scheme === 'maps') { // we get a URI that looks like maps:///q=Search, remove slashes let mapsURI = uri.replace(/\//g, ''); this._openMapsUri(mapsURI); } else { let list = new Gio.ListStore(Gio.File.Gtype); for (let i = 0; i < files.length; i++) { list.insert(i, files[i]); } this._mainWindow.mapView.openShapeLayers(list); } } _openMapsUri(uri) { let query = URIS.parseMapsURI(uri); if (query) this._openSearchQuery(query); else this._invalidMapsUri(uri); } _openSearchQuery(query) { let cancellable = new Gio.Cancellable(); /* unless there's exactly one place (which should be focused) in * the results, let the stored location be used on startup */ Application.normalStartup = true; this.connect('shutdown', () => cancellable.cancel()); GeocodeFactory.getGeocoder().search(query, null, null, cancellable, (places, error) => { if (error) { this._mainWindow.showToast(_("An error has occurred")); } else { // clear search entry this._mainWindow.searchBar.placeEntry.text = ''; if (places) { /* if there's only one place in results, show it directly * with it's bubble, otherwise present the results in the * search popover */ if (places?.length === 1) { /* don't use the stored location on startup, as we're * zooming in directly on the place */ Application.normalStartup = false; this._mainWindow.mapView.showPlace(places[0], true); } else { this._mainWindow.searchBar.placeEntry.grab_focus(); this._mainWindow.searchBar.updateResults(places, query, false); } } else { this._mainWindow.showToast(_("No results found")); } } }); } _invalidMapsUri(uri) { this._mainWindow.showToast(_("Invalid maps: URI: %s").format(uri)); } vfunc_open(files) { /* unless the first argument is a maps: URI with a search query * we should not perform the normal startup behavior of going to * the stored location, as shape layers, directly addressed OSM * objects, and geo: URIs will override the startup location */ let uri = files[0].get_uri(); if (GLib.uri_parse_scheme(uri) !== 'maps') Application.normalStartup = false; this.activate(); let mapView = this._mainWindow.mapView; if (mapView.map.get_realized()) this._openInternal(files); else mapView.map.connect('realize', this._openInternal.bind(this, files)); } vfunc_command_line(cmdline) { let options = cmdline.get_options_dict(); if (options.contains('local')) { let variant = options.lookup_value('local', null); this.local_tile_path = variant.deep_unpack(); Application.normalStartup = false; if (options.contains('local-tile-size')) { variant = options.lookup_value('local-tile-size', null); this.local_tile_size = variant.deep_unpack(); } } else if (options.contains('version')) { print(pkg.version); /* quit the invoked process after printing the version number * leaving the running instance unaffected */ return 0; } let remaining = options.lookup(GLib.OPTION_REMAINING, null); let files = []; // when given the search CLI argument, insert URI as first file if (options.contains('search')) { let query = options.lookup_value('search', null).deep_unpack(); files = [Gio.File.new_for_uri(`maps:q=${query}`)]; } if (remaining) { remaining.forEach((r) => { let path = r.get_string()[0]; if (path.startsWith('geo:') || path.startsWith('http://') || path.startsWith('https://') || path.startsWith('maps:')) { files.push(Gio.File.new_for_uri(path)); } else { files.push(Gio.File.new_for_path(path)); } }); } if (files.length > 0) this.open(files, ''); else this.activate(); return 0; } _onWindowDestroy(window) { this._mainWindow = null; } vfunc_shutdown() { // need to unparent popover children to avoid GTK warnings on exit if (this._mainWindow) { this._mainWindow.searchBar.placeEntry.popover.unparent(); this._mainWindow.sidebar.unparentSearchPopovers(); } super.vfunc_shutdown(); } } GObject.registerClass({ Properties: { 'selected-place': GObject.ParamSpec.object('selected-place', 'Selected Place', 'The selected place', GObject.ParamFlags.READABLE | GObject.ParamFlags.WRITABLE, Place), 'adaptive-mode': GObject.ParamSpec.boolean('adaptive-mode', 'Adaptive Move', 'Whether the main window is in adaptive (narrow) mode', GObject.ParamFlags.READABLE | GObject.ParamFlags.WRITABLE), } }, Application); 070701000001FE000081A40000000000000000000000016641340900000EF1000000000000000000000000000000000000002400000000gnome-maps-46.11/src/boundingBox.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2021, Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ import * as Constants from './constants.js'; export class BoundingBox { constructor(params) { /* default to a bounding box the "opposite" of covering the whole * visible world, this way extending with a coordinate will ensure * it is enlarged to fit that point */ this._left = params?.left ?? Constants.MAX_LONGITUDE; this._bottom = params?.bottom ?? Constants.MAX_LATITUDE; this._right = params?.right ?? Constants.MIN_LONGITUDE; this._top = params?.top ?? Constants.MIN_LATITUDE; } get top() { return this._top; } set top(top) { this._top = top; } get left() { return this._left; } set left(left) { this._left = left; } get bottom() { return this._bottom; } set bottom(bottom) { this._bottom = bottom; } get right() { return this._right; } set right(right) { this._right = right; } copy() { let copy = new BoundingBox(); copy.top = this.top; copy.left = this.left; copy.bottom = this.bottom; copy.right = this.right; return copy; } getCenter() { return [(this.right + this.left) / 2, (this.top + this.bottom) / 2]; } /** * Extends bounding box so that all points covered by other bounding box * is also covered by this. */ compose(other) { if (other.left < this.left) this.left = other.left; if (other.right > this.right) this.right = other.right; if (other.top > this.top) this.top = other.top; if (other.bottom < this.bottom) this.bottom = other.bottom; } /** * Extends bounding box to guarantee covering the point * (latitude, longitude). */ extend(latitude, longitude) { if (longitude < this.left) this.left = longitude; if (latitude < this.bottom) this.bottom = latitude; if (longitude > this.right) this.right = longitude; if (latitude > this.top) this.top = latitude; } isValid() { return this.left < this.right && this.bottom < this.top && this.left >= Constants.MIN_LONGITUDE && this.left <= Constants.MAX_LONGITUDE && this.right >= Constants.MIN_LONGITUDE && this.right <= Constants.MAX_LONGITUDE && this.bottom >= Constants.MIN_LATITUDE && this.bottom <= Constants.MAX_LATITUDE && this.top >= Constants.MIN_LATITUDE && this.top <= Constants.MAX_LATITUDE; } /** * Returns true if bounding box covers the point at (latitude, longitude). */ covers(latitude, longitude) { return (latitude >= this.bottom && latitude <= this.top) && (longitude >= this.left && longitude <= this.right); } } 070701000001FF000081A40000000000000000000000016641340900000DBA000000000000000000000000000000000000001E00000000gnome-maps-46.11/src/color.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2017, Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ /* Minimum contrast ratio for foreground/background color for i.e. route labels */ const MIN_CONTRAST_RATIO = 2.0; /** * Parses a given color component index (0: red, 1: green, 2: blue) * from a hex-encoded color string. Optionally, if defaultValue is supplied, * fallback to that if color is undefined. */ export function parseColor(color, component, defaultValue) { if (color) { let index = component * 2; return parseInt(color.substring(index, index + 2), 16) / 255; } else { return defaultValue; } } /** * Returns the relative luminance (0.0 - 1.0) of a color, expressed in HTML * notation (i.e. ffffff for white) according to the W3C WCAG definition: * https://www.w3.org/WAI/GL/wiki/Relative_luminance */ export function relativeLuminance(color) { let rsRGB = parseColor(color, 0); let gsRGB = parseColor(color, 1); let bsRGB = parseColor(color, 2); let r = rsRGB <= 0.03928 ? rsRGB / 12.92 : Math.pow(((rsRGB + 0.055) / 1.055), 2.4); let g = gsRGB <= 0.03928 ? gsRGB / 12.92 : Math.pow(((gsRGB + 0.055) / 1.055), 2.4); let b = bsRGB <= 0.03928 ? bsRGB / 12.92 : Math.pow(((bsRGB + 0.055) / 1.055), 2.4); return 0.2126 * r + 0.7152 * g + 0.0722 * b; } /** * Returns the contrast ratio between two colors, expressed in HTML notation * (i.e. ffffff for white) according to the W3C WCAG definition: * https://www.w3.org/WAI/GL/wiki/Contrast_ratio */ export function contrastRatio(color1, color2) { let lc1 = relativeLuminance(color1); let lc2 = relativeLuminance(color2); /* order by luminance, lighter before darker */ let l1 = Math.max(lc1, lc2); let l2 = Math.min(lc1, lc2); return (l1 + 0.05) / (l2 + 0.05); } /** * Finds a suitable foreground (text) color for a given background color. * If the desiredForegroundColor argument is defined, return this color if it * has enough contrast against the background, otherwise (or if that argument * is undefined), return the one of black or white giving the highest contrast */ export function getContrastingForegroundColor(backgroundColor, desiredForegroundColor) { if (!desiredForegroundColor || (contrastRatio(backgroundColor, desiredForegroundColor) < MIN_CONTRAST_RATIO)) { let contrastAgainstWhite = contrastRatio(backgroundColor, 'ffffff'); let contrastAgainstBlack = contrastRatio(backgroundColor, '000000'); if (contrastAgainstWhite > contrastAgainstBlack) return 'ffffff'; else return '000000'; } else { return desiredForegroundColor; } } 07070100000200000081A40000000000000000000000016641340900000428000000000000000000000000000000000000002200000000gnome-maps-46.11/src/constants.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2021, Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ /** * Constraints of visible location in the standard Mercaartor projection. */ export var MIN_LATITUDE = -85.0511287798; export var MAX_LATITUDE = 85.0511287798; export var MIN_LONGITUDE = -180; export var MAX_LONGITUDE = 180; 07070100000201000081A40000000000000000000000016641340900000B08000000000000000000000000000000000000001D00000000gnome-maps-46.11/src/epaf.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2013 Mattias Bengtsson. * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Jussi Kukkonen * Mattias Bengtsson */ // Google encoded polyline decoder // https://developers.google.com/maps/documentation/utilities/polylinealgorithm import Shumate from 'gi://Shumate'; function _decodeValue(data, index) { let b; let shift = 0; let value = 0; do { // 63 added to keep string printable b = data.charCodeAt(index++) - 63; // Get 5 bits at a time until hit the end of value // (which is not OR'd with 0x20) value |= (b & 0x1f) << shift; shift += 5; } while (b >= 0x20); // negative values are encoded as two's complement let ret_val = ((value & 1) ? ~(value >> 1) : (value >> 1)); return [ret_val, index]; } export function decode(data) { let length = data.length; let polyline = []; let index = 0; let lat = 0; let lon = 0; while (index < length) { let latdelta, londelta; [latdelta, index] = _decodeValue(data, index); [londelta, index] = _decodeValue(data, index); // first value is absolute, rest are relative to previous value lat += latdelta; lon += londelta; polyline.push(new Shumate.Coordinate({ latitude: lat * 1e-5, longitude: lon * 1e-5 })); } return polyline; } function _encodeValue(val) { let result = ''; val = Math.round(val * 1e5) << 1; if (val < 0) { val = ~val; } do { result += String.fromCharCode(((val > 0x1f ? 0x20 : 0) | (val & 0x1f)) + 63); val >>= 5; } while (val != 0); return result; } export function encode(polyline) { let result = ''; let prevLat = 0; let prevLon = 0; for (const coordinate of polyline) { result += _encodeValue(coordinate.latitude - prevLat); result += _encodeValue(coordinate.longitude - prevLon); prevLat = coordinate.latitude; prevLon = coordinate.longitude; } return result; }07070100000202000081A400000000000000000000000166413409000018F7000000000000000000000000000000000000002900000000gnome-maps-46.11/src/exportViewDialog.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Jonas Danielson */ import Cairo from 'cairo'; import Gdk from 'gi://Gdk'; import GLib from 'gi://GLib'; import Gio from 'gi://Gio'; import GObject from 'gi://GObject'; import Graphene from 'gi://Graphene'; import Gsk from 'gi://Gsk'; import Gtk from 'gi://Gtk'; import Pango from 'gi://Pango'; import * as Utils from './utils.js'; const _PREVIEW_WIDTH = 150; export class ExportViewDialog extends Gtk.Dialog { static Response = { SUCCESS: 0, CANCEL: 1 }; constructor({ paintable, latitude, longitude, mapView, width, height, ...params }) { super({...params, use_header_bar: true}); this._paintable = paintable; this._mapView = mapView; this._width = width; this._height = height; this._cancelButton.connect('clicked', () => this.response(ExportViewDialog.Response.CANCEL)); this._exportButton.connect('clicked', () => this._exportView()); this._filenameEntry.connect('changed', () => this._onFileNameChanged()); this._fileChooserButton.connect('clicked', () => this._onFileChooserClicked()); this._folder = GLib.get_user_special_dir(GLib.UserDirectory.DIRECTORY_PICTURES); if (!this._folder) this._folder = GLib.get_user_data_dir(); this._filenameEntry.text = this._fileName = this._getName(latitude, longitude); this._setupPreviewArea(); } _getName(latitude, longitude) { /* Translators: This is a format string for a PNG filename for an * exported image with coordinates. The .png extension should be kept * intact in the translated string. */ return _("Maps at %f, %f.png").format(latitude.toFixed(2), longitude.toFixed(2)); } _setupPreviewArea() { this._scaleFactor = _PREVIEW_WIDTH / this._width; let previewHeight = this._height * this._scaleFactor; this._previewArea.width_request = _PREVIEW_WIDTH; this._previewArea.height_request = previewHeight; this._previewArea.paintable = this._paintable; } _onFileChooserClicked() { let folderChooser = new Gtk.FileChooserNative(); folderChooser.set_current_folder(Gio.File.new_for_path(this._folder)); folderChooser.connect('response', (widget, response) => { if (response === Gtk.ResponseType.ACCEPT) this._onFolderChanged(folderChooser.get_current_folder().get_path()); folderChooser.destroy(); }); folderChooser.show(); } _onFileNameChanged() { let name = GLib.filename_from_utf8(this._filenameEntry.text, -1)[0]; name = name.toString(); if (!name) { this._exportButton.sensitive= false; return; } try { GLib.build_filenamev([this._folder, name]); this._exportButton.sensitive = true; this._fileName = name; } catch(e) { this._exportButton.sensitive = false; } } _onFolderChanged(folder) { if (!GLib.file_test(folder, GLib.FileTest.IS_DIR)) { this._exportButton.sensitive= false; return; } if (!GLib.file_test(folder, GLib.FileTest.EXISTS)) { this._exportButton.sensitive = false; return; } this._exportButton.sensitive = true; this._folder = folder; } _exportView() { let rect = new Graphene.Rect(); rect.init(0, 0, this._width, this._height); let snapshot = Gtk.Snapshot.new(); this._paintable.snapshot(snapshot, this._paintable.get_intrinsic_width(), this._paintable.get_intrinsic_height()); // render license text const pCtx = this._mapView.create_pango_context(); const layout = Pango.Layout.new(pCtx); layout.set_markup(this._mapView.mapSource.license, -1); const [textWidth, textHeight] = layout.get_pixel_size(); const textRect = new Graphene.Rect(); const textPoint = new Graphene.Point(); textRect.init(this._width - textWidth, this._height - textHeight, textWidth, textHeight); textPoint.init(this._width - textWidth, this._height - textHeight); snapshot.append_color(new Gdk.RGBA({ red: 1, green: 1, blue: 1, alpha: 0.5 }), textRect); snapshot.translate(textPoint); snapshot.append_layout(layout, new Gdk.RGBA({ red: 0, green: 0, blue: 0, alpha: 1 })); let node = snapshot.to_node(); let renderer = this._mapView.get_native().get_renderer(); let texture = renderer.render_texture(node, rect); let path = GLib.build_filenamev([this._folder, this._fileName]); let success = texture.save_to_png(path); if (success) { this.response(ExportViewDialog.Response.SUCCESS); } else { this.transient_for.showToast(_("Unable to export view")); this.response(ExportViewDialog.Response.CANCEL); } } } GObject.registerClass({ Template: 'resource:///org/gnome/Maps/ui/export-view-dialog.ui', InternalChildren: [ 'exportButton', 'cancelButton', 'filenameEntry', 'fileChooserButton', 'previewArea'], }, ExportViewDialog); 07070100000203000081A40000000000000000000000016641340900000778000000000000000000000000000000000000002800000000gnome-maps-46.11/src/favoriteListRow.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2024, Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ import gettext from 'gettext'; import Adw from 'gi://Adw'; import GObject from 'gi://GObject'; import Gtk from 'gi://Gtk'; import {PlaceListRow} from './placeListRow.js'; const _ = gettext.gettext; export class FavoriteListRow extends PlaceListRow { constructor({ placeItem, filter, ...params} ) { super({ place: placeItem.place, showSecondaryIcon: false, ...params} ); this._placeItem = placeItem; this._filter = filter; } _onRemoveClicked() { const undoToast = new Adw.Toast({ title: _("Favorite removed"), button_label: _("Undo") }); undoToast.connect('button-clicked', () => { this._placeItem.isFavorite = true; this._filter.changed(Gtk.FilterChange.DIFFERENT); }); this.get_root().addToast(undoToast); this._placeItem.isFavorite = false; this._filter.changed(Gtk.FilterChange.DIFFERENT); } } GObject.registerClass({ Template: 'resource:///org/gnome/Maps/ui/favorite-list-row.ui', }, FavoriteListRow); 07070100000204000081A40000000000000000000000016641340900000CA1000000000000000000000000000000000000002900000000gnome-maps-46.11/src/favoritesPopover.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Jonas Danielsson */ import GLib from 'gi://GLib'; import GObject from 'gi://GObject'; import Gtk from 'gi://Gtk'; import {Application} from './application.js'; import {FavoriteListRow} from './favoriteListRow.js'; import {PlaceStore} from './placeStore.js'; const _N_VISIBLE = 6; export class FavoritesPopover extends Gtk.Popover { constructor({mapView, ...params}) { super(params); this._mapView = mapView; this._rows = 0; this._filter = Gtk.CustomFilter.new((placeItem) => placeItem.isFavorite); this._model = new Gtk.FilterListModel({ model: Application.placeStore, filter: this._filter }); this.connect('show', () => this._filter.changed(Gtk.FilterChange.DIFFERENT)); this._model.connect('items-changed', this._updateList.bind(this)); this._entry.connect('changed', () => this._list.invalidate_filter()); this._list.connect('row-activated', (list, row) => { this.hide(); mapView.showPlace(row.place, true); }); this._list.set_filter_func((row) => { return row.place.match(this._entry.text); }); this._updateList(); } _updateList() { let listRows = []; for (let row of this._list) { if (row instanceof Gtk.ListBoxRow) listRows.push(row); } for (let row of listRows) { this._list.remove(row); } let rows = 0; for (let i = 0; i < this._model.n_items; i++) { const placeItem = this._model.get_item(i); let row = new FavoriteListRow({ placeItem: placeItem, filter: this._filter, can_focus: true }); this._list.insert(row, -1); rows++; } this._stack.set_visible_child(rows === 0 ? this._empty : this._mainBox); this._entryBox.visible = rows > _N_VISIBLE; } } GObject.registerClass({ Template: 'resource:///org/gnome/Maps/ui/favorites-popover.ui', InternalChildren: [ 'stack', 'empty', 'mainBox', 'entryBox', 'entry', 'scrolledWindow', 'list' ] }, FavoritesPopover); 07070100000205000081ED0000000000000000000000016641340900000528000000000000000000000000000000000000002600000000gnome-maps-46.11/src/fitShapeLayer.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Szymon Kłos */ import GObject from 'gi://GObject'; import {ShapeLayer} from './shapeLayer.js'; import * as Togeojson from './togeojson/togeojson.js'; export class FitShapeLayer extends ShapeLayer { static mimeTypes = ['application/fits' ]; static displayName = 'FIT'; static createInstance(params) { return new FitShapeLayer(params); }; _parseContent() { let json = Togeojson.toGeoJSON.fit(this._fileContents.buffer); this._mapSource.parse(json); } } GObject.registerClass(FitShapeLayer); 07070100000206000081A40000000000000000000000016641340900000698000000000000000000000000000000000000002A00000000gnome-maps-46.11/src/geoJSONShapeLayer.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Hashem Nasarat */ import GObject from 'gi://GObject'; import {ShapeLayer} from './shapeLayer.js'; import * as Utils from './utils.js'; export class GeoJSONShapeLayer extends ShapeLayer { static mimeTypes = ['application/vnd.geo+json', 'application/geo+json', 'application/json']; static displayName = 'GeoJSON'; static createInstance(params) { return new GeoJSONShapeLayer(params); }; getName() { /* Special Case since this file extension contains 2 periods */ let suffix = '.geo.json'; if (this.filename.endsWith(suffix)) return this.filename.replace(new RegExp(suffix + '$'), ''); else return super.getName(); } _parseContent() { this._mapSource.parse(JSON.parse(Utils.getBufferText(this._fileContents))); } } GObject.registerClass(GeoJSONShapeLayer); 07070100000207000081A4000000000000000000000001664134090000208D000000000000000000000000000000000000002600000000gnome-maps-46.11/src/geoJSONSource.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA * * Author: Jonas Danielsson */ import Cairo from 'cairo'; import Gdk from 'gi://Gdk'; import GLib from 'gi://GLib'; import GObject from 'gi://GObject'; import Shumate from 'gi://Shumate'; import GnomeMaps from 'gi://GnomeMaps'; import {BoundingBox} from './boundingBox.js'; import * as Geojsonvt from './geojsonvt/geojsonvt.js'; import {Location} from './location.js'; import {Place} from './place.js'; import {PlaceMarker} from './placeMarker.js'; import * as Utils from './utils.js'; import {GeoJSONStyle} from './geoJSONStyle.js'; import {MapView} from './mapView.js'; const TileFeature = { POINT: 1, LINESTRING: 2, POLYGON: 3 }; export class GeoJSONSource extends GnomeMaps.SyncMapSource { constructor({mapView, markerLayer, filename, ...params}) { super(params); this._mapView = mapView; this._markerLayer = markerLayer; this._bbox = new BoundingBox(); this._filename = filename; this.tile_size = mapView.map.viewport.reference_map_source.tile_size; this.max_zoom_level = 20; this.min_zoom_level = 0; } get bbox() { return this._bbox; } vfunc_fill_tile(tile) { if (tile.get_state() === Shumate.State.DONE) return; this._renderTile(tile); } _validate([lon, lat]) { if ((-180 <= lon && lon <= 180) && (-90 <= lat && lat <= 90)) { return; } throw new Error(_("invalid coordinate")); } _compose(coordinates) { coordinates.forEach((coordinate) => { this._validate(coordinate); this._bbox.extend(coordinate[1], coordinate[0]); }); } _clampBBox() { this._bbox.top = Math.min(this._bbox.top, MapView.MAX_LATITUDE); this._bbox.left = Math.max(this._bbox.left, MapView.MIN_LONGITUDE); this._bbox.bottom = Math.max(this._bbox.bottom, MapView.MIN_LATITUDE); this._bbox.right = Math.min(this._bbox.right, MapView.MAX_LONGITUDE); } _parseLineString(coordinates) { this._compose(coordinates); } _parsePolygon(coordinates) { coordinates.forEach((coordinate) => this._compose(coordinate)); } _parsePoint(coordinates, properties) { let name = null, description = null; if (properties) { name = properties.title ?? properties.name; description = properties.description; } this._validate(coordinates); this._bbox.extend(coordinates[1], coordinates[0]); let location = new Location({ latitude: coordinates[1], longitude: coordinates[0] }); let place = new Place({ name, description, source: this._filename, store: false, location: location }); let placeMarker = new PlaceMarker({ place: place, mapView: this._mapView }); this._markerLayer.add_marker(placeMarker); } _parseGeometry(geometry, properties) { if(!geometry) throw new Error(_("parse error")); switch(geometry.type) { case 'LineString': this._parseLineString(geometry.coordinates); break; case 'MultiLineString': geometry.coordinates.forEach((coordinate) => { this._parseLineString(coordinate); }); break; case 'Polygon': this._parsePolygon(geometry.coordinates); break; case 'MultiPolygon': geometry.coordinates.forEach((coordinate) => { this._parsePolygon(coordinate); }); break; case 'Point': this._parsePoint(geometry.coordinates, properties); break; case 'MultiPoint': geometry.coordinates.forEach((coordinate, properties) => { this._parsePoint(coordinate,properties); }); break; default: throw new Error(_("unknown geometry")); } } _parseInternal(root) { if (!root || !root.type) throw new Error(_("parse error")); switch(root.type) { case 'FeatureCollection': root.features.forEach((feature) => { this._parseGeometry(feature.geometry, feature.properties); }); break; case 'Feature': this._parseGeometry(root.geometry, root.properties); break; case 'GeometryCollection': if (!root.geometries) throw new Error(_("parse error")); root.geometries.forEach((g) => this._parseGeometry(g)); break; default: this._parseGeometry(root); } } parse(json) { this._parseInternal(json); this._tileIndex = Geojsonvt.geojsonvt(json, { extent: this.tile_size, maxZoom: this.max_zoom_level }); this._clampBBox(); } _renderTile(tile) { let tileJSON = this._tileIndex.getTile(tile.zoom_level, tile.x, tile.y); let surface = new Cairo.ImageSurface(Cairo.Format.ARGB32, this.tile_size, this.tile_size); let cr = new Cairo.Context(surface); cr.setOperator(Cairo.Operator.CLEAR); cr.paint(); cr.setOperator(Cairo.Operator.OVER); cr.setFillRule(Cairo.FillRule.EVEN_ODD); if (!tileJSON) { return; } tileJSON.features.forEach((feature) => { if (feature.type === TileFeature.POINT) return; let geoJSONStyleObj = GeoJSONStyle.parseSimpleStyle(feature.tags); feature.geometry.forEach((geometry) => { let first = true; cr.moveTo(0, 0); cr.setLineWidth(geoJSONStyleObj.lineWidth); cr.setSourceRGBA(geoJSONStyleObj.color.red, geoJSONStyleObj.color.green, geoJSONStyleObj.color.blue, geoJSONStyleObj.alpha); geometry.forEach(function(coord) { if (first) { cr.moveTo(coord[0], coord[1]); first = false; } else { cr.lineTo(coord[0], coord[1]); } }); }); if (feature.type === TileFeature.POLYGON) { cr.closePath(); cr.strokePreserve(); cr.setSourceRGBA(geoJSONStyleObj.fillColor.red, geoJSONStyleObj.fillColor.green, geoJSONStyleObj.fillColor.blue, geoJSONStyleObj.fillAlpha); cr.fill(); } else { cr.stroke(); } }); let paintable = Gdk.Texture.new_for_pixbuf(Gdk.pixbuf_get_from_surface(surface, 0, 0, this.tile_size, this.tile_size)); tile.set_paintable(paintable); tile.state = Shumate.State.DONE; } } GObject.registerClass(GeoJSONSource); 07070100000208000081A40000000000000000000000016641340900000C69000000000000000000000000000000000000002500000000gnome-maps-46.11/src/geoJSONStyle.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA * * Author: Alaf Azam */ const DEFAULT_LINE_WIDTH = 5; const DEFAULT_COLOR = '69B1FF'; export class GeoJSONStyle { static parseSimpleStyle(tags) { return new GeoJSONStyle({ alpha: tags['stroke-opacity'], fillAlpha: tags['fill-opacity'], color: tags['stroke'], fillColor: tags['fill'], lineWidth: tags['stroke-width'] }); } constructor(params) { if (params.lineWidth || params.lineWidth === 0) this.lineWidth = params.lineWidth; else this.lineWidth = DEFAULT_LINE_WIDTH; if (params.alpha || params.alpha === 0) this.alpha = params.alpha; else this.alpha = 1; if (params.fillAlpha || params.fillAlpha === 0) this.fillAlpha = params.fillAlpha; else this.fillAlpha = 0.25; this.color = this._hexToColor(params.color || DEFAULT_COLOR); this.fillColor = this._hexToColor(params.fillColor) || { red: 0.37, green: 0.62, blue: 0.87 }; } _hexToColor(colorString) { let color = null; if (!colorString) return null; if (colorString.startsWith('#')) { colorString = colorString.slice(1); } if (colorString.length === 3) { colorString = colorString.match(/([0-9a-f]{3})$/i); if (colorString) { color = { red: (parseInt(colorString[0].chatAt(0), 16) * 0x11)/255, green: (parseInt(colorString[0].chatAt(1), 16) * 0x11)/255, blue: (parseInt(colorString[0].chatAt(2), 16) * 0x11)/255 }; } } else { colorString = colorString.match(/([0-9a-f]{6})$/i); if (colorString) { color = { red: parseInt(colorString[0].substr(0, 2), 16)/255, green: parseInt(colorString[0].substr(2, 2), 16)/255, blue: parseInt(colorString[0].substr(4, 2), 16)/255 }; } } return color; } } 07070100000209000081A40000000000000000000000016641340900001077000000000000000000000000000000000000002000000000gnome-maps-46.11/src/geoclue.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2011, 2012, 2013 Red Hat, Inc. * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Zeeshan Ali (Khattak) */ import GObject from 'gi://GObject'; import GClue from 'gi://Geoclue'; import Gio from 'gi://Gio'; import {Place} from './place.js'; import {Location} from './location.js'; import * as Utils from './utils.js'; export const State = { INITIAL: 0, ON: 1, DENIED: 2, FAILED: 3 }; export class Geoclue extends GObject.Object { set state(s) { this._state = s; this.notify('state'); } get state() { return this._state; } constructor() { super(); this.place = null; this._state = State.INITIAL; this.start(null); } start(callback) { let id = pkg.name; let level = GClue.AccuracyLevel.EXACT; GClue.Simple.new(id, level, null, (object, result) => { try { this._simple = GClue.Simple.new_finish(result); } catch (e) { Utils.debug("GeoClue2 service: " + e.message); if (e.matches(Gio.DBusError, Gio.DBusError.ACCESS_DENIED)) this.state = State.DENIED; else this.state = State.FAILED; if (callback) callback(false); return; } this._simple.connect('notify::location', () => this._onLocationNotify(this._simple)); // geoclue doesn't use a client proxy inside the flatpak sandbox if (this._simple.client) { this._simple.client.connect('notify::active', () => { this.state = this._simple.client.active ? State.ON : State.DENIED; }); } this.state = State.ON; this._onLocationNotify(this._simple); if (callback) callback(true); }); } _onLocationNotify(simple) { let geoclueLocation = simple.get_location(); let location = new Location({ latitude: geoclueLocation.latitude, longitude: geoclueLocation.longitude, accuracy: geoclueLocation.accuracy, heading: geoclueLocation.heading, description: geoclueLocation.description }); this._updateLocation(location); } _updateLocation(location) { if (!this.place) this.place = new Place({ name: _("Current Location"), store: false, isCurrentLocation: true }); this.place.location = location; this.emit('location-changed'); Utils.debug("Updated location: " + location.description + " (" + location.latitude + ", " + location.longitude + ", accuracy = " + location.accuracy + " m)"); } } GObject.registerClass({ Signals: { 'location-changed': { } }, Properties: { 'state': GObject.ParamSpec.int('state', '', '', GObject.ParamFlags.READABLE | GObject.ParamFlags.WRITABLE, State.INITIAL, State.FAILED, State.INITIAL) }, }, Geoclue); 0707010000020A000081A400000000000000000000000166413409000004E5000000000000000000000000000000000000002000000000gnome-maps-46.11/src/geocode.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2019 Marcus Lundblad. * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ import * as Service from './service.js'; import {GraphHopperGeocode} from './graphHopperGeocode.js'; import {PhotonGeocode} from './photonGeocode.js'; var _geocoder = null; export function getGeocoder() { if (!_geocoder) { if (Service.getService().photonGeocode) _geocoder = new PhotonGeocode(); else _geocoder = new GraphHopperGeocode(); } return _geocoder; } 0707010000020B000041ED0000000000000000000000026641340900000000000000000000000000000000000000000000002000000000gnome-maps-46.11/src/geojson-vt0707010000020C000081A400000000000000000000000166413409000002D5000000000000000000000000000000000000002800000000gnome-maps-46.11/src/geojson-vt/LICENSECopyright (c) 2015, Mapbox Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 0707010000020D000081A400000000000000000000000166413409000010B0000000000000000000000000000000000000002800000000gnome-maps-46.11/src/geojson-vt/clip.js'use strict'; /* clip features between two axis-parallel lines: * | | * ___|___ | / * / | \____|____/ * | | */ export function clip(features, scale, k1, k2, axis, intersect, minAll, maxAll) { k1 /= scale; k2 /= scale; if (minAll >= k1 && maxAll <= k2) return features; // trivial accept else if (minAll > k2 || maxAll < k1) return null; // trivial reject var clipped = []; for (var i = 0; i < features.length; i++) { var feature = features[i], geometry = feature.geometry, type = feature.type, min, max; min = feature.min[axis]; max = feature.max[axis]; if (min >= k1 && max <= k2) { // trivial accept clipped.push(feature); continue; } else if (min > k2 || max < k1) continue; // trivial reject var slices = type === 1 ? clipPoints(geometry, k1, k2, axis) : clipGeometry(geometry, k1, k2, axis, intersect, type === 3); if (slices.length) { // if a feature got clipped, it will likely get clipped on the next zoom level as well, // so there's no need to recalculate bboxes clipped.push({ geometry: slices, type: type, tags: features[i].tags || null, min: feature.min, max: feature.max }); } } return clipped.length ? clipped : null; } function clipPoints(geometry, k1, k2, axis) { var slice = []; for (var i = 0; i < geometry.length; i++) { var a = geometry[i], ak = a[axis]; if (ak >= k1 && ak <= k2) slice.push(a); } return slice; } function clipGeometry(geometry, k1, k2, axis, intersect, closed) { var slices = []; for (var i = 0; i < geometry.length; i++) { var ak = 0, bk = 0, b = null, points = geometry[i], area = points.area, dist = points.dist, len = points.length, a, j, last; var slice = []; for (j = 0; j < len - 1; j++) { a = b || points[j]; b = points[j + 1]; ak = bk || a[axis]; bk = b[axis]; if (ak < k1) { if ((bk > k2)) { // ---|-----|--> slice.push(intersect(a, b, k1), intersect(a, b, k2)); if (!closed) slice = newSlice(slices, slice, area, dist); } else if (bk >= k1) slice.push(intersect(a, b, k1)); // ---|--> | } else if (ak > k2) { if ((bk < k1)) { // <--|-----|--- slice.push(intersect(a, b, k2), intersect(a, b, k1)); if (!closed) slice = newSlice(slices, slice, area, dist); } else if (bk <= k2) slice.push(intersect(a, b, k2)); // | <--|--- } else { slice.push(a); if (bk < k1) { // <--|--- | slice.push(intersect(a, b, k1)); if (!closed) slice = newSlice(slices, slice, area, dist); } else if (bk > k2) { // | ---|--> slice.push(intersect(a, b, k2)); if (!closed) slice = newSlice(slices, slice, area, dist); } // | --> | } } // add the last point a = points[len - 1]; ak = a[axis]; if (ak >= k1 && ak <= k2) slice.push(a); // close the polygon if its endpoints are not the same after clipping last = slice[slice.length - 1]; if (closed && last && (slice[0][0] !== last[0] || slice[0][1] !== last[1])) slice.push(slice[0]); // add the final slice newSlice(slices, slice, area, dist); } return slices; } function newSlice(slices, slice, area, dist) { if (slice.length) { // we don't recalculate the area/length of the unclipped geometry because the case where it goes // below the visibility threshold as a result of clipping is rare, so we avoid doing unnecessary work slice.area = area; slice.dist = dist; slices.push(slice); } return []; } 0707010000020E000081A40000000000000000000000016641340900001049000000000000000000000000000000000000002B00000000gnome-maps-46.11/src/geojson-vt/convert.js'use strict'; import {simplify} from './simplify.js'; // converts GeoJSON feature into an intermediate projected JSON vector format with simplification data export function convert(data, tolerance) { var features = []; if (data.type === 'FeatureCollection') { for (var i = 0; i < data.features.length; i++) { convertFeature(features, data.features[i], tolerance); } } else if (data.type === 'Feature') { convertFeature(features, data, tolerance); } else { // single geometry or a geometry collection convertFeature(features, {geometry: data}, tolerance); } return features; } function convertFeature(features, feature, tolerance) { if (feature.geometry === null) { // ignore features with null geometry return; } var geom = feature.geometry, type = geom.type, coords = geom.coordinates, tags = feature.properties, i, j, rings; if (type === 'Point') { features.push(create(tags, 1, [projectPoint(coords)])); } else if (type === 'MultiPoint') { features.push(create(tags, 1, project(coords))); } else if (type === 'LineString') { features.push(create(tags, 2, [project(coords, tolerance)])); } else if (type === 'MultiLineString' || type === 'Polygon') { rings = []; for (i = 0; i < coords.length; i++) { rings.push(project(coords[i], tolerance)); } features.push(create(tags, type === 'Polygon' ? 3 : 2, rings)); } else if (type === 'MultiPolygon') { rings = []; for (i = 0; i < coords.length; i++) { for (j = 0; j < coords[i].length; j++) { rings.push(project(coords[i][j], tolerance)); } } features.push(create(tags, 3, rings)); } else if (type === 'GeometryCollection') { for (i = 0; i < geom.geometries.length; i++) { convertFeature(features, { geometry: geom.geometries[i], properties: tags }, tolerance); } } else { throw new Error('Input data is not a valid GeoJSON object.'); } } function create(tags, type, geometry) { var feature = { geometry: geometry, type: type, tags: tags || null, min: [2, 1], // initial bbox values; max: [-1, 0] // note that coords are usually in [0..1] range }; calcBBox(feature); return feature; } function project(lonlats, tolerance) { var projected = []; for (var i = 0; i < lonlats.length; i++) { projected.push(projectPoint(lonlats[i])); } if (tolerance) { simplify(projected, tolerance); calcSize(projected); } return projected; } function projectPoint(p) { var sin = Math.sin(p[1] * Math.PI / 180), x = (p[0] / 360 + 0.5), y = (0.5 - 0.25 * Math.log((1 + sin) / (1 - sin)) / Math.PI); y = y < 0 ? 0 : y > 1 ? 1 : y; return [x, y, 0]; } // calculate area and length of the poly function calcSize(points) { var area = 0, dist = 0; for (var i = 0, a, b; i < points.length - 1; i++) { a = b || points[i]; b = points[i + 1]; area += a[0] * b[1] - b[0] * a[1]; // use Manhattan distance instead of Euclidian one to avoid expensive square root computation dist += Math.abs(b[0] - a[0]) + Math.abs(b[1] - a[1]); } points.area = Math.abs(area / 2); points.dist = dist; } // calculate the feature bounding box for faster clipping later function calcBBox(feature) { var geometry = feature.geometry, min = feature.min, max = feature.max; if (feature.type === 1) calcRingBBox(min, max, geometry); else for (var i = 0; i < geometry.length; i++) calcRingBBox(min, max, geometry[i]); return feature; } function calcRingBBox(min, max, points) { for (var i = 0, p; i < points.length; i++) { p = points[i]; min[0] = Math.min(p[0], min[0]); max[0] = Math.max(p[0], max[0]); min[1] = Math.min(p[1], min[1]); max[1] = Math.max(p[1], max[1]); } } 0707010000020F000081A40000000000000000000000016641340900002002000000000000000000000000000000000000002900000000gnome-maps-46.11/src/geojson-vt/index.js'use strict'; import {convert} from './convert.js'; import {transformTile, transformPoint} from './transform.js'; import {clip} from './clip.js'; import {createTile} from './tile.js'; import {wrap} from './wrap.js'; const transform = { tile: transformTile, point: transformPoint }; export function geojsonvt(data, options) { return new GeoJSONVT(data, options); } function GeoJSONVT(data, options) { options = this.options = extend(Object.create(this.options), options); var debug = options.debug; if (debug) console.time('preprocess data'); var z2 = 1 << options.maxZoom, // 2^z features = convert(data, options.tolerance / (z2 * options.extent)); this.tiles = {}; this.tileCoords = []; if (debug) { console.timeEnd('preprocess data'); console.log('index: maxZoom: %d, maxPoints: %d', options.indexMaxZoom, options.indexMaxPoints); console.time('generate tiles'); this.stats = {}; this.total = 0; } features = wrap(features, options.buffer / options.extent, intersectX); // start slicing from the top tile down if (features.length) this.splitTile(features, 0, 0, 0); if (debug) { if (features.length) console.log('features: %d, points: %d', this.tiles[0].numFeatures, this.tiles[0].numPoints); console.timeEnd('generate tiles'); console.log('tiles generated:', this.total, JSON.stringify(this.stats)); } } GeoJSONVT.prototype.options = { maxZoom: 14, // max zoom to preserve detail on indexMaxZoom: 5, // max zoom in the tile index indexMaxPoints: 100000, // max number of points per tile in the tile index solidChildren: false, // whether to tile solid square tiles further tolerance: 3, // simplification tolerance (higher means simpler) extent: 4096, // tile extent buffer: 64, // tile buffer on each side debug: 0 // logging level (0, 1 or 2) }; GeoJSONVT.prototype.splitTile = function (features, z, x, y, cz, cx, cy) { var stack = [features, z, x, y], options = this.options, debug = options.debug, solid = null; // avoid recursion by using a processing queue while (stack.length) { y = stack.pop(); x = stack.pop(); z = stack.pop(); features = stack.pop(); var z2 = 1 << z, id = toID(z, x, y), tile = this.tiles[id], tileTolerance = z === options.maxZoom ? 0 : options.tolerance / (z2 * options.extent); if (!tile) { if (debug > 1) console.time('creation'); tile = this.tiles[id] = createTile(features, z2, x, y, tileTolerance, z === options.maxZoom); this.tileCoords.push({z: z, x: x, y: y}); if (debug) { if (debug > 1) { console.log('tile z%d-%d-%d (features: %d, points: %d, simplified: %d)', z, x, y, tile.numFeatures, tile.numPoints, tile.numSimplified); console.timeEnd('creation'); } var key = 'z' + z; this.stats[key] = (this.stats[key] || 0) + 1; this.total++; } } // save reference to original geometry in tile so that we can drill down later if we stop now tile.source = features; // if it's the first-pass tiling if (!cz) { // stop tiling if we reached max zoom, or if the tile is too simple if (z === options.indexMaxZoom || tile.numPoints <= options.indexMaxPoints) continue; // if a drilldown to a specific tile } else { // stop tiling if we reached base zoom or our target tile zoom if (z === options.maxZoom || z === cz) continue; // stop tiling if it's not an ancestor of the target tile var m = 1 << (cz - z); if (x !== Math.floor(cx / m) || y !== Math.floor(cy / m)) continue; } // stop tiling if the tile is solid clipped square if (!options.solidChildren && isClippedSquare(tile, options.extent, options.buffer)) { if (cz) solid = z; // and remember the zoom if we're drilling down continue; } // if we slice further down, no need to keep source geometry tile.source = null; if (debug > 1) console.time('clipping'); // values we'll use for clipping var k1 = 0.5 * options.buffer / options.extent, k2 = 0.5 - k1, k3 = 0.5 + k1, k4 = 1 + k1, tl, bl, tr, br, left, right; tl = bl = tr = br = null; left = clip(features, z2, x - k1, x + k3, 0, intersectX, tile.min[0], tile.max[0]); right = clip(features, z2, x + k2, x + k4, 0, intersectX, tile.min[0], tile.max[0]); if (left) { tl = clip(left, z2, y - k1, y + k3, 1, intersectY, tile.min[1], tile.max[1]); bl = clip(left, z2, y + k2, y + k4, 1, intersectY, tile.min[1], tile.max[1]); } if (right) { tr = clip(right, z2, y - k1, y + k3, 1, intersectY, tile.min[1], tile.max[1]); br = clip(right, z2, y + k2, y + k4, 1, intersectY, tile.min[1], tile.max[1]); } if (debug > 1) console.timeEnd('clipping'); if (tl) stack.push(tl, z + 1, x * 2, y * 2); if (bl) stack.push(bl, z + 1, x * 2, y * 2 + 1); if (tr) stack.push(tr, z + 1, x * 2 + 1, y * 2); if (br) stack.push(br, z + 1, x * 2 + 1, y * 2 + 1); } return solid; }; GeoJSONVT.prototype.getTile = function (z, x, y) { var options = this.options, extent = options.extent, debug = options.debug; var z2 = 1 << z; x = ((x % z2) + z2) % z2; // wrap tile x coordinate var id = toID(z, x, y); if (this.tiles[id]) return transform.tile(this.tiles[id], extent); if (debug > 1) console.log('drilling down to z%d-%d-%d', z, x, y); var z0 = z, x0 = x, y0 = y, parent; while (!parent && z0 > 0) { z0--; x0 = Math.floor(x0 / 2); y0 = Math.floor(y0 / 2); parent = this.tiles[toID(z0, x0, y0)]; } if (!parent || !parent.source) return null; // if we found a parent tile containing the original geometry, we can drill down from it if (debug > 1) console.log('found parent tile z%d-%d-%d', z0, x0, y0); // it parent tile is a solid clipped square, return it instead since it's identical if (isClippedSquare(parent, extent, options.buffer)) return transform.tile(parent, extent); if (debug > 1) console.time('drilling down'); var solid = this.splitTile(parent.source, z0, x0, y0, z, x, y); if (debug > 1) console.timeEnd('drilling down'); // one of the parent tiles was a solid clipped square if (solid !== null) { var m = 1 << (z - solid); id = toID(solid, Math.floor(x / m), Math.floor(y / m)); } return this.tiles[id] ? transform.tile(this.tiles[id], extent) : null; }; function toID(z, x, y) { return (((1 << z) * y + x) * 32) + z; } function intersectX(a, b, x) { return [x, (x - a[0]) * (b[1] - a[1]) / (b[0] - a[0]) + a[1], 1]; } function intersectY(a, b, y) { return [(y - a[1]) * (b[0] - a[0]) / (b[1] - a[1]) + a[0], y, 1]; } function extend(dest, src) { for (var i in src) dest[i] = src[i]; return dest; } // checks whether a tile is a whole-area fill after clipping; if it is, there's no sense slicing it further function isClippedSquare(tile, extent, buffer) { var features = tile.source; if (features.length !== 1) return false; var feature = features[0]; if (feature.type !== 3 || feature.geometry.length > 1) return false; var len = feature.geometry[0].length; if (len !== 5) return false; for (var i = 0; i < len; i++) { var p = transform.point(feature.geometry[0][i], extent, tile.z2, tile.x, tile.y); if ((p[0] !== -buffer && p[0] !== extent + buffer) || (p[1] !== -buffer && p[1] !== extent + buffer)) return false; } return true; } 07070100000210000081A4000000000000000000000001664134090000065C000000000000000000000000000000000000002C00000000gnome-maps-46.11/src/geojson-vt/simplify.js'use strict'; // calculate simplification data using optimized Douglas-Peucker algorithm export function simplify(points, tolerance) { var sqTolerance = tolerance * tolerance, len = points.length, first = 0, last = len - 1, stack = [], i, maxSqDist, sqDist, index; // always retain the endpoints (1 is the max value) points[first][2] = 1; points[last][2] = 1; // avoid recursion by using a stack while (last) { maxSqDist = 0; for (i = first + 1; i < last; i++) { sqDist = getSqSegDist(points[i], points[first], points[last]); if (sqDist > maxSqDist) { index = i; maxSqDist = sqDist; } } if (maxSqDist > sqTolerance) { points[index][2] = maxSqDist; // save the point importance in squared pixels as a z coordinate stack.push(first); stack.push(index); first = index; } else { last = stack.pop(); first = stack.pop(); } } } // square distance from a point to a segment function getSqSegDist(p, a, b) { var x = a[0], y = a[1], bx = b[0], by = b[1], px = p[0], py = p[1], dx = bx - x, dy = by - y; if (dx !== 0 || dy !== 0) { var t = ((px - x) * dx + (py - y) * dy) / (dx * dx + dy * dy); if (t > 1) { x = bx; y = by; } else if (t > 0) { x += dx * t; y += dy * t; } } dx = px - x; dy = py - y; return dx * dx + dy * dy; } 07070100000211000081A400000000000000000000000166413409000008DF000000000000000000000000000000000000002800000000gnome-maps-46.11/src/geojson-vt/tile.js'use strict'; export function createTile(features, z2, tx, ty, tolerance, noSimplify) { var tile = { features: [], numPoints: 0, numSimplified: 0, numFeatures: 0, source: null, x: tx, y: ty, z2: z2, transformed: false, min: [2, 1], max: [-1, 0] }; for (var i = 0; i < features.length; i++) { tile.numFeatures++; addFeature(tile, features[i], tolerance, noSimplify); var min = features[i].min, max = features[i].max; if (min[0] < tile.min[0]) tile.min[0] = min[0]; if (min[1] < tile.min[1]) tile.min[1] = min[1]; if (max[0] > tile.max[0]) tile.max[0] = max[0]; if (max[1] > tile.max[1]) tile.max[1] = max[1]; } return tile; } function addFeature(tile, feature, tolerance, noSimplify) { var geom = feature.geometry, type = feature.type, simplified = [], sqTolerance = tolerance * tolerance, i, j, ring, p; if (type === 1) { for (i = 0; i < geom.length; i++) { simplified.push(geom[i]); tile.numPoints++; tile.numSimplified++; } } else { // simplify and transform projected coordinates for tile geometry for (i = 0; i < geom.length; i++) { ring = geom[i]; // filter out tiny polylines & polygons if (!noSimplify && ((type === 2 && ring.dist < tolerance) || (type === 3 && ring.area < sqTolerance))) { tile.numPoints += ring.length; continue; } var simplifiedRing = []; for (j = 0; j < ring.length; j++) { p = ring[j]; // keep points with importance > tolerance if (noSimplify || p[2] > sqTolerance) { simplifiedRing.push(p); tile.numSimplified++; } tile.numPoints++; } simplified.push(simplifiedRing); } } if (simplified.length) { tile.features.push({ geometry: simplified, type: type, tags: feature.tags || null }); } } 07070100000212000081A4000000000000000000000001664134090000042D000000000000000000000000000000000000002D00000000gnome-maps-46.11/src/geojson-vt/transform.js'use strict'; // Transforms the coordinates of each feature in the given tile from // mercator-projected space into (extent x extent) tile space. export function transformTile(tile, extent) { if (tile.transformed) return tile; var z2 = tile.z2, tx = tile.x, ty = tile.y, i, j, k; for (i = 0; i < tile.features.length; i++) { var feature = tile.features[i], geom = feature.geometry, type = feature.type; if (type === 1) { for (j = 0; j < geom.length; j++) geom[j] = transformPoint(geom[j], extent, z2, tx, ty); } else { for (j = 0; j < geom.length; j++) { var ring = geom[j]; for (k = 0; k < ring.length; k++) ring[k] = transformPoint(ring[k], extent, z2, tx, ty); } } } tile.transformed = true; return tile; } export function transformPoint(p, extent, z2, tx, ty) { var x = Math.round(extent * (p[0] * z2 - tx)), y = Math.round(extent * (p[1] * z2 - ty)); return [x, y]; } 07070100000213000081A400000000000000000000000166413409000006EE000000000000000000000000000000000000002800000000gnome-maps-46.11/src/geojson-vt/wrap.js'use strict'; import {clip} from './clip.js'; export function wrap(features, buffer, intersectX) { var merged = features, left = clip(features, 1, -1 - buffer, buffer, 0, intersectX, -1, 2), // left world copy right = clip(features, 1, 1 - buffer, 2 + buffer, 0, intersectX, -1, 2); // right world copy if (left || right) { merged = clip(features, 1, -buffer, 1 + buffer, 0, intersectX, -1, 2); // center world copy if (left) merged = shiftFeatureCoords(left, 1).concat(merged); // merge left into center if (right) merged = merged.concat(shiftFeatureCoords(right, -1)); // merge right into center } return merged; } function shiftFeatureCoords(features, offset) { var newFeatures = []; for (var i = 0; i < features.length; i++) { var feature = features[i], type = feature.type; var newGeometry; if (type === 1) { newGeometry = shiftCoords(feature.geometry, offset); } else { newGeometry = []; for (var j = 0; j < feature.geometry.length; j++) { newGeometry.push(shiftCoords(feature.geometry[j], offset)); } } newFeatures.push({ geometry: newGeometry, type: type, tags: feature.tags, min: [feature.min[0] + offset, feature.min[1]], max: [feature.max[0] + offset, feature.max[1]] }); } return newFeatures; } function shiftCoords(points, offset) { var newPoints = []; newPoints.area = points.area; newPoints.dist = points.dist; for (var i = 0; i < points.length; i++) { newPoints.push([points[i][0] + offset, points[i][1], points[i][2]]); } return newPoints; } 07070100000214000081A4000000000000000000000001664134090000095D000000000000000000000000000000000000001C00000000gnome-maps-46.11/src/gfx.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2019, Marcus Lundblad. * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ import * as Color from './color.js'; /** * Draws a colored badged with rounded corners and an optional outline. * * cr: A Cairo context to draw into * bgColor: The fill color to draw the background with, represented as * a string with 8-bit HEX-encoded RGB values * outlineColor: The color to use for the outline, or null if no outline * x: pixel offset for x-coord of top-left corner of bounding box * y: pixel offset for y-coord of top-left corner of bounding box * width: The width to draw the badge * height: The height to draw the badge */ export function drawColoredBagde(cr, bgColor, outlineColor, x, y, width, height) { let bgRed = Color.parseColor(bgColor, 0); let bgGreen = Color.parseColor(bgColor, 1); let bgBlue = Color.parseColor(bgColor, 2); let radius = outlineColor ? 5 : 3; cr.newSubPath(); cr.arc(width - radius + x, radius + y, radius, -Math.PI / 2, 0); cr.arc(width - radius + x, height - radius + y, radius, 0 , Math.PI / 2); cr.arc(radius + x, height - radius + y, radius, Math.PI / 2, Math.PI); cr.arc(radius + x, radius + y, radius, Math.PI, 3 * Math.PI / 2); cr.closePath(); cr.setSourceRGB(bgRed, bgGreen, bgBlue); cr.fillPreserve(); if (outlineColor) { let outlineRed = Color.parseColor(outlineColor, 0); let outlineGreen = Color.parseColor(outlineColor, 1); let outlineBlue = Color.parseColor(outlineColor, 2); cr.setSourceRGB(outlineRed, outlineGreen, outlineBlue); cr.setLineWidth(1); cr.stroke(); } } 07070100000215000081A400000000000000000000000166413409000005EE000000000000000000000000000000000000002600000000gnome-maps-46.11/src/gpxShapeLayer.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Hashem Nasarat */ import GObject from 'gi://GObject'; import {ShapeLayer} from './shapeLayer.js'; import * as Utils from './utils.js'; import * as Togeojson from './togeojson/togeojson.js'; import * as Domparser from './xmldom/domparser.js'; export class GpxShapeLayer extends ShapeLayer { static mimeTypes = ['application/gpx+xml' ]; static displayName = 'GPX'; static createInstance(params) { return new GpxShapeLayer(params); }; _parseContent() { let s = Utils.getBufferText(this._fileContents); let parser = new Domparser.DOMParser(); let json = Togeojson.toGeoJSON.gpx(parser.parseFromString(s)); this._mapSource.parse(json); } } GObject.registerClass(GpxShapeLayer); 07070100000216000081A40000000000000000000000016641340900002632000000000000000000000000000000000000002400000000gnome-maps-46.11/src/graphHopper.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2013 Mattias Bengtsson. * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Mattias Bengtsson */ import GLib from 'gi://GLib'; import Soup from 'gi://Soup'; import {BoundingBox} from './boundingBox.js'; import * as EPAF from './epaf.js'; import {Query} from './http.js'; import {TurnPoint, Route} from './route.js'; import {RouteQuery} from './routeQuery.js'; import * as Utils from './utils.js'; /** * Directional sign from the GraphHopper API. * https://github.com/graphhopper/graphhopper/blob/master/docs/web/api-doc.md */ const Sign = { UTURN: -98, UTURN_LEFT: -8, KEEP_LEFT: -7, LEAVE_ROUNDABOUT: -6, // not currently used TURN_SHARP_LEFT: -3, TURN_LEFT: -2, TURN_SLIGHT_LEFT: -1, CONTINUE_ON_STREET: 0, TURN_SLIGHT_RIGHT: 1, TURN_RIGHT: 2, TURN_SHARP_RIGHT: 3, FINISH: 4, REACHED_VIA: 5, USE_ROUNDABOUT: 6, KEEP_RIGHT: 7, UTURN_RIGHT: 8 } export class GraphHopper { get route() { return this._route; } constructor({query, route}) { this._session = new Soup.Session({ user_agent : 'gnome-maps/' + pkg.version }); this._key = "VCIHrHj0pDKb8INLpT4s5hVadNmJ1Q3vi0J4nJYP"; this._baseURL = "https://graphhopper.com/api/1/route?"; this._locale = GLib.get_language_names()[0]; this._route = route; this._query = query; } _queryGraphHopper(points, transportationType, callback) { let url = this._buildURL(points, transportationType); let msg = Soup.Message.new('GET', url); this._session.send_and_read_async(msg, GLib.PRIORITY_DEFAULT, null, (source,res) => { let bytes = this._session.send_and_read_finish(res); let body = bytes ? Utils.getBufferText(bytes.get_data()) : null; try { let result = this._parseMessage({ status_code: msg.get_status(), response_body: body, uri: url }); if (!result) callback(null, null); else callback(result, null); } catch (e) { callback(null, e); } }); } fetchRoute(points, transportationType) { this._queryGraphHopper(points, transportationType, (result, exception) => { if (exception) { Utils.debug(exception); if (this._query.latest) this._query.latest.place = null; else this.route.reset(); this.route.error(_("Route request failed.")); } else { if (!result) { if (this._query.latest) this._query.latest.place = null; else this.route.reset(); this.route.error(_("No route found.")); } else { let route = this._createRoute(result.paths[0]); this.route.update(route); } } }); } fetchRouteAsync(points, transportationType, callback) { this._queryGraphHopper(points, transportationType, (result, exception) => { if (result) { let route = this._createRoute(result.paths[0]); callback(route, exception); } else { callback(null, exception); } }); } _buildURL(points, transportation) { let locations = points.map(function(point) { return [point.place.location.latitude, point.place.location.longitude].join(','); }); let vehicle = RouteQuery.Transportation.toString(transportation); let query = new Query({ type: 'json', key: this._key, vehicle: vehicle, locale: this._locale, point: locations, debug: Utils.debugEnabled }); let url = this._baseURL + query.toString(); Utils.debug("Sending route request to: " + url); return url; } _parseMessage({ status_code, response_body, uri }) { if (status_code === 500) { log("Internal server error.\n" + "This is most likely a bug in GraphHopper"); log("Please file a bug at " + "https://github.com/graphhopper/graphhopper/issues\n" + "with the the following Graphopper request URL included:\n"); log(uri.to_string(false)); } if (status_code !== 200) return null; let result = JSON.parse(response_body); if (!Array.isArray(result.paths)) { Utils.debug("No route found"); if (result.info && Array.isArray(result.info.errors)) { result.info.errors.forEach(({ message, details }) => { Utils.debug("Message: " + message); Utils.debug("Details: " + details); }); } return null; } return result; } _createRoute(route) { let path = EPAF.decode(route.points); let turnPoints = this._createTurnPoints(path, route.instructions); let bbox = new BoundingBox(); // GH does lonlat-order bbox.extend(route.bbox[1], route.bbox[0]); bbox.extend(route.bbox[3], route.bbox[2]); return { path: path, turnPoints: turnPoints, distance: route.distance, time: route.time, bbox: bbox }; } _createTurnPoints(path, instructions) { let via = 0; let startPoint = new TurnPoint({ coordinate: path[0], type: TurnPoint.Type.START, distance: 0, instruction: _("Start!"), time: 0, turnAngle: 0 }); let rest = this._foldInstructions(instructions).map((instr) => { let type = this._createTurnPointType(instr.sign); let text = instr.text; if (type === TurnPoint.Type.VIA) { via++; let viaPlace = this._query.filledPoints[via].place; text = viaPlace.name || instr.text; } return new TurnPoint({ coordinate: path[instr.interval[0]], type: type, distance: instr.distance, instruction: text, time: instr.time, turnAngle: instr.turn_angle }); }); return [startPoint].concat(rest); } _foldInstructions(instructions) { let currInstruction = instructions[0]; let res = []; for (let i = 1; i < instructions.length; i++) { let newInstruction = instructions[i]; let newSign = newInstruction.sign; /* if the direction is to continue straight, * fold the instruction into the previous one */ if (newSign === Sign.CONTINUE_ON_STREET) { currInstruction.distance += newInstruction.distance; } else { res.push(currInstruction); currInstruction = instructions[i]; } } // push finish instruction res.push(instructions[instructions.length - 1]); return res; } _createTurnPointType(sign) { switch (sign) { case Sign.UTURN: return TurnPoint.Type.UTURN; case Sign.UTURN_LEFT: return TurnPoint.Type.UTURN_LEFT; case Sign.KEEP_LEFT: return TurnPoint.Type.KEEP_LEFT; case Sign.LEAVE_ROUNDABOUT: return TurnPoint.Type.LEAVE_ROUNDABOUT; case Sign.TURN_SHARP_LEFT: return TurnPoint.Type.SHARP_LEFT; case Sign.TURN_LEFT: return TurnPoint.Type.LEFT; case Sign.TURN_SLIGHT_LEFT: return TurnPoint.Type.SLIGHT_LEFT; case Sign.CONTINUE_ON_STREET: return TurnPoint.Type.CONTINUE; case Sign.TURN_SLIGHT_RIGHT: return TurnPoint.Type.SLIGHT_RIGHT; case Sign.TURN_RIGHT: return TurnPoint.Type.RIGHT; case Sign.TURN_SHARP_RIGHT: return TurnPoint.Type.SHARP_RIGHT; case Sign.FINISH: return TurnPoint.Type.END; case Sign.REACHED_VIA: return TurnPoint.Type.VIA; case Sign.USE_ROUNDABOUT: return TurnPoint.Type.ROUNDABOUT; case Sign.KEEP_RIGHT: return TurnPoint.Type.KEEP_RIGHT; case Sign.UTURN_RIGHT: return TurnPoint.Type.UTURN_RIGHT; default: return undefined; } } } 07070100000217000081A400000000000000000000000166413409000015DF000000000000000000000000000000000000002B00000000gnome-maps-46.11/src/graphHopperGeocode.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2019 Marcus Lundblad. * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ import GLib from 'gi://GLib'; import Soup from 'gi://Soup'; import {Application} from './application.js'; import * as HTTP from './http.js'; import * as PhotonUtils from './photonUtils.js'; import * as Service from './service.js'; import * as Utils from './utils.js'; // HTTP session timeout (in seconds) const TIMEOUT = 5; export class GraphHopperGeocode { constructor() { this._session = new Soup.Session({ user_agent : 'gnome-maps/' + pkg.version, timeout: TIMEOUT }); this._readService(); this._limit = Application.settings.get('max-search-results'); } search(string, latitude, longitude, cancellable, callback) { let url = this._buildURL(string, latitude, longitude); let msg = Soup.Message.new('GET', url); this._session.send_and_read_async(msg, GLib.PRIORITY_DEFAULT, cancellable, (source, res) => { if (cancellable.is_cancelled()) return; if (msg.get_status() !== Soup.Status.OK) { callback(null, msg.get_status()); } else { try { let buffer = this._session.send_and_read_finish(res).get_data(); let result = this._parseMessage(Utils.getBufferText(buffer)); if (!result) callback(null, null); else callback(result, null); } catch (e) { Utils.debug('Error: ' + e); callback(null, e); } } }); } reverse(latitude, longitude, callback) { let url = this._buildURL(null, latitude, longitude); let msg = Soup.Message.new('GET', url); Application.application.mark_busy(); this._session.send_and_read_async(msg, GLib.PRIORITY_DEFAULT, null, (source, res) => { Application.application.unmark_busy(); try { let buffer = this._session.send_and_read_finish(res).get_data(); let result = this._parseMessage(Utils.getBufferText(buffer)); if (!result) callback(null, null); else callback(result[0], null); } catch (e) { Utils.debug('Error: ' + e); callback(null, e); } }); } get attribution() { return Service.getService().graphHopperGeocode.attribution; } get attributionUrl() { return Service.getService().graphHopperGeocode.attributionUrl; } get name() { return 'GraphHopper Geocode'; } get url() { return 'https://docs.graphhopper.com/#tag/Geocoding-API'; } _parseMessage(message) { let json = JSON.parse(message); let result = []; let hits = json.hits; if (!hits || hits.length === 0) { Utils.debug('No hits in response'); return null; } hits.forEach(hit => { let place = this._parseHit(hit); if (place) result.push(place); }); return result; } _parseHit(hit) { let lat = hit.point.lat; let lon = hit.point.lng; return PhotonUtils.parsePlace(lat, lon, hit); } _buildURL(string, latitude, longitude) { let query = new HTTP.Query({ limit: string ? this._limit : 1, locale: this._language, key: this._apiKey }); if (latitude !== null && longitude != null) { query.add('point', latitude + ',' + longitude); if (string) query.add('location_bias_scale', PhotonUtils.LOCATION_BIAS_SCALE); } if (string) query.add('q', string); else query.add('reverse', 'true'); return `${this._baseUrl}/api/1/geocode?${query.toString()}`; } _readService() { let graphHopperGeocode = Service.getService().graphHopperGeocode; if (graphHopperGeocode) { this._baseUrl = graphHopperGeocode.baseUrl; this._apiKey = graphHopperGeocode.apiKey; let language = Utils.getLanguage(); let supportedLanguages = graphHopperGeocode.supportedLanguages ?? []; if (supportedLanguages.includes(language)) this._language = language; else this._language = null; } } } 07070100000218000081A4000000000000000000000001664134090000187C000000000000000000000000000000000000002B00000000gnome-maps-46.11/src/graphHopperTransit.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2019 Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ /** * Utilities to use GraphHopper to perform walking routes for use in * transit itineraries, for plugins not natively supporting turn-by-turn * routing for walking legs */ import Shumate from 'gi://Shumate'; import {Application} from './application.js'; import {Location} from './location.js'; import {Place} from './place.js'; import {RouteQuery, QueryPoint} from './routeQuery.js'; import {Leg} from './transitPlan.js'; /* Creates a new walking leg given start and end places, and a route * obtained from GraphHopper. If the route is undefined (which happens if * GraphHopper failed to obtain a walking route, approximate it with a * straight line. */ export function createWalkingLeg(from, to, fromName, toName, route) { let fromLocation = from.place.location; let toLocation = to.place.location; let fromCoordinate = [fromLocation.latitude, fromLocation.longitude]; let toCoordinate = [toLocation.latitude, toLocation.longitude]; let polyline = route ? route.path : createStraightPolyline(fromLocation, toLocation); let distance = route ? route.distance : fromLocation.get_distance_from(toLocation) * 1000; /* as an estimate for approximated straight-line walking legs, * assume a speed of 1 m/s to allow some extra time */ let duration = route ? route.time / 1000 : distance; let walkingInstructions = route ? route.turnPoints : null; return new Leg({ fromCoordinate: fromCoordinate, toCoordinate: toCoordinate, from: fromName, to: toName, isTransit: false, polyline: polyline, duration: duration, distance: distance, walkingInstructions: walkingInstructions }); } // create a straight-line "as the crow flies" polyline between two places function createStraightPolyline(fromLoc, toLoc) { return [new Shumate.Coordinate({ latitude: fromLoc.latitude, longitude: fromLoc.longitude }), new Shumate.Coordinate({ latitude: toLoc.latitude, longitude: toLoc.longitude })]; } var _walkingRoutes = []; /* fetches walking route and stores the route for the given coordinate * pair to avoid requesting the same route over and over from GraphHopper */ export function fetchWalkingRoute(points, callback) { let index = points[0].place.location.latitude + ',' + points[0].place.location.longitude + ';' + points[1].place.location.latitude + ',' + points[1].place.location.longitude; let route = _walkingRoutes[index]; if (!route) { Application.routingDelegator.graphHopper.fetchRouteAsync(points, RouteQuery.Transportation.PEDESTRIAN, (newRoute) => { _walkingRoutes[index] = newRoute; callback(newRoute); }); } else { callback(route); } } // create a query point from a bare coordinate (lat, lon pair) export function createQueryPointForCoord(coord) { let location = new Location({ latitude: coord[0], longitude: coord[1], accuracy: 0 }); let place = new Place({ location: location }); let point = new QueryPoint(); point.place = place; return point; } /** * Refine itineraries with walking legs retrieved from GraphHopper. * Intended for use by transit plugins where the source API doesn't give * full walking turn-by-turn routing */ export function addWalkingToItineraries(itineraries, callback) { _addWalkingToItinerariesRecursive(itineraries, 0, callback); } function _addWalkingToItinerariesRecursive(itineraries, index, callback) { if (index === itineraries.length) { callback(); } else { let itinerary = itineraries[index]; _addWalkingToLegsRecursive(itinerary.legs, 0, () => { _addWalkingToItinerariesRecursive(itineraries, index + 1, callback); }); } } function _addWalkingToLegsRecursive(legs, index, callback) { if (index === legs.length) { callback(); } else { let leg = legs[index]; if (!leg.transit) { let from = createQueryPointForCoord(leg.fromCoordinate); let to = createQueryPointForCoord(leg.toCoordinate); fetchWalkingRoute([from, to], (route) => { if (route) { let duration = route.time / 1000; /* for walking legs not in the start or end * only replace with the retrieved one if it's not * longer in duration that the previous (straight-line) * one. */ if (index === 0 || index === legs.length - 1 || duration <= leg.duration) { leg.distance = route.distance; leg.walkingInstructions = route.turnPoints; leg.polyline = route.path; } } _addWalkingToLegsRecursive(legs, index + 1, callback); }); } else { _addWalkingToLegsRecursive(legs, index + 1, callback); } } } 07070100000219000081A400000000000000000000000166413409000008B4000000000000000000000000000000000000002200000000gnome-maps-46.11/src/headerBar.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2011, 2012, 2013 Red Hat, Inc. * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Cosimo Cecchi * Zeeshan Ali (Khattak) */ import GObject from 'gi://GObject'; import Gtk from 'gi://Gtk'; import {FavoritesPopover} from './favoritesPopover.js'; import {LayersPopover} from './layersPopover.js'; import {MapView} from './mapView.js'; export class HeaderBarLeft extends Gtk.Box { constructor({mapView, ...params}) { super(params); this._layersPopover = new LayersPopover({ mapView: mapView }); this._layersButton.popover = this._layersPopover; } popdownLayersPopover() { this._layersPopover.popdown(); } } GObject.registerClass({ Template: 'resource:///org/gnome/Maps/ui/headerbar-left.ui', InternalChildren: [ 'layersButton' ] }, HeaderBarLeft); export class HeaderBarRight extends Gtk.Box { constructor(params) { let mapView = params.mapView; delete params.mapView; super(params); this._favoritesButton.popover = new FavoritesPopover({ mapView: mapView }); mapView.bind_property('routeShowing', this._printRouteButton, 'visible', GObject.BindingFlags.DEFAULT); } } GObject.registerClass({ Template: 'resource:///org/gnome/Maps/ui/headerbar-right.ui', InternalChildren: [ 'toggleSidebarButton', 'favoritesButton', 'printRouteButton' ] }, HeaderBarRight); 0707010000021A000081A40000000000000000000000016641340900000971000000000000000000000000000000000000001D00000000gnome-maps-46.11/src/http.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2013 Mattias Bengtsson. * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Mattias Bengtsson */ import GLib from 'gi://GLib'; function encode(data) { if(data === null) return null; return GLib.uri_escape_string(data.toString(), null, false); } export class Query { constructor(obj) { this._query = {}; for(let key in obj) { this.add(key, obj[key]); } } // a value === null represents an empty value add(key, value) { // Initialize query field if it isn't already let queryValue = this._query[key]; if(!Array.isArray(queryValue)) this._query[key] = []; if(Array.isArray(value)) this._query[key] = this._query[key].concat(value); else this._query[key].push(value); } /** * Get the query parameters in string form. * If useArrayNotation is given, and true, use array notation adding [] * after key if there's multiple values for that key. */ toString(useArrayNotation = false) { let vars = []; for(let key in this._query) { let values = this._query[key]; let multipleValues = values.length > 1; let encKey = encode(key) + (multipleValues && useArrayNotation ? '[]' : ''); values.forEach(function(value) { let encValue = encode(value); if(encValue !== null) vars.push([encKey, encValue].join('=')); else vars.push(encKey); }); } return vars.join('&'); } } 0707010000021B000081A40000000000000000000000016641340900002522000000000000000000000000000000000000001C00000000gnome-maps-46.11/src/hvt.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2017 Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ /* * Extended route types using HVT (Hierarchical Vehicle Type) codes from * the European TPEG standard. * https://support.google.com/transitpartners/answer/3520902 */ /* when adding an additional constant here, make sure to edit the LAST_ * constant for the corresponding block */ // rail services export const RAILWAY_SERVICE = 100; export const HIGH_SPEED_RAIL_SERVICE = 101; export const LONG_DISTANCE_TRAINS = 102; export const INTER_REGIONAL_RAIL_SERVICE = 103; export const CAR_TRANSPORT_RAIL_SERVICE = 104; export const SLEEPER_RAIL_SERVICE = 105; export const REGIONAL_RAIL_SERVICE = 106; export const TOURIST_RAILWAY_SERVICE = 107; export const RAIL_SHUTTLE = 108; export const SUBURBAN_RAILWAY = 109; export const REPLACEMENT_RAIL_SERVICE = 110; export const SPECIAL_RAIL_SERVICE = 111; export const LORRY_TRANSPORT_RAIL_SERVICE = 112; export const ALL_RAIL_SERVICES = 113; export const CROSS_COUNTRY_RAIL_SERVICE = 114; export const VEHICLE_TRANSPORT_RAIL_SERVICE = 115; export const RACK_AND_PINION_RAILWAY = 116; export const ADDITIONAL_RAIL_SERVICE = 117; export const LAST_RAIL_SERVICE = ADDITIONAL_RAIL_SERVICE; // coach services export const COACH_SERVICE = 200; export const INTERNATIONAL_COACH_SERVICE = 201; export const NATIONAL_COACH_SERVICE = 202; export const SHUTTLE_COACH_SERVICE = 203; export const REGIONAL_COACH_SERVICE = 204; export const SPECIAL_COACH_SERVICE = 205; export const SIGHTSEEING_COACH_SERVICE = 206; export const TOURIST_COACH_SERVICE = 207; export const COMMUTER_COACH_SERVICE = 208; export const ALL_COACH_SERVICES = 209; export const LAST_COACH_SERVICE = ALL_COACH_SERVICES; /// suburban railway services export const SUBURBAN_RAILWAY_SERVICE = 300; // urban railway services export const URBAN_RAILWAY_SERVICE = 400; export const URBAN_METRO_SERVICE = 401; export const URBAN_UNDERGROUND_SERVICE = 402; // this constant has the same name as 400 in the specification export const URBAN_RAILWAY_SERVICE_2 = 403; export const ALL_URBAN_RAILWAY_SERVICES = 404; export const MONORAIL = 405; export const LAST_URBAN_RAILWAY_SERVICE = MONORAIL; // metro services export const METRO_SERVICE = 500; // underground services export const UNDERGROUND_SERVICE = 600; // bus services export const BUS_SERVICE = 700; export const REGIONAL_BUS_SERVICE = 701; export const EXPRESS_BUS_SERVICE = 702; export const STOPPING_BUS_SERVICE = 703; export const LOCAL_BUS_SERVICE = 704; export const NIGHT_BUS_SERVICE = 705; export const POST_BUS_SERVICE = 706; export const SPECIAL_NEEDS_BUS_SERVICE = 707; export const MOBILITY_BUS_SERVICE = 708; export const MOBILITY_BUS_SERVICE_FOR_REGISTERED_DISABLED = 709; export const SIGHTSEEING_BUS = 710; export const SHUTTLE_BUS = 711; export const SCHOOL_BUS = 712; export const SCHOOL_AND_PUBLIC_SERVICE_BUS_SERVICE = 713; export const RAIL_REPLACEMENT_BUS_SERVICE = 714; export const DEMAND_AND_RESPONSE_BUS_SERVICE = 715; export const ALL_BUS_SERVICES = 716; export const LAST_BUS_SERVICE = ALL_BUS_SERVICES; // trolleybus services export const TROLLEYBUS_SERVICE = 800; // tram services export const TRAM_SERVICE = 900; export const CITY_TRAM_SERVICE = 901; export const LOCAL_TRAM_SERVICE = 902; export const REGIONAL_TRAM_SERVICE = 903; export const SIGHTSEEING_TRAM_SERVICE = 904; export const SHUTTLE_TRAM_SERVICE = 905; export const ALL_TRAM_SERVICES = 906; export const LAST_TRAM_SERVICE = ALL_TRAM_SERVICES; // water transport services export const WATER_TRANSPORT_SERVICE = 1000; export const INTERNATIONAL_CAR_FERRY_SERVICE = 1001; export const NATIONAL_CAR_FERRY_SERVICE = 1002; export const REGIONAL_CAR_FERRY_SERVICE = 1003; export const LOCAL_CAR_FERRY_SERVICE = 1004; export const INTERNATIONAL_PASSENGER_FERRY_SERVICE = 1005; export const NATIONAL_PASSENGER_FERRY_SERVICE = 1006; export const REGIONAL_PASSENGER_FERRY_SERVICE = 1007; export const LOCAL_PASSENGER_FERRY_SERVICE = 1008; export const POST_BOAT_SERVICE = 1009; export const TRAIN_FERRY_SERVICE = 1010; export const ROAD_LINK_FERRY_SERVICE = 1011; export const AIRPORT_LINK_FERRY_SERVICE = 1012; export const CAR_HIGH_SPEED_FERRY_SERVICE = 1013; export const PASSENGER_HIGH_SPEED_FERRY_SERVICE = 1014; export const SIGHTSEEING_BOAT_SERVICE = 1015; export const SCHOOL_BOAT = 1016; export const CABLE_DRAWN_BOAT_SERVICE = 1017; export const RIVER_BUS_SERVICE = 1018; export const SCHEDULED_FERRY_SERVICE = 1019; export const SHUTTLE_FERRY_SERVICE = 1020; export const ALL_WATER_TRANSPORT_SERVICE = 1021; export const LAST_WATER_TRANSPORT_SERVICE = ALL_WATER_TRANSPORT_SERVICE; // air service export const AIR_SERVICE = 1100; export const INTERNATIONAL_AIR_SERVICE = 1101; export const DOMESTIC_AIR_SERVICE = 1102; export const INTERCONTINENTAL_AIR_SERVICE = 1103; export const DOMESTIC_SCHEDULED_AIR_SERVICE = 1104; export const SHUTTLE_AIR_SERVICE = 1105; export const INTERCONTINENTAL_CHARTER_AIR_SERVICE = 1106; export const INTERNATIONAL_CHARTER_AIR_SERVICE = 1107; export const ROUND_TRIP_CHARTER_AIR_SERVICE = 1108; export const SIGHTSEEING_AIR_SERVICE = 1109; export const HELICOPTER_AIR_SERVICE = 1110; export const DOMESTIC_CHARTER_AIR_SERVICE = 1111; export const SCHENGEN_AREA_AIR_SERVICE = 1112; export const AIRSHIP_SERVICE = 1113; export const ALL_AIR_SERVICES = 1114; export const LAST_AIR_SERVICE = ALL_AIR_SERVICES; // ferry services export const FERRY_SERVICE = 1200; // telecabin services export const TELECABIN_SERVICE = 1300; export const TELECABIN_SERVICES = 1301; // renamed this to not be confused with the tram-like street level cable cars export const TELECABIN_CABLE_CAR_SERVICE = 1302; export const ELEVATOR_SERVICE = 1303; export const CHAIR_LIFT_SERVICE = 1304; export const DRAG_LIFT_SERVICE = 1305; export const SMALL_TELECABIN_SERVICE = 1306; export const ALL_TELECABIN_SERVICES = 1307; export const LAST_TELECABIN_SERVICE = ALL_TELECABIN_SERVICES; // funicular services export const FUNICULAR_SERVICE = 1400; export const FUNICULAR_SERVICE_2 = 1401; export const ALL_FUNICULAR_SERVICES = 1402; export const LAST_FUNICULAR_SERVICE = ALL_FUNICULAR_SERVICES; // taxi services export const TAXI_SERVICE = 1500; export const COMMUNAL_TAXI_SERVICE = 1501; export const WATER_TAXI_SERVICE = 1502; export const RAIL_TAXI_SERVICE = 1503; export const BIKE_TAXI_SERVICE = 1504; export const LICENSED_TAXI_SERVICE = 1505; export const PRIVATE_HIRE_SERVICE_VEHICLE = 1506; export const ALL_TAXI_SERVICES = 1507; export const LAST_TAXI_SERVICE = ALL_TAXI_SERVICES; // self drive export const SELF_DRIVE = 1600; export const HIRE_CAR = 1601; export const HIRE_VAN = 1602; export const HIRE_MOTORBIKE = 1603; export const HIRE_CYCLE = 1604; export const LAST_SELF_DRIVE = HIRE_CYCLE; // misc. service export const MISCELLANEOUS_SERVICE = 1700; export const CABLE_CAR = 1701; export const HORSE_DRAWN_CARRIAGE = 1702; export const LAST_MISCELLANEOUS_SERVCE = HORSE_DRAWN_CARRIAGE; /** * returns the super type of a given HVT type code, or -1 if the supplied code * is not among the defined codes */ export function supertypeOf(type) { if (type >= RAILWAY_SERVICE && type <= LAST_RAIL_SERVICE) return RAILWAY_SERVICE; else if (type >= COACH_SERVICE && type <= LAST_COACH_SERVICE) return COACH_SERVICE; else if (type == SUBURBAN_RAILWAY_SERVICE) return SUBURBAN_RAILWAY_SERVICE; else if (type >= URBAN_RAILWAY_SERVICE && type <= LAST_URBAN_RAILWAY_SERVICE) return URBAN_RAILWAY_SERVICE; else if (type == METRO_SERVICE) return METRO_SERVICE; else if (type == UNDERGROUND_SERVICE) return UNDERGROUND_SERVICE; else if (type >= BUS_SERVICE && type <= LAST_BUS_SERVICE) return BUS_SERVICE; else if (type == TROLLEYBUS_SERVICE) return TROLLEYBUS_SERVICE; else if (type >= TRAM_SERVICE && type <= LAST_TRAM_SERVICE) return TRAM_SERVICE; else if (type >= WATER_TRANSPORT_SERVICE && type <= LAST_WATER_TRANSPORT_SERVICE) return WATER_TRANSPORT_SERVICE; else if (type >= AIR_SERVICE && type <= LAST_AIR_SERVICE) return AIR_SERVICE; else if (type == FERRY_SERVICE) return FERRY_SERVICE; else if (type >= TELECABIN_SERVICE && type <= LAST_TELECABIN_SERVICE) return TELECABIN_SERVICE; else if (type >= FUNICULAR_SERVICE && type <= LAST_FUNICULAR_SERVICE) return FUNICULAR_SERVICE; else if (type >= TAXI_SERVICE && type <= LAST_TAXI_SERVICE) return TAXI_SERVICE; else if (type >= SELF_DRIVE && type <= LAST_SELF_DRIVE) return SELF_DRIVE; else if (type >= MISCELLANEOUS_SERVICE && type <= LAST_MISCELLANEOUS_SERVCE) return MISCELLANEOUS_SERVICE; else return -1; } 0707010000021C000081A400000000000000000000000166413409000009FA000000000000000000000000000000000000002700000000gnome-maps-46.11/src/instructionRow.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2011, 2012, 2013 Red Hat, Inc. * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Zeeshan Ali (Khattak) * Mattias Bengtsson */ import GObject from 'gi://GObject'; import Gtk from 'gi://Gtk'; import {TurnPoint} from './route.js'; import {RouteQuery} from './routeQuery.js'; import * as Utils from './utils.js'; export class InstructionRow extends Gtk.ListBoxRow { constructor({turnPoint, lines, transportation, ...params}) { super(params); this.turnPoint = turnPoint; if (lines) this._instructionLabel.lines = lines; this._instructionLabel.label = this.turnPoint.instruction; this._directionImage.icon_name = this._getIconName(transportation); if (this.turnPoint.distance > 0) this._distanceLabel.label = Utils.prettyDistance(this.turnPoint.distance); } _getIconName(transportation) { // use mode-specific icon for the start instruction if (this.turnPoint.type === TurnPoint.Type.START) { switch (transportation) { case RouteQuery.Transportation.PEDESTRIAN: return 'route-pedestrian-symbolic'; case RouteQuery.Transportation.BIKE: return 'route-bike-symbolic'; case RouteQuery.Transportation.CAR: return 'route-car-symbolic'; default: return 'maps-point-start-symbolic'; } } else { return this.turnPoint.iconName; } } } GObject.registerClass({ Template: 'resource:///org/gnome/Maps/ui/instruction-row.ui', InternalChildren: [ 'directionImage', 'instructionLabel', 'distanceLabel' ] }, InstructionRow); 0707010000021D000081A400000000000000000000000166413409000007D0000000000000000000000000000000000000002400000000gnome-maps-46.11/src/jsonStorage.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . */ import Gio from 'gi://Gio'; import * as Utils from "./utils.js"; /** * Stores a JSON object to disk. Designed to be swapped out for a * test/mock implementation. */ export class JsonStorage { /** * @param {string} filename */ constructor(filename) { this._filename = filename; } /** * Loads the JSON object from disk. * @returns {any} The JSON object, or null if the file doesn't exist. */ load() { const buffer = Utils.readFile(this._filename); if (!buffer) { return null; } const text = Utils.getBufferText(buffer); return JSON.parse(text); } /** * Saves the JSON object to disk. * @param {any} json */ save(json) { let buffer; if (pkg.name.endsWith('.Devel')) { buffer = JSON.stringify(json, null, 2); } else { buffer = JSON.stringify(json); } try { Gio.File.new_for_path(this._filename).get_parent().make_directory_with_parents(null); } catch { // probably already exists } if (!Utils.writeFile(this._filename, buffer)) { log("Failed to save file: " + this._filename); } } } 0707010000021E000081A400000000000000000000000166413409000005FD000000000000000000000000000000000000002600000000gnome-maps-46.11/src/kmlShapeLayer.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Hashem Nasarat */ import GObject from 'gi://GObject'; import {ShapeLayer} from './shapeLayer.js'; import * as Utils from './utils.js'; import * as Togeojson from './togeojson/togeojson.js'; import * as Domparser from './xmldom/domparser.js'; export class KmlShapeLayer extends ShapeLayer { static mimeTypes = ['application/vnd.google-earth.kml+xml']; static displayName = 'KML'; static createInstance(params) { return new KmlShapeLayer(params); } _parseContent() { let s = Utils.getBufferText(this._fileContents); let parser = new Domparser.DOMParser(); let json = Togeojson.toGeoJSON.kml(parser.parseFromString(s)); this._mapSource.parse(json); } } GObject.registerClass(KmlShapeLayer); 0707010000021F000081A40000000000000000000000016641340900001F3F000000000000000000000000000000000000002600000000gnome-maps-46.11/src/layersPopover.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Dario Di Nucci */ import Adw from 'gi://Adw'; import GObject from 'gi://GObject'; import Gtk from 'gi://Gtk'; import Gdk from 'gi://Gdk'; import Shumate from 'gi://Shumate'; import {Application} from './application.js'; import * as MapSource from './mapSource.js'; import {MapView} from './mapView.js'; import * as Service from './service.js'; import {ShapeLayer} from './shapeLayer.js'; import * as Utils from './utils.js'; const PREVIEW_WIDTH = 230; const PREVIEW_HEIGHT = 80; export class ShapeLayerRow extends Gtk.ListBoxRow { constructor({shapeLayer, ...params}) { super(params); this.shapeLayer = shapeLayer; this._layerLabel.label = this.shapeLayer.getName(); this._layerLabel.tooltip_text = this.shapeLayer.file.get_parse_name(); this._visibleButton.connect('clicked', () => { let image = this._visibleButton.get_child(); this.shapeLayer.visible = !this.shapeLayer.visible; this.activatable = this.shapeLayer.visible; if (this.shapeLayer.visible) image.icon_name = 'layer-visible-symbolic'; else image.icon_name = 'layer-not-visible-symbolic'; }); } } GObject.registerClass({ Template: 'resource:///org/gnome/Maps/ui/shape-layer-row.ui', Children: ['closeButton'], InternalChildren: ['layerLabel', 'visibleButton'] }, ShapeLayerRow); export class LayersPopover extends Gtk.PopoverMenu { constructor(params) { super({ width_request: 200, visible: false }); this._mapView = params.mapView; //this._aerialLayerButton.join_group(this._streetLayerButton); this._layersListBox.bind_model(this._mapView.shapeLayerStore, this._listBoxCreateWidget.bind(this)); this._layersListBox.connect('row-activated', (lb, row) => { this._mapView.gotoBBox(row.shapeLayer.bbox); }); this._layersSectionBox.visible = this._mapView.shapeLayerStore.n_items > 0; this._mapView.shapeLayerStore.connect('items-changed', (model) => { this._layersSectionBox.visible = model.n_items > 0; this._layersListBox.visible = model.n_items > 0; }); // for now let's disable the map type swithery, as we only have street /* this._layerPreviews = { street: { source: MapSource.createStreetSource(), widget: this._streetLayerImage, lastLocation: { x: -1, y: -1, z: -1 } } }; if (Service.getService().tiles.aerial) { this._layerPreviews.aerial = { source: MapSource.createAerialSource(), widget: this._aerialLayerImage, lastLocation: { x: -1, y: -1, z: -1 } }; } // disable the map type switch buttons if aerial is unavailable if (Service.getService().tiles.aerial) { this._streetLayerButton.connect('clicked', () => { if (this._streetLayerButton.active) { this._mapView.setMapType(MapView.MapType.STREET); } }); this._aerialLayerButton.connect('clicked', () => { if (this._aerialLayerButton.active) { this._mapView.setMapType(MapView.MapType.AERIAL); } }); this._mapView.view.connect("notify::zoom-level", this._setLayerPreviews.bind(this)); this._mapView.view.connect("notify::latitude", this._setLayerPreviews.bind(this)); this._mapView.view.connect("notify::longitude", this._setLayerPreviews.bind(this)); } else { this._streetLayerButton.visible = false; this._aerialLayerButton.visible = false; } this.setMapType(this._mapView.getMapType()); this._mapView.connect("map-type-changed", (_mapView, type) => { this.setMapType(type); }); */ } /* _setLayerPreviews() { this._setLayerPreviewImage('street'); this._setLayerPreviewImage('aerial'); } _setLayerPreviewImage(layer, forceUpdate = false) { let previewInfo = this._layerPreviews[layer]; let source = previewInfo.source; let widget = previewInfo.widget; let z = this._mapView.view.zoom_level - 1; if (z < 0) z = 0; let size = source.get_tile_size(); let x = Math.floor(source.get_x(z, this._mapView.view.longitude) / size); let y = Math.floor(source.get_y(z, this._mapView.view.latitude) / size); // If the view hasn't moved enough that the tile is different, // then don't bother changing anything if (previewInfo.lastLocation.x == x && previewInfo.lastLocation.y == y && previewInfo.lastLocation.z == z && !forceUpdate) { return; } previewInfo.lastLocation = {x, y, z}; let tile = Champlain.Tile.new_full(x, y, size, z); tile.connect("render-complete", (a, b, c, error) => { if (error) return; // oh well // Make sure we're still at the same location // This is especially important on slow connections if (previewInfo.lastLocation.x == x && previewInfo.lastLocation.y == y && previewInfo.lastLocation.z == z) { let pixbuf = Gdk.pixbuf_get_from_surface(tile.surface, (size - PREVIEW_WIDTH) / 2, (size - PREVIEW_HEIGHT) / 2, PREVIEW_WIDTH, PREVIEW_HEIGHT); widget.set_from_pixbuf(pixbuf); } }); source.fill_tile(tile); } setMapType(mapType) { if (mapType === MapView.MapType.STREET) { this._streetLayerButton.active = true; } else if (mapType === MapView.MapType.AERIAL) { this._aerialLayerButton.active = true; } } */ _onRemoveClicked(row) { this._mapView.removeShapeLayer(row.shapeLayer); let numLayers = 0; for (let layer of this._layersListBox) { numLayers++; } if (numLayers <= 0) this._layersListBox.hide(); } _listBoxCreateWidget(shapeLayer) { let row = new ShapeLayerRow({ shapeLayer: shapeLayer }); row.closeButton.connect('clicked', () => this._onRemoveClicked(row)); return row; } } GObject.registerClass({ Template: 'resource:///org/gnome/Maps/ui/layers-popover.ui', InternalChildren: [ /*'streetLayerButton', 'aerialLayerButton', 'streetLayerImage', 'aerialLayerImage',*/ 'layersSectionBox', 'layersListBox' ] }, LayersPopover); 07070100000220000081A40000000000000000000000016641340900000547000000000000000000000000000000000000002100000000gnome-maps-46.11/src/location.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2015 Red Hat Inc. * Copyright (c) 2014 Jonas Danielsson * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Authors: Zeeshan Ali (Khattak) * Jonas Danielsson */ import Geocode from 'gi://GeocodeGlib'; import GObject from 'gi://GObject'; /* Adds heading to Geocode.Location */ export class Location extends Geocode.Location { constructor({heading, ...params}) { super(params); this._heading = heading; } get heading() { return this._heading; } set heading(v) { this._heading = v; } } GObject.registerClass(Location); 07070100000221000081A400000000000000000000000166413409000014C6000000000000000000000000000000000000002800000000gnome-maps-46.11/src/longPrintLayout.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Amisha Singla */ import GObject from 'gi://GObject'; import {PrintLayout} from './printLayout.js'; import {Route} from './route.js'; import {TurnPoint} from './route.js'; const _NUM_MINIMAPS = 5; /* All following constants are ratios of surface size to page size */ const _Instruction = { SCALE_X: 0.57, SCALE_Y: 0.07, SCALE_MARGIN: 0.01 }; const _MiniMapView = { SCALE_X: 0.4, SCALE_Y: 0.20, SCALE_MARGIN: 0.03, ZOOM_LEVEL: 18 }; export class LongPrintLayout extends PrintLayout { constructor({route, ...params}) { /* (Header + 3 maps) + instructions */ let totalSurfaces = 4 + route.turnPoints.length; /* Plus via points */ route.turnPoints.forEach((turnPoint) => { if (turnPoint.type === TurnPoint.Type.VIA) totalSurfaces++; }); super({...params, totalSurfaces}); this._route = route; } render() { super.render(); let instructionWidth = _Instruction.SCALE_X * this._pageWidth; let instructionHeight = _Instruction.SCALE_Y * this._pageHeight; let instructionMargin = _Instruction.SCALE_MARGIN * this._pageHeight; let miniMapViewWidth = _MiniMapView.SCALE_X * this._pageWidth; let miniMapViewHeight = _MiniMapView.SCALE_Y * this._pageHeight; let miniMapViewMargin = _MiniMapView.SCALE_MARGIN * this._pageHeight; let miniMapViewZoomLevel = _MiniMapView.ZOOM_LEVEL; let dy = 0; let pointsLength = this._route.turnPoints.length; /* Fixed number of locations are plotted on minimaps which requires a * check on instructions bound. Later on this can be made dynamic * depending upon factors like total number of instructions, complexity * of neighbourhood areas, etc. * * We currently have maps besides the instructions for: * - the start location * - via points in the route * - the end location * * We include _NUM_MINIMAPS instructions per map, and have the map * ensure the bounding box of those instructions. * * For the start location we include _NUM_MINIMAPS number of * instruction, if available, from start. * * For via points we include _NUM_MINIMAPS / 2 number of instructions * before and _NUM_MINIMAPS / 2 number of instructions after the * via point. * * For the end location we include _NUM_MINIMAPS number of instructions * leading up to the end location. * */ let first = 0; let last = Math.min(_NUM_MINIMAPS, pointsLength); let points = this._createTurnPointArray(first, last); this._drawMapView(miniMapViewWidth, miniMapViewHeight, miniMapViewZoomLevel, points); /* x-cursor is increased temporarily for rendering instructions */ let tmpX = this._cursorX; for (let i = 0; i < this._route.turnPoints.length; i++) { let turnPoint = this._route.turnPoints[i]; dy = instructionHeight + instructionMargin; this._adjustPage(dy); this._cursorX = tmpX + miniMapViewWidth + miniMapViewMargin; this._drawInstruction(instructionWidth, instructionHeight, turnPoint); this._cursorY += dy; if (turnPoint.type === TurnPoint.Type.VIA) { let tmpY = this._cursorY; first = Math.max(0, (i + 1) - (_NUM_MINIMAPS / 2)); last = Math.min((i + 1) + (_NUM_MINIMAPS / 2), pointsLength); points = this._createTurnPointArray(Math.floor(first), Math.floor(last)); this._cursorX = tmpX; this._cursorY = Math.max(0, this._cursorY - miniMapViewHeight); this._drawMapView(miniMapViewWidth, miniMapViewHeight, miniMapViewZoomLevel, points); this._cursorY = tmpY; } } this._cursorX = tmpX; first = Math.max(0, pointsLength - _NUM_MINIMAPS); last = pointsLength; points = this._createTurnPointArray(first, last); this._cursorY = Math.max(0, this._cursorY - miniMapViewHeight); this._drawMapView(miniMapViewWidth, miniMapViewHeight, miniMapViewZoomLevel, points); } } GObject.registerClass(LongPrintLayout); 07070100000222000081A40000000000000000000000016641340900000784000000000000000000000000000000000000001D00000000gnome-maps-46.11/src/main.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2011, 2012, 2013 Red Hat, Inc. * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Cosimo Cecchi * Zeeshan Ali (Khattak) */ import 'gi://Adw?version=1'; import 'gi://GeocodeGlib?version=2.0'; import 'gi://Gdk?version=4.0'; import 'gi://GdkPixbuf?version=2.0'; import Gio from 'gi://Gio?version=2.0'; import GLib from 'gi://GLib?version=2.0'; import 'gi://GObject?version=2.0'; import 'gi://Gtk?version=4.0'; import 'gi://GWeather?version=4.0'; import 'gi://Rest?version=1.0'; import 'gi://Shumate?version=1.0'; import 'gi://Soup?version=3.0'; import 'gi://Xdp?version=1.0'; import * as system from 'system'; import {Application} from './application.js'; import './prototypes.js'; pkg.initGettext(); pkg.initFormat(); Gio.Resource.load(GLib.build_filenamev([pkg.pkgdatadir, `${pkg.name}.shields.gresource`]))._register(); function main(args) { /* Add prototype to get last element of an array. * TODO: if we get more of these, might move initing * to a decicated Prototypes modules. */ let application = new Application(); return application.run(args); } main([system.programInvocationName, ...system.programArgs]); 07070100000223000081A40000000000000000000000016641340900006604000000000000000000000000000000000000002300000000gnome-maps-46.11/src/mainWindow.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2011, 2012, 2013 Red Hat, Inc. * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Cosimo Cecchi * Zeeshan Ali (Khattak) */ import gettext from 'gettext'; import GLib from 'gi://GLib'; import GObject from 'gi://GObject'; import Gdk from 'gi://Gdk'; import Gio from 'gi://Gio'; import Gtk from 'gi://Gtk'; import Adw from 'gi://Adw'; import Shumate from 'gi://Shumate'; import {Application} from './application.js'; import {ExportViewDialog} from './exportViewDialog.js'; import * as Geoclue from './geoclue.js'; import * as GeocodeFactory from './geocode.js'; import {HeaderBarLeft, HeaderBarRight} from './headerBar.js'; import {MapView} from './mapView.js'; import {PlaceBar} from './placeBar.js'; import {PrintOperation} from './printOperation.js'; import {SearchBar} from './searchBar.js'; import * as Service from './service.js'; import {ShapeLayer} from './shapeLayer.js'; import {Sidebar} from './sidebar.js'; import * as Utils from './utils.js'; import {ZoomAndRotateControls} from './zoomAndRotateControls.js'; const _ = gettext.gettext; const _CONFIGURE_ID_TIMEOUT = 100; // msecs const _PLACE_ENTRY_MARGIN = 36; class ShapeLayerFileChooser extends Gtk.FileChooserNative { constructor(params) { super(params); let allFilter = new Gtk.FileFilter(); allFilter.set_name(_("All Layer Files")); this.add_filter(allFilter); this.set_filter(allFilter); this.title = _("Open Shape Layer"); ShapeLayer.SUPPORTED_TYPES.forEach((layerClass) => { let filter = new Gtk.FileFilter(); [filter, allFilter].forEach((f) => { layerClass.mimeTypes.forEach((type) => { f.add_mime_type(type); }); }); filter.set_name(layerClass.displayName); this.add_filter(filter); }); } } GObject.registerClass({ Template: 'resource:///org/gnome/Maps/ui/shape-layer-file-chooser.ui' }, ShapeLayerFileChooser); export class MainWindow extends Adw.ApplicationWindow { get mapView() { return this._mapView; } get searchBar() { return this._searchBar; } get sidebar() { return this._sidebar; } constructor(params) { super(params); this._configureId = 0; this._mapView = new MapView({ mapType: this.application.local_tile_path ? MapView.MapType.LOCAL : undefined, mainWindow: this, hexpand: true, vexpand: true }); /* couldn't get the CSS styling to apply to the licemse widget * when defining it in the .ui defintion */ this._license = new Shumate.License({ halign: Gtk.Align.END, valign: Gtk.Align.START }); this._licenseRevealer.child = this._license; // init license for the initial map source this._license.append_map_source(this._mapView.mapSource); this._revealLicense(); this._mapOverlay.child = this._mapView; this._mapOverlay.add_overlay( new ZoomAndRotateControls({ mapView: this._mapView })); this._mapView.gotoUserLocation(false); this._sidebar = this._createSidebar(); if (pkg.name.endsWith('.Devel')) this.get_style_context().add_class('devel'); this._initActions(); this._initHeaderbar(); this._initSignals(); this._restoreWindowGeometry(); this._initDND(); this._initPlaceBar(); this._splitView.sidebar = this._sidebar; this._splitView.connect('notify::show-sidebar', () => { this._setRevealSidebar(this._splitView.show_sidebar); }); /* for some reason, setting the title of the window through the .ui * template does not work anymore (maybe has something to do with * setting a custom title on the headerbar). Setting it programmatically * here works though. And yields a proper label in the gnome-shell * overview. */ this.title = _("Maps"); this._breakpoint.connect('apply', () => this._onBreakpointApplied()); this._breakpoint.connect('unapply', () => this._onBreakpointUnapplied()); } showToast(message) { Utils.showToastInOverlay(message, this._overlay); } addToast(toast) { this._overlay.add_toast(toast); } _createSearchBar() { let searchBar = new SearchBar({ mapView: this._mapView, margin_start: _PLACE_ENTRY_MARGIN, margin_end: _PLACE_ENTRY_MARGIN }); searchBar.connect('notify::place', () => { if (searchBar.place) { this._mapView.showPlace(searchBar.place, true); } }); let popover = searchBar.popover; popover.connect('selected', () => this._mapView.map.grab_focus()); this._buttonPressGesture = new Gtk.GestureSingle(); this._mapView.map.add_controller(this._buttonPressGesture); this._buttonPressGesture.connect('begin', () => popover.popdown()); return searchBar; } _createSidebar() { let sidebar = new Sidebar({ mapView: this._mapView }); Application.routeQuery.connect('notify', () => this._setRevealSidebar(true)); return sidebar; } _initPlaceBar() { this._placeBar = new PlaceBar({ mapView: this._mapView, mainWindow: this }); this._placeBarContainer.append(this._placeBar); this.application.bind_property('selected-place', this._placeBar, 'place', GObject.BindingFlags.DEFAULT); } _initDND() { this._dropTarget = Gtk.DropTarget.new(Gio.File, Gdk.DragAction.COPY); this.add_controller(this._dropTarget); this._dropTarget.connect('drop', (target, value, x, y, data) => { let list = new Gio.ListStore(Gio.File.Gtype); list.insert(0, value); return this._mapView.openShapeLayers(list); }); } _revealLicense() { this._licenseRevealer.reveal_child = true; if (this._licenseRevealerTimeoutId) GLib.source_remove(this._licenseRevealerTimeoutId); this._licenseRevealerTimeoutId = GLib.timeout_add(null, 10000, () => { this._licenseRevealer.reveal_child = false; this._licenseRevealerTimeoutId = 0; return false; }); } _setMapType(mapType) { const mapSource = this._mapView.mapSource; // remove previous map source from license if (mapSource) this._license.remove_map_source(mapSource); this._mapView.setMapType(mapType); // set license for new map source this._license.append_map_source(this._mapView.mapSource); this._revealLicense(); } _initActions() { let actions = { 'about': { onActivate: () => this._onAboutActivate() }, 'map-type-menu': { state: ['b', false], onActivate: () => this._onMapTypeMenuActivate() }, 'goto-user-location': { accels: ['L'], onActivate: () => this._onGotoUserLocationActivate() }, 'goto-antipode-location': { accels: ['I'], onActivate: () => this._mapView.gotoAntipode() }, 'toggle-sidebar': { accels: ['D'], state: ['b', false], onChangeState: (a, v) => this._onToggleSidebarChangeState(a, v) }, 'zoom-in': { accels: ['plus', 'KP_Add', 'KP_Add', 'equal'], onActivate: () => this._mapView.zoomIn() }, 'zoom-out': { accels: ['minus', 'KP_Subtract', 'KP_Subtract'], onActivate: () => this._mapView.zoomOut() }, 'rotate-clockwise': { accels: ['Right'], onActivate: () => this._rotateMap(Math.PI / 32) }, 'rotate-counter-clockwise': { accels: ['Left'], onActivate: () => this._rotateMap(-Math.PI / 32) }, 'reset-rotation': { accels: ['Up'], onActivate: () => { this._mapView.map.viewport.rotation = 0.0; } }, 'show-scale': { accels: ['S'], paramType: 'b', setting: 'show-scale' }, 'find': { accels: ['F'], onActivate: () => this._onFindActivate() }, 'browse': { accels: ['F'], onActivate: () => this._onBrowseActivate() }, 'show-search-results': { accels: ['R'], onActivate: () => this._onShowSearchResultsActivate() }, 'print-route': { accels: ['P'], onActivate: () => this._printRouteActivate() }, 'open-shape-layer': { accels: ['O'], onActivate: () => this._onOpenShapeLayer() }, 'show-main-menu': { accels: ['F10'], onActivate: () => this._showMainMenu() }, 'export-as-image': { onActivate: () => this._onExportActivated() }, }; // when aerial tiles are available, add shortcuts to switch if (Service.getService().tiles.aerial) { actions['switch-to-street-view'] = { accels: ['1', 'KP_1'], onActivate: () => this._onStreetViewActivate() }; actions['switch-to-aearial-view'] = { accels: ['2', 'KP_2'], onActivate: () => this._onAerialViewActivate() }; } if (Shumate.VectorRenderer.is_supported()) { actions['enable-vector-layer'] = { state: ['b', Application.settings.get('map-type') === MapView.MapType.VECTOR], onChangeState: (action, variant) => { action.set_state(variant); const state = variant.get_boolean(); this._setMapType(state ? MapView.MapType.VECTOR : MapView.MapType.STREET); } }; } Utils.addActions(this, actions, Application.settings); } _initSignals() { this.connect('close-request', () => this._quit()); this.connect('notify::default-width', () => this._onSizeChanged()); this.connect('notify::default-height', () => this._onSizeChanged()); this.connect('notify::maximized', () => this._onMaximizedChanged()); this.connect('notify::is-active', () => this._onIsActiveChanged()); let viewport = this._mapView.map.viewport; viewport.connect('notify::zoom-level', this._updateZoomButtonsSensitivity.bind(this)); viewport.connect('notify::max-zoom-level', this._updateZoomButtonsSensitivity.bind(this)); viewport.connect('notify::min-zoom-level', this._updateZoomButtonsSensitivity.bind(this)); this._updateZoomButtonsSensitivity(); } _onIsActiveChanged() { if (this._inactiveId) { GLib.source_remove(this._inactiveId); this._inactiveId = 0; } /* reveal the license when the window gets active if it has * been inactive for at least 10 s inbetween */ if (this.is_active) { if (this._isIdle) this._revealLicense(); this._isIdle = false; } else { this._inactiveId = GLib.timeout_add(null, 10000, () => { this._isIdle = true; this._inactiveId = 0; return false; }); } } _updateZoomButtonsSensitivity() { let zoomLevel = this._mapView.map.viewport.zoom_level; let maxZoomLevel = this._mapView.map.viewport.max_zoom_level; let minZoomLevel = this._mapView.map.viewport.min_zoom_level; let zoomInAction = this.lookup_action("zoom-in"); let zoomOutAction = this.lookup_action("zoom-out"); if (zoomLevel >= maxZoomLevel) zoomInAction.set_enabled(false); else zoomInAction.set_enabled(true); if (zoomLevel <= minZoomLevel) zoomOutAction.set_enabled(false); else zoomOutAction.set_enabled(true); } _updateLocationSensitivity() { let sensitive = Application.geoclue.state !== Geoclue.State.INITIAL; this.lookup_action("goto-user-location").set_enabled(sensitive); } _initHeaderbar() { this._headerBarLeft = new HeaderBarLeft({ mapView: this._mapView }); this._headerBar.pack_start(this._headerBarLeft); this._headerBarRight = new HeaderBarRight({ mapView: this._mapView }); this._headerBar.pack_end(this._headerBarRight); this._searchBar = this._createSearchBar(); this._headerBar.title_widget = this._searchBar; Application.geoclue.connect('notify::state', this._updateLocationSensitivity.bind(this)); // action bar, for when the window is too narrow for the full headerbar this._actionBarLeft = new HeaderBarLeft({ mapView: this._mapView }); this._actionBar.pack_start(this._actionBarLeft); this._actionBarRight = new HeaderBarRight({ mapView: this._mapView }); this._actionBar.pack_end(this._actionBarRight); } _onBreakpointApplied() { this.application.adaptive_mode = true; this._headerBarLeft.hide(); this._headerBarRight.hide(); this._searchBar.set_margin_start(0); this._searchBar.set_margin_end(0); } _onBreakpointUnapplied() { this.application.adaptive_mode = false; this._headerBarLeft.show(); this._headerBarRight.show(); this._searchBar.set_margin_start(_PLACE_ENTRY_MARGIN); this._searchBar.set_margin_end(_PLACE_ENTRY_MARGIN); } _saveWindowGeometry() { if (this.maximized) return; // GLib.Variant.new() can handle arrays just fine Application.settings.set('window-size', [this.default_width, this.default_height]); } _restoreWindowGeometry() { let size = Application.settings.get('window-size'); if (size.length === 2) { let [width, height] = size; this.set_default_size(width, height); } if (Application.settings.get('window-maximized')) this.maximize(); } _onSizeChanged() { if (this._configureId !== 0) { GLib.source_remove(this._configureId); this._configureId = 0; } this._configureId = GLib.timeout_add(null, _CONFIGURE_ID_TIMEOUT, () => { this._saveWindowGeometry(); this._configureId = 0; return false; }); } _onMaximizedChanged() { Application.settings.set('window-maximized', this.maximized); } _quit() { // remove configure event handler if still there if (this._configureId !== 0) { GLib.source_remove(this._configureId); this._configureId = 0; } // always save geometry before quitting this._saveWindowGeometry(); return false; } _onFindActivate() { let placeEntry = this._searchBar.placeEntry; placeEntry.grab_focus(); placeEntry.select_region(0, placeEntry.text.length); } _onBrowseActivate() { this._searchBar.placeEntry.browsePois(); } _onShowSearchResultsActivate() { if (this._searchBar.placeEntry.popover.numResults > 0) { this._searchBar.placeEntry.popover.showResult(); this._searchBar.placeEntry.grab_focus(); } } _onGotoUserLocationActivate() { let message; if (Application.geoclue.state === Geoclue.State.ON) { this._mapView.gotoUserLocation(true); return; } Application.geoclue.start(() => { switch(Application.geoclue.state) { case Geoclue.State.FAILED: this.showToast(_("Failed to connect to location service")); break; case Geoclue.State.DENIED: let locationServiceToast = new Adw.Toast({ title: _("Turn on location services"), button_label: _("Location Settings") }); locationServiceToast.connect('button-clicked', () => { let privacyInfo = Gio.DesktopAppInfo.new('gnome-location-panel.desktop'); try { let display = Gdk.Display.get_default(); privacyInfo.launch([], display.get_app_launch_context()); } catch(e) { Utils.debug('launching privacy panel failed: ' + e); } }); this.addToast(locationServiceToast); break; default: this._mapView.gotoUserLocation(true); break; } }); } _onExportActivated() { let {x, y, width, height} = this._mapView.get_allocation(); let paintable = new Gtk.WidgetPaintable({ widget: this._mapView }); let [latitude, longitude] = this._mapView.map.viewport.widget_coords_to_location(this._mapView.map, width / 2, height / 2); let dialog = new ExportViewDialog({ transient_for: this, modal: true, paintable: paintable, latitude: latitude, longitude: longitude, width: width, height: height, mapView: this._mapView }); dialog.connect('response', () => dialog.destroy()); dialog.show(); } _rotateMap(angle) { let rotation = this._mapView.map.viewport.rotation; rotation += angle; // keep the rotation in [0..2 * PI) if (rotation < 0) rotation += 2 * Math.PI else if (rotation >= 2 * Math.PI) rotation -= 2 * Math.PI; /* if the resulting angle is close to 0, snap back to 0 to avoid * rounding errors adding when doing multiple rotations */ if (rotation < 0.01 || 2 * Math.PI - rotation < 0.01) rotation = 0; this._mapView.map.viewport.rotation = rotation; } _printRouteActivate() { if (this._mapView.routeShowing) { let operation = new PrintOperation({ mainWindow: this }); } } _onMapTypeMenuActivate(action) { let state = action.get_state().get_boolean(); action.set_state(GLib.Variant.new('b', !state)); } _onStreetViewActivate() { this._setMapType(MapView.MapType.STREET); } _onAerialViewActivate() { // don't attempt to switch to aerial if we don't have tiles for it if (Service.getService().tiles.aerial) { this._setMapType(MapView.MapType.AERIAL); } } _onToggleSidebarChangeState(action, variant) { action.set_state(variant); let reveal = variant.get_boolean(); this._splitView.show_sidebar = reveal; if (reveal) this._splitView.sidebar.focusStartEntry(); else this._mapView.map.grab_focus(); } _setRevealSidebar(value) { let action = this.lookup_action('toggle-sidebar'); action.change_state(GLib.Variant.new_boolean(value)); } _onAboutActivate() { let about = new Adw.AboutWindow({ designers: [ 'Jakub Steiner ', 'Andreas Nilsson ' ], developers: [ 'Zeeshan Ali (Khattak) ', 'Mattias Bengtsson ', 'Jonas Danielsson ', 'Marcus Lundblad '], developer_name: _("The GNOME Project"), translator_credits: _("translator-credits"), /* Translators: This is the program name. */ application_name: _("Maps"), application_icon: pkg.name, copyright: _("Copyright © 2011 – 2023 Red Hat, Inc. and The GNOME Maps authors"), license_type: Gtk.License.GPL_2_0, version: pkg.version, website: 'https://apps.gnome.org/Maps/', issue_url: 'https://gitlab.gnome.org/GNOME/gnome-maps/-/issues/new', transient_for: this }); this._addAttribution(about); about.present(); } _addAttribution(about) { let tileProviderInfo = Service.getService().tileProviderInfo; let photonGeocode = Service.getService().photonGeocode; let attribution = _("Map data by %s and contributors").format('OpenStreetMap'); about.add_legal_section(_("Map Data Provider"), null, Gtk.License.CUSTOM, attribution); if (tileProviderInfo) { let tileProviderString; if (tileProviderInfo.url) { tileProviderString = '' + tileProviderInfo.name + ''; } else { tileProviderString = tileProviderInfo.name; } about.add_legal_section( _("Map Tile Provider"), null, Gtk.License.CUSTOM, /* Translators: this is an attribution string giving credit to the * tile provider where the %s placeholder is replaced by either * the bare name of the tile provider, or a linkified URL if one * is available */ _("Map tiles provided by %s").format(tileProviderString) ); } let provider = GeocodeFactory.getGeocoder().attribution; let providerUrl = GeocodeFactory.getGeocoder().attributionUrl; let geocoderName = GeocodeFactory.getGeocoder().name; let geocoderUrl = GeocodeFactory.getGeocoder().url; let providerString; if (providerUrl) { providerString = '' + provider + ''; } else { providerString = provider; } let geocoderLink = '%s'.format(geocoderUrl, geocoderName); /* Translators: this is an attribution string giving credit to the * search provider where the first %s placeholder is replaced by either * the bare name of the geocoder provider, or a linkified URL if one * is available, and the second %s placeholder is replaced by the * URL to the geocoder project page. These placeholders * can be swapped, if needed using the %n$s positional syntax * (i.e. "%2$s ... %1$s ..." for positioning the project URL * before the provider). */ about.add_legal_section( _("Search Provider"), null, Gtk.License.CUSTOM, _("Search provided by %s using %s").format(providerString, geocoderLink) ); return attribution; } _onOpenShapeLayer() { this._fileChooser = new ShapeLayerFileChooser({ transient_for: this, }); this._fileChooser.connect('response', (widget, response) => { if (response === Gtk.ResponseType.ACCEPT) { this._mapView.openShapeLayers(this._fileChooser.get_files()); this._headerBarLeft.popdownLayersPopover(); this._actionBarLeft.popdownLayersPopover(); } this._fileChooser.destroy(); }); this._fileChooser.show(); } _showMainMenu() { this._mainMenuButton.activate(); } } GObject.registerClass({ Template: 'resource:///org/gnome/Maps/ui/main-window.ui', InternalChildren: [ 'headerBar', 'mainMenuButton', 'grid', 'actionBar', 'placeBarContainer', 'overlay', 'mapOverlay', 'splitView', 'breakpoint', 'licenseRevealer'] }, MainWindow); 07070100000224000081A40000000000000000000000016641340900001332000000000000000000000000000000000000002200000000gnome-maps-46.11/src/mapBubble.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2014 Damián Nohales * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Damián Nohales */ import GObject from 'gi://GObject'; import Gtk from 'gi://Gtk'; import {PlaceView} from './placeView.js'; /* Maximum width of the popover content before it's forced to wrap */ const MAX_CONTENT_WIDTH = 350; /* Margin between the height of the main window and the height of the popover contents */ const HEIGHT_MARGIN = 100; export class MapBubble extends Gtk.Popover { constructor({place, mapView, ...params}) { super(params); let content = new PlaceView({ place, mapView, visible: true }); let scrolledWindow = new MapBubbleScrolledWindow({ visible: true, propagateNaturalWidth: true, propagateNaturalHeight: true, hscrollbarPolicy: Gtk.PolicyType.NEVER, child: content }); this.child = scrolledWindow; /* focus on the map when the bubble is closed, to allow continuing * keyboard navigation */ this.connect('closed', () => mapView.map.grab_focus()); this.get_style_context().add_class("map-bubble"); } } GObject.registerClass(MapBubble); export class MapBubbleScrolledWindow extends Gtk.ScrolledWindow { /* vfunc_get_request_mode() { return Gtk.SizeRequestMode.HEIGHT_FOR_WIDTH; } */ /* vfunc_measure(orientation, forSize) { log('measure: ' + orientation + ', ' + forSize); let [cm, cn, cbx, cby] = this.child.measure(orientation, forSize); log('child measure: ' + cm + ', ' + cn); // TODO: fix return [500, 500, null, null]; if (orientation === Gtk.Orientation.HORIZONTAL) { let windowHeight = this.get_toplevel().get_allocated_height() - HEIGHT_MARGIN; let [min, nat] = this.get_child().get_preferred_height_for_width(width); min = Math.min(min, windowHeight); nat = Math.min(nat, windowHeight); return [min, nat, 0, 0]; } else { let [min, nat] = this.get_child().get_preferred_width(); min = Math.min(min, MAX_CONTENT_WIDTH); nat = Math.min(nat, MAX_CONTENT_WIDTH); return [min, nat, 0, 0]; } } */ /* vfunc_get_preferred_width() { let [min, nat] = this.get_child().get_preferred_width(); min = Math.min(min, MAX_CONTENT_WIDTH); nat = Math.min(nat, MAX_CONTENT_WIDTH); return [min, nat]; } vfunc_get_preferred_height_for_width(width) { let windowHeight = this.get_toplevel().get_allocated_height() - HEIGHT_MARGIN; let [min, nat] = this.get_child().get_preferred_height_for_width(width); min = Math.min(min, windowHeight); nat = Math.min(nat, windowHeight); return [min, nat]; } */ /* vfunc_snapshot(snapshot) { let popover = this.get_ancestor(Gtk.Popover); if (popover) { let {x, y, width, height} = this.get_allocation(); let rect = new Graphene.Rect(); log('allocation: ' + [x, y]); rect.init(x, y, width, height); let cr = snapshot.append_cairo(rect); // clip the top corners to the rounded corner let radius = popover.get_style_context() .get_property(Gtk.STYLE_PROPERTY_BORDER_RADIUS, popover.get_state_flags()) * this.scale_factor; // TODO: how to do this? let radius = 0; // bottom left cr.moveTo(0, height); cr.lineTo(0, radius); cr.arc(radius, radius, radius, Math.PI, -Math.PI / 2.0); cr.arc(width - radius, radius, radius, -Math.PI / 2.0, 0); cr.lineTo(width, height); cr.clip(); cr.$dispose(); } super.vfunc_snapshot(snapshot); } */ } GObject.registerClass(MapBubbleScrolledWindow); 07070100000225000081A40000000000000000000000016641340900003032000000000000000000000000000000000000002200000000gnome-maps-46.11/src/mapMarker.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2014 Damián Nohales * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Damián Nohales */ import Cairo from 'cairo'; import Gdk from 'gi://Gdk'; import GLib from 'gi://GLib'; import GObject from 'gi://GObject'; import Graphene from 'gi://Graphene'; import Gtk from 'gi://Gtk'; import Shumate from 'gi://Shumate'; import {Application} from './application.js'; import {MapBubble} from './mapBubble.js'; import {MapWalker} from './mapWalker.js'; import * as Utils from './utils.js'; export class MapMarker extends Shumate.Marker { constructor({place, mapView, ...params}) { super({ ...params, latitude: place.location.latitude, longitude: place.location.longitude, selectable: true, }); this._place = place; this._mapView = mapView; this._image = new Gtk.Image({ icon_size: Gtk.IconSize.NORMAL }); this.child = this._image; if (this._mapView) { this._viewport = this._mapView.map.viewport; this._buttonPressGesture = new Gtk.GestureClick(); this.add_controller(this._buttonPressGesture); this._buttonPressGesture.connect('pressed', () => this._onMarkerSelected()); // Some markers are draggable, we want to sync the marker location and // the location saved in the Place // These are not bindings because the place may have a different // location later this.connect('notify::latitude', () => { this.place.location.latitude = this.latitude; }); this.connect('notify::longitude', () => { this.place.location.longitude = this.longitude; }); this.place.connect('notify::location', this._onLocationChanged.bind(this)); this._viewport.bind_property('latitude', this, 'view-latitude', GObject.BindingFlags.DEFAULT); this._viewport.bind_property('longitude', this, 'view-longitude', GObject.BindingFlags.DEFAULT); this._viewport.bind_property('zoom-level', this, 'view-zoom-level', GObject.BindingFlags.DEFAULT); this.connect('notify::view-latitude', this._onViewUpdated.bind(this)); this.connect('notify::view-longitude', this._onViewUpdated.bind(this)); this.connect('notify::view-zoom-level', this._onViewUpdated.bind(this)); } Application.application.connect('notify::adaptive-mode', this._onAdaptiveModeChanged.bind(this)); } _onButtonPress(marker, event) { // Zoom in on marker on double-click if (event.get_click_count() > 1) { if (this._view.zoom_level < this._view.max_zoom_level) { this._view.zoom_level = this._view.max_zoom_level; this._view.center_on(this.latitude, this.longitude); } } } _onLocationChanged() { this.set_location(this.place.location.latitude, this.place.location.longitude); if (this._bubble) { if (this._isInsideView()) this._positionBubble(this._bubble); else this.hideBubble(); } } get bubbleSpacing() { return 0; } get place() { return this._place; } get bubble() { if (this._bubble === undefined && this._hasBubble()) { this._bubble = new MapBubble({ place: this._place, mapView: this._mapView }); this._bubble.set_parent(this._mapView); } return this._bubble; } _hasBubble() { // Markers has no associated bubble by default return false; } _positionBubble(bubble) { let [x, y] = this._viewport.location_to_widget_coords(this._mapView.map, this.latitude, this.longitude); let mapSize = this._mapView.map.get_allocation(); let pos = new Gdk.Rectangle({ x: x - this.bubbleSpacing, y: y - this.bubbleSpacing, width: this.width + this.bubbleSpacing * 2, height: this.height + this.bubbleSpacing * 2 }); bubble.pointing_to = pos; bubble.position = Gtk.PositionType.TOP; // Gtk+ doesn't provide a widget allocation by calling get_allocation // if it's not visible, the bubble positioning occurs when bubble // is not visible yet let bubbleSize = bubble.get_preferred_size()[1]; // Set bubble position left/right if it's close to a vertical map edge if (pos.x + pos.width / 2 + bubbleSize.width / 2 >= mapSize.width) bubble.position = Gtk.PositionType.LEFT; else if (pos.x + pos.width / 2 - bubbleSize.width / 2 <= 0) bubble.position = Gtk.PositionType.RIGHT; // Avoid bubble to cover header bar if the marker is close to the top map edge else if (pos.y - bubbleSize.height <= 0) bubble.position = Gtk.PositionType.BOTTOM; } _hideBubbleOn(signal, duration) { let sourceId = null; let signalId = this._viewport.connect(signal, () => { if (sourceId) GLib.source_remove(sourceId); else this.hideBubble(); let callback = (function() { sourceId = null; this.showBubble(); }).bind(this); if (duration) sourceId = GLib.timeout_add(null, duration, callback); else sourceId = GLib.idle_add(null, callback); }); Utils.once(this.bubble, 'closed', () => { // We still listening for the signal to refresh // the existent timeout if (!sourceId) this._viewport.disconnect(signalId); }); } _initBubbleSignals() { this._hideBubbleOn('notify::zoom-level', 500); this._hideBubbleOn('notify::size'); // This is done to get just one marker selected at any time regardless // of the layer to which it belongs so we can get only one visible bubble // at any time. We do this for markers in different layers because for // markers in the same layer, ChamplainMarkerLayer single selection mode // does the job. this._mapView.onSetMarkerSelected(this); let markerSelectedSignalId = this._mapView.connect('marker-selected', (mapView, selectedMarker) => { if (this.get_parent() !== selectedMarker.get_parent()) this.selected = false; }); let goingToSignalId = this._mapView.connect('going-to', () => { this.set_selected(false); }); Utils.once(this.bubble, 'closed', () => { this._mapView.disconnect(markerSelectedSignalId); this._mapView.disconnect(goingToSignalId); }); } _isInsideView() { let [x, y] = this._viewport.location_to_widget_coords(this._mapView.map, this.latitude, this.longitude); let markerSize = this.get_allocation(); let mapSize = this._mapView.map.get_allocation(); let tx = markerSize.width / 2; let ty = markerSize.height / 2; return x + tx/2 > 0 && x - tx/2 < mapSize.width && y + ty/2 > 0 && y - ty/2 < mapSize.height; } _onViewUpdated() { if (this.bubble) { if (this._isInsideView()) this._positionBubble(this.bubble); else this.bubble.hide(); } } showBubble() { if (this.bubble && !this.bubble.visible && this._isInsideView() && !Application.application.adaptive_mode) { this._initBubbleSignals(); this.bubble.popup(); this._positionBubble(this.bubble); } } hideBubble() { if (this._bubble) this._bubble.popdown(); } get walker() { if (this._walker === undefined) this._walker = new MapWalker(this.place, this._mapView); return this._walker; } zoomToFit() { this.walker.zoomToFit(); } goTo(animate) { Utils.once(this.walker, 'gone-to', () => this.emit('gone-to')); this.walker.goTo(animate); } goToAndSelect(animate) { Utils.once(this, 'gone-to', () => { if (this.bubble) this.showBubble(); }); this.goTo(animate); } _onMarkerSelected() { this._buttonPressGesture.set_state(Gtk.EventSequenceState.CLAIMED); if (this.bubble) { if (!this._bubble.visible) { this.showBubble(); Application.application.selected_place = this._place; } else { this.hideBubble(); Application.application.selected_place = null; } } else { if (!Application.application.selected_place) Application.application.selected_place = this._place; else Application.application.selected_place = null; } } _onAdaptiveModeChanged() { if (!Application.application.adaptive_mode) { this.showBubble(); } else { this.hideBubble(); } } _paintableFromIconName(name, size, color) { let display = Gdk.Display.get_default(); let theme = Gtk.IconTheme.get_for_display(display); let iconPaintable = theme.lookup_icon(name, null, size, this.scale_factor, Gtk.TextDirection.NONE, 0); if (color) { let snapshot = Gtk.Snapshot.new(); let rect = new Graphene.Rect(); iconPaintable.snapshot_symbolic(snapshot, size, size, [color]); rect.init(0, 0, size, size); let node = snapshot.to_node(); let renderer = this._mapView.get_native().get_renderer(); return renderer.render_texture(node, rect); } else { return iconPaintable; } } } GObject.registerClass({ Abstract: true, Signals: { 'gone-to': { } }, Properties: { 'view-latitude': GObject.ParamSpec.double('view-latitude', '', '', GObject.ParamFlags.READABLE | GObject.ParamFlags.WRITABLE, -90, 90, 0), 'view-longitude': GObject.ParamSpec.double('view-longitude', '', '', GObject.ParamFlags.READABLE | GObject.ParamFlags.WRITABLE, -180, 180, 0), 'view-zoom-level': GObject.ParamSpec.int('view-zoom-level', '', '', GObject.ParamFlags.READABLE | GObject.ParamFlags.WRITABLE, 0, 20, 3) } }, MapMarker); 07070100000226000081A40000000000000000000000016641340900000DD0000000000000000000000000000000000000002200000000gnome-maps-46.11/src/mapSource.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Jonas Danielsson */ import Adw from 'gi://Adw'; import GLib from 'gi://GLib'; import Gio from 'gi://Gio'; import Shumate from 'gi://Shumate'; import GnomeMaps from 'gi://GnomeMaps'; import * as Service from './service.js'; import * as Utils from './utils.js'; import { generateMapStyle } from './mapStyle/mapStyle.js'; /* Converts a tile URI format from Champlain style to Shumate style. * e.g. from * https://tile.openstreetmap.org/#Z#/#X#/#Y#.png * to * https://tile.openstreetmap.org/{Z}/{X}/{Y}.png */ function convertUriFormatFromChamplain(uriFormat) { return uriFormat.replace('#Z#', '{z}').replace('#X#', '{x}').replace('#Y#', '{y}'); } function createTileDownloader(source) { let template = convertUriFormatFromChamplain(source.uri_format); return new Shumate.TileDownloader({ url_template: template }); } function createRasterRenderer(source) { return new Shumate.RasterRenderer({ id: source.id, name: source.name, license: source.license, license_uri: source.license_uri, min_zoom_level: source.min_zoom_level, max_zoom_level: source.max_zoom_level, tile_size: source.tile_size, projection: Shumate.MapProjection.MERCATOR, data_source: createTileDownloader(source) }); } export function createAerialSource() { return createRasterRenderer(Service.getService().tiles.aerial); } export function createStreetSource() { return createRasterRenderer(Service.getService().tiles.street); } export function createPrintSource() { return createRasterRenderer(Service.getService().tiles.print); } export function createVectorSource() { const start = GLib.get_monotonic_time(); const style = generateMapStyle({ colorScheme: Adw.StyleManager.get_default().dark ? "dark" : "light", language: Utils.getLanguage(), textScale: Adw.LengthUnit.to_px(Adw.LengthUnit.SP, 1, null), }); const end = GLib.get_monotonic_time(); Utils.debug(`Map style generated in ${(end - start) / 1000} ms.`); const source = Shumate.VectorRenderer.new("vector-tiles", JSON.stringify(style)); source.set_license("© OpenMapTiles © OpenStreetMap contributors"); source.set_license_uri("https://www.openstreetmap.org/copyright"); const sprites = Shumate.VectorSpriteSheet.new(); const spriteSource = new GnomeMaps.SpriteSource({"color-scheme": "light"}); const [_status4, shieldsJsonFile] = Gio.file_new_for_uri('resource://org/gnome/Maps/shields/shields.json').load_contents(null); spriteSource.load_shield_defs(Utils.getBufferText(shieldsJsonFile)); spriteSource.set_fallback(sprites); source.set_sprite_sheet(sprites); return source; } 07070100000227000041ED0000000000000000000000026641340900000000000000000000000000000000000000000000001E00000000gnome-maps-46.11/src/mapStyle07070100000228000081A400000000000000000000000166413409000067A1000000000000000000000000000000000000002600000000gnome-maps-46.11/src/mapStyle/LICENSE 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!07070100000229000081A4000000000000000000000001664134090000129A000000000000000000000000000000000000002800000000gnome-maps-46.11/src/mapStyle/aerial.js/* * Copyright (C) 2023 Marcus Lundblad * * 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, see . */ import { DEFS } from "./defs.js"; import { mix } from "./utils.js"; /* Aerailway transport: https://wiki.openstreetmap.org/wiki/Map_features#Aerialway */ const cableCarFilter = [ "all", ["==", ["get", "class"], "aerialway"], [ "in", ["get", "subclass"], ["literal", ["cable_car", "gondola", "mixed_lift"]], ], ]; const liftFilter = [ "all", ["==", ["get", "class"], "aerialway"], [ "in", ["get", "subclass"], [ "literal", [ "chair_lift", "drag_lift", "t-bar", "j-bar", "platter", "rope_tow", "zip-line", ], ], ], ]; export const aerial = (config, layerNum, layerFilter) => { const color = config.pick(DEFS.aerial.color); return [ { id: `cable-car-${layerNum}`, type: "line", source: "vector-tiles", "source-layer": "transportation", filter: ["all", layerFilter, cableCarFilter], paint: { "line-color": color, "line-width": [ "interpolate", ["linear"], ["zoom"], 8, 0.25, 13, 0.5, 16, 2, ], }, }, { id: `cable-car-${layerNum}-ties`, type: "line", source: "vector-tiles", "source-layer": "transportation", minzoom: 13, filter: ["all", layerFilter, cableCarFilter], paint: { "line-color": color, "line-dasharray": [0.3, 5], "line-width": [ "interpolate", ["linear"], ["zoom"], 13, 2, 16, 10, ], }, }, { id: `lift-${layerNum}`, type: "line", source: "vector-tiles", "source-layer": "transportation", filter: ["all", layerFilter, liftFilter], paint: { "line-color": color, "line-width": [ "interpolate", ["linear"], ["zoom"], 8, 0.25, 13, 0.5, 16, 2, ], }, }, { id: `lift-${layerNum}-ties`, type: "line", source: "vector-tiles", "source-layer": "transportation", minzoom: 13, filter: ["all", liftFilter, layerFilter], paint: { "line-color": color, "line-dasharray": [0.3, 10], "line-width": [ "interpolate", ["linear"], ["zoom"], 13, 2, 16, 10, ], }, }, ]; }; export const aerialLabel = (config) => { const color = config.pick(DEFS.aerial.color); const labelColor = config.colorScheme === "dark" ? mix(color, "#ffffff", 0.3) : mix(color, "#000000", 0.6); return { id: "aerial-labels", type: "symbol", source: "vector-tiles", "source-layer": "transportation_name", minzoom: 13, filter: ["any", cableCarFilter, liftFilter], layout: { "text-field": ["get", "name"], "text-size": config.textSize(15), "text-font": config.fonts(), "symbol-placement": "line", }, paint: { "text-color": labelColor, }, }; }; 0707010000022A000081A400000000000000000000000166413409000017FC000000000000000000000000000000000000002A00000000gnome-maps-46.11/src/mapStyle/airports.js/* * Copyright (C) 2023 James Westman * * 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, see . */ import { DEFS } from "./defs.js"; import { isLinestring, isPolygon, mix } from "./utils.js"; export const airportLayers = (config) => { const color = [ "interpolate", ["linear"], ["zoom"], 10, mix( config.pick(DEFS.airports.runwayColor), config.pick(DEFS.colors.background), 0.5 ), 12, config.pick(DEFS.airports.runwayColor), ]; return [ { id: "runway-line", type: "line", source: "vector-tiles", "source-layer": "aeroway", minzoom: 10, filter: ["all", isLinestring, ["==", ["get", "class"], "runway"]], paint: { "line-color": color, "line-width": [ "interpolate", ["exponential", 2], ["zoom"], 10, 4, 18, 100, ], }, }, { id: "taxiway-line", type: "line", source: "vector-tiles", "source-layer": "aeroway", minzoom: 10, filter: ["all", isLinestring, ["==", ["get", "class"], "taxiway"]], paint: { "line-color": color, "line-width": [ "interpolate", ["exponential", 2], ["zoom"], 10, 2, 18, 10, ], }, }, { id: "runway-fill", type: "fill", source: "vector-tiles", "source-layer": "aeroway", minzoom: 12, filter: [ "all", isPolygon, ["in", ["get", "class"], ["literal", ["runway", "taxiway"]]], ], paint: { "fill-color": color, }, }, ]; }; export const airportSymbols = (config) => { const commonLayout = { "icon-image": DEFS.pois.tags.aeroway.aerodrome[0], "text-size": 12, "text-anchor": "top", "text-offset": [0, 0.7], }; const commonPaint = { "icon-color": config.pick(DEFS.airports.symbolColor), "text-color": config.pick(DEFS.airports.symbolColor), }; const minorAirportFilter = [ "any", ["!", ["has", "name"]], ["!", ["has", "iata"]], ["!", ["has", "icao"]], ["==", ["get", "class"], "private"], ]; return [ { id: "airport-gate", type: "symbol", source: "vector-tiles", "source-layer": "aeroway", minzoom: 15, filter: ["==", ["get", "class"], "gate"], layout: { "text-field": ["get", "ref"], "text-font": config.fonts("Bold"), "text-size": 12, }, paint: { "text-color": config.pick(DEFS.airports.symbolColor), }, metadata: { "libshumate:cursor": "pointer", }, }, { id: "minor-airport-short-label", type: "symbol", source: "vector-tiles", "source-layer": "aerodrome_label", minzoom: 13, filter: minorAirportFilter, layout: { ...commonLayout, "text-field": ["coalesce", ["get", "iata"], ["get", "icao"]], "text-font": config.fonts("Italic"), "text-optional": true, }, paint: commonPaint, metadata: { "libshumate:cursor": "pointer", }, }, { id: "minor-airport-label", type: "symbol", source: "vector-tiles", "source-layer": "aerodrome_label", minzoom: 13, filter: minorAirportFilter, layout: { ...commonLayout, "text-field": config.localizedName(), }, paint: commonPaint, metadata: { "libshumate:cursor": "pointer", }, }, { id: "airport-short-label", type: "symbol", source: "vector-tiles", "source-layer": "aerodrome_label", minzoom: 13, filter: ["!", minorAirportFilter], layout: { ...commonLayout, "text-field": ["coalesce", ["get", "iata"], ["get", "icao"]], "text-font": config.fonts("Italic"), "text-optional": true, }, paint: commonPaint, metadata: { "libshumate:cursor": "pointer", }, }, { id: "airport-label", type: "symbol", source: "vector-tiles", "source-layer": "aerodrome_label", minzoom: 13, filter: ["!", minorAirportFilter], layout: { ...commonLayout, "text-field": config.localizedName(), }, paint: commonPaint, metadata: { "libshumate:cursor": "pointer", }, }, ]; }; 0707010000022B000081A40000000000000000000000016641340900000844000000000000000000000000000000000000002C00000000gnome-maps-46.11/src/mapStyle/boundaries.js/* * Copyright (C) 2023 James Westman * * 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, see . */ import { DEFS } from "./defs.js"; const boundaryLayer = (config, adminLevel, width, disputed) => ({ id: `boundary-${adminLevel}${disputed ? "-disputed" : ""}`, type: "line", source: "vector-tiles", "source-layer": "boundary", filter: [ "all", /* Show disputed maritime boundaries, but not undisputed ones */ ...(disputed ? [["==", "disputed", 1]] : [ ["!=", "disputed", 1], ["!=", "maritime", 1], ]), ["==", "admin_level", adminLevel], ], minzoom: adminLevel - 1, layout: { "line-join": "round", "line-cap": "round", }, paint: { "line-color": config.pick(DEFS.colors.boundary), "line-dasharray": (disputed ? [6, 54] : [6, 18, 18, 18]).map( (x) => x / width ), "line-width": [ "interpolate", ["exponential", 1.2], ["zoom"], adminLevel, width / 5, adminLevel + 14, width * 5, ], }, }); export const boundaryLayers = (config) => Object.entries(DEFS.boundaryWidths) .map(([adminLevel, width]) => [ boundaryLayer(config, parseInt(adminLevel), width, false), boundaryLayer(config, parseInt(adminLevel), width, true), ]) .flat(); 0707010000022C000081A40000000000000000000000016641340900000870000000000000000000000000000000000000002B00000000gnome-maps-46.11/src/mapStyle/buildings.js/* * Copyright (C) 2023 James Westman * * 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, see . */ import { DEFS } from "./defs.js"; import { mix } from "./utils.js"; export const buildings = (config) => { return [ { id: "buildings", type: "fill", source: "vector-tiles", "source-layer": "building", filter: ["!", ["has", "part"]], paint: { "fill-color": config.pick(DEFS.buildings), "fill-opacity": [ "interpolate", ["linear"], ["zoom"], 13, 0.15, 14, 0.25, 18, 0.5, ], }, }, { id: "buildings-outline", type: "line", source: "vector-tiles", "source-layer": "building", minzoom: 15, paint: { "line-color": mix( config.pick(DEFS.buildings), "#000000", config.colorScheme === "dark" ? 1.33 : 0.75 ), "line-width": [ "interpolate", ["linear"], ["zoom"], 15, 0.05, 18, config.colorScheme === "dark" ? 1 : 0.5, ], }, }, ]; }; 0707010000022D000081A40000000000000000000000016641340900004CD1000000000000000000000000000000000000002600000000gnome-maps-46.11/src/mapStyle/defs.js/* * Copyright (C) 2023 James Westman * * 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, see . */ export const DEFS = { minLayer: -5, maxLayer: 5, airports: { symbolColor: { dark: "#ae78bf", light: "#9100bd", }, runwayColor: { dark: "#2d2832", light: "#d7cddc", }, }, buildings: { dark: "#464646", light: "#b4b4b4", }, colors: { background: { dark: "#191a19", light: "#deddda", }, foreground: { dark: "#ffffff", light: "#000000", }, water: { dark: "#0f2f5e", light: "#99c1f1", }, boundary: { dark: "#c0bfbc", light: "#77767b", }, onewayArrow: { dark: "#ffffff", light: "#000000", }, }, boundaryWidths: { /* See for more information on admin levels. */ /* Countries */ 2: 1.5, /* Major, generally semi-autonomous regions of countries */ 3: 1, /* States, provinces, etc. */ 4: 0.8, /* Counties, cities, etc. based on country */ 5: 0.5, 6: 0.4, 7: 0.3, 8: 0.2, }, housenumbers: { dark: "#9a9996", light: "#77767b", }, landcover: { farmland: { dark: "#262419", light: "#e8e7d0", }, ice: { dark: "#232431", light: "#e2e1ff", }, grass: { dark: "#334034", light: "#adccb3", }, wetland: { dark: "#1e2627", light: "#ccd9d7", }, wood: { dark: "#29342a", light: "#a3c2a9", }, rock: { dark: "#232423", light: "#d4d3d0", }, sand: { dark: "#2f281e", light: "#f2e3cb", }, }, places: [ { classes: ["continent"], font: "Light", color: { dark: "#deddda", light: "#3d3846", }, maxzoom: 2, sizeStops: [ [0, 18], [1, 24], ], }, { classes: ["country"], font: "Extrabold", color: { dark: "#deddda", light: "#3d3846", }, maxzoom: 6, sizeStops: [ [1, 14], [3, 16], [4, 20], [5, 24], [6, 28], ], }, { classes: ["state", "province"], font: "Bold", color: { dark: "#c0bfbc", light: "#5e5c64", }, minzoom: 4, maxzoom: 8, textTransform: "uppercase", sizeStops: [ [4, 14], [6, 20], ], }, { classes: ["city"], font: "Bold", color: { dark: "#ffffff", light: "#000000", }, minzoom: 4, maxzoom: 12, sizeStops: [ [4, 10], [6, 16], [12, 24], ], }, { classes: ["town", "village"], font: "Bold", color: { dark: "#ffffff", light: "#000000", }, maxzoom: 13, sizeStops: [ [9, 12], [12, 18], ], }, { classes: ["neighborhood", "suburb", "quarter"], font: "Bold", color: { dark: "#c0bfbc", light: "#5e5c64", }, maxzoom: 15, textTransform: "uppercase", sizeStops: [ [12, 12], [15, 18], ], }, { classes: ["hamlet"], font: "Bold", color: { dark: "#c0bfbc", light: "#5e5c64", }, maxzoom: 15, sizeStops: [ [12, 12], [15, 18], ], }, { id: "place-island-large", classes: ["island"], font: "Italic", color: { dark: "#c8bfbc", light: "#5e5c64", }, minzoom: 8, maxzoom: 12, maxRank: 3, sizeStops: [ [6, 18], ], }, { classes: ["island"], font: "Italic", color: { dark: "#c8bfbc", light: "#5e5c64", }, minzoom: 13, maxzoom: 18, sizeStops: [ [13, 18], ], }, ], pois: { colors: { education: { dark: "#d7c300", light: "#807620", }, food: { dark: "#d78c00", light: "#bf7b00", }, generic: { dark: "#00bebe", light: "#007f7f", }, healthAndSafety: { dark: "#ee9696", light: "#b25a5a", }, hospitals: { dark: "#ed2f2f", light: "#b12323", }, lodging: { dark: "#ff4de3", light: "#980081", }, micro: { dark: "#6eeebe", light: "#32b282", }, parks: { dark: "#00d700", light: "#007f00", }, public: { dark: "#cca266", light: "#804b00", }, traffic: { dark: "#ffffff", light: "#000000", }, transport: { dark: "#8c8cdf", light: "#5050b2", }, }, sportIcons: { american_football: "football-american-symbolic", baseball: "baseball-symbolic", golf: "golf-symbolic", hockey: "hockey-symbolic", tennis: "tennis-symbolic", soccer: "football-symbolic", _: "baseball-symbolic", }, tags: { aeroway: { aerodrome: ["flying-symbolic"], }, aerialway: { station: ["gondola-symbolic", "transportation", 16], }, amenity: { arts_centre: ["theater-symbolic", "generic"], atm: ["coin-symbolic", "micro", 16], bank: ["bank-symbolic", "generic"], bar: ["bar-symbolic", "food"], bbq: ["barbecue-symbolic", "micro", 16], bicycle_parking: [ "bicycle-parking-symbolic", "transport", 16, 0.75, ], bicycle_rental: ["cycling-symbolic", "transport", 16], biergarten: ["pub-symbolic", "food"], bus_station: ["route-transit-bus-symbolic", "transport"], cafe: ["cafe-symbolic", "food"], car_rental: ["route-car-symbolic", "transport"], charging_station: ["electric-car-symbolic", "transport"], cinema: ["video-camera-symbolic", "generic"], clinic: ["hospital-sign-symbolic", "healthAndSafety"], college: ["school-symbolic", "education"], conference_centre: ["meeting-symbolic", "public", 13], dentist: ["dentist-symbolic", "healthAndSafety"], doctors: ["hospital-sign-symbolic", "healthAndSafety"], drinking_water: ["drinking-fountain-symbolic", "micro", 16], fast_food: ["fast-food-symbolic", "food"], ferry_terminal: [ "route-transit-ferry-symbolic", "transport", 13, ], firepit: ["barbecue-symbolic", "micro", 16], fire_station: ["firefighter-symbolic", "healthAndSafety", 15], food_court: ["restaurant-symbolic", "food"], fuel: ["fuel-symbolic", "transport"], grave_yard: ["non-religious-cemetary-symbolic", "parks"], hospital: ["hospital-symbolic", "hospitals", 10], ice_cream: ["icecream-cone-symbolic", "food"], kindergarten: ["school-symbolic", "education"], library: ["open-book-symbolic", "public", 14], luggage_locker: ["briefcase-symbolic", "micro", 16], nightclub: ["music-note-symbolic", "generic"], parking: ["parking-sign-symbolic", "transport", 16, 0.75], pharmacy: ["pharmacy-symbolic", "healthAndSafety"], place_of_worship: ["circle-small-symbolic", "public", 16], police: ["police-badge2-symbolic", "healthAndSafety"], post_box: ["post-box-symbolic", "micro", 16], post_office: ["post-box-symbolic", "generic"], pub: ["pub-symbolic", "food"], recycling: ["recycling-bin-symbolic", "micro", 16], restaurant: ["restaurant-symbolic", "food"], school: ["school-symbolic", "education"], theatre: ["theater-symbolic", "generic"], toilets: ["toilets-symbolic", "micro", 16], university: ["school-symbolic", "education", 13], veterinary: ["cat-symbolic", "healthAndSafety"], waste_basket: ["user-trash-symbolic", "micro", 16], }, barrier: { bollard: false, gate: ["gate-symbolic", "traffic", 17, 0.75], lift_gate: ["gate-symbolic", "traffic", 17, 0.75], }, building: { railway_station: ["route-transit-train", "transport", 16], _: ["building-symbolic", "generic", 16], }, highway: { bus_stop: ["route-transit-bus-symbolic", "transport", 16], cycleway: ["route-bike-symbolic", "transport", 16], footway: ["route-pedestrian-symbolic", "transport", 16], pedestrian: ["route-pedestrian-symbolic", "transport", 16], platform: ["route-transit-bus-symbolic", "transport", 16], steps: ["steps-symbolic", "transport", 16], path: ["route-pedestrian-symbolic", "transport", 16], _: ["route-car-symbolic", "transport", 16], }, historic: { monument: ["museum-symbolic", "public"], }, information: { office: ["explore-symbolic", "micro", 14], visitor_centre: ["explore-symbolic", "micro", 14], _: ["explore-symbolic", "micro"], }, landuse: { cemetery: ["non-religious-cemetary-symbolic", "parks"], }, leisure: { dog_park: ["dog-symbolic", "parks"], fitness_centre: ["weight2-symbolic", "generic"], fitness_station: ["weight2-symbolic", "micro", 16], garden: ["tree-symbolic", "parks", 16], golf_course: ["golf-symbolic", "parks", 14], mini_golf: ["golf-symbolic", "parks"], miniature_golf: ["golf-symbolic", "parks"], nature_reserve: ["tree-symbolic", "parks", 10], park: ["tree-symbolic", "parks", 10], pitch: ["@sport", "parks", 16], sports_centre: ["@sport", "parks", 13], stadium: ["@sport", "parks", 14], swimming_pool: false, }, natural: { hill: ["mountain-symbolic", "parks"], peak: ["mountain-symbolic", "parks"], volcano: ["mountain-symbolic", "parks"], }, office: { diplomatic: ["flag-filled-symbolic", "public"], _: ["building-symbolic", "generic"], }, place: { borough: ["city-symbolic"], city: ["city-symbolic"], city_block: ["building-symbolic"], continent: ["earth-symbolic"], country: ["flag-filled-symbolic"], hamlet: ["town-symbolic"], isolated_dwelling: ["building-symbolic"], neighbourhood: ["town-symbolic"], quarter: ["town-symbolic"], province: ["flag-outline-thick-symbolic"], region: ["flag-outline-thick-symbolic"], square: ["route-pedestrian-symbolic"], state: ["flag-outline-thick-symbolic"], suburb: ["town-symbolic"], town: ["town-symbolic"], village: ["town-symbolic"], }, railway: { halt: ["route-transit-train-symbolic", "transport", 16], station: ["route-transit-train-symbolic", "transport", 16], stop: ["route-transit-train-symbolic", "transport", 16], subway_entrance: ["exit-symbolic", "transport", 16], train_station_entrance: ["exit-symbolic", "transport", 16], tram_stop: ["route-transit-tram-symbolic", "transport", 16], }, shop: { alcohol: ["drinks-symbolic", "generic"], art: ["brush-symbolic", "generic"], bakery: ["bread-symbolic", "generic"], bicycle : ["cycling-symbolic", "generic"], books: ["library-symbolic", "generic"], car: ["driving-symbolic", "generic"], car_repair: ["wrench-wide-symbolic", "shop"], clothes: ["clothing-store-symbolic", "generic"], clothing: ["clothing-store-symbolic", "generic"], computer: ["phonelink2-symbolic", "generic"], convenience: ["shopping-cart-symbolic", "generic"], department_store: ["shop-symbolic", "generic"], electronics: ["phonelink2-symbolic", "generic"], general: ["shop-symbolic", "generic"], gift: ["package-x-generic-symbolic", "generic"], golf: ["golf-symbolic", "generic"], grocery: ["shopping-cart-symbolic", "generic"], hairdresser: ["barber-symbolic", "generic"], hardware: ["build-alt-symbolic", "generic"], ice_cream: ["icecream-cone-symbolic", "food"], jewelry: ["anniversary-symbolic", "generic"], mall: ["shop-symbolic", "generic", 14], mobile_phone: ["smartphone-symbolic", "generic"], music: ["headphones-symbolic", "generic"], newsagent: ["newspaper-symbolic", "generic"], optician: ["eye-open-negative-filled-symbolic", "generic"], pet: ["cat-symbolic", "generic"], photo: ["photo-camera-symbolic", "generic"], sports: ["@sport", "generic"], supermarket: ["shopping-cart-symbolic", "generic", 14], ticket: ["ticket-symbolic", "generic"], video_games: ["gamepad-symbolic", "generic"], wine: ["drinks-symbolic", "generic"], _: ["shop-symbolic", "generic"], }, tourism: { alpine_hut: ["bed-symbolic", "lodging"], apartment: ["bed-symbolic", "lodging"], attraction: ["photo-camera-symbolic", "public"], artwork: ["photo-camera-symbolic", "micro"], butcher: ["salami-symbolic", "generic"], chalet: ["bed-symbolic", "lodging"], gallery: ["museum-symbolic", "public"], guest_house: ["bed-symbolic", "lodging"], hostel: ["bed-symbolic", "lodging"], hotel: ["bed-symbolic", "lodging", 14], information: ["explore-symbolic", "micro"], motel: ["bed-symbolic", "lodging"], museum: ["museum-symbolic", "public"], picnic_site: ["bench-symbolic", "micro", 16], viewpoint: ["photo-camera-symbolic", "public"], zoo: ["penguin-symbolic", "public"], }, }, }, roads: [ { classes: ["path"], subclass: ["pedestrian"], color: { dark: "#25242a", light: "#bebdc8", }, size: 0.75, }, { classes: ["path"], subclass: ["platform"], color: { dark: "#483a3d", light: "#bebdc8", }, }, { classes: ["service"], color: { dark: "#2a2924", light: "#c8c7b4", }, size: 0.5, casingMinZoom: { dark: 14, light: undefined, }, casingScale: 0.4, }, { classes: ["tertiary", "minor"], color: { dark: "#413f39", light: "#d7d2bc", }, casingMinZoom: { dark: 14, light: undefined, }, }, { classes: ["secondary"], color: { dark: "#453324", light: "#ebd68a", }, size: 1.5, }, { classes: ["trunk", "primary"], color: { dark: "#493727", light: "#e9cf75", }, size: 1.75, }, { classes: ["motorway"], color: { dark: "#58422e", light: "#e1c172", }, size: 2, }, ], paths: { color: { dark: "#5e5c64", light: "#9a9996", }, size: 0.2, }, platforms: { color: { dark: "#483a3d", light: "#bebdc8", }, }, rail: { color: { dark: "#91747b", light: "#c89299", }, }, aerial: { color: { dark: "#91747b", light: "#c89299", }, }, }; 0707010000022E000081A4000000000000000000000001664134090000056C000000000000000000000000000000000000002E00000000gnome-maps-46.11/src/mapStyle/housenumbers.js/* * Copyright (C) 2023 James Westman * * 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, see . */ import { DEFS } from "./defs.js"; export const housenumbers = (config) => ({ id: "housenumbers", type: "symbol", source: "vector-tiles", "source-layer": "housenumber", minzoom: 18, layout: { "text-field": ["get", "housenumber"], "text-font": config.fonts(), "text-size": [ "interpolate", ["linear"], ["zoom"], 18, config.textSize(9), 20, config.textSize(11), ], }, paint: { "text-color": config.pick(DEFS.housenumbers), }, metadata: { "libshumate:cursor": "pointer", }, }); 0707010000022F000081A400000000000000000000000166413409000004FC000000000000000000000000000000000000002B00000000gnome-maps-46.11/src/mapStyle/landcover.js/* * Copyright (C) 2023 James Westman * * 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, see . */ import { DEFS } from "./defs.js"; export const landcover = (config) => ({ id: "landcover", type: "fill", source: "vector-tiles", "source-layer": "landcover", filter: ["in", ["get", "class"], ["literal", Object.keys(DEFS.landcover)]], paint: { "fill-color": [ "interpolate", ["exponential", 1.5], ["zoom"], 7, config.pick(DEFS.colors.background), 10, config.colorMatch(DEFS.landcover, "transparent"), ], }, }); 07070100000230000081A40000000000000000000000016641340900000EA0000000000000000000000000000000000000002A00000000gnome-maps-46.11/src/mapStyle/mapStyle.js/* * Copyright (C) 2023 James Westman * * 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, see . */ import { aerial, aerialLabel } from "./aerial.js"; import { airportLayers, airportSymbols } from "./airports.js"; import { boundaryLayers as boundaries } from "./boundaries.js"; import { DEFS } from "./defs.js"; import { landcover } from "./landcover.js"; import { rail } from "./rail.js"; import { highwayShield, junctionSymbol, roadSymbol, roads } from "./roads.js"; import { MapStyleConfig } from "./utils.js"; import { ferryLine, ferryLineName, waterFill, waterLine, waterName, waterNameLine, waterwayName, } from "./water.js"; import { buildings } from "./buildings.js"; import { housenumbers } from "./housenumbers.js"; import { places } from "./places.js"; import { pois } from "./pois.js"; /** * Generates the map style using the given options. * @param {import("./utils.js").MapStyleConfigParams} options * @returns {*} */ export function generateMapStyle(options) { const config = new MapStyleConfig(options); const layeredLayers = []; for (let layerNum = DEFS.minLayer; layerNum <= DEFS.maxLayer; layerNum++) { const filter = layerNum == 0 ? ["any", ["==", ["get", "layer"], 0], ["!", ["has", "layer"]]] : ["==", ["get", "layer"], layerNum]; layeredLayers.push(...roads(config, layerNum, filter)); layeredLayers.push(...rail(config, layerNum, filter)); layeredLayers.push(...aerial(config, layerNum, filter)); if (layerNum === 0) { layeredLayers.push(...airportLayers(config)); layeredLayers.push(...buildings(config)); } } const style = { version: 8, name: "GNOME Maps " + (options.colorScheme === "dark" ? "Dark" : "Light"), sources: { "vector-tiles": { type: "vector", tiles: ["https://tileserver.gnome.org/data/v3/{z}/{x}/{y}.pbf"], minzoom: 0, maxzoom: 14, }, }, /* Not used by libshumate, but necessary for Mapbox GL JS */ glyphs: "https://tiles.maps.jwestman.net/fonts/{fontstack}/{range}.pbf", layers: [ { id: "background", type: "background", paint: { "background-color": config.pick(DEFS.colors.background), }, }, landcover(config), waterFill(config), waterLine(config), ...boundaries(config), ...layeredLayers, ferryLine(config), waterName(config), waterNameLine(config), waterwayName(config), ferryLineName(config), housenumbers(config), ...pois(config), roadSymbol(config), junctionSymbol(config), ...highwayShield(config), aerialLabel(config), ...airportSymbols(config), ...places(config), ], }; return style; } 07070100000231000081A400000000000000000000000166413409000006CC000000000000000000000000000000000000002800000000gnome-maps-46.11/src/mapStyle/places.js/* * Copyright (C) 2023 James Westman * * 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, see . */ import { DEFS } from "./defs.js"; export const places = (config) => DEFS.places.map((place) => ({ id: place.id ?? `place-${place.classes[0]}`, type: "symbol", source: "vector-tiles", "source-layer": "place", minzoom: place.minzoom, maxzoom: place.maxzoom, filter: config.filter(place), layout: { "text-font": config.fonts(place.font), "text-field": config.localizedName(), "text-transform": place.textTransform, "text-padding": 10, "text-size": [ "interpolate", ["linear"], ["zoom"], ...place.sizeStops.flatMap(([stop, size]) => [ stop, config.textSize(size), ]), ], }, paint: { "text-color": config.pick(place.color), }, metadata: { "libshumate:cursor": "pointer", }, })); 07070100000232000081A4000000000000000000000001664134090000123E000000000000000000000000000000000000002600000000gnome-maps-46.11/src/mapStyle/pois.js/* * Copyright (C) 2023 James Westman * * 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, see . */ import { DEFS } from "./defs.js"; const classMatch = (transform, defaultVal) => { const matchExpr = ["match", ["coalesce", ["get", "tag"], ["get", "class"]]]; for (const [poiClass, poiSubclasses] of Object.entries(DEFS.pois.tags)) { const subMatchExpr = [ "match", ["coalesce", ["get", "subtag"], ["get", "subclass"]], ]; const subDefaultVal = transform(poiSubclasses._) ?? defaultVal; for (const [poiSubclass, poiDef] of Object.entries(poiSubclasses)) { if (poiSubclass !== "_") { const val = transform(poiDef) ?? defaultVal; if (val !== subDefaultVal) { subMatchExpr.push(poiSubclass, val); } } } if (subMatchExpr.length > 2) { subMatchExpr.push(subDefaultVal); matchExpr.push(poiClass, subMatchExpr); } else if (subDefaultVal !== defaultVal) { matchExpr.push(poiClass, subDefaultVal); } } matchExpr.push(defaultVal); if (matchExpr.length > 3) { return matchExpr; } else { return defaultVal; } }; const getIcon = (def) => def?.[0]; const getCategory = (def) => def?.[1]; const getMinzoom = (def) => (def === false ? 100 : def?.[2] ?? 15); const getSize = (def) => def?.[3]; export const pois = (config) => { const color = classMatch( (x) => config.pick(DEFS.pois.colors[getCategory(x)]), config.pick(DEFS.pois.colors.generic) ); return [ { id: "pois", type: "symbol", source: "vector-tiles", "source-layer": "poi", filter: [ "all", /* For zoom levels 15-17, limit POI density by rank. At 14 and below we don't show enough POI types to cause a problem, and at 18 and above it's zoomed in enough to not be too dense. */ [ "<=", ["get", "rank"], [ "step", ["zoom"], 100000, 15, 50, 17, 100, 18, 100000, ], ], [">=", ["zoom"], classMatch(getMinzoom, 16)], ], layout: { "text-anchor": "top", "text-offset": [0, 0.7], "text-field": ["coalesce", config.localizedName(), ["get", "ref"]], "text-font": config.fonts("Italic"), "text-size": ["*", config.textSize(12), classMatch(getSize, 1)], "text-optional": ["step", ["zoom"], false, 18, true], "icon-padding": 10, "text-padding": 10, "icon-image": [ "let", "icon", classMatch(getIcon, "circle-small-symbolic"), [ "match", ["var", "icon"], "@sport", [ "match", ["get", "subclass"], ...Object.entries(DEFS.pois.sportIcons) .filter((x) => x[0] !== "_") .flat(), DEFS.pois.sportIcons._, ], ["var", "icon"], ], ], "icon-size": classMatch(getSize, 1), "symbol-sort-key": ["+", ["*", classMatch(getMinzoom, 16), 1000000], ["get", "rank"]], }, paint: { "icon-color": color, "text-color": color, }, metadata: { "libshumate:cursor": "pointer", }, }, ]; }; 07070100000233000081A40000000000000000000000016641340900001C53000000000000000000000000000000000000002600000000gnome-maps-46.11/src/mapStyle/rail.js/* * Copyright (C) 2023 James Westman * * 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, see . */ import { DEFS } from "./defs.js"; import { mix } from "./utils.js"; export const rail = (config, layerNum, layerFilter) => { const color = config.pick(DEFS.rail.color); const tunnelColor = mix(color, config.pick(DEFS.colors.background), 0.7); const bridgeColor = mix(color, "#000000", 0.75); const lightRailFilter = [ "any", [ "all", ["==", ["get", "class"], "rail"], ["!=", ["get", "subclass"], "rail"], ], [ "all", ["==", ["get", "class"], "transit"], [ "in", ["get", "subclass"], ["literal", ["light_rail", "monorail", "funicular", "tram"]], ], ], ]; const lightRailWidth = [ "interpolate", ["linear"], ["zoom"], 8, 0.25, 13, 0.5, 16, 2, ]; const heavyRailFilter = [ "all", [ "any", [ "all", ["==", ["get", "class"], "rail"], ["==", ["get", "subclass"], "rail"], ], [ "all", ["==", ["get", "class"], "transit"], ["==", ["get", "subclass"], "subway"], ], ], ["!=", ["get", "service"], "yard"], ]; return [ { id: `light-rail-${layerNum}-bridge-casing`, type: "line", source: "vector-tiles", "source-layer": "transportation", filter: [ "all", layerFilter, lightRailFilter, ["==", ["get", "brunnel"], "bridge"], ], paint: { "line-color": bridgeColor, "line-width": lightRailWidth, }, }, { id: `light-rail-${layerNum}`, type: "line", source: "vector-tiles", "source-layer": "transportation", filter: [ "all", layerFilter, lightRailFilter, ["!=", ["get", "brunnel"], "tunnel"], ], paint: { "line-color": color, "line-width": lightRailWidth, }, }, { id: `light-rail-${layerNum}-tunnel`, type: "line", source: "vector-tiles", "source-layer": "transportation", filter: [ "all", layerFilter, lightRailFilter, ["==", ["get", "brunnel"], "tunnel"], ], paint: { "line-color": tunnelColor, "line-dasharray": [1, 0.5], "line-width": lightRailWidth, }, }, { id: `light-rail-${layerNum}-ties`, type: "line", source: "vector-tiles", "source-layer": "transportation", minzoom: 13, filter: ["all", layerFilter, lightRailFilter], paint: { "line-color": [ "case", ["==", ["get", "brunnel"], "tunnel"], tunnelColor, color, ], "line-dasharray": [0.3, 1.5], "line-width": [ "interpolate", ["linear"], ["zoom"], 13, 0.5, 16, 4, ], }, }, { id: `heavy-rail-${layerNum}-bridge-casing`, type: "line", source: "vector-tiles", "source-layer": "transportation", minzoom: 13, filter: [ "all", layerFilter, heavyRailFilter, ["==", ["get", "brunnel"], "bridge"], ], paint: { "line-color": bridgeColor, "line-width": [ "interpolate", ["linear"], ["zoom"], 14, 0.5, 16, 8, ], }, }, { id: `heavy-rail-${layerNum}`, type: "line", source: "vector-tiles", "source-layer": "transportation", filter: [ "all", layerFilter, heavyRailFilter, ["!=", ["get", "brunnel"], "tunnel"], ], paint: { "line-color": color, "line-width": [ "interpolate", ["linear"], ["zoom"], 14, 0.5, 16, 4, ], }, }, { id: `heavy-rail-${layerNum}-tunnel`, type: "line", source: "vector-tiles", "source-layer": "transportation", filter: [ "all", layerFilter, heavyRailFilter, ["==", ["get", "brunnel"], "tunnel"], ], paint: { "line-color": tunnelColor, "line-dasharray": [2, 0.5], "line-width": [ "interpolate", ["linear"], ["zoom"], 14, 0.5, 16, 4, ], }, }, { id: `heavy-rail-${layerNum}-ties`, type: "line", source: "vector-tiles", "source-layer": "transportation", minzoom: 14, filter: [ "all", heavyRailFilter, layerFilter, ["!=", ["get", "brunnel"], "tunnel"], ], paint: { "line-color": config.pick(DEFS.colors.background), "line-dasharray": [2, 2], "line-width": [ "interpolate", ["linear"], ["zoom"], 14, 0.25, 16, 2, ], }, }, ]; }; 07070100000234000081A400000000000000000000000166413409000037CC000000000000000000000000000000000000002700000000gnome-maps-46.11/src/mapStyle/roads.js/* * Copyright (C) 2023 James Westman * * 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, see . */ import Gio from 'gi://Gio'; import { DEFS } from "./defs.js"; import { MapStyleConfig, isLinestring, isPolygon, mix, } from "./utils.js"; const allClasses = ["path", ...DEFS.roads.flatMap((r) => r.classes)]; /** * * @param {MapStyleConfig} config * @param {number} layerNum * @param {*} layerFilter */ export function roads(config, layerNum, layerFilter) { const casings = []; const surfaces = []; const stops = (size, casingWidth) => [ 5, 0.15 * size, 9, 0.35 * size, 12, 0.65 * size + casingWidth * 0.25, 14, 1 * size + casingWidth * 0.45, 16, 2 * size + casingWidth * 0.75, 18, 8 * size + casingWidth, 19, 20 * size + casingWidth, 20, 40 * size + casingWidth, 21, 80 * size + casingWidth, 22, 160 * size + casingWidth, ]; const road = (name, filter, color, size, casingMinZoom, casingScale) => { size ??= 1; casingMinZoom ??= 12; casingScale ??= 1; color = config.pick(color); casingMinZoom = config.pick(casingMinZoom); const roadStops = (casingWidth, fill) => stops(fill ? 0 : size, casingWidth * casingScale); const casing = ( alt, casingFilter, color, lineCap, stopWidth, dashArray ) => { for (const [geometryTypes, geometrySuffix] of [ [["LineString", "MultiLineString"], ""], [["Polygon", "MultiPolygon"], "-fill"], ]) { casings.push({ id: `${name}-${layerNum}${alt}${geometrySuffix}-casing`, type: "line", source: "vector-tiles", "source-layer": "transportation", minzoom: casingMinZoom, filter: [ "all", layerFilter, filter, casingFilter, ["in", ["geometry-type"], ["literal", geometryTypes]], ["!=", ["get", "surface"], "unpaved"], ], layout: { "line-cap": lineCap, }, paint: { "line-color": config.pick(color), "line-width": [ "interpolate", ["exponential", 1.2], ["zoom"], ...roadStops(stopWidth, geometrySuffix === "-fill"), ], "line-dasharray": dashArray, }, }); } }; const mixColor = config.colorScheme === "dark" ? "#ffffff" : "#000000"; const casingColor = mix(color, mixColor, 0.9); casing("", ["!", ["has", "brunnel"]], casingColor, "round", 3); casing( "-bridge", ["==", ["get", "brunnel"], "bridge"], mix(color, mixColor, 0.75), "butt", 4 ); casing( "-tunnel", ["==", ["get", "brunnel"], "tunnel"], config.colorScheme === "dark" ? mix(color, "#ffffff", 0.7) : mix(color, "#000000", 0.8), "butt", 4, [0.5, 0.25] ); surfaces.push({ id: `${name}-${layerNum}-unpaved-casing`, type: "line", source: "vector-tiles", "source-layer": "transportation", minzoom: 5, filter: [ "all", isLinestring, layerFilter, filter, ["==", ["get", "surface"], "unpaved"], ], layout: { "line-cap": "round", }, paint: { "line-color": casingColor, "line-width": [ "interpolate", ["exponential", 1.2], ["zoom"], ...roadStops(size * 1.3, false), ], "line-dasharray": [1.5 / 1.3, 2 / 1.3], }, }); const surfaceColor = [ "case", ["!=", ["get", "brunnel"], "tunnel"], color, config.colorScheme === "dark" ? mix(color, "#ffffff", 0.85) : mix(color, "#ffffff", 0.7), ]; surfaces.push({ id: `${name}-${layerNum}`, type: "line", source: "vector-tiles", "source-layer": "transportation", minzoom: 5, filter: [ "all", isLinestring, layerFilter, filter, ["!=", ["get", "surface"], "unpaved"], ], layout: { "line-cap": "round", }, paint: { "line-color": surfaceColor, "line-width": [ "interpolate", ["exponential", 1.2], ["zoom"], ...stops(size, 0), ], }, }); surfaces.push({ id: `${name}-${layerNum}-unpaved`, type: "line", source: "vector-tiles", "source-layer": "transportation", minzoom: 5, filter: [ "all", isLinestring, layerFilter, filter, ["==", ["get", "surface"], "unpaved"], ], layout: { "line-cap": "round", }, paint: { "line-color": surfaceColor, "line-width": [ "interpolate", ["exponential", 1.2], ["zoom"], ...stops(size, 0), ], "line-dasharray": [1.5, 2], }, }); surfaces.push({ id: `${name}-${layerNum}-fill`, type: "fill", source: "vector-tiles", "source-layer": "transportation", filter: ["all", isPolygon, layerFilter, filter], paint: { "fill-color": surfaceColor, }, }); }; for (const roadDef of DEFS.roads) { const filter = roadDef.subclass ? [ "all", ["in", ["get", "class"], ["literal", roadDef.classes]], ["in", ["get", "subclass"], ["literal", roadDef.subclass]], ] : ["in", ["get", "class"], ["literal", roadDef.classes]]; road( roadDef.subclass?.[0] ?? roadDef.classes[0], filter, roadDef.color, roadDef.size, roadDef.casingMinZoom, roadDef.casingScale ); } surfaces.push({ id: `path-${layerNum}`, type: "line", source: "vector-tiles", "source-layer": "transportation", filter: [ "all", isLinestring, layerFilter, ["==", ["get", "class"], "path"], ["!=", ["get", "subclass"], "pedestrian"], ["!=", ["get", "subclass"], "platform"], ["!=", ["get", "surface"], "unpaved"], ], paint: { "line-color": config.pick(DEFS.paths.color), "line-width": [ "interpolate", ["exponential", 1.2], ["zoom"], ...stops(DEFS.paths.size, 0), ], }, }); surfaces.push({ id: `path-${layerNum}-unpaved`, type: "line", source: "vector-tiles", "source-layer": "transportation", filter: [ "all", isLinestring, layerFilter, ["==", ["get", "class"], "path"], ["!=", ["get", "subclass"], "pedestrian"], ["!=", ["get", "subclass"], "platform"], ["==", ["get", "surface"], "unpaved"], ], layout: { "line-cap": "round", }, paint: { "line-color": config.pick(DEFS.paths.color), "line-width": [ "interpolate", ["exponential", 1.2], ["zoom"], ...stops(DEFS.paths.size, 0), ], "line-dasharray": [3, 3], }, }); surfaces.push({ id: `path-${layerNum}-platform`, type: "fill", source: "vector-tiles", "source-layer": "transportation", filter: [ "all", isPolygon, layerFilter, ["==", ["get", "class"], "path"], ["==", ["get", "subclass"], "platform"], ], paint: { "fill-color": config.pick(DEFS.platforms.color), }, }); surfaces.push({ id: `path-${layerNum}-fill`, type: "fill", source: "vector-tiles", "source-layer": "transportation", filter: [ "all", isPolygon, layerFilter, ["==", ["get", "class"], "path"], ["!=", ["get", "subclass"], "pedestrian"], ["!=", ["get", "subclass"], "platform"], ], paint: { "fill-color": config.pick(DEFS.paths.color), }, }); const oneway = { id: `oneway-${layerNum}`, type: "symbol", source: "vector-tiles", "source-layer": "transportation", minzoom: 16, filter: [ "all", layerFilter, isLinestring, ["in", ["get", "class"], ["literal", allClasses]], ["in", ["get", "oneway"], ["literal", [1, -1]]], ], layout: { "icon-allow-overlap": true, "icon-ignore-placement": true, "symbol-placement": "line", "symbol-spacing": 350, "icon-image": "arrow1-right-symbolic", "icon-rotate": ["match", ["get", "oneway"], 1, 0, 180], "icon-size": [ "let", "base", [ "match", ["get", "class"], ["motorway", "trunk", "primary"], 0.75, ["secondary", "tertiary"], 0.6, 0.5, ], [ "interpolate", ["linear"], ["zoom"], 14, ["*", ["var", "base"], 0.75], 16, ["*", ["var", "base"], 1.25], ], ], }, paint: { "icon-color": config.pick(DEFS.colors.light1), "icon-opacity": 0.25, }, }; return [...casings, ...surfaces, oneway]; } export const roadSymbol = (config) => ({ id: "highway-name", type: "symbol", source: "vector-tiles", "source-layer": "transportation_name", minzoom: 10, filter: ["in", ["get", "class"], ["literal", allClasses]], layout: { "text-field": config.localizedName(), "text-font": config.fonts(), "text-size": config.textSize(12), "symbol-placement": "line", }, paint: { "text-color": config.pick(DEFS.colors.foreground), }, }); export const junctionSymbol = (config) => ({ id: "junction", type: "symbol", source: "vector-tiles", "source-layer": "transportation_name", minzoom: 12, filter: [ "all", ["has", "ref"], ["==", ["get", "subclass"], "junction"], ["in", ["get", "class"], ["literal", allClasses]], ], layout: { "icon-image": "arrow2-top-right-symbolic", "text-anchor": "left", "text-field": ["get", "ref"], "text-font": config.fonts("Bold"), "text-size": [ "interpolate", ["linear"], ["zoom"], 13, config.textSize(8), 16, config.textSize(12), ], "icon-size": [ "interpolate", ["linear"], ["zoom"], 13, config.textSize(0.5), 16, config.textSize(0.75), ], "text-offset": [0.7, 0], }, paint: { "icon-color": [ "interpolate", ["linear"], ["zoom"], 13, config.pick({ dark: "#deddda", light: "#5e5c64" }), 16, config.pick({ dark: "#ffffff", light: "#000000" }), ], "text-color": [ "interpolate", ["linear"], ["zoom"], 13, config.pick({ dark: "#deddda", light: "#5e5c64" }), 16, config.pick({ dark: "#ffffff", light: "#000000" }), ], }, }); export const highwayShield = (config) => { if (config.renderer === "maplibre-gl-js") { return []; } else { const [_status1, shieldLayerFile] = Gio.file_new_for_uri('resource://org/gnome/Maps/shields/layer.json').load_contents(null); return [JSON.parse(new TextDecoder('utf-8').decode(shieldLayerFile))]; } }; 07070100000235000081A40000000000000000000000016641340900001299000000000000000000000000000000000000002700000000gnome-maps-46.11/src/mapStyle/utils.js/* * Copyright (C) 2023 James Westman * * 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, see . */ /** * @typedef {Object} MapStyleConfigParams * @property {"dark" | "light"} [colorScheme] Color scheme * @property {"libshumate" | "maplibre-gl-js"} [renderer] Renderer to target * @property {number} [textScale] Text scale factor * @property {string} [language] Language code */ export class MapStyleConfig { /** * @param {MapStyleConfigParams} options */ constructor(options) { this.colorScheme = options.colorScheme ?? "light"; this.renderer = options.renderer ?? "libshumate"; this.textScale = options.textScale ?? 1; this.language = options.language; } pick(colorDef) { if (typeof colorDef === "undefined") { return undefined; } else if ( typeof colorDef.dark === "undefined" && typeof colorDef.light === "undefined" ) { return colorDef; } else { return colorDef[this.colorScheme]; } } colorMatch(colorDefs, fallback, field) { const result = ["match", ["get", field ?? "class"]]; for (const [key, value] of Object.entries(colorDefs)) { if (key.includes(" ")) { result.push(key.split(" ")); } else { result.push(key); } result.push(this.pick(value)); } result.push(this.pick(fallback)); return result; } fonts(variant) { if (this.renderer === "libshumate") { return ["Cantarell " + (variant ?? "Regular")]; } else { /* Use Noto Sans when targeting MapLibre GL JS because it's more commonly available in SDF format. */ return ["Noto Sans " + (variant ?? "Regular")]; } } textSize(size) { return size * this.textScale; } localizedName() { let localeExpr; switch (this.language) { case undefined: /* Fallback for exporting the style as JSON. */ localeExpr = ["get", ["concat", "name:", ["slice", ["resolved-locale", ["collator", {}]], 0, 2]]]; break; case "nb": case "nn": /* special case for Norwegian (Bokmål "nb" and nynorsk "nn") with the fallback language code "no" for names with a common translation: https://wiki.openstreetmap.org/wiki/Multilingual_names#Norway */ localeExpr = ["coalesce", ["get", "name:" + this.language], ["get", "name:no"]]; break; default: localeExpr = ["get", "name:" + this.language]; break; } return [ "to-string", [ "coalesce", localeExpr, ["get", "name"], ], ]; } filter(place) { const classExpression = ["in", ["get", "class"], ["literal", place.classes]]; if (place.maxRank) { return ["all", ["<=", ["get", "rank"], place.maxRank], classExpression]; } else { return classExpression; } } } export const hexToRgb = (hex) => [ parseInt(hex.slice(1, 3), 16), parseInt(hex.slice(3, 5), 16), parseInt(hex.slice(5, 7), 16), ]; export const rgbToHex = (rgb) => "#" + rgb.map((x) => Math.round(x).toString(16).padStart(2, "0")).join(""); export const mix = (hex1, hex2, amount) => { const rgb1 = hexToRgb(hex1); const rgb2 = hexToRgb(hex2); return rgbToHex([ rgb1[0] * amount + rgb2[0] * (1 - amount), rgb1[1] * amount + rgb2[1] * (1 - amount), rgb1[2] * amount + rgb2[2] * (1 - amount), ]); }; export const isPoint = [ "in", ["geometry-type"], ["literal", ["Point", "MultiPoint"]], ]; export const isLinestring = [ "in", ["geometry-type"], ["literal", ["LineString", "MultiLineString"]], ]; export const isPolygon = [ "in", ["geometry-type"], ["literal", ["Polygon", "MultiPolygon"]], ]; 07070100000236000081A400000000000000000000000166413409000010D1000000000000000000000000000000000000002700000000gnome-maps-46.11/src/mapStyle/water.js/* * Copyright (C) 2023 James Westman * * 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, see . */ import { DEFS } from "./defs.js"; import { isLinestring, isPoint, mix } from "./utils.js"; export const waterFill = (config) => ({ id: "water-fill", type: "fill", source: "vector-tiles", "source-layer": "water", paint: { "fill-color": config.pick(DEFS.colors.water), }, }); export const waterLine = (config) => ({ id: "water-line", type: "line", source: "vector-tiles", "source-layer": "waterway", paint: { "line-color": config.pick(DEFS.colors.water), "line-width": [ "interpolate", ["exponential", 1.5], ["zoom"], 4, 1, 14, 2, 18, 8, ], }, }); const waterLabelSize = (config) => [ "match", ["get", "class"], "ocean", config.textSize(18), "sea", config.textSize(16), ["river", "lake"], config.textSize(14), config.textSize(10), ]; const waterLabelColor = (config) => { const waterColor = config.pick(DEFS.colors.water); if (config.colorScheme === "dark") { return mix(waterColor, "#ffffff", 0.6); } else { return mix(waterColor, "#000000", 0.7); } }; export const waterName = (config) => ({ id: "water-name", type: "symbol", source: "vector-tiles", "source-layer": "water_name", filter: isPoint, layout: { "text-field": config.localizedName(), "text-font": config.fonts(), "text-size": waterLabelSize(config), }, paint: { "text-color": waterLabelColor(config), }, metadata: { "libshumate:cursor": "pointer", }, }); export const waterNameLine = (config) => ({ id: "water-name-line", type: "symbol", source: "vector-tiles", "source-layer": "water_name", filter: isLinestring, layout: { "text-field": config.localizedName(), "text-font": config.fonts(), "text-size": waterLabelSize(config), "symbol-placement": "line", }, paint: { "text-color": waterLabelColor(config), }, }); export const waterwayName = (config) => ({ id: "waterway-name", type: "symbol", source: "vector-tiles", "source-layer": "waterway", filter: isLinestring, layout: { "text-field": config.localizedName(), "text-font": config.fonts(), "text-size": waterLabelSize(config), "symbol-placement": "line", }, paint: { "text-color": waterLabelColor(config), }, metadata: { "libshumate:cursor": "pointer", }, }); export const ferryLine = (config) => ({ id: "ferry-line", type: "line", source: "vector-tiles", "source-layer": "transportation", minzoom: 11, filter: ["==", ["get", "class"], "ferry"], paint: { "line-color": waterLabelColor(config), "line-dasharray": [5, 3], "line-width": ["interpolate", ["linear"], ["zoom"], 11, 0.5, 16, 2], }, }); export const ferryLineName = (config) => ({ id: "ferry-line-name", type: "symbol", source: "vector-tiles", "source-layer": "transportation_name", minzoom: 11, filter: ["==", ["get", "class"], "ferry"], layout: { "text-field": ["get", "name"], "text-font": config.fonts(), "text-size": config.textSize(15), "symbol-placement": "line", }, paint: { "text-color": mix( waterLabelColor(config), config.colorScheme === "dark" ? "#ffffff" : "#000000", 0.5 ), }, }); 07070100000237000081ED000000000000000000000001664134090000B7FD000000000000000000000000000000000000002000000000gnome-maps-46.11/src/mapView.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2011, 2012, 2013 Red Hat, Inc. * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Zeeshan Ali (Khattak) */ import Adw from 'gi://Adw'; import GObject from 'gi://GObject'; import Gdk from 'gi://Gdk'; import GeocodeGlib from 'gi://GeocodeGlib'; import Gio from 'gi://Gio'; import GLib from 'gi://GLib'; import Gtk from 'gi://Gtk'; import Shumate from 'gi://Shumate'; import GnomeMaps from 'gi://GnomeMaps'; import {Application} from './application.js'; import {BoundingBox} from './boundingBox.js'; import * as Color from './color.js'; import * as Geoclue from './geoclue.js'; import * as GeocodeFactory from './geocode.js'; import {GeoJSONShapeLayer} from './geoJSONShapeLayer.js'; import {KmlShapeLayer} from './kmlShapeLayer.js'; import {GpxShapeLayer} from './gpxShapeLayer.js'; import {FitShapeLayer} from './fitShapeLayer.js'; import {Location} from './location.js'; import * as MapSource from './mapSource.js'; import {MapWalker} from './mapWalker.js'; import {OSMAccountDialog} from './osmAccountDialog.js'; import {OSMEdit} from './osmEdit.js'; import {OSMEditDialog} from './osmEditDialog.js'; import {Place} from './place.js'; import {PlaceMarker} from './placeMarker.js'; import {RouteQuery} from './routeQuery.js'; import * as Service from './service.js'; import {ShapeLayer} from './shapeLayer.js'; import {StoredRoute} from './storedRoute.js'; import {TransitArrivalMarker} from './transitArrivalMarker.js'; import {TransitBoardMarker} from './transitBoardMarker.js'; import {TransitWalkMarker} from './transitWalkMarker.js'; import {TurnPointMarker} from './turnPointMarker.js'; import {UserLocationMarker} from './userLocationMarker.js'; import * as Utils from './utils.js'; const _LOCATION_STORE_TIMEOUT = 500; const MapMinZoom = 2; const MapMaxZoom = 19; /* threashhold for route color luminance when we consider it more or less * as white, and draw an outline on the path */ const OUTLINE_LUMINANCE_THREASHHOLD = 0.9; // color used for turn-by-turn-based routes (non-transit) const TURN_BY_TURN_ROUTE_COLOR = '62a0ea'; const TURN_BY_TURN_ROUTE_OUTLINE_COLOR = '1a5fb4'; // line width for route lines const ROUTE_LINE_WIDTH = 5; /* length of filled parts of dashed lines used for walking legs of transit * itineraries */ const DASHED_ROUTE_LINE_FILLED_LENGTH = 5; // length of gaps of dashed lines used for walking legs of transit itineraries const DASHED_ROUTE_LINE_GAP_LENGTH = 5; // Maximum limit of file size (20 MB) that can be loaded without user confirmation const FILE_SIZE_LIMIT_MB = 20; export class MapView extends Gtk.Overlay { static MapType = { LOCAL: 'MapsLocalSource', STREET: 'MapsStreetSource', AERIAL: 'MapsAerialSource', VECTOR: 'MapsVectorSource', } /* * Due to the mathematics of spherical mericator projection, * the map must be truncated at a latitude less than 90 degrees. */ static MAX_LATITUDE = 85.05112; static MIN_LATITUDE = -85.05112; static MAX_LONGITUDE = 180; static MIN_LONGITUDE = -180; get routingOpen() { return this._routingOpen || this._instructionMarkerLayer.visible; } set routingOpen(value) { let isValid = Application.routeQuery.isValid(); this._routingOpen = value && isValid; this._routeLayers.forEach((routeLayer) => routeLayer.visible = value && isValid); this._instructionMarkerLayer.visible = value && isValid; if (!value) this.routeShowing = false; this.notify('routingOpen'); } get routeShowing() { return this._routeShowing; } set routeShowing(value) { this._routeShowing = value; this.notify('routeShowing'); } get mapSource() { return this._mapSource; } constructor({mapType, mainWindow, ...params}) { super(params); this.overflow = Gtk.Overflow.HIDDEN; this._mainWindow = mainWindow; this._storeId = 0; this._storeRotationId = 0; this.map = this._initMap(); this.child = this.map; this.setMapType(mapType ?? this._getStoredMapType()); this._initScale(); this._initLayers(); if (Application.normalStartup) { this._goToStoredLocation(); this._setStoredRotation(); } this.shapeLayerStore = new Gio.ListStore(GObject.TYPE_OBJECT); Application.geoclue.connect('location-changed', this._updateUserLocation.bind(this)); Application.geoclue.connect('notify::state', this._updateUserLocation.bind(this)); this._connectRouteSignals(); let actions = { 'route-from-here': { onActivate: () => this._onRouteFromHereActivated() }, 'add-intermediate-destination': { onActivate: () => this._onAddIntermediateDestinationActivated() }, 'route-to-here': { onActivate: () => this._onRouteToHereActivated() }, 'whats-here': { onActivate: () => this._onWhatsHereActivated() }, 'copy-location': { onActivate: () => this._onCopyLocationActivated() }, 'add-osm-location': { onActivate: () => this._onAddOSMLocationActivated() } }; let actionGroup = new Gio.SimpleActionGroup(); Utils.addActions(actionGroup, actions, null); this.insert_action_group('view', actionGroup); this._routeFromHereAction = actionGroup.lookup('route-from-here'); this._routeToHereAction = actionGroup.lookup('route-to-here'); this._addIntermediateDestinationAction = actionGroup.lookup('add-intermediate-destination'); let builder = Gtk.Builder.new_from_resource('/org/gnome/Maps/ui/context-menu.ui'); let menuModel = builder.get_object('context-menu'); this._contextMenu = new Gtk.PopoverMenu({ menu_model: menuModel, has_arrow: false }); this._contextMenu.set_parent(this); this._primaryClickGesture = new Gtk.GestureClick({ button: Gdk.BUTTON_PRIMARY }); this._primaryClickGesture.connect('pressed', this._onPrimaryClick.bind(this)); this.map.add_controller(this._primaryClickGesture); this._secondaryClickGesture = new Gtk.GestureClick({ button: Gdk.BUTTON_SECONDARY }); this._secondaryClickGesture.connect('pressed', this._onSecondaryClick.bind(this)); this.map.add_controller(this._secondaryClickGesture); this._longPressGesture = new Gtk.GestureLongPress({ touch_only: true });; this._longPressGesture.connect('pressed', this._onLongPressGesturePressed.bind(this)); this.map.add_controller(this._longPressGesture); } vfunc_size_allocate(width, height, baseline) { super.vfunc_size_allocate(width, height, baseline); this._contextMenu.present(); } zoomIn() { let zoom = this.map.viewport.zoom_level; let maxZoom = this.map.viewport.max_zoom_level; let fraction = zoom - Math.floor(zoom); /* if we're zoomed to a fraction close to the next higher even zoom level * zoom to the next higher after that to avoid just going a tiny bit */ this.map.go_to_full_with_duration(this.map.viewport.latitude, this.map.viewport.longitude, Math.min(fraction < 0.7 ? Math.floor(zoom + 1) : Math.floor(zoom + 2), maxZoom), 200); } zoomOut() { let zoom = this.map.viewport.zoom_level; let minZoom = this.map.viewport.min_zoom_level; let fraction = zoom - Math.floor(zoom); /* if we're zoomed to a fraction close to the next lower even zoom level * zoom to the next lower after that to avoid just going a tiny bit */ this.map.go_to_full_with_duration(this.map.viewport.latitude, this.map.viewport.longitude, Math.max(fraction > 0.3 ? Math.floor(zoom) : Math.floor(zoom - 1), minZoom), 200); } _initScale() { let showScale = Application.settings.get('show-scale'); this._scale = new Shumate.Scale({ visible: showScale, viewport: this.map.viewport, halign: Gtk.Align.START, valign: Gtk.Align.END, margin_start: 6, margin_end: 6, margin_top: 6, margin_bottom: 6 }); if (Utils.getMeasurementSystem() === Utils.METRIC_SYSTEM) this._scale.unit = Shumate.Unit.METRIC; else this._scale.unit = Shumate.Unit.IMPERIAL; this.add_overlay(this._scale); } _initMap() { let map = new Shumate.Map(); map.viewport.max_zoom_level = MapMaxZoom; map.viewport.min_zoom_level = MapMinZoom; map.viewport.connect('notify::latitude', this._onViewMoved.bind(this)); map.viewport.connect('notify::rotation', this._onViewRotated.bind(this)); // switching map type will set view min-zoom-level from map source map.viewport.connect('notify::min-zoom-level', () => { if (map.viewport.min_zoom_level < MapMinZoom) { map.viewport.min_zoom_level = MapMinZoom; } }); Application.settings.connect('changed::show-scale', this._onShowScaleChanged.bind(this)); return map; } /* create and store a route layer, pass true to get a dashed line */ _createRouteLayer(dashed, lineColor, outlineColor, width, outlineWidth = 1) { let strokeColor = new Gdk.RGBA({ red: Color.parseColor(lineColor, 0), green: Color.parseColor(lineColor, 1), blue: Color.parseColor(lineColor, 2), alpha: 1.0 }); let routeLayer = new Shumate.PathLayer({ viewport: this.map.viewport, stroke_width: width, stroke_color: strokeColor }); if (dashed) routeLayer.set_dash([DASHED_ROUTE_LINE_FILLED_LENGTH, DASHED_ROUTE_LINE_GAP_LENGTH]); if (outlineColor) { let outlineStrokeColor = new Gdk.RGBA({ red: Color.parseColor(outlineColor, 0), green: Color.parseColor(outlineColor, 1), blue: Color.parseColor(outlineColor, 2), alpha: 1.0 }); routeLayer.outline_color = outlineStrokeColor; routeLayer.outline_width = outlineWidth; } this._routeLayers.push(routeLayer); this.map.insert_layer_behind(routeLayer, this._userLocationLayer); return routeLayer; } _clearRouteLayers() { this._routeLayers.forEach((routeLayer) => { routeLayer.remove_all(); routeLayer.visible = false; this.map.remove_layer(routeLayer); }); this._routeLayers = []; } _initLayers() { let mode = Gtk.SelectionMode.MULTIPLE; this._userLocationLayer = new Shumate.MarkerLayer({ selection_mode: mode, viewport: this.map.viewport }); this.map.add_layer(this._userLocationLayer); this._placeLayer = new Shumate.MarkerLayer({ selection_mode: mode, viewport: this.map.viewport }); this.map.insert_layer_above(this._placeLayer, this._userLocationLayer); this._instructionMarkerLayer = new Shumate.MarkerLayer({ selection_mode: mode, viewport: this.map.viewport }); this.map.insert_layer_above(this._instructionMarkerLayer, this._placeLayer); ShapeLayer.SUPPORTED_TYPES.push(GeoJSONShapeLayer); ShapeLayer.SUPPORTED_TYPES.push(KmlShapeLayer); ShapeLayer.SUPPORTED_TYPES.push(GpxShapeLayer); ShapeLayer.SUPPORTED_TYPES.push(FitShapeLayer); this._routeLayers = []; } _connectRouteSignals() { let route = Application.routingDelegator.route; let transitPlan = Application.routingDelegator.transitRouter.plan; let query = Application.routeQuery; route.connect('update', () => { this.showRoute(route); this.routeShowing = true; }); route.connect('reset', () => { this._clearRouteLayers(); this._instructionMarkerLayer.remove_all(); this._turnPointMarker = null; this.routeShowing = false; }); transitPlan.connect('update', () => this._showTransitPlan(transitPlan)); transitPlan.connect('reset', () => { this._clearRouteLayers(); this._instructionMarkerLayer.remove_all(); this._turnPointMarker = null; this.routeShowing = false; }); transitPlan.connect('itinerary-selected', (obj, itinerary) => { this._showTransitItinerary(itinerary); this.routeShowing = true; }); transitPlan.connect('itinerary-deselected', () => { this._clearRouteLayers(); this._instructionMarkerLayer.remove_all(); this._turnPointMarker = null; this.routeShowing = false; }); query.connect('notify', () => { this.routingOpen = query.isValid(); this._clearRouteLayers(); this._instructionMarkerLayer.remove_all(); this.routeShowing = false; }); query.connect('notify::points', () => { let query = Application.routeQuery; let numPoints = query.points.length; this._routeFromHereAction.enabled = numPoints < RouteQuery.MAX_QUERY_POINTS; this._routeToHereAction.enabled = numPoints < RouteQuery.MAX_QUERY_POINTS; this._addIntermediateDestinationAction.enabled = query.filledPoints.length >= 2 && numPoints < RouteQuery.MAX_QUERY_POINTS; }); } _getStoredMapType() { let mapType = Application.settings.get('map-type'); // make sure it's a valid map type for (let type in MapView.MapType) { if (mapType === MapView.MapType[type]) { return mapType; } } return MapView.MapType.STREET; } getMapType() { return this._mapType; } _listenForVectorChanges() { if (this._stopListeningForVectorChanges) return; const styleManager = Adw.StyleManager.get_default(); const settings = this.get_settings(); const darkNotify = styleManager.connect('notify::dark', () => { this.setMapType(this._mapType, true); }); const textSizeNotify = settings.connect('notify::gtk-xft-dpi', () => { this.setMapType(this._mapType, true); }); this._stopListeningForVectorChanges = () => { styleManager.disconnect(darkNotify); settings.disconnect(textSizeNotify); this._stopListeningForVectorChanges = null; } } setMapType(mapType, forceReload = false) { if (this._mapType && this._mapType === mapType && !forceReload) return; this._mapType = mapType; if (mapType !== MapView.MapType.VECTOR) { if (this._stopListeningForVectorChanges) { this._stopListeningForVectorChanges(); } } let mapSource; if (mapType !== MapView.MapType.LOCAL) { let tiles = Service.getService().tiles; if (mapType === MapView.MapType.AERIAL && tiles.aerial) mapSource = MapSource.createAerialSource(); else if (mapType === MapView.MapType.VECTOR && Shumate.VectorRenderer.is_supported()) { mapSource = MapSource.createVectorSource(); this._listenForVectorChanges(); } else mapSource = MapSource.createStreetSource(); Application.settings.set('map-type', mapType); } else { let source = new GnomeMaps.FileDataSource({ path: Utils.getBufferText(Application.application.local_tile_path) }); try { source.prepare(); mapSource = new Shumate.RasterRenderer({ id: 'local', name: 'local', min_zoom_level: source.min_zoom, max_zoom_level: source.max_zoom, tile_size: Application.application.local_tile_size ?? 512, projection: Shumate.MapProjection.MERCATOR, data_source: source }); } catch(e) { this.setMapType(MapView.MapType.STREET); Application.application.local_tile_path = false; this._mainWindow.showToast(e.message); return; } } const mapLayer = new Shumate.MapLayer({ map_source: mapSource, viewport: this.map.viewport }); if (this._mapLayer) { this.map.insert_layer_above(mapLayer, this._mapLayer); this.map.remove_layer(this._mapLayer); } else { this.map.add_layer(mapLayer); } this._mapLayer = mapLayer; mapLayer.connect("symbol-clicked", this._onSymbolClicked.bind(this)); this.map.viewport.set_reference_map_source(mapSource); this._mapSource = mapSource; this.emit("map-type-changed", mapType); } _onSymbolClicked(_mapLayer, symbol) { let placeType = GeocodeGlib.PlaceType.UNKNOWN; const layerName = symbol.get_source_layer(); const featureId = symbol.get_feature_id(); const className = symbol.get_tag("class"); const featureType = featureId % 10; const osmId = Math.floor(featureId / 10); let osmType; if (featureType === 0) { osmType = GeocodeGlib.PlaceOsmType.NODE; } else if (featureType === 1) { osmType = GeocodeGlib.PlaceOsmType.WAY; } else if (featureType === 4) { osmType = GeocodeGlib.PlaceOsmType.RELATION; } else { osmType = GeocodeGlib.PlaceOsmType.UNKNOWN; } switch (layerName) { case "place": placeType = { "continent": GeocodeGlib.PlaceType.CONTINENT, "country": GeocodeGlib.PlaceType.COUNTRY, "state": GeocodeGlib.PlaceType.STATE, "province": GeocodeGlib.PlaceType.STATE, "city": GeocodeGlib.PlaceType.TOWN, "town": GeocodeGlib.PlaceType.TOWN, "village": GeocodeGlib.PlaceType.TOWN, "hamlet": GeocodeGlib.PlaceType.TOWN, "suburb": GeocodeGlib.PlaceType.SUBURB, "quarter": GeocodeGlib.PlaceType.SUBURB, "borough": GeocodeGlib.PlaceType.SUBURB, "island": GeocodeGlib.PlaceType.ISLAND, "neighbourhood": GeocodeGlib.PlaceType.ESTATE, "isolated_dwelling": GeocodeGlib.PlaceType.ESTATE, }[className] ?? GeocodeGlib.PlaceType.UNKNOWN; break; case "water_name": placeType = { "ocean": GeocodeGlib.PlaceType.OCEAN, "sea": GeocodeGlib.PlaceType.SEA, }[className] ?? GeocodeGlib.PlaceType.DRAINAGE; break; case "poi": placeType = GeocodeGlib.PlaceType.POINT_OF_INTEREST; break; case "mountain_peak": placeType = GeocodeGlib.PlaceType.LAND_FEATURE; break; case "aerodrome_label": placeType = GeocodeGlib.PlaceType.AIRPORT; break; case "aeroway": placeType = GeocodeGlib.PlaceType.POINT_OF_INTEREST; break; default: return; } const place = new Place({ location: new Location({ latitude: symbol.latitude, longitude: symbol.longitude }), placeType, name: symbol.get_tag("name"), osmId, osmType, }); const osmTags = {}; for (const key of symbol.get_keys()) { if (key.startsWith("osm:")) { osmTags[key.slice("osm:".length)] = symbol.get_tag(key); } else if (key === "name" || key.startsWith("name:")) { osmTags[key] = symbol.get_tag(key); } } const mainTag = symbol.get_tag("tag"); if (mainTag) { osmTags[mainTag] = symbol.get_tag("subtag") ?? symbol.get_tag("subclass"); } place.osmTags = osmTags; this.showPlace(place, false, true); } _onShowScaleChanged() { this._scale.visible = Application.settings.get('show-scale'); } _checkIfFileSizeNeedsConfirmation(files) { let confirmLoad = false; let totalFileSizeMB = 0; let file; let i = 0; do { let file = files.get_item(i); totalFileSizeMB += file.query_info(Gio.FILE_ATTRIBUTE_STANDARD_SIZE, 0, null).get_size(); i++; } while (file); totalFileSizeMB = totalFileSizeMB / (1024 * 1024); if (totalFileSizeMB > FILE_SIZE_LIMIT_MB) { confirmLoad = true; } return {'confirmLoad': confirmLoad, 'totalFileSizeMB': totalFileSizeMB}; } _onShapeLoad(error, bbox, layer) { if (error) { this._mainWindow.showToast(_("Failed to open layer")); } else { bbox.compose(layer.bbox); } this._remainingFilesToLoad--; if (this._remainingFilesToLoad === 0) { this.gotoBBox(bbox); } } openShapeLayers(files) { let result = this._checkIfFileSizeNeedsConfirmation(files); if (result.confirmLoad) { let totalFileSizeMB = result.totalFileSizeMB; let dialog = new Adw.MessageDialog ({ transient_for: this._mainWindow, modal: true, heading: _("Do you want to continue?"), body: _("You are about to open files with a total " + "size of %s MB. This could take some time to" + " load").format(totalFileSizeMB.toLocaleString(undefined, { maximumFractionDigits: 1 })) }); dialog.add_response('cancel', _("Cancel")); dialog.add_response('continue', _("Continue")); dialog.set_response_appearance('continue', Adw.ResponseAppearance.SUGGESTED); dialog.set_default_response('cancel'); dialog.set_close_response('cancel'); dialog.connect('response', (widget, responseId) => { if (responseId === 'continue') { this._loadShapeLayers(files); } dialog.destroy(); }); dialog.present(); } else { this._loadShapeLayers(files); } return true; } _loadShapeLayers(files) { let bbox = new BoundingBox(); this._remainingFilesToLoad = files.get_n_items(); for (let i = 0; i < files.get_n_items(); i++) { let file = files.get_item(i); try { let i = this._findShapeLayerIndex(file); let layer = (i > -1) ? this.shapeLayerStore.get_item(i) : null; if (!layer) { layer = ShapeLayer.newFromFile(file, this); if (!layer) throw new Error(_("File type is not supported")); layer.load(this._onShapeLoad.bind(this), bbox); this.shapeLayerStore.append(layer); } } catch (e) { Utils.debug(e); this._mainWindow.showToast(_("Failed to open layer")); } } } removeShapeLayer(shapeLayer) { shapeLayer.unload(); let i = this._findShapeLayerIndex(shapeLayer.file); this.shapeLayerStore.remove(i); } _findShapeLayerIndex(file) { for (let i = 0; i < this.shapeLayerStore.get_n_items(); i++) if (this.shapeLayerStore.get_item(i).file.equal(file)) return i; return -1; } goToGeoURI(uri) { try { let location = new Location({ heading: -1 }); location.set_from_uri(uri); let place = new Place({ location: location, name: location.description, store: false }); let marker = new PlaceMarker({ place: place, mapView: this }); this._placeLayer.add_marker(marker); marker.goToAndSelect(true); } catch(e) { this._mainWindow.showToast(_("Failed to open GeoURI")); Utils.debug("failed to open GeoURI: %s".format(e.message)); } } goToHttpURL(url) { Place.parseHttpURL(url, (place, error) => { if (place) { let marker = new PlaceMarker({ place: place, mapView: this }); this._placeLayer.add_marker(marker); marker.goToAndSelect(true); } else { this._mainWindow.showToast(error); } }); } gotoUserLocation(animate) { if (!this._userLocation) return; this.emit('going-to-user-location'); Utils.once(this._userLocation, "gone-to", () => this.emit('gone-to-user-location')); this._userLocation.goTo(animate); } gotoAntipode() { let lat = -this.map.viewport.latitude; let lon = this.map.viewport.longitude > 0 ? this.map.viewport.longitude - 180 : this.map.viewport.longitude + 180; let place = new Place({ location: new Location({ latitude: lat, longitude: lon }), initialZoom: this.map.viewport.zoom_level }); new MapWalker(place, this).goTo(true); } _getViewBBox() { let {x, y, width, height} = this.get_allocation(); let [top, left] = this.map.viewport.widget_coords_to_location(0, 0); let [bottom, right] = this.map.viewport.widget_coords_to_location(width - 1, height - 1); return new BoundingBox({ left: left, top: top, right: right, bottom: bottom }); } userLocationVisible() { let box = this._getViewBBox(); return box.covers(this._userLocation.latitude, this._userLocation.longitude); } _updateUserLocation() { if (!Application.geoclue.place) return; if (Application.geoclue.state !== Geoclue.State.ON) { if (this._userLocation) this._userLocation.visible = false; return; } if (!this._userLocation) { let place = Application.geoclue.place; this._userLocation = new UserLocationMarker({ place: place, mapView: this }); this._userLocation.addToLayer(this._userLocationLayer); } this._userLocation.visible = true; this.emit('user-location-changed'); } _storeLocation() { let viewport = this.map.viewport; let zoom = viewport.zoom_level; let location = [viewport.latitude, viewport.longitude]; /* protect agains situations where the map view was already * disposed, in this case zoom will be set to the GObject property * getter */ if (!isNaN(zoom)) { Application.settings.set('zoom-level', zoom); Application.settings.set('last-viewed-location', location); } else { Utils.debug('Failed to extract location to store'); } } _storeRotation() { let viewport = this.map.viewport; let rotation = viewport.rotation; if (!isNaN(rotation)) Application.settings.set('rotation', rotation); } _goToStoredLocation() { let location = Application.settings.get('last-viewed-location'); if (location.length === 2) { let [lat, lon] = location; let zoom = Application.settings.get('zoom-level'); if (lat >= MapView.MIN_LATITUDE && lat <= MapView.MAX_LATITUDE && lon >= MapView.MIN_LONGITUDE && lon <= MapView.MAX_LONGITUDE) { this.map.viewport.latitude = lat; this.map.viewport.longitude = lon; if (zoom >= this.map.viewport.min_zoom_level && zoom <= this.map.viewport.max_zoom_level) { this.map.viewport.zoom_level = zoom; } else { Utils.debug('Invalid initial zoom level: ' + zoom); } } else { Utils.debug('Invalid initial coordinates: ' + lat + ', ' + lon); } } else { /* bounding box. for backwards compatibility, not used anymore */ let bbox = new BoundingBox({ top: location[0], bottom: location[1], left: location[2], right: location[3] }); this.map.connect("notify::realized", () => { if (this.map.realized) this.gotoBBox(bbox, true); }); } } _setStoredRotation() { let rotation = Application.settings.get('rotation'); if (rotation < 0.0 || rotation >= 2 * Math.PI) { // safeguard agains out-of-bounds rotation values Utils.debug('Invalid stored rotation, set no rotation'); rotation = 0; } this.map.viewport.rotation = rotation; } gotoBBox(bbox, linear) { if (!bbox.isValid()) { Utils.debug('Bounding box is invalid'); return; } let [lon, lat] = bbox.getCenter(); let place = new Place({ location: new Location({ latitude : lat, longitude : lon }), boundingBox: new GeocodeGlib.BoundingBox({ top : bbox.top, bottom : bbox.bottom, left : bbox.left, right : bbox.right }) }); new MapWalker(place, this).zoomToFit(); } getZoomLevelFittingBBox(bbox) { let mapSource = this._mapSource; let goodSize = false; let zoomLevel = this.map.viewport.max_zoom_level; do { let minX = mapSource.get_x(zoomLevel, bbox.left); let minY = mapSource.get_y(zoomLevel, bbox.bottom); let maxX = mapSource.get_x(zoomLevel, bbox.right); let maxY = mapSource.get_y(zoomLevel, bbox.top); let {x, y, width, height} = this.get_allocation(); if (minY - maxY <= height && maxX - minX <= width) goodSize = true; else zoomLevel--; if (zoomLevel <= this.map.viewport.min_zoom_level) { zoomLevel = this.map.viewport.min_zoom_level; goodSize = true; } } while (!goodSize); return zoomLevel; } showTurnPoint(turnPoint) { if (this._turnPointMarker) this._instructionMarkerLayer.remove_marker(this._turnPointMarker); this._turnPointMarker = null; if (turnPoint.isStop()) return; this._turnPointMarker = new TurnPointMarker({ turnPoint: turnPoint, mapView: this }); this._instructionMarkerLayer.add_marker(this._turnPointMarker); this._turnPointMarker.goTo(); } showTransitStop(transitStop, transitLeg) { if (this._turnPointMarker) this._instructionMarkerLayer.remove_marker(this._turnPointMarker); this._turnPointMarker = new TurnPointMarker({ transitStop: transitStop, transitLeg: transitLeg, mapView: this }); this._instructionMarkerLayer.add_marker(this._turnPointMarker); this._turnPointMarker.goTo(); } /** * @param {StoredRoute} stored */ _showStoredRoute(stored) { Application.routingDelegator.replaceRoute(stored); } showPlace(place, animation, skipGoTo) { this._placeLayer.remove_all(); if (place instanceof StoredRoute) { this._showStoredRoute(place); return; } this.routingOpen = false; let placeMarker = new PlaceMarker({ place: place, mapView: this }); this._placeLayer.add_marker(placeMarker); if (skipGoTo) { placeMarker.showBubble(); } else { placeMarker.goToAndSelect(animation); } Application.application.selected_place = place; } showRoute(route) { let routeLayer; this._clearRouteLayers(); this._placeLayer.remove_all(); routeLayer = this._createRouteLayer(false, TURN_BY_TURN_ROUTE_COLOR, TURN_BY_TURN_ROUTE_OUTLINE_COLOR, ROUTE_LINE_WIDTH + 4, 2); route.path.forEach((polyline) => routeLayer.add_node(polyline)); this.routingOpen = true; this._showDestinationTurnpoints(); this.gotoBBox(route.bbox); } _showDestinationTurnpoints() { let route = Application.routingDelegator.route; let query = Application.routeQuery; let pointIndex = 0; this._instructionMarkerLayer.remove_all(); this._turnPointMarker = null; route.turnPoints.forEach((turnPoint) => { if (turnPoint.isStop()) { let queryPoint = query.filledPoints[pointIndex]; let destinationMarker = new TurnPointMarker({ turnPoint: turnPoint, queryPoint: queryPoint, mapView: this }); this._instructionMarkerLayer.add_marker(destinationMarker); pointIndex++; } }, this); } _showTransitItinerary(itinerary) { this.gotoBBox(itinerary.bbox); this._clearRouteLayers(); this._placeLayer.remove_all(); this._instructionMarkerLayer.remove_all(); this._turnPointMarker = null; itinerary.legs.forEach((leg, index) => { let dashed = !leg.transit; let color = leg.color; let outlineColor = leg.textColor; let hasOutline = Color.relativeLuminance(color) > OUTLINE_LUMINANCE_THREASHHOLD; let routeLayer; let lineWidth = ROUTE_LINE_WIDTH + (hasOutline ? 2 : 0); routeLayer = this._createRouteLayer(dashed, color, hasOutline ? outlineColor : null, lineWidth); /* if this is a walking leg and not at the start, "stitch" it * together with the end point of the previous leg, as the walk * route might not reach all the way */ if (index > 0 && !leg.transit) { let previousLeg = itinerary.legs[index - 1]; let lastPoint = previousLeg.polyline.last(); routeLayer.add_node(lastPoint); } leg.polyline.forEach((function (polyline) { routeLayer.add_node(polyline); })); /* like above, "stitch" the route segment with the next one if it's * a walking leg, and not the last one */ if (index < itinerary.legs.length - 1 && !leg.transit) { let nextLeg = itinerary.legs[index + 1]; let firstPoint = nextLeg.polyline[0]; routeLayer.add_node(firstPoint); } }) itinerary.legs.forEach((leg, index) => { let previousLeg = index === 0 ? null : itinerary.legs[index - 1]; /* add start marker */ let start; if (!leg.transit) { start = new TransitWalkMarker({ leg: leg, previousLeg: previousLeg, mapView: this }); } else { start = new TransitBoardMarker({ leg: leg, mapView: this }); } this._instructionMarkerLayer.add_marker(start); }); /* add arrival marker */ let lastLeg = itinerary.legs.last(); let arrival = new TransitArrivalMarker({ leg: lastLeg, mapView: this }); this._instructionMarkerLayer.add_marker(arrival); this.routingOpen = true; } _showTransitPlan(plan) { this.gotoBBox(plan.bbox); } _onViewMoved() { this.emit('view-moved'); if (this._storeId !== 0) return; this._storeId = GLib.timeout_add(null, _LOCATION_STORE_TIMEOUT, () => { this._storeId = 0; this._storeLocation(); }); } _onViewRotated() { if (this._storeRotationId !== 0) return; this._storeRotationId = GLib.timeout_add(null, _LOCATION_STORE_TIMEOUT, () => { this._storeRotationId = 0; this._storeRotation(); }); } onSetMarkerSelected(selectedMarker) { this.emit('marker-selected', selectedMarker); } _onPrimaryClick(gesture, n_presses, x, y) { if (n_presses > 1) return; this.map.grab_focus(); gesture.set_state(Gtk.EventSequenceState.NONE); } _onSecondaryClick(gesture, n_presses, x, y) { if (n_presses > 1) { gesture.set_state(Gtk.EventSequenceState.DENIED); return; } let event = gesture.get_current_event(); if (event.triggers_context_menu()) { this._showContextMenuAt(x, y); gesture.set_state(Gtk.EventSequenceState.CLAIMED); } gesture.set_state(Gtk.EventSequenceState.DENIED); } _onLongPressGesturePressed(gesture, x, y) { this._showContextMenuAt(x, y); gesture.set_state(Gtk.EventSequenceState.CLAIMED); } _showContextMenuAt(x, y) { let viewport = this.map.viewport; let rect = new Gdk.Rectangle({ x: x, y: y, width: 0, height: 0 }); [this._latitude, this._longitude] = viewport.widget_coords_to_location(this, x, y); if (this.direction === Gtk.TextDirection.RTL) { this._contextMenu.halign = Gtk.Align.END; } else { this._contextMenu.halign = Gtk.Align.START; } this._contextMenu.pointing_to = rect; this._contextMenu.popup(); } _onRouteFromHereActivated() { let query = Application.routeQuery; let location = new Location({ latitude: this._latitude, longitude: this._longitude, accuracy: 0 }); let place = new Place({ location: location, store: false }); query.points[0].place = place; } _onAddIntermediateDestinationActivated() { let query = Application.routeQuery; let location = new Location({ latitude: this._latitude, longitude: this._longitude, accuracy: 0 }); let place = new Place({ location: location, store: false }); query.addPoint(-1).place = place; } _onRouteToHereActivated() { let query = Application.routeQuery; let location = new Location({ latitude: this._latitude, longitude: this._longitude, accuracy: 0 }); let place = new Place({ location: location, store: false }); query.points.last().place = place; } _onWhatsHereActivated() { GeocodeFactory.getGeocoder().reverse(this._latitude, this._longitude, (place) => { if (place) { this.showPlace(place, true); } else { this._mainWindow.showToast(_("Nothing found here!")); } }); } _onCopyLocationActivated() { let location = new Location({ latitude: this._latitude, longitude: this._longitude, accuracy: 0 }); let clipboard = this.get_clipboard(); let uri = location.to_uri(GeocodeGlib.LocationURIScheme.GEO); clipboard.set(uri); } _onAddOSMLocationActivated() { let osmEdit = Application.osmEdit; /* if the user is not already signed in, show the account dialog */ if (!osmEdit.isSignedIn) { let dialog = osmEdit.createAccountDialog(this._mainWindow, true); dialog.show(); dialog.connect('response', (dialog, response) => { dialog.destroy(); if (osmEdit.isSignedIn) this._addOSMLocation(); }); return; } this._addOSMLocation(); } _addOSMLocation() { let osmEdit = Application.osmEdit; let viewport = this.map.viewport; if (viewport.zoom_level < OSMEdit.MIN_ADD_LOCATION_ZOOM_LEVEL) { let zoomInToast = new Adw.Toast({ title: _("Zoom in to add location"), button_label: _("Zoom In") }); zoomInToast.connect('button-clicked', () => { this.map.go_to_full(this._latitude, this._longitude, OSMEdit.MIN_ADD_LOCATION_ZOOM_LEVEL); }); this._mainWindow.addToast(zoomInToast); return; } let dialog = osmEdit.createEditNewDialog(this._mainWindow, this._latitude, this._longitude); dialog.show(); dialog.connect('response', (dialog, response) => { dialog.destroy(); if (response === OSMEditDialog.Response.UPLOADED) { this._mainWindow.showToast(_("Location was added in OpenStreetMap")); } }); } } GObject.registerClass({ Properties: { // this property is true when the routing sidebar is active 'routingOpen': GObject.ParamSpec.boolean('routingOpen', 'Routing open', 'Routing sidebar open', GObject.ParamFlags.READABLE | GObject.ParamFlags.WRITABLE, false), /* this property is true when a route is being shown on the map */ 'routeShowing': GObject.ParamSpec.boolean('routeShowing', 'Route showing', 'Showing a route on the map', GObject.ParamFlags.READABLE | GObject.ParamFlags.WRITABLE, false) }, Signals: { 'user-location-changed': {}, 'going-to': {}, 'going-to-user-location': {}, 'gone-to-user-location': {}, 'view-moved': {}, 'marker-selected': { param_types: [Shumate.Marker] }, 'map-type-changed': { param_types: [GObject.TYPE_STRING] } }, }, MapView); 07070100000238000081A40000000000000000000000016641340900001686000000000000000000000000000000000000002200000000gnome-maps-46.11/src/mapWalker.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2011, 2012, 2013 Red Hat, Inc. * Copyright (c) 2014 Damián Nohales * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Zeeshan Ali (Khattak) * Damián Nohales */ import GObject from 'gi://GObject'; import {BoundingBox} from './boundingBox.js'; import {Location} from './location.js'; import * as PlaceZoom from './placeZoom.js'; import * as Utils from './utils.js'; const _MAX_DISTANCE = 19850; // half of Earth's circumference (km) const _MIN_ANIMATION_DURATION = 2000; // msec const _MAX_ANIMATION_DURATION = 5000; // msec export class MapWalker extends GObject.Object { constructor(place, mapView) { super(); this.place = place; this._mapView = mapView; this._viewport = mapView.map.viewport; this._boundingBox = this._createBoundingBox(this.place); } _createBoundingBox(place) { if (place.boundingBox !== null) { return new BoundingBox({ top: place.boundingBox.top, bottom: place.boundingBox.bottom, left: place.boundingBox.left, right: place.boundingBox.right }); } else { return null; } } _getZoomLevel() { let zoom; if (this.place.initialZoom) { zoom = this.place.initialZoom; } else { zoom = PlaceZoom.getZoomLevelForPlace(this.place) ?? this._viewport.max_zoom_level; /* If the place has a bounding box, use the lower of the default * zoom level based on the place's type and the zoom level needed * fit the bounding box. This way we ensure the bounding box will * be all visible and we also have an appropriate amount * of context for the place */ if (this._boundingBox !== null && this._boundingBox.isValid()) { let bboxZoom = this._mapView.getZoomLevelFittingBBox(this._boundingBox); zoom = Math.min(zoom, bboxZoom); } } return zoom; } // Zoom to the maximal zoom-level that fits the place type zoomToFit() { let zoom = this._getZoomLevel(); this._mapView.map.go_to_full(this.place.location.latitude, this.place.location.longitude, zoom); } goTo(animate, linear) { let zoom = this._getZoomLevel(); Utils.debug('Going to ' + [this.place.name, this.place.location.latitude, this.place.location.longitude].join(' ')); this._mapView.emit('going-to'); if (!animate) { this._mapView.map.center_on(this.place.location.latitude, this.place.location.longitude); this._mapView.map.viewport.zoom_level = zoom; this.emit('gone-to'); return; } else { this._mapView.map.go_to_full(this.place.location.latitude, this.place.location.longitude, zoom); Utils.once(this._mapView.map, 'animation-completed::go-to', () => this.emit('gone-to')); } } _ensureVisible(fromLocation) { let visibleBox = null; if (this._boundingBox !== null && this._boundingBox.isValid()) { visibleBox = this._boundingBox.copy(); visibleBox.extend(fromLocation.latitude, fromLocation.longitude); } else { visibleBox = new BoundingBox({ left: 180, right: -180, bottom: 90, top: -90 }); [fromLocation, this.place.location].forEach((location) => { visibleBox.left = Math.min(visibleBox.left, location.longitude); visibleBox.right = Math.max(visibleBox.right, location.longitude); visibleBox.bottom = Math.min(visibleBox.bottom, location.latitude); visibleBox.top = Math.max(visibleBox.top, location.latitude); }); } let [lon, lat] = visibleBox.getCenter(); this._view.zoom_level = this._mapView.getZoomLevelFittingBBox(visibleBox); this._view.go_to(lat, lon); } _boxCovers(coverBox) { if (this._boundingBox === null) return false; if (coverBox.left > this._boundingBox.left) return false; if (coverBox.right < this._boundingBox.right) return false; if (coverBox.top < this._boundingBox.top) return false; if (coverBox.bottom > this._boundingBox.bottom) return false; return true; } } GObject.registerClass({ Signals: { 'gone-to': { } } }, MapWalker); 07070100000239000081A400000000000000000000000166413409000003C1000000000000000000000000000000000000002100000000gnome-maps-46.11/src/meson.build# suffix for source resources (so we get /org/gnome/Maps or # /org/gnome/Maps/Devel, depending on the profile) if (get_option('profile') == 'development') suffix = '/Devel' else suffix = '' endif script_conf = configuration_data() script_conf.set('GJS', gjs.full_path()) script_conf.set('PACKAGE_VERSION', version) script_conf.set('libdir', libdir) script_conf.set('prefix', prefix) script_conf.set('suffix', suffix) configure_file( input: 'org.gnome.Maps.in', output: app_id, configuration: script_conf, install: true, install_dir: pkgdatadir ) install_symlink( 'gnome-maps', install_dir: bindir, pointing_to: pkgdatadir / app_id, ) src_gresource = gnome.compile_resources( app_id + '.src', configure_file( input: 'org.gnome.Maps.src.gresource.xml.in', output: 'org.gnome.Maps.src.gresource.xml', configuration: { 'suffix': suffix, } ), gresource_bundle: true, install: true, install_dir: pkgdatadir, source_dir: 'geojson-vt' ) 0707010000023A000081A40000000000000000000000016641340900001679000000000000000000000000000000000000001E00000000gnome-maps-46.11/src/netex.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2017 Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ import * as HVT from './hvt.js'; const MODE_MAP = { air: { airshipService: HVT.AIRSHIP_SERVICE, domesticFlight: HVT.DOMESTIC_AIR_SERVICE, domesticScheduledFlight: HVT.DOMESTIC_SCHEDULED_AIR_SERVICE, helicopterService: HVT.HELICOPTER_AIR_SERVICE, intercontinentalFlight: HVT.INTERCONTINENTAL_AIR_SERVICE, intercontinentalCharterFlight: HVT.INTERCONTINENTAL_CHARTER_AIR_SERVICE, internationalFlight: HVT.INTERNATIONAL_AIR_SERVICE, internationalCharterFlight: HVT.INTERNATIONAL_CHARTER_AIR_SERVICE, roundTripCharterFlight: HVT.ROUND_TRIP_CHARTER_AIR_SERVICE, SchengenAreaFlight: HVT.SCHENGEN_AREA_AIR_SERVICE, shortHaulInternationalFlight: HVT.AIR_SERVICE, // TODO: missing HVT code? shuttleFlight: HVT.SHUTTLE_AIR_SERVICE, sightseeingFlight: HVT.SIGHTSEEING_AIR_SERVICE, _: HVT.AIR_SERVICE }, bus: { airportLinkBus: HVT.BUS_SERVICE, // TODO: missing HVT code? dedicatedLaneBus: HVT.BUS_SERVICE, // TODO: missing HVT code? demandAndResponseBus: HVT.DEMAND_AND_RESPONSE_BUS_SERVICE, expressBus: HVT.EXPRESS_BUS_SERVICE, highFrequencyBus: HVT.BUS_SERVICE, // TODO: missing HVT code? localBus: HVT.LOCAL_BUS_SERVICE, nightBus: HVT.NIGHT_BUS_SERVICE, mobilityBus: HVT.MOBILITY_BUS_SERVICE, mobilityBusForRegisteredDisabled:HVT.MOBILITY_BUS_SERVICE_FOR_REGISTERED_DISABLED, postBus: HVT.POST_BUS_SERVICE, railReplacementBus: HVT.RAIL_REPLACEMENT_BUS_SERVICE, regionalBus: HVT.REGIONAL_BUS_SERVICE, schoolBus: HVT.SCHOOL_BUS, schoolAndPublicServiceBus: HVT.SCHOOL_AND_PUBLIC_SERVICE_BUS_SERVICE, shuttleBus: HVT.SHUTTLE_BUS, sightseeingBus: HVT.SIGHTSEEING_BUS, specialNeedsBus: HVT.SPECIAL_NEEDS_BUS_SERVICE, _: HVT.BUS_SERVICE }, cableway: { _: HVT.CABLE_CAR }, coach: { commuterCoach: HVT.COMMUTER_COACH_SERVICE, internationalCoach: HVT.INTERNATIONAL_COACH_SERVICE, nationalCoach: HVT.NATIONAL_COACH_SERVICE, regionalCoach: HVT.REGIONAL_COACH_SERVICE, schoolCoach: HVT.COACH_SERVICE, // TODO: missing HVT code? shuttleCoach: HVT.SHUTTLE_COACH_SERVICE, sightseeingCoach: HVT.SIGHTSEEING_COACH_SERVICE, specialCoach: HVT.SPECIAL_COACH_SERVICE, touristCoach: HVT.TOURIST_COACH_SERVICE, _: HVT.COACH_SERVICE }, funicular: { _: HVT.FUNICULAR_SERVICE }, metro: { _: HVT.METRO_SERVICE }, monorail: { _: HVT.MONORAIL_SERVICE }, taxi: { _: HVT.TAXI_SERVICE }, tram: { cityTram: HVT.CITY_TRAM_SERVICE, localTram: HVT.LOCAL_TRAM_SERVICE, regionalTram: HVT.REGIONAL_TRAM_SERVICE, sightseeingTram: HVT.SIGHTSEEING_TRAM_SERVICE, shuttleTram: HVT.SHUTTLE_TRAM_SERVICE, trainTram: HVT.TRAM_SERVICE, _: HVT.TRAM_SERVICE }, trolleybus: { _: HVT.TROLLEYBUS_SERVICE }, rail: { highSpeedRail: HVT.HIGH_SPEED_RAIL_SERVICE, suburbanRailway: HVT.SUBURBAN_RAILWAY_SERVICE, regionalRail: HVT.REGIONAL_RAIL_SERVICE, interregionalRail: HVT.RAILWAY_SERVICE, sleeperRailService: HVT.SLEEPER_RAIL_SERVICE, longDistance: HVT.LONG_DISTANCE_TRAINS, nightRail: HVT.RAILWAY_SERVICE, carTransportRailService: HVT.CAR_TRANSPORT_RAIL_SERVICE, touristRailway: HVT.TOURIST_RAILWAY_SERVICE, airportLinkRail: HVT.RAILWAY_SERVICE, railShuttle: HVT.RAIL_SHUTTLE, replacementRailService: HVT.REPLACEMENT_RAIL_SERVICE, specialTrain: HVT.SPECIAL_RAIL_SERVICE, crossCountryRail: HVT.CROSS_COUNTRY_RAIL_SERVICE, rackAndPinionRailway: HVT.RACK_AND_PINION_RAILWAY, _: HVT.RAILWAY_SERVICE }, water: { canalBarge: HVT.WATER_TRANSPORT_SERVICE, _: HVT.WATER_TRANSPORT_SERVICE } }; /** * Return HVT code given NeTex mode and submode. */ export function toHVT(mode, submode) { const modeMapping = MODE_MAP[mode]; return modeMapping ? modeMapping[submode] ?? modeMapping['_'] : null; } 0707010000023B000081ED0000000000000000000000016641340900000147000000000000000000000000000000000000002700000000gnome-maps-46.11/src/org.gnome.Maps.in#!@GJS@ imports.package.init({ name: "gnome-maps", version: "@PACKAGE_VERSION@", prefix: "@prefix@", libdir: "@libdir@" }); import(`resource:///org/gnome/Maps@suffix@/src/main.js`).catch(error => { console.error(error); imports.system.exit(1); }); 0707010000023C000081ED0000000000000000000000016641340900001315000000000000000000000000000000000000003900000000gnome-maps-46.11/src/org.gnome.Maps.src.gresource.xml.in mapStyle/aerial.js mapStyle/airports.js mapStyle/boundaries.js mapStyle/buildings.js mapStyle/defs.js mapStyle/housenumbers.js mapStyle/landcover.js mapStyle/mapStyle.js mapStyle/places.js mapStyle/pois.js mapStyle/rail.js mapStyle/roads.js mapStyle/utils.js mapStyle/water.js address.js application.js boundingBox.js color.js constants.js epaf.js exportViewDialog.js favoriteListRow.js favoritesPopover.js fitShapeLayer.js geoclue.js geocode.js geoJSONShapeLayer.js geoJSONSource.js geoJSONStyle.js gfx.js gpxShapeLayer.js graphHopper.js graphHopperGeocode.js graphHopperTransit.js headerBar.js hvt.js http.js instructionRow.js jsonStorage.js kmlShapeLayer.js layersPopover.js location.js longPrintLayout.js main.js mainWindow.js mapBubble.js mapMarker.js mapSource.js mapView.js mapWalker.js netex.js osmAccountDialog.js osmConnection.js osmEdit.js osmEditDialog.js osmNames.js osmOAuthProxyCall.js osmTypeSearchEntry.js osmTypeListRow.js osmTypePopover.js osmTypes.js osmUtils.js overpass.js photonGeocode.js photonUtils.js place.js placeBar.js placeButtons.js placeDialog.js placeEntry.js placeFormatter.js placeIcons.js placeListRow.js placeMarker.js placePopover.js placeStore.js placeView.js placeViewImage.js placeZoom.js poiCategories.js poiCategoryGobackRow.js poiCategoryRow.js printLayout.js printOperation.js prototypes.js route.js routeEntry.js routeQuery.js routingDelegator.js searchBar.js searchPopover.js settings.js sendToDialog.js service.js shapeLayer.js shortPrintLayout.js sidebar.js storedRoute.js time.js togeojson/togeojson.js transit.js transitArrivalMarker.js transitArrivalRow.js transitBoardMarker.js transitItineraryRow.js transitLegRow.js transitMoreRow.js transitOptions.js transitOptionsPanel.js transitPlan.js transitPrintLayout.js transitRouter.js transitRouteLabel.js transitStopRow.js transitWalkMarker.js translations.js turnPointMarker.js userLocationMarker.js utils.js uris.js wikipedia.js xmldom/dom.js xmldom/domparser.js xmldom/sax.js zoomAndRotateControls.js clip.js convert.js index.js simplify.js tile.js transform.js wrap.js transitplugins/goMetro.js transitplugins/opendataCH.js transitplugins/openTripPlanner.js transitplugins/openTripPlanner2.js transitplugins/resrobot.js 0707010000023D000081A400000000000000000000000166413409000018BF000000000000000000000000000000000000002900000000gnome-maps-46.11/src/osmAccountDialog.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2015 Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA * * Author: Marcus Lundblad */ import GObject from 'gi://GObject'; import Adw from 'gi://Adw'; import {Application} from './application.js'; import * as Utils from './utils.js'; export class OSMAccountDialog extends Adw.Window { static Response = { SIGNED_IN: 0 }; constructor({closeOnSignIn, ...params}) { super({...params}); this.connect('close-request', () => this.emit('response', this.response)); this._closeOnSignIn = closeOnSignIn; this._signInButton.connect('clicked', this._onSignInButtonClicked.bind(this)); this._verifyButton.connect('clicked', this._onVerifyButtonClicked.bind(this)); this._verificationEntry.connect('changed', this._onVerificationEntryChanged.bind(this)); this._verificationEntry.connect('entry-activated', this._onVerificationEntryActivated.bind(this)); this._signOutButton.connect('clicked', this._onSignOutButtonClicked.bind(this)); /* if the user is logged in, show the logged-in view */ if (Application.osmEdit.isSignedIn) { this._updateSignedInUserLabel(); this._navigationView.replace_with_tags(['logged-in']); } } _updateSignedInUserLabel() { /* if we couldn't determine the logged in username (e.g. the user * didn't grant permission to read user details, hide the username * label */ if (Application.osmEdit.username === '_unknown_') { this._signedInUserLabel.visible = false; } else { this._signedInUserLabel.label = Application.osmEdit.username; this._signedInUserLabel.visible = true; } } _onSignInButtonClicked() { this._performSignIn(); } _performSignIn() { // switch to the verification view this._navigationView.replace_with_tags(['verify']); Application.osmEdit.performOAuthSignIn(); } _onVerifyButtonClicked() { this._performVerification(); } _performVerification() { /* allow copying the leading space between the "The verification is" label and the code */ let verificationCode = this._verificationEntry.text.trim(); /* Since the text shown on OSM's OAuth authorization verification form is a bit unclear with a trailing period after the verification code, let's strip that off if the user copied that over. */ if (verificationCode.charAt(verificationCode.length - 1) === '.') { verificationCode = verificationCode.slice(0, -1); } Application.osmEdit.requestOAuthAccessToken(verificationCode, this._onOAuthAccessTokenRequested.bind(this)); } _onVerificationEntryChanged() { this._verifyButton.sensitive = this._verificationEntry.text && this._verificationEntry.text.length > 0; } _onVerificationEntryActivated() { /* proceed with verification if a code has been entered */ let verificationCode = this._verificationEntry.text; if (verificationCode && verificationCode.length > 0) this._performVerification(); } _onOAuthAccessTokenRequested(success, errorMessage) { if (success) { /* update the username label */ this._updateSignedInUserLabel(); if (this._closeOnSignIn) { this.response = OSMAccountDialog.Response.SIGNED_IN; this.close(); } else { /* switch to the logged in view and reset the state in case the user signs out and start over again */ this._navigationView.replace_with_tags(['logged-in']); } } else { if (errorMessage) Utils.showToastInOverlay(errorMessage, this._overlay); /* switch back to the sign-in view, and show a toast indicating that verification failed */ Utils.showToastInOverlay(_("The verification code didn’t match, please try again."), this._overlay); this._signInButton.sensitive = true; this._navigationView.replace_with_tags(['sign-in']); } /* reset verification code entry */ this._verificationEntry.text = ''; } _onSignOutButtonClicked() { Application.osmEdit.signOut(); this._signInButton.sensitive= true; this._navigationView.replace_with_tags(['sign-in']); } } GObject.registerClass({ Template: 'resource:///org/gnome/Maps/ui/osm-account-dialog.ui', Properties: { 'response': GObject.ParamSpec.int('response', '', '', GObject.ParamFlags.READABLE | GObject.ParamFlags.WRITABLE, 0), }, Signals: { 'response': { param_types: [GObject.TYPE_INT] }, }, InternalChildren: ['navigationView', 'signInButton', 'verificationEntry', 'verifyButton', 'signedInUserLabel', 'signOutButton', 'overlay'], }, OSMAccountDialog); 0707010000023E000081A400000000000000000000000166413409000030DE000000000000000000000000000000000000002600000000gnome-maps-46.11/src/osmConnection.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2015 Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA * * Author: Marcus Lundblad */ import gettext from 'gettext'; import GnomeMaps from 'gi://GnomeMaps'; import Gio from 'gi://Gio'; import GLib from 'gi://GLib'; import Rest from 'gi://Rest'; import Secret from 'gi://Secret'; import Soup from 'gi://Soup'; import {OSMOAuthProxyCall} from './osmOAuthProxyCall.js'; import * as Utils from './utils.js'; const _ = gettext.gettext; const BASE_URL = 'https://api.openstreetmap.org/api'; const API_VERSION = '0.6'; /* OAuth constants */ const CLIENT_KEY = 'ATOMKAKOXQuAJXpFxkm__nDVRlJLYYmP-0P54UfDnZI'; const CLIENT_SECRET = '9vda-8M_lt0cLJMLJlbTfJVRDGiS2-pPbeSNMRqBQ0k'; const AUTH_URL = 'https://www.openstreetmap.org/oauth2/authorize'; const ACCESS_TOKEN_URL = 'https://www.openstreetmap.org/oauth2/token'; const REDIRECT_URL = 'urn:ietf:wg:oauth:2.0:oob'; const SECRET_SCHEMA = new Secret.Schema("org.gnome.Maps", Secret.SchemaFlags.NONE, { } ); export class OSMConnection { constructor() { this._session = new Soup.Session({ user_agent : 'gnome-maps/' + pkg.version }); /* OAuth proxy used for making OSM uploads */ this._callProxy = Rest.OAuth2Proxy.new(AUTH_URL, ACCESS_TOKEN_URL, REDIRECT_URL, CLIENT_KEY, CLIENT_SECRET, BASE_URL + '/' + API_VERSION); GnomeMaps.osm_init(); } getOSMObject(type, id, callback, cancellable) { let url = this._getQueryUrl(type, id); let request = Soup.Message.new('GET', url); this._session.send_and_read_async(request, GLib.PRIORITY_DEFAULT, cancellable, (source, res) => { if (request.get_status() !== Soup.Status.OK) { callback(false, request.get_status(), null, type, null); return; } try { let body = this._session.send_and_read_finish(res); let object = GnomeMaps.osm_parse (Utils.getBufferText(body.get_data()), body.get_size()); callback(true, request.get_status(), object, type, null); } catch (e) { Utils.debug(e); callback(false, request.get_status(), null, type, e); } }); } _getQueryUrl(type, id) { return BASE_URL + '/' + API_VERSION + '/' + type + '/' + id; } openChangeset(comment, callback) { /* we assume that this would only be called if there's already been an OAuth access token enrolled, so, if the currently instantiated proxy instance doesn't have a token set, we could safely count on it being present in the keyring */ if (this._callProxy.get_access_token() === null) { Secret.password_lookup(SECRET_SCHEMA, {}, null, (s, res) => { this._onPasswordLookedUp(res, comment, callback); }); } else { this._doOpenChangeset(comment, callback); } } _onPasswordLookedUp(result, comment, callback) { let password = Secret.password_lookup_finish(result); if (password) { this._callProxy.access_token = password; this._doOpenChangeset(comment, callback); } else { callback(false, null, null); } } _doOpenChangeset(comment, callback) { let changeset = GnomeMaps.OSMChangeset.new(comment, 'gnome-maps ' + pkg.version); let xml = changeset.serialize(); let call = new OSMOAuthProxyCall({ content: xml, method: 'PUT', func: '/changeset/create', proxy: this._callProxy }); call.invoke_async(null, (call, res, userdata) => { this._onChangesetOpened(call, callback); }); } _onChangesetOpened(call, callback) { if (call.get_status_code() !== Soup.Status.OK) { callback(false, call.get_status_code(), null); return; } let changesetId = parseInt(call.get_payload()); callback(true, call.get_status_code(), changesetId); } uploadObject(object, type, changeset, callback) { object.changeset = changeset; let xml = object.serialize(); let call = new OSMOAuthProxyCall({ content: xml, method: 'PUT', func: this._getCreateOrUpdateFunction(object, type), proxy: this._callProxy }); call.invoke_async(null, (call, res, userdata) => { this._onObjectUploaded(call, callback); }); } _onObjectUploaded(call, callback) { if (call.get_status_code() !== Soup.Status.OK) { callback(false, call.get_status_code(), null); return; } callback(true, call.get_status_code(), call.get_payload()); } deleteObject(object, type, changeset, callback) { object.changeset = changeset; let xml = object.serialize(); let call = new OSMOAuthProxyCall({ content: xml, method: 'DELETE', func: this._getDeleteFunction(object, type), proxy: this._callProxy }); call.invoke_async(null, (call, res, userdata) => { this._onObjectDeleted(call, callback); }); } _onObjectDeleted(call, callback) { if (call.get_status_code() !== Soup.Status.OK) { callback(false, call.get_status_code(), null); return; } callback(true, call.get_status_code(), call.get_payload()); } closeChangeset(changesetId, callback) { let call = this._callProxy.new_call(); call.set_method('PUT'); call.set_function(this._getCloseChangesetFunction(changesetId)); call.invoke_async(null, (call, res, userdata) => { this._onChangesetClosed(call, callback); }); } _onChangesetClosed(call, callback) { if (call.get_status_code() !== Soup.Status.OK) { callback(false, call.get_status_code(), null); return; } callback(true, call.get_status_code(), call.get_payload()); } _getCloseChangesetFunction(changesetId) { return '/changeset/' + changesetId + '/close'; } _getCreateOrUpdateFunction(object, type) { if (object.id) return type + '/' + object.id; else return type + '/create'; } _getDeleteFunction(object, type) { return type + '/' + id; } authorizeOAuthToken() { this._codeChallenge = Rest.PkceCodeChallenge.new_random(); let [authorizeUrl, state] = this._callProxy.build_authorization_url(this._codeChallenge.get_challenge(), 'read_prefs write_api'); Utils.debug('Trying to open: ' + authorizeUrl); try { Gio.AppInfo.launch_default_for_uri(authorizeUrl, null); } catch (e) { Utils.debug('error: ' + e.message); } } requestOAuthAccessToken(code, callback) { this._callProxy.fetch_access_token_async(code, this._codeChallenge.get_verifier(), null, (source, res) => { this._onAccessOAuthToken(res, callback); }); } fetchLoggedInUser(callback) { let call = this._callProxy.new_call(); call.set_method('GET'); call.set_function('/user/details'); call.invoke_async(null, (call, res, userdata) => { this._onFetchedLoggedInUser(call, callback); }); } _onFetchedLoggedInUser(call, callback) { switch (call.get_status_code()) { case Soup.Status.OK: try { callback(GnomeMaps.osm_parse_user_details(call.get_payload())); } catch (e) { Utils.debug('Error parsing user details: ' + e.message); callback(null); } break; default: /* Not ok, most likely 403 (forbidden), meaning the user * didn't give permission to read user details. * Just consider the user name unknown in this case */ Utils.debug('Got status code ' + call.get_status_code() + ' getting user details'); callback(null); break; } } _onAccessOAuthToken(res, callback) { let success = this._callProxy.fetch_access_token_finish(res); if (!success) { callback(false); return; } let token = this._callProxy.access_token; Secret.password_store(SECRET_SCHEMA, {}, Secret.COLLECTION_DEFAULT, "OSM OAuth access token", token, null, (source, result, userData) => { this._onPasswordStored(result, callback); }); } _onPasswordStored(result, callback) { let res = false; let errorMessage; if (result) { try { res = Secret.password_store_finish(result); } catch (error) { errorMessage = error.message; } } callback(res, errorMessage); } signOut() { /* clear token on call proxy, so it will use a new token if the user signs in again (with a new access token) during this running session */ this._callProxy.token = null; this._callProxy.token_secret = null; Secret.password_clear(SECRET_SCHEMA, {}, null, this._onPasswordCleared.bind(this)); } _onPasswordCleared(source, result) { Secret.password_clear_finish(result); } /* * Gets a status message (usually for an error case) * to show for a given OSM server response. */ static getStatusMessage(statusCode) { switch (statusCode) { case Soup.Status.IO_ERROR: case Soup.Status.UNAUTHORIZED: /* setting the status in session.cancel_message still seems to always give status IO_ERROR */ return _("Incorrect user name or password"); case Soup.Status.OK: return _("Success"); case Soup.Status.BAD_REQUEST: return _("Bad request"); case Soup.Status.NOT_FOUND: return _("Object not found"); case Soup.Status.CONFLICT: return _("Conflict, someone else has just modified the object"); case Soup.Status.GONE: return _("Object has been deleted"); case Soup.Status.PRECONDITION_FAILED: return _("Way or relation refers to non-existing children"); default: return null; } } } 0707010000023F000081A400000000000000000000000166413409000018DE000000000000000000000000000000000000002000000000gnome-maps-46.11/src/osmEdit.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2015 Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA * * Author: Marcus Lundblad */ import {Application} from './application.js'; import {OSMAccountDialog} from './osmAccountDialog.js'; import {OSMEditDialog} from './osmEditDialog.js'; import {OSMConnection} from './osmConnection.js'; import * as Utils from './utils.js'; export class OSMEdit { // minimum zoom level at which to offer adding a location static get MIN_ADD_LOCATION_ZOOM_LEVEL() { return 16; } constructor() { this._osmConnection = new OSMConnection(); this._osmObject = null; // currently edited object this._username = Application.settings.get('osm-username-oauth2'); this._isSignedIn = this._username !== null && this._username.length > 0; } get object() { return this._osmObject; } createEditDialog(parentWindow, place) { let dialog = new OSMEditDialog({ transient_for: parentWindow, modal: true, place: place }); return dialog; } createEditNewDialog(parentWindow, latitude, longitude) { let dialog = new OSMEditDialog({ transient_for: parentWindow, modal: true, addLocation: true, latitude: latitude, longitude: longitude }); return dialog; } createAccountDialog(parentWindow, closeOnSignIn) { let dialog = new OSMAccountDialog({ transient_for: parentWindow, modal: true, closeOnSignIn: closeOnSignIn }); return dialog; } fetchObject(place, callback, cancellable) { let osmType = Utils.osmTypeToString(place.osmType); /* reset currently edited object */ this._osmObject = null; this._osmConnection.getOSMObject(osmType, place.osmId, (function(success, status, osmObject, osmType) { callback(success, status, osmObject, osmType); }), cancellable); } uploadObject(object, type, comment, callback) { this._openChangeset(object, type, comment, this._uploadObject.bind(this), callback); } _onChangesetOpened(success, status, changesetId, object, type, action, callback) { if (success) { let osmType = Utils.osmTypeToString(type); action(object, osmType, changesetId, callback); } else { callback(false, status); } } _openChangeset(object, type, comment, action, callback) { this._osmConnection.openChangeset(comment, (success, status, changesetId) => { this._onChangesetOpened(success, status, changesetId, object, type, action, callback); }); } _onObjectUploaded(success, status, response, changesetId, callback) { if (success) this._closeChangeset(changesetId, callback); else callback(false, status); } _uploadObject(object, type, changesetId, callback) { this._osmObject = object; this._osmConnection.uploadObject(object, type, changesetId, (success, status, response) => { this._onObjectUploaded(success, status, response, changesetId, callback); }); } deleteObject(object, type, comment, callback) { this._openChangeset(object, type, comment, this._deleteObject.bind(this), callback); } _onObjectDeleted(success, status, response, changesetId, callback) { if (success) this._closeChangeset(changesetId, callback); else callback(false, status); } _deleteObject(object, type, changesetId, callback) { this._osmObject = object; this._osmConnection.deleteObject(object, type, changesetId, (success, status, response) => { this._onObjectDeleted(success, status, response, changesetId, callback); }); } _closeChangeset(changesetId, callback) { this._osmConnection.closeChangeset(changesetId, callback); } performOAuthSignIn() { this._osmConnection.authorizeOAuthToken(); } requestOAuthAccessToken(code, callback) { this._osmConnection.requestOAuthAccessToken(code, (success, token) => { this._onOAuthAccessTokenRequested(success, callback); }); } _onOAuthAccessTokenRequested(success, callback) { if (success) { this._osmConnection.fetchLoggedInUser((username) => { this._isSignedIn = true; /* if we couldn't retrieve the logged-in username, * e.g. if the user de-selected the permission when * authorizing the OAuth token, use a dummy placeholder * username to signify that we are signed in */ this._username = username ?? '_unknown_'; Application.settings.set('osm-username-oauth2', this._username); callback(true); }); } else { callback(false); } } signOut() { this._username = null; this._isSignedIn = false; Application.settings.set('osm-username-oauth2', ''); this._osmConnection.signOut(); } get isSignedIn() { return this._isSignedIn; } get username() { return this._username; } } 07070100000240000081A40000000000000000000000016641340900008711000000000000000000000000000000000000002600000000gnome-maps-46.11/src/osmEditDialog.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2015 Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA * * Author: Marcus Lundblad */ import gettext from 'gettext'; const _ = gettext.gettext; import GeocodeGlib from 'gi://GeocodeGlib'; import Gio from 'gi://Gio'; import GLib from 'gi://GLib'; import GObject from 'gi://GObject'; import Gtk from 'gi://Gtk'; import {Application} from './application.js'; import GnomeMaps from 'gi://GnomeMaps'; import {OSMConnection} from './osmConnection.js'; import * as OSMTypes from './osmTypes.js'; import {OSMTypeSearchEntry} from './osmTypeSearchEntry.js'; import * as OSMUtils from './osmUtils.js'; import * as Utils from './utils.js'; import * as Wikipedia from './wikipedia.js'; /* * enumeration representing * the different OSM editing * field types */ const EditFieldType = { TEXT: 0, INTEGER: 1, UNSIGNED_INTEGER: 2, COMBO: 3, ADDRESS: 4, WIKIPEDIA: 5 }; const _WIKI_BASE = 'https://wiki.openstreetmap.org/wiki/Key:'; /* Reformat a phone number string if it looks like a tel: URI * strip off the leading tel: protocol string and trailing parameters, * following a ; * otherwise return the string unmodified */ var _osmPhoneRewriteFunc = function(text) { if (GLib.uri_parse_scheme(text) === 'tel') { let afterTel = text.replace('tel:', ''); return GLib.uri_unescape_string(afterTel.split(';')[0], null); } else { return text; } }; /* Reformat an e-mail address if it it looks like a mailto: URI * strip off the leading mailto: protocol string and trailing parameters, * following a ? * otherwise return the string unmodified */ var _osmEmailRewriteFunc = function(text) { if (GLib.uri_parse_scheme(text) === 'mailto') { let afterMailto = text.replace('mailto:', ''); return GLib.uri_unescape_string(afterMailto.split('?')[0], null); } else { return text; } } /* * specification of OSM edit fields * name: the label for the edit field (translatable) * tag: the OSM tag key value * type: the field type (determines editing field type) * rewriteFunc: a rewrite function taking a string argument * (only used for TEXT fields) * placeHolder: set a text place holder to act as example input * (only used for TEXT fields) * includeHelp: when true turn the name label to a link to the * OSM wiki for tags. * options: The options for the combo box (only used for COMBO fields) * hint: a hint text to show in a popover displayed by a hint button * (for TEXT and INTEGER fields) * subtags: Used by a complex composite OSM tag. * rows: Number of rows needed if != 1 (Currently only for ADDRESS). */ const OSM_FIELDS = [ { name: _("Name"), tag: 'name', type: EditFieldType.TEXT, hint: _("The official name. This is typically what appears on signs.") }, { name: _("Address"), tag: 'addr', subtags: ['addr:street', 'addr:housenumber', 'addr:postcode', 'addr:city'], type: EditFieldType.ADDRESS, rows: 2 }, { name: _("Website"), tag: 'website', type: EditFieldType.TEXT, validate: Utils.isValidWebsite, validateError: _("This is not a valid URL. Make sure to include http:// or https://."), hint: _("The official website. Try to use the most basic form " + "of a URL i.e. http://example.com instead of " + "http://example.com/index.html.") }, { name: _("Phone"), tag: 'phone', type: EditFieldType.TEXT, rewriteFunc: _osmPhoneRewriteFunc, hint: _("Phone number. Use the international format, " + "starting with a + sign. Beware of local privacy " + "laws, especially for private phone numbers.") }, { name: _("Email"), tag: 'email', type: EditFieldType.TEXT, validate: Utils.isValidEmail, rewriteFunc: _osmEmailRewriteFunc, validateError: _("This is not a valid email address. Make sure to not include the mailto: protocol prefix."), hint: _("Contact email address for inquiries. " + "Add only email addresses that are intended to be publicly used.") }, { name: _("Wikipedia"), tag: 'wiki', subtags: ['wikipedia', 'wikidata'], type: EditFieldType.WIKIPEDIA }, { name: _("Opening hours"), tag: 'opening_hours', type: EditFieldType.TEXT, placeHolder: 'Mo-Fr 08:00-20:00; Sa-Su 10:00-14:00', includeHelp: true, hint: _("See the link in the label for help on format.") }, { name: _("Population"), tag: 'population', type: EditFieldType.UNSIGNED_INTEGER }, { name: _("Altitude"), tag: 'ele', type: EditFieldType.INTEGER, hint: _("Elevation (height above sea level) of a point in meters.") }, { name: _("Wheelchair access"), tag: 'wheelchair', type: EditFieldType.COMBO, options: [['yes', _("Yes")], ['no', _("No")], ['limited', _("Limited")], ['designated', _("Designated")]] }, { name: _("Internet access"), tag: 'internet_access', type: EditFieldType.COMBO, options: [['yes', _("Yes")], ['no', _("No")], ['wlan', _("Wi-Fi")], ['wired', _("Wired")], ['terminal', _("Terminal")], ['service', _("Service")]] }, { name: _("Takeout"), tag: 'takeaway', type: EditFieldType.COMBO, options: [['yes', _("Yes")], ['no', _("No")], ['only', _("Only")]] }, { name: _("Religion"), tag: 'religion', type: EditFieldType.COMBO, options: [['animist', _("Animism")], ['bahai', _("Bahá’í")], ['buddhist', _("Buddhism")], ['caodaism', _("Caodaism")], ['christian', _("Christianity")], ['confucian', _("Confucianism")], ['hindu', _("Hinduism")], ['jain', _("Jainism")], ['jewish', _("Judaism")], ['muslim', _("Islam")], ['multifaith', _("Multiple Religions")], ['pagan', _("Paganism")], ['pastafarian', _("Pastafarianism")], ['scientologist', _("Scientology")], ['shinto', _("Shinto")], ['sikh', _("Sikhism")], ['spiritualist', _("Spiritualism")], ['taoist', _("Taoism")], ['unitarian_universalist', _("Unitarian Universalism")], ['voodoo', _("Voodoo")], ['yazidi', _("Yazidism")], ['zoroastrian', _("Zoroastrianism")]] }, { name: _("Toilets"), tag: 'toilets', type: EditFieldType.COMBO, options: [['yes', _("Yes")], ['no', _("No")]] }, { name: _("Note"), tag: 'note', type: EditFieldType.TEXT, hint: _("Information used to inform other mappers about non-obvious information about an element, the author’s intent when creating it, or hints for further improvement.") }]; class OSMEditAddress extends Gtk.Grid { constructor({street, number, postCode, city, ...params}) { super(params); if (street) this.street.text = street; if (number) this.number.text = number; if (postCode) this.post.text = postCode; if (city) this.city.text = city; } } GObject.registerClass({ Template: 'resource:///org/gnome/Maps/ui/osm-edit-address.ui', Children: [ 'street', 'number', 'post', 'city' ], }, OSMEditAddress); class OSMEditWikipedia extends Gtk.Grid { constructor({article, wikidata, ...params}) { super(params); if (article) this.article.text = article; if (wikidata) this.wikidata.text = wikidata; if (article && !Wikipedia.isValidWikipedia(article)) this.article.get_style_context().add_class("warning"); else this.article.get_style_context().remove_class("warning"); if (wikidata && !Wikipedia.isValidWikidata(wikidata)) this.wikidata.get_style_context().add_class("warning"); else this.wikidata.get_style_context().remove_class("warning"); this.refresh.sensitive = !!article; } } GObject.registerClass({ Template: 'resource:///org/gnome/Maps/ui/osm-edit-wikipedia.ui', Children: [ 'article', 'wikidata', 'refresh' ] }, OSMEditWikipedia); export class OSMEditDialog extends Gtk.Dialog { static Response = { UPLOADED: 0, DELETED: 1, CANCELLED: 2, ERROR: 3 }; constructor({place, addLocation, latitude, longitude, ...params}) { super({...params, use_header_bar: true}); /* I could not get this widget working from within the widget template * this results in a segfault. The widget definition is left in-place, * but commented-out in the template file */ this._typeSearch = new OSMTypeSearchEntry(); this._typeSearchGrid.attach(this._typeSearch, 0, 0, 1, 1); this._typeSearch.visible = true; this._typeSearch.can_focus = true; let typeSearchPopover = this._typeSearch.popover; typeSearchPopover.connect('selected', (o, k, v, t) => { this._onTypeSelected(o, k, v, t); }); this._cancellable = new Gio.Cancellable(); this._cancellable.connect(() => this.response(OSMEditDialog.Response.CANCELLED)); this.connect('response', () => this._cancellable.cancel()); this.connect('close-request', () => this._cancellable.cancel()); this._isEditing = false; this._nextButton.connect('clicked', () => this._onNextClicked()); this._cancelButton.connect('clicked', () => this._onCancelClicked()); this._backButton.connect('clicked', () => this._onBackClicked()); this._typeButton.connect('clicked', () => this._onTypeClicked()); if (addLocation) { this._headerBar.title = C_("dialog title", "Add to OpenStreetMap"); this._typeLabel.visible = true; this._typeButton.visible = true; /* the OSMObject ID, version, and changeset ID is unknown for now */ let newNode = GnomeMaps.OSMNode.new(0, 0, 0, longitude, latitude); /* set a placeholder name tag to always get a name entry for new * locations */ newNode.set_tag('name', ''); this._loadOSMData(newNode); this._isEditing = true; this._osmType = GeocodeGlib.PlaceOsmType.NODE; } else { this._osmType = place.osmType; Application.osmEdit.fetchObject(place, this._onObjectFetched.bind(this), this._cancellable); } /* store original title of the dialog to be able to restore it when * coming back from type selection */ this._originalTitle = this._headerBar.title; this._updateRecentTypesList(); this._recentTypesListBox.set_header_func((row, previous) => { if (previous) row.set_header(new Gtk.Separator()); }); this._recentTypesListBox.connect('row-activated', (listbox, row) => { this._onTypeSelected(null, row._key, row._value, row._title); }); } _onNextClicked() { if (this._isEditing) { this._switchToUpload(); } else { this._stack.visible_child_name = 'loading'; this._nextButton.sensitive = false; this._backButton.sensitive = false; let comment = this._commentTextView.buffer.text; Application.osmEdit.uploadObject(this._osmObject, this._osmType, comment, this._onObjectUploaded.bind(this)); } } _onTypeClicked() { this._cancelButton.visible = false; this._backButton.visible = true; this._nextButton.visible = false; this._headerBar.title = _("Select Type"); this._stack.visible_child_name = 'select-type'; } _onTypeSelected(popover, key, value, title) { this._typeValueLabel.label = title; this._updateType(key, value); if (popover) popover.hide(); /* clear out type search entry */ this._typeSearch.text = ''; /* go back to the editing stack page */ this._backButton.visible = false; this._cancelButton.visible = true; this._nextButton.visible = true; this._stack.visible_child_name = 'editor'; this._headerBar.title = this._originalTitle; /* update recent types store */ OSMTypes.recentTypesStore.pushType(key, value); /* enable the Next button, so that it's possible to just change the type * of an object without changing anything else */ this._nextButton.sensitive = true; this._updateRecentTypesList(); } _updateType(key, value) { /* clear out any previous type-related OSM tags */ OSMTypes.OSM_TYPE_TAGS.forEach((tag) => this._osmObject.delete_tag(tag)); this._osmObject.set_tag(key, value); } /* update visibility and enable the type selection button if the object has * a well-known type (based on a known set of tags) */ _updateTypeButton() { let numTypeTags = 0; let lastTypeTag = null; for (let i = 0; i < OSMTypes.OSM_TYPE_TAGS.length; i++) { let key = OSMTypes.OSM_TYPE_TAGS[i]; let value = this._osmObject.get_tag(key); if (value != null) { numTypeTags++; lastTypeTag = key; } } /* if the object has none of tags set, enable the button and keep the * pre-set "None" label */ if (numTypeTags === 0) { this._typeLabel.visible = true; this._typeButton.visible = true; } else if (numTypeTags === 1) { let value = this._osmObject.get_tag(lastTypeTag); let typeTitle = OSMTypes.lookupType(lastTypeTag, value); /* if the type tag has a value we know of, and possible has * translations for */ if (typeTitle != null) { this._typeValueLabel.label = typeTitle; this._typeLabel.visible = true; this._typeButton.visible = true; } } } _updateRecentTypesList() { let recentTypes = OSMTypes.recentTypesStore.recentTypes; if (recentTypes.length > 0) { let children = []; for (let child of this._recentTypesListBox) { if (child instanceof Gtk.ListBoxRow) children.push(child); } for (let child of children) { this._recentTypesListBox.remove(child); } this._recentTypesLabel.visible = true; this._recentTypesListBox.visible = true; for (let i = 0; i < recentTypes.length; i++) { let key = recentTypes[i].key; let value = recentTypes[i].value; let title = OSMTypes.lookupType(key, value); let grid = new Gtk.Grid({visible: true, margin_top: 6, margin_bottom: 6, margin_start: 12, margin_end: 12}); let label = new Gtk.Label({visible: true, halign: Gtk.Align.START, label: title}); label.get_style_context().add_class('dim-label'); grid.attach(label, 0, 0, 1, 1); this._recentTypesListBox.insert(grid, -1); let row = this._recentTypesListBox.get_row_at_index(i); row._title = title; row._key = key; row._value = value; } } else { this._recentTypesLabel.visible = false; this._recentTypesListBox.visible = false; } } _switchToUpload() { this._stack.set_visible_child_name('upload'); this._nextButton.label = _("Done"); this._cancelButton.visible = false; this._backButton.visible = true; this._cancelButton.visible = false; this._isEditing = false; this._commentTextView.grab_focus(); } _onCancelClicked() { this.response(OSMEditDialog.Response.CANCELLED); } _onBackClicked() { this._backButton.visible = false; this._cancelButton.visible = true; this._nextButton.visible = true; this._nextButton.label = _("Next"); this._stack.set_visible_child_name('editor'); this._isEditing = true; this._commentTextView.buffer.text = ''; this._typeSearch.text = ''; this._headerBar.title = this._originalTitle; } _onObjectFetched(success, status, osmObject, osmType, error) { if (success) { this._isEditing = true; this._loadOSMData(osmObject); } else { this._showError(status, error); } } _onObjectUploaded(success, status) { if (success) { this.response(OSMEditDialog.Response.UPLOADED); } else { this._showError(status); this.response(OSMEditDialog.Response.ERROR); } } _showError(status, error) { /* set error message from specific error if available, otherwise use * a generic error message for the HTTP status code */ let statusMessage = error ? error.message : OSMConnection.getStatusMessage(status); this.transient_for.showToast(statusMessage); this.response(OSMEditDialog.Response.ERROR); } /* GtkContainer.child_get_property doesn't seem to be usable from GJS */ _getRowOfDeleteButton(button) { for (let row = 1; row < this._currentRow; row++) { let label = this._editorGrid.get_child_at(0, row); let deleteButton = this._editorGrid.get_child_at(2, row); if (deleteButton === button) return row; } return -1; } _addOSMEditDeleteButton(fieldSpec) { let deleteButton = Gtk.Button.new_from_icon_name('user-trash-symbolic'); let styleContext = deleteButton.get_style_context(); let rows = fieldSpec.rows || 1; styleContext.add_class('flat'); this._editorGrid.attach(deleteButton, 2, this._currentRow, 1, 1); deleteButton.connect('clicked', () => { if (fieldSpec.subtags) { fieldSpec.subtags.forEach((key) => this._osmObject.delete_tag(key)); } else { this._osmObject.delete_tag(fieldSpec.tag); } let row = this._getRowOfDeleteButton(deleteButton); for (let i = 0; i < rows; i++) { this._editorGrid.remove_row(row); this._currentRow--; } this._nextButton.sensitive = true; this._updateAddFieldMenu(); }); deleteButton.show(); } _addOSMEditLabel(fieldSpec) { let text = fieldSpec.name; if (fieldSpec.includeHelp) { let link = _WIKI_BASE + fieldSpec.tag; text = '%s'.format(link, link, text); } let label = new Gtk.Label({ label: text, use_markup: true }); label.halign = Gtk.Align.END; label.get_style_context().add_class('dim-label'); this._editorGrid.attach(label, 0, this._currentRow, 1, 1); label.show(); } _showHintPopover(entry, hint) { if (this._hintPopover && this._hintPopover.visible) { this._hintPopover.popdown(); this._hintPopover = null; } else { let label = new Gtk.Label({ label: hint }); this._hintPopover = new Gtk.Popover({ child: label }); this._hintPopover.set_parent(entry); this._hintPopover.popup(); } } _validateTextEntry(fieldSpec, entry) { if (fieldSpec.validate) { /* also allow empty text without showing the validation warning, * since we want to allow clearing out the text to unset a value * (equivalent to using the delete button). */ if (entry.text !== '' && !fieldSpec.validate(entry.text)) { entry.get_style_context().add_class("warning"); } else { entry.get_style_context().remove_class("warning"); } } } _addOSMEditTextEntry(fieldSpec, value) { this._addOSMEditLabel(fieldSpec); let entry = new Gtk.Entry(); entry.text = value; entry.hexpand = true; if (fieldSpec.placeHolder) entry.placeholder_text = fieldSpec.placeHolder; entry.connect('changed', () => { if (fieldSpec.rewriteFunc) { let rewrittenText = fieldSpec.rewriteFunc(entry.text); if (rewrittenText !== entry.text) entry.text = rewrittenText; } this._osmObject.set_tag(fieldSpec.tag, entry.text); this._validateTextEntry(fieldSpec, entry); this._nextButton.sensitive = true; }); this._validateTextEntry(fieldSpec, entry); if (fieldSpec.hint) { entry.secondary_icon_name = 'dialog-information-symbolic'; entry.connect('icon-press', (entry, iconPos, event) => { if (fieldSpec.validate && entry.text !== '' && !fieldSpec.validate(entry.text)) { this._showHintPopover(entry, fieldSpec.validateError); } else { this._showHintPopover(entry, fieldSpec.hint); } }); } this._editorGrid.attach(entry, 1, this._currentRow, 1, 1); entry.show(); entry.grab_focus(); /* TODO: should we allow deleting the name field? */ this._addOSMEditDeleteButton(fieldSpec); this._currentRow++; } _addOSMEditIntegerEntry(fieldSpec, value, min, max) { this._addOSMEditLabel(fieldSpec); let spinbutton = Gtk.SpinButton.new_with_range(min, max, 1); spinbutton.value = value; spinbutton.numeric = true; spinbutton.hexpand = true; spinbutton.connect('changed', () => { this._osmObject.set_tag(fieldSpec.tag, spinbutton.text); this._nextButton.sensitive = true; }); // TODO: this doesn't work in GTK4, since SpinButton doesn't extend // Entry, maybe put the hint button beside the spin button? /* if (fieldSpec.hint) { spinbutton.secondary_icon_name = 'dialog-information-symbolic'; spinbutton.connect('icon-press', (iconPos, event) => { this._showHintPopover(spinbutton, fieldSpec.hint); }); } */ this._editorGrid.attach(spinbutton, 1, this._currentRow, 1, 1); spinbutton.show(); spinbutton.grab_focus(); this._addOSMEditDeleteButton(fieldSpec); this._currentRow++; } _addOSMEditComboEntry(fieldSpec, value) { this._addOSMEditLabel(fieldSpec); let combobox = new Gtk.ComboBoxText(); fieldSpec.options.forEach(function(option) { combobox.append(option[0], option[1]); }); combobox.active_id = value; combobox.hexpand = true; combobox.connect('changed', () => { this._osmObject.set_tag(fieldSpec.tag, combobox.active_id); this._nextButton.sensitive = true; }); this._editorGrid.attach(combobox, 1, this._currentRow, 1, 1); combobox.show(); combobox.grab_focus(); this._addOSMEditDeleteButton(fieldSpec); this._currentRow++; } _addOSMEditAddressEntry(fieldSpec, value) { this._addOSMEditLabel(fieldSpec); let addr = new OSMEditAddress({ street: value[0], number: value[1], postCode: value[2], city: value[3] }); let changedFunc = (function(entry, index) { this._osmObject.set_tag(fieldSpec.subtags[index], entry.text); this._nextButton.sensitive = true; }).bind(this); addr.street.connect('changed', changedFunc.bind(this, addr.street, 0)); addr.number.connect('changed', changedFunc.bind(this, addr.number, 1)); addr.post.connect('changed', changedFunc.bind(this, addr.post, 2)); addr.city.connect('changed', changedFunc.bind(this, addr.city, 3)); let rows = fieldSpec.rows ?? 1; this._editorGrid.attach(addr, 1, this._currentRow, 1, rows); addr.street.grab_focus(); this._addOSMEditDeleteButton(fieldSpec); this._currentRow += rows; } _addOSMEditWikipediaEntry(fieldSpec, value) { this._addOSMEditLabel(fieldSpec) let wiki = new OSMEditWikipedia({ article: value[0], wikidata: value[1] }); wiki.article.connect('changed', () => { let rewrittenText = OSMUtils.getWikipediaOSMArticleFormatFromUrl(wiki.article.text); if (rewrittenText) wiki.article.text = rewrittenText; if (wiki.article.text !== '' && !Wikipedia.isValidWikipedia(wiki.article.text)) { wiki.article.get_style_context().add_class("warning"); } else { wiki.article.get_style_context().remove_class("warning"); } this._osmObject.set_tag(fieldSpec.subtags[0], wiki.article.text); this._nextButton.sensitive = true; wiki.refresh.sensitive = !!wiki.article.text; }); wiki.wikidata.connect('changed', () => { let rewrittenText = OSMUtils.getWikidataFromUrl(wiki.wikidata.text); if (rewrittenText) wiki.wikidata.text = rewrittenText; if (wiki.wikidata.text !== '' && !Wikipedia.isValidWikidata(wiki.wikidata.text)) { wiki.wikidata.get_style_context().add_class("warning"); } else { wiki.wikidata.get_style_context().remove_class("warning"); } this._osmObject.set_tag(fieldSpec.subtags[1], wiki.wikidata.text); this._nextButton.sensitive = true; }); wiki.article.connect('icon-press', () => { this._showHintPopover(wiki.article, _("The format used should include the language code " + "and the article title like “en:Article title”.")); }); wiki.wikidata.connect('icon-press', () => { this._showHintPopover(wiki.wikidata, _("Use the reload button to load the Wikidata tag for the selected article")); }); wiki.refresh.connect('clicked', () => { Wikipedia.fetchWikidataForArticle(wiki.article.text, this._cancellable, (wikidata) => { if (!wikidata) { Utils.showToastInOverlay(_("Couldn't find Wikidata tag for article"), this._overlay); return; } wiki.wikidata.text = wikidata; }); }); let rows = fieldSpec.rows ?? 1; this._editorGrid.attach(wiki, 1, this._currentRow, 1, rows); wiki.article.grab_focus(); this._addOSMEditDeleteButton(fieldSpec); this._currentRow += rows; } /* update visible items in the "Add Field" popover */ _updateAddFieldMenu() { /* clear old items */ let hasAllFields = true; let children = []; for (let child of this._addFieldPopoverGrid) { children.push(child); } for (let child of children) { this._addFieldPopoverGrid.remove(child); } /* add selectable items */ let row = 0; for (let i = 0; i < OSM_FIELDS.length; i++) { let fieldSpec = OSM_FIELDS[i]; let hasValue = false; if (fieldSpec.subtags) { fieldSpec.subtags.forEach((tag) => { if (this._osmObject.get_tag(tag) !== null) hasValue = true; }); } else { hasValue = this._osmObject.get_tag(fieldSpec.tag) !== null; } if (!hasValue) { let button = new Gtk.Button({ visible: true, sensitive: true, label: fieldSpec.name }); button.get_style_context().add_class('menuitem'); button.get_style_context().add_class('button'); button.get_style_context().add_class('flat'); button.get_child().halign = Gtk.Align.START; button.connect('clicked', () => { this._addFieldButton.active = false; this._addFieldPopover.popdown(); this._addOSMField(fieldSpec); /* add a "placeholder" empty OSM tag to keep the add field * menu updated, these tags will be filtered out if nothing * is entered */ if (fieldSpec.subtags) { fieldSpec.subtags.forEach((tag) => { this._osmObject.set_tag(tag, ''); }); } else { this._osmObject.set_tag(fieldSpec.tag, ''); } this._updateAddFieldMenu(); }); hasAllFields = false; this._addFieldPopoverGrid.attach(button, 0, row, 1, 1); row++; } } this._addFieldButton.sensitive = !hasAllFields; } _addOSMField(fieldSpec, value) { switch (fieldSpec.type) { case EditFieldType.TEXT: this._addOSMEditTextEntry(fieldSpec, value ?? ''); break; case EditFieldType.INTEGER: this._addOSMEditIntegerEntry(fieldSpec, value ?? 0, -1e9, 1e9); break; case EditFieldType.UNSIGNED_INTEGER: this._addOSMEditIntegerEntry(fieldSpec, value ?? 0, 0, 1e9); break; case EditFieldType.COMBO: this._addOSMEditComboEntry(fieldSpec, value ?? ''); break; case EditFieldType.ADDRESS: this._addOSMEditAddressEntry(fieldSpec, value ?? ''); break; case EditFieldType.WIKIPEDIA: this._addOSMEditWikipediaEntry(fieldSpec, value ?? ''); break; } } _loadOSMData(osmObject) { this._osmObject = osmObject; /* keeps track of the current insertion row in the grid for editing * widgets */ this._currentRow = 1; for (let i = 0; i < OSM_FIELDS.length; i++) { let fieldSpec = OSM_FIELDS[i]; let value; if (fieldSpec.subtags) { let hasAny = false; fieldSpec.subtags.forEach(function(tag) { if (osmObject.get_tag(tag) != null) hasAny = true; }); if (hasAny) { value = fieldSpec.subtags.map(function(tag) { return osmObject.get_tag(tag); }); this._addOSMField(fieldSpec, value); } } else { value = osmObject.get_tag(fieldSpec.tag); if (value != null) this._addOSMField(fieldSpec, value); } } this._updateAddFieldMenu(); this._updateTypeButton(); this._stack.visible_child_name = 'editor'; } } GObject.registerClass({ Template: 'resource:///org/gnome/Maps/ui/osm-edit-dialog.ui', InternalChildren: [ 'cancelButton', 'backButton', 'nextButton', 'stack', 'editorGrid', 'commentTextView', 'addFieldPopover', 'addFieldPopoverGrid', 'addFieldButton', 'typeSearchGrid', 'typeLabel', 'typeButton', 'typeValueLabel', 'recentTypesLabel', 'recentTypesListBox', 'headerBar', 'overlay'], }, OSMEditDialog); 07070100000241000081A40000000000000000000000016641340900001BA2000000000000000000000000000000000000002100000000gnome-maps-46.11/src/osmNames.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2020 Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ /** * Utility functions for getting localized names of OSM objects. * See https://wiki.openstreetmap.org/wiki/Multilingual_names */ import * as Utils from './utils.js'; /** * Mapping writing systems (scripts) to languages (most commonly * used scripts) and countries where given writing system is the predominant * one used. * * See: * https://en.wikipedia.org/wiki/List_of_writing_systems */ const WRITING_SYSTEMS = [ // ARABIC { languages: new Set(['ar', 'bal', 'bft', 'bhd', 'brh', 'bsk', 'fa', 'khv', 'ks', 'ur', 'pa', 'ps', 'sd', 'skr', 'ug', 'ckb']), countries: new Set(['AE', 'AF', 'BH', 'DZ', 'EG', 'IQ', 'IR', 'JO', 'KW', 'LB', 'LY', 'MA', 'OM', 'PK', 'PS', 'QA', 'SA', 'SD', 'SY', 'TN', 'YE']) }, // ARMENIAN { languages: new Set(['am']), countries: new Set(['AM']) }, // BENGALI { languages: new Set(['as', 'bn', 'bpy', 'ctg', 'mni', 'rkt', 'syl']), countries: new Set(['BD']) }, // BURMESE { languages: new Set(['mnv', 'my', 'rki', 'rmz', 'shn']), countries: new Set(['MM']) }, // CHINESE { languages: new Set(['zh', 'yue']), countries: new Set(['CN', 'TW']) }, // CYRILLIC { languages: new Set(['ab', 'abq', 'ady', 'alt', 'alr', 'aqc', 'av', 'ba', 'be', 'bg', 'bgx', 'ce', 'chm', 'ckt', 'cnr', 'crh', 'cv', 'dar', 'dlg', 'dng', 'eve', 'evn', 'gld', 'inh', 'itl', 'jdt', 'kbd', 'kjh', 'koi', 'kpy', 'krc', 'kum', 'ky', 'lbe', 'lez', 'mn', 'mk', 'nog', 'oaa', 'os', 'ru', 'rue', 'sah', 'sgh', 'sjd', 'sr', 'sty', 'tab', 'tg', 'tt', 'ttt', 'tyv', 'uby', 'uk', 'ulc', 'uum', 'yah', 'yai']), countries: new Set(['BY', 'KG', 'MN', 'TJ', 'RS', 'RU', 'UA']) }, // DEVANAGARI { languages: new Set(['awa', 'anp', 'bgc', 'bhb', 'bho', 'brx', 'doi', 'hi', 'hne', 'kok', 'mag', 'mai', 'mr', 'ne', 'new', 'raj', 'sa', 'sgj']) }, // GEORIGIAN { languages: new Set(['ka']), countries: new Set(['GE']) }, // GEEZ { languages: new Set(['am', 'gez', 'har', 'ti', 'tig']), countries: new Set(['ET', 'ER']) }, // GREEK { languages: new Set(['gr']), countries: new Set(['GR']) }, // GUJARATI { languages: new Set(['gbl', 'gu', 'kfr', 'vas', 'vav']) }, // HEBREW { languages: new Set(['he', 'yi']), countries: new Set(['IL']) }, // JAPANESE { languages: new Set(['ja']), countries: new Set(['JP']) }, // KHMER { languages: new Set(['km']), countries: new Set(['KH']) }, // KOREAN { languages: new Set(['ko']), countries: new Set(['KR', 'NK']) }, // LAO { languages: new Set(['lo']), countries: new Set(['LA']) }, // THAANA { languages: new Set(['dv']), countries: new Set(['MV']) }, // THAI { languages: new Set(['nod', 'sou', 'th', 'tts']), countries: new Set(['TH']) } ]; export function getNameForLanguageAndCountry(tags, language, country) { let localizedName = _getNameInLanguage(tags, language); /* for names in Norwegian, the best practice in OSM is to use the * general code 'no' for translated names, unless the translation * differs between Bokmål (nb) and Nynorsk (nn), in which case the standard * ISO 639-2 codes are used, e.g. the default case from above will be used */ if (!localizedName && (language === 'nb' || language === 'nn')) localizedName = _getNameInLanguage(tags, 'no'); return localizedName ? localizedName : _getFallbackNameForLanguageAndCountry(tags, language, country); } export function _getFallbackNameForLanguageAndCountry(tags, language, country) { let intName; if (_predominantWritingSystemMatchesLanguage(country, language) && tags.name) return tags.name; let nameInSameScript = _getNameMatchingWritingSystem(language, tags); if (nameInSameScript) return nameInSameScript; switch (country) { case 'CN': intName = _getNameInLanguage(tags, 'zh_pinyin'); break; case 'JP': intName = _getNameInLanguage(tags, 'ja-Latn'); if (!intName) intName = _getNameInLanguage(tags, 'ja_rm'); break; case 'KO': case 'NK': intName = _getNameInLanguage(tags, 'ko-Latn'); break; case 'RS': intName = _getNameInLanguage(tags, 'sr-Latn'); break; } let enName = _getNameInLanguage(tags, 'en'); if (intName) return intName; else if (tags.int_name) return tags.int_name; else if (enName) return enName; else return tags.name; } function _getNameInLanguage(tags, language) { return language === 'C' ? tags.name : tags['name:' + language]; } function _predominantWritingSystemMatchesLanguage(country, language) { let writingSystemOfCountry; let writingSystemOfLanguage; WRITING_SYSTEMS.forEach(w => { if (w.languages.has(language)) writingSystemOfLanguage = w; if (w.countries && w.countries.has(country)) writingSystemOfCountry = w; }); return writingSystemOfCountry === writingSystemOfLanguage; } function _getNameMatchingWritingSystem(language, tags) { let writingSystem; let name; WRITING_SYSTEMS.forEach(w => { if (w.languages.has(language)) writingSystem = w; }); if (writingSystem) { writingSystem.languages.forEach(lang => { if (tags['name:' + lang]) name = tags['name:' + lang]; }); } return name; } 07070100000242000081A40000000000000000000000016641340900000567000000000000000000000000000000000000002A00000000gnome-maps-46.11/src/osmOAuthProxyCall.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2023 Marcus Lundblad. * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ import GObject from 'gi://GObject'; import Rest from 'gi://Rest'; export class OSMOAuthProxyCall extends Rest.OAuth2ProxyCall { constructor({ content, method, func, ...params }) { super(params); this._content = content; this.set_method(method); this.set_function(func); this.add_header('Authorization', 'Bearer ' + this.proxy.access_token); } vfunc_serialize_params() { return [true, 'text/xml', this._content, this._content.length]; } } GObject.registerClass(OSMOAuthProxyCall); 07070100000243000081A40000000000000000000000016641340900000582000000000000000000000000000000000000002700000000gnome-maps-46.11/src/osmTypeListRow.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2015 Marcus Lundblad. * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ import GObject from 'gi://GObject'; import Gtk from 'gi://Gtk'; export class OSMTypeListRow extends Gtk.ListBoxRow { constructor({type, ...params}) { super(params); this._type = type; this._name.label = this._type.title; } get key() { return this._type.key; } get value() { return this._type.value; } get title() { return this._type.title; } } GObject.registerClass({ Template: 'resource:///org/gnome/Maps/ui/osm-type-list-row.ui', InternalChildren: [ 'name' ] }, OSMTypeListRow); 07070100000244000081A40000000000000000000000016641340900000912000000000000000000000000000000000000002700000000gnome-maps-46.11/src/osmTypePopover.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2015 Marcus Lundblad. * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ import GObject from 'gi://GObject'; import Gtk from 'gi://Gtk'; import {OSMTypeListRow} from './osmTypeListRow.js'; import {SearchPopover} from './searchPopover.js'; export class OSMTypePopover extends SearchPopover { constructor(params) { super(params); this.list.connect('row-activated', (list, row) => { if (row) this.emit('selected', row.key, row.value, row.title); }); } showMatches(matches) { let rows = []; for (let row of this.list) { rows.push(row); } for (let row of rows) { this.list.remove(row); } matches.forEach((type) => this._addRow(type)); let {x, y, width, height} = this.get_parent().get_allocation(); // Magic number to make the alignment pixel perfect. this.width_request = width + 20; this.popup(); } _addRow(type) { let row = new OSMTypeListRow({ type: type, can_focus: true }); this.list.insert(row, -1); } } GObject.registerClass({ Children: ['list'], Template: 'resource:///org/gnome/Maps/ui/osm-type-popover.ui', Signals : { /* signal emitted when selecting a type, indicates OSM key and value * and display title */ 'selected' : { param_types: [ GObject.TYPE_STRING, GObject.TYPE_STRING, GObject.TYPE_STRING ] } } }, OSMTypePopover); 07070100000245000081A400000000000000000000000166413409000008F7000000000000000000000000000000000000002B00000000gnome-maps-46.11/src/osmTypeSearchEntry.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2015 Marcus Lundblad. * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ import GObject from 'gi://GObject'; import Gtk from 'gi://Gtk'; import {OSMTypePopover} from './osmTypePopover.js'; import * as OSMTypes from './osmTypes.js'; import * as Utils from './utils.js'; const MAX_MATCHES = 10; export class OSMTypeSearchEntry extends Gtk.SearchEntry { constructor(params) { super(params); this._popover = new OSMTypePopover({ entry: this }); this._popover.set_parent(this); this.set_key_capture_widget(this._popover); this.connect('search-changed', this._onSearchChanged.bind(this)); this.connect('activate', this._onSearchChanged.bind(this)); } get popover() { return this._popover; } _onSearchChanged() { if (this.text.length === 0) { this._popover.hide(); return; } /* Note: Not sure if searching already on one character might be a bit * too much, but unsure about languages such as Chinese and Japanese * using ideographs. */ if (this.text.length >= 1) { let matches = OSMTypes.findMatches(this.text, MAX_MATCHES); if (matches.length > 0) { /* show search results */ this._popover.showMatches(matches); } else { this._popover.hide(); } } } } GObject.registerClass({ Template: 'resource:///org/gnome/Maps/ui/osm-type-search-entry.ui' }, OSMTypeSearchEntry); 07070100000246000081A4000000000000000000000001664134090000147D000000000000000000000000000000000000002100000000gnome-maps-46.11/src/osmTypes.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2015 Marcus Lundblad. * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ import Gio from 'gi://Gio'; import GLib from 'gi://GLib'; import * as Utils from './utils.js'; const _RECENT_TYPES_STORE_FILE = 'maps-recent-types.json'; const _NUM_RECENT_TYPES = 10; const _file = Gio.file_new_for_uri('resource://org/gnome/Maps/osm-types.json'); const [_status, _buffer] = _file.load_contents(null); const OSM_TYPE_MAP = JSON.parse(Utils.getBufferText(_buffer)); /* Lists the OSM tags we base our notion of location types on */ export const OSM_TYPE_TAGS = ['aeroway', 'amenity', 'leisure', 'office', 'place', 'shop', 'tourism' ]; /* Sort function comparing two type values according to the locale-specific * comparison of the type title */ function _sortType(t1, t2) { return t1.title.toLocaleLowerCase().localeCompare(t2.title.toLocaleLowerCase()); } /* find the localized display title and a normalized locale-specific lower case * value for search purposes, given a type mapping value, * also cache the title to avoid re-iterating the language map every time, * and store the lower-case normalized title in the current locale */ function _lookupTitle(item) { let langs = GLib.get_language_names(); let title = item.cachedTitle; if (title) return [title, item.normalizedTitle]; for (let i = 0; i < langs.length; i++) { title = item.title[langs[i].replace('_', '-')]; if (title) { let normalizedTitle = title.toLocaleLowerCase(); item.cachedTitle = title; item.normalizedTitle = normalizedTitle; return [title, normalizedTitle]; } } return null; } export function findMatches(prefix, maxMatches) { let numMatches = 0; let prefixLength = prefix.length; let normalized = prefix.toLocaleLowerCase(); let matches = []; for (let type in OSM_TYPE_MAP) { let item = OSM_TYPE_MAP[type]; let [title, normalizedTitle] = _lookupTitle(item); let parts = type.split('/'); /* if the (locale-case-normalized) title matches parts of the search * string, or as a convenience for expert mappers, if the search string * is prefix of the raw OSM tag value */ if (normalizedTitle.indexOf(normalized) != -1 || (prefixLength >= 3 && parts[1].startsWith(prefix))) { numMatches++; matches.push({key: parts[0], value: parts[1], title: title}); } if (numMatches === maxMatches) break; } return matches.sort(_sortType); } /* return the title of a type with a given key/value if it is known by us */ export function lookupType(key, value) { let item = OSM_TYPE_MAP[key + '/' + value]; if (item) { let [title, _] = _lookupTitle(item); return title; } else return null; } export class RecentTypesStore { constructor() { this._filename = GLib.build_filenamev([GLib.get_user_data_dir(), _RECENT_TYPES_STORE_FILE]); this._load(); } get recentTypes() { return this._recentTypes; } _load() { if (!GLib.file_test(this._filename, GLib.FileTest.EXISTS)) { this._recentTypes = []; return; } let buffer = Utils.readFile(this._filename); if (buffer === null) { this._recentTypes = []; return; } this._recentTypes = JSON.parse(Utils.getBufferText(buffer)); } _save() { let buffer = JSON.stringify(this._recentTypes); if (!Utils.writeFile(this._filename, buffer)) log('Failed to write recent types file!'); } /* push a type key/value as the most recently used type */ pushType(key, value) { /* find out if the type is already stored */ let pos = -1; for (let i = 0; i < this._recentTypes.length; i++) { if (this._recentTypes[i].key === key && this._recentTypes[i].value === value) { pos = i; break; } } /* remove the type if it was already found in the list */ if (pos != -1) this._recentTypes.splice(pos, 1); this._recentTypes.unshift({key: key, value: value}); /* prune the list */ this._recentTypes.splice(_NUM_RECENT_TYPES); this._save(); } }; export const recentTypesStore = new RecentTypesStore(); 07070100000247000081A400000000000000000000000166413409000007E2000000000000000000000000000000000000002100000000gnome-maps-46.11/src/osmUtils.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2015 Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA * * Author: Marcus Lundblad */ import GLib from 'gi://GLib'; import {Application} from './application.js'; /* * Gets a Wikipedia article in OSM tag format (i.e. lang:Article title) * given a URL or null if input doesn't match a Wikipedia URL */ export function getWikipediaOSMArticleFormatFromUrl(url) { let regex = /https?:\/\/(..)\.wikipedia\.org\/wiki\/(.+)/; let match = url.match(regex); if (match && match.length == 3) { let lang = match[1]; let article = match[2]; return lang + ':' + GLib.uri_unescape_string(article, null).replace(/_/g, ' '); } else { return null; } } /* * Gets a Wikidata tag from from a URL of the forms * https://www.wikidata.org/wiki/Qnnnn, or * https://www.wikidata.org/wiki/Special:EntityPage/Qnnnn * or null if input doesn't match these formats */ export function getWikidataFromUrl(url) { let regex = /https?:\/\/www.\wikidata\.org\/wiki\/(?:Special:EntityPage\/)?(Q\d+)/; let match = url.match(regex); if (match?.length === 3 || match?.length === 2) return match.last(); else return null; } 07070100000248000081A40000000000000000000000016641340900002DF8000000000000000000000000000000000000002100000000gnome-maps-46.11/src/overpass.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Rishi Raj Singh Jhelumi */ import Geocode from 'gi://GeocodeGlib'; import GLib from 'gi://GLib'; import Soup from 'gi://Soup'; import {Application} from './application.js'; import {Place} from './place.js'; import * as Utils from './utils.js'; const _DEFAULT_TIMEOUT = 180; const _DEFAULT_MAXSIZE = 536870912; const _DEFAULT_OUTPUT_FORMAT = 'json'; const _DEFAULT_OUTPUT_COUNT = 1000; const _DEFAULT_OUTPUT_INFO = 'body'; const _DEFAULT_OUTPUT_SORT_ORDER = 'qt'; // default initial search radius to use for POIs when category doesn't specify one const _DEFAULT_INITIAL_POI_SEARCH_RADIUS = 1000; // multiplying factor for extended search radius const _SEARCH_RADIUS_MULTIPLIER = 10; // max distance to remove duplicate (name and type) POIs const _POI_DEDUPLICATION_DISTANCE = 200; const BASE_URL = 'https://overpass-api.de/api/interpreter'; export class Overpass { constructor(params) { params = params || { }; // maximum allowed runtime for the query in seconds this.timeout = params.timeout || _DEFAULT_TIMEOUT; // maximum allowed memory for the query in bytes RAM on the server this.maxsize = params.maxsize || _DEFAULT_MAXSIZE; // output format : json or xml this.outputFormat = params.outputFormat || _DEFAULT_OUTPUT_FORMAT; // maximum number of results the output must contain this.outputCount = params.outputCount || _DEFAULT_OUTPUT_COUNT; // data output info must contain : ids, skel, body, meta this.outputInfo = params.outputInfo || _DEFAULT_OUTPUT_INFO; // data sort order : qt(fastest based on geography), ids, asc this.outputSortOrder = params.outputSortOrder || _DEFAULT_OUTPUT_SORT_ORDER; // HTTP Session Variables this._session = new Soup.Session({ user_agent : 'gnome-maps/' + pkg.version }); } populatePlace(place, callback) { let url = this._getQueryUrl(Utils.osmTypeToString(place.osmType), place.osmId); let request = Soup.Message.new('GET', url); this._session.send_and_read_async(request, GLib.PRIORITY_DEFAULT, null, (source, res) => { if (request.get_status() !== Soup.Status.OK) { Utils.debug('Failed to fetch Overpass result: ' + request.get_status()); callback(false); return; } try { let buffer = this._session.send_and_read_finish(res).get_data(); let jsonObj = JSON.parse(Utils.getBufferText(buffer)); let element = jsonObj?.elements?.[0]; if (element) { place.osmTags = element.tags; callback(true); } else { Utils.debug('No element in Overpass result'); callback(false); } } catch(e) { Utils.debug('Failed to parse Overpass result'); callback(false); } }); } fetchPlace(osmType, osmId, callback) { let url = this._getQueryUrl(osmType, osmId) let request = Soup.Message.new('GET', url); this._session.send_and_read_async(request, GLib.PRIORITY_DEFAULT, null, (source, res) => { if (request.get_status() !== Soup.Status.OK) { Utils.debug('Failed to fetch Overpass result: ' + request.get_status()); callback(null); return; } try { let buffer = this._session.send_and_read_finish(res).get_data(); let jsonObj = JSON.parse(Utils.getBufferText(buffer)); let element = jsonObj?.elements?.[0]; if (element) { let place = this._createPlace(element, osmType, osmId); callback(place); } else { callback(null); } } catch(e) { Utils.debug('Failed to parse Overpass result'); callback(null); } }); } searchPois(lat, lon, category, cancellable, callback) { let maxResults = Application.settings.get('max-search-results'); let initialSearchRadius = category.initialSearchRadius ?? _DEFAULT_INITIAL_POI_SEARCH_RADIUS; this._internalSearchPois(lat, lon, initialSearchRadius, category, cancellable, (firstResults) => { if (!firstResults) { callback(null); return; } this._orderPois(firstResults, lat, lon); if (category.deduplicate) this._removeNearbyDuplicates(firstResults); if (firstResults.length >= maxResults) { callback(firstResults.slice(0, maxResults)); } else { // try to widen the search radius to include more results if (cancellable.is_cancelled()) return; this._internalSearchPois(lat, lon, initialSearchRadius * _SEARCH_RADIUS_MULTIPLIER, category, cancellable, (moreResults) => { if (!moreResults) { /* not able to retrieve more results, go with existing * results */ callback(firstResults); return; } this._orderPois(moreResults, lat, lon); // filter out results within the initial radius moreResults = moreResults.filter(p => p.dist > initialSearchRadius); let allResults = firstResults.concat(moreResults); if (category.deduplicate) this._removeNearbyDuplicates(allResults); callback(allResults.slice(0, maxResults)); }); } }); } _removeNearbyDuplicates(results) { let i = 0; while (i < results.length - 1) { let p1 = results[i]; let p2 = results[i + 1]; let distance = p1.location.get_distance_from(p2.location) * 1000; if (distance < _POI_DEDUPLICATION_DISTANCE && p1.name === p2.name) results.splice(i + 1, 1); else i++; } } _orderPois(pois, lat, lon) { // order by distance to the search location let origin = new Geocode.Location({ latitude: lat, longitude: lon, accuracy: 0.0 }); /* pre-compute distance from search origin for each * result to avoid repeated distance calculations in * when searching the array */ for (let place of pois) { place.dist = place.location.get_distance_from(origin) * 1000; } pois.sort((a, b) => { return a.dist - b.dist }); } _internalSearchPois(lat, lon, radius, category, cancellable, callback) { let url = this._getPoiQueryUrl(lat, lon, radius, category); let request = Soup.Message.new('GET', url); this._session.send_and_read_async(request, GLib.PRIORITY_DEFAULT, cancellable, (source, res) => { if (cancellable.is_cancelled()) return; if (request.get_status() !== Soup.Status.OK) { Utils.debug('Failed to fetch Overpass result: ' + request.get_status()); callback(null); return; } try { let buffer = this._session.send_and_read_finish(res).get_data(); let jsonObj = JSON.parse(Utils.getBufferText(buffer)); let elements = jsonObj?.elements; if (!elements) { callback(null); return; } let results = []; for (let element of elements) { results.push(this._createPlace(element, element.type, element.id)); } callback(results); } catch (e) { Utils.debug('Failed to parse Overpass result'); callback(null); } }); } _createPlace(element, osmType, osmId) { if (!element.tags) return null; const [latitude, longitude] = this._getCoordsFromElement(element); return new Place({ location: new Geocode.Location({ latitude, longitude, accuracy: 0.0 }), osmType: Utils.osmTypeFromString(osmType), osmId: osmId + '', osmTags: element.tags, prefilled: true }); } _getCoordsFromElement(element) { if (element.type === 'node') return [element.lat, element.lon]; else return [element.center.lat, element.center.lon]; } _getQueryUrl(osmType, osmId) { let data = this._getOsmObjectData(osmType, osmId); return `${BASE_URL}?data=${this._generateOverpassQuery(data)}`; } _getPoiQueryUrl(lat, lon, radius, category) { let data = this._getPoiData(lat, lon, radius, category); return `${BASE_URL}?data=${this._generateOverpassQuery(data)}`; } _generateOverpassQuery(data) { let timeout = this._getKeyValue('timeout', this.timeout); let out = this._getKeyValue('out', this.outputFormat); let maxSize = this._getKeyValue('maxsize', this.maxsize); let output = this._getOutput(); return `${timeout}${out}${maxSize};${data};${output};`; } _getKeyValue(key, value) { return `[${key}:${value}]`; } _getOsmObjectData(osmType, osmId) { return `${osmType}(${osmId})`; } _getPoiData(lat, lon, radius, category) { let data = '('; for (let disjunction of category.keyValues) { for (let type of ['node', 'way', 'relation']) { data += `${type}(around:${radius},${lat},${lon})`; for (let kv of disjunction) { data += `[${kv}]`; } data += ';'; } } data += ')'; return data; } _getOutput() { return `out center ${this.outputInfo} ${this.outputSortOrder} ${this.outputCount}`; } } 07070100000249000081A400000000000000000000000166413409000015DE000000000000000000000000000000000000002600000000gnome-maps-46.11/src/photonGeocode.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2019 Marcus Lundblad. * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ import GLib from 'gi://GLib'; import Soup from 'gi://Soup'; import {Application} from './application.js'; import * as HTTP from './http.js'; import * as PhotonUtils from './photonUtils.js'; import * as Service from './service.js'; import * as Utils from './utils.js'; // HTTP session timeout (in seconds) const TIMEOUT = 5; export class PhotonGeocode { constructor() { this._session = new Soup.Session({ user_agent : 'gnome-maps/' + pkg.version, timeout: TIMEOUT }); this._readService(); this._limit = Application.settings.get('max-search-results'); } search(string, latitude, longitude, cancellable, callback) { let url = this._buildURL(string, latitude, longitude); let msg = Soup.Message.new('GET', url) this._session.send_and_read_async(msg, GLib.PRIORITY_DEFAULT, cancellable, (source, res) => { if (cancellable.is_cancelled()) return; if (msg.get_status() !== Soup.Status.OK) { callback(null, msg.get_status()); } else { try { let buffer = this._session.send_and_read_finish(res).get_data(); let result = this._parseMessage(Utils.getBufferText(buffer)); if (!result) callback(null, null); else callback(result, null); } catch (e) { Utils.debug('Error: ' + e); callback(null, e); } } }); } reverse(latitude, longitude, callback) { let url = this._buildURL(null, latitude, longitude); let msg = Soup.Message.new('GET', url); Application.application.mark_busy(); this._session.send_and_read_async(msg, GLib.PRIORITY_DEFAULT, null, (source, res) => { Application.application.unmark_busy(); try { let buffer = this._session.send_and_read_finish(res).get_data(); let result = this._parseMessage(Utils.getBufferText(buffer)); if (!result) callback(null, null); else callback(result[0], null); } catch (e) { Utils.debug('Error: ' + e); callback(null, e); } }); } get attribution() { return Service.getService().photonGeocode.attribution; } get attributionUrl() { return Service.getService().photonGeocode.attributionUrl; } get name() { return 'Photon'; } get url() { return 'https://github.com/Komoot/photon'; } _parseMessage(message) { let json = JSON.parse(message); let result = []; let features = json.features; if (!features || features.length === 0) { Utils.debug('No features in response'); return null; } features.forEach(feature => { let place = this._parseFeature(feature); if (place) result.push(place); }); return result; } _parseFeature(feature) { let [lon, lat] = feature.geometry.coordinates; return PhotonUtils.parsePlace(lat, lon, feature.properties); } _buildURL(string, latitude, longitude) { let query = new HTTP.Query({ limit: string ? this._limit : 1 }); if (latitude !== null && longitude != null) { query.add('lat', latitude); query.add('lon', longitude); if (string) query.add('location_bias_scale', PhotonUtils.LOCATION_BIAS_SCALE); } if (string) query.add('q', string); else query.add('distance_sort', 'true'); if (this._language) query.add('lang', this._language); if (this._additionalParams) this._additionalParams.forEach((p) => query.add(p.key, p.value)); return `${this._baseUrl}/${string ? 'api' : 'reverse'}/?${query.toString()}`; } _readService() { let photon = Service.getService().photonGeocode; let language = Utils.getLanguage(); let supportedLanguages; if (photon) { this._baseUrl = photon.baseUrl; supportedLanguages = photon.supportedLanguages; if (photon.additionalParams) this._additionalParams = photon.additionalParams; } if (supportedLanguages.includes(language)) this._language = language; else this._language = null; } } 0707010000024A000081A400000000000000000000000166413409000021D2000000000000000000000000000000000000002400000000gnome-maps-46.11/src/photonUtils.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2019 Marcus Lundblad. * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ import gettext from 'gettext'; import GeocodeGlib from 'gi://GeocodeGlib'; import * as Address from './address.js'; import * as OSMTypes from './osmTypes.js'; import {Place} from './place.js'; import * as Utils from './utils.js'; const _ = gettext.gettext; /* Define location bias scale parameter to adjust prominance of search results * with respect to location. * See: https://github.com/komoot/photon/issues/600 */ export const LOCATION_BIAS_SCALE = 0.5; export function parsePlace(latitude, longitude, properties) { let location = new GeocodeGlib.Location({ latitude: latitude, longitude: longitude, accuracy: 0.0 }); let type = _parsePlaceType(properties); let name = _parseName(properties); if (!name) return null; let street = properties.street; let housenumber = properties.housenumber; let countryCode = properties.countrycode ?? Utils.getCountryCodeForCoordinates(latitude, longitude); let streetAddress; if (housenumber && street) { streetAddress = Address.streetAddressForCountryCode(street, housenumber, countryCode); /* in some cases Photon seems to give housenumber or street as name, * in that case set the name as the formatted street address */ if (name === housenumber || name === street) name = streetAddress; } let params = { name: name, placeType: type, location: location }; if (streetAddress) params.streetAddress = streetAddress; if (properties.osm_id && properties.osm_type) { params.osmId = properties.osm_id + ''; // Geocode-glib needs this as a string params.osmType = _parseOsmType(properties.osm_type); } if (properties.street) params.street = properties.street; if (properties.city) params.town = properties.city; if (properties.postcode) params.postalCode = properties.postcode; if (properties.state) params.state = properties.state; if (countryCode) params.countryCode = countryCode; if (!countryCode && properties.country) params.country = properties.country; if (properties.extent) params.boundingBox = _parseBoundingBox(properties.extent); if (properties.osm_key) params.osmKey = properties.osm_key; if (properties.osm_value) params.osmValue = properties.osm_value; return new Place(params); } function _parseName(properties) { if (!properties) return ''; if (properties.name) { return properties.name; } else if (properties.housenumber) { return properties.housenumber; } else { let typeTitle = OSMTypes.lookupType(properties.osm_key, properties.osm_value); return typeTitle || _("Unnamed place"); } } function _parseOsmType(osmType) { switch (osmType) { case 'N': return GeocodeGlib.PlaceOsmType.NODE; case 'W': return GeocodeGlib.PlaceOsmType.WAY; case 'R': return GeocodeGlib.PlaceOsmType.RELATION; default: return GeocodeGlib.PlaceOsmType.UNKNOWN; } } function _parsePlaceType(properties) { if (!properties) return GeocodeGlib.PlaceType.UNKNOWN; let key = properties.osm_key; let value = properties.osm_value; switch (key) { case 'place': switch (value) { case 'continent': return GeocodeGlib.PlaceType.CONTINENT; case 'country': return GeocodeGlib.PlaceType.COUNTRY; case 'city': case 'town': case 'village': case 'hamlet': return GeocodeGlib.PlaceType.TOWN; case 'suburb': return GeocodeGlib.PlaceType.SUBURB; case 'house': return GeocodeGlib.PlaceType.BUILDING; case 'island': return GeocodeGlib.PlaceType.ISLAND; case 'municipality': return GeocodeGlib.PlaceType.COUNTY; default: return GeocodeGlib.PlaceType.MISCELLANEOUS; } case 'amenity': switch (value) { case 'bar': case 'pub': case 'nightclub': return GeocodeGlib.PlaceType.BAR; case 'restaurant': case 'fast_food': return GeocodeGlib.PlaceType.RESTAURANT; case 'school': case 'kindergarten': return GeocodeGlib.PlaceType.SCHOOL; case 'place_of_worship': return GeocodeGlib.PlaceType.PLACE_OF_WORSHIP; case 'bus_station': return GeocodeGlib.PlaceType.BUS_STOP; default: return GeocodeGlib.PlaceType.MISCELLANEOUS; } case 'highway': switch (value) { case 'bus_stop': return GeocodeGlib.PlaceType.BUS_STOP; case 'motorway': return GeocodeGlib.PlaceType.MOTORWAY; default: return GeocodeGlib.PlaceType.STREET; } case 'railway': switch (value) { case 'station': case 'stop': case 'halt': return GeocodeGlib.PlaceType.RAILWAY_STATION; case 'tram_stop': return GeocodeGlib.PlaceType.LIGHT_RAIL_STATION; default: return GeocodeGlib.PlaceType.MISCELLANEOUS; } case 'aeroway': switch (value) { case 'aerodrome': return GeocodeGlib.PlaceType.AIRPORT; default: return GeocodeGlib.PlaceType.MISCELLANEOUS; } case 'building': switch (value) { case 'yes': return GeocodeGlib.PlaceType.BUILDING; case 'railway_station': return GeocodeGlib.PlaceType.RAILWAY_STATION; default: return GeocodeGlib.PlaceType.MISCELLANEOUS; } default: return GeocodeGlib.PlaceType.MISCELLANEOUS; } } function _parseBoundingBox(extent) { if (!Array.isArray(extent) || extent.length !== 4 || !_isValidLongitude(extent[0]) || !_isValidLatitude(extent[1]) || !_isValidLongitude(extent[2]) || !_isValidLatitude(extent[3])) { Utils.debug('invalid extents in response: ' + JSON.stringify(extent, null, 2)); return null; } /* it seems GraphHopper geocode swaps order of bottom and top compared * to stock Photon, so just in case "clamp" both pairs */ return new GeocodeGlib.BoundingBox({ left: Math.min(extent[0], extent[2]), bottom: Math.min(extent[1], extent[3]), right: Math.max(extent[0], extent[2]), top: Math.max(extent[1], extent[3]) }); } /* check if an extent value is a valid latitude (clamp to the maximum latitude * supported by the map view */ function _isValidLatitude(number) { return Number.isFinite(number) && number >= -85.0511287798 && number <= 85.0511287798; } // check if an extent value is a valid longitude function _isValidLongitude(number) { return Number.isFinite(number) && number >= -180 && number <= 180; } 0707010000024B000081A40000000000000000000000016641340900003F00000000000000000000000000000000000000001E00000000gnome-maps-46.11/src/place.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2014 Jonas Danielsson * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Jonas Danielsson */ import gettext from 'gettext'; import GeocodeGlib from 'gi://GeocodeGlib'; import Gio from 'gi://Gio'; import GObject from 'gi://GObject'; import * as Address from './address.js'; import {Location} from './location.js'; import * as OSMNames from './osmNames.js'; import {Overpass} from './overpass.js'; import * as PlaceIcons from './placeIcons.js'; import * as URIS from './uris.js'; import * as Utils from './utils.js'; const _ = gettext.gettext; // Matches coordinates string in 'Decimal Degrees' format const DECIMAL_COORDINATES_REGEX = ( /^\s*(\-?\d+(?:\.\d+)?)°?\s*,\s*(\-?\d+(?:\.\d+)?)°?\s*$/ ); // Matches coordinates string in 'Degrees, Minutes, Seconds' format const DMS_COORDINATES_REGEX = new RegExp( /^\s*(\d+)°?\s*(\d+)['′]?\s*(\d+(?:.\d+)?)["″]?\s*(N|S)\s*,?/.source + /\s*(\d+)°?\s*(\d+)['′]?\s*(\d+(?:.\d+)?)["″]?\s*(W|E)\s*$/.source, "i" ); export class Place extends GObject.Object { constructor(params) { super(); /* Some of these properties are read as snake_case for backward compatibility with the place store. */ this._osmId = params.osmId; this._osmType = params.osmType; this._name = params.name; this._description = params.description; this._source = params.source; this._location = params.location; this._boundingBox = params.boundingBox ?? null; this._placeType = params.placeType; this._streetAddress = params.streetAddress; this._street = params.street; this._building = params.building; this._postalCode = params.postalCode; this._area = params.area; this._town = params.town; this._state = params.state; this._county = params.county; this._country = params.country; this._countryCode = params.countryCode; this._continent = params.continent; this._originalJson = params.originalJson; this._isCurrentLocation = params.isCurrentLocation; this._initialZoom = params.initialZoom; /* set to true if the instance is pre-filled with Overpass data, * at the time of creation, as will be the case when loading a place * from an OSM object URL */ this._prefilled = params.prefilled; /* Determines if the place should be added to the place store */ if (typeof(params.store) === 'undefined') { this._store = true; } else { this._store = params.store; } this._nativeName = params.nativeName; this._osmKey = params.osmKey; this._osmValue = params.osmValue; this._osmTags = params.osmTags; } get osmId() { return this._osmId; } set osmId(osmId) { this._osmId = osmId; } get osmType() { return this._osmType; } set osmType(osmType) { this._osmType = osmType; } get osmTags() { return this._osmTags; } set osmTags(osmTags) { this._osmTags = osmTags; if (osmTags.ele && this.location) this.location.altitude = parseFloat(osmTags.ele); } get name() { if (this.osmTags) { const language = Utils.getLanguage(); return OSMNames.getNameForLanguageAndCountry( this.osmTags, language, this.countryCode ); } return this._name; } set name(name) { this._name = name; } get description() { return this._description; } set description(description) { this._description = description; } get source() { return this._source; } set source(source) { this._source = source; } get location() { return this._location; } set location(location) { this._location = location; this.notify('location'); } get boundingBox() { return this._boundingBox; } set boundingBox(boundingBox) { this._boundingBox = boundingBox; } get placeType() { return this._placeType; } set placeType(placeType) { this._placeType = placeType; } get streetAddress() { if (this.houseNumber && this.street) { return Address.streetAddressForCountryCode( this.street, this.houseNumber, this.countryCode ); } return this._streetAddress; } get street() { return this.osmTags?.['addr:street'] ?? this._street; } get houseNumber() { return this.osmTags?.['addr:housenumber']; } get building() { return this._building; } set building(building) { this._building = building; } get postalCode() { return this.osmTags?.['addr:postcode'] ?? this._postalCode; } get area() { return this._area; } get town() { return this.osmTags?.['addr:city'] ?? this._town; } get state() { return this._state; } get county() { return this._county; } get country() { return this._country; } get countryCode() { let result = this.osmTags?.['addr:country'] ?? this._countryCode; if (result) return result; this._countryCode = Utils.getCountryCodeForCoordinates( this.location.latitude, this.location.longitude ); return this._countryCode; } get continent() { return this._continent; } set continent(continent) { this._continent = continent; } set store(v) { this._store = v; } get store() { return this._store; } get uniqueID() { return this.osmType + '-' + this.osmId; } get isCurrentLocation() { return this._isCurrentLocation; } get population() { return this.osmTags?.population; } get website() { return this.osmTags?.['contact:website'] ?? this.osmTags?.website; } get email() { return this.osmTags?.['contact:email'] ?? this.osmTags?.email; } get phone() { return this.osmTags?.['contact:phone'] ?? this.osmTags?.phone; } get wiki() { return this.osmTags?.wikipedia ?? this.osmTags?.wiki; } get wikidata() { return this.osmTags?.wikidata; } get openingHours() { return this.osmTags?.opening_hours ?? this.osmTags?.openingHours; } get internetAccess() { return this.osmTags?.internet_access ?? this.osmTags?.internetAccess; } get religion() { return this.osmTags?.religion; } get sport() { return this.osmTags?.sport; } get toilets() { return this.osmTags?.toilets; } get takeaway() { return this.osmTags?.takeaway; } get note() { return this.osmTags?.note; } get wheelchair() { return this.osmTags?.wheelchair; } get initialZoom() { return this._initialZoom; } get prefilled() { return this._prefilled; } set prefilled(prefilled) { this._prefilled = prefilled; } get nativeName() { return this.osmTags?.name; } /** * Most important OSM tag for the place ('amenity', 'shop', and so on). */ get osmKey() { const osmTags = this.osmTags; if (osmTags) { const tag = [ 'place', 'amenity', 'leisure', 'shop', 'tourism', 'highway', 'railway', 'aeroway', 'building' ].find(key => key in osmTags); if (tag) return tag; } return this._osmKey; } /** * Value for the most important OSM tag. * This corresponds to the osm_value parameter in Photon geocoder. */ get osmValue() { return this.osmTags?.[this.osmKey] ?? this._osmValue; } get icon() { return Gio.Icon.new_for_string(this._getIconName()); } _getIconName() { return PlaceIcons.getIconForPlace(this); } /** * This property is true for places related to eating and/or drinking, * such as restaurants, cafes, pubs and similar */ get isEatingAndDrinking() { return this.osmKey === 'amenity' && ['bar', 'biergarten', 'cafe', 'fast_food', 'food_court', 'restaurant', 'pub'].indexOf(this.osmValue) !== -1; } get level() { return this.osmTags?.level; } get floor() { return this.osmTags?.['addr:floor'] ?? this.osmTags?.['level:ref']; } toJSON() { let boundingBox = null; if (this.boundingBox) { boundingBox = { top: this.boundingBox.top, bottom: this.boundingBox.bottom, left: this.boundingBox.left, right: this.boundingBox.right }; } let location = { latitude: this.location.latitude, longitude: this.location.longitude, altitude: this.location.altitude > -1000000 ? this.location.altitude : undefined, accuracy: this.location.accuracy >= 0 ? this.location.accuracy : undefined, }; return { ...this._originalJson, osmId: this._osmId, osmType: this._osmType, osmKey: this._osmKey, osmValue: this._osmValue, osmTags: this._osmTags, placeType: this._placeType, name: this._name, description: this._description, source: this._source, nativeName: this._nativeName, boundingBox, location: location, streetAddress: this._streetAddress, street: this._street, building: this._building, postalCode: this._postalCode, area: this._area, town: this._town, state: this._state, county: this._county, country: this._country, countryCode: this._countryCode, continent: this._continent }; } match(searchString) { if (searchString.length === 0) return true; searchString = Utils.normalizeString(searchString); if (searchString === null) return false; let name = this.name; if (!name) return false; name = Utils.normalizeString(name); if (name === null) return false; /* the search method takes a regex, make sure we have a valid one */ try { return name.toLowerCase().search(searchString.toLowerCase()) !== -1; } catch(e) { /* not valid regex */ return false; } } static fromJSON(obj) { let props = { }; for (let key in obj) { let prop = obj[key]; switch(key) { case 'location': props.location = new Location(prop); break; case 'boundingBox': if (prop) props.boundingBox = new GeocodeGlib.BoundingBox(prop); break; default: if (prop !== null && prop !== undefined) props[key] = prop; break; } } props.originalJson = obj; return new Place(props); } static validateCoordinates(lat, lon) { return lat <= 90 && lat >= -90 && lon <= 180 && lon >= -180; } static parseDecimalCoordinates(text) { let match = text.match(DECIMAL_COORDINATES_REGEX); if (match) { let latitude = parseFloat(match[1]); let longitude = parseFloat(match[2]); return [latitude, longitude]; } else { return null; } } static parseDmsCoordinates(text) { let match = text.match(DMS_COORDINATES_REGEX); if (match) { let degrees = parseFloat(match[1]); let minutes = parseFloat(match[2]); let seconds = parseFloat(match[3]); let latitude = degrees + minutes / 60 + seconds / 3600; if (match[4].toUpperCase() === "S") latitude *= -1; degrees = parseFloat(match[5]); minutes = parseFloat(match[6]); seconds = parseFloat(match[7]); let longitude = degrees + minutes / 60 + seconds / 3600; if (match[8].toUpperCase() === "W") longitude *= -1; return [latitude, longitude]; } else { return null; } }; static parseCoordinates(text) { let coords = Place.parseDecimalCoordinates(text) || Place.parseDmsCoordinates(text); if (coords && Place.validateCoordinates(coords[0], coords[1])) { return new Location({ latitude: coords[0], longitude: coords[1] }); } else { return null; } } static parseHttpURL(text, callback) { _parseHttpURL(text, callback); } } GObject.registerClass({ Properties: { 'location': GObject.ParamSpec.object('location', 'location', 'The location of the place', GObject.ParamFlags.READABLE | GObject.ParamFlags.WRITABLE, GeocodeGlib.Location) }}, Place); let overpass = null; /* we can't import Application before the Place class has been defined * since it's used via PlaceStore */ import {Application} from './application.js'; function _parseHttpURL(text, callback) { let [type, id] = URIS.parseAsObjectURL(text); if (type && id) { let storedPlace = Application.placeStore.getByOsmId(Utils.osmTypeFromString(type), id); if (storedPlace) { callback(storedPlace.place, null); return; } if (overpass === null) overpass = new Overpass(); Application.application.mark_busy(); overpass.fetchPlace(type, id, (place) => { Application.application.unmark_busy(); if (place) callback(place, null); else callback(null, _("Place not found in OpenStreetMap")); }); } else { let [lat, lon, zoom] = URIS.parseAsCoordinateURL(text); if (lat && lon) { if (!Place.validateCoordinates(lat, lon)) { callback(null, _("Coordinates in URL are not valid")); } else { let location = new Location({ latitude: lat, longitude: lon }); let place = zoom ? new Place({ location: location, initialZoom: zoom }) : new Place({ location: location }); callback(place, null); } } else { callback(null, _("URL is not supported")); } } } 0707010000024C000081A4000000000000000000000001664134090000164C000000000000000000000000000000000000002100000000gnome-maps-46.11/src/placeBar.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2020 James Westman * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: James Westman */ import GObject from 'gi://GObject'; import Gtk from 'gi://Gtk'; import {Application} from './application.js'; import {PlaceButtons} from './placeButtons.js'; import {PlaceDialog} from './placeDialog.js'; import {PlaceFormatter} from './placeFormatter.js'; import {PlaceView} from './placeView.js'; import * as Utils from './utils.js'; import { Place } from './place.js'; export class PlaceBar extends Gtk.Revealer { constructor({mapView, mainWindow, ...params}) { super(params); this._mapView = mapView; this._mainWindow = mainWindow; this._buttons = new PlaceButtons({ mapView: this._mapView }); this._buttons.initSendToButton(this._altSendToButton); this._buttons.connect('place-edited', this._onPlaceEdited.bind(this)); this._box.append(this._buttons); this._click = new Gtk.GestureClick(); this._box.add_controller(this._click); this._click.connect('released', this._onBoxClicked.bind(this)); Application.application.connect('notify::adaptive-mode', this._updateVisibility.bind(this)); this.connect('notify::place', this._updatePlace.bind(this)); this._mapClick = new Gtk.GestureClick(); this._mapView.add_controller(this._mapClick); let lat, lon; this._mapClick.connect('pressed', () => { lat = this._mapView.map.viewport.latitude; lon = this._mapView.map.viewport.longitude; }); this._mapClick.connect('released', () => { const lat2 = this._mapView.map.viewport.latitude; const lon2 = this._mapView.map.viewport.longitude; /* Hide the place bar if the user clicks the map, but not if they pan. */ if (Math.abs(lat - lat2) < 0.00001 && Math.abs(lon - lon2) < 0.00001) { Application.application.selected_place = null; this.reveal_child = false; } }); } _updatePlace() { this._updateVisibility(); if (this._dialog) { this._dialog.destroy(); delete this._dialog; } if (!this.place) { return; } /* set a formatted title when relevant for the place * e.g. not for pure coordinate-based places (geo: URIs for example) * which are not stored in the place store */ if (this.place.store) { let formatter = new PlaceFormatter(this.place); this._title.label = formatter.title; } else if (this.place.isCurrentLocation) { this._title.label = _('Current Location'); } else { this._title.label = ''; } this._buttons.place = this.place; this._altSendToButton.visible = this.place.isCurrentLocation; this._buttons.visible = !this.place.isCurrentLocation; } _updateVisibility() { if (Application.application.adaptive_mode) { this.reveal_child = (this.place != null); } else { this.reveal_child = false; } } _onBoxClicked() { if (this.place.isCurrentLocation) { if (this._currentLocationView) { this._box.remove(this._currentLocationView); delete this._currentLocationView; } else { this._currentLocationView = new PlaceView({ place: this.place, mapView: this._mapView, inlineMode: true, visible: true }); this._box.append(this._currentLocationView); } } else { this._dialog = new PlaceDialog ({ transient_for: this._mainWindow, modal: true, mapView: this._mapView, place: this.place }); this._dialog.connect('response', () => { this._dialog.destroy(); delete this._dialog; }); this._dialog.show(); } } _onPlaceEdited() { _updatePlace(); } } GObject.registerClass({ Template: 'resource:///org/gnome/Maps/ui/place-bar.ui', InternalChildren: [ 'altSendToButton', 'box', 'title' ], Properties: { 'place': GObject.ParamSpec.object('place', 'Place', 'The place to show information about', GObject.ParamFlags.READABLE | GObject.ParamFlags.WRITABLE, Place) }, }, PlaceBar); 0707010000024D000081A400000000000000000000000166413409000019A5000000000000000000000000000000000000002500000000gnome-maps-46.11/src/placeButtons.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2020 James Westman * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: James Westman */ import GObject from 'gi://GObject'; import Gtk from 'gi://Gtk'; import {Application} from './application.js'; import {OSMAccountDialog} from './osmAccountDialog.js'; import {OSMEditDialog} from './osmEditDialog.js'; import {PlaceStore} from './placeStore.js'; import {SendToDialog} from './sendToDialog.js'; export class PlaceButtons extends Gtk.Box { constructor({place, mapView, ...params}) { super(params); this._mapView = mapView; this._initSignals(); if (place) { this.place = place; } } get place() { return this._place; } set place(newPlace) { this._place = newPlace; /* Use the PlaceStore's version of a place, if available. */ this._place = Application.placeStore.get(newPlace) ?? newPlace; this._updateFavoriteButton(!!this._place.store); this._editButton.visible = !!this._place.osmId; this._routeButton.visible = !this._place.isCurrentLocation; } initSendToButton(button) { button.connect('clicked', () => { let dialog = new SendToDialog({ transient_for: this.get_root(), modal: true, mapView: this._mapView, place: this._place }); dialog.connect('response', () => { dialog.destroy(); this._popup(); }); /* on GTK 4 the popover gets overlayead over the dialog, * so close the popover when not in adaptive mode */ this._popdown(); dialog.show(); }); } _initSignals() { let placeStore = Application.placeStore; let query = Application.routeQuery; this._favoriteButton.connect('clicked', () => { let placeItem = placeStore.getPlaceItem(this._place); if (placeItem && placeItem.isFavorite) { this._favoriteButton.icon_name = 'non-starred-symbolic'; placeItem.isFavorite = false; } else { if (!placeItem) { placeItem = placeStore.addPlace(this._place); } placeItem.isFavorite = true; this._favoriteButton.icon_name = 'starred-symbolic'; } }); this._routeButton.connect('clicked', () => { let from = query.points[0]; let to = query.points[query.points.length - 1]; query.freeze_notify(); query.reset(); Application.routingDelegator.reset(); if (Application.geoclue.place) from.place = Application.geoclue.place; to.place = this._place; Application.application.selected_place = null; query.thaw_notify(); }); this._editButton.connect('clicked', this._onEditClicked.bind(this)); this.initSendToButton(this._sendToButton); } _updateFavoriteButton(visible) { this._favoriteButton.visible = visible; const place = Application.placeStore.getPlaceItem(this._place); this._favoriteButton.icon_name = place?.isFavorite ? 'starred-symbolic' : 'non-starred-symbolic'; } _onEditClicked() { let osmEdit = Application.osmEdit; /* if the user is not already signed in, show the account dialog */ if (!osmEdit.isSignedIn) { let dialog = osmEdit.createAccountDialog(this.get_root(), true); /* on GTK 4 the popover gets overlayead over the dialog, * so close the popover when not in adaptive mode */ this._popdown(); dialog.show(); dialog.connect('response', (dialog, response) => { dialog.destroy(); if (osmEdit.isSignedIn) this._edit(); else this._popup(); }); return; } this._edit(); } // popdown the parent popove(when not in adaptive mode) _popdown() { if (!Application.application.adaptive_mode) this.get_ancestor(Gtk.Popover).popdown(); } _popup() { if (!Application.application.adaptive_mode) this.get_ancestor(Gtk.Popover).popup(); } _edit() { let osmEdit = Application.osmEdit; let dialog = osmEdit.createEditDialog(this.get_root(), this._place); /* on GTK 4 the popover gets overlayead over the dialog, * so close the popover when not in adaptive mode */ this._popdown(); dialog.show(); dialog.connect('response', (dialog, response) => { dialog.destroy(); switch (response) { case OSMEditDialog.Response.UPLOADED: // update place this._place.osmTags = osmEdit.object.get_tags(); Application.placeStore.addPlace(this._place); // refresh place view this.emit('place-edited'); break; default: break; } this._popup(); }); } } GObject.registerClass({ Template: 'resource:///org/gnome/Maps/ui/place-buttons.ui', InternalChildren: [ 'routeButton', 'sendToButton', 'favoriteButton', 'editButton' ], Signals: { /* Emitted when the Edit dialog is closed, because the place details might have changed and the parent PlaceBar/PlaceView needs refreshing */ 'place-edited': {} } }, PlaceButtons); 0707010000024E000081A400000000000000000000000166413409000007FA000000000000000000000000000000000000002400000000gnome-maps-46.11/src/placeDialog.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2020 James Westman * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: James Westman */ import GObject from 'gi://GObject'; import Gtk from 'gi://Gtk'; import {PlaceFormatter} from './placeFormatter.js'; import {PlaceView} from './placeView.js'; export class PlaceDialog extends Gtk.Dialog { constructor({place, mapView, ...params}) { super({...params, use_header_bar: true}); if (this.transient_for.maximized) { this.maximize(); } else { let {x, y, width, height} = this.transient_for.get_allocation(); // Don't let the dialog get too wide if (width > 400) { width = 400 - 36; height -= 36; } this.set_default_size(width, height); } this._placeView = new PlaceView({ place, mapView, valign: Gtk.Align.START, visible: true }); this._scroll.child = this._placeView; let formatter = new PlaceFormatter(place); this.title = formatter.title; } } GObject.registerClass({ Template: 'resource:///org/gnome/Maps/ui/place-dialog.ui', InternalChildren: [ 'scroll' ] }, PlaceDialog); 0707010000024F000081A40000000000000000000000016641340900003600000000000000000000000000000000000000002300000000gnome-maps-46.11/src/placeEntry.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2013,2014 Jonas Danielsson, Mattias Bengtsson. * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Jonas Danielsson * Mattias Bengtsson */ import gettext from 'gettext'; import Gdk from 'gi://Gdk'; import GObject from 'gi://GObject'; import GeocodeGlib from 'gi://GeocodeGlib'; import Gio from 'gi://Gio'; import Gtk from 'gi://Gtk'; import {Application} from './application.js'; import * as GeocodeFactory from './geocode.js'; import {Place} from './place.js'; import {PlaceStore} from './placeStore.js'; import {PlacePopover} from './placePopover.js'; import * as URIS from './uris.js'; import { StoredRoute } from './storedRoute.js'; const _ = gettext.gettext; // minimum number of characters to start completion const MIN_CHARS_COMPLETION = 3; // pattern matching CJK ideographic characters const IDEOGRAPH_PATTERN = /[\u3300-\u9fff]/ export class PlaceEntry extends Gtk.SearchEntry { set place(p) { if (!this._place && !p) return; /* if this entry belongs to a routing query entry, don't notify when * setting the same place, otherwise it will trigger twice when * initiating from the context menu */ if (!this._matchRoute && this._place && p && this._locEquals(this._place, p)) return; if (p) { if (p.name) this._placeText = p.name; else this._placeText = '%.5f, %.5f'.format(p.location.latitude, p.location.longitude); } else { this._placeText = ''; } if (this.text !== this._placeText) this._setTextWithoutTriggerSearch(this._placeText); this._place = p; this.notify('place'); } get place() { return this._place; } get popover() { return this._popover; } get mapView() { return this._mapView; } constructor({mapView, maxChars, matchRoute, hasPoiBrowser = false, popoverParent, ...params}) { super(params); this._mapView = mapView; this._matchRoute = matchRoute ?? false; this._filter = new Gtk.FilterListModel({ model: Application.placeStore, filter: Gtk.CustomFilter.new(this._completionVisibleFunc.bind(this)), }); this._keyController = new Gtk.EventControllerKey(); this._keyController.connect('key-pressed', this._onKeyPressed.bind(this)); this.add_controller(this._keyController); this.connect('activate', this._onActivate.bind(this)); this._popover = this._createPopover(maxChars, hasPoiBrowser, popoverParent ?? this); this.connect('search-changed', this._onSearchChanged.bind(this)); this._cache = {}; // clear cache when view moves, as result are location-dependent this._mapView.map.viewport.connect('notify::latitude', () => this._cache = {}); // clear cache when zoom level changes, to allow limiting location bias this._mapView.map.viewport.connect('notify::zoom-level', () => this._cache = {}); } _setTextWithoutTriggerSearch(text) { this._setText = text; this.text = text; } _onSearchChanged() { if (this._parse()) return; // wait for an ongoing search if (this._cancellable) return; // don't trigger a search when setting explicit text (such as reordering points) if (this.text === this._setText) return; /* start search if more than the threshold number of characters have * been entered, or if the first character is in the ideographic CJK * block, as for these, shorter strings could be meaningful */ if ((this.text.length >= MIN_CHARS_COMPLETION || (this.text.length > 0 && this.text[0].match(IDEOGRAPH_PATTERN))) && this.text !== this._placeText) { this._handleSearchInput(); } else { /* if the popover is showing the POI browser, don't hide it, * this prevents the popover closing and popping up again if * the user starts typing to do a free-text search */ if (!this._popover.isShowingPoiBrowser) this._popover.popdown(); this.grab_focus(); if (this.text.length === 0) this.place = null; this._previousSearch = null; } } _handleSearchInput() { let cachedResults = this._cache[this.text]; if (cachedResults) { this.updateResults(cachedResults, this.text, true); } else { // if no previous search has been performed, show spinner if (!this._previousSearch || this._previousSearch.length < MIN_CHARS_COMPLETION || this._placeText) { this._popover.showSpinner(); } this._placeText = ''; this._doSearch(); } } _locEquals(placeA, placeB) { if (!placeA.location || !placeB.location) return false; return (placeA.location.latitude === placeB.location.latitude && placeA.location.longitude === placeB.location.longitude); } _createPopover(maxChars, hasPoiBrowser, popoverParent) { let popover = new PlacePopover({ entry: this, maxChars: maxChars, hasPoiBrowser: hasPoiBrowser }); popover.set_parent(popoverParent); this.set_key_capture_widget(popover); popover.connect('selected', (widget, place) => { this.place = place; popover.popdown(); }); return popover; } _onKeyPressed(controller, keyval, keycode, state) { if (keyval === Gdk.KEY_Escape) { this._popover.popdown(); this._popover.list.unselect_all(); return true; } else if (keyval === Gdk.KEY_KP_Up || keyval === Gdk.KEY_Up || keyval === Gdk.KEY_KP_Down || keyval === Gdk.KEY_Down) { let length = this._popover.numResults; let direction = (keyval === Gdk.KEY_KP_Up || keyval === Gdk.KEY_Up) ? -1 : 1; /* if the popover is not already showing and there are previous * results when pressing arrow down, show the results */ if (direction === 1 && !this._popover.visible && length > 0) { this._popover.popup(); return true; } this._popover.handleArrowKey(direction); return true; } return false; } _onActivate() { /* if the search result is short enough and doesn't start with a CJK * ideograph, it wouldn't already have been triggered in the "search * changed" handler. * In case the popover isn't already showing (e.g. showing POI search) * trigger a search, allowing explicitly searching for short strings */ if (!this._popover.visible && this.text.length > 0 && this.text.length < MIN_CHARS_COMPLETION && !(this.text.length > 0 && this.text[0].match(IDEOGRAPH_PATTERN))) { this._handleSearchInput(); } else { this._popover.handleActivate(); } } _completionVisibleFunc(placeItem) { if (!(placeItem.place instanceof StoredRoute) || (!this._matchRoute && placeItem.place instanceof StoredRoute)) return false; if (placeItem.place !== null) return placeItem.place.match(this.text); else return false; } /** * Returns true if two locations are equal when rounded to displayes * coordinate precision */ _roundedLocEquals(locA, locB) { return '%.5f, %.5f'.format(locA.latitude, locA.longitude) === '%.5f, %.5f'.format(locB.latitude, locB.longitude) } _parse() { let parsed = false; if (this.text.startsWith('geo:')) { let location = new GeocodeGlib.Location(); try { location.set_from_uri(this.text); this.place = new Place({ location: location }); } catch(e) { this.root.showToast(_("Failed to parse Geo URI")); } parsed = true; } if (this.text.startsWith('maps:')) { let query = URIS.parseMapsURI(this.text); if (query) { this.text = query; } else { this.root.showToast(_("Failed to parse Maps URI")); } parsed = true; } let parsedLocation = Place.parseCoordinates(this.text); if (parsedLocation) { /* if the place was a parsed OSM coordinate URL, it will have * gotten re-written as bare coordinates and trigger a search-changed, * in this case don't re-set the place, as it will loose the zoom * level from the URL if set */ if (!this.place || !this._roundedLocEquals(parsedLocation, this.place.location)) this.place = new Place({ location: parsedLocation }); parsed = true; } if (this.text.startsWith('http://') || this.text.startsWith('https://')) { if (this._cancellable) this._cancellable.cancel(); this._cancellable = null; Place.parseHttpURL(this.text, (place, error) => { if (place) this.place = place; else this.root.showToast(error); }); /* don't cancel ongoing search, as we have started an async * operation looking up the OSM object */ return true; } if (parsed && this._cancellable) this._cancellable.cancel(); return parsed; } _doSearch() { if (this._cancellable) this._cancellable.cancel(); this._cancellable = new Gio.Cancellable(); this._previousSearch = this.text; GeocodeFactory.getGeocoder().search(this.text, this._mapView.map.viewport.latitude, this._mapView.map.viewport.longitude, this._cancellable, (places, error) => { this._cancellable = null; if (error) { this.place = null; this._popover.showError(); } else { this.updateResults(places, this.text, true); // cache results for later this._cache[this._previousSearch] = places; } // if search input has been updated, trigger a refresh if (this.text !== this._previousSearch) this._onSearchChanged(); }); } /** * Update results popover * @param {Place[]} places array of places from search result * @param {string} searchText original search string to highlight in results * @param {boolean} includeContactsAndRoute whether to include contacts and recent routes * among results */ updateResults(places, searchText, includeContactsAndRoutes) { if (!places) { this.place = null; this._popover.showNoResult(); return; } let completedPlaces = []; if (includeContactsAndRoutes) { this._filter.filter.changed(Gtk.FilterChange.DIFFERENT); for (let i = 0; i < this._filter.n_items; i++) { const placeItem = this._filter.get_item(i); completedPlaces.push(placeItem.place); } } completedPlaces = completedPlaces.concat(places); this._popover.updateResult(completedPlaces, searchText); this._popover.showResult(); } browsePois() { this._popover.showPoiMainCategories(); /* clear text entry incase it has a previous selected place * highlighted to avoid confusion, as this text is not taken into * account when searching for POIs */ this.text = ''; this.grab_focus(); } } GObject.registerClass({ Properties: { 'place': GObject.ParamSpec.object('place', 'Place', 'The selected place', GObject.ParamFlags.READABLE | GObject.ParamFlags.WRITABLE, Place) } }, PlaceEntry); 07070100000250000081A40000000000000000000000016641340900000D85000000000000000000000000000000000000002700000000gnome-maps-46.11/src/placeFormatter.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2014 Damián Nohales * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Damián Nohales */ import GeocodeGlib from 'gi://GeocodeGlib'; import {StoredRoute} from './storedRoute.js'; import { lookupType } from './osmTypes.js'; export class PlaceFormatter { constructor(place) { this._place = place; this._rows = []; this._titleProperty = 'name'; this._update(); } get place() { return this._place; } get title() { let title; // For the 'name' property we split after comma to avoid // duplicating information in the title from the Geocode // display name. if (this._titleProperty === 'name') { title = this._place[this._titleProperty]?.split(',')[0]; if (!title) title = lookupType(this._place.osmKey, this._place.osmValue); } else title = this.place[this._titleProperty]; return title; } get rows() { return this._rows; } getDetailsString() { if (this._place instanceof StoredRoute) return this._place.viaString; return this.rows.map((row) => { return row.map((prop) => { return this._place[prop]; }).join(', '); }).join(', '); } _update() { switch (this._place.placeType) { case GeocodeGlib.PlaceType.COUNTRY: if (this._place.country) this._titleProperty = 'country'; this._addRow(['countryCode']); break; case GeocodeGlib.PlaceType.STATE: if (this._place.state) this._titleProperty = 'state'; break; case GeocodeGlib.PlaceType.COUNTY: if (this._place.county) this._titleProperty = 'county'; break; case GeocodeGlib.PlaceType.TOWN: if (this._place.county) this._addRow(['county']); else if (this._place.state) this._addRow(['state']); else if (this._place.area) this._addRow(['area']); break; default: if (this._place.streetAddress) this._addRow(['streetAddress']); else if (this._place.street) this._addRow(['street']); if (this._place.town !== this._place[this._titleProperty]) this._addRow(['postalCode', 'town']); break; } } _addRow(properties) { properties = properties.filter((prop) => this._place[prop] ? true : false); if (properties.length > 0) this._rows.push(properties); } }; 07070100000251000081A400000000000000000000000166413409000005B5000000000000000000000000000000000000002300000000gnome-maps-46.11/src/placeIcons.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2021 Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ import { DEFS } from "./mapStyle/defs.js"; import { Place } from "./place.js"; /** * Get place icon name suitable for a Place. * @param {Place} place A Place object * @returns {string} Icon name */ export function getIconForPlace(place) { const icon = DEFS.pois.tags[place.osmKey]?.[place.osmValue]?.[0] ?? DEFS.pois.tags[place.osmKey]?.["_"]?.[0] ?? "map-marker-symbolic"; if (icon === "@sport") { return DEFS.pois.sportIcons[place.sport] ?? DEFS.pois.sportIcons._; } if (icon === "circle-small-symbolic") { return "map-marker-symbolic"; } return icon; } 07070100000252000081A40000000000000000000000016641340900001407000000000000000000000000000000000000002500000000gnome-maps-46.11/src/placeListRow.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Jonas Danielsson */ import gettext from 'gettext'; import GLib from 'gi://GLib'; import GObject from 'gi://GObject'; import Gtk from 'gi://Gtk'; import {PlaceFormatter} from './placeFormatter.js'; import * as Utils from './utils.js'; import { Application } from './application.js'; import {lookupType} from './osmTypes.js'; const C_ = gettext.dgettext; /* * Lower threashold when only showing a "less than distance" for POIs * relative the view center */ const SHORT_DISTANCE_THREASHOLD_METRIC = 100; const SHORT_DISTANCE_THREASHOLD_IMPERIAL = 91.44; // 300 ft (300 * 12 * 0.0254 m) /* * Translators: This a format string for showing a distance to a place * is lower than a "quite short" distance. * The "less than" symbol can be substituded with an appropriate one, if * needed (e.g. using the correct direction, or alternative symbol). * The %s should be kept, and is substituted with a label representing the * short distance. The \u2009 (thin space) could also be adjusted if needed */ const SHORT_DISTANCE_FORMAT = C_("short distance format string", "< %s"); export class PlaceListRow extends Gtk.ListBoxRow { constructor({place, searchString, sizeGroup, showSecondaryIcon, ...params}) { super(params); this.update(place, searchString || ''); if (sizeGroup) sizeGroup.add_widget(this._distanceLabel); this._showSecondaryIcon = showSecondaryIcon ?? true; } /** * @param {Place} place * @param {string} searchString */ update(place, searchString) { this.place = place; const formatter = new PlaceFormatter(this.place); const title = formatter.title ?? place.streetAddress ?? lookupType(this.place.osmKey, this.place.osmValue) ?? _("Unnamed place"); const markup = GLib.markup_escape_text(title, -1); this._name.label = this._boldMatch(markup, searchString); this._details.label = GLib.markup_escape_text(formatter.getDetailsString(),-1); this._details.visible = this._details.label.length > 0; if (place.icon) this._icon.gicon = place.icon; const placeItem = Application.placeStore.getPlaceItem(place); if (placeItem && this._showSecondaryIcon) { this._typeIcon.show(); this._typeIcon.icon_name = placeItem.isFavorite ? 'starred-symbolic' : 'document-open-recent-symbolic'; } else { this._typeIcon.hide(); } /* hide distance by default so that a previous content from a POI * search doesn't keep the distance when updating with a new search * result */ this._distanceLabel.visible = false; } setDistanceFrom(location) { let distance = this.place.location.get_distance_from(location) * 1000; let label; if (Utils.getMeasurementSystem() === Utils.METRIC_SYSTEM && distance < SHORT_DISTANCE_THREASHOLD_METRIC) { let prettyDistance = Utils.prettyDistance(SHORT_DISTANCE_THREASHOLD_METRIC); label = SHORT_DISTANCE_FORMAT.format(prettyDistance); } else if (distance < SHORT_DISTANCE_THREASHOLD_IMPERIAL) { let prettyDistance = Utils.prettyDistance(SHORT_DISTANCE_THREASHOLD_IMPERIAL); label = SHORT_DISTANCE_FORMAT.format(prettyDistance); } else { label = Utils.prettyDistance(distance); } this._distanceLabel.label = label; this._distanceLabel.visible = true; } _boldMatch(title, string) { let canonicalString = Utils.normalizeString(string).toLowerCase(); let canonicalTitle = Utils.normalizeString(title).toLowerCase(); let index = canonicalTitle.indexOf(canonicalString); if (index !== -1) { let substring = title.substring(index, index + string.length); title = title.replace(substring, substring.bold()); } return title; } } GObject.registerClass({ Template: 'resource:///org/gnome/Maps/ui/place-list-row.ui', InternalChildren: [ 'icon', 'name', 'details', 'distanceLabel', 'typeIcon' ], }, PlaceListRow); 07070100000253000081A400000000000000000000000166413409000004DB000000000000000000000000000000000000002400000000gnome-maps-46.11/src/placeMarker.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2014 Damián Nohales * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Damián Nohales */ import GObject from 'gi://GObject'; import Gtk from 'gi://Gtk'; import {MapMarker} from './mapMarker.js'; export class PlaceMarker extends MapMarker { constructor(params) { super(params); this._image.icon_name = 'maps-mark-location'; this._image.icon_size = Gtk.IconSize.LARGE; } _hasBubble() { return true; } } GObject.registerClass(PlaceMarker); 07070100000254000081A40000000000000000000000016641340900002B4B000000000000000000000000000000000000002500000000gnome-maps-46.11/src/placePopover.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Jonas Danielsson */ import Geocode from 'gi://GeocodeGlib'; import Gio from 'gi://Gio'; import GObject from 'gi://GObject'; import Gtk from 'gi://Gtk'; import {Application} from './application.js'; import {Overpass} from './overpass.js'; import {PlaceListRow} from './placeListRow.js'; import {PlaceStoreItem} from './placeStore.js'; import * as PoiCategories from './poiCategories.js'; import {PoiCategoryGobackRow} from './poiCategoryGobackRow.js'; import {PoiCategoryRow} from './poiCategoryRow.js'; import {SearchPopover} from './searchPopover.js'; export class PlacePopover extends SearchPopover { constructor({maxChars, hasPoiBrowser = false, ...params}) { super(params); this._maxChars = maxChars; this.list.connect('row-activated', (list, row) => { if (row) this.emit('selected', row.place); }); if (hasPoiBrowser) { this._overpass = new Overpass(); this._createPoiCategories(); } // This silents warning at Maps exit about this widget being // visible but not mapped. this.connect('unmap', (popover) => popover.hide()); } get isShowingPoiBrowser() { return this._stack.visible_child === this._poiMainCategories || this._stack.visible_child === this._poiSubCategories; } _updateDistances() { let viewport = this._entry.mapView.map.viewport; let location = new Geocode.Location({ latitude: viewport.latitude, longitude: viewport.longitude, accuracy: 0 }); for (let row of this.list) { row.setDistanceFrom(location); } } _createPoiCategories() { let categoryStructure = PoiCategories.getCategoryStructure(); for (let mainCategory of categoryStructure) { let row = new PoiCategoryRow({ label: mainCategory.label, iconName: mainCategory.icon ?? 'map-marker-symbolic' }); this._poiMainCategoriesListBox.insert(row, -1); row.mainCategory = mainCategory; } this._poiMainCategoriesListBox.connect('row-activated', (list, row) => { let subcategoryListBox = this._createSubcategoryListBox(row.mainCategory, row); // set stack switching animation to "sliding" this._stack.transition_type = Gtk.StackTransitionType.SLIDE_LEFT; this._poiSubCategories.child = subcategoryListBox; this._stack.visible_child = this._poiSubCategories; // unselect current main category this._poiMainCategoriesListBox.unselect_all(); // grab focus on entry to enable continued keyboard navigation this.get_parent().placeEntry.grab_focus(); }); } _createSubcategoryListBox(mainCategory, row) { let listBox = new Gtk.ListBox(); // insert "go back" row let goBackRow = new PoiCategoryGobackRow(); listBox.insert(goBackRow, -1); for (let subcategory of mainCategory.subcategories) { let row = new PoiCategoryRow({ label: subcategory.label, iconName: subcategory.icon ?? 'map-marker-symbolic' }); listBox.insert(row, -1); } listBox.connect('row-activated', (list, row) => { // grab focus on entry to enable continued keyboard navigation this.get_parent().placeEntry.grab_focus(); if (row === goBackRow) { // slide back to main this._stack.transition_type = Gtk.StackTransitionType.SLIDE_RIGHT; this._stack.visible_child = this._poiMainCategories; // unselect, so the "go back" row is not highlighted when going back listBox.unselect_all(); return; } // the index of the selected category, subtract one for the "go back" let index = row.get_index() - 1; let selectedCategory = mainCategory.subcategories[index]; this.showSpinner(Gtk.StackTransitionType.SLIDE_LEFT); this._performPoiSearch(selectedCategory); }); return listBox; } _performPoiSearch(category) { let viewport = this._entry.mapView.map.viewport; this._poiSearchCancellable = new Gio.Cancellable(); this._overpass.searchPois(viewport.latitude, viewport.longitude, category, this._poiSearchCancellable, (results) => { this._poiSearchCancellable = null; if (!results) { this.showError(); } else if (results.length === 0) { this.showNoResult(); } else { this.updateResult(results, ''); this._updateDistances(); this.showResult(); this._entry.grab_focus(); } }); } _showPopover() { let {x, y, width, height} = this.get_parent().get_allocation(); // Magic number to make the alignment pixel perfect. this.width_request = width + 20; this.popup(); } handleArrowKey(direction) { let listBox = this._getCurrentListBox(); let row = listBox.get_selected_row(); let idx; let length = 0; for (let row of listBox) { length++; } if (!row) idx = (direction === 1) ? 0 : length - 1; else idx = row.get_index() + direction; let inBounds = 0 <= idx && idx < length; if (inBounds) this.selectRow(listBox, listBox.get_row_at_index(idx)); else listBox.unselect_all(); } handleActivate() { // if the popover is visible and we have a selected item, activate it let listBox = this._getCurrentListBox(); let row = listBox.get_selected_row(); if (this.visible && row) row.activate(); } _getCurrentListBox() { if (this._stack.visible_child === this._poiMainCategories) return this._poiMainCategoriesListBox; else if (this._stack.visible_child === this._poiSubCategories) return this._poiSubCategories.child; else return this.list; } showPoiMainCategories() { let firstRow = this._poiMainCategoriesListBox.get_row_at_index(0); if (this._poiSearchCancellable && !this._poiSearchCancellable.is_cancelled()) { this._poiSearchCancellable.cancel(); this._poiSearchCancellable = null; } this._stack.visible_child = this._poiMainCategories; this._poiMainCategoriesListBox.select_row(firstRow); if (!this.visible) this._showPopover(); } showSpinner(transitionType = Gtk.StackTransitionType.CROSSFADE) { this._spinner.start(); this._stack.transition_type = transitionType; this._stack.visible_child = this._spinner; /* set the transition to crossfade so the result won't come in * with a sliding animation when coming from POI browsing */ this._stack.transition_type = Gtk.StackTransitionType.CROSSFADE; if (!this.visible) this._showPopover(); this._numResults = 0; } showResult() { if (this._spinner.spinning) this._spinner.stop(); this._stack.visible_child = this._scrolledWindow; let row = this.list.get_row_at_index(0); if (row) this.list.select_row(row); if (!this.visible) this._showPopover(); } showNoResult() { if (this._spinner.spinning) this._spinner.stop(); this._stack.visible_child = this._noResultsLabel; this._numResults = 0; } showError() { if (this._spinner.spinning) this._spinner.stop(); this._stack.visible_child = this._errorLabel; this._numResults = 0; } updateResult(places, searchString) { let i = 0; places.forEach((p) => { let row = this.list.get_row_at_index(i); // update existing row, if there is one, otherwise create new if (row) row.update(p, searchString); else this._addRow(p, searchString); i++; }); this._numResults = i; // remove remaining rows let row = this.list.get_row_at_index(i); while (row) { this.list.remove(row); row = this.list.get_row_at_index(i); } } /* Selects given row and ensures that it is visible. */ selectRow(listBox, row) { listBox.select_row(row); let adjustment = listBox.get_adjustment(); if (adjustment) { let allocation = row.get_allocation(); adjustment.clamp_page(allocation.y, allocation.y + allocation.height); } } /** * @param {Place} placeItem * @param {string} searchString */ _addRow(place, searchString) { let row = new PlaceListRow({ place, searchString: searchString, sizeGroup: this._distanceLabelSizeGroup, can_focus: true }); this.list.insert(row, -1); } } GObject.registerClass({ Signals : { 'selected' : { param_types: [ GObject.TYPE_OBJECT ] } }, Template: 'resource:///org/gnome/Maps/ui/place-popover.ui', Children: [ 'list' ], InternalChildren: [ 'scrolledWindow', 'stack', 'spinner', 'noResultsLabel', 'errorLabel', 'poiMainCategories', 'poiMainCategoriesListBox', 'poiSubCategories', 'distanceLabelSizeGroup' ], }, PlacePopover); 07070100000255000081A40000000000000000000000016641340900003A9F000000000000000000000000000000000000002300000000gnome-maps-46.11/src/placeStore.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Jonas Danielsson */ import GLib from "gi://GLib"; import Gio from "gi://Gio"; import GObject from "gi://GObject"; import * as epaf from "./epaf.js"; import { JsonStorage } from "./jsonStorage.js"; import { Place } from "./place.js"; import { StoredRoute } from "./storedRoute.js"; import * as Utils from "./utils.js"; const _ONE_DAY = 1000 * 60 * 60 * 24; // one day in ms const _STALE_THRESHOLD = 7; // mark the osm information as stale after a week export class PlaceStore extends GObject.Object { /** * @param {{ * storage: JsonStorage?, * recentPlacesLimit: number?, * recentRoutesLimit: number?, * }} params */ constructor({ storage, recentPlacesLimit, recentRoutesLimit, ...params }) { super(params); /** @type {JsonStorage?} */ this._storage = storage; /** @type {number?} */ this._recentPlacesLimit = recentPlacesLimit; /** @type {number?} */ this._recentRoutesLimit = recentRoutesLimit; /** @type {string} */ this._filename = GLib.build_filenamev([ GLib.get_user_data_dir(), "gnome-maps", "places.json", ]); /** @type {PlaceStoreItem[]} */ this._places = []; /** For forward compatibility. @private */ this._originalJSON = null; /** For forward compatibility. @private */ this._unknownPlaces = []; /** For removing old places. @private */ this._nextViewOrd = 0; } vfunc_get_item(position) { return this._places[position] ?? null; } vfunc_get_item_type() { return this.item_type; } vfunc_get_n_items() { return this.n_items; } /** * @param {PlaceStoreItem} placeItem * @private */ _addPlaceItem(placeItem) { this._places.push(placeItem); this.items_changed(this._places.length - 1, 0, 1); } get item_type() { return PlaceStoreItem.$gtype; } get n_items() { return this._places.length; } *[Symbol.iterator]() { for (const item of this._places) yield item; } load() { let jsonData; try { if (this._storage) { jsonData = this._storage.load(); if (jsonData === null) return; } else { this._storage = new JsonStorage(this._filename); jsonData = this._storage.load(); if (jsonData === null) { // Try the pre-46 location const filename = GLib.build_filenamev([ GLib.get_user_data_dir(), "maps-places.json", ]); let buffer = Utils.readFile(filename); if (buffer === null) return; jsonData = JSON.parse(Utils.getBufferText(buffer)); } } if (jsonData.places === undefined) { jsonData = this._migrateFromPre46(jsonData); } this._originalJSON = jsonData; this._unknownPlaces = []; jsonData.places.forEach((stored) => { const placeItem = PlaceStoreItem.fromJSON(this, stored); if (placeItem) { this._addPlaceItem(placeItem); } else { this._unknownPlaces.push(stored); } this._nextViewOrd = Math.max(this._nextViewOrd, stored.viewOrd); }); } catch (e) { logError(e); /* Make a backup of the unreadable file, so we don't destroy user data if it's a bug */ const date = new Date(); const backupFilename = this._filename + "-" + date.toISOString().replace(/[T:]/g, "-").substring(0, 19) + ".bak"; const file = Gio.File.new_for_path(this._filename); const backupFile = Gio.File.new_for_path(backupFilename); file.copy(backupFile, Gio.FileCopyFlags.OVERWRITE, null, null); log( "The place store file could not be read. A backup has been saved to " + backupFilename + " and a new one will be created." ); } } /** @private */ _migrateFromPre46(jsonArray) { const placeItems = []; const migratePlace = (place) => { place.osmId = place.id; delete place.id; place.osmType = place.osm_type; delete place.osm_type; place.streetAddress = place.street_address; delete place.street_address; place.countryCode = place.country_code; delete place.country_code; place.boundingBox = place.bounding_box; delete place.bounding_box; place.postalCode = place.postal_code; delete place.postal_code; place.placeType = place.place_type; delete place.place_type; }; let viewOrd = 0; for (const placeItem of jsonArray) { delete placeItem.language; placeItem.updated = placeItem.added; delete placeItem.added; if (placeItem.place) { migratePlace(placeItem.place); } placeItem.viewOrd = viewOrd++; switch (placeItem.type) { case 0: /* Recent */ placeItem.place.type = PlaceStoreItem.PlaceType.PLACE; delete placeItem.type; placeItems.push(placeItem); break; case 1: /* Favorite */ placeItem.place.type = PlaceStoreItem.PlaceType.PLACE; placeItem.isFavorite = true; delete placeItem.type; placeItems.push(placeItem); break; case 2: /* We don't handle contacts anymore */ break; case 3: /* Recent route */ placeItem.place.type = PlaceStoreItem.PlaceType.ROUTE; delete placeItem.type; placeItem.place.route.path = epaf.encode( placeItem.place.route.path ); placeItem.place.places.forEach((p) => { p.type = PlaceStoreItem.PlaceType.PLACE; migratePlace(p); }); placeItems.push(placeItem); break; } } return { migration: 1, places: placeItems }; } /** * Adds a place to the store, or updates an existing place if * there is a match. * * @param {Place} place * @returns {PlaceStoreItem} */ addPlace(place) { const existing = this.getPlaceItem(place); if (existing) { existing.place = place; return existing; } const placeItem = new PlaceStoreItem(this, place); this._addPlaceItem(placeItem); this.markDirty(); return placeItem; } /** * Indicates that a place in the place store has been changed * and the store should be saved to disk. */ markDirty() { /* Remove old places */ const removeIf = (filter, limit) => { if (limit === undefined) return; const realFilter = (x) => !x.isFavorite && filter(x); const viewOrds = this._places .filter(realFilter) .map((placeItem) => placeItem.viewOrd) .sort((a, b) => a - b); if (viewOrds.length <= limit) return; const threshold = viewOrds[viewOrds.length - limit]; this._removeIf( (placeItem) => realFilter(placeItem) && placeItem.viewOrd < threshold ); }; removeIf( (placeItem) => !(placeItem.place instanceof StoredRoute), this._recentPlacesLimit ); removeIf( (placeItem) => placeItem.place instanceof StoredRoute, this._recentRoutesLimit ); this.save(); } /** * Writes the place store to disk. */ save() { let jsonArray = []; this._places.forEach((placeItem) => { if (!placeItem.place || !placeItem.place.store) return; jsonArray.push(placeItem.toJSON()); }); jsonArray = jsonArray.concat(this._unknownPlaces); const jsonObject = { ...this._originalJSON, places: jsonArray, version: pkg.version, }; this._storage.save(jsonObject); } /** * Gets the Place in the store that matches the given place, * if any. * * @param {Place} place * @returns {Place?} */ get(place) { return this.getPlaceItem(place)?.place ?? null; } /** * Searches the place store for a match for the given place * and returns its PlaceStoreItem, if any. * * In the future, this may find matches by name and location, * but for now it only matches by OSM ID. * * @param {Place} place * @returns {PlaceStoreItem?} */ getPlaceItem(place) { return ( this._places.find( (placeItem) => placeItem.place.uniqueID === place.uniqueID ) ?? null ); } /** * Finds the PlaceStoreItem for the given OSM ID, if any. * * @param {number} osmType * @param {number} osmId * @returns {PlaceStoreItem?} the place store item, or null if it isn't in the store */ getByOsmId(osmType, osmId) { return ( this._places.find( (placeItem) => placeItem.place.osmType === osmType && placeItem.place.osmId === osmId )?.place.osmType ?? null ); } /** * @param {(item: PlaceStoreItem) => boolean} evalFunc * @private */ _removeIf(evalFunc) { for (let i = 0; i < this._places.length; ) { const placeItem = this._places[i]; if (evalFunc(placeItem)) { this._places.splice(i, 1); this.items_changed(i, 1, 0); } else { i++; } } } } GObject.registerClass( { Implements: [Gio.ListModel], Properties: { "item-type": GObject.param_spec_gtype( "item-type", "", "", GObject.Object, GObject.ParamFlags.READABLE ), "n-items": GObject.ParamSpec.uint( "n-items", "", "", GObject.ParamFlags.READABLE, 0, GLib.MAXUINT32, 0 ), }, }, PlaceStore ); export class PlaceStoreItem extends GObject.Object { /** @enum {number} */ static PlaceType = { PLACE: 1, ROUTE: 2, }; /** * @param {PlaceStore} store * @param {{ * place: Place, * type: number, * updated?: Date, * viewOrd?: number, * }} params */ constructor(store, place, { isFavorite, updated, viewOrd } = {}) { super(); /** @type {PlaceStore} @private */ this._store = store; /** @type {Place} @private */ this._place = place; /** @type {boolean} @private */ this._isFavorite = isFavorite ?? false; /** @type {Date} @private */ this._updated = updated ?? new Date(); /** @type {number} @private */ this._viewOrd = viewOrd ?? store._nextViewOrd++; } isStale() { if (!(this.place instanceof StoredRoute) && !this.place.osmTags) return true; let now = new Date().getTime(); let days = Math.abs(now - this.updated.getTime()) / _ONE_DAY; return days >= _STALE_THRESHOLD; } /** @type {Place} */ get place() { return this._place; } set place(place) { this._place = place; this._updated = new Date(); this._store.markDirty(); } get isFavorite() { return this._isFavorite; } set isFavorite(isFavorite) { this._isFavorite = isFavorite; this._store.markDirty(); } /** @type {Date} */ get updated() { return this._updated; } set updated(updated) { this._updated = updated; this._store.markDirty(); } /** @type {Date} */ get viewOrd() { return this._viewOrd; } updateViewed() { this._viewOrd = this._store.nextViewOrd(); this._store.markDirty(); } toJSON() { const type = this._place instanceof StoredRoute ? PlaceStoreItem.PlaceType.ROUTE : PlaceStoreItem.PlaceType.PLACE; return { ...this._originalJSON, place: { ...this._place.toJSON(), type, }, isFavorite: this._isFavorite, updated: this._updated.getTime(), viewOrd: this._viewOrd, }; } static fromJSON(store, json) { let place; switch (json.place?.type) { case PlaceStoreItem.PlaceType.PLACE: place = Place.fromJSON(json.place); break; case PlaceStoreItem.PlaceType.ROUTE: place = StoredRoute.fromJSON(json.place); break; default: return null; } const result = new PlaceStoreItem(store, place, { isFavorite: json.isFavorite, updated: new Date(json.updated), }); result._viewOrd = json.viewOrd; result._originalJSON = json; return result; } } GObject.registerClass(PlaceStoreItem); 07070100000256000081A400000000000000000000000166413409000071CB000000000000000000000000000000000000002200000000gnome-maps-46.11/src/placeView.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2014 Damián Nohales * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Damián Nohales */ import gettext from 'gettext'; import GeocodeGlib from 'gi://GeocodeGlib'; import GLib from 'gi://GLib'; import GObject from 'gi://GObject'; import Gtk from 'gi://Gtk'; import Pango from 'gi://Pango'; import Xdp from 'gi://Xdp'; const Format = imports.format; import {Application} from './application.js'; import {Overpass} from './overpass.js'; import {Place} from './place.js'; import * as PlaceIcons from './placeIcons.js'; import {PlaceViewImage} from './placeViewImage.js'; import {PlaceButtons} from './placeButtons.js'; import {PlaceFormatter} from './placeFormatter.js'; import {PlaceStore} from './placeStore.js'; import * as Translations from './translations.js'; import * as Utils from './utils.js'; import * as Wikipedia from './wikipedia.js'; const _ = gettext.gettext; const ngettext = gettext.ngettext; // maximum dimension of thumbnails to fetch from Wikipedia const THUMBNAIL_FETCH_SIZE = 360; // Unicode left-to-right marker const LRM = '\u200E'; export class PlaceView extends Gtk.Box { constructor({place, mapView, inlineMode, ...params}) { /* inlineMode is used in PlaceBar for inline current location details. It hides the title box and decreases the start margin on the rows. */ super(params); this._place = place; this._inlineMode = !!inlineMode; let ui = Utils.getUIObject('place-view', [ 'bubble-main-box', 'bubble-spinner', 'bubble-thumbnail', 'thumbnail-separator', 'label-title', 'native-name', 'source-label', 'source-box', 'address-label', 'bubble-main-stack', 'bubble-content-area', 'place-buttons', 'send-to-button-alt', 'title-box' ]); this._title = ui.labelTitle; this._nativeName = ui.nativeName; this._sourceLabel = ui.sourceLabel; this._sourceBox = ui.sourceBox; this._thumbnail = ui.bubbleThumbnail; this._thumbnailSeparator = ui.thumbnailSeparator; this._content = ui.bubbleContentArea; this._mainStack = ui.bubbleMainStack; this._spinner = ui.bubbleSpinner; this._mainBox = ui.bubbleMainBox; this._addressLabel = ui.addressLabel; this.append(this._mainStack); let placeButtons = new PlaceButtons({ place: this._place, mapView: mapView }); placeButtons.connect('place-edited', this._onPlaceEdited.bind(this)); ui.placeButtons.append(placeButtons); if (this.place.isCurrentLocation) { /* Current Location bubbles have a slightly different layout, to avoid awkward whitespace */ /* hide the normal button area */ ui.placeButtons.visible = false; /* show the top-end-corner share button instead */ ui.sendToButtonAlt.visible = true; placeButtons.initSendToButton(ui.sendToButtonAlt); /* adjust some margins */ ui.titleBox.margin = 12; ui.titleBox.marginStart = 18; ui.titleBox.spacing = 18; } this.loading = true; this._placeDetails = new Gtk.Box({ orientation: Gtk.Orientation.VERTICAL, visible: true, hexpand: true }); this.content.attach(this._placeDetails, 0, 0, 1, 1); if (this.place.isCurrentLocation || !this.place.osmType) { this._populate(this.place); } else { let overpass = new Overpass(); let placeItem = Application.placeStore.getPlaceItem(this.place); if (placeItem !== null) { // If the place is stale, update from Overpass. if (placeItem.isStale()) { overpass.populatePlace(this.place, this._onOverpass.bind(this)); } else { this._place = placeItem.place; this._populate(this.place); } } else if (this.place.store) { /* if we got a place with already pre-filled data from * Overpass, make sure it is stored in the place store */ if (this.place.prefilled) { this._onOverpass(true); } else { overpass.populatePlace(this.place, this._onOverpass.bind(this)); } } else { this._populate(this.place); } } if (this._inlineMode) { ui.titleBox.hide(); } this.updatePlaceDetails(); this._place.connect('notify::location', () => this._updateLocation()); } get place() { return this._place; } get content() { return this._content; } get thumbnail() { return this._thumbnail.paintable; } set thumbnail(val) { if (val) { this._thumbnail.paintable = val; this._thumbnail.visible = true; this._thumbnailSeparator.visible = true; } } get loading() { return this._spinner.spinning; } set loading(val) { this._mainStack.set_visible_child(val ? this._spinner : this._mainBox); this._spinner.spinning = val; } updatePlaceDetails() { let place = this.place; let formatter = new PlaceFormatter(place); let address = formatter.rows.map((row) => { row = row.map(function(prop) { return GLib.markup_escape_text(place[prop], -1); }); return row.join(', '); }); if (address.length > 0) { this._addressLabel.label = address.join('\n'); this._addressLabel.show(); } else { this._addressLabel.hide(); } this._title.label = formatter.title; /* hide native name by default, so that it is only shown when it * should, in case it changed when re-applying changes from Overpass. * This could happen if the locale changed since last run. */ this._nativeName.visible = false; /* show native name unless it's equal to the localized name, or * if the localized name is a substring of the native name, as can * be the case in e.g. duo-lingual native names, such as is used in * Brussels of the form "French name - Dutch name" */ if (place.nativeName && !place.nativeName.includes(place.name)) { this._nativeName.label = place.nativeName; /* only show native name if there's installed fonts capable of * showing it */ if (this._nativeName.get_layout().get_unknown_glyphs_count() === 0) this._nativeName.visible = true; } if (place.source) { this._sourceLabel.label = place.source; this._sourceBox.visible = true; } else { this._sourceBox.visible = false; } } _onOverpass(success) { if (!success) return; this._populate(this.place); Application.placeStore.addPlace(this.place); } _formatWikiLink(wiki) { let lang = Wikipedia.getLanguage(wiki); let article = Wikipedia.getArticle(wiki); return `https://${lang}.wikipedia.org/wiki/${article}`; } _createContent(place) { let content = []; if (place.isCurrentLocation) { let coordinates = place.location.latitude.toFixed(5) + ', ' + place.location.longitude.toFixed(5); let accuracyDescription = Utils.getAccuracyDescription(this.place.location.accuracy); content.push({ label: _("Coordinates"), icon: 'map-marker-symbolic', info: coordinates }); content.push({ label: _("Accuracy"), icon: 'find-location-symbolic', /* Translators: %s can be "Unknown", "Exact" or "%f km" (or ft/mi/m) */ info: _("Accuracy: %s").format(accuracyDescription) }); } if (place.website) { if (Utils.isValidWebsite(place.website)) { content.push({ label: _("Website"), icon: 'web-browser-symbolic', info: GLib.markup_escape_text(place.website, -1), linkUrl: place.website }); } } if (place.phone) { /* since the phone numbers are typically always rendered * left-to-right, insert an explicit LRM char to avoid issues * with phone numbers in international format starting with a + * which is considered a "weak" character to determine Unicode * text direction */ let phone = { label: _("Phone number"), icon: 'phone-oldschool-symbolic', info: LRM + GLib.markup_escape_text(place.phone, -1) }; /* if we're running in a sandbox (Flatpak or Snap), assume * we have some app that can handle tel: URIs, as we can't * enumerate apps inside the sandbox */ if (Xdp.Portal.running_under_sandbox() || Utils.uriSchemeSupported('tel')) { /* RFC3966 only allows "-", '.", "(", and ")" as visual * separator characters in a global phone number, no space */ phone.linkUrl = `tel:${place.phone.replace(/\s+/g, '')}`; } content.push(phone); } if (place.email && Utils.isValidEmail(place.email)) { content.push({ label: _("Email"), icon: 'mail-unread-symbolic', info: GLib.markup_escape_text(place.email, -1), linkUrl: `mailto:${place.email}` }); } if (place.floor) { /* If a reference to a named floor (named or symbolic) exists * refer to it directly. */ /* Translators: * This is a reference to named building floor, using a label * or a code, as "displayed in the elevator" */ content.push({ label: _("Floor"), icon: 'steps-symbolic', info: _("Floor %s").format(place.floor) }); } else if (place.level) { /* Else if a floor level relative to ground level exists, * display it indicating the relation to ground, or when 0 that * it's ground level */ const level = parseInt(place.level); if (!isNaN(level)) { let info; if (level === 0) { info = _("At ground level"); } else if (level > 0) { const levelString = level.toLocaleString(); /* Translators: * This is a reference to a number of floors above * ground level. * The %s placeholder is the integer relative number of floors */ info = ngettext("%s floor above ground level", "%s floors above ground level", level) .format(levelString); } else { const levelString = (-level).toLocaleString(); /* Translators: * This is a reference to a number of floors below * ground level. * The %s placeholder is the integer relative number of floors */ info = ngettext("%s floor below ground level", "%s floors below ground level", -level) .format(levelString); } content.push({ label: _("Floor"), icon: 'steps-symbolic', info: info }); } } if (place.isEatingAndDrinking) { switch (place.takeaway) { case 'yes': /* Translators: * The establishment offers customers to purchase meals * (or similar) to be consumed elsewhere */ content.push({ info: _("Offers takeout"), icon: PlaceIcons.getIconForPlace(place) }); break; case 'no': /* Translators: * The establishment only offers customers to purchase * meals (or similar) to be consumed on-premise. */ content.push({ info: _("Does not offer takeout"), icon: PlaceIcons.getIconForPlace(place) }); break; case 'only': /* Translators: * The establishment only offers customers to purchase * meals (or similar) to be consumed elsewhere. E.g. * there is no seating on-premise for eating/drinking */ content.push({ info: _("Only offers takeout"), icon: PlaceIcons.getIconForPlace(place) }); break; } } if (place.openingHours) { content.push({ label: _("Opening hours"), icon: 'emoji-recent-symbolic', grid: Translations.translateOpeningHours(place.openingHours) }); } switch(place.internetAccess) { case 'yes': /* Translators: * There is public internet access but the particular kind is unknown. */ content.push({ info: _("Public internet access"), icon: 'network-wireless-signal-excellent-symbolic' }); break; case 'no': /* Translators: * no internet access is offered in a place where * someone might expect it. */ content.push({ info: _("No internet access"), icon: 'network-wireless-offline-symbolic' }); break; case 'wlan': /* Translators: * This means a WLAN Hotspot, also known as wireless, wifi or Wi-Fi. */ content.push({ info: _("Public Wi-Fi"), icon: 'network-wireless-signal-excellent-symbolic' }); break; case 'wired': /* Translators: * This means a a place where you can plug in your laptop with ethernet. */ content.push({ info: _("Wired internet access"), icon: 'network-wired-symbolic' }); break; case 'terminal': /* Translators: * Like internet cafe or library where the computer is given. */ content.push({ info: _("Computers available for use"), icon: 'computer-symbolic' }); break; case 'service': /* Translators: * This means there is personnel which helps you in case of problems. */ content.push({ info: _("Internet assistance available"), icon: 'computer-symbolic' }); break; } if (place.toilets === 'no') { content.push({ info: _("No toilets available"), icon: 'no-toilets-symbolic' }); } else if (place.toilets === 'yes') { content.push({ info: _("Toilets available"), icon: 'toilets-symbolic' }); } switch(place.wheelchair) { case 'yes': /* Translators: * This means wheelchairs have full unrestricted access. */ content.push({ info: _("Wheelchair accessible"), icon: 'wheelchair-symbolic' }); break; case 'limited': /* Translators: * This means wheelchairs have partial access (e.g some areas * can be accessed and others not, areas requiring assistance * by someone pushing up a steep gradient). */ content.push({ info: _("Limited wheelchair accessibility"), icon: 'wheelchair-limited-symbolic' }); break; case 'no': /* Translators: * This means wheelchairs have no unrestricted access * (e.g. stair only access). */ content.push({ info: _("Not wheelchair accessible"), icon: 'no-wheelchair-symbolic' }); break; case 'designated': /* Translators: * This means that the way or area is designated or purpose built * for wheelchairs (e.g. elevators designed for wheelchair access * only). This is rarely used. */ content.push({ info: _("Designated for wheelchair users"), icon: 'wheelchair-symbolic' }); break; } if (place.population) { /* TODO: this is a bit of a work-around to re-interpret the population, * stored as a string into an integer to convert back to a locale- * formatted string. Ideally it should be kept as an integer value * in the Place class. But this will also need to be handled by the * PlaceStore, possible in a backwards-compatible way */ content.push({ label: _("Population"), icon: 'system-users-symbolic', info: Utils.prettyPopulation(parseInt(place.population)) }); } /* The default value for a place's altitude is -G_MAXDOUBLE, so we can * compare to an impossibly low altitude to see if one is set */ if (place.location.altitude > -1000000000.0) { let alt = place.location.altitude; let info; if (alt > 0) { info = Utils.prettyDistance(alt, true); } else if (alt < 0) { /** * Translators: this is a label indicating an altitude below * sea level, where the %s placeholder is the altitude relative * to mean sea level in the "negative direction" */ info = _("%s below sea level"). format(Utils.prettyDistance(-alt, true)); } else { /** * Translators: this indicates a place is located at (or very * close to) mean sea level */ info = _("At sea level"); } content.push({ label: _("Altitude"), icon: 'mountain-symbolic', info: info }); } if (place.religion) { content.push({ label: _("Religion:"), info: Translations.translateReligion(place.religion) }); } return content; } _addBox() { let separator = new Gtk.Separator(); separator.get_style_context().add_class('no-margin-separator'); this._placeDetails.append(separator); let box = new Gtk.Box({ orientation: Gtk.Orientation.HORIZONTAL, marginStart: 12, marginEnd: 12, marginTop: 6, marginBottom: 6, spacing: 12 }); if (this._inlineMode) { box.marginStart = 6; } this._placeDetails.append(box); return box; } _attachContent(content) { content.forEach(({ type, label, icon, linkUrl, info, grid }) => { let box = this._addBox(); if (icon) { let widget = new Gtk.Image({ icon_name: icon, visible: true, valign: Gtk.Align.START, halign: Gtk.Align.END }); if (label) { widget.tooltip_markup = label; } box.append(widget); } else if (label) { let widget = new Gtk.Label({ label: label.italics(), visible: true, use_markup: true, yalign: 0, halign: Gtk.Align.END }); box.append(widget); } if (linkUrl) { let uri = GLib.markup_escape_text(linkUrl, -1); /* double-escape the tooltip text, as GTK treats it as markup */ let tooltipText = GLib.markup_escape_text(uri, -1); info = `${info}`; } let widget; if (grid) { widget = new Gtk.Grid({ visible: true, column_spacing: 6 }); for (let i = 0; i < grid.length; i++) { let row = grid[i]; for (let j = 0; j < row.length; j++) { let label = new Gtk.Label({ label: row[j], visible: true, xalign: 0, hexpand: false, wrap: true, halign: Gtk.Align.FILL }); if (j === 1) { /* set tabular digits for the second column to get * aligned times */ let attrList = Pango.AttrList.new(); let tnum = Pango.AttrFontFeatures.new('tnum'); attrList.insert(tnum); label.set_attributes(attrList); } widget.attach(label, j, i, 1, 1); } } } else { widget = new Gtk.Label({ label: info, visible: true, use_markup: true, max_width_chars: 30, wrap: true, xalign: 0, hexpand: true, halign: Gtk.Align.FILL }); } box.append(widget); }); } _populate(place) { // refresh place view this._clearView(); let content = this._createContent(place); this._attachContent(content); if (place.description) { const box = this._addBox(); const descriptionLabel = new Gtk.Label({ max_width_chars: 30, wrap: true, xalign: 0, hexpand: true, halign: Gtk.Align.FILL, label: place.description }); box.marginTop = 12; box.marginBottom = 18; box.append(descriptionLabel); } else if (place.wikidata && Wikipedia.isValidWikidata(place.wikidata)) { let defaultArticle = place.wiki && Wikipedia.isValidWikipedia(place.wiki) ? place.wiki : null; this._requestWikidata(place.wikidata, defaultArticle); } else if (place.wiki && Wikipedia.isValidWikipedia(place.wiki)) { this._requestWikipedia(place.wiki); } this.updatePlaceDetails(); this.loading = false; } _requestWikipedia(wiki) { Wikipedia.fetchArticleInfo(wiki, THUMBNAIL_FETCH_SIZE, this._onWikiMetadataComplete.bind(this), this._onThumbnailComplete.bind(this)); } _requestWikidata(wikidata, defaultArticle) { Wikipedia.fetchArticleInfoForWikidata( wikidata, defaultArticle, THUMBNAIL_FETCH_SIZE, this._onWikiMetadataComplete.bind(this), this._onThumbnailComplete.bind(this)); } _onThumbnailComplete(thumbnail) { this.thumbnail = thumbnail; } _onWikiMetadataComplete(wiki, metadata) { if (metadata.extract) { let box = this._addBox(); let wikipediaLabel = new Gtk.Label({ use_markup: true, max_width_chars: 30, wrap: true, xalign: 0, hexpand: true, halign: Gtk.Align.FILL }); let text = GLib.markup_escape_text(metadata.extract, -1); let link = this._formatWikiLink(wiki); /* If the text goes past some number of characters (see * wikipedia.js), it is ellipsized with '...' * GNOME HIG says to use U+2026 HORIZONTAL ELLIPSIS instead. * Also, trim whitespace. */ text = text.replace(/\s*\.\.\.\s*$/, '…'); let uri = GLib.markup_escape_text(link, -1); /* double-escape the tooltip text, as GTK treats it as markup */ let tooltipText = GLib.markup_escape_text(uri, -1); /* Translators: This is the text for the "Wikipedia" link at the end of summaries */ let label = `${text} ${ _("Wikipedia") }`; wikipediaLabel.label = label; box.marginTop = 12; box.marginBottom = 18; box.append(wikipediaLabel); } } // clear the view widgets to be able to re-populate an updated place _clearView() { let details = []; for (let detail of this._placeDetails) { details.push(detail); } for (let detail of details) { this._placeDetails.remove(detail); } } // called when the place's location changes (e.g. for the current location) _updateLocation() { this._populate(this.place); } /* called when the place is edited via the OSM edit dialog */ _onPlaceEdited() { this._populate(this._place); } } GObject.registerClass(PlaceView); 07070100000257000081A40000000000000000000000016641340900000C17000000000000000000000000000000000000002700000000gnome-maps-46.11/src/placeViewImage.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2020 James Westman * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: James Westman */ import GObject from 'gi://GObject'; import Graphene from 'gi://Graphene'; import Gtk from 'gi://Gtk'; /* The maximum aspect ratio, after which the image will be cropped vertically */ const MAX_ASPECT_RATIO = 1; export class PlaceViewImage extends Gtk.Widget { constructor(params) { super(params); this._paintable = null; } get paintable() { return this._paintable; } set paintable(val) { this._paintable = val; this.queue_resize(); } vfunc_snapshot(snapshot) { const {x, y, width, height} = this.get_allocation(); if (this._paintable === null || width === 0 || height === 0) { return; } snapshot.save(); const clipRect = new Graphene.Rect(); clipRect.init(x, y, width, height); snapshot.push_clip(clipRect); const paintableWidth = this._paintable.get_intrinsic_width(); const paintableHeight = this._paintable.get_intrinsic_height(); const scale = Math.max(width / paintableWidth, height / paintableHeight); const scaledWidth = paintableWidth * scale; const scaledHeight = paintableHeight * scale; const translate = new Graphene.Point(); translate.init((width - scaledWidth) / 2, (height - scaledHeight) / 2); snapshot.translate(translate); this._paintable.snapshot(snapshot, scaledWidth, scaledHeight); snapshot.pop(); snapshot.restore(); super.vfunc_snapshot(snapshot); } vfunc_get_request_mode() { return Gtk.SizeRequestMode.HEIGHT_FOR_WIDTH; } vfunc_measure(orientation, forSize) { if (orientation === Gtk.Orientation.VERTICAL) { if (this._paintable) { const paintableWidth = this._paintable.get_intrinsic_width(); const paintableHeight = this._paintable.get_intrinsic_height(); const height = Math.min(paintableHeight / paintableWidth, MAX_ASPECT_RATIO) * forSize; return [height, height, -1, -1]; } else { return [0, 0, -1, -1]; } } else { return [forSize, forSize, -1, -1]; } } } GObject.registerClass(PlaceViewImage); 07070100000258000081A400000000000000000000000166413409000007C4000000000000000000000000000000000000002200000000gnome-maps-46.11/src/placeZoom.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2021 Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ const TYPE_ZOOM_MAP = { amenity: { _: 17 }, highway: { bus_stop: 17, motorway_junction: 15, rest_area: 17, services: 17 }, place: { continent: 4, ocean: 4, sea: 5, country: 6, state: 7, region: 8, province: 8, county: 8, municipality: 8, island: 9, city: 10, town: 12, borough: 12, village: 15, suburb: 15, hamlet: 15, islet: 16, _: 17 }, railway: { halt: 16, station: 14, tram_stop: 16 }, shop: { _: 17 } } /** * Get default zoom level for a given place, if one is defined * otherwise return undefined, in which case the maximum zoom level * (as defined by the map source) could be used. */ export function getZoomLevelForPlace(place) { return TYPE_ZOOM_MAP?.[place.osmKey]?.[place.osmValue] ?? TYPE_ZOOM_MAP?.[place.osmKey]?.['_']; } 07070100000259000081A400000000000000000000000166413409000042EA000000000000000000000000000000000000002600000000gnome-maps-46.11/src/poiCategories.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2023 Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ import gettext from 'gettext'; const _ = gettext.gettext; /** * Base class for POI categories. */ class Category { constructor({ label, icon }) { this._label = label; this._icon = icon; } /** * Label to display for category. */ get label() { return this._label; } /** * Icon name to use to represent category. * If nullish, use a generic location icon. */ get icon() { return this._icon; } } /** * Class representing main (top-level) categories for searching for POIs. */ export class MainCategory extends Category { constructor({ subcategories, ...params} ) { super(params); this._createSubcategories(subcategories); } _createSubcategories(subcategories) { this._subcategories = []; for (let category of subcategories) { this._subcategories.push(new SubCategory(category)); } } get subcategories() { return this._subcategories; } } /** * Class representing sub-categories (search categories) for POIs. */ export class SubCategory extends Category { constructor({ keyValues, deduplicate, initialSearchRadius, ...params }) { super(params); this._keyValues = keyValues; this._deduplicate = deduplicate; this._initialSearchRadius = initialSearchRadius; } /** * Array of arrays of strings with search terms (tag=value) for Overpass * search query. Each element of the top level array are used as terms * of an or-statement in Overpass, each consisting of an expression * fulfilling each of the statements in the subarray. */ get keyValues() { return this._keyValues; } /** * Initial search radius to use when searching for POIs of the category. * If nullish, use default search radius. */ get initialSearchRadius() { return this._initialSearchRadius; } /** * If true, remove nearby search results with identical name and type. */ get deduplicate() { return !!this._deduplicate; } } /** * Array of predefined main categories, each having: * label: The label to show * icon: (optional) naming an icon, otherwise falls back to using the "map pin" icon * subcategories: being an array of definitions for subcategories under the main category. * * Each subcategory entry has: * * label: The label to show for the subcategory * icon: (optional) naming an icon, otherwise falls back to using the "map pin" icon * keyValues: search parameters for the subcategory (see SubCategory::keyValues above) * deduplicate: (optional) boolean, if true, nearby duplicates (using same name, or no name) * will be removed (useful for things like post boxes that can be * clustered). * initialSearchRadius: (optional) initial search radius used for the Overpass * query, if not set use default 1000 m. If not enough * results where found, a second search with this radius * 10 * is performed. */ const POI_CATEGORIES = [ { label: _("Amenities"), subcategories: [ { label: _("ATMs"), icon: 'coin-symbolic', keyValues: [['amenity=atm']], deduplicate: true }, { label: _("Post Boxes"), icon: 'post-box-symbolic', keyValues: [['amenity=post_box']], deduplicate: true }, { label: _("Post Offices"), icon: 'post-box-symbolic', keyValues: [['amenity=post_office']], initialSearchRadius: 3000 }, { label: _("Police"), icon: 'police-badge2-symbolic', keyValues: [['amenity=police']], initialSearchRadius: 10000 }, { label: _("Libraries"), icon: 'open-book-symbolic', keyValues: [['amenity=library']], initialSearchRadius: 3000 }, { label: _("Pharmacies"), icon: 'pharmacy-symbolic', keyValues: [['amenity=pharmacy']], initialSearchRadius: 3000 }, { label: _("Recycling"), icon: 'recycling-bin-symbolic', keyValues: [['amenity=recycling']] }, { label: _("Toilets"), icon: 'toilets-symbolic', keyValues: [['amenity=toilets']], deduplicate: true }, { label: _("Wheelchair-accessible Toilets"), icon: 'wheelchair-symbolic', keyValues: [['amenity=toilets', 'wheelchair=yes']], deduplicate: true }, { label: _("Baggage Lockers"), icon: 'briefcase-symbolic', keyValues: [['amenity=baggage_locker']], deduplicate: true } ] }, { label: _("Eating & Drinking"), icon: 'restaurant-symbolic', subcategories: [ { label: _("Restaurants"), icon: 'restaurant-symbolic', keyValues: [['amenity=restaurant']] }, { label: _("Fast Food"), icon: 'fast-food-symbolic', keyValues: [['amenity=fast_food']] }, { label: _("Food Courts"), icon: 'restaurant-symbolic', keyValues: [['amenity=food_court']] }, { label: _("Pubs"), icon: 'pub-symbolic', keyValues: [['amenity=pub'], ['amenity=biergarten']] }, { label: _("Bars"), icon: 'bar-symbolic', keyValues: [['amenity=bar']] }, { label: _("Cafes"), icon: 'cafe-symbolic', keyValues: [['amenity=cafe']] }, { label: _("Ice Cream"), icon: 'icecream-cone-symbolic', keyValues: [['amenity=ice_cream']] }, { label: _("Food, Snacks, and Beverage Machines"), keyValues: [['amenity=vending_machine', '"vending"~"food|sweets|drinks|coffee"']], deduplicate: true } ] }, { label: _("Shopping"), icon: 'shop-symbolic', subcategories: [ { label: _("Supermarkets"), icon: 'shopping-cart-symbolic', keyValues: [['shop=supermarket']], initialSearchRadius: 3000 }, { label: _("Convenience Stores"), icon: 'shopping-cart-symbolic', keyValues: [['shop=convenience']] }, { label: _("Shopping Malls"), icon: 'shopping-cart-symbolic', keyValues: [['shop=mall']], initialSearchRadius: 3000 }, { label: _("Clothes"), icon: 'clothing-store-symbolic', keyValues: [['shop=clothes']], initialSearchRadius: 3000 }, { label: _("Shoes"), keyValues: [['shop=shoes']], initialSearchRadius: 3000 }, { label: _("Electronics"), icon: 'smartphone-symbolic', keyValues: [['shop=electronics']], initialSearchRadius: 3000 }, { label: _("Alcohol"), icon: 'drinks-symbolic', keyValues: [['shop=alcohol']], initialSearchRadius: 3000 }, { label: _("Bakeries"), icon: 'bread-symbolic', keyValues: [['shop=bakery']], initialSearchRadius: 3000 }, { label: _("Flowers"), keyValues: [['shop=florist']], initialSearchRadius: 3000 } ] }, { label: _("Transportation"), icon: 'route-button-symbolic', subcategories: [ { label: _("Bus & Tram Stops"), icon: 'route-transit-bus-symbolic', keyValues: [['highway=bus_stop'], ['railway=tram_stop'], ['railway=station', 'station=light_rail']], deduplicate: true }, { label: _("Train & Subway Stations"), icon: 'route-transit-train-symbolic', keyValues: [['railway=station', 'station!=light_rail'], ['railway=halt']], deduplicate: true, initialSearchRadius: 5000 }, { label: _("Tickets"), icon: 'ticket-symbolic', keyValues: [['shop=ticket'], ['amenity=vending_machine', 'vending=public_transport_tickets']], deduplicate: true }, { label: _("Parking"), icon: 'parking-sign-symbolic', keyValues: [['amenity=parking', 'access!=private']] }, { label: _("Bicycle Parking"), icon: 'bicycle-parking-symbolic', keyValues: [['amenity=bicycle_parking']] }, { label: _("Bicycle Rental"), icon: 'route-bike-symbolic', keyValues: [['amenity=bicycle_rental']] }, { label: _("Car Rental"), icon: 'route-car-symbolic', keyValues: [['amenity=car_rental']] }, { label: _("Fuel"), icon: 'fuel-symbolic', keyValues: [['amenity=fuel']] }, { label: _("EV Charging"), icon: 'electric-car-symbolic', keyValues: [['amenity=charging_station']], deduplicate: true } ] }, { label: _("Healthcare"), icon: 'hospital-sign-symbolic', subcategories: [ { label: _("Clinics"), icon: 'doctor-symbolic', keyValues: [['amenity=clinic']], initialSearchRadius: 3000 }, { label: _("Hospitals"), icon: 'hospital-symbolic', keyValues: [['amenity=hospital']], initialSearchRadius: 10000 }, { label: _("Dentists"), icon: 'dentist-symbolic', keyValues: [['amenity=dentist']], initialSearchRadius: 3000 } ] }, { label: _("Accommodation"), icon: 'bed-symbolic', subcategories: [ { label: _("Hotels"), icon: 'bed-symbolic', keyValues: [['tourism=hotel']] }, { label: _("Hostels"), icon: 'bed-symbolic', keyValues: [['tourism=hostel']] }, { label: _("Bed & Breakfast"), icon: 'bed-symbolic', keyValues: [['tourism=guest_house']] }, { label: _("Campings"), keyValues: [['tourism=camp_site']], initialSearchRadius: 10000 } ] }, { label: _("Recreation"), icon: 'sentiment-satisfied-symbolic', subcategories: [ { label: _("Parks"), icon: 'tree-symbolic', keyValues: [['leisure=park']] }, { label: _("Playgrounds"), keyValues: [['leisure=playground']] }, { label: _("Beaches"), keyValues: [['natural=beach']], initialSearchRadius: 3000 }, { label: _("Nature Reserves"), icon: 'tree-symbolic', keyValues: [['leisure=nature_reserve']], initialSearchRadius: 10000 }, { label: _("Theme Parks"), keyValues: [['tourism=theme_park']], intialSearchRadius: 10000 }, { label: _("Theaters"), icon: 'theater-symbolic', keyValues: [['amenity=theatre']], initialSearchRadius: 3000 }, { label: _("Movie Theaters"), icon: 'video-camera-symbolic', keyValues: [['amenity=cinema']], initialSearchRadius: 3000 }, { label: _("Night Clubs"), icon: 'music-note-symbolic', keyValues: [['amenity=nightclub']] } ] }, { label: _("Tourism"), icon: 'photo-camera-symbolic', subcategories: [ { label: _("Museums"), icon: 'museum-symbolic', keyValues: [['tourism=museum']], initialSearchRadius: 3000 }, { label: _("Attractions"), icon: 'photo-camera-symbolic', keyValues: [['tourism=attraction']] }, { label: _("Artworks"), icon: 'photo-camera-symbolic', keyValues: [['tourism=artwork']] }, { label: _("Tourist Information"), icon: 'explore-symbolic', keyValues: [['tourism=information']] } ] }, { label: _("Sports"), icon: 'baseball-symbolic', subcategories: [ { label: _("Gyms"), icon: 'weight2-symbolic', keyValues: [['leisure=fitness_centre']], initialSearchRadius: 3000 }, { label: _("Outdoor Gyms"), icon: 'weight2-symbolic', keyValues: [['leisure=fitness_station']], initialSearchRadius: 3000 }, { label: _("Golf Courses"), icon: 'golf-symbolic', keyValues: [['leisure=golf_course']], initialSearchRadius: 10000 } ] } ]; export function getCategoryStructure() { let result = []; for (let mainCategory of POI_CATEGORIES) { result.push(new MainCategory(mainCategory)); } return result; } 0707010000025A000081A4000000000000000000000001664134090000043D000000000000000000000000000000000000002D00000000gnome-maps-46.11/src/poiCategoryGobackRow.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2023 Marcus Lundblad. * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ import GObject from 'gi://GObject'; import Gtk from 'gi://Gtk'; export class PoiCategoryGobackRow extends Gtk.ListBoxRow { }; GObject.registerClass({ Template: 'resource:///org/gnome/Maps/ui/poi-category-goback-row.ui', }, PoiCategoryGobackRow); 0707010000025B000081A4000000000000000000000001664134090000052A000000000000000000000000000000000000002700000000gnome-maps-46.11/src/poiCategoryRow.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2023 Marcus Lundblad. * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ import GObject from 'gi://GObject'; import Gtk from 'gi://Gtk'; import gettext from 'gettext'; export class PoiCategoryRow extends Gtk.ListBoxRow { constructor({ iconName, label, ...params }) { super(params); this._icon.icon_name = iconName; this._label.label = gettext.gettext(label); } }; GObject.registerClass({ Template: 'resource:///org/gnome/Maps/ui/poi-category-row.ui', InternalChildren: [ 'icon', 'label' ], }, PoiCategoryRow); 0707010000025C000081A40000000000000000000000016641340900003894000000000000000000000000000000000000002400000000gnome-maps-46.11/src/printLayout.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Amisha Singla */ import Cairo from 'cairo'; import Gdk from 'gi://Gdk'; import GObject from 'gi://GObject'; import Graphene from 'gi://Graphene'; import Gtk from 'gi://Gtk'; import Pango from 'gi://Pango'; import PangoCairo from 'gi://PangoCairo'; import Shumate from 'gi://Shumate'; import {Application} from './application.js'; import {BoundingBox} from './boundingBox.js'; import * as Color from './color.js'; import {MapView} from './mapView.js'; import * as MapSource from './mapSource.js'; import {TurnPointMarker} from './turnPointMarker.js'; import * as Utils from './utils.js'; const _STROKE_COLOR = new Gdk.RGBA({ red: 0, blue: 255, green: 0, alpha: 1.0 }); const _STROKE_WIDTH = 5.0; const _ICON_COLOR = new Gdk.RGBA({ red: 0, green: 0, blue: 0, alpha: 1.0 }); const _ICON_SIZE = 24; /* All following constants are ratios of surface size to page size */ const _Header = { SCALE_X: 0.9, SCALE_Y: 0.03, SCALE_MARGIN: 0.01 }; const _MapView = { SCALE_X: 1.0, SCALE_Y: 0.4, SCALE_MARGIN: 0.04 }; export class PrintLayout extends GObject.Object { constructor({pageWidth, pageHeight, totalSurfaces, mainWindow, ...params}) { super(params); this._pageWidth = pageWidth; this._pageHeight = pageHeight; this._totalSurfaces = totalSurfaces; this._mainWindow = mainWindow; this.numPages = 0; this.surfaceObjects = []; this._surfacesRendered = 0; this.renderFinished = false; this._initSignals(); this._rtl = Gtk.get_locale_direction() === Gtk.TextDirection.RTL; // directional override character to force alignment of labels this._dirChar = this._rtl ? '\u200F' : '\u200E'; this._fontDescription = Pango.FontDescription.from_string("sans"); } render() { let headerWidth = _Header.SCALE_X * this._pageWidth; let headerHeight = _Header.SCALE_Y * this._pageHeight; let headerMargin = _Header.SCALE_MARGIN * this._pageHeight; let mapViewWidth = _MapView.SCALE_X * this._pageWidth; let mapViewHeight = _MapView.SCALE_Y * this._pageHeight; let mapViewMargin = _MapView.SCALE_MARGIN * this._pageHeight this._createNewPage(); let dy = 0; /* * Before rendering each surface, page adjustment is done. It is checked if it * can be adjusted in current page, otherwise a new page is created */ dy = headerHeight + headerMargin; this._adjustPage(dy); this._drawHeader(headerWidth, headerHeight); this._cursorY += dy; // TODO: for now for now skip drawing the mini map /* dy = mapViewHeight + mapViewMargin; this._adjustPage(dy); let turnPointsLength = this._route.turnPoints.length; let allTurnPoints = this._createTurnPointArray(0, turnPointsLength); this._drawMapView(mapViewWidth, mapViewHeight, allTurnPoints); this._cursorY += dy; */ } _initSignals() { this.connect('render-complete', () => this.renderFinished = true); } _createMarker(turnPoint) { return new TurnPointMarker({ turnPoint: turnPoint, queryPoint: {} }); } _getZoomLevelFittingBBox(bbox, mapSource, width, height) { let goodSize = false; let zoomLevel = mapSource.max_zoom_level; do { let minX = mapSource.get_x(zoomLevel, bbox.left); let minY = mapSource.get_y(zoomLevel, bbox.bottom); let maxX = mapSource.get_x(zoomLevel, bbox.right); let maxY = mapSource.get_y(zoomLevel, bbox.top); if (minY - maxY <= height && maxX - minX <= width) goodSize = true; else zoomLevel--; if (zoomLevel <= mapSource.min_zoom_level) { zoomLevel = mapSource.min_zoom_level; goodSize = true; } } while (!goodSize); return zoomLevel; } _drawMapView(width, height, turnPoints) { let pageNum = this.numPages - 1; let x = this._cursorX; let y = this._cursorY; let mapSource = MapSource.createPrintSource(); let locations = []; let markerLayer = new Shumate.MarkerLayer(); turnPoints.forEach((turnPoint) => { locations.push(turnPoint.coordinate); if (turnPoint.isStop()) { markerLayer.add_marker(this._createMarker(turnPoint)); } }); let bbox = this._createBBox(locations); let zoomLevel = this._getZoomLevelFittingBBox(bbox, mapSource, width, height); let map = new Shumate.Map(); let mapLayer = new Shumate.MapLayer({ map_source: mapSource, viewport: map.viewport }); map.viewport.zoom_level = zoomLevel; map.add_layer(mapLayer); let routeLayer = this._addRouteLayer(map, mapLayer); map.insert_layer_above(markerLayer, routeLayer); map.viewport.set_reference_map_source(mapSource); map.set_size_request(width, height); // TODO: how do we know when it's loaded? let surface = this._mapToSurface(map, width, height); if (surface) this._addSurface(surface, x, y, pageNum); } // TODO: this does not quite work... _mapToSurface(map, width, height) { let surface = new Cairo.ImageSurface(Cairo.Format.ARGB32, width, height); let cr = new Cairo.Context(surface); let paintable = new Gtk.WidgetPaintable({ widget: map }); let rect = new Graphene.Rect(); rect.init(0, 0, width, height); let snapshot = Gtk.Snapshot.new(); paintable.snapshot(snapshot, width, height); let node = snapshot.to_node(); let renderer = this._mainWindow.get_native().get_renderer(); let texture = renderer.render_texture(node, rect); let pixbuf = Gdk.pixbuf_get_from_texture(texture); Gdk.cairo_set_source_pixbuf(cr, pixbuf, 0, 0); cr.paint(); return surface; } _createBBox(locations) { let bbox = this._route.createBBox(locations); return new BoundingBox({ top: bbox.top, left: bbox.left, bottom: bbox.bottom, right: bbox.right }); } _createTurnPointArray(startIndex, endIndex) { let turnPointArray = []; for (let i = startIndex; i < endIndex; i++) { turnPointArray.push(this._route.turnPoints[i]); } return turnPointArray; } _addRouteLayer(map, mapLayer) { let routeLayer = new Shumate.PathLayer({ stroke_width: _STROKE_WIDTH, stroke_color: _STROKE_COLOR }); map.insert_layer_above(routeLayer, mapLayer); this._route.path.forEach((node) => routeLayer.add_node(node)); return routeLayer; } _drawIcon(cr, iconName, width, height, size) { let display = Gdk.Display.get_default(); let theme = Gtk.IconTheme.get_for_display(display); let iconPaintable = theme.lookup_icon(iconName, null, size, 1, Gtk.TextDirection.NONE, 0); let snapshot = Gtk.Snapshot.new(); let rect = new Graphene.Rect(); iconPaintable.snapshot_symbolic(snapshot, size, size, [_ICON_COLOR]); rect.init(0, 0, size, size); let node = snapshot.to_node(); let renderer = this._mainWindow.get_native().get_renderer(); let paintable = renderer.render_texture(node, rect); let pixbuf = Gdk.pixbuf_get_from_texture(paintable) Gdk.cairo_set_source_pixbuf(cr, pixbuf, this._rtl ? width - height + (height - size) / 2 : (height - size) / 2, (height - size) / 2); cr.paint(); } _createTextLayout(cr, text, width, height, alignment) { let layout = PangoCairo.create_layout(cr); layout.set_text(this._dirChar + text, -1); layout.set_height(Pango.units_from_double(height)); layout.set_width(Pango.units_from_double(width)); layout.set_font_description(this._fontDescription); layout.set_alignment(alignment); layout.set_ellipsize(Pango.EllipsizeMode.END); return layout; } _drawText(cr, text, x, y, width, height, alignment) { this._drawTextWithColor(cr, text, x, y, width, height, '000000', alignment); } _drawTextWithColor(cr, text, x, y, width, height, color, alignment) { let layout = this._createTextLayout(cr, text, width, height, alignment); this._drawTextLayoutWithColor(cr, layout, x, y, width, height, color, alignment); } _drawTextLayoutWithColor(cr, layout, x, y, width, height, color, alignment) { let red = Color.parseColor(color, 0); let green = Color.parseColor(color, 1); let blue = Color.parseColor(color, 2); cr.moveTo(x, y); cr.setSourceRGB(red, green, blue); PangoCairo.show_layout(cr, layout); } _drawTextVerticallyCentered(cr, text, width, height, x, alignment) { this._drawTextVerticallyCenteredWithColor(cr, text, width, height, x, '000000', alignment); } _drawTextVerticallyCenteredWithColor(cr, text, width, height, x, color, alignment) { let layout = this._createTextLayout(cr, text, width, height, alignment); let [pWidth, pHeight] = layout.get_pixel_size(); let red = Color.parseColor(color, 0); let green = Color.parseColor(color, 1); let blue = Color.parseColor(color, 2); // place text centered cr.moveTo(x, (height - pHeight) / 2); cr.setSourceRGB(red, green, blue); PangoCairo.show_layout(cr, layout); } _drawInstruction(width, height, turnPoint) { let pageNum = this.numPages - 1; let x = this._cursorX; let y = this._cursorY; let surface = new Cairo.ImageSurface(Cairo.Format.ARGB32, width, height); let cr = new Cairo.Context(surface); let iconName = turnPoint.iconName; if (iconName) { this._drawIcon(cr, iconName, width, height, _ICON_SIZE); } // draw the instruction text this._drawTextVerticallyCentered(cr, turnPoint.instruction, width - height * 3, height, this._rtl ? height * 2 : height, Pango.Alignment.LEFT); // draw the distance text if (turnPoint.distance > 0) { this._drawTextVerticallyCentered(cr, Utils.prettyDistance(turnPoint.distance), height * 2, height, this._rtl ? 0 : width - height * 2, Pango.Alignment.RIGHT); } this._addSurface(surface, x, y, pageNum); } _drawHeader(width, height) { let pageNum = this.numPages - 1; let x = this._cursorX; let y = this._cursorY; let surface = new Cairo.ImageSurface(Cairo.Format.ARGB32, width, height); let cr = new Cairo.Context(surface); let layout = PangoCairo.create_layout(cr); let from = this._formatQueryPlaceName(0); let to = this._formatQueryPlaceName(-1); let header = _("From %s to %s").format(from, to); let desc = Pango.FontDescription.from_string("sans"); layout.set_text(header, -1); layout.set_height(Pango.units_from_double(height)); layout.set_width(Pango.units_from_double(width)); layout.set_font_description(desc); layout.set_alignment(Pango.Alignment.CENTER); PangoCairo.layout_path(cr, layout); cr.setSourceRGB(0.0,0.0,0.0); cr.fill(); this._addSurface(surface, x, y, pageNum); } _addSurface(surface, x, y, pageNum) { this.surfaceObjects[pageNum].push({ surface: surface, x: x, y: y }); this._surfacesRendered++; if (this._surfacesRendered === this._totalSurfaces) this.emit('render-complete'); } _adjustPage(dy) { if (this._cursorY + dy > this._pageHeight) this._createNewPage(); } _createNewPage() { this.numPages++; this.surfaceObjects[this.numPages - 1] = []; this._cursorX = 0; this._cursorY = 0; } _formatQueryPlaceName(index) { let query = Application.routeQuery; if (index === -1) index = query.filledPoints.length - 1; let name; let place = query.filledPoints[index].place; if (place.name) { name = place.name; if (name.length > 25) name = name.substr(0, 22) + '\u2026'; } else { let lat = place.location.latitude.toFixed(5); let lon = place.location.latitude.toFixed(5); name = '%s, %s'.format(lat, lon); } return name; } } GObject.registerClass({ Abstract: true, Signals: { 'render-complete': { } } }, PrintLayout); 0707010000025D000081A40000000000000000000000016641340900001692000000000000000000000000000000000000002700000000gnome-maps-46.11/src/printOperation.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Amisha Singla */ import Adw from 'gi://Adw'; import GLib from 'gi://GLib'; import Gtk from 'gi://Gtk'; import {Application} from './application.js'; import {LongPrintLayout} from './longPrintLayout.js'; import {ShortPrintLayout} from './shortPrintLayout.js'; import {TransitPrintLayout} from './transitPrintLayout.js'; import * as Utils from './utils.js'; const _MIN_TIME_TO_ABORT = 3000; /* Following constant has unit as meters */ const _SHORT_LAYOUT_MAX_DISTANCE = 3000; export class PrintOperation { constructor({mainWindow}) { this._mainWindow = mainWindow; this._operation = new Gtk.PrintOperation({ embed_page_setup: true }); this._operation.connect('begin-print', this._beginPrint.bind(this)); this._operation.connect('paginate', this._paginate.bind(this)); this._operation.connect('draw-page', this._drawPage.bind(this)); this._abortDialog = new Adw.MessageDialog({ transient_for: this._mainWindow, destroy_with_parent: true, modal: true, heading: _("Loading map tiles for printing"), body: _("You can abort printing if this takes too long") }); this._abortDialog.add_response('abort', _("Abort printing")); this._abortDialog.set_response_appearance('abort', Adw.ResponseAppearance.DESTRUCTIVE); this._responseId = this._abortDialog.connect('response', this.onAbortDialogResponse.bind(this)); this._runPrintOperation(); } _beginPrint(operation, context, data) { let route = Application.routingDelegator.route; let selectedTransitItinerary = Application.routingDelegator.transitRouter.plan.selectedItinerary; let width = context.get_width(); let height = context.get_height(); if (selectedTransitItinerary) { this._layout = new TransitPrintLayout({ itinerary: selectedTransitItinerary, pageWidth: width, pageHeight: height, mainWindow: this._mainWindow }); } else { // TODO: for now just use short layout, as we don't have minimaps this._layout = new ShortPrintLayout({ route: route, pageWidth: width, pageHeight: height, mainWindow: this._mainWindow }); /* if (route.distance > _SHORT_LAYOUT_MAX_DISTANCE) { this._layout = new LongPrintLayout({ route: route, pageWidth: width, pageHeight: height, mainWindow: this._mainWindow }); } else { this._layout = new ShortPrintLayout({ route: route, pageWidth: width, pageHeight: height, mainWindow: this._mainWindow }); } */ } GLib.timeout_add(null, _MIN_TIME_TO_ABORT, () => { if (!this._layout.renderFinished) { this._abortDialog.show(); } return false; }); this._layout.render(); } onAbortDialogResponse(dialog, response) { if (response === Gtk.ResponseType.DELETE_EVENT || response === Gtk.ResponseType.CANCEL) { this._abortDialog.disconnect(this._responseId); this._operation.cancel(); this._abortDialog.close(); } } _paginate(operation, context) { if (this._layout) { if (this._layout.renderFinished) { operation.set_n_pages(this._layout.numPages); this._abortDialog.close(); } return this._layout.renderFinished; } else { return false; } } _drawPage(operation, context, page_num, data) { let cr = context.get_cairo_context(); this._layout.surfaceObjects[page_num].forEach((so) => { cr.setSourceSurface(so.surface, so.x, so.y); cr.paint(); }); } _runPrintOperation() { try { let result = this._operation.run(Gtk.PrintOperationAction.PRINT_DIALOG, this._mainWindow); if (result === Gtk.PrintOperationResult.ERROR) { let error = this._operation.get_error(); Utils.debug('Failed to print: %s'.format(error)); } } catch(e) { Utils.debug('Failed to print: %s'.format(e.message)); } } } 0707010000025E000081A40000000000000000000000016641340900000075000000000000000000000000000000000000002300000000gnome-maps-46.11/src/prototypes.jsif (!Array.prototype.last) { Array.prototype.last = function () { return this[this.length - 1]; }; } 0707010000025F000081A40000000000000000000000016641340900001ABA000000000000000000000000000000000000001E00000000gnome-maps-46.11/src/route.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2013 Mattias Bengtsson. * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Mattias Bengtsson */ import GObject from 'gi://GObject'; import {BoundingBox} from './boundingBox.js'; import * as Utils from './utils.js'; /* countries/terrotories driving on the left * source: https://en.wikipedia.org/wiki/Left-_and_right-hand_traffic */ const LHT_COUNTRIES = new Set(['AG', 'AI', 'AU', 'BB', 'BD', 'BM', 'BN', 'BS', 'BT', 'BW', 'CY', 'DM', 'FJ', 'FK', 'GB', 'GD', 'GY', 'HK', 'ID', 'IE', 'IM', 'IN', 'JE', 'JM', 'JP', 'KE', 'KI', 'KN', 'KY', 'LC', 'LK', 'LS', 'MO', 'MS', 'MT', 'MU', 'MV', 'MW', 'MY', 'MZ', 'NA', 'NP', 'NR', 'NZ', 'PG', 'PN', 'PK', 'SB', 'SC', 'SG', 'SH', 'SR', 'SZ', 'TC', 'TH', 'TL', 'TO', 'TT', 'TV', 'TZ', 'UG', 'VC', 'VG', 'VI', 'WS', 'ZA', 'ZM', 'ZW']); export class Route extends GObject.Object { constructor() { super(); this.reset(); } update({ path, turnPoints, distance, time, bbox }) { this.path = path; this.turnPoints = turnPoints; this.distance = distance; this.time = time; this.bbox = bbox || this.createBBox(path); this.emit('update'); } reset() { this.path = []; this.turnPoints = []; this.distance = 0; this.time = 0; this.bbox = null; this.emit('reset'); } error(msg) { this.emit('error', msg); } createBBox(coordinates) { let bbox = new BoundingBox(); coordinates.forEach(function({ latitude, longitude }) { bbox.extend(latitude, longitude); }, this); return bbox; } } GObject.registerClass({ Signals: { 'update': {}, 'reset': {}, 'error': { param_types: [GObject.TYPE_STRING] } } }, Route); export class TurnPoint { static Type = { START: 0, SHARP_LEFT: 1, LEFT: 2, SLIGHT_LEFT: 3, KEEP_LEFT: 4, CONTINUE: 5, SLIGHT_RIGHT: 6, RIGHT: 7, SHARP_RIGHT: 8, KEEP_RIGHT: 9, END: 10, VIA: 11, ROUNDABOUT: 12, LEAVE_ROUNDABOUT: 13, UTURN: 14, UTURN_LEFT: 15, UTURN_RIGHT: 16, ELEVATOR: 17 } constructor({ coordinate, type, distance, instruction, turnAngle }) { this.coordinate = coordinate; this._type = type; this.distance = distance; this.instruction = instruction; this.iconName = this._getIconName(turnAngle); } get type() { return this._type; } isStop() { return this._type === TurnPoint.Type.START || this._type === TurnPoint.Type.VIA || this._type === TurnPoint.Type.END; } _getIconName(turnAngle) { switch(this._type) { case TurnPoint.Type.SHARP_LEFT: return 'maps-direction-sharpleft-symbolic'; case TurnPoint.Type.LEFT: return 'maps-direction-left-symbolic'; case TurnPoint.Type.SLIGHT_LEFT: return 'maps-direction-slightleft-symbolic'; case TurnPoint.Type.KEEP_LEFT: return 'maps-direction-keep-left-symbolic'; case TurnPoint.Type.CONTINUE: return 'maps-direction-continue-symbolic'; case TurnPoint.Type.KEEP_RIGHT: return 'maps-direction-keep-right-symbolic'; case TurnPoint.Type.SLIGHT_RIGHT: return 'maps-direction-slightright-symbolic'; case TurnPoint.Type.RIGHT: return 'maps-direction-right-symbolic'; case TurnPoint.Type.SHARP_RIGHT: return 'maps-direction-sharpright-symbolic'; case TurnPoint.Type.START: return 'maps-point-start-symbolic'; case TurnPoint.Type.VIA: return 'maps-point-end-symbolic'; case TurnPoint.Type.END: return 'maps-point-end-symbolic'; case TurnPoint.Type.ROUNDABOUT: return this._getRoundaboutIconName(turnAngle); case TurnPoint.Type.ELEVATOR: return 'maps-direction-elevator-symbolic'; case TurnPoint.Type.UTURN: return this._isLefthandTraffic() ? 'maps-direction-u-turn-right-symbolic': 'maps-direction-u-turn-left-symbolic'; case TurnPoint.Type.UTURN_LEFT: return 'maps-direction-u-turn-left-symbolic'; case TurnPoint.Type.UTURN_RIGHT: return 'maps-direction-u-turn-right-symbolic'; default: return ''; } } _getRoundaboutIconName(turnAngle) { /* * To map turnAngle with closest roundabout * turning angle symbol available. The Algorithm * calculates the minimum of absolute difference * between turnAngle and the angle of which map * has turning symbols. */ let minDiff = 2 * Math.PI; let angle = 0; if (turnAngle === null) return 'maps-direction-roundabout-symbolic'; if (turnAngle < 0) turnAngle += 2 * Math.PI; for (let x = 0; x < 360; x += 45) { if (Math.abs(turnAngle - (x / 180) * Math.PI) < minDiff) { minDiff = Math.abs(turnAngle - (x / 180) * Math.PI); angle = x; } } // use mirrored icon for left-hand traffic when angle is not zero return 'maps-direction-roundabout-' + angle + (angle !== 0 && this._isLefthandTraffic() ? '-lht' : '') + '-symbolic'; } _isLefthandTraffic() { let country = Utils.getCountryCodeForCoordinates(this.coordinate.latitude, this.coordinate.longitude); return LHT_COUNTRIES.has(country); } } 07070100000260000081A40000000000000000000000016641340900000EA2000000000000000000000000000000000000002300000000gnome-maps-46.11/src/routeEntry.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Jonas Danielsson */ import gettext from 'gettext'; import Gdk from 'gi://Gdk'; import GObject from 'gi://GObject'; import Gtk from 'gi://Gtk'; import {Application} from './application.js'; import {PlaceEntry} from './placeEntry.js'; import {RouteQuery} from './routeQuery.js'; const _ = gettext.gettext; export class RouteEntry extends Gtk.Grid { static Type = { FROM: 0, TO: 1, VIA: 2 } constructor({type, point, mapView, ...params}) { super(params); this._type = type; this._point = point ?? null; this._mapView = mapView ?? null; this.entry = this._createEntry(); this._entryGrid.attach(this.entry, 0, 0, 1, 1); // There is no GdkWindow on the widget until it is realized this.icon.connect('realize', (icon) => { icon.set_cursor(Gdk.Cursor.new_from_name('grab', null)); }); switch (this._type) { case RouteEntry.Type.FROM: let query = Application.routeQuery; this._button.icon_name = 'list-add-symbolic'; this.icon.icon_name = 'maps-point-start-symbolic'; /* Translators: this is add via location tooltip */ this._button.tooltip_text = _("Add via location"); query.connect('notify::points', () => { this._button.sensitive = query.points.length < RouteQuery.MAX_QUERY_POINTS; }); break; case RouteEntry.Type.VIA: this._button.icon_name = 'list-remove-symbolic'; this.icon.icon_name = 'maps-point-end-symbolic'; /* Translators: this is remove via location tooltip */ this._button.tooltip_text = _("Remove via location"); break; case RouteEntry.Type.TO: this._button.icon_name = 'route-reverse-symbolic'; this.icon.icon_name = 'maps-point-end-symbolic'; /* Translators: this is reverse route tooltip */ this._button.tooltip_text = _("Reverse route"); break; } } get button() { return this._button; } get point() { return this._point; } _createEntry() { let entry = new PlaceEntry({ visible: true, can_focus: true, hexpand: true, receives_default: true, mapView: this._mapView, maxChars: 15 }); if (this._point) { entry.bind_property('place', this._point, 'place', GObject.BindingFlags.BIDIRECTIONAL); } return entry; } } GObject.registerClass({ Template: 'resource:///org/gnome/Maps/ui/route-entry.ui', Children: [ 'icon' ], InternalChildren: [ 'entryGrid', 'button' ] }, RouteEntry); 07070100000261000081A40000000000000000000000016641340900001D76000000000000000000000000000000000000002300000000gnome-maps-46.11/src/routeQuery.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2013 Mattias Bengtsson. * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Mattias Bengtsson */ import GObject from 'gi://GObject'; import {Application} from './application.js'; import {PlaceStore} from './placeStore.js'; import {TransitOptions} from './transitOptions.js'; import { Place } from './place.js'; export class QueryPoint extends GObject.Object { constructor() { super(); this._place = null; } set place(p) { this._place = p; this.notify('place'); } get place() { return this._place; } } GObject.registerClass({ Properties: { 'place': GObject.ParamSpec.object('place', '', '', GObject.ParamFlags.READABLE | GObject.ParamFlags.WRITABLE, Place) } }, QueryPoint); export class RouteQuery extends GObject.Object { static MAX_QUERY_POINTS = 10; static Transportation = { CAR: 0, BIKE: 1, PEDESTRIAN: 2, TRANSIT: 3, toString: function (transportation) { switch(transportation) { case RouteQuery.Transportation.CAR: return 'car'; case RouteQuery.Transportation.BIKE: return 'bike'; case RouteQuery.Transportation.PEDESTRIAN: return 'foot'; case RouteQuery.Transportation.TRANSIT: return 'transit'; default: return null; } } } get points() { return this._points; } set points(points) { if (points.length > MAX_QUERY_POINTS) throw new Error('Too many query points'); this._points = points; this.notify('points'); } get filledPoints() { return this.points.filter(function(point) { return point.place; }); } get latest() { return this._latest; } get time() { return this._time; } /* time to leave or arrive, null implies "Leave now" */ set time(time) { this._time = time; this.notify('points'); } get date() { return this._date; } /* date to leave or arrive */ set date(date) { this._date = date; /* only notify change when an actual date was set, when resetting time * time and date (to use "Leave Now" routing) time would be set to null * triggering an update */ if (date) this.notify('points'); } get arriveBy() { return this._arriveBy; } /* when set to true, the set time and date means arrive by the specified * time */ set arriveBy(arriveBy) { this._arriveBy = arriveBy; if (this._time) this.notify('points'); } get transitOptions() { return this._transitOptions; } set transitOptions(options) { this._transitOptions = options; this.notify('points'); } constructor(params) { super(params); this._points = []; this._time = null; this._date = null; this._arriveBy = false; this._transitOptions = new TransitOptions(); this._initTransportation(); this.reset(); } _initTransportation() { let transportationType = Application.settings.get_enum('transportation-type'); this.transportation = transportationType; } addPoint(index) { if (this._points.length >= RouteQuery.MAX_QUERY_POINTS) throw new Error('Too many query points'); let point = new QueryPoint(); if (index === -1) index = this.points.length - 1; this._points.splice(index, 0, point); point.connect('notify::place', () => { let placeStore = Application.placeStore; if (point.place) { placeStore.addPlace(point.place); } this.notify('points'); this._latest = point; }); this._latest = point; this.notify('points'); this.emit('point-added', point, index); return point; } removePoint(index) { let removedPoints = this._points.splice(index, 1); let point = removedPoints ? removedPoints[0] : null; if (point === this._latest) this._latest = null; if (point) { this.notify('points'); this.emit('point-removed', point, index); } } set transportation(transportation) { Application.settings.set_enum('transportation-type', transportation); this._transportation = transportation; this.notify('transportation'); this.notify('points'); } get transportation() { return this._transportation; } reset() { this.freeze_notify(); this._points.forEach(function(point) { point.place = null; }); this._latest = null; this.thaw_notify(); this.emit('reset'); } isValid() { if (this.filledPoints.length >= 2 && this.filledPoints.length === this.points.length) return true; else return false; } toString() { return "\nPoints: " + this.points + "\nTransportation: " + this.transportation; } } GObject.registerClass({ Signals: { 'reset': { }, 'point-added': { param_types: [GObject.TYPE_OBJECT, GObject.TYPE_INT] }, 'point-removed': { param_types: [GObject.TYPE_OBJECT, GObject.TYPE_INT] }, 'run': { } }, Properties: { 'points': GObject.ParamSpec.object('points', '', '', GObject.ParamFlags.READABLE | GObject.ParamFlags.WRITABLE, GObject.Object), 'transportation': GObject.ParamSpec.int('transportation', '', '', GObject.ParamFlags.READABLE | GObject.ParamFlags.WRITABLE, RouteQuery.Transportation.CAR, RouteQuery.Transportation.PEDESTRIAN, RouteQuery.Transportation.CAR, RouteQuery.Transportation.TRANSIT) } }, RouteQuery); 07070100000262000081A40000000000000000000000016641340900000E86000000000000000000000000000000000000002900000000gnome-maps-46.11/src/routingDelegator.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2017 Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ import {GraphHopper} from './graphHopper.js'; import {TransitRouter} from './transitRouter.js'; import {RouteQuery} from './routeQuery.js'; import { Route } from './route.js'; import { StoredRoute } from './storedRoute.js'; const _FALLBACK_TRANSPORTATION = RouteQuery.Transportation.PEDESTRIAN; export class RoutingDelegator { constructor({query}) { this._query = query; this._route = new Route(); this._transitRouting = false; this._graphHopper = new GraphHopper({ query: this._query, route: this._route }); this._transitRouter = new TransitRouter({ query: this._query }); this._query.connect('notify::points', this._onQueryChanged.bind(this)); /* if the query is set to transit mode when it's not available, revert * to a fallback mode */ if (this._query.transportation === RouteQuery.Transportation.TRANSIT && !this._transitRouter.enabled) { this._query.transportation = _FALLBACK_TRANSPORTATION; } this._ignoreNextQueryChange = false; } get graphHopper() { return this._graphHopper; } get transitRouter() { return this._transitRouter; } get route() { return this._route; } set useTransit(useTransit) { this._transitRouting = useTransit; } reset() { if (this._transitRouting) this._transitRouter.plan.reset(); else this._route.reset(); } _onQueryChanged() { if (this._ignoreNextQueryChange) { this._ignoreNextQueryChange = false; return; } if (this._query.isValid()) { this._query.emit('run'); if (this._transitRouting) { this._transitRouter.fetchFirstResults(); } else { this._graphHopper.fetchRoute(this._query.filledPoints, this._query.transportation); } } } /** * @param {StoredRoute} stored */ replaceRoute(stored) { const query = this._query; query.freeze_notify(); let storedLast = stored.places.length - 1; query.points[0].place = stored.places[0]; query.points[1].place = stored.places[storedLast]; query.transportation = stored.transportation; for (let i = 1; i < storedLast; i++) { let point = query.addPoint(i); point.place = stored.places[i]; } this._ignoreNextQueryChange = true; query.thaw_notify(); this.route.update({ path: stored.route.path, turnPoints: stored.route.turnPoints, distance: stored.route.distance, time: stored.route.time, bbox: stored.route.bbox}); } } 07070100000263000081A40000000000000000000000016641340900001077000000000000000000000000000000000000002200000000gnome-maps-46.11/src/searchBar.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2023 Marcus Lundblad. * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ import gettext from 'gettext'; import GObject from 'gi://GObject'; import Gtk from 'gi://Gtk'; import {PlaceEntry} from './placeEntry.js'; import { Place } from './place.js'; const _ = gettext.gettext; // minimum zoom level to show the explore button const EXPLORE_BUTTON_MIN_ZOOM = 15; export class SearchBar extends Gtk.Grid { constructor({mapView, ...params}) { super(params); this._mapView = mapView; this._placeEntry = new PlaceEntry({ mapView: mapView, max_width_chars: 50, matchRoute: true, hasPoiBrowser: true, popoverParent: this, placeholder_text: _("Search") }); this.attach(this._placeEntry, 0, 0, 1, 1); this._placeEntry.set_key_capture_widget(this._mapView.map); /* looks like we need to create the button in code as well, since * the place entry is created here and added after the template * was initialized, else the linked style doesn't get applied properly */ this._exploreButton = new Gtk.Button({ valign: Gtk.Align.CENTER, tooltip_text: _("Explore Nearby Places"), icon_name: 'pan-down-symbolic' }); this.attach(this._exploreButton, 1, 0, 1, 1); this._exploreButton.connect('clicked', () => this._onExploreButtonClicked()); this._placeEntry.bind_property('place', this, 'place', GObject.BindingFlags.DEFAULT); this._mapView.map.viewport.connect('notify::zoom-level', this._updateExploreButtonSensitivity.bind(this)); this._updateExploreButtonSensitivity(); } get popover() { return this._placeEntry.popover; } get placeEntry() { return this._placeEntry; } set text(text) { this._placeEntry.text = text; } /** * Update results popover * places array of places from search result * searchText original search string to highlight in results */ updateResults(places, searchText) { this._placeEntry.updateResults(places, searchText, false); } _onExploreButtonClicked() { /* show main category if the popover isn't already visible, * or if a previous result is showing. * otherwise close the popover */ if (!this.popover.visible || !this.popover.isShowingPoiBrowser) this._placeEntry.browsePois(); else this.popover.popdown(); } _updateExploreButtonSensitivity() { this._exploreButton.sensitive = this._mapView.map.viewport.zoom_level >= EXPLORE_BUTTON_MIN_ZOOM; } } GObject.registerClass({ Properties: { 'place': GObject.ParamSpec.object('place', 'Place', 'The selected place', GObject.ParamFlags.READABLE | GObject.ParamFlags.WRITABLE, Place) }, Template: 'resource:///org/gnome/Maps/ui/search-bar.ui' }, SearchBar); 07070100000264000081A4000000000000000000000001664134090000069F000000000000000000000000000000000000002600000000gnome-maps-46.11/src/searchPopover.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2016 Marcus Lundblad. * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad * Jonas Danielsson */ import GObject from 'gi://GObject'; import Gtk from 'gi://Gtk'; /* Abstract search result popover that progagates keypress events from a focus-taking internal widget to the spawning search entry widget */ export class SearchPopover extends Gtk.Popover { constructor({entry, ...params}) { super(params); this._entry = entry; this._buttonPressGesture = new Gtk.GestureSingle(); this._entry.add_controller(this._buttonPressGesture); this._buttonPressGesture.connect('begin', () => this.list.unselect_all()); this._numResults = 0; this.add_css_class('suggestions'); } get numResults() { return this._numResults; } } GObject.registerClass({ Abstract: true }, SearchPopover); 07070100000265000081A4000000000000000000000001664134090000240C000000000000000000000000000000000000002500000000gnome-maps-46.11/src/sendToDialog.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Jonas Danielson */ import Gdk from 'gi://Gdk'; import GeocodeGlib from 'gi://GeocodeGlib'; import Gio from 'gi://Gio'; import GLib from 'gi://GLib'; import GObject from 'gi://GObject'; import Gtk from 'gi://Gtk'; import GWeather from 'gi://GWeather'; import {Application} from './application.js'; import {PlaceFormatter} from './placeFormatter.js'; import * as Utils from './utils.js'; const _WEATHER_APPID = 'org.gnome.Weather'; const _CLOCKS_APPID = 'org.gnome.clocks'; const _NUM_VISIBLE = 4; export class SendToDialog extends Gtk.Dialog { static Response = { SUCCESS: 0, CANCEL: 1 }; constructor({place, mapView, ...params}) { super({...params, use_header_bar: true}); this._place = place; this._location = this._place.location; this._mapView = mapView; this._scrolledWindow.min_content_height = 40 * _NUM_VISIBLE; this.get_header_bar().subtitle = this._place.name; this._cancelButton.connect('clicked', () => this.response(SendToDialog.Response.CANCEL)); this._list.connect('row-activated', (list, row) => this._activateRow(row)); this._list.set_header_func((row, before) => { let horizontal = Gtk.Orientation.HORIZONTAL; if (before) row.set_header(new Gtk.Separator({ orientation: horizontal })); else row.set_header(null); }); this.connect('show', () => { this._summaryLabel.label = this._getSummary(); let osmuri = GLib.markup_escape_text(this._getOSMURI(), -1); this._summaryUrl.label = '%s'.format(osmuri, osmuri); this._copyButton.connect('clicked', () => this._copySummary()); this._emailButton.connect('clicked', () => this._emailSummary()); }); if (GWeather) { let world = GWeather.Location.get_world(); let location = this._location; this._city = world.find_nearest_city(location.latitude, location.longitude); /* Translators: The first string is the name of the city, the second string is the name of the app to add it to */ let label = _("Add %s to %s"); let weatherInfo = Gio.DesktopAppInfo.new(_WEATHER_APPID + '.desktop'); if (!weatherInfo) { this._list.remove(this._weatherRow); } else { this._weatherLabel.label = label.format(this._city.get_name(), weatherInfo.get_name()); this._weatherIcon.icon_name = weatherInfo.get_icon().to_string(); } let clocksInfo = Gio.DesktopAppInfo.new(_CLOCKS_APPID + '.desktop'); if (!clocksInfo) { this._list.remove(this._clocksRow); } else { this._clocksLabel.label = label.format(this._city.get_name(), clocksInfo.get_name()); this._clocksIcon.icon_name = clocksInfo.get_icon().to_string(); } } /* Other apps that can launch geo: URIs */ let contentType = Gio.content_type_from_mime_type('x-scheme-handler/geo'); let thisId = Application.application.application_id + '.desktop'; let apps = Gio.app_info_get_all_for_type(contentType); apps.forEach((app) => { if (app.get_id() == thisId) return; if (!app.should_show()) return; this._list.insert(new OpenWithRow({ appinfo: app }), -1); }); /* Hide the list box if it is empty */ if (!this._list.get_first_child()) { this._scrolledWindow.hide(); } } _getSummary(markup) { /* Gets a summary of the place (usually name, address, and coordinates, whichever are available). Does not include OSM URL. */ let place = this._place; let lines = []; let formatter = new PlaceFormatter(place); if (!place.isCurrentLocation) lines.push(formatter.title); let details = formatter.getDetailsString(); if (details) { lines.push(details); } lines.push('%f, %f'.format(this._location.latitude.toFixed(5), this._location.longitude.toFixed(5))); return lines.join('\n'); } _getOSMURI() { let viewport = this._mapView.map.viewport; let place = this._place; let base = 'https://openstreetmap.org'; if (this._place.osmId && this._place.osmType) { return '%s/%s/%s'.format(base, Utils.osmTypeToString(place.osmType), place.osmId); } else { return '%s?mlat=%f&mlon=%f&zoom=%d'.format(base, this._location.latitude, this._location.longitude, viewport.zoom_level); } } _copySummary() { let summary = '%s\n%s'.format(this._getSummary(), this._getOSMURI()); let clipboard = this.get_clipboard(); clipboard.set(summary); this.response(SendToDialog.Response.SUCCESS); } _emailSummary() { let title = new PlaceFormatter(this._place).title; let summary = "%s\n%s".format(this._getSummary(), this._getOSMURI()); let uri = 'mailto:?subject=%s&body=%s'.format(GLib.uri_escape_string(title, null, false), GLib.uri_escape_string(summary, null, false)); try { Gio.app_info_launch_default_for_uri(uri, this._getAppLaunchContext()); } catch(e) { Utils.showToastInOverlay(_("Failed to open URI"), this._overlay); Utils.debug('failed to open URI: %s'.format(e.message)); } this.response(SendToDialog.Response.SUCCESS); } _getAppLaunchContext() { let ctx = Gdk.Display.get_default().get_app_launch_context(); // GdkAppLaunchContext uses second-precision timestamps ctx.set_timestamp(GLib.get_real_time() / 1000000); return ctx; } _activateRow(row) { if (row === this._weatherRow || row === this._clocksRow) { let timestamp = GLib.get_real_time() / 1000000; let action; let appId; if (row === this._weatherRow) { action = 'show-location'; appId = _WEATHER_APPID; } else { action = 'add-location'; appId = _CLOCKS_APPID; } Utils.activateAction(appId, action, new GLib.Variant('v', this._city.serialize()), timestamp); } else if (row instanceof OpenWithRow) { let uri = this._location.to_uri(GeocodeGlib.LocationURIScheme.GEO); row.appinfo.launch_uris([ uri ], this._getAppLaunchContext()); } this.response(SendToDialog.Response.SUCCESS); } } GObject.registerClass({ Template: 'resource:///org/gnome/Maps/ui/send-to-dialog.ui', InternalChildren: [ 'list', 'weatherRow', 'weatherLabel', 'weatherIcon', 'clocksRow', 'clocksLabel', 'clocksIcon', 'cancelButton', 'summaryLabel', 'summaryUrl', 'copyButton', 'emailButton', 'scrolledWindow', 'overlay'] }, SendToDialog); export class OpenWithRow extends Gtk.ListBoxRow { constructor({ appinfo, ...params }) { super(params); this.appinfo = appinfo; this._label.label = _("Open with %s").format(appinfo.get_name()); this._icon.gicon = appinfo.get_icon(); } } GObject.registerClass({ Template: 'resource:///org/gnome/Maps/ui/open-with-row.ui', InternalChildren: [ 'label', 'icon' ], }, OpenWithRow); 07070100000266000081A400000000000000000000000166413409000009DF000000000000000000000000000000000000002000000000gnome-maps-46.11/src/service.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2017 Marcus Lundblad. * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad * Jonas Danielsson */ import Gio from 'gi://Gio'; import GLib from 'gi://GLib'; import Soup from 'gi://Soup'; import * as Utils from './utils.js'; let _service = null; const _SERVICE_URL = 'https://gis.gnome.org/services/v1/service.json'; const _DEFAULT_SERVICE_FILE = 'maps-service.json'; function _getServiceFromFile(filename) { let data = Utils.readFile(filename); if (!data) { log('Failed to open service file: ' + filename); System.exit(1); } _service = JSON.parse(Utils.getBufferText(data)); return _service; } function _createDefaultService() { let filename = GLib.build_filenamev([pkg.pkgdatadir, _DEFAULT_SERVICE_FILE]); return _getServiceFromFile(filename); } export function getService() { if (_service) return _service; if (GLib.getenv('MAPS_DEFAULT_SERVICE')) return _createDefaultService(); let serviceOverride = GLib.getenv('MAPS_SERVICE'); if (serviceOverride) return _getServiceFromFile(serviceOverride); let user_agent = 'gnome-maps/' + pkg.version; let session = new Soup.Session({ user_agent: user_agent, timeout: 10 }); let msg = Soup.Message.new('GET', _SERVICE_URL); try { let stream = Gio.DataInputStream.new(session.send(msg, null)); let lines = ""; while(true) { let [line, _] = stream.read_line_utf8(null); if (line === null) break; lines += line; } _service = JSON.parse(lines); return _service; } catch(e) { Utils.debug(e); return _createDefaultService(); } } 07070100000267000081A400000000000000000000000166413409000009C2000000000000000000000000000000000000002100000000gnome-maps-46.11/src/settings.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2013 Mattias Bengtsson * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Mattias Bengtsson */ import GLib from 'gi://GLib'; import Gio from 'gi://Gio'; import GObject from 'gi://GObject'; import * as system from 'system'; export class Settings extends Gio.Settings { static getSettings(schemaId, path) { const GioSSS = Gio.SettingsSchemaSource; let schemaSource; if (!pkg.moduledir.startsWith('resource://')) { // Running from the source tree schemaSource = GioSSS.new_from_directory(pkg.pkgdatadir, GioSSS.get_default(), false); } else { schemaSource = GioSSS.get_default(); } let schemaObj = schemaSource.lookup(schemaId, true); if (!schemaObj) { log('Missing GSettings schema ' + schemaId); system.exit(1); } if (path === undefined) return new Settings({ settings_schema: schemaObj }); else return new Settings({ settings_schema: schemaObj, path: path }); } constructor(params) { super(params); // The GVariant types of the settings this._keyTypes = {}; this.list_keys().forEach((key) => { this._keyTypes[key] = this.get_value(key) .get_type() .dup_string(); }); } get(name) { return this.get_value(name).deep_unpack(); } set(name, value) { this.set_value(name, GLib.Variant.new (this._keyTypes[name], value)); } } GObject.registerClass(Settings); 07070100000268000081A40000000000000000000000016641340900001179000000000000000000000000000000000000002300000000gnome-maps-46.11/src/shapeLayer.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Hashem Nasarat */ import Gio from 'gi://Gio'; import GObject from 'gi://GObject'; import Gtk from 'gi://Gtk'; import Shumate from 'gi://Shumate'; import {GeoJSONSource} from './geoJSONSource.js'; import * as Utils from './utils.js'; export class ShapeLayer extends GObject.Object { static mimeTypes = []; static displayName = ''; static SUPPORTED_TYPES = []; static newFromFile(file, mapView) { let contentType = Gio.content_type_guess(file.get_uri(), null)[0]; for (let layerClass of ShapeLayer.SUPPORTED_TYPES) { if (layerClass.mimeTypes.indexOf(contentType) > -1) { return layerClass.createInstance({ file: file, mapView: mapView }); } } return null; } constructor(params) { super(); this._visible = true; this._mapView = params.mapView; this.file = params.file; this.filename = this.file.query_info( Gio.FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME, Gio.FileQueryInfoFlags.NONE, null ).get_attribute_string(Gio.FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME); this._markerLayer = new Shumate.MarkerLayer({ selection_mode: Gtk.SelectionMode.SINGLE, viewport: this._mapView.map.viewport }); this._mapSource = new GeoJSONSource({ mapView: this._mapView, markerLayer: this._markerLayer, filename: this.getName() }); this._overlayLayer = new Shumate.MapLayer({ map_source: this._mapSource, viewport: this._mapView.map.viewport }); this._zoomId = this._mapView.map.viewport.connect('notify::zoom-level', () => { let oldOverlayLayer = this._overlayLayer; this._overlayLayer = new Shumate.MapLayer({ map_source: this._mapSource, viewport: this._mapView.map.viewport }); this._overlayLayer.visible = this._visible; this._mapView.map.add_layer(this._overlayLayer); this._mapView.map.remove_layer(oldOverlayLayer); }); } get bbox() { return this._mapSource.bbox; } get visible() { return this._visible; } set visible(v) { this._overlayLayer.visible = v; this._markerLayer.visible = v; this._visible = v; } getName() { /* * Remove file extension and use that in lieu of a fileformat-specific * display name. */ return this.filename.replace(/\.[^\.]+$/, ''); } load(callback, bbox) { this.file.load_contents_async(null, (sourceObject, result) => { let error = false; try { let [status, buffer] = this.file.load_contents_finish(result); this._fileContents = buffer; if (!status) throw new Error(_("failed to load file")); this._parseContent(); this._mapView.map.add_layer(this._markerLayer); this._mapView.map.add_layer(this._overlayLayer); } catch (e) { Utils.debug(e); error = true; } callback(error, bbox, this); }); } _parseContent() { /* Unimplemented */ } unload() { this._mapView.map.remove_layer(this._markerLayer); this._mapView.map.remove_layer(this._overlayLayer); this._mapView.map.viewport.disconnect(this._zoomId); } } GObject.registerClass({ Abstract: true }, ShapeLayer); 07070100000269000081A4000000000000000000000001664134090000081B000000000000000000000000000000000000002900000000gnome-maps-46.11/src/shortPrintLayout.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Amisha Singla */ import GObject from 'gi://GObject'; import {PrintLayout} from './printLayout.js'; /* All following constants are ratios of surface size to page size */ const _Instruction = { SCALE_X: 1.0, SCALE_Y: 0.07, SCALE_MARGIN: 0.01 }; export class ShortPrintLayout extends PrintLayout { constructor({route, ...params}) { /* (Header + map) + instructions */ //let totalSurfaces = 2 + route.turnPoints.length; // for now don't count the map surface, as we don't have that yet let totalSurfaces = 1 + route.turnPoints.length; params.totalSurfaces = totalSurfaces; super(params); this._route = route; } render() { super.render(); let instructionWidth = _Instruction.SCALE_X * this._pageWidth; let instructionHeight = _Instruction.SCALE_Y * this._pageHeight; let instructionMargin = _Instruction.SCALE_MARGIN * this._pageHeight; let dy = 0; this._route.turnPoints.forEach((turnPoint) => { dy = instructionHeight + instructionMargin; this._adjustPage(dy); this._drawInstruction(instructionWidth, instructionHeight, turnPoint); this._cursorY += dy; }); } } GObject.registerClass(ShortPrintLayout); 0707010000026A000081A40000000000000000000000016641340900005674000000000000000000000000000000000000002000000000gnome-maps-46.11/src/sidebar.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2011, 2012, 2013 Red Hat, Inc. * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Zeeshan Ali (Khattak) * Mattias Bengtsson */ import Cairo from 'cairo'; import Gdk from 'gi://Gdk'; import GLib from 'gi://GLib'; import GObject from 'gi://GObject'; import Gtk from 'gi://Gtk'; import {Application} from './application.js'; import {InstructionRow} from './instructionRow.js'; import {PlaceStore} from './placeStore.js'; import {QueryPoint} from './routeQuery.js'; import {RouteEntry} from './routeEntry.js'; import {RouteQuery} from './routeQuery.js'; import {StoredRoute} from './storedRoute.js'; import {TransitArrivalRow} from './transitArrivalRow.js'; import {TransitItineraryRow} from './transitItineraryRow.js'; import {TransitLegRow} from './transitLegRow.js'; import {TransitMoreRow} from './transitMoreRow.js'; import {TransitOptionsPanel} from './transitOptionsPanel.js'; import * as Utils from './utils.js'; export class Sidebar extends Gtk.Grid { constructor({ mapView, ...params }) { super(params); this._mapView = mapView; this._query = Application.routeQuery; this._initInstructionList(); /* I could not get the custom GTK+ template widget to init properly * from the UI file, we also need to manually insert the transit * itinerary header widget into the GtkStack to get the correct * animation direction. */ this._transitOptionsPanel = new TransitOptionsPanel({ visible: true }); this._transitHeader.add_named(this._transitOptionsPanel, 'options'); this._transitHeader.add_named(this._transitItineraryHeader, 'itinerary-header'); this._initTransportationToggles(this._modePedestrianToggle, this._modeBikeToggle, this._modeCarToggle, this._modeTransitToggle); this._initQuerySignals(); this._query.addPoint(0); this._query.addPoint(1); this._switchRoutingMode(Application.routeQuery.transportation); /* Enable/disable transit mode switch based on the presence of * public transit providers. */ this._modeTransitToggle.sensitive = Application.routingDelegator.transitRouter.enabled; } focusStartEntry() { this._entryList.get_row_at_index(0).child.entry.grab_focus(); } _initTransportationToggles(pedestrian, bike, car, transit) { let transport = RouteQuery.Transportation; let onToggle = function(mode, button) { let previousMode = this._query.transportation; if (button.active && previousMode !== mode) { this._switchRoutingMode(mode); this._query.transportation = mode; } }; pedestrian.connect('toggled', onToggle.bind(this, transport.PEDESTRIAN)); car.connect('toggled', onToggle.bind(this, transport.CAR)); bike.connect('toggled', onToggle.bind(this, transport.BIKE)); transit.connect('toggled', onToggle.bind(this, transport.TRANSIT)) let setToggles = function() { switch(Application.routeQuery.transportation) { case transport.PEDESTRIAN: pedestrian.active = true; break; case transport.CAR: car.active = true; break; case transport.BIKE: bike.active = true; break; case transport.TRANSIT: transit.active = true; break; } this._switchRoutingMode(Application.routeQuery.transportation); }; setToggles.bind(this)(); this._query.connect('notify::transportation', setToggles.bind(this)); } _switchRoutingMode(mode) { if (mode === RouteQuery.Transportation.TRANSIT) { Application.routingDelegator.useTransit = true; this._linkButtonStack.visible_child_name = 'transit'; this._transitOptionsPanel.reset(); this._transitRevealer.reveal_child = true; } else { Application.routingDelegator.useTransit = false; this._linkButtonStack.visible_child_name = 'turnByTurn'; this._transitRevealer.reveal_child = false; Application.routingDelegator.transitRouter.plan.deselectItinerary(); } this._clearInstructions(); } _initQuerySignals() { this._numRouteEntries = 0; this._query.connect('point-added', (obj, point, index) => { this._createRouteEntry(index, point); this._numRouteEntries++; }); this._query.connect('point-removed', (obj, point, index) => { let row = this._entryList.get_row_at_index(index); this._entryList.remove(row); this._numRouteEntries--; }); } _cancelStore() { GLib.source_remove(this._storeRouteTimeoutId); this._storeRouteTimeoutId = 0; } _createRouteEntry(index, point) { let type; if (index === 0) type = RouteEntry.Type.FROM; else if (index === this._numRouteEntries) type = RouteEntry.Type.TO; else type = RouteEntry.Type.VIA; let routeEntry = new RouteEntry({ type: type, point: point, mapView: this._mapView }); routeEntry.entry.connect('notify::place', () => { this._onRouteEntrySelectedPlace(routeEntry.entry); }); this._entryList.insert(routeEntry, index); if (type === RouteEntry.Type.FROM) { routeEntry.button.connect('clicked', () => { let lastIndex = this._numRouteEntries; this._query.addPoint(lastIndex - 1); // focus on the newly added point's entry this._entryList.get_row_at_index(lastIndex - 1).get_child().entry.grab_focus(); }); this.connect('notify::child-revealed', () => { if (this.child_revealed) routeEntry.entry.grab_focus(); }); } else if (type === RouteEntry.Type.VIA) { routeEntry.button.connect('clicked', () => { let row = routeEntry.get_parent(); this._query.removePoint(row.get_index()); }); } else if (type === RouteEntry.Type.TO) { routeEntry.button.connect('clicked', this._reverseRoutePoints.bind(this)); } this._initRouteDragAndDrop(routeEntry); } _onRouteEntrySelectedPlace(entry) { let [index, numEntries] = this._getIndexForRouteEntryAndNumEntries(entry); /* if a new place is selected and it's not the last entry, focus next * entry */ if (entry.place && index < numEntries - 1) { let nextPlaceEntry = this._entryList.get_row_at_index(index + 1).get_child().entry; if (!nextPlaceEntry.place) nextPlaceEntry.grab_focus(); } } _getIndexForRouteEntryAndNumEntries(entry) { let index = 0; let foundIndex = -1; for (let item of this._entryList) { let routeEntry = item.get_child(); if (routeEntry.entry === entry) foundIndex = index; index++; } return [foundIndex, index]; } // this is needed to be called on shutdown to avoid a GTK warning unparentSearchPopovers() { for (let item of this._entryList) { item.get_child().entry.popover.unparent(); } } _initInstructionList() { let route = Application.routingDelegator.route; let transitPlan = Application.routingDelegator.transitRouter.plan; route.connect('reset', () => { this._clearInstructions(); let length = 0; for (let entry of this._entryList) { length++; } for (let index = 1; index < (length - 1); index++) { this._query.removePoint(1); } }); transitPlan.connect('reset', () => { this._clearTransitOverview(); this._showTransitOverview(); this._instructionStack.visible_child = this._transitWindow; /* don't remove query points as with the turn-based routing, * since we might get "no route" because of the time selected * and so on */ this._transitAttributionLabel.label = ''; }); transitPlan.connect('no-more-results', () => { // set the "load more" row to indicate no more results let loadMoreRow; for (let row of this._transitOverviewListBox) { if (row instanceof TransitMoreRow) loadMoreRow = row; } loadMoreRow.showNoMore(); }); this._query.connect('run', () => { this._instructionStack.visible_child = this._instructionSpinner; }); this._query.connect('notify', () => { if (this._instructionStack.visible_child !== this._instructionSpinner && this._instructionStack.visible_child !== this._errorLabel) { if (this._query.transportation === RouteQuery.Transportation.TRANSIT) { this._clearTransitOverview(); this._showTransitOverview(); this._transitAttributionLabel.label = ''; } else { this._clearInstructions(); } } if (this._storeRouteTimeoutId) this._cancelStore(); }); route.connect('update', () => { this._clearInstructions(); if (this._storeRouteTimeoutId) this._cancelStore(); this._storeRouteTimeoutId = GLib.timeout_add(null, 5000, () => { let placeStore = Application.placeStore; let places = this._query.filledPoints.map(function(point) { return point.place; }); let storedRoute = new StoredRoute({ transportation: this._query.transportation, route: route, places: places, geoclue: Application.geoclue }); if (!storedRoute.containsNull && !storedRoute.containsCurrentLocation) { placeStore.addPlace(storedRoute); } this._storeRouteTimeoutId = 0; }); route.turnPoints.forEach((turnPoint) => { let row = new InstructionRow({ turnPoint: turnPoint, transportation: this._query.transportation} ); this._instructionList.insert(row, -1); }); /* Translators: %s is a time expression with the format "%f h" or "%f min" */ this._timeInfo.label = _("Estimated time: %s").format(Utils.prettyTime(route.time)); this._distanceInfo.label = Utils.prettyDistance(route.distance); }); this._instructionList.connect('row-selected', (listbox, row) => { if (row) this._mapView.showTurnPoint(row.turnPoint); }); transitPlan.connect('update', () => { this._updateTransitAttribution(); this._clearTransitOverview(); this._showTransitOverview(); this._populateTransitItineraryOverview(); }); /* use list separators for the transit itinerary overview list */ this._transitOverviewListBox.set_header_func((row, prev) => { if (prev) row.set_header(new Gtk.Separator()); }); this._transitOverviewListBox.connect('row-activated', this._onItineraryOverviewRowActivated.bind(this)); this._transitItineraryBackButton.connect('clicked', this._showTransitOverview.bind(this)); // connect error handlers route.connect('error', (route, msg) => this._showError(msg)); transitPlan.connect('error', (plan, msg) => this._showError(msg)); } _showError(msg) { this._instructionStack.visible_child = this._errorLabel; this._errorLabel.label = msg; } _clearListBox(listBox) { let rows = []; for (let row of listBox) { if (row instanceof Gtk.ListBoxRow) rows.push(row); } for (let row of rows) { listBox.remove(row); } } _clearTransitOverview() { let listBox = this._transitOverviewListBox; this._clearListBox(listBox); this._instructionStack.visible_child = this._transitWindow; this._timeInfo.label = ''; this._distanceInfo.label = ''; } _clearTransitItinerary() { let listBox = this._transitItineraryListBox; this._clearListBox(listBox); } _updateTransitAttribution() { let plan = Application.routingDelegator.transitRouter.plan; if (plan.attribution) { let attributionLabel = _("Itineraries provided by %s").format(plan.attribution); if (plan.attributionUrl) { this._transitAttributionLabel.label = '%s'.format([plan.attributionUrl], attributionLabel); } else { this._transitAttributionLabel.label = attributionLabel; } } else { this._transitAttributionLabel.label = ''; } } _showTransitOverview() { let plan = Application.routingDelegator.transitRouter.plan; this._transitListStack.visible_child_name = 'overview'; this._transitHeader.visible_child_name = 'options'; plan.deselectItinerary(); } _showTransitItineraryView() { this._transitListStack.visible_child_name = 'itinerary'; this._transitHeader.visible_child_name = 'itinerary-header'; } _populateTransitItineraryOverview() { let plan = Application.routingDelegator.transitRouter.plan; plan.itineraries.forEach((itinerary) => { let row = new TransitItineraryRow({ visible: true, itinerary: itinerary }); this._transitOverviewListBox.insert(row, -1); }); /* add the "load more" row */ this._transitOverviewListBox.insert(new TransitMoreRow({ visible: true }), -1); /* add an empty list row to get a final separator */ this._transitOverviewListBox.insert(new Gtk.ListBoxRow({ visible: true }), -1); } _onItineraryActivated(itinerary) { let plan = Application.routingDelegator.transitRouter.plan; this._populateTransitItinerary(itinerary); this._showTransitItineraryView(); plan.selectItinerary(itinerary); } _onMoreActivated(row) { row.startLoading(); Application.routingDelegator.transitRouter.fetchMoreResults(); } _onItineraryOverviewRowActivated(listBox, row) { this._transitOverviewListBox.unselect_all(); if (row.itinerary) this._onItineraryActivated(row.itinerary); else this._onMoreActivated(row); } _populateTransitItinerary(itinerary) { this._transitItineraryTimeLabel.label = itinerary.prettyPrintTimeInterval(); this._transitItineraryDurationLabel.label = itinerary.prettyPrintDuration(); this._clearTransitItinerary(); for (let i = 0; i < itinerary.legs.length; i++) { let leg = itinerary.legs[i]; let row = new TransitLegRow({ leg: leg, start: i === 0, mapView: this._mapView }); this._transitItineraryListBox.insert(row, -1); } /* insert the additional arrival row, showing the arrival place and time */ this._transitItineraryListBox.insert( new TransitArrivalRow({ itinerary: itinerary, mapView: this._mapView }), -1); } _clearInstructions() { let listBox = this._instructionList; this._clearListBox(listBox); this._instructionStack.visible_child = this._instructionWindow; this._timeInfo.label = ''; this._distanceInfo.label = ''; } // Iterate over points and establish the new order of places _reorderRoutePoints(srcIndex, destIndex) { let points = this._query.points; let srcPlace = this._query.points[srcIndex].place; // Determine if we are swapping from "above" or "below" let step = (srcIndex < destIndex) ? -1 : 1; // Hold off on notifying the changes to query.points until // we have re-arranged the places. this._query.freeze_notify(); for (let i = destIndex; i !== (srcIndex + step); i += step) { // swap [points[i].place, srcPlace] = [srcPlace, points[i].place]; } this._query.thaw_notify(); } /* The reason we don't just use the array .reverse() function is that we * need to update the place parameters on the actual point objects in the * array to fire the query notify signal that will initiate an update. */ _reverseRoutePoints() { let points = this._query.points; let length = points.length; this._query.freeze_notify(); for (let i = 0; i < length / 2; i++) { let p1 = points[i].place; let p2 = points[length - i - 1].place; points[i].place = p2; points[length - i - 1].place = p1; } this._query.thaw_notify(); } _onDragDrop(row, point) { let srcIndex = this._query.points.indexOf(point); let destIndex = row.get_index(); this._reorderRoutePoints(srcIndex, destIndex); return true; } // Drag ends, show the dragged row again. _onDragEnd(row) { row.opacity = 1.0; } _onDragPrepare(point, source, x, y) { return Gdk.ContentProvider.new_for_value(point); } // Drag begins, set the correct drag icon and dim the dragged row. _onDragBegin(source, row) { let routeEntry = row.get_child(); let {x, y, width, height} = row.get_allocation(); let paintable = new Gtk.WidgetPaintable({ widget: routeEntry }); source.set_icon(paintable, 0, 0); row.opacity = 0.6; } // Set up drag and drop between RouteEntrys. The drag source is from a // GtkEventBox that contains the start/end icon next in the entry. And // the drag destination is the ListBox row. _initRouteDragAndDrop(routeEntry) { let dragIcon = routeEntry.icon; let row = routeEntry.get_parent(); let dragSource = new Gtk.DragSource(); dragIcon.add_controller(dragSource); dragSource.connect('prepare', this._onDragPrepare.bind(this, routeEntry.point)); dragSource.connect('drag-begin', (source, drag, widget) => this._onDragBegin(source, row)); dragSource.connect('drag-end', (source, dele, data) => this._onDragEnd(row)); let dropTarget = Gtk.DropTarget.new(QueryPoint, Gdk.DragAction.COPY); row.add_controller(dropTarget); dropTarget.connect('drop', (target, value, x, y, data) => this._onDragDrop(row, value)); } } GObject.registerClass({ Template: 'resource:///org/gnome/Maps/ui/sidebar.ui', InternalChildren: [ 'distanceInfo', 'entryList', 'instructionList', 'instructionWindow', 'instructionSpinner', 'instructionStack', 'errorLabel', 'modeBikeToggle', 'modeCarToggle', 'modePedestrianToggle', 'modeTransitToggle', 'timeInfo', 'linkButtonStack', 'transitWindow', 'transitRevealer', //'transitOptionsPanel', 'transitHeader', 'transitListStack', 'transitOverviewListBox', 'transitItineraryHeader', 'transitItineraryListBox', 'transitItineraryBackButton', 'transitItineraryTimeLabel', 'transitItineraryDurationLabel', 'transitAttributionLabel'] }, Sidebar); 0707010000026B000081A40000000000000000000000016641340900001AA8000000000000000000000000000000000000002400000000gnome-maps-46.11/src/storedRoute.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2015 Jonas Danielsson * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA * * Author: Jonas Danielsson */ import GObject from 'gi://GObject'; import Gtk from 'gi://Gtk'; import Shumate from 'gi://Shumate'; import {Place} from './place.js'; import {Route, TurnPoint} from './route.js'; import {RouteQuery} from './routeQuery.js'; import * as epaf from './epaf.js'; // directional override markers const _RLM = '\u200F'; const _LRM = '\u200E'; export class StoredRoute extends Place { constructor({route, transportation, places, geoclue, ...params}) { super(params); this._transportation = transportation; this.route = new Route(); this.route.update({ path: route.path, turnPoints: route.turnPoints, distance: route.distance, time: route.time, bbox: route.bbox }); this._rtl = Gtk.get_locale_direction() === Gtk.TextDirection.RTL; this.places = places; let directionMarker = this._rtl ? _RLM : _LRM; let arrow = this._rtl ? '←' : '→'; this.name = directionMarker + this.places[0].name + directionMarker + arrow + directionMarker + this.places.last().name; this._containsCurrentLocation = false; let currentLocation = null; if (geoclue) currentLocation = geoclue.place; this.places.forEach((place) => { if (currentLocation && place === currentLocation) this._containsCurrentLocation = true; }); /** For forward compatibility. @private */ this._originalJSON = undefined; /** For forward compatibility. @private */ this._originalRouteJSON = undefined; } get viaString() { let directionMarker = this._rtl ? _RLM : _LRM; let arrow = this._rtl ? '←' : '→'; return this.places.map(function(place) { return directionMarker + place.name; }).join(directionMarker + arrow); } get transportation() { return this._transportation; } get uniqueID() { return this._transportation + '-' + this.places.map(function(place) { return [place.osmType, place.osmId].join('-'); }).join('-'); } get containsCurrentLocation() { return this._containsCurrentLocation; } get containsNull() { let hasNull = false; for (let p = 0; p < this.places.length; p++) { if (!this.places[p].name) { hasNull = true; break; } } return hasNull; } _getIconName() { let transport = RouteQuery.Transportation; switch (this._transportation) { case transport.PEDESTRIAN: return 'route-pedestrian-symbolic'; case transport.BIKE: return 'route-bike-symbolic'; case transport.CAR: return 'route-car-symbolic'; default: return 'route-button-symbolic'; } } toJSON() { let turnPoints = this.route.turnPoints.map(function(turnPoint) { let coordinate = { latitude: turnPoint.coordinate.latitude, longitude: turnPoint.coordinate.longitude }; return { coordinate: coordinate, type: turnPoint.type, distance: turnPoint.distance, instruction: turnPoint.instruction }; }); let path = epaf.encode(this.route.path); let route = {...this._originalRouteJSON, path: path, turnPoints: turnPoints, distance: this.route.distance, time: this.route.time }; let places = this.places.map(function(place) { return place.toJSON(); }); return {...this._originalJSON, id: -1, transportation: this._transportation, route: route, places: places }; } static fromJSON(obj) { let props; let places = []; let route; let transportation = null; for (let key in obj) { let prop = obj[key]; switch(key) { case 'transportation': transportation = prop; break; case 'route': route = new Route(); prop.path = epaf.decode(prop.path); prop.turnPoints = prop.turnPoints.map((turnPoint) => { let lat = turnPoint.coordinate.latitude; let lon = turnPoint.coordinate.longitude; let coordinate = new Shumate.Coordinate({ latitude: lat, longitude: lon }); return new TurnPoint({ coordinate: coordinate, type: turnPoint.type, distance: turnPoint.distance, instruction: turnPoint.instruction }); }); route.update(prop); break; case 'places': for (const p of prop) { const place = Place.fromJSON(p); /* If a place can't be deserialized, assume the whole route is either corrupt or from a newer version of Maps. */ if (place === null) return null; places.push(Place.fromJSON(p)); } break; } } const result = new StoredRoute({ transportation: transportation, route: route, places: places }); result._originalJSON = obj; result._originalRouteJSON = obj.route; return result; } } GObject.registerClass(StoredRoute); 0707010000026C000081A4000000000000000000000001664134090000221D000000000000000000000000000000000000001D00000000gnome-maps-46.11/src/time.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2017, Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ import Gio from 'gi://Gio'; import GLib from 'gi://GLib'; // allow using :, ., and the ratio symbol to separate hours:mins const _DELIMITERS = [':', '.', '\u2236']; // digits variants const _DIGIT_RANGE_BASES = [ // Arabic 0x0660, // Persian 0x06f0, // Nko 0x07c0, // Devanagari 0x0966, // Bengali 0x09e6, // Gurmukhi 0x0a66, // Gujarati 0x0ae6, // Oriya 0x0b66, // Tamil 0x0be6, // Telugu 0x0c66, // Kannada 0x0c80, // Malayalam 0x0d66, // Sinhala 0x0de6, // Thai 0x0e50, // Lao 0x0ed0, // Tibetan 0x0f20, // Myanmar 0x1090, // Khmer 0x17e0, // Mongolian 0x1810, // Limbu 0x1946, // Tai lue 0x19d0, // Tai Tham 0x1a90, // Balinese 0x1b50, // Sundanese 0x1bb0, // Lepcha 0x1c40 ]; // in org.gnome.desktop.interface const CLOCK_FORMAT_SCHEMA = 'org.gnome.desktop.interface'; const CLOCK_FORMAT_KEY = 'clock-format'; const PORTAL_BUS_NAME = 'org.freedesktop.portal.Desktop'; const PORTAL_OBJECT_PATH = '/org/freedesktop/portal/desktop'; const PORTAL_SETTINGS_INTERFACE = 'org.freedesktop.portal.Settings'; let _desktopSettings = new Gio.Settings({ schema_id: CLOCK_FORMAT_SCHEMA }); let _clockFormat; let _portal; const _timeFormat24 = new Intl.DateTimeFormat([], { hour: '2-digit', minute: '2-digit', hour12: false, timeZone: 'UTC'}); const _timeFormat12 = new Intl.DateTimeFormat([], { hour: '2-digit', minute: '2-digit', hour12: true, timeZone: 'UTC'}); /* parse a time from a fixed set of free-formats into a string representation: * hour:min * * Examples: * "10:00" → "10:00" * "1:00pm" → "13:00" * "0800" → "08:00" * "10.30" → "10:30" * "12" → "12:00" * * TODO: maybe try to use some library to get better locale handling, * or push for something in GLib */ export function parseTimeString(timeString) { let pmSet = false; let hours; let mins; /* remove extra whitespaces */ timeString = timeString.replace(/\s+/g, ''); if (timeString.endsWith('am')) { timeString = timeString.substring(0, timeString.length - 2); } else if (timeString.endsWith('pm')) { timeString = timeString.substring(0, timeString.length - 2); pmSet = true; } /* remove delimiting characters if they occur at position 3 (hh:mm) * or position 2 (h:mm) */ if (_DELIMITERS.includes(timeString.charAt(2))) timeString = timeString.substring(0, 2) + timeString.substring(3); else if (_DELIMITERS.includes(timeString.charAt(1))) timeString = timeString.substring(0, 1) + timeString.substring(2); // translate localized digits to corresponding Latin digits let translatedTimeString = ''; for (let i = 0; i < timeString.length; i++) { let c = timeString.charCodeAt(i); _DIGIT_RANGE_BASES.forEach((base) => { if (c >= base && c < base + 10) c = (c - base) + 0x30; }); translatedTimeString += String.fromCharCode(c); } if (translatedTimeString.length === 4) { /* expect a full time specification (hours, minutes) */ hours = translatedTimeString.substring(0, 2); mins = translatedTimeString.substring(2, 4); } else if (timeString.length === 3) { /* interpret a 3 digit string as h:mm */ hours = '0' + translatedTimeString.substring(0, 1); mins = translatedTimeString.substring(1, 3); } else if (translatedTimeString.length === 2) { /* expect just the hour part */ hours = translatedTimeString.substring(0, 2); mins = '00'; } else if (translatedTimeString.length === 1) { /* expect just the hour part, one digit */ hours = '0' + translatedTimeString; mins = '00'; } else { /* this makes no sense, just bail out */ return null; } /* check if the parts can be interpreted as numbers */ if (hours % 1 === 0 && mins % 1 === 0) { if (pmSet) hours = parseInt(hours) + 12; /* if the hours or minutes is out-of-range, bail out */ if (hours < 0 || hours > 24 || mins < 0 || mins > 59) return null; return hours + ':' + mins; } else { return null; } } function setupClockFormatPortal() { _portal = Gio.DBusProxy.new_for_bus_sync(Gio.BusType.SESSION, Gio.DBusProxyFlags.NONE, null, PORTAL_BUS_NAME, PORTAL_OBJECT_PATH, PORTAL_SETTINGS_INTERFACE, null); const result = _portal.call_sync('Read', new GLib.Variant('(ss)', [CLOCK_FORMAT_SCHEMA, CLOCK_FORMAT_KEY]), Gio.DBusCallFlags.NONE, -1, null); _portal.connect('g-signal', (proxy, senderName, signalName, parameters) => { if (signalName !== 'SettingChanged') return; _clockFormat = parameters.deepUnpack()[2].deepUnpack(); }); [_clockFormat,] = result.deepUnpack()[0].unpack().get_string(); } let _is12Hour = function() { if (!_clockFormat) { try { setupClockFormatPortal(); } catch (e) { log('Failed to get clock format from portal, fallback to GSettings'); _desktopSettings.connect('changed', (settings, key) => { if (key === CLOCK_FORMAT_KEY) _clockFormat = _desktopSettings.get_string(CLOCK_FORMAT_KEY); }); _clockFormat = _desktopSettings.get_string(CLOCK_FORMAT_KEY); } } return _clockFormat === '12h'; } // for use by unit test mocking only export function _setIs12HourFunction(f) { _is12Hour = f; } /** * Format a time as HH:mm in either 12 or 24 h * format depending on system settings * given time in ms since Epoch with an offset in * ms relative UTC. */ export function formatTimeWithTZOffset(time, offset) { let utcTimeWithOffset = time + offset; let date = new Date(); let timeFormat = _is12Hour() ? _timeFormat12 : _timeFormat24; date.setTime(utcTimeWithOffset); return timeFormat.format(date); } /** * Format a time as HH:mm in either 12 or 24 h * format depending on system settings * given hours and minutes values. */ export function formatTimeFromHoursAndMins(hours, mins) { let date = new Date(); let timeFormat = _is12Hour() ? _timeFormat12 : _timeFormat24; date.setUTCHours(hours); date.setUTCMinutes(mins); return timeFormat.format(date); } /** * Parse a time string into an array with * an absolute timestamp in ms since Unix epoch and a timezone offset * * @param {string} timeString * @param {GLib.TimeZone} defaultTimezome timezone to use if timeString doesn't specify offset * @returns {Array} timestamp in ms since Epoch, timezone offset from UTC in ms */ export function parseTime(timeString, defaultTimezone = null) { const dateTime = GLib.DateTime.new_from_iso8601(timeString, defaultTimezone); return [dateTime.to_unix() * 1000, dateTime.get_utc_offset() / 1000]; } 0707010000026D000041ED0000000000000000000000026641340900000000000000000000000000000000000000000000001F00000000gnome-maps-46.11/src/togeojson0707010000026E000081A400000000000000000000000166413409000001D3000000000000000000000000000000000000002700000000gnome-maps-46.11/src/togeojson/LICENSE DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE Version 2, December 2004 Copyright (C) 2012 Tom MacWright Everyone is permitted to copy and distribute verbatim or modified copies of this license document, and changing it is allowed as long as the name is changed. DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. You just DO WHAT THE FUCK YOU WANT TO. 0707010000026F000081ED0000000000000000000000016641340900006B8D000000000000000000000000000000000000002C00000000gnome-maps-46.11/src/togeojson/togeojson.jsimport * as Dom from '../xmldom/dom.js'; export var toGeoJSON = (function() { 'use strict'; var removeSpace = /\s*/g, trimSpace = /^\s*|\s*$/g, splitSpace = /\s+/; // generate a short, numeric hash of a string function okhash(x) { if (!x || !x.length) return 0; for (var i = 0, h = 0; i < x.length; i++) { h = ((h << 5) - h) + x.charCodeAt(i) | 0; } return h; } // all Y children of X function get(x, y) { return x.getElementsByTagName(y); } function attr(x, y) { return x.getAttribute(y); } function attrf(x, y) { return parseFloat(attr(x, y)); } // one Y child of X, if any, otherwise null function get1(x, y) { var n = get(x, y); return n.length ? n[0] : null; } // https://developer.mozilla.org/en-US/docs/Web/API/Node.normalize function norm(el) { if (el.normalize) { el.normalize(); } return el; } // cast array x into numbers function numarray(x) { for (var j = 0, o = []; j < x.length; j++) { o[j] = parseFloat(x[j]); } return o; } function clean(x) { var o = {}; for (var i in x) { if (x[i]) { o[i] = x[i]; } } return o; } // get the content of a text node, if any function nodeVal(x) { if (x) { norm(x); } return (x && x.textContent) || ''; } // get one coordinate from a coordinate array, if any function coord1(v) { return numarray(v.replace(removeSpace, '').split(',')); } // get all coordinates from a coordinate array as [[],[]] function coord(v) { var coords = v.replace(trimSpace, '').split(splitSpace), o = []; for (var i = 0; i < coords.length; i++) { o.push(coord1(coords[i])); } return o; } function coordPair(x) { var ll = [attrf(x, 'lon'), attrf(x, 'lat')], ele = get1(x, 'ele'), // handle namespaced attribute in browser heartRate = get1(x, 'gpxtpx:hr') || get1(x, 'hr'), time = get1(x, 'time'), e; if (ele) { e = parseFloat(nodeVal(ele)); if (!isNaN(e)) { ll.push(e); } } return { coordinates: ll, time: time ? nodeVal(time) : null, heartRate: heartRate ? parseFloat(nodeVal(heartRate)) : null }; } // create a new feature collection parent object function fc() { return { type: 'FeatureCollection', features: [] }; } var serializer = new Dom.XMLSerializer(); function xml2str(str) { // IE9 will create a new XMLSerializer but it'll crash immediately. // This line is ignored because we don't run coverage tests in IE9 /* istanbul ignore next */ if (str.xml !== undefined) return str.xml; return serializer.serializeToString(str); } var t = { kml: function(doc) { var gj = fc(), // styleindex keeps track of hashed styles in order to match features styleIndex = {}, // atomic geospatial types supported by KML - MultiGeometry is // handled separately geotypes = ['Polygon', 'LineString', 'Point', 'Track', 'gx:Track'], // all root placemarks in the file placemarks = get(doc, 'Placemark'), styles = get(doc, 'Style'), styleMaps = get(doc, 'StyleMap'); for (var k = 0; k < styles.length; k++) { styleIndex['#' + attr(styles[k], 'id')] = okhash(xml2str(styles[k])).toString(16); } for (var l = 0; l < styleMaps.length; l++) { styleIndex['#' + attr(styleMaps[l], 'id')] = okhash(xml2str(styleMaps[l])).toString(16); } for (var j = 0; j < placemarks.length; j++) { gj.features = gj.features.concat(getPlacemark(placemarks[j])); } function kmlColor(v) { var color, opacity; v = v || ''; if (v.substr(0, 1) === '#') { v = v.substr(1); } if (v.length === 6 || v.length === 3) { color = v; } if (v.length === 8) { opacity = parseInt(v.substr(0, 2), 16) / 255; color = '#'+v.substr(2); } return [color, isNaN(opacity) ? undefined : opacity]; } function gxCoord(v) { return numarray(v.split(' ')); } function gxCoords(root) { var elems = get(root, 'coord', 'gx'), coords = [], times = []; if (elems.length === 0) elems = get(root, 'gx:coord'); for (var i = 0; i < elems.length; i++) coords.push(gxCoord(nodeVal(elems[i]))); var timeElems = get(root, 'when'); for (var j = 0; j < timeElems.length; j++) times.push(nodeVal(timeElems[j])); return { coords: coords, times: times }; } function getGeometry(root) { var geomNode, geomNodes, i, j, k, geoms = [], coordTimes = []; if (get1(root, 'MultiGeometry')) { return getGeometry(get1(root, 'MultiGeometry')); } if (get1(root, 'MultiTrack')) { return getGeometry(get1(root, 'MultiTrack')); } if (get1(root, 'gx:MultiTrack')) { return getGeometry(get1(root, 'gx:MultiTrack')); } for (i = 0; i < geotypes.length; i++) { geomNodes = get(root, geotypes[i]); if (geomNodes) { for (j = 0; j < geomNodes.length; j++) { geomNode = geomNodes[j]; if (geotypes[i] === 'Point') { geoms.push({ type: 'Point', coordinates: coord1(nodeVal(get1(geomNode, 'coordinates'))) }); } else if (geotypes[i] === 'LineString') { geoms.push({ type: 'LineString', coordinates: coord(nodeVal(get1(geomNode, 'coordinates'))) }); } else if (geotypes[i] === 'Polygon') { var rings = get(geomNode, 'LinearRing'), coords = []; for (k = 0; k < rings.length; k++) { coords.push(coord(nodeVal(get1(rings[k], 'coordinates')))); } geoms.push({ type: 'Polygon', coordinates: coords }); } else if (geotypes[i] === 'Track' || geotypes[i] === 'gx:Track') { var track = gxCoords(geomNode); geoms.push({ type: 'LineString', coordinates: track.coords }); if (track.times.length) coordTimes.push(track.times); } } } } return { geoms: geoms, coordTimes: coordTimes }; } function getPlacemark(root) { var geomsAndTimes = getGeometry(root), i, properties = {}, name = nodeVal(get1(root, 'name')), styleUrl = nodeVal(get1(root, 'styleUrl')), description = nodeVal(get1(root, 'description')), timeSpan = get1(root, 'TimeSpan'), extendedData = get1(root, 'ExtendedData'), lineStyle = get1(root, 'LineStyle'), polyStyle = get1(root, 'PolyStyle'); if (!geomsAndTimes.geoms.length) return []; if (name) properties.name = name; if (styleUrl[0] !== '#') { styleUrl = '#' + styleUrl; } if (styleUrl && styleIndex[styleUrl]) { properties.styleUrl = styleUrl; properties.styleHash = styleIndex[styleUrl]; } if (description) properties.description = description; if (timeSpan) { var begin = nodeVal(get1(timeSpan, 'begin')); var end = nodeVal(get1(timeSpan, 'end')); properties.timespan = { begin: begin, end: end }; } if (lineStyle) { var linestyles = kmlColor(nodeVal(get1(lineStyle, 'color'))), color = linestyles[0], opacity = linestyles[1], width = parseFloat(nodeVal(get1(lineStyle, 'width'))); if (color) properties.stroke = color; if (!isNaN(opacity)) properties['stroke-opacity'] = opacity; if (!isNaN(width)) properties['stroke-width'] = width; } if (polyStyle) { var polystyles = kmlColor(nodeVal(get1(polyStyle, 'color'))), pcolor = polystyles[0], popacity = polystyles[1], fill = nodeVal(get1(polyStyle, 'fill')), outline = nodeVal(get1(polyStyle, 'outline')); if (pcolor) properties.fill = pcolor; if (!isNaN(popacity)) properties['fill-opacity'] = popacity; if (fill) properties['fill-opacity'] = fill === '1' ? 1 : 0; if (outline) properties['stroke-opacity'] = outline === '1' ? 1 : 0; } if (extendedData) { var datas = get(extendedData, 'Data'), simpleDatas = get(extendedData, 'SimpleData'); for (i = 0; i < datas.length; i++) { properties[datas[i].getAttribute('name')] = nodeVal(get1(datas[i], 'value')); } for (i = 0; i < simpleDatas.length; i++) { properties[simpleDatas[i].getAttribute('name')] = nodeVal(simpleDatas[i]); } } if (geomsAndTimes.coordTimes.length) { properties.coordTimes = (geomsAndTimes.coordTimes.length === 1) ? geomsAndTimes.coordTimes[0] : geomsAndTimes.coordTimes; } var feature = { type: 'Feature', geometry: (geomsAndTimes.geoms.length === 1) ? geomsAndTimes.geoms[0] : { type: 'GeometryCollection', geometries: geomsAndTimes.geoms }, properties: properties }; if (attr(root, 'id')) feature.id = attr(root, 'id'); return [feature]; } return gj; }, gpx: function(doc) { var i, tracks = get(doc, 'trk'), routes = get(doc, 'rte'), waypoints = get(doc, 'wpt'), // a feature collection gj = fc(), feature; for (i = 0; i < tracks.length; i++) { feature = getTrack(tracks[i]); if (feature) gj.features.push(feature); } for (i = 0; i < routes.length; i++) { feature = getRoute(routes[i]); if (feature) gj.features.push(feature); } for (i = 0; i < waypoints.length; i++) { gj.features.push(getPoint(waypoints[i])); } function getPoints(node, pointname) { var pts = get(node, pointname), line = [], times = [], heartRates = [], l = pts.length; if (l < 2) return {}; // Invalid line in GeoJSON for (var i = 0; i < l; i++) { var c = coordPair(pts[i]); line.push(c.coordinates); if (c.time) times.push(c.time); if (c.heartRate) heartRates.push(c.heartRate); } return { line: line, times: times, heartRates: heartRates }; } function getTrack(node) { var segments = get(node, 'trkseg'), track = [], times = [], heartRates = [], line; for (var i = 0; i < segments.length; i++) { line = getPoints(segments[i], 'trkpt'); if (line.line) track.push(line.line); if (line.times && line.times.length) times.push(line.times); if (line.heartRates && line.heartRates.length) heartRates.push(line.heartRates); } if (track.length === 0) return null; var properties = getProperties(node); if (times.length) properties.coordTimes = track.length === 1 ? times[0] : times; if (heartRates.length) properties.heartRates = track.length === 1 ? heartRates[0] : heartRates; return { type: 'Feature', properties: properties, geometry: { type: track.length === 1 ? 'LineString' : 'MultiLineString', coordinates: track.length === 1 ? track[0] : track } }; } function getRoute(node) { var line = getPoints(node, 'rtept'); if (!line.line) return null; var routeObj = { type: 'Feature', properties: getProperties(node), geometry: { type: 'LineString', coordinates: line.line } }; return routeObj; } function getPoint(node) { var prop = getProperties(node); prop.sym = nodeVal(get1(node, 'sym')); return { type: 'Feature', properties: prop, geometry: { type: 'Point', coordinates: coordPair(node).coordinates } }; } function getProperties(node) { var meta = ['name', 'desc', 'author', 'copyright', 'link', 'time', 'keywords'], prop = {}, k; for (k = 0; k < meta.length; k++) { prop[meta[k]] = nodeVal(get1(node, meta[k])); } return clean(prop); } return gj; }, fit: function(arrayBuffer) { var dataView = new DataView(arrayBuffer); var args = {data: dataView, offset: 0}; var definitions = {}; var gj = fc(); // a feature collection var fileHeader = getFileHeader(args); var coordinates = []; while (args.offset < fileHeader.dataSize + fileHeader.headerSize) { var record = getRecord(args); if (definitions[record.header.localType].messageName == 'Record') { var latPos = -1; var lngPos = -1; var fields = definitions[record.header.localType].fields; for (var i in fields) { if (fields[i].fieldName == 'PositionLat') latPos = i; else if (fields[i].fieldName == 'PositionLong') lngPos = i; } if (latPos >= 0 && lngPos >= 0 && record.content[lngPos] && record.content[latPos]) { coordinates.push([semicirclesToDegree(record.content[lngPos]), semicirclesToDegree(record.content[latPos])]); } } } if (coordinates.length) { var feature = { "type": "Feature", "geometry": { "type": "LineString", "coordinates": coordinates }, "properties": {} }; gj.features.push(feature); } function semicirclesToDegree(semicircles) { return semicircles * 180 / Math.pow(2, 31); } function getStringFromArray(data, offset, length) { var result = ''; for (var i = 0; i < length; i++) result += String.fromCharCode(data.getUint8(offset + i)); return result; } function getFileHeader(args) { var {data, offset} = args; var result = { headerSize: data.getUint8(offset), protocolVersion: data.getUint8(offset + 1), profileVersion: data.getUint16(offset + 2, true), dataSize: data.getUint32(offset + 4, true), magicString: getStringFromArray(data, offset + 8, 4), crc: data.getUint16(offset + 12, true) }; if (result.magicString !== '.FIT') console.error('Cannot find magic string in the file header: ' + result); args.offset += 14; return result; } function getRecordHeader(args){ var {data, offset} = args; var val = data.getUint8(offset); args.offset += 1; var headerType = (val & (1<<7)) ? 'timestamp' : 'normal'; if (headerType == 'normal') { return { headerType: headerType, messageType: (val & (1<<6)) ? 'definition' : 'data', localType: (val & 0x0f), developerFields: (val & (1<<5)) ? 1 : 0 }; } else { return { headerType: headerType, localType: (val & 0x3f), timeOffset: (val & 0x0f), developerFields: (val & (1<<5)) ? 1 : 0 }; } } function getMessageName(data) { switch(data) { case 0: return 'FileId'; case 20: return 'Record'; } return '' + data; } function getFieldName(fieldDefinitionNumber) { switch(fieldDefinitionNumber) { case 253: return 'Timestamp'; case 0: return 'PositionLat'; case 1: return 'PositionLong'; case 5: return 'Distance'; } return '' + fieldDefinitionNumber; } function getFieldTypeName(data) { switch(data) { case 0: return 'enum'; case 1: return 'sint8'; case 2: return 'uint8'; case 3: return 'sint16'; case 4: return 'uint16'; case 5: return 'sint32'; case 6: return 'uint32'; case 7: return 'string'; case 8: return 'float32'; case 9: return 'float64'; case 10: return 'uint8z'; case 11: return 'uint16z'; case 12: return 'uint32z'; case 13: return 'byte'; case 14: return 'sint64'; case 15: return 'uint64'; case 16: return 'uint64z'; } return 'unknown'; } function getFieldType(data) { return { endian: (data & (1<<7)) ? 1 : 0, reserved: (data & (1<<6 | 1<<5)) >> 5, type: getFieldTypeName(data & 0x1f), }; } function getFieldDefinition(args) { var {data, offset} = args; var fieldDefinitionNumber = data.getUint8(offset); var field = { fieldName: getFieldName(fieldDefinitionNumber), size: data.getUint8(offset + 1), fieldType: getFieldType(data.getUint8(offset + 2)) }; args.offset += 3; return field; } function getField(args, fieldDefinition, architecture) { var result = undefined; var littleEndian = architecture == 0; var {data, offset} = args; switch(fieldDefinition.fieldType.type) { case 'enum': result = data.getUint8(offset); break; case 'sint8': result = data.getInt8(offset); break; case 'sint16': result = data.getInt16(offset, littleEndian); break; case 'sint32': result = data.getInt32(offset, littleEndian); break; case 'sint64': result = data.getBigInt64(offset, littleEndian); break; case 'uint8': result = data.getUint8(offset); break; case 'uint16': result = data.getUint16(offset, littleEndian); break; case 'uint32': result = data.getUint32(offset, littleEndian); break; case 'uint64': result = data.getBigUint64(offset, littleEndian); break; case 'uint8z': result = data.getUint8(offset); break; case 'uint16z': result = data.getUint16(offset, littleEndian); break; case 'uint32z': result = data.getUint32(offset, littleEndian); break; case 'uint64z': result = data.getBigUint64(offset, littleEndian); break; case 'float32': result = data.getFloat32(offset, littleEndian); break; case 'float64': result = data.getFloat64(offset, littleEndian); break; case 'string': result = ''; for (var i = 0; i < fieldDefinition.size; i++) result += String.fromCharCode(data.getUint8(offset + i)); break; case 'byte': result = data.getUint8(offset); break; default: console.error('unsupported field type: "' + JSON.stringify(fieldDefinition.fieldType) + '"'); break; } args.offset += fieldDefinition.size; return result; } function getDefinitionContent(args, developerFields) { var {data, offset} = args; var architecture = data.getUint8(offset + 1); var littleEndian = architecture == 0; var messageNumber = data.getUint16(offset + 2, littleEndian); var result = { reserved: data.getUint8(offset), architecture: architecture, messageNumber: messageNumber, messageName: getMessageName(messageNumber), fieldsCount: data.getUint8(offset + 4), devFieldsCount: 0, fields: [] }; args.offset += 5; for (var i = 0; i < result.fieldsCount; i++) result.fields.push(getFieldDefinition(args)); if (developerFields) { var devFieldsCount = data.getUint8(args.offset); result.devFieldsCount = devFieldsCount; args.offset += 1; for (var i = 0; i < devFieldsCount; i++) result.fields.push(getFieldDefinition(args)); } return result } function getRecordContent(args, localType) { var result = []; var definition = definitions[localType]; if (definition) { for (var i = 0; i < definition.fieldsCount; i++) result.push(getField(args, definition.fields[i], i === 0, definition.architecture)); } else { console.error('not found definition: "' + localType + '"'); } return result } function getRecord(args) { var header = getRecordHeader(args); var content = undefined; if (header.headerType == 'normal' && header.messageType == 'definition') { content = getDefinitionContent(args, header.developerFields); definitions[header.localType] = content; } else { content = getRecordContent(args, header.localType); } var result = { header: header, content: content }; return result; } return gj; } }; return t; })(); if (typeof module !== 'undefined') module.exports = toGeoJSON; 07070100000270000081A40000000000000000000000016641340900000A76000000000000000000000000000000000000002000000000gnome-maps-46.11/src/transit.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2019, Marcus Lundblad. * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ import gettext from 'gettext'; import * as Utils from './utils.js'; const _ = gettext.gettext; /** * Get the label to display for the starting point of an itinerary leg. * leg: the itinerary leg * isFirstLeg: true if this is the first leg of the itinerary. */ export function getFromLabel(leg, isFirstLeg) { if (isFirstLeg) { if (leg.from) { /* Translators: this is a format string indicating instructions * starting a journey at the address given as the parameter */ return _("Start at %s").format(leg.from); } else { /* Translators: this indicates starting a journey at a location * with no set name (such as when the user started routing from * an arbitrary point on the map) */ return _("Start"); } } else { return leg.from; } } /** * Get the label to display for the destination headsign. * leg: the itinerary leg */ export function getHeadsignLabel(leg) { if (leg.transit && leg.headsign) { return leg.headsign; } else if (!leg.transit) { /* Translators: this is a format string indicating walking a certain * distance, with the distance expression being the %s placeholder */ return _("Walk %s").format(Utils.prettyDistance(leg.distance)); } else { return null; } } /** * Get the label to display for arrival of the final leg of an itinerary. */ export function getArrivalLabel(lastLeg) { if (lastLeg.to) { /* Translators: this a format string indicating arriving at the * destination of journey with the arrival address and transit * stop as the format parameter */ return _("Arrive at %s").format(lastLeg.to); } else { return _("Arrive"); } } 07070100000271000081A40000000000000000000000016641340900000824000000000000000000000000000000000000002D00000000gnome-maps-46.11/src/transitArrivalMarker.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2017 Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ import Gdk from 'gi://Gdk'; import GObject from 'gi://GObject'; import * as Color from './color.js'; import {Location} from './location.js'; import {MapMarker} from './mapMarker.js'; import {Place} from './place.js'; import * as TransitPlan from './transitPlan.js'; export class TransitArrivalMarker extends MapMarker { constructor({leg, ...params}) { let lastPoint = leg.polyline[leg.polyline.length - 1]; let location = new Location({ latitude: lastPoint.latitude, longitude: lastPoint.longitude }); let bgColor = leg.color ?? TransitPlan.DEFAULT_ROUTE_COLOR; super({...params, place: new Place({ location: location })}); let bgRed = Color.parseColor(bgColor, 0); let bgGreen = Color.parseColor(bgColor, 1); let bgBlue = Color.parseColor(bgColor, 2); let color = new Gdk.RGBA({ red: bgRed, green: bgGreen, blue: bgBlue, alpha: 1.0 }); this._image.paintable = this._paintableFromIconName('maps-point-end-symbolic', 16, color); } } GObject.registerClass(TransitArrivalMarker); 07070100000272000081A40000000000000000000000016641340900000778000000000000000000000000000000000000002A00000000gnome-maps-46.11/src/transitArrivalRow.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2017 Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ import Gdk from 'gi://Gdk'; import GObject from 'gi://GObject'; import Gtk from 'gi://Gtk'; import * as Transit from './transit.js'; export class TransitArrivalRow extends Gtk.ListBoxRow { constructor({itinerary, mapView, ...params}) { super(params); let lastLeg = itinerary.legs[itinerary.legs.length - 1]; this._mapView = mapView; this._arrivalLabel.label = Transit.getArrivalLabel(lastLeg); this._timeLabel.label = lastLeg.prettyPrintArrivalTime(); this._buttonPressGesture = new Gtk.GestureSingle(); this.add_controller(this._buttonPressGesture); this._buttonPressGesture.connect('begin', () => this._onPress(lastLeg.toCoordinate)); } _onPress(coord) { this._mapView.map.go_to_full(coord[0], coord[1], 16); } } GObject.registerClass({ Template: 'resource:///org/gnome/Maps/ui/transit-arrival-row.ui', InternalChildren: ['arrivalLabel', 'timeLabel', 'separator'] }, TransitArrivalRow); 07070100000273000081A4000000000000000000000001664134090000134B000000000000000000000000000000000000002B00000000gnome-maps-46.11/src/transitBoardMarker.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2017 Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ import Cairo from 'cairo'; import Gdk from 'gi://Gdk'; import GObject from 'gi://GObject'; import Gtk from 'gi://Gtk'; import * as Color from './color.js'; import {Location} from './location.js'; import {MapMarker} from './mapMarker.js'; import {Place} from './place.js'; import * as TransitPlan from './transitPlan.js'; import * as Utils from './utils.js'; const ICON_SIZE = 12; const MARKER_SIZE = 20; /* threashhold for route color luminance when we consider it more or less * as white, and draw an outline around the label */ const OUTLINE_LUMINANCE_THREASHHOLD = 0.9; export class TransitBoardMarker extends MapMarker { constructor({leg, ...params}) { let firstPoint = leg.polyline[0]; let location = new Location({ latitude: firstPoint.latitude, longitude: firstPoint.longitude }); super({...params, place: new Place({ location: location })}); this._image.pixel_size = MARKER_SIZE; this._image.paintable = this._createPaintable(leg); } /* Creates a Gdk.Paintable for the given transit leg, showing the * corresponding transit type icon and rendered inside a circle using the * foreground color of the icon taken from the transit legs text color * attribute and background color taken from the transit legs color * attribute. * Also draw an outline in the same color as the icon in case the * background color above a threshold to improve readability against the * map background. */ _createPaintable(leg) { try { let bgColor = leg.color ?? TransitPlan.DEFAULT_ROUTE_COLOR; let fgColor = Color.getContrastingForegroundColor(bgColor, leg.textColor ? leg.textColor : TransitPlan.DEFAULT_ROUTE_TEXT_COLOR); let hasOutline = Color.relativeLuminance(bgColor) > OUTLINE_LUMINANCE_THREASHHOLD; let bgRed = Color.parseColor(bgColor, 0); let bgGreen = Color.parseColor(bgColor, 1); let bgBlue = Color.parseColor(bgColor, 2); let fgRed = Color.parseColor(fgColor, 0); let fgGreen = Color.parseColor(fgColor, 1); let fgBlue = Color.parseColor(fgColor, 2); let fgRGBA = new Gdk.RGBA({ red: fgRed, green: fgGreen, blue: fgBlue, alpha: 1.0 }); let paintable = this._paintableFromIconName(leg.iconName, ICON_SIZE, fgRGBA); let surface = new Cairo.ImageSurface(Cairo.Format.ARGB32, MARKER_SIZE, MARKER_SIZE); let cr = new Cairo.Context(surface); let pixbuf = Gdk.pixbuf_get_from_texture(paintable); cr.setOperator(Cairo.Operator.CLEAR); cr.paint(); cr.setOperator(Cairo.Operator.OVER); cr.setSourceRGB(bgRed, bgGreen, bgBlue); cr.arc(MARKER_SIZE / 2, MARKER_SIZE / 2, MARKER_SIZE / 2, 0, Math.PI * 2); cr.fillPreserve(); Gdk.cairo_set_source_pixbuf(cr, pixbuf, (MARKER_SIZE - pixbuf.get_width()) / 2, (MARKER_SIZE - pixbuf.get_height()) / 2); cr.paint(); if (hasOutline) { cr.setSourceRGB(fgRed, fgGreen, fgBlue); cr.setLineWidth(1); cr.stroke(); } return Gdk.Texture.new_for_pixbuf( Gdk.pixbuf_get_from_surface(surface, 0, 0, MARKER_SIZE, MARKER_SIZE)); } catch (e) { Utils.debug('Failed to load image: %s'.format(e.message)); return null; } } } GObject.registerClass(TransitBoardMarker); 07070100000274000081A4000000000000000000000001664134090000162E000000000000000000000000000000000000002C00000000gnome-maps-46.11/src/transitItineraryRow.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2017 Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ import GObject from 'gi://GObject'; import Gtk from 'gi://Gtk'; import {TransitRouteLabel} from './transitRouteLabel.js'; // maximum number of legs to show before abbreviating with a … in the middle const MAX_LEGS_SHOWN = 8; export class TransitItineraryRow extends Gtk.ListBoxRow { constructor({itinerary, ...params}) { super(params); this._itinerary = itinerary; this._timeLabel.label = this._itinerary.prettyPrintTimeInterval(); this._durationLabel.label = this._itinerary.prettyPrintDuration(); this._populateSummary(); } get itinerary() { return this._itinerary; } _populateSummary() { let length = this._itinerary.legs.length; /* use compacted route labels when more than 2 legs, to avoid * overflowing the sidebar width */ let useCompact = length > 2; /* don't show the route labels if too much space is consumed, * the constant 26 here was empiracally tested out... */ let estimatedSpace = this._calculateEstimatedSpace(); let useContractedLabels = estimatedSpace > 26; if (length > MAX_LEGS_SHOWN) { /* ellipsize list with horizontal dots to avoid overflowing and * expanding the sidebar */ let firstPart = this._itinerary.legs.slice(0, MAX_LEGS_SHOWN / 2); let lastPart = this._itinerary.legs.slice(-MAX_LEGS_SHOWN / 2); this._renderLegs(firstPart, 0, true, true); this._summaryGrid.attach(new Gtk.Label({ visible: true, label: '\u22ef' } ), firstPart.length * 2, 0, 1, 1); this._renderLegs(lastPart, firstPart.length * 2 + 1, true, true); } else { this._renderLegs(this._itinerary.legs, 0, useCompact, useContractedLabels); } } /* * Render a list of legs. * legs: array of legs to render * startPosition: start position in grid to render at * useCompact: true if compact rendering (without route designations) * useContractedLabels: true to use contracted route labels, if possible */ _renderLegs(legs, startPosition, useCompact, useContractedLabels) { let length = legs.length; legs.forEach((leg, i) => { this._summaryGrid.attach(this._createLeg(leg, useCompact, useContractedLabels), startPosition + i * 2, 0, 1, 1); // render a separator label unless the last leg to render if (i !== length - 1) this._summaryGrid.attach(new Gtk.Label({ visible: true, label: '-' }), startPosition + i * 2 + 1, 0, 1, 1); }); } /* calculate an estimated relative space-consumption for rendering, * this is done based on route label character lengths and a fixed * "placeholder" amount for mode icons and separators, since doing an * exact pixel-correct calculation would be hard depending on fonts and * themes */ _calculateEstimatedSpace() { let length = this._itinerary.legs.length; /* assume mode icons and the separators consume about twice the space of * characters */ let space = 4 * length - 2; this._itinerary.legs.forEach(function(leg) { if (leg.transit) space += leg.compactRoute.length; }); return space; } _createLeg(leg, useCompact, useContractedLabels) { let icon = new Gtk.Image({ icon_name: leg.iconName, visible: true }); icon.get_style_context().add_class('sidebar-icon'); if (!leg.transit || useContractedLabels) { /* if this is a non-transit leg (walking), or in case we should * display only a mode icon (to save space), insert a sole icon */ return icon; } else { /* for transit legs put besides a short route label */ let grid = new Gtk.Grid({ visible: true, column_spacing: 2 }); grid.attach(icon, 0, 0, 1, 1); grid.attach(new TransitRouteLabel({ leg: leg, compact: useCompact, visible: true }), 1, 0, 1, 1); return grid; } } } GObject.registerClass({ Template: 'resource:///org/gnome/Maps/ui/transit-itinerary-row.ui', InternalChildren: ['timeLabel', 'durationLabel', 'summaryGrid'] }, TransitItineraryRow); 07070100000275000081A40000000000000000000000016641340900001DA6000000000000000000000000000000000000002600000000gnome-maps-46.11/src/transitLegRow.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2017 Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ import gettext from 'gettext'; import Gdk from 'gi://Gdk'; import GLib from 'gi://GLib'; import GObject from 'gi://GObject'; import Gtk from 'gi://Gtk'; import Pango from 'gi://Pango'; import {InstructionRow} from './instructionRow.js'; import * as Transit from './transit.js'; import {TransitRouteLabel} from './transitRouteLabel.js'; import {TransitStopRow} from './transitStopRow.js'; import * as Utils from './utils.js'; const _ = gettext.gettext; export class TransitLegRow extends Gtk.ListBoxRow { constructor({leg, start, mapView, ...params}) { super(params); this._leg = leg; this._start = start; this._mapView = mapView; this._modeImage.icon_name = this._leg.iconName; this._fromLabel.label = Transit.getFromLabel(this._leg, this._start); if (this._leg.transit) { let routeLabel = new TransitRouteLabel({ leg: this._leg }); this._routeGrid.attach(routeLabel, 0, 0, 1, 1); this._agencyLabel.visible = true; if (this._leg.agencyUrl) { let url = GLib.markup_escape_text(this._leg.agencyUrl, -1); /* we need to double-escape the tooltip text, as GTK+ treats it as * markup */ let tooltip = GLib.markup_escape_text(url, -1); this._agencyLabel.label = '%s'.format(url, tooltip, this._leg.agencyName); } else { this._agencyLabel.label = this._leg.agencyName; } } else { this._expandButton.tooltip_text = _("Show walking instructions"); this._collapsButton.tooltip_text = _("Hide walking instructions"); } if (!this._leg.transit || this._leg.headsign) { /* Restrict headsign label to 20 characters to avoid horizontally * overflowing the sidebar. */ let headsignLabel = new Gtk.Label({ visible: true, can_focus: false, use_markup: true, hexpand: true, margin_start: 6, max_width_chars: 20, ellipsize: Pango.EllipsizeMode.END, halign: Gtk.Align.START }); let label = GLib.markup_escape_text(Transit.getHeadsignLabel(this._leg), -1); headsignLabel.label = '%s'.format(label); headsignLabel.get_style_context().add_class('dim-label'); this._routeGrid.attach(headsignLabel, this._leg.transit ? 1 : 0, 0, 1, 1); } this._timeLabel.label = this._leg.prettyPrintTime({ isStart: this._start }); if (this._hasIntructions()) this._populateInstructions(); else this._footerStack.visible_child_name = 'separator'; this._expandButton.connect('clicked', this._expand.bind(this)); this._collapsButton.connect('clicked', this._collaps.bind(this)); this._instructionList.connect('row-selected', (listbox, row) => { if (row) { if (row.turnPoint) this._mapView.showTurnPoint(row.turnPoint); else this._mapView.showTransitStop(row.stop, this._leg); } }); this._buttonPressGesture = new Gtk.GestureSingle(); this._grid.add_controller(this._buttonPressGesture); this._buttonPressGesture.connect('begin', () => this._onPress()); this._isExpanded = false; } _onPress() { if (this._isExpanded) { this._collaps(); } else { this._mapView.map.go_to_full(this._leg.fromCoordinate[0], this._leg.fromCoordinate[1], 16); if (this._hasIntructions()) this._expand(); } } _expand() { this._footerStack.visible_child_name = 'separator'; this._detailsRevealer.reveal_child = true; /* collaps the time label down to just show the start time when * revealing intermediate stop times, as the arrival time is displayed * at the last stop */ this._timeLabel.label = this._leg.prettyPrintDepartureTime(); this._isExpanded = true; } _collaps() { this._footerStack.visible_child_name = 'expander'; this._detailsRevealer.reveal_child = false; this._timeLabel.label = this._leg.prettyPrintTime({ isStart: this._start }); this._isExpanded = false; } _hasIntructions() { return this._leg.transit || this._leg.walkingInstructions; } _populateInstructions() { if (this._leg.transit) { if (this._leg.intermediateStops) { let stops = this._leg.intermediateStops; for (let index = 0; index < stops.length; index++) { let stop = stops[index]; let row = new TransitStopRow({ visible: true, stop: stop, final: index === stops.length - 1 }); this._instructionList.insert(row, -1); } } } else { /* don't output the starting and ending instructions from the walk * route, since these are explicitly added by the itinerary */ for (let index = 1; index < this._leg.walkingInstructions.length - 1; index++) { let instruction = this._leg.walkingInstructions[index]; let row = new InstructionRow({ visible: true, turnPoint: instruction }); this._instructionList.insert(row, -1); } } } } GObject.registerClass({ Template: 'resource:///org/gnome/Maps/ui/transit-leg-row.ui', InternalChildren: ['modeImage', 'fromLabel', 'routeGrid', 'timeLabel', 'footerStack', 'expandButton', 'detailsRevealer', 'agencyLabel', 'collapsButton', 'instructionList', 'grid'] }, TransitLegRow); 07070100000276000081A40000000000000000000000016641340900000786000000000000000000000000000000000000002700000000gnome-maps-46.11/src/transitMoreRow.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2017 Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ import gettext from 'gettext'; import GObject from 'gi://GObject'; import Gtk from 'gi://Gtk'; import {Application} from './application.js'; const _ = gettext.gettext; export class TransitMoreRow extends Gtk.ListBoxRow { constructor(params) { super(params); if (Application.routeQuery.arriveBy) this._label.label = _("Load earlier alternatives"); else this._label.label = _("Load later alternatives"); } startLoading() { this._stack.visible_child_name = 'spinner'; } showNoMore() { this.activatable = false; this._label.get_style_context().add_class('dim-label'); this._stack.visible_child_name = 'label'; if (Application.routeQuery.arriveBy) this._label.label = _("No earlier alternatives found."); else this._label.label = _("No later alternatives found."); } } GObject.registerClass({ Template: 'resource:///org/gnome/Maps/ui/transit-more-row.ui', InternalChildren: ['stack', 'label'] }, TransitMoreRow); 07070100000277000081A400000000000000000000000166413409000008A4000000000000000000000000000000000000002700000000gnome-maps-46.11/src/transitOptions.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2017 Marcus Lundblad. * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ export class TransitOptions { constructor() { this._showAllTransitTypes = true; this._transitTypes = []; } get showAllTransitTypes() { return this._showAllTransitTypes; } /* When set to true, show any mode of transportation, else only show modes * added with addTransitType() */ set showAllTransitTypes(showAllTransitTypes) { this._showAllTransitTypes = showAllTransitTypes; this._transitTypes = []; } /* Add an explicit transport mode to show */ addTransitType(transitType) { this._showAllTransitTypes = false; this._transitTypes.push(transitType); } get transitTypes() { return this._transitTypes; } /* return true if the passed in options objects are equal, either both * accept any transit type, or both contains the same set of types, otherwise * return false */ static equals(first, second) { if (first.showAllTransitTypes && second.showAllTransitTypes) { return true; } else if (first.transitTypes.length !== second.transitTypes.length) { return false; } else { for (let type of first.transitTypes) { if (second.transitTypes.indexOf(type) === -1) return false; } return true; } } } 07070100000278000081A400000000000000000000000166413409000020DC000000000000000000000000000000000000002C00000000gnome-maps-46.11/src/transitOptionsPanel.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2017, Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ import Gio from 'gi://Gio'; import GLib from 'gi://GLib'; import GObject from 'gi://GObject'; import Gtk from 'gi://Gtk'; import {Application} from './application.js'; import * as HVT from './hvt.js'; import * as Time from './time.js'; import {TransitOptions} from './transitOptions.js'; import * as TransitPlan from './transitPlan.js'; // in org.gnome.desktop.interface const CLOCK_FORMAT_KEY = 'clock-format'; let _desktopSettings = new Gio.Settings({ schema_id: 'org.gnome.desktop.interface' }); let clockFormat = _desktopSettings.get_string(CLOCK_FORMAT_KEY); const _timeFormat = new Intl.DateTimeFormat([], { hour: '2-digit', minute: '2-digit', hour12: clockFormat === '12h' }); export class TransitOptionsPanel extends Gtk.Grid { constructor(params) { super(params); this._query = Application.routeQuery; this._initTransitOptions(); } reset() { /* reset to indicate departure now and forget any previous manually * set time and date */ this._transitTimeOptionsComboBox.active_id = 'leaveNow'; this._timeSelected = false; this._dateSelected = false; this._lastOptions = new TransitOptions(); } _initTransitOptions() { this._transitTimeOptionsComboBox.connect('changed', this._onTransitTimeOptionsComboboxChanged.bind(this)); this._transitTimeEntry.connect('activate', this._onTransitTimeEntryActivated.bind(this)); this._eventControllerFocus = new Gtk.EventControllerFocus(); this._transitTimeEntry.add_controller(this._eventControllerFocus); /* trigger an update of the query time as soon as focus leave the time * entry, to allow the user to enter a time before selecting start * and destination without having to press enter */ this._eventControllerFocus.connect('leave', () => { if (!this._query.isValid()) this._onTransitTimeEntryActivated(); }); this._transitDateButton.popover.get_child().connect('day-selected', this._onTransitDateCalenderDaySelected.bind(this)); this._transitDateButton.popover.connect('closed', this._onTransitDateClosed.bind(this)); this._transitParametersMenuButton.popover.connect('closed', this._onTransitParametersClosed.bind(this)) } _onTransitTimeOptionsComboboxChanged() { if (this._transitTimeOptionsComboBox.active_id === 'leaveNow') { this._transitTimeEntry.visible = false; this._transitDateButton.visible = false; this._query.arriveBy = false; this._query.date = null; this._query.time = null; this._timeSelected = null; this._dateSelected = null; } else { this._transitTimeEntry.visible = true; this._transitDateButton.visible = true; if (!this._timeSelected) this._transitTimeEntry.text = _timeFormat.format(new Date()); if (!this._dateSelected) this._updateTransitDateButton(GLib.DateTime.new_now_local()); if (this._transitTimeOptionsComboBox.active_id === 'arriveBy') { this._query.arriveBy = true; } else { this._query.arriveBy = false; } } } _onTransitTimeEntryActivated() { let timeString = this._transitTimeEntry.text; if (timeString && timeString.length > 0) { timeString = Time.parseTimeString(timeString); /* only trigger an update if a different time was entered */ if (timeString && timeString !== this._timeSelected) { this._query.time = timeString; /* remember that the user has selected a time */ this._timeSelected = timeString; } } } /** * Update the date select button with given date, and select the * corresponding day in the calendar shown when clicking the button. */ _updateTransitDateButton(date) { let calendar = this._transitDateButton.popover.get_child(); calendar.select_day(date); this._transitDateButton.label = /* * Translators: this is a format string giving the equivalent to * "may 29" according to the current locale's convensions. */ date.format(C_("month-day-date", "%b %e")); } _onTransitDateCalenderDaySelected() { let calendar = this._transitDateButton.popover.get_child(); let year = calendar.year; let month = calendar.month + 1; let day = calendar.day; let date = '%04d-%02d-%02d'.format(year, month, day); /* only trigger an update if a different date was selected */ if (date !== this._dateSelected) { this._query.date = date; this._transitDateButton.active = false; this._updateTransitDateButton(GLib.DateTime.new_local(year, month, day, 0, 0, 0)); /* remember that the user has already selected a date */ this._dateSelected = date; } } _onTransitDateClosed() { this._onTransitDateCalenderDaySelected(); } _createTransitOptions() { let options = new TransitOptions(); let busSelected = this._busCheckButton.active; let tramSelected = this._tramCheckButton.active; let trainSelected = this._trainCheckButton.active; let subwaySelected = this._subwayCheckButton.active; let ferrySelected = this._ferryCheckButton.active; let airplaneSelected = this._airplaneCheckButton.active; if (busSelected && tramSelected && trainSelected && subwaySelected && ferrySelected && airplaneSelected) { options.showAllTransitTypes = true; } else { if (busSelected) options.addTransitType(TransitPlan.RouteType.BUS); if (tramSelected) options.addTransitType(TransitPlan.RouteType.TRAM); if (trainSelected) options.addTransitType(TransitPlan.RouteType.TRAIN); if (subwaySelected) options.addTransitType(TransitPlan.RouteType.SUBWAY); if (ferrySelected) options.addTransitType(TransitPlan.RouteType.FERRY); if (airplaneSelected) options.addTransitType(HVT.AIR_SERVICE); } return options; } _onTransitParametersClosed() { let options = this._createTransitOptions(); if (!TransitOptions.equals(options, this._lastOptions)) { this._query.transitOptions = options; this._lastOptions = options; } } } GObject.registerClass({ Template: 'resource:///org/gnome/Maps/ui/transit-options-panel.ui', InternalChildren: ['transitTimeOptionsComboBox', 'transitTimeEntry', 'transitDateButton', 'transitDateCalendar', 'transitParametersMenuButton', 'busCheckButton', 'tramCheckButton', 'trainCheckButton', 'subwayCheckButton', 'ferryCheckButton', 'airplaneCheckButton'] }, TransitOptionsPanel); 07070100000279000081A400000000000000000000000166413409000065CC000000000000000000000000000000000000002400000000gnome-maps-46.11/src/transitPlan.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2017 Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ import gettext from 'gettext'; import GLib from 'gi://GLib'; import GObject from 'gi://GObject'; import Shumate from 'gi://Shumate'; import {BoundingBox} from './boundingBox.js'; import * as HVT from './hvt.js'; import * as Time from './time.js'; import * as Utils from './utils.js'; const _ = gettext.gettext; const ngettext = gettext.ngettext; /* * These constants corresponds to the routeType attribute of transit legs * in original GTFS specification. */ export const RouteType = { NON_TRANSIT: -1, TRAM: 0, SUBWAY: 1, TRAIN: 2, BUS: 3, FERRY: 4, /* Cable car refers to street-level cabel cars, where the propulsive * cable runs in a slot between the tracks beneath the car * https://en.wikipedia.org/wiki/Cable_car_%28railway%29 * For example the cable cars in San Francisco * https://en.wikipedia.org/wiki/San_Francisco_cable_car_system */ CABLE_CAR: 5, /* Gondola refers to a suspended cable car, typically aerial cable cars * where the car is suspended from the cable * https://en.wikipedia.org/wiki/Gondola_lift * For example the "Emirates Air Line" in London * https://en.wikipedia.org/wiki/Emirates_Air_Line_%28cable_car%29 */ GONDOLA: 6, /* Funicular refers to a railway system designed for steep inclines, * https://en.wikipedia.org/wiki/Funicular */ FUNICULAR: 7, /* Electric buses that draw power from overhead wires using poles. */ TROLLEYBUS: 11, /* Railway in which the track consists of a single rail or a beam. */ MONORAIL: 12 }; /* extra time to add to the first itinerary leg when it's a walking leg */ const WALK_SLACK = 120; export const DEFAULT_ROUTE_COLOR = '4c4c4c'; export const DEFAULT_ROUTE_TEXT_COLOR = 'ffffff'; export class Plan extends GObject.Object { constructor(params) { super(params); this.reset(); this._attribution = null; this._attributionUrl = null; } get itineraries() { return this._itineraries; } get selectedItinerary() { return this._selectedItinerary; } get attribution() { return this._attribution; } set attribution(attribution) { this._attribution = attribution; } get attributionUrl() { return this._attributionUrl; } set attributionUrl(attributionUrl) { this._attributionUrl = attributionUrl; } update(itineraries) { this._itineraries = itineraries; this.bbox = this._createBBox(); this.emit('update'); } /** * Update plan with new itineraries, setting the new itineraries if it's * the first fetch for a query, or extending the existing ones if it's * a request to load more */ updateWithNewItineraries(itineraries, arriveBy, extendPrevious) { /* sort itineraries, by departure time ascending if querying * by leaving time, by arrival time descending when querying * by arriving time */ if (arriveBy) itineraries.sort(sortItinerariesByArrivalDesc); else itineraries.sort(sortItinerariesByDepartureAsc); let newItineraries = extendPrevious ? this.itineraries.concat(itineraries) : itineraries; this.update(newItineraries); } reset() { this._itineraries = []; this.bbox = null; this._selectedItinerary = null; this._attribution = null; this._attributionUrl = null; this.emit('reset'); } noMoreResults() { this.emit('no-more-results'); } selectItinerary(itinerary) { this._selectedItinerary = itinerary; this.emit('itinerary-selected', itinerary); } deselectItinerary() { this._selectedItinerary = null; this.emit('itinerary-deselected'); } error(msg) { this.emit('error', msg); } noRouteFound() { this.emit('error', _("No route found.")); } noTimetable() { this.emit('error', _("No timetable data found for this route.")); } requestFailed() { this.emit('error', _("Route request failed.")); } noProvider() { this.emit('error', _("No provider found for this route.")); } _createBBox() { let bbox = new BoundingBox(); this._itineraries.forEach(function(itinerary) { bbox.compose(itinerary.bbox); }); return bbox; } } GObject.registerClass({ Signals: { 'update': {}, 'reset': {}, 'no-more-results': {}, 'itinerary-selected': { param_types: [GObject.TYPE_OBJECT] }, 'itinerary-deselected': {}, 'error': { param_types: [GObject.TYPE_STRING] } } }, Plan); export class Itinerary extends GObject.Object { constructor({ duration, departure, departureTimezoneOffset, arrival, arrivalTimezoneOffset, transfers, legs, ...params }) { super(params); this._duration = duration; this._departure = departure; this._departureTimezoneOffset = departureTimezoneOffset; this._arrival = arrival; this._arrivalTimezoneOffset = arrivalTimezoneOffset; this._transfers = transfers; this._legs = legs; this.bbox = this._createBBox(); } get duration() { return this._duration; } get departure() { return this._departure; } get arrival() { return this._arrival; } get transfers() { return this._transfers; } get legs() { return this._legs; } /* adjust timings of the legs of the itinerary, using the real duration of * walking legs, also sets the timezone offsets according to adjacent * transit legs */ _adjustLegTimings() { if (this.legs.length === 1 && !this.legs[0].transit) { /* if there is only one leg, and it's a walking one, just need to * adjust the arrival time */ let leg = this.legs[0]; leg.arrival = leg.departure + leg.duration * 1000; return; } for (let i = 0; i < this.legs.length; i++) { let leg = this.legs[i]; if (!leg.transit) { if (i === 0) { /* for the first leg subtract the walking time plus a * safety slack from the departure time of the following * leg */ let nextLeg = this.legs[i + 1]; leg.departure = nextLeg.departure - leg.duration * 1000 - WALK_SLACK; leg.arrival = leg.departure + leg.duration * 1000; // use the timezone offset from the first transit leg leg.agencyTimezoneOffset = nextLeg.agencyTimezoneOffset; } else { /* for walking legs in the middle or at the end, just add * the actual walking walk duration to the arrival time of * the previous leg */ let previousLeg = this.legs[i - 1]; leg.departure = previousLeg.arrival; leg.arrival = previousLeg.arrival + leg.duration * 1000; // use the timezone offset of the previous (transit) leg leg.agencyTimezoneOffset = previousLeg.agencyTimezoneOffset; } } } } _createBBox() { let bbox = new BoundingBox(); this._legs.forEach(function(leg) { bbox.compose(leg.bbox); }); return bbox; } prettyPrintTimeInterval() { /* Translators: this is a format string for showing a departure and * arrival time, like: * "12:00 – 13:03" where the placeholder %s are the actual times, * these could be rearranged if needed. */ return _("%s \u2013 %s").format(this._getDepartureTime(), this._getArrivalTime()); } _getDepartureTime() { /* take the itinerary departure time and offset using the timezone * offset of the first leg */ return Time.formatTimeWithTZOffset(this.departure, this._departureTimezoneOffset ?? this.legs[0].agencyTimezoneOffset); } _getArrivalTime() { /* take the itinerary departure time and offset using the timezone * offset of the last leg */ let lastLeg = this.legs[this.legs.length - 1]; return Time.formatTimeWithTZOffset(this.arrival, this._arrivalTimezoneOffset ?? lastLeg.agencyTimezoneOffset); } prettyPrintDuration() { let mins = Math.ceil(this.duration / 60); if (mins < 60) { let minStr = Utils.formatLocaleInteger(mins); /* translators: this is an indication for a trip duration of * less than an hour, with only the minutes part, using plural forms * as appropriate */ return ngettext("%s minute", "%s minutes", mins).format(minStr); } else { let hours = Math.floor(mins / 60); let hourStr = Utils.formatLocaleInteger(hours); mins = mins % 60; if (mins === 0) { /* translators: this is an indication for a trip duration, * where the duration is an exact number of hours (i.e. no * minutes part), using plural forms as appropriate */ return ngettext("%s hour", "%s hours", hours).format(hourStr); } else { let minStr = Utils.formatLocaleIntegerMinimumTwoDigits(mins); /* translators: this is an indication for a trip duration * where the duration contains an hour and minute part, it's * pluralized on the hours part */ return ngettext("%s:%s hour", "%s:%s hours", hours).format(hourStr, minStr); } } } adjustTimings() { this._adjustLegTimings(); this._departure = this._legs[0].departure; this._arrival = this._legs[this._legs.length - 1].arrival; this._duration = (this._arrival - this._departure) / 1000; } _getTransitDepartureLeg() { for (let i = 0; i < this._legs.length; i++) { let leg = this._legs[i]; if (leg.transit) return leg; } throw new Error('no transit leg found'); } _getTransitArrivalLeg() { for (let i = this._legs.length - 1; i >= 0; i--) { let leg = this._legs[i]; if (leg.transit) return leg; } throw new Error('no transit leg found'); } /* gets the departure time of the first transit leg */ get transitDepartureTime() { return this._getTransitDepartureLeg().departure; } /* gets the timezone offset of the first transit leg */ get transitDepartureTimezoneOffset() { return this._getTransitDepartureLeg().timezoneOffset; } /* gets the arrival time of the final transit leg */ get transitArrivalTime() { return this._getTransitArrivalLeg().arrival; } /* gets the timezone offset of the final transit leg */ get transitArrivalTimezoneOffset() { return this._getTransitArrivalLeg().timezoneOffset; } get isWalkingOnly() { return this.legs.length === 1 && !this.legs[0].isTransit; } } GObject.registerClass(Itinerary); export class Leg { constructor({ route, routeType, departure, departureTimezoneOffset, arrival, arrivalTimezoneOffset, polyline, fromCoordinate, toCoordinate, from, to, intermediateStops, headsign, isTransit, walkingInstructions, distance, duration, agencyName, agencyUrl, agencyTimezoneOffset, color, textColor, tripShortName }) { this._route = route; this._routeType = routeType; this._departure = departure; this._departureTimezoneOffset = departureTimezoneOffset, this._arrival = arrival; this._arrivalTimezoneOffset = arrivalTimezoneOffset; this._polyline = polyline; this._fromCoordinate = fromCoordinate; this._toCoordinate = toCoordinate; this._from = from; this._to = to; this._intermediateStops = intermediateStops; this._headsign = headsign; this._isTransit = isTransit; this._walkingInstructions = walkingInstructions; this._distance = distance; this._duration = duration; this._agencyName = agencyName; this._agencyUrl = agencyUrl; this._agencyTimezoneOffset = agencyTimezoneOffset; this._color = color; this._textColor = textColor; this._tripShortName = tripShortName; this.bbox = this._createBBox(); this._compactRoute = null; } get route() { return this._route; } set route(route) { this._route = route; } // try to get a shortened route name, suitable for overview rendering get compactRoute() { if (this._compactRoute) return this._compactRoute; if (this._route.startsWith(this._agencyName)) { /* if the agency name is a prefix of the route name, display the * agency name in the overview, this way we get a nice "transition" * into the expanded route showing the full route name */ this._compactRoute = this._agencyName; } else if (this._tripShortName && (this._agencyName.length < this._tripShortName.length)) { /* if the agency name is shorter than the trip short name, * which can sometimes be a more "internal" number, like a * "train number", which is less known by the general public, * prefer the agency name */ this._compactRoute = this._agencyName; } else if (this._tripShortName && this._tripShortName.length <= 6) { /* if the above conditions are unmet, use the trip short name * as a fallback if it was shorter than the original route name */ this._compactRoute = this._tripShortName; } else if (this._color) { /* as a fallback when the route has a defined color, * use an empty compact label to get a colored badge */ this._compactRoute = ''; } else { /* if none of the above is true, use the original route name, * and rely on label ellipsization */ this._compactRoute = this._route; } return this._compactRoute; } get routeType() { return this._routeType; } set routeType(routeType) { this._routeType = routeType; } get departure() { return this._departure; } set departure(departure) { this._departure = departure; } get departureTimezoneOffset() { return this._departureTimezoneOffset ?? this._agencyTimezoneOffset; } get arrival() { return this._arrival; } get arrivalTimezoneOffset() { return this._arrivalTimezoneOffset ?? this._agencyTimezoneOffset; } get timezoneOffset() { return this._agencyTimezoneOffset; } set arrival(arrival) { this._arrival = arrival; } get polyline() { if (!this._polyline) this._createPolyline(); return this._polyline; } set polyline(polyline) { this._polyline = polyline; } get fromCoordinate() { return this._fromCoordinate; } get toCoordinate() { return this._toCoordinate; } get from() { return this._from; } get to() { return this._to; } get intermediateStops() { return this._intermediateStops; } set intermediateStops(intermediateStops) { this._intermediateStops = intermediateStops; } get headsign() { return this._headsign; } get transit() { return this._isTransit; } get distance() { return this._distance; } set distance(distance) { this._distance = distance; } get duration() { return this._duration; } get agencyName() { return this._agencyName; } get agencyUrl() { return this._agencyUrl; } get agencyTimezoneOffset() { return this._agencyTimezoneOffset; } set agencyTimezoneOffset(tzOffset) { this._agencyTimezoneOffset = tzOffset; } get color() { return this._color || DEFAULT_ROUTE_COLOR; } set color(color) { this._color = color; } get textColor() { return this._textColor || DEFAULT_ROUTE_TEXT_COLOR; } set textColor(textColor) { this._textColor = textColor; } get tripShortName() { return this._tripShortName; } // create polyline from intermediate stops, or start and arrival coordinates _createPolyline() { if (this._intermediateStops) { const first = new Shumate.Coordinate({ latitude: this._fromCoordinate[0], longitude: this._fromCoordinate[1] }); const rest = this._intermediateStops.map((s) => { return new Shumate.Coordinate({ latitude: s.coordinate[0], longitude: s.coordinate[1] }); }); this._polyline = [first, ...rest]; } else { this._polyline = [new Shumate.Coordinate({ latitude: this._fromCoordinate[0], longitude: this._fromCoordinate[1] }), new Shumate.Coordinate({ latitude: this._toCoordinate[0], longitude: this._toCoordinate[1] })]; } } _createBBox() { let bbox = new BoundingBox(); this.polyline.forEach(function({ latitude, longitude }) { bbox.extend(latitude, longitude); }); return bbox; } get iconName() { if (this._isTransit) { let type = this._routeType; switch (type) { /* special case HVT codes */ case HVT.CABLE_CAR: return 'route-transit-cablecar-symbolic'; case HVT.TOURIST_RAILWAY_SERVICE: return 'route-transit-tourist-train-symbolic'; default: let hvtSupertype = HVT.supertypeOf(type); if (hvtSupertype !== -1) type = hvtSupertype; switch (type) { case RouteType.TRAM: case HVT.TRAM_SERVICE: return 'route-transit-tram-symbolic'; case RouteType.SUBWAY: case HVT.METRO_SERVICE: case HVT.URBAN_RAILWAY_SERVICE: case HVT.UNDERGROUND_SERVICE: return 'route-transit-subway-symbolic'; case RouteType.TRAIN: case HVT.RAILWAY_SERVICE: case HVT.SUBURBAN_RAILWAY_SERVICE: return 'route-transit-train-symbolic'; case RouteType.BUS: case HVT.BUS_SERVICE: case HVT.COACH_SERVICE: case HVT.TROLLEYBUS_SERVICE: /* TODO: handle a special case icon for trolleybus */ return 'route-transit-bus-symbolic'; case RouteType.FERRY: case HVT.WATER_TRANSPORT_SERVICE: case HVT.FERRY_SERVICE: return 'route-transit-ferry-symbolic'; case RouteType.CABLE_CAR: return 'route-transit-cablecar-symbolic'; case RouteType.GONDOLA: case HVT.TELECABIN_SERVICE: return 'route-transit-gondolalift-symbolic'; case RouteType.FUNICULAR: case HVT.FUNICULAR_SERVICE: return 'route-transit-funicular-symbolic'; case HVT.TAXI_SERVICE: /* TODO: should we have a dedicated taxi icon? */ return 'route-car-symbolic'; case HVT.AIR_SERVICE: return 'route-transit-airplane-symbolic'; default: /* use a fallback question mark icon in case of some future, * for now unknown mode appears */ return 'dialog-question-symbolic'; } } } else { return 'route-pedestrian-symbolic'; } } get walkingInstructions() { return this._walkingInstructions; } set walkingInstructions(walkingInstructions) { this._walkingInstructions = walkingInstructions; } /* Pretty print timing for a transit leg, set params.isStart: true when * printing for the starting leg of an itinerary. * For starting walking legs, only the departure time will be printed, * otherwise the departure and arrival time of the leg (i.e. transit ride * or an in-between walking section) will be printed. */ prettyPrintTime(params) { if (!this.transit && params.isStart) { return this.prettyPrintDepartureTime(); } else { /* Translators: this is a format string for showing a departure and * arrival time in a more compact manner to show in the instruction * list for an itinerary, like: * "12:00–13:03" where the placeholder %s are the actual times, * these could be rearranged if needed. */ return _("%s\u2013%s").format(this.prettyPrintDepartureTime(), this.prettyPrintArrivalTime()); } } prettyPrintDepartureTime() { /* take the itinerary departure time and offset using the timezone * offset of the first leg */ return Time.formatTimeWithTZOffset(this.departure, this._departureTimezoneOffset ?? this.agencyTimezoneOffset); } prettyPrintArrivalTime() { /* take the itinerary departure time and offset using the timezone * offset of the last leg */ return Time.formatTimeWithTZOffset(this.arrival, this._arrivalTimezoneOffset ?? this.agencyTimezoneOffset); } } export class Stop { constructor({ name, arrival, departure, agencyTimezoneOffset, coordinate }) { this._name = name; this._arrival = arrival; this._departure = departure; this._agencyTimezoneOffset = agencyTimezoneOffset; this._coordinate = coordinate; } get name() { return this._name; } get coordinate() { return this._coordinate; } prettyPrint(params) { if (params.isFinal) { /* take the stop arrival time and offset using the timezone * offset of the last leg */ return Time.formatTimeWithTZOffset(this._arrival, this._agencyTimezoneOffset); } else { /* take the stop departure time and offset using the timezone * offset of the first leg */ return Time.formatTimeWithTZOffset(this._departure, this._agencyTimezoneOffset); } } } function sortItinerariesByDepartureAsc(first, second) { /* always sort walk-only itineraries first, as they would always be * starting at the earliest possible departure time */ if (first.isWalkingOnly) return -1; else if (second.isWalkingOnly) return 1; else return first.departure > second.departure; } function sortItinerariesByArrivalDesc(first, second) { /* always sort walk-only itineraries first, as they would always be * ending at the latest possible arrival time */ if (first.isWalkingOnly) return -1; else if (second.isWalkingOnly) return 1; else return first.arrival < second.arrival; } 0707010000027A000081A400000000000000000000000166413409000021F3000000000000000000000000000000000000002B00000000gnome-maps-46.11/src/transitPrintLayout.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2017 Marcus Lundblad. * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ import Cairo from 'cairo'; import GObject from 'gi://GObject'; import Pango from 'gi://Pango'; import * as Color from './color.js'; import * as Gfx from './gfx.js'; import * as MapSource from './mapSource.js'; import {PrintLayout} from './printLayout.js'; import * as Transit from './transit.js'; import {TransitArrivalMarker} from './transitArrivalMarker.js'; import {TransitBoardMarker} from './transitBoardMarker.js'; import {TransitWalkMarker} from './transitWalkMarker.js'; // All following constants are ratios of surface size to page size const _Header = { SCALE_X: 0.9, SCALE_Y: 0.03, SCALE_MARGIN: 0.01 }; const _MapView = { SCALE_X: 1.0, SCALE_Y: 0.4, SCALE_MARGIN: 0.04, ZOOM_LEVEL: 18 }; const _Instruction = { SCALE_X: 0.9, SCALE_Y: 0.1, SCALE_MARGIN: 0.01 }; const _ICON_SIZE = 24; // luminance threashhold for drawing outline around route label badges const OUTLINE_LUMINANCE_THREASHHOLD = 0.9; export class TransitPrintLayout extends PrintLayout { constructor({itinerary, ...params}) { super({ ...params, totalSurfaces: TransitPrintLayout._getNumberOfSurfaces(itinerary), }); this._itinerary = itinerary; } static _getNumberOfSurfaces(itinerary) { // always one fixed surface for the title label let numSurfaces = 1; for (let leg of itinerary.legs) { numSurfaces++; // add a surface when a leg of the itinerary should have a map view // TODO: skip this now, as we don't have minimaps now.. /* if (TransitPrintLayout._legHasMiniMap(leg)) numSurfaces++; */ } // always include the arrival row numSurfaces++; return numSurfaces; } _drawInstruction(width, height, leg, start) { let pageNum = this.numPages - 1; let x = this._cursorX; let y = this._cursorY; let surface = new Cairo.ImageSurface(Cairo.Format.ARGB32, width, height); let cr = new Cairo.Context(surface); let timeWidth = !leg.transit && start ? height : height * 2; let fromText = Transit.getFromLabel(leg, start); let routeWidth = 0; this._drawIcon(cr, leg.iconName, width, height, _ICON_SIZE); this._drawText(cr, fromText, this._rtl ? timeWidth : height, 0, width - height - timeWidth, height / 2, Pango.Alignment.LEFT); if (leg.transit) { let color = leg.color; let textColor = leg.textColor; let hasOutline = Color.relativeLuminance(color) > OUTLINE_LUMINANCE_THREASHHOLD; let routeText = this._createTextLayout(cr, leg.route, width - height - timeWidth, height / 2, this._rtl ? Pango.Alignment.RIGHT : Pango.Alignment.LEFT); let [pWidth, pHeight] = routeText.get_pixel_size(); let routePadding = 3; let routeHeight = pHeight + routePadding * 2; routeWidth = Math.max(pWidth, pHeight) + routePadding * 2; let routeX = this._rtl ? width - height - routeWidth - 1 : height; let routeY = height / 2 + ((height / 2) - routeHeight) / 2; textColor = Color.getContrastingForegroundColor(color, textColor); Gfx.drawColoredBagde(cr, color, hasOutline ? textColor : null, routeX, routeY, routeWidth, routeHeight); this._drawTextLayoutWithColor(cr, routeText, routeX + routePadding + (routeWidth - pWidth - routePadding * 2) / 2, routeY + routePadding, routeWidth - routePadding * 2, routeHeight - routePadding * 2, textColor, Pango.Alignment.LEFT); // introduce some additional padding before the headsign label routeWidth += routePadding; } let headsign = Transit.getHeadsignLabel(leg); if (headsign) { let headsignLayout = this._createTextLayout(cr, headsign, width - height - timeWidth - routeWidth, height / 2, Pango.Alignment.LEFT); let [pWidth, pHeight] = headsignLayout.get_pixel_size(); this._drawTextLayoutWithColor(cr, headsignLayout, this._rtl ? timeWidth : height + routeWidth, height / 2 + (height / 2 - pHeight) / 2, width - height - timeWidth - routeWidth, height / 2, '888888', Pango.Alignment.LEFT); } this._drawTextVerticallyCentered(cr, leg.prettyPrintTime({ isStart: start }), timeWidth, height, this._rtl ? 0 : width - timeWidth - 1, Pango.Alignment.RIGHT); this._addSurface(surface, x, y, pageNum); } _drawArrival(width, height) { let pageNum = this.numPages - 1; let x = this._cursorX; let y = this._cursorY; let surface = new Cairo.ImageSurface(Cairo.Format.ARGB32, width, height); let cr = new Cairo.Context(surface); let lastLeg = this._itinerary.legs[this._itinerary.legs.length - 1]; this._drawIcon(cr, 'maps-point-end-symbolic', width, height, _ICON_SIZE); // draw the arrival text this._drawTextVerticallyCentered(cr, Transit.getArrivalLabel(lastLeg), width - height * 3, height, this._rtl ? height * 2 : height, Pango.Alignment.LEFT); // draw arrival time this._drawTextVerticallyCentered(cr, lastLeg.prettyPrintArrivalTime(), height, height, this._rtl ? 0 : width - height - 1, Pango.Alignment.RIGHT); this._addSurface(surface, x, y, pageNum); } static _legHasMiniMap(leg) { return !leg.transit; } render() { let headerWidth = _Header.SCALE_X * this._pageWidth; let headerHeight = _Header.SCALE_Y * this._pageHeight; let headerMargin = _Header.SCALE_MARGIN * this._pageHeight; let instructionWidth = _Instruction.SCALE_X * this._pageWidth; let instructionHeight = _Instruction.SCALE_Y * this._pageHeight; let instructionMargin = _Instruction.SCALE_MARGIN * this._pageHeight; let dy = headerHeight + headerMargin; this._createNewPage(); this._adjustPage(dy); this._drawHeader(headerWidth, headerHeight); this._cursorY += dy; for (let i = 0; i < this._itinerary.legs.length; i++) { let leg = this._itinerary.legs[i]; let instructionDy = instructionHeight + instructionMargin; dy = instructionDy; this._adjustPage(dy); this._drawInstruction(instructionWidth, instructionHeight, leg, i === 0); this._cursorY += instructionDy; } this._drawArrival(instructionWidth, instructionHeight); } } GObject.registerClass(TransitPrintLayout); 0707010000027B000081A4000000000000000000000001664134090000119C000000000000000000000000000000000000002A00000000gnome-maps-46.11/src/transitRouteLabel.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2017 Marcus Lundblad. * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ import Cairo from 'cairo'; import GLib from 'gi://GLib'; import GObject from 'gi://GObject'; import Graphene from 'gi://Graphene'; import Gtk from 'gi://Gtk'; import * as Color from './color.js'; import * as Gfx from './gfx.js'; import * as Utils from './utils.js'; /* threashhold for route color luminance when we consider it more or less * as white, and draw an outline around the label */ const OUTLINE_LUMINANCE_THREASHHOLD = 0.9; /* the threashhold when using a dark theme, when the color is darker draw an * outline around the label */ const DARK_OUTLINE_LUMINANCE_THREASHHOLD = 0.1; // fallback high contrast colors const HIGH_CONTRAST_COLOR = '000000'; const HIGH_CONTRAST_TEXT_COLOR = 'ffffff'; export class TransitRouteLabel extends Gtk.Label { constructor({leg, compact, ...params}) { super(params); this._setLabel(leg, compact); } _setLabel(leg, compact) { let color = leg.color; let textColor = leg.textColor; let label = leg.route; let usingDarkTheme = Utils.isUsingDarkThemeVariant(); let usingHighContrastTheme = Utils.isUsingHighContrastTheme(); textColor = Color.getContrastingForegroundColor(color, textColor); /* if using the high contrast theme and a label is set, fallback to * hight-contrasting colors, if no label, assume the route color is * more relevant and keep it also for high contrast */ if (usingHighContrastTheme && ((compact && leg.compactRoute) || (!compact && label))) { color = HIGH_CONTRAST_COLOR; textColor = HIGH_CONTRAST_TEXT_COLOR; } this._color = color; this._textColor = textColor; if ((!usingDarkTheme && Color.relativeLuminance(color) > OUTLINE_LUMINANCE_THREASHHOLD) || (usingDarkTheme && Color.relativeLuminance(color) < DARK_OUTLINE_LUMINANCE_THREASHHOLD)) { this._hasOutline = true; } /* for compact (overview) mode, try to shorten the label if the route * name was more than 6 characters */ if (compact && label.length > 6) label = leg.compactRoute; if (compact) { /* restrict number of characters shown in the label when compact mode * is requested */ this.max_width_chars = 6; } else if (leg && !leg.headsign) { // if there is no trip headsign to display, allow more space this.max_width_chars = 25; } this.label = '%s'.format( textColor, GLib.markup_escape_text(label, -1)); this.queue_draw(); } /* I didn't find any easy/obvious way to override widget background color * and getting rounded corner just using CSS styles, so doing a custom * Cairo drawing of a "roundrect" */ vfunc_snapshot(snapshot) { let {x, y, width, height} = this.get_allocation(); let rect = new Graphene.Rect(); rect.init(0, 0, width, height); let cr = snapshot.append_cairo(rect); // clip off the badge, this seems to avoid some extra space at right/bottom with the CSS Gfx.drawColoredBagde(cr, this._color, this._hasOutline ? this._textColor : null, 0, 0, width - 3, height - 3); super.vfunc_snapshot(snapshot); } } GObject.registerClass({ Template: 'resource:///org/gnome/Maps/ui/transit-route-label.ui', }, TransitRouteLabel); 0707010000027C000081A4000000000000000000000001664134090000262A000000000000000000000000000000000000002600000000gnome-maps-46.11/src/transitRouter.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2019 Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ import GLib from 'gi://GLib'; import {BoundingBox} from './boundingBox.js'; import * as Service from './service.js'; import {Plan} from './transitPlan.js'; import * as Utils from './utils.js'; // plugins import {GoMetro} from './transitplugins/goMetro.js'; import {OpendataCH} from './transitplugins/opendataCH.js'; import {OpenTripPlanner} from './transitplugins/openTripPlanner.js'; import {OpenTripPlanner2} from './transitplugins/openTripPlanner2.js'; import {Resrobot} from './transitplugins/resrobot.js'; const ALL_PLUGINS = ["GoMetro", "OpendataCH", "OpenTripPlanner", "OpenTripPlanner2", "Resrobot"]; /** * Class responsible for delegating requests to perform routing in transit * mode. * Holds the the shared plan instance (filled with journeys on successful * requests). */ export class TransitRouter { constructor({query}) { this._plan = new Plan(); this._query = query; this._providers = Service.getService().transitProviders; this._providerCache = []; this._language = Utils.getLanguage(); } get enabled() { return this._providers !== undefined; } get plan() { return this._plan; } /** * Called when the query has been updated to trigger the first set * of results- */ fetchFirstResults() { let pluginOverride = GLib.getenv('TRANSIT_PLUGIN'); if (pluginOverride) { // override plugin was specified, try instanciating if not done yet if (!this._currPluginInstance) { try { this._currPluginInstance = this._instantiatePlugin(pluginOverride); } catch (e) { Utils.debug('Unable to instanciate plugin: ' + pluginOverride); throw e; } } } else { let bestProvider = this._getBestProviderForQuery(); this._currPluginInstance = null; if (bestProvider) { let provider = bestProvider[0]; this._currPluginInstance = bestProvider[1]; this._plan.attribution = this._getAttributionForProvider(provider); if (provider.attributionUrl) this._plan.attributionUrl = provider.attributionUrl; } } if (this._currPluginInstance) { this._currPluginInstance.fetchFirstResults(); } else { this._plan.reset(); this._plan.noProvider(); } } /** * Called to fetch additional (later or earlier) results depending on the * query settings. */ fetchMoreResults() { if (this._currPluginInstance) this._currPluginInstance.fetchMoreResults(); else throw new Error('No previous provider'); } /** * Get attribution for a provider. Returns a language-specific * 'attribution:' tag if available, otherwise 'attribution' */ _getAttributionForProvider(provider) { if (provider['attribution:' + this._language]) return provider['attribution:' + this._language]; else if (provider.attribution) return provider.attribution; else return null; } _getMatchingProvidersForPlace(place) { let location = place.location; let country = place.countryCode ?? Utils.getCountryCodeForCoordinates(location.latitude, location.longitude); let matchingProviders = []; this._providers.forEach((p) => { let provider = p.provider; let areas = provider.areas; if (!areas) { Utils.debug('No coverage info for provider ' + provider.name); return; } areas.forEach((area) => { /* if the area has a specified priority, override the * overall area priority, this allows sub-areas of of * coverage for a provider to have higher or lowe priorities * than other providers (e.g. one "native" to that area */ if (area.priority) provider.priority = area.priority; let countries = area.countries; if (countries) { if (countries.includes(country)) { matchingProviders[provider.name] = provider; return; } } let bbox = area.bbox; if (bbox) { if (bbox.length !== 4) { Utils.debug('malformed bounding box for provider ' + provider.name); return; } let [x1, y1, x2, y2] = bbox; let cbbox = new BoundingBox({ bottom: x1, left: y1, top: x2, right: y2 }); if (cbbox.covers(location.latitude, location.longitude)) { matchingProviders[provider.name] = provider; return; } } }); }); return matchingProviders; } /** * Get the most preferred provider for a given query. * Return: an array with the provider definition and the plugin instance, * or null if no matching provider was found. */ _getBestProviderForQuery() { let startPlace = this._query.filledPoints[0].place; let endPlace = this._query.filledPoints.last().place; let matchingProvidersForStart = this._getMatchingProvidersForPlace(startPlace); let matchingProvidersForEnd = this._getMatchingProvidersForPlace(endPlace); let matchingProviders = []; // check all candidate providers matching on the start location for (let name in matchingProvidersForStart) { let providerAtStart = matchingProvidersForStart[name]; let providerAtEnd = matchingProvidersForEnd[name]; /* if the provider also matches on the end location, consider it * as a potential candidate */ if (providerAtEnd) { let order = this._sortProviders(providerAtStart, providerAtEnd); /* add the provider at it lowest priority to favor higher * priority providers in "fringe cases" */ if (order < 0) matchingProviders.push(providerAtStart); else matchingProviders.push(providerAtEnd); } } matchingProviders.sort(this._sortProviders); for (let i = 0; i < matchingProviders.length; i++) { let provider = matchingProviders[i]; let plugin = provider.plugin; if (this._providerCache[provider.name]) return [provider, this._providerCache[provider.name]]; try { let params = provider.params; let instance = this._instantiatePlugin(plugin, params); this._providerCache[provider.name] = instance; return [provider, instance]; } catch (e) { Utils.debug('Failed to instantiate transit plugin: ' + plugin + ": " + e); } } Utils.debug('No suitable transit provider found'); return null; } /** * Sort function to sort providers in by preference. * If both providers have a priority set, prefers the one with a lower * value (higher prio), otherwise the one that has a priority set (if any), * else no specific order. */ _sortProviders(p1, p2) { if (p1.priority && p2.priority) return p1.priority - p2.priority; else if (p1.priority) return -1; else if (p2.priority) return 1; else return 0; } _instantiatePlugin(plugin, params) { if (!ALL_PLUGINS.includes(plugin)) throw 'Unknown plugin: ' + plugin; return params && this._isValidParams(params) ? eval(`new ${plugin}(params)`) : eval(`new ${plugin}()`); } _isValidParams(params) { if (typeof(params) !== 'object') return false; for (const key in params) { const value = params[key]; if ((typeof(value) !== 'boolean' && typeof(value) !== 'string') || (typeof(value) === 'string' && value.length > 255)) { return false; } } return true; } }; 0707010000027D000081A40000000000000000000000016641340900000590000000000000000000000000000000000000002700000000gnome-maps-46.11/src/transitStopRow.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2017 Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ import gettext from 'gettext'; import GObject from 'gi://GObject'; import Gtk from 'gi://Gtk'; const _ = gettext.gettext; export class TransitStopRow extends Gtk.ListBoxRow { constructor({stop, final, ...params}) { super(params); this.stop = stop; this._nameLabel.label = this.stop.name; this._timeLabel.label = this.stop.prettyPrint({ isFinal: final }); } } GObject.registerClass({ Template: 'resource:///org/gnome/Maps/ui/transit-stop-row.ui', InternalChildren: [ 'nameLabel', 'timeLabel' ] }, TransitStopRow); 0707010000027E000081A40000000000000000000000016641340900000981000000000000000000000000000000000000002A00000000gnome-maps-46.11/src/transitWalkMarker.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2017 Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ import Gdk from 'gi://Gdk'; import GObject from 'gi://GObject'; import * as Color from './color.js'; import {Location} from './location.js'; import {MapMarker} from './mapMarker.js'; import {Place} from './place.js'; export class TransitWalkMarker extends MapMarker { constructor({leg, previousLeg, ...params}) { /* if there is a preceding leg, put the marker at the end of that leg * to avoid gaps, since we will "fill out" the walking leg path line * since sometimes the walking route might not reach exactly to the * transit stop's position */ let point; if (previousLeg) point = previousLeg.polyline[previousLeg.polyline.length - 1]; else point = leg.polyline[0]; let bgColor = leg.color ? leg.color : TransitPlan.DEFAULT_ROUTE_COLOR; let location = new Location({ latitude: point.latitude, longitude: point.longitude }); super({...params, place: new Place({ location: location })}); let bgRed = Color.parseColor(bgColor, 0); let bgGreen = Color.parseColor(bgColor, 1); let bgBlue = Color.parseColor(bgColor, 2); let color = new Gdk.RGBA({ red: bgRed, green: bgGreen, blue: bgBlue, alpha: 1.0 }); this._image.paintable = this._paintableFromIconName('maps-point-start-symbolic', 16, color); } } GObject.registerClass(TransitWalkMarker); 0707010000027F000041ED0000000000000000000000026641340900000000000000000000000000000000000000000000002400000000gnome-maps-46.11/src/transitplugins07070100000280000081A4000000000000000000000001664134090000092B000000000000000000000000000000000000002B00000000gnome-maps-46.11/src/transitplugins/READMEThis directory contains implementations of transit routing provider plugins. Each plugin should contain an ES6 class implementing the plugin. Each implementation implements two methods: fetchFirstResults(): This is invoked when the singleton routing query has been updated and would query itineraries from it's source, and on success populate the TransitPlan singleton with an itinerary list and call plan.update(), or on error call one of the pre-defined error methods on the plan, or trigger a custom error with plan.error(). fetchMoreResults(): This is invoked when to fetch additional (later or earlier) results. Would on success add additional itineraries and call plan.update(), or on error call plan.noMoreResults(). Providers are configured via the downloaded service file using a JSON element like: "transitProviders": [ { "provider": { "name": "Description of provider 1", "plugin": "OpenTripPlanner", "attribution": "Provider 1", "attributionUrl": "http://provider1.example.com", "priority": 10, "areas": [ { "priority": 10, "countries": [ "UT" ] } ], "params": { "baseUrl": "http://otp.provider1.example.com/otp" } } }, { "provider": { "name": "Provider 2", "plugin": "OpenTripPlanner", "attribution": "Provider 2", "attributionUrl": "https://provider2.example.com", "areas": [ { "bbox": [48.28,0.81,49.73,4.11] } ], "params": { "baseUrl": "https://provider2.example.com/otp" } } } ] Each provider can have an optional priority, to allow more specific provider (e.g. one serving a single city) within the area of a more general one. Single sub-areas of a provider can also override the general provider priority. This can be used to allow areas of provider to "shadow" neighboring providers while keeping the the neighboring provider as the preferred one when used exclusively for its region. Custom parameters, if specified, will be passed as the "params" object the constructor() of the plugin implementation.07070100000281000081A400000000000000000000000166413409000012AE000000000000000000000000000000000000002F00000000gnome-maps-46.11/src/transitplugins/goMetro.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2020 Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ /** * This module implements a transit routing plugin for the South African * GoMetro API. * https://proserver.gometro.co.za/api/v1/docs/#multimodal-routing */ import gettext from 'gettext'; import GLib from 'gi://GLib'; import * as HVT from '../hvt.js'; import {RouteType} from '../transitPlan.js'; import * as Utils from '../utils.js'; import {OpenTripPlanner} from './openTripPlanner.js'; const _ = gettext.gettext; const BASE_URL = 'https://proserver.gometro.co.za/api'; const API_VERSION = 'v1'; const NATIVE_TIMEZONE = 'Africa/Cape_Town'; export class GoMetro extends OpenTripPlanner { constructor() { super({ baseUrl: BASE_URL }); this._tz = GLib.TimeZone.new(NATIVE_TIMEZONE); } // the GoMetro API only supports start and destination points fetchFirstResults() { if (this._query.filledPoints.length > 2) { Utils.debug('This plugin does not support via locations'); this._plan.reset(); this._plan.requestFailed(); this._query.reset(); } else if (this._query.arriveBy) { this._reset(); this._plan.error(_("This plugin doesn't support latest arrival")); } else { super.fetchFirstResults(); } } _getPlanUrlWithLocations() { let fromLocation = this._query.filledPoints[0].place.location; let toLocation = this._query.filledPoints.last().place.location; return '%s/%s/trips/%s,%s/%s,%s/%s/%s'.format(BASE_URL, API_VERSION, fromLocation.latitude, fromLocation.longitude, toLocation.latitude, toLocation.longitude, this._getDateAndTimeParams(), this._getModesParam()); } _getDateAndTimeParams() { if (this._query.time || this._extendPrevious) { let params = {}; this._addCommonParams(params); let time = params.time; let date = params.date; return '%s/%s%s'.format(date, this._query.arriveBy ? '-' : '', time); } else { let dateTime = GLib.DateTime.new_now(this._tz); return '%04d-%02d-%02d/%02d:%02d'.format(dateTime.get_year(), dateTime.get_month(), dateTime.get_day_of_month(), dateTime.get_hour(), dateTime.get_minute()); } } // GoMetro seems to (ab)use routeType ferry for communal taxi _createLeg(leg, index, legs) { let result = super._createLeg(leg, index, legs); if (result.routeType === RouteType.FERRY) result.routeType = HVT.TAXI_SERVICE; return result; } _getModesParam() { let params = ''; let transitOptions = this._query.transitOptions; if (transitOptions.showAllTransitTypes || transitOptions.transitTypes.includes(RouteType.TRAIN)) params += 'RAIL,'; if (transitOptions.showAllTransitTypes || transitOptions.transitTypes.includes(RouteType.BUS)) params += 'BUS,'; if (transitOptions.showAllTransitTypes || transitOptions.transitTypes.includes(RouteType.FERRY)) params += 'FERRY,'; if (transitOptions.showAllTransitTypes || transitOptions.transitTypes.includes(RouteType.TRAM)) params += 'TRAM,'; if (transitOptions.showAllTransitTypes) params += 'GONDOLA,'; return params + 'WALK'; } } 07070100000282000081A4000000000000000000000001664134090000D4AA000000000000000000000000000000000000003700000000gnome-maps-46.11/src/transitplugins/openTripPlanner.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2017 Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ import gettext from 'gettext'; import GLib from 'gi://GLib'; import Shumate from 'gi://Shumate'; import Soup from 'gi://Soup'; import {Application} from '../application.js'; import * as EPAF from '../epaf.js'; import * as GraphHopperTransit from '../graphHopperTransit.js'; import {Query} from '../http.js'; import * as HVT from '../hvt.js'; import {Location} from '../location.js'; import {Place} from '../place.js'; import {TurnPoint} from '../route.js'; import {RouteQuery} from '../routeQuery.js'; import * as Service from '../service.js'; import {Itinerary, Leg, RouteType, Stop} from '../transitPlan.js'; import * as Utils from '../utils.js'; const _ = gettext.gettext; /** * This module implements the interface for communicating with an OpenTripPlanner * server instance. * The code is somewhat intricate since it supports instances of OpenTripPlanner * running both with and without OSM data to complement the transit timetable * data with turn-by-turn (walking) routing. * * There is two entry points for obtaining routes, one which is called by the * routing delegator when the query is being modified (fetchFirstResults()), * and the other being called when requesting additional results (later or * earlier alternatives depending on search criteria) (fetchMoreResults()) * These call into an entry point function "_fatchRoute()". * "_fetchRoutes()" is called. * In the case where there is no OSM data (onlyTransitData is true), it * asynchronously calls "_fetchTransitStops()" to get closest transit stop for * each of the query point, this function will involve OpenTripPlanner calls to * find stops within a search circle around the coordinate and then calls out * to GraphHopper to find the actual walking distance and selects the closest * stop. * In the callback for the results of _fetchTransitStops() the actual call to * OpenTripPlanner is made. * The callback for "_fetchRoutes()" will in turn reformat the resulting * itineraries obtained from OpenTripPlanner into our internal format specified * in the TransitPlan module and calls "_recalculateItineraries()" which will * traverse these and do yet another recursive asyncrous pass over these results * to refine the results with actual walking routes obtained from GraphHopper, * since the results from our OpenTripPlanner instance with only transit data * will result in walking legs which use "as the crow flies" routes for walking. * It will also clean up the results by pruning out pointless transit legs, such * as taking transit very short distances when almost reaching the target. * * API docs for OpenTripPlanner can be found at: http://dev.opentripplanner.org/apidoc/1.0.0/ */ /* minimum distance when an explicit walk route will be requested to supplement * the transit route */ const MIN_WALK_ROUTING_DISTANCE = 100; /* minimum distance of a transit leg, below which we would replace the leg with * walking if the leg is the first or last */ const MIN_TRANSIT_LEG_DISTANCE = 300; /* maximum walking distance for a potential replacement of a beginning or ending * transit leg */ const MAX_WALK_OPTIMIZATION_DISTANCE = 1000; /* maximum distance difference for performing a replacement of a beginning or * ending transit leg with a walking leg */ const MAX_WALK_OPTIMIZATION_DISTANCE_DIFFERENCE = 500; /* minimum acceptable time margin when recalculating walking legs in the middle * of an itinerary */ const MIN_INTERMEDIATE_WALKING_SLACK = 60; /* maximum walking distance, filter out itineraries containing walking legs * with longer walking after being refined by GraphHopper */ const MAX_WALKING_DISTANCE = 2000; // maximum radius to search for stops const STOP_SEARCH_RADIUS = 2000; // maximum number of transit stops to consider as candidates for start/end points const NUM_STOPS_TO_TRY = 5; // gap to use when fetching additional routes const GAP_BEFORE_MORE_RESULTS = 120; // list of trusted base URLs for known OTP instances const KNOWN_BASE_URLS = ['https://planner.sncft.com.tn/otp', 'https://otpdjerba.herokuapp.com/otp', 'https://api.digitransit.fi/routing/v1/', 'https://www.metromobilite.fr/otp']; const KNOWN_ROUTER_URLS = ['https://maps.trimet.org/otp_mod']; export class OpenTripPlanner { constructor(params) { let onlyTransitDataEnv = GLib.getenv('OTP_ONLY_TRANSIT_DATA'); let onlyTransitData = onlyTransitDataEnv ? onlyTransitDataEnv === 'true' : params?.onlyTransitData ?? false; this._session = new Soup.Session({ user_agent : 'gnome-maps/' + pkg.version }); this._plan = Application.routingDelegator.transitRouter.plan; this._query = Application.routeQuery; this._baseUrl = GLib.getenv('OTP_BASE_URL') ?? params.baseUrl; this._router = params?.router ?? 'default'; this._routerUrl = params?.routerUrl; this._onlyTransitData = onlyTransitData; this._extendPrevious = false; this._language = Utils.getLanguage(); this._authHeader = GLib.getenv('OTP_AUTH_HEADER') ?? params.authHeader; this._authKey = GLib.getenv('OTP_AUTH_KEY') ?? params.authKey; if (!this._isValidParams(params)) throw new Error('invalid parameters'); if (!this._baseUrl && !this._routerUrl) throw new Error('must specify either baseUrl or routerUrl as an argument'); if (this._baseUrl && this._routerUrl) throw new Error('can not specify both baseUrl and routerUrl as arguments'); } _isValidParams(params) { if (params.onlyTransitData && typeof(params.onlyTransitData) !== 'boolean') { Utils.debug('invalid value for onlyTransitData'); return false; } // refuse to use unknown URLs to OTP instances if (params.baseUrl && KNOWN_BASE_URLS.indexOf(params.baseUrl) === -1) { Utils.debug(`refusing unknown base URL ${params.baseUrl}`); return false; } if (params.routerUrl && KNOWN_ROUTER_URLS.indexOf(params.routerUrl) === -1) { Utils.debug(`refusing unknown router URL ${params.routerUrl}`); return false; } return true; } get plan() { return this._plan; } get enabled() { return this._baseUrl !== null; } fetchFirstResults() { this._extendPrevious = false; this._fetchRoute(); } fetchMoreResults() { this._extendPrevious = true; this._fetchRoute(); } _getRouterUrl() { return this._routerUrl ? this._routerUrl : this._baseUrl + '/routers/' + this._router; } _getMode(routeType) { switch (routeType) { case RouteType.TRAM: return 'TRAM'; case RouteType.TRAIN: return 'RAIL'; case RouteType.SUBWAY: return 'SUBWAY'; case RouteType.BUS: return 'BUS'; case RouteType.FERRY: return 'FERRY'; case HVT.AIR_SERVICE: return 'AIRPLANE'; default: throw new Error('unhandled route type'); } } _getModes(options) { let modes = options.transitTypes.map((transitType) => { return this._getMode(transitType); }); /* should always include walk when setting explicit modes, * otherwise only routes ending close to a stop would work */ modes.push('WALK'); return modes.join(','); } _selectBestStopRecursive(stops, index, stopIndex, callback) { if (index < stops.length) { let points = this._query.filledPoints; let stop = stops[index]; let stopPoint = GraphHopperTransit.createQueryPointForCoord([stop.lat, stop.lon]); if (stops[0].dist < 100) { /* if the stop is close enough to the intended point, just * return the top most from the the original query */ this._selectBestStopRecursive(stops, index + 1, stopIndex, callback); } else if (stopIndex === 0) { GraphHopperTransit.fetchWalkingRoute([points[0], stopPoint], (route) => { /* if we couldn't find an exact walking route, go with the * "as the crow flies" distance */ if (route) stop.dist = route.distance; this._selectBestStopRecursive(stops, index + 1, stopIndex, callback); }); } else if (stopIndex === points.length - 1) { GraphHopperTransit.fetchWalkingRoute([stopPoint, points.last()], (route) => { if (route) stop.dist = route.distance; this._selectBestStopRecursive(stops, index + 1, stopIndex, callback); }); } else { /* for intermediate stops just return the one geographically * closest */ this._selectBestStopRecursive(stops, index + 1, stopIndex, callback); } } else { /* re-sort stops by distance and select the closest after refining * distances */ stops.sort(this._sortTransitStops); Utils.debug('refined stops: '); stops.forEach((stop) => Utils.debug(JSON.stringify(stop, '', 2))); callback(stops[0]); } } /* stopIndex here is the index of stop (i.e. starting point, intermediate * stop, final stop */ _selectBestStop(stops, stopIndex, callback) { this._selectBestStopRecursive(stops, 0, stopIndex, callback); } _sortTransitStops(s1, s2) { return s1.dist > s2.dist; } _createMessage(uri) { let request = Soup.Message.new('GET', uri); request.request_headers.append('Accept', 'application/json'); if (this._authHeader && this._authKey) request.request_headers.append(this._authHeader, this._authKey); return request; } _fetchRoutesForStop(stop, callback) { let query = new Query(); let uri = this._getRouterUrl() + '/index/stops/' + stop.id + '/routes'; let request = this._createMessage(uri); this._session.send_and_read_async(request, GLib.PRIOITY_DEFAULT, null, (source, res) => { if (request.get_status() !== Soup.Status.OK) { Utils.debug('Failed to get routes for stop'); this._reset(); } else { let buffer = this._session.send_and_read_finish(res).get_data(); let routes = JSON.parse(Utils.getBufferText(buffer)); Utils.debug('Routes for stop: ' + stop + ': ' + JSON.stringify(routes)); callback(routes); } }); } _routeMatchesSelectedModes(route) { let desiredTransitTypes = this._query.transitOptions.transitTypes; for (let i = 0; i < desiredTransitTypes.length; i++) { let type = desiredTransitTypes[i]; if (type === RouteType.TRAM && route.mode === 'TRAM') return true; else if (type === RouteType.SUBWAY && route.mode === 'SUBWAY') return true; else if (type === RouteType.TRAIN && route.mode === 'RAIL') return true; else if (type === RouteType.BUS && (route.mode === 'BUS' || route.mode === 'TAXI')) return true; else if (type === RouteType.FERRY && route.mode === 'FERRY') return true; } return false; } _filterStopsRecursive(stops, index, filteredStops, callback) { if (index < stops.length) { let stop = stops[index]; this._fetchRoutesForStop(stop, (routes) => { for (let i = 0; i < routes.length; i++) { let route = routes[i]; if (this._routeMatchesSelectedModes(route)) { filteredStops.push(stop); break; } } this._filterStopsRecursive(stops, index + 1, filteredStops, callback); }); } else { callback(filteredStops); } } _filterStops(stops, callback) { this._filterStopsRecursive(stops, 0, [], callback); } _fetchTransitStopsRecursive(index, result, callback) { let points = this._query.filledPoints; if (index < points.length) { let point = points[index]; let params = { lat: point.place.location.latitude, lon: point.place.location.longitude, radius: STOP_SEARCH_RADIUS }; let query = new Query(params); let uri = this._getRouterUrl() + '/index/stops?' + query.toString(); let request = this._createMessage(uri); this._session.send_and_read_async(request, GLib.PRIORITY_DEFAULT, null, (source, res) => { if (request.get_status() !== Soup.Status.OK) { Utils.debug('Failed to get stop for search point ' + point); this._reset(); } else { let buffer = this._session.send_and_read_finish(res).get_data(); let stops = JSON.parse(Utils.getBufferText(buffer)); if (stops.length === 0) { Utils.debug('No suitable stop found from router'); callback(null); return; } if (this._query.transitOptions.showAllTransitTypes) { stops.sort(this._sortTransitStops); stops = stops.splice(0, NUM_STOPS_TO_TRY); Utils.debug('stops: ' + JSON.stringify(stops, '', 2)); this._selectBestStop(stops, index, (stop) => { result.push(stop); this._fetchTransitStopsRecursive(index + 1, result, callback); }); } else { this._filterStops(stops, (filteredStops) => { filteredStops.sort(this._sortTransitStops); filteredStops = filteredStops.splice(0, NUM_STOPS_TO_TRY); if (filteredStops.length === 0) { Utils.debug('No suitable stop found using selected transit modes'); callback(null); return; } this._selectBestStop(filteredStops, index, (stop) => { result.push(stop); this._fetchTransitStopsRecursive(index + 1, result, callback); }); }); } } }); } else { callback(result); } } _fetchTransitStops(callback) { this._fetchTransitStopsRecursive(0, [], callback); } // get a time suitably formatted for the OpenTripPlanner query param _formatTime(time, offset) { let utcTimeWithOffset = (time + offset) / 1000; let date = GLib.DateTime.new_from_unix_utc(utcTimeWithOffset); return date.format('%R'); } // get a date suitably formatted for the OpenTripPlanner query param _formatDate(time, offset) { let utcTimeWithOffset = (time + offset) / 1000; let date = GLib.DateTime.new_from_unix_utc(utcTimeWithOffset); return date.format('%F'); } _getPlaceParamFromLocation(location) { return location.latitude + ',' + location.longitude; } _addCommonParams(params) { params.numItineraries = 5; params.showIntermediateStops = true; params.locale = this._language; let time = this._query.time; let date = this._query.date; if (this._extendPrevious) { let itineraries = this.plan.itineraries; let lastItinerary = itineraries.last(); let time; let offset; if (this._query.arriveBy) { time = lastItinerary.transitArrivalTime - GAP_BEFORE_MORE_RESULTS * 1000; offset = lastItinerary.transitArrivalTimezoneOffset; } else { time = lastItinerary.transitDepartureTime + GAP_BEFORE_MORE_RESULTS * 1000; offset = lastItinerary.transitDepartureTimezoneOffset; } params.time = this._formatTime(time, offset); params.date = this._formatDate(time, offset); } else { if (time) { params.time = time; /* it seems OTP doesn't like just setting a time, so if the query * doesn't specify a date, go with today's date */ if (!date) { let dateTime = GLib.DateTime.new_now_local(); params.date = dateTime.format('%F'); } } if (date) params.date = date; } if (this._query.arriveBy) params.arriveBy = true; let options = this._query.transitOptions; if (options && !options.showAllTransitTypes) params.mode = this._getModes(options); } _createParamsWithLocations() { let points = this._query.filledPoints; let params = { fromPlace: this._getPlaceParamFromLocation(points[0].place.location), toPlace: this._getPlaceParamFromLocation(points[points.length - 1].place.location) }; let intermediatePlaces = []; for (let i = 1; i < points.length - 1; i++) { let location = points[i].place.location; intermediatePlaces.push(this._getPlaceParamFromLocation(location)); } if (intermediatePlaces) params.intermediatePlaces = intermediatePlaces; params.maxWalkDistance = 2500; this._addCommonParams(params); return params; } // create parameter map for the request, given query and options _createParamsWithStops(stops) { let params = { fromPlace: stops[0].id, toPlace: stops.last().id }; let intermediatePlaces = []; for (let i = 1; i < stops.length - 1; i++) { intermediatePlaces.push(stops[i].id); } if (intermediatePlaces.length > 0) params.intermediatePlaces = intermediatePlaces; /* set walking speed for transfers to a slightly lower value to * compensate for running OTP with only transit data, giving straight- * line walking paths */ params.walkSpeed = 1.0; this._addCommonParams(params); return params; } _fetchPlan(url, callback) { let request = this._createMessage(url); this._session.send_and_read_async(request, GLib.PRIORITY_DEFAULT, null, (source, res) => { if (request.get_status() !== Soup.Status.OK) { Utils.debug('Failed to get route plan from router ' + this._router + ' ' + request.reason_phrase); callback(null); } else { try { let buffer = this._session.send_and_read_finish(res).get_data(); let result = JSON.parse(Utils.getBufferText(buffer)); callback(result); } catch (e) { Utils.debug('Error parsing result: ' + e); callback(null); } } }); } _getPlanUrlFromParams(params) { let query = new Query(params); return this._getRouterUrl() + '/plan?' + query.toString(); } _getPlanUrlWithStops(stops) { return this._getPlanUrlFromParams(this._createParamsWithStops(stops)); } _getPlanUrlWithLocations() { return this._getPlanUrlFromParams(this._createParamsWithLocations()); } _fetchRoutes(callback) { if (this._onlyTransitData) { this._fetchTransitStops((stops) => { let points = this._query.filledPoints; if (!stops) { callback(null); return; } /* if there's only a start and end stop (no intermediate stops) * and those stops are identical, reject the routing, since this * means there would be no point in transit, and OTP would give * some bizarre option like boarding transit, go one stop and then * transfer to go back the same route */ if (stops.length === 2 && stops[0].id === stops[1].id) { callback(null); return; } this._fetchPlan(this._getPlanUrlWithStops(stops), callback); }); } else { this._fetchPlan(this._getPlanUrlWithLocations(), callback); } } _reset() { this._extendPrevious = false; if (this._query.latest) this._query.latest.place = null; else this.plan.reset(); } /* Indicate that no routes where found, either shows the "No route found" * message, or in case of loading additional (later/earlier) results, * indicate no such where found, so that the sidebar can disable the * "load more" functionality as appropriate. */ _noRouteFound() { if (this._extendPrevious) { this._extendPrevious = false; this.plan.noMoreResults(); } else { this.plan.noRouteFound(); } } _fetchRoute() { let points = this._query.filledPoints; this._fetchRoutes((route) => { if (route) { let itineraries = []; let plan = route.plan; Utils.debug('route: ' + JSON.stringify(route, null, 2)); if (plan && plan.itineraries) { itineraries = itineraries.concat( this._createItineraries(plan.itineraries)); } else if (route.itineraries) { itineraries = itineraries.concat( this._createItineraries(route.itineraries)); } if (itineraries.length === 0) { /* don't reset query points, unlike for turn-based * routing, since options and timing might influence * results */ this._noRouteFound(); } else { if (this._onlyTransitData) this._recalculateItineraries(itineraries); else this._updateWithNewItineraries(itineraries); } } else { this._noRouteFound(); } }); } _isOnlyWalkingItinerary(itinerary) { return itinerary.legs.length === 1 && !itinerary.legs[0].transit; } _recalculateItineraries(itineraries) { // filter out itineraries with only walking let newItineraries = []; itineraries.forEach((itinerary) => { if (!this._isOnlyWalkingItinerary(itinerary)) newItineraries.push(itinerary); }); /* TODO: should we always calculate a walking itinerary to put at the * top if the total distance is below some threashhold? */ this._recalculateItinerariesRecursive(newItineraries, 0); } _isItineraryRealistic(itinerary) { for (let i = 0; i < itinerary.legs.length; i++) { let leg = itinerary.legs[i]; if (!leg.transit) { /* if a walking leg exceeds the maximum desired walking * distance, or for a leg "in-between" two transit legs, if * there's insufficient switch time */ if (leg.distance > MAX_WALKING_DISTANCE) { return false; } else if (i >= 1 && i < itinerary.legs.length - 1) { let previousLeg = itinerary.legs[i - 1]; let nextLeg = itinerary.legs[i + 1]; let availableTime = (nextLeg.departure - previousLeg.arrival) / 1000; if (availableTime < leg.duration + MIN_INTERMEDIATE_WALKING_SLACK) return false; } } } return true; } /** * Update plan with new itineraries, setting the new itineraries if it's * the first fetch for a query, or extending the existing ones if it's * a request to load more */ _updateWithNewItineraries(itineraries) { this.plan.updateWithNewItineraries(itineraries, this._query.arriveBy, this._extendPrevious); this._extendPrevious = false; } _recalculateItinerariesRecursive(itineraries, index) { if (index < itineraries.length) { this._recalculateItinerary(itineraries[index], (itinerary) => { itineraries[index] = itinerary; this._recalculateItinerariesRecursive(itineraries, index + 1); }); } else { /* filter out itineraries where there are intermediate walking legs * that are too narrow time-wise, this is necessary since running * OTP with only transit data can result in some over-optimistic * walking itinerary legs, since it will use "line-of-sight" * distances. * also filter out itineraries where recalculation process ended * up with just walking */ let filteredItineraries = []; itineraries.forEach((itinerary) => { if (this._isItineraryRealistic(itinerary) && !this._isOnlyWalkingItinerary(itinerary)) filteredItineraries.push(itinerary); }); if (filteredItineraries.length > 0) { filteredItineraries.forEach((itinerary) => itinerary.adjustTimings()); this._updateWithNewItineraries(filteredItineraries); } else { this._noRouteFound(); } } } _recalculateItinerary(itinerary, callback) { let from = this._query.filledPoints[0]; let to = this._query.filledPoints.last(); if (itinerary.legs.length === 1 && !itinerary.legs[0].transit) { /* special case, if there's just one leg of an itinerary, and that leg * leg is a non-transit (walking), recalculate the route in its entire * using walking */ GraphHopperTransit.fetchWalkingRoute(this._query.filledPoints, (route) => { let leg = GraphHopperTransit.createWalkingLeg(from, to, from.place.name, to.place.name, route); let newItinerary = new Itinerary({departure: itinerary.departure, duration: route.time / 1000, legs: [leg]}); callback(newItinerary); }); } else if (itinerary.legs.length === 1 && itinerary.legs[0].transit) { // special case if there is exactly one transit leg let leg = itinerary.legs[0]; let startLeg = GraphHopperTransit.createQueryPointForCoord(leg.fromCoordinate); let endLeg = GraphHopperTransit.createQueryPointForCoord(leg.toCoordinate); let fromLoc = from.place.location; let startLoc = startLeg.place.location; let endLoc = endLeg.place.location; let toLoc = to.place.location; let startWalkDistance = fromLoc.get_distance_from(startLoc) * 1000; let endWalkDistance = endLoc.get_distance_from(toLoc) * 1000; if (startWalkDistance >= MIN_WALK_ROUTING_DISTANCE && endWalkDistance >= MIN_WALK_ROUTING_DISTANCE) { /* add an extra walking leg to both the beginning and end of the * itinerary */ GraphHopperTransit.fetchWalkingRoute([from, startLeg], (firstRoute) => { let firstLeg = GraphHopperTransit.createWalkingLeg(from, startLeg, from.place.name, leg.from, firstRoute); GraphHopperTransit.fetchWalkingRoute([endLeg, to], (lastRoute) => { let lastLeg = GraphHopperTransit.createWalkingLeg(endLeg, to, leg.to, to.place.name, lastRoute); itinerary.legs.unshift(firstLeg); itinerary.legs.push(lastLeg); callback(itinerary); }); }); } else if (endWalkDistance >= MIN_WALK_ROUTING_DISTANCE) { // add an extra walking leg to the end of the itinerary GraphHopperTransit.fetchWalkingRoute([endLeg, to], (lastRoute) => { let lastLeg = GraphHopperTransit.createWalkingLeg(endLeg, to, leg.to, to.place.name, lastRoute); itinerary.legs.push(lastLeg); callback(itinerary); }); } else { /* if only there's only a walking leg to be added to the start * let the recursive routine dealing with multi-leg itineraries * handle it */ this._recalculateItineraryRecursive(itinerary, 0, callback); } } else { /* replace walk legs with GraphHopper-generated paths (hence the * callback nature of this. Filter out unrealistic itineraries (having * walking segments not possible in reasonable time, due to our running * of OTP with only transit data). */ this._recalculateItineraryRecursive(itinerary, 0, callback); } } _recalculateItineraryRecursive(itinerary, index, callback) { if (index < itinerary.legs.length) { let leg = itinerary.legs[index]; if (index === 0) { let from = this._query.filledPoints[0]; let startLeg = GraphHopperTransit.createQueryPointForCoord(leg.fromCoordinate); let endLeg = GraphHopperTransit.createQueryPointForCoord(leg.toCoordinate); let fromLoc = from.place.location; let startLegLoc = startLeg.place.location; let endLegLoc = endLeg.place.location; let distanceToEndLeg = fromLoc.get_distance_from(endLegLoc) * 1000; let distanceToStartLeg = fromLoc.get_distance_from(startLegLoc) * 1000; let nextLeg = itinerary.legs[index + 1]; if (!leg.transit || ((leg.distance <= MIN_TRANSIT_LEG_DISTANCE || (distanceToEndLeg <= MAX_WALK_OPTIMIZATION_DISTANCE && distanceToEndLeg - distanceToStartLeg <= MAX_WALK_OPTIMIZATION_DISTANCE_DIFFERENCE)) && itinerary.legs.length > 1)) { /* if the first leg of the intinerary returned by OTP is a * walking one, recalculate it with GH using the actual * starting coordinate from the input query, * also replace a transit leg at the start with walking if * its distance is below a threashhold, to avoid suboptimal * routes due to only running OTP with transit data, * also optimize away cases where the routing would make one * "pass by" a stop at the next step in the itinerary due to * similar reasons */ let to = GraphHopperTransit.createQueryPointForCoord(leg.toCoordinate); let toName = leg.to; /* if the next leg is a walking one, "fold" it into the one * we create here */ if (nextLeg && !nextLeg.transit) { to = GraphHopperTransit.createQueryPointForCoord(nextLeg.toCoordinate); toName = nextLeg.to; itinerary.legs.splice(index + 1, index + 1); } GraphHopperTransit.fetchWalkingRoute([from, to], (route) => { let newLeg = GraphHopperTransit.createWalkingLeg(from, to, from.place.name, toName, route); itinerary.legs[index] = newLeg; this._recalculateItineraryRecursive(itinerary, index + 1, callback); }); } else { /* introduce an additional walking leg calculated * by GH in case the OTP starting point as far enough from * the original starting point */ let to = GraphHopperTransit.createQueryPointForCoord(leg.fromCoordinate); let fromLoc = from.place.location; let toLoc = to.place.location; let distance = fromLoc.get_distance_from(toLoc) * 1000; if (distance >= MIN_WALK_ROUTING_DISTANCE) { GraphHopperTransit.fetchWalkingRoute([from, to], (route) => { let newLeg = GraphHopperTransit.createWalkingLeg(from, to, from.place.name, leg.from, route); itinerary.legs.unshift(newLeg); /* now, next index will be two steps up, since we * inserted a new leg */ this._recalculateItineraryRecursive(itinerary, index + 2, callback); }); } else { this._recalculateItineraryRecursive(itinerary, index + 1, callback); } } } else if (index === itinerary.legs.length - 1) { let to = this._query.filledPoints.last(); let startLeg = GraphHopperTransit.createQueryPointForCoord(leg.fromCoordinate); let endLeg = GraphHopperTransit.createQueryPointForCoord(leg.toCoordinate); let toLoc = to.place.location; let startLegLoc = startLeg.place.location; let endLegLoc = endLeg.place.location; let distanceFromEndLeg = toLoc.get_distance_from(endLegLoc) * 1000; let distanceFromStartLeg = toLoc.get_distance_from(startLegLoc) * 1000; let previousLeg = itinerary.legs[itinerary.legs.length - 2]; if (!leg.transit || ((leg.distance <= MIN_TRANSIT_LEG_DISTANCE || (distanceFromStartLeg <= MAX_WALK_OPTIMIZATION_DISTANCE && distanceFromStartLeg - distanceFromEndLeg <= MAX_WALK_OPTIMIZATION_DISTANCE_DIFFERENCE)) && itinerary.legs.length > 1)) { /* if the final leg of the itinerary returned by OTP is a * walking one, recalculate it with GH using the actual * ending coordinate from the input query * also replace a transit leg at the end with walking if * its distance is below a threashhold, to avoid suboptimal * routes due to only running OTP with transit data, * also optimize away cases where the routing would make one * "pass by" a stop at the previous step in the itinerary * due to similar reasons */ let finalTransitLeg; let insertIndex; if (leg.transit && previousLeg && !previousLeg.transit) { /* if we optimize away the final transit leg, and the * previous leg is a walking one, "fold" both into a * single walking leg */ finalTransitLeg = previousLeg; insertIndex = index -1; itinerary.legs.pop(); } else { finalTransitLeg = leg; insertIndex = index; } let from = GraphHopperTransit.createQueryPointForCoord(finalTransitLeg.fromCoordinate); GraphHopperTransit.fetchWalkingRoute([from, to], (route) => { let newLeg = GraphHopperTransit.createWalkingLeg(from, to, finalTransitLeg.from, to.place.name, route); itinerary.legs[insertIndex] = newLeg; this._recalculateItineraryRecursive(itinerary, insertIndex + 1, callback); }); } else { /* introduce an additional walking leg calculated by GH in * case the OTP end point as far enough from the original * end point */ let from = GraphHopperTransit.createQueryPointForCoord(leg.toCoordinate); let fromLoc = from.place.location; let toLoc = to.place.location; let distance = fromLoc.get_distance_from(toLoc) * 1000; if (distance >= MIN_WALK_ROUTING_DISTANCE) { GraphHopperTransit.fetchWalkingRoute([from, to], (route) => { let newLeg = GraphHopperTransit.createWalkingLeg(from, to, leg.to, to.place.name, route); itinerary.legs.push(newLeg); /* now, next index will be two steps up, since we * inserted a new leg */ this._recalculateItineraryRecursive(itinerary, index + 2, callback); }); } else { this._recalculateItineraryRecursive(itinerary, index + 1, callback); } } } else { /* if an intermediate leg is a walking one, and it's distance is * above the threashhold distance, calculate an exact route */ if (!leg.transit && leg.distance >= MIN_WALK_ROUTING_DISTANCE) { let from = GraphHopperTransit.createQueryPointForCoord(leg.fromCoordinate); let to = GraphHopperTransit.createQueryPointForCoord(leg.toCoordinate); /* if the next leg is the final one of the itinerary, * and it's shorter than the "optimize away" distance, * create a walking leg all the way to the final destination */ let nextLeg = itinerary.legs[index + 1]; if (index === itinerary.legs.length - 2 && nextLeg.distance <= MIN_TRANSIT_LEG_DISTANCE) { to = this._query.filledPoints.last(); itinerary.legs.splice(index + 1, index + 1); } GraphHopperTransit.fetchWalkingRoute([from, to], (route) => { let newLeg = GraphHopperTransit.createWalkingLeg(from, to, leg.from, leg.to, route); itinerary.legs[index] = newLeg; this._recalculateItineraryRecursive(itinerary, index + 1, callback); }); } else { this._recalculateItineraryRecursive(itinerary, index + 1, callback); } } } else { callback(itinerary); } } _createItineraries(itineraries) { return itineraries.map((itinerary) => this._createItinerary(itinerary)); } _createItinerary(itinerary) { let legs = this._createLegs(itinerary.legs); return new Itinerary({ duration: itinerary.duration, transfers: itinerary.transfers, departure: itinerary.startTime, arrival: itinerary.endTime, legs: legs}); } _createLegs(legs) { return legs.map((leg, index, legs) => this._createLeg(leg, index, legs)); } /* check if a string is a valid hex RGB string */ _isValidHexColor(string) { if (string && string.length === 6) { let regex = /^[A-Fa-f0-9]/; return string.match(regex); } return false; } _createLeg(leg, index, legs) { let polyline = EPAF.decode(leg.legGeometry.points); let color = leg.routeColor && this._isValidHexColor(leg.routeColor) ? leg.routeColor : null; let textColor = leg.routeTextColor && this._isValidHexColor(leg.routeTextColor) ? leg.routeTextColor : null; let first = index === 0; let last = index === legs.length - 1; /* for walking legs in the beginning or end, use the name from the * query, so we get the names of the place the user searched for in * the results, when starting/ending at a transitstop, use the stop * name */ let from = first && !leg.transitLeg ? this._query.filledPoints[0].place.name : leg.from.name; let to = last && !leg.transitLeg ? this._query.filledPoints.last().place.name : leg.to.name; let result = new Leg({ departure: leg.from.departure, arrival: leg.to.arrival, from: from, to: to, headsign: leg.headsign, fromCoordinate: [leg.from.lat, leg.from.lon], toCoordinate: [leg.to.lat, leg.to.lon], route: leg.route, routeType: leg.routeType, polyline: polyline, isTransit: leg.transitLeg, distance: leg.distance, duration: leg.duration, agencyName: leg.agencyName, agencyUrl: leg.agencyUrl, agencyTimezoneOffset: leg.agencyTimeZoneOffset, color: color, textColor: textColor, tripShortName: leg.tripShortName }); if (leg.transitLeg && leg.intermediateStops) result.intermediateStops = this._createIntermediateStops(leg); else if (!this._onlyTransitData) result.walkingInstructions = this._createTurnpoints(leg, polyline); return result; } _createIntermediateStops(leg) { let stops = leg.intermediateStops; let intermediateStops = stops.map((stop) => this._createIntermediateStop(stop, leg)); /* instroduce an extra stop at the end (in additional to the * intermediate stops we get from OTP */ intermediateStops.push(new Stop({ name: leg.to.name, arrival: leg.to.arrival, agencyTimezoneOffset: leg.agencyTimeZoneOffset, coordinate: [leg.to.lat, leg.to.lon] })); return intermediateStops; } _createIntermediateStop(stop, leg) { return new Stop({ name: stop.name, arrival: stop.arrival, departure: stop.departure, agencyTimezoneOffset: leg.agencyTimeZoneOffset, coordinate: [stop.lat, stop.lon] }); } /** * Create a turnpoints list on the same format we use with GraphHopper * from OpenTripPlanner walking steps */ _createTurnpoints(leg, polyline) { if (leg.steps) { let steps = leg.steps; let startPoint = new TurnPoint({ coordinate: polyline[0], type: TurnPoint.Type.START, distance: 0, instruction: _("Start!"), time: 0, turnAngle: 0 }); let turnpoints = [startPoint]; steps.forEach((step) => { turnpoints.push(this._createTurnpoint(step)); }); let endPoint = new TurnPoint({ coordinate: polyline.last(), type: TurnPoint.Type.END, distance: 0, instruction:_("Arrive") }); turnpoints.push(endPoint); return turnpoints; } else { return null; } } _createTurnpoint(step) { let coordinate = new Shumate.Coordinate({ latitude: step.lat, longitude: step.lon }); let turnpoint = new TurnPoint({ coordinate: coordinate, type: this._getTurnpointType(step), distance: step.distance, instruction: this._getTurnpointInstruction(step) }); return turnpoint; } _getTurnpointType(step) { switch (step.relativeDirection) { case 'DEPART': case 'CONTINUE': return TurnPoint.Type.CONTINUE; case 'LEFT': return TurnPoint.Type.LEFT; case 'SLIGHTLY_LEFT': return TurnPoint.Type.SLIGHT_LEFT; case 'HARD_LEFT': return TurnPoint.Type.SHARP_LEFT; case 'RIGHT': return TurnPoint.Type.RIGHT; case 'SLIGHTLY_RIGHT': return TurnPoint.Type.SLIGHT_RIGHT; case 'HARD_RIGHT': return TurnPoint.Type.SHARP_RIGHT; case 'CIRCLE_CLOCKWISE': case 'CIRCLE_COUNTERCLOCKWISE': return TurnPoint.Type.ROUNDABOUT; case 'ELEVATOR': return TurnPoint.Type.ELEVATOR; case 'UTURN_LEFT': return TurnPoint.Type.UTURN_LEFT; case 'UTURN_RIGHT': return TurnPoint.Type.UTURN_RIGHT; default: return null; } } _getTurnpointInstruction(step) { let street = !step.bogusName ? step.streetName : null; switch (step.relativeDirection) { case 'DEPART': case 'CONTINUE': if (street) return _("Continue on %s").format(street); else return _("Continue"); case 'LEFT': if (street) return _("Turn left on %s").format(street); else return _("Turn left"); case 'SLIGHTLY_LEFT': if (street) return _("Turn slightly left on %s").format(street); else return _("Turn slightly left"); case 'HARD_LEFT': if (street) return _("Turn sharp left on %s").format(street); else return _("Turn sharp left"); case 'RIGHT': if (street) return _("Turn right on %s").format(street); else return _("Turn right"); case 'SLIGHTLY_RIGHT': if (street) return _("Turn slightly right on %s").format(street); else return _("Turn slightly right"); case 'HARD_RIGHT': if (street) return _("Turn sharp right on %s").format(street); else return _("Turn sharp right"); case 'CIRCLE_CLOCKWISE': case 'CIRCLE_COUNTERCLOCKWISE': { let exit = step.exit; if (exit) return _("At the roundabout, take exit %s").format(exit); else if (street) return _("At the roundabout, take exit to %s").format(street); else return _("Take the roundabout"); } case 'ELEVATOR': { if (street) return _("Take the elevator and get off at %s").format(street); else return _("Take the elevator"); } case 'UTURN_LEFT': if (street) return _("Make a left u-turn onto %s").format(street); else return _("Make a left u-turn"); case 'UTURN_RIGHT': if (street) return _("Make a right u-turn onto %s").format(street); else return _("Make a right u-turn"); default: return ''; } } }; 07070100000283000081A40000000000000000000000016641340900004EFB000000000000000000000000000000000000003800000000gnome-maps-46.11/src/transitplugins/openTripPlanner2.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2023 Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ import gettext from 'gettext'; import GLib from 'gi://GLib'; import Shumate from 'gi://Shumate'; import Soup from 'gi://Soup'; import {Application} from '../application.js'; import * as Epaf from '../epaf.js'; import * as HVT from '../hvt.js'; import * as NeTeX from '../netex.js'; import {TurnPoint} from '../route.js'; import * as Time from '../time.js'; import {Itinerary, Leg, RouteType, Stop} from '../transitPlan.js'; import * as Utils from '../utils.js'; const _ = gettext.gettext; const KNOWN_BASE_URLS = ['https://api.entur.io/journey-planner/v3/graphql']; export class OpenTripPlanner2 { constructor(params) { this._session = new Soup.Session({ user_agent : 'gnome-maps/' + pkg.version }); this._plan = Application.routingDelegator.transitRouter.plan; this._query = Application.routeQuery; this._baseUrl = GLib.getenv('OTP_BASE_URL') ?? params?.baseUrl; this._authHeader = GLib.getenv('OTP_AUTH_HEADER') ?? params?.authHeader; this._authKey = GLib.getenv('OTP_AUTH_KEY') ?? params?.authKey; if (!this._isValidParams(params)) throw new Error('invalid parameters'); if (!this._baseUrl) throw new Error('must specify baseUrl as an argument'); } _isValidParams(params) { // refuse to use unknown URLs to OTP instances if (params?.baseUrl && KNOWN_BASE_URLS.indexOf(params.baseUrl) === -1) { Utils.debug(`refusing unknown base URL ${params.baseUrl}`); return false; } return true; } fetchFirstResults() { /* haven't quite wrapped my head around how via trips work * so for now skip this... */ if (this._query.filledPoints.length > 2) { Utils.debug('Doesn\'t support via points yet'); this._plan.reset(); this._plan.requestFailed(); this._query.reset(); } else { this._fetchResults(); } } fetchMoreResults() { this._fetchResults(true); } _fetchResults(extendPrevious = false) { const body = this._getBody(extendPrevious); const request = Soup.Message.new_from_encoded_form('POST', this._baseUrl, body); request.request_headers.replace('Content-Type', 'application/json'); request.request_headers.replace('Accept', 'application/json'); if (this._authHeader && this._authKey) request.request_headers.append(this._authHeader, this._authKey); this._session.send_and_read_async(request, GLib.PRIORITY_DEFAULT, null, (source, res) => { const buffer = this._session.send_and_read_finish(res).get_data(); if (request.get_status() !== Soup.Status.OK) { Utils.debug('Failed to get trip: ' + request.get_status()); Utils.debug(`out ${Utils.getBufferText(buffer)}`); this._plan.requestFailed(); this._plan.reset(); } else { const result = JSON.parse(Utils.getBufferText(buffer)); Utils.debug('result: ' + JSON.stringify(result, null, 2)); this._parseTrip(result, extendPrevious); } }); } _parseTrip(result, extendPrevious) { const tripPatterns = result?.data?.trip?.tripPatterns; this._nextPageCursor = result?.data?.trip?.nextPageCursor; this._previousPageCursor = result?.data?.trip?.previousPageCursor; if (!Array.isArray(tripPatterns) || tripPatterns.length === 0) { Utils.debug('no trips found'); this._plan.noRouteFound(); return; } try { const filledPoints = this._query.filledPoints; const originPlace = filledPoints[0].place; const destinationPlace = filledPoints.last().place; const itineraries = tripPatterns.map(tripPattern => this._parseTripPattern(tripPattern, originPlace, destinationPlace)); this._plan.updateWithNewItineraries(itineraries, this._query.arriveBy, extendPrevious); } catch (error) { Utils.debug(`error parsing trip patterns ${error} ${error.stack}`); this._plan.requestFailed(); this._plan.reset(); } } _parseTripPattern(tripPattern, originPlace, destinationPlace) { if (!Array.isArray(tripPattern.legs) || tripPattern.legs.length === 0) throw 'No legs found in tripPattern'; const legs = this._parseLegs(tripPattern.legs, originPlace, destinationPlace); const firstLeg = legs[0]; const lastLeg = legs.last(); const duration = (lastLeg.arrival - firstLeg.departure) / 1000; return new Itinerary({ departure: firstLeg.departure, departureTimezoneOffset: firstLeg.departureTimezoneOffset, arrival: lastLeg.arrival, arrivalTimezoneOffset: lastLeg.arrivalTimezoneOffset, duration: duration, legs: legs }); } _parseLegs(legs, originPlace, destinationPlace) { // filter out starting and ending walking legs if shorter than 30 m return legs.filter((leg, index) => { return index !== 0 && index != legs.length - 1 || leg.mode !== 'foot' || leg.distance >= 30; }) .map((leg, index, arr) => { const [departure, departureTz] = Time.parseTime(leg.expectedStartTime); const [arrival, arrivalTz] = Time.parseTime(leg.expectedEndTime); const isTransit = leg.mode !== 'foot'; const points = leg?.pointsOnLink?.points; const fromPlace = leg.fromPlace; const toPlace = leg.toPlace; const fromCoordinate = [fromPlace.latitude, fromPlace.longitude]; const toCoordinate = [toPlace.latitude, toPlace.longitude]; const headsign = leg?.toEstimatedCall?.destinationDisplay?.frontText; const route = leg?.line?.publicCode ?? ''; const routeType = isTransit ? NeTeX.toHVT(leg.mode, leg.transportSubmode) : null; const walkingInstructions = !isTransit ? this._parseSteps(leg.steps, fromCoordinate, toCoordinate) : null; const intermediateStops = isTransit ? this._parseIntermediate(leg, toPlace.name, toCoordinate, arrival, arrivalTz) : null; const polyline = points && points.length < 2000 ? Epaf.decode(points) : null; const agencyName = leg?.line?.authority?.name; const agencyUrl = leg?.line?.authority?.url; const color = leg?.line?.presentation?.colour; const textColor = leg?.line?.presentation?.textColour; /* for first and final walking legs, use orignal place name from * from place entered by user when using search results */ const from = index === 0 && !isTransit ? originPlace.name : fromPlace.name; const to = index === arr.length - 1 && !isTransit ? destinationPlace.name : toPlace.name; return new Leg({ isTransit: isTransit, route: route, routeType: routeType, color: color, textColor: textColor, departure: departure, departureTimezoneOffset: departureTz, arrival: arrival, arrivalTimezoneOffset: arrivalTz, from: from, fromCoordinate: fromCoordinate, agencyName: agencyName, agencyUrl: agencyUrl, to: to, toCoordinate: toCoordinate, headsign: headsign, distance: leg.distance, polyline: polyline, intermediateStops: intermediateStops, walkingInstructions: walkingInstructions }); }); } _parseSteps(steps, fromCoordinate, toCoordinate) { // create starting turnpoint instruction based on leg const startTurnpoint = new TurnPoint({ type: TurnPoint.Type.START, distance: 0, instruction: _("Start"), coordinate: fromCoordinate }); const intermediateTurnpoints = steps.map((step) => { const [type, instruction] = this._getTurnpointTypeAndInstruction(step); const coordinate = new Shumate.Coordinate({ latitude: step.latitude, longitude: step.longitude }); return new TurnPoint({ type: type, distance: step.distance, instruction: instruction, coordinate: coordinate }); }); // add ending turnPoint const endTurnpoint = new TurnPoint({ type: TurnPoint.Type.END, distance: 0, instruction: _("Arrive"), coordinate: toCoordinate }); return [startTurnpoint, ...intermediateTurnpoints, endTurnpoint]; } _getTurnpointTypeAndInstruction(step) { switch (step.relativeDirection) { case 'depart': case 'continue': return [TurnPoint.Type.CONTINUE, step.street ? _("Continue on %s").format(step.street) : _("Continue")]; case 'left': return [TurnPoint.Type.LEFT, step.street ? _("Turn left on %s").format(step.street) : _("Turn left")]; case 'slightlyLeft': return [TurnPoint.Type.SLIGHT_LEFT, step.street ? _("Turn slightly left on %s").format(step.street) : _("Turn slightly left")]; case 'hardLeft': return [TurnPoint.Type.SHARP_LEFT, step.street ? _("Turn sharp left on %s").format(step.street) : _("Turn sharp left")]; case 'right': return [TurnPoint.Type.RIGHT, step.street ? _("Turn right on %s").format(step.street) : _("Turn right")]; case 'slightlyRight': return [TurnPoint.Type.SLIGHT_RIGHT, step.street ? _("Turn slightly right on %s").format(step.street) : _("Turn slightly right")]; case 'hardRight': return [TurnPoint.Type.SHARP_RIGHT, step.street ? _("Turn sharp right on %s").format(step.street) : _("Turn sharp right")]; case 'circleClockwise': case 'circleCounterclockwise': { let instruction; if (step.exit) { instruction = _("At the roundabout, take exit %s").format(step.exit); } else if (step.street) { instruction = _("At the roundabout, take exit to %s").format(step.street); } else { instruction = _("Take the roundabout"); } return [TurnPoint.Type.ROUNDABOUT, instruction]; } case 'elevator': return [TurnPoint.Type.ELEVATOR, step.street ? _("Take the elevator and get off at %s").format(step.street) : _("Take the elevator")]; case 'uturnLeft': return [TurnPoint.Type.UTURN_LEFT, step.street ? _("Make a left u-turn onto %s").format(step.street) : _("Make a left u-turn")]; case 'uturnRight': return [TurnPoint.Type.UTURN_RIGHT, step.street ? _("Make a right u-turn onto %s").format(step.street) : _("Make a right u-turn")]; default: throw 'unknown direction ' + step.relativeDirection; } } _parseIntermediate(leg, to, toCoordinate, arrival, arrivalTz) { const intermediateStops = leg.intermediateEstimatedCalls.map((stop) => { const [arrival, arrivalTz] = Time.parseTime(stop.expectedArrivalTime); const [departure, _] = Time.parseTime(stop.expectedDepartureTime); return new Stop({ name: stop.quay.name, arrival: arrival, departure: departure, agencyTimezoneOffset: arrivalTz, coordinate: [stop.quay.latitude, stop.quay.longitude] }); }); // add arrival at the final stop (the same as the destination for the leg) const finalStop = new Stop({ name: to, coordinate: toCoordinate, arrival: arrival, agencyTimezoneOffset: arrivalTz }); return [...intermediateStops, finalStop]; } _getBody(extendPrevious) { const numQueryPoints = this._query.filledPoints.length; const graphQL = numQueryPoints > 2 ? this._getViaTripGraphQLBody() : this._getTripGraphQLBody(extendPrevious); return `{ "query": "${graphQL}"}`; } _getDateTimeParam() { if (this._query.time) { // if query doesn't specify date, use current day const date = this._query.date ?? (new Date()).toISOString().substring(0, 10); return `dateTime: \\"${date}T${this._query.time}\\",`; } else { return ''; } } _getPageCursorParam(extendPrevious) { if (extendPrevious) { const pageCursor = this._query.arriveBy ? this._previousPageCursor : this._nextPageCursor; return `pageCursor: \\"${pageCursor}\\"`; } else { return ''; } } _transitTypeToMode(transitType) { switch (transitType) { case RouteType.BUS: return 'bus'; case RouteType.TRAM: return 'tram'; case RouteType.TRAIN: return 'rail'; case RouteType.SUBWAY: return 'metro'; case RouteType.FERRY: return 'water'; case HVT.AIR_SERVICE: return 'air'; default: throw 'unkown transit type: ' + transitType; } } _getModes() { const types = this._query.transitOptions.transitTypes; return types.reduce((a, t, i) => { const mode = this._transitTypeToMode(t); const trailer = i !== types.length - 1 ? ',' : ''; return a + `{ transportMode: ${mode} }` + trailer; }, ''); } _getFiltersParam() { const modesBody = this._getModes(); return `filters: [{ select: [ { transportModes: [ ${modesBody} ] } ] } ]`; } _getModeParam() { if (this._query.transitOptions.showAllTransitTypes) { return ''; } else { return `${this._getFiltersParam()},`; } } _getCoordinatesParam(point) { const location = point.place.location; return `coordinates: { latitude: ${location.latitude}, longitude: ${location.longitude} }`; } _getTripPatternsOutput() { return ` tripPatterns { legs { mode, transportSubmode, distance, pointsOnLink { points }, expectedStartTime, expectedEndTime, fromPlace { name, latitude, longitude } toPlace { name, latitude, longitude } toEstimatedCall { destinationDisplay {frontText} } steps { bogusName, streetName, longitude, latitude, relativeDirection, distance } intermediateEstimatedCalls { expectedArrivalTime, expectedDepartureTime, quay { name, latitude, longitude } } line { publicCode, presentation { colour, textColour } authority { name, url } } } }`; } _getTripGraphQLBody(extendPrevious) { return `{ trip( from: { ${this._getCoordinatesParam(this._query.filledPoints[0])} } to: { ${this._getCoordinatesParam(this._query.filledPoints.last())} } numTripPatterns: 10, walkSpeed: 1.3, searchWindow: 720, ${this._getDateTimeParam()} arriveBy: ${this._query.arriveBy}, ${this._getModeParam()} ${this._getPageCursorParam(extendPrevious)} ) { nextPageCursor, previousPageCursor, ${this._getTripPatternsOutput()} } }`.replace(/(\r\n|\n|\r)/gm, ''); } _getViaPlacesParams() { return this._query.filledPoints.slice(1, -1).map((p) => { return `{ ${this._getCoordinatesParam(p)} }`; }).toString(); } _getSegmentsParam() { if (this._query.transitOptions.showAllTransitTypes) { return ''; } else { const filtersParam = this._getFiltersParam(); const filters = this._query.filledPoints.slice(1).map((p) => { return `{ ${filtersParam} }`; }).toString() return `segments: [ ${filters} ],`; } } } 07070100000284000081A40000000000000000000000016641340900004568000000000000000000000000000000000000003200000000gnome-maps-46.11/src/transitplugins/opendataCH.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2019 Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ /** * This module implements a transit routing plugin for the Swiss national * opendata.ch transit journey planning API. * * API docs for opendata.ch journey planning can be found at: * https://transport.opendata.ch/docs.html */ import GLib from 'gi://GLib'; import Soup from 'gi://Soup'; import {Application} from '../application.js'; import * as GraphHopperTransit from '../graphHopperTransit.js'; import * as HVT from '../hvt.js'; import {Query} from '../http.js'; import * as Time from '../time.js'; import {Itinerary, Leg, RouteType, Stop} from '../transitPlan.js'; import * as Utils from '../utils.js'; const BASE_URL = 'https://transport.opendata.ch'; const API_VERSION = 'v1'; const Transportations = { TRAIN: 'train', TRAM: 'tram', SHIP: 'ship', BUS: 'bus', CABLEWAY: 'cableway' }; /** * These are not documented in the API documentation, so had to * reverse-engineer by trial-and-error. */ const Category = { // bus B: 'B', NFB: 'NFB', NFO: 'NFO', BUS: 'BUS', // tram NFT: 'NFT', TRAM: 'TRAM', T: 'T', // metro M: 'M', // urban rail R: 'R', S: 'S', // regional rail RE: 'RE', // interregional rail IR: 'IR', // intercity rail IC: 'IC', ICE: 'ICE', // night trains N: 'N', SN: 'SN', // funicular FUN: 'FUN', // water transport BAT: 'BAT' }; // gap to use when fetching additional routes const GAP_BEFORE_MORE_RESULTS = 120; export class OpendataCH { constructor() { this._session = new Soup.Session({ user_agent : 'gnome-maps/' + pkg.version }); this._plan = Application.routingDelegator.transitRouter.plan; this._query = Application.routeQuery; } fetchFirstResults() { let filledPoints = this._query.filledPoints; this._extendPrevious = false; this._viaLocations = []; if (filledPoints.length > 7) { Utils.debug('This plugin supports at most five via location'); this._plan.reset(); this._plan.requestFailed(); this._query.reset(); } else { if (filledPoints.length > 2) this._fetchNearbyLocations(filledPoints.slice(1, -1)); else this._fetchResults(); } } fetchMoreResults() { this._extendPrevious = true; // if there's only a walking-only itinerary, don't try to fetch more if (this._plan.itineraries.length === 1 && this._plan.itineraries[0].legs.length === 1 && !this._plan.itineraries[0].legs[0].transit) { this._plan.noMoreResults(); } else { this._fetchResults(); } } _fetchNearbyLocations(points) { this._fetchNearbyLocationsRecursive(points, 0); } _fetchNearbyLocationsRecursive(points, index) { if (index === points.length) { this._fetchResults(); } else { let location = points[index].place.location; let query = new Query({ x: location.latitude, y: location.longitude }); let uri = BASE_URL + '/' + API_VERSION + '/locations?' + query.toString(); let request = Soup.Message('GET', uri); this._session.send_and_read_async(request, GLib.PRIORITY_DEFAULT, null, (source, res) => { if (request.get_status() !== Soup.Status.OK) { Utils.debug('Failed to get location: ' + request.get_status()); this._plan.requestFailed(); this._plan.reset(); } else { let buffer = this._session.send_and_read_finish(res).get_data(); let result = JSON.parse(Utils.getBufferText(buffer)); Utils.debug('locations: ' + JSON.stringify(result, null, 2)); if (result.stations && result.stations.length > 0) { let station = this._getBestStation(result.stations); if (station) { this._viaLocations.push(station); this._fetchNearbyLocationsRecursive(points, index + 1); } else { Utils.debug('No suitable via location found'); this._plan.noRouteFound(); } } else { Utils.debug('No via location found'); this._plan.noRouteFound(); } } }); } } _getBestStation(stations) { let name = null; for (let i = 0; i < stations.length; i++) { if (stations[i].icon) name = stations[i].name; } return name; } _fetchResults() { let query = this._getQuery(); let uri = BASE_URL + '/' + API_VERSION + '/connections?' + query.toString(true); let request = Soup.Message.new('GET', uri); Utils.debug('uri: ' + uri); this._session.send_and_read_async(request, GLib.PRIORITY_DEFAULT, null, (source, res) => { if (request.get_status() !== Soup.Status.OK) { Utils.debug('Failed to get trip: ' + request.get_status()); this._plan.requestFailed(); this._plan.reset(); } else { let buffer = this._session.send_and_read_finish(res).get_data(); let result = JSON.parse(Utils.getBufferText(buffer)); Utils.debug('result: ' + JSON.stringify(result, null, 2)); if (result.connections && result.connections.length > 0) { let itineraries = this._createItineraries(result.connections); GraphHopperTransit.addWalkingToItineraries(itineraries, () => this._plan.updateWithNewItineraries(itineraries, this._query.arriveBy, this._extendPrevious)); } else { this._plan.noRouteFound(); } } }); } _createItineraries(connections) { return connections.map((connection) => this._createItinerary(connection)); } _createItinerary(connection) { let legs = this._createLegs(connection.sections); let duration = connection.to.arrivalTimestamp - connection.from.departureTimestamp; let from = connection.from; let to = connection.to; let [startTime,] = Time.parseTime(from.departure); let [endTime,] = Time.parseTime(to.arrival); return new Itinerary({ duration: duration, departure: startTime, arrival: endTime, legs: legs }); } _createLegs(sections) { let result = sections.map((section, index, sections) => this._createLeg(section, index, sections)); return result; } _createLeg(section, index, sections) { let isTransit = section.journey; let departure = section.departure; let arrival = section.arrival; let journey = section.journey; if (!departure) throw new Error('Missing departure element'); if (!arrival) throw new Error('Missing arrival element'); let first = index === 0; let last = index === sections.length - 1; /* for walking legs in the beginning or end, use the name from the * query, so we get the names of the place the user searched for in * the results, when starting/ending at a transitstop, use the stop * name */ let from = first && !journey ? this._query.filledPoints[0].place.name : departure.station.name; let to = last && !journey ? this._query.filledPoints.last().place.name : arrival.station.nam; let [departureTime, tzOffset] = Time.parseTime(departure.departure); let [arrivalTime,] = Time.parseTime(arrival.arrival); let route = journey ? journey.number : null; let routeType = journey ? this._getHVTCodeFromCategory(journey.category) : null; let agencyName = journey ? journey.operator : null; let duration = arrival.arrivalTimestamp - departure.departureTimestamp; let headsign = journey ? journey.to : null; let [departureX, departureY, arrivalX, arrivalY] = this._getCoordsForSection(section, index, sections); let intermediateStops = journey ? this._createIntermediateStops(journey) : null; return new Leg({ departure: departureTime, arrival: arrivalTime, from: from, to: to, headsign: headsign, fromCoordinate: [departureX, departureY], toCoordinate: [arrivalX, arrivalY], route: route, routeType: routeType, isTransit: isTransit, duration: duration, agencyName: agencyName, agencyTimezoneOffset: tzOffset, tripShortName: route, intermediateStops: intermediateStops }); } _getHVTCodeFromCategory(category) { switch (category) { case Category.B: case Category.BUS: case Category.NFB: case Category.NFO: return HVT.BUS_SERVICE; case Category.TRAM: case Category.NFT: case Category.T: return HVT.TRAM_SERVICE; case Category.M: return HVT.METRO_SERVICE; case Category.R: case Category.S: return HVT.SUBURBAN_RAILWAY_SERVICE; case Category.RE: return HVT.REGIONAL_RAIL_SERVICE; case Category.IR: return HVT.INTER_REGIONAL_RAIL_SERVICE; case Category.IC: case Category.ICE: return HVT.LONG_DISTANCE_TRAINS; case Category.N: case Category.SN: return HVT.SLEEPER_RAIL_SERVICE; case Category.FUN: return HVT.FUNICULAR_SERVICE; case Category.BAT: return HVT.WATER_TRANSPORT_SERVICE; default: return null; } } _getCoordsForSection(section, index, sections) { let departureX = section.departure.location.coordinate.x; let departureY = section.departure.location.coordinate.y; let arrivalX = section.arrival.location.coordinate.x; let arrivalY = section.arrival.location.coordinate.y; if (sections.length === 1) { if (!departureX) departureX = this._query.filledPoints[0].place.location.latitude; if (!departureY) departureY = this._query.filledPoints[0].place.location.longitude; if (!arrivalX) arrivalX = this._query.filledPoints.last().place.location.latitude; if (!arrivalY) arrivalY = this._query.filledPoints.last().place.location.longitude; } else if (index === 0) { if (!departureX) departureX = this._query.filledPoints[0].place.location.latitude; if (!departureY) departureY = this._query.filledPoints[0].place.location.longitude; } else if (index === sections.length - 1) { if (!arrivalX) arrivalX = this._query.filledPoints.last().place.location.latitude; if (!arrivalY) arrivalY = this._query.filledPoints.last().place.location.longitude; } return [departureX, departureY, arrivalX, arrivalY]; } _createIntermediateStops(journey) { let result = []; journey.passList.forEach((pass, index) => { if (index !== 0) result.push(this._createIntermediateStop(pass)); }); return result; } _createIntermediateStop(pass) { let [departure, departureTzOffset] = [,]; let [arrival, arrivalTzOffset] = [,]; if (pass.departure) [departure, departureTzOffset] = Time.parseTime(pass.departure); if (pass.arrival) [arrival, arrivalTzOffset] = Time.parseTime(pass.arrival); if (!arrival) arrival = departure; if (!departure) departure = arrival; return new Stop({ name: pass.station.name, arrival: arrival, departure: departure, agencyTimezoneOffset: departureTzOffset || arrivalTzOffset, coordinate: [pass.location.coordinate.x, pass.location.coordinate.y] }); } // get a time suitably formatted for the the query param _formatTime(time, offset) { let utcTimeWithOffset = (time + offset) / 1000; let date = GLib.DateTime.new_from_unix_utc(utcTimeWithOffset); return date.format('%R'); } // get a date suitably formatted for the query param _formatDate(time, offset) { let utcTimeWithOffset = (time + offset) / 1000; let date = GLib.DateTime.new_from_unix_utc(utcTimeWithOffset); return date.format('%F'); } _getPlaceParam(point) { let location = point.place.location; return location.latitude + ',' + location.longitude; } _getQuery(vias) { let points = this._query.filledPoints; let transitOptions = this._query.transitOptions; let params = { from: this._getPlaceParam(points[0]), to: this._getPlaceParam(points.last()) }; if (!transitOptions.showAllTransitTypes) params.transportations = this._getTransportations(transitOptions); if (this._query.arriveBy) params.isArrivalTime = 1; /* the "page" parameter of the API seems broken for "arrive by" * searches, so instead search by updated time */ if (this._extendPrevious) { let itineraries = this._plan.itineraries; let lastItinerary = itineraries.last(); let time; let offset; if (this._query.arriveBy) { time = lastItinerary.transitArrivalTime - GAP_BEFORE_MORE_RESULTS * 1000; offset = lastItinerary.transitArrivalTimezoneOffset; } else { time = lastItinerary.transitDepartureTime + GAP_BEFORE_MORE_RESULTS * 1000; offset = lastItinerary.transitDepartureTimezoneOffset; } params.time = this._formatTime(time, offset); params.date = this._formatDate(time, offset); } else { if (this._query.time) params.time = this._query.time; if (this._query.date) params.date = this._query.date; } let query = new Query(params); if (this._viaLocations.length > 0) { this._viaLocations.forEach((p) => { query.add('via', p); }); } return query; } _getTransportations(transitOptions) { let transportations = []; this._query.transitOptions.transitTypes.forEach((type) => { let transportation = this._transportationForTransitType(type); if (transportation) transportations.push(transportation); }); return transportations; } _transportationForTransitType(type) { switch (type) { case RouteType.BUS: return Transportations.BUS; case RouteType.TRAM: return Transportations.TRAM; case RouteType.TRAIN: return Transportations.TRAIN; case RouteType.FERRY: return Transportations.SHIP; default: return null; } } } 07070100000285000081A400000000000000000000000166413409000058EA000000000000000000000000000000000000003000000000gnome-maps-46.11/src/transitplugins/resrobot.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2019 Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ /** * This module implements a transit routing plugin for the Swedish national * Resrobot transit journey planning API. * * API docs for Resrobot can be found at: * https://www.trafiklab.se/api/resrobot-reseplanerare/dokumentation/sokresa */ import GLib from 'gi://GLib'; import Soup from 'gi://Soup'; import {Application} from '../application.js'; import * as GraphHopperTransit from '../graphHopperTransit.js'; import {Query} from '../http.js'; import * as HVT from '../hvt.js'; import * as Time from '../time.js'; import {Itinerary, Leg, RouteType, Stop} from '../transitPlan.js'; import * as Utils from '../utils.js'; const BASE_URL = 'https://api.resrobot.se'; const API_VERSION = 'v2.1'; // Timezone for timestamps returned by this provider const NATIVE_TIMEZONE = 'Europe/Stockholm'; const ISO_8601_DURATION_REGEXP = new RegExp(/P((\d+)D)?T((\d+)H)?((\d+)M)?/); const Products = { EXPRESS_TRAIN: 2, REGIONAL_TRAIN: 4, EXPRESS_BUS: 8, LOCAL_TRAIN: 16, SUBWAY: 32, TRAM: 64, BUS: 128, FERRY: 256, TAXI: 512 }; const LegType = { WALK: 'WALK', TRANSIT: 'JNY', TRANSFER: 'TRSF' }; const CatCode = { EXPRESS_TRAIN: 1, REGIONAL_TRAIN: 2, EXPRESS_BUS: 3, LOCAL_TRAIN: 4, SUBWAY: 5, TRAM: 6, BUS: 7, FERRY: 8, TAXI: 9 }; const MAX_NUM_NEARBY_STOPS = 5; const NEARBY_STOPS_SEARCH_RADIUS = 500; // ignore walking legs at the beginning/end when below this distance const DISTANCE_THREASHOLD_TO_IGNORE = 50; // search radius to search for walk-only journeys const WALK_SEARCH_RADIUS = 2000; // maximum distance for walk-only journey const MAX_WALK_ONLY_DISTANCE = 2500; /* set of transit agencies where "regional rail" is interpreted as * HVT.TOURIST_RAILWAY_SERVICE, e.g. heritage rail */ const TOURIST_TRAIN_AGENCIES = new Set(['Engelsberg-Norbergs Jä', 'Lennakatten', 'TJF Smalspåret']); export class Resrobot { constructor(params) { this._session = new Soup.Session({ user_agent : 'gnome-maps/' + pkg.version }); this._plan = Application.routingDelegator.transitRouter.plan; this._query = Application.routeQuery; this._accessId = params.accessId; this._tz = GLib.TimeZone.new(NATIVE_TIMEZONE); if (!this._accessId) throw new Error('missing accessId'); if (typeof(this._accessId) !== 'string' || !GLib.uuid_string_is_valid(this._accessId)) { throw new Error('invalid accessId'); } } fetchFirstResults() { let filledPoints = this._query.filledPoints; this._extendPrevious = false; this._viaId = null; if (filledPoints.length > 3) { Utils.debug('This plugin supports at most one via location'); this._plan.reset(); this._plan.requestFailed(); this._query.reset(); } else if (filledPoints.length === 2) { this._fetchResults(); } else { let lat = filledPoints[1].place.location.latitude; let lon = filledPoints[1].place.location.longitude; this._fetchNearbyStops(lat, lon, MAX_NUM_NEARBY_STOPS, NEARBY_STOPS_SEARCH_RADIUS, () => this._fetchResults()); } } fetchMoreResults() { this._extendPrevious = true; if ((!this._scrF && !this._query.arriveBy) || (!this._scrB && this._query.arriveBy)) this._noRouteFound(); else this._fetchResults(); } _fetchNearbyStops(lat, lon, num, radius, callback) { let query = new Query(this._getNearbyStopsQueryParams(lat, lon, num, radius)); let uri = BASE_URL + '/' + API_VERSION + '/location.nearbystops?' + query.toString(); let request = Soup.Message.new('GET', uri); this._session.send_and_read_async(request, GLib.PRIORITY_DEFAULT, null, (source, res) => { if (request.get_status() !== Soup.Status.OK) { Utils.debug('Failed to get nearby stops: ' + request.get_status()); this._noRouteFound(); } else { try { let buffer = this._session.send_and_read_finish(res).get_data(); let result = JSON.parse(Utils.getBufferText(buffer)); let stopLocations = result.stopLocationOrCoordLocation; Utils.debug('nearby stops: ' + JSON.stringify(result, null, 2)); if (stopLocations?.length > 0) { let extId = stopLocations[0]?.StopLocation.extId; this._viaId = extId; callback(); } else { Utils.debug('No nearby stops found'); this._noRouteFound(); } } catch (e) { Utils.debug('Error parsing result: ' + e); this._plan.reset(); this._plan.requestFailed(); } } }); } _fetchResults() { let query = new Query(this._getQueryParams()); let uri = BASE_URL + '/' + API_VERSION + '/trip?' + query.toString(); let request = Soup.Message.new('GET', uri); this._session.send_and_read_async(request, GLib.PRIORITY_DEFAULT, null, (source, res) => { if (request.get_status() !== Soup.Status.OK) { Utils.debug('Failed to get trip: ' + request.get_status()); /* No routes found. If this is the first search * (not "load more") and the distance is short * enough, generate a walk-only itinerary */ let [start, end, distance] = this._getAsTheCrowFliesPointsAndDistanceForQuery(); if (!this._extendPrevious && distance <= WALK_SEARCH_RADIUS) { GraphHopperTransit.fetchWalkingRoute([start, end], (route) => { if (route && route.distance <= MAX_WALK_ONLY_DISTANCE) { let walkingItinerary = this._createWalkingOnlyItinerary(start, end, route); this._plan.updateWithNewItineraries([walkingItinerary]); } else { this._noRouteFound(); } }); } else { this._noRouteFound(); } } else { try { let buffer = this._session.send_and_read_finish(res).get_data(); let result = JSON.parse(Utils.getBufferText(buffer)); Utils.debug('result: ' + JSON.stringify(result, null, 2)); if (result.Trip) { let itineraries = this._createItineraries(result.Trip); // store the back and forward references from the result this._scrB = result.scrB; this._scrF = result.scrF; this._processItineraries(itineraries); } else { this._noRouteFound(); } } catch (e) { Utils.debug('Error parsing result: ' + e); this._plan.reset(); this._plan.requestFailed(); } } }); } /* get total "as the crow flies" start, and end points, and distance for * the query */ _getAsTheCrowFliesPointsAndDistanceForQuery() { let start = this._query.filledPoints[0]; let end = this._query.filledPoints.last(); let startLoc = start.place.location; let endLoc = end.place.location; return [start, end, endLoc.get_distance_from(startLoc) * 1000]; } _processItineraries(itineraries) { /* if this is the first request, and the distance is short enough, * add an additional walking-only itinerary at the beginning */ let [start, end, distance] = this._getAsTheCrowFliesPointsAndDistanceForQuery(); if (!this._extendPrevious && distance <= WALK_SEARCH_RADIUS) { GraphHopperTransit.fetchWalkingRoute([start, end], (route) => { if (route && route.distance <= MAX_WALK_ONLY_DISTANCE) { let walkingItinerary = this._createWalkingOnlyItinerary(start, end, route); itineraries.unshift(walkingItinerary); } GraphHopperTransit.addWalkingToItineraries(itineraries, () => this._plan.updateWithNewItineraries(itineraries, this._query.arriveBy, this._extendPrevious)); }); } else { GraphHopperTransit.addWalkingToItineraries(itineraries, () => this._plan.updateWithNewItineraries(itineraries, this._query.arriveBy, this._extendPrevious)); } } _createWalkingOnlyItinerary(start, end, route) { let walkingLeg = GraphHopperTransit.createWalkingLeg(start, end, start.place.name, end.place.name, route); let duration = route.duration; /* if the query has no date, just use a fake, since only the time * is relevant for displaying in this case */ let date = this._query.date || '2019-01-01'; let time = this._query.time + ':00'; let [timestamp, tzOffset] = this._query.time ? this._parseTime(time, date) : this._getTimestampAndTzOffsetNow(); if (this._query.arriveBy) { walkingLeg.arrival = timestamp; walkingLeg.departure = timestamp - route.time; } else { walkingLeg.departure = timestamp; walkingLeg.arrival = timestamp + route.time; } walkingLeg.agencyTimezoneOffset = tzOffset; let walkingItinerary = new Itinerary({ legs: [walkingLeg]} ); walkingItinerary.adjustTimings(); return walkingItinerary; } /* Indicate that no routes where found, either shows the "No route found" * message, or in case of loading additional (later/earlier) results, * indicate no such where found, so that the sidebar can disable the * "load more" functionality as appropriate. */ _noRouteFound() { if (this._extendPrevious) { this._plan.noMoreResults(); } else { this._plan.noRouteFound(); } } _createItineraries(trips) { return trips.map((trip) => this._createItinerary(trip)); } _createItinerary(trip) { let legs = this._createLegs(trip.LegList.Leg); let itinerary = new Itinerary({ legs: legs }); itinerary.adjustTimings(); return itinerary; } /** * Parse a time and date string into a timestamp into an array with * an absolute timestamp in ms since Unix epoch and a timezone offset * for the provider's native timezone at the given time and date */ _parseTime(time, date) { const timeText = `${date}T${time}`; return Time.parseTime(timeText, this._tz); } /** * Get absolute timestamp for "now" in ms and timezone offset in the * native timezone of the provider's native timezone @ "now" */ _getTimestampAndTzOffsetNow() { let dateTime = GLib.DateTime.new_now(this._tz); return [dateTime.to_unix() * 1000, dateTime.get_utc_offset() / 1000]; } /** * Parse a subset of ISO 8601 duration expressions. * Handle hour and minute parts */ _parseDuration(duration) { let match = duration.match(ISO_8601_DURATION_REGEXP); if (match) { let [,,d,,h,,min] = match; return (d || 0) * 86400 + (h || 0) * 3600 + (min || 0) * 60; } else { Utils.debug('Unknown duration: ' + duration); return -1; } } _createLegs(legs) { let result = legs.map((leg, index, legs) => this._createLeg(leg, index, legs)); if (this._canLegBeIgnored(result[0])) result.shift(); if (this._canLegBeIgnored(result.last())) result.splice(-1); return result; } /* determines if a leg can ignored at the start or end, to catch the * case when the user probably meant to search for a trip from a transit * stop anyway */ _canLegBeIgnored(leg) { if (!leg.isTransit) { /* check that the distance is below the threshold and also that * the duration is below 1 min, since the API in some occasions * apparently gives distance 0, even though a walking leg has * longer duration, and spans a distance in coordinates. */ return leg.distance <= DISTANCE_THREASHOLD_TO_IGNORE && leg.duration <= 60; } else { return false; } } _createLeg(leg, index, legs) { let isTransit; if (leg.type === LegType.TRANSIT) isTransit = true; else if (leg.type === LegType.WALK || leg.type === LegType.TRANSFER) isTransit = false; else throw new Error('Unknown leg type: ' + leg.type); let origin = leg.Origin; let destination = leg.Destination; let product = leg.Product?.[0]; if (!origin) throw new Error('Missing Origin element'); if (!destination) throw new Error('Missing Destination element'); if (!product && isTransit) throw new Error('Missing Product element for transit leg'); let first = index === 0; let last = index === legs.length - 1; /* for walking legs in the beginning or end, use the name from the * query, so we get the names of the place the user searched for in * the results, when starting/ending at a transitstop, use the stop * name */ let from = first && !isTransit ? this._query.filledPoints[0].place.name : origin.name; let to = last && !isTransit ? this._query.filledPoints.last().place.name : destination.name; let [departure, tzOffset] = this._parseTime(origin.time, origin.date); let [arrival,] = this._parseTime(destination.time, destination.date); let route = isTransit ? product.num : null; let routeType = isTransit ? this._getHVTCodeFromCatCode(product.catCode) : null; let agencyName = isTransit ? product.operator : null; let duration = leg.duration ? this._parseDuration(leg.duration) : null; let intermediateStops = isTransit ? this._createIntermediateStops(leg) : null; /* if the route leg is classified as regional rail and the agency * is one of the heritage railways, use tourist rail to get the * steam train icon */ if ((routeType === HVT.REGIONAL_RAIL_SERVICE || routeType === HVT.SUBURBAN_RAILWAY_SERVICE ) && TOURIST_TRAIN_AGENCIES.has(agencyName)) { routeType = HVT.TOURIST_RAILWAY_SERVICE; } return new Leg({ departure: departure, arrival: arrival, from: from, to: to, headsign: leg.direction, fromCoordinate: [origin.lat, origin.lon], toCoordinate: [destination.lat, destination.lon], route: route, routeType: routeType, isTransit: isTransit, distance: leg.dist, duration: duration, agencyName: agencyName, agencyTimezoneOffset: tzOffset, tripShortName: route, intermediateStops: intermediateStops }); } _createIntermediateStops(leg) { let result = []; if (!leg.Stops && !leg.Stops.Stop) throw new Error('Missing Stops element'); leg.Stops.Stop.forEach((stop, index) => { if (index !== 0) result.push(this._createIntermediateStop(stop)); }); return result; } _createIntermediateStop(stop) { let [departure, departureTzOffset] = [,]; let [arrival, arrivalTzOffset] = [,]; if (stop.depTime && stop.depDate) [departure, departureTzOffset] = this._parseTime(stop.depTime, stop.depDate); if (stop.arrTime && stop.arrDate) [arrival, arrivalTzOffset] = this._parseTime(stop.arrTime, stop.arrDate); if (!arrival) arrival = departure; if (!departure) departure = arrival; return new Stop({ name: stop.name, arrival: arrival, departure: departure, agencyTimezoneOffset: departureTzOffset || arrivalTzOffset, coordinate: [stop.lat, stop.lon] }); } _getHVTCodeFromCatCode(code) { switch (parseInt(code)) { case CatCode.EXPRESS_TRAIN: return HVT.HIGH_SPEED_RAIL_SERVICE; case CatCode.REGIONAL_TRAIN: return HVT.REGIONAL_RAIL_SERVICE; case CatCode.EXPRESS_BUS: return HVT.EXPRESS_BUS_SERVICE; case CatCode.LOCAL_TRAIN: return HVT.SUBURBAN_RAILWAY_SERVICE; case CatCode.SUBWAY: return HVT.METRO_SERVICE; case CatCode.TRAM: return HVT.TRAM_SERVICE; case CatCode.BUS: return HVT.BUS_SERVICE; case CatCode.FERRY: return HVT.WATER_TRANSPORT_SERVICE; case CatCode.TAXI: return HVT.COMMUNAL_TAXI_SERVICE; default: Utils.debug('Unknown catCode: ' + code); return HVT.MISCELLANEOUS_SERVICE; } } _getQueryParams() { let points = this._query.filledPoints; let originLocation = points[0].place.location; let destLocation = points.last().place.location; let transitOptions = this._query.transitOptions; let params = { accessId: this._accessId, originCoordLat: originLocation.latitude, originCoordLong: originLocation.longitude, destCoordLat: destLocation.latitude, destCoordLong: destLocation.longitude, passlist: 1, format: 'json' }; if (!transitOptions.showAllTransitTypes) params.products = this._getAllowedProductsForQuery(); if (this._viaId) params.viaId = this._viaId; if (this._extendPrevious) { params.context = this._query.arriveBy ? this._scrB : this._scrF; } else { if (this._query.arriveBy) params.searchForArrival = 1; if (this._query.time) params.time = this._query.time; if (this._query.date) params.date = this._query.date; } return params; } _getNearbyStopsQueryParams(lat, lon, num, radius) { let params = { accessId: this._accessId, originCoordLat: lat, originCoordLong: lon, maxNo: num, r: radius, format: 'json' }; return params; } _getAllowedProductsForQuery() { let products = 0; this._query.transitOptions.transitTypes.forEach((type) => { products += this._productCodeForTransitType(type); }); return products; } _productCodeForTransitType(type) { switch (type) { case RouteType.BUS: return Products.BUS + Products.EXPRESS_BUS + Products.TAXI; case RouteType.TRAM: return Products.TRAM; case RouteType.TRAIN: return Products.EXPRESS_TRAIN + Products.LOCAL_TRAIN; case RouteType.SUBWAY: return Products.SUBWAY; case RouteType.FERRY: return Products.FERRY; default: return 0; } } } 07070100000286000081A40000000000000000000000016641340900002A5C000000000000000000000000000000000000002500000000gnome-maps-46.11/src/translations.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2014 Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ import gettext from 'gettext'; const _ = gettext.gettext; const C_ = gettext.dgettext; import GLib from 'gi://GLib'; import * as Time from './time.js'; import * as Utils from './utils.js'; /* Translate an opening time specification tag value. * from OSM into a "two-dimensional" (array-of-arrays) grid of human-readable * strings (marked for translation) suitable for laying out in aligned rows * and columns in a GtkGrid in the place bubbles. * * Some limitations are imposed to keep the translations manageable: * A maximum of three components (separated by ; in the tag) are considered. * For each component a maximum of three day intervals are considered. * Each day interval can have one or two time intervals specified. * For each of these limitations, the input string is passed on unmodified * if the format is outside the supported cases, so no data should be dropped. * Currently only specifying weekdays and public and school holidays are * supported. * Other variants, such as month-specific opening hours and other interval * variants are not currently supported. In these cases, the data is * returned as-is. * * The definition for the opening_hours tag can be found at: * http://wiki.openstreetmap.org/wiki/Key:opening_hours */ export function translateOpeningHours(string) { if (string === '24/7' || string === 'Mo-Su 00:00-24:00' || string === '00:00-24:00') return [[_("Around the clock")]]; else if (string === 'sunrise-sunset') return [[_("From sunrise to sunset")]]; else { /* split "components" */ let splitParts = string.split(';'); return splitParts.map(p => _translateOpeningHoursPart(p.trim())); } } /* * Parse a time range component, comprised of either a single time range, or * day and time ranges, such as: * 10:00-18:00 * 09:00-12:00,13:00-19:00 * Mo-Fr 10:00-19:00 * Mo-We,Fr 10:00-12:00,13:00-17:00 * Mo-We,Fr 10:00-12:00, 13:00-17:00 */ export function _translateOpeningHoursPart(string) { let splitString = string.split(/\s+/); let len = splitString.length; if (len === 1) { return [_translateOpeningHoursTimeIntervalList(string.trim())]; } else if (len === 2 || len === 3) { let dayIntervalSpec = _translateOpeningHoursDayIntervalList(splitString[0].trim()); let intervalString = len === 2 ? splitString[1].trim() : splitString[1].trim() + splitString[2].trim(); let timeIntervalSpec = _translateOpeningHoursTimeIntervalList(intervalString); return [Utils.firstToLocaleUpperCase(dayIntervalSpec), timeIntervalSpec]; } else { // for an unknown format, just output the raw value return [string]; } } /* * Parse a day interval, such as: * Mo-Fr * Mo,We,Th-Fr */ export function _translateOpeningHoursDayIntervalList(string) { let splitParts = string.split(','); let interval1, interval2, interval3; switch (splitParts.length) { case 1: return _translateOpeningHoursDayInterval(splitParts[0].trim()); case 2: interval1 = _translateOpeningHoursDayInterval(splitParts[0].trim()); interval2 = _translateOpeningHoursDayInterval(splitParts[1].trim()); /* Translators: * This represents a format string consisting of two day interval * specifications. * For example: * Mo-Fr,Sa * where the "Mo-Fr" and "Sa" parts are replaced by the %s * place holder. * The separator (,) could be replaced with a translated variant or * a phrase if appropriate. */ return C_("day interval list", "%s,%s").format(interval1, interval2); case 3: interval1 = _translateOpeningHoursDayInterval(splitParts[0].trim()); interval2 = _translateOpeningHoursDayInterval(splitParts[1].trim()); interval3 = _translateOpeningHoursDayInterval(splitParts[2].trim()); /* Translators: * This represents a format string consisting of three day interval * specifications. * For example: * Mo-We,Fr,Su * where the "Mo-We", "Fr", and "Su" parts are replaced by the * %s place holder. * The separator (,) could be replaced with a translated variant or * a phrase if appropriate. */ return C_("day interval list", "%s,%s,%s"). format(interval1, interval2, interval3); default: // for other formats, just return the raw string return string; } } /* * Parse a day interval consisting of either a single day * or a range, such as: * Mo-Fr * Tu */ export function _translateOpeningHoursDayInterval(string) { let splitString = string.split('-'); // special case: Mo-Su treated as "every day" if (string === 'Mo-Su') return _("Every day"); switch (splitString.length) { case 1: return _translateOpeningHoursDay(splitString[0].trim()); case 2: let from = splitString[0].trim(); let to = splitString[1].trim(); /* Translators: * This represents a range of days with a starting and ending day. */ return C_("day range", "%s-%s").format( _translateOpeningHoursDay(from), _translateOpeningHoursDay(to)); default: // unknown format, just return the input return string; } } function _translateOpeningHoursDay(string) { if (string === 'PH') return _("Public holidays"); if (string === 'SH') return _("School holidays"); // create a dummy DateTime instance which is guaranteed to be a Monday let time = GLib.DateTime.new_local(1, 1, 1, 0, 0, 0.0); let days = ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su']; for (let i = 0; i < days.length; i++) { if (string === days[i]) { time = time.add_days(i); return time.format('%a'); } } // unknown value, just return the input return string; } /* * Parse a time interval list, such as: * 10:00-20:00 * 10:00-12:00,13:00-17:00 */ function _translateOpeningHoursTimeIntervalList(string) { let splitString = string.split(','); switch (splitString.length) { case 1: return _translateOpeningHoursTimeInterval(splitString[0].trim()); case 2: let interval1 = splitString[0].trim(); let interval2 = splitString[1].trim(); /* Translators: * This is a list with two time intervals, such as: * 09:00-12:00, 13:00-14:00 * The intervals are represented by the %s place holders and * appropriate white space or connected phrase could be modified by * the translation. The order of the arguments can be rearranged * using the %n$s syntax. */ return C_("time interval list", "%s, %s").format( _translateOpeningHoursTimeInterval(interval1), _translateOpeningHoursTimeInterval(interval2)); default: // for other number of components, just return the input return string; } } /* * Parse a time interval */ function _translateOpeningHoursTimeInterval(string) { if (string === 'off') return _("not open"); let splitString = string.split('-'); if (splitString.length == 2) { let from = splitString[0].trim(); let to = splitString[1].trim(); /* Translators: * This is a time interval with a starting and an ending time. * The time values are represented by the %s place holders and * appropriate white spacing or connecting phrases can be set by the * translation as needed. The order of the arguments can be rearranged * using the %n$s syntax. */ return C_("time interval", "%s-%s").format( _translateOpeningHoursTime(from), _translateOpeningHoursTime(to)); } else { // unknown time interval format, just return the input return string; } } /* * Parse a time. */ function _translateOpeningHoursTime(string) { let splitString = string.split(':'); if (splitString.length == 2) { let h = splitString[0]; let min = splitString[1]; // if the parts aren't numbers if (h % 1 !== 0 || min % 1 !== 0) return string; // if the hours or minute components are out of range if (h > 24 || h < 0 || min > 59 || min < 0) return string; return Time.formatTimeFromHoursAndMins(h, min); } else { // unknown format, just return input return string; } } export function translateReligion(string) { switch(string) { case 'animist': return _("Animism"); case 'bahai': return _("Bahá'í"); case 'buddhist': return _("Buddhism"); case 'caodaism': return _("Caodaism"); case 'christian': return _("Christianity"); case 'confucian': return _("Confucianism"); case 'hindu': return _("Hinduism"); case 'jain': return _("Jainism"); case 'jewish': return _("Judaism"); case 'muslim': return _("Islam"); case 'multifaith': return _("Multiple Religions"); case 'pagan': return _("Paganism"); case 'pastafarian': return _("Pastafarianism"); case 'scientologist': return _("Scientology"); case 'shinto': return _("Shinto"); case 'sikh': return _("Sikhism"); case 'spiritualist': return _("Spiritualism"); case 'taoist': return _("Taoism"); case 'unitarian_universalist': return _("Unitarian Universalism"); case 'voodoo': return _("Voodoo"); case 'yazidi': return _("Yazidism"); case 'zoroastrian': return _("Zoroastrianism"); default: return null; } } 07070100000287000081A40000000000000000000000016641340900000BA9000000000000000000000000000000000000002800000000gnome-maps-46.11/src/turnPointMarker.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2014 Dario Di Nucci * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Dario Di Nucci */ import Gdk from 'gi://Gdk'; import GObject from 'gi://GObject'; import {Application} from './application.js'; import * as Color from './color.js'; import {Location} from './location.js'; import {MapMarker} from './mapMarker.js'; import {Place} from './place.js'; import * as Utils from './utils.js'; export class TurnPointMarker extends MapMarker { constructor({queryPoint, turnPoint, transitStop, transitLeg, ...params}) { let latitude; let longitude; if (turnPoint) { latitude = turnPoint.coordinate.get_latitude(); longitude = turnPoint.coordinate.get_longitude(); } else { latitude = transitStop.coordinate[0]; longitude = transitStop.coordinate[1]; } let place = new Place({ location: new Location({ latitude: latitude, longitude: longitude }) }); super({...params, place: place}); this._queryPoint = queryPoint; if (this._queryPoint) { this._image.paintable = this._paintableFromIconName(turnPoint.iconName, 16); } else { let color = this._getColor(transitLeg); this._image.paintable = this._paintableFromIconName('maps-point-end-symbolic', 16, color); } } _getColor(transitLeg) { /* Use the route color from the transit leg when representing part of * a transit trip, otherwise let the fallback functionality of the * utility function use a GNOMEish blue color for turn-by-turn routing. */ let color = transitLeg?.color; return new Gdk.RGBA({ red: Color.parseColor(color, 0, 33 / 255), green: Color.parseColor(color, 1, 93 / 255), blue: Color.parseColor(color, 2, 155 / 255), alpha: 255 }); } goTo() { this._mapView.map.go_to(this.latitude, this.longitude); } } GObject.registerClass(TurnPointMarker); 07070100000288000081A40000000000000000000000016641340900000FE2000000000000000000000000000000000000001D00000000gnome-maps-46.11/src/uris.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2020 Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ import gettext from 'gettext'; import GLib from 'gi://GLib'; import * as Utils from './utils.js'; const _ = gettext.gettext; // Matches URLs for OpenStreetMap (for addressing objects or coordinates) const OSM_URL_REGEX = new RegExp(/https?:\/\/(www\.)?openstreetmap\.org./); /** * For URLs identifiable as pointing to a coordinate * e.g. an openstreetmap.org URL with lat and lon query parameters, * returns [lat, lon, optional zoom], otherwise []. */ export function parseAsCoordinateURL(url) { if (url.match(OSM_URL_REGEX)) { /* it seems #map= is not handle well by parse_params(), so just remove * the # as a work-around */ let uri = GLib.Uri.parse(url.replace('#map=', 'map='), GLib.UriFlags.NONE); let query = uri.get_query(); let path = uri.get_path(); // allow OSM location URLs encoding the location with or without a ? let params = GLib.Uri.parse_params(query ?? path.replace('/', ''), -1, '&', GLib.UriParamsFlags.NONE); let lat = params.lat; let lon = params.lon; let mlat = params.mlat; let mlon = params.mlon; let zoom; let map = params.map; if (map) { let parts = map.split('/'); if (parts.length !== 3) { return []; } else { zoom = parseInt(parts[0]); lat = parseFloat(parts[1]); lon = parseFloat(parts[2]); } } else if (mlat && mlon) { lat = parseFloat(mlat); lon = parseFloat(mlon); if (params.zoom) zoom = parseInt(params.zoom); } else if (lat && lon) { lat = parseFloat(lat); lon = parseFloat(lon); if (params.zoom) zoom = parseInt(params.zoom); } else { return []; } return [lat, lon, zoom]; } else { return []; } } /** * For URLs addressing a specific OSM object (node, way, or relation), * returns [type,id], otherwise []. * @returns {[string, number] | []} */ export function parseAsObjectURL(url) { if (url.match(OSM_URL_REGEX)) { let uri = GLib.Uri.parse(url, GLib.UriFlags.NONE); let path = uri.get_path(); // allow trailing slash in the path if (path.endsWith('/')) path = path.substring(0, path.length - 1); let parts = path.split('/'); if (parts.length === 3 && parts[0] === '' && (parts[1] === 'node' || parts[1] === 'way' || parts[1] === 'relation')) { let id = parseInt(parts[2]); if (id > 0) return [parts[1], id]; } } return []; } /** * For maps: URIs, return the search query string if a valid URI * otherwise null. */ export function parseMapsURI(uri) { let path = uri.substring('maps:'.length); let [param, value] = Utils.splitAtFirst(path, '='); if (param === 'q') { try { return GLib.uri_unescape_string(value, null); } catch (error) { return null; } } else { return null; } } 07070100000289000081A40000000000000000000000016641340900001446000000000000000000000000000000000000002B00000000gnome-maps-46.11/src/userLocationMarker.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2014 Damián Nohales * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Damián Nohales */ import Cairo from 'cairo'; import GObject from 'gi://GObject'; import Graphene from 'gi://Graphene'; import Shumate from 'gi://Shumate'; import {MapMarker} from './mapMarker.js'; export class AccuracyCircleMarker extends Shumate.Marker { constructor({place, ...params}) { super({ ...params, latitude: place.location.latitude, longitude: place.location.longitude, can_focus: false, can_target: false }); this._place = place; } refreshGeometry(mapView) { this.latitude = this._place.location.latitude; this.longitude = this._place.location.longitude; let zoom = mapView.map.viewport.zoom_level; let source = mapView.mapSource; let metersPerPixel = source.get_meters_per_pixel(zoom, this.latitude, this.longitude); let size = this._place.location.accuracy * 2 / metersPerPixel; let {x, y, width, height} = mapView.get_allocation(); if (size > width || size > height) this.visible = false; else { this.set_size_request(size, size); this.visible = true; this.queue_draw(); } } vfunc_snapshot(snapshot) { let {x, y, width, height} = this.get_allocation(); let rect = new Graphene.Rect(); rect.init(0, 0, width, height); let cr = snapshot.append_cairo(rect); cr.setOperator(Cairo.Operator.OVER); cr.setSourceRGBA(0, 0, 255, 0.1); cr.arc(width / 2, width / 2, width / 2, 0, Math.PI * 2); cr.fillPreserve(); super.vfunc_snapshot(snapshot); } } GObject.registerClass(AccuracyCircleMarker); export class UserLocationMarker extends MapMarker { constructor(params) { super(params); this._accuracyMarker = new AccuracyCircleMarker({ place: this.place }); this.connect('notify::view-zoom-level', () => this._accuracyMarker.refreshGeometry(this._mapView)); this._mapView.connect('notify::default-width', () => this._accuracyMarker.refreshGeometry(this._mapView)); this._mapView.connect('notify::default-height', () => this._accuracyMarker.refreshGeometry(this._mapView)); this._accuracyMarker.refreshGeometry(this._mapView); this.place.connect('notify::location', () => this._updateLocation()); this._image.pixel_size = 24; this._updateLocation(); this.connect('notify::visible', this._updateAccuracyCircle.bind(this)); this._mapView.map.viewport.connect('notify::rotation', () => this._updateLocation()); } _hasBubble() { return true; } addToLayer(layer) { layer.add_marker(this._accuracyMarker); layer.add_marker(this); } _updateLocation() { if (this.place.location.heading > -1) { this._image.icon_name = 'user-location-compass' this.queue_draw(); } else { this._image.icon_name = 'user-location'; } this._updateAccuracyCircle(); } _updateAccuracyCircle() { if (this.visible && this.place.location.accuracy > 0) { this._accuracyMarker.refreshGeometry(this._mapView); } else { this._accuracyMarker.visible = false; } } vfunc_snapshot(snapshot) { snapshot.save(); if (this.place.location.heading > -1) { // rotate around the center of the icon let width = this.get_width(); let height = this.get_height(); let point = new Graphene.Point(); let rotation = this.place.location.heading + this._mapView.map.viewport.rotation * 180 / Math.PI; point.init(width / 2, height / 2); snapshot.translate(point); snapshot.rotate(rotation); point.init(-width / 2, -height / 2); snapshot.translate(point); } this.snapshot_child(this._image, snapshot); super.vfunc_snapshot(snapshot); snapshot.restore(); } } GObject.registerClass(UserLocationMarker); 0707010000028A000081A40000000000000000000000016641340900003948000000000000000000000000000000000000001E00000000gnome-maps-46.11/src/utils.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2011, 2013 Red Hat, Inc. * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Cosimo Cecchi * Zeeshan Ali (Khattak) */ import gettext from 'gettext'; import GLib from 'gi://GLib'; import Gdk from 'gi://Gdk'; import GeocodeGlib from 'gi://GeocodeGlib'; import Gio from 'gi://Gio'; import Gtk from 'gi://Gtk'; import Adw from 'gi://Adw'; import GWeather from 'gi://GWeather'; const _ = gettext.gettext; const ngettext = gettext.ngettext; export const METRIC_SYSTEM = 1; export const IMPERIAL_SYSTEM = 2; //List of locales using imperial system according to glibc locale database const IMPERIAL_LOCALES = ['unm_US', 'es_US', 'es_PR', 'en_US', 'yi_US']; // Matches all unicode stand-alone accent characters const ACCENTS_REGEX = /[\u0300-\u036F]/g; // Regex matching e-mail addresses const EMAIL_REGEX=/^[^\s@]+@[^\s@]+\.[^\s@]+$/ const _integerFormat = new Intl.NumberFormat([], { maximumFractionDigits: 0 }); const _integerTwoDigitFormat = new Intl.NumberFormat([], { minimumIntegerDigits: 2, maximumFractionDigits: 0 }); let debugInit = false; let measurementSystem = null; // this should only be used by the unit test to hard-set the measurement system export function _setMeasurementSystem(m) { measurementSystem = m; } export var debugEnabled = false; export function debug(msg) { if (!debugInit) { let env = GLib.getenv('MAPS_DEBUG'); if (env) debugEnabled = true; debugInit = true; } if (debugEnabled) { log('DEBUG: ' + msg); if (msg instanceof Error) log(msg.stack); } } // Connect to a signal on an object and disconnect on its first emission. export function once(obj, signal, callback) { let id = obj.connect(signal, function() { obj.disconnect(id); callback(); }); } export function addActions(actionMap, entries, settings = null) { for(let name in entries) { let entry = entries[name]; let action = createAction(name, entry, settings); actionMap.add_action(action); if(entry.accels) setAccelsForActionMap(actionMap, name, entry.accels); } } export function setAccelsForActionMap(actionMap, actionName, accels) { let app; let prefix; if(actionMap instanceof Gtk.Application) { app = actionMap; prefix = "app"; } else if(actionMap instanceof Gtk.Window) { app = actionMap.application; prefix = "win"; } app.set_accels_for_action(prefix + '.' + actionName, accels); } function createAction(name, { state, paramType, onActivate, onChangeState, setting }, settings = null) { let action; if (setting && settings) { action = settings.create_action(setting); if (onChangeState) action.connect('notify::state', onChangeState); } else { let entry = { name: name }; if (Array.isArray(state)) { let [type, value] = state; entry.state = new GLib.Variant.new(type, value); } if (paramType !== undefined) entry.parameter_type = GLib.VariantType.new(paramType); action = new Gio.SimpleAction(entry); if (onActivate) action.connect('activate', onActivate); if (onChangeState) action.connect('change-state', onChangeState); } return action; } function _getPlatformData(appId, timestamp) { let context = Gdk.Display.get_default().get_app_launch_context(); context.set_timestamp(timestamp); let info = Gio.DesktopAppInfo.new(appId + '.desktop'); let id = new GLib.Variant('s', context.get_startup_notify_id(info, [])); return { 'desktop-startup-id': id }; } export function activateAction(appId, action, parameter, timestamp) { let objectPath = '/' + appId.replace(/\./g, '/'); let platformData = _getPlatformData(appId, timestamp); let wrappedParam = parameter ? [parameter] : []; Gio.DBus.session.call(appId, objectPath, 'org.freedesktop.Application', 'ActivateAction', new GLib.Variant('(sava{sv})', [action, wrappedParam, platformData]), null, Gio.DBusCallFlags.NONE, -1, null, function(c, res) { try { c.call_finish(res); } catch(e) { debug('ActivateApplication: ' + e); } }); } export function dashedToCamelCase(name) { return name.replace(/(-.)/g, function(x) { return x[1].toUpperCase(); }); } export function getUIObject(res, ids) { let builder = new Gtk.Builder(); builder.add_from_resource('/org/gnome/Maps/ui/' + res + '.ui'); let ret = {}; ids.forEach(function(id) { ret[dashedToCamelCase(id)] = builder.get_object(id); }); return ret; } export function readFile(filename) { let status, buffer; let file = Gio.File.new_for_path(filename); try { [status, buffer] = file.load_contents(null); } catch (e) { return null; } if (status) return buffer; else return null; } export function writeFile(filename, buffer) { let file = Gio.File.new_for_path(filename); let status; try { status = file.replace_contents(buffer, null, false, 0, null)[0]; return status; } catch (e) { return false; } } export function getMeasurementSystem() { if (measurementSystem) return measurementSystem; let locale = GLib.getenv('LC_MEASUREMENT') || GLib.get_language_names()[0]; // Strip charset if (locale.indexOf('.') !== -1) locale = locale.substring(0, locale.indexOf('.')); if (IMPERIAL_LOCALES.indexOf(locale) === -1) measurementSystem = METRIC_SYSTEM; else measurementSystem = IMPERIAL_SYSTEM; return measurementSystem; } /** * Get the highest priority bare lange currently in use. */ export function getLanguage() { let locale = GLib.get_language_names()[0]; // the last item returned is the "bare" language return GLib.get_locale_variants(locale).slice(-1)[0]; } export function getAccuracyDescription(accuracy) { switch(accuracy) { case GeocodeGlib.LOCATION_ACCURACY_UNKNOWN: /* Translators: Accuracy of user location information */ return _("Unknown"); case 0: /* Translators: Accuracy of user location information */ return _("Exact"); default: return prettyDistance(accuracy); } } export function osmTypeToString(osmType) { switch(osmType) { case GeocodeGlib.PlaceOsmType.NODE: return 'node'; case GeocodeGlib.PlaceOsmType.RELATION: return 'relation'; case GeocodeGlib.PlaceOsmType.WAY: return 'way'; default: return 'node'; } } export function osmTypeFromString(osmType) { switch(osmType) { case 'node': return GeocodeGlib.PlaceOsmType.NODE; case 'relation': return GeocodeGlib.PlaceOsmType.RELATION; case 'way': return GeocodeGlib.PlaceOsmType.WAY; default: return GeocodeGlib.PlaceOsmType.UNKNOWN; } } /** * Return a formatted integer number with no * fraction, using locale-specific numerals */ export function formatLocaleInteger(n) { return _integerFormat.format(n); } /** * Return a formatted integer number with no * fraction, using locale-specific numerals using at least two digits * with possible leading 0, suitable for time rendering. */ export function formatLocaleIntegerMinimumTwoDigits(n) { return _integerTwoDigitFormat.format(n); } export function prettyTime(time) { let seconds = Math.floor(time / 1000); let minutes = Math.floor(seconds / 60); seconds = seconds % 60; let hours = Math.floor(minutes / 60); minutes = minutes % 60; let secondsStr = formatLocaleInteger(seconds); let minutesStr = formatLocaleInteger(minutes); let hoursStr = formatLocaleInteger(hours); if (hours > 0 && minutes === 0) { /* Translators: this is a duration with only hours, using * an abbreviation for hours, corresponding to 'h' in English */ return _("%s h").format(hoursStr); } else if (hours > 0) { /* Translators: this is a duration with hours and minutes parts * using abbreviations for hours and minutes, corresponding to 'h' * and 'min' in English. The minutes has appropriate plural variations */ return ngettext("%s h %s min", "%s h %s min", minutes).format(hoursStr, minutesStr); } else if (minutes > 0) { /* Translators: this is a duration with minutes part * using abbreviation for minutes, corresponding to 'min' in English * with appropriate plural variations */ return ngettext("%s min", "%s min", minutes).format(minutesStr); } else { /* Translators: this is a duration of less than one minute * with seconds using an abbreviation for seconds, corresponding to * 's' in English with appropriate plural forms */ return ngettext("%s s", "%s s", seconds).format(secondsStr); } } export function prettyDistance(distance, noRound) { if (getMeasurementSystem() === METRIC_SYSTEM) { // round to whole meters distance = Math.round(distance); if (distance >= 1000 && !noRound) { distance = Math.round(distance / 1000 * 10) / 10; /* Translators: This is a distance measured in kilometers */ return _("%s km").format(distance.toLocaleString()); } else /* Translators: This is a distance measured in meters */ return _("%s m").format(distance.toLocaleString()); } else { // Convert to feet distance = Math.round(distance * 3.2808399); if (distance >= 1056 && !noRound) { // Convert to miles when distance is more than 0.2 mi distance = Math.round(distance / 5280 * 10) / 10; /* Translators: This is a distance measured in miles */ return _("%s mi").format(distance.toLocaleString()); } else /* Translators: This is a distance measured in feet */ return _("%s ft").format(distance.toLocaleString()); } } /** * Format a population number so that greater than or equal to a million and * evenly divisiable by 100k are displayed a locale-specific compact form * to handle estimated values without showing lots of zeros. * Other values are formatted in full. */ export function prettyPopulation(population) { let notation = population >= 1000000 && population % 100000 === 0 ? 'compact' : 'standard'; return population.toLocaleString(undefined, { notation: notation }); } export function uriSchemeSupported(scheme) { let apps = Gio.AppInfo.get_all(); let prefix = 'x-scheme-handler/'; for (let app of apps) { let types = app.get_supported_types(); if (!types) continue; for (let type of types) { if (type.replace(prefix, '') === scheme) return true; } } return false; } export function normalizeString(string) { let normalized = GLib.utf8_normalize(string, -1, GLib.NormalizeMode.ALL); return normalized.replace(ACCENTS_REGEX, ''); } export function isUsingDarkThemeVariant() { let gtkSettings = Gtk.Settings.get_default(); return gtkSettings.gtk_application_prefer_dark_theme; } export function isUsingHighContrastTheme() { let gtkSettings = Gtk.Settings.get_default(); let themeName = gtkSettings.gtk_theme_name; return themeName === 'HighContrast' || themeName === 'HighContrastInverse'; } export function showToastInOverlay(message, overlay) { let toast = new Adw.Toast({ title: message, }); overlay.add_toast(toast); } let decoder = new TextDecoder('utf-8'); /* Gets a string from either a ByteArray or Uint8Array. This is for compatibility between two different Gjs versions, see discussion at https://gitlab.gnome.org/GNOME/gnome-maps/merge_requests/19 */ export function getBufferText(buffer) { return decoder.decode(buffer); } export function getCountryCodeForCoordinates(lat, lon) { let location = GWeather.Location.new_detached('', null, lat, lon); return location.get_country(); } /* Determines whether a URI is valid and its scheme is HTTP or HTTPS. */ export function isValidWebsite(website) { try { GLib.Uri.is_valid(website, GLib.UriFlags.NONE); } catch(e) { return false; } return website.startsWith("http://") || website.startsWith("https://"); } /* Determine whether a string is a valid e-mail address. */ export function isValidEmail(email) { // if it starts with 'mailto:', it's probably a mistake copy-pasting a URI if (email.startsWith('mailto:')) return false; return email.match(EMAIL_REGEX) !== null; } /* Return string with first character in upper case according the rules * determined by the current locale */ export function firstToLocaleUpperCase(str) { return str[0].toLocaleUpperCase() + str.substring(1); } /* Splits string at first occurance of a character, leaving remaining * occurances of the separator in the second part */ export function splitAtFirst(string, separator) { let [first, ...rest] = string.split(separator); if (rest.length > 0) { rest = rest.join(separator); return [first, rest]; } else { return [first]; } } 0707010000028B000081A40000000000000000000000016641340900003AA2000000000000000000000000000000000000002200000000gnome-maps-46.11/src/wikipedia.js/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */ /* vim: set et ts=4 sw=4: */ /* * Copyright (c) 2017 Marcus Lundblad * * GNOME Maps is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * GNOME Maps is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with GNOME Maps; if not, see . * * Author: Marcus Lundblad */ import Gdk from 'gi://Gdk'; import GLib from 'gi://GLib'; import Soup from 'gi://Soup'; import * as Utils from './utils.js'; /** * Regex matching editions of Wikipedia, e.g. "en", "arz", pt-BR", "simple". * See https://en.wikipedia.org/wiki/List_of_Wikipedias "WP code". */ const WP_REGEX = /^[a-z][a-z][a-z]?(\-[a-z]+)?$|^simple$/; /** * Regex matching Wikidata tags */ const WIKIDATA_REGEX = /Q\d+/; /** * Wikidata properties */ const WIKIDATA_PROPERTY_IMAGE = 'P18'; let _soupSession = null; function _getSoupSession() { if (_soupSession === null) { _soupSession = new Soup.Session({ user_agent : 'gnome-maps/' + pkg.version }); } return _soupSession; } let _thumbnailCache = {}; let _metadataCache = {}; let _wikidataCache = {}; let _wikidataImageSourceCache = {}; export function getLanguage(wiki) { return wiki.split(':')[0]; } export function getArticle(wiki) { return GLib.uri_escape_string(wiki.replace(/ /g, '_').split(':').splice(1).join(':'), '\'', false); } export function getHtmlEntityEncodedArticle(wiki) { return GLib.markup_escape_text(wiki.split(':').splice(1).join(':'), -1); } /** * Determine if a Wikipedia reference tag is valid * (of the form "lang:Article title") */ export function isValidWikipedia(wiki) { let parts = wiki.split(':'); if (parts.length < 2) return false; let wpCode = parts[0]; return wpCode.match(WP_REGEX) !== null; } /** * Determine if a Wikidata reference tag is valid (of the form Qnnn) */ export function isValidWikidata(wikidata) { return wikidata.match(WIKIDATA_REGEX) !== null; } /* * Fetch various metadata about a Wikipedia article, given the wiki language * and article title. * * @size is the maximum width of the thumbnail. * * Calls @metadataCb with the lang:title pair for the article and an object * containing information about the article. For the keys/values of this * object, see the relevant MediaWiki API documentation. * * Calls @thumbnailCb with the Gdk.Texture of the icon when successful, otherwise * null. */ export function fetchArticleInfo(wiki, size, metadataCb, thumbnailCb) { let lang = getLanguage(wiki); let title = getHtmlEntityEncodedArticle(wiki); let uri = `https://${lang}.wikipedia.org/w/api.php`; let encodedForm = Soup.form_encode_hash({ action: 'query', titles: title, prop: 'extracts|pageimages|langlinks', format: 'json', /* Allow redirects, for example if an article is renamed. */ redirects: '1', /* Make sure we get all lang links */ lllimit: 'max', /* don't go past first section header */ exintro: 'yes', /* limit the length */ exchars: '200', /* for plain text rather than HTML */ explaintext: 'yes', pithumbsize: size + '' }); let msg = Soup.Message.new_from_encoded_form('GET', uri, encodedForm); let session = _getSoupSession(); let cachedMetadata = _metadataCache[wiki]; if (cachedMetadata) { _onMetadataFetched(wiki, cachedMetadata, size, metadataCb, thumbnailCb); return; } session.send_and_read_async(msg, GLib.PRIORIRY_DEFAULT, null, (source, res) => { if (msg.get_status() !== Soup.Status.OK) { log("Failed to request Wikipedia metadata: " + msg.reason_phrase); metadataCb(null, {}); if (thumbnailCb) { thumbnailCb(null); } return; } let buffer = session.send_and_read_finish(res).get_data(); let response = JSON.parse(Utils.getBufferText(buffer)); let pages = response.query.pages; if (pages) { /* we know there should be only one object instance in the "pages" * object, but the API specifies the sub-object as the page ID, * so we'll have to use this iteration approach here */ for (let pageId in pages) { let page = pages[pageId]; _metadataCache[wiki] = page; _onMetadataFetched(wiki, page, size, metadataCb, thumbnailCb); return; } } else { metadataCb(null, {}); if (thumbnailCb) { thumbnailCb(null); } } }); } /* * Fetch various metadata about a Wikidata reference. * * @defaultArticle is the native Wikipedia article, if set, for the object * when present, it used as a fallback if none of the references * of the Wikidate tag matches a user's language * @size is the maximum width of the thumbnail. * * Calls @metadataCb with the lang:title pair for the article and an object * containing information about the article. For the keys/values of this * object, see the relevant MediaWiki API documentation. * * Calls @thumbnailCb with the Gdk.Texture of the icon when successful, otherwise * null. */ export function fetchArticleInfoForWikidata(wikidata, defaultArticle, size, metadataCb, thumbnailCb) { let cachedWikidata = _wikidataCache[wikidata]; if (cachedWikidata) { _onWikidataFetched(wikidata, defaultArticle, cachedWikidata, size, metadataCb, thumbnailCb); return; } let uri = 'https://www.wikidata.org/w/api.php'; let encodedForm = Soup.form_encode_hash({ action: 'wbgetentities', ids: wikidata, format: 'json' }); let msg = Soup.Message.new_from_encoded_form('GET', uri, encodedForm); let session = _getSoupSession(); session.send_and_read_async(msg, GLib.PRIORIRY_DEFAULT, null, (source, res) => { if (msg.get_status() !== Soup.Status.OK) { log('Failed to request Wikidata entities: ' + msg.reason_phrase); metadataCb(null, {}); thumbnailCb(null); return; } let buffer = session.send_and_read_finish(res).get_data(); let response = JSON.parse(Utils.getBufferText(buffer)); _wikidataCache[wikidata] = response; _onWikidataFetched(wikidata, defaultArticle, response, size, metadataCb, thumbnailCb); }); } export function fetchWikidataForArticle(wiki, cancellable, callback) { let lang = getLanguage(wiki); let title = getHtmlEntityEncodedArticle(wiki); let uri = 'https://www.wikidata.org/w/api.php'; let encodedForm = Soup.form_encode_hash({ action: 'wbgetentities', sites: lang + 'wiki', titles: title, format: 'json' }); let msg = Soup.Message.new_from_encoded_form('GET', uri, encodedForm); let session = _getSoupSession(); session.send_and_read_async(msg, GLib.PRIORIRY_DEFAULT, cancellable, (source, res) => { if (msg.get_status() !== Soup.Status.OK) { log(`Failed to request Wikidata entities: ${msg.reason_phrase}`); callback(null); return; } let buffer = session.send_and_read_finish(res).get_data(); let response = JSON.parse(Utils.getBufferText(buffer)); let id = Object.values(response.entities ?? [])?.[0]?.id; callback(id); }); } function _onWikidataFetched(wikidata, defaultArticle, response, size, metadataCb, thumbnailCb) { let claims = response?.entities?.[wikidata]?.claims; let imageName = claims?.[WIKIDATA_PROPERTY_IMAGE]?.[0]?.mainsnak?.datavalue?.value; /* if the Wikidata metadata links to a title image, use that to fetch * the thumbnail image */ if (imageName) { _fetchWikidataThumbnail(imageName, size, thumbnailCb); thumbnailCb = null; } let sitelinks = response?.entities?.[wikidata]?.sitelinks; if (!sitelinks) { Utils.debug('No sitelinks element in response'); metadataCb(null, {}); if (thumbnailCb) thumbnailCb(null); return; } /* try to find articles in the order of the user's preferred * languages */ for (let language of _getLanguages()) { /* sitelinks appear under "sitelinks" in the form: * langwiki, e.g. "enwiki" */ if (sitelinks[language + 'wiki']) { let article = `${language}:${sitelinks[language + 'wiki'].title}`; fetchArticleInfo(article, size, metadataCb, thumbnailCb); return; } } // if no article reference matches a preferred language if (defaultArticle) { // if there's a default article from the "wikipedia" tag, use it fetchArticleInfo(defaultArticle, size, metadataCb, thumbnailCb); } else { /* if there's exactly one *wiki sitelink, use it, since it's * probably the default (native) article */ let foundSitelink; let numFoundSitelinks = 0; for (let sitelink in sitelinks) { if (sitelink.endsWith('wiki') && sitelink !== 'commonswiki') { foundSitelink = sitelink; numFoundSitelinks++; } } if (numFoundSitelinks === 1) { let language = foundSitelink.substring(0, foundSitelink.length - 4); let article = `${language}:${sitelinks[foundSitelink].title}`; fetchArticleInfo(article, size, metadataCb, thumbnailCb); } } } function _fetchWikidataThumbnail(imageName, size, thumbnailCb) { let cachedImageUrl = _wikidataImageSourceCache[imageName + '/' + size]; if (cachedImageUrl) { _fetchThumbnailImage(imageName, size, cachedImageUrl, thumbnailCb); return; } let uri = 'https://wikipedia.org/w/api.php'; let encodedForm = Soup.form_encode_hash({ action: 'query', prop: 'imageinfo', iiprop: 'url', iiurlwidth: size + '', titles: 'Image:' + imageName, format: 'json' }); let msg = Soup.Message.new_from_encoded_form('GET', uri, encodedForm); let session = _getSoupSession(); session.send_and_read_async(msg, GLib.PRIORIRY_DEFAULT, null, (source, res) => { if (msg.get_status() !== Soup.Status.OK) { log('Failed to request Wikidata image thumbnail URL: ' + msg.reason_phrase); thumbnailCb(null); return; } let buffer = session.send_and_read_finish(res).get_data(); let response = JSON.parse(Utils.getBufferText(buffer)); let thumburl = response?.query?.pages?.[-1]?.imageinfo?.[0]?.thumburl; if (thumburl) { _fetchThumbnailImage(imageName, size, thumburl, thumbnailCb); _wikidataImageSourceCache[imageName + '/' + size] = thumburl; } }); } function _onMetadataFetched(wiki, page, size, metadataCb, thumbnailCb) { /* Try to get a thumbnail *before* following language links--the primary article probably has the best thumbnail image */ if (thumbnailCb && page.thumbnail) { let source = page.thumbnail.source; _fetchThumbnailImage(wiki, size, source, thumbnailCb); thumbnailCb = null; } /* Follow language links if necessary */ let langlink = _findLanguageLink(wiki, page); if (langlink) { fetchArticleInfo(langlink, size, metadataCb, thumbnailCb); } else { metadataCb(wiki, page); if (thumbnailCb) { thumbnailCb(null); } } } function _fetchThumbnailImage(wiki, size, source, callback) { let msg = Soup.Message.new('GET', source); let session = _getSoupSession(); let cachedThumbnail = _thumbnailCache[wiki + '/' + size]; if (cachedThumbnail) { callback(cachedThumbnail); return; } session.send_and_read_async(msg, GLib.PRIORITY_DEFAULT, null, (source, res) => { if (msg.get_status() !== Soup.Status.OK) { log("Failed to download thumbnail: " + msg.reason_phrase); callback(null); return; } const bytes = session.send_and_read_finish(res); try { const texture = Gdk.Texture.new_from_bytes(bytes); _thumbnailCache[wiki + '/' + size] = texture; callback(texture); } catch(e) { log("Failed to load image: " + e); callback(null); } }); } /* Finds the best language to use, based on the language of the original article and the langlinks data from the Wikipedia API. Returns a lang:title string if that article should be used, or undefined if the original article should be used. */ function _findLanguageLink(wiki, page) { let originalLang = getLanguage(wiki); let languages = _getLanguages(); if (!languages.includes(originalLang)) { let langlinks = {}; for (let langlink of (page.langlinks || [])) { langlinks[langlink.lang] = langlink["*"]; } for (let language of languages) { if (language in langlinks) { return language + ":" + langlinks[language]; } } } } function _getLanguages() { return GLib.get_language_names().map((lang) => lang.split(/[\._\-]/)[0]); } 0707010000028C000041ED0000000000000000000000026641340900000000000000000000000000000000000000000000001C00000000gnome-maps-46.11/src/xmldom0707010000028D000081A4000000000000000000000001664134090000008F000000000000000000000000000000000000002400000000gnome-maps-46.11/src/xmldom/LICENSEYou can choose any one of those: The MIT License (MIT): link:http://opensource.org/licenses/MIT LGPL: http://www.gnu.org/licenses/lgpl.html 0707010000028E000081A40000000000000000000000016641340900007950000000000000000000000000000000000000002300000000gnome-maps-46.11/src/xmldom/dom.js/* * DOM Level 2 * Object DOMException * @see http://www.w3.org/TR/REC-DOM-Level-1/ecma-script-language-binding.html * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/ecma-script-binding.html */ function copy(src,dest){ for(var p in src){ dest[p] = src[p]; } } /** ^\w+\.prototype\.([_\w]+)\s*=\s*((?:.*\{\s*?[\r\n][\s\S]*?^})|\S.*?(?=[;\r\n]));? ^\w+\.prototype\.([_\w]+)\s*=\s*(\S.*?(?=[;\r\n]));? */ function _extends(Class,Super){ var pt = Class.prototype; if(!(pt instanceof Super)){ let t = function (){}; t.prototype = Super.prototype; t = new t(); copy(pt,t); Class.prototype = pt = t; } if(pt.constructor != Class){ if(typeof Class != 'function'){ console.error("unknow Class:"+Class) } pt.constructor = Class } } var htmlns = 'http://www.w3.org/1999/xhtml' ; // Node Types var NodeType = {} var ELEMENT_NODE = NodeType.ELEMENT_NODE = 1; var ATTRIBUTE_NODE = NodeType.ATTRIBUTE_NODE = 2; var TEXT_NODE = NodeType.TEXT_NODE = 3; var CDATA_SECTION_NODE = NodeType.CDATA_SECTION_NODE = 4; var ENTITY_REFERENCE_NODE = NodeType.ENTITY_REFERENCE_NODE = 5; var ENTITY_NODE = NodeType.ENTITY_NODE = 6; var PROCESSING_INSTRUCTION_NODE = NodeType.PROCESSING_INSTRUCTION_NODE = 7; var COMMENT_NODE = NodeType.COMMENT_NODE = 8; var DOCUMENT_NODE = NodeType.DOCUMENT_NODE = 9; var DOCUMENT_TYPE_NODE = NodeType.DOCUMENT_TYPE_NODE = 10; var DOCUMENT_FRAGMENT_NODE = NodeType.DOCUMENT_FRAGMENT_NODE = 11; var NOTATION_NODE = NodeType.NOTATION_NODE = 12; // ExceptionCode var ExceptionCode = {} var ExceptionMessage = {}; var INDEX_SIZE_ERR = ExceptionCode.INDEX_SIZE_ERR = ((ExceptionMessage[1]="Index size error"),1); var DOMSTRING_SIZE_ERR = ExceptionCode.DOMSTRING_SIZE_ERR = ((ExceptionMessage[2]="DOMString size error"),2); var HIERARCHY_REQUEST_ERR = ExceptionCode.HIERARCHY_REQUEST_ERR = ((ExceptionMessage[3]="Hierarchy request error"),3); var WRONG_DOCUMENT_ERR = ExceptionCode.WRONG_DOCUMENT_ERR = ((ExceptionMessage[4]="Wrong document"),4); var INVALID_CHARACTER_ERR = ExceptionCode.INVALID_CHARACTER_ERR = ((ExceptionMessage[5]="Invalid character"),5); var NO_DATA_ALLOWED_ERR = ExceptionCode.NO_DATA_ALLOWED_ERR = ((ExceptionMessage[6]="No data allowed"),6); var NO_MODIFICATION_ALLOWED_ERR = ExceptionCode.NO_MODIFICATION_ALLOWED_ERR = ((ExceptionMessage[7]="No modification allowed"),7); var NOT_FOUND_ERR = ExceptionCode.NOT_FOUND_ERR = ((ExceptionMessage[8]="Not found"),8); var NOT_SUPPORTED_ERR = ExceptionCode.NOT_SUPPORTED_ERR = ((ExceptionMessage[9]="Not supported"),9); var INUSE_ATTRIBUTE_ERR = ExceptionCode.INUSE_ATTRIBUTE_ERR = ((ExceptionMessage[10]="Attribute in use"),10); //level2 var INVALID_STATE_ERR = ExceptionCode.INVALID_STATE_ERR = ((ExceptionMessage[11]="Invalid state"),11); var SYNTAX_ERR = ExceptionCode.SYNTAX_ERR = ((ExceptionMessage[12]="Syntax error"),12); var INVALID_MODIFICATION_ERR = ExceptionCode.INVALID_MODIFICATION_ERR = ((ExceptionMessage[13]="Invalid modification"),13); var NAMESPACE_ERR = ExceptionCode.NAMESPACE_ERR = ((ExceptionMessage[14]="Invalid namespace"),14); var INVALID_ACCESS_ERR = ExceptionCode.INVALID_ACCESS_ERR = ((ExceptionMessage[15]="Invalid access"),15); function DOMException(code, message) { if(message instanceof Error){ var error = message; }else{ error = this; Error.call(this, ExceptionMessage[code]); this.message = ExceptionMessage[code]; if(Error.captureStackTrace) Error.captureStackTrace(this, DOMException); } error.code = code; if(message) this.message = this.message + ": " + message; return error; }; DOMException.prototype = Error.prototype; copy(ExceptionCode,DOMException) /** * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-536297177 * The NodeList interface provides the abstraction of an ordered collection of nodes, without defining or constraining how this collection is implemented. NodeList objects in the DOM are live. * The items in the NodeList are accessible via an integral index, starting from 0. */ function NodeList() { }; NodeList.prototype = { /** * The number of nodes in the list. The range of valid child node indices is 0 to length-1 inclusive. * @standard level1 */ length:0, /** * Returns the indexth item in the collection. If index is greater than or equal to the number of nodes in the list, this returns null. * @standard level1 * @param index unsigned long * Index into the collection. * @return Node * The node at the indexth position in the NodeList, or null if that is not a valid index. */ item: function(index) { return this[index] || null; }, toString:function(){ for(var buf = [], i = 0;i=0){ var lastIndex = list.length-1 while(i0 || key == 'xmlns'){ // return null; // } var i = this.length; while(i--){ var attr = this[i]; if(attr.nodeName == key){ return attr; } } return null; }, setNamedItem: function(attr) { var el = attr.ownerElement; if(el && el!=this._ownerElement){ throw new DOMException(INUSE_ATTRIBUTE_ERR); } var oldAttr = this.getNamedItem(attr.nodeName); _addNamedNode(this._ownerElement,this,attr,oldAttr); return oldAttr; }, /* returns Node */ setNamedItemNS: function(attr) {// raises: WRONG_DOCUMENT_ERR,NO_MODIFICATION_ALLOWED_ERR,INUSE_ATTRIBUTE_ERR var el = attr.ownerElement, oldAttr; if(el && el!=this._ownerElement){ throw new DOMException(INUSE_ATTRIBUTE_ERR); } oldAttr = this.getNamedItemNS(attr.namespaceURI,attr.localName); _addNamedNode(this._ownerElement,this,attr,oldAttr); return oldAttr; }, /* returns Node */ removeNamedItem: function(key) { var attr = this.getNamedItem(key); _removeNamedNode(this._ownerElement,this,attr); return attr; },// raises: NOT_FOUND_ERR,NO_MODIFICATION_ALLOWED_ERR //for level2 removeNamedItemNS:function(namespaceURI,localName){ var attr = this.getNamedItemNS(namespaceURI,localName); _removeNamedNode(this._ownerElement,this,attr); return attr; }, getNamedItemNS: function(namespaceURI, localName) { var i = this.length; while(i--){ var node = this[i]; if(node.localName == localName && node.namespaceURI == namespaceURI){ return node; } } return null; } }; /** * @see http://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-102161490 */ export function DOMImplementation(/* Object */ features) { this._features = {}; if (features) { for (var feature in features) { this._features = features[feature]; } } }; DOMImplementation.prototype = { hasFeature: function(/* string */ feature, /* string */ version) { var versions = this._features[feature.toLowerCase()]; if (versions && (!version || version in versions)) { return true; } else { return false; } }, // Introduced in DOM Level 2: createDocument:function(namespaceURI, qualifiedName, doctype){// raises:INVALID_CHARACTER_ERR,NAMESPACE_ERR,WRONG_DOCUMENT_ERR var doc = new Document(); doc.implementation = this; doc.childNodes = new NodeList(); doc.doctype = doctype; if(doctype){ doc.appendChild(doctype); } if(qualifiedName){ var root = doc.createElementNS(namespaceURI,qualifiedName); doc.appendChild(root); } return doc; }, // Introduced in DOM Level 2: createDocumentType:function(qualifiedName, publicId, systemId){// raises:INVALID_CHARACTER_ERR,NAMESPACE_ERR var node = new DocumentType(); node.name = qualifiedName; node.nodeName = qualifiedName; node.publicId = publicId; node.systemId = systemId; // Introduced in DOM Level 2: //readonly attribute DOMString internalSubset; //TODO:.. // readonly attribute NamedNodeMap entities; // readonly attribute NamedNodeMap notations; return node; } }; /** * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247 */ function Node() { }; Node.prototype = { firstChild : null, lastChild : null, previousSibling : null, nextSibling : null, attributes : null, parentNode : null, childNodes : null, ownerDocument : null, nodeValue : null, namespaceURI : null, prefix : null, localName : null, // Modified in DOM Level 2: insertBefore:function(newChild, refChild){//raises return _insertBefore(this,newChild,refChild); }, replaceChild:function(newChild, oldChild){//raises this.insertBefore(newChild,oldChild); if(oldChild){ this.removeChild(oldChild); } }, removeChild:function(oldChild){ return _removeChild(this,oldChild); }, appendChild:function(newChild){ return this.insertBefore(newChild,null); }, hasChildNodes:function(){ return this.firstChild != null; }, cloneNode:function(deep){ return cloneNode(this.ownerDocument||this,this,deep); }, // Modified in DOM Level 2: normalize:function(){ var child = this.firstChild; while(child){ var next = child.nextSibling; if(next && next.nodeType == TEXT_NODE && child.nodeType == TEXT_NODE){ this.removeChild(next); child.appendData(next.data); }else{ child.normalize(); child = next; } } }, // Introduced in DOM Level 2: isSupported:function(feature, version){ return this.ownerDocument.implementation.hasFeature(feature,version); }, // Introduced in DOM Level 2: hasAttributes:function(){ return this.attributes.length>0; }, lookupPrefix:function(namespaceURI){ var el = this; while(el){ var map = el._nsMap; //console.dir(map) if(map){ for(var n in map){ if(map[n] == namespaceURI){ return n; } } } el = el.nodeType == 2?el.ownerDocument : el.parentNode; } return null; }, // Introduced in DOM Level 3: lookupNamespaceURI:function(prefix){ var el = this; while(el){ var map = el._nsMap; //console.dir(map) if(map){ if(prefix in map){ return map[prefix] ; } } el = el.nodeType == 2?el.ownerDocument : el.parentNode; } return null; }, // Introduced in DOM Level 3: isDefaultNamespace:function(namespaceURI){ var prefix = this.lookupPrefix(namespaceURI); return prefix == null; } }; function _xmlEncoder(c){ return c == '<' && '<' || c == '>' && '>' || c == '&' && '&' || c == '"' && '"' || '&#'+c.charCodeAt()+';' } copy(NodeType,Node); copy(NodeType,Node.prototype); /** * @param callback return true for continue,false for break * @return boolean true: break visit; */ function _visitNode(node,callback){ if(callback(node)){ return true; } if((node = node.firstChild)){ do{ if(_visitNode(node,callback)){return true} }while((node=node.nextSibling)) } return false; } function Document(){ } function _onAddAttribute(doc,el,newAttr){ doc && doc._inc++; var ns = newAttr.namespaceURI ; if(ns == 'http://www.w3.org/2000/xmlns/'){ //update namespace el._nsMap[newAttr.prefix?newAttr.localName:''] = newAttr.value } } function _onRemoveAttribute(doc,el,newAttr,remove){ doc && doc._inc++; var ns = newAttr.namespaceURI ; if(ns == 'http://www.w3.org/2000/xmlns/'){ //update namespace delete el._nsMap[newAttr.prefix?newAttr.localName:''] } } function _onUpdateChild(doc,el,newChild){ if(doc && doc._inc){ doc._inc++; //update childNodes var cs = el.childNodes; if(newChild){ cs[cs.length++] = newChild; }else{ //console.log(1) var child = el.firstChild; var i = 0; while(child){ cs[i++] = child; child =child.nextSibling; } cs.length = i; } } } /** * attributes; * children; * * writeable properties: * nodeValue,Attr:value,CharacterData:data * prefix */ function _removeChild(parentNode,child){ var previous = child.previousSibling; var next = child.nextSibling; if(previous){ previous.nextSibling = next; }else{ parentNode.firstChild = next } if(next){ next.previousSibling = previous; }else{ parentNode.lastChild = previous; } _onUpdateChild(parentNode.ownerDocument,parentNode); return child; } /** * preformance key(refChild == null) */ function _insertBefore(parentNode,newChild,nextChild){ var cp = newChild.parentNode; if(cp){ cp.removeChild(newChild);//remove and update } if(newChild.nodeType === DOCUMENT_FRAGMENT_NODE){ var newFirst = newChild.firstChild; if (newFirst == null) { return newChild; } var newLast = newChild.lastChild; }else{ newFirst = newLast = newChild; } var pre = nextChild ? nextChild.previousSibling : parentNode.lastChild; newFirst.previousSibling = pre; newLast.nextSibling = nextChild; if(pre){ pre.nextSibling = newFirst; }else{ parentNode.firstChild = newFirst; } if(nextChild == null){ parentNode.lastChild = newLast; }else{ nextChild.previousSibling = newLast; } do{ newFirst.parentNode = parentNode; }while(newFirst !== newLast && (newFirst= newFirst.nextSibling)) _onUpdateChild(parentNode.ownerDocument||parentNode,parentNode); //console.log(parentNode.lastChild.nextSibling == null) if (newChild.nodeType == DOCUMENT_FRAGMENT_NODE) { newChild.firstChild = newChild.lastChild = null; } return newChild; } function _appendSingleChild(parentNode,newChild){ var cp = newChild.parentNode; if(cp){ var pre = parentNode.lastChild; cp.removeChild(newChild);//remove and update var pre = parentNode.lastChild; } var pre = parentNode.lastChild; newChild.parentNode = parentNode; newChild.previousSibling = pre; newChild.nextSibling = null; if(pre){ pre.nextSibling = newChild; }else{ parentNode.firstChild = newChild; } parentNode.lastChild = newChild; _onUpdateChild(parentNode.ownerDocument,parentNode,newChild); return newChild; //console.log("__aa",parentNode.lastChild.nextSibling == null) } Document.prototype = { //implementation : null, nodeName : '#document', nodeType : DOCUMENT_NODE, doctype : null, documentElement : null, _inc : 1, insertBefore : function(newChild, refChild){//raises if(newChild.nodeType == DOCUMENT_FRAGMENT_NODE){ var child = newChild.firstChild; while(child){ var next = child.nextSibling; this.insertBefore(child,refChild); child = next; } return newChild; } if(this.documentElement == null && newChild.nodeType == 1){ this.documentElement = newChild; } return _insertBefore(this,newChild,refChild),(newChild.ownerDocument = this),newChild; }, removeChild : function(oldChild){ if(this.documentElement == oldChild){ this.documentElement = null; } return _removeChild(this,oldChild); }, // Introduced in DOM Level 2: importNode : function(importedNode,deep){ return importNode(this,importedNode,deep); }, // Introduced in DOM Level 2: getElementById : function(id){ var rtv = null; _visitNode(this.documentElement,function(node){ if(node.nodeType == 1){ if(node.getAttribute('id') == id){ rtv = node; return true; } } return false; }) return rtv; }, //document factory method: createElement : function(tagName){ var node = new Element(); node.ownerDocument = this; node.nodeName = tagName; node.tagName = tagName; node.childNodes = new NodeList(); var attrs = node.attributes = new NamedNodeMap(); attrs._ownerElement = node; return node; }, createDocumentFragment : function(){ var node = new DocumentFragment(); node.ownerDocument = this; node.childNodes = new NodeList(); return node; }, createTextNode : function(data){ var node = new Text(); node.ownerDocument = this; node.appendData(data) return node; }, createComment : function(data){ var node = new Comment(); node.ownerDocument = this; node.appendData(data) return node; }, createCDATASection : function(data){ var node = new CDATASection(); node.ownerDocument = this; node.appendData(data) return node; }, createProcessingInstruction : function(target,data){ var node = new ProcessingInstruction(); node.ownerDocument = this; node.tagName = node.target = target; node.nodeValue= node.data = data; return node; }, createAttribute : function(name){ var node = new Attr(); node.ownerDocument = this; node.name = name; node.nodeName = name; node.localName = name; node.specified = true; return node; }, createEntityReference : function(name){ var node = new EntityReference(); node.ownerDocument = this; node.nodeName = name; return node; }, // Introduced in DOM Level 2: createElementNS : function(namespaceURI,qualifiedName){ var node = new Element(); var pl = qualifiedName.split(':'); var attrs = node.attributes = new NamedNodeMap(); node.childNodes = new NodeList(); node.ownerDocument = this; node.nodeName = qualifiedName; node.tagName = qualifiedName; node.namespaceURI = namespaceURI; if(pl.length == 2){ node.prefix = pl[0]; node.localName = pl[1]; }else{ //el.prefix = null; node.localName = qualifiedName; } attrs._ownerElement = node; return node; }, // Introduced in DOM Level 2: createAttributeNS : function(namespaceURI,qualifiedName){ var node = new Attr(); var pl = qualifiedName.split(':'); node.ownerDocument = this; node.nodeName = qualifiedName; node.name = qualifiedName; node.namespaceURI = namespaceURI; node.specified = true; if(pl.length == 2){ node.prefix = pl[0]; node.localName = pl[1]; }else{ //el.prefix = null; node.localName = qualifiedName; } return node; } }; _extends(Document,Node); function Element() { this._nsMap = {}; }; Element.prototype = { nodeType : ELEMENT_NODE, hasAttribute : function(name){ return this.getAttributeNode(name)!=null; }, getAttribute : function(name){ var attr = this.getAttributeNode(name); return attr && attr.value || ''; }, getAttributeNode : function(name){ return this.attributes.getNamedItem(name); }, setAttribute : function(name, value){ var attr = this.ownerDocument.createAttribute(name); attr.value = attr.nodeValue = "" + value; this.setAttributeNode(attr) }, removeAttribute : function(name){ var attr = this.getAttributeNode(name) attr && this.removeAttributeNode(attr); }, //four real opeartion method appendChild:function(newChild){ if(newChild.nodeType === DOCUMENT_FRAGMENT_NODE){ return this.insertBefore(newChild,null); }else{ return _appendSingleChild(this,newChild); } }, setAttributeNode : function(newAttr){ return this.attributes.setNamedItem(newAttr); }, setAttributeNodeNS : function(newAttr){ return this.attributes.setNamedItemNS(newAttr); }, removeAttributeNode : function(oldAttr){ return this.attributes.removeNamedItem(oldAttr.nodeName); }, //get real attribute name,and remove it by removeAttributeNode removeAttributeNS : function(namespaceURI, localName){ var old = this.getAttributeNodeNS(namespaceURI, localName); old && this.removeAttributeNode(old); }, hasAttributeNS : function(namespaceURI, localName){ return this.getAttributeNodeNS(namespaceURI, localName)!=null; }, getAttributeNS : function(namespaceURI, localName){ var attr = this.getAttributeNodeNS(namespaceURI, localName); return attr && attr.value || ''; }, setAttributeNS : function(namespaceURI, qualifiedName, value){ var attr = this.ownerDocument.createAttributeNS(namespaceURI, qualifiedName); attr.value = attr.nodeValue = "" + value; this.setAttributeNode(attr) }, getAttributeNodeNS : function(namespaceURI, localName){ return this.attributes.getNamedItemNS(namespaceURI, localName); }, getElementsByTagName : function(tagName){ return new LiveNodeList(this,function(base){ var ls = []; _visitNode(base,function(node){ if(node !== base && node.nodeType == ELEMENT_NODE && (tagName === '*' || node.tagName == tagName)){ ls.push(node); } }); return ls; }); }, getElementsByTagNameNS : function(namespaceURI, localName){ return new LiveNodeList(this,function(base){ var ls = []; _visitNode(base,function(node){ if(node !== base && node.nodeType === ELEMENT_NODE && (namespaceURI === '*' || node.namespaceURI === namespaceURI) && (localName === '*' || node.localName == localName)){ ls.push(node); } }); return ls; }); } }; Document.prototype.getElementsByTagName = Element.prototype.getElementsByTagName; Document.prototype.getElementsByTagNameNS = Element.prototype.getElementsByTagNameNS; _extends(Element,Node); function Attr() { }; Attr.prototype.nodeType = ATTRIBUTE_NODE; _extends(Attr,Node); function CharacterData() { }; CharacterData.prototype = { data : '', substringData : function(offset, count) { return this.data.substring(offset, offset+count); }, appendData: function(text) { text = this.data+text; this.nodeValue = this.data = text; this.length = text.length; }, insertData: function(offset,text) { this.replaceData(offset,0,text); }, appendChild:function(newChild){ //if(!(newChild instanceof CharacterData)){ throw new Error(ExceptionMessage[3]) //} return Node.prototype.appendChild.apply(this,arguments) }, deleteData: function(offset, count) { this.replaceData(offset,count,""); }, replaceData: function(offset, count, text) { var start = this.data.substring(0,offset); var end = this.data.substring(offset+count); text = start + text + end; this.nodeValue = this.data = text; this.length = text.length; } } _extends(CharacterData,Node); function Text() { }; Text.prototype = { nodeName : "#text", nodeType : TEXT_NODE, splitText : function(offset) { var text = this.data; var newText = text.substring(offset); text = text.substring(0, offset); this.data = this.nodeValue = text; this.length = text.length; var newNode = this.ownerDocument.createTextNode(newText); if(this.parentNode){ this.parentNode.insertBefore(newNode, this.nextSibling); } return newNode; } } _extends(Text,CharacterData); function Comment() { }; Comment.prototype = { nodeName : "#comment", nodeType : COMMENT_NODE } _extends(Comment,CharacterData); function CDATASection() { }; CDATASection.prototype = { nodeName : "#cdata-section", nodeType : CDATA_SECTION_NODE } _extends(CDATASection,CharacterData); function DocumentType() { }; DocumentType.prototype.nodeType = DOCUMENT_TYPE_NODE; _extends(DocumentType,Node); function Notation() { }; Notation.prototype.nodeType = NOTATION_NODE; _extends(Notation,Node); function Entity() { }; Entity.prototype.nodeType = ENTITY_NODE; _extends(Entity,Node); function EntityReference() { }; EntityReference.prototype.nodeType = ENTITY_REFERENCE_NODE; _extends(EntityReference,Node); function DocumentFragment() { }; DocumentFragment.prototype.nodeName = "#document-fragment"; DocumentFragment.prototype.nodeType = DOCUMENT_FRAGMENT_NODE; _extends(DocumentFragment,Node); function ProcessingInstruction() { } ProcessingInstruction.prototype.nodeType = PROCESSING_INSTRUCTION_NODE; _extends(ProcessingInstruction,Node); export function XMLSerializer(){} XMLSerializer.prototype.serializeToString = function(node,attributeSorter){ return node.toString(attributeSorter); } Node.prototype.toString =function(attributeSorter){ var buf = []; serializeToString(this,buf,attributeSorter); return buf.join(''); } function serializeToString(node,buf,attributeSorter,isHTML){ switch(node.nodeType){ case ELEMENT_NODE: var attrs = node.attributes; var len = attrs.length; var child = node.firstChild; var nodeName = node.tagName; isHTML = (htmlns === node.namespaceURI) ||isHTML buf.push('<',nodeName); if(attributeSorter){ buf.sort.apply(attrs, attributeSorter); } for(var i=0;i'); //if is cdata child node if(isHTML && /^script$/i.test(nodeName)){ if(child){ buf.push(child.data); } }else{ while(child){ serializeToString(child,buf,attributeSorter,isHTML); child = child.nextSibling; } } buf.push(''); }else{ buf.push('/>'); } return null; case DOCUMENT_NODE: case DOCUMENT_FRAGMENT_NODE: var child = node.firstChild; while(child){ serializeToString(child,buf,attributeSorter,isHTML); child = child.nextSibling; } return null; case ATTRIBUTE_NODE: return buf.push(' ',node.name,'="',node.value.replace(/[<&"]/g,_xmlEncoder),'"'); case TEXT_NODE: return buf.push(node.data.replace(/[<&]/g,_xmlEncoder)); case CDATA_SECTION_NODE: return buf.push( ''); case COMMENT_NODE: return buf.push( ""); case DOCUMENT_TYPE_NODE: var pubid = node.publicId; var sysid = node.systemId; buf.push(''); }else if(sysid && sysid!='.'){ buf.push(' SYSTEM "',sysid,'">'); }else{ var sub = node.internalSubset; if(sub){ buf.push(" [",sub,"]"); } buf.push(">"); } return null; case PROCESSING_INSTRUCTION_NODE: return buf.push( ""); case ENTITY_REFERENCE_NODE: return buf.push( '&',node.nodeName,';'); //case ENTITY_NODE: //case NOTATION_NODE: default: return buf.push('??',node.nodeName); } } function importNode(doc,node,deep){ var node2; switch (node.nodeType) { case ELEMENT_NODE: node2 = node.cloneNode(false); node2.ownerDocument = doc; //var attrs = node2.attributes; //var len = attrs.length; //for(var i=0;i','amp':'&','quot':'"','apos':"'"} if(locator){ domBuilder.setDocumentLocator(locator) } sax.errorHandler = buildErrorHandler(errorHandler,domBuilder,locator); sax.domBuilder = options.domBuilder || domBuilder; if(/\/x?html?$/.test(mimeType)){ entityMap.nbsp = '\xa0'; entityMap.copy = '\xa9'; defaultNSMap['']= 'http://www.w3.org/1999/xhtml'; } defaultNSMap.xml = defaultNSMap.xml || 'http://www.w3.org/XML/1998/namespace'; if(source){ sax.parse(source,defaultNSMap,entityMap); }else{ sax.errorHandler.error("invalid document source"); } return domBuilder.document; } function buildErrorHandler(errorImpl,domBuilder,locator){ if(!errorImpl){ if(domBuilder instanceof DOMHandler){ return domBuilder; } errorImpl = domBuilder ; } var errorHandler = {} var isCallback = errorImpl instanceof Function; locator = locator||{} function build(key){ var fn = errorImpl[key]; if(!fn && isCallback){ fn = errorImpl.length == 2?function(msg){errorImpl(key,msg)}:errorImpl; } errorHandler[key] = fn && function(msg){ fn('[xmldom '+key+']\t'+msg+_locator(locator)); }||function(){}; } build('warning'); build('error'); build('fatalError'); return errorHandler; } //console.log('#\n\n\n\n\n\n\n####') /** * +ContentHandler+ErrorHandler * +LexicalHandler+EntityResolver2 * -DeclHandler-DTDHandler * * DefaultHandler:EntityResolver, DTDHandler, ContentHandler, ErrorHandler * DefaultHandler2:DefaultHandler,LexicalHandler, DeclHandler, EntityResolver2 * @link http://www.saxproject.org/apidoc/org/xml/sax/helpers/DefaultHandler.html */ function DOMHandler() { this.cdata = false; } function position(locator,node){ node.lineNumber = locator.lineNumber; node.columnNumber = locator.columnNumber; } /** * @see org.xml.sax.ContentHandler#startDocument * @link http://www.saxproject.org/apidoc/org/xml/sax/ContentHandler.html */ DOMHandler.prototype = { startDocument : function() { this.document = new DOMImplementation().createDocument(null, null, null); if (this.locator) { this.document.documentURI = this.locator.systemId; } }, startElement:function(namespaceURI, localName, qName, attrs) { var doc = this.document; var el = doc.createElementNS(namespaceURI, qName||localName); var len = attrs.length; appendElement(this, el); this.currentElement = el; this.locator && position(this.locator,el) for (var i = 0 ; i < len; i++) { namespaceURI = attrs.getURI(i); var value = attrs.getValue(i); qName = attrs.getQName(i); var attr = doc.createAttributeNS(namespaceURI, qName); if( attr.getOffset){ position(attr.getOffset(1),attr) } attr.value = attr.nodeValue = value; el.setAttributeNode(attr) } }, endElement:function(namespaceURI, localName, qName) { var current = this.currentElement var tagName = current.tagName; this.currentElement = current.parentNode; }, startPrefixMapping:function(prefix, uri) { }, endPrefixMapping:function(prefix) { }, processingInstruction:function(target, data) { var ins = this.document.createProcessingInstruction(target, data); this.locator && position(this.locator,ins) appendElement(this, ins); }, ignorableWhitespace:function(ch, start, length) { }, characters:function(chars, start, length) { chars = _toString.apply(this,arguments) //console.log(chars) if(this.currentElement && chars){ if (this.cdata) { var charNode = this.document.createCDATASection(chars); this.currentElement.appendChild(charNode); } else { var charNode = this.document.createTextNode(chars); this.currentElement.appendChild(charNode); } this.locator && position(this.locator,charNode) } }, skippedEntity:function(name) { }, endDocument:function() { this.document.normalize(); }, setDocumentLocator:function (locator) { if((this.locator = locator)){// && !('lineNumber' in locator)){ locator.lineNumber = 0; } }, //LexicalHandler comment:function(chars, start, length) { chars = _toString.apply(this,arguments) var comm = this.document.createComment(chars); this.locator && position(this.locator,comm) appendElement(this, comm); }, startCDATA:function() { //used in characters() methods this.cdata = true; }, endCDATA:function() { this.cdata = false; }, startDTD:function(name, publicId, systemId) { var impl = this.document.implementation; if (impl && impl.createDocumentType) { var dt = impl.createDocumentType(name, publicId, systemId); this.locator && position(this.locator,dt) appendElement(this, dt); } }, /** * @see org.xml.sax.ErrorHandler * @link http://www.saxproject.org/apidoc/org/xml/sax/ErrorHandler.html */ warning:function(error) { log('[xmldom warning]\t'+error); }, error:function(error) { log('[xmldom error]\t'+error); throw error; }, fatalError:function(error) { log('[xmldom fatalError]\t'+error); throw error; } } function _locator(l){ if(l){ return '\n@'+(l.systemId ||'')+'#[line:'+l.lineNumber+',col:'+l.columnNumber+']' } return null; } function _toString(chars,start,length){ if(typeof chars == 'string'){ return chars.substr(start,length) }else{//java sax connect width xmldom on rhino(what about: "? && !(chars instanceof String)") if(chars.length >= start+length || start){ return new java.lang.String(chars,start,length)+''; } return chars; } } /* * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/LexicalHandler.html * used method of org.xml.sax.ext.LexicalHandler: * #comment(chars, start, length) * #startCDATA() * #endCDATA() * #startDTD(name, publicId, systemId) * * * IGNORED method of org.xml.sax.ext.LexicalHandler: * #endDTD() * #startEntity(name) * #endEntity(name) * * * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/DeclHandler.html * IGNORED method of org.xml.sax.ext.DeclHandler * #attributeDecl(eName, aName, type, mode, value) * #elementDecl(name, model) * #externalEntityDecl(name, publicId, systemId) * #internalEntityDecl(name, value) * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/EntityResolver2.html * IGNORED method of org.xml.sax.EntityResolver2 * #resolveEntity(String name,String publicId,String baseURI,String systemId) * #resolveEntity(publicId, systemId) * #getExternalSubset(name, baseURI) * @link http://www.saxproject.org/apidoc/org/xml/sax/DTDHandler.html * IGNORED method of org.xml.sax.DTDHandler * #notationDecl(name, publicId, systemId) {}; * #unparsedEntityDecl(name, publicId, systemId, notationName) {}; */ "endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl".replace(/\w+/g,function(key){ DOMHandler.prototype[key] = function(){return null} }) /* Private static helpers treated below as private instance methods, so don't need to add these to the public API; we might use a Relator to also get rid of non-standard public properties */ function appendElement (hander,node) { if (!hander.currentElement) { hander.document.appendChild(node); } else { hander.currentElement.appendChild(node); } }//appendChild and setAttributeNS are preformance key 07070100000290000081A4000000000000000000000001664134090000424C000000000000000000000000000000000000002300000000gnome-maps-46.11/src/xmldom/sax.js//[4] NameStartChar ::= ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF] //[4a] NameChar ::= NameStartChar | "-" | "." | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040] //[5] Name ::= NameStartChar (NameChar)* var nameStartChar = /[A-Z_a-z\xC0-\xD6\xD8-\xF6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]///\u10000-\uEFFFF var nameChar = new RegExp("[\\-\\.0-9"+nameStartChar.source.slice(1,-1)+"\u00B7\u0300-\u036F\\u203F-\u2040]"); var tagNamePattern = new RegExp('^'+nameStartChar.source+nameChar.source+'*(?:\:'+nameStartChar.source+nameChar.source+'*)?$'); //var tagNamePattern = /^[a-zA-Z_][\w\-\.]*(?:\:[a-zA-Z_][\w\-\.]*)?$/ //var handlers = 'resolveEntity,getExternalSubset,characters,endDocument,endElement,endPrefixMapping,ignorableWhitespace,processingInstruction,setDocumentLocator,skippedEntity,startDocument,startElement,startPrefixMapping,notationDecl,unparsedEntityDecl,error,fatalError,warning,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,comment,endCDATA,endDTD,endEntity,startCDATA,startDTD,startEntity'.split(',') //S_TAG, S_ATTR, S_EQ, S_V //S_ATTR_S, S_E, S_S, S_C var S_TAG = 0;//tag name offerring var S_ATTR = 1;//attr name offerring var S_ATTR_S=2;//attr name end and space offer var S_EQ = 3;//=space? var S_V = 4;//attr value(no quot value only) var S_E = 5;//attr value end and no space(quot end) var S_S = 6;//(attr value end || tag end ) && (space offer) var S_C = 7;//closed el export function XMLReader(){ } XMLReader.prototype = { parse:function(source,defaultNSMap,entityMap){ var domBuilder = this.domBuilder; domBuilder.startDocument(); _copy(defaultNSMap ,defaultNSMap = {}) parse(source,defaultNSMap,entityMap, domBuilder,this.errorHandler); domBuilder.endDocument(); } } function parse(source,defaultNSMapCopy,entityMap,domBuilder,errorHandler){ function fixedFromCharCode(code) { // String.prototype.fromCharCode does not supports // > 2 bytes unicode chars directly if (code > 0xffff) { code -= 0x10000; var surrogate1 = 0xd800 + (code >> 10) , surrogate2 = 0xdc00 + (code & 0x3ff); return String.fromCharCode(surrogate1, surrogate2); } else { return String.fromCharCode(code); } } function entityReplacer(a){ var k = a.slice(1,-1); if(k in entityMap){ return entityMap[k]; }else if(k.charAt(0) === '#'){ return fixedFromCharCode(parseInt(k.substr(1).replace('x','0x'))) }else{ errorHandler.error('entity not found:'+a); return a; } } function appendText(end){//has some bugs if(end>start){ var xt = source.substring(start,end).replace(/&#?\w+;/g,entityReplacer); locator&&position(start); domBuilder.characters(xt,0,end-start); start = end } } function position(p,m){ while(p>=lineEnd && (m = linePattern.exec(source))){ lineStart = m.index; lineEnd = lineStart + m[0].length; locator.lineNumber++; //console.log('line++:',locator,startPos,endPos) } locator.columnNumber = p-lineStart+1; } var lineStart = 0; var lineEnd = 0; var linePattern = /.+(?:\r\n?|\n)|.*$/g var locator = domBuilder.locator; var parseStack = [{currentNSMap:defaultNSMapCopy}] var closeMap = {}; var start = 0; while(true){ try{ var tagStart = source.indexOf('<',start); if(tagStart<0){ if(!source.substr(start).match(/^\s*$/)){ var doc = domBuilder.document; var text = doc.createTextNode(source.substr(start)); doc.appendChild(text); domBuilder.currentElement = text; } return; } if(tagStart>start){ appendText(tagStart); } switch(source.charAt(tagStart+1)){ case '/': var end = source.indexOf('>',tagStart+3); var tagName = source.substring(tagStart+2,end); var config = parseStack.pop(); var localNSMap = config.localNSMap; if(config.tagName != tagName){ errorHandler.fatalError("end tag name: "+tagName+' is not match the current start tagName:'+config.tagName ); } domBuilder.endElement(config.uri,config.localName,tagName); if(localNSMap){ for(var prefix in localNSMap){ domBuilder.endPrefixMapping(prefix) ; } } end++; break; // end elment case '?':// locator&&position(tagStart); end = parseInstruction(source,tagStart,domBuilder); break; case '!':// start){ start = end; }else{ //TODO: 这里有可能sax回退,有位置错误风险 appendText(Math.max(tagStart,start)+1); } } } function copyLocator(f,t){ t.lineNumber = f.lineNumber; t.columnNumber = f.columnNumber; return t; } /** * @see #appendElement(source,elStartEnd,el,selfClosed,entityReplacer,domBuilder,parseStack); * @return end of the elementStartPart(end of elementEndPart for selfClosed el) */ function parseElementStartPart(source,start,el,entityReplacer,errorHandler){ var attrName; var value; var p = ++start; var s = S_TAG;//status while(true){ var c = source.charAt(p); switch(c){ case '=': if(s === S_ATTR){//attrName attrName = source.slice(start,p); s = S_EQ; }else if(s === S_ATTR_S){ s = S_EQ; }else{ //fatalError: equal must after attrName or space after attrName throw new Error('attribute equal must after attrName'); } break; case '\'': case '"': if(s === S_EQ){//equal start = p+1; p = source.indexOf(c,start) if(p>0){ value = source.slice(start,p).replace(/&#?\w+;/g,entityReplacer); el.add(attrName,value,start-1); s = S_E; }else{ //fatalError: no end quot match throw new Error('attribute value no end \''+c+'\' match'); } }else if(s == S_V){ value = source.slice(start,p).replace(/&#?\w+;/g,entityReplacer); //console.log(attrName,value,start,p) el.add(attrName,value,start); //console.dir(el) errorHandler.warning('attribute "'+attrName+'" missed start quot('+c+')!!'); start = p+1; s = S_E }else{ //fatalError: no equal before throw new Error('attribute value must after "="'); } break; case '/': switch(s){ case S_TAG: el.setTagName(source.slice(start,p)); case S_E: case S_S: case S_C: s = S_C; el.closed = true; case S_V: case S_ATTR: case S_ATTR_S: break; //case S_EQ: default: throw new Error("attribute invalid close char('/')") } break; case ''://end document //throw new Error('unexpected end of input') errorHandler.error('unexpected end of input'); case '>': switch(s){ case S_TAG: el.setTagName(source.slice(start,p)); case S_E: case S_S: case S_C: break;//normal case S_V://Compatible state case S_ATTR: value = source.slice(start,p); if(value.slice(-1) === '/'){ el.closed = true; value = value.slice(0,-1) } case S_ATTR_S: if(s === S_ATTR_S){ value = attrName; } if(s == S_V){ errorHandler.warning('attribute "'+value+'" missed quot(")!!'); el.add(attrName,value.replace(/&#?\w+;/g,entityReplacer),start) }else{ errorHandler.warning('attribute "'+value+'" missed value!! "'+value+'" instead!!') el.add(value,value,start) } break; case S_EQ: throw new Error('attribute value missed!!'); } // console.log(tagName,tagNamePattern,tagNamePattern.test(tagName)) return p; /*xml space '\x20' | #x9 | #xD | #xA; */ case '\u0080': c = ' '; default: if(c<= ' '){//space switch(s){ case S_TAG: el.setTagName(source.slice(start,p));//tagName s = S_S; break; case S_ATTR: attrName = source.slice(start,p) s = S_ATTR_S; break; case S_V: var value = source.slice(start,p).replace(/&#?\w+;/g,entityReplacer); errorHandler.warning('attribute "'+value+'" missed quot(")!!'); el.add(attrName,value,start) case S_E: s = S_S; break; //case S_S: //case S_EQ: //case S_ATTR_S: // void();break; //case S_C: //ignore warning } }else{//not space //S_TAG, S_ATTR, S_EQ, S_V //S_ATTR_S, S_E, S_S, S_C switch(s){ //case S_TAG:void();break; //case S_ATTR:void();break; //case S_V:void();break; case S_ATTR_S: errorHandler.warning('attribute "'+attrName+'" missed value!! "'+attrName+'" instead!!') el.add(attrName,attrName,start); start = p; s = S_ATTR; break; case S_E: errorHandler.warning('attribute space is required"'+attrName+'"!!') case S_S: s = S_ATTR; start = p; break; case S_EQ: s = S_V; start = p; break; case S_C: throw new Error("elements closed character '/' and '>' must be connected to"); } } } p++; } } /** * @return end of the elementStartPart(end of elementEndPart for selfClosed el) */ function appendElement(el,domBuilder,parseStack){ var tagName = el.tagName; var localNSMap = null; var currentNSMap = parseStack[parseStack.length-1].currentNSMap; var i = el.length; while(i--){ var a = el[i]; var qName = a.qName; var value = a.value; var nsp = qName.indexOf(':'); if(nsp>0){ var prefix = a.prefix = qName.slice(0,nsp); var localName = qName.slice(nsp+1); var nsPrefix = prefix === 'xmlns' && localName }else{ localName = qName; prefix = null nsPrefix = qName === 'xmlns' && '' } //can not set prefix,because prefix !== '' a.localName = localName ; //prefix == null for no ns prefix attribute if(nsPrefix !== false){//hack!! if(localNSMap == null){ localNSMap = {} //console.log(currentNSMap,0) _copy(currentNSMap,currentNSMap={}) //console.log(currentNSMap,1) } currentNSMap[nsPrefix] = localNSMap[nsPrefix] = value; a.uri = 'http://www.w3.org/2000/xmlns/' domBuilder.startPrefixMapping(nsPrefix, value) } } var i = el.length; while(i--){ a = el[i]; var prefix = a.prefix; if(prefix){//no prefix attribute has no namespace if(prefix === 'xml'){ a.uri = 'http://www.w3.org/XML/1998/namespace'; }if(prefix !== 'xmlns'){ a.uri = currentNSMap[prefix] //{console.log('###'+a.qName,domBuilder.locator.systemId+'',currentNSMap,a.uri)} } } } var nsp = tagName.indexOf(':'); if(nsp>0){ prefix = el.prefix = tagName.slice(0,nsp); localName = el.localName = tagName.slice(nsp+1); }else{ prefix = null;//important!! localName = el.localName = tagName; } //no prefix element has default namespace var ns = el.uri = currentNSMap[prefix || '']; domBuilder.startElement(ns,localName,tagName,el); //endPrefixMapping and startPrefixMapping have not any help for dom builder //localNSMap = null if(el.closed){ domBuilder.endElement(ns,localName,tagName); if(localNSMap){ for(prefix in localNSMap){ domBuilder.endPrefixMapping(prefix) } } }else{ el.currentNSMap = currentNSMap; el.localNSMap = localNSMap; parseStack.push(el); } } function parseHtmlSpecialContent(source,elStartEnd,tagName,entityReplacer,domBuilder){ if(/^(?:script|textarea)$/i.test(tagName)){ var elEndStart = source.indexOf('',elStartEnd); var text = source.substring(elStartEnd+1,elEndStart); if(/[&<]/.test(text)){ if(/^script$/i.test(tagName)){ //if(!/\]\]>/.test(text)){ //lexHandler.startCDATA(); domBuilder.characters(text,0,text.length); //lexHandler.endCDATA(); return elEndStart; //} }//}else{//text area text = text.replace(/&#?\w+;/g,entityReplacer); domBuilder.characters(text,0,text.length); return elEndStart; //} } } return elStartEnd+1; } function fixSelfClosed(source,elStartEnd,tagName,closeMap){ //if(tagName in closeMap){ var pos = closeMap[tagName]; if(pos == null){ //console.log(tagName) pos = closeMap[tagName] = source.lastIndexOf('') } return pos',start+4); //append comment source.substring(4,end)//

    ] ƩBhM#t𽀽0KA ".DžM Ե%W""&*)".w8&$ltMY \HlՍ%m\* %X򷻾+|r!Rg< gO"c}G*-rcy2AN2FEՁ_F-/Ecf$Yd0ILKK-t^g+`jr˷~lG ڏIq<2B6X!h#iHSSiU02R;}}J%?e)AB2N#U!AVh.->ϿIrP]I2GB?";tDEH~S?J,&8??/D喒n;ByxT5'm\YCe"&ح:Lv,j3TbZwj)Dr.[ZZKע&ml X䍝ِO Q)c*_-mDpl“Z>HHūp#0%C(;!!mmkClȰol= *&*#i>6(+EZxX0P&mfDzD/W}S ;;du羦[3ɑm; Éځ]p2̚Q2 \R #2/܌HR1^/~OViT-1S$ 5mӑe5 <;@(RE}l |B>¯B5(K_%B%q5I5`8.+ㆪ=3^[r/y1bPhcI:F2RgJ/A8b]g|;hn•J6'aBN=~T^- ~XJBIKȽ3H)S ,'Tty _1 tOver_!Wo"*^DDs▏kٵ֙s:4:Gb{N gd@XYGsjh<  NO'(ȹq>$됾~C!+x zH#Iu^G-%(o櫧I-NBH3h$a^}C SL8I0q|gg׾L2E'H0_, /5ZP9A!(zFmjкy^lbv %!U(j:ݶzw2kcX:CfXa LArʑTK49\kyr4USUM' &$:Ͼueh?ܾ)w?c 7jjBLO@"vm9mjmohHH@Šl!G~GA>v*ڦ҈R#Y/dzdf"HKe8?B+)4:\NԾԆtHRvGL$M y?گ57|s͎7 (F{#5eT5Rے~H<:;Nwt ^Nh Crה00'JB ߪso;Ψz[#[ItްE3TFـ=tb x1Ɔ(נL| L){~.=9)^UI1_~&SめoOdzM 'ƚLpءJ֍p4i2[d1|M˘?!BvCi_+\^]‹Tq﵋2+Tf+ & _:!Blp67Ȁ_zբfG?c/b zI_,sա$I)\._FC I( YзI:J 7SORc/._yIHaGsnU\lx|'O?kJ'!0mS!&DS}uWsO֧NѣGզIҀu-zmGI9vHHܑ$vrNk?`oOmCU,4#qȄ\6A0m%|U2M@YaTb+ LPQG GSjH> G G"RKFHI۲oVJIFa=E Q}MP_j)"5%,c%kI_-aJ':tSvZ}!(c9?$l <&v&G>Qq9v0M1h -zޭ;+FaSbQInDƙZ-+󣄕cN]sD:Bq!X+PQH*!8S Svqr#] C۹Q]ΨMDk=dD!LA'`(>"0۩kGKc2Hh71k΅7JghQ}&>F%)ڗQybwL]o0 ~,Du;C E2hvh/ ,aQNۑ S jcĈi~6>yIѡ\p L'({SؾuUsgdyFapo~C-cyi7N⩂u2C!>roTZ ZxPdF#2p}11Q`D\FuYy sZ-$י[fh(n5ddƱA$3. cy9t͓M_z֡][堘R[En$ԏL @"%J涅tPu9O 1qOaU.젔(o-awCyͧ h6 &P*L-Ɛ\`}??cǎaaaA?OO'-ƿOIC JaK>tXh.˶$@׮imE6SQIEbS~#ٕLUI+5GM%'D֮0[#127MW_! +M!;IimOdqBHDc(Ce4$Zt|#!eQ8NBى B\(< B2d? 6xNX/2!F< Ƒt6: |ueV涄GUI5`e񫨭|s2k=by#s gy[HfIAQ O+ud%g7_~)~~Ky!Lr'%h6\Y$B_BI CZmX.b aIjM!d(YUMXMԘ4p PE: DiMn}g'X_mFSw.=>vݖn"f!Jhː5dn]D,0r+$$?ǂ*)rj{ՐQj:ی)]$yDdCkQRFjU"L0L)/ax|cvzV3MdSWÆH76HM}Xs*cƙm$~s#2O8a(-zp`1X_t ˰ ;xO`n2+*c*N OQN+0Q\nGgtd qvku m 9&h ˧BմJ2~(d6ȑL)89;B\&eȜ@Sei~yi YٔY5o-n2E 517n~?F/fmjelmάִI{@!Ο;7z (_eگ;bĈĵeDI,ΗV;3F/.;[H`ɏ^=K;- =d M46S(U{2mS(U'KGrvC7N>7 mr<+2.ɟ%D<\\B}h7ƣq>KnokRxo:D⍆*!%q7*r0[,&Xѿ|:iOIFܥz ^?NV͚ZejXW݅i7ڜз# +p;H 8r'Q9ulm֯iM:HxTOb{k ; )Ca#;ڼy>K̙3BD_>Y|_ǹp5T1;ɬWy{Zʼnx$8EA1^v=GoqwCU6k\ʍ@h^ʁL6jx$$D<% '*p]d]F !0אa+.#`B,iڻsk = Iw>Ys[-PEc2vRHJɋtao2pf~DUtvn=,XH&Yl|Qf(ͻ-T*UCR[ |)d;V{ӧ1=3t&h9^\1bxRܾGȾ{DzPUi?:#FZ4`'4pmG!D ;'WBokB5ah 8}:j4J{j~AsBNK_zrv.]cHe8:mYn^9#/yNg5Ob"rC2`-xR(JꨪҍU {50G\{~؍'ALT;hL.kWf<1HyY-)?3iX&3jhf䔴dPci̘| D'/ h5-)gJhT9M76F˵eq#`B.?1`6d/pedJJFCBuT2բsgBfo޼O>x饗T}_7yWUĈ#Ɨg$T5 }?M bĈ1pDU L[H5+GP,W m7,υ#־~AcGs?-%^_GirBCش~IZ;)9]%*A2%j!%:jpPbcu֒Y٩l*yLDe:b<57"0hC4!+X{8;OSLcH2 u} ${ 760㋘*7kH#<<3&/=r\C B3@+H\^&7گ=$ZYϲ^~(.elo[,;3/!pu;hmF"qVGٖr42ұ"$t._3Ƿm,߾wy<Ĉ#F  NK$ 1b<m!,s 2FGHʋ`^~6#W5n/CV? W,bM,߸DZg?!,OTN-S4XK7a_ Ӏ XG:rb~q ]ɏn_1 Xvmf֭.]Z&<;Hew1t:{*#Fҿ2]e4d良M㾈c]e8 6pZi8iBټa96ULJSޞ)4kMU-#ƽ_:F%BVqiv‚c ;> o\vê{B%d B䝽a0Pvq&GJ\vH#E$׵HBThdgptLQo,=YAr3Ut3 hy63L-&-+!+=}pm*V/!)I$q -bpf_BTҎ:.5餾155v_x d2x75NAEֆZ,#F1{doaЋ-1bTQe>EP vOiC7H-ǒjzm ![ f}גk0~$gLgϾhl"!"u&;ssHR\)1ץ^F*FS׭F|^/ӳ\-U埳`9&˯@dbWPPS @vxLFXIx8<݈\19|*n+. \N`ڦ< ZK3JA\f?g[b*Z'˧Hgn(l9ɟFm$ͼ#pLzsS{nݴOd+@q]H !6eya_-n[gôtƛhr'kK׮bf 4x346l-;LgG+en{q=v֠T*:`xPJK.23#dmg[ JsbP1b<\+Xg쭱< 'IPr3)dDTA&ڗYB;ߑ}#UVMu,݀{f۽Z9N YIE% 2t䜔JXd 1bFLTxqqƿzLd3pYIZ]%Xr3ww5׮!y~ew~)ka F\F8QINȶ\= &[Cgv>aŤ?&e1g Иca%̪ tӆ]=.jbm rIJ3CZƠ9%c [}׮_k;_ß_Ʊcun4Mlookgm:˨">ܿ#Ft"P`ZcxQ eTp$>ٙt6oo{2 dv! -V`^2V2GyV:v [gH}Z~/ph{k)sTU>GEbfdEIi;{HFҵ2c/Ykid:tI1Q.ָnF"SdƱg؂W~f>q_%7štB+qқ ݾy\P+ў]2!`ҹpo'n{[X\{t+ VJewPwi֢|?ĕ+W6Ց)!'s yjwlb L& ױux8ƪ1bxdr!JG'^F%4/~D>>x`? )|HםCgh}c!MMLyCi NQiW0D^uEm!$1b2s{k\sI^kݩ,B5ڀ}v62TGf<=gkh$LcJ NIʡ/ }{MK'0P_dbg`;'naH|$4l n:uw'̵LѴ;H 2|,$^nc}2Rtv \/b%p_E. Q9t:]L3lHj6Ԯ5އc#F ^'M-m!jԓ91IyL J0f eM(6 bx812>-$3idXMx*+`-/!_/da ;;Y*\ڿ/W~sܺvEw2e~ jUIK;Fұݖ_FZ}ufy2>W;L20*ZdiR$ZvWٝYc_*2s1^lDe_L)rMK"-V[tJՐKH^!mە":g_#72VW2ݙ0`it+-Y-\keWEg;{nu.ϞO􅬔Fڗu dݙY"_DenmKk Y;vwaΥׁ-r3\PZmV=dx\6cwLPƈ#1P1*J,, RyPIgHr'j(k- 6W;H$h\$DCSCJ2(ބuORܡ+ׯ};$6TyOpMʉ9x2[zE^{d ‡??~_d>TruN}!ܙ~5:dZ}1/0D4b`m"DZQC1mDe#6PWvF;SPDqMK{ۅSoU\89++ˬTl%pi4rt]ĉ!R}vny cY} w8V63o- :>GcѐY5wsqN_dr촗:o-޿CJW 8@.u@6fvSxyǃ1bx<e][h72(c<$f_a͛)7W%$3BIS-U%chmQb&L̚} .WPw-BFdOdq/ƚ2z~Aȭ*>cqUWv--n8=ɺrL;ΡOU&+x@-$1܋:}wj}m(oùv{#*L>l1*i1^LDeOqiKhљN"/3B A-/WALU@ir&,IH6gHr7H!ajv>]\2庭d٩!fwG[H&-+!+dӧk[װzYfSKHrOoCG7A5ɂ'jQi7˦r$*Iޗ{׾'36׮]?W~W4o?FoTJIR鋥OI'}<&H6UI{3*ʸ^ ʡ՛9|QId:s =Gjȣ^׶s2%+DqܐIBY᷀ q}- /|zن7ɱBR7;r X|?[“s*IX_>k͢P^/p2:n2N|u_c<{1q @z=GIς+G/Brm[^A2nv5^ʒж;{r^f`3$;yt x[Ztr?}d?6ݟS "av6DUr8ȭ] >.^=Q7v -!*w=<>LNs׿ʰRSHH1ֵG5,gg:i&_vz=X (ko){k;T6 1Y*c:ZOI#&*cGb4o=&+yhgK.ɵ-$o]ߔY4/G"zҙa2@oƒ`p-LB:\E5Gf0΢c?|gaeR"3D6ޕY:-BVsm#9V׮!Nc>)l.c}M覎`L^ꯪ0AvgV ׯ_9~Q`r?an31Vp`,85"CnLs u`q`~$s")}fCSI85Eh3߃KN$3,5Nittn#xH.ya_2OZ)PQYi=کw/4CDc!$Rك'c<[1ҲoȅZ(ź_`p82 vtzRWBz٤Zyp!iN] @? :ŇߜNVEsYoٸe hpDT-݁pȔ1u?e,wʆ&QT\;l*bZGիj/˪蛟?V2ϱ6[Vzw~wp ~r\jI2>vZOq%BK/|j5ݖ ,=˼߶3ԅ?㻎ɯگ?EF_o6nݺ?~Oi<.\ŋjI[;$#O>`pS_?755뽂n+m5ϱ%o,:{L|?x@e#:E)aX8VvxAB%uTJ J(k'/Wl_& BcruU@дG5~T(2 .zP(T:CEƧQ:)cUP}rSYuC!)CKf\ݶ?ZrҰ/Sud`hɯ9VȬul{;zs~u?l^@'o {auuUU/CZLj."h&ki K#qGJRmookP Ո|OnSE%%_8cH|$3I> _xDՃ$$Q徑4vFjJn//w<.1ʊ>, ZD-I܇m瓀jT\<>$ ax1?<~qA¾UA}g]֐U1^?'T2fr9U}m_sy7t_+ ZSh5Hˤ)}/Ďu$f֕ eү8{11;?dwާr3s O?@bbɧ=8@ƁR&Tkۡ2=L":2Q`Nl˸#W3K!mDıi$km;<髷୬bP̣8yiUYF5-1[W`y ] ic9w>~jѐLxy)7CQI;rMNU8- * ~Xu:7ӿ?vUCu2)\RkVeݬ95[?@zգIp_VYV#NҤBښM2|;JP)$?TҏB*)?G>ߩJo7HRM0C4IIgGH6n]A'puRvD?,| e\zA,v|`Cg xy+%\YK,c+؞/sθhEonNr[mt\Ҡ*3=LC! 1rCHuHܹLe |>YqrJ @Օ3y?{t쁐m_42ӯbcc CʱZO~r S fYexZkA{6,PDؽRF 3gϞ=)*vLɟ98(}"~ͻ#nnDoZ#Djy>X3￯?IE~$~o-~g~f<4rIޫBdӂ0й9mn3ģɓ؞Ѳ̀$)gO>m`-$YW{?-hצ큶$q}<x@A֢Te2,Y/$8: }; ODYҧΣsڟ}2) < {n֕nu'XT )ף +x{0Z[˰-g*h7;m֐H'%R;;Q zY tԳt,M)a@Ȓ鑛M6Ŭ|&ĩ=y8U.@àe'[@xT6l9;ĩNݝ`,TO|gy!~]nW&J൓S8st¤ͺӽw9.WQZ"S>[cWL:uJmIUkRGB0k8>Ji,d0 F0 !xGj1^H$ci [8tqx mcM?E$ʨ ;L:TL⊈ҫ&eG`( W\=Gk91u(WAD-eL2"Py?unK֝|75ïAŰ$M]_Sנ$H&ToG tC0uL|?T>xLlj|CbaiJfCI|'=i:i95;Sjh!1Z2.KxB>X AU&nbSս׳V [jNcd*tٮ1b"z,v죛IdЪZjn;4ZK»rATj8)D4nl Wo,g8 Vƃm&-+!  _e? rIp6lKg^a֏1yOg$ј4e>v$ 7 o|CcARJ$_Ep>R&*Y }Uwia'Y0=G*G a=ɨf$)oZ#⑪ԇՎ1]=LĎչL䒠+__U•d&;;f^n<1y 0I'Ƴ ͻQɳV a \!Ne6_|j/Wi7ѕ9Tٿ <j1*@ZX_}a%ͺ;c _OHy2!+<25[d B]"+|9I=5+SndEl-h Xtm֛_yaR= ނud K֯﹦^]:B6F}X=_Jz15(Y'y_ {n\n0,o~o+iJ$uX 2 ǎ Rں3$@‘^*hYΜ9doթ]A'y!Y[ I^L:TEV@>l}O(ItPrHNB,6fŤ%*?2Dݽ U$YӑsIFnPZT>,%(՝\IRQ9yo]G=;{ٞh mkz򒦬ALPƈEhU}HƩU&[s"v670At12M- G JYP`L~ ͏~Scqݹitk&XgjE}dk=̾VrOj( X^| >\ay k/CoZPU`T *8o׭]G?=EG'醿G?> 1bڲn .Kׁ#'LiNa-Q`n_l1lEvWk~F~e'~zDcܽG}1CDp3`\OϡM`pa } )cnn woHzk))!/>ٴրEq]o,c{,LONB6`ںTB~;%Ljɝuz;z#A2&&cx40`}{S>C<^lOD:< i0y-ᲀ~2'ʹ 01ePBTF\gA`4Am9ȁ`&iOsOJ,R~bm0I@B1Q#sh%|4>`{ͯ/8@:n¹9L|rպP:'0gl:rؿTΪ;n'+3ի贶1.0gn5[ؼ};58w?~~ 1b)e6%R\KeLRƈP_Vg~tV&$2|ȗQV qI΁+KK~8K7a[QIІ>2/ inmZgfjoa\-~2Ig[bozl;6kY?yߴ93L!''xZnEm^ٜwDe/%;il;gXГA0@%~ ?TAD'@[$|wfb5Xi YJiLjV`0aK9LM.~},;Do #󎾪(7jlx2X'&(c ,^BMD}6@3X5*ȴQS`ɡ'Xh`l?rGK7ށ_Ag|U\wan5Χ#De~Τ*=OHʴW]`wIõ @Uf/`ݧi;L^Z]4u9C# R"vm *_ aí əߵ Fbق۝9͌|3E7S~4vV>'Qصm{?ֵ SZ@8zG$G%LjqѪѮ`u\hvâ1I#S߃HТLUV*kTc@'pfSJ/rB%M}K!*Kp-lȼ5Hl!?3`~ҕ*2;[h*<-``*,a:Â2nDQ'ON^8D-A))XL>u*$-NhELTƈcwj@n6݂#>\߆^ހ:^)Y,Mٶh:x+\ Om]%3%-̟+a1Ea)'Ng;LЖ\'Zbd<2l 2p!+1;F#zڞfhHQc絓~gZZ[8n԰vp\m'\`wQ[pcĈbkQƢ(cx: }r`]N49:2h,Ÿ^7'p%ն65 |,W<ו^h<Qv&[a΢ao|u =! 3\a$ ˩ LffZAȸYLgP{1}O}`i;T l} t" KUI}5XvlTf+26(Y9שÎ#Ca C䔌sh-L`g:c,pQUI xhaeڟv'O|䧰{u$ k#F1b<"d i5+PA&Wa+@")@SIۛ)ZuE'Nvu?)"2o0Ԣ$ ;Bg^>` *d3'J &3Әa:3Z ٯs_( 8zBJM҆f8 ',~ 'Jh[hƓ1bx(HQ^a.خxhS6R/#w&Rm_.(wIZ2#&deo?-?pkjnb\掼C}1bĈ#Fi$(Á&&1| w2pM6p-jalWpB;LlYa8&*mQ LNI?պ:j ``-$^&}k+gڤg`jK?Hg#F1^Dś$%f*3sJPRAIrrrvJUΉCT#}L$yJu(lʸT ˯ T`M$lC۲_ShlΑ{a~X[B܇6x mgh(Sxj<~|2TtvOSavX1bĸ/ ].B- y t Sח,V٫Kȴ3i﫪Ͻٺ5YVZjf^BֳuhD1bĈp';uTdjH)VN"Pd*fwn$Gg>qDN: qS: RX]Nk|6D2W1֍bٟY .ի X쟏O~ܺu뮿/˗ [-I4;j}{J 7sKvNTjg~#vAspo߂*F!3rpj-}mÈ#HLm{[@hL {hv Ob05=X洄lf7<&O"jV`0MLTQ-Ϣv}ViqE\7n($M ^~Z ]nqx31bĈc0U 3BUP(W5֞ eՕǓh K-C!HoM۰lv$z k~s݅KѺ 0mG't`ݼ|ck xJǢ{8tV Zԡ1bZdF,f92v"@Ǧ޴9rS9/ mܬm$冕eۨ(P.` ;=wC"7 /3/ TH{o&]EM/p? 7KkX[td*q -bn \۷>@ (XTmmm`"yLNNlt:j9`0Puɓ'G{e҉N^#㬏j{V8r>JEjtێ?>"wo/U۷h766w.ѣ 5775uKJ>lv~Ǜs{Զƈ1 e0ݻ?T84sp !3~~WBIrMn~L@`Iȴ:r:ZcHRڨhBR&v(@z* RFS2F_4*@&0SBPVLJ!r^dr7^@O&)|BtP(VMU+au*,|=Iv&[agmU DGyf.='_=u >j.^N^},\cis{ OUnlDauŸ1Q#F ӺtdƩ'$e)f ؃Ǻ1t>G\["5Xu%KUٵC*myϰv Hf0n3`o Y8*G QG,Noo*@|3|/?*;U~Tz}T28W~Wt\~ԍW_U"u!y%0wԩS7} yU]N|_ה$HRq~Ǜxs#ƾCη2nSH62!БkȼUgxq@:x-F*JEXP56IZK ƺF|6SYA0.-cPcÖkp!,U'LV~voX\w:Νof`'W/,{,]@UezD^=y'*- IHeӈ#5ƈCR=頗Wsr픥J-ٓh= H>Hs xhڟ`")c?b}2+c1j+@2I.*͇ߔe}DC]޻YUN @k'd61a91I!QI;pcc8m?.0=`bMamKg7`,)a Ǘ@>6BVZ24:j$LMg;˵*NDe/8xHN}Cf?>sQ[@+ dJ7t*Ytf'HJM S746ְq]`bJHT;7vm vTّ#ſI 2ӸtM"jQHU -rL~h:*aF1zO_WZƽ;g l{Tjl &ձbi+"8v/"{yI4W16;e$!xt /es_DeuW^?15:Ysi,UdzD&dZSasٹ& |ԕdFi$WU%Noy}u$WUeG-M/؎?;7Օ+h70.^ ge[`?AUγJН={Vvw^RAZyK|\;ǎ {wu* ]^ m )J+oTHrJoևI)㽗smq153bu L^d ?ƌbc W9ID<-rm@98Ԡ ndZjezjUk*ǃ& c-:O?H_@^{$~BSg\g,YZ%.wwWk*(IU*hnj=g_=cc6ǛڠdQn((TVf̼ZEh[;NGTf?711^{hgz33פֿjhlT"2.\áTh"$IN{n$+N6-לƛJUI2 6>ZZAVQ0T9  vU~RM2豐[bj04Ø}o,( 6<Sr%'\z ^1}ZLH`zX^n`[*RJ|Ahh>>ɓ׾l۱}TAn~$in[I>}Zq'i4kګ9>Bf:Fg L}ٴN>&9d_54 "m_y,Sf^##5Rm`]HH~7L`>/@"^&X܇ r]<ʂSkhl6ШUU[D: ]}C"Y Yc>#'U˱KpZ _qL^Y| (B칗Qߡ_aE/42+\yձ)DO?g'}İ{KA$@- 8KX'p~,( jWy`bAˠ nLTw7=3!@aeYvL f!xg~ VChFu-&FҋkZ21<<~ *h.\8FGG9?^"1pt#(O$NJs|̙w oq}FJ2^k;is=޴|ov6:GW @M]亶RiE8Fs9E.>{3ͳmW*N·%_nݽ >E/Zk_,UoC.G,P<4Q=dZSCҏfE4IlGSu+' eǗM xDߏ61ER ƃ{ فHS5DC]E26{/ͫkK`AW2̙ێ,ftvT^{dqMfiaXO?6bgG>N3U-|cd{־־oM}7Ѓ_!7,T(zWĘ"%zwFdn^$)q$Ѯ`?!8'p{g&;޸[sw9~J3? ww}lWvl *WDK_B߅)?rǿ0j5N+X6`7V ^z/ǎADʡlQHx= 55@zT1N MPv,CR`愣vdhl $*(<<1H? B%o>`bROdUgH=f7o-ryKy`Ebo h܃ycZl;'UHUc_X.`&}?y{OFEQsW{ݶlu?cqd'5shh QCCc AT>aT$^i}Y}Y6Uy++(W*K,/-+҈g&)5v _4jmxd Yخh5V ɂ[6Fĥ_*E/#T xfU>«0fa*XU[:Tzg'rh"S6p=xFW̦Q<šxW Gu&=XFPVn)TUZGJ6| ٣rnˋwtcZxCCG&kedFGF&jnMCYGFq9F}ՖQNVQ6RNfGǑY!UaY!2jOUVGwT:ee XO%d)Nr+0qĞ 5 Q !+|-*86P!{|܁yBnWo!Ռ";lAj8rr=xJZw$$e #`U;訾vA;y|dBRRvW-,\E i:~XX-+x$'O:0ZCC룥t~EV6GGQi#)\,jP]uMTe26I#&\7n)"txx!!8AWե]$A )e,R)GȱEex}(?- ( x\N)pY0R{Jž)UUD|^|ՙ{ا!>٘U:.֜CF< /PcIpR>$x -$o ELH\qY}*D9Eq -6~F٬hUue/7 ]Chhhh(R&{ߋ?TkbK~?_*a?)=#\dži8v Lc.ހcp2Ǒ@Ft{kArUE^UB~Uҋ}#1瞅!ktwCgԳ0'z%,'&aQ*rNȕY4]*nȎgQQ\)H?{x @"R_JM3@h(T= i)XTUvo7Y_,Vk R%h?Ɓ:mrj\N=L2lnaGppri(ICc+ZUj2=4!!)U^rVS_}JʇlZ?ul۶o6Q\b'5C/Y"B:V"s/n(-cT? ݔ#}Vbt PqA޻x6*]+r@M1}9e8Aj8Rr^[ 4QhGmGPL!CZ`L co"\*lhdՔ[BF}Ft 7Q)ÕN 6B>eY~aJEFd$|4xTL}#iꊔTB]Xc;h(G4r̐"oj}SR" *ՆG\wƓ{MXMPTJE,Wp*%$A[0^9FuXMG>ybeտ\F T.~YG0Ogaq5/BHNF0YZe!%=Q ZxD>k† !EQ>{ã:o0XBŹ2A_m ,/>ڵwXۿrԏ*޲M kpXihl _(hԫڝEvl\VQr*20,XxJ}hQ>$+y3X [p]ҡ`7 !X{4m0]Eh}`53Ͻ OF ;K;99 cq˯+;@ 8nK97_u(RÈBUi,dJ,ຟzD>;o#XB@QE9aw)T!bgN!H% X:y:zgx=x*Arui /XnlߏXZc4e 0eR%[d5'Qjy:\m)V)C } ,1dWh IȽTVd0wS&KpSCCCcԅ(ZCsCu.=E%SH|0 F Z 9.fƥj[U+%S{o}dX:$XRH.7Ffd Y$hTƑΑi١aSUɺ 6ǫ֫h,c?vp(#ǥ~vʤuQJuYI2X4ʮ QXYY!'< 2_hkϼ?5),yoZٻ\y^eCΜDk !n/}L3v< 96ң:OgPoERRGQF5dR>atŢw(b[0ދ),,ޓU\^Z+q_Ľ7hBTwXe)?te]yjׯ^å+Pe"ωDjR(ܕ]WJesxڮܼk/UMqdGQJ 9ݔZ& FJP7u@sѼ D. >BVWw|IJ[a*Ba-l7AE|k/o-sLDKv־$"A[8pkaJ픬2Hxiw"@8FajI[4QcڑiG)~bu)7-ॡJG` ,#0CTJ޽r;Iԍn^+nr xp_ #l.LF9f^_VV._JAҿ[n#'_RY,/:B epׄ\Z^Q,!K-AY'q=O HhkUER'2CJEKa9/V*I~6֭r;H+@ʈLm Sy韋[Z26U&kU޹ >"GE1s1܆~/T-r54W`†曯wU+ӹjYBVzͽ5~ZJ }_@3Bs(P=a^eGy(F)$:[C|ߝcv|2K%,ޕɇihh/0*xfq_ʻwau(q޽]]¡(Ncltx\pfǤq Ba`qq R Y!.6r4FGbvvJE\XXrQL<2!lZ){jDLvl!UoTa!UVmIVe\\)TE `.*~4O xOj P27n Q)~M!cϿh94U wBJuT__{ L>!<в߸kEH7c"܉H_)GtT"ƪRn#E2B +GAg%AӨd. ҃`@!pӲ1,De(uH&ɷQ.-CCCCcMR2K&JŒRVc+BH>TT BUeQHYyԯ[l|/S0h4!CW][R RRǙ-=K*0My~8q8&''Rw *ZE0tlHXK m x ^F\ 9Uu;**抐-L)թau m&TeeWRwa|#tҊ'}}q--=OJgy7.v2> Z/&{170K]-x$J*Wt_6nf_~\u7~uZa54v ڤ#FnӀUz`C(su)7GCnN#@Όܑ]4GhFWmL-HZ]Zak7U4 260rPqρ7M v>~jtVWWU 8nK6/B 6Xk{|K_=]rϟynߩ}1'7~xW)Ehhu\HULbltXJIwюjG#x< iߴ|Rq&'Uh{805^uD9Tgƅa!xT՟6Љ1J }a!|֤M.3,|1ZϴyS9Kfn"`>QQ> ՚jV6O.Ǫ\ xYY6eS_.r"(95s+0^4` +c7 0x S?S(dh$"!ur"L 0GIY~oON|ӈ˂S6hy_PCiUYbrlBrosO;z{*-iVJ cC:Ǐ ܧ Z|œ#!PURAWP6MEoŚ$s34gdzͧT,Wjz #2p!iL֊dR+D\OL-%-saJ?;VAqq,9i,޸`I'D0݁q2̡cנn[V%ќch wPʕ&*54ܴL~"r*LP1Z0eC2QvZVEB^wTU'Gn-,.\@25Tv 3<__W{) O}SJ~g~t :A'_:.^ymf(RRj=|CzثPM-Qu09aP" BNF&9yBmhɞB[bx 8٥dFwkdawkliUDy y!rʶ`%3:J \6؜piBsqqAի Q?.R!bnrYZt@r0*2.#Qζ {gzz)Y\y%(5rGۥ/F|xko:~3Ϫ 7E@Y\t19`u9e,W$%TXFsit}GP/RAU4ì<3(GQG(!+"o]IqbR;fW-UQeU-Aw؉m,D8Th#"*9b `=7{qĉgz*Ç/..*?AyGE]*Z~~WhJſ¯꯾uHя~hsH n_\>~0==OwefѣGbu=hEq9sF)+`ͽ7osɟhhuIc&BOfM*@/>{+rtl~&'$u.J{GJ&l+ R TԧrmϦu摗>f|<wVUe2ӨWKݖZי %AxAUvÔqSecz΀ݿ"2YYN;>6j"^3:ZG$&TP?a1ҕud5br* wAhh X5DgV`;d5t:ub 7!9+xjN^*Z pBȇ_'V/@Zh5&֞曊t-5~K)/ w?_Tq\" Eo-s[\.l$xZa)Ǔ"q`=@3 nܸ[oaii>mE$i&(H=>X?*ǎ L u I汏LA24>X2"ZX] Kp Gbfae%$h/(z4YN3VTއ 3c͜ ^~;\z/҆bJ/~ +;y=T$/T/ՇqY|333TI**~AM_TO166Pչ$&oSﱓ!T|UMbQ]Z[*hL rkz qk6۲,Q9ߛ<ᰌuju G"޸x?N ɻ T%!' aIKE&(5z<"硨!"iVZe" chhk2U}xg_Fwqi}LQ!K_36S.Lթ~Ւ.B瞅/}e'mG:x.`άC)T ! p" ACcE/ ~6PUْB WɪϢ:RlpR>*X' t8lHD3`Z*\!-/Mk=8ND| UD;LVmZl[9?#es&F"Ζzy`s*agNUi/֣={sRa5TzxE%fگlG!l}FYV/w 3u $1F$Tע|B uєLQ#\Wmd[}}3Xrƞ{("$?Qrr*`_ُ~L20VAVq(H7chb;?;QɡEgA/eih X2ڴr*%Ի4W`J2 ϵv ˷.7q[0-G>+1ۨVFϪ !($G2$ߏ菪(lO0vzT$NUTfBNpź뱙Lڹ*cXGsisg@qh| 0ՕT^t /4444 |,Q*#32RQ~`NQGnyKB W4w\㱉D°-90׶y?Zkȶb@VQΠ[QI3MR>qυkt$gE0yWrab| AZCyioJU ,TU`?D79 }~\CUerQ6+اG3p~)ԕ݇&*54ᚬ,Ip JquTQGa`*~ 3 )U5i`QjX!*O~>-D`c3ڸhMS%N_8_WHҒm*>ۤS;|]>vDM^RyAEJ2ٛ$`'`[C5%;SIU+T֥$a}’J z]%]OUXN2,Ѓ; Y..l$n- 8-oscVgt)M[nj4D>i $C!°_"I82^3߂y"+O9Fl:Hp$95 cyg?'|ׁϘ߄9?sT)aD|9%IXVH* ˅-4vm>c i46  )D#` I umRUiU +uǢU3_½B<1 I/"ʮL" Ӳ9V^'js'G$ߧ?iXT,JO95H O&Q}<<ʰ__}؝FdTR7ߋKuVamҒN&S]ث`5(s"mա'B+(VUe?v?!lRضCF<r-*Q0ſ":$1L)mެCIUΎFj*g@"ݑFD&].n GȢ?m|jzϾQ˄(rQAeGE,ŇQ&ӈ~V -+@eTo#EP3^#"Z{WEӌnf_~\u7~u?Ze5'hu}$?%+Q2QTBRwE= ueŲ$'#C'8~H}8P`4ʋǩ2yv W 该"rW71|L>pßI=>$QIբ%%w$H9}C;~&MnrTIv9=F*??ڤ*pPn i^UE8SiG!I9( S墐TRHwUGMZU)1?֐{Cr^G$W5展RV|"Am~gҢJfDh-QcqJYԷZ>mPg1`گ˜P,Zk FvS`F ERAL6?[IXW3\%7V`< CA:v9%{tӑ$@$&**7~Ȣ[ ?|[CQ|}t[gЫGJ1?wZZ5دvYV!>gJVn`#R#oP(9FwCHR5H6*h7h[iv8w㫘Ә;2 Jl)XSnrb~* $qtHcI b$,5Q*J<-eס$hϦ"D%'$Tgkq\&ZU!9R j2%3+|^{F[EɭVQZE9(8)SDnI۰7ߺ ϩ@u<J'^PY${.7¿&9֯KRUf݅# W dG{^4ұsȊUÂ]@Yv2/*KpFASoUđ0,X$E#%kRtݟ6mQߞ"N!!Ğ!מ:^U*U ʂBF]T K{i:7Qk썎 `vتBda#[ApF'9zj?$$Q峅8PZE< !so5' % "$أ:jňP:{ 񤪥tbOC@BKB^%M:DEާdU;Ym؉kư0{]V$+x@rZ)C$Gvl!ecVV&X?/s*8*˄tR0JBf}Tp_E^՚߹EBnxmO+LE(| J#ϸuC+M!Lj)_BWHJ(3B  a]m_7c !+c 7/.\_yfWPrJbb V1ʥєf?V` F-3)85]!,e-PϢ)t{hRCc(" .+G /C*jv rC_X~RUY*]Skr:b9cq!y|X[ko k6U%!XWB7UmZVSʵ#DEe?ÖWQkv7PiJkQnX_j,/$a) F\6+0G;5’(!rktJ =6 E$^:1-#우OAX ia٨˿nZp;֝:2N4ĝ 3 nJޙSڟ'}sx߿kߺu OSo~Sd2*i|+t;^~~ۯg~ß,^z ??ʼn'CCCCCccP5W׈ LV)Bma!T4hpîo/i$\s =k#(Kw,բ c·I ?>>L\.+Ue6vV z^3ZyYSc3"Av|T/]s08 jU\jD"\[Zf(urM\rU-08r ϜW!Tl۶Ɨ^SV%!sN ONMcIrB̞J6BL ( 7oE$AI#,s>++c?5Y@=UNCǚI US2)iόe1{sE!=Ћ{OC`]H-@-؋+(;R*unoȨafCh/pܸ:[j3r/#xt_044.˪>w ~6|M$(CR7~782"Axm\p߫hA6oV!?$7 [(o}KdOz̷mEZjRCCCcHٔ]CHQn$PO"xW|vHKN*rBBShg8NAt:餗Ť!+k$^4K܍t= ^y!U;eXL?$%' iwf2DL.+ KG?m cfvV=}/&''a%Oc@x84p5-.,;y cB\n!&ӈg_}ձIDO=jk>iy,V摯*-9`[RNQM"r8g-U|vc$woY2Xͽq![SŨ0b84:&*54AhlxF*&[?])[f4nhiͼ~\J*KyAJ'!NІr0z(/\DYqKWp96)JRDfjʯxR)><}M?øvŇ$!|__zVוcuuU}??>)>m+4544460$%$&&ҲWѲ\̯(vVj}'TPjN6s$߈yVΉlw$y:6Z*VjyXտ* k<#Mw|)+q=Qկ~gϞȆƏ̙3JYWD! /!V mG>v{Aw)J& IQN*2IJ%/khhh'R%T|RZ2Y,K ~1eOm\T:,⮕*yH2Xg%WDA>w0UTZ.JMk@%Iɂ9rN$ӀPm2HwIcz*i_K jH]i;Tu{ Ԫuu0%A8ޱcL:%cD:3Fs jlLeVCrrKr-Xr.pOuʬ")f?B<r5Yh1o\P<`& /!>w:A^X'Kmz4{ JYICcx*M91JƓc*C}8P 5Ӗ PB4E!a.=8fOuTUZ-p8sX\E>7I/?|N/ᓟЇ>Ͽ2Nо[o)bq=իMPQۿ_"Gۡ}킟9I˿P6H9M=obeeE_}UoRjjhhhB*221";:{,3(g/TE|*,Dc4(i< >\nx3ȯ,+"BC+5&)_^FVE@[}KCׯ||Fp< cUׅ_oh4e' * *a!GUhv Avhd-lmȵd4m 8=ILa(Ň푷JB4C>ӳVvIʷAfjڟIc DwC x‹* !Z{ցhSl4j6VN,ƓhMnp zϞRV Oh<*Xa:o( ?Wi vMϪPmR:݀e1r죸xeҒEL?U/u#>tNժZ=^QW$1Ԧ(Z?pd]VuD#~uH.'PZ9#J2D5>iݿS)? lжld ! 9`>d[mUHضeݳe*f \!Fh3 +W>,MTm x,ǯ[ǐ0Tբ Y=%46Zd%JZ}]*5I 0^qOHtAB~SlgAڄr 2I0*(*NX. ) i=X~XH\u!q;޺}NrW)T\Rd34 ;A?]Pk㸝 5?$Kx 0j`m!D”c Oj@orD:l{[0/J(nYnTJN{#XroLcX%U6^yL!&!yyxHRZ-OHNuX-wGP&C1;`dWq*km"Cfb5qFv.5zRFb2T*zR E߅3{qCmGL֐EB 7Lj_džlÖ~>!pe&"tEvxOQͫ{^V a\ŗw߀-jXwV\y)) e֑&H:p>jZJhRhhKC ,JGQ꺔; ֑"WoNNt=X|Hnߝ0,_̛B]A8*Vob͙!w$~w~amJ||X$O;5W5!mjj sef g}v[a:|Zɩh)$F'nGGJyL&[GG^7dKbD*X2N RQdI7\S}0 3'39QĦhEQ>sD%oNE5c-RBbwuEĮVQjжWyu}ĶJl5:l6B a @ l$Nr醤2o^f!E &DiH dB~U}eA"U*R9BP aTޑ\K!KnF1 0(IB-UT6nE8D#*),ID T !(+-/aynFY91{`aRRmkQJ. ^iJH =xarht$\eGb*ɨqh/A.r///cqqRc!u4BWma90{fpv^?Wd`*/+o\k{HĆefsa0Ј$w}G^7]!,e:xZJ6ʻR)$=kV:7ޫhޟݴ644 J4v.r$Rvu3*XǬT= QPEY:W8Qd}VtZTHR hdzU!__{Ƕ *./(b $A?S;Cs(3"> Δ퀖r>̴R`ru{}9:NV{RxHCCZ, _U2 L 3:h,Be:SsˋXĜȶrBVv^7%x8vJ8-k.f+ `^rlY2g<[9߱Bu̥BB q=I2jAQVWrr/M^rO;^geyE?M1rTn~Na˅e QE9yF܁M\Brr܍+a"nεH7cN<uJ+/Cc{x*ߡ\ fܭW9_~chhlKVD8Rmi@KC!&U~W`/xYT|J*. 8DOugy)xTFLYùp?N@B6fhs򐉠;E;l r8=zx3FDX]#_AB(ſVjvɱ#IIiƠƕpXxdl$C U$ZE}uJ 1de2~$yQ!"fYR5L6 PC*Uy\ڷ7u0:-XNG8Zi-%1Q[nZ;Uټ]|L.R/cSe~+RD%߁T*x5ϰB,$eS)&NʘGr𽲲r(טD,*צwysUf\* k P%Na,pq9Έ=&GU%u͊Yo c$67\1 !:9mBT6DE*ٜRNڹAZ9G>N3ݽ[D?Ļf} }~+wJuds꓆\F†xDꕋ.9BhFP$EuӇxj :  5*ꖬ_kk Ze^Ou;+X%Տ${*:P䖥44JirO*JYxi4jjZTFM$LJ2/sF? I#Qe'!Z!/ *{&#n<\KMkۆFѨץTЇ!FFB .iGS!&~kUCPmlƗeKwN(er 2e6:v(~o;HM5BzY޻l|C{뫘)C /xqFN`*~X<7OIV}GA2Fg@} P)1<5X:1w'dk}֓ퟱgݣ??&4Nx>oD~eN4!Y‘]U!iھLR;fA%& tTN2XM *7囈МH$Z * = xHσ7>?J-ʀ\->iRCCc@PrFOgjl\E1Sj%m`y.`,>\~vv=}O{9B0eVy#iMc(2|5w٧0.|Yԫ ,#Ik o5;*0f2T)BjNoFR%4%Cc4i=Yl!vg&\Y M V, '9~7 T@u, ET )Ue@MbWͿ7]%Cr2f$is?sJEYS kI 9Tmx묬[ ,,w+$3m`rˊL|AEU$*ه$#1n3~!ר0uaNAp ~ Fhq>v F1e!/٦7<':Ȥ?{WU*J*2x %18vhG*vS_b^(.-5p $Fǐyid? M$!m9W=YjАE:7PT=&uE K۔{4r/#<2-ԍ VDrB\YB9_Bj8 $*(jN gadF:AGn3l Wb\DDE#R-\R5p|J4Öc+t7UM*i[ 5$#]C"@NX7̙3ȫ׫ʂI9kEdL.\, vTɁz:5NIDj!w%!8ec,\N\s( hT1 Q!2. GRQZ՛ 5ۋZ$Uѵ`}MKe!Z3eGEλr A{P.#19.cld U]z $܉5HHF [}^$0CFH}ߵni$W SaLM#>z\Yyﮪ>TY_/kz,T=BbhXȝއ吘di<$1cw5h=>fQ\G(]AMp TǦ=y~SҺoR硪uSg`{0 @ l14eXHmL/#Hdx'J2“\4Ek0ږOQ> IrMT PMFcΥehLQ3dMCJ ݃BΖ-$Um(F]pc<(99n" J&3 $!dK[EI<$0Y]Z ڃBBn⊸Y{=WGVD+pUK HK(5ݖ(;0^rhk>) ԇK&mT6$`ŽT^PEYEF&cm|-ڮ#gG_x_JA>@ET/gdBT5Kb0. Sm#0j #,MkyOP)YIUA=@x*JHkF?2Dgnf3@4ړubAk})Eet-4lͪD xMa9^M7VDՖ @[ X"_9壊r?*TfBJG> Րy 돛+$Ց%N")hܒ D*pLg x*-dHd:ߘ- RRBRE9@ڌZC;<_xJr2J".$kH%JXR-KD,* D; hG~7Q\HGagI?ʽ\+醱ߠ`k-)?jvSQ5XKgoͪp۵4Z44z )åo\S{sϝDݰj?uC$/m2{P TU* x O&z-DCCCCcd%o!Lۓ&h$AIR @eW0$cT¢@)l}(뎛&sjJ\Ccu?50CUY,X4Ͻ/WB-{+FuuY&9xl-.D%%טsr apsZ"hOuh)/.dUCCCCcXS@bHB!Z29wၷCl((DV)`*mjr*tJ}_ҎVWV eƶFXVaA-zMգF,\k*JSYYX~(䅜< y|jΠtUUD(j7ruؙ!-gaʢ y'g7 G3+/aeDFOLD:6zjdCmثeD/\aLË]W2dBAH[54444@[ũp$EO >\E*R$=5Q(Q(Pu,c\~Rb \QĄ,}sp瑘sU+_=2B~hLk0j5ϿF6ۑeTV(bUFTeS:ͰJTh@`N9Fu fьu?X*7*V}Khhhhhhz*dPT+eEP[T ?&)z9z$ bڤ]I2f-TX&6hV[r 1RX+0o߄q6N <^?jg(YR+4)^XꀊJӻ9gQ{{RY*Ǧ't*W@(5i-!yܾVA4,uPJW.YxGqC=3h !$"ĮC}r F=CJ'`e9**X ֱ2jFaZ""*Crb A@S> ʢT(YjQ:CY fpֿtc ~Igo,@ 5C0}PU'8%%sl:WrL@ 2ʹ)ZTPQ> ;yϢ7./!66 >{yOzʗ^=4&h8 9ZNR9x.*XGNu'D\ca-&z7!U||b_T^ŐFl|t8A*y ARMk?6NjmԊǠk()X/pUʅ ̡k*A3LT9O!\eTUF"^`%'V'VV]-^]"T9!amfEiB4G ܎Tc NBMeUkXNXV*س/U)!7jATȻ*US8vc(u>BBw6vsf MVzGJ'*ee~)nvہ&*54 Q IϝDe$+gudE5rhD̠2A3z*pizg+%w-kP&+|Z[|nmR/*+A;؟r%(feul{'{NRWDit$垃?UP`E-j'0UՖO[,@b2#}H,+REi 1H\ I96BDAR2,VR%`0,=+8ϭX(칰i Dp㫈 `;cNU/Pzv?>D-K0]Vsx_NRyE0ThZ(,> 2CUMԧQIՠ@ x1iysKuYhW) 6ޚ<|xNr?I{iaƬoclg4!ב^ߪsCHY-x*-bgnHS%:QUΌe1w{FhRCP!:&o݀Yo"4N׉/݃ >w%H@3BhtCHx29rҿxIFD"XO=z6VЮ#PyoTl(=alysikC"!JIB?@HXuU VMYoHJ¾dŀ\y*+ZSH|Dž+uc?}*ڸODJ(y4{SbV-ïUaɖFa`_*;^ ( YK}c3:jN¾-,pJH}Y "Vyuo9_lye'&br-i&*54[Eg޾( ӵ),]aVM$.]#p4u x:*w*4?*46[c/S N4wjVRRKOܡl PxͦRQT*J10r@QVJKŜ24gx<@R^H@[{!ZMU :1E9[[,|*'B0}>rY7PTK J"ڕ#_EXP)ˀJq~}?:"'΢z:JoM$J,i),ݽ7aI۴"{׊ ij!.Lc{ ,1!̹Y.\T:V`4TE\^TI8'y h[U$Sy ˩܇$$BCEI0s*W!0gbBҺ@`z`Soٗ_Aiq\vj߷6d]]A*X'rL_ۅPQmV)˶ܳdZal!vCf#% q潻0n\u8!;-_fuUh^r)נJ .!$lقx 3PB^u,M½?{e8*tex(X=!.4444F,5Uw$Nv4T"{w5j"X2AOzg0 b>rym% kE@B'hPgI>6&`2-ˈWMvaKe[ ڨYy:karοh~,AӚG\' vYm_Q㖗].ap5bTs0q}o f qډ*n/ӝ:gQ~pT~oB||իQ*(4&VVP*²1]ĝ"#Hאp..sGsochcUesP:20X'Ii&*54Re@3 =} CۓaneVy, ^'`\(M_tBda_Au<韸:"2 Luq ˘xnU D[ di/`el]r5TJHJMU6'^XF/O|#%rQ_'&&0dSY,BF$2%¤R!(#BX*@3;dRu'D(r]tZ&)Ur/:QA/'˶>\9_]YkA4E%ȵViN@7KEBYDcckPY@@U @E8qǎjr+4,΅DJ<5{ŰkQWM<2>JH, i]@~^ 6K(~oi yट6lە&ֈ'[5)dq*;5*rԫd9NC#HT~kBRx/ZӺ'vA6TT YM&dqF+`*ZHG.PͯV(R62n~ƅW!1:@H)uTjjSN&T=V a{M$bpж޾Q(r }00bϾ}e-;ԏh9 r]4BgS%$RHJ?x7GH3h W_AݜZDa,w GwLv**GGIlMr{/oom{ٟ^LXXXسD%I??Wǔg>Oԇx7\!X2ygJVFi`-6^e6e28$%K9UZ ZEA !eVڀt:<^-+R[aT*JH~h+) bFnTpiBT]':uYTg-ʆ/dTR+n-X*UE:riwa޾ E AaqF&9"*"E$&&RCUW~8S7ʍsKTeA8"Gf TUʼР;C7qMr=Sȇ}m t.@5[ $*gxPX4ũ,' Tك p!+/'-|tslW?)}$p~j98~C 8yR~ie?~# df{/_{K_>n$X/ma=IIzNOGɁ+%>C)j,dv! +ՆZE4'< +XSߓteIʧ<$+땲s u@rZi{f!Eő]kk3`uw`a0;~ӫzKpxBl,N9 2aӂ,d,xG2CTN(Zރa j؃ tDN9yECՋE )vsP&S•SڰCn[='DGO eѿ=oQb71qj?;a2P*ZKKEGNFBH[,׏ 1e{aOI?XV賳ʎ$*&Ծz֩dM'\OR=q]5HeJ|hX;*5H*,KFϺ,F#HeMF0`:r92Cpс{zTjkE'E%a6#kREioN6`9!(3sKX(uSKukr(KbXEuv,AW +K^Fni%B!laAPgւu"5TFvRGծ|6dNHE|^VUn MTjhtvN-@ r94q`u4K7aߖɱ x):Zr3 7{%>~C-4J_*xZ*zq;WVQHRd<ŧ9u+NG-x۷_n.6~wPkee~鈋CC6ٍٜo\>/ɡswM,<|N iG*= ~kǾZkqws -BBrsq~{A`6:ղ]|2~נ!O$NL&(8WD%Օy׿ GZ1lX|"YDET.{h vvqB.# o?vm:@R>s2Nr?5xM&(- /uuA&*54:#po?M.D .2?`˔Aj7 TOOsÛ"+^+%/ǿY#+Ku_HʤRAgJ&) Qc\9_`BxOŇ?[i*K$*R1xcQ}3 !ZQΑ񞃮ڏF~l5(%Bvl{; Zt&K3ud@ϯ~8sz/|' _,'IZPx1}!$QI}s9*; Y( o?w<~Ç>!pAh<9H dNQvxJ8MgQi;Myk)blJU aZb gӰ)((Өe!z'T\Sy͑rmF 3,a޽cg &ej봷 @hSfHd2# 3+ʲPİ~ątJGݝ[*z蘲:LY4}+wo'-~!> ܾAX`:.k4i;}7&dk l֔Z0z;h*ɷj@ kde$j_Rͥݵs EQ]I!{k%|RW/U(ί$9|ԍTNgCTl"R(d姅<ٱ5qRՂ<*|oRJ/q>HTsu~20[~)* JqD A-J⥗^BAE$QZHc(۷D訲m_C^;cGBɂVU[TwF^J2UUaNoh\%JEIw0@w2 TȖ3اHV1Jѷs֓lɯ]61Y݂k+*ƗNMmFt׫Jv PI$*i'Y8N8 WGOe G*>IjS%mg&Z8w{:?i\x??IqGI‘sn$YddJÇ+r'4I9@X ISJ!)QreYrH8^=ACF`Y YWpa:IЅe^,u Y9 ؼ)UޅYdXaqFeZSH?O)ҙھ RҒ5TX{M:H4 N &\>([{Y)DpsFY%:WQ|V|{aA˕wmNZCn"Z ~(YÔE@Nꝲ7x.0t8DF IhvhH U 7Z=NL#g!78֖ Tk$e7@23 Ք6IID֠TE|G?nLE8_pn/Q$\]&)^Gf=gC{w\ /+ɵTmҒ"*x qHUk_IkQw$*ۤf?qΝ$%sh^OR~#R{LV]UkIkb/LbAP7jhƁgj6v+< HoSU+E`Hȵh2x2Lt)3g`,#8p5ƙg2'aIRM@9nX”[=R3>|_TQyu®[%ysN`l!.̫: Ѵ`ɹ=rsQZZPP%9rL,Du|F%h1F'!g+%ԼLJӄ2a GEւxveqbUsBֿtγhECc`gWxL hX ܧh W%M"zg0L XGU*v0M$)a=1z[kl> &%?窏֭PH%+5 m<i^PK%9ߘ`|tRUXD=<'DTINe;UQG~̣IIR_{dMJX?sERҎ&eJO=i/ aV]23khբGIʞBRV*T3lA9!ˆ'*7Ҭ`_ZI1ћODEmZ[x 0o^q*XshKpqq\VoJJw繥PŒ\>ݶm!YSQ`ܹ`x&Af~ ̆,g'*a82ȹQOLL%@%T.[}"b,XƦ PY[ږ tpH.@@I&k'aYPi^N`#݌|sA;kSF5ΟBh(+Eh"r_]E-h6~ 2v{|ruNw{kqWwq9.'Fm(F1/ԕ}Eփ:bԙc\Sؐ D&f)5Iƶ'Ê|n]d y ֘<7|Or° LOG`kM|WG[qh' NHL$$ITe ۪>`?-_᳟&)( 䩊00KE9Qv‘'(U v1eڨT̫P\pܿձh(mu-Bh a-Jnrwok18tEkuX(*b9Vڢ}^VE>BbQWo7Fz.$yr똳#s E8xAfHLh5V%ai9q;7P,n6l4A꛰)Xr{ PT 7WCo:~o[,tI˅Hug5թ<ɂ7@FMTjhJMY;' lNVi-( x !DA-T3hLQ7} 5&AB˥]zBrq| V|ET.}{)IKoVK_ZyLS$FK-v1W-lޮo\VzOPQXqbQcLrn| dӽ?krp4JsF~D:Buh۴:ѥ@!S82쐽ibnE<` &z Ú$TQ6V`ȱ;~ ^6۪iG[{BTJ*u9t&'ǥ-XJP(ʖ>ױEՂdOԶi./ -}si$H*I?UT\ O`J ։w]"e;PX2YDWQ:)U7/N5blˌ.9CwS0³; 3U xX)*VU+נJ 1l8: ?@S4D!/ހS! Aӵb]e!_WSz^16v^j>e3S$&#/ܯ㷾ǡ_7Z$j&(͛UZ|+k!=+eO0ܑ5 ]oxgo~Sl{G|gOPEIRY#Z$Mc",IRO ckr&nՐ>XO/F}.3Y\#vu6 B C^:kQuAIR|5E) _ۊch#:$%P0,Z"\M"5eOŐ\c쭊ͻwB矇TcNeڗb֥7[jSg:&(u=q ߂h_{ôBeT.{hv?> ;U8]7d(DdwؗAl*&*54 v|3"!TNE#E-I uCᘬ@Im-W Em Q]PŸmp`ݺZYSqqGߋi_B~CW+*w3zKժ, !"FV6ue&rVomVvxp[U6oa$(y,`/n6( Ihr>\.$shD.H ˡ/v7QH 2aHy +Xe ~XwơprJK*铋!>ɱqܾgs?aR,u<:DƶAJ*TZB3F%%dٿ'"-'']XE-4SJX'4/\~}[DsϡnFq٬TScs8BjWJe/eb-o4)L5 ^&1`)JmZ\P%P`!*YCՔ3,&಄3+$ /W@͛*J&ǾF s9kPOb?ð;ӰSڤ!Dd+]Z~39 |!|yפֿ9$֯4NyUHN![AcJ\FϢ[}(6<Ջ;u\BPM;l!BAhl՞z &*54vg"~3gtmʧ *Xvܔ~ hhljϠbq(*;)dj L,gr"$EC&C`BU#QEDnF>y! fm'R^C5BRAHUor-7( I{Lɘpl&ݧ.Q.UfI2 #5c}e*J.yͺ ]zc~&1"8~ >S)k:`Q2)[ X#~:J.I$T ~4nDRXh'Q.\,8zF' \$TN//Q54,}_ݼꮥjbO:|Y^|O] !K 3-ۇR% Z546yZ O&բ맱GR?j4֠UhʵFcȎ#3< WYB|EE͒E]X&!Qr$%՟b | LyGFFRVoX0Օ%DsE*ޞJbRUI}E0;Kh[ZZWSo9\loz4yQuP9 wnzf5,MWK~`wMTjhl!D",xj-7t | z"BTʐJ$ XRF1&vx":!V5G x\b5Ǔ EbhdV#yZb ! O ڔ࣢Ϫa¨aq};lkl]#+RmHQe&+[/޵ZXZ\P$o,*= 17=_YkI gc®pDoE4q+eW.=+}EuU8lT.+X6@ ۰fc8t3&sKh뷆#lTYbN8ꎩҾ4^MYM>2 Ӱ g`b<`ḩB]4<~ O6`o`Z!Db"qZMIJa1c y4 1@`a[Y]^Qg]s,bFgRR@w$S5[7EIM"3L71!.|)czULRY} IBڼ8vXLPoZ-JkeS9!EB*Bvxh2Favcx M!A}PVĐv=,wo4O븉ذLNNcT+`߁#Vt4LdaԪ-%pmT)a!,,*FhRCcPM.5sh U`I"_DaK_~'_a(AF`'{s6޿ͱiD28Z*\ ٦;Z$kuN 5Uv2Q-P.m ْ=Hn _)H A9dfH-vltxH )hJbr0l hټIxMD>_DTưv!pcueYբ,r,!c}e-J!Mݺ #S)yʷBUh}yӭdB϶8 9ET[ٯ̍|oVU̡ru4+د%ץ!SaΨ",9o M6gt QF`7ALnı+JqpUi?8;E,i $%FDWZMmXxlg4vPV܊33$Fc{PjXd%uC ͠R YY GNOgPX! 9z [WQ}ain*ܟW/\ƍde~[xN 0ھ~")uuT\@H,Y؏`v V%$:QUt'5Ql# zդ+VSj*X'*`WpfKeEFh5v 0L~xbnvѬQ- r&$ bɔRU*5vc2 :BsJNR *z)I~JEYli"MTfcnV} &$$h! I:&z7g2iYh(a9VU7]w˶# CXP'JSn<w5x8 mۨT`28JV5YL=2r P\\@(<^}kn ^8~7.K0Ĩ* mp"Fky0dO Pۄ&h#(U, *r۔>R׀RC1dΗZom`OIk ޅO+[[5444z FP*<E23֧^( [zR)̓5N3Bugs 8kʆ T"D@,BPU5Vi;P54/"8|TYYcZWF_XH,T*|:Ȫ,Da.r$3\ȹ }rg[2!GTЈRP )}*ʅ *ydH M $XW@Wap97CGQ?~CXEVID]#ɸRLe~P*Y#"=11+\z vf&>O JW'1TdQˆ"ͭK3O AD,,xBz!pKhRC1P 8D'PΠ]dd5a9 GATx5C95B- ++p%C\&%xB VdNqN7,BTV8KgXLZ|%Rf Ķۤ5ߒQB&"#STA. f4EϩA90CټUO!B aē0cBPx3uVZE1R *pD'{< ciF~U)tf_Ms/bm`Gc=&qJBPzu& =r:{Ɔj?|(Vo\BmBճ+(s69Ja+@62- &=ƍjM>ݯJnA g$K-Uvj8;@580g\ BcN쨴H$2CB"ZE.a9H46 $YМm^)!A{dlK{wֲ;0BFd:*JW!XU?:_ˠITQ+5T5U0DDR)O{.J WUd 驊RX1i.7e˅\]R-8UUSq{(EU%Or9:v+A{P.#19:wJ{ko\Ɨ_l?ϦT(~81$c۫7c[n*&NIB-䅨l*%e6{UT FH8)@\/Vr:j5Y!MCӶjM8sKB0}k5nrKJz2CD>{W<|0/]rQIwV@ni+Q*圻7AR!U4,Rg![r \wa kxqgJ=>4#qy 39WHMz,HGƆ+7pߗMk~ T, `X{X."W[ـ|'Hj-z\i?ĴzT{hh<鸋W)gA+4:B͐ JNJl V44444z T2,L*TUR]'i9$V8TA Z$VÅn,LCBvRMk9rϚVJf.Uw9xO*.~髲*p1!-d ޽TQ2gqqK r ˈE\$Q8BҚfoTBe!s0=V|m=k? X'Dp:A19WJ}ĄІ7=LMd\sue_M<]G>rһmr |o+9|sxO YR,cn5'>>P\Y“BYBұ\b,oX̝Bp ' !GCPQiZM#AV] > ) أCV,CZkX!4Jh\l$IQ0J[!$TZV-m+%$Ӣ20,raM!l!(E_7 QdY ke!8r\mt>X,YJ ˦SKcKI8B$v poCzZ1?C )Ꮟ#D[(, W,ec *lbg=1B|׮Bv&բ$.Hݽ,DNvb\gL8;ϾNǷg^K+Iܻ O^SR wu^Wmq]YnQOB?uE^|4Qv la2 mSa,߸ `p_]]RۄQ$>ҚddAiKBMjhf m&MTL;~[I$+g(H'LgU⼹YX7y߹EE[u߂LFMQC$r7DI%SpចִA*Ǎ 'b!{<[7{w9T;Tq$uCЁ$ģanh½O} !bcBAy +FҢnc莌o2>)7.'.ݛE6h*U%è.rUF'9tu?j]; ,eHK~Bw>LIU?׼/2L݆ihhtHT֧'АNuƮ`t`p}!ǔZ)Ht^e)2$&$HF&v,aԅi} [}@j d-ha!7Ш2ҙIz7FeиS'2R[+s@./t(YTfR C!"1¼\'$d X$']!L_H,EQގqU1 J3) IٲM8rKnY.!_()󑶶6#Uh3Lz2嘞eeTOOS 5ft5=.d dsW_{HdBP oW^_l n|CX} 1m" |7*.y ";rh ^S4f3YVS MTjht ؙȖڬZP)!=DB\B*5444LJm^,`u`#Q1R T xR'-~gLϤ3Bfɜ\HObJA {vu#l~7/Y?BT= Ĝ:A(m~ r X|+"G߱HT6&A9ld@U.<^¾pNC'}Pıy_Nf0СǐEzbi%?H<RnQG >™89rMBdn@g۲71"#}( lߣL N+9$Ө,Y$e׮˕U$!d!mSǁ>[NWИCH@hXPQ~x_BI"m=Vhhhh4X@6B ZUXUc֪J%R!l&+.WDZކh/?cA`6TJY]Rv儫+)b>C()v#L%Q,䅜jCB(0F. ipr62WfY'%!arF۞J7nHh]U*GXkPHc똙 Ҭ> |}yWoz [R;a0&~U7/d =۱ A_cdSBϞR.x:lO=Q2[YTY6to$}ԢrQ$}*uNVjRCcL\Mp- D0:и.ed6a;cȷRCCCC``E;:LJ(CeS;j,.ićec#L (g, FBpc 4,ǥlӀ+6liM9!F*ʔ"L"2(iY!% FH8흊$iZ+!Φf@>WWhYpT.qE7#6`2EpB5dyஃ(\DzFڐeBchs(~uq6t/o˵Ν%2 J}vbJQ,g6|Voq_kia]IG/fGR]p6/2^J 9wlizQ|>FS vdzqx$X3(1 1<<$#s#6n܈={ pjhhh. ؀2 YH)K\,*b7[T,i5BYU)W H[R0잞M 7Kvd߲;P޹bvg'<6Ӽ-ʥ^ģ1EvsI6LSB&b(Ge۶ߚBNyL+"9i8[c[Ue v_%d3.*hY Ms#*dempssXBC ;9!cW `t& ui&% ukhԈw9SG`3|hkK9$#BTfq*9QJʀG%|22̍Dalk0kNoИW8?R$CMUy}4hc I^p1 w?#^{xyfhhhhWCG"o p,IPSQfXɂ"kY4n -lN>^W!!j%ǗL7df_/"յ,.k>OP8OYNR=P,!xx(e40v{RġRv7Eg̦&Ґ WVü{%"Z.m',0F"k_U)>q w"}Ӊm}]uFuvO^LCѼ}ŋ}O?4qС#&&&p| _+WO}J4֑x5hç7,o(5I1r B^Y5] Djw W4$F4EAU@!$l!B%d9+|2#UdR,B:DE0H9X9zUyҶރp!ה w 9M2ayr5-KB٭BloR%k r 3G=u{}zG. o#tv!q2ֱ")ْ[wqwj9k )R8No@u J2"(HG(%5 w<|nl'?QG>l߾]]]Jp%EL,pã)lak“ FN9-Mcך̠'jcπo%,מ&͆J 2Ns6ցVQj (4PT4\"m,p=t#!΢c,ŐeTʸϷzD4a!<(iCeJc! c[$:SaM|hs5[6XYNG&)2 <>U^/ZtF7cUMEi7EH?Anjvߠ|Uu3jz uw`SO'.MקΫoy;mhL1$%doGzlS OB;> '=@57P?r7oCzX53W^Q>S$UIݻU7H}vãi_<=]_{1ty5,מ&GK* ;0MLcZ!PHNIJp\F Wyw#oWi"$I#KLsU:K8ioJv E$) e%ۍx[;-h355I!YBz') k(ʾY?rr='KSnlCR30fe(\ؾ/ŠR[p#rtѤ/0r?$%܂aQ{5w]Ȏ͘Hs ?}X_AGW]B&_hxߖ׋hW;s ^zd2Ʈz@Hǔ!7m@Y"hXb"4*G=S*}o}+vڥ/2>ϫL"IOIC4 ǯe_[mLg*O߷kM44eSde:fk $~h|1%QRHJTVp$F.tnE{WPՔebdeϞB諰F.#u5Av,K*uN@5c2QN״KpڋͨyFRkи&FJI֢ +b՜/j)R19]h3=OMtYiz %9Jzw҇C[> $خ-E IL& m珷!pr!wj0\1IpF˦&*54/w0:!\MTj$DŽ{Pjv@$cÆ 8}4>ԩSuÔzHvQ &Rp *zBɣ#y\,KKs F0eh?J16[R}Z_ɫyu>u$W.L|^@WFG^5*:9_|~*.,f7_^ I& M"mx>r<~y[44+` )I%MVMV !1`PZE8(<*E^Dȃ~,IPr 2 x}Hy}HuGmDŽa ʙ{[3rWFܮ\U>-K~Do>]cS`k0.TrRsFyEgSƄ|geԾ𤜇d*M ݴnwLWtZyL͂"BZ2 ql'^0 (V*\ qZzҿ2 r<;?NG'=A GhRCC`?wȤu}JE&NvmFݛ*ʝ;w )O8qi$1Iݿ }ȗ\-_r,|%jLY Ezf"HXˮz;3ZTY&i!ގ]9ur/Y"!$`(͖$SM{o#`[DTf'*GfJKɛҚΗJ ƺ ;,5O!\dBy'tpWXAIҡK0^Ļ HW6`笱1XǏ,n/mPy8[ d>2 eSȝͭ,fRt&BtvvZfI6BNNK Dj^S?$6g$L!YW2['v CpI $f'xqUJ҆v@)0Y=>9`SU*qckz1>i!K a\5Ğ<>31 C\~"M.o[ƚ ȝ?xZ+}$+,_z&*5=XזIDKC-{C#B1 ww122>|nTm6asooV=•1!&y )yYgTBALۣjkAZ*Ja%Ӥ{qdw9X/晓2IyȜōɼۆ?W5.IV2c)Rј2i$TySEYV(EWwl#t%Mr)! " yJg; `\QiξC Ml0NY#HPHUb4^@e)$+{K+0 f:B%e'A};d© ՁݎG?/?"+{1wbWG^/'0:Nine^MTj{0a+ģ}:[%)<@#u{?Tt_5^}[ڔ?z~A.BikYdxL<%Rg2+AtG%B5x `Q!<ғ_NjsJ~#uBxL!8(Twqk;2pzuҥ"@תq$4fc̓v쯪 ;=ZDoaó`hhhTAeWɚ PQZTɑ\Dc}!@(v!(cBxEU(,u=03/ɚ[h;"x̅X1T%\ 8Ǖ2nbr2قߏήnttt fJELOO)2M b+izFK'<:|U*8tT$vWBn32^\ٖs=|*a?aXM+W6mg.dR) g2nRN|PUǯDHG~ e X$*!yQ+1*Xӑue]3uY܂ e6h 훜Ey3 !* ȶe<7Hj~WM?N` }* _vV~u%U?|["Z_U{6ՐzoaAKg2fTӡMXDƺt(,@A24QAHAc(. rw^ނI;wK.}{x&vz_ 4zP޽'4l*'>[էM[82klh(cz-0Z"{:u%DŽ qXMKFTx˥ec7jQ PSQEQ5KBHPЭ *eCU7j"^0p[Qa]%|0%ڔHI_m$< EPTQ eFEK(I0hanB<)9q& xUc/Qv7J#&(]P9 *T]( fƯ(e>W퍨Tis(F xQq}{5◃r; #1s_Ϟ^=(sr3-|^}>}6|쭏}@GΏNg0>۸2Pw/N$zBB;0#Bcݣjsܝx]۷GN@;"畉2r(cMt~[ނ/jf֭3")?Ooi4lC-z&94݇*uzodG{Pź3lı<~SGzu"y OM+"`L[xoTdYls2w_Û*RG.ymN+j 7`35TT:^@UPE%s*o"zHh8BPz>Dq!*czX,$Gap(DpJb-j xr٬r!L`x<&dfx:']rLFL;?nAf4,LHsMt&ڝu/]qc*eC`e!%]'TMR+a޿k6Sf|:{_ee Io pd0aEܾ H_%&)vay֪sܵqepnxd~۾1X^/b2L _FqX8u."֫sVTjkԌtBTz)洑FK1< x\%w8Ѧb2㓟zlذAW2a-O}Sشi =sYũ̢$F7lvdϣ7^N*f!!< E=u$/UӛS^j]\5"$%"SI$z9fwsVζ y[ˊi\S}g?9o/&o c2*ְF:iRcn5՗޼wqt#ֱDҹtc!kWa0͙髚mT[4)~yk${w3I!*+9O|Y)Ps'9ulQd~#r b_բl&IY_y2 9O8BTVdj(=3])+pΩ(L7tf.NQssG pjT#woލxE<'k㗯ިS9Վcbxb_%AF.ݢop- X`G&Hi)5Z1| >!ɳLqߛQʀw* |Ϟ=7ҜHNnܸQNC;{ktlw*u$F"!öJ߿GTEt% :F"x~qݑmۂMuz(sì]B4^xor6}cJnRSeJ{{<S2=jM444KxkXH`*JFAEkrA$ކ֒\-ʩIX lުtT3߻yM53\=2^ẓ̙)Uy^3v{*{`#|;!sd-Vw"x2|l&WGghoڹϟ:d4.d ٺ [ӈUҞ9!+==uB@3Gҕ~Tm.w{̺=ן+i_>t@َ}ʚԸcԻx^{I~>t%,ރv eY\&]D=?Us ?ր.)%Rw,&x=HXBpq d1eR b-`7&eueK } q/*,S9DF(E6ѸPEqB(B2zjr̪Ҙy!Ƅ BJު{Yʏ$bdmhoX8, Fܼp U%OX̏ ojC J93$p0~y P{c߾9)Dz5NL;>(L517z<:#s=ߨ{mߋW<ђ u **x };F: Nm6H@!;̝ozmI{T+n.zn qX'VJ*,M m5 ܜ2*JUe"JBUVk "' ցbbݺJIy~y!gy@Y ˥x9.\PTSnڸ7mRer8X, BGo֢JE<*J1M8~f!wh3n8jQ݋R\,{ӟy0)SuVu*nlB iZyaARw t1 lPLx=8| WU ˀףup7z+~B~Vt-d.V (ȣ`6|ӫ7CT- ?wa_B hh41$*AIí*{boҪG {$oHggp/*L*_!Q֢*J 4e:Z '#۷R^3/~ pjQB28t5iɫwP՝L$fT 8K9ѣW5ۇ~e,ȿ\4NFLE糰Tա\Uk,=akDÕr 2 䩢4}#*pNJy)WU9֦:ʵ^`󎪱FH^nmaAkC2ܩt*\%Rx,rnW̔Hg-gQ@K\{~;F}-AuYnP MF:qOɅoj e,2/_B.5444Ԍur<X#)!rbw,G(5nUTQz2oWRf)JE)P5O1rVD k!:>J:nHL IJ&G#i݋!H4m۶c2۩!#zY2N6 |8T`NH_L 0 N{G5wSm|X5-A 9 6$cWp^5t+i>CCg#ZӪJ”{e#< l.,0цzhS$dTk<"xx ҘiipGOзB}+_c*?܄")r{9' X>d} v# >ᖃ&*5-L'8P?\['}k4LM%<|ܽ?? {$%HVrar(eVټJj zPqWUQV`{<9n,ڇ %4>SB*n8Q n.ʤC?3T)4YXg9eL#:ݰhJ& b! IΩ(7jc0CEriެC2\,"29bNO*AV\/j xY#mXmPMGvsfƉ#0;]{k佨"ᛞDMX(*ʫS3xYPTS6r>B=}%N!1Ld a\& H%YJu F+<4l`-ǝ X ;;WY(VE"k5444]P.T5I@p]aA%9劮E0dZBX,#cmjq圛w>c:p7mc~8`5\4ŐyRVTNkL&#=Ne&q mF t2`9 u7 mwq*J!˜N>!cb%\]wS q4د=ZػvU{]_!K`^䯜GzR:7a[ \_ƳBRNHp=mhcܧcc"1Xwj)!*")o0N3)l XklU&*5-hc<lAh4.mۉ\\ѵ KGS)vM L)~t? ၭ Bh.o)dNg-;SF8\90PrJBVJƄ a hRc݂.ddWl$Foo*{&)y 7 {t0e,Ռ>Dc-Y׫(+\-JҸ$>hB*p x\Htc[33 ^+}[;TVքf y0A,;~ZV\clF Zzo} PI×ecyXz(ig'?l WQx` x\@RH/)p@R;k97÷c?2G_OlLgOéQW(ӹ񕣨He{/mPf; [H gO#G.x:jdp. Ţ|OfKiF}`A8A,h&KH؍r n߳иT^)$gUJvTɄr*JVQj,*aBvj #oōt Sp;t RL6\9; 5YTt*r߃wd9sR(eNޛbDJBzNE9#DuY 6VQnL.MRڐkΔH:Yߛ)/A\^ F6):7TZ^ԸT`+ Fpf9QxdL_PQZ!/_y BL )1ܹt*\>\*JC?jI7i2 3-S <5&(!sbTQ86Rؽ_k6h`w6=iy!z]#cRX5Ay`;z|iDګ5WiZֆ={:?TU5aeZ; x";5oPi=Bxb6ux6iwa4=]B\7o. ͟: Mh%[ߑds ] +4Q.!KXrC^IklᠵZNH7 U x&XB%V C %sElΠVQjG" ^Bl\B x#ݘiBgO*Rݶnmdr(Tƪ*E`C\D0f95rLKyAsnYtvW뀒XyjIRY22H7-oN#Y9:)}}mp286@:N"v3hrU/8~片cqmjVTx \ioȝ9 U|-% P$l@e2`5hRc]oS&*#!q fi߆An&YGDk oUZ6ulϝ-r9E:(ee[(5*J֡d=JH,K ])!%Py!EH)iTQfh @uU,C8i"UI PX(zr0/gD8&!M 1H摦DU)c֔p[1| foѩ:e2PU9;:J0 D~Їӟ9~&};\+][UMEi@q{u@bV`AnYC-5JMTjSGKn*57*ho 5 LzX& HJѻ BRc>4)aY&B±veU&ca\<#xN_?!,whM\(Pf U3269 . (Y93 FH;iB{WT@촌I!^wa`F3QKxhB յ{LKm=5m}"MM"ۿ#;6ק5B=}ȝ9t݇Vg*ɵ8e 8`XDƺ'FvvTTL%Fsoo*QQ.@!*˙"RTUVQ*ČRR -*J:ł2 1Da3w)%kQ2UG^Q)BP:L7mA^y9R4cqazLJِg# isMzDa^U5@]y18+ ˥<)!)S( 0`FPK/|*hN 83r IH14 Lk<dž /}4G6ÏL:q0RrO}sOgC}ߒ_oS#;w & H{S9' 3 UnhRc]`FN8De*j4 LO x4w%}k8:QM N66o*Tٜ"RԴ\(-֮EՀsY4UBTRYy7/>^È)Yeѝ"'>+W.yH8JGyME  ef9BVIdnڞ. qPU79QYa`Vʽ`tv(eZ%kcHlq~:=LNl:vW&ûVi1[1J@1wRw7X":"2쉢;'ױLJ%ʠBgW)*Mcm&]-hRc]rqDg!{ PTg~k4 TT-JApCCCCC0d nh|hF#`mR>؍ž Q2!LY؛/H;N,$B`4R.W^,VE{!7e#g)㻷[Y929Dm1rGP<{Saw#e:qz>SDDAXӧN:|:{Xud7 F3@7bDݳٰ.3q_#I!=;T]nVQfC(5dDE5Ar] SƢ0s 2S~26\-BCؿiP9|'9' xhۦ%a-^\:|X4tn t$*,NYFG0; mx\X`귕+ȝKhd\YE54444n2O]Ѷ[܋ :Ԏd6k)BViD(S}oRؕ(KApvqheiޥRYr<!tb1!*CM EU2-,]B7˹A_uu CrRW+Q )dHN,miY9VQ+.׎kp,&}Z6֡PnT._# *j=HVuT*.?u'._WOk~&^<}=w7oނ]I !J lDsf`vtIQ7C].w t}JvL/a*MCCC~- r iazMEI|S=-U_Pc=dVTTJJIBCq)l n\QN]p"Y&&) 0GPp$-^~5Lz2ꝗ`c!Jf Hn=ИTuUpH3{0ljlzZբg["p8q)FG'|j vB[v!<2N'dnzHI z k#Aa(QIpl 1:urgZdU,U{Ҫ94Dƺ¦AQ5qȡS=4*?Axhhhhh_-YM$+iaxJ|^۴UT^q2na-Dn8:;C#!XBXVsKMIe_A(S($JcfpPid+%y2Jld!! ٴMھMʊ ҳBTU> TVQ1?@sS n`^:s:kBcp/"3y >Ӱy]ev2/K;RM=yn- D(vs'aGJqoA&qSxCRp+eZjO̢hB\CCC~1gcNեW(58TQoχ!Y{h4-!&a^8 \#իjQ"O&URL6o,'\=&t dRP>~(Q,#1 y |w%Y AÜr)T|ByPulj0v&s'}on!|śθ;2&LdGVBJEiͭ Y*7kQ*fܨEt{9ڀʦhbVjeRS(0-?|NJL2!eюS?\/nz#/կbff??JNxt+#99=6ԸBxBԩÇB6{2 )8n<1u %N,!h` 8uX1q5ߏT.^k&'VZζ QC(Bށ&*5,X_"2UӾLbtnr)6K/-?&A moJg;~vJNڝ|+t{Jq7ϋ$BחBˠR.! n#JVD/y\#\EbT*#L#-DeمN:zELMMarr|OH0lL5*`]H%{֥dIw_,*$UdBT~x|!~=:>E5-g\>?ajݱ[H(.?I#ϕկ~_j{_ގE#y|ZXa<ؾ}](l^nؼyj{GEPMcm<'*2JrO K ]xМJr1R2~f:`xwPbc%tdsr?wO ~UALD"\6ȖPVrlbVY s|Y*`9hr]5S eӲ-e3չuq1. Í\Td^Y4ddjfA°w}WIzz[epo?gN!Ocx:zqw37Q15V$Ý`>AUx^e|"H} _P A9S]$ٟ'j;$lg^n:qJ"Izϧ9TŋSϝ;w{I=jT ?WV %6+ Ű\[?l$C=ЂnrG?" WfJs>qHGS'cK,j8SUY!Zj#BNfG~t* ta,ގήn j\qĸ{ xlHA!&ע4eߖ8cay ̴zMQ Nz693>Xð2q*Rh xbP}=>0hnbk1jkWG CgOÔ9՚W)0z$kV(s|ӟƟ韢Tjׯ_$b:R$c~w~G)Yߑ4_j2===byꩧWW8xb!OO}J|K_RDzW|rm0m9.oUɥڶPTQqY<# 7o\烩߿ۿf{JZHL65446h""m?\ZE|9!8t-wZn dfr秅BY9*T7f(yﮪ(3p>oՠ*J˗`<B{y;2`gIUfMPW,^o_B&R/MZ: +ҟ%*k[wh7aEz _|ITuͧ8dH!w0l;7n%"Rc]$M)ܶMَr$MA .Yxx W]Id1DŽux7ǯk7UdLݺu"iFT};QӬ}ٳa+ 8b )άH$q)u۶m}TQFi]p'ŲYt *ܸx& vּ ƭn+Do y/ZNB4735(fq *)$C[X 'V2[hJMy*/jcGE ɽ~Z)'~#N('o_ICH"P.T5jrQɔHvAҔ 1'sL׽-f[/N{6+hk>N= nQʂ#&8"6$ܺPQZe!*}x0ha2'j!-s0bs*l6$U4,9h$rm[r7/Am'!8B,PըH!9 TQ&&됐kr qZ^K=|2B2h8jW* <]v!חUy?H!A^ռLjHkL˽Sus$߯.1܋n Fҍ絖wz}4V>Le@!ںz? sLkI%U|3ikT }P6ۢ5;A}BN(4")LVҩ U }V~3EtfBD^`А"fntY&cMJ# N5 MI-jL] G$PMuopӼBnجwk.|PD>N䍢Xpt qoArB.TPv#,iwb0ϞR(ݡͨ<*;(JP6wJ ݼ4 EPDJYW/'1;3%YVe0dǦ!QeA{HญU0=6)y%54)?@_<2Ex@DQ0R¹HU(BN,\R%SC ݰ6lAFbβVKo 5E%FS5T|F gWlCMAY!2>LUSX$Sx <ø]pŔU|T=̟ɟ(cj܎;T,~ttn?*"i!^!ieo:/ i_T~&MSj㾘滜´GUjz|UEhܟ@$Gы,oED<{mSE L׃J$^jD$Gj`9IJH=Q9[TQQ<_3L1'}p5.vHٟ٢.6rQFB}{:HZdZ 7?[Bdۙls_kf0RۯUtf;j,ǽT~ 63Okjl\ GZ-oLzku(=RQ;d#IwUg+0O95OƋm;J>u騪(H I 9컭$%?gfL)Sp((\%^HEYL%eWR*215\Guސ'[5?Tm |BFѬm6-\;:G# #YRmNØwp/ù+a˵zV; zKExaN"Zgz{ͻ[ ׿ĭda~^.\YK"|SI:br^į%8 [09tc*JNr1QME&N']/?'//\O`JA77oID!!uP-i$,5QqR)σ<_ H[C$Aifakm&Ƹ1enr-wbRTh:R,;ñ **Jcn8sp6 |Ѷ/;)+Ē_@M㞆JȸI] BHXׄ'De8{ؠƳnSNLcG߂gf C 5sZ-3>xzL!/[ qxכiBT~;sϝG=iY?Fk^@WS5TwR-<앉VSj4 F{&!7teV?O)IJЏ}cW_}U)544O* JMGS8G(=,^s('&`]<c" D#$ H򳭨EYqA&Tq#ul&QXSQ& &BR6?ڨ.̙iBB(%8?.Kz8$ =^i;5/wb!+ O>r|M}sj߾Bٸd . 5JbEd,>(O > ͧx-s2O;6=XW`+So~ F.+ J=DBj]nb@Ƌ/;4`J; wӤ*sqBrkQ7*.Tj\0a=D֢U-DEy f,W\9")YjF(3p>M9,UB|4p |vi!*ӊ״suHUw\:{R4+aϭ}2~1āA3)akTL6nCqnO'4+bGKC(J{Nh4MTj+mNLRf2k5r,]t=juMqv *XQ'}#HP:n^ ^#ZDEI֠+@[HUҵ7lT2B %!)hh4T#Qq*rQH&B205)WV_a1r&Ӽiֲk/{i,K8嬝s:bUesՌ}f2eF0WQ5Je Jv70W4ogI H=975'qOD (ĚDuVzQٴE&]=]'!d rSUiZ^fg;:<26@#ƺB8D*%ꚁM#M”IdϿۿիWoyɓַF:ܨǏ~#͍Wgo~8uV<᳟,-c~5ni{;X\Y &dc{W4YDIGiV> Mx<ؖz,ɜ"L#aB \ÜR)LNL(F$irTaca?#q AyfTHR6rQ֩t2%RTMRj6< eiQS /v6L {`nAfvt "ڿrg@УƺLz}܊܎-h ֣"p<'Rзm4^z ###[MRlXgn$*O>F+a1,ETnm_\}Ľ~r$`r!S<*(;zT=J{TkV*M3$C28R5,qYNBHbP8DѦzsN̔fH`vSf7ܼ/z0.W`W U:+U jԔHL\2aڠNڰ\oI8ߜ肑)s3Fc(CHO"cz+v=c(\lXq{Щ*]P!צT Ն Sy^GMӐak˥.BGGzPni;Xˠ7%d@0,8.m-L=ϰ%=plS*%>_tBf$Y*;ʉ:! zw$^H"IEy0mIύ:eW 9jl 'VepB:@&9-eE-p&%@"ov\ ^{~.ǩ.0Ν+ĥ7]ٞ!wDgB%jQN½K[N[=4MTj#Htr#҉uo܎ͪ ^!ũܴi"T&'''@oo?_Pf"F"5Pd!UT]pAr?Rvu9sx{ߋA _V.AY0nٲ>-?|0^}U>s}:~_|Ymeb~-oy˲Ǻ:^~w)luv Ӣon?Lc1GaI7ﳧ'-rѨ%H*l.^,xLƟ3My s]tZ Yx=6BlYR0qݴذ AK^~O:Vf9l\REɶF(/A8kQs(d~g\LOd}׶9m >7CI;DD ȝ?+SF?MTjFg&  $54QT"̒D{cB/Y)~a B#\ڵ .]s=m7&T1XSW3>9?$tkBBR)='cm|駟BvrBO26ͧ]垐Fx$߰E>MTjL҈Q%2[R\cj]kOphZ3!itG>?o;;;oz~"ڨ$Bw~wT+_W}&ʮO|QnT=S+QYFDR}m /E׷ o!*7"P4&ܣW)#Tq#Ur޶| u|ǢL6J*TQF*ʅ dDS%r/Jy-fޖa)R~ A[+RQʰƶV)N"9=%4,-S,۫=/$dBIdl:$x=0d,3%puYqȱ},p,ÎwCcuJu8I/ o`ON(Hb0J-o}+/B'26nܨTvl֭[166QH<֜gggUj=={ -Kbs$[sQ$xBXxs$DԷ'_RLe.n5r~9,R]LoM)jLpN⏪>h߸~~G4/c%׷}֕+%XRHŠ$)eT$$M y*tBs8h u*` $$e|r]s L.O:,7\6Y!r $H8ҽ]QՕ+aMd<cliTRHid1B J]kXtw*AE{ t<㴵{P2Y AIcUr ^?d'ey kzelH@+q$ `9^{2%Qiju E^8(mLDFsQÔhMk )"X/ BO?J)$j4 uoFg$~_(h*5 q~+_Q.x<~bhXB#[R[ߞ$Gu*Dz=ž>OI9[+J"gtw>~،~ǾAe=Փl_,Fo HPr핅j8ގ,$=T.9KIΎ=pPkǝ3k6 2fEf\pknެumY!yOfk5!]]]+oUEJ$PBF9O-*J֢$._y[BjvB-KgŃv8a?CH=g`Ú4gg/BBVfS䄬ٍaX'$ oojGK2X4䢔*ZU _+Aͱ^nǖP?*]DCMIn0$),Zp{:|F΅P\41Qp_(eWg `#a_Ŏ;B}73{{IT톆kiǍ,$WjDzAz6l`%}J?,w|Fy7b IRө3)F(چH<.de` 5/K%cldqy:yuTIi4 0Ǒ "I0*XH;EJr,ؿRL k 3疠B`ɋd2!$X$$cVkT\L?'Ʌ3p18C !el(@Z"I^pͽJVa!1gP2Ez5/= r)La:L Ǚm  /+/x;%AX /#w8XV 3 scj4ً#$FSK :9*)2E)ƍ[ \d#ICrkQz{GLs] L_;}}n JBq1jBàࢎΆRҩBr Ʃ0a8ws~<;.}Vיi d DUpmתd{6c2G^W!A Z:;unxooq355nFK|Yg =ai!!YZawC5-OB'Q쌣oȢ"W-wPĞ]X) !B!)sNZK|c ,5f!tza*8HQACÑzfP碐jM:x|ϐ0#!}pS 0# 0E< 厕kXoO~y{>՞K}vacYW}7 gN7GP 1)uFPwY\ n庵k$B*Jyݒ5zMBAUZlsbT:B,Ą5^0EC.`c;Teo_H\2{n8qB8^Ĭ"{EG|eIJĖֹ0}vHp \5B6$ӓJi{}UZf-ݼ(DyF(䒪lKfm94}۰Lr N VjnS2W0<]r<'b_goisH~c3he_4=&n%'kk=;v&{=mH؀lBQ~4yu#_,QA GQhԞ!Vj4  ^:]{b6j*12qR(GJN']F4ZT\jIj4lo2aƽID$kdMa*RCFUEYP(mYFmEco @S85yBTVP![Iv' f9$(eU+VaevU=˗/ UA  nƉDžd,,%@ǗeEN>$ˠ ʹB^ߍZCMTL~s8y @o@6b4RQN!TUˤ2(d1kEg#q 2gO4ڸ rJg!SJ &:0$cOk2(>wyw| [Vm,zsNKۦV:{ BN}*ͻ*Jbt֙-BLpB8ngzZ֔KQHWctNytϦf.wlo@YJ)L|fVލuMPr,;0w g` U^?B옌SȘaظRd.30"H?Bػj zúm g Y"({u ixvoB͏{M t2wvhh44Aɳ2ִ# #S"5P}RShHS [2RQb=֮RuE] %303F¥Qː,£Pj͟dsyT!bs*5^JO)moWʙ.l *0H n8-4T QE#\0T74aZ6Ӵu)$x ?Ɩ-[Td.iCo*)7oޤLnL2"(sk5Wi\.лUZHeS gͤW*&s "+*\5h GT߯9dLbB35|aHƕ0F.3])V8ǐCfr,O. W195Q =Gihu3|LU%7ԋlأ5ZrR,TÅ z((ofIUX(bO._Ղw^ (tvvٸ__cʩw?O~+q)V ;@6lJv~3'e^u$=j[c5AGb>'|b@.DToOZY̑+0ϝV;Wn]eۭYeI32MM-:f0:;n$xX}<8t萺/PI{.?OS*n^gH֣<~r,c K;=2515)LV Uz >렒M׹;MS2xeL 6ʀ+NcvLdL Jr*m? 2rMPyĄ%I&4$Y۹ёj˞~Xrosgo)]Y라;|/ؽҿhj$+ B"d_)7.S&!!+_>t~tAdF-- rTm"SM:EK/$-?&u; Qyiwr5g?d2o{~gyFpx??lv`|򠊲(cm,Bu϶EkQV%u8^91Ɓഷ mT*L&'cwFrV #N?95Ї>J |G?Qe/F@zY!g8)U`] s2L!gO2d$ѨUK5P*רx~c\PqE kLM}os_3g}/1<<_~Y9r1\TÇꫯ*>9޽yYrD S#8{y<\N3Ͻ)ѣ8yOO?_˗ILcbe!iv8w:wۥq>2{RSccʹ+W(KvBt>Z^m_CCuR*zT$G(SiI+ ʉQcpcp#nTR/`b7&ְl=vY5XcKqwS>5V}_Tw>Dp#RH1Bj&YA& s.#H04ZeEi!Rs9tjw냸r#}Tڹu54n>lOHYU26PgM_CWX pVp`;6@y/7C@c`A6=.]A] }$x3Gቷ Gth TpTPl3>+&2Wl ~)X,\Jۡ(CYSQ%&W$?_V㊌( +.~tK.nJַ7傋!Tb.jම'N`jjJu$x<|ϩ,!TҵFӷmE-oO>' hT;0Dx>fXHv(2q),>/:M"O?rb`#GF^k<6?Mi`]?fF( 9ϦMH=y3F-[0W QQ)X/EYR ptIܵMw@]]=JI9$xW~8'e T3>O=7H- ]8~y5өeSviWd(zN? . > uK3\:kBP%֮+2:\CP\DrfRH *ɱa0N13SLM\7jǃp0; ՅWTʆ xOgu6 +k%ӑhaYv paX#/?ڜބJɥ!ă+ Z5&ʦ!x22ɗhꗭ&̩G>@$>OOOo1ڃ*ׯ6P;$;;Jb_jzR'T,. T\\x6>O׸/}Ks.rh|fs>oVm\4qPJU?GWxl#.$d 1?G??WJGyd\}jՎw]HP)JP'' $yl=MFҏX=n엋ѕn_CCCHJFq#QWP1Z3̋V*J$hQun6*eG~BI)d1!jˠA(4yoV&b'pepKGhT2k0d QJGtWhCsp)kSWa^#w8w+!#c_)H Y*SM[PQP$P,W%E8 ]aӔp>,{ Ns!82Yp !^9|S7J8ӭWF|[6}$(;so.M 22mۨ&L`B׾'M2;82,uuَ-ޖ>S_r%6RL墉 J5E|lEuA5SnݪGH7lL/2i٣ٸ℩$Hr!DžZ` 2S$ضmے F{{:Ե)%%L &㡂۬iTq_vM)H-ڇCcېĭO_^+ .(3 7M3ձcǖyxLuD_b~U/4A0PbA!g$28N.ӣ0\uuDX`0I&s-srac%cKok={L9k,\ʁmuP1P/2qn=rE=Kը؆~4Z:FEI "ҩ~QPs%8׃ yT}*CޤI0rb5Pmz$/~ L5[(\~VF­¼Hr1 i$ :S 䢓gKLNkT(g9tHtDej!7#iԱN{4R}t5qgz*@*p|`Ȃ7Z {Nǔ:ΟICDfKܼ {lŲ#q;ȚFNBSc=m~w^h^*۶oW9n+(xX^gr/-'*>|7@'O@dzPKUШZh5͞_R$%bOÜ!8pdlTQUs$HL)ҏm_UA{|0JiΔtKe{|a:d HP%rY 6ɘn޵Xr |#39[x<] iV2{ u (A# "e6Zun$f鰉TG% {6x$b)t{ &|FRZq7@R, PGƠj\r֥ 4]23?wIba*E{߭Ҹd1̯EuLXdJ7 uT<>LN4m//yMۡ҅SYH˵gǎ׿Qqj{~L_\$RH{f-=!O[v&ǭ<,̙ kE41_!U-q?}"* (2$)!* BխE"f?q {7-@/c82hPq۶6$&159H^v#9 N]F󋧀W͊LƼtjVt,\!Yʡ5mج(!'ꝑi>!{EиkT x).S.yᜌ`Tֶ'Is=BnPHxW+'BKgp YRϞO:>0^3neE8]A%jCSL $:ԩwelžM,uoւB{&!*Ujorf~2\ Yw`0Ӳi:O~ƶ mHhQ  jN(|6S?*j!0G?:o:(_*K&QHc`xT3d=0Ko scEl$UiB"$I}:Υڇ$,pq˿K.VVwH{f ?1ԛя~y>:qc{<4#,::\-Sf9 ̉q!`p*Q dGt͟Q`Z6bRRA+PddΝj'I$_gm`Cnf.)dc2TuK"/{Ʉ^Y 83b9mFY[Fݶ Φ-U,$GLrf^EPk[뤓3*}qZS5|6R,7%eY8E5`VNyQd`P]M7U]MO!uz,c6oԽ{uOS#$_{b(ˤ!N|8 Y:|]$_p$rmCkC`o [xfS*ͪ`WWRu᪇b=Rt# G 'xB)H@eZ,u$yE%IhEU Kzr *MTz,.x]3 ??SDB`MHLj}q?lFL0y\Dr<7~e>W.t˵9tZ25D|ozԣl <.?FhUjڃL_Ԇm?H,8Wb}H>qG\8s9uӍIY!S4VJt!i]#RQ,~͑+0_YzC,]نcUGtsS 2w ѩܲ9,DR2156#GI,K9S&瓉B+2FY5 *ﭼoKRTs Q};3/ $!$lDH p6l#,k 154怒ji#J(z=iCދM!S?%8 ^La_bC&_kjLPB<2OȜ}Œq2/ulYv~37o.)y?ҿ4k]-\=؋WK$1qa tm?P7Q> K~QlC.zY%eȣZH/D9 H\]h4sA$o!I8>/&!wQ*Pb"t2Qh, ?/yY#;_kf\N˴lTc\+Xl{O" !bWk*T54QAC8BT!9r"E54y!HQgf8(wn"GTDdTUN^!~^tfI ӽСRS: J =n>oũV0HcI`jjr _q*ܡpR#u<H9:dSDr3I*2>*Gp { iB:69b/KBxp=;j[U]$~MCT@Kv-cKRHߤ܃Boy;ð 6Ļ,O`TB^3ܩ{ԓQ7^Bd'yoRnj {ޏɋ;s٩,zv!Tܐ wFU: T:aMJZP=;zd"ZC=iRը09@b7LN'Z ~ӟ*&))LIꩧTMFP1K*՚k k54hRͲ #Qm&*:C ߮\֮=,dqx=s$Y4aN"!oS$XsB{jr"3^rTIr8RKR 裏*f;wNLfJxMMs_s4y=oWZ U)Sycp&~!*7IThsB6^&T%6P)s.:\^kfE7CM\82vGQk Eug=>KO'cbXV8qs>ΜDaxzX-oސޠt鉔܄ ރMnoL+oPi+"2!` I2 _:\.ܽ7ұ$J& 'cUEygÚ xm*ZQ!<^==hh5H)y se!G l ?QR!+"2E`{h&6zzaxf\^^*b :Ed&+/E+`XKȟ=;oMZ F""Qژ2rGn,Jt [l#8<БȄ޽ i_hU_v!x*w%ܿ}3D-UGU1ghX2Y;5/Vh{e &Yk54Zd[Qle"#B\7ʌeQ1PMYȩTcg6q[M|d9P(X4HjF.P.TSeڒ|8p@7A%ULf}b0d2K%`4bԾ-BiޱO}'6(iHr0+N Nz2inBBT/БYF`Q!RƲ 5 XCXCx``pdڄ%dcH{BVÖi~ǖ@[Ȟ>w;t L_Ahڦ2ҥ\ 'fUQo*ǨxRY/_or`S&C܏Fsa>+(uw"+Dq٨@C1<;q|&*23z&8*HLlf߾}7 w4^RteE:9wNum,f¸rI\!N8L5&IK%ք"W(&δn/-p$#I.WR{ ###B6& !1I2~)NާH2=>`)i~GIR@T)NQuٜ:Ln IT!3S"q2p{ ZH"2ͫZ2G8CGG29y:G*( tZ?8Lgo{?O9Æ ]vm^ Gj¡ >Naݯ;JA%6l`%Uhze/޽{~i"6/Qg.+FME)t| #ۢFu>-s+Ծ~58]l١漬CHFNDcʹF'? W^Qc3b#i"_OVd%ՕTU8gϞ=jTs4ס2#D% "(OⲆq/G998jH.4 0y,k),KBVSj+7GPPM*B!H Gi?K0&93?$cukj+pص] ^§8VnDh#H?N#20 oF~v=44Q Ktƒّi$S=yM:·dm:'`gzOg<~Q{!9ІT LM.ئX;+eLUq7PvK tPhkjr>wn}Yȡ!P?wJW-vjhhh4 T  9(c٬SCE593+P)ɻKJ͟2 f99#!,c, :;sVnԔȱcxuVu$9::RI1͛`0l'/$׶gC 0sYؗgNe; |4*>66w ?$3`˵3rՃUrW'guB4xMz}a df8g{nOTRPH mk0s{غVTMByd.Ox;Z>BN^<ܙmBwhrQį\}FO]CՔRVvl6]+QTT1 39~N8n%hWՄNZ/'Lj U*5JAFwWkVVJwLTrDu ‹LGsb_VLOcG}V=>jlstצYkun>R_E6U$4.zRn㩁~T*'xFzr;n\x35o1?.9=оk`*G>^TG@/:/~}MUwY f"ci_!ӲVQ&fp s0|>9PHò2Xp[o EUӼ9XH\HH#>ǎk_:w2֒_*Jsϩ?'D -TQp5 ($![aga1(?dJ5Q!3SJAY$ᔫv-Y7`\Źո[` 2 @ Nv,H֫&`\p6o(:(א5kUZ0Ϣb;W ǐDp>.w DW^DC1\~בOq`zwE > RACy YΤtjU%hBq)؊5>ɚ?OTE=35މ's3m)?~\Z$1ZfLQ&g?+p!d\#sBq||\=qHrs%X'TN\ E|_V ]IY̯!.\(TQg5444V4e(rURE0xw%|0OScghSnI1 •yt][&SYwű]?+$p|;0hbAw IrTW4%`; :ݶ5˪{|RiH>i;r$MJ"5* 4Mи[Pf~-$Pg20ܩխTƙ0f6qOP=(ynze Q~xJyOAyzZQ89a:7C0@f: 7v"!LrZ'dk>`:z LޭHƑ8n*ƞ'(V 42ܢ0~xmHŎh PKfz,*"DSO=W[o% ԧ>ucT(r԰qYU iI# )eCVk1,u<5p1H5 ?O^\ۿUĴn?K3U8Tg{p)o{K;Y͵m2rv$ )m >sJ!w>N[X K$ۣ>k`!>@F9_%5A(H:Q \Vݫu|Ҹ{P*}! '%ժp띮,7qV2EF]-Prk# X>(z'`J^s.D{bPʕ0uyW|1v@SEc"XrT"Ӭ;anB>[$j[V!ϋjRK4fO y v &)5"xMWdl)vIϔ!,F@5"wo}KF"̙39]LLŽG.ĖJ&X$U'$B9~SY\-%]z/)厇)uoӣ~[ߊPdUK+UGoM9VࢎՃw#D%_%K2`j1جjhhh4 `@C8ށ,hpA&Fp<w8Cpd*rr%񶸌a5Nr~gqo|x{ރC=S)(~*(~uo}cr[[ itN%/se5SF64*b*{nawIoN0!IE\KJ'l^Džmirqмȧu B Lh]v%\@DNֹS-D%vluoqݵaI.xQ}d&amڭ1 H073ܩðظ}-z,ԓ\S=1~v&PҫSL_U"^D#x~S(ww NV92i YRdƅ ~_յ)bO;[P `] Tn$A@j{YFJ0mQ=Ezδ5%MΥT,fWEqE?bn \l$92CZ\ITrT#)N_F?K'N$>8ڌjhhh, (e,+ UHx"\%T*,bq]])j}(vOl i4oMX^,c,BQXe qՔ+C J9YK**TgU[k%TU3E!+$q1@F*w1;U+אUUJ`ȿq+"{5<$D#BPΟc | FBZ s\䅠dJ{:T3hk))Ie<]Ng_J7z ϳɽ{t{?HN ++x N ϕIvCU.̅YXhŃ{螿섮6CqkIg-&"  |JM7LWos(@SR<| $5#) GAhd}jA;hF,GDf:Ox`$/\TI6z ǧP=:[אZDil;#*)˥Ed+)|wvC&2!\LmVgvVDUt{0itʏ&ME"4R}GґWߠ }$^.u!Ig.ں \0 uHBU7$5IZF%]I>\qES:9W\'?%Y{`4<.:JrwG!V`n5""%AyeYNׇ%EoTcAtGWƆQX%AY*Ue1lԪ}?|xWt|cMd)&iI??Ӿº[)j#cr +K22Ȥ2&GmjbHͷ^ 8pH^z֎-Y+aq~VM6ϕ$[^2cX'a 8kfEE0;Ѵ=T []{TcKIN<97 s?bH\.K ̱O8o 9<O*+mFP^"Lh i9yJWɢ]!.vG& 2 I؈x*_zֱcBr5 kRV%SVv(2&QD2mI_c7.H^0.'B-c A?w.R]"v_ȏhHtL┄.@>O TՋ$_MhG8qBeݵVA" 9k&UL#{Wd[b<͹rJyӭ L[ lxMrH>t1mu~|&HQ!B}ҧ0Pl4II9/@ǚ޼74:dzZ-`.Rx1 Čov5a~,8~I*zhU(,nB `j# IN=hIjV$`]3&zפʳ nra`2./1JBLGi4c_*BaHѐDlj z;~ɗ@q~ ag<9{a᝾޹ G߸Ff;d_uoyNӍ'~WGvOswp3u˷BpƔ|\p$mMÐ]kfZyoըJݮ(uu<#]p7Ý[@^vA&6gXh糨9NM4tfUL[#i 0{ѣ:s$Y*K.]Ge{39h}lUš\{xx־w-x s%=ƅU5Mƴ kо7R.y>$Fu4i@7^xa>>}G_ym>c˷:)[fDn!d:7$$e/c7O?yZk {Zp]*^a$ rl(`?O7opΝiƀ\&2fޮc!d{ ){(W`Ly 3d@=l~n$_LŔ{ 3.^o(9W41c|b$5y5v mJ$ϲDJ1dͥh#}w@}JT<&K<ܾpe,4hZnÍ%巬ɡк_k?T/]Dkcdeڽ__j}ϙrX>nD^&Cy%,v l~@rE& 3ef/,1Be*zu+KE t[)':IFKl*ax;H~o OQQۍ)ϫ֗,o,ܷ"Bv_ )!.hv'o$̈ʼj5 )dry%(*JNVa;L 9@"΄f-#fK,LS a?Ԩ#0;4X 8Og,TQVg /.DelvG3P,|Unb62SףѨV,/m!&-k1{ђࣗ\Ibve1k'sd\EL=" \RBKHD*#䐇v l-yv-HG$p,#`+;AKƗy n%g [s G_}T~,ڝw|{k^kI˵Gg7Hn5m;~o#=~|T\W0֯TW'L]\3rY&bN:6g{1~vzD& }/kT\n$ZS:ΤD:vMkJ 5 %D!BYVSM1AJ1̍T 8M6}퍍i -0F3?Lf[gscY$MPL>Qkr;,SqI>K%U1]OHCG c.g?! b.4Jq%:.TԔ8viXÑJdmщ[A _!VGXMJТ03#eW> ݿ)M QYp'9R6yDDTn#~ؕ)f#xb, (=(`LHD._LOnLo˜L:}ɷ!w$0N{tx1GKWD ~2*iGݛ!B"D\fL?%9ɏiMGcSb,4݅ɲO{8Lki4כ=khf{*ʧQ3׆A2E.KmW` I'=T昻mG#8|Kr-qW(YcX@\TlLVea驇瘬?nKScTPHQI\*PR+U瞬/{ k A;񶐓rAƃcζS !,C7aNL?s4);+-?g~zGwzjܱq]/.KBwe>*λy*G!YҸg-TJB 4pkmNPkGu+c.2jU%ޤ=5t5YD:Ap7լ+"lyλ%#Hs h#}q,% s0EXGxc:y_\7>1R7|RvQXkc1!'c^ 1{ej '?Y*8D}D38+7_sx#㨻6{$<&Nh]PֻJ$tMT \ǯfK0{gTs'!B"l6ĚZ{2!k]ԀzZּ,^qBT( `*J?@( 5@szM.-u&I{E M뻾=hjBAQ-t*TQk ziޝzYMÀG#94֐C_eAΧWux]ony L:- !ޥ)AO$:joawsR(2] )݉)^!}ђ"d4?TZ|; #\f: ;TtmD"=QZ@QtlaY0]&79a7N:uHՕTi6Y麜uBc Y< _\`[2u ^G}0ВFwr "D!F𕬫kM|$2PEIEF.$e!)"`*RlDn9-!ɪ:_M3٬(oܸ۷o窚tn֝<}… 'aXZ)Psw/$8p\~:θèXۍ:zW Zr_tpd@-a^͏ڞ4ҜCY`YhR SȌ7"DXǘ S\_򏟄IY!C`>įKD/u!+ێ%\w(/1srO NDgr ޝ9t&$r0׭4(2#Rg_ ݤ+]Q!^@J ~&crbߪ*Y;}P{ n: 7; Qxgdҗ(rXCqohUxR_%;.q֭L_BvDRw;H We'՞FZl''3h:9N=tot8H o|q2@v ?ۼs__PK}$$Yױ_=z ?oUEZ[]? L /~J?p|!LK&~ۅAlfg/ (FxƦ ?9W*%3( } X_[7}s螽_H`Dif b f[M&4T4o $s_#pMA(I̴_!e !IM^+IKxhʹbij2,!'$)*nQe>R.}J0%Z77Bj xJaN^]!+Mu6a޼ SYm&RHu[YGVJN&=/F,*,'rLfx".xRvXyxAN2.n7r'T'蕩?K??}sտU"nH4ʯ _:Y"^I>%q}SW.4ŕ5y*nifh;`q\py6`?݃G |3͈)' )tsQ5NV'V _;B\8C,2!3GP; n$;iXj+FخFV,|wh x 8g᧒I'X?qBH![d y ߀T]~]yǏWp#I~jwaܿ_U߉y,//Sכ/^Կo6g:|˷3 ~G~ o׬~UmxnLG'h–5X׃`nիiOג 퍮;?N*y=y}8bi[ݣΓWD"'O{} _WTAݿte*k=77!lYJ^[Uߒ&ataZPI*#2̶'Nhj>1}D}~ֿqp_aOL=o={T`98$82BѤܴcOEY,Y S$:i(Cy4tۓJRƽ~ւƻᆱ$>!=|>?PMgAG29jOZ7-DU?`ͶըVP)ZL~::r+cۉR:.Ζར7 x݆{;< x,`44`f\x0)s 82wo2GhN2ۇ14 :r>qbv˷`1ي=YQ~Jߒ4;kMF%٦uHpk#{'FLWo Q?dGa7AՀUF/-la跑>X023Xs3%o'$ ~$Hv/kA2m4@L%)_zd;__?v_+?+EN$.Yd nCLcz?s%hb5O6$aH(!H0&H2\υd.븒,&H/ɓK.~H0P5qr'uv_IN9$әUÔGP֪{bl%S^bϟ>;QWX.#p*JAss2~4¾|'l(%B͕'gFEZke_!?>1dc6OeY̷6TP85֩ )ZmU3-cu-2|f^).I9"B.+t\c!Yz͘9cZ^K jfH+p7ky$_:T>;-.mCt%wZr\ 5,ZD<We|]5>9VN&F:(̡N*xHX; .'2h:#'nGPRJ nGU'*]\YQiAv}C`/;.*흛\bJ6IA2s5$8~~@'.~Ij45`0*[6Or$}U$H15f'$#*>#Bcǎ)iß{oT}$1_~eM"DοZ Ͼ+,UuvHx\T%iWZ^;.̩*ݿ0hyRz=xMFy'> CO&/ſp$Xד1~$/Rr;^/cUTS>')ϮT{݈>IPqvKEzco55cV<."ݭs=^p$%VJtnL7stVk! F-tv:_G%(W*;;ףKTf$i22KH4gΜU>}G>~[lRQ7!dIu(G4I( qS3b=xD=%%* :Àv}E'Z $nejS_72$'Y^-2n"7®)v,)}MGSdT)A5ܻ󅗀Gnޱh8KM|o"t1}K7(=}[֭l]&Nѻ~/n#]*A^3ӕHɿ, 9:& xd⽲BHZyiywAWN墺\֊+y׼l{Q:Uq?RcoB+5]MTE__:sL!^G$%@ LϩDR"$mI]ֻd*g}P-DžU$|/Eu%!SEFҕnc"xL/'AB!F!ɷ6IA!Ѻ Y#p>=Z\T% Gqth*Ly͉wyGϣO_$H|9s eH:shLoo]UnA&~F)O0L&]4L qq5N[v ޱKnBtM HPB, sK@qBԍ*QXA&$35U䛐+ ֕\O<(c?S㎭f9{>>mKzWq^AYtIRmy,><4q b=aΣocHæ/:XgXh=xB[3Ӏjɦ١}t SG2$L9s5V݂/aaɈFlDY ,"TE)0VMA C @־$ՙN q9'Թ\UQ Q3ͫ0Q&v kSgL!Aↄ'k <$׃O*&$SB$F#G߸.8IT|$yoͿt~dTc$ I~RO%?tbf?IԐザDw +ZE.I!֮}ngu_I @q/ޣBu$\3mʽar?rL5+f8}3trxl'\6x-xzR{MoͶEBp~F~-$]n^GPE)5!Neۤ(3[Z{?|H%#s󦊲^o.}a,UҟIMAWyФLLt1]CϰDLyr k$y\$zIĮVmIukLZK #LHf9Bjׯ¼D0TRe.MeZ64j䴝YR܊dZxX@RQcdEuF$@km5 ǎ i2o݀S}p WaI'[mTPyZwOH"@-'?U‘d;td1IEhm5و!XJ0k.x$CIRFPyFW~Wx:g?O t5 c9$"OT>ȅd"ϋ/1S1i$\Ifp{࢞< +niǛ.$~U$JONb;To1֑+.Ymy$ǹnTCRiʿs6A_;sm;\=gj7¼|u6:S֝7!)~[hœedGr#`4y1V*5# A:95mޔd}zY_N%mLx&GFuu6& /@*Pnk%E|ALdSe]xh Td=OHQ@\U7c*K7i!9vK%%$NF 4]^Hu.G5<]2\G40s# LjITƒFLVn\wf gtE3 [}yF`$&nNrUSwhnԕtvL|[ˣ9=LBޕ6H'4M!qC9z[o)1G*/n"q_7D%k=,TbRHN$צs$CYq4G!CGH2uz+e#XnٟU"fL[qQ#Z>O ><]ˉǽG}>ORMv/F3J%WfiA/ 8ng~gv|gjtTv~ZNsx/H |$qe-Jbm;cmA׀&IX&IC%Amquѣ3ˡ9'x֡$BnSn΁cPGW͖B l;f$iI%$ةu( BEIє eƻ9fE>UC^)R⊦ne΃[MG-h @RD5$RYj{+0IN!gʴ֢=t Y^BRx|mTK0k-}]f/s׵yJ dZ륆,mxLho MC\"q O*q'SjwX@ӳ"rHP1YC]&ZjI!kՊTM~'X*=d!OSH`u;$=lQ˫VA_a˖r4RՄin" S%wu޴v^@# Ϗ!5x=G1]Y*yD4[8qO%3Uz=<\_ ~TQEDF$S5$YQ I)L[k!6If2=u#o!hB"g-n# Dc^w}w)5Yߏ r;$x$Lruםڱ 5>z\NBNEZamQC)s$ KapqE~ǔp $7צRx_*Ey-I0z>u6^^pA7kͶU֥}5Ik$%ennVctJјh:u_K 0B rpaFvBN%Q 됒MpE_ jZ)UE_ضΣgkSUI:nv lT5YGyJ\9Zsٸy]y26g ˄-t}.E2^X6~Z R}]Zy`v?}j~?`pJn<)+wYLUp&Re$KhPh1uWH$x$*3s0d /0^m{lSi?Cd̉MA+YoQn͢V.~-m-ݎĝrw䃾)Db GkA%'j=ξc`䚄i\S7ZMnlŅM-atݟQ|h luU64`qc?JD*-=R4ӃA'RSgTGMjƭLzւjο7#5*/HҾ:RQ8`juN%SyRS9> 9f|0*{LXR7yYD@Wh/PE9J`XuRTq/[d<6ݗ(AQ,/ ˽eW4~N|Ff| `ch)g谕xE-P=3He$:㧂{X|:k5wވtl V{ BFܡ;K`;1Pevʺ-$t bV鯾OB%C[gVh>&y㉨Fk>Q+h`Mc.l2٫jLrRG҅"mD?f;=R+&12~sP+ѐɰo~e>|4:lB^BBP(V\O֮rm'*I֫W#}MN|:~u#T74-yE?>OjY")Y/Iv|2BT11 ?=!L!r1,r7zF`F5QWKpQX>4:!S┪T{G M˷j üz`L4|!t7sQ)P^^FS )iZ{?N,Rx#2 ri9Jx^B[4!z,'NnڰkXd۟!3h޺nolQvCJ K7e=2Npk 7{Gwa5Z0^8jպϒ+/#y0 LnPdw%;c*(Y^JSMuiB~U&,Լ d &su-,S&F'I 4lWheZdzJмQ Ir;Z?s s 1/NX0[ߏ G7`]/| gYk8짯o#BI ɕͥ"oG0Ÿ sa0܅3u>4ʱFCnXmȼ./Y"um|`$?6yUy&޶~zo%}:xONu V˨W~iޖeyZN SA|7֩*62g "U`kWMXoGg,(]z-h@̋/h˚db߮LY'_ sX'&Q;""rM1sq7=l7\'yxL&rKʬ)ֆ|fJ&84 `d8$ڍ:BReБѶ ,Lf$UoҀ4!`A/4V=n CSI*Ģ؈N*dsJՕ*̬Du+IVe*ajètB:,(O!Dx*\2IU4'b]g ȺJk>9~5a#<"$,&/f9$2(y&sK0| E"ޓW ,$vvb=B Ƒ VQSxjV)2ߎt0@jJ0O"8~ ~6`bJ :*+h9㆙Sc%kɡw!6:fyU Ǟ*>#y_ GU)p|YOKR3yK@sWƖM)"l`A37{' vZB-dz62Q. YKDJ2wo 'E}p WI7#z2YuI\f941[욐I]7am̥ǐQ,ڬZhu&)51\1%,łOp(.Rf;`텳=.d[Ӽg3;³>OYMnH2>-c7I*EJZTҙTE)Ė!Ac$F /8iA% Fe\ꛖ)hSiI$!d?h ZUf<{p$UW>1 ?&㶉`eq/A{YNsaئysH3/BUri )TiNY!!U.B݀) :~J 2ؑȼ'ދ0YN<," '!M!*%JkcԶ:Aaɤ; $F#|c\!_wJ]ݰT-t#9L MMg9 X[* _׊54$R bCWN.x< fghA7*Z-YԊr&,{lSǧO^*J:zF-YA~хP y֛JKpܴ<9V8~,;aNΨ >✦@TC#"*Ll&IZw_!Ck,[>qZ TZ0^; >s]Ƿtޝk>`ÅXYz, NL¡ϧ^/̴SSׯyvWߗA:n"TLd-JlrPEٯlj`!j(/:/忼;jT?t"*5,>; ޝmu|˹#|ͯnO%pr HSWm!/b{?߻?E|ۅ;] n!{֢dـ)ĖYˎ!8qcr:ہF$%MzB*eUSD^(ؓ13:a U+bU x>W70Bld]:9^FE1?IbnzIPz~s$KU32Nc'0:kiT^c5G}Sqd` H#&x2^2^dŐݛZ#sX"QЛ;e2Z`%&Tp[:3jb4}qQM;h}EV2jӥ# 9wUUX꧎#DwxWq=K~[Xݼ^{^mg]/KWUmH(޺u K.SSSzi:uh-~/~hO?~t? sݫiW|_P-UZF&bxp=eIX4Љ*Y>Bޖw#j:7[]^㾷F Bqb2J{R(m(eIjwNkRn k8UXym$j0lbė@oMphD"PEv}d*z^tBӵ׫UJ`yX)^ #tߓ#M̀0(+7O *͛ PVEMf?Յ_30њfػ։َ.BA`{tdNpkє$0e^|nN u']'OB+$g˟Py7/$p]r ߪ7g^UVFAHr9cz"}^?"JѤF X˱) IJGS3H63ch W!$W05 ßFҖ[TAFZ CU;D1ȼ%.9HljmjVJSTO7L[I؇}X1]dК/݋/"hw}vZ(.-`=5ඩzc @B$7ta EÁx2%m*v$5V)lonIp)51n݀Y*r&3^0 11"E>] )kc֬\$fzrJ6IՁ(v<ѕ[‘n%t}FghRp]9nҒLK:Ayơ\uNZ=nC]xJŭw|4%Uޜ7M1KG{2[{"lfOMaJ,V\K"F3yXsB5ah{?ޟtwQu(TH^tI{WO]JWIؕ񚐘xAKlޟq_ީ^N1︘R-!o>Wq4|B|)=P_R%6՝I\Ս#;z8m7pcDj *Sٜzt%YcfG?"&Ƕ|CeS qeZjA_S3TQn_^GS kO2WayQSɄ/W%8uCpt+OC~\B$_+v≐3V:FXǒ1ˆu)ٖ<.By7jM ,"&3ןGI_J"̥Ej8Os*T Q뙚9#Y +SXΜ;"ѰLnX]U.W'\@շ15dBX[I"0lr\˨UtZ(9'hVД{]n[:MKMYX=EFteQ@_Iٜ{ZI`21d+D.x6`Pp55l"7( 7w ۗU݀wU8o¬Ud>h{p ۯ"xˈdX}ݖ,j:/#Ѭ$:r=Wב*8\$ z5 ܁;TX5ajwv5{XP1TfoTB"~[R4npL~p}1 zرc"GJ:uj.^-SLAC'4IB 1ͺ?}LgKOr]y<_]g?$(ϋ[m?νz輻֩"ό<2GcIU%Ս izbS %# {J~JW<*#BN㍅P!IeM%2IKSA86`Q ~%9WOTE)k!槦1698 sLk  . Kyd|IHpL ?鑔;1)Aq wREI5,(%d|Τ*akRYuM{>˴n?qg,X\@0>C tB-QX}T EUl2%Z-F}c^RSItt\d@3a9n'S"40S^|EEEUw"ҪasDD>4NO^ Yv}40$Ψ*ƺlfGWa wsh?Q~48B;c3d M ~mF7*|zpˌ!oM@HRSU$'s ,=33XI&$eG'Ө.$X ?ylKka<).kcb]IOT {\ZB?G!Ӡ  jr9!4'G>U7p-ysl~ÙA)K:Jwn—@%SJ{*#ZPEY֤>%('=)ǐJeO)V{+p!)O J#M7GiIOȰP)<7V ֕w>1_>߱$ʨW.g&7M$Op"ZF s2ZBnB$[?k x66RBTt:Cg`{0%T5, $_0Z1WSwg@yKu,^Rc#K;idXWP&n3ΛhTpu8u'>{!0:<*I*)ף?wrgHt2:~PM٪"TjEVېvee5Q!yxW_}:tݱitn󲈋9s,$8 mM9qPk}n])}GKaXڑs4ɅXf( TC\D7} */Gaim4.:ޏ 3?*HN1 [ A!VAmDu#)֏{\kJQ=HafuT_/ Y˒IOOl9LׁjD {/%,itWmk)9J2D?n0ґ8^ݕ6>$4jZ̴;p[t #}m\.sM|ץhsJOA Ӌ߻kj1W`.&1ujg 4~k?!㐗H -Dܬ%+_"&S)O spf`هj.s@SEsB25wzMYkq\0pi%m6[fu:lH[t42Չ~ rnK,:v(!TNF"f4ёJjvգgQ{h9li1s1"tDk7U L%L}f 5+j1{bM2f7T #:]H3*WЬ]IqTФH$ݎ=__ELJS`!Uw-Ln$I=Ir,jISҩ)ӽO !_+IO*A7U<clsGTE)Ďcb:{ۛ嘰30yo| Hntjɦ)eA5 [ބ3; T&ZC.'k5o I%$ZPQlGz.މ?? V&k]QS~K5^cod$,C3-14e[-<:'ڵ#e'7ltb,Y-3'9(ʦ$nY:,*h9u$~_SiBAG~G@擟ֈ5;{솵_kJqL&Ѷ6q6F|_W$O?O&==)7^<sLM(`* E5'kMsהf9L9q}_J􏆺>Ozւ4!yJ L”u2y ~w~gൢr)5x|䔧u"?-y GѲC-N> rҏ/ Jrq 9ZϓdCu8>!^+WT㭷ދ錍KBGX{Sd,#=[жA$r&D[hc5faU$^@ 0v34*a2k(f9}>w`c&TQu4O_&3A^I,q<{dGEeQQq-H@ms-F~0p%ŗ>Ffke%*l#d6Ҏw*b T^SMsfޭ˰dhOD37f,퀦S"4oD vznăgL3ǰwQBCC+`/.q179{I M`*ZGm#BJ~HXQm1h_uUBo!|?95I2ezlv8!c?cj6x>L{|rǔ$77gy >W$;HL}2! ןNZdRQPRwcH&U/Gkf0cƀBlYIIŅyT%uw'XJ0ͦ^UMe乩ɽ2#2x( y6>ڲ#2#GU|)dv0 phH0 al9iC|O'm~Zca`5D_uk-=!47y{L쿬W}kK9*>S&V+ YV=6D&ӶP_9T ]L 𮿅؝kFJfіw:"N5ノ@W>A!i:ӖE#יekn,dO?KH.ճTkT8awɟ//l5~/ Bn\r|}_ ҩd\08flc.D)7%({*J)y]|PX# Eպ,\4GTQ(/FYZJ?y FDU\:DK*a-$$N(bBQQٕu*ɜz+[gJ@ '44v 4P* ?chaΛm8Ъ"w /|3Dx:얚7sG\#<ӥCR֢tzdf*JقQ )Ab38./I2\7c%XY TYNVU!oUY~0<~tFA)H flGҒFMN "0`[pL*hH .d +IL.:g9$y[uї`{t*y՟GI¸~=2.*aaP%}%4@et"š3a ~GI1oBL ٍ2vo?@NF&9I͠6pW$ZL#!OCW.*U,lT낰֓ 7Ґc|.xVӠ'1;%%*kT+;Opf΅%"cDґ*7A)tX^PévnF[[[n}&:Sܭy ݊?h=\p'NMEj!iQE)dUr|dc\[uD/V\xC& y0]'nՅ L dˢͽs{|B +e4X-1!%*f,,}yvdF 1,B%ek>1i_1!jl$MYjoZ}>'>dD[X5Ee\"GZo(7VMkB-ß/Dǐ@y<%S Ip\J֝VQ[X\ҩuD2ZrK@ދRIO{$ !M/,9&sQ~}yi'eX+JGZ>$In^IiyɚUeu 4(ΣfO"(.AuZmɼ9n2v vZ%-!H&F -x`\zE6,5KpGOujo| naَg5?2|{+eG# $ Y:Bfkx 3=95摃 %tF'+wJTveeW?)>SJKkWTn442tMQQQ#lv7@#"\wr æ4=ѤȃBvZ=D!BPE}K1!#9Y r*,G195  X?"0tFXV)|NUg4IKrI'%ՈPsrRu4p810l;ΩTBt!/i áV82- Vb-D^A+pXDjӮ?N[ÖwSe鎐zl!Ii/%8:Pa)Jgp3J{ssS Z7QI3X8CLcffǽv2#@gO賎W{uv&V-#9ԟ4MiޟSi `B4 5YIg+v鬺YGCSSϬ~և [aeaVQiTjS&ÛPMI Byuҁ{ Jq +"|R@c@:3amtf:d%Y5uk9xgq(LxMF!^FWQ qxz2C,MTJ0ga{ š'N#LY0Bnl IYdD"f9ts5KEY#FdÝs0DzTYCwtHqFi >*vKu4ad^{PE#Da@`M[t&T!PQf*Bb 9L@)-GERvd,r]%r$P#1C[Ʊ(K贛B9cTr". Q9@\MlVCFS 4VVvf)uӌ-jiE*oS*-SY7֎'9XgO6nIP&^]kШmHF K-ٶ>JKxթ>JSV@0)vlxӀY5 }ITɗ?}Td艗?DDsFlz WOaԔ {'͡źI ]o GjvA<}39c׭ )ь$shfc3w:~Bƚ*ShW2]$Qs"8rF1p``Mwy ifXI!(:Vh3Vr/ctQٹL`Fmd׽ CΡ4Z9/E5>SDeקÅ:Th52% [}:Bue?בMdelAi(de/4{0;'\# J.vz"DYՓfCfG֦*^-b֍0n\E Ƅ1cRQ! khw}!]dLքTi!*aJј嬩EI-o.TYH8{4F$1Q cAUшMJ8B戀Y/D&"Q@1X9ZԭҮ%9{wNE"ehdjUT)M}#[Ѕ_",ebԕR\Bv+#_F18-[g}u.sqԵT< ۬uC@X#d"VSbm*ER^Mk9ҼXskd@AGN9&1hTtn:2qNc$vREIR) IYu,I%FCSβE^- ӳفp ,JP)xb45Y,>Xf Od,ُ)ƒ/y<t:;oai;{)t  Еyv޵[H^ ?P 2=`@x S~o&PJ4 իQٮvd>zhJ۶B9qrR.YDeU=^d1P]>"D0ZbU1K,K$r%+uOk* oӛ͖:w!kZNr].PbI%BFTQ&C ySE)$a=>%8].RXb-TW^TG*E-\9ʵƆ0qZ*+y Υ%ޗ:y)k* u2U׳dI,q'?ibߑD_:FMQ xBDjq>T"J#OE c0Lc$QjJclt޹ B,w-HcmTTA/fܒs]O^ƆS*n'D\|7?\4$Pd,IФ7"D!ˆ-*HTR 1Քۍy{5e6!#16=+#Jqj 4\3rEŶYkQv /VEIry (!8M{AVkkʗZ򊐮TQpĀ4($/AIo~\Ɇ 6։ I.4]ٲ#wa4ݥ+s<~`FPLohcڶCIcD칀3VJv "nǒTѳ%u0׀ ΞGݧ)Bz'yD4>`}㓨XK$vevMtAR`eB-}de[ҞNo%6pabW~jm[ZTF:Áe׷INRȖ*y&&&_ɿ2_YGG>2$2 z<1WjnێGͶᣰ݆q]3j,"9N<Bs"9Fj|4IĆ3sq8g"7|\ -eq>v,$ wq1sfKwZ8u$G:APXw155ǎ#xF|/?7.ո :tۦBq3%uOٷ?}DR[(hDDe"X#PST&(ݸdYNez 8v8tD2/ɸ˚`눈$XVIk2A~pu fvN%<#:Ԅ"Ӽ.jK]3cɀaK21vi)݇5_/'O,Nv:h_T2Z&zZ+m}WgR\D;26yCc] k\"5PZWIeAT⭛:@ %hv#dK G< IӼ2KPRI9E<̫aܽ ?cU?: W^ZCH+5̧S?[e7d%Ӛ>X'F3 7e.#SZr!t2dkxEiVI!1񘴗$Fcn RΪsd|Ce%yo: d]ӵ ~4UY õAZ)|4hpqx1o@eЁtIF ,rm2q$ Im[aXf"Dd݄) t.T6'3o5ZtƝ[0yFѰ!C@PEY7А )-!4u vLSVQ.ШWUҶ{i(- I#ޗ4!TZau! iE’X5G(Bsz5A#tNTU% dgr7hsgN!13jR5P T&8? A"sVHT>JB 4|Rv $/-I[dԋR 8qyd$<L81TF$sE,ZAzԔut.q<w]4='$% YxWnI?ӿ0u3 9B^;t<_\. ^#b͇ųaV9~FBj@.5S5$P~jțRJO6xyYDY z-d"Ti ˲0:` pzF~D){QC'Htnt{ %dIwj4dd|DOtO͠ʶvĎOu* \<"$pVSb$SvL䩴D {ӵJ&C5n?eG*d7t>r T]9|~]o9tp(. %,6Q,`$&ð'<mee{,nQ!Bݷgri!h0tܤ6HEi0+a ęaqvV[ֲ R鴒_;DP,xBڶ="b,}sfF&QMYyCK(kEt U;`4%0ٔEV׌d:BHIum{EY2yzrR;wܬn* #j6ΐf˰3R4סn:EvZMHСJa^wQc95`|[!O 5vE=D+kom!*'OM+YzLǏM׽&Z(DId<8ߚOL,2}9E{RH*'B> `;1Y,oϹQ9Y}':¹{=83I)ܗB{%4Yw 2%޴:@n@)O]D[Hv,;HyIhrB?}ӏ|]Օ2ܻչ)TVBO5/uk n"D|UG Ǜٓl C(-"7I^qﮒ$(y1u͖$2̊,gՌz]S$nR8'jPeol6n^Ք{ИTAVDqG֢,, 4AiKtXG͝*ДpxFϰux\XQu}]{&|;2uO Ja<" [RVF7 CF@^YdNr+P,]IYe=YCL($NR`_}7ڴ0}FU.G7PEItOI%E*Y}^r־x_.FDev +Dk _3rGc͟L \^UTmL@90n\0'$! GERveܩd-|.+A.wvڪTe)^LQ:a[#"(}#f"i/)9?b)l3#$ϴ=zӉ#X'Q٪2P :1Gte^C^[SĔ98jZT~Y畴oZ؆HmӽT/^itgRHG!Н>$e;-#WGi/q !+99!$k,tNc8n݇{$Y牝;2QA|nvNM%LnzoMא(MlB"kB וmVR)dvN% &^]Ie˵bڮD?]vCڡB:E*8״;-ޔUѹatc Dǎɼ(֠B5Q O#3QIyڎv?Af;"D ,׾xŻPE)}$T&' @%kOsOHMLhzsR/ _%d0M}kU!n d #UQjW՝ټ2BR--d S*m˵xɹǨc-;5)821N*snm Cc&ub{XgQY'ѐyT*\ Q@Vq^ڦ*Q Hej&ǸG^DDTFxHZ%ǒ9x2^/.Ӈі lRܶ$R}ZBvwګx?@x\NZ|>x"Dl!+o+1c_rHBPEn3! knbc+(Ig(.aј4MM=T:&r;$[B$ S2m!^TQ7CfKbf#h<{ AR6k5TJTȬh[PelwT7֩Wh$hFxL$39 iޮ45^0=pXf&MIeFboeʾbLP:i̵MuN3e]{L)@3~.(ivb(IqRY,AoLqMwn"H8{-C M֮w skڪ|7pZ-!d3Tᔇ7;$;w`\Lw / N/.x"IrtǽW36h2S**M|b7Tܿ97 SkQ'OI 7΋8UQWPZ^V!mM WCz7czAU)!fXT59֖:UIuqKk{#u(|4kA^FBUJ9$5MwHc:خ=i׬7R#BUeZ%63|$X*J߅!c0'" K2n贅j4ld"b׃Ք:g G[JL ka(Yi $K\ C&Kϡ6ב :2Amgpgfs1AUtQFrlO$(\˖wK;ԑ9q͘,r≐,y|<1U8vwT!!mm7tn3yhv~كD [\5-fLf7RXWU'$x䃘t!V֭c+G'ώG)"Dxl0ś ʚmrYyV섪UQ^5ehAy[L& vƵ(eU4ڇG#Җ&݊,ͶcbrJV9=GBWKE7tWN~lVEI5+f:p}>peCa ETQzYP<̺4qi3 T[됄Z׈e|&lTW(! KD<=~WSJz)*EYt襀֤?aoB]u ̎=|dDd d\=t+miͺ-v!ZDZxGg,R$бDorwA9e'\*>=Vj?*@&5=K'o!ɢ&Npp8tfM<rk*Y LFG^{ w vdQt\ i1E*Y h8F",(glk ,m7,hk8*j*תt@SlQlB8n=1"r'[b LQϠm#}i<L%Uy]JN:!~eEy񅼦pLL2@3>!J3:F_W^H"2Ewe-$_*iԲ_kSueI XJmLjPHf;lÔITmԫzQ x݂;IxiHTZD#0üqMցc$>Un$e#/?|C-߉@T KYxVRk_vvEM9á CVR}ى#CÀpAYLhtZC돥]弯ZEq4sh?Kxvcw pp C- YX&\4nEGivh=橋JNRI=PK穘t1ߔ sG}0EQ'{I:`s_(7*}tNٹed&4Vw+p*l;l';ؾ'_;}1bEM Vʋyˈ_NѺ/}kt⋡z'$*k(heV8('l\ S *s>n q7$y LU4!)޶**PU<=GxHV{BXׄsQ)+aBnڏU%?\iBTdd\*=wnÐ!&8/b-^)i-JŨfC4]4&:ܪI$-okKҎ;Cc)VKF+ap9WT\^e5IӛfHٖ,<(aM-ِa1LOZxtF{ 9<(뭄֬81!<0G8H{-&q%)<eJ.iJxyr5T%=|#@ױPzE!LxgayB{h[+HH)Ew.܊D^#-FUr䥝I\X Xt>R'^;zϐMhkiAEj;>v:m+馑ދPbvCM݆!~5݀JE|wKs#uuLڲsՔrd<-$M`ר*W4/*zx"r@^۹n?@Pj̡aFl|Pu} Α)C_! -̜4:Ӹ?wcHe^L;:b/b9 C{#&*Y&{/I`t+Mj?vԹzꥎ\{2q |?z2W.VIJ-tH.h B6ٗo'Lr!cgd(j^oDd$NgPJ@zo:@wF}0BabJ󞐄b!Fe`Y}T2iyMEbIҢ׃5f+.z.+H"m+ gam\)Vaw$Hګjq^kT)8y2GDT@u%I:{[QXAuS}?bHV\GA Bv26~rIŝ<;\2ثY)¾7rvh842PoQW^Zi2xDn’dv[Z)l_ϮD:q2Y -/)di9t'a:GI4xZY-7d17USrN'U0kkSƓOXJ , c}[U-#D),Q?L,V2Ln=R֭6Cec7YB@ H IԪ(RcG<ćA%0dl V|y~#mk#K!Sjh##̬O_׈Zu{f:n~4o~e d~\U\8lDRiDeEɅʽSgF2I[j&'P\6#;wmufnOx֑(e0o^'_zEUg,G6*+V5ߌޟPQTcӦX}c\N1ؔ{j 8J!iZmWUx\o KS-qU5!WkH\6Gd !HH3Keݔkv'm'uGv$$l.,tqA5DD#ՕJ˘㫺2£`&\-MCvvluf&,R_F~99 &+;BPNT%'54|?Cx?9#xr_y΢Lku,a98x|Gg$: jgJZ%߆!a h~C'+Z(ek>`:$ RTJ6NbWJJ**#&'jfOU߮_!I%TzQcoB(Q#acEY[نv5Dc}rjP\¦^{ay> HE:$4(cӎ͉, Xõ0#1o~Ӡj.\?(BΟ 3#[8t=xR$. , !]n߄?>3RHRx`Gg)ɤ)FKl M*Zڕ)!2V-7qk\ƚ1^8fdj:?י_:$)𵥓ʧsr?l;RRXj/ղMMvDuCc1qjhKf&{+^|U\[: -#qQ .!"*7,Nk 4r%BHݍ%яUC"Tr/ctQ`]:Y[|׬NY( e{h[/%Ӽ&*h8 ?D}ќȢ6B5tSoZna:8( 'n \K`̺)ۤ/q:r;4~AnFTshßnZJ{af*%* TL$+_-k(%ag Y".A y'Б*׉ Y}Ci&1}qKŅ[HǐLCؘ9-1d,)BiKJރ!n|& QC5b|I`&:j j4/+8,h7 3431y]n9PE&ESCdFyIbNhXtZ:1ݼi8dʱ37Ϊ(劐%%#JFGMs4o g/?sNI :ܵj*򢻻(cΞSQۉ&龉Dpmj {a=T=J7]*륵i|7kVHܮ6c"e17u 3yraQIJ#UeDKM1s딝8+0$tz ;t }Q9TVܿwr^᜼byi_XZ\F.|S,ôM%%L\&14J,uˤde2-֐|]4C9ctdQJ3[sloJ*g$N Lj!ywoã:TC3G+{DqM N31@կ`pxrՉ'c=/́ h jb ܜ~RC"xL}ÕExl 7M9Yru#0X>E$7#5W@3wu ۍzLAOm{RA%0}kM3h8q苸zX9xiƩI$4K0uLE5 $#!\BCQ)YG !-㮭I-bBn3ӡn'^*Isc5#BҊ(%d4{0 랿 >=stD M5bm)#xS.{.؁@pc#VQ a.ooIBBmUC'9Y^ZR` h"J$% _cWq%dmIe2Y4e2A>>̗Xӎ=ӞgܤibjـEx%i )ʟvmrPC!'"+# 3,kDA8}8|\ zqʇ-pMTSq]|s_?}GO%|Rӟݺwx?:N$,3T6 M.Uvh;iL YY:E8i,:BpZ*Ld2H 'A(iDk5OwaqԎCl Asg`S'N F:v߹{Ká!G,]1ݻV\VkԔ.SQ1Y߶^oE˳P?BBdBm2:cyՌAvH0v%Ԗo`pXC.Ls4K&7J#pO}<;")d3!PXU誱o\$h,J-FOUzPNs1!@+GFmhK1;^ LN^%63Qb++0~F caTҼG5BVk%.SNIz*orY_m~c qO#%(pQ @p܏#w@_BO=j ENی^М:[dPtlڪ5ͩS{3FҋAP_}RJR:R3$9n~C rށtj`Qawg/ZX?rT}'HRJ OI ! e>BDDtEpAS ,._+*Q~Qq-/>|/eM#3I%5Q]D.kr=~鯽[M]w7$!i{1 iQoa4}*V ʎKe$Ôlq'IQOIlfJV,AY%q%\."8u֣ ăw )sf cy#iȢZ\BQhcYۦ\-JE:²-:aeUم/_?M݄؈71SVnbޛ?dz4)tW:pZsXG>mGڙo&xe`|k҆,ad f;ZK)&}|/jRN3'mTȗN MI֢Hʎ!LnLdzҢxkBW_٫hZ >f9ti2n%!gB^pNy;BFu릖1/O5 j.2 v8G+LeCIVWkhwǕDvgޑg5GYԲ;Slv/80-QA &o KБclj'֭}}#ohԔcX<6کڿn:a,k{gH("r 9~Bɓ;qgΟwV~οx^~ېԯ ƃ\Ivcq~޹J7}Lv+PQFj"N5!+-˄?Bh5Ǻ(9,6b4iDn=8<ϗY޶F' F(R3Yis3k.bwfbfbv.&bfvv51wcvG+%J-=]]djTWWUw5CTT#++3+?1Rr 5;WsyJ /N$!7y&%cwq'Yxt)iĴ 78G VΫXbe议aGl 꽚vy<Kʑa_K,>)<nD<,PM3,h N)pn|%nKan?V>c܉$)ܦ,.hPp/l_%7 VCRzO- 3 Bas,,QO/Lk16y5$p./KDJe |kR,2臅DPks+ V,h9N'iyv#Y[QVPgIz.g2Ί_kk AVkd(*VqC=Jnc(~ XA@yd%mc$(ClIyĢh 3 ׇt\N@˳<^F;+g^,$FKl ye)yA5KӼBDxṀV8BB8P,Vl 8=<Q2-$TɃP;.`{mXU_ jmo;Kcr7:@i1De%bY ;!bN2%_"#Y< ryx)n/s./ )⬙1@DJo)F/VnTLP䱴!xE+(iIr-P3@_y6f>, @(,^t( KJq{ c( \>_) B2HIR5,N!F bvMjXFGGyAᐝ,H9{XljYkbaS}pb9Tv󿒱=h\<)-LAz oZTN$|Y+ybqcl]ty/}똰[ .1^pƀhBIzF#XN7fKdŪ ~,LagLl&3D7,T'*t1GxAx1E2,BXtlmorK<|/zҟkv^#? OJwS#D!X`iΥŻ2P*Vƍ8 α(p'efIvҥ+(l3dժbـE"#4+AZ@ELDF%&e'}T"RŠnfLઉϫJA8Dg8K,V.CD|.ڀV;t/…64y9ZW4xiU%&ٻ,k9մe>wK}u~ N~JkAسw_s[^8rMq},_蘼{؉=ܫ];w5ٷvlNsEcHe㹗^K՛7N.~a5+nvRCg'NJ\\.+Wzٷm߶gcccd s%T:t:$dlvQ.7 .jՅzIoROw7mX^ԯy{朅6su/Dwy-vP0}g9An9ewߕ <8(e&@bA*(ۿбu&ǎХ {-] 6}ߤG}'6|r-\:\S7ܧ Ym+P؄VXqPiP+?9>'ۑI<0įu/V%&+8WlzaX"md(ɯ,E(!o1eU  GșZ-PG^ E-j$D ,m, J9_ҚiQ/ P#Mc!HL%&+&9vȌ_Y4Hg.l7`Xr(r}jMw7v۶P; RJB< 4O,2],ռeXݰ=]ߛw(6:ye9Y~RWKft74x2SszZ/OVD?OçޡtbГ_mܬ52:.0 7e ~&XN=+).1ʄ$DJ?%LJK&mXRNs-C::OC}y7"S2C(`}ߣv1i}?O?=D'X'Id_>ܖ "OD P1boI=w'v!d믳gb[燏e!빋qoUܥ`"4' ?;yRA}}R~w^mǷXLI0 Y#HEefgI^ܰ-=iT߅BPo=֞,.UɓW^沓wޥ|)b2?~*ga{_|8ez .਋ҩdDܿؿ?1ys&\xe~o~'to[T4~Hvɗ} ʠ$͓ۅvn QމGF$vM T9+r`E޳m_e UxZ r=(q,2)JxWPˇ3:Z)⚔\'RrIe:rq}0]fSk&'8șUHr,J.J!"+ZX=Aʵ(9d$.+^O,,MvݽVZMov1Jyv'p%xoġ*9?Oཡpaהne U-(+SDcT6XO 9vl"%W$o'.i3+b'ϝ+):pNP'utf6m!!=|˶l:W7|uU|f|FAyLjZ 8)( a7ZQ"J$ykmۨGuHxm{,oΎq}ų`0ȷ9Fb(1{yKXO;wKݻwO穫>B{_x6nX/L_L3<# /p= r?67$7XAy&ĒN'?K,w^'+~Y9V$2NmtۭtHPg6pX! ;0R kE)V ~o޴'{UUsO1;~ ωv6X޵ʽH!/IhxXoV;8~3PVvr?ra)?3X,|EWoˎ}˧~%m׊Q.B۶^M?"}/UAis|Im>}_'ŧF;}.`sP vOrQ>G_J˿ZuG =\O!J1a>~F,XQ_}5o K|o{kϫ7~|;ӿzzͺ(c{KHݔr7L>sпp;[obݟ#$qTMC+/;_ Zac *=bZ*5<ZiOGʼn]ddOKѴ2fDr4~&t[uj2Wo@KYk󚔃 ק=sm\K#7\MÛS$+\&2r 2@ʴ&,,c(w""ݬ]~ʫM&xp.YęǦñ19G~JȻKvEIs=YQTĥO֓5W^`LGRoܖլ@Ww)LRִNz}Cn  žor=5mJy ɐX08r'ͷ4yBGfy)|GY[SYB9Ә6S* 4xy.C`E7XT###<=D;!/^:s,ʫ7&?&>r$N&-6&VqOZh <xѤX6p@[ŕrl,basyC NQd[;{鹧ܣ7ߢCGBO;c6N9CKXϽbYI*|?" W<>+ma[ sy~Z_xk~0+,z:Ne~Z}ݵ;&DbltSO /D'N{w?q {S{AYd/q}:v8QzՋσCS]..U-\K=rk3ψk3?@OxT\S Zɓ҆PPKOIDN,2y+ՅZUZ{}ӳ\^d[}wa?D9puVɞ,OĢ윚3Qyٳ,E_ _L/PxVkt1k Ǫ X$ۋ`~2nx|W mn 7 (\wX_x[x#-6ߏ$ \bgE\1vBa骫,d۷psҪUjF}DŽ?W&N=@>'Dd а\{9tV,0o.Hl-ywW}T,u}OXO{yCdT^x[#+wu;vH)}Z:z_1ĸ\r|v480`[MUhR}vB3X> V>`!#7 kqX1¯xC>0F;L`Q8(?vk+='sgS%Xy;\]wKGu}&" ak {3.C\z?>-^!kfB KJkfBy{zmrԬLft$%"~Xtdεktc{\~hKsR/кB*K|:СU[wҹG? )}7#}XMm1c(,V^<|_c V[o vrڵs7&3X"j5Ee,Ѕ9-sgNϾ=cߖ̕[?Oko~[?zoZwѕ :7$"^;6X\VF2Y#GqEi Q"V CY;g&Tnyq?.J)j\", G[2Do|vv1IAm[i<;JGNS0p}42:„֭_/I簲<(J ea4 $ӘkQP,īdDUzO(Fl2k?nbI w(RVU2op+D9O3CӮz̕cn4m -'hl<5k %k(zC=4506W`B8( 'r׀i#F`E䰭(ZQ"n9}B'd{'h n,V@RR<p^(Xx O8;Uk׈+ݾU&p &E j-֬YBȔc9px. qAJX`z…)ī} WnpE]ī(8&bf"=r?'>}"Ha1o: xp]kV| QWpVl;BBJ!caV wtå T;OWw9<#vn喉P>/x9&XZ?Xd(hkgϊt9Y0o:Iׯ,RlU,AQRvc=`۲.׺sB8yu'~!.x 8%be#`u.! ]:ׅ 3XLH nc-8?/QO.k4*\z$jKH7߳bJǁ'C< 2Vo{b5V`qmS l.R.k_LJ~2gu^u%?EDG::/#WU>`|݃,ԻlOIox9+sȤ媵b0\Yog_+7/t`4>6LkZNr T}OWmj|~_|1zң_2-v:͓d}6 ĤtSq4,Of=p9Ef,N.~HzVtR,!R1 q(=)8Gα(ŷo <9)G&o>:B@G|Xw"MتyGY 8^VnT5]}dw}wG," bA9c bUUիV ➽{%%~'{Kg /,'oܹSUH3<2Yd*Z{S`bg'N5u(\'ƒ:[<նW<^ﻏ/R,$DSX=Ŀg3@zq^Y dA$e-".6 1&ZAxlVۅЃ2w[Z !\xZVzNXLpÏIJe$,E޻- Y_x}!] µX |֌+V, (w{΅T > 3\8+Ge@ W~$xest}]ME?΢kF X?BCAT,ץ_J˿VLb$4uR/uXn_ _/8*ۧ/܂EdCJ?XHN_~>mWs! `U*B4,];;~]<Ob&+#+%V'._zY@`W(6\OлH c: =D(,F8d϶ͫ%H-sN(P".&2 N~NKP4Y>oR秴+FsX<ET!Ijl3JV'k F8R6l,=$)sWROgXuämmu J<) Xa /r<'},P^7/~!}WzDgu뮢vY t~!G{01I{V:`+|y;C(]B?{\wr& ϰPA1^|/#X#+EL"ܗBJ@D}d[oOq={k:*m޸qX~Aid/7J9l)23?/_mGLXL[ep.w}ǝT 0DJQj2BywC_zgOB\+{׆Ũm\e8O?f8m^ OSn[, ߅ +&zu/=,CGR S=WA_uW!(ܰqb ,-a4JĉO~J7v=AR?:aR_J k)3- О=q]Y`(Z5^ϋHkװ0L,!&Dwugۼem02L+x.{c9I K_JX,}^=Ϟ;/42Q祣+lQej/*~?U8ǎAqͷtHiyAJAID%^A4wv-[o^פ38  YyF%XC2j:jxe'Eįk(8XJ݃#d 6"POIGF˘<&Eϗ !fKg$M*X7UcQ65no<-;$#Xh& ##rNi;ܼ⁥XjT.CUB2&,@XypELr Nrib/X X!y6= 'bLB--q4#|{XV}4~K4Irf#yYEp󎌑y9>Ofn(KV O.Vp`+X,AB}X4mXEcLFxk&`'nv&f4Iִ3KN9}9 d9p{|v\Sa % Zi[\l~X!!DHXq5[I0`' _wZr)L΋۶m㉽-aB W?dw]r )/ILf2:WIY,IrDԺJ]qn< @;,ܥٸ~=]};XUA k !l\#`c7@@~^A0X}]<ն7qB hg.],Gqa>Q?p m cR p~=]42:&}֭[E[~_oim/߯p땺߆{C ^L Iw Nm iQDsqde憴A)Tw3YjB4t.}U~۶ի H]BZjeADOWB68zc.g՞MV" ,7n (RT,6Z j"3v,3q`͋,E+jXB)13gڿ?љ 63Yԝ\ne/苹!?7rcYqy`п||=/a  ^%.Kϥ9FeF)輻X|y_̶^ 0of -'[Dt2pںD?a $ LKQwN?qOOojɦ)8hkW_؋ܗ1qf/E 9_ WE_yŬJ}ecl'P5xyĬ%Keq9'?V'X>K:45T*y//KU8+Ou~>+N]>+<^mqmNڷX"𰸔`TĨ0' JJ29+DeƓ>r. κ L8].ޞtBQ<ߏ6J J}2In,DD Y7O.3W\.cxe-t[1X@|-1&Bҥ\X}O\[)f4d](y8b,._--m<rM}4P"-n0O&\ͻqnʰDH, "Z0?c 94( Vu;:ʤce%Nɳr2<9`(,8Zee.,Z E,箰3u Xgd1ʲVv) 910r,;?ȘCX{*R.@cYm|' $jhT.:VZl)BUcw**]4W be-lYqߘ@ڃP_нf)Xj.82t\n{i^m+K VQLWhp3w#mmS ywr󥖖EJe>@Lz4~9#'o WS뀄3I\sXG/A4! ?ֹi.V,g?ԵV2ygje!t(X-wJB\ bcʈQ,?Bӹ:%ԁ~2!:s % $n֌1TYk_5֊ned9x^Ȍ%POWԡBDނ@c9}>Ї΅xXdp}4[rVpM{: bBsԲ4Xi^ԅᚿ.G!:W1f"TXֺJd2u8׿-4D纝؞4f\7. ;Ka ד2wuV.frb c"d}DPϋX%ˈxܘwKR|h*,9pW*]hVL3Λ+ Zj?Ǟ?_sJw9*:,U,ӞC&3bauNg>IY[NPL O2^J:23pg:,w.ɼ= |bbeQOqa'Ai\1N4\UR\16S!3@=K(,!%8 ^l&bك0 W R_x|D7XQex&0#cLx' GbxYd'gEYZ|:6l2QFF}~nvYbsM Lp;67rj!/:Ёe%VP LybɃ8ybu6< R >\^bAz5Z,$+I H^UpRp ty{aX2;)> ғt~n{g)M+2+aDk9y -U9X-A4>,]ã$Gk'9 }ͬ-PW.M+))srty+b#~$ԱB!:$FB̛br.`0S":Hoi V6ECAeI񊵢yS2FG)w?!}C̚ټMm>Id^"}r}HML@'qIb4 kTÊ4 1ɢccv$Kbkw ,gZVDa8")'|"2@4pYݷfbYuߒ 1-NSxu|/&)!=b3E"e?,mv\+ǮXPΦ7"qإ Wcd| ^<ͷ\J;}퇿MEQ\,/fey)y(PYJV8KOt]F<yH<GZQ..`)L`tFܨP;C$9XͿdu>0ׄ n[l2(dmd?JlڍK2?H_}r6 p4OO0x1@h$iD;3x>xD,'穲PY|&V^wSYvũOg(@=W?N}t{;X} VޓkP6DĐĬJR6#ܜsAaeK?@fkWtk$ٰ+]0=̕4,DdΓ)4c=e[4/3H99x.=1 wQ_]kevc XEGƩdvP>uc>;#OX 4$A(I+גr2JJ,|!܂Od_iƖ˫i6N-uN48qr,@(6\#N(EckZۢDוͦzr|xפ&cE <1L: 'kKX]p,< E2"V ׄ k8yx,E (=: n+Hȵri-y++BzD<~AJ(P)'6q2b|-$ r0ޥrVn`p`}Oo|q)EʢUN43<}y=ߕ%TxwTx/߆dr ݱz2Vޛ,3ol@Bi04 Hn܄sij=tGzWP+L-DI#CYT+ I?!xwl7_'ə_YNS۠[yRWIcQJ=%ol ,J=ՄJ`Vt[@Y(HV.ͲJUEQEQEQEQEQ\4,RR1l[l[k)}/{ML}]KݾXTۅU,j((((2SY<Ǟ$V]{׳XBe@Y.DT=>e@I49Ves (l[iP((((Cc%rt皉,!T2r*T-, -q.TRQEQEQEQE .be~J/?\pasXTV3,,V²T,=f1+x%|(((((J-CV^͂L)3ycƨe9SQ .̲cT$N%WEQEQEQEQ$T^D&>.a$T΅U%"%d+j1/SRQEQEQEQEE%/jn,k}^I$Z֔YBe- K=^5h.,w.,Yv*EQEQEQEQZT*K?$6 K89W4E\ߠeTa?UE&;TTEQEQEQE2G?j՛hzZVYS. rP9jbd- ΕɢeyEQEQEQEQeԲ%Bkl*^ Ͷ3fQmFϫm39n*((((l9}F43k%f:T&VUosU*d*EQEQEQEQKR&oLEZW۶)BL fplEQEQEQEQEZnXGV)/g*T^Qbe[ NeVEQEQEQEQ<DZBe+R眳L\ǫ}VmWEQEQEQEQL3^Ml$ޚ|;܋{GF|,ղ,ݷlk((((REܽ=egsESEJ0_Z#*+}6]R>*WEQEQEQEQzPYi{gj1h)|Ĩ, ֶZ((((\ \j[R~و`>J(m39LQKEQEQEQEQ+&7tދZY,VFQEQEQEQEQJV,VXHhXܥ/U(((((2[q墰mQ g+VNOEQEQEQEQ+j BwP J,l*<*((((`BefL5]\(B%hX9~3=((((ʥp)DJJ0AQ*N*((((7(gp9~RH/EQEQEQEQz~&Tf_QEQEQEQEQR4g{B*AUTEQEQEQEQzoP E[KEQEQEQEQ\;l6,TK UlTEQEQEQEQ)2.XA[֑**((((h8\ w6Wת((((+aqQd_l\^ ((((Bd.E!R(֩((((rPśby*\*(((("(\\3 ((((J=4S4\eEx[CEMEQEQEQEQ˓(.j\nb((((ʕĢ(\ž((((e#Nr%y*X*((((@YJTTEQEQEQEQ8Yʕ.ܩp((((,$a&CQEQEQEQEi&W0Y s3C((((r) 9 *=zOEQEQEQEQ T|TEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQeئ>] iIENDB`070701000000CB000081A400000000000000000000000166413409000B810A000000000000000000000000000000000000003100000000gnome-maps-46.11/data/screenshots/maps-route.pngPNG  IHDR*HsBIT|dtEXtSoftwaregnome-screenshot>&tEXtCreation TimeFri 23 Jun 2023 12:03:38} IDATxytw}Sn!1؄C`@BIΝ䄉ə1!!យ3 37x 8080bcpcn^jgԒZjѩy_-*=<"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""\\nDuPy !""""""""I+=ҟl.WlpyuWK\^ ݕEDDDDDDDwYsw9?7r]]nGDDDDDDDDd)Mhy{yl6mpp3iE.0m=zY+/m-nEDDDDDDD%X^aZ\},WK-XUŤlV +/nm5]cȕBxz>մBn)~""""""""~ 4<,7{v[i@y4Ơ\iy +7sP|]juՊvĭf冐_DDDDDDDDD|bffMc3pR4h\pr3""""""""v.vHXhyA煶cm`B'YRre-?o;iB+7MXBg!B{6?H\nWˋV*\JCʋP.JnGDDDDDDDD.} UY.rr%Vn nBJ<[9*EDDDDDDDd|oG+%Vn0m-B-PrmDDDDDDDDD-qɥ??, +$R!bWDDDDDDDDd9W XX ܰr.*/vHi.|9J*2EDDDDDDDDVb!Jh,lXXr. )P.5**EDDDDDDDd5 /X^hX.WdPj )P.V^IvDDDDDDDDIsE \_lfՄrR.D.n~@PR+X,p\r9arƬaf*7.b!v/8Ys /VK>qEr9!J3Yx"""""""""b~prՄr3 )g/_IHi.|WP)""""""""1;݅;Pr~pr9nrkPi烱YnruCɥEDDDDDDDD.@r1]^?}\` f.dbX(\r9!5Ҡ$|JM#"""""""reXI N2cr:|}9iv%sظ1߭{Ŷ_lBJ!eH~_~mmq!cUSȪQ }{w1ZNgJJNH.R;7[Iw/5B,ԍl5kY_o|(q'LF'2M?'z׻hr{x˅/4%,=SkeYl UEN^{Bx/4tuܰ2swJYӁe۷NX9;>%K,ŃJX+6\iH9ٓL^4v؟(1eرc;dLk~eλV֥q3Ms td u=FeK_ҝLRFL&_җ3tBB9b̷=^ n0w-6y}mNcxJj< 6)"""rض8n̳^X[a`Ɖ :ϞTgn MP̶ioł̅ڷoNo[Q!ÐJBTH)""r fIR! ÍnX[q|t/;_oc=}l*/=_B߸M""zRDD2z}!"lTv07Z0){%<,5?)>߲LqZBJ+DZnm=68q̭?rr7T.w\˅M0:md:qV<n#Xwp3r4]͟LguװUZl6WfiZYTZP맯/tcnXFuI$?F7>g7p]w|\7{D.Qo|sj5<[뮻0K_DDDD.]׼5^<ꫯr5אqeaJ:m_IvVaSvo- /4kra?̣>:x[ǝϣall|/| v||b[ֱ'r9)~;'SV9x O<o}VDDDD6{ulIJ*)eawuG-XewEVa &/4\r/[Dnbb/gygyo||#{-q^z|;~~?!?=G'>!/"=<Ȝ_￟~ ox{ֵrbbb]s{? Y\+%o9!l[nn?J+ؓO>'?IVt>n5jju}Cկ~~$9Çkm%/) @'>s=dytwKkl_Mֲ ׾6R_wy'LL&F>Odz>Wl9mzw??Z/Hr;v gOo/""""WO}S+)FGG7|oXo8w˟ٟ1 )7u߾};{ZRV?c{9nݺ}ZgeV .( <*k}<?3fG?Ow ,H$x̟''WDx/ޙ>;y1fKwr|-[lXA8?q|'c|k_v׮]M %fppGrrraЇ>}˥{~)^s|Yw!u}4M__3og!m: q/t@݋e^i:jEV3ۋ\*,qo@TjJ֮|#<|T*͙ggeO0{lt(Zrѣ@g{wU"قʋY3f/GOOw t'~w~ Wg?ٙ[o*Ed]رrAE>)4}'""""tMRs_s5@/z7 87m:4 }ҾKm83s;H3:ڦ 37[PMWDoy9pozӛ=>O #ǧ?ukc6{駟桇6g1Mowq|6{E-5,-y'صkׂ O`De"""""K/ĵ^;'Ěmddd'c_=lvH6d:i.Y899ɽg{[rLR磠-o駟禛nyfj5~uoa޽xGW}ݼmocxx{nXH)"Wm۶q-pxn6OPZOLf""""r3J[v-hsq7bY֜uN*z{{Ȑr,kɠcLHy}|a>O|b}ҔP]>,_K~~kfLp3<< 7;um[ӟ4}R6>!?0sض͝w?Auu3}x{1{9 h4>~F4UDDDD6=ç>OQyQJmI"RH$޽}C3Փw;st'|^hRc:smc޲۳OXS?OLLp}s-n0ݫ~j<#/iqs߹s'o۹gf]{V<Goo/5j\}"Jwyꩧ8~8FL&Î;[s*٤zzz6 r>ٽ܊N}ot:͍7@R!ɐH$W_mݶ^XK4s_ڱ4NLNN^BgbVUAoo hz4'}Yye d\KrSE9_WxG8t|熍?y{{^|Ez!oE~;x;x^!gM.>ϯ>}~OruǨ&kֱ""""YLw_NuٗR2^sQje}'ّDz,$^&ɍ&9\hr**ylhE|}fW$oGygzzzuKsOd3[ LXe~7?\8UTzyꩧ?vmR,Ux)ܜ֢r%ՔpQ+***Ydr]K=RnxPy=ggҬEP _BO<\-YrÇf\%""&4ȴ\[DDDDDDDDD6Jp *EDDDDDDDDd) RDDDDDDDDD69wZ% Ín9,&l+2?wv@Mj*X]8~oE{oywh&\[*ص#]1j:ȠN"=`[\T&i-66LT۲91|@s2AĴ.uOt:1Byfl3A4cq^ޠ;'nh48r0vڣy·ERđA.n8LiO}N J$zF<~"7pQ#IݍU.q&SbLcy͢Y㏎㍻\վV2 A;6"-i'`c?FxTS|EGpEG^gV>?w[{xl˳oN c F[dxF0EY *{^ 2r$S ̾|ߧhdpp7)s |L&| 8fb|ۿ>ο[n0 0VR8GnvFLVCwԞ/-[]$I>DxU $Lh$$FƱ7:7,Lj619>Fxz\wIe cI8I*2L/\t6- am00%w j pRIJl " mݑ;t^R:5- '!=ڍ|]dǎ=4uFgkOs>SڮxI{+AsING! 6^2ۦR%["{1FFu!l{aZة]z1kR/cκ'^mEeLCL$I3:E6W +0뮦9~vvrJb caL^z%DZ>O*7Hbum,} uF'&pW'Jdyl'E< } n݆>[-* लٰ6=|ɖ2$aN@j*06}==$SCn'" |R \b -8ZR^AnJt޻?G}rrB*jiZdyZMNN!a!ٗecgBzJشUzw0 }( A*ө&3 H(כIRU Xj1gS|gl #'^!#*:W__I,Kub Ǟ{|=_׳zåM" MaF38Etq+FI\ƽV ~HAȩ؉lBA@2Mip' "3g0ϴ Cs_)f6GPQy)2$3ؖ+/=o!bbT0mAddJ :;tbgآn6v'I.rCl&M̢mTKAsySxyGWɸ+lvڹ"zΩ-W(}5 fwfz ʑ&?|j #p1ܠ=8mCRW/~9gJ/aa c'1 Y`:L[>`wrHc_]-Iw0򝪟i26dѤzQ]\{uKf'KՅ06 ޻ tskY&f¦wTz0HD5Ra4uM$>i1jtT&n!t'?jP*i*u~Hfw۴|F3J'c,;mC9?ʱ]Ie֭:)ҕu2N;ae^~8J`TF=[xKP6Y&#T+]QR,s)tzTNN!4jԫe 1&žpp,h5T# EzJg1]3A+mŮ\5'fFebBlm[XD'qVQHZsI) {V 1q0 CyJ'K*[[mF<' mӨU*Ьϴu=6C[0Mks‹$T"U{:5l؆#GxfDh46Dg6(O&b6&P}T$=H٧IvlZ:zzBu]gq[.&uZ׾Ƴ?~~;wRV9J^ ЏI\?7I6(eXFD8&za!N? `G dE,( ~EҝKl03 ]8S'k!]ZSLs-v0OR>u21LLH2E 'b0|rzAՔNH`c'ҴmTQrybu脵ӮxBwP.$M V/v@R{G \z2Fq.qhci($`&b~ Ү]4M;瑝p Q6Csk դ9nR۔y&'NSꢷL2pYz'0<K7&`џ0mCb!0D,gG)envdΓ?>̝?uݜJ4 ͐r┮"rBܨEʒcc n HӌML63U34J| ⦵Z-N8H0>rd7#K o;wqMaL1m #ꄦS'0VcZ vx'i$_,$lfLkrbhqe~Dt5xK$0`M>_I|0iǤaH?u8; Ef=3vakcc#dҝ.ԝ2Kj*4p]Jyb.ʐI $i`l:dlMitvť3ddry(4m>۴2i &NS-7y_xfls?QLդݬUh=BgcZN Ap64LL,'S< ޫ ZgJJ3',z4>V&gKJe1#ÏbAFn Lgnouk $dy A06>8)gaJ%(C"},N$N'/-;-Vatg3-D*K |^9|(TAr {!O>iK4͙0MNy.žmwR(pRġOYN$;Uq̜ߎsg3qc׾&*x "ab@*vHIq)Ҥ T"2O^u.B۠Օdl6\#MC*!(Y2'xڃ$xɓ޳ zKK22>Ϋv{iLsubK(ht;IrtGՌIcX1ȡX[ГZ2$aGܲm,#fraz+at*>viH&1M( h+Ԫڭ&f׎] lC2Lg1Ξi5+ =ıAQqScG^it*+qQ:$AA\T^;jc'Oltla߲d106:K/#/`DQ( hjRv AL!_|Hq.kreY$$n隌8ƊMN2Iݜ *;T:J%j*E;5 dX]HIl߱2q.j NW#څg*tnI:a2X)v ?ٱZ2a'52YeΝ Lǎ],u 1V{l#L7MT)sS-&U(Qwrü⏹f[nHJYV/Pw[z1  nj6fs*;cS4uFFql;L5lW,1mjn؉ǢeiҨNNWiM"Szt{wP,xr|oH{s թ60Z|66Nbgsv DOVQR+>813t-mSpj4i?0@oO9mۤQ-"@v"d#Ӆ͓ ?`>D+PJhT\DĴ ö-# )7_KK ؕ Ǧ鵩_{z[|_~FFƸa~h+L9Cmbd2LL#_ǟ=NǶWq  ?$&cR "c#W36M\.QDna:6wiRC5~6 |D󘨴/I?n\bK3Ynbt٦IIP5(Iw%ɼtʗ=|/'O'p% DVإ*FLDTp}6 </᠏ ,0-Q \CHIИ$0ݰ/ʬmlVM&Ǵ*tɈhHr\BSީ+ѠO2b9ߢF.rhD6لCr]1MS:[6BXR! 6{!Dt>q8=A6l03ǿ2M6ח7947iH Ӥy8$+x,^4qlni 8^ MH0MLsB 2z#k"i;(0Mg1˄6"x0 Rx!XWo;L18~x#"e+l{}LSH5²V9UeRHː\] M:4퉏VO|,.}{ om!Y0Lk2- E$XRgGս&A45Bkz(tϝ6ozx³%@dSuri|#0I \la$dcA. z%\2_a;plۦZo0lQ8"ڢs pÏ|i $cy}.m IDAT6<ۢϞA4{Ғ9n~9e҉De1 G4KKbׄAl'0'^A1M"RDeҜ}Ď,Sʆ5 nBV8ި8 *zRIu?}+O4IaZsW.#_Ƽ`gmk$YN:F^qAkMt:m^<{g}q*|]dj(η"'YBP#T=f]JC Dq[UYhI9M}kB!lAPfCa|CB7DRKfy7@TeL)OTmORX6z_ɛjQeIɓlh0+fnU.~c$.2sׄ -mQqL k* #tǯ&:~eWx?/{KDI '5mms/SZbTg1E'GZ.~iBZYyGc5qWY:& D /r.k|k;Mb6Z)z^T`6QSd9???)4/|9z(e4a#suB+py౷2=5MRjxvuYmwhÄ#EzP穯<E 3lMBu cxegw5M7Yz8I .)eY6jtIEU = 3pv:q`5ٶҤ8Cru_5 G""Gޕc+PEAV%V1 8 0\`qMIeT 7|~ɍ]ôpdgFl) ̓Xg{v; 5_\^_.(4ą7- _9syt/\A3\#N$e+$D\ 1mӜTH4K1lҤ -I9qnH ZDc*ZB w*zJ:5hH[|}O?a^pLOcY(W.`.AUK4GO$B`ؘit{UN9N> ؆aIrOVZq:}s9_}N 4$Ya8;>l0'8,Zm֚p4`+.(dbg4{3~,1ݸ 5i<*C$->tp҄Jg ^:zQBӿRy diB4衔ٚq}LC=.UiQ.We%?`r4xRk̠(@&Ip89op@{kkqDul^G'8B9R*xHCPk g}}|cgueœ9i2&#xA_Uggp<{{#>>V[* ʕr4Iv"O ;t6WH!WڭKluWTr}v[Dˤ>6Q$,9 ) Q_"_Y' *:33_{I>)i2774Mw:T!, O=5>~|O J3o"mYԏ5<7XlR a-!Z춴1%mS mjX%-2cYB}3ҐsRc~_زl,ۦ6I"/ ,!DpEHp`wd'))SŒB YDp7*ވD*ݝ"*M>߸d?9yn|{3?m"UJBJZ0NZ1jOf&RY^Ջ]*LoZVJ03B KbmZuZӳlvɣb(Qkvoc#)_╗E-S.U?•p5q7?}˕[.ekW^fqi1E:ӏ8UZ COBa{s!E/)i*7Ÿ2iA!bN7 5S\j`RPME/~+SGQ[`4 9d/qԛXo5%GGc}l/H~2@:OY~GA`H?|{CM'* aDOyGOҷd;VT^'qv*&4F iI Ǹ8"֗R>;VDaȠצ֘ڕ8-xKO0wEO<~Y? \UZ"r.]-Y,: 0.S |'^EFm1]skTF'OQA+(ѣ>}Y ?LNϓ?ο~c ZdFH$J ?=HD [[ؘ4kޒ$N{so}[i8OȰm@S~wFgn {监woȊ/N1<\/_?c6+! ԩ)||٧^³rgׇ@(ٜKz[!c~Ah DP G׽t.1mk[Jah,zTH^E@ %qU#S2?xE_a~~c1Glw m,$6hAL!U \tY.ho.,ajH[d%GLsq)z&;Q;nSNm A1Y\+>e^#'4>erţ`H\HnbO"[Ykч ;<%.Lo?%-I%*F$VUjЪ tONP.S.F#_8OضKl0$~{W=QhCR^c\p033^½A!4oeҚjr!N9D`J?yxc'1 /q9fj>ZC2Ъ@J](LM_$LӄNo ۔{~?w(W*BL&uݷIr<&$e؎GQj掼\҂0:6BD{jM!$R"SFmضMTv'dYiLf4"%9rj϶ֻֆia^KX*ш,Ә?Jdt*Gm8YL>Ⱥ1W"-,e(՚"KҘ lǸ+v+yYF b*(U¤ќ )p8  -2aCZ 㛬w(d55,'Q oǨL}:2,X?s/ {~zVZڑ^/^AFٕ1:/u(:Ş`UAaey٩c)J;ޖ) TUR~$35\'͔R(UBi8%OSя1 RP%Q)yQLH%,۞xh,N?p?VS(L ֗W>.P^#F0Iuk>-h4&hH٠M͆8-\Geu~iN"cR $"M[C %GkJ,S`hAVv\"Ynşa Fa1QDh41 k3Ӳl,aumN!_!+5p4mZK.J1K{ܧI RBV7~Cg:%DdEFv~P\a0Q71FzlnSM,}hDwk wd^´=B$cyr"ژaq4h {llnf)01Mgu}y衇In{HRJ,cFcC^<2Ǐ$9w1|AQ.1qffɓc;oVJ8o>A{(=ﺇy=͇)Y]{S5~n0PBnaI F3xs sO3$_~+4 Q,??M9UVV)y<a̙j;F 1WZڽEupZiϰߦhp<4 ?yV {,%J3"T Mq@T~ w]8 *,VRymq,6ww5QkkX[_/ysWtTkS~nFaijϿ/dw D둧3 vߣhf57Y{ߍ0jL{6 hҹ37Ͽp{.N8N(gϽ±C3y)Yk8`4YKPG0V=Ji Nc+g.GOr:׿mz03_9_<*wxRF ḥMuN]31;3]6[4$òmFa`0LiYlll0lL.ƫd$JR *&~Ņ~~?>?ѣRT7Tk l6YL;DZϱ |)%m2*3ߪp"jRJ+X]R!;lmQv]Ph8d J5°_ )^NUZ, 5w,K z;D!MӲ FEQ80IڴW3\bL5{* Ѧcj5l[b$Ntv9ztNwmdYeBPQn4zhRf2Z ?P7P(F- EZ:&iCw@9,UuSxL8y>Zqp]4쑄]ǰ=DqİKowlCvC4I5' qL-7h_&#qHbG? qIS G'9 +U!sRGG–1a9yTM.Qfzv2#qĒ1F9ذхj0???q2BNQt0OIܹWQ*C~&RJTؼ5A,ӸaPc6šCX6/2=3MeiiiMOS^KD>8o/}Ϳ2xB a>\Y6 %zA"QOv߃S$&c-S4&'npL>ɿehovd+G(GM$^_CJ*r$jdYqt< *K6y moªTQAıunQygq0!+p@T9DoBW.2;=Ãj7I|z"{<ܳ<ԗh ٟco'a6SU7Z)+q^Ih!B"PY2qI (&à^o`ZB$z7`Y]$iAeK>q8ޜZ1bcscRw$0Lj(&J2[e C\Z FQDAKyF4`YK'NӜŗs0٨V6+L7x2/ԧf 듬Eiw\:_$BК+TiX!1mׯC8FlNgx^iDYW M"uEJgǘ?zdqj9Vp)"Qwkcr>QiY8C(ڽ8&vRN334[U,=FhűMNT5I3gxӛ2ya\x]FZ${,BJǡ^)S T.{/}~WT<ė9q&яpE&k뛜:u??IV# CXTB\2ZҸuih\ 2/+'~9a6TB d`[&#rW0cal1NOHÀBjv+ V;paU {kO?$ Z;v U(\̇>loo3?8~NK.JWIiY>y6VӦuܾmʝ#yK9R`-lSAQA 2t<VmLF1WrQ|%6I3!%ѨO=4ܽYƕ^Ri4IR8 )՛Y'pa4Z;Da$i?// _Dŷ Q?h8 *j?:妘vlo̳_̳O)mMɥɿNnNBq8^ ^S:ri#,D 0&L!raRy|:~2hq'aJp[1h}+yƖ#e4Li] U|}ѱxM߉8yfi]ݗwcȽZ(b]T@G\Qři[#AlTP\@BV*+r#}FFfTf$R@|>]O>?q~~'OK\ۦ\nzF0%Jk!S!_/"vܤ~'!?Lѣԫ5( r:ÈD1ٿil199k4 6 .KgyJ8?5Rihڶo\mnoGi##aaԦ3Ve~R`8Dfr C~7Isbtgfv|'aDM6VT1 8v)4- iZ2> 47qU*1 & cK䪊bY*,Q'vilLQ{}xi=ZSS]#驶-KVexNAŶ=LSq.d.n\, QUq=~ERHt2AG{ O*&Jd)Yxne X!Js>O/L$iBA7LL*EFWLRBG:H ]=q)D, J)$ Y0<6 b (Lѹ>O<{Vw*rnsյUZN*a@%PK2i0mrI*B3)*5~Ǚ峟g>:t#vNGtBβIZw׼5/}̨,,&Caa+8D$<4F2p;R {`gODSu⁁+~9H$Ngc_cC[xxڪ\57hjJ)IubJe?qxNRuò/H=Hq,Ͱ-AGeǧîsz~!zi|&#*ʫ=az!* 3p3'GzT֮`o)QjOطVydIFZ0.ID4pvMݼ$ʁ)jP.{DU\fiQtF>wmTAQUegU>>Ra(T`)7^o M7?c5~"0Y][E/ XC\jb((U*AkNO"ȃϐ)u4ŮO;$e#P.gxMF&%1Pvmt*}?Jn:Yc)#Q^=Go{UJ䃀te \xVY|BEթc"_K.]d"T4 yse~?|GGO"\wcC#ӜqIA5gN n-9aл\0ɉ](*Tt)v/cZۛ+%;~߽Dc U+./>q$벹rDAna{u 0==Ks-71GG?Ƴ,757=qߞ(B m)Jϱt TqvHHL@SqcjE'CCك &y;HV*>EV7QF*a\A%927wϮje,ceE PII\@ "pUF34hoU'1"ZF-&f PX^}XE<>Q^dQ$IBiMP$N%"3aU# }r Ji&i`6HIqG?AxE\Hyl [.gi5%>uF䥼m?04xHJ/n_?,=8ňϟKyb!&=n?MvHSEEjDbvrq'}^5$cc?&F߾Zt93-bttЅdQ;2< ˋ1,Bzw4Iu "Ib6>kG}]&t;mkAm;;W 4#*ʫ=c|f#*J)%illЃ#+|#A. +Bq(khm}ݾnmr<2JA7inU>*DQJ(-w*&QU" o)s8(tHM8QxK^wc=ʇ?|?co#r=FbѣAHObٗꏼ CA CT\'~~V^Cca:0ѿZ4zK%YIT¨R3Dcԓ4f '7&+-xqJUƲP$v`g!d"}4podHP ED>fTl)adI"Kwr?=XͣqM3cS!ȤԑyF(IHcu$rPl@#;j%દv$;rfI}He'txᇹ9{,Ys=xCq8@S2a,l\cE&}Sgm`D%9O,k;JSN<Û}0dj0qzlm,075S)*e?Z'>eTBPp,E`mmji< UU 6S@z;]n3Qt& ƥ󲱢ˎ:(l.I7dȉ23*%i5r~D>=rI 1\pMk(lltNe3Jpl24u,צje~ ݛܩ>؎{~k>grv;ضG zmb! wB|FDgIT~_WW?3昙}#*.o_|'WH^'`q,)-f_֑]%$R'%ֿ9 s2c&ZUհ ^z#Go~^y-/=J (ڠXpfn JP0 DDai7˴Vח(6#WStުmcn{ǰEJqʵq,;d8c.^t!ܽ,3s&''z;?Οo?Inf z&sHZf0oAd>"o MC6;菾8I™3x+^]l"mHc^r}rMn&~W~/n}ߠa{DH"%Ap)N/ECEgǮ|aKKtSE+k · "2c&^@4,ˣk`M<'P~[KEh!+UM&an#rF۟IӘ0S# _rnT&(dz-4'Os9piC[?)3Owy;Aks+)jlߌ@KtN1Mv fGUCU7lWpT^8C1 [ >p SҚg&HAxίLJYNu`&ɦg_GQ-90V=&/EUd Qإ69C1:B90 |c3D$MrI2n@#qg*ဵE\S#}z-r)Ӯ[BQut4e4U%WM%s!}dREy嫑$OJr(Xi]ocb*EIa0p?i (\L$A0mpkQ #j{ev婪ضùDZELaiT`su:RޅfXWUUI"ށ$Ij\s-ꈜMӌX nq-i%J …C>9Fomn`jё(I0$ C&݈?iS(]UB8ȻW[w`Df|Go|96fcوAE>A`0`}k d9]rw/9YG:9*SϿ웟ԩ3ݧ8 ѝY @ՠh (BCBЮPA-4NHͼ0)xGʱpO],s5Ϥ)ݺ9b~ˠӌ$ PBIòwvqX(DUuHdxsKT6-2`I e|3?S> ?/;h5WHe7OG)s9BW4CZ Q QA+9ɊV[dyJwgD`cqL$ב 0sUsU;C8 t:]fRq%8ǎ@4-o} iA호a߮8/*f..b/nR0&Pu *a(6Zj:TįW'RtL*NOPU {˦N7ؑiBq$,BJcs q8xZ?sOַUUH,jcu(06C4`.PP5!T*1dilf)呩+~XXX-E/T`Rm,IZ )OSOQSr dO{,i826IZ[M7FeIB\-ClkQ U%>t->#r~*C7XMT\2 X[=G2`EHa&3;A;x6k"4MS jeDS*[$RA0L *OkYJxMN?&PgCP {;0CiF!ɼ>ai4 [Jm:A1hA, ˜8 wRӅ@* :2[0mAE(x*qh&R>r):.i'DhrG (*U^⻹9|nʣ>Nd܀nXtࡃF!O<;uq8nUBUȷӾ/yBK?E4eyyN(R\rg$IRAI:A8pE,[676cuu}s P5R}S望bE ۴8xySg.iW68zC Gn d.4i'X!<:[tmM^o`1fVr[‘ y)xh8YiHMr2oDv$!=J]tT*t-9n\rdW!v Q4 q2g9~@MSG<HbvjQ1=3Ք~q1\]z%_+4M_5裏7:緻{OOOs=𶷽yI!Ӕ:<Sr5KX_.p\R9x0nKz}aB+YWҴHU5 Ӧ`R]R}:YGG ]q6i`آR,c Yi=Sw_b2M~'·??X8{Xx \4w)ɉMq/հbpiMGU$s :EdtGOv)9wNa?ជ" .)Ocn~9D񫨪<z3WKJ{÷$0Hsւ +Г꤇pf'<M{f㏑D֞ _0H<<2e%୵sU D9wQ$P(S(ҔJ}A{Bďx^uxx-pB@L"v!*(k8nGG9ϹȓÇ+џAh v!T9ZyN U Ga@B TC4VL1Z2&t]j銨.At}AĮ$Rb# U :䶔925( (@hjbul)Y^Y!n5;CVZ;ì2BDEHJI-qUq @ : A<1E 4E2[m|}d* {5RȌK>xۉ0"Xf{+݂4W I>i4M4-8B5lV 7*<SSEV; vZn) ׷8z ^؃GtDLtd׽ҔZ,[7>}Ç7~Z02)2jUFA? 99VW?w0-G pp$i&]&'8p뮻7xGc')FVI.(+ qKT!J%>2qQP[j62tG}Z WccIktIO5eBPLH̞J-^NptɮZ(QH nM}Nov8rhUdSG9ُ`{%+@KXaq~M]|gQmn!I#,c2 BfcR{tp"w*A 7ŝ7wy's7_V=;2g >?gnVw+h{x;<0 >wAp1"tZbYP e}'aNO}cɋq礥'B olCOs^U7mlF FBhtm5.b'jٙEv{@9c*ە@"~V&hZ 46q&|H$TC:$c?yqW}GR,g2"4 ?&+|v)=|30`L' <0M??&sµjGoe짘F@Xv![i^#}j(x0).+)t]crlեe5, ;Ĉi%ЧܤTWLq̓m?V6Wύ҉5 b8Qc84c36CƔVWVGnFϱcSo;SЂB5UBv4W)Uj* 4SOcZgIByM<܂,Z4JnV&+(" əݞ2 =VqEfX]_BWG䓨PlMauBqu"ϠzٹX֨0LgeX[_%^_ HҰOqbdpȇO,AQu~<*9 Nx"qCg ut6 [nI=ޫ*rqL IDAT`l ݴnkBiIe|(Nyc_Y~f0=?< gi-&ze Ǟ]#?~+?{*{w#};3*f&ʼnqcSԿ oґR.EǣxF"i$iF+dQNZʕ*Ay9ȯ/ yO 2wQ ю2G*9Bh$,eDiI!Sc*,Pj8Ke 8 .O~l@6pTN?k^9v_ W~+N40ޓ?OVAK,es(B'%)W MϗԘ< tQ0M8y&8/ /ƩOuY*T PT|??oh6+ch4W[ Mʕ:l;=?Tjeny<1N:^hN9t+}i(@S0;yTm )QMbBlP!Fom]̥l6:K֣(dmm^g됥9 R)SyK _e8 AHcA+k YUS1+hK>Ix26~ xXNTTj(By14WUJ 1YG1Qİ4Qib El'K(`'1TnkRu4BE Ϯ0(9*`۾łi},mYfSU a ȟrU4C'׳GOxIm!tO.39>+_J4!Mhlas;I^yFY\ݿhl8ryy/(YJ&AbHt}treYI٤si4Uezj!]d*[+mXwDahK_r^FQ&KkLD)"7NWoY)قW-vVB$*B2G׿yBfjdӓU b$##!#"גό T)[Pl,~I, :#R2ƴݢs*Ő nih2g3̤CO.ti ts(!2 i#7' U'qBE0t 4Ʋ]ʵq "yޛGu}SsUWWϭn$K%K6#C %L!G ˃ȽV wd]rf x$fƒ8$O5Z=WU\g>Qmɖ,aXߵ]~sШ,* t0zFv.9S(׾]wuk/\r%:o~W\e]~2)~g CQ*NS}egK_[KߔD' *DAd4\\;>@qL:HMAQ42"2)>7'u\"J fQ(Y 㧙J #4bbr5v;3?:6y߯A]Gr¡B̉RR%Pc?Eu=|ߧd39|-t V+썅`*<^qbPȾqiTfay4N@?(BQ&ޅ(RU/G=[jK-W1&;WPP4 (R "Du\Ztq6.ĒpqD:R ^idt @9Aq!fNŰT) cZ:~kD2R5 (Tfi$_\]ﺉGyE≧+u^)"LPAYIlSO=׿M,䓟W/ǶL:* 3u@Q_ZclDXB/ <: z!'`UUCQ+et*Q+B]CM$ S~$ziA@{|2b-F`㨲PI:.hAT2n384nƱ$Xۋ,xGëYMD5VQILOdh#-ƶ^AgL*}nZOPQ n/sal{4BULIvˣDUJOҶZ4U 2 Nڇ5! m9JC(AۋJ5o;Fm6n@*gÕW^E!ֶIiW]*ĺrmN  uVw:d3 h5*nBHI[ "E#S%_(%+h*VjtU n _u쩅|ffQ.5b)޵ Ӵ\H´HrZumȚCHGgWj>^53L\@OƄ0gBVR;~\%ưb$&BZ*Z2Kz`v? J fvދZ4j+45 BS}[cOŲ!QTM7H2i$ife%e3?@Sp%*O KTٳ/}KNR)?ϥ^a|%* +_ wW_E&''Ϙ&Qy=ˊןz26|`,Qg3_j>GqH~@ЊVH~;TIg J;9y4R=(UXġ).JN:tUXVn+Ac(a13~ʻuO?7Qi-6ZDGYy~Ib|с'2$j1Y-'uҞYG-ZRelx!B "E( bOM(Q/0fuCEH!އㄫ!QXq6:4tfp6T i%)$$Q}/pUfizt5$p)L&BQ?Nh;Ƀ$P>!R+~6l"|-A6!"4lH2C5VqLyQLJ*ZPS$, w DإլN'_M2},KЭW/O jBY #~h5q;]*ADzRcJ] v#:iaP@G2"* $(3 UA;6=hC-4U#E j#*$Z)4LzI'i$IT33; %lٳ;!\Ny2Sk#AoQ"#w i!PDoUBU5,"!Cnw+\~iP5l+̀a`rT9w>o.,P^YfTNxtЅIp\$1ڥkwH8ItUE Ve&מ@f4aEg4mjmon>翦iOma?}#@ t⢃2>q.}YE ֮9 /o|(;~5?$w3>OQY@J(/ΒDl߱o|!c:#Qڝ*3t]?8tK4ڃ .y2S!P9PLݨ2 ,WC{_NO "Bt]tIey {^sﱼ4G{e|&uL_I<1T,{PoUQi)SvB$II;U 8+, 0 ccZ}t}X(B:ʉ,V0U Ct*q~DQ@v0D} }~uCXۤu\433H6@au/2ZMn԰T׏տfq~owx| VJ Hd29{% rff.w/ccL@+e!?[/o!:8>|*vĈCvmzn c@(daqç |KSx~v/sX^~ |)ŶmO#-9}AE.KKKD Ycl5BJ$WtfbVV(Ʊ4ǘ_`gx4K ^vkl+i6|ԤNbu`_vڢ4Ye'ι \D!C+ oX8^QiZ&S[idHyr'秓B`7PCI4EK#*p(2%ҙ>tUdy֏9igqjxƭzL&×e>8=>p5pwlڴnعs'wwsRٳg/K'>gq'›RQ~)PEDCIvTVF^W2s w"cBG1U IHWO8w;#8QA1B(hmZCIxI~r]\WY.`+TNk/bB qOاc<'$AS"B++ fBfJB3`Eј3]x˼Քph^>ə{wI4W?0aph=RE!.oXK9צ-k4@R˰\AQU:ֽJ04FW Τ,NBC͟%*$!}J }t#Dm X/$6O*;pJ8T.qhfp MQV*vFU'G!NLXT7jG>@PqH"ƲHSVʒɤ9p`~#pB/G>& <ECm,IJC1" :*QLj| kFABZRKT0i*BEQu, tit bl+@U!v lUf${+LWD7_ji*u"JSάX$iH8m>L_(h;.q71B\LSƏf1415p{rXcmds(+/E "ufF޵ôX;:Lji*@!N|w!++&v*kIuCHabLPu}=e\ƴ}}1(xB;jL]e閠ouv!0H!>=`*<э$`q)8zY}ck0)PT\wKq5ڻY32t\p:J)%#y+o=yiE|__"Ð~tM4 /}C/iWؼy)«UTvm|.8nM7eY'L(qoFE囒㉤$&6tRSQ$D2Dj/%Y)DA 'A9H(]-DdlՖ9h ^öNV+ Ŭ,ȋ,^h*6u?ވe%g}B ]EDM,%ER#meVD:t miNO< ò1%(*m%DŽO^|2EJ9d3)6_Riyn;L>),CG:(]7I3JC/,?YZ-[Y52UW^A_!Ӭc&t8WònV}U'W8)8),VW-UfF!(aU4 XFO024޳P50:Aq/ iai5n۷?DŽg/ IDAT(?ٰa3]| ;GY\E@YT:]K"giq[_h+P4d88;$\KHB6aF7̞e8cTM' C(dxxiXɎ;X~f쭗QUiγon:]LS'' \)%wD`"ɬX5ci\~N=WQMtYU/4,I C(%%)%P񉉰DN'T^Bt4]c 21Wb|Eߚ52>:{$\Q5F~#++4MP,RBil Ei*1Fnn+.zOqyV(*iRyK\ߓJڌN\t5 UU0TshT+qe'1,KD/dY→k120QLJ L&Wn$He$S :{veM+y~s4m22j-Qp~l+A*4M,GjJ*Ʋ,섍axGZ"#d)  ˲H$dsy%4UA 1G'Q!#p@e?.33_aeʺukVX5y.Z"K^YWd NH3q]LFrC&{DyϑN%(x:^ c~7E`:ma>=(:5](6ƑTpMSI,(VT8g4j zŜe efZM;$bI!PB(1Hp};"s sL19'ɑ-Dd:Ez@ nfP5|NzI놉fX$GH3Mdkӟpuד%X~KKǪq6~It;]f V%].Q3&dS")UVC6WEjY\\$4ιb<ѦmHLB%#PzSC# H=  =1y:L=RI<|=;2 z)Q!j`RgiXh/C"%5Xꕭ)SJ&gA#bfphJ,֤&}TtHC}Vff%TzϚ8ة淒B8"0͠I9&XS}IMZkѺE2Dgʳx 1uQwm'zۨeTбpS9gvSMl=s KX^x&:iRiZ %"aZ&BIB6Muid:%täY_l;I{eDD8@sy]T{߸袋ꪫxm5(DWX04:"?I~k~'ӳ0 qnJJ]%e[N8H*X4N\>Q@nGnŚ5ǴF V\d2&ln3Xf "z2 (YZZg#}VMbƍ Ja vn/ 4c#?MR܍2Pa~]ؾ{i211m'v:]TPotxtۃ4u֭e|,ӪWHt1?ɝl$B4FGGFɣ>MHc|ݳUMlH 91k֮=<~ҬWYai'E6J #_sPud >J1uP qfr;W*H |p9#}#%ŸFT^@^v2~#C,UGb^!idS>R4fq^.-kYv AP]^88z5"4s aIrajMp۷p]s3rD e&WOgn{nL"<2}^cqR{Jl9/UhĔM0Fh:k֯v鴩Vh)A%Ld &z}}PP巟+^QkH.HHBkYU`3?5RMvSؠAIH]'ΤeD{W֘ 20 VJH iV{$d@VFS5՟gn7yDx}qt?a~anv~Ok UU #0<ɶEbݺu}*OSSS޼sfnQ  ÔDK:!CuBPľNI8B?t"Z?WV T7IrFt djLS聋1lc4x>Fsc?N81h'U7PHv \=2$B<soxaRۥTHM ̢Ƙ* y72Џ) i d}$|I&"CZ@7AH5Nq|ס=5kHg2t;mlsϽ?cdheݹTť9p.RJ{9'lذM(iw۬_u眃l߱FJP`iy[ouMd)*p:MPsC[-rq7!d>"|?D6aZaJe U7Jq:3EVS y&%vJSyKUtXn0^c: ^J!;` !c(B*ۓP1P녴gfz Iʰw KY Eͷ,˦?>S&+(ԟs*2w}7~.G];f(hPl;$Y6lnH~ b?&KJg_3|B&ccCLbd|z8APopgQga4SDT@j#c:DH"J)cҺ$L] Օ^tʒL+*Sۤ.q$:>ґ=Sm&ȦYF]MQ*J2brmrTP0 UtxsN ˹'>O}z;e~\{߿;Ok|3|oo_vgz9{zrov)K?(biv<Zcu"EA)PKIH=Btp !PT {')aܛFA %ܙہcB9\ F6]ay;w8|w?Ώnv;"x{ QPE~J*MLOC%Qza )8G .qD1"f68s2 n:$E18FSUK6fv Q$QB$$,qnbB} Nmȳʳx 4E!K"&tUOAeuBg^A b!q@q`SUA/>6T,nMO4UUUn%aY ZN@uU1$hm( el;I*{\J}C'?ᇷgW4ijvo}803˦s#W!S)4]'ǂz&zuI+Jk6{fY;2`exk֫ 8Pou HB6q.s7? _ =Vs;a||T*SO>][b2زy V{\LTg߮=&WO Z=ɺu#Q./h*>fKdGK#-8 6o駷q@`&A8HLQ(adyq#@Sou+( ;(t\YƆHX&2~n m3]vL#=;_ã۞ Um&sK?{ԪJ|tEϦ=NӴYYUTRBs`~fʕ*ex0f{\:VFEtMU#趱iU4m tGX#_cai]vpE=(QAQ(f2hfCĮWITНvqm7h5kwFNJuð04vmYVC5DY`oڄ%Hy*馇́]]9g}g]@}AÂ"*jV?`1A8jAOITLlHRYbSsh3* )tB FQbo^^2WLKqDTiFr˶?gKO [ l6g>UV{nnO{ӦM,//o|ロK.|/QKl-صkbK/{9۷E]W_}ھΖ~Ζ~I169o CX@ T2]#e;J[e@h*:cv.P28|9u)t&NE̻ۢd"Iu!/q[o Qw^(& Bl-AZi$7IuϡSE2sTY{1K__>"uTwv,M"I 0 0A]+Sؤ󲟕xq FQ =f+FFs gw,MUUB̀dÏ$s3@2kx@$+Rd,FlSɧ uKT1$TH i:S]%7|4M0*t"i)Jd?۹ꪫnJ04'\p[ְR5(UU(Iiʵe:2]RپW\5 On¶m$ G"U>|f"zDci:z1|xC7MZ{RAV.W,R,ͨ$S/‹U,CmeB&AV!)x,: ǽN2j/\*sE[xGY? Sm2> LkЙ%qcFW!<;O} [Of\q%^v;T* :8J&L@ Qǃ(H Js7pm391l>< 8F{.Zjr[/^ B'KCTsn 5wH X,z׿ZGz-=<) $wb+ C:N-3<ٽV'y8 ˦֣i=} \tBsgd0[a\ |Hq_Ѩ 4]+iJ|O@Eft,fmy:&$nȁvVNicQaEbO:ұd"JG?{Gvwnzs t7B`fPC 8!EI%ۻZIE%~d},iײ(Y> 1&MAAFߜ*oᐄ4|znJGCq*#UDL zt!k2r:gre?MĆeEI||xCaCCYwA$*;AˮŞ<9=y[ (HQT3Dw@ CV0" 7:UE7,julJ)qnlջ5PET AOz_w:O? X)0k%͢iEJ+d\ aDʢD.Ͳtf} U*- |+)eϛO>IIՏXuo} MugISdy!qLݦJdIҔWэk D z/3Npac߆u;K+$ 7nkM2?@ONgbbj> ЕQj*U(\z4-d+&ފ1(eBT5!cx0}jJOo:1gfWLJ2,D IDATc'lR r Pz]ޓR:~ Q㏿}[|C?0o{[1CRiz^>f0-P]e4jv}<\Pr/Yep{Ls ɓO~mq9:T˲r8S|#C==n½wNzζLr19sщuR(:ެ5 T:2QL>z/~|Ӳm5;]EU) FU D,T]7(_DꚊlN$+JöLN>vڹa;BQъh$MCm6+[ŬIȭ8^ ҬWIB]Xa 9 bקvHW;B"61*a^|~e -X,<,g|3ljVo[0%"B Ӈ+beG?aZp~Fvx;&22fUzoʒܲ=MYzBDB>GZl!B5pJPg|`7b&6M\oJ>F1U?Btsiy%&_%P}[F ڱd*B*DC_ P0 d:sm?8T*4u"Դ/)BPtҨleH$S=NOs;0 Lc?|av,34>##$Si&SS180D̓d>&SSl߶t*㶰&re]sssd9Q r-LAŎӚ`IG| |ÿmTRs^rnCZV&Z RVQRqzzYOPZ]@t%b-4:^=yoyAat MU9zaaZ]yIg+c,_xۃo^ࡇbdd~LӤj_%I0tUĬ*竟U@3@:a^$2D*Ɏ;15'cx)>ѿ{+H"#$<:iw'/A )?⢰NcNi[.!tJQV+2n%6f5gB&H@=M֘>I>L=EI};ȱ%F{r~_9~x7SOr4!e ng{4ߤ b$2U~kwo;rt6mfTW_zЭc82< z=$ԴM~z? %^ǁM(F_((w]0DJs ͦOLwNRi6Q] }%2CK D_ckT괯"R5D:CĹRz5VY\5Ѳv1/EŶӌdr;Ù3gx_ 9>ߤğcgff;S8nHcvQfW>R JrF۴V;W"a#1 lӴ&vbfqJPԒ.nBn--w[$^ǹu5~$)9XAA 3gHjtqbzѶS*^tݤ'CQmagPk}hV=/g5M[m|oN:#bE۔bpff?_fqݻg[!\×lPVƢUUYYYA ,ƶe oH'}-\˥v_l259m'MK)q=/T)˘(\)Q}H7$& w!B%N348/BSaeyI2 K/tH%ӨInQTiDay2X,꫇e#]Z|}Y~L&O~]4M>g>I?B€lBH)0slݶaP^`K,f>.32< @.b~&,VLdhx \($-[5̄+~o}r7s]wo^ITwl:@دmW#]rMY2F*_P?ooq$b*vvJy,Ҭ/mI:k.Q_LiQEdd¦^.]qЩW+\Q&/\Izctd;A-]B*o&+Zmc9^#3__y uژ)T`eE$XI>ҮtV™{b\Aqr͹BMԦ^fx9B\JwlJ6Hi6kxn(I ;}y)F>[QqswGG{m-  /X;a|v=t6Bz\+_$5^}k$IU%6CCI^exbB{CC䙌%Pd7XMJg6һNDAH ]d|8 LlJ,c2nue#Q 4[XJTĶttĕattE?_Ql83yhԼ&F{$ !Ȥl QDp9w=lRDUuը/E>ϒ.r4 :CCnH]'yAxn@U&%VWc``tM&WA5>Ę]wϓNq:A@T"B 8&AfiT.9NI Bh;~fl\k,,,pAfgO366e^ 9 "̤XiIu/7 AG \7Gm46ǞZ&61>^E9퓻28tFq蕗ɦUR =סV]&I^*B!Is-㎃%(-oo8޽2dswqNe~dr)! l@U "Iw^NvD$Yc.F/.HNklI GT*QȦIdSg>P1U\E^ DhqVuD|"Eb>~{>cM|u\aozUMEy})^`Si ĵ! ^Z9P%2=w*:(K\(5EG+1n-)8aw`74Ko?$IJ3T,E=~H0Pw(A,$qz5L2MةP\3YSi7f M6b-FT(l>}C[IJ?Vdȹ |7c윘eDSëWzU@5T3A +㶓D"I=瞧l2зѓ|NHI$D*%Y'(n!FZg)q]*x^wiT*Vuj-'H*6t5"P WyKE!T:QvJ(I Q4! 9v={.,8pBU4Ps: Dx$)`)iFVR(FqǏ"R #T=Ş={(jU,]!=6JXBZ^%J^?Y-Wo}|1:6CTj)i.a7#^w( suWsM)|;⑟|ȏ)תx_\i[KzqJ) M}xAZt:Mr$xk|'MQP5 S36QD7cJth{7~ }G øJ5@h!:{xt+xn =1pURѭ" ۢz$uRNuFcv($L)vFHR@P`ϞP?9u$&mN /F,'fC!gnEդn!mueҭhs}zFcu0t!*#::na 𣘥me##Il4e,`$/g9q8^9ċ/(wu(H*M0*F.SȎrWПxNW`aE ˩S85y ko4 y;ejj/~ < JcG($ Z˳hڥ*%n$n!OKhDLxa@Z"[0ԫrDvQb&8yj#GNlxo%NO}}ϲ^d,J|EQ0tC tZkUt+A,Fdr4Md_xS|_j<鴛XeBk$C($So8-Gtr^C$y&\q18]wɫpM7g/OT?fjja2!rH%LF;a "B3 Z2hBڎKYgۉIL-ave w?|q1&?@zeN[iFM5$ի a&-<=1یPC:Zj%)n*(B$ QЧ=?.FE^CQD w@D2ig9R{Cl^-IT^?t|D.6۷bzwvned IDAT/ȋO2: a:%I( K8n/u7yZl"jXXV}]zv/8zrhVӜ>}l22IuroH$1 ,:a‰?U]њ>D?Wt a[tMUݠLcX :6ᢪnPk8J[ըV*h,[7$QFQԭ2l/`xΩ{{رڪǣzv2"^ :+nO A(B*"JhY/Q/2uLzcw226 Al4Dh:HR1H*O_IREQt EJ DY A@t#)& m;5Aocc{=[w@O^E%Ө${0_[BH\FUU BO!WDj( g6d0l۶LiP'8<2$ = #GU ASh5jf6b?v2k(%Oj ^]P!T!ؾa>[o|o>OBJMӈ h E-0,md:9eٌvV+i`!bE"-P4^6@\.O5'ٺu 7ٕ9^M $P4S,Q\dOUT _* ih:dRiz;stM"l5%T+o~A|סt3eq:^J}jI]%K+e%ۥA>PD~?*5Fw:0DaSZ:#U#B%lc]@z @ٷ6=9"aK>Q[!,-qw?uR8O?}z_SU[r{]SOSiA*JyMEHJhN&PZ}*7b):;Rԅh*Ez/:~E ђk^n_m%۰NzIA+P!.)*'[}Y "ol鼁m${zz w?&lbo:y+*\eE})#t5V:v}F#<'V/+BE[ αgbNL4MN8=CFl6)K?0۶$P5b|{n Mә_wpqo+{."E+efEQzqJ BHEgd`&^ӹc83' baN7sUhMӈEU?n5d_9[(dE;377unT\sd&$}b!]i)124 V5D2E,So`ewb4jse(CVw}R-(Fo}CEXSj028!m;2"@Q4R"}KA7 LۤZZ?Lqxbq8 fǐId}+UEKfh$R". i۔jM&vv}4}84.Y ʅI(v?<3|;СCl2m?RBaDl\UUtqb,~ vϷM չ^yfd:bBP7'<ȧVrfzEFK H؉gNr9ulc_a՗Y>}FD`'m۷sܺw/QW?/<:3E-DUՈ$(Q6uZB/d 4 hnb'tuzt6*f"M"COT !Tn (ɟ wuwycy>'M2esxmj *kB!DPm=84V CI.ۃP~T]8ڸnB%5z{HRg?9Z-o#_ {&iqH.CU54DXZ\bffӧϒrA;'Ql9NkmAʦ09:OD1 kMݼHxO´{)]Ԇl` #q |C$6u2Z c4lҔ&p݀ZQc`0EҗRT0:̀I]0Y'b/D ,"7_vP!͊MlboV+*7"^,VqC+"q.-dG/ JEjӳ':LN!NwZ(errx7$ok5QVWVh5;|SSGH nw vsquNnXVNu]o$ CM)%RƘuY~S B,, Hw*$o|ngP1@uixe:Mprl_Iu|IP?隋Ĝ`pNĎPTN^&~|D {|!H lM%t0ƜGOz $`ԫhagOx>\'B:!p7qJ{ǻNr[8* qHys!FPQd#.jk 0ul]!c*G^z93ٓpٯl:.,* Șy'ORZ]%#)XF.ϳ82g*4eaU}\y/~_~o{.ws?9d/@LJx4;M($[[EU1L @ HevuߝQnTIesX"#btRVR)b?wsjjb@6ެ_EAi*l50SėdsXz5pGxNitZ ,;AO}'|B^,:D6e6vOFʈ7 :<坕utuuU_n$MJIY-Yٲ7NLnFlر-ۢlQ>D͛ 6 PDV#:*UV&WZ!OA A1;7}V[8ֵI,Ԧ!sqYi* .B0"n AJÀkmppL`%WV'>va٠CX/Ep/il5aVY E'D)Acxn7R!6PtgEcCD3آPVN DQAB.Q]'D?MҏHW$ da ki%ҫx[J!Y*Hl[AX{)x w? >9~=>x;w{f |>Ss(y =g%rj r\rs\c8Lvw8ܹ3-_~F3 =ח}*5tä٩3}۲ G=mf봈V3 <&{г4Rؤ3:Y6$n8(L:j)T' : +)!ѥuv4Z$zrvxWUNC ."%o54#L54HP4MbڤJ3L&vBG~U5nס(*yǴ/<ˤk"rľnrJ+0i&o4K)t^@B.*SY`bvcLx,{U3) B,I3 \"$T.2G4e`zz&{|8d3SiDVDu$ z.*BBmjrfNŻ.6ΝX,>N0SEJDs} v>4@4  EIm`7#K36'^6^~sOri5~ ;]""@OJ,Cy4#EP)wikɽ,X.1?7j_i-8#J1>^i_gJ, yB ]"QQH( DMT rYڔEϪxdQdx4&sWBw DuCu}؏{VHȎixûD.vH$o!&7PIZ r@o%"QJ ۖY)Hi& na|8 iׯ >׿>"o8jiL|w8y =4CA*PO8$ OQo!ea%& ;w0L8"X^^//Nu E1IE(M~U8I&<);UMcR%=Z(@,k˷A $sx~BzVe# ,WNN=ko*4+8hطwp(O\blmWdOռy8RÚfmB!jjOP.7yP.>MU!8fӤ]1z=<؇3O}귰5u,!SDH˶Kq8PQCj0w0 "4(,';{_Sc=|Cim\fxNM!:aa6vUUșo"E mVU*8(!Fer8>uN.Ͽ_"=2鰾+8s,QٓgNLR9"GMwmhJUⰇ׾S=xLU:Qk7Tfc4M#7'Lt**yLr4^[e{i,_4B v>>jORΜ=7 G}x'>4nCcB>[sWRS'Ϡ J)wvHvc!FN$aǶ" IDATG|".h m5ql]/ F*SUøV2$kb]\"lKERpؚbyc%c(H[t+$.r"ųdB d9?*AFES=H'PT$IFﴆ];4%"0DӴ6FITTCm;CK9d S$ jC:7qڕ (*izsX>BQ9̜$U8~4DqIN+~6jmCPC&ai*7j(Rɕ[iJsk M$~~~k1`8 H3fIVg 5KR%MR "%ElZ7@- ,f6"! $h qctؚF^Q áZ%W  =ykfInlq qU8ٽa[EME@D-x\HCK'UvFx81]\8~?4'OE|XDHPuR%ø(ȾN`de,b蚅4!<4Uټia57ca=>!.\X'/ү255GQ 6hغ>sIU.l;G^g39{ k- Z$ȼ>], }??dC|c't_`yedi>0]4׉B)("e}/Ϗ>gn6+kX zM-!ț63cxuYa(D~FNX0tEric~a|3ؖ#k;\뎾crvM'NߩPD݆ `uHHa"tl4Mx!`?bR~cSL{9tpמ|'G|M+]^ 8uCLUD"eN>{{x1[S3&j\foj rDa7`.-?{ ,x^oWE])qc;\fv[D ƜfƩhʐ $B%zJhB'>JMj ^6lTc5d(0֮*2q)W5 weV^cྵFðG$d&I|rJ>?c0Ӕ NaIӔ4MRc|bfcBƘuưʜ;w??؝wPL2g{?az[ $A (qV+29;O7`orb}ΠC.MƜ(*Idg8q{`9?d6.n ,bjĕ% %z:i _ qz.!uMHq|A$vM.~xd΄Q2V E7gVltM3QM +/\2qUS E{QȨ!:F1>_#]A|eK)[l@03;VcJm 0J°`ux2I [:VqX|~G$" k BƧ&4` ?j?2"! EDYmʰkONl"5 #_Wҗᅬ0^.*͍C\֎ Jbx\.QUQ(t]*nm'*)QUTuRPL3g9V@W%8zy$ #o}<҄`/=t'iOTs[! 籱8 M8Bz_98KTk!ru&VnnE* }ϣZ2#bMW ML'!G!| RHSHᗳ (& B|Πf =} fp"I0yTb @ H݀l>)(ĦiLuC!4m6/]:?f}%]BF8Yr %D_w{?*$I<Pc͠a~~D6]b?~#<޸n]>Qe r/ 4IP<ژ[ |kd C?os;p./y:SS@F^+bi9t@G/bRNh膎T52$Y òQH* I&1aj9~^ d:jDY14hڨBCQUZ [wp2i +[Lצ0>%~QMދ?| 5ZMHE"m2  tIK>}x jyk+؄9*$P$$ސޠ1:s䤊 ȱF^0 0)pnjTk?;ho & 2AL˺$YBN#"0uI42fi)^3Ui[N {"I34djhiJXC@h TjމMJDQ=u7N|bi|k2ϱzK=831{J;i'6=p=!AG{XKR;~:P> `pϡ8!7-j9/NTP^/0,9U<^bDDp8ܵ{b dYvz0OwͰKT:X#N Ȳ a d@u-uq4#G,Q;[=N_Da"C\XYc8}N,0HUO@=r8hdF3-gyc$riTh4:=&j${0Fs9Uސu.^_c&>2;w;s 8s<>0W/ Rc Ti5[W*Ա ftshKˋO BX=RUfqm5|PFp):+ڬ$AH" syo^׭"xl>c|DP3<ԓ|ć?Qu{t&u\!Q0 _cvvz tנVv0L{Dz.ްO:/$" y;s#yG(K|sɝǏsQAzhʕ8wZx52"M7Jۊ_ð aR!0^4u.]<q05= "FslFMDwq]rf$ |,+ԕYjع7%q*{gY<"S661/LVF&  Qjg̙s?N2kd"]{/>.ͯNNe8vQ[8x4zS~д2RJupȩ'Co-2| }ލRz. ݈֠M蚶Rf14 %6QTmM63]z't&)ؾQ.QyKe0Q65LcvS"3[O2NyN\1Ѝ]U.~ KWɩRY? DJ:gaWpzoԎ.™ĤI0kKԩ>z'B*h`&2(W&)ʴzZ"ޔCy.©6q\AdoB0l9 Y@416my+j:ilm_GJmw*$i6TH)g4Qs N, #A! QQ*T4Л<S[}4Vyf5]hojb8DV, PGѢ" w-BI܁<7@3US( Uld8|gA.V\MS.Qys/Zp$^'+D}/Wr92R$E(b4kJUdIeži^~YStK/$E$IΟ9yS58rN6NdlP_dQ(x>7-/ejz?Ͼ"V)|#?.%OÏrnek|>@tu&{SA` x{XxSF/`~^&~:$*B^o-DUM\yO>9WÁ{L㮻bc,e̡(Na4VWJX \ߥv9%BL"vRTc=!n I1J0RQgPDU9+nJ2eܩ9qTǢO4#L|YK%t8" $%*vV^M7 }&:'wFp!%j{..P\xcc  VJrNHnXXNUU4֐FJFR5)ߋDU_F,L4K(Br0K՛*)($ڔEvLjD8&C5R]bTP].ɲUR LCòL^:A~? Tn߃ٽl蚊~924dnn淾g?YyQ,fue tY?♓>t/9uw 9TuV7.&=x+8S)l+g\ (Xi^oHXicyy_OIQЃpqI!DF{CJJ5èGߪTP \VVqQ3WQS%$b*[(~0%eGdN#"2jhx"YBf7UU&ȢvE6ھdM (UUSeUC*ivZyR PLTQz٣7$n ~Ѭ܄ST rH[tbj%)7BEAUT44l* V\ CŸöGcV m,suT$}ZKMSb;p^ IDATUX}m*d1mR8L{4_$Zg0U7C7" Mb3wQMPf2&O)ieh&ٞ}ĕ)Lt.\HGnqɓ_7?GǬolr}6e0P]Z5 c8)%viL/vq&% T]`;s42_F˗)+LLLmT*5$!R*NyD^pqrΛɳl]xk2^.;cx-TU0,U! <4ٶ9F% =B񚹥q0_{Ix.8v*("%IS22spʇ>AD*I҄AMѻ.}Кiڬ>F}Fa?==sVݔeVV07J&t$eMKގoİsXSUۋ[EجcE_$wBbxD.Qy5BPƋo;A9 j԰^^Dir Y:qsi^0xx#Ź3']Kwq1.p8s4VO6xi xTt}A{{,w=p@w=02X^Z2SAf{P(rxɀ4X:sq&X\\Z c׾5-FP|i 2x dYB8#aZ^|ej\4_/bM% C~Pbv Cnas<α1x@ 03,֊z3cxduuzP0uϩSU_DdD/_evJ=ȖGزe D =Q JtQq\"yC4?>riMf bmyYwh+]],O37z#m4#kˆFm5If%Q$F EXx$̢n$1Z:33$ ImN^X/ obBݯS-3shW DxF%%d-5$BU*\:<>?"gqk]Pl#ӈfR)-T)Md c>Z.|?D;wwy駙4~c?OX'*׉ʗ5MT~Ond(j5{ <$lO! ]z6_|bH?`7 & mC**A4.ڂ5Iƒu#3?[߿râ1?1Nd8 \UcB)E^A㈧N<-׭ˆz*M͍o% ;vK_?ѓ\w $&(s]6ti,=:vb.Ϟr3{avnÆ } S n ߕ'cdS>5Q$BZ:{.Jfe i3r]$RHemظ> Km‹/(*x\Wtjr(:TbKK"$SiU#\:Ac1DY%Ӌ̌23~ F3Tat&]$ ?Rbk06z|eQJ%،<=2MA, A; y2ay"PWač"^;@֋?B׽a{KQpd|nbsspUTd=݄AjDCJ=v>pM*SK^#a QZA~lxn-mcffFi&-"I!.LtQ0 qQYF'ƐM:#㴯}+i$~FFēO$A{{ PDNaq(5B:ImSk)vw{1|܉DK/n|~^g7u.pSIsK_ _6~!߿{-BEZcWm e. '1 D 9?CX"c GcFQ( #U(ӶxKURRZ[ѪRi4X^kybJufQ,yie ׍ky"@AU4K - nBI;-$S)Z# 0ָ6#á@_g=~Q~AVdO A]GW%Ρ$DqBR h*SAM7b:E.T_W/_Xe ӷPD;z`d+#*>К:L1;,AP6bH$!Z AѐX^?w9''<0{rI#K) -ʊ*^i4[d]mA<>}ݨ|7vQd ZAEJ/?#Iy"aܱm'&)WmD"I($*wtmc35uѣQC1^BQB剥S(VRn6QIָٸq|~RI;>ΗElL*}RzzFW.zL=X$2֊@d$QmL/T% Y3ѓ9"A7 ? #0[04LX$ɒHu#+iߏUgf Q`6B 6 vY :JTEB&]=/ (/-0;JwjhF YV,Ti6j([ Z:f*G*s=DIBYU3;B%$QV'5U*(3@Dm@ww7G^SҬ"Rn٤ro@Q&&&N@bsW`n9$fƖs44uM (Ahz|.繨JT6==1.355Ed1HEcv+ 4vNQEamDQ&Ha&I̒dcBQ n3@Xw="!bӥ;_t1n"A;4iw\Lv:Q`phl d$ ȱWVW| *9|)=Q0 .Bٌc-e Y\\{X\\}|gqq<\s5slԚFQnfvڅaa 2<<̾}dddec=?yN~afggپ}Y'x[o~+?۷o}v/嶿EM6WZ87z_mE]w)V':bAI gYW~L"Р?B 8>`/^w$C˨"3kiCBWRa3<7p-OU 5"?v@HYHVrm1qYL7}CF=$k@O򽎟 "#qtPxE쥵F)gUUK5."oɣ=~M9:>M#dPD޺1r^BC[]i`pӋd],-Fz9G?RBr[/G- F QmqhClg%+A$*m/1yЕS*,UK$҅UˈD0h6,M?HyS J?ѬU:Lbg[D!@6 ;vRQ42"Zj0D6T:p\.G&e%M; 6lۧۍyFG0؛Wޕ%Cm ]7[qz=4Z"ȯ/G>B&λVcveQq,RXB;Ryqx8Vd0;UMɤrT[.}Qe ]z1E$<B mJ=(euǒDYdYV] QV_R(|07'jE2ӶZ&lI% =G5,m} DIBRTvՔl ZtdB8Vw哊˄i224ȳ{E@jg}eY)5Ii"F<`[u|? KLv`qeDF8VVF<^U n71t%;@QqvTǣGHt%lS&)EA fSc$&A1|a%.\#$X O#~Q"{5붙=N\锦;GzLezG?Q9r6c_^lx'k5\#Hw>xx[zj?kBįQRI\p6mSqz.Nߑy*::Y A4Q},,3>v~6I?cc#~u'-,a$ae&Rt#4Pw"T@Ӝӑx sR12-q]3D̴}FNIԢyJf2E+lUU a.m&'g&arzױB1C?MW XFYAIR x2(<yzu'WГ,ogݿh(.f}tٓe3Y g,<}DR#smv4DbjͤUdaalw m IDATO6$ɣQdբjnNֆHoc)M: #G,-ˢ+C,Z h֗ؠZHs\ ӓH׿me]aS.rdP!.65qFF"ApBt8~y i4ٺyn& q,/ 9~(䆷jib(p:vfN*թ'4f)nLVGSc!&Ln̡KgR>Vҵ+vPNq99v6naZ>^8G$(8J7ee[ Qn!J>d7œ '(Kf|nF^Oo|g%)O|]z׫v:k]v#?s=qr.{%{޸/hW ?~qf|ir-ȲJ>_h4.dيu i_-,HRXJ3˶%ڮdxh~hP3V }r9Ɠ"G0"慳d! *f-aDaH>ų{o~w lL.JNV@&E:WEYZe~iB\Z ϵ)*.W5æ|) D D5)P(4lCxPQӪLN,Γ=vRiꆉ^r`#]0I11(H;7N6U&BW4RdEG6LDѽBH"QX;M躉/JL`h28` ɫE$# aWbPgT;tvr9X䦏`KF(LkffgQ5qq/{ߺ_y\|b}D M&SDz#G8A>c&f EQDyT*eƧgp|ر!$6u$ٗs\I8|D{﹇yB.q\$!daQ "J8I"BVlWr8sI5ryXvfAQVQ,R^Z`qD@RLhl EnJv$Y"He1,+n ERuVIV=QM$Yn6^@Bfcxnt".CV'm ڎe';v'[VΤu^FE*(sןWW?sao6bg>͛}>O}.Uo|=wy'g혦yEnV/~< յ}ǖ-[شiVuv{6mڴbQ?r;{5>Gz!yُױ6=ܳ{w醴͛7s饗MgYis 7u T.g)nPdBjXld2M tםL՚X~L6[v$E2|Q]I]椲rrg.sA1"l.x'zy=33S︈ɉ(GSUZNS@urBY O*ѿqVLi\*GMԘ^ i 0 @^IYI |'2ԟCDQg D1 h 3ݸ8}C0Ae? U=$ Vjy͈(4S+PbRgÆUǼy?YeEM#C7wٿ?Q?{_,PIgraߌժuyTǶ;fh~F(u &QBZ K$3]+m5]Y=y% 6o޴bn\**g6Jwc3۶Wl܌L%QSDWO/v,+*$"*~Rjcg .gq&޳OjJ@2^|6#m0.l #e2Qo.b(|if7i6z"z IpBa鄭"ZuW=ǎ{Uwc$?A:joz??ww ׿uyl6˾}Hj5/OnN>|es}AO|׾ /tjThƣ>ʧ>)nzF:Ύxu]|+ IМO$*EXZ'DD| M-S b/QDC!!MRy Q csQBNP-þt;B`c_lhmKx 2xP/A$꘢3O?f׮b:[nO|B`'gFC?"r$3Ϝ $a2qzuQ Dɣ^Y )_3^x%18)"JeO)Pfqc1j5D MfIVp6Q%.=db$h/7fW (9!c 2h žg0Õ5#α4?N{+r=J2I6oXEVj~KSrI"f$I$&Vs Kk8=N&: \t `f|ށslJs&)$?z6BRB.G޽{)lټ {h+XȂ%&j4e$Lq%լ wljiʉ쿬qg'ZMTDPeZ|i\.49)rWX5 b۶m|3ZAh9zVήm#-8Mم2"Hvq! |ߵ< U3K, 1@3g :LT15̧޵T:,I4jU=&##/dGZ&?IfM^LW^bv'GV0I%bGwp2]8vET^CkeeYFcA<%MG\BՍU$$(DQ&,FA* \y~bZ~L(7'*Nyx&S./㏱0ΝqۭF;%J $˨]^8=Z$<7X@RQT> (" oM\.Gm17?G*^L^ A Hr6q,+$RiRqf$aao1FK\Kwz]OYVIEKe=OcBnL"A! SGdVe1 UCJeRG\CusϢ.⎝D}%z.!YM{a"hMJ088Ⱦ}طoY{X3\m-H26讻ZEx!oW%m>.29|zA׾5z }ӛtIRf۶9xM7q2==}>ovpw+tM:th|8W:~ ITq7%vTM!}Ju+O\Z(%LR6m #UY`pZgi*S @, _}VG"L)M*6>y7]fAv )& ZpO|pm1==COr löWKJ܋& <%%s :A4I+`s: >Q.yյm@\e˛G!"Z-ek@e0Σ*Zd¤[h;7XWU2ߴRu}C~@ӸQG< 3ƵJweo+~8 Ec=U1 tw!,U0S/ 5fqr"sGrm$Dj\i/2p@T^ER8"Dҗ̻.ETbk.M[wL6!"CLIAC׽Yqڮ QV%2HHbY# xRi%1,;F;Js]E&a4kU*Ss]]]$Ph4/wsx̠Q^`~8la6ZB6EZY-m(B TMLR D VC)U/iD Dd(ʢǓKR"β87(N[$TUR, }ڵuW&ɭ-vYՐeSR@iHc|01TZQ$ z@VT `nrލJdk`4M_z|+w!poj֩-Ml(*.?(ݽoluTiիr+")$, *k^;$#J2z8y)NgifU7%񙝚]ET؏aCDLy J SSe3&f匄(Do\ DAǑ'Q%sOꦫMϒsדX҆vascu".HAR;SKiAu.gp// ~BA@?HÄշ ȭ#HEYHrf/y}5{nc=Ț$?[,vM7;N<۷o_Q|d`&;77G>o&&y"cYi <8p~J{*:?0/FYg+6>XXX}|slۙ' _P$HlGE]a!mƚJy*H &/LwbBa[K!+g-ƖA]Dd7B=22oE"+EA@)0(2#79|0x'"/??<νϮK/c4E| *gO[}Y Q>:ҋ~,#{Zhփ'Q ޫ]xu!JhK0?,#w-?txM#"I.mg)Qg&WԻGUE9^D@ilJH;.G xz8uv)[6a\?#Yیժܳݿr:dewHmfFϐ8L^'Ibu$"HҚD Jz㴘k8іmx ҤQ#|ٴiCp[Py1^FB" \"9TFANM<ѐ0pl ^"()ac7q]jL!%F8[fӮ$IA-2q`ᔐ0 p룝Bɵ׾_$3L/̡5JK%D\V1 L 4!zd0/[?%ݢInp~$e2ў)(8a)"10L*,X/ARPYUj#>MMP>G:e4gͣ%;ύ=r_޾{$YbG@cۍ 6ݞnf>34q [B PUi{ǝ?{B9yrq~/^"]^:$hi9;o`o}Ek`ddnz[n+|>O^ \uULMMg|/u힀y/r*я~$y}سgJz(bffO0G  qTe+f]f=@q`mPcm ʩIsi]e8kQq^> G:d&sͶ.~ U7;1\7ԙj);;BR* mJ)b"Z20 O$0=} dia?Sט[a(F VI@Q>#1pJԪ4ksԋ«PD3ͽpq:F4C 3J JKCWYl1+kXFxQSOQ*4`T* FRAExUv>ݧ oĒvDUCbKH/dGi mfjr?[ݸ:DZ$+d둕֫ɫ?Ȟ~aRg֍+tdaXƌ IDAToz' i׹(BR94,,PO!)& 8?o=]wIi6ckh9IJIBϱIb[I2cD Ċ&nJQI*mUML#nLsQV?ad3in&@ d&`ݫnZt;LeWijMJvڝD\"FTVCMfv'Nb l ˦gxuO(g?DN)rg1kLbZerqѬWb$iT(u9*%ШW;haY+>RJ(f""IFTi\Jt]aϕla*Utf4 Lm bϽ"?ung>pMht(Ь;ߚa) :%acpඵoMIҫ#5#C7M\}8|_~93S5ϻ34Mrwu=E?'FFBuaM3W~EBôI"TA"0VCǴZ>v|3M)*+:|uWQ ImYu3 .a|KgX^^m7}T9p'>$bb4уDB8@s-mM+vQwWoosNng,S/}+)/\7~ JI$9n àO:OT_D˯$Г]fV#ҌdS:^O݋yyFz4#ɷ_(0;T;$1^N8GstriqTqתXf\s͵|s~w]vǒG<ЎI\}.hN +iyں SI6\t zHaPU }Xam&%/Si/qhavIk-S8yoap&]W͑B;(Tjvh-XGq/K3ӄ!n`yi".uB$I"JwR uʢhV^{Btʖ@@E 4 ^S~(ig [ ұY$I~u(43QYg2ٕ4m;eUlۢ{k+ tPT8"4ih*s" ]Ǟ' ^wes.G#v#Jⱈvy?v8/|Iu`iq"Q4 3M*e8fyY]f-/ҷUE{[yuO~|]ܾ};'/JPw\q|ӟf``ݻwrM71'BBr!P(8_W[ٿ?VvwqYΆ{[n|?YRHb@'Qa7 sF[˭ai [& 0 Ҫx0ەƋ`g9be?TdrTka!oq׵(BCF6K8QdjpQe.U ll6ǏyرkFVX]&I$*u.&8 |=c \z@82G--a{]"߃_?JXnMjVRX6k3H/E_a6fGWVM1!.I'=Dɶ={F ٦GSW6T"ju:4bhw"3|+Fk3/10{uub/=o12/3@5wL;̓R*NB_&]ݸaLcک*t:ؖ1?O}C4*U~cgϞ== 4"%$S |܉CT dyt dl11"AVY9i;U"SQ5TæiG ]gI5G1C\~N>?;︃8y'ٺyeU QH$sy^^\^q󭷐$Ig_Իr]N0PF.,{Bۆpc*JiaT5"4ǡG:0QbޞfB!TUMQujDB/{躊9cq|U$ndi,cebPY(Bj+2>M=k$)$e4 !),,ڮODP UU %g-ю~ |K'"BR<^ItdV˿Tsf#:DLJҒ'M$" 3'3R_;?K zݝ6\DY4N0NjUUL~I JbY&H궱 DS?71f>=J'-P~=}S' Ddu#gARCvgD j$٤3i;-G D`M7h eBw1S^px>{oݺ-}ݯ Iy2ϩ|{<{fOBۿ|k_gi |;0g?b//_(Qe6o|Qke_}U>OO}{w??g~gogff梴wOӌ[[{|_ _^{-ozӛ^w@;w#<:'m.c޽ sא|=O+gy~2I;M]V{7D ٹ)?;Naj$pUJkg'-W/q~0^'٢W0'!m mni]NL$Q3J),DODq}.-T c歨3a0U5eF$RnRJv9ףٻ| YB_*"GU  ^K2D9>暧wFUvMz Gp=j&88y%PHE)if̫5];-1u7ֹ:  dIBDJU*9ھǸp.44r:Jkv^އ;uhnR[ G^f^921۸&&P} UY3-cUm%z rEF3Rt P*GNuLb¦!VE?C/_q o2s0Z xEKq)c| ~(*XfEH`[ ts311i>LBx[ȏ=7|;vGa mbjvͣ~@1[ďC"Cru!BP5|grbo|[~ `)XQޭ(պ0bĄCVwSWHIF&!egK33!LSEo,UM(Ily8H3c ,C={BLʃ=/2zW T8 EQ4\+7Q0Kkizdt$q$lڑh3?|BgKŶ(J]7 A\)B p3:)]%%(ln(TZIs/ͳg'D(A!B_%/RT4R cm# GHFQ I;7u!ItwRV͸!mw7H~~35;qܑK C1HgajQ͍ ;aI%^D-?y)B ʹd2fsȞ5"AژJVz#J$A"  ?r(}8!z sKbZ8r>K8˴ U奂)ss A9z&J U5х7hէ,L?qܩc!t۰x?P*[)fLѭ$\7~&ϦMg*ȑ#O6E&1L.տo9~%Ead BD(HE|r?W_SaeTA@2&8H&&^S*2i]]RJ(8נ'aBdGm]]]|x_?q]|6-\IklFliͤE<26;@ڶ:BҗM4o,B~ϓ~i6[<_gdC drj.(y;Rw7=ͦ /Ĉ}]~, 'NmB4@ϒR)2=ulSX[], GG~2x:)y6}~qs;q2t,-Ֆ14]Q +MME*K50LxQL U4!Sm[\VwIde *g^C} l0R!6|cdn A(:LKcJN\8T*MfI }A؋P?}-fMKM{]N!N\=fd* )bФBT\fHˣ/b4=b"EJL;~oJX 4tm'6 Ȅ0IyZDE1[.KEQ02 ؆FZσYb@[qg$QD)"dSh"HϮRҋ/ݗQVap`mmBE#ۉ2evBQȣ(M3mc xUE(vf0< Z!FRv| k,VҤ{`ѝJ=Xg)>LV4SGՐRb. 2kM 蔵4sU3_!#L&ͱ>摇/;4sg橧Fu^|e_<7㌍?ϕW^"o}h[c[xa315y93<;\~&'5!&e%&'!C\w0 9t}W\yհ$0L/:y! \QBVxɃVI!}qn5h5rEbZ6KKu(^_&RGqbg ,,H|lڴ~?M7uMxXad^" I=[3C'\MZQ[©HdjG$PLGUҩ6E,U8ǏO?]IL(&(& b0& #0&BBMO%1]]Cp!8B,v\s/9,S&SVbSw]A݃ *"槑=,*K s;ցjd$iKATap5lMT^,l`~ oR}_۽`lN ތ;ӿxEQ۔0 7]C)e:vԍήtBm1guӿ]V$J-Db#4o3!}i ѱ9LԾTKIEϝ[פ\vWL2nD&{]t`E1N9NVbQ<'ڥ+رMGq 7@FY(VFK (jRf'}XEY:f1 4 $qY$I=O Î˳K-nRC0Y.px#{dT>L9emE!Zl^'i:c#g ۯy'vg97qdaX)Iӵ/(:BD!RLeX$^:wBU,IZcG2:^::yX:UU;d.kvHOEvr\ *arYsH̅)DqtR;E+ǵ"OHmn`΂H瘞 ~wB0G+I P,sl; IlyMţ˼ͤ #T3Y}E |)LB7ID"&ECHƤk(sX#B)g13j.Qta Yqkk)2!ccu>v0wvO#`sI&~ Z&LH]KCeYtfcB t +%Њf=ɖF<֦^=t%B/yP,2mXCE ߞ{Z}xvllʦc0=[0ȲpqZ8YiムCf.,|"ʰ%Љ{v_e{QepBc`eMJI$J277#Go16_/K5 qub'޲7i{y!&Q<͕w`~Rki)g N7+W,--hTPrf/3 0mRIX '|r)4uz{ FG)|Hϭ9!)NO+ivLp\@]`N$ˎ:#-R1 5}J2Ii͎H J"jEEk+= T征 l`x}IT~Ͻﯰ#W_&! X2mw1سD-<ŏN| y^ j2ۙ|cͣ"xh_]?* [~!y4*L:7}4ߥU0pKˢ"JPZZ%G$DG$ɥAtJut\6x]{Mru$KD[W$KRi o L FƝԅ kP{>6s]JbL;"MNQ44"H,B>Q)IhfXT. ($MC^  L;!YCwhh`K$~ôַ8JERsϽK(>q~;R952I$^#[Bx+`xA77uE0=Mڽ)3E,DѶkY@JI,-R- Iglą,4=xN~g5333!?R]6TnrfuGy~8Ø6łm\mDҚW mag>mnر2GO~+x{Ј*[& 2IȤ;d!mQjݢe Qjklui4+dIjEU q:{EA44Mé̒Z |T"5Ew5&I-JӨQ[^DQ x+P,SU9r0]"iD !l6WӋU4NJbﹴUM4Qi1tVu[~zwPog& C\oFQVJ#2ֈDX BJ+S-GR.wWI%ڋ]/uuSٱB4ONOszv&$]iA<$%Z T ՄYƏAQɊxmDeJS/u>Tϻ|QyMm`Q{&xW` ǗyclޚBU2aj%C6{ʆ-\'J$~_Hy0OԈBxۓ<Xzel)3ԤZemu|ѢDU E[' $F+^ċ[2A/nj7nӌFjĒhU5!4la:>Lz(FcRVuL<<?w}Z[Ϲ0t/Ɉ$YF(20DLNwEI4guBHd'PD(|%?;$ `eK#eT?~Nm#J$Ac tF 剺ة \}[QJ "5.M= F-{;\|LdQBQ'R-]ѣxmtͣ[nyc*v{b)S^RJ(A3tD&ݏj340(B! X'vDP>c݊"6nQY*g|7BtnEBQN餍mW/f_UzzzPfɾ324¶H;6Y.2r);︍wrݵWՖ-LtLf mԗY9m$O䷉6ۢݬ>sZx %ɮ*|ߧ8!"۪4it׬ߝ`keAOo7{\e~ZEQ cr%qLUŴR[M6^!l&N a |yu{iVeROʺ#BðR+ OJԊWm;XAݢYoM51)B,]]nhՅ8xaw]_,qIz4ML]Q]^Y$\tӤP?')$CE sK&!T["Av.iF6O|p]2 3 (*SV {PRO| C9F484ԩWI}CڲO>s+ԟ~GLF1Ap&mʞ+Y&4(iUrV. US; ˙="7OGow/Rb~0uWt4#8OrBi` l`z_ ٶ|A$*[[03H7ah,C8Xz 3&bM%&D$AmGƄR16fqGG!3-v)lRJ$;Q"p" -gb[`%2BKLDL@@Pu(؍H)Ctͦ`G^Ɩ>"$IB0R M1s 5'A*K]a@dzQ.F*Y3&kUQJFdPQ 6QЋ S2AGX)]#(5 M R!T1RX3Ǒ;%ns iDӋfxM$Eh TEES T]Qs~vqrSscm$цn:%c>%!NrOG vbۄCٟ-仲'^y%xn~ nj-=*ryjGGtw5`yot!Б( T4ئ8E1h&a Q3>~]HTX̓N@BQRS@jJQ*)d*{Jo>ò->`\w5-oct3,M4*xNmi*eaFέbZu tBQ)%d" SE:( \$4q-tUs۴IF ٔE*C eF( i5>NF&[@h8uQUv$t`"ktÀ( V~wQ5]7P$ɭeK@S)T$1q#TAq(:仪4G.Ba.NM  ,~g//s<Y iYNO9%C󀢺3kdIV/O-sd>X 'ϞpzE˭E%+@<6&СT!PDEf>r$mJ#W;Hwۜ<0ny |㵳ԜpT-*.i6Z{7o$bXŷF*0>8#9e1J~AjPPQ#P5-E*łkkL唙ᶈG ¹8'x*^FRdx #ǨiN]Dz!ܿ )($E !6֩㻯@dʹw x@cYW6] Ӑ4L5zc奕,8o ?#?Y^?1Ɣ%8jm9}͜@D:HS#/*4i`67֩9^CKL)v!FAO]zФb[eY2v7 üs*+0f4WX>vfunfa 1#-;g>>O#?#[Za{t ?qN5̋kh:d <h QH6#*JGm[o=yWm]Gܡm 6;C 2[MGD]<Kl쐨|XKC|ScDSn,旐^)DY3Ҷ\͗h{/n4n'~ZƔ$ ťU,kRlnn_=(f~vW674 enI:gdM7Py"ra%4, 媪Ҙ<cr3XYJT_B,i5Z}\Ǯ5d2\UIxR.s+,9yTex4b{c"poz=t))ʌȉ[;ftFÜ,PuWUIAc`qfYpÒbȉݴERdBg[p &e#TiZdFzE4 hJNXM$4[sMOjAUdKyFU UUt։Bh4(VG7L+'J83nT%{UUg)uϤ=D ;m,˧,+|ekkﰽͩ14eN-h!-Iv eU0 TexrɸEnj$Q,.Xi.hoYWɷ^{öȳ!o:68GXꦎLk:hA&I4!S\Akn{]ؼtv/}mBG8ÓSjN&%oe}19y'}f GEd<<k&fJc/c)r8!,S7E sqk-cjo $k415dJoS.k&O>P0#A8!ދAuqyzq Dw5QOc~ G`r7 RjͰ0܀}6"K7me1t)g9yN%:xƞ,KpJD{eYE!aYXVgrH,(M{*νϝXvןyE^!( uv KLJhЎKC40JB7!N=D1K9x R# ^_A[}8_G7tR$qD85zU"w&473VHtM;ZKEc{ գalon14Ft4AMɲNiRbސu Y(.'̷YYYb{spcLμWU4ip1.^Bg^ z &%[ &| \\ߤ\ GݽVeI8MFJ4-da$!iSXC3LdEZB*2(@teSctј :mg)f̰H;@4l{Fv+ C8sO2>Ow\w{|O~Weų?a&5{3o _5>("_r \$$a}=kcM<+=/ ϔJ&KYۙ;&QQPLua$MǞt2t[E߸Q tԤB8ot·?xso{{0Riҧ(R jr%(bu(Y*JD\{V~PJg9Ӫcw5)mc0pOR '襉f4ў?J* #{PʠITrDb|ӄ $% 黟iQ(NyM&q0,6WBktuZMְ#UR3)U DR_#:%ߋP@T*|Ah5\}EYS.;<ߡ%g^?cLo‘u8>?_|t5}c'W]~~fMզ*KZM f2>O߶2]G@Lj*ö I655,c~iuX HtO=I>OiX]AkAhbܪTRIR,5ۿo'iH;`0(N,M?݉KףpRbY4N<˨M긵VI[WGiXqY]YF)a( L; ]* $X n:j,c<Ԕ"H8;kޕ^@cneLc?YV h7,W),QBpYhd^&g6j7)R"u Х Il۞[.)R)( \<Ϥ4 g>St:-hQ%1T8iF ē>m Fh! Oc A7-js|*MQ}3\ɲbf1cSw=j"vI_O?裏̳s N?_^Qd#h¥볛$ ]dss*\ӧ#Gx ^C_|sCW{f5F;C_TeIGNN87X ,)kES˧P#0 gQ3B7ۘ+Y%(Tιy ?qC|8>]B4kZMoEV\$a!46ہ4M؜F[QD92ooN;]_z}ETy*R {v3՘3QARJU`EoKnEʤTq:ηYX âmԽ6SmHY>ò rpkI>-lM_<*Ae'&;e4A{iQ6t啣Cԩ(_ )[/ myϥY;|/&8k8zw55^~dʛoɧ?C,.3 >K?\vǎfٞf8aF-h_(pi*ɓhX#RbaCeF5GRrf^F-G]t&s­Y^]ǧ(r>i8ԉbp2jhRbp`TYee &$t:isX^GJ4˫cxGJR)Uyd_D1+^Rn))x:FJUYBY˲$/+|YB-BJ!kjgȲ W7@)TU)CB 4AYB4 GNn6 ium94+n+Ν; ȏ'i6۬7)˂xH4ST ޱץ}绔:aMԭ7&ѤN{0#=mwQoapG| ^z%,Ӥ={W^RJ YcUYReE!ސ8e17DQH? ;m>gx9iD96@wZ#ZOϟ I>v?p 2MFi=@4>qp:Avu˔GW):KCєIjvcʛ;8!{Y{vK+X#>n[VsimD2ϸ޷! jΘxҾa^x~qV=LW y YiXRn[i~ (~Ơ|)F$+H.gOi0@~ ̿*> Lu& |+[Yl{aUQAn9;ȉʪݦfPYpL۬|'KA`!1&@RބBUl#^:߇7[(* :kTYUM% } )*9-|FUoQE` xIθڦ(Jm\i\l}FeQpl!N@iYH`!MPϡmd^Te6Q9‹,o֯\{ ϽCH^Dcԙ>}$Ixk_cg~puXgi/tf 02h66H)ycvi50BYabU0;3e欴F1i/tHYDyQRr4%]Sq6qvIʪ Mp+O"&A EoI2 1ZI2ū(˂<dM}2EM{cʒbh?Ɵ+' R1 0 {䙦iخcAP#I38&2֯oIIbiU[4~y! H1T7FG@[x:9(įo5DZhx~Bf E~~cR!ȴnuW;LrDT4"!,O8M.\;?}Cn{3\2y;._)96.bXܴz -övev5GNS7/_7Nb/~}Gxtx#lmcpxkIǏP{){Kr=G7s#A zˠc,z]TAm& ٢7 ǩH ^4 ֢L(x'nakP{I/ M7:Š~*I oćK.5k'>=?yp3~k.]ԩ/2 28Oxȵ`a7|`;?É>Fa/.1}}1(ʢ`<IC 8I S)pwJ=AoR% m3r[BQ4Msm_Vhq ׹x"((Ύu4]c8`&fGWi4[3eiT7c8=p/ &^Z8u*8z8N”_\g纷B&.~`]{:뮑;g@79NFh X9lRoq0e AeazZQYVqz!qC{h]~ᗾٿE}AR/PKc,ϫ4EQ:Yo*ʪ{h׆?D-?s͙}^zeOxqguE\H.ۋ-ctMכL}BTdy BZ,-D ӵ 8.*i6eZLyIjr hz}=)߁v|PT"AZ=L4Nr83Q<ۀ`j%~5Fgؼ[ζ?o[QJw{]&췁 {dfP{N~r>EQ"ɑrf,LFlF(EXƝYn- ױDEh̓Awn `xu}4t{YB&9n7#n0 ÔҊȼ#?72/}*F,Tf1c{))7,Yt4ĩՑ9cͲɈ$lSЙkߴfYdңfi躋8yxgE,4sdɬ0L ӲpE2i-1*=y~,nѤZP( F!W֮c&54ٳ6qٿ&0\˶ ILSkY2w,M/tu#mV#IB}*,{o .E̷Ai;]U0 +3b|N*rMjfڮytZ5hԩ  4 qV6JTJ0RUX(p8]OMISfW%䐠 &Yq2߄(B=yl0SW含^c/q$O"n4yxz_vp!t,Μaw~0F!U5`(U*Lz{>(HӔaQ.n@)2qT<ɷZfX %tU`-ڽk8'-C*}Jé9yɤ>Mh&Mx(NmTtE$VPqZ wWUVeYSj8" &F~&?wX0†C=HKiS3tl pimZwwt7ӿEVl1~ݷ@1 /gs3_'$VFZB8{$ l5< IDATz{4A| u)2fe{vOڥ6v4kph7f9pgk|ƣV7M,g2MvA1k6 #/2lM#{:˲4؞^E3@ m&m,]wIÂPqTլ;(ʹHѐJשu!FS$b2&hvf観Q"gm4MEFd`2h:O5CE.@g-?oh}s#} ]6@STܜXH4b$+l'jcI^zsNǥD:$MNvƬ@X>j&$(Uo|B*4K* AwcI:a:5 .59GQT*!4LiPwU:+?yGOlz@/ʊ$Lܺ+u|0gMIaH}(pH)uG^0i]D! ugAVGY;PJ JkFRhHң4.i1&vhN m٩-FU%hL&4- B0H1GD4u,d:8O^V,-.!8eYFA4"N0 )mׄ@(ҝ]jg34׮Wëjm,X,ϙF1n0 ݰBg*ZUUR%c'xg-11ހ@PUw *zGjJMu\~R {GP4dݘ+$v2]5x M)'2 LUf&evr3bJNiNk4b6Fޙ(,(9EZb B覃a;h~4p9pHeyA%4 \@w]5ln>M2@Է6C>9gw<Ӹ__5 eFTonŃC$QO~)21L34c$zFdJQXjt׷x g b~Sݜ +*^ )$iݶ{B(Jw'8y$R:5lEWޢHij_^@:wV$qLw:9fP%$%Gn_UY cͥ..nXmM#~9i}T+4= Ҙsd׫-`V NMu)㣪tz R=BTBM&}A)yWbԾ ;RAZk \PNl\F,rJV t$47R7@2,-2NrLZά Cytk(^CYI6Qp j^pN:.#O"L{=@T)F ݩs*FçgpJ!´Mtä(Jnir7^PjLĦwi\F 'w h+lo\*r7 #;~Ywݍ=k(") )Z^Ij-9,G(XEX$!+ZGȤCth+Er4$%R䜘 sQ]wUC6t7HH]YYY/[/#ϳBUB!ߊ U!DQjk3 8^a6, g)KOyVZ`d"Fb`Bh,nc2=GC\QdԡR.x.0qE ۣ9x'?Svyu-25UVd2n]!B q(W4\~CK$N G}vRcY.ah`ytry//beRmKRzaqnXEq VTu>>Áfzac2%R&'!*s{}OP 0 vi\;pG,vfBkɺ[{v];D囇[i)`]*gOmz&dL)k09mbE`]17)$+шc+}d#cTMt[dfH$Y qdC )iը'hnon"*-,nZ+,eR5~Th8a8ypj]FgIH! !M#* !(ۊ=uk&egoh*n.>%c룅P J ҰH-2d|݊ȂW4IK@?=%Y_dn8Jߏ& Te 55OI6qSww!JUxd'NlBSB}`,Mҝ[ZPoIso3M4H _xJve^sҫOwt9 FW%\ -DJ8byGx]$iJFs7CJzrgui3 ;-\rt◫EaT4R"iۄ)JZ`r G=/`:-,ץT p`CE% QAT])LiYzBHQֆ4B2t)U G/'+u$v-0ҜT$Oa2!(J *,f)8.^P&Mzkh&c(3F#bYHrA1qTȢ6 xEY,DCcpHBEVA4/$*()fRT&IhنuI>pہ?xZ{4 밶HPu"XADm` wa?둄#gO/~Z>8w/~cY6Ir 9 !vv"IJ,äs^A阄{jIt;g1:fg .lH -MT5};x+A)_}[mCTy{HD4$2R\8oQdǸb-Du-rE/n2 D/HJ+S LAcgH.a&ka^O>Iq1z.22 !k޻`ASgw;X2ќXae< !w!yPGuSՔԜ i5< Ƭ]]-]Ȭ*Xܒ&F =*&W! !i*>2LL_^Sm2YR\0t9[nn%wWՙ_4aA6)M#+]S2]a R{GOi.Zܞ|%^a`]ïN ؞iUN׫dC,&\ ,ȅ4^饬$J3J3!LJ,Ic]h!7h:|G"{1lI*ggˌjGUy@JDnj\(S ˩c"j6R{%\3Q} w čh 64isنz0TS(50LFAڽ L^Rc4ukuՓZ0ՕB=9Pv%j .+JЊp<$(-%Cք{ӜM>aXID1* .MYW6 EPi {!W&rVS2$_+Wkeم\ QV.4M\GQ͍b4*cӴTv@I %z`TpQBYAaC s`テW͂,QLF~J\J Rb;.I"KEPDH^AT1_°,| *8|txe0w ] !s^ ٻO|Ir4%zƩI˶Q6RhKc0=um>n:e">s|Cj=i2ȵԅT'}/QViſWQzo3u}Sʠ\x,T j.%!hKp!ĖUOYFE.. /Qmj6*H%&.h}Gy)xHub s 0m,)WRmtzQ΁l{ ! ۶iۤiBYDcgϠtW/0l#8p}Q Ȳp/rwz8*Rck#E%!['B& As_ á)Nma،}V;Zm#<÷3}fn€ՋTg]LC`ZKkt܃1/!'IZ+"(rz'cckmt6b#B ML)*S;2:ʵP3s[U^Bfģ˹`X^4q0 L﹍Ld~!j*anDA2b"dj 6<17qLD&%gmV'ٵ{QuaKTh!Hz{)2[XX.A)ER,s뛻RIY|훖'4X0,#ךH6c/" }i̹-Y칣;ٳĹ#:\Ej?"$X^LڇLnD`RyA2EH)p,ioud4iuV{X*&KT&{D!~i;ɲѠGaѠKwmgִmIbHɗHexAjcˠFHI9hx5\##Vq݀ᰍ@`{%. վxt+2̣mهeۣ4; t4@۵zkx 6AP*Ob  4q^3r=yZ+ˌ oA9xRL <t3\RFEF^P&h"RP9RE:dVBe"$NĸqfB#ЂK箻ٳ1M>$6' o]gZm0JQY$.ð[{q̨%TQmNR"r<$RHy/eiJ4.^~{_>ҐKNi!Z)E>NRdbrnCjr2-r#WOX$ Vb~>ay"w!魠UR5j JZ%Wlsƣ[Ҳ1VZw:HOc<3ϹK<r;y{<~]~pDiKX V"UOސ@EũgMYCuqǣy%92w3@}aD |,6~mK:t^(fcbڛEQ˧ycCwnj`QHݡR4'(5&hL̠rEѳΩ3/R.+N MoO'O{'TJ~$I1֎cVVV8rarܛv\;E?* h?SLLG)Յ-Eѵ3&-Jhf볐 J9ۓy7R,%ZN3Yo#Wz`6eM˿>e4,,r+Vȕb5ٗ3S 댋Jr*ӓ?G!qpLqlO.-F XZE6uūQyN89ӻa:â'f,v\+ZaB'%Ir-,F8cKoVњR0*& :)T%_28ڽԅI0ΨX5 :<)Rak5 E[m 0+`qqs8.'O+R*40HrN"F?0TC:dpbTW{op00y9^zvj[q{*uv}݃uɧ9m`cy,ˤR $պzrqENToRa}*bPkMi{1 Kb\LzV0Ml/-p8,\4E4RucR:-RrNJf =W0PB2Ua6ɰaVS7lvup]AC}jC :%z5b E7~^} ҵ\^97_=đ#gy睌Fx⇼Q~W?NwQ4\e<ߣotjrҚ\V%yw.PN077Q# j.-CKiQmLQmM~gs!ԚxA!ik,V$IbV4*u 8W(8_B>}̸4;wrFcÇ"Qـնs0p0ذ;DEʖW-aJ`mE|<<}iVT&ovvכ01yX3Osr&gmeIZO>N&*&Yk sbu )(7+H+y6.mtHDI{J={NWiw]^Op&l4,'Or>&u-}]F)_WxG8y$FcY{T*z=y}Q{1<7ev[^|;;vlvrG>򑫞?o:;Ce!w[42IsW4C$# 1[[*'Ks3&g ,3^p\ "3QCMfeS簃2Yyz(t̶圧~p ۰|,GĊJe F[ks >LB&I ! ЀQYDGWd i wP )/|ʓW7/[ F Z6)z!äYR`+}v{JvIƔgrWa[ e0av\Tg!4k.TDֹH>2>̵ۤ䷘tl̓zX/PwO3~"+Gr(m)b\Uyᅀ<@ E~wlHm> qA.$Nh&*>6i !ΒT|fJ8=X'ʄXMj&Rɔ&Sx\DKˌz-_'Uݿŋ&DMDJ&i83Ιl1Ef4LMOS*6$ǵY֢iaKq\ 0Iӄy,&؎p]]PغDZ]x'4T)WP8ʡH $j_?OsTq! ,Ӹ-i,q$+#fj;x?G_8?<4Q(G;;Tݔ'pMŕBYY waZb' !)Lub.jpcd6(%I[ {޹cTwFQyXj9~{=~7~"} >1F~wq,MYkL7x'wRT)%&<@Ƭ-M쾹M~񏿮Oll6گ}~?_~|+DQt>(Go6]")Ϝ9Lj׿KyT _}ɽH1mō P7&+ ]ƭ67ςMnH2r|0Tk(G}%x(jj dlqa04R0TBbeCnR指-0N* tVYP2nqgA߃dYaHii]$I>Ji4! ,u8IJoМ˱cǘnNrCy4je!ճhĚ_~]#_S gΜiXęf<{.ZޣAjmjUZkMd849RX{tH91 %5~( ¼ Z^)4#,IGC,em3vʍ),.vzm$C)~(ɩ5 H8jw1`Hi܉I,'OU2L !Rg*4#b8sؓsHp1,Ա\H0,÷ͻxuѕ*遃~4XW K謶3?)ΞZ*,BbWU3X0T'*D!Uڀ s4Z3I;,z,JQJsG?G>2>#z*Ah7?)4MM$X[[㩧ⓟ nRo~>snLRA)ӧ;{w}7g>n.\ɟ0??޽{oh=?0QRЇ>//l|ӟV]wܺ;e7t:roZ ?O|/|sn-KTZC[ MSp?#,'mHu)%QET*(n꽩di *>2˵f t;m" PrY)@ZlCV i36͡ps""K RFe9Ē B~tS3x Ru@)\$fu0dTȟ-% to(ʓύhmW74d+*gQ>Lk/\ [B2pKuI`~Fs檆,K6t C" E&hrJ dn,8qm<sz^EDZkoYT-0FiB1yZ2:TK5K0cEdgprUV"'uXGP^kV&R"h5쉭-;8+ s5Av3,t:eʲw/^>9R~<[ l3 ګg1`ߗ eV8+qqq4p]dYp4$zl^m8\: S$ZW-J)A+pL6V9Ջ:k {piٸ~aMtZKdIe;خeɅ}T'fj˲F}rZsK~!5ٽw߆4e<clE$a׽JL%%D~)%a`a OηW_?]wAOx?E^㩧'NJklӢќ`0&o!ֳSΟ;Kg޽o QWW|k_,~<3(X[[hp]wzo׿N$|SܬT*vbqqg}|/;DM[ aԚ3@#gCM^$qJL5,ԅsXszk{eJdGVdC" Q 1LU'Jq.Q;Z>䚐UR`4)zv .5U״a6q> t9W~Coi{ϵ+ J]&}.5|GD~g5 ϭoCɴoØ: K3t,ˆ,Skphrr`{umg0ȳMm;iLqʍ9+9庥UiM8hJ0nXYLF HM?I[4D7Rsp[AsvR XnE艘@e Je`1Om){rHΟb:Pܸjo>rY 3N'v''^۞#d4k! 5>/o?] _pn?R6_fe @J,jvY]p(p}<˰QQ4Ӻ1arJ&3ӻ1+҂*Wi$Xcy6hХZ@Hhn]:1 {.ar2Wlg」lO媓Sɲ,G!瀍c0s 6~<`&X3p;1.6=` mld,uZNNǑZR+8a_^U~N߽}D5&Ӆ)QĶ홒+MSw1=BױK%T ; '%3sD =U ؖo_xf~q($Lf Üf-gy.c|_gŊٳtd|t)|qlGa`6TT. IDAThzfь!5eY$%EZT&1E*xLMI3O0MY -bN\(ɸ *ȢttcY"fwv>*tEh9$G ( #"uU##Eu"<|eԢ$ Ң5ޮxrz0-My_|Yv֢2.u{.zLlB8mYT"OqG\kj'E[ƶ̈́^5RUKNC4=rvj\tEtOC$0Wm.^~yz{tIJj!MD]Iu]dp(WH+J Jw&μ 9d҃2a+,mݻv{ qtemT'$ws"I"H%K0p~@fWö,$Q$ l ɞz:2t-^BXqwBc8wxGgCan7$I,v|CIׂ<lڴK/olڴB@GG+欳i&~ ˗/ӟ4{y022B*/[o=j\gX~=?񨷪(B' /+<?Rmp=E_e'vl1j8lٞ`Ay*M:{)zJuv_v,L4E1Mw~ᗶSL'0)i{$Y)"*@hC|m#t%t$C uMUh3m 꾇:Z$F ĕoE2RDWeQD.(HCwB4:$4Iwt͚&0$Pirh [.]B؏Ӑ:!h0 3Mʄ %]bkQ/QS#4wk>}=CL ۿ@晴Bމ2C'1}(<#DUףVKJ,syLsEvH)9AIEP璔b&Jbnt" 41ImQx4lA3":0"kQBTFZ~Hr;&?f\~Tq6FfFl2-PQ0&jl Mub $RUE PUj4Mxq;BE\ǡ\*lXt lmQD 0M* yuNDRAj"ҕgm# a?I6lPTQY%77u]zcn@J[OE9?zԫx3l'h@$u/[|`Tih M<89DN6Dž/DhϞg㵶?>6lpe[fۊ\.7`m`!$ə߆SxIT b3E"<5d"."EqATAx DReʼn}UU[s"2r}Er땶C1p]1"+=+~||4[xozo6NT3\:% t5(-j%3JC +BIlBApxC Dۥr-#UY> n튢H;Vju]=lݵ, R;HCy H.fEC)j)ԃ3cR.?W{Iē.% CR@ӡQE @5kq WB_xA%QzA@TVDE^.z]I+`0Rt IjM>rI8m4ZF^q& q{m T$l-?@YtɛSxkt<юAZ14 E~^VͲt/%G[ɓO̯OMkO䉢@8i6gM:jg_pG'|Gc$E EQC t3$̺SUX"PkMuE'(}U -ƬgCD#I(zIQQz)L8Tm=Y !H8XT&KVeΗeTYɩnxOQiyQN_}lpO#  |$ yx'S% `ѓEt 14<4-F4ӔSFvKQutM/Q ,Ƃl 8$1nx(WꌏO>7VI9jJˬ#e&ֶ&2*`EZ$KuFƆAմ(7P(hVl cj:ݢZ.iMT#0TT@,= % }#Uvp ^3OqM͛_&ۙ剧 g3AcxA@g"k+ո/8-Ll:$#Tޒs &Bi7Jaq'<15p~LUg<ս$:64- m-9d'lyf us9+ 5x;?|,#Xݹq9gy.#{tV&ёE |BAf}]I-wc2+c,a7y?a|կ6 ϱd"z;OMQ(~mŶyeˋf.V>W-"39&x1AMam,(v!<L>9nz)㮟q;H$2G{$87|3˖3'|od}qUW#̬s~82@\}3JC(J3JSx}$*'b 3=Kp,wtA.h?xBRZ"FlZ$ a=!z"Pw=ZGJ0+ 䐆 @x@l$OH*MGDtEϿH <_d 3;(!:.U^(lqIJ(V+lsιh٨}tj_>46\Sb4DIQ)N# t~0ɒ%˩T~N.XĖ[>A>cY\ FrXh,I>!IuHB qתȪ>S/{c#DiRYJgG75Da:-]'MLn7 f~KѬL U*SZye+ѽUFlyALn|n!"~XZPj2H+WmVZ E3ON8jj /#Ggi L%RQ > ~e*c!bۧiYFP"!v[VfXv-m㌍&&ٸq#`ElB8]o&;,\h~#osGaݻy//eo~{IT.YrAdIC/ﻚ6ː<ScGu**'+G+"!L`H(A+Fgަi295 Km +1A$rKxvo /l6r#1[6Б׼ɒw6l!I"Ob$2 ~SmGunCLHEuRq]rBD@乭/6y]ڸoNߺ*suQkxqGsE5juކ&ӗi,L-t TI3)Pn (m2YRT"NM#|eaY R>#YNQ4"K!m}T\̐CٙC֙ |qٰF)0NK.2<Ni1i&!AIs8yVM9o&( 396Ew:Jw9GExuTL5mvKKN;wM5Wg^z> Z2(Ͻ*W>Ghrӓy?~%Oqٺɣf\+B+ {<(.jp䩌26h|!u"QifsPDǒ8-cJp0ZvxF(CRTb jb1O2K($ z>{W6cBlݶ~C<bp8U 2=6J0"a4K[G>Nw;,Ȳ[t,XQYБJ *<dPU =FD4CG|'0<{&F;wUәʍsp1k%a4=9,IR`vJ$L0 ɉqD%HSg'?Ay'KT;LL B+%e߿ ;|c[%`0cT.2}Oٲe -A3UZSz>E`)Ĭi9 TL-2qJՀFI"7A{}:%Ia:7I\8E(dODu ŞxdC^ټtG֞¥Kg;gl۷lad^zGG)?et &7zmAO|Vwe/*t ygmE >mSxT2 GH*hDiMS3izbR$i2<4DTL&IgG.k">Ykfo~3Aיy{ޜNb``ur=pf8J͛7qF! ՆIl)>'6K jSV]pN#oHS8n#,Zx6/:؍*?B/L? 4"ՠ\7\p]!dMRʣ hZD8vU ,T&O"tvp AJjYiʈH nq0Mlq <*~@G9"@gR<;Ѩ1$\$9K,$-<ץjId:4x߂{ZÖϟ9zAt:0:CVB @HL% %_j1oReq=h|U/f@IMaܕ]T6Śs]Bd3{51$E&Cc_, Y;!A+^zjbyN `-<ôlpx,Ae&PSgH&+k)N Hə?|r}o2ဈ',eiŬKW<(TرIgu*8IA̓r“;X LɈNnRlBLGXgT.j$MW:,&뱰/Njj97KyqWe4Mѩ*,$[+RX$":j I/ $xLͶ7`խ;A dpkqBVd%| ]Ŷ[SxIٜu,Zt WD1DXdbaX"Tju] ttҋ/˧~ɧ'z 7\jaZ-D2HB<Ӄ/ "iȢ0ִJh2M$^E9y׻S(Ng|?x KZ0s&A=٠w(Qh'"1DYA ő9$RٗEnkQH$RBar9nNT"7Z5ʢ3}{@3P}B:g?b!Ǧe izI;e3"FZM~ͣn!(ctY "#X| ;vma`@Qt0=٫HtC+4!8)+0(Eq]Rkd{sՓ>#"rB˯`q_^H\>j ytA3ТI<޻-uz6Еҙs:JUFjT1lAӵ9$e äRIz{8s v܎ahhzKfh,ۀV˦\5"M :rh?T0t _u%d0:::ַŃ>Ȇ fҽ,YUW]ō7O1r-{LMMqws-{衇x衇eAVZ׿Y?vw{9s lcҥ,[o~LLLzjկ" ׯlܸo4Mq[i o/VXO{nbk׮K/$/woU҉;ɇnyn#ZC[Cb+۶1&,SAQuZ+/$ Iv"r`5&==r6l'D}qDi}xkѥ0c'zG0|hq=aDO0{|>rB]F-^bͲokWQA5&H8zIHgHJfDa I2#x/H RA|N&iVYP!Bh?do ˬMxTLjD(q8,,hytܲ(g,chX q!x>NCp'P X{_x4&|o/͟L;#{*8q?c(?%/={Fa.|?BL5D+ۍ<"|\$:zđ뺔*Izp$(-t7Fd1j(L`"y$I1 ]b ,ۗ٤R*%htt6xh@U~:ygc2bo}&4d-AMeZxȲ{4F4d"*?Oٵ{6Il)TD=3J?DZu!Ȫe6ETgahc?)<ӟ"~:CCC;"47U+)dIF?'٤^)%HӬg|8UC#DU[_}&I&b"v4{FJeDc3) -PyFq$j[J`^-ۉJҾ.<9YD|G?֟fZxC˶ :fB,6 Az kDa)z'H?) 'oLWhM#T""]9 AF_Q>>h680UۆTS"kB YU)x4QLj5EUQEΨCU5hX#$)RiXkª{'ȂȢ; ]%4x1OsDrN&&͹+Pd>Rbբ /힦\ly,3T/ѝi*ȂȒ1:ݠ+'cP}~}b{ 4Y {$$t#2J51mEJ'ys$g8+3݋T F&u#9ȱc=?K> - _'Mf$mB_~u!x->K>Z_'5߲UZ8OĬT|1|),qxAJ\(ߓ()2LSZ\ QD㵛d WJ8Ө e2ץWMکx($Iy2JX<yoGJIEJ'%?+U^WHR(eAR*#)%A±m8n3cbrr3>ϭd)VW?#{ۑRPئAQd|NaKkdSNi o4+Kqr7*2s33;7|5KO\u-D$#IYE4&4P_hTڼ}AxRiff9xb8].(j5GS_A)7ww2xnӮ`!,m=NU/m<݁ .,x$SXN /zSgI3pׁq|/nn}N:b^mw׊k,UU]1cl:E&rf}m7-QV+&Or nohId||q&lgpxl.CEsd)j** 3P,CYT6Ωð %l$1R N0-б E(z~_Qwh6,יܲk(xF۽>jaY7x# n}*ÐO|ܔwob^O_ ^z\/O~~KIkߖDg2Bbː|D&pR@C7]D$ "NHrnTZk8"lrDBPc& PR S 3g!S/1.E4ϵ[ g6 zq/#/X(]1yeXNɞHBoal`1Mfǖ-Ƞlb me8&a2 2pD KQ.1DzL2ap8cHLdhkcYLέKg SE9sc%K ri A`X|a"]yi[odۖ"BfJB%C2$026gJBe%޺&bOʱI.B VY\,cKK l\Q.PDצ۪ΗqB"FaN-b'!F?Y&)E7N^f!Y8ʖM[ճQJQ&k Bڜ4OiF93F i;$ʀ"ř3Led[2Q9nAkUN}"~쟾NM|onxOo/b_qnG^]E1Bk05prfN(qq0ŹKdi ԚTe&h*k<{w& $I:me PRJ4vژ-Bj€aZuy8B'bXf.E*ia)~C{n씅>|jƶm0LVWWP(w25 ^ LV-z>azŃ=ijO}7|'-ةm曈CJ-:.f\AVԚidƁOiq(\ߪbe?ul}yΞ=w3gOL-[w% R!fՠPꓔ0:mBG!qO&Ԛ\8NRZ|м",QX8C\_EMLHq]R&Tp~O}8wnӧO0<<ʡ}{)v䇆H ZSVy衇SO!A r;q` CO}"S@6j[]ڭ6QQ0y^{Q ҂b~ ? :buo,vdl{:6.pzvt]9xmܰm+ΙumFyxGx8vgΞd9 ԩ@%XYH)c( e(a`i5I;FnP]?ď 2 IDATEΜ_NI ,n\c0fldj.AT!b$m P",Q NsV*QBz;ffi7Ko+u,/ՙ_r +_ffaJ K։z^vD%Cm/??hя~k.$n D&QR?ZkTH>BnaH)14pX]xm}PMl\MF^qR5"fg#[+d_/ q&IlįzR!̫OǬ!T#qi6TkIt X!HgN|e$qJB fLk7GPsRM,SCsUn3L=}zIa `#FӉc*^@7R #V;=!)eRAXZ&۷ncъ"(Thc5/$FӍcjh^eHҎ$XR^]bw eɾe 2C$bi4G0s(,SnB#K!5lԩ(KX!L$b}CTX'"X "4(8u /Y = /.Q,V8I.R*d-3>^ݣڽb1Jb1[3V$/[xyqO|[l[D&QR|'/2>*R~`UP.#Dm$ Q+L;&o,yU@bJI7xe !Nע6?z5;y\8Cn1I7TAcI/,!! #^o8SkL/6mEh'n% ިλݾńkwDF_;oIM҆!:BWh5z}\c90-(Q?{yTq/-jTC,7b)HZ}ryȞ=d26I!ՋyB :&F)A`=Ec^K,.^nM'׀%I1SPXYNm"ro^V.4pLDe; qFi3 +zvdx}KVEQZkV.pGomoez}﹅ǯ&,м_"x5I;_e H9iVr2Jve />*19{WiiE!b%`;Jx"R++QHih ۶B ؐB%ҊjenJQfs:-| P?G$+eBPY( cX6Vp2TMRq"x~0Ǐ};3gNSVؽcBap:T(vlڕ8&s._䖃h6[Ã(q[&۴kTז:MgZ6R ,C 6|(ʠZmViar3hЬALav@c(M4m< mss8tr-(eDi60t(Ved}ө|$Sp[h{2Y0Be"[)lZWk!$I!4TZU!VXkXȴ-'d2Yrs/qH)0 C{͸Gq HiAȌth{lnLÁū`bh),|=3-@\|()?q9;3MͰ}vFFGfsJ) $ cFi y&ٳMmaqug~7?3G2u~wsM7Bbjr7MQ.Vd)n7BXʓͦv{^Dopq2$*7qMH)^ОM|ka$*_7 Q)lv.m0Q@cDIauB뒔З)Bks8WU~b,Q[ $bqN<4?>%s_ŪpY.?tC/!+b+[at2Drcor=[sps0:eiӐ/X݅钜:M)vd&=`2hoZ('EMI/L#A<'[5," e 4qk#һKATK:u xhmA-cG&` :!-vTjq77b RؔMnReԖmfm ,t+&iV}î/niA QҰ `Ǒn ͪ7 1o,Lsc?ܘ)]Ksۭ[:' >{ӱab[)5ZC5X̺%+##,=l/v9Sɟ Vת;B)[z/tݤj+ԧo"u2߭M/4<^TAQ}r㔆h7$ƴlJQ"p>maSU('BJ,;ztDidn5h"~!o}ÏdZPx/+$D&*hX^k3݂aA![% ?H(" Q/040ve*h۸J/0rܗ%jd). E3n-qy9} RIrwu/܎mRc.^M,x4`;4MfW8/YWZ]h uDxE 2XzVL:-3X! Z*L^_đX^Ym6EƽX@h:~۔5*ٝ{^CQ`2=WX^` x<9rf|l~au H0‰04( 21>05j#O;\<Ȟ'w.P;q *锍PN;r JR.it:>O]`~qR.IgSd6k&N4JMr+&Q%*_9зNFe*S&z+A$Z([v9՝DCjaֿ!~_[Qf涝NY\RjBar-yHۦh|~5k5/1$6WZ$!0QҴջdL!믅Sp4_TT^P ,aR\woTڋp-v(1LFcM̭  ]> -VW2Ü@'95lum__bf/Bkٓ>?h?Viȏwuؾk'I³Oܺajpk**D׽΂By/g_9zD6)͞!si~H&fD\Dc+tvMMˤvb%zYg(cFv-aP( 6 ە2d aHevps%n:>*#<ц 216]wï/ |yun۶mtCoӴl2 2}Es|G?l߱?oƏ}VV0 QNj$r\X',ĵVΑmt&vβel㲅9!L{=;202nq=oe~w~~w}ãhY^^g0{ 30<2Bk,C8fr8%/JSo:5 cQ-2\LZMg`tDŽ޺c:/ ۷ .4cȥ$@ +$N X5D%,ka~ƱMZjb+&^3O3GrSbosWN7+]c\$s0瞡&zG&F'RY %<#eyy#G0}BC7WrTf`HOٯw O7i'j_Z]y ffg)]_h0 M+AD~X*Ak0/?$m_qRi_{dyy<}>o8sf ),vqPLӌdS(7/Q ^ʂcl%ZL^<ԄvHD*?U&!~?TREkv?h .U+DmU bnz- }Ӫ5eRJPv0BbF7!">48EKЛү2,i3dش*:0(%H"6 B+Ha mGm7ɘyFNAۣlm+`M|K# S_Wcjه]=q._<[W=<>l-_%XEPksC1GWIpDR;ficL;[fx@ũAz ꊀ 3B*ڭf?Xgwۼ [*+r3xarsTM/`Y#~vN^C'nF*eVoR吪.pVeWJe>5\ 0PABة zT[>{̡C{nni?KK u|TVS:CۥM#LH(a`ڰ <K~j|d'@vt&qq|:$z&nH͞Zm[mnF2NPUI.['R.< U8M&"*-<ǶLy\^i eϦ)Ҙqp>˦,m;Zklb!J]5y#k۱r ZH4€^Eb,CSG{Gr^I5!I+N8uDb PįA^[8O1v؁Jo_!+ /Ŷ$ndJmÀf᥮dJF<E@ I$gDIByJ y9n>@ hR&*m)Xl^9Y EMk5&9UR&J)lk (D)(N:GN# 9:qlnT5T@+$M1WsА^;<@/{ob R-EXVmB61I%Q4LEj)~'zC_w?lۖ,"&1k ^k&Ebb֠a_27we!n:c^ Vn9"Œ~@zI1W}/ :f4LpoZOٳw/<B\>KCwcqRdK )VaD$aize(iw;2 2~U>74vn]_AJh.Ѩdc}v} ͑)Ҩ,(Y)6 "b:7{Z&qih#QVuj7a`Y6lNNzN$$I%zQn$ϐqr)b\ѡ+mKK~zpxq_3[J_+LHj!A& ߯EQT&SKOZ@_-Ɛ\ATz {JjuU 4n?VQR"PԚuBőc/&z=G>vŃ=D?G{xe߾~i3QDQzƑRJQ'x eN*ct[]f~!b-}TSVh+6\$Cl!lr!aX#fr>ޝF$\Ǥj9!%B |K$ zC`pt NE0=}ӟnx{x" i X!EBJ3ߚepnp4B.=/T&A1F?%ҵ2 $sj|ᦽ6m-[v)p&fB%UJgJ$! ɹ:^(u5 CI"cD[iOa0s8BhǎrN<{~'x];wwdq8z ը!0) :5Y=,RKez~ 4+8"/tǴ5*UFGG9ύ7ogrr '#_(۪cR=Fm 2h8us"൵٫8i4Q$FIN C Bm,./c6'˿swIy=EOQò,z̳_$Hc:zq$1U}qj5L(D.QIXX<ۿpv>DR l3 8BA!0V_! =]ָpƑ0L ""FM" ҆/UOss8qa#'ϱTi>"?0᧏ˉivZJ%H(㘠R f KQe 䉣fCGӶe bZmVmF1ٴKhR68y0 )rAv8ȹtOS2la A17yRe)A%gF)l|yeBi"jenpe}[Oq/Mp] <^7G4{ń(8t>z?o (j'푕/C ? trȳƿ?7,K)?{'үa80=!ƗΑ ;=Eq6I648R2RM IkmKb#3+=`n!U"M bjeUdN!%a3 3Sk}N<_V?355~{kooP`Gr%Mt&FENAHQ$Y[a.[ce{=!cS4כ,-]!R'=6~-.SDaHfbC4/]Y8Kok)☶G}j楳le"* J Alzu,kTTb;!(Aw ;Ho,kg$D {t6b:UƦxgy[B(mO~3g#?;DQI}Vm^QsHJYHL2lkJRIL zJWGO0^EUn$ӳ4cui=y9 VFkiv*q]X-9i mA//8&''ybT©}xxEUK'ٿ%:pNt2ʡiPXtqin6 HR ) IG }6\j1\7Q<җHTe>߿HTҕK>sRD%tYZZ'ڞ/G$&uZt(# gvcߏrz\YC(!Ĩr F)Jcsj4MSx^Sfb;y!!+kJ{ea6+=}뒨tzJ$>k:1K稪iNHr{UUnD QuM.y fTswuba>̓i`ԺC %W|GJ)%I-ћþg3U!-?Q6 ˆ0³Mڃ}~4w R,Ӡݏ)c5K}5E0f)i7#]:]s'hރ@E&m,TiVPt/:q1u)UFi[_46`cbb-ExIĠ{EU2}ګ/01$- Ml5-"alRXeH^qjD.%lfMȊ23EAC4;ǪMdEtizg d1 X{egE@{W4'c<6}lno7=o\~QV/?^!%.zXo^&O*j}G xALSGuayKUv($VMPrʢ sdsihߥj:!4M%OCg|[ `q~>8xp?fP  MWP!ZNk vA\-81tuC4&gvӫ*:I.1mot,R5 mBՍ\(ʎm(r`EDFEؖ$T~)NOSZ-9p{jS,L17ɔePfOt2+V0/T)[g_-dASQv&0<4@p8k_*'io`]bjH"NPH s 2Xڿ pTy]i)8uqUQH$_ >{Jjz$s~@X|)U|=iFaccK+9w.303;bھα'IqY>ٿѢRqM.eaeg3Pl(B8LLR1}?4,\ǢZsIFem^/~/`EƶU<鴻m$)y\Y^"jY׿MXwW.]& #T962E^CZxE}, c<|Uo ߯K_>WFjؖmƸGdi(DcM-x%yͪT3|4m\K(dmUHBBEG¢)<(5j }?j*-*}&˨QnӼ&<<q;F{,EMJQ {$qa/)!R!^&L]{#/H;C6zD7ہi N_iAZ?4L i^` F[[>o0˸@ug+/)WNPlhxzY A9Ro2g.᜺0kʐB8 $;\o*mQ"&avvJ)""[F-,u<2]8sA}tYEU1-EGy(+S K(s:; P *5SaРP]RYô+5JGMk8ZE©i~(4% vOȏ>Ľo7lt3+D>oy[S\qa6Z)>s#躂nLr6D1 ge;C["tU%RE(]rE =l%R?66㸴}jĵ(`s}IRe^j ?Q*B lM`6v ?LPu#Gb&6'Ori-BN`ZRҟLyιEY;i6GQ lǧ0,w.veZ IDAT}/<~࣪* x1==KY)~'IfFe膎*3 Avo[JmVȋ  ')TgC81|lAq@G_ F`Х\+K>K댍Oϝ~$yYEu8&Jb,fzrs8+kma?m01Q# yX:cd!|Hׇvvl&&*)xX8hFDJ%uYm27;Dž0 9R]LTt@ V(90=)YVٗϞ}cNrq/(߉i$a%&㾈LAW4r MבyBi cWhV+|;}xdY8q/?>x׮4dn !"\y6yi&Ud!(wӔ3+CT"JwQ:!Tܷ"B_Q}iWp8nt\XY^n ϣēOj8|.:/_A5'O#*=.GTrxU?ym'2qXC<CsU61*$a7/7O^arq&lHSښђz@ I&20T2U*U)Ұ)L玑Bt(5e$ =\ā*W ,VoG #V#TYFp$xQUBR2G +)#iIAցԠZ3 2C74 ְ4 F^`Z(>㉏Ig4z-@QLԴZUSgڳw,dQ`,kϥsgxO2>'2uY/?Ç~#̽dR.SJrT[g-TuNSI짻Df:1;# D1˛LVi rd.Uc*9"|,# ~?D ,A3LjEEEUGJp8]+ǑEN~BQTʵ'EJVhVc8q,,5N8|=C>ozvPܶ'Ӕ;ҫ%Qa\Qڛt6Gi2n;6THÑFT[q@667T<BQ5 eKF7dǙ]dffr`6gxo( GB0lj1u,9E A #V.SټBP]#j^SBAh9FC?DSO_+uv^#ljnxXeUjdb'S_X{AI7-*L[ 6[AU4VA4x߇Z^z(sE[U*~n !N9g/p*^,3yx?x?z; gΜFj)k:FIREԔG015 Ƨ9Mǎ4kZ&Fp@SǢTr\UMΓx0\*ŗe~gafF(`80t m9N@EN\-$Iր(9qQ=u=ëGGb8zzU,#M3BFÇUu;aM3DI]`b|UX9_^ڿUJf],_7U)eaBkSY,_"bIVVW`p|iB |%cV.a'D9ȭ{߄n9#kTK'o?);QdE%( Q,23Y*<1r^)ʁ2A2p?[cӏ9 ylUS?UAEJ]sq,GcÏ^rT&,CUP̭\BP]~kύ?kQD&r<ҵQ\^mWM5(l4W,!q=&1(H9"uMG+TMGtwwYEAeNjـ,PngfdLFnl]jR#Ú R0!K>4h1`:mgi@H"U$»d))תxjқO_jN[/}s|xEX^~ZF&S\~w9~7*6/$ 7$G>{w]Y( G)i zy1@ɫR.Ux`b8gi}Gα3w,JVN`mna(   ȋ^z :́]4 !a9HnCE4ZMˢ3|b,dA}rqw#iFw8wa2=}1~C? {y쐔;Bm;djhF7@T8fW5l% P R5A N%nW!M6V/Sİ]~TEQaAP^Je'I+`%rE$C TU&`Q97]D.p EUGN!5': eD8)O͡JN7ؕLz{9xf,zlrEQ9$4}}Θ4 ǒR5q; T«p E4\[Fb0 wI2Vz]XEz5v'QDjskkI1yehmma 3$IBsb6J<,+ :nn:9n\ӠѨ09oQUMTGD}m*",K Y#_v5H^ՙwy| lϠh`H$:WU$#9YqB-"&&p 5 ~!IHv ,dFiq[7gyzsw\d7?BQ;I~YHE%$8YvHO/z\q{% 0+ZAL/v? r)%)Ðu?b3L(0dӏ$7I\Xࠧݗu,1tv%)DS,T SqфRhdJ *IP̂5Ns]K_y3gRaHkB dA5"Ou,f5 8g9I^TưlEUQt8BRHPՑC]T0 B&4#2,W?Lv,7m+Rz ֚WP!IHVj2s,S6[;k.&ih5BAL͂:*R#3xsqlre䠹Q991~;Q sDY#'^! 4 NiɢVQv>zUs7L$-l8KG(MDㄕe.^w˂BSu{iR ñq'f@t$Wꃭ~ /9MN9J%(QpiǑ p+D/j "f%1~oôu@r'cTS9),h2t"qWT2է?TIs}jٳ/x;N̮NJ{cla6'v1M{Tf'@рޠIy7U$N6oEe.]9 {mpH$Ǧ_ nY]:eҴO*Ќ8&P114oqLkc4`i0up9lLP40ɨ},D}Y8'9rZc4)37ZX B!0M.ƕGQ`:CԢkF #M*BYL b*A(kU@019E},$ Lc%b6\sxeaa96D Ye7?ws DTe*$IJkGdEA渶a AS(yJwɷNFnuldFix4tFth,C*eJH)1Tj4G:a._4]tUenvOM*S^~"/ (_t:ol79FK4tS'VVDIB={=aO^D?}$",z5)aiBAlc}oqr(l'1%"P(e]ndݝ@S+},y"#oYHb>ξ8B "NIPTTM';@y# WzU"HM#֫7Ð*~MUBф@U`Һv S#bHaⲊuny\mׄXskH1=A\6P:jF.GRQИfq6jdef64;ly" A`edqmB6q4Fi*@1R>4BAQx4' ׂYJgr$O) %2FFpǦv  ꬯o239e~)[U)U "$C a2?] *ပSO(~`O=wW9 ͇~(w3IO ęatSGej>AqơfYCz&iQ'W"FApv4@HR_ IDAT)AJM{ml!#(63a_8)E2RMı|cg߾uی9t??ę+E&e;$i3yNM D$p1?-!ݕSm(WGi%0qGJNO\?WʭZ-rMD ](D3MHmVrBM; K*t4e6"M#:8n{<ibR,1Lfd7LzHID1^9ৈQY>ZA"mvjFn`eS/RE雳{ǯ !KWkmG:FH8E^|eZ`4<(^>*cN:R|w|}/҈3M ayT&a©(At :aH7$qyat>~`9B N`fxqJ)-b.OwIeR)R70+)Y6R &IJ!_ 4-ѽ ϣګ [V炉I!ij) mn,qk+*QHyL(i8D~Z[l*5(E0t y^9De6W<ni՞J)k ?j?S23_ywn?ډ뾖T^hGy2ino0%pUJBsIq8^o|y+āoֲ.KThRC%1"V&G6=A‰ e6r9m88y$ dJ v@ zQ J>('# TIeOL011AX nVx୸A50. KHǁbڐB.J7 0н[vby8YO{J/DJ0FJ)RnMQhjTYBJSt)p^byyupҸhDS >v#>O%1w`ow^=?J-4Pioz>FZX,j5-Ų:s.s5U6MlbKl9\D㮜FʶI]# wԧ^řPYJ%?n-L.Ęm+xUjDWIImjOfK~[% Laxrؠj,Ca7ܾ1$!O"ZBJޅS$ J!H ^+ 'Ѿ$I9ڞQ_xKxDD¨чC\K\DE ugD(J"@ ȒAMXg ҄t'ٹnj6.a&ˇg牤vm3C㌛>)LD1Uĵlle "C&2ÀqA=o݌4IW!+pLLϞdOE99Kpr}7Ͱsƙ]K6+h.ؓ}o-~B(|#ʯsQR4m{;O?ކT1( j*e%H+Ga_?0M8xZ%Oq\|Yt0oEM#=i{z5tӦ\M N$KLT;W eqHP_9,!B 3>=J~; ðɀaRS*=lۦVh4_2=5$a%L,hhul(g!"cyIAƣ S,R8'y0z3YRlB9qv}&Z0ISXurZg?YI'oq[wMS}pX`x]i2ށElutCeB-YXCA>u^-zqeaÇ_fq8p@R'Ck Q^zy?&'?24M禛n=Xמ}?Y9JA J;ȔduG'S0IFd]g9=zfT~mLONev8tk6Rヌ)n_{z2'm8r\n ť50FhZ KΣ(A7t,+4ZbIi4vfH_礀X),se!"bu߶;lP te'54S3.N[ :+.Jp" e`nm?@iX\2A{ L@)78Ku)ZHH)m8gcBյ [+s+ "ɲkxR,8ơG'~ͼ>w© }<ȇ?lp{/|>6w'ȏC4Tf+K0zpw[P,awO7O7>RCJɰ! ChNU 異s#$I8v(4ZŖ**+Oo/l/c|9!нI^@JH"(ke#R8Ơ?@4~6kv<‹/pa/~3 /m/#|nM.c8TJ)5ꓼ7U 9C!l$#*X\_2mNX"L`zjm[w,.b[nAr"A]3)Au%?6I26a`:R|AX\j" N/`qp=d0ݮWJ*TiXiGcc?p, nhT&'+TkعaH駞x;Ν;[¾eYUzFc1.:D&6+^DeLwb+`F= $;TJ+0c8q:.œGHI(\gn׀MƯ!'%*;DVnʖs]m0z W0赛6m-ɺBK.~ |M"kQDx >GP$'Z !3s#%-c`SO~MY(21xF -L(b8$]bۗ.hNE RTrrB$9@)xLR[#^!%p^lBBX4G_سPS!4)1+SZd 5Vk/:raU$]9Ikl,ִY/OEFtw#BbX62L2WgX&>ih Bz J+,:9`lGKXKA)ř#8(s|!~z' #}(/ nn/;ь j{V\Y)*T !.ncl‚`muC>nY.-n26ЧmRcZJ)Zm؎js K(H{=\JE7"mZ%%cIѐTM)G~*bGXv^1\bH$<$\HUq>)T$V?d*PV*8u~OG㟺߿xRʶ)!o$Iyo'!!i1ed,}ʜ@^;-ۘŗFRW_"$XZ2U6(+++6}s#/=D~yXMJ zjܘ$DAvnI[RËYfPר?Ij,ryK" I!b]00AӤX+)ĠSp2].*W?p眭a8C3@K۪CHУ^# H2baҔ8 qjTqsA?qBȎc_枻u<^x|< ;v^= K$ԦIRzlݺM(h|Gxs#C,7mߊc{"^ކB4xb]Jsf:]UHSa珽r8սY |b(H>MUvV""9q8}!N:I.mQ*iZVaԪ2i+tRDա['%t& QFuvlAe EQMdfLZj@IRDžZĖbB?2EZbzzr`ҢV1?7xbE['%&= /gcŴ (;13[Xƾ0MB!w.^w/)4qizqXls?˟g箉>{_=Et2ao7l\UJP9R(ٱ4Aw${/uwB<\aeM*N.aH].[躉nZAj h./ 8yJq,7RUǽU Da09=K_0 h,/z2 F` r(ЇRJ m#rˢ$90M\'G=@˓BczAMT1$0 w5 QOы3e*1&Ygx<|t;tM7oea`h-\1-!q=C7pB<-W IDAT0{ {/\4?dvfJXDzׂ03mGYDhj'+X\iFZ&b4MDZut-4 ,B3-+ R ,$8^*QOô(sW$)G4Ae۷n w ϶X^8ßkc_\.1== /Q&6MlbWl9\Dz\&aZ=P*J\VqP]0)jsis;V% Ƕf%\^dXH)Ajt,X1~Q݃.RQ(W1MNs~k*E[TW~p ]egtG§-W0HùҷH4,byrDE zcuDC(":p0m)Ed#4e#SL/gPJ $# I)ɒncZhMed\]F|tfXIH% ]048Wd_c䎮f1R4i:E({Q`,Y*HEVpk@Qx4EZ\>[tAW򾧡kr6$ҥ00MAi18#5€w)~?jou;kPgEć>>/2wq`򹇟D}V\z?Ցd$Z'+ר1\B/|runRp.>L1Dh:҉Zl%Π c\1*2 in0[!X?RT􊘦eiN>_@I3T*4V4-}8u]eZD~3>+0?~GncaJ7~ei ! fjz4I ӌɩ)`۷oG9eLϏT,b%ʐdE^Bc:B~ȧ_g}c Wu?(}NPn [TÈ&Ր,V T1Lgh;hvRJlbzhK "r%Q~:\晘钥v*cS*ر}q 9D ma0 .veIBAJ>*Ptlledu+@a.al},j@ӍsA5فoa!Ic`@XE Ͽ}=LNL}Kasy({D&6+6i~M[!շԲLu{,#HoDO=l1%KӔVkt$*>~Α1>^gApHPFHiD!i TDz M05I4HDDG}t#zĎ*5D%VW/\)r:kʿ_i!MTI+`0D /#@$h 1. muЕ1i\.gQ^;W>W'L -WDX^$=2R´98M&tT^s1(AVɈؕ1J1TUU*5MRJ0DIP߉%ҤD,zE@74 GNwxDv7} bD\s2@q'i6\n=O^St:}|I>C/~?D3R*n M /R]]82 `B}^%+ ԥ㧜\g6i^^!\lܘ l! l/.|NK)/H)&8!H>9CZ`8Y]m\[!oHm=4 )(' C+TBX&b''Q$1S׹{yBC}Ǿ(ӓH!\l2LzA綛T.rT*mP,&.IO?l9bgضm[vM;vqi}s|'㦝 Y(#qdJomGGP"mi>G$u=9vO> u4; zonnW[|cbbMj(a299IVP(Z];wP*R`:b~?qbdd!#  g@54\S$RQH6ɲpp \wT-D&eII'Rݶ, iH$L'qLC gc |JB 44L4]̢TcX63)RRa#0 9zF" HUЂ7=U* dg!D## ;h:5[BrZ粪ʑ`b2m@d{xs_%h+:A9[g\nŽ"sjc-'pM*B?W|)g~.W[W7d~W7~}.\$B?c/c\&@:Tfڳ.MVUV:fr؞Ie2G{ŧ2LgJdBB  uiLO4Ψjt`m҄aK)Pَt&3"_,BY^w(R~A48;*A4\i }C@Ѡja9e阆`u!4\X}9e!_E3}z..| <(EA3O}.cy5**!*.Y \ٺk/m=1c1DqQ'8ymcv~~;BV2u"t #M).BpV)aYxpr=|ۛpì4;ݯeEIǥ_~ ~fP8i_<`Mη[o}^oo8| A8"O0ĉ,//d~3eee{7ȏuI:옟V)"0VTcl2BE1m&z5? 9r$BnE/)\+R*G#S[unc), Rc# bBHy52ıMה+4 &j*k *u9D3>VAv}oi>'8oQ)o-W̪4 Nag#f)'O<ޛIR鿟3r*+k}fŅAqTe߃wf8rAu::OPvA@nʬ"#cdwu]2CSݕYqNq"{]̢哄7 "R3V1oh#eMsr΃ȎGdA (=:[&anILv'1)~Ą =L&F (DRV.%M%h0VӦ41Bit7Z(~d٠Z9{ZW5X mP~{8{jO=\p<#̙I^glpl Zs !RW!ϚK*"lǣT7tbi[8>sI' ގ8]/.@،VJo3`xΚm̷_x2!0a]-#_閊r VHʟQIhLdPcsE-Ud2iFGq}׶$IdI &-RE[o!k֬l$t2bf"L<* ߘq9cT-gbAXߊm XLY @H.A:hvSYVт=i Ik .ALr'EFD$DIQAl*31Y߻MrŗP,.]w۷{D+Vছn:lynfC>p}訴HJ8gq/:lG0/~C=HSO=뮻X,v odG6W\q}{gqnV>* s+Wq./lCUS ~{~ٟ>w/<A{%8.2qG0Mi~+ߍcaY6`YM.u< 1gi _1)8Bg,yPj6&ŦMQ4 @$%Nqd6A`|`:\*2>2H*݆Q+cL5u:0hI4ݷ!KNfT0eWU적hb!e(ãsgQ0'ѷ&v+~TX֏Ӂ˘R1||lIӭ62EBҘۃx4eHXCQa:~_|L&Q.M`[6H$24*Exmیc .EضMO$qT-$MWiU& VǦzgU4 p$~DضhȲjc05". e0?nL(L{6Ҵ"Q\ɵ<Ȣ]s˸gḣ.9[û[56?F& "! n*s5k}d3ő} `YC)BOO+NO {<չ/%blǘ8r~9nvٙS$QޘJ3ױ-q[F IDATelؖ4 toC)gRDM[+a 7O *HyFJEQuqÑ"bлyTR.R2.\[ѷHc\qRj_~LX o߸Yg^ gztjKv6l}E#3 $h?ԕ@{S;X0+7cTmvIo3V9rr6܂Bԟiu ;hG"G&f0XtzayTeJb!OR)h( hk<ת{LAdTA |KcGw":Y‘ 5$AtLV'MHU;U$uu>Dh2J4T,R/~F,gu{y=Jc,\QS<ؓtse:ì" OIgaF)%g;EFxkAh(kU:,RQ:G DvJ *IGGP5N?dEfa{@P+6~]<^o~~}LVsOfq_+OôY<+/:>?_wT(']L<4 lcxQYxZ /<#C}׃ ,_r .➻GR"h:B14i/cweG lq`ȶڔí=*J)`T,6?7@̟LUd}1TER&^D;n9bJP*[Mǁ} Bȇ݃WK.!O4LVw~OmZ@UU7ӑv@'(6Qq_qDAA"؝ &ޕt;u}.#cdTB!q+<;H( ;{fyEӉ&LJE*N (Z{r.Z$FQQN$I&ØFp, F" 8s<Q\4BϨ }ޫdd=HtO?Ь^@"zH!6?dI@DFE"HKNfrl@F2[d%Dŀ5E<|3@SfuWh{q]a|fVDOja9.Kfe3+~Al|+Zy>8΁7 ]oWяEX~ iS{S/~? Wzt5 .U`P~ #Y)C;pI~S?$d8ɟϓln< Mp漶j('f_йiy%A 2C$2]Z$N366JPoj2>6ݨܣ5pd== ?W5_{wӖm)']Ǣ4Q@B\H_,duϴ#+bTUCf=sm<,&WM # cp`YMB38ۭQ&rcF,9$,^r7=Cw>U>e 5Ze c2j?E=G̫i6}_1RC Ex!vh6ͩ X`o;d6l|{W]}v+RGXI$@E b'ilڱs/2a)BSLy|f 7t_~b-Ž;fs9\{??=^z)ꪫ83y'ٲe |_^;`ddUVq 7L&qnG}B@{{;W]ux;_qy,3<|3{zw]^|SOUC1*?x>J%{5mguO=6m}s,_m;xT*ZjʬY[^s5py}UcxxKx<0S{xKfwi ǿ}$tXF*BBLDm +؂1E&IļIOB ͜ JoHdze6!=B A,a|h込 "PXGMD GPˬ-2m<AޫH8 H}?,jD #&S=m1<~`e\i6nI4U! )~; Z@",&H9b^?H6@4L,GN)'rR5/KS. ijD0Q5a0k>Z2(JDbITn>J*PThOuT'hb I @tA}u(ݴԥoy Uǧ;c,cK,et8Ϥi~fױپO yh;;1S"Qk~G>ŜlG>̻4m^>^(DRR\G}h#}]GlP/|sgx?8BD:f8< 4 G-⬜vW$uY)!(0Y$l'ND=gZ]Ш/ " LG)wI"0&U&è $}Ea*gS&*VEtY$>xz>FnIEAg^Ύ<7穧 .nVq&q*ѓOSEZF,=m1?md-{4*<קo:vřىQ4ݹlJâ=F\hY<3A@T&=X~ vKvr_g7~4qFFy2'OaW'pLvGر~ᗆYd:~w7B9spi{.~IjcD"5IPBUU|Fvv!|D{#:Ɨ >buvhຯҠl?2*EOa7|~h!]aC*C NPCة T 7`˄]i]e"P#wX}Y|GXO~w]z)Hanw]vY89TUU$IV/||3 ͖> a6\.s-pm7UW]_??_җ馛Pni<7x#/7A\nu]nF}Ĺ馛xg׿z3(mmm$t|0 ֯_~/T7}:;;w 7k͇k믿4Y|9wu^{-===,y_?>Xˏhc8<ޒDф (4^aH4AH/ Ie @$-DvF0H>ES=4LWqHU䂙l{a5*!椦l# d@ШT3,ظn*3 'B Gtfa:u0E$pPWODA!ppu 'q'" A&,D(V|Fu*G/s BΞ2Q:Q@ub4fIs W@ }Rר֣U] > lYFɦP&4bf+ PsM.}+ïxc$f.Eٶ9cYׁyl.qG˱6 pv*0fvjj}[_ |oωy⾛=|BnD@j@9Bd6+#'+}kCO`#+Q. $\ǡ|pi~T 05m_`WH;0ܕ9:f%(I.]Tke~sBY箻"R4/b&EZѰEh,B(D֜qLwt}fc+uКHz!a?Ŷ^BUzO8:>ݾI5ՆxԆvi4] A|Fo'8u0m، 5{XKVʜ6og\ DBƋo|+N`E|{ky9#_ ~__rw_W9( iF,{U-d|#,^|Wr}|t좋.׿T=S;dÆ S'^0;;kn>c6~;r K_{+ϫ@__Gmcɒ%|CW>H1l2>q7SN9s=|Zh//Sqv 1(@R$B0eQFt흭k# !~?A8~+_<8M=!7ύ1q[''|<^iw!C蘍cc$$d2ēYJ\QiT'P#w,} ZCE!<#dA%^=GvK`:uLZ!"" [6Q$$I[R?hh؄DxXrH$2Ҿ 2%(pxg+:N Ye||la$ud=Bڵof*ǯ@餫(I!00+%DֶQ#!#\ڇk5qZGۆ&BA<L^#H( MścAqg-=bJ;EĶ/- o-ґH<̤y۷0DEBW d"oIfxvTJ0Gw3gffƦg)l+_[.͸}_VW\~| JΝw>ͯ>Kl$? MTB rQGk!WWJyyNc6m#&Ksɩocwٰ݀yѝDZ6ʎBrmՄc @m&|?ms[Da hf)ΘZ'VӤ46LqtDL֣+Bˍ٠Q.R+O29RU1MP&bnII&Ӵup9=WDQk=úN_o7۷mE{?o.FoxQޅ3sQTD2RZ3mjqjH,ڗ\UXŗB8l}wZtb:{5oM\A }B^9B=uִ>;0dX$B[Zijy&>>̥O8_0>mcB_n&;QB2/y!uEySϦ+C= /kMλ"˗.$ kG S7 Ȧ2JO2!h3\NPDrq-#HвAݓ^ZiAfԍ*GyecʃC Гu "@$Z."G4&Y'kg|d2Ao*(#eI&NP5< k p&F8;T`|&*%6mܥ\e^֮]KVcpppJ9vލ\s5Sr]h }Y _I#W_G?QFFFΗe~2}p@Ö977կ2>>OSdY[o}{7|A ;3^x5gph#*AD xzNAkn;"ˡ![QfQ FaQۂ!b:@սkӨ@,@y `IT&;<]o! $CA"]ƒ~̡~2̴N-oB, <"7`c8 תMqs16M=n4BE4 }4jJYHI]}/0nk $HH q\'=/z KgDOTT*b0 q O٬ia(hr%@%l˦,GXJ="""i|/$ya&DHLHS[&Vf`t wx> #ALKcLU0OXYob Ä$YeJb\O/IUocVt*3;s] ɍd!>p\ };\vN0Z,ۖfQ615׭!$|˥{/_F4:0>^~8OX/ G͎/[i[Ml:3~Drueh4ʓ/M6nST s]Bz!{"Wjefr :]}SQ2s̡dÍ IDAT>ܧD*3#I J J$dTd^l-cT1my_D|%۰/;rNf㰚Ubۑwԩ<opڍb GK|~ϣn IOsz@ sW3::¯znaήmWD۶zɜYet{cN\.xlڶ[{fTkI Ѵli2HB6BaF"=3a-&&=/|l1/ ɻ<aFBL6xaЊ)e@@zYӨEӄ]g$A % ta" CIRHgH(27Q@Cyr4 !J:Iv_xc ]#U“jr4 "b0{6{?8:n;\reIy8ȷm֬Yw߳rJ:w5MիWsW?>ثя~D"8Qu6)DQ~<<3mG7Scx&iEx| _n_VZŮ]itl|68FTeVRUzB3xC ,Uc>m)~U0x%d;Y t T-3PHp}KR"1b!3!IKfӜ H:6E$t)NR 8Խ[T"NR #SYH"$24*EHS Dxs#yT1 H:$J?`z$IĜlPwKx>)#K29LjFI*ێj$Vy+\f6|I\Ҍ^FFdNYHb~@r Vä@㘱ΛҞEʥ&'/-*DzbN9]f#,4Bʍ  l},ʫ\3>ҋOg&W|OӼ%3C~}"v; ɝ:<##v ѴQY8cOmїPO`v$Y#aֿJY$r=di Te11>F:$i2V$O᝭n@%5j$S5ly~jIB~V7x eO8m585#Qx>e$f j\jer۶eSr,FFVʲRTY&T*QdE5?0y.q ^dYZ+^D )}ljHT nooիRJ]0aإ9ֿD~b:AZ'׏БIp7?G~*VdMwoAP~3K5G lQx- n%c=C  0M\2hJB%p}C +ScMn⎃lmx; Gxyq ֗_yQ5L,V,άH?h n>,G H_z{HJ)j8iѩIHAdwFضE*\ 't{D߳P6-ʘWyC-4zѢXD$B&@,! ~T'! ,?oۿs180y睇w^ȅה`;X+VpW|B@[[+݅܍7R.9Zoٲes <\tEݚ?Z{sj(ʫ ?&*p 8|֮]{rx\,Y;cDkQ5jyTR% -)V7Xb::b_ 0?W@,2Rgdccq 2ǩr,,KLԫh>5`~Adv[*HJA@-Q{N~tFr/|Mx⩄hK! FӝZEYD"M/ne'Rw+ *J):,JDBIIGwMQ ukTY+9}laq;O`۶N;A>qF.xQ2o<.6w]CIeWJ?@,q>,Ob IeHƎ,C<%ظE;A*}tҶUWD4*6EF7S(%xX%n'O`R$!a v\d]'Mpwwͣ>wsss~/}Kg5^yքW!$OL&{\=h! ָ<%8;v_"|~5S/~o&Va>яr}>o>>Ϝ1uZ}83eWy}H|Գrϩ]+]%f˴DU"$Bf/K6RT$KȓiI.~uLz=rz XhVE赛L LЍ"B"87CBUz Hitk˫ 6¤KiWed 9?!J(AG躥)T QZ6a,QE*oҼPDD p:. `.syf[GWI$[P:>d s.ۦ^'@u"7i,L&v|?A*Gkl#zth9MadRFdZ uۈ\@:Nhwwtr>qm<{-W.;]1 +< '>F;v0jlJjwU)!KĔ=9["4tNC^P?ˠIu^)dbb^e@8<ԙ)5Anz͑(bQ|W}?/UZF{|Wc1};uw˫J1v&--_Xy.0W-<<7]wwCUa`9L"z WNniWdkFFjְiR3yakhזIe^|y&J2".٥; ZrױbE<-X6W||,?'F<6@6Z4TEn&)6. H->צO/vk[AӴۀy9`t.i)Ay.Nx*őe?[DQ4,#A֤8".a:(B'%H/{N,&pF:jpIDqZuP4 7t}oUR=Hf0x CzP>t )fu$%d)xE3Gq\?Gvz 2ƝwL\<}ֵՈЎ4F3c&;O5Sė XB,x SWY8LC0_iDUKJ7A z.._Ȋ: ڍ*F,A[ :E"?8cs8ݰ]"Smt8pl[w3:[`Æ SRHr_~]3g͐:=ʼnWr5͑]\sQi$5McM~ۭ*% @UE'P&a R/(.Ih5hFU ÐHh@=kihMZ he"VR!Bae1%q À_qz:[L|bZbH#br? Lݙ,E=˜Zvu( ,-+E/y5k("}O7!$_md~qblCS^Wx\{.ǟsԯo".R>CNsΑ >w];c[~9v4NR%bA,E#<6ES]qpYʥ6 IDATՆإazD(*Dd4$*t'K;%@DAHs$#FOt+ʁVs34≕tt!IDQHQ@C+S1O(RNEJnZba:Nu"%)H(F+ǞG! CR4o|5 D6!2 gLb{bT{܁<疭q2o"XS}ci8ŁٍO8._Sdh"҉:{#od39x͝hw]6D3nԨj}D":4 PuèVt*ɺ;'UPbݍ7m&#?D@g5̕k'XI&c/%UAD>8F;@SðKʅeSQ1f1MPrYϣճɧs!8%FgG]l;ۈ,2/ j$lJ+C4}r)ƯD!MBMl7oo:q][I^*Xc+5U-T~7G$^@gdY#0]N Z~uKHv7GOtѥYu4gf(8XyԺ [}`&2)?M~p~dEEVdZ%t38dy*j 'Rȱ82S ?@i&hK 2> ^0D7$,Y}GJ %IJ'/V**iu44-'(MPgrrYZS4X"GOP9""BdYEMB;baqzyTI/oȈIv &KJWm!I8<]g\'f F3q΋;z͉gw:$^?|f=Q}}3|/}x/t=y}7( ;"JaDGJxb8uXǺ&x_ K8Хh"@SWT<IH&sd)|#VRt@5d 4?iv(K L^4j<* s,ΜmUѤeB6OeA@%Vi_wCFHA eԺ$IBu\ס4cP X@z`t#|Q2 #z=sp]srrCיÎkv +2%Y.xd7]= d|u^ ?EbNprrk;ɹb3yNz .Cs+ip᧖~NھGzD*whD,(/y+mV\BA5b/W]bhh//Am Oi<܋ظ lƾJGyJ"6\COU'vqPU9:5E)PieizI*T*qב9^Zb;'ΐs|w!3DʘNvD.\bWHh $?H4Om$#)K]bR6I۷ ! xUB,z"=ЬT(zvn6ag/x F JmMC<@7z@ݰPvwT.3f2kBkq&T|MUq*VFQH9MO @07q 5p%ҹ1Y :6Qq+Bx'^3u(+b$Drm ?  DWTf66LR̵{-VuHq@Q Q9j4j"ɬK/I2jLh{ :سH<{ ֯CR[H( /]nEI9P]SbPcqv+@u? !nEp24lTWȊjtK@%!` z7'U鴰Six*ZbEO aV4OB?pDݷuQ&pzL]𬕎{J%(p\\ҙθt:ͨs\""`]bSŁ~J ֢*_-8.4IG[L'*)+]6X?/nEgخGE\/h+O~+YzA GyϯL+_:g  h"CYͣk+Z?`2Ō\h,;:0!4UMLJ=PS[hTQYY)ęFx R-)b' PXbq~wH*x" b/HZ =lQ Vk. RU +p:BDD(zDJ #JD@"C Kدy&7N2LnFw1 %YѨu\f]6}^i90oK݉7⮝۸n(+]_w ['|aOL΄L^dMl9!oD|"fr]˶͛8v$dAm; 'z}G&X7Mfa1+MNQF*-a=Ϸtl8N>eEhu{L15HdshE(L*dӦM\wݵ؎M.o='N_;YrĨ C4 a6G<gQnt7 $ հ0cAh8C#yNWKH,0@#bF3ya9,!Qt#2ōLLl%)h6꘦F=A0A*u6gۢQ:X@3 my"C+TkE\ר ! |z:T^sa࣪ Pׄ5XJ*7`H8ON"&TsD"#Œa;rM7i*A,BA^y!R~i`#rNKiDfŹ CK/ # 4D09u[NJu ^g sCa."f/*WqMfK9M)IDB¿6V°Ey »y+/ R:O; #EO/*D2 C×/pnM,=\kb$5%\ZazU+$?9=! T]V?H@\/Bk6{fi5FDjf:Nl]x]4 ?^hE,">~XKA>z=_eȊDm\<6v 4Iz\88?MDv>Vb.G"߸75cW ThB4\\.m<]׍0ޟv޳s<-a}Bbv3d ?lV?n>m?x"(=S* 5.7nڄºxXS"\F&G+35vn#~Υ4xrBgit8K+[J'm\cXE!Oכt{FV"K t xY Xj#^4#iP%Ĝ#< &|"߮Ҩ4UE7VK7424˥2+y'CE}A<~dYE./+'Ŀ{E}yj'/ IUzѨa;Gٰ, 8<]mC|{ #=Vpo(Ֆm/(w!~$+_EaHӦ^ѮW }aœ-~#S:st:LG/,hKx;B8yKף\.WDU€"NIOP1#j]YWӆ9GN$wpp*v.3'شi#ַ9v8, ò FGYb1MfLt+s| L1O!v't{E!`xy-R%!(J'[(l* \J\Xc++*(z,j2ss3Xn[ՉaI B"d!\;AO=7\'"PVl0=u\&EH0-ydFUTbA\Q=f*8v^A.@Bℷ&P̺jfB 9ҁ./pp:/&08 ;^н @Kr)NsGt_w+zn EDZ ʕiy 21~O^%iQ-͓bD>"ꢨC08.ZLЇtiTqIR o0n۵>ɽ,MRq6nTzE}#jd^]Lٔ蕦yۮb ZDMJEh$q)[sYv =y#WEUJ, ,E"o읮k"]= T6-#" B sq1xǽ;^mB"ⵯCV)?&/OݗοmVʜ9cT|MeQOOdI:%X~k|gzqAD.ٖ5׭GFG%1zZ,MK0- +d=FYa#v ߱uNm q1L^i-R À tFtm=$scy/lPIҧEO zN0pqI?:F=j ^ltUeCCȦ<{$鹔FaGi$!q V*f=<<+i8|rc"I:Lפl" ˲m&9A*CdR&gi4ZsI֍ʮ{@81<8ͯ੧c1>4&F \c[lnձ{>Kg4f~~B! c4m{2i2N\?ks*NQbFzAodbi禱#Eㄭ*t=#$ E74 9Ogx.8= Q木SB8THe%eh$"GQ]XU܄"z{2@OLP>CZ#8c狔IvF9x^b Xc5~V<*I0L 0hPl71#+GFQdTMEK%qPdTz~0)]/.$ Y RWPHe=d(S$h:C(2k#€H*6ʱ@bP.I4chH)H4nd>p T !Go6?Okc;;'tTW3 "2i٫g]Jf.)BUiV 8Bl|õmaXU]F^',#0\{Ý MO\*I2n Li-lp#199V\%&HNN:%($ #DDmȏ}XΩmuS6cIqfx^iz5VG%LI3-x8EfϦeve* #Gro7wi..ryqV,B)el'w~RMPw|2JHl(g~&B#lwpy=.XlS.31AUKAu#F>;@cqs1ukUlxaBX<#*9T,2@c7OBt:-zoujfEI$$RY$|9;AD=zn[O_x^SM"qGZ͕9(S4XZX"U(`lO{}t?w>r6* s˸̈́KuqP$ђ~ϥ~t#)/kD]k IDATn[o aHsa#Fv`vB}vՊHg/|dn\^&cYKfzT~pB*1M tE"}$$vlCtB`~i/0 SЧ]lGU"!@1 4 鎮qL}!cIg ءOC ۶IR+5|]c5xY*aXaZdsH1H?zis5f *R^R,pJ4H<|ι=2kA v7qIYjY38z"1m,=;<6ۖl}*@^Bowg~E iȬ"TV{oyOaKr7{@M~y ;&& [ ͢Rb梻S 0$4o@;/b(OV# `KNüDfg۳Wd-qQ31uuSܥJn@' 4H zL.fyȁ>zQ$]&J@ hؙwcYHa0$JcFRe8BW/9 7L1baqOm+Jn7}L/XG2>y$J9kpq"XI|H;Jh>37Ϫi4Ay|&(unoc4Gpl#Mlr܀3=W(E[/}]{5X=tW^#O~_>ȶ A!rS6(|ѷPIJO9\=GbVfWd2n'KgtjfHW읧K5d2d߳iICfXdKcC*b?"]';?Kε4MCH) $IraeHreiB {{-Rõ9 CJ2| V)¸qŤAJi||y)RC(AJhDJIр$U;=n7u;v?;=㫸/=O3cc9_W?{.o;f_p9>w*J/KAcOp8c;X>[o#bSm~̷Ez;Y\^4L !> K$IB>25=J"W$a1&7 P`@2F\I'$q POЪlgaZ8/l.v[`m;yg;}NessqLVk18ZdwZ8ic{MlF'j.G1ݶ{&Bx28Kgg [B˽>Â4l799zxf4Mf0hwX*ϑnhl~s-TC2(MGm܎R"?nn (h1]Γ*BHS'SzR]#V ҋix# 3]3V0/F 묳ۑuc!T^p&V"i6Xy,)&Z40@@RP6A)_-sJH!ILWA!ϹxR4Ը%Rq3TAЙ u &rE/!4fTJo!($ +4MI.k>fccPzkbX*+׾;$;5]bW@y葎i'^r9M7Є@ÈjvkMVfi{@Ӽ]?C!<,f|lȰ8^fjaoٍbC||m0ʰ3:#kE!¹2%58=2KR*3wߍڼP AEc[DA*`dܵwxpwcw^LuboOCOgvW.n_bB˜<{4{z:7[YV=Bhq;by2\}3h7I/F8>J%Xn$MS:&0n3wQ*A3-̬5 ! Q c: i֫NAzĄ_\gMF:=4d߾}|"|z]F Q7GC;L2)HREh`N?y7RB+OLao^&RQüt"7#/e {~bI8y~R)kq;ټC1V- Lƴ\i6ǵmI"O;Ա^G+, ulbXFsN- T&x'yO_ $nssaHe#R#D "؞uY=q8Nx]{n4S={Jnu2U8J[K#ʕqqT!4L;C&EumDr|Gװ!Q AqMNӶ\ZR;7JH!M-Hbd69XEclm\1d&c",C*Z ,3ȵ$J)>;*Ib"&g̺P:Y*o.?VB%X0HReYwSJ!H <R 7XIhR N(>E飯`i&[n;/Rh+xl1 eo~[ WlpM2ULhȑcj%J=z6L6 g4zmck&V"Z(Tk"N$^/ RAa^pE^#D(IyIxѰ%S"ѹ&ຮ|_CH)<я0>QcA3^:HXqY]z1yIr?5WeR=[_jqB)eZDTJ{]N|ޏjzM32sG;ڽcZG4VXYn>i>^u](bml)_ض. ZRDR^Rא$NC ^a89J^~3=90u;ebjru^']L>I;_R~NZGS ,:7wDNز WTPM1XF* hiXE rUX~7zsD 7iSu UYJRM#]]1ҌK]2P>M)JO^p)TB:c] ֧186$NB&|WkA;q?@(fr_Qz]t@.FޒB2zF+Z^` 2<)(ɽFyF✂#f oS!e XBBE AԹ-{JHDstYb\jpq̩$) Rh82!3-e@tPQ׶G*ͣslHu~n`,]lI} !@J,wF6LNr[ X2RR˿WW'H:Q>~t-%о]QiJ0ZX(غdkw4lEXOpcjg_' W?Dq(aFހ|p,I@Qaz_B5,<ǧ*dm J0-i>4D N3lI4QaLqV8HBACekf\t0HWo%a=|dEI/nb.-2E?I=')NcY[q>k;orݛٱqLTlg^LLYyo.{bK8Ybyfu|t9s,,ebr{{'Gd߁燌}c35͒LM).΁t$Tp%&4[mVȣPȓ+WH۱^S4 SsX)#O&+$!=syv.O9$Vgtta*{A2)A>}8)Jd+L°mR˲0-YiHj*lٓ^\rݭst W(a G8/-b(@J 7)Hy $ <7eJtEPLYeW}R午_zM1FD!" '+(QJ! |͟ae,l]_Ա7 ސO'(< }FD)N@JXT60.1 B2YPF. bZ 4EbR Ymw)WG>69EK(&aN]W n}jm9nXmZ6qPh*ggÜ?KT;"Qeβ2Niϟ6%jiW=0,JnLO`T(!F"eMCesYb!ۧ7aˠDB0,V6nFF!2>[M Ҳc<Ӝ>s)eY lb9}dy A+ 5vJX,^!RQHQ3gsS9ʥ \*YgB*^o0eRfK!chNuWI$Jhuy{x9ٲm1gg"W"C&Ʀ(&JFqHh,FڛvQjBPu,L: hE ~-d8{C\MIAA2M,tOސXHl[C*7-j9{R⊍H,J4Q]KG7Hw$L tJ&cE}f.s^=q+{]uUhōC !0-+ hmsK9 T)Lm9Ħ2Fb> pU QfnͰ?qCnc~"X)_}/@ .R>ɝY>󭫇7"/_-K=4{?ħ>?}m ߰ltH$$iB+-dxɲ4VЄ.gbM%YUT4U._$휃0edseOWCDfńĚB\2 Rc4Fq\&T<( QC G>t2XEyn?f0tvP-3WK:u 2>(ERdcLw^sLX%s7CqtK|X/{̻/)4^gYS#?h072^̡'y񉣨=U1>}:RT4 G ӓ% P(c&?P,;vnD0EHIt`EDOuI*>;ܹ{{o@Bv4< 8RŮ/(_E3LxdLOPd |'#gN#Rݴ 1G}R"5S9+Bô2QPcUB!<}eRo"O5{H3HMaM,7HHuQ~^^dih@[wQ,x9x`?gN}~qD%!++H$:N&0фاilӎ"Fvqq,"NR0³uruy۱.T\ni_>;_r!r܌C3 ! +(e#4qQ*Wk1a#&v hR !XSKX1`Pt9|/JMʖή֜&&pnVJYN馼_- K:E CZkH -h'nۆT9F4շ\p?a #nb?QGweS&ڇxd8#(<ľO/{}\X~# Pق0,^x~ ҵSyߥhPVN_fuH`F!=Y)b﹇4UR*oD"I:=d1Gku/]Hug9qJW==<~O}6LHX8 >/ :jyP0Ji1&ɵV16++GSnTM߮X<}aZdk:Oވ 9pca*zQ {W0p2Y4ijA+!䕩ЯeB% )*v" ȧ!8!i^\HT,qsEJJQ hœ/o|{ߝ'?(Tdi8S9B/XH P0m+kO4t,Oۦ~58`eG>GTk{kz̽Lnkx'9q,J)T^XB0Uɠ?j]( . dhT IDATsJ,m_)RR˰@~Hoe48*#48\:KZB :9ˆ {TD}_y^ ډa 'N{f•E,/3wfq?gΝ}waesgODA+V Ms*ִ>R۵X.5:;8u3d!k4vNLSh8[(|@Y/ʀ:A8wnIO|ka:6!9lr%$Eu?iV)a;jSӔ4js$ۣڴuG:c]BſH7p/wB`YroDDv3I7Ʒb-9ci1EJ(r?  ̑48 7w:ds`GA5DqzrӏitS̟" }Z[7r}7zSsTO2NR$r%0U/2?}S^2aNJT*U Z+զDɈS ʱ?]6_XO=ts_9r $66}CbiZə rV QT ڝLPf) ?fb hk)RR]q8^ʰ\C݀p9FqPR(PAHsoi޳Coor5RGg|vS\.+8yyv:>//+1_#J0Lrᔦ0B 穗)<F{wcU&gV1,3*i99( Q+؜m(ș6/bxrpX :T,=hNO_EM7_ ZU:!)քD#S*$3tIG=A~.| p\w;p̵I ebLk68[(~C!R'avlBwҸN&uf6\b|JT\sJ?~)&&dS,w8%R~?Hp18h 96wí6Gw3Xp}[6>vs"ydrYJ*A2A:NT"T*e46IhMui-/z( a'UPoi^e3H)YjH”-6r;aBF] 71?| Y2qU}hI$?Ľex"s߇&%~&$Fh\S˳Bv |BNj;73*WF>abZˌ8nZ@dll܈̓дmF7!j4`$aˋfsŸ|];vcvOwy74ڍ {)a9է0 nf Jtl!j4`gmŲRdUL{MW :+ܖIa 묳ێurK +=|']s,2Y:#'FJRJE䇸N(JPb-LLqlPwc_^EVB `s g Ԏ/Ud44Pͫe{5G#UQ¾fD#t)ԐN'+g:&c;~hn#D"=\p o*y_eq\Q^]F% h`w,,>GrvR&IE4ٽX@BhRT^uR(4@ N0%jR]u`8HuN*L:BjB9,O;^ebUy @&u>Sg>VJǙ%|c/,?{.w)8rd?;_zg7I*ډj4G.Ѧ;606A"RDՑyr%5X71D\# SV;ۥr!snZe-iӘk Xj, W.20L`y5Geejlv01 Aa: ͠j!eL G1B|y !%pM40K]0L۶>餄FkS}8rvV?Ķ\>s69DuTXj)"᯿g>oC{p5mAaĩܩ$Z2(UQapH)0Ll0L$!2}XNq.tiP('{l]̝># hn:{m [|ARV!Ž`fs,,!wb$*iӌ~~p4jz+qk R9')4b~'XwEƐJtB#k-3!qiu88_-iH`4"|؇#O%qrtܹtLJi-Q\6OoDT!LԴJҴ}6VIfj&w~/z?/ 4I/*?k #?4|cU+Pll;G Z@hD It3l"Gs'tsB:c]B?NpȰJXqi(%Rl"+ %bi䷰iv&QZ.IҥRHTLJɪ!T +ہmxiN}N"\Sli`տ1!gH(lB҉$;!g?)`21c_YhHc\?U))u/d< qi $R7Q;EBDK ,ꥥ;izT9 "1Nw^+,GC{}ٳ矱kGq)o C8s_RH{(9sz;mӗ=i.:+GQYhoªCn 8nzSy B^x`B(eKw4Nn㽕FvěR,<Ή'eǾY~v+os 359];hw{ޟ\>O6W"<*mRLJqLQvYY^\Q؄~O" B^ K0LP#QaOeRR1eo2|q֝"O>}YTFiv}I#&(T'm?qiyǝMf,b<]`hDEBjZv8"tǯMpˢ@&Im ipt0VWL5\dZGD4WuZ̯,>F3/b:g <p(W>|(My~Nۿ˻~*KnNulA@Ji^p3ԠLDЍSZsVqC:}t]_*YgB*w~s$yL : dyk$:d2?@͟@L'7.tLضu;%ʷ@(q5M#!eբoXszrd=d;\?&LQ(ْ!AJք`6S6)|wNOGYS^y !JBTvSjBlؘtg\Z mJo' AጴW=*x3qlD%,bMܵU5yo2WxM\ф8FX8{ze]QJlv?'Wl0,4d;GMUK eZ~'.2NPɑ5*DapqU*)F#1R綩I4/ L:{뭊K&6k!DYCcG9C=kMZoǩJosJn@^n/OG}1>{ʽ{z :ĩEtl쓈Ap ŦMw Y@"iḅZ]Ŝî%d1]WtQ!0LReJ^42Sԭݲ Bz]b"|%ԭ ZLb4:!q?´yGX$S(cgktA{8K2RӨx#219-S2FQ΢_(F^>2|E~?;lcvyr !J_<:.YkOg)Jy^ܹ%tV8,wg;]c"\\.$!`myiw4Z-yqlbzD[;!뎓Hݰe3=sdzfN1M"FUF&c-@QL.jS(9.NSw(Ya2uh{}ⶼ P.ٻv*^( AX)60;st{m N4 v-eلӛ'G $AE>֚2 رqNj+;&fpsyT>dynkI!g3YaL s+<1uq(bm#ua3i! f.T:o;օʛ-/TQ)eŰJ>W@F4lSHGjP.@i(U$_](_;BisGO%X;hEԲ'u2,t=AB?^<"a*Ju\Q!^ؙ[k%kʼ/`"1q4v!CċO ,>ggy׼%]F P*H6?@ [onU\ʫk9h.?YͻtV,4Q|Ox33c]6R6y&s'`B a Me=a p ! E$խ{nYIh==Vȭ,܀ XL{˛.|===jD}ʬx#3#3~M5Zu$;w,S35>{塇n>i1ˤG֓DDYtD7\4rщc)"ԪucL/⍬ҷ܂Jc5*"SKpn{$u7{$ .E}s9w7ӻ~|y-ax2?n쳻={zy&XF؃95!D=yyf'jzCqHT&ӕ IA^_JMX i# 91[UHǓH#y[_\<ԌV'dTԑi4!0 +X:M;@TMG'HS$&|V)ȚnM? qu'gYMyE/ odN6=E8/ћI:H \XFæqenƳ;zYq\Cg9xb؈k85}yHp:>T9k yFofyCkL<bS'N /Ұ'@ 0tb_Tp@ RY %$=,ۦjM'"PFV CD@! JqjbFɚQ ]Gi=B%*dM(UP%"5T+4b;.'q9~|YmˎctdDaRx_=˻?Ȍ>K+|7RS6]GGLJcHqǣ{F  "#z,MИ=L,G/s~؎~^SUj-,Cՠ@I"J$#겥BPf"V֘Y+u2 j2؎"#I2@21]Cdaկ>)E%s}ezyto{m qIPpxrEt%Nstb?ou0}i. $طpqbFE$Rܰ ]is-]8V Tj7BaM1|R4mo((j7(4TU4M7pFT{Ҩ&LuQ.--id2I4]CQ$KhF@oIXpݐl6@baaYRX?~eS`Aq*}W,9]!+6wy;֭óۢLP=q0@,cݺ߰Օ(*a <*|I.d5'& |ڛn |"!O&Q RzdA "2R>Oe^CO&Cxw>R* V^TDj]QdC0B,'sbsjľ=/s֭n"p]ig˱-g&ln* yNX+:s;S^d,#ʭsE*_>(TVUv7 q{1x vmT*a_ +›ȊPrM G}MiKe ᢘl:1>'  et|-FW]y>!T*axUMPw,$=EvpaywET"0 1eƦ$nB-ETI5uS*:n2l{Rg7zjjbMyE0 m8װD>AL4ob$1TܠS5:"DW5pCFD<"]YesiB@*p?z{G˛]+4/p#IJELĔ%+$Xv{p,ȪU?1|pM>GR22 Ujzdh*A]L?-[o@ѱ1ZKly&7Q6Y6uLP:q|t ' [l|C:V#˿oZ? {He 䘜عm?FzyO|0_v=+|!uŐ%<1A0AV~VExRtU"M0;ȩL:l'BKMi,eEAWe 8Nf*_B<㰔F&|$I^˼qs=C]5𝛸 3)mfx^`$IRD۪1THmYhptf`$2J<ᝓ!H\yY5-! N*!14Ϻ̓<2 b d<v'B_u I|O@5dzFQ5zzzzdR1U WX|#J0\U>=% 8G8=5ǪQ:\:Ob۩i8r}s]*2,StReL3khX#]OD4NO\U71cY= C*/>΢Gx.mjz ]Ed/0s U^ zaD2IMF'<]4e0br>!|KN#\yx?rS0;Jh}"ᥐdHī$Nd19)N6JyӨ\u*熞P%;0뜦fׯxj4D:m;vD!OQUЬ,KeE/,Q^3s;/;WQ̷jl$NsB~PIhqV{Vu;[LFF{rFbq!T4}9Ndhy׆RR֛qKh Kb"wU +:s ӈpڒ| "#5~ꛬ[ǚxoB;&瓟,dO|m/?c9?>e|.tx]&Ё|>OOOzk kcr_u}0gOw(^*Q?a%‘gIePTu ˅ω2eBR!t9(1oiP R풂XC&'tv\k!" 2JK$iq4%!궝۷YVPUn;7hW-OD5wrńDͷ'rWMp5ıCC-^}SBD/̡D">p_?~tmn-'+4 RFFFd \6E|X6G$!7P5y.׊uB Tb($R)r zVITUQH3:x-y8W,:'Qָ\Z"NWG~O7źivj0 tlJuE f È}*J0Zm <",a%gK4t KJ4MJss$\B7Af Bϣn2ݬK&#𜶐q4CȊ\rV~? ׭C sų.<~OX4`0p-NѰ;I] oPo>:??x +bE|s*+VFƶm8+'rMqy "1DQDk59jvV my]Ư,^ 2~&PEB/,WRPLƔe@c}u(5E0Rؐ21%ʔ. )/⦬א^zh`]iuJ<ǫG9p3x)Gy ؿ[oqV^aD%dȡ)g 2yTQތodKodY&ϱl lz}Z`#ma3>1z WDX_Nϖq*^Ǘٹ8ᷳn!gĬ":eD|"ciϩeNT".095绌%Jj{tCznȒ)3d(XJP1fg癞fBV贚s(aX,.񼐞|Rն%ɤ貄AlTkhm41BJ*@%Iط=0caDF$(2I[5 9X E S!B,C57xhϵH $U¶ cMf;Soڶ}<~9A /.UnW|E` Bq$!!_ZK6ﰷ_j?B?s|bK zW˂(µ(dpl-reЩopr's kzjf ǎz|+_gq~lxbYy È$2}BF .9=#ɨ(}!aY2MԚ]we+5EbUdHK2(8ω QUTt)Ͽ>4I:Kd tUMf@:&APtq`B\';/$HBb|l-o}a- q)h\*m2~KM\H6]) )TKA!ddCWi*~L?1ۮ+b䇺 Vf`${Hf : cJ,l2<4žq,_drjC2,JgfzDg6M zm E؞hfۧ[@Obi5j 'REAAX=^ũj 3"Tcrz@08<_I%nP`k7oE3%3nxt^xNF6I"9G k71 +}By})_A$t#b&NyQě"T۷Ey19rV"T|_ $iAGɆo(p\S:m)䑅Bx"jh*%A("fS 9U ]an1U&& ^s<MDnlx״I3 YQtF~SqF^p(Y A C@4rF=XZO.amr#qrHyDD8KYXD|!s5kQqR6RV8e{xِ_j^Tg#uZ\uk7XǴKu+? t( mbۿyˆQ(F|L[oĎ p])1]b]Qc/NQi4. Y>G%BEg8PU' m&34߮8ժ96f<~4]0\n8JTM[y4@uNne H.#w#ybH x{H&ŒgHiJ$GO6EL/=lY&l9&y=HkL0k я4*<7ےem~sYUUFFFؼi-v θF$C9&:&p|8|(6m`v~zĖ-Q $)b~VzEh9(H l0BB!lV(L4ҽ8,)# BB&dITh8Ț16m qma_ '915n}[n}gzGA@QcaqN>[j:B3/PӲml!H%*('ۻ?Kfh)u:`E}nD1?  (7F: l;QźU"Ya $ɐ?OE\w-N~᡺f+Kx^@qxm07}lxι%QXc8C|fx6 )ߞ랝 BDa7("N ={BeV3U9)СCz+!;+w^eӌ(>/J˲8z;mRɮ IjN,J [` d"ܐZm\4fH2(gRfqUBoU 2YUTy=h`8%1)Ke`ӣ.TI5/!TgPyIM؎B#D1z29$ljIId׶as"ej[k 'RFQݱ.)Rڏ+{]Vgri q3J/q&0T'Vҙs>MW-!ƚ'u0J]Nn3HЫ:I"g""K$?jr1B$njpmBPe&OCsoat8vD1EtïB7MG{ :-RaY5̀?GTnj:;w'ΰv:?4|cnLo?}xg+qn-ds1Z>ΙA*D^5J|mTs=ATXW!e)n A"a2Se'X\52Av%OWӗ%?ivjQlPk#dDjLj&1M3< Nwr A${4К 8JGTg_ rDBa.hJ!txH ,Q($%Ou i5;Tq gRk-q^*'GF޽(~&KD:ap`FMOm&$N.CQЏ}h/lcn~˶y1 0SKVISZ,#I|l,ˈZ'pSw<;aߪ7E!Vi}h/t ni+ckVSPT|>K̜+O0_o"ҙW˺tZ$ys#:-$ST9E-bajQʼn0ͳXO"h֖=g oX|G9}U?mlٲM[ +¹o.Bd$5ha6LgpTZh|q(jg.vN(QS1YH%IMCg NFV5\vUJ!mAdİ\U ˇ^g!Kk'TH0got C eJTBR a[SB/ R(G EaM p/t)YL7'A1Y+9EHiERr˧+AH#Jҹ=; ]D|ރ喛d͗WQ>Qd3ڛCLJ3 RWVjQ(i4mZ:m﹞zW4-[7|ɲAm$MQMaȩK2Z\O\j2""D5TEo8kUj"{M?'"!ul{ix;|+-(4u9ʦ xx!NMk zۻ0 wݸGomou e֭_'xqs8@vƱ,,`}o7_ܳli.6t+KHZ "G5ĆuLCN>98S2u1I10Wa' &}dt0!ԑUܸ~%(7;X:'/Kwd~RNm\"sM,YڭeS(@5^aRF5,.j"v%J'A IDATt"`˖"^|n/0KcL:MP!VtlL[D}7 $孖Ke,qb0zFY<4cb1,fWL IgLr!4 UE#HfiĚ#l:n&% 3.JF!HPVgyBHHxTp-knXˡE$|R"{ri|*E2w]NLLǟbVGuR>yss"ᾗ1GW\t"NJ2=gZAEiHOf@G޽oXv IgP Hc| $X;D,$U?T;ĥZӥEzI2A.G&#!V=YRD0罈![,hLriQF7cNBsZufRL %w]NLS4t:%nt}H$Q-'ӋoHVoJkoS]RO}S>yG9|07|3.]ur,__bjjoy +U|jlW2g~+gn;ݪ.-W,$d@ p MSѴ+OÀŹÇ(9d%ҙ / 3J+H2ygJr=M}0q=]VUQ0 f(>7S6V[ȊoXf(L pW?"?Y0 ?Ωɺu|2k2<{sK񊥋>N aJ)r ! m@Q#$Mڋ3Y ?BHT Q'3pmIB*riKY5ƑFz!Yg~zQ+ez" Cn'?yE=y_1l˧TCY>tËCE`dt2#dYq@" ATX5IIA{Ԣ8t d4rX&$,KeWY``亳#öԫ3k91;*@W%n di`>Hbfz V%;axaOsO1wT`"dX&~ۗj<[0 np =$ϐ<<{(0n2@Gzƻc1#qeْY&.@H&Yz ap̘I:qd84[S4hJmծswj8v#>?B3"ԚM =A"cnnxB w?[zI 6JaZ [mW::&[%}6߀\Z$(/Ѻ-xamӘ_$!BFDawx?Ru8XsޯaQj58Y+a&yfFS /NENSC"W}*ZΠnvlhFnCt "###E/37++lڴ|#ox+<4M ;я_Aw,,^+^|M,p{D1gq|^dxNUURSH]MT먲ƚnnc (ba1!s|GHs' VX=/-T, n,|oaK4̮XUY< Sl;R=-mKlr^ڒESn9[GTQ(W* C(TsDZ `]FFA{dycK" _ "PjAFA>9 δuUKTK5DI"HpՕW1!{@U$ FU|Yl}..t)Kg@pO4{Or=2n*9rĉB g'ԗ\ ދr94ǎr[\}ȪBVo`\ff3NgD2z$˜v{nNHJusf\ yGVE鋄B'K$B1j<IOF(ԱPd¡>8x9q&[rxx ݣTUV_,nX`7[-H )j-OѣL̐Nر9&ǎ1zl7A gS @(!jiPc~:$A! whSիRD<ǡ^EI$ݺ&J]hБ H6$Uyޖ$,:An/ޯDB 9K,/[Sc5+^|s9r;zJHՎ$~A`YZEN5e'Vsl(/0a%N+xdyFvHӔ%0[43UX #Ea5/8>g>s rt&Hw`@9%3CKz/]e!LOb-2]Ykȿ;u!]*iB!DQuߡz iSU} MۚΏ;>v_S6.y*?#|ǻ_" U5ml],ϧj9T-mz-p*Sul"]!%y3<<,/_."ѷS/+utCɊ,kfGH%X ?FܴONr ΂i-@@QTf6;.܈בTrAHv",Fq>)js,U,4<fX I:VZJ$0¨$ɔs~?Z7B6o|^ƚ?!7|3.o~|+_ȑ#|_T*q饗r]w_5czϻ;u]ٟk֬7UW]sذay9Xv~= 'kX!+N( 1(GX) V]\Cۧ*ѫR$'_$O"qlO%e?BDB0(YQEdMR/$hŪ/"l(CYqj-A@:/)3,=_(h5AsEIk^=ssl Aۙ,jOxNW 6?p..5VQg,6>{J&ՋTQV4T5D(Jsͷ!ºDn8y$1^D0f4<`7-q~a@UA:7&*;r`:]vUpMYR+ '`0:M@Fib2 D ˃+V i\%IQTMUgOF@<~Q* D5?2;CgB <[eY~#W057mdlG>|h#K759׿{x=Bqr7-AIGtuaS+{HκHO<,bw? D㼸G$ЫdY l4I -NbtɹT|Y,0ՔD"Xx"ave C̖(ˈLJ<.S:x>׬On ET")CAx cf%AXtF~RV8e?["((ȝвp 9a# [hj]UivQ&}9lkWd QԳ;8r,Hx<H%(bo=4mhtQWtQ#)^A)\J8}^r^O/Y)` FJ hts0yl[o6mB_}Z*{Џ̺(.jT8t{T%Dď|/Rrt#md]'*P+МE' *}!߱ȗ|mªJlRH,ExUql&!-> s.T>#oYRQV$=Hw׿uFGG VܹZuם.Xv-TX,ƅ^OSOtU{\q|%Nhz9X۶m#˱f͚rL ,Z|[OHؕF5 ]@ѿXN f%lQdOM3S݇VddB脛!hzH]mcg:!d ),ӓli[J'\%XweG8^8ߎ)&#@Yd?:Mށ(d7BWnO\Ol{d+_!䇸b03;ǀ C85$Y"&?'i*'u%h CŹO+]E 7x##yS 8%c8 IDAT7LHVX)(;II^R =^HNn=;º5$~bHb˲NGtk6dY_2<1Gôyp/Vx6v!r܉p4NWGeA*$!+*o#K2S ># ?j$8viQm%x\O2'G4/(ǣ1V\y<*"^DvbD:!Yj4mZҽݔKa\'y8wOQ7p5XPq|ZehE X^CV A:KӇ'/"xJtûp(NeN<9r2Pbt*E*²lUbyUs͖Yr9QVJēIBF9Qx)iA|| M%<7Exx?h VJM1~(Vƚ^r O=s#ؕC0A=n) Eb L79.Sb]z|]_< n\.G?Qn6z)V\ڵkNG5k򜮣ѣUR ,?= o#(In\Ƕfy'yGD|vvvO?ap|9~7)%}C^ r]'E s EEPxf;$`>do`E}Mʵ t7rV#9v(w$x6ŃX5MűV$PS\ŀFФT*I\4 "F f:bȷظr-[}P;頢 q%7?6ss%G}OQWIZs!lA!)o2l6i5ttS.%x*$ʼn#HJM]N4<[6+]T˻9gƁNw+/F\"gX_fn0{tG$QD{3 3C;KSAT 33>N 9]+cJL9֟߼A[I=cGI&qlDDCgr=S.d=7_LZg. v(Ιv5;X']|Cc*@J@ZkdDI,AD-,ӢT.fs;: B4|9Vv3:=.2c]-ᅰ_tz(<}7h6(UȒC H0r|lcDݠb$Q}oIHU<9foch–<H%;g 8۟ĨQ*Ԯ^4!|T}q^@10\( +Yk#FXe#䶘4-zsg.݌!kg=erRF"xA`[,Sm7-B$G4T..n|1fK%V.[ΪU̺m.ZzcL TMg^8=1">,#ġIC!:`[&NH(īa$ylܱl##GCANÚ5k>16[$Id2S^#T*/ۋ/H>]㻯@;qX`΍eGe]˗iޝUzkrur9{?Ic.#ctCYFDxV'DQ.K~5> :NGgB v|$]s.K؂@>< z85&k'* :64Lw#z"*ҫP_N4-H2hJ$vlt11kUpb%u=K"!Rg,G]:{yq&3(k7t.Dip Bdqj + :$O٦mdKUGAQغu+yH?7j^xou扢H\>>(_җH$s}w Y}oۤR)ضm<y{X,pW( ȑ#Gޒ.Xv|[*#].DQD | Q`(+\qD*^\,8OI۬Yզ>g37v1vT9` 9۽cH$߅8L YhI2x̴u _/ob8@*L—Ml*huf:)N},FkK<ۥU+hIf^arY 4YÔVq| XeUU)Xbxwy;ss%;@Ĉ:&ಫrY~?*hep?efϓDB1BgB ;"a;$I4k""r}288(Ȫy,"Op5[$ӪSjqFEVJ0 D{ /۱ȗ|~/ UZͮ DQD$>iMWwEC=,$(tS_w%g0ˏ={:V`llvW\ΒE)."M#Ǧٰn-Hl Iu!+JuZKLMLIp2o] ),H62;μ@ m*?yj;Ot|DI}ZzY6"z 4]ŐdBm ѱAm,n<3ضMY#vEUv%hǻDQFrDDk< GfHh RlԘ6DqFH ull$ƲLL桟=+J5g9|{fY dhΩP:J73q嗟ׂeY߿{o|Yd 㮻bxx׾5y fctM|FQlrގkxs] oK]#󝴚&]nDQUo`{6c!~'ROضs6C^0 -Y4.SkPWaeøk=cY+y\uоH܈%hUJH!hBTt_GzE44AZH2$6Q@XQ1 QPM( YofLBDtMŕmjX(~ {4K(М%\q-.$qZ-B<$7seq/ޯqZUڌbHB(J5c0zH%Ss uid2Yy M#,Αʢ")!.X;GwJ˶/ 6ncEYALgx{* x X  i+)nEO)RՇ{fw==J<9_'&s.xz$OX6۷alK/@۴E&4.bG{{4(b-Ɇ$}jMOV x]"GsQ<3BdwDl&yyi5]*EONO?Q.\B%'7X>Omd".{ =,Yim^Fs!"Bt&zcZNnNCpL)2[$E ݢKDHT_:Ddӏ?7KP015MJφuk=b|)Q^*F(BHUP_|.ZMzy:MC1z${T 3+α(QSB)&*u8> ͱcH%O/˱̑7Ȋơ =ʉjG+eDa-%.rVXDR'lDIBd\%'{1~31!}~؍b;&HE(.UI~b֪HZXH4?ca5dz\tJxݨb8yM7{y!3o]׹X/388ȗ>F4/;;7׿:vXmQy͖͟ģ_Ӵh6M@!`{>xv8xNq ;7gRx4Nۅ*,[:׮JYRNW(9MAFhzxoCdR,Mowq)> yoAUI>sѻ 4=X|rJxW X`s:iƱpk(JsxgUuOdoɃ`˖+ɔfVmxȪ/ 鿾,ˢZ GUbH< m ƱMb.$I]b]}FO̝8۶)Wt"gHj* tY'B Y\ 3^D_@*eڙnW!|&uWը3(QcU|:LvkK֭۹u:*zwn|̶wr5ѷt9xMld_wSӬ]#:|lA^W|^-D rA8DNhUTUED&{. Mt{I.M2K,6ٔkz\|¾a0I)u"Kc N<]hA/ )C0R%?]fYmbl޼6#3zlh4y8: f# ` ^=\̚UhmFFz3],hb 0 *cq#i*eIŎy;.IJ%˖3(GzʹŠDH"7twzi(nKi1qw"7p7r3h5:45pZxFRWZ 5 IDATˬI AObÎ@p]t)d7i+u1@$tUj "f ͳN؞tFQCȶEo$Dq< ^ ,okG۲P)Wwb0UG>1UC8ٽ"OG@d3!&]֬T*Uej|]b27=QrUUZ( d!!$ 2gwή{v{fgϬ} b&P%-sn_~۪BТ% T_uw gU&zM:Qf `i =xѬʟEÎ]22U!c&u*HT>O$>sl9SX)Quё1<0NaW/Lbn!zLMleHއ\s.yi??̿폢3É.Š* Ca&V+"^Ԫױgw2CN/ɦ\Z>nd C/h|YVyo|ue~E^_05Q1:>Fɏ`} ߥ-H՝8 ec%>8xD؆Dn%%at 3Y"f?[2hs_̷U8"v=%w36Vda~mQˮ .aDc+l߱-ӨPo{;W]=X+^ BJM5DB(!n?t/VhC:xC9>27\~!~f{{)7aץofbN>A]uyKI^C0w/HTLjF,&,Zu T 0T?ﲧ˻exhMa'@Sl9|Hjsq,[q H0c `&s>I8)WaI#>UVmv<24<"%gX[[8qa4 J=IP E&>*M =} c4;BQA7,?Yⳍ[g'#8WW ALnVY]<='D%4<3i~1X?MrīM5MTƯ杚!Ej2L̡mنDRU€ ,^WA]+EcCoa^_/dX %AJ} -;D*B_?M#)% vJI}D%,J\"S BG-~)&gyTbqqnF{8" -2z34Y3K~ %;<}̎quRio=đ#1(Bq$0%bbR!$Ct&Ku"ߣg#A6R )ۡ`6Ai f|.GVay^ %_~Q ^¤*?_nSLשPJ#rz}j«NTQHy{yjkONK D7b)L%C0 m:q>^p)%ymn}\$O?msӍrs A!v_Ǎ} ^_+3tU.b+JT] Q[6{-[/ O=rimxu ^$,BAA*qVBX:ո ŽTWMq{>:[FrDIaJ" T$ 05R^GMx>n91b .GHj|iJ85J3⪢ ,t%Faxt] uX\< Y in&1,++eo/~KS.}S QLfs*ʐ͝"}ߧ[0KR$j`f উz#Ry8e4$I+k܏ӬLϐD>vc8ChN\uUqZ\~y睛vMlb6s6Qkvg>WdmeU"T7T"!UBsx0 M$f,W‡H*͵cdt?4(,.D)Z uTWFX~u뺪Q]DgX:^BA" gVY ˆna8lɢ?"2 GQc~c|iMwZke[Eq\rvrvy#\};u[[\X:Vw ߈NAq '5BlA|DUN;=hTUA"JQ)JEe,GHTNziH9"r7?owc$_y}&bC#/ҝEFN "*WJ=Zk˘ge<%^Bn0,C)Ln+d!/E2<`| ϝPՈ%nqA0GFU542{=H&O3L!I= CF#t|zU5&i0΢ nz]O=Iz"BA}y?ar(sNJ \y啔NfJEhFTbzz뮻|\y啘8&6M5MT/ nQ(a6HyP,P^^VX2!Ci J$+-&.RYxida@39GL^x5%B $d裤gH$I^?3@7LL hT"=W)`Z}$}1<6 6xf#ΰD*FP1jqr(: !ħ>s2s[oh3g)qHR_v V>*WQ lE۷rŅs4kQpVoE8Yi?OK٭$H YRJ}Wן0x.ڭޣM?p]2I*AÏ>r)S_E cDRBz+>+ougw?oⵍ Nhznř8.=J.?e]͋AUU\'i-)(ayo>kBD jS27o ) (XZuyt;buB,%c}n|BUDLY\'K$cҶcd:N H:.^º>".KC#4+b>UGXQAv4L GxQ)qG ;䃷odR& ~BpSD l:'NQ놏N\q.teRz('lE!Ib:6ln :v."Na,322Jtg @9AHt!šC7fj33c\mMs߽{y5R>.@YPzJRRcW:BA%KGO09ߊP1f(cNbGSX/V8f=};ߑi'<'~<#YnMwl$ G\qk^M&~bIr۶.5 Vj䊬=q+bOAM1<|)^۱XX nFL ;h/QM0G,@Rv:{^R+GWAjan2C%ƱLr(1MR1lmHGx䟞ĉc;}vY]]%dF'tuZE:G&hGk9}QĠ{.g1kń6RgO,|[.!c~yo5(<\7ox;n2n8u[2ፌ afي"4XN )b48I fɼJd^e裩:X'Q|Ni`hUROA bd ߧmQL ʉ4)i4DکJMHF8qjű~–SŅaR-/m@(MQ׭|Ĵ0(_s>D@AyN66Evh*&㩧vlɺD˭m$BY #n 34یLSIV* ghd^?`mueCnd'X]8Hk;\}ouZ_|?J7G?.p]cָẟ-l6EUj e"tmG;膊hU| c0u]8¶ltĶSWQt ))%j( ϨZ=W1(JػG_Qtgs?—>Ri%;TXFn`%+8MZ$:~K !=3r$iUIzbWG€{vSsw]~owBagxrƝQ{g_4[.jm 2I}$mp/Q"i bsXqOЌ 4 s IDAT,D GP*8ԐDxէYYkvҠaL[XY\PlǒfceZzsPIgRLNLcvqR)tS#%N(t )c.8o 4f!뎢&CS vHW\qẸZaKHdP1{JEFTgy)ZqĚ%LB)̸;SCzy C+j }aqσT1ŋ۹hE?;-ڍ*fGisQH6_ F:)<QG BUEn&]mbe$utNUEU5L}}O#wҪ׉uF' E9gAijpZ#+ -h=\l"%1ӳv^4jk4+ L%@3 E%Cvw~7KwM, `=#4'Ol5 9Ž;]ƅv\aP5 ݴhut]L!mO+ω ?t:][X[uHgַIt7Mlb;lic؝u{9Ldo aDJH$/=D' 7>++3/\'+H v4%:uvͭ)**8lU7JFD R"ɪ=uU3F ԆTbg!UAD[_24vkQ5Mב2!Jb2"HA?|V(oеSĝ((JEQb*TzEQ\f8c3>ev?}Oѧx\tV /?L.7RC,B&Ʒtϱ<; Ppl! qc&nd$A!sP<ԤYusqb;I=b=3GWu|ƽ>]9H5aƎ4Dc_ŜD.$-զTı3{`UmW, ]X&.J(Lɉ "~[:9cO>D>_dtD512Pt8YD?&fP ;[X(ͦ1Av`%&&uN#Q8"Mr GLqhxbI$K̸;y]"9@C4H2}xq{/40=ル6zcG~-;QLY]CNi*aubgmfӨyF"4rjBAJx^IcFZ KWNF)?/E>4QOfDA$ngP!GU" P5 trIJSuJco솱BӠr ӣ%4c? >VnPɉ TU s7|_|7_ueKh4DrJckkp(Wj/qWJuᅬVHe "o ht("[gw^G1VACR ްMQGD&66s4Q;}v]4ˤuh1 0QPHd-bTç4dp|1c\|Aԋ}ضpqFC;i= \n:1ƳJI%e) oxrUb.tY)W6- (*Ԡ>I$IS5ˏËW?*oRvxב9q`ډAw0)U+d9z87EAPfZ%eŰ4$No)4 EQЄ eG!fE &ȧ2hBެbYv!Z JƧ)lQx}H)yܶqϾo;>tse("W: vYTNꐕ9=qoUJ 3i#e-4gBUw?0z(o>@#8rn}_տf⊍DPuow?W@vl،Tȥ7IM3H%xNjl\:2Ag$+uFOGahtOd*)HF9^A6e23bѧwC,YdsY`8V~͞K)C\^@D:)n4;uo2Zf